package com.interplug.qcast.biz.user; import com.interplug.qcast.biz.user.dto.*; import com.interplug.qcast.util.InterfaceQsp; import java.util.List; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpMethod; import org.springframework.stereotype.Service; @Slf4j @Service @RequiredArgsConstructor public class UserService { private final UserMapper userMapper; private final InterfaceQsp interfaceQsp; @Value("${qsp.master-store-batch-url}") private String qspMasterStoreBatchUrl; /** * 판매점 정보 저장 * * @param storeReq * @return * @throws Exception */ public int setStoreSave(StoreRequest storeReq) throws Exception { int resultCnt = userMapper.setStoreSave(storeReq); userMapper.setStoreSapCdSave(storeReq); userMapper.setStoreNorthModuleSave(storeReq); return resultCnt; } /** * 사용자 정보저장 * * @param userReqList * @return * @throws Exception */ public int setUserSave(List userReqList) throws Exception { int resultCnt = 0; if (!userReqList.isEmpty()) { for (UserRequest userReq : userReqList) { resultCnt += userMapper.setUserSave(userReq); } } return resultCnt; } /** * 판매점 sap 정보 저장 * * @param storeReq * @return * @throws Exception */ public int setStoreSapCdSave(StoreRequest storeReq) throws Exception { return userMapper.setStoreSapCdSave(storeReq); } /** * @param storeList * @throws Exception */ public void setStoreBatch(List storeList) throws Exception { // 판매점 동기화 for (StoreRequest storeRequest : storeList) { try { userMapper.setStoreSave(storeRequest); userMapper.setStoreSapCdSave(storeRequest); userMapper.setStoreNorthModuleSave(storeRequest); } catch (Exception e) { log.error(e.getMessage()); } } } public void setUserBatch(List userList) throws Exception { // 사용자 동기화 for (UserRequest userRequest : userList) { try { userMapper.setUserSave(userRequest); } catch (Exception e) { log.error(e.getMessage()); } } } /** * 영업사원 정보 동기화 * * @param businessChargerSyncList 영업사원 목록 * @return * @throws Exception */ public int setBusinessChargerSyncSave(List businessChargerSyncList) throws Exception { int cnt = 0; userMapper.deleteBusinessChargerSync(); for (BusinessChargerSyncResponse businessChargerSyncData : businessChargerSyncList) { cnt += userMapper.setBusinessChargerSyncSave(businessChargerSyncData); cnt += userMapper.setBusinessChargerInfoSyncSave(businessChargerSyncData); } return cnt; } /** * 관리자 유저 정보 동기화 * * @param adminUserSyncList 관리자 유저 목록 * @return * @throws Exception */ public int setAdminUserSyncSave(List adminUserSyncList) throws Exception { int cnt = 0; for (AdminUserSyncResponse adminUserSyncData : adminUserSyncList) { if ("1".equals(adminUserSyncData.getDelFlg())) { cnt += userMapper.deleteAdminUserSync(adminUserSyncData); } else { cnt += userMapper.setAdminUserSyncSave(adminUserSyncData); } } return cnt; } /** * 전체 판매점,사용자 정보 동기화 * * @return * @throws Exception */ public void setAllStoreAdditional(StoreSyncResquest storeSyncResquest) throws Exception { StoreSyncResponse storeSyncResponse = interfaceQsp.callApiData( HttpMethod.GET, qspMasterStoreBatchUrl, storeSyncResquest, StoreSyncResponse.class); List storeList = storeSyncResponse.getStoreList(); for (StoreRequest storeRequest : storeList) { userMapper.setStoreSave(storeRequest); userMapper.setStoreSapCdSave(storeRequest); userMapper.setStoreNorthModuleSave(storeRequest); } List userList = storeSyncResponse.getUserList(); for (UserRequest userRequest : userList) { userMapper.setUserSave(userRequest); } } }