SpplyService.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284
  1. package com.oqpo.api.service.stinfo;
  2. import com.oqpo.api.entity.oper.AfflEntity;
  3. import com.oqpo.api.entity.oper.AfflSaleInfoEntity;
  4. import com.oqpo.api.entity.oper.FileEntity;
  5. import com.oqpo.api.entity.oper.UserMngEntity;
  6. import com.oqpo.api.entity.stinfo.BrandEntity;
  7. import com.oqpo.api.entity.stinfo.SpplyEntity;
  8. import com.oqpo.api.entity.stinfo.SpplyMgrEntity;
  9. import com.oqpo.api.exception.GlobalException;
  10. import com.oqpo.api.mapper.FileMapper;
  11. import com.oqpo.api.mapper.oper.AfflMapper;
  12. import com.oqpo.api.mapper.oper.UserMngMapper;
  13. import com.oqpo.api.mapper.stinfo.BrandMapper;
  14. import com.oqpo.api.mapper.stinfo.SupplyMapper;
  15. import com.oqpo.api.service.CommonService;
  16. import com.oqpo.api.web.dto.request.GridRequest;
  17. import com.oqpo.api.web.dto.request.oper.affl.SaveAfflRequest;
  18. import com.oqpo.api.web.dto.request.stinfo.spply.SaveSpplyRequest;
  19. import com.oqpo.api.web.dto.response.GridResponse;
  20. import com.oqpo.api.web.dto.response.oper.affl.AfflSearchResponse;
  21. import com.oqpo.api.web.dto.response.oper.affl.AfflShopInfoResponse;
  22. import com.oqpo.api.web.dto.response.stinfo.affl.AfflShopBaseInfoSearchResponse;
  23. import com.oqpo.api.web.dto.response.stinfo.brand.BrandInfoResponse;
  24. import com.oqpo.api.web.dto.response.stinfo.spply.SpplyInfoResponse;
  25. import com.oqpo.api.web.dto.response.stinfo.spply.SpplyPopSearchResponse;
  26. import com.oqpo.api.web.dto.response.stinfo.spply.SpplySearchResponse;
  27. import lombok.extern.slf4j.Slf4j;
  28. import org.apache.ibatis.annotations.Param;
  29. import org.springframework.beans.factory.annotation.Autowired;
  30. import org.springframework.security.crypto.password.PasswordEncoder;
  31. import org.springframework.stereotype.Service;
  32. import org.springframework.transaction.annotation.Transactional;
  33. import java.util.ArrayList;
  34. import java.util.List;
  35. import java.util.stream.Collectors;
  36. @Service
  37. @Slf4j
  38. public class SpplyService extends CommonService {
  39. @Autowired
  40. private SupplyMapper supplyMapper;
  41. @Autowired
  42. private PasswordEncoder passwordEncoder;
  43. @Autowired
  44. private UserMngMapper userMngMapper;
  45. @Autowired
  46. private FileMapper fileMapper;
  47. @Autowired
  48. private BrandMapper brandMapper ;
  49. /*
  50. 팝업 공급사 리스트 조회
  51. */
  52. public GridResponse selectPopSpplyGridList(String sBrandId, String sSpplyNm, GridRequest gridRequest) throws Exception {
  53. int gridPage = gridRequest.getGridPage();
  54. int gridSize = gridRequest.getGridSize();
  55. int gridRecords = supplyMapper.selectPopSpplyGridCnt( sBrandId, sSpplyNm);
  56. int gridTotal = fnCalculateGridTotal(gridSize, gridRecords);
  57. List<SpplyEntity> entities = supplyMapper.selectPopSpplyGridList(sBrandId, sSpplyNm, gridRequest);
  58. List<Object> gridRows = entities.stream()
  59. .map(m -> SpplyPopSearchResponse.builder()
  60. .viewCd("R")
  61. .brandId(m.getBrandId())
  62. .brandNm(m.getBrandNm())
  63. .spplyId(m.getSpplyId())
  64. .spplyNm(m.getSpplyNm())
  65. .stCd(m.getStCd() == null ? "" : m.getStCd() )
  66. .stNm(m.getStNm() == null ? "" : m.getStNm() )
  67. .build())
  68. .collect(Collectors.toList());
  69. return GridResponse.toDTO(gridPage, gridTotal, gridRecords, gridRows);
  70. }
  71. /* 공급사 조회 */
  72. public GridResponse selectSpplyGridList( String sBrandId, String sStCd, String sBsnsRegNo, String sSpplyNm, GridRequest gridRequest) throws Exception {
  73. int gridPage = gridRequest.getGridPage();
  74. int gridSize = gridRequest.getGridSize();
  75. int gridRecords = supplyMapper.selectSpplyGridCnt(sBrandId, sStCd, sBsnsRegNo, sSpplyNm);
  76. int gridTotal = fnCalculateGridTotal(gridSize, gridRecords);
  77. List<SpplyEntity> entities = supplyMapper.selectSpplyGridList(sBrandId, sStCd, sBsnsRegNo, sSpplyNm, gridRequest);
  78. List<Object> gridRows = entities.stream()
  79. .map(m -> SpplySearchResponse.builder()
  80. .viewCd("R")
  81. .brandId(m.getBrandId())
  82. .brandNm(m.getBrandNm())
  83. .spplyId(m.getSpplyId())
  84. .spplyNm(m.getSpplyNm())
  85. .stCd(m.getStCd() == null ? "" : m.getStCd() )
  86. .stNm(m.getStNm() == null ? "" : m.getStNm() )
  87. .bsnsRegNo(m.getBsnsRegNo() == null ? "" : m.getBsnsRegNo())
  88. .ownerNm(m.getOwnerNm() == null ? "" : m.getOwnerNm())
  89. .sysRegDttm(m.getSysRegDttm() == null ? "" : m.getSysRegDttm())
  90. .build())
  91. .collect(Collectors.toList());
  92. return GridResponse.toDTO(gridPage, gridTotal, gridRecords, gridRows);
  93. }
  94. /* 공급사 정보 */
  95. public SpplyInfoResponse selectSpplyInfo(String brandId, String spplyId) throws Exception {
  96. SpplyEntity entity = supplyMapper.selectSpplyInfo(brandId, spplyId);
  97. List<SpplyMgrEntity> supplyList = supplyMapper.selectSpplyMgrList(spplyId);
  98. List<FileEntity> bookCopyFileList = null;
  99. List<FileEntity> bsnsRegNoFileList = null;
  100. if (!"".equals(entity.getBbookCopyFileNo())) {
  101. bookCopyFileList = fileMapper.selectFileList(entity.getBbookCopyFileNo()) ;
  102. } else {
  103. bookCopyFileList = new ArrayList<FileEntity>();
  104. }
  105. if (!"".equals(entity.getBsnsRegFileNo())) {
  106. bsnsRegNoFileList = fileMapper.selectFileList(entity.getBsnsRegFileNo()) ;
  107. } else {
  108. bsnsRegNoFileList = new ArrayList<FileEntity>();
  109. }
  110. return SpplyInfoResponse.toDTO(entity,supplyList, bookCopyFileList, bsnsRegNoFileList) ;
  111. }
  112. /* 공급사 저장 */
  113. @Transactional
  114. public void saveSpplyList(String userId, SaveSpplyRequest saveSpplyRequest) throws Exception {
  115. try {
  116. SpplyEntity entity = new SpplyEntity();
  117. entity.setSpplyId(saveSpplyRequest.getSpplyId());
  118. entity.setSpplyNm(saveSpplyRequest.getSpplyNm());
  119. entity.setStCd(saveSpplyRequest.getStCd());
  120. entity.setCorpType(saveSpplyRequest.getCorpType());
  121. entity.setBsnsRegNo(saveSpplyRequest.getBsnsRegNo().replaceAll("-",""));
  122. entity.setCorpRegNo(saveSpplyRequest.getCorpRegNo().replaceAll("-",""));
  123. entity.setOwnerNm(saveSpplyRequest.getOwnerNm());
  124. entity.setCtgrBsns(saveSpplyRequest.getCtgrBsns());
  125. entity.setBsnsCndt(saveSpplyRequest.getBsnsCndt());
  126. entity.setCorpDvsn(saveSpplyRequest.getCorpDvsn());
  127. entity.setMgrNm(saveSpplyRequest.getMgrNm());
  128. entity.setAreaCd(saveSpplyRequest.getAreaCd());
  129. entity.setMgrEmal(saveSpplyRequest.getMgrEmal());
  130. entity.setMgrTelNo(saveSpplyRequest.getMgrTelNo().replaceAll("-",""));
  131. entity.setMgrMblNo(saveSpplyRequest.getMgrMblNo().replaceAll("-",""));
  132. entity.setFaxNo(saveSpplyRequest.getFaxNo().replaceAll("-",""));
  133. entity.setZipNo(saveSpplyRequest.getZipNo());
  134. entity.setAddr1(saveSpplyRequest.getAddr1());
  135. entity.setAddr2(saveSpplyRequest.getAddr2());
  136. entity.setBrandId(saveSpplyRequest.getBrandId());
  137. entity.setBnkCd(saveSpplyRequest.getBnkCd());
  138. entity.setAcctNo(saveSpplyRequest.getAcctNo());
  139. entity.setOwacNm(saveSpplyRequest.getOwacNm());
  140. entity.setBbookCopyFileNo(saveSpplyRequest.getBbookCopyFileNo());
  141. entity.setBsnsRegFileNo(saveSpplyRequest.getBsnsRegFileNo());
  142. entity.setLatX(saveSpplyRequest.getLatX());
  143. entity.setLongY(saveSpplyRequest.getLongY());
  144. if ("C".equals(saveSpplyRequest.getViewCd())) {
  145. // 공급사 아이디 부여 22 entity.setContentsNo(fnGetKeyNo(17));
  146. entity.setSpplyId(fnGetKeyNo(30)); // 공급사아이디 생성
  147. supplyMapper.insertSpplyInfo(userId, entity);
  148. //사용자 계정 정보 생성 및 권한생성
  149. UserMngEntity userEntity = new UserMngEntity();
  150. userEntity.setUserId(entity.getSpplyId());
  151. userEntity.setUserNm(entity.getOwnerNm());
  152. userEntity.setTelNo(entity.getMgrTelNo());
  153. userEntity.setEmail(entity.getMgrEmal());
  154. if ("S000".equals(entity.getStCd())) {
  155. userEntity.setUserStatCd("10");
  156. } else if ("S001".equals(entity.getStCd())) {
  157. userEntity.setUserStatCd("90");
  158. } else { //S002
  159. userEntity.setUserStatCd("30");
  160. }
  161. userEntity.setAuthTpCd("60");
  162. //패스워드 암호화
  163. String password = passwordEncoder.encode(entity.getBsnsRegNo().replace("-",""));
  164. userEntity.setUserPw(password);
  165. String afflShopId = brandMapper.selectBrandNo(entity.getBrandId());
  166. userEntity.setAfflShopId(afflShopId);
  167. userEntity.setBrandId(saveSpplyRequest.getBrandId());
  168. userEntity.setSpplyId(entity.getSpplyId());
  169. userMngMapper.insertUserInfo(userId, userEntity);
  170. // 사용자 권한 등록
  171. userMngMapper.insertUserTypeAuth(entity.getSpplyId(), userId, "60");
  172. } else if ("U".equals(saveSpplyRequest.getViewCd())) {
  173. supplyMapper.updateSpplyInfo(userId, entity);
  174. UserMngEntity userUEntity = new UserMngEntity();
  175. userUEntity.setUserId(entity.getSpplyId());
  176. userUEntity.setUserNm(entity.getOwnerNm());
  177. userUEntity.setTelNo(entity.getMgrTelNo());
  178. userUEntity.setEmail(entity.getMgrEmal());
  179. if ("S000".equals(entity.getStCd())) {
  180. userUEntity.setUserStatCd("10");
  181. } else if ("S001".equals(entity.getStCd())) {
  182. userUEntity.setUserStatCd("90");
  183. } else { //S002
  184. userUEntity.setUserStatCd("30");
  185. }
  186. userMngMapper.updateUserInfo(userId, userUEntity);
  187. }
  188. // 공급사 담당자 상세 정보 저장
  189. // 신규건
  190. List<SpplyMgrEntity> gridInsertData = saveSpplyRequest.toCodeEntities(saveSpplyRequest.getGridInsertData());
  191. if (gridInsertData.size() > 0) {
  192. int maxSupplyMgrId = supplyMapper.selectMaxSpplyMgrId(entity.getSpplyId());
  193. for (int i = 0 ; i < gridInsertData.size() ; i++ )
  194. {
  195. gridInsertData.get(i).setSpplyId(entity.getSpplyId());
  196. gridInsertData.get(i).setSpplyMgrId(maxSupplyMgrId + i);
  197. gridInsertData.get(i).setRprstTelNo(gridInsertData.get(i).getRprstTelNo().replaceAll("-",""));
  198. }
  199. supplyMapper.insertSpplyMgrInfo(userId, gridInsertData) ;
  200. }
  201. //수정
  202. List<SpplyMgrEntity> gridUpdateData = saveSpplyRequest.toCodeEntities(saveSpplyRequest.getGridUpdateData());
  203. if (gridUpdateData.size() > 0) {
  204. for (int i = 0 ; i < gridUpdateData.size() ; i++) {
  205. gridUpdateData.get(i).setRprstTelNo(gridUpdateData.get(i).getRprstTelNo().replaceAll("-",""));
  206. }
  207. supplyMapper.updateSpplyMgrInfo(userId, gridUpdateData) ;
  208. }
  209. // 삭제건
  210. List<SpplyMgrEntity> gridDeleteData = saveSpplyRequest.toCodeEntities(saveSpplyRequest.getGridDeleteData());
  211. if (gridDeleteData.size() > 0) {
  212. supplyMapper.deleteSpplyMgrInfo(entity.getSpplyId(), gridDeleteData) ;
  213. }
  214. } catch (GlobalException e) {
  215. //e.getStackTrace();
  216. e.printStackTrace();
  217. throw new GlobalException(e.getSystemMessageCode());
  218. } catch (Exception e) {
  219. //e.getStackTrace();
  220. e.printStackTrace();
  221. throw new RuntimeException();
  222. }
  223. }
  224. /*
  225. 공급사 로그인 pw 초기화
  226. */
  227. public String updateSpplyInitPw(String brandId, String spplyId) throws Exception {
  228. // 사용자 정보를 가져옴
  229. try {
  230. String initPw = supplyMapper.selectSpplyInitPw(brandId, spplyId);
  231. String password = passwordEncoder.encode(initPw);//aes256.aesEncode(entity.getTelNo());
  232. userMngMapper.updateInitUserPw(spplyId, password);
  233. return password;
  234. } catch (GlobalException e) {
  235. e.getStackTrace();
  236. throw new GlobalException(e.getSystemMessageCode());
  237. } catch (Exception e) {
  238. e.getStackTrace();
  239. throw new RuntimeException();
  240. }
  241. }
  242. }