TsfNoMemberController.java 50 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640
  1. package com.style24.front.biz.web;
  2. import java.util.ArrayList;
  3. import java.util.Collection;
  4. import java.util.List;
  5. import org.apache.commons.lang3.StringUtils;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.core.env.Environment;
  8. import org.springframework.stereotype.Controller;
  9. import org.springframework.web.bind.annotation.GetMapping;
  10. import org.springframework.web.bind.annotation.PostMapping;
  11. import org.springframework.web.bind.annotation.RequestBody;
  12. import org.springframework.web.bind.annotation.RequestMapping;
  13. import org.springframework.web.bind.annotation.ResponseBody;
  14. import org.springframework.web.servlet.ModelAndView;
  15. import com.gagaframework.web.parameter.GagaMap;
  16. import com.gagaframework.web.rest.server.GagaResponse;
  17. import com.gagaframework.web.rest.server.GagaResponseStatus;
  18. import com.style24.core.biz.service.TscCustomerService;
  19. import com.style24.core.biz.service.TscKakaotalkService;
  20. import com.style24.core.biz.service.TscKcpService;
  21. import com.style24.core.biz.service.TscMailService;
  22. import com.style24.core.biz.service.TscOrderChangeService;
  23. import com.style24.core.biz.service.TscOrderRefundService;
  24. import com.style24.core.biz.service.TscOrderService;
  25. import com.style24.core.biz.service.TscWmsService;
  26. import com.style24.core.support.env.TscConstants;
  27. import com.style24.core.support.message.TscMessageByLocale;
  28. import com.style24.front.biz.service.TsfCartService;
  29. import com.style24.front.biz.service.TsfCommonService;
  30. import com.style24.front.biz.service.TsfDeliveryService;
  31. import com.style24.front.biz.service.TsfGiftcardService;
  32. import com.style24.front.biz.service.TsfOrderChangeService;
  33. import com.style24.front.biz.service.TsfOrderService;
  34. import com.style24.front.biz.service.TsfRendererService;
  35. import com.style24.front.support.controller.TsfBaseController;
  36. import com.style24.front.support.security.session.TsfSession;
  37. import com.style24.persistence.TscPageRequest;
  38. import com.style24.persistence.domain.Cart;
  39. import com.style24.persistence.domain.CustAccount;
  40. import com.style24.persistence.domain.Order;
  41. import com.style24.persistence.domain.OrderChange;
  42. import com.style24.persistence.domain.SweetTracker;
  43. import lombok.extern.slf4j.Slf4j;
  44. /**
  45. * 비회원 Controller
  46. *
  47. * @author card007
  48. * @since 2021. 04. 27
  49. */
  50. @Controller
  51. @RequestMapping("/noMember")
  52. @Slf4j
  53. public class TsfNoMemberController extends TsfBaseController {
  54. @Autowired
  55. private Environment env;
  56. @Autowired
  57. private TscMessageByLocale message;
  58. @Autowired
  59. private TscOrderService coreOrderService;
  60. @Autowired
  61. private TsfOrderService orderService;
  62. @Autowired
  63. private TsfCartService cartService;
  64. @Autowired
  65. private TscCustomerService coreCustomerService;
  66. @Autowired
  67. private TsfOrderChangeService orderChangeService;
  68. @Autowired
  69. private TscOrderChangeService coreOrderChangeService;
  70. @Autowired
  71. private TscOrderRefundService coreOrderRefundService;
  72. @Autowired
  73. private TsfRendererService rendererService;
  74. @Autowired
  75. private TsfGiftcardService giftcardService;
  76. @Autowired
  77. private TsfCommonService commonService;
  78. @Autowired
  79. private TscWmsService coreWmsService;
  80. @Autowired
  81. private TsfDeliveryService deliveryService;
  82. @Autowired
  83. private TscKcpService coreKcpService;
  84. @Autowired
  85. private TscKakaotalkService coreKakaotalkService;
  86. @Autowired
  87. private TscMailService mailService;
  88. /**
  89. * 비회원 주문 내역
  90. *
  91. * @param Order(ordNm, ordPhnno, ordNo)
  92. * @return ModelAndView
  93. * @author card007
  94. * @since 2021. 04. 27
  95. */
  96. @GetMapping("/order/list/form")
  97. public ModelAndView noMemberOrderListForm() {
  98. ModelAndView mav = new ModelAndView();
  99. // 로그인 상태이면 메인으로 리다이렉트 처리
  100. if (TsfSession.isLogin()) {
  101. mav.setViewName("redirect:/");
  102. return mav;
  103. }
  104. // 비회원 정보 유효성 체크
  105. if (StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdNo"))
  106. || StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdNm"))
  107. || StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdPhnno"))) {
  108. // 세션에 비회원 정보가 없으면 비회원 주문 조회 화면으로 리다이렉트 처리
  109. mav.setViewName("redirect:/customer/noncust/order/confirm/form");
  110. return mav;
  111. }
  112. // 비회원 정보 설정
  113. Order order = new Order();
  114. order.setOrdNo(Integer.parseInt(TsfSession.getAttribute("noMemberOrdNo")));
  115. order.setOrdNm(TsfSession.getAttribute("noMemberOrdNm"));
  116. order.setOrdPhnno(TsfSession.getAttribute("noMemberOrdPhnno"));
  117. // 핸드폰번호 하이픈 처리
  118. if (!order.getOrdPhnno().contains("-")) {
  119. order.setOrdPhnno(order.getOrdPhnno().replaceAll("(\\d{3})(\\d{3,4})(\\d{4})", "$1-$2-$3"));
  120. }
  121. mav.addObject("ordNo", order.getOrdNo());
  122. mav.addObject("ordNm", order.getOrdNm());
  123. mav.addObject("ordPhnno", order.getOrdPhnno());
  124. // 주문 상태 별 수량 조회
  125. mav.addObject("orderCount", coreOrderService.getOrderStatCount(order));
  126. // 2021.04.21 모바일에서 사용하려고 추가
  127. int totalCnt = orderService.getPagingOrdNoListCount(order);
  128. mav.addObject("totalCnt", totalCnt);
  129. // 주문상세상태코드 설정
  130. mav.addObject("ordDtlStatList", rendererService.getCommonCodeList("G013", "Y", new String[] {"G013_10", "G013_11", "G013_25", "G013_35", "G013_55", "G013_97", "G013_98", "G013_99"}));
  131. mav.setViewName(super.getDeviceViewName("mypage/NoMemberOrderListForm"));
  132. return mav;
  133. }
  134. /**
  135. * 비회원 주문상세 화면
  136. *
  137. * @param Order
  138. * @return ModelAndView
  139. * @author card007
  140. * @since 2021. 04. 28
  141. */
  142. @GetMapping("/order/detail/form")
  143. public ModelAndView noMemberOrderDetailForm() {
  144. ModelAndView mav = new ModelAndView();
  145. // 로그인 상태이면 메인으로 리다이렉트 처리
  146. if (TsfSession.isLogin()) {
  147. mav.setViewName("redirect:/");
  148. return mav;
  149. }
  150. // 비회원 정보 유효성 체크
  151. if (StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdNo"))
  152. || StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdNm"))
  153. || StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdPhnno"))) {
  154. // 세션에 비회원 정보가 없으면 비회원 주문 조회 화면으로 리다이렉트 처리
  155. mav.setViewName("redirect:/customer/noncust/order/confirm/form");
  156. return mav;
  157. }
  158. // 비회원 정보 설정
  159. Order order = new Order();
  160. order.setOrdNo(Integer.parseInt(TsfSession.getAttribute("noMemberOrdNo")));
  161. order.setOrdNm(TsfSession.getAttribute("noMemberOrdNm"));
  162. order.setOrdPhnno(TsfSession.getAttribute("noMemberOrdPhnno"));
  163. // 핸드폰번호 하이픈 처리
  164. if (!order.getOrdPhnno().contains("-")) {
  165. order.setOrdPhnno(order.getOrdPhnno().replaceAll("(\\d{3})(\\d{3,4})(\\d{4})", "$1-$2-$3"));
  166. }
  167. mav.addObject("ordNo", order.getOrdNo());
  168. mav.addObject("ordNm", order.getOrdNm());
  169. mav.addObject("ordPhnno", order.getOrdPhnno());
  170. // 로그인여부 설정
  171. mav.addObject("isLogin", false);
  172. // 주문목록 조회
  173. Collection<GagaMap> orderList = orderService.getOrderListForMypage(order);
  174. if (orderList.size() == 0) {
  175. mav.setViewName("redirect:/noMember/order/list/form");
  176. return mav;
  177. }
  178. mav.addObject("orderList", orderList);
  179. mav.addObject("oneData", orderList.iterator().next().get("oneData"));
  180. mav.addObject("allCanYn", orderList.iterator().next().get("allCanYn"));
  181. // 주문정보 조회
  182. mav.addObject("orderInfo", coreOrderService.getOrderInfoList(order).iterator().next());
  183. // 주문 금액정보 조회
  184. mav.addObject("orderAmtInfo", orderService.getOrderAmtForMypage(order));
  185. // 주문 결제정보 조회
  186. mav.addObject("paymentInfo", orderService.getPaymentInfoForMypage(order));
  187. // 주문 배송지 정보 조회
  188. mav.addObject("deliveryAddrInfo", orderService.getOrderDeliveryAddrInfo(order));
  189. // 상품권 현금영수증 신청 정보 조회
  190. mav.addObject("cashReceiptsInfo", giftcardService.getCashReceiptsRequestInfo(order));
  191. // KCP 전표 경로 설정
  192. mav.addObject("kcpReceiptUrl", env.getProperty("pg.kcp.receipt.url"));
  193. mav.setViewName(super.getDeviceViewName("mypage/NoMemberOrderDetailForm"));
  194. return mav;
  195. }
  196. /**
  197. * 비회원 주문목록 조회
  198. *
  199. * @param Order
  200. * @return GagaMap
  201. * @author card007
  202. * @since 2021. 04. 28
  203. */
  204. @PostMapping("/order/list")
  205. @ResponseBody
  206. public GagaMap getOrderList(@RequestBody Order order) {
  207. GagaMap map = new GagaMap();
  208. // 페이징 처리 설정
  209. TscPageRequest pageable = new TscPageRequest((order.getPageNo() > 0 ? order.getPageNo() - 1 : 0), order.getPageSize(), order.getPageUnit());
  210. pageable.setTotalCount(orderService.getPagingOrdNoListCount(order));
  211. order.setPageable(pageable);
  212. // 페이징 처리 및 주문정보 조회
  213. List<Integer> ordNoList = new ArrayList<>();
  214. for (Order tmpOrder : orderService.getPagingOrdNoList(order)) {
  215. ordNoList.add(tmpOrder.getOrdNo());
  216. }
  217. if (ordNoList.size() > 0) {
  218. order.setOrdNoList(ordNoList.stream().mapToInt(Integer::intValue).toArray());
  219. map.set("orderList", orderService.getOrderListForMypage(order));
  220. }
  221. map.set("orderInfo", order);
  222. return map;
  223. }
  224. /**
  225. * 비회원 주문상세 주문내역 삭제
  226. *
  227. * @param Order
  228. * @return GagaMap
  229. * @author card007
  230. * @since 2021. 04. 28
  231. */
  232. @PostMapping("/order/delete")
  233. @ResponseBody
  234. public GagaMap deleteOrder(@RequestBody Order order) {
  235. GagaMap result = new GagaMap();
  236. // 주문내역 삭제 처리
  237. order.setUpdNo(0);
  238. int chk = orderService.updateOrderDisplayYn(order);
  239. if (chk > 0) {
  240. result.set("message", message.getMessage("SUCC_0003"));
  241. result.set("status", GagaResponseStatus.SUCCESS.getCode());
  242. } else {
  243. result.set("message", message.getMessage("FAIL_0003"));
  244. result.set("status", GagaResponseStatus.FAIL.getCode());
  245. }
  246. return result;
  247. }
  248. /**
  249. * 비회원 주문정보 확인
  250. *
  251. * @param order - 주문번호, 주문자명, 휴대폰번호
  252. * @return GagaMap
  253. * @author jsshin
  254. * @since 2021. 04. 28
  255. */
  256. @PostMapping("/order/info/validation")
  257. @ResponseBody
  258. public GagaMap getOrderInfoValidation(@RequestBody Order order) {
  259. GagaMap result = new GagaMap();
  260. if (!order.getOrdPhnno().contains("-")) {
  261. order.setOrdPhnno(order.getOrdPhnno().replaceAll("(\\d{3})(\\d{3,4})(\\d{4})", "$1-$2-$3"));
  262. }
  263. boolean isFind = orderService.getNoMemberOrderInfo(order) > 0;
  264. if (isFind) {
  265. TsfSession.setAttribute("noMemberOrdNm",order.getOrdNm());
  266. TsfSession.setAttribute("noMemberOrdNo", String.valueOf(order.getOrdNo()));
  267. TsfSession.setAttribute("noMemberOrdPhnno",order.getOrdPhnno());
  268. }
  269. result.setBoolean("isFind", isFind);
  270. return result;
  271. }
  272. /**
  273. * 비회원 반품신청 환불금액 계산
  274. *
  275. * @param OrderChange
  276. * @return GagaMap
  277. * @author card007
  278. * @since 2021. 04. 28
  279. */
  280. @SuppressWarnings("unchecked")
  281. @PostMapping("/cancel/refund/amt/calculate")
  282. @ResponseBody
  283. public GagaMap calculateRefundAmt(@RequestBody OrderChange orderChange) {
  284. if (orderChange == null) {
  285. throw new IllegalStateException(message.getMessage("FAIL_1001"));
  286. }
  287. // 비회원 정보 설정
  288. orderChange.setOrdNo(Integer.parseInt(TsfSession.getAttribute("noMemberOrdNo")));
  289. orderChange.setOrdNm(TsfSession.getAttribute("noMemberOrdNm"));
  290. orderChange.setOrdPhnno(TsfSession.getAttribute("noMemberOrdPhnno"));
  291. // 핸드폰번호 하이픈 처리
  292. if (!orderChange.getOrdPhnno().contains("-")) {
  293. orderChange.setOrdPhnno(orderChange.getOrdPhnno().replaceAll("(\\d{3})(\\d{3,4})(\\d{4})", "$1-$2-$3"));
  294. }
  295. // 2. 환불 사전 정보 조회
  296. GagaMap refundPreInfo = coreOrderChangeService.getRefundPreInfo(orderChange);
  297. List<Order> cnclReqList = (List<Order>)refundPreInfo.get("cnclReqList");
  298. return coreOrderRefundService.cnclRtnRefundAmt(cnclReqList);
  299. }
  300. /**
  301. * 비회원 배송지 정보 수정
  302. *
  303. * @param Order
  304. * @return GagaMap
  305. * @author card007
  306. * @since 2021. 04. 28
  307. */
  308. @PostMapping("/change/delvery/addr")
  309. @ResponseBody
  310. public GagaMap changeDelveryAddr(@RequestBody Order order) {
  311. GagaMap result = new GagaMap();
  312. result.set("status", GagaResponseStatus.SUCCESS.getCode());
  313. result.set("message", message.getMessage("DELV_0001"));
  314. try {
  315. order.setCustNo(0);
  316. commonService.updateDeliverAddr(order);
  317. commonService.updateDeliverAddrDelvMemo(order);
  318. // TODO
  319. // WMS IF TABLE 내 정보 업데이트 처리 필요
  320. } catch (Exception e) {
  321. result.set("status", GagaResponseStatus.FAIL.getCode());
  322. result.set("message", message.getMessage("FAIL_0002"));
  323. }
  324. return result;
  325. }
  326. /**
  327. * 비회원 배송 메모 수정
  328. *
  329. * @param Order
  330. * @return GagaMap
  331. * @author card007
  332. * @since 2021. 04. 28
  333. */
  334. @PostMapping("/change/delvery/memo")
  335. @ResponseBody
  336. public GagaMap changeDelveryAddrDelvMemo(@RequestBody Order order) {
  337. GagaMap result = new GagaMap();
  338. result.set("status", GagaResponseStatus.SUCCESS.getCode());
  339. result.set("message", message.getMessage("DELV_0002"));
  340. order.setCustNo(0);
  341. try {
  342. commonService.updateDeliverAddrDelvMemo(order);
  343. } catch (Exception e) {
  344. result.set("status", GagaResponseStatus.FAIL.getCode());
  345. result.set("message", message.getMessage("FAIL_0002"));
  346. }
  347. return result;
  348. }
  349. /**
  350. * 비회원 회수지 정보 수정
  351. *
  352. * @param OrderChange
  353. * @return GagaMap
  354. * @author card007
  355. * @since 2021. 04. 28
  356. */
  357. @PostMapping("/change/chger/addr")
  358. @ResponseBody
  359. public GagaMap changeChgerAddr(@RequestBody OrderChange orderChange) {
  360. GagaMap result = new GagaMap();
  361. result.set("status", GagaResponseStatus.SUCCESS.getCode());
  362. result.set("message", message.getMessage("DELV_0003"));
  363. try {
  364. orderChange.setUpdNo(0);
  365. orderChangeService.updateChgerAddr(orderChange);
  366. // TODO
  367. // WMS IF TABLE 내 정보 업데이트 처리 필요
  368. } catch (Exception e) {
  369. result.set("status", GagaResponseStatus.FAIL.getCode());
  370. result.set("message", message.getMessage("FAIL_0002"));
  371. }
  372. return result;
  373. }
  374. /**
  375. * 비회원 반품메모 수정
  376. *
  377. * @param Order
  378. * @return GagaMap
  379. * @author card007
  380. * @since 2021. 04. 13
  381. */
  382. @PostMapping("/change/chger/rtn/memo")
  383. @ResponseBody
  384. public GagaMap changeChgerRtnMemo(@RequestBody OrderChange orderChange) {
  385. GagaMap result = new GagaMap();
  386. result.set("status", GagaResponseStatus.SUCCESS.getCode());
  387. result.set("message", message.getMessage("DELV_0004"));
  388. try {
  389. orderChange.setUpdNo(0);
  390. orderChangeService.updateChgerRtnMemo(orderChange);
  391. // TODO
  392. // WMS IF TABLE 내 정보 업데이트 처리 필요
  393. } catch (Exception e) {
  394. throw new IllegalStateException(message.getMessage("FAIL_0002"));
  395. }
  396. return result;
  397. }
  398. /**
  399. * 비회원 취소신청 화면
  400. *
  401. * @param Order
  402. * @return ModelAndView
  403. * @author card007
  404. * @since 2021. 04. 28
  405. */
  406. @GetMapping("/cancel/form")
  407. @ResponseBody
  408. public ModelAndView noMemberCancelForm(Order order) {
  409. ModelAndView mav = new ModelAndView();
  410. // 로그인 상태이면 메인으로 리다이렉트 처리
  411. if (TsfSession.isLogin()) {
  412. mav.setViewName("redirect:/");
  413. return mav;
  414. }
  415. // 비회원 정보 유효성 체크
  416. if (StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdNo"))
  417. || StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdNm"))
  418. || StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdPhnno"))) {
  419. // 세션에 비회원 정보가 없으면 비회원 주문 조회 화면으로 리다이렉트 처리
  420. mav.setViewName("redirect:/customer/noncust/order/confirm/form");
  421. return mav;
  422. }
  423. // 비회원 정보 설정
  424. order.setOrdNo(Integer.parseInt(TsfSession.getAttribute("noMemberOrdNo")));
  425. order.setOrdNm(TsfSession.getAttribute("noMemberOrdNm"));
  426. order.setOrdPhnno(TsfSession.getAttribute("noMemberOrdPhnno"));
  427. // 핸드폰번호 하이픈 처리
  428. if (!order.getOrdPhnno().contains("-")) {
  429. order.setOrdPhnno(order.getOrdPhnno().replaceAll("(\\d{3})(\\d{3,4})(\\d{4})", "$1-$2-$3"));
  430. }
  431. mav.addObject("ordNo", order.getOrdNo());
  432. mav.addObject("ordNm", order.getOrdNm());
  433. mav.addObject("ordPhnno", order.getOrdPhnno());
  434. // 취소 가능 리스트 조회
  435. GagaMap map = orderChangeService.getCancelListForMypage(order);
  436. Order oneData = (Order)map.get("oneData");
  437. mav.addObject("cancelList", map);
  438. mav.addObject("oneData", oneData);
  439. // 주문 결제정보 조회
  440. mav.addObject("paymentInfo", orderService.getPaymentInfoForMypage(order));
  441. // 2021.05.03 은행목록추가
  442. mav.addObject("bankList", rendererService.getCommonCodeList("G942", "Y"));
  443. mav.setViewName(super.getDeviceViewName("/mypage/NoMemberCancelForm"));
  444. return mav;
  445. }
  446. /**
  447. * 비회원 취소신청
  448. *
  449. * @param Collection<Order>
  450. * @return GagaMap
  451. * @author card007
  452. * @since 2021. 04. 28
  453. */
  454. @SuppressWarnings("unchecked")
  455. @PostMapping("/cancel")
  456. @ResponseBody
  457. public GagaMap cancel(@RequestBody OrderChange orderChange) {
  458. if (orderChange == null) {
  459. throw new IllegalStateException(message.getMessage("FAIL_1001"));
  460. }
  461. // 비회원 정보 설정
  462. orderChange.setOrdNm(TsfSession.getAttribute("noMemberOrdNm"));
  463. orderChange.setOrdPhnno(TsfSession.getAttribute("noMemberOrdPhnno"));
  464. // 핸드폰번호 하이픈 처리
  465. if (!orderChange.getOrdPhnno().contains("-")) {
  466. orderChange.setOrdPhnno(orderChange.getOrdPhnno().replaceAll("(\\d{3})(\\d{3,4})(\\d{4})", "$1-$2-$3"));
  467. }
  468. // 1. 취소완료 처리
  469. orderChange.setCustNo(0);
  470. // GagaMap result = coreOrderChangeService.orderCancelPreInfo(orderChange, 0);
  471. GagaMap result = coreOrderChangeService.orderCancelPreInfoTemp(orderChange, 0);
  472. // 2. 취소완료 카카오알림톡 발송
  473. int ordChgSq = result.getInt("ordChgSq");
  474. if (ordChgSq > 0) {
  475. try {
  476. // 취소 알림톡 관련 정보 조회
  477. orderChange = coreOrderChangeService.getKakaoOrderCancelInfo(ordChgSq);
  478. // 취소 알림톡 발송
  479. if (StringUtils.isNotBlank(orderChange.getOrdPhnno())) {
  480. coreKakaotalkService.sendOrderCancelComplete(orderChange, 0);
  481. }
  482. // 취소 안내 메일 정보 조회
  483. GagaMap replaceInfo = coreOrderChangeService.getMailOrderCancelReplaceInfo(orderChange);
  484. // 취소 안내 메일 발송
  485. if (StringUtils.isNotBlank(replaceInfo.getString("ordEmail"))) {
  486. mailService.sendOrderCancel(replaceInfo, 0);
  487. }
  488. } catch (Exception e) {
  489. throw new IllegalStateException(message.getMessage("FAIL_0004"));
  490. }
  491. }
  492. result.set("status", GagaResponseStatus.SUCCESS.getCode());
  493. result.set("message", message.getMessage("CANCEL_0001"));
  494. return result;
  495. }
  496. /**
  497. * 마이페이지 장바구니 관련 정보 조회
  498. *
  499. * @param Cart
  500. * @return Collecion<Cart>
  501. * @author card007
  502. * @since 2021. 04. 28
  503. */
  504. @PostMapping("/cart/add/info")
  505. @ResponseBody
  506. public Collection<Cart> getAddCartInfo(@RequestBody Cart cart) {
  507. return cartService.getAddCartInfoForMypage(cart);
  508. }
  509. /**
  510. * 비회원 반품신청 화면
  511. *
  512. * @param Order
  513. * @return ModelAndView
  514. * @author card007
  515. * @since 2021. 05. 02
  516. */
  517. @GetMapping("/return/form")
  518. @ResponseBody
  519. public ModelAndView returnForm(Order order) {
  520. ModelAndView mav = new ModelAndView();
  521. // 로그인 상태이면 메인으로 리다이렉트 처리
  522. if (TsfSession.isLogin()) {
  523. mav.setViewName("redirect:/");
  524. return mav;
  525. }
  526. // 비회원 정보 유효성 체크
  527. if (StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdNo"))
  528. || StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdNm"))
  529. || StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdPhnno"))) {
  530. // 세션에 비회원 정보가 없으면 비회원 주문 조회 화면으로 리다이렉트 처리
  531. mav.setViewName("redirect:/customer/noncust/order/confirm/form");
  532. return mav;
  533. }
  534. // 비회원 정보 설정
  535. order.setOrdNo(Integer.parseInt(TsfSession.getAttribute("noMemberOrdNo")));
  536. order.setOrdNm(TsfSession.getAttribute("noMemberOrdNm"));
  537. order.setOrdPhnno(TsfSession.getAttribute("noMemberOrdPhnno"));
  538. // 핸드폰번호 하이픈 처리
  539. if (!order.getOrdPhnno().contains("-")) {
  540. order.setOrdPhnno(order.getOrdPhnno().replaceAll("(\\d{3})(\\d{3,4})(\\d{4})", "$1-$2-$3"));
  541. }
  542. mav.addObject("ordNo", order.getOrdNo());
  543. mav.addObject("ordNm", order.getOrdNm());
  544. mav.addObject("ordPhnno", order.getOrdPhnno());
  545. // 로그인여부 설정
  546. mav.addObject("isLogin", false);
  547. // 반품 가능 리스트 조회
  548. order.setChgGb(TscConstants.OrderChangeGb.RETURN.value());
  549. GagaMap map = orderChangeService.getReturnListForMypage(order);
  550. Order oneData = (Order)map.get("oneData");
  551. mav.addObject("returnList", map);
  552. mav.addObject("oneData", oneData);
  553. // 주문 결제정보 조회
  554. mav.addObject("paymentInfo", orderService.getPaymentInfoForMypage(order));
  555. // 주문 배송지 정보 조회
  556. mav.addObject("deliveryAddrInfo", orderService.getOrderDeliveryAddrInfo(order));
  557. // 반품 사유 목록 조회
  558. mav.addObject("returnReason", rendererService.getCommonCodeList("G688", "Y"));
  559. // 2021.05.03 은행목록추가
  560. mav.addObject("bankList", rendererService.getCommonCodeList("G942", "Y"));
  561. mav.setViewName(super.getDeviceViewName("/mypage/NoMemberReturnForm"));
  562. return mav;
  563. }
  564. /**
  565. * 반품신청
  566. *
  567. * @param OrderChange
  568. * @return GagaMap
  569. * @author card007
  570. * @since 2021. 05. 02
  571. */
  572. @SuppressWarnings("unchecked")
  573. @PostMapping("/return")
  574. @ResponseBody
  575. public GagaMap rtnReq(@RequestBody OrderChange orderChange) {
  576. if (orderChange == null) {
  577. throw new IllegalStateException(message.getMessage("FAIL_1001"));
  578. }
  579. // 비회원 정보 설정
  580. orderChange.setOrdNm(TsfSession.getAttribute("noMemberOrdNm"));
  581. orderChange.setOrdPhnno(TsfSession.getAttribute("noMemberOrdPhnno"));
  582. // 핸드폰번호 하이픈 처리
  583. if (!orderChange.getOrdPhnno().contains("-")) {
  584. orderChange.setOrdPhnno(orderChange.getOrdPhnno().replaceAll("(\\d{3})(\\d{3,4})(\\d{4})", "$1-$2-$3"));
  585. }
  586. // 2. 환불 사전 정보 조회
  587. GagaMap refundPreInfo = coreOrderChangeService.getRefundPreInfo(orderChange);
  588. List<Order> returnReqList = (List<Order>)refundPreInfo.get("cnclReqList");
  589. // 3. 환불금액계산
  590. GagaMap result = coreOrderRefundService.cnclRtnRefundAmt(returnReqList);
  591. // 4. 주문변경 기본정보 설정
  592. result.set("ordNo", orderChange.getOrdNo()); // 주문번호
  593. result.setInt("custNo", 0); // 고객번호
  594. result.set("chgReason", orderChange.getChgReason()); // 변경사유
  595. result.set("chgMemo", orderChange.getChgMemo()); // 변경메모
  596. result.set("accountNo", orderChange.getAccountNo()); // 환불계좌번호
  597. result.set("accountNm", orderChange.getAccountNm()); // 환불계좌예금주명
  598. result.set("bankCd", orderChange.getBankCd()); // 환불계좌은행코드
  599. result.set("isCustomer", orderChange.getIsCustomer()); // 변경사유 (고객, 회사)
  600. result.set("wdGb", orderChange.getWdGb()); // 회수방법
  601. result.set("wdInvoiceNo", orderChange.getWdInvoiceNo()); // 회수송장번호
  602. // 5. 주문변경 회수지정보 추가
  603. result.set("chgerNm", orderChange.getChgerNm()); // 변경자명
  604. result.set("chgerEmail", orderChange.getChgerEmail()); // 변경자이메일주소
  605. result.set("chgerZipcode", orderChange.getChgerZipcode()); // 회수지우편번호
  606. result.set("chgerBaseAddr", orderChange.getChgerBaseAddr()); // 회수지기본주소
  607. result.set("chgerDtlAddr", orderChange.getChgerDtlAddr()); // 회수지상세주소
  608. result.set("chgerPhnno", orderChange.getChgerPhnno()); // 변경자핸드폰번호
  609. result.set("chgerTelno", orderChange.getChgerTelno()); // 변경자전화번호
  610. result.set("chgerRtnMemo", orderChange.getChgerRtnMemo()); // 반품메모
  611. // 6. 주문변경 DB 등록 (TB_ORDER_CHANGE, TB_ORDER_CHANGE_DETAIL, TB_REFUND)
  612. GagaMap map = coreOrderChangeService.returnRequest(result);
  613. int ordChgSq = map.getInt("ordChgSq");
  614. int addPayCost = map.getInt("addPayCost");
  615. if (ordChgSq > 0) {
  616. try {
  617. // 반품 알림톡 관련 정보 조회
  618. orderChange = coreOrderChangeService.getKakaoOrderReturnInfo(ordChgSq);
  619. // 반품 알림톡 발송
  620. if (StringUtils.isNotBlank(orderChange.getOrdPhnno())) {
  621. coreKakaotalkService.sendOrderReturnRequest(orderChange, 0);
  622. }
  623. // 반품배송비 있을 시 추가결제완료 로직에서 메일 전송
  624. if (addPayCost == 0) {
  625. // 반품 안내 메일 정보 조회
  626. GagaMap replaceInfo = coreOrderChangeService.getMailOrderReturnReplaceInfo(orderChange);
  627. // 반품 안내 메일 발송
  628. if (StringUtils.isNotBlank(replaceInfo.getString("ordEmail"))) {
  629. mailService.sendOrderReturn(replaceInfo, 0);
  630. }
  631. }
  632. } catch (Exception e) {
  633. throw new IllegalStateException(message.getMessage("FAIL_0004"));
  634. }
  635. }
  636. result.set("status", GagaResponseStatus.SUCCESS.getCode());
  637. if (orderChange.getAddPayCost() == 0) {
  638. result.set("message", message.getMessage("RETURN_0001"));
  639. }
  640. return result;
  641. }
  642. /**
  643. * 반품요청철회
  644. *
  645. * @param OrderChange
  646. * @return GagaResponse
  647. * @author card007
  648. * @since 2021. 05. 02
  649. */
  650. @PostMapping("/return/cancel")
  651. @ResponseBody
  652. public GagaResponse rtnReqCancel(@RequestBody OrderChange orderChange) {
  653. if (orderChange== null) {
  654. throw new IllegalStateException(message.getMessage("FAIL_1001"));
  655. }
  656. // 1. 반품요청철회 정보 설정
  657. int custNo = TsfSession.isLogin() ? TsfSession.getInfo().getCustNo() : 0;
  658. GagaMap map = new GagaMap();
  659. map.set("ordNo" , orderChange.getOrdNo());
  660. map.set("ordChgSq" , orderChange.getOrdChgSq());
  661. map.set("custNo" , custNo);
  662. map.set("ipAddress" , TsfSession.getIpAddress());
  663. // 2.반품요청철회
  664. coreOrderChangeService.rtnReqCancel(map, custNo);
  665. return super.ok(message.getMessage("RETURN_0002"));
  666. // return super.ok();
  667. }
  668. /**
  669. * 환불계좌 등록 팝업
  670. *
  671. * @param OrderChange
  672. * @return ModelAndView
  673. * @author card007
  674. * @since 2021. 05. 02
  675. */
  676. @ResponseBody
  677. @RequestMapping(value = "/refund/account/register/popup/form")
  678. public ModelAndView registerRefundAccountPopupForm(@RequestBody OrderChange orderChange) {
  679. ModelAndView mav = new ModelAndView();
  680. // 계좌인증용 은행코드 조회
  681. mav.addObject("bankList", rendererService.getAvailCommonCodeList("G942"));
  682. // 계좌주명 설정
  683. mav.addObject("accountNm", orderChange.getAccountNm());
  684. // 주문번호 설정
  685. mav.addObject("ordNo", orderChange.getOrdNo());
  686. mav.setViewName(super.getDeviceViewName("popup/RefundAccountAddPopupForm"));
  687. return mav;
  688. }
  689. /**
  690. * 비회원 교환신청 화면
  691. *
  692. * @param Order
  693. * @return ModelAndView
  694. * @author card007
  695. * @since 2021. 05. 02
  696. */
  697. @GetMapping("/exchange/form")
  698. @ResponseBody
  699. public ModelAndView exchangeForm(Order order) {
  700. ModelAndView mav = new ModelAndView();
  701. // 로그인 상태이면 메인으로 리다이렉트 처리
  702. if (TsfSession.isLogin()) {
  703. mav.setViewName("redirect:/");
  704. return mav;
  705. }
  706. // 비회원 정보 유효성 체크
  707. if (StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdNo"))
  708. || StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdNm"))
  709. || StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdPhnno"))) {
  710. // 세션에 비회원 정보가 없으면 비회원 주문 조회 화면으로 리다이렉트 처리
  711. mav.setViewName("redirect:/customer/noncust/order/confirm/form");
  712. return mav;
  713. }
  714. // 비회원 정보 설정
  715. order.setOrdNo(Integer.parseInt(TsfSession.getAttribute("noMemberOrdNo")));
  716. order.setOrdNm(TsfSession.getAttribute("noMemberOrdNm"));
  717. order.setOrdPhnno(TsfSession.getAttribute("noMemberOrdPhnno"));
  718. // 핸드폰번호 하이픈 처리
  719. if (!order.getOrdPhnno().contains("-")) {
  720. order.setOrdPhnno(order.getOrdPhnno().replaceAll("(\\d{3})(\\d{3,4})(\\d{4})", "$1-$2-$3"));
  721. }
  722. mav.addObject("ordNo", order.getOrdNo());
  723. mav.addObject("ordNm", order.getOrdNm());
  724. mav.addObject("ordPhnno", order.getOrdPhnno());
  725. // 로그인여부 설정
  726. mav.addObject("isLogin", false);
  727. // 교환 가능 리스트 조회
  728. order.setChgGb(TscConstants.OrderChangeGb.EXCHANGE.value());
  729. GagaMap map = orderChangeService.getReturnListForMypage(order);
  730. Order oneData = (Order)map.get("oneData");
  731. mav.addObject("exchangeList", map);
  732. mav.addObject("oneData", oneData);
  733. // 주문 배송지 정보 조회
  734. mav.addObject("deliveryAddrInfo", orderService.getOrderDeliveryAddrInfo(order));
  735. // 교환 사유 목록 조회
  736. mav.addObject("exchangeReason", rendererService.getCommonCodeList("G689", "Y"));
  737. mav.setViewName(super.getDeviceViewName("/mypage/NoMemberExchangeForm"));
  738. return mav;
  739. }
  740. /**
  741. * 비회원 교환 옵션 변경 팝업
  742. *
  743. * @param Order
  744. * @return ModelAndView
  745. * @author card007
  746. * @since 2021. 05. 02
  747. */
  748. @PostMapping("/change/option/popup/form")
  749. @ResponseBody
  750. public ModelAndView changeOptionPopupForm(OrderChange orderChange) {
  751. ModelAndView mav = new ModelAndView();
  752. // 교환 옵션 정보 조회
  753. Collection<OrderChange> exchangeOptionInfo = orderChangeService.getExchangeOptionInfo(orderChange);
  754. mav.addObject("exchangeOptionInfo", exchangeOptionInfo);
  755. mav.addObject("oneData", exchangeOptionInfo.iterator().next());
  756. mav.addObject("ordDtlNo", orderChange.getOrdDtlNo());
  757. mav.addObject("chgQty", orderChange.getChgQty());
  758. mav.setViewName(super.getDeviceViewName("mypage/ChangeOptionPopupForm"));
  759. return mav;
  760. }
  761. /**
  762. * 교환신청
  763. *
  764. * @param OrderChange
  765. * @return GagaMap
  766. * @author card007
  767. * @since 2021. 05. 02
  768. */
  769. @SuppressWarnings("unchecked")
  770. @PostMapping("/exchange")
  771. @ResponseBody
  772. public GagaMap excReq(@RequestBody OrderChange orderChange) {
  773. GagaMap result = new GagaMap();
  774. // 교환요청 데이터 확인
  775. if (orderChange == null) {
  776. result.set("status", GagaResponseStatus.FAIL.getCode());
  777. result.set("message", message.getMessage("FAIL_1001"));
  778. return result;
  779. }
  780. // 고객번호 설정
  781. orderChange.setUpdNo(0);
  782. orderChange.setRegNo(0);
  783. // 교환처리
  784. result = coreOrderChangeService.exchReq(orderChange);
  785. int ordChgSq = result.getInt("ordChgSq");
  786. int addPayCost = result.getInt("addPayCost");
  787. if (ordChgSq > 0) {
  788. try {
  789. // 교환 알림톡 관련 정보 조회
  790. orderChange = coreOrderChangeService.getKakaoOrderReturnInfo(ordChgSq);
  791. // 교환 알림톡 발송
  792. if (StringUtils.isNotBlank(orderChange.getOrdPhnno())) {
  793. coreKakaotalkService.sendOrderExchangeRequest(orderChange, 0);
  794. }
  795. // 교환배송비 있을 시 추가결제완료 로직에서 메일 발송
  796. if (addPayCost == 0) {
  797. // 교환 안내 메일 정보 조회
  798. GagaMap replaceInfo = coreOrderChangeService.getMailOrderExchangeReplaceInfo(orderChange);
  799. // 교환 안내 메일 발송
  800. if (StringUtils.isNotBlank(replaceInfo.getString("ordEmail"))) {
  801. mailService.sendOrderExchange(replaceInfo, 0);
  802. }
  803. }
  804. } catch (Exception e) {
  805. throw new IllegalStateException(message.getMessage("FAIL_0004"));
  806. }
  807. }
  808. // 처리 결과 코드에 따른 메세지 설정
  809. if (result.get("status").equals(GagaResponseStatus.SUCCESS.getCode())) {
  810. if (orderChange.getAddPayCost() == 0) {
  811. result.set("message", message.getMessage("EXCHANGE_0001"));
  812. }
  813. } else {
  814. result.set("message", message.getMessage("FAIL_0004"));
  815. }
  816. return result;
  817. }
  818. /**
  819. * 교환요청철회
  820. *
  821. * @param OrderChange
  822. * @return GagaResponse
  823. * @author card007
  824. * @since 2021. 04. 20
  825. */
  826. @PostMapping("/exchange/cancel")
  827. @ResponseBody
  828. public GagaResponse exchangeRequestCancel(@RequestBody OrderChange orderChange) {
  829. if (orderChange== null) {
  830. throw new IllegalStateException(message.getMessage("FAIL_1001"));
  831. }
  832. // 1. 교환요청철회 정보 설정
  833. orderChange.setCustNo(0);
  834. orderChange.setRegNo(0);
  835. orderChange.setUpdNo(0);
  836. String ipAddress = TsfSession.getIpAddress();
  837. orderChange.setIpAddress(ipAddress);
  838. // 2.교환요청철회
  839. coreOrderChangeService.exchangeCancel(orderChange);
  840. return super.ok(message.getMessage("EXCHANGE_0002"));
  841. // return super.ok();
  842. }
  843. /**
  844. * 비회원 상태별 수량 조회
  845. *
  846. * @param Order
  847. * @return GagaMap
  848. * @author card007
  849. * @since 2021. 05. 02
  850. */
  851. @PostMapping("/status/count")
  852. @ResponseBody
  853. public GagaMap fnReloadStatusCount(@RequestBody Order order) {
  854. GagaMap result = new GagaMap();
  855. // 상태별 수량 조회
  856. result.set("orderCount", coreOrderService.getOrderStatCount(order));
  857. result.set("status", GagaResponseStatus.SUCCESS.getCode());
  858. return result;
  859. }
  860. /**
  861. * 비회원 취반교 목록 화면
  862. *
  863. * @param Order
  864. * @return ModelAndView
  865. * @author card007
  866. * @since 2021. 05. 02
  867. */
  868. @GetMapping("/cre/list/form")
  869. public ModelAndView mypageCreListForm() {
  870. ModelAndView mav = new ModelAndView();
  871. // 로그인 상태이면 메인으로 리다이렉트 처리
  872. if (TsfSession.isLogin()) {
  873. mav.setViewName("redirect:/");
  874. return mav;
  875. }
  876. // 비회원 정보 유효성 체크
  877. if (StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdNo"))
  878. || StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdNm"))
  879. || StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdPhnno"))) {
  880. // 세션에 비회원 정보가 없으면 비회원 주문 조회 화면으로 리다이렉트 처리
  881. mav.setViewName("redirect:/customer/noncust/order/confirm/form");
  882. return mav;
  883. }
  884. // 비회원 정보 설정
  885. Order order = new Order();
  886. order.setOrdNo(Integer.parseInt(TsfSession.getAttribute("noMemberOrdNo")));
  887. order.setOrdNm(TsfSession.getAttribute("noMemberOrdNm"));
  888. order.setOrdPhnno(TsfSession.getAttribute("noMemberOrdPhnno"));
  889. // 핸드폰번호 하이픈 처리
  890. if (!order.getOrdPhnno().contains("-")) {
  891. order.setOrdPhnno(order.getOrdPhnno().replaceAll("(\\d{3})(\\d{3,4})(\\d{4})", "$1-$2-$3"));
  892. }
  893. mav.addObject("ordNo", order.getOrdNo());
  894. mav.addObject("ordNm", order.getOrdNm());
  895. mav.addObject("ordPhnno", order.getOrdPhnno());
  896. // 주문 상태 별 수량 조회
  897. mav.addObject("orderCount", coreOrderService.getOrderStatCount(order));
  898. // 2021.04.21 모바일에서 사용하려고 추가
  899. OrderChange orderChange = new OrderChange();
  900. orderChange.setOrdNo(order.getOrdNo());
  901. orderChange.setOrdNm(order.getOrdNm());
  902. orderChange.setOrdPhnno(order.getOrdPhnno());
  903. int totalCnt = orderChangeService.getPagingCreListCount(orderChange);
  904. mav.addObject("totalCnt", totalCnt);
  905. // 주문상세상태코드 설정
  906. mav.addObject("chgStatList", rendererService.getCommonCodeList("G685", "Y", new String[] {"G685_10", "G685_11", "G685_19"}));
  907. mav.setViewName(super.getDeviceViewName("mypage/NoMemberCreListForm"));
  908. return mav;
  909. }
  910. /**
  911. * 마이페이지 취반교 목록 조회
  912. *
  913. * @param OrderChange
  914. * @return ModelAndView
  915. * @author card007
  916. * @since 2021. 05. 02
  917. */
  918. @PostMapping("/cre/list")
  919. @ResponseBody
  920. public GagaMap getCreList(@RequestBody OrderChange orderChange) {
  921. GagaMap map = new GagaMap();
  922. // 페이징 처리 설정
  923. TscPageRequest pageable = new TscPageRequest((orderChange.getPageNo() > 0 ? orderChange.getPageNo() - 1 : 0), orderChange.getPageSize(), orderChange.getPageUnit());
  924. pageable.setTotalCount(orderChangeService.getPagingCreListCount(orderChange));
  925. orderChange.setPageable(pageable);
  926. // 페이징 처리 및 주문정보 조회
  927. List<Integer> ordChgSqList = new ArrayList<>();
  928. for (OrderChange tmpOrderChange : orderChangeService.getPagingCreList(orderChange)) {
  929. ordChgSqList.add(tmpOrderChange.getOrdChgSq());
  930. }
  931. if (ordChgSqList.size() > 0) {
  932. orderChange.setOrdChgSqArr(ordChgSqList.stream().mapToInt(Integer::intValue).toArray());
  933. map.set("creList", orderChangeService.getCreList(orderChange));
  934. }
  935. map.set("creInfo", orderChange);
  936. return map;
  937. }
  938. /**
  939. * 마이페이지 취반교 취소 상세 화면
  940. *
  941. * @param OrderChange
  942. * @return ModelAndView
  943. * @author card007
  944. * @since 2021. 05. 02
  945. */
  946. @GetMapping("/cre/cancel/detail/form")
  947. public ModelAndView mypageCreCancelDetailForm(OrderChange orderChange) {
  948. ModelAndView mav = new ModelAndView();
  949. // 로그인 상태이면 메인으로 리다이렉트 처리
  950. if (TsfSession.isLogin()) {
  951. mav.setViewName("redirect:/");
  952. return mav;
  953. }
  954. // 비회원 정보 유효성 체크
  955. if (StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdNo"))
  956. || StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdNm"))
  957. || StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdPhnno"))) {
  958. // 세션에 비회원 정보가 없으면 비회원 주문 조회 화면으로 리다이렉트 처리
  959. mav.setViewName("redirect:/customer/noncust/order/confirm/form");
  960. return mav;
  961. }
  962. // 비회원 정보 설정
  963. orderChange.setOrdNo(Integer.parseInt(TsfSession.getAttribute("noMemberOrdNo")));
  964. orderChange.setOrdNm(TsfSession.getAttribute("noMemberOrdNm"));
  965. orderChange.setOrdPhnno(TsfSession.getAttribute("noMemberOrdPhnno"));
  966. // 핸드폰번호 하이픈 처리
  967. if (!orderChange.getOrdPhnno().contains("-")) {
  968. orderChange.setOrdPhnno(orderChange.getOrdPhnno().replaceAll("(\\d{3})(\\d{3,4})(\\d{4})", "$1-$2-$3"));
  969. }
  970. mav.addObject("ordNo", orderChange.getOrdNo());
  971. mav.addObject("ordNm", orderChange.getOrdNm());
  972. mav.addObject("ordPhnno", orderChange.getOrdPhnno());
  973. // 취소상세 데이터 조회
  974. GagaMap map = coreOrderChangeService.getCreCancelDetailInfo(orderChange);
  975. OrderChange oneData = (OrderChange) map.get("oneData");
  976. mav.addObject("cancelDetailList", map);
  977. mav.addObject("oneData", oneData);
  978. mav.addObject("refundYn", map.getString("refundYn"));
  979. // 주문 결제정보 조회
  980. Order order = new Order();
  981. order.setOrdNo(orderChange.getOrdNo());
  982. mav.addObject("paymentInfo", orderService.getPaymentInfoForMypage(order));
  983. // KCP 전표 경로 설정
  984. mav.addObject("kcpReceiptUrl", env.getProperty("pg.kcp.receipt.url"));
  985. mav.setViewName(super.getDeviceViewName("mypage/NoMemberCreCancelDetailForm"));
  986. return mav;
  987. }
  988. /**
  989. * 마이페이지 취반교 반품 상세 화면
  990. *
  991. * @param OrderChange
  992. * @return ModelAndView
  993. * @author card007
  994. * @since 2021. 05. 02
  995. */
  996. @GetMapping("/cre/return/detail/form")
  997. public ModelAndView mypageCreReturnDetailForm(OrderChange orderChange) {
  998. ModelAndView mav = new ModelAndView();
  999. // 로그인 상태이면 메인으로 리다이렉트 처리
  1000. if (TsfSession.isLogin()) {
  1001. mav.setViewName("redirect:/");
  1002. return mav;
  1003. }
  1004. // 비회원 정보 유효성 체크
  1005. if (StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdNo"))
  1006. || StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdNm"))
  1007. || StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdPhnno"))) {
  1008. // 세션에 비회원 정보가 없으면 비회원 주문 조회 화면으로 리다이렉트 처리
  1009. mav.setViewName("redirect:/customer/noncust/order/confirm/form");
  1010. return mav;
  1011. }
  1012. // 비회원 정보 설정
  1013. orderChange.setOrdNo(Integer.parseInt(TsfSession.getAttribute("noMemberOrdNo")));
  1014. orderChange.setOrdNm(TsfSession.getAttribute("noMemberOrdNm"));
  1015. orderChange.setOrdPhnno(TsfSession.getAttribute("noMemberOrdPhnno"));
  1016. // 핸드폰번호 하이픈 처리
  1017. if (!orderChange.getOrdPhnno().contains("-")) {
  1018. orderChange.setOrdPhnno(orderChange.getOrdPhnno().replaceAll("(\\d{3})(\\d{3,4})(\\d{4})", "$1-$2-$3"));
  1019. }
  1020. mav.addObject("ordNo", orderChange.getOrdNo());
  1021. mav.addObject("ordNm", orderChange.getOrdNm());
  1022. mav.addObject("ordPhnno", orderChange.getOrdPhnno());
  1023. // 로그인여부 설정
  1024. mav.addObject("isLogin", false);
  1025. // 반품상세 데이터 조회
  1026. GagaMap map = coreOrderChangeService.getCreReturnDetailInfo(orderChange);
  1027. OrderChange oneData = (OrderChange) map.get("oneData");
  1028. mav.addObject("returnDetailList", map);
  1029. mav.addObject("oneData", oneData);
  1030. mav.addObject("refundYn", map.getString("refundYn"));
  1031. // 주문 결제정보 조회
  1032. Order order = new Order();
  1033. order.setOrdNo(orderChange.getOrdNo());
  1034. mav.addObject("paymentInfo", orderService.getPaymentInfoForMypage(order));
  1035. // KCP 전표 경로 설정
  1036. mav.addObject("kcpReceiptUrl", env.getProperty("pg.kcp.receipt.url"));
  1037. mav.setViewName(super.getDeviceViewName("mypage/NoMemberCreReturnDetailForm"));
  1038. return mav;
  1039. }
  1040. /**
  1041. * 마이페이지 취반교 교환 상세 화면
  1042. *
  1043. * @param OrderChange
  1044. * @return ModelAndView
  1045. * @author card007
  1046. * @since 2021. 05. 02
  1047. */
  1048. @GetMapping("/cre/exchange/detail/form")
  1049. public ModelAndView mypageCreExchangeDetailForm(OrderChange orderChange) {
  1050. ModelAndView mav = new ModelAndView();
  1051. // 로그인 상태이면 메인으로 리다이렉트 처리
  1052. if (TsfSession.isLogin()) {
  1053. mav.setViewName("redirect:/");
  1054. return mav;
  1055. }
  1056. // 비회원 정보 유효성 체크
  1057. if (StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdNo"))
  1058. || StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdNm"))
  1059. || StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdPhnno"))) {
  1060. // 세션에 비회원 정보가 없으면 비회원 주문 조회 화면으로 리다이렉트 처리
  1061. mav.setViewName("redirect:/customer/noncust/order/confirm/form");
  1062. return mav;
  1063. }
  1064. // 비회원 정보 설정
  1065. orderChange.setOrdNo(Integer.parseInt(TsfSession.getAttribute("noMemberOrdNo")));
  1066. orderChange.setOrdNm(TsfSession.getAttribute("noMemberOrdNm"));
  1067. orderChange.setOrdPhnno(TsfSession.getAttribute("noMemberOrdPhnno"));
  1068. // 핸드폰번호 하이픈 처리
  1069. if (!orderChange.getOrdPhnno().contains("-")) {
  1070. orderChange.setOrdPhnno(orderChange.getOrdPhnno().replaceAll("(\\d{3})(\\d{3,4})(\\d{4})", "$1-$2-$3"));
  1071. }
  1072. mav.addObject("ordNo", orderChange.getOrdNo());
  1073. mav.addObject("ordNm", orderChange.getOrdNm());
  1074. mav.addObject("ordPhnno", orderChange.getOrdPhnno());
  1075. // 로그인여부 설정
  1076. mav.addObject("isLogin", false);
  1077. // 교환상세 데이터 조회
  1078. GagaMap map = coreOrderChangeService.getCreExchangeDetailInfo(orderChange);
  1079. OrderChange oneData = (OrderChange) map.get("oneData");
  1080. mav.addObject("exchangeDetailList", map);
  1081. mav.addObject("oneData", oneData);
  1082. // KCP 전표 경로 설정
  1083. mav.addObject("kcpReceiptUrl", env.getProperty("pg.kcp.receipt.url"));
  1084. mav.setViewName(super.getDeviceViewName("mypage/NoMemberCreExchangeDetailForm"));
  1085. return mav;
  1086. }
  1087. /**
  1088. * WMS 주문 취소 가능 여부 조회
  1089. *
  1090. * @param OrderChange
  1091. * @return GagaMap
  1092. * @author card007
  1093. * @since 2021. 04. 22
  1094. */
  1095. @PostMapping("/wms/cancel/available")
  1096. @ResponseBody
  1097. public GagaMap getWmsCancelYn(@RequestBody OrderChange orderChange) {
  1098. GagaMap result = new GagaMap();
  1099. String cancelYn = "Y";
  1100. Integer ordNo = orderChange.getOrdNo();
  1101. for (Integer ordDtlNo : orderChange.getOrdDtlNoArr()) {
  1102. String rst = coreWmsService.getCancelYn(ordNo, ordDtlNo);
  1103. if ("Y".equals(cancelYn) && "N".equals(rst)) {
  1104. cancelYn = "N";
  1105. }
  1106. }
  1107. result.setString("cancelYn", cancelYn);
  1108. return result;
  1109. }
  1110. /**
  1111. * 마이페이지 주문목록 조회 (모바일)
  1112. *
  1113. * @param Order
  1114. * @return ModelAndView
  1115. * @author jsh77b
  1116. * @since 2021. 04. 19
  1117. */
  1118. @ResponseBody
  1119. @PostMapping("/order/listInfo")
  1120. public ModelAndView getOrderListInfo(@RequestBody Order order) {
  1121. // 주문목록조회
  1122. ModelAndView mav = new ModelAndView();
  1123. // 페이징 처리 설정
  1124. TscPageRequest pageable = new TscPageRequest((order.getPageNo() > 0 ? order.getPageNo() - 1 : 0), order.getPageSize(), order.getPageUnit());
  1125. int totalCnt = orderService.getPagingOrdNoListCount(order);
  1126. pageable.setTotalCount(totalCnt);
  1127. order.setPageable(pageable);
  1128. // 페이징 처리 및 주문정보 조회
  1129. List<Integer> ordNoList = new ArrayList<>();
  1130. for (Order tmpOrder : orderService.getPagingOrdNoList(order)) {
  1131. ordNoList.add(tmpOrder.getOrdNo());
  1132. }
  1133. if (ordNoList.size() > 0) {
  1134. order.setOrdNoList(ordNoList.stream().mapToInt(Integer::intValue).toArray());
  1135. }
  1136. mav.addObject("orderList", orderService.getOrderListForMypage(order));
  1137. mav.setViewName(super.getDeviceViewName("mypage/NoMemberOrderListInfo"));
  1138. return mav;
  1139. }
  1140. /**
  1141. * 마이페이지 주문목록 사전 정보 조회 (모바일)
  1142. *
  1143. * @param Order
  1144. * @return ModelAndView
  1145. * @author card007
  1146. * @since 2021. 05. 27
  1147. */
  1148. @ResponseBody
  1149. @PostMapping("/order/list/pre/info")
  1150. public GagaMap getOrderListPreInfo(@RequestBody Order order) {
  1151. GagaMap result = new GagaMap();
  1152. // 페이징 처리 설정
  1153. TscPageRequest pageable = new TscPageRequest((order.getPageNo() > 0 ? order.getPageNo() - 1 : 0), order.getPageSize(), order.getPageUnit());
  1154. pageable.setTotalCount(orderService.getPagingOrdNoListCount(order));
  1155. order.setPageable(pageable);
  1156. result.set("paging" , pageable);
  1157. result.set("ordNoList" , orderService.getPagingOrdNoList(order));
  1158. return result;
  1159. }
  1160. /**
  1161. * 마이페이지 주문목록 조회 (모바일)
  1162. *
  1163. * @param Order
  1164. * @return ModelAndView
  1165. * @author card007
  1166. * @since 2021. 05. 27
  1167. */
  1168. @ResponseBody
  1169. @PostMapping("/order/list/info")
  1170. public ModelAndView getOrderListInfo3(@RequestBody Order order) {
  1171. // 주문목록조회
  1172. ModelAndView mav = new ModelAndView();
  1173. mav.addObject("orderList", orderService.getOrderListForMypage(order));
  1174. mav.setViewName(super.getDeviceViewName("mypage/NoMemberOrderListInfo"));
  1175. return mav;
  1176. }
  1177. /**
  1178. * 마이페이지 취반교 목록 조회
  1179. *
  1180. * @param OrderChange
  1181. * @return ModelAndView
  1182. * @author jsh77b
  1183. * @since 2021. 02. 18
  1184. */
  1185. @PostMapping("/cre/listInfo")
  1186. @ResponseBody
  1187. public ModelAndView getCreListInfo(@RequestBody OrderChange orderChange) {
  1188. // 주문목록조회
  1189. ModelAndView mav = new ModelAndView();
  1190. // 페이징 처리 설정
  1191. TscPageRequest pageable = new TscPageRequest((orderChange.getPageNo() > 0 ? orderChange.getPageNo() - 1 : 0), orderChange.getPageSize(), orderChange.getPageUnit());
  1192. pageable.setTotalCount(orderChangeService.getPagingCreListCount(orderChange));
  1193. orderChange.setPageable(pageable);
  1194. // 페이징 처리 및 주문정보 조회
  1195. List<Integer> ordChgSqList = new ArrayList<>();
  1196. for (OrderChange tmpOrderChange : orderChangeService.getPagingCreList(orderChange)) {
  1197. ordChgSqList.add(tmpOrderChange.getOrdChgSq());
  1198. }
  1199. if (ordChgSqList.size() > 0) {
  1200. orderChange.setOrdChgSqArr(ordChgSqList.stream().mapToInt(Integer::intValue).toArray());
  1201. }
  1202. mav.addObject("creList", orderChangeService.getCreList(orderChange));
  1203. mav.addObject("creInfo", orderChange);
  1204. mav.setViewName(super.getDeviceViewName("mypage/NoMemberCreListInfo"));
  1205. return mav;
  1206. }
  1207. /**
  1208. * 배송조회 화면
  1209. *
  1210. * @param Order
  1211. * @return ModelAndView
  1212. * @author card007
  1213. * @since 2021. 05. 04
  1214. */
  1215. @GetMapping("/delivery/info/form")
  1216. @ResponseBody
  1217. public ModelAndView deliveryInfoForm(Order order) {
  1218. ModelAndView mav = new ModelAndView();
  1219. // 로그인 상태이면 메인으로 리다이렉트 처리
  1220. if (TsfSession.isLogin()) {
  1221. mav.setViewName("redirect:/");
  1222. return mav;
  1223. }
  1224. // 비회원 정보 유효성 체크
  1225. if (StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdNo"))
  1226. || StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdNm"))
  1227. || StringUtils.isBlank(TsfSession.getAttribute("noMemberOrdPhnno"))) {
  1228. // 세션에 비회원 정보가 없으면 비회원 주문 조회 화면으로 리다이렉트 처리
  1229. mav.setViewName("redirect:/customer/noncust/order/confirm/form");
  1230. return mav;
  1231. }
  1232. // 비회원 정보 설정
  1233. order.setOrdNo(Integer.parseInt(TsfSession.getAttribute("noMemberOrdNo")));
  1234. order.setOrdNm(TsfSession.getAttribute("noMemberOrdNm"));
  1235. order.setOrdPhnno(TsfSession.getAttribute("noMemberOrdPhnno"));
  1236. // 핸드폰번호 하이픈 처리
  1237. if (!order.getOrdPhnno().contains("-")) {
  1238. order.setOrdPhnno(order.getOrdPhnno().replaceAll("(\\d{3})(\\d{3,4})(\\d{4})", "$1-$2-$3"));
  1239. }
  1240. mav.addObject("ordNo", order.getOrdNo());
  1241. mav.addObject("ordNm", order.getOrdNm());
  1242. mav.addObject("ordPhnno", order.getOrdPhnno());
  1243. // 주문목록 조회
  1244. Collection<GagaMap> orderList = orderService.getOrderListForMypage(order);
  1245. if (orderList.size() == 0) {
  1246. mav.setViewName("redirect:/noMember/order/list/form");
  1247. return mav;
  1248. }
  1249. mav.addObject("orderList", orderList);
  1250. mav.addObject("oneData", orderList.iterator().next().get("oneData"));
  1251. // 주문 배송지 정보 조회
  1252. mav.addObject("deliveryAddrInfo", orderService.getOrderDeliveryAddrInfo(order));
  1253. // 스윗트래커 정보 조회
  1254. SweetTracker sweetTracker = new SweetTracker();
  1255. sweetTracker.setShipCompCd(order.getShipCompCd());
  1256. sweetTracker.setInvoiceNo(order.getInvoiceNo());
  1257. mav.addObject("sweetTrackerInfoList", deliveryService.getSweetTrackerDeliveryInfo(sweetTracker));
  1258. mav.setViewName(super.getDeviceViewName("mypage/NoMemberDeliveryInfoForm"));
  1259. return mav;
  1260. }
  1261. /**
  1262. * 회수 배송 조회 팝업
  1263. *
  1264. * @param Order
  1265. * @return ModelAndView
  1266. * @author card007
  1267. * @since 2021. 03. 30
  1268. */
  1269. @PostMapping("/track/withdraw/popup/form")
  1270. @ResponseBody
  1271. public ModelAndView trackWithdrawPopupForm(OrderChange orderChange) {
  1272. ModelAndView mav = new ModelAndView();
  1273. // 스윗트래커 정보 조회
  1274. SweetTracker sweetTracker = new SweetTracker();
  1275. sweetTracker.setShipCompCd(orderChange.getShipCompCd());
  1276. sweetTracker.setInvoiceNo(orderChange.getWdInvoiceNo());
  1277. mav.addObject("sweetTrackerInfoList", deliveryService.getSweetTrackerDeliveryInfo(sweetTracker));
  1278. mav.setViewName(super.getDeviceViewName("popup/TrackWithdrawPopupForm"));
  1279. return mav;
  1280. }
  1281. /**
  1282. * 비회원 계좌인증
  1283. *
  1284. * @Param CustAccount
  1285. * @return GagaMap
  1286. * @author card007
  1287. * @since 2021. 05. 26
  1288. */
  1289. @RequestMapping("/account/check")
  1290. @ResponseBody
  1291. public GagaMap getAccountCheck(@RequestBody CustAccount custAccount) {
  1292. custAccount.setIpAddress(TsfSession.getIpAddress());
  1293. boolean isValid = false;
  1294. log.info("accountNm() >>> {}",custAccount.getAccountNm());
  1295. log.info("bankCd() >>> {}",custAccount.getBankCd());
  1296. log.info("accountNo() >>> {}",custAccount.getAccountNo());
  1297. GagaMap result = coreKcpService.checkAccount(custAccount);
  1298. if ("0000".equals(result.get("resCd"))) {
  1299. isValid = true;
  1300. }
  1301. result.set("isValid", isValid);
  1302. return result;
  1303. }
  1304. /**
  1305. * 비회원 취반교목록 사전 정보 조회 (모바일)
  1306. *
  1307. * @param Order
  1308. * @return ModelAndView
  1309. * @author card007
  1310. * @since 2021. 06. 01
  1311. */
  1312. @ResponseBody
  1313. @PostMapping("/cre/list/pre/info")
  1314. public GagaMap getCreListPreInfo(@RequestBody OrderChange orderChange) {
  1315. GagaMap result = new GagaMap();
  1316. // 페이징 처리 설정
  1317. TscPageRequest pageable = new TscPageRequest((orderChange.getPageNo() > 0 ? orderChange.getPageNo() - 1 : 0), orderChange.getPageSize(), orderChange.getPageUnit());
  1318. pageable.setTotalCount(orderChangeService.getPagingCreListCount(orderChange));
  1319. orderChange.setPageable(pageable);
  1320. result.set("paging" , pageable);
  1321. result.set("creList" , orderChangeService.getPagingCreList(orderChange));
  1322. return result;
  1323. }
  1324. /**
  1325. * 비회원 취반교목록 조회 (모바일)
  1326. *
  1327. * @param Order
  1328. * @return ModelAndView
  1329. * @author card007
  1330. * @since 2021. 06. 01
  1331. */
  1332. @ResponseBody
  1333. @PostMapping("/cre/list/info")
  1334. public ModelAndView getCreListInfo2(@RequestBody OrderChange orderChange) {
  1335. // 주문목록조회
  1336. ModelAndView mav = new ModelAndView();
  1337. Collection<GagaMap> creList = orderChangeService.getCreList(orderChange);
  1338. mav.addObject("creList" , creList);
  1339. mav.addObject("creListCnt" , creList.size());
  1340. mav.addObject("pageNo" , orderChange.getPageNo());
  1341. mav.setViewName(super.getDeviceViewName("mypage/NoMemberCreListInfo"));
  1342. return mav;
  1343. }
  1344. }