TsfMypageController.java 77 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682
  1. package com.style24.front.biz.web;
  2. import java.util.ArrayList;
  3. import java.util.Collection;
  4. import java.util.List;
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;
  7. import org.apache.commons.lang3.StringUtils;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.core.env.Environment;
  10. import org.springframework.mobile.device.Device;
  11. import org.springframework.stereotype.Controller;
  12. import org.springframework.web.bind.annotation.GetMapping;
  13. import org.springframework.web.bind.annotation.PathVariable;
  14. import org.springframework.web.bind.annotation.PostMapping;
  15. import org.springframework.web.bind.annotation.RequestBody;
  16. import org.springframework.web.bind.annotation.RequestMapping;
  17. import org.springframework.web.bind.annotation.RequestParam;
  18. import org.springframework.web.bind.annotation.ResponseBody;
  19. import org.springframework.web.servlet.ModelAndView;
  20. import com.gagaframework.web.parameter.GagaMap;
  21. import com.gagaframework.web.rest.server.GagaResponse;
  22. import com.gagaframework.web.rest.server.GagaResponseStatus;
  23. import com.gagaframework.web.util.GagaCookieUtil;
  24. import com.style24.core.biz.service.TscCouponService;
  25. import com.style24.core.biz.service.TscCustomerService;
  26. import com.style24.core.biz.service.TscEnvsetService;
  27. import com.style24.core.biz.service.TscKakaotalkService;
  28. import com.style24.core.biz.service.TscKcpService;
  29. import com.style24.core.biz.service.TscMailService;
  30. import com.style24.core.biz.service.TscOrderChangeService;
  31. import com.style24.core.biz.service.TscOrderRefundService;
  32. import com.style24.core.biz.service.TscOrderService;
  33. import com.style24.core.biz.service.TscWmsService;
  34. import com.style24.core.support.env.TscConstants;
  35. import com.style24.core.support.message.TscMessageByLocale;
  36. import com.style24.front.biz.service.TsfCartService;
  37. import com.style24.front.biz.service.TsfCommonService;
  38. import com.style24.front.biz.service.TsfCouponService;
  39. import com.style24.front.biz.service.TsfCustomerService;
  40. import com.style24.front.biz.service.TsfDeliveryService;
  41. import com.style24.front.biz.service.TsfGiftcardService;
  42. import com.style24.front.biz.service.TsfLoginService;
  43. import com.style24.front.biz.service.TsfOrderChangeService;
  44. import com.style24.front.biz.service.TsfOrderService;
  45. import com.style24.front.biz.service.TsfPointService;
  46. import com.style24.front.biz.service.TsfReinboundService;
  47. import com.style24.front.biz.service.TsfRendererService;
  48. import com.style24.front.biz.service.TsfReviewService;
  49. import com.style24.front.biz.service.TsfWishlistService;
  50. import com.style24.front.biz.thirdparty.NiceCertify;
  51. import com.style24.front.support.controller.TsfBaseController;
  52. import com.style24.front.support.env.TsfConstants;
  53. import com.style24.front.support.security.session.TsfSession;
  54. import com.style24.persistence.TscPageRequest;
  55. import com.style24.persistence.domain.Cart;
  56. import com.style24.persistence.domain.Coupon;
  57. import com.style24.persistence.domain.CustAccount;
  58. import com.style24.persistence.domain.CustContactHst;
  59. import com.style24.persistence.domain.CustDeliveryAddr;
  60. import com.style24.persistence.domain.Customer;
  61. import com.style24.persistence.domain.GiftCard;
  62. import com.style24.persistence.domain.Goods;
  63. import com.style24.persistence.domain.Order;
  64. import com.style24.persistence.domain.OrderChange;
  65. import com.style24.persistence.domain.Point;
  66. import com.style24.persistence.domain.ReinboundInform;
  67. import com.style24.persistence.domain.Review;
  68. import com.style24.persistence.domain.SweetTracker;
  69. import com.style24.persistence.domain.WishList;
  70. import lombok.extern.slf4j.Slf4j;
  71. /**
  72. * 마이페이지 Controller
  73. *
  74. * @author gagamel
  75. * @since 2020. 12. 29
  76. */
  77. @Controller
  78. @RequestMapping("/mypage")
  79. @Slf4j
  80. public class TsfMypageController extends TsfBaseController {
  81. @Autowired
  82. private Environment env;
  83. @Autowired
  84. private TscMessageByLocale message;
  85. @Autowired
  86. private TsfCustomerService customerService;
  87. @Autowired
  88. private TscCustomerService coreCustomerService;
  89. @Autowired
  90. private TsfOrderService orderService;
  91. @Autowired
  92. private TscOrderService coreOrderService;
  93. @Autowired
  94. private TsfOrderChangeService orderChangeService;
  95. @Autowired
  96. private TscOrderChangeService coreOrderChangeService;
  97. @Autowired
  98. private TscOrderRefundService coreOrderRefundService;
  99. @Autowired
  100. private TsfReviewService reviewService;
  101. @Autowired
  102. private TsfWishlistService wishListService;
  103. @Autowired
  104. private TsfPointService pointService;
  105. @Autowired
  106. private TsfGiftcardService giftcardService;
  107. @Autowired
  108. private TsfCouponService couponService;
  109. @Autowired
  110. private TsfRendererService rendererService;
  111. @Autowired
  112. private NiceCertify niceCertify;
  113. @Autowired
  114. private TscCouponService coreCouponService;
  115. @Autowired
  116. private TsfCartService cartService;
  117. @Autowired
  118. private TsfCommonService commonService;
  119. @Autowired
  120. private TscKcpService coreKcpService;
  121. @Autowired
  122. private TsfReinboundService reinboundService;
  123. @Autowired
  124. private TscWmsService coreWmsService;
  125. @Autowired
  126. private TsfDeliveryService deliveryService;
  127. @Autowired
  128. private TscEnvsetService eventService;
  129. @Autowired
  130. private TscKakaotalkService coreKakaotalkService;
  131. @Autowired
  132. private TscMailService mailService;
  133. @Autowired
  134. private TsfLoginService loginService;
  135. /**
  136. * 마이페이지 메인 화면
  137. *
  138. * @return
  139. * @author card007
  140. * @since 2021. 02. 04
  141. */
  142. @GetMapping({"/main/form", "/order/list/form"})
  143. public ModelAndView mypageOrderListForm(HttpServletRequest request, @RequestBody(required = false) Order order) {
  144. ModelAndView mav = new ModelAndView();
  145. if (order == null) {
  146. order = new Order();
  147. }
  148. // 고객번호 설정
  149. int custNo = TsfSession.getInfo().getCustNo();
  150. order.setCustNo(custNo);
  151. // 고객정보 조회
  152. Customer customer = new Customer();
  153. customer.setSiteCd(TscConstants.Site.STYLE24.value());
  154. customer.setCustNo(custNo);
  155. customer.setCustStat(TscConstants.CustStat.ACTIVE.value());
  156. mav.addObject("customerInfo", coreCustomerService.getCustomerInfo(customer));
  157. // 쿠폰정보 조회
  158. mav.addObject("couponCnt", coreOrderService.getCouponInfo(order));
  159. order.setExpiredSoon("Y");
  160. mav.addObject("expiredSoonCouponCnt", coreOrderService.getCouponInfo(order));
  161. // 포인트 정보 조회
  162. mav.addObject("rmPntAmt", coreOrderService.getCustPointInfo(order));
  163. // 상품권 정보 조회
  164. mav.addObject("rmGfcdAmt", coreOrderService.getGiftcardInfo(order));
  165. // 주문 상태 별 수량 조회
  166. mav.addObject("orderCount", coreOrderService.getOrderStatCount(order));
  167. // 2021.04.21 모바일에서 사용하려고 추가
  168. int totalCnt = orderService.getPagingOrdNoListCount(order);
  169. mav.addObject("totalCnt", totalCnt);
  170. // 2021.04.25 마이페이지 메인화면 판단기준
  171. if (request.getRequestURL().toString().indexOf("mypage/main/form") > 0) {
  172. mav.addObject("mypageMainYn", "Y");
  173. } else {
  174. mav.addObject("mypageMainYn", "N");
  175. }
  176. // 2021.04.30 모바일 추가
  177. String custGradeNm1Str = coreCustomerService.getCustomerInfo(customer).getCustGradeNm().substring(0,1);
  178. mav.addObject("custGradeNm1Str", custGradeNm1Str);
  179. // 주문상세상태코드 설정
  180. 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"}));
  181. mav.setViewName(super.getDeviceViewName("mypage/MypageOrderListForm"));
  182. return mav;
  183. }
  184. /**
  185. * 마이페이지 주문상세 화면
  186. *
  187. * @return
  188. * @author card007
  189. * @since 2021. 02. 15
  190. */
  191. @GetMapping("/order/detail/form/{ordNo}")
  192. public ModelAndView mypageOrderDetailForm(@PathVariable(value = "ordNo") int ordNo) {
  193. ModelAndView mav = new ModelAndView();
  194. // 고객번호 설정
  195. int custNo = TsfSession.getInfo().getCustNo();
  196. mav.addObject("custNo", custNo);
  197. // 고객정보 조회
  198. Customer customer = new Customer();
  199. customer.setSiteCd(TscConstants.Site.STYLE24.value());
  200. customer.setCustNo(custNo);
  201. customer.setCustStat(TscConstants.CustStat.ACTIVE.value());
  202. customer = coreCustomerService.getCustomerInfo(customer);
  203. mav.addObject("customerInfo", customer);
  204. // 로그인여부 설정
  205. mav.addObject("isLogin", TsfSession.isLogin());
  206. // 주문번호 설정
  207. mav.addObject("ordNo", ordNo);
  208. Order order = new Order();
  209. order.setCustNo(custNo);
  210. order.setOrdNo(ordNo);
  211. // 주문목록 조회
  212. Collection<GagaMap> orderList = orderService.getOrderListForMypage(order);
  213. if (orderList.size() == 0) {
  214. mav.setViewName("redirect:/mypage/order/list/form");
  215. return mav;
  216. }
  217. mav.addObject("orderList", orderList);
  218. mav.addObject("oneData", orderList.iterator().next().get("oneData"));
  219. mav.addObject("allCanYn", orderList.iterator().next().get("allCanYn"));
  220. mav.addObject("allDecideYn", orderList.iterator().next().get("allDecideYn"));
  221. // 주문정보 조회
  222. mav.addObject("orderInfo", coreOrderService.getOrderInfoList(order).iterator().next());
  223. // 주문 금액정보 조회
  224. mav.addObject("orderAmtInfo", orderService.getOrderAmtForMypage(order));
  225. // 주문 결제정보 조회
  226. mav.addObject("paymentInfo", orderService.getPaymentInfoForMypage(order));
  227. // 주문 배송지 정보 조회
  228. mav.addObject("deliveryAddrInfo", orderService.getOrderDeliveryAddrInfo(order));
  229. // 상품권 현금영수증 신청 정보 조회
  230. mav.addObject("cashReceiptsInfo", giftcardService.getCashReceiptsRequestInfo(order));
  231. // KCP 전표 경로 설정
  232. mav.addObject("kcpReceiptUrl", env.getProperty("pg.kcp.receipt.url"));
  233. mav.setViewName(super.getDeviceViewName("mypage/MypageOrderDetailForm"));
  234. return mav;
  235. }
  236. /**
  237. * 마이페이지 주문목록 조회
  238. *
  239. * @param Order
  240. * @return ModelAndView
  241. * @author card007
  242. * @since 2021. 02. 18
  243. */
  244. @PostMapping("/order/list")
  245. @ResponseBody
  246. public GagaMap getOrderList(@RequestBody Order order) {
  247. GagaMap map = new GagaMap();
  248. // 고객번호 설정
  249. int custNo = 0;
  250. if(TsfSession.isLogin()) {
  251. custNo = TsfSession.getInfo().getCustNo();
  252. }
  253. // 페이징 처리 설정
  254. order.setCustNo(custNo);
  255. TscPageRequest pageable = new TscPageRequest((order.getPageNo() > 0 ? order.getPageNo() - 1 : 0), order.getPageSize(), order.getPageUnit());
  256. pageable.setTotalCount(orderService.getPagingOrdNoListCount(order));
  257. order.setPageable(pageable);
  258. // 페이징 처리 및 주문정보 조회
  259. List<Integer> ordNoList = new ArrayList<>();
  260. for (Order tmpOrder : orderService.getPagingOrdNoList(order)) {
  261. ordNoList.add(tmpOrder.getOrdNo());
  262. }
  263. if (ordNoList.size() > 0) {
  264. order.setOrdNoList(ordNoList.stream().mapToInt(Integer::intValue).toArray());
  265. map.set("orderList", orderService.getOrderListForMypage(order));
  266. }
  267. map.set("orderInfo", order);
  268. return map;
  269. }
  270. /**
  271. * 마이페이지 주문상세 주문내역 삭제
  272. *
  273. * @return
  274. * @author card007
  275. * @since 2021. 02. 15
  276. */
  277. @PostMapping("/order/delete")
  278. @ResponseBody
  279. public GagaMap deleteOrder(@RequestBody Order order) {
  280. GagaMap result = new GagaMap();
  281. // 고객번호 설정
  282. int custNo = TsfSession.getInfo().getCustNo();
  283. order.setUpdNo(custNo);
  284. // 주문내역 삭제 처리
  285. int chk = orderService.updateOrderDisplayYn(order);
  286. if (chk > 0) {
  287. result.set("message", message.getMessage("SUCC_0003"));
  288. result.set("status", GagaResponseStatus.SUCCESS.getCode());
  289. } else {
  290. result.set("message", message.getMessage("FAIL_0003"));
  291. result.set("status", GagaResponseStatus.FAIL.getCode());
  292. }
  293. return result;
  294. }
  295. /**
  296. * 마이페이지 구매확정 처리
  297. *
  298. * @return
  299. * @author card007
  300. * @since 2021. 02. 17
  301. */
  302. @PostMapping("/order/decision")
  303. @ResponseBody
  304. public GagaMap decideOrder(@RequestBody Order order) {
  305. GagaMap result = new GagaMap();
  306. if (order.getOrdDtlNoArr().length == 0) {
  307. result.set("message", message.getMessage("FAIL_1003"));
  308. result.set("status", GagaResponseStatus.FAIL.getCode());
  309. return result;
  310. }
  311. // 고객번호 설정
  312. int custNo = TsfSession.getInfo().getCustNo();
  313. order.setCustNo(custNo);
  314. order.setRegNo(custNo);
  315. order.setUpdNo(custNo);
  316. // 구매확정 처리
  317. result = coreOrderService.decideOrder(order);
  318. return result;
  319. }
  320. /**
  321. * 마이페이지 교환신청 화면
  322. *
  323. * @param Order
  324. * @return ModelAndView
  325. * @author card007
  326. * @since 2021. 02. 22
  327. */
  328. @GetMapping("/exchange/form")
  329. @ResponseBody
  330. public ModelAndView exchangeForm(Order order) {
  331. ModelAndView mav = new ModelAndView();
  332. // 주문번호 설정
  333. mav.addObject("ordNo", order.getOrdNo());
  334. // 고객번호 설정
  335. int custNo = TsfSession.getInfo().getCustNo();
  336. order.setCustNo(custNo);
  337. mav.addObject("custNo", custNo);
  338. // 고객정보 조회
  339. Customer customer = new Customer();
  340. customer.setSiteCd(TscConstants.Site.STYLE24.value());
  341. customer.setCustNo(custNo);
  342. customer.setCustStat(TscConstants.CustStat.ACTIVE.value());
  343. customer = coreCustomerService.getCustomerInfo(customer);
  344. mav.addObject("customerInfo", customer);
  345. // 로그인여부 설정
  346. mav.addObject("isLogin", TsfSession.isLogin());
  347. // 교환 가능 리스트 조회
  348. order.setChgGb(TscConstants.OrderChangeGb.EXCHANGE.value());
  349. GagaMap map = orderChangeService.getReturnListForMypage(order);
  350. Order oneData = (Order)map.get("oneData");
  351. mav.addObject("exchangeList", map);
  352. mav.addObject("oneData", oneData);
  353. // 주문 배송지 정보 조회
  354. mav.addObject("deliveryAddrInfo", orderService.getOrderDeliveryAddrInfo(order));
  355. // 교환 사유 목록 조회
  356. mav.addObject("exchangeReason", rendererService.getCommonCodeList("G689", "Y"));
  357. mav.setViewName(super.getDeviceViewName("/mypage/MypageExchangeForm"));
  358. return mav;
  359. }
  360. /**
  361. * 마이페이지 교환 옵션 변경 팝업
  362. *
  363. * @param Order
  364. * @return ModelAndView
  365. * @author card007
  366. * @since 2021. 03. 30
  367. */
  368. @PostMapping("/change/option/popup/form")
  369. @ResponseBody
  370. public ModelAndView changeOptionPopupForm(OrderChange orderChange) {
  371. ModelAndView mav = new ModelAndView();
  372. // custNo 설정
  373. if (TsfSession.isLogin()) {
  374. orderChange.setCustNo(TsfSession.getInfo().getCustNo());
  375. } else {
  376. orderChange.setCustNo(0);
  377. }
  378. // 교환 옵션 정보 조회
  379. Collection<OrderChange> exchangeOptionInfo = orderChangeService.getExchangeOptionInfo(orderChange);
  380. mav.addObject("exchangeOptionInfo" , exchangeOptionInfo);
  381. mav.addObject("oneData" , exchangeOptionInfo.iterator().next());
  382. mav.addObject("ordDtlNo" , orderChange.getOrdDtlNo());
  383. mav.addObject("chgQty" , orderChange.getChgQty());
  384. mav.addObject("title" , "교환 옵션 변경");
  385. mav.setViewName(super.getDeviceViewName("mypage/ChangeOptionPopupForm"));
  386. return mav;
  387. }
  388. /**
  389. * 교환신청
  390. *
  391. * @param OrderChange
  392. * @return GagaMap
  393. * @author card007
  394. * @since 2021. 04. 06
  395. */
  396. @SuppressWarnings("unchecked")
  397. @PostMapping("/exchange")
  398. @ResponseBody
  399. public GagaMap excReq(@RequestBody OrderChange orderChange) {
  400. GagaMap result = new GagaMap();
  401. // 교환요청 데이터 확인
  402. if (orderChange == null) {
  403. result.set("status", GagaResponseStatus.FAIL.getCode());
  404. result.set("message", message.getMessage("FAIL_1001"));
  405. return result;
  406. }
  407. // 세션 고객번호 설정
  408. int custNo = TsfSession.getInfo().getCustNo();
  409. orderChange.setUpdNo(custNo);
  410. orderChange.setRegNo(custNo);
  411. // 교환처리
  412. result = coreOrderChangeService.exchReq(orderChange);
  413. int ordChgSq = result.getInt("ordChgSq");
  414. int addPayCost = result.getInt("addPayCost");
  415. if (ordChgSq > 0) {
  416. try {
  417. // 교환 알림톡 관련 정보 조회
  418. orderChange = coreOrderChangeService.getKakaoOrderReturnInfo(ordChgSq);
  419. // 교환 알림톡 발송
  420. if (StringUtils.isNotBlank(orderChange.getOrdPhnno())) {
  421. coreKakaotalkService.sendOrderExchangeRequest(orderChange, custNo);
  422. }
  423. // 교환배송비 있을 시 추가결제완료 로직에서 메일 발송
  424. if (addPayCost == 0) {
  425. // 교환 안내 메일 정보 조회
  426. GagaMap replaceInfo = coreOrderChangeService.getMailOrderExchangeReplaceInfo(orderChange);
  427. // 교환 안내 메일 발송
  428. if (StringUtils.isNotBlank(replaceInfo.getString("ordEmail"))) {
  429. mailService.sendOrderExchange(replaceInfo, custNo);
  430. }
  431. }
  432. } catch (Exception e) {
  433. throw new IllegalStateException(message.getMessage("FAIL_0004"));
  434. }
  435. }
  436. // 처리 결과 코드에 따른 메세지 설정
  437. if (result.get("status").equals(GagaResponseStatus.SUCCESS.getCode())) {
  438. if (orderChange.getAddPayCost() == 0) {
  439. result.set("message", message.getMessage("EXCHANGE_0001"));
  440. }
  441. } else {
  442. result.set("message", message.getMessage("FAIL_0004"));
  443. }
  444. return result;
  445. }
  446. /**
  447. * 교환요청철회
  448. *
  449. * @param OrderChange
  450. * @return GagaResponse
  451. * @author card007
  452. * @since 2021. 04. 20
  453. */
  454. @PostMapping("/exchange/cancel")
  455. @ResponseBody
  456. public GagaResponse exchangeRequestCancel(@RequestBody OrderChange orderChange) {
  457. if (orderChange== null) {
  458. throw new IllegalStateException(message.getMessage("FAIL_1001"));
  459. }
  460. // 1. 교환요청철회 정보 설정
  461. int custNo = TsfSession.isLogin() ? TsfSession.getInfo().getCustNo() : 0;
  462. orderChange.setCustNo(custNo);
  463. orderChange.setRegNo(custNo);
  464. orderChange.setUpdNo(custNo);
  465. String ipAddress = TsfSession.getIpAddress();
  466. orderChange.setIpAddress(ipAddress);
  467. // 2.교환요청철회
  468. coreOrderChangeService.exchangeCancel(orderChange);
  469. return super.ok(message.getMessage("EXCHANGE_0002"));
  470. // return super.ok();
  471. }
  472. /**
  473. * 마이페이지 등급쿠폰 다운 처리
  474. *
  475. * @return
  476. * @author card007
  477. * @since 2021. 02. 17
  478. */
  479. @PostMapping("/coupon/download/all")
  480. @ResponseBody
  481. public GagaMap createCustGradeAllCoupon(@RequestBody Coupon coupon) {
  482. GagaMap result = new GagaMap();
  483. // 고객정보 조회
  484. Customer customer = new Customer();
  485. customer.setSiteCd(TscConstants.Site.STYLE24.value());
  486. customer.setCustNo(coupon.getCustNo());
  487. customer.setCustStat(TscConstants.CustStat.ACTIVE.value());
  488. customer = coreCustomerService.getCustomerInfo(customer);
  489. // 고객정보 설정
  490. coupon.setCustGb(customer.getCustGb());
  491. coupon.setCustGrade(customer.getCustGrade());
  492. // 등급쿠폰 다운 처리
  493. int count = couponService.createCustGradeAllCoupon(coupon);
  494. result.set("status", GagaResponseStatus.SUCCESS.getCode());
  495. if (count == 0) {
  496. result.set("message", message.getMessage("COUPON_0002"));
  497. } else {
  498. result.set("message", message.getMessage("COUPON_0001", new Object[] {count}));
  499. }
  500. return result;
  501. }
  502. /**
  503. * 마이페이지 쿠폰 수량 조회
  504. *
  505. * @return
  506. * @author card007
  507. * @since 2021. 02. 25
  508. */
  509. @PostMapping("/coupon/count")
  510. @ResponseBody
  511. public GagaMap fnReloadCouponCount() {
  512. GagaMap result = new GagaMap();
  513. // 쿠폰정보 조회
  514. Order order = new Order();
  515. order.setCustNo(TsfSession.getInfo().getCustNo());
  516. result.set("couponCnt", coreOrderService.getCouponInfo(order));
  517. order.setExpiredSoon("Y");
  518. result.set("expiredSoonCouponCnt", coreOrderService.getCouponInfo(order));
  519. result.set("status", GagaResponseStatus.SUCCESS.getCode());
  520. return result;
  521. }
  522. /**
  523. * 마이페이지 상태별 수량 조회
  524. *
  525. * @return
  526. * @author card007
  527. * @since 2021. 02. 25
  528. */
  529. @PostMapping("/status/count")
  530. @ResponseBody
  531. public GagaMap fnReloadStatusCount() {
  532. GagaMap result = new GagaMap();
  533. // 쿠폰정보 조회
  534. Order order = new Order();
  535. order.setCustNo(TsfSession.getInfo().getCustNo());
  536. result.set("orderCount", coreOrderService.getOrderStatCount(order));
  537. result.set("status", GagaResponseStatus.SUCCESS.getCode());
  538. return result;
  539. }
  540. /**
  541. * 마이페이지 반품신청 화면
  542. *
  543. * @param Order
  544. * @return ModelAndView
  545. * @author card007
  546. * @since 2021. 02. 25
  547. */
  548. @GetMapping("/return/form")
  549. @ResponseBody
  550. public ModelAndView returnForm(Order order) {
  551. ModelAndView mav = new ModelAndView();
  552. // 주문번호 설정
  553. mav.addObject("ordNo", order.getOrdNo());
  554. // 고객번호 설정
  555. int custNo = TsfSession.getInfo().getCustNo();
  556. order.setCustNo(custNo);
  557. mav.addObject("custNo", custNo);
  558. // 고객정보 조회
  559. Customer customer = new Customer();
  560. customer.setSiteCd(TscConstants.Site.STYLE24.value());
  561. customer.setCustNo(custNo);
  562. customer.setCustStat(TscConstants.CustStat.ACTIVE.value());
  563. customer = coreCustomerService.getCustomerInfo(customer);
  564. mav.addObject("customerInfo", customer);
  565. // 로그인여부 설정
  566. mav.addObject("isLogin", TsfSession.isLogin());
  567. // 반품 가능 리스트 조회
  568. order.setChgGb(TscConstants.OrderChangeGb.RETURN.value());
  569. GagaMap map = orderChangeService.getReturnListForMypage(order);
  570. Order oneData = (Order)map.get("oneData");
  571. mav.addObject("returnList", map);
  572. mav.addObject("oneData", oneData);
  573. // 주문 결제정보 조회
  574. mav.addObject("paymentInfo", orderService.getPaymentInfoForMypage(order));
  575. // 주문 배송지 정보 조회
  576. mav.addObject("deliveryAddrInfo", orderService.getOrderDeliveryAddrInfo(order));
  577. // 반품 사유 목록 조회
  578. mav.addObject("returnReason", rendererService.getCommonCodeList("G688", "Y"));
  579. // 2021.05.03 은행목록추가
  580. mav.addObject("bankList", rendererService.getCommonCodeList("G942", "Y"));
  581. mav.setViewName(super.getDeviceViewName("/mypage/MypageReturnForm"));
  582. return mav;
  583. }
  584. /**
  585. * 반품신청
  586. *
  587. * @param OrderChange
  588. * @return GagaMap
  589. * @author card007
  590. * @since 2021. 03. 30
  591. */
  592. @SuppressWarnings("unchecked")
  593. @PostMapping("/return")
  594. @ResponseBody
  595. public GagaMap rtnReq(@RequestBody OrderChange orderChange) {
  596. if (orderChange == null) {
  597. throw new IllegalStateException(message.getMessage("FAIL_1001"));
  598. }
  599. // 1. 세션회원조회
  600. int custNo = TsfSession.getInfo().getCustNo();
  601. orderChange.setCustNo(custNo);
  602. // 2. 환불 사전 정보 조회
  603. GagaMap refundPreInfo = coreOrderChangeService.getRefundPreInfo(orderChange);
  604. List<Order> returnReqList = (List<Order>)refundPreInfo.get("cnclReqList");
  605. String allLastCanYn = refundPreInfo.getString("allLastCanYn");
  606. String supplyCompCd = refundPreInfo.getString("supplyCompCd");
  607. // 3. 환불금액계산
  608. GagaMap result = coreOrderRefundService.cnclRtnRefundAmt(returnReqList);
  609. // 4. 주문변경 기본정보 설정
  610. result.set("ordNo", orderChange.getOrdNo()); // 주문번호
  611. result.setInt("custNo", custNo); // 고객번호
  612. // result.set("ordChgSq", orderChange.getOrdChgSq()); // 주문변경번호
  613. result.set("chgReason", orderChange.getChgReason()); // 변경사유
  614. result.set("chgMemo", orderChange.getChgMemo()); // 변경메모
  615. result.set("accountNo", orderChange.getAccountNo()); // 환불계좌번호
  616. result.set("accountNm", orderChange.getAccountNm()); // 환불계좌예금주명
  617. result.set("bankCd", orderChange.getBankCd()); // 환불계좌은행코드
  618. result.setString("allLastCanYn", allLastCanYn); // 전체 마지막 취소 여부
  619. result.set("isCustomer", orderChange.getIsCustomer()); // 변경사유 (고객, 회사)
  620. result.set("wdGb", orderChange.getWdGb()); // 회수방법
  621. result.set("wdInvoiceNo", orderChange.getWdInvoiceNo()); // 회수송장번호
  622. // 5. 주문변경 회수지정보 추가
  623. result.set("chgerNm", orderChange.getChgerNm()); // 변경자명
  624. result.set("chgerEmail", orderChange.getChgerEmail()); // 변경자이메일주소
  625. result.set("chgerZipcode", orderChange.getChgerZipcode()); // 회수지우편번호
  626. result.set("chgerBaseAddr", orderChange.getChgerBaseAddr()); // 회수지기본주소
  627. result.set("chgerDtlAddr", orderChange.getChgerDtlAddr()); // 회수지상세주소
  628. result.set("chgerPhnno", orderChange.getChgerPhnno()); // 변경자핸드폰번호
  629. result.set("chgerTelno", orderChange.getChgerTelno()); // 변경자전화번호
  630. result.set("chgerRtnMemo", orderChange.getChgerRtnMemo()); // 반품메모
  631. // 6. 주문변경 DB 등록 (TB_ORDER_CHANGE, TB_ORDER_CHANGE_DETAIL, TB_REFUND)
  632. GagaMap map = coreOrderChangeService.returnRequest(result);
  633. int ordChgSq = map.getInt("ordChgSq");
  634. int addPayCost = map.getInt("addPayCost");
  635. if (ordChgSq > 0) {
  636. try {
  637. // 반품 알림톡 관련 정보 조회
  638. orderChange = coreOrderChangeService.getKakaoOrderReturnInfo(ordChgSq);
  639. // 반품 알림톡 발송
  640. if (StringUtils.isNotBlank(orderChange.getOrdPhnno())) {
  641. coreKakaotalkService.sendOrderReturnRequest(orderChange, custNo);
  642. }
  643. // 반품배송비 있을 시 추가결제완료 로직에서 메일 전송
  644. if (addPayCost == 0) {
  645. // 반품 안내 메일 정보 조회
  646. GagaMap replaceInfo = coreOrderChangeService.getMailOrderReturnReplaceInfo(orderChange);
  647. // 반품 안내 메일 발송
  648. if (StringUtils.isNotBlank(replaceInfo.getString("ordEmail"))) {
  649. mailService.sendOrderReturn(replaceInfo, custNo);
  650. }
  651. }
  652. } catch (Exception e) {
  653. throw new IllegalStateException(message.getMessage("FAIL_0004"));
  654. }
  655. }
  656. result.set("status", GagaResponseStatus.SUCCESS.getCode());
  657. if (orderChange.getAddPayCost() == 0) {
  658. result.set("message", message.getMessage("RETURN_0001"));
  659. }
  660. return result;
  661. }
  662. /**
  663. * 반품요청철회
  664. *
  665. * @param OrderChange
  666. * @return GagaResponse
  667. * @author card007
  668. * @since 2021. 04. 20
  669. */
  670. @PostMapping("/return/cancel")
  671. @ResponseBody
  672. public GagaResponse rtnReqCancel(@RequestBody OrderChange orderChange) {
  673. if (orderChange== null) {
  674. throw new IllegalStateException(message.getMessage("FAIL_1001"));
  675. }
  676. // 1. 반품요청철회 정보 설정
  677. int custNo = TsfSession.isLogin() ? TsfSession.getInfo().getCustNo() : 0;
  678. GagaMap map = new GagaMap();
  679. map.set("ordNo" , orderChange.getOrdNo());
  680. map.set("ordChgSq" , orderChange.getOrdChgSq());
  681. map.set("custNo" , custNo);
  682. map.set("ipAddress" , TsfSession.getIpAddress());
  683. // 2.반품요청철회
  684. coreOrderChangeService.rtnReqCancel(map, custNo);
  685. return super.ok(message.getMessage("RETURN_0002"));
  686. // return super.ok();
  687. }
  688. /**
  689. * 마이페이지 취소신청 화면
  690. *
  691. * @param Order
  692. * @return ModelAndView
  693. * @author card007
  694. * @since 2021. 03. 19
  695. */
  696. @GetMapping("/cancel/form")
  697. @ResponseBody
  698. public ModelAndView cancelForm(Order order) {
  699. ModelAndView mav = new ModelAndView();
  700. // 고객번호 설정
  701. int custNo = TsfSession.getInfo().getCustNo();
  702. order.setCustNo(custNo);
  703. // 2021.05.07 고객정보 조회
  704. Customer customer = new Customer();
  705. customer.setSiteCd(TscConstants.Site.STYLE24.value());
  706. customer.setCustNo(custNo);
  707. customer.setCustStat(TscConstants.CustStat.ACTIVE.value());
  708. customer = coreCustomerService.getCustomerInfo(customer);
  709. mav.addObject("customerInfo", customer);
  710. // 취소 가능 리스트 조회
  711. GagaMap map = orderChangeService.getCancelListForMypage(order);
  712. Order oneData = (Order)map.get("oneData");
  713. mav.addObject("cancelList", map);
  714. mav.addObject("oneData", oneData);
  715. // 주문 결제정보 조회
  716. mav.addObject("paymentInfo", orderService.getPaymentInfoForMypage(order));
  717. // 2021.05.03 은행목록추가
  718. mav.addObject("bankList", rendererService.getCommonCodeList("G942", "Y"));
  719. mav.setViewName(super.getDeviceViewName("/mypage/MypageCancelForm"));
  720. return mav;
  721. }
  722. /**
  723. * 마이페이지 취소신청
  724. *
  725. * @param Collection<Order>
  726. * @return GagaMap
  727. * @author card007
  728. * @since 2021. 03. 22
  729. */
  730. @SuppressWarnings("unchecked")
  731. @PostMapping("/cancel")
  732. @ResponseBody
  733. public GagaMap cancel(@RequestBody OrderChange orderChange) {
  734. if (orderChange == null) {
  735. throw new IllegalStateException(message.getMessage("FAIL_1001"));
  736. }
  737. // 1. 세션회원조회
  738. int custNo = TsfSession.getInfo().getCustNo();
  739. orderChange.setCustNo(custNo);
  740. orderChange.setIpAddress(TsfSession.getIpAddress());
  741. // 2. 취소완료 처리
  742. GagaMap result = coreOrderChangeService.orderCancelPreInfoTemp(orderChange, custNo);
  743. // 3. 취소완료 카카오알림톡 발송
  744. int ordChgSq = result.getInt("ordChgSq");
  745. if (ordChgSq > 0) {
  746. try {
  747. // 취소 알림톡 관련 정보 조회
  748. orderChange = coreOrderChangeService.getKakaoOrderCancelInfo(ordChgSq);
  749. // 취소 알림톡 발송
  750. if (StringUtils.isNotBlank(orderChange.getOrdPhnno())) {
  751. coreKakaotalkService.sendOrderCancelComplete(orderChange, custNo);
  752. }
  753. // 취소 안내 메일 정보 조회
  754. GagaMap replaceInfo = coreOrderChangeService.getMailOrderCancelReplaceInfo(orderChange);
  755. // 취소 안내 메일 발송
  756. if (StringUtils.isNotBlank(replaceInfo.getString("ordEmail"))) {
  757. mailService.sendOrderCancel(replaceInfo, custNo);
  758. }
  759. } catch (Exception e) {
  760. throw new IllegalStateException(message.getMessage("FAIL_0004"));
  761. }
  762. }
  763. result.set("status", GagaResponseStatus.SUCCESS.getCode());
  764. result.set("message", message.getMessage("CANCEL_0001"));
  765. return result;
  766. }
  767. /**
  768. * 마이페이지 장바구니 관련 정보 조회
  769. *
  770. * @param Cart
  771. * @return Collecion<Cart>
  772. * @author card007
  773. * @since 2021. 03. 26
  774. */
  775. @PostMapping("/cart/add/info")
  776. @ResponseBody
  777. public Collection<Cart> getAddCartInfo(@RequestBody Cart cart) {
  778. return cartService.getAddCartInfoForMypage(cart);
  779. }
  780. /**
  781. * 환불계좌 등록 팝업
  782. *
  783. * @param OrderChange
  784. * @return ModelAndView
  785. * @author card007
  786. * @since 2021. 04. 05
  787. */
  788. @ResponseBody
  789. @RequestMapping(value = "/refund/account/register/popup/form")
  790. public ModelAndView registerRefundAccountPopupForm(@RequestBody OrderChange orderChange) {
  791. ModelAndView mav = new ModelAndView();
  792. // 계좌인증용 은행코드 조회
  793. mav.addObject("bankList", rendererService.getAvailCommonCodeList("G942"));
  794. // 계좌주명 설정
  795. mav.addObject("accountNm", orderChange.getAccountNm());
  796. // 주문번호 설정
  797. mav.addObject("ordNo", orderChange.getOrdNo());
  798. mav.setViewName(super.getDeviceViewName("popup/RefundAccountAddPopupForm"));
  799. return mav;
  800. }
  801. /**
  802. * 마이페이지 취반교 목록 화면
  803. *
  804. * @return
  805. * @author card007
  806. * @since 2021. 02. 04
  807. */
  808. @GetMapping("/cre/list/form")
  809. public ModelAndView mypageCreListForm() {
  810. ModelAndView mav = new ModelAndView();
  811. // 고객번호 설정
  812. int custNo = TsfSession.getInfo().getCustNo();
  813. mav.addObject("custNo", custNo);
  814. // 주문 상태 별 수량 조회
  815. Order order = new Order();
  816. order.setCustNo(custNo);
  817. mav.addObject("orderCount", coreOrderService.getOrderStatCount(order));
  818. // 2021.04.21 모바일에서 사용하려고 추가
  819. OrderChange orderChange = new OrderChange();
  820. orderChange.setCustNo(custNo);
  821. int totalCnt = orderChangeService.getPagingCreListCount(orderChange);
  822. mav.addObject("totalCnt", totalCnt);
  823. // 주문상세상태코드 설정
  824. mav.addObject("chgStatList", rendererService.getCommonCodeList("G685", "Y", new String[] {"G685_10", "G685_11", "G685_19"}));
  825. mav.setViewName(super.getDeviceViewName("mypage/MypageCreListForm"));
  826. return mav;
  827. }
  828. /**
  829. * 마이페이지 취반교 목록 조회
  830. *
  831. * @param OrderChange
  832. * @return ModelAndView
  833. * @author card007
  834. * @since 2021. 02. 18
  835. */
  836. @PostMapping("/cre/list")
  837. @ResponseBody
  838. public GagaMap getCreList(@RequestBody OrderChange orderChange) {
  839. GagaMap map = new GagaMap();
  840. // 고객번호 설정
  841. int custNo = 0;
  842. if(TsfSession.isLogin()) {
  843. custNo = TsfSession.getInfo().getCustNo();
  844. }
  845. // 페이징 처리 설정
  846. orderChange.setCustNo(custNo);
  847. TscPageRequest pageable = new TscPageRequest((orderChange.getPageNo() > 0 ? orderChange.getPageNo() - 1 : 0), orderChange.getPageSize(), orderChange.getPageUnit());
  848. pageable.setTotalCount(orderChangeService.getPagingCreListCount(orderChange));
  849. orderChange.setPageable(pageable);
  850. // 페이징 처리 및 주문정보 조회
  851. List<Integer> ordChgSqList = new ArrayList<>();
  852. for (OrderChange tmpOrderChange : orderChangeService.getPagingCreList(orderChange)) {
  853. ordChgSqList.add(tmpOrderChange.getOrdChgSq());
  854. }
  855. if (ordChgSqList.size() > 0) {
  856. orderChange.setOrdChgSqArr(ordChgSqList.stream().mapToInt(Integer::intValue).toArray());
  857. map.set("creList", orderChangeService.getCreList(orderChange));
  858. }
  859. map.set("creInfo", orderChange);
  860. return map;
  861. }
  862. /**
  863. * 마이페이지 취반교 취소 상세 화면
  864. *
  865. * @return ModelAndView
  866. * @author card007
  867. * @since 2021. 04. 12
  868. */
  869. @GetMapping("/cre/cancel/detail/form")
  870. public ModelAndView mypageCreCancelDetailForm(OrderChange orderChange) {
  871. ModelAndView mav = new ModelAndView();
  872. // 고객번호 설정
  873. int custNo = TsfSession.getInfo().getCustNo();
  874. mav.addObject("custNo", custNo);
  875. // 취소상세 데이터 조회
  876. orderChange.setCustNo(custNo);
  877. GagaMap map = coreOrderChangeService.getCreCancelDetailInfo(orderChange);
  878. OrderChange oneData = (OrderChange) map.get("oneData");
  879. mav.addObject("cancelDetailList", map);
  880. mav.addObject("oneData", oneData);
  881. mav.addObject("refundYn", map.getString("refundYn"));
  882. // 주문 결제정보 조회
  883. Order order = new Order();
  884. order.setOrdNo(orderChange.getOrdNo());
  885. mav.addObject("paymentInfo", orderService.getPaymentInfoForMypage(order));
  886. // KCP 전표 경로 설정
  887. mav.addObject("kcpReceiptUrl", env.getProperty("pg.kcp.receipt.url"));
  888. mav.setViewName(super.getDeviceViewName("mypage/MypageCreCancelDetailForm"));
  889. return mav;
  890. }
  891. /**
  892. * 마이페이지 취반교 반품 상세 화면
  893. *
  894. * @return ModelAndView
  895. * @author card007
  896. * @since 2021. 04. 13
  897. */
  898. @GetMapping("/cre/return/detail/form")
  899. public ModelAndView mypageCreReturnDetailForm(OrderChange orderChange) {
  900. ModelAndView mav = new ModelAndView();
  901. // 고객번호 설정
  902. int custNo = TsfSession.getInfo().getCustNo();
  903. mav.addObject("custNo", custNo);
  904. // 로그인여부 설정
  905. mav.addObject("isLogin", TsfSession.isLogin());
  906. // 취소상세 데이터 조회
  907. orderChange.setCustNo(custNo);
  908. GagaMap map = coreOrderChangeService.getCreReturnDetailInfo(orderChange);
  909. OrderChange oneData = (OrderChange) map.get("oneData");
  910. mav.addObject("returnDetailList", map);
  911. mav.addObject("oneData", oneData);
  912. mav.addObject("refundYn", map.getString("refundYn"));
  913. // 주문 결제정보 조회
  914. Order order = new Order();
  915. order.setOrdNo(orderChange.getOrdNo());
  916. mav.addObject("paymentInfo", orderService.getPaymentInfoForMypage(order));
  917. // KCP 전표 경로 설정
  918. mav.addObject("kcpReceiptUrl", env.getProperty("pg.kcp.receipt.url"));
  919. mav.setViewName(super.getDeviceViewName("mypage/MypageCreReturnDetailForm"));
  920. return mav;
  921. }
  922. /**
  923. * 마이페이지 취반교 교환 상세 화면
  924. *
  925. * @return ModelAndView
  926. * @author card007
  927. * @since 2021. 04. 13
  928. */
  929. @GetMapping("/cre/exchange/detail/form")
  930. public ModelAndView mypageCreExchangeDetailForm(OrderChange orderChange) {
  931. ModelAndView mav = new ModelAndView();
  932. // 고객번호 설정
  933. int custNo = TsfSession.getInfo().getCustNo();
  934. mav.addObject("custNo", custNo);
  935. // 로그인여부 설정
  936. mav.addObject("isLogin", TsfSession.isLogin());
  937. // 취소상세 데이터 조회
  938. orderChange.setCustNo(custNo);
  939. GagaMap map = coreOrderChangeService.getCreExchangeDetailInfo(orderChange);
  940. OrderChange oneData = (OrderChange) map.get("oneData");
  941. mav.addObject("exchangeDetailList", map);
  942. mav.addObject("oneData", oneData);
  943. // KCP 전표 경로 설정
  944. mav.addObject("kcpReceiptUrl", env.getProperty("pg.kcp.receipt.url"));
  945. mav.setViewName(super.getDeviceViewName("mypage/MypageCreExchangeDetailForm"));
  946. return mav;
  947. }
  948. /**
  949. * WMS 주문 취소 가능 여부 조회
  950. *
  951. * @param
  952. * @return
  953. * @author card007
  954. * @since 2021. 04. 22
  955. */
  956. @PostMapping("/wms/cancel/available")
  957. @ResponseBody
  958. public GagaMap getWmsCancelYn(@RequestBody OrderChange orderChange) {
  959. GagaMap result = new GagaMap();
  960. String cancelYn = "Y";
  961. Integer ordNo = orderChange.getOrdNo();
  962. for (Integer ordDtlNo : orderChange.getOrdDtlNoArr()) {
  963. String rst = coreWmsService.getCancelYn(ordNo, ordDtlNo);
  964. if ("Y".equals(cancelYn) && "N".equals(rst)) {
  965. cancelYn = "N";
  966. }
  967. }
  968. result.setString("cancelYn", cancelYn);
  969. return result;
  970. }
  971. /**
  972. * 상품권 KCP 현금영수증 신청
  973. *
  974. * @param Order
  975. * @return GagaResponse
  976. * @author card007
  977. * @since 2021. 04. 25
  978. */
  979. @PostMapping("/cash/receipts/request")
  980. @ResponseBody
  981. public GagaMap requestCashReceipts(@RequestBody GiftCard giftCard) {
  982. GagaMap map = new GagaMap();
  983. // 상품권 KCP 현금영수증 신청 정보 조회
  984. giftCard = giftcardService.getCashReceiptsInfo(giftCard);
  985. if (giftCard == null || giftCard.getUsGfcdAmt() == 0) {
  986. throw new IllegalStateException(message.getMessage("FAIL_0004"));
  987. }
  988. // 상품권 KCP 현금영수증 신청
  989. GiftCard result = orderService.kcpCashReceiptsRequest(giftCard);
  990. // 결과 처리
  991. if("0000".equals(result.getResultCd())) {
  992. map.set("status", GagaResponseStatus.SUCCESS.getCode());
  993. map.set("message", message.getMessage("SUCC_0004"));
  994. } else {
  995. map.set("status", GagaResponseStatus.SUCCESS.getCode());
  996. map.set("message", message.getMessage("FAIL_0004"));
  997. }
  998. return map;
  999. }
  1000. /**
  1001. * 마이페이지 STYLE24 포인트화면
  1002. *
  1003. * @param
  1004. * @return ModelAndView
  1005. * @author csh9191
  1006. * @since 2021. 02. 25
  1007. */
  1008. @GetMapping("/point/form")
  1009. public ModelAndView stylePointForm(Point point) {
  1010. ModelAndView mav = new ModelAndView();
  1011. int custNo = TsfSession.getInfo().getCustNo();
  1012. point.setCustNo(custNo);
  1013. // 잔여포인트
  1014. mav.addObject("rmPntAmt", pointService.getUsablePointInfo(point));
  1015. // 적립예정포인트 expectedPntAmt
  1016. mav.addObject("expectedPntAmt", pointService.getExpectedPointInfo(point));
  1017. // 한달 이내 소멸 예정 포인트
  1018. mav.addObject("expectedExpirePntAmt", pointService.getExtinctPointInfo(point));
  1019. // 전체내역 조회
  1020. mav.addObject("allPointList", pointService.getAllPointList(point));
  1021. // 적립내역 조회
  1022. mav.addObject("accumulatePointList", pointService.getAccumulatePointList(point));
  1023. // 사용내역 조회
  1024. mav.addObject("usePointList", pointService.getUsePointList(point));
  1025. // 최근 12개월
  1026. mav.addObject("date", pointService.getRecentlyDate());
  1027. mav.setViewName(super.getDeviceViewName("mypage/MypagePointForm"));
  1028. return mav;
  1029. }
  1030. /**
  1031. * 마이페이지 STYLE24 포인트 전체,적립,사용내역
  1032. *
  1033. * @param param
  1034. * @return GagaMap
  1035. * @author csh9191
  1036. * @since 2021. 03. 02
  1037. */
  1038. @PostMapping("/allpoint/list")
  1039. @ResponseBody
  1040. public GagaMap getAllPointList(@RequestBody Point point) {
  1041. GagaMap result = new GagaMap();
  1042. int custNo = TsfSession.getInfo().getCustNo();
  1043. point.setCustNo(custNo);
  1044. // 전체내역 조회
  1045. result.set("allPointList", pointService.getAllPointList(point));
  1046. // 적립내역 조회
  1047. result.set("accumulatePointList", pointService.getAccumulatePointList(point));
  1048. // 사용내역 조회
  1049. result.set("usePointList", pointService.getUsePointList(point));
  1050. return result;
  1051. }
  1052. /**
  1053. * 마이페이지 반품신청 환불금액 계산
  1054. *
  1055. * @param Order
  1056. * @return GagaMap
  1057. * @author card007
  1058. * @since 2021. 02. 26
  1059. */
  1060. @SuppressWarnings("unchecked")
  1061. @PostMapping("/cancel/refund/amt/calculate")
  1062. @ResponseBody
  1063. public GagaMap calculateRefundAmt(@RequestBody OrderChange orderChange) {
  1064. if (orderChange == null) {
  1065. throw new IllegalStateException(message.getMessage("FAIL_1001"));
  1066. }
  1067. // 1. 세션회원조회
  1068. int custNo = TsfSession.getInfo().getCustNo();
  1069. orderChange.setCustNo(custNo);
  1070. // 2. 환불 사전 정보 조회
  1071. GagaMap refundPreInfo = coreOrderChangeService.getRefundPreInfo(orderChange);
  1072. List<Order> cnclReqList = (List<Order>)refundPreInfo.get("cnclReqList");
  1073. return coreOrderRefundService.cnclRtnRefundAmt(cnclReqList);
  1074. }
  1075. /**
  1076. * 마이페이지 배송지 정보 수정
  1077. *
  1078. * @param Order
  1079. * @return GagaMap
  1080. * @author card007
  1081. * @since 2021. 04. 04
  1082. */
  1083. @PostMapping("/change/delvery/addr")
  1084. @ResponseBody
  1085. public GagaMap changeDelveryAddr(@RequestBody Order order) {
  1086. GagaMap result = new GagaMap();
  1087. result.set("status", GagaResponseStatus.SUCCESS.getCode());
  1088. result.set("message", message.getMessage("DELV_0001"));
  1089. if (TsfSession.isLogin()) {
  1090. order.setCustNo(TsfSession.getInfo().getCustNo());
  1091. } else {
  1092. order.setCustNo(0);
  1093. }
  1094. try {
  1095. commonService.updateDeliverAddr(order);
  1096. commonService.updateDeliverAddrDelvMemo(order);
  1097. // TODO
  1098. // WMS IF TABLE 내 정보 업데이트 처리 필요
  1099. } catch (Exception e) {
  1100. result.set("status", GagaResponseStatus.FAIL.getCode());
  1101. result.set("message", message.getMessage("FAIL_0002"));
  1102. }
  1103. return result;
  1104. }
  1105. /**
  1106. * 마이페이지 배송 메모 수정
  1107. *
  1108. * @param Order
  1109. * @return GagaMap
  1110. * @author card007
  1111. * @since 2021. 04. 04
  1112. */
  1113. @PostMapping("/change/delvery/memo")
  1114. @ResponseBody
  1115. public GagaMap changeDelveryAddrDelvMemo(@RequestBody Order order) {
  1116. GagaMap result = new GagaMap();
  1117. result.set("status", GagaResponseStatus.SUCCESS.getCode());
  1118. result.set("message", message.getMessage("DELV_0002"));
  1119. if (TsfSession.isLogin()) {
  1120. order.setCustNo(TsfSession.getInfo().getCustNo());
  1121. } else {
  1122. order.setCustNo(0);
  1123. }
  1124. try {
  1125. commonService.updateDeliverAddrDelvMemo(order);
  1126. } catch (Exception e) {
  1127. result.set("status", GagaResponseStatus.FAIL.getCode());
  1128. result.set("message", message.getMessage("FAIL_0002"));
  1129. }
  1130. return result;
  1131. }
  1132. /**
  1133. * 마이페이지 회수지 정보 수정
  1134. *
  1135. * @param Order
  1136. * @return GagaMap
  1137. * @author card007
  1138. * @since 2021. 04. 13
  1139. */
  1140. @PostMapping("/change/chger/addr")
  1141. @ResponseBody
  1142. public GagaMap changeChgerAddr(@RequestBody OrderChange orderChange) {
  1143. GagaMap result = new GagaMap();
  1144. result.set("status", GagaResponseStatus.SUCCESS.getCode());
  1145. result.set("message", message.getMessage("DELV_0003"));
  1146. try {
  1147. orderChange.setUpdNo(TsfSession.getInfo().getCustNo());
  1148. orderChangeService.updateChgerAddr(orderChange);
  1149. // TODO
  1150. // WMS IF TABLE 내 정보 업데이트 처리 필요
  1151. } catch (Exception e) {
  1152. result.set("status", GagaResponseStatus.FAIL.getCode());
  1153. result.set("message", message.getMessage("FAIL_0002"));
  1154. }
  1155. return result;
  1156. }
  1157. /**
  1158. * 마이페이지 반품메모 수정
  1159. *
  1160. * @param Order
  1161. * @return GagaMap
  1162. * @author card007
  1163. * @since 2021. 04. 13
  1164. */
  1165. @PostMapping("/change/chger/rtn/memo")
  1166. @ResponseBody
  1167. public GagaMap changeChgerRtnMemo(@RequestBody OrderChange orderChange) {
  1168. GagaMap result = new GagaMap();
  1169. result.set("status", GagaResponseStatus.SUCCESS.getCode());
  1170. result.set("message", message.getMessage("DELV_0004"));
  1171. try {
  1172. orderChange.setUpdNo(TsfSession.getInfo().getCustNo());
  1173. orderChangeService.updateChgerRtnMemo(orderChange);
  1174. // TODO
  1175. // WMS IF TABLE 내 정보 업데이트 처리 필요
  1176. } catch (Exception e) {
  1177. throw new IllegalStateException(message.getMessage("FAIL_0002"));
  1178. }
  1179. return result;
  1180. }
  1181. /**
  1182. * 배송조회 화면
  1183. *
  1184. * @param Order
  1185. * @return ModelAndView
  1186. * @author card007
  1187. * @since 2021. 05. 04
  1188. */
  1189. @GetMapping("/delivery/info/form")
  1190. @ResponseBody
  1191. public ModelAndView deliveryInfoForm(Order order) {
  1192. ModelAndView mav = new ModelAndView();
  1193. // 고객번호 설정
  1194. order.setCustNo(TsfSession.getInfo().getCustNo());
  1195. // 주문번호 설정
  1196. mav.addObject("ordNo", order.getOrdNo());
  1197. // 주문목록 조회
  1198. Collection<GagaMap> orderList = orderService.getOrderListForMypage(order);
  1199. if (orderList.size() == 0) {
  1200. mav.setViewName("redirect:/mypage/order/list/form");
  1201. return mav;
  1202. }
  1203. mav.addObject("orderList", orderList);
  1204. mav.addObject("oneData", orderList.iterator().next().get("oneData"));
  1205. // 주문 배송지 정보 조회
  1206. mav.addObject("deliveryAddrInfo", orderService.getOrderDeliveryAddrInfo(order));
  1207. // 스윗트래커 정보 조회
  1208. SweetTracker sweetTracker = new SweetTracker();
  1209. sweetTracker.setShipCompCd(order.getShipCompCd());
  1210. sweetTracker.setInvoiceNo(order.getInvoiceNo());
  1211. mav.addObject("sweetTrackerInfoList", deliveryService.getSweetTrackerDeliveryInfo(sweetTracker));
  1212. mav.setViewName(super.getDeviceViewName("mypage/MypageDeliveryInfoForm"));
  1213. return mav;
  1214. }
  1215. /**
  1216. * 회수 배송 조회 팝업
  1217. *
  1218. * @param Order
  1219. * @return ModelAndView
  1220. * @author card007
  1221. * @since 2021. 03. 30
  1222. */
  1223. @PostMapping("/track/withdraw/popup/form")
  1224. @ResponseBody
  1225. public ModelAndView trackWithdrawPopupForm(@RequestBody OrderChange orderChange) {
  1226. ModelAndView mav = new ModelAndView();
  1227. // 스윗트래커 정보 조회
  1228. SweetTracker sweetTracker = new SweetTracker();
  1229. sweetTracker.setShipCompCd(orderChange.getShipCompCd());
  1230. sweetTracker.setInvoiceNo(orderChange.getWdInvoiceNo());
  1231. mav.addObject("sweetTrackerInfoList", deliveryService.getSweetTrackerDeliveryInfo(sweetTracker));
  1232. mav.setViewName(super.getDeviceViewName("popup/TrackWithdrawPopupForm"));
  1233. return mav;
  1234. }
  1235. /**
  1236. * 위시리스트 등록처리
  1237. *
  1238. * @param wishList
  1239. * @return GagaResponse
  1240. * @author eskim
  1241. * @since 2021. 03. 08
  1242. */
  1243. @PostMapping("/wish/list/put")
  1244. @ResponseBody
  1245. public GagaMap createWishList(@RequestBody Collection<WishList> wishList) throws Exception {
  1246. GagaMap result = new GagaMap();
  1247. customerService.createWishList(wishList);
  1248. result.set("status", "200");
  1249. return result;
  1250. }
  1251. /**
  1252. * 위시리스트 삭제처리
  1253. *
  1254. * @param wishList
  1255. * @return GagaResponse
  1256. * @throws Exception
  1257. * @author eskim
  1258. * @since 2021. 03. 08
  1259. */
  1260. @PostMapping("/wish/list/delete")
  1261. @ResponseBody
  1262. public GagaMap deleteWishList(@RequestBody Collection<WishList> wishList) throws Exception {
  1263. GagaMap result = new GagaMap();
  1264. customerService.deleteWishList(wishList);
  1265. result.set("status", "200");
  1266. return result;
  1267. }
  1268. /* 김소원 상품권 쿠폰 리뷰 위시리스트 시작 */
  1269. /**
  1270. * 마이페이지 상품권화면
  1271. *
  1272. * @return
  1273. * @author sowon
  1274. * @since 2021. 03. 12
  1275. */
  1276. @GetMapping("/gift/card/form")
  1277. public ModelAndView mypageGiftcardForm(GiftCard giftcard, Device device) {
  1278. ModelAndView mav = new ModelAndView();
  1279. // 상품권 기본정보
  1280. mav.addObject("giftcardInfo", giftcardService.getGiftcardInfo(giftcard));
  1281. // 최근 12개월 년,월
  1282. mav.addObject("date", giftcardService.getRecentlyDate());
  1283. mav.setViewName(super.getDeviceViewName("mypage/MypageGiftcardForm"));
  1284. return mav;
  1285. }
  1286. /**
  1287. * 마이페이지 상품권 사용 리스트
  1288. *
  1289. * @return
  1290. * @author sowon
  1291. * @since 2021. 03. 12
  1292. */
  1293. @PostMapping("/gift/use/list")
  1294. @ResponseBody
  1295. public GagaMap getGiftcardUseList(@RequestBody GiftCard giftcard) {
  1296. GagaMap result = new GagaMap();
  1297. result.set("giftcardUseList", giftcardService.getGiftcardUseList(giftcard));
  1298. return result;
  1299. }
  1300. /**
  1301. * 마이페이지 상품권 보유 리스트
  1302. *
  1303. * @return
  1304. * @author sowon
  1305. * @since 2021. 03. 12
  1306. */
  1307. @PostMapping("/gift/own/list")
  1308. @ResponseBody
  1309. public GagaMap getGiftcardOwnList(@RequestBody GiftCard giftcard) {
  1310. GagaMap result = new GagaMap();
  1311. result.set("giftcardOwnList", giftcardService.getGiftcardOwnList(giftcard));
  1312. return result;
  1313. }
  1314. /**
  1315. * 마이페이지 상품권 저장
  1316. *
  1317. * @return
  1318. * @author sowon
  1319. * @throws Exception
  1320. * @since 2021. 03. 15
  1321. */
  1322. @PostMapping("/gift/use/confirm")
  1323. @ResponseBody
  1324. public GagaResponse createGiftcardUseConfirm(@RequestBody GiftCard giftcard) throws Exception {
  1325. giftcardService.createGiftcardUseConfirm(giftcard);
  1326. return super.ok(message.getMessage("SUCC_0001"));
  1327. }
  1328. /**
  1329. * 마이페이지 쿠폰화면
  1330. *
  1331. * @return
  1332. * @author sowon
  1333. * @since 2021. 03. 16
  1334. */
  1335. @GetMapping("/coupon/form")
  1336. public ModelAndView mypageCouponForm(Coupon coupon) {
  1337. ModelAndView mav = new ModelAndView();
  1338. mav.addObject("couponList", couponService.getMypageCouponList(coupon));
  1339. mav.addObject("couponInfo", couponService.getMypageCouponInfo(coupon));
  1340. mav.setViewName(super.getDeviceViewName("mypage/MypageCouponForm"));
  1341. return mav;
  1342. }
  1343. /**
  1344. * 퀵메뉴 보유한 쿠폰리스트
  1345. * @return
  1346. * @author sowon
  1347. * @since 2021. 4. 14
  1348. */
  1349. @GetMapping("/quick/own/coupon/list")
  1350. @ResponseBody
  1351. public Collection<Coupon> getQuickOwnCouponList() {
  1352. Coupon coupon = new Coupon();
  1353. Collection<Coupon> ownCouponList = new ArrayList<>();
  1354. coupon.setQuickYn("Y");
  1355. ownCouponList = couponService.getMypageCouponList(coupon);
  1356. return ownCouponList;
  1357. }
  1358. /**
  1359. * 퀵메뉴 다운가능한 쿠폰리스트
  1360. * @return
  1361. * @author sowon
  1362. * @since 2021. 4. 23
  1363. */
  1364. @GetMapping("/quick/down/coupon/list")
  1365. @ResponseBody
  1366. public GagaMap getQuickDownCouponList() {
  1367. GagaMap result = new GagaMap();
  1368. Coupon coupon = new Coupon();
  1369. coupon.setQuickYn("N");
  1370. Collection<Coupon> ownCouponList = couponService.getQuickCouponDownList(coupon);
  1371. result.set("ownCouponList", ownCouponList);
  1372. result.set("couponCount",couponService.getMypageCouponInfo(coupon));
  1373. return result;
  1374. }
  1375. /**
  1376. * 퀵메뉴 쿠폰 다운
  1377. * @return
  1378. * @author sowon
  1379. * @since 2021. 4. 23
  1380. */
  1381. @PostMapping("/quick/coupon/download")
  1382. @ResponseBody
  1383. public GagaMap downQuickCoupon(@RequestBody Coupon coupon) {
  1384. GagaMap result = new GagaMap();
  1385. String couponResult = couponService.saveQuickCoupon(coupon);
  1386. if ("ERROR_10".equals(couponResult)) {
  1387. result.set("message", "발급가능 쿠폰이 없습니다.");
  1388. }else if("ERROR_20".equals(couponResult)){
  1389. result.set("message", "죄송합니다. 해당 쿠폰은 다운로드가 불가합니다.");
  1390. }else if("ERROR_30".equals(couponResult)){
  1391. result.set("message", "죄송합니다. 해당 쿠폰은 다운로드가 불가합니다.");
  1392. }else {
  1393. result.set("message", "쿠폰이 발급되었습니다.");
  1394. }
  1395. coupon.setQuickYn("Y");
  1396. result.set("status", "200");
  1397. result.set("couponList", couponService.getQuickCouponDownList(coupon));
  1398. return result;
  1399. }
  1400. /**
  1401. * 마이페이지 쿠폰 상세보기 팝업
  1402. *
  1403. * @return
  1404. * @author sowon
  1405. * @since 2021. 03. 17
  1406. */
  1407. @PostMapping(value = "/coupon/detailPop")
  1408. public ModelAndView mypageCouponDetailPop(@RequestBody Coupon coupon) {
  1409. ModelAndView mav = new ModelAndView();
  1410. // 쿠폰 - 기본정보
  1411. mav.addObject("couponDetailInfo", couponService.getCouponDetailInfo(coupon));
  1412. mav.setViewName(super.getDeviceViewName("mypage/MypageCouponDetailForm"));
  1413. return mav;
  1414. }
  1415. /**
  1416. * 마이페이지 리뷰화면
  1417. *
  1418. * @return
  1419. * @author sowon
  1420. * @since 2021. 03. 24
  1421. */
  1422. @GetMapping("/review/form")
  1423. public ModelAndView mypageReviewForm(Review review) {
  1424. ModelAndView mav = new ModelAndView();
  1425. review.setCustNo(TsfSession.getInfo().getCustNo());
  1426. review.setSiteCd(TscConstants.Site.STYLE24.value());
  1427. // 작성가능한 리뷰 카운트
  1428. review.setReviewExpireDay(eventService.getGoodsReviewRegisterDays(TscConstants.Site.STYLE24.value()));
  1429. mav.addObject("completeReviewCount", reviewService.getCompleteReviewList(review).size());
  1430. // 작성한 리뷰 카운트
  1431. mav.addObject("alreadyReviewCount", reviewService.getAlreadyReviewList(review).size());
  1432. // 관리자 댓글확인
  1433. mav.addObject("adminCount", reviewService.getAdminConfirmCount(review));
  1434. // 리뷰 이미지/동영상
  1435. mav.addObject("alreadyReviewAttach", reviewService.getReviewAttach(review));
  1436. mav.setViewName(super.getDeviceViewName("mypage/MypageReviewForm"));
  1437. return mav;
  1438. }
  1439. /**
  1440. * 마이페이지 작성가능한 리뷰 목록
  1441. * @param review
  1442. * @return
  1443. * @author sowon
  1444. * @since 2021. 03. 25
  1445. */
  1446. @PostMapping("/complete/review/list")
  1447. @ResponseBody
  1448. public GagaMap getMypageCompleteReviewList(@RequestBody Review review) {
  1449. review.setSiteCd(TscConstants.Site.STYLE24.value());
  1450. if (TsfSession.isLogin()) {
  1451. review.setCustNo(TsfSession.getInfo().getCustNo());
  1452. }
  1453. GagaMap result = new GagaMap();
  1454. int reviewExpireDay = eventService.getGoodsReviewRegisterDays(TscConstants.Site.STYLE24.value());
  1455. review.setReviewExpireDay(reviewExpireDay);
  1456. result.set("completeReviewCount", reviewService.getCompleteReviewList(review).size());
  1457. TscPageRequest pageable = new TscPageRequest((review.getPageNo() > 0 ? review.getPageNo() - 1 : 0), review.getPageSize(), review.getPageUnit());
  1458. int totalCnt = reviewService.getCompleteReviewList(review).size();
  1459. pageable.setTotalCount(totalCnt);
  1460. review.setPageable(pageable);
  1461. result.set("paging1", review);
  1462. result.set("totalCnt", totalCnt);
  1463. result.set("endRow", pageable.getEndRow());
  1464. result.set("dataList1", reviewService.getCompleteReviewList(review));
  1465. return result;
  1466. }
  1467. /**
  1468. * 마이페이지 작성한 리뷰 목록
  1469. * @param review
  1470. * @return
  1471. * @author sowon
  1472. * @since 2021. 03. 26
  1473. */
  1474. @PostMapping("/already/review/list")
  1475. @ResponseBody
  1476. public GagaMap getMypageAlreadyReviewList(@RequestBody Review review) {
  1477. review.setSiteCd(TscConstants.Site.STYLE24.value());
  1478. GagaMap result = new GagaMap();
  1479. if (TsfSession.isLogin()) {
  1480. review.setCustNo(TsfSession.getInfo().getCustNo());
  1481. }
  1482. review.setReviewExpireDay(eventService.getGoodsReviewPointExpireDays(TscConstants.Site.STYLE24.value()));
  1483. result.set("alreadyReviewCount", reviewService.getAlreadyReviewList(review).size());
  1484. TscPageRequest pageable = new TscPageRequest((review.getPageNo() > 0 ? review.getPageNo() - 1 : 0), review.getPageSize(), review.getPageUnit());
  1485. int totalCnt = reviewService.getAlreadyReviewList(review).size();
  1486. pageable.setTotalCount(totalCnt);
  1487. review.setPageable(pageable);
  1488. result.set("paging2", review);
  1489. result.set("totalCnt", totalCnt);
  1490. result.set("endRow", pageable.getEndRow());
  1491. result.set("dataList2", reviewService.getAlreadyReviewList(review));
  1492. return result;
  1493. }
  1494. /**
  1495. * 마이페이지 리뷰작성화면
  1496. *
  1497. * @return
  1498. * @author sowon
  1499. * @since 2021. 03. 25
  1500. */
  1501. @PostMapping("/review/create/form")
  1502. public ModelAndView mypageReviewCreateForm(Review review) {
  1503. ModelAndView mav = new ModelAndView();
  1504. review.setCustNo(TsfSession.getInfo().getCustNo());
  1505. review.setSiteCd(TscConstants.Site.STYLE24.value());
  1506. mav.addObject("reviewStat", review.getReviewStat());
  1507. if (review.getReviewStat().equals("u")) {
  1508. // 리뷰 이미지/동영상
  1509. mav.addObject("alreadyReviewAttach", reviewService.getReviewAttach(review));
  1510. }
  1511. review.setReviewExpireDay(eventService.getGoodsReviewRegisterDays(TscConstants.Site.STYLE24.value()));
  1512. mav.addObject("reviewInfo", reviewService.getReviewGoodsInfo(review));
  1513. mav.setViewName(super.getDeviceViewName("mypage/MypageReviewCreateForm"));
  1514. return mav;
  1515. }
  1516. /**
  1517. * 마이페이지 리뷰 저장
  1518. * @param review
  1519. * @return
  1520. * @author sowon
  1521. * @since 2021. 03. 25
  1522. */
  1523. @PostMapping("/review/save")
  1524. @ResponseBody
  1525. public GagaMap mypageReviewSave(@RequestBody Review review) {
  1526. GagaMap result = new GagaMap();
  1527. review.setCustNo(TsfSession.getInfo().getCustNo());
  1528. reviewService.saveMypageReview(review);
  1529. result.set("status", "200");
  1530. return result;
  1531. }
  1532. /**
  1533. * 마이페이지 리뷰 업데이트
  1534. * @param review
  1535. * @return
  1536. * @author sowon
  1537. * @since 2021. 04. 28
  1538. */
  1539. @PostMapping("/review/update")
  1540. @ResponseBody
  1541. public GagaMap mypageReviewUpdate(@RequestBody Review review) {
  1542. GagaMap result = new GagaMap();
  1543. review.setCustNo(TsfSession.getInfo().getCustNo());
  1544. /*
  1545. * if (reviewService.reviewDeleteConfirm(review).getCount() > 0) {
  1546. * review.setReviewSq(reviewService.reviewDeleteConfirm(review).getReviewSq());
  1547. * }
  1548. */
  1549. reviewService.updateMypageReview(review);
  1550. result.set("status", "200");
  1551. return result;
  1552. }
  1553. /**
  1554. * 마이페이지 리뷰 삭제처리
  1555. *
  1556. * @param review
  1557. * @return
  1558. * @throws Exception
  1559. * @author sowon
  1560. * @since 2021. 03. 26
  1561. */
  1562. @PostMapping("/review/delete")
  1563. @ResponseBody
  1564. public GagaMap mypageReviewDelete(@RequestBody Review review) throws Exception {
  1565. GagaMap result = new GagaMap();
  1566. review.setCustNo(TsfSession.getInfo().getCustNo());
  1567. review.setSiteCd(TscConstants.Site.STYLE24.value());
  1568. reviewService.reviewDelete(review);
  1569. result.set("alreadyReviewCount",reviewService.getAlreadyReviewList(review).size());
  1570. result.set("completeReviewCount",reviewService.getCompleteReviewList(review).size());
  1571. result.set("status", "200");
  1572. return result;
  1573. }
  1574. /**
  1575. * 상품상세 - 상품평 상세 레이어
  1576. * @return
  1577. * @author sowon
  1578. * @since 2021. 5. 3
  1579. */
  1580. @PostMapping("/review/detail/layer")
  1581. public ModelAndView mypageReviewDetailForm(Review review) {
  1582. ModelAndView mav = new ModelAndView();
  1583. // 상품관련 기본값 설정(회원 등급, 앱, PC/모바일 등)
  1584. Goods paramsGoods = new Goods();
  1585. paramsGoods.setGoodsCd(review.getGoodsCd());
  1586. // 상품 기본정보
  1587. mav.addObject("params", paramsGoods);
  1588. mav.addObject("review", review);
  1589. mav.addObject("reviewList", reviewService.getMypageReviewList(review));
  1590. mav.setViewName(super.getDeviceViewName("mypage/MypageReviewDetailForm"));
  1591. return mav;
  1592. }
  1593. /**
  1594. * 상품상세 - 상품평 상세 레이어
  1595. * @return
  1596. * @author sowon
  1597. * @since 2021. 3. 8
  1598. */
  1599. @PostMapping("/review/detail/list")
  1600. @ResponseBody
  1601. public GagaMap getReviewDetailList(@RequestBody Review review) {
  1602. log.info("getReviewDetailList {}", review);
  1603. GagaMap result = new GagaMap();
  1604. result.set("reviewList", reviewService.getMypageReviewList(review));
  1605. return result;
  1606. }
  1607. /**
  1608. * 마이페이지 어드민 댓글 확인
  1609. *
  1610. * @param review
  1611. * @return
  1612. * @throws Exception
  1613. * @author sowon
  1614. * @since 2021. 04. 15
  1615. */
  1616. @PostMapping("/review/customer/confirm")
  1617. @ResponseBody
  1618. public GagaMap mypageReviewCustomerConfirm(@RequestBody Review review) throws Exception {
  1619. GagaMap result = new GagaMap();
  1620. reviewService.reviewCustomerConfirm(review);
  1621. result.set("status", "200");
  1622. return result;
  1623. }
  1624. /**
  1625. * 마이페이지 위시리스트화면
  1626. *
  1627. * @return
  1628. * @author sowon
  1629. * @since 2021. 03. 29
  1630. */
  1631. @GetMapping("/wish/list/form")
  1632. public ModelAndView mypageWishListForm(WishList wishList, Device device) {
  1633. ModelAndView mav = new ModelAndView(super.getDeviceViewName("mypage/MypageWishListForm"));
  1634. wishList.setSiteCd(TscConstants.Site.STYLE24.value());
  1635. wishList.setFrontGb(TsfSession.getFrontGb());
  1636. wishList.setCustGb(TsfSession.getCustGb());
  1637. // 위시리스트 달
  1638. mav.addObject("wishMonth", wishListService.getWishListMonth(wishList));
  1639. return mav;
  1640. }
  1641. /**
  1642. * 마이페이지 상품목록 가져오기
  1643. *
  1644. * @return
  1645. * @author sowon
  1646. * @since 2021. 03. 29
  1647. */
  1648. @GetMapping("/wish/list")
  1649. @ResponseBody
  1650. public Collection<Goods> getWishList() {
  1651. Collection<Goods> wishList = new ArrayList<>();
  1652. WishList wish = new WishList();
  1653. wish.setSiteCd(TscConstants.Site.STYLE24.value());
  1654. wish.setFrontGb(TsfSession.getFrontGb());
  1655. wish.setCustGb(TsfSession.getCustGb());
  1656. // 위시리스트 상품목록
  1657. wishList = wishListService.getWishListGoodsList(wish);
  1658. return wishList;
  1659. }
  1660. /*신주승 시작*/
  1661. /**
  1662. * 마이페이지 - 회원정보확인 화면
  1663. *
  1664. * @return ModelAndView
  1665. * @author jsshin
  1666. * @since 2021. 03. 15
  1667. */
  1668. @GetMapping("/customer/confirm/form")
  1669. public ModelAndView getCustomerConfirmForm() {
  1670. ModelAndView mav = new ModelAndView();
  1671. Customer customer = customerService.getCustomerFindByCustNo(TsfSession.getInfo().getCustNo());
  1672. mav.addObject("custId", customer.getCustId());
  1673. mav.addObject("snsType", StringUtils.defaultString(customer.getSnsType(), ""));
  1674. // 1.간편가입인데 처음 마이페지로 진입 했을떄
  1675. if (StringUtils.isNotBlank(customer.getSnsType()) && StringUtils.isBlank(customer.getPasswd())) {
  1676. mav.setViewName(super.getDeviceViewName("mypage/MypageCustSnsJoinInitPwdForm"));
  1677. } else {
  1678. mav.setViewName(super.getDeviceViewName("mypage/MypageCustConfirmForm"));
  1679. }
  1680. return mav;
  1681. }
  1682. /**
  1683. * 마이페이지 - 회원정보확인처리
  1684. *
  1685. * @return ModelAndView
  1686. * @author jsshin
  1687. * @since 2021. 03. 15
  1688. */
  1689. @PostMapping("/customer/password/confirm")
  1690. @ResponseBody
  1691. public GagaMap customerPasswordConfirm(@RequestBody Customer customer) {
  1692. GagaMap result = new GagaMap();
  1693. boolean isMatch = customerService.customerPasswordConfirm(customer);
  1694. result.setBoolean("isMatch", isMatch);
  1695. return result;
  1696. }
  1697. /**
  1698. * 마이페이지 - 회원정보수정 화면
  1699. *
  1700. * @param confirmYn - 정보확인여부
  1701. * @return ModelAndView
  1702. * @author jsshin
  1703. * @since 2021. 03. 15
  1704. */
  1705. @RequestMapping("/customer/modify/form")
  1706. public ModelAndView getCustomerModifyForm(@RequestParam(required = false) String confirmYn,
  1707. @RequestParam(value = "sEncData", required = false) String sEncData ,
  1708. @RequestParam(value = "authMethod", required = false) String authMethod) {
  1709. ModelAndView mav = new ModelAndView();
  1710. String referer = StringUtils.defaultIfBlank(TsfSession.getHttpServletRequest().getHeader("referer"), "");
  1711. boolean redirect = false;
  1712. log.info("referer ==> {}", referer);
  1713. if (StringUtils.isBlank(referer)) {
  1714. redirect = true;
  1715. }
  1716. if (!referer.contains("/mypage/customer/confirm/form")) {
  1717. redirect = true;
  1718. }
  1719. if (!"Y".equals(confirmYn)) {
  1720. redirect = true;
  1721. }
  1722. if (referer.contains("/customer/nice/certify/callback")) {
  1723. redirect = false;
  1724. }
  1725. if (redirect) {
  1726. mav.setViewName("redirect:/mypage/customer/confirm/form");
  1727. return mav;
  1728. }
  1729. mav.addObject("sEncData", sEncData);
  1730. mav.addObject("authMethod", authMethod);
  1731. mav.addObject("bankList", rendererService.getCommonCodeList("G942", "Y"));
  1732. mav.setViewName(super.getDeviceViewName("mypage/MypageCustModifyForm"));
  1733. return mav;
  1734. }
  1735. /**
  1736. * 마이페이지 - 회원정보조회
  1737. *
  1738. * @return Customer - 고객정보
  1739. * @author jsshin
  1740. * @since 2021. 03. 15
  1741. */
  1742. @GetMapping("/customer/info")
  1743. @ResponseBody
  1744. public Customer getCustomerInfo() {
  1745. Integer custNo = TsfSession.getInfo().getCustNo();
  1746. return customerService.getCustomerFindByCustNo(custNo);
  1747. }
  1748. /**
  1749. * 마이페이지 - 계좌정보
  1750. *
  1751. * @return Customer - 고객정보
  1752. * @author jsshin
  1753. * @since 2021. 03. 15
  1754. */
  1755. @GetMapping("/customer/account/info")
  1756. @ResponseBody
  1757. public CustAccount getCustomerAccuontInfo() {
  1758. Integer custNo = TsfSession.getInfo().getCustNo();
  1759. return customerService.getCustomerAccuontInfo(custNo);
  1760. }
  1761. /**
  1762. * 마이페이지 - 개명본인인증, 휴대폰 본인인증
  1763. *
  1764. * @return GagaMap - 결과
  1765. * @param customer - 본인인증 값
  1766. * @author jsshin
  1767. * @since 2021. 03. 15
  1768. */
  1769. @PostMapping("/customer/auth/update")
  1770. @ResponseBody
  1771. public GagaMap updateCustomerAuth(@RequestBody Customer customer) {
  1772. GagaMap authInfo = niceCertify.getCertifyCellPhoneResultInfo(customer);
  1773. customer.setSexGb(authInfo.getString("sGender"));
  1774. customer.setCustNo(TsfSession.getInfo().getCustNo());
  1775. customer.setCellPhnno(authInfo.getString("sMobileNo"));
  1776. customer.setCustNm(authInfo.getString("sName"));
  1777. customer.setBirthYmd(authInfo.getString("sBirthDate"));
  1778. return customerService.updateCustomerAuth(customer);
  1779. }
  1780. /**
  1781. * 마이페이지 - 확인(수정)
  1782. *
  1783. * @return GagaMap - 결과
  1784. * @param customer - 수정 데이터
  1785. * @author jsshin
  1786. * @since 2021. 03. 15
  1787. */
  1788. @PostMapping("/customer/info/save")
  1789. @ResponseBody
  1790. public GagaMap updateCustomerInfo(@RequestBody Customer customer) {
  1791. CustAccount custAccount = new CustAccount();
  1792. custAccount.setIpAddress(TsfSession.getIpAddress());
  1793. custAccount.setAccountNm(customer.getAccountNm());
  1794. custAccount.setAccountNo(customer.getAccountNo());
  1795. custAccount.setBankCd(customer.getBankCd());
  1796. if ("Y".equals(customer.getAccountModifyYn())) {
  1797. GagaMap result = coreKcpService.checkAccount(custAccount);
  1798. if (!"0000".equals(result.get("resCd"))) {
  1799. result.setBoolean("isSuccess", false);
  1800. result.setString("resultType", "INVALID_ACCOUNT");
  1801. return result;
  1802. }
  1803. }
  1804. return customerService.saveCustomerInfo(customer);
  1805. }
  1806. /**
  1807. * 마이페이지 - 계좌인증
  1808. *
  1809. * @return GagaMap - 결과
  1810. * @author jsshin
  1811. * @since 2021. 03. 16
  1812. */
  1813. @RequestMapping("/account/check")
  1814. @ResponseBody
  1815. public GagaMap getAccountCheck(@RequestBody CustAccount custAccount) {
  1816. boolean isValid = false;
  1817. GagaMap result = coreKcpService.checkAccount(custAccount);
  1818. if ("0000".equals(result.get("resCd"))) {
  1819. isValid = true;
  1820. }
  1821. result.setBoolean("isValid", isValid);
  1822. return result;
  1823. }
  1824. /**
  1825. * 마이페이지 - 회원탈퇴 화면
  1826. *
  1827. * @return ModelAndView
  1828. * @author jsshin
  1829. * @since 2021. 03. 16
  1830. */
  1831. @GetMapping("/customer/secede/form")
  1832. public ModelAndView getCustomerSecedeForm() {
  1833. ModelAndView mav = new ModelAndView();
  1834. Order order = new Order();
  1835. order.setCustNo(TsfSession.getInfo().getCustNo());
  1836. Point point = new Point();
  1837. point.setCustNo(TsfSession.getInfo().getCustNo());
  1838. // 주문 상태 별 수량 조회
  1839. mav.addObject("orderStatInfo", coreOrderService.getOrderStatCount(order));
  1840. // 포인트정보
  1841. mav.addObject("pointInfo", pointService.getCustomerPoint(point));
  1842. // 상품권 정보 조회
  1843. mav.addObject("rmGfcdAmt", coreOrderService.getGiftcardInfo(order));
  1844. // 쿠폰정보 조회
  1845. mav.addObject("couponCnt", coreOrderService.getCouponInfo(order));
  1846. Customer customer = customerService.getCustomerFindByCustNo(TsfSession.getInfo().getCustNo());
  1847. mav.addObject("snsType", customer.getSnsType());
  1848. mav.addObject("custId", customer.getCustId());
  1849. mav.addObject("custNm", customer.getCustNm());
  1850. mav.setViewName(super.getDeviceViewName("mypage/MypageCustSecedeForm"));
  1851. return mav;
  1852. }
  1853. /**
  1854. * 마이페이지 - 회원탈퇴
  1855. *
  1856. * @return ModelAndView
  1857. * @author jsshin
  1858. * @since 2021. 03. 16
  1859. */
  1860. @PostMapping("/customer/secede/complete/form")
  1861. public ModelAndView getCustomerSecedeCompleteForm(HttpServletRequest request, HttpServletResponse response) {
  1862. ModelAndView mav = new ModelAndView();
  1863. Integer custNo = TsfSession.getInfo().getCustNo();
  1864. Order order = new Order();
  1865. order.setCustNo(custNo);
  1866. Point point = new Point();
  1867. point.setCustNo(custNo);
  1868. // 주문 상태 별 수량 조회
  1869. mav.addObject("orderStatInfo", coreOrderService.getOrderStatCount(order));
  1870. // 포인트정보
  1871. mav.addObject("pointInfo", pointService.getCustomerPoint(point));
  1872. // 상품권 정보 조회
  1873. mav.addObject("rmGfcdAmt", coreOrderService.getGiftcardInfo(order));
  1874. // 쿠폰정보 조회
  1875. mav.addObject("couponCnt", coreOrderService.getCouponInfo(order));
  1876. mav.addObject("custNm", TsfSession.getInfo().getCustNm());
  1877. Customer customer = new Customer();
  1878. customer.setCustId(TsfSession.getInfo().getCustId());
  1879. customer.setCustNm(TsfSession.getInfo().getCustNm());
  1880. customer.setCustNo(custNo);
  1881. customer.setRegNo(custNo);
  1882. customer.setUpdNo(custNo);
  1883. customer.setSiteCd(TscConstants.Site.STYLE24.value());
  1884. GagaMap result = customerService.saveCustomerSecede(customer);
  1885. boolean isSuccess = result.getBoolean("isSuccess");
  1886. if (!isSuccess) {
  1887. mav.setViewName("redirect:/mypage/customer/secede/form");
  1888. return mav;
  1889. }
  1890. try {
  1891. customer.setRejoinRejectDay(result.getInt("rejoinRejectDay"));
  1892. customer.setSecedeDt(result.getString("secedeDt"));
  1893. customer.setSnsType(result.getString("snsType"));
  1894. mailService.sendSecedComplete(customer, TsfSession.getInfo().getCustNo());
  1895. } catch (Exception e) {
  1896. log.error(e.getMessage());
  1897. }
  1898. TsfSession.invalidate(request);
  1899. // RememberMe 쿠키가 있으면
  1900. String ckRememberMe = GagaCookieUtil.getCookie(request, TsfConstants.CK_PREFIX + "_remember-me");
  1901. if (StringUtils.isNotBlank(ckRememberMe)) {
  1902. // 로그인유지토큰 삭제
  1903. loginService.deletePersistentToken(ckRememberMe);
  1904. // RememberMe 쿠키 삭제
  1905. GagaCookieUtil.deleteCookie(response, TsfConstants.CK_PREFIX + "_remember-me");
  1906. }
  1907. mav.setViewName(super.getDeviceViewName("mypage/MypageCustSecedeCompleteForm"));
  1908. return mav;
  1909. }
  1910. /**
  1911. * 마이페이지 - 비밀번호 변경 팝업
  1912. *
  1913. * @return ModelAndView
  1914. * @author jsshin
  1915. * @since 2021. 04. 01
  1916. */
  1917. @PostMapping("/password/modify/form")
  1918. public ModelAndView pwdModifyForm() {
  1919. ModelAndView mav = new ModelAndView();
  1920. mav.addObject("custId", TsfSession.getInfo().getCustId());
  1921. mav.setViewName(super.getDeviceViewName("mypage/MypageCustPwdModifyForm"));
  1922. return mav;
  1923. }
  1924. /**
  1925. * 마이페이지 - 비밀번호 변경
  1926. *
  1927. * @return GagaMap
  1928. * @author jsshin
  1929. * @since 2021. 04. 01
  1930. */
  1931. @PostMapping("/password/change")
  1932. @ResponseBody
  1933. public GagaMap changePassword(@RequestBody Customer customer) {
  1934. Integer custNo = TsfSession.getInfo().getCustNo();
  1935. customer.setCustNo(custNo);
  1936. customer.setRegNo(custNo);
  1937. customer.setUpdNo(custNo);
  1938. return customerService.changePassword(customer);
  1939. }
  1940. /**
  1941. * 마이페이지 - 배송지관리
  1942. *
  1943. * @return ModelAndView
  1944. * @author jsshin
  1945. * @since 2021. 04. 01
  1946. */
  1947. @GetMapping("/delivery/addr/form")
  1948. public ModelAndView getDeliveryListForm() {
  1949. ModelAndView mav = new ModelAndView();
  1950. mav.setViewName(super.getDeviceViewName("mypage/MypageCustDeliveryAddrForm"));
  1951. return mav;
  1952. }
  1953. /**
  1954. * 마이페이지 - 배송지목록
  1955. *
  1956. * @return Collection<CustDeliveryAddr>
  1957. * @author jsshin
  1958. * @since 2021. 04. 02
  1959. */
  1960. @GetMapping("/customer/delivery/addr/list")
  1961. @ResponseBody
  1962. public Collection<CustDeliveryAddr> getCustomerDeliveryAddrList() {
  1963. CustDeliveryAddr custDeliveryAddr = new CustDeliveryAddr();
  1964. custDeliveryAddr.setCustNo(TsfSession.getInfo().getCustNo());
  1965. return customerService.getCustomerDeliveryAddrList(custDeliveryAddr);
  1966. }
  1967. /**
  1968. * 마이페이지 - 배송지 삭제
  1969. *
  1970. * @return Collection<CustDeliveryAddr>
  1971. * @author jsshin
  1972. * @since 2021. 04. 05
  1973. */
  1974. @PostMapping("/customer/delivery/addr/delete")
  1975. @ResponseBody
  1976. public GagaMap deleteCustDeliveryAddr(@RequestBody CustDeliveryAddr custDeliveryAddr) {
  1977. return customerService.deleteCustDeliveryAddr(custDeliveryAddr);
  1978. }
  1979. /*신주승 끝*/
  1980. /**
  1981. * 마이페이지 - 재입고알림
  1982. * @return ModelAndView
  1983. * @author gagamel
  1984. * @since 2021. 4. 13
  1985. */
  1986. @GetMapping("/restock/form")
  1987. public ModelAndView restockForm() {
  1988. ModelAndView mav = new ModelAndView();
  1989. mav.setViewName(super.getDeviceViewName("mypage/RestockForm"));
  1990. return mav;
  1991. }
  1992. /**
  1993. * 마이페이지 - 재입고알림 목록
  1994. * @return
  1995. * @author gagamel
  1996. * @since 2021. 4. 13
  1997. */
  1998. @GetMapping("/restock/list")
  1999. @ResponseBody
  2000. public Collection<ReinboundInform> getRestockList() {
  2001. return reinboundService.getReinboundInformList(TsfSession.getInfo().getCustNo());
  2002. }
  2003. /**
  2004. * 마이페이지 - 재입고알림 목록
  2005. * @param params - 재입고알림 정보
  2006. * @return
  2007. * @author gagamel
  2008. * @since 2021. 4. 13
  2009. */
  2010. @PostMapping("/restock/continue/update")
  2011. @ResponseBody
  2012. public GagaResponse updateRestockContinue(@RequestBody ReinboundInform params) {
  2013. params.setCustNo(TsfSession.getInfo().getCustNo());
  2014. params.setUpdNo(TsfSession.getInfo().getCustNo());
  2015. reinboundService.updateReinboundInformContinue(params);
  2016. return super.ok("알림 기한을 15일로 연장하였습니다.");
  2017. }
  2018. /**
  2019. * 마이페이지 주문목록 조회 (모바일)
  2020. *
  2021. * @param Order
  2022. * @return ModelAndView
  2023. * @author jsh77b
  2024. * @since 2021. 04. 19
  2025. */
  2026. @ResponseBody
  2027. @PostMapping("/order/listInfo")
  2028. public ModelAndView getOrderListInfo(@RequestBody Order order) {
  2029. // 주문목록조회
  2030. ModelAndView mav = new ModelAndView();
  2031. // 페이징 처리 설정
  2032. TscPageRequest pageable = new TscPageRequest((order.getPageNo() > 0 ? order.getPageNo() - 1 : 0), order.getPageSize(), order.getPageUnit());
  2033. int totalCnt = orderService.getPagingOrdNoListCount(order);
  2034. pageable.setTotalCount(totalCnt);
  2035. order.setPageable(pageable);
  2036. // 페이징 처리 및 주문정보 조회
  2037. List<Integer> ordNoList = new ArrayList<>();
  2038. for (Order tmpOrder : orderService.getPagingOrdNoList(order)) {
  2039. ordNoList.add(tmpOrder.getOrdNo());
  2040. }
  2041. if (ordNoList.size() > 0) {
  2042. order.setOrdNoList(ordNoList.stream().mapToInt(Integer::intValue).toArray());
  2043. }
  2044. Collection<GagaMap> orderList = orderService.getOrderListForMypage(order);
  2045. mav.addObject("orderList" , orderList);
  2046. mav.addObject("orderListCnt" , orderList.size());
  2047. mav.addObject("pageNo" , order.getPageNo());
  2048. mav.setViewName(super.getDeviceViewName("mypage/MypageOrderListInfo"));
  2049. return mav;
  2050. }
  2051. /**
  2052. * 마이페이지 주문목록 조회 (모바일)
  2053. *
  2054. * @param Order
  2055. * @return ModelAndView
  2056. * @author jsh77b
  2057. * @since 2021. 04. 19
  2058. */
  2059. @ResponseBody
  2060. @PostMapping("/order/listInfo2")
  2061. public GagaMap getOrderListInfo2(@RequestBody Order order) {
  2062. GagaMap result = new GagaMap();
  2063. // 페이징 처리 설정
  2064. TscPageRequest pageable = new TscPageRequest((order.getPageNo() > 0 ? order.getPageNo() - 1 : 0), order.getPageSize(), order.getPageUnit());
  2065. int totalCnt = orderService.getPagingOrdNoListCount(order);
  2066. pageable.setTotalCount(orderService.getPagingOrdNoListCount(order));
  2067. order.setPageable(pageable);
  2068. result.set("paging" , order);
  2069. result.set("totalCnt" , totalCnt);
  2070. result.set("endRow" , pageable.getEndRow());
  2071. result.set("orderList" , orderService.getOrderListForMypage(order));
  2072. // 주문목록조회
  2073. //ModelAndView mav = new ModelAndView();
  2074. //mav.addObject("orderList", orderService.getOrderListForMypage(order));
  2075. //mav.setViewName(super.getDeviceViewName("mypage/MypageOrderListInfo"));
  2076. return result;
  2077. }
  2078. /**
  2079. * 마이페이지 주문목록 사전 정보 조회 (모바일)
  2080. *
  2081. * @param Order
  2082. * @return ModelAndView
  2083. * @author card007
  2084. * @since 2021. 05. 27
  2085. */
  2086. @ResponseBody
  2087. @PostMapping("/order/list/pre/info")
  2088. public GagaMap getOrderListPreInfo(@RequestBody Order order) {
  2089. GagaMap result = new GagaMap();
  2090. // 페이징 처리 설정
  2091. TscPageRequest pageable = new TscPageRequest((order.getPageNo() > 0 ? order.getPageNo() - 1 : 0), order.getPageSize(), order.getPageUnit());
  2092. pageable.setTotalCount(orderService.getPagingOrdNoListCount(order));
  2093. order.setPageable(pageable);
  2094. result.set("paging" , pageable);
  2095. result.set("ordNoList" , orderService.getPagingOrdNoList(order));
  2096. return result;
  2097. }
  2098. /**
  2099. * 마이페이지 주문목록 조회 (모바일)
  2100. *
  2101. * @param Order
  2102. * @return ModelAndView
  2103. * @author card007
  2104. * @since 2021. 05. 27
  2105. */
  2106. @ResponseBody
  2107. @PostMapping("/order/list/info")
  2108. public ModelAndView getOrderListInfo3(@RequestBody Order order) {
  2109. // 주문목록조회
  2110. ModelAndView mav = new ModelAndView();
  2111. Collection<GagaMap> orderList = orderService.getOrderListForMypage(order);
  2112. mav.addObject("orderList" , orderList);
  2113. mav.addObject("orderListCnt" , orderList.size());
  2114. mav.addObject("pageNo" , order.getPageNo());
  2115. mav.setViewName(super.getDeviceViewName("mypage/MypageOrderListInfo"));
  2116. return mav;
  2117. }
  2118. /**
  2119. * 마이페이지 취반교 목록 조회
  2120. *
  2121. * @param OrderChange
  2122. * @return ModelAndView
  2123. * @author jsh77b
  2124. * @since 2021. 02. 18
  2125. */
  2126. @PostMapping("/cre/listInfo")
  2127. @ResponseBody
  2128. public ModelAndView getCreListInfo(@RequestBody OrderChange orderChange) {
  2129. // 주문목록조회
  2130. ModelAndView mav = new ModelAndView();
  2131. // 페이징 처리 설정
  2132. TscPageRequest pageable = new TscPageRequest((orderChange.getPageNo() > 0 ? orderChange.getPageNo() - 1 : 0), orderChange.getPageSize(), orderChange.getPageUnit());
  2133. pageable.setTotalCount(orderChangeService.getPagingCreListCount(orderChange));
  2134. orderChange.setPageable(pageable);
  2135. // 페이징 처리 및 주문정보 조회
  2136. List<Integer> ordChgSqList = new ArrayList<>();
  2137. for (OrderChange tmpOrderChange : orderChangeService.getPagingCreList(orderChange)) {
  2138. ordChgSqList.add(tmpOrderChange.getOrdChgSq());
  2139. }
  2140. if (ordChgSqList.size() > 0) {
  2141. orderChange.setOrdChgSqArr(ordChgSqList.stream().mapToInt(Integer::intValue).toArray());
  2142. }
  2143. mav.addObject("creList", orderChangeService.getCreList(orderChange));
  2144. mav.addObject("creInfo", orderChange);
  2145. mav.setViewName(super.getDeviceViewName("mypage/MypageCreListInfo"));
  2146. return mav;
  2147. }
  2148. /**
  2149. * 마이페이지 취반교목록 사전 정보 조회 (모바일)
  2150. *
  2151. * @param Order
  2152. * @return ModelAndView
  2153. * @author card007
  2154. * @since 2021. 05. 27
  2155. */
  2156. @ResponseBody
  2157. @PostMapping("/cre/list/pre/info")
  2158. public GagaMap getCreListPreInfo(@RequestBody OrderChange orderChange) {
  2159. GagaMap result = new GagaMap();
  2160. orderChange.setCustNo(TsfSession.getInfo().getCustNo());
  2161. // 페이징 처리 설정
  2162. TscPageRequest pageable = new TscPageRequest((orderChange.getPageNo() > 0 ? orderChange.getPageNo() - 1 : 0), orderChange.getPageSize(), orderChange.getPageUnit());
  2163. pageable.setTotalCount(orderChangeService.getPagingCreListCount(orderChange));
  2164. orderChange.setPageable(pageable);
  2165. result.set("paging" , pageable);
  2166. result.set("creList" , orderChangeService.getPagingCreList(orderChange));
  2167. return result;
  2168. }
  2169. /**
  2170. * 마이페이지 취반교목록 조회 (모바일)
  2171. *
  2172. * @param Order
  2173. * @return ModelAndView
  2174. * @author card007
  2175. * @since 2021. 05. 27
  2176. */
  2177. @ResponseBody
  2178. @PostMapping("/cre/list/info")
  2179. public ModelAndView getCreListInfo2(@RequestBody OrderChange orderChange) {
  2180. // 주문목록조회
  2181. ModelAndView mav = new ModelAndView();
  2182. orderChange.setCustNo(TsfSession.getInfo().getCustNo());
  2183. Collection<GagaMap> creList = orderChangeService.getCreList(orderChange);
  2184. mav.addObject("creList" , creList);
  2185. mav.addObject("creListCnt" , creList.size());
  2186. mav.addObject("pageNo" , orderChange.getPageNo());
  2187. mav.setViewName(super.getDeviceViewName("mypage/MypageCreListInfo"));
  2188. return mav;
  2189. }
  2190. /**
  2191. * 선물하기 알림톡 재전송
  2192. *
  2193. * @param order
  2194. * @return GagaResponse
  2195. * @author card007
  2196. * @since 2021. 06. 03
  2197. */
  2198. @ResponseBody
  2199. @PostMapping("/gift/kakao/resend")
  2200. public GagaResponse resendGiftKakao(@RequestBody Order order) {
  2201. // 선물하기 알림톡 이전 발송이력 조회
  2202. CustContactHst custContactHst = new CustContactHst();
  2203. custContactHst.setContactType(TscConstants.ContactType.GIFT.value());
  2204. custContactHst.setContactMethod(TscConstants.ContactMethod.KAKAOTALK.value());
  2205. custContactHst.setContactMemo(String.valueOf(order.getOrdNo()));
  2206. int count = customerService.getGiftKakaoSendInfo(custContactHst);
  2207. if (count > 0) {
  2208. return super.error("선물하기 SMS를 조금 전 다시 발송하였습니다. 잠시 후 다시 시도해주세요.");
  2209. }
  2210. // 선물하기 알림톡 전송 관련 정보 조회
  2211. GagaMap resultMap = coreOrderService.getOrderCompleteInfo(order);
  2212. Order orderInfo = (Order) resultMap.get("orderInfo");
  2213. orderInfo.setGoodsNm((String) resultMap.get("goodsNm"));
  2214. orderInfo.setGoodsCnt(String.valueOf(resultMap.get("goodsCnt")));
  2215. try {
  2216. // 선물하기 알림톡 전송
  2217. coreKakaotalkService.sendOrderGiftComplete(orderInfo, TsfSession.getInfo().getCustNo());
  2218. } catch (Exception e) {
  2219. return super.error(e.getMessage());
  2220. }
  2221. return super.ok(env.getProperty("SUCC_0005"));
  2222. }
  2223. }