TsaWithdrawService.java 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575
  1. package com.style24.admin.biz.service;
  2. import java.util.Collection;
  3. import java.util.List;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.stereotype.Service;
  6. import org.springframework.transaction.annotation.Transactional;
  7. import com.gagaframework.web.parameter.GagaMap;
  8. import com.style24.admin.biz.dao.TsaDeliveryDao;
  9. import com.style24.admin.biz.dao.TsaWithdrawDao;
  10. import com.style24.admin.support.security.session.TsaSession;
  11. import com.style24.core.biz.dao.TscOrderChangeDao;
  12. import com.style24.core.biz.service.TscKakaotalkService;
  13. import com.style24.core.biz.service.TscNaverPayService;
  14. import com.style24.core.biz.service.TscOrderChangeService;
  15. import com.style24.core.biz.service.TscOrderRefundService;
  16. import com.style24.core.support.env.TscConstants;
  17. import com.style24.core.support.env.TscConstants.OrderChangeGb;
  18. import com.style24.core.support.env.TscConstants.OrderChangeStat;
  19. import com.style24.core.support.message.TscMessageByLocale;
  20. import com.style24.core.support.util.CryptoUtils;
  21. import com.style24.persistence.domain.Order;
  22. import com.style24.persistence.domain.OrderChange;
  23. import com.style24.persistence.domain.Withdraw;
  24. import com.style24.persistence.domain.WithdrawExc;
  25. import com.style24.persistence.domain.WmsWithdraw;
  26. import lombok.extern.slf4j.Slf4j;
  27. /**
  28. * 회수관리 Service
  29. *
  30. * @author moon
  31. * @since 2020. 11. 16
  32. */
  33. @Service
  34. @Slf4j
  35. public class TsaWithdrawService {
  36. @Autowired
  37. private TscMessageByLocale message;
  38. @Autowired
  39. private TsaWithdrawDao withdrawDao;
  40. @Autowired
  41. private TsaDeliveryDao deliveryDao;
  42. @Autowired
  43. private TscOrderChangeDao orderChangeDao;
  44. @Autowired
  45. private TscOrderChangeService coreOrderChangeService;
  46. @Autowired
  47. private TscOrderRefundService coreOrderRefundService;
  48. @Autowired
  49. private TscOrderChangeService orderChangeService;
  50. @Autowired
  51. private TsaWmsWithdrawService wmsWithdrawService;
  52. @Autowired
  53. private TscNaverPayService coreNaverPayService;
  54. @Autowired
  55. private TscKakaotalkService kakaotalkService;
  56. /**
  57. * 환불관리 목록 건수
  58. *
  59. * @param Delivery
  60. * @return
  61. * @author moon
  62. * @since 2021. 05. 03
  63. */
  64. public int getRefundListCount(Withdraw withdraw) {
  65. return withdrawDao.getRefundListCount(withdraw);
  66. }
  67. /**
  68. * 환불관리 목록
  69. *
  70. * @param withdraw
  71. * @return Collection<Withdraw>
  72. * @author moon
  73. * @since 2020. 11. 16
  74. */
  75. public Collection<Withdraw> getRefundList(Withdraw withdraw) {
  76. return withdrawDao.getRefundList(withdraw);
  77. }
  78. /**
  79. * 회수예외 목록 건수
  80. *
  81. * @param Delivery
  82. * @return
  83. * @author moon
  84. * @since 2021. 03. 04
  85. */
  86. public int getWithdrawExceptionListCount(WithdrawExc withdrawExc) {
  87. return withdrawDao.getWithdrawExceptionListCount(withdrawExc);
  88. }
  89. /**
  90. * 회수예외 목록
  91. *
  92. * @param Delivery
  93. * @return
  94. * @author moon
  95. * @since 2021. 03. 04
  96. */
  97. public Collection<WithdrawExc> getWithdrawExceptionList(WithdrawExc withdrawExc) {
  98. return withdrawDao.getWithdrawExceptionList(withdrawExc);
  99. }
  100. /**
  101. * 회수예외 완료처리
  102. *
  103. * @param Delivery
  104. * @return
  105. * @author moon
  106. * @since 2021. 03. 04
  107. */
  108. @Transactional("shopTxnManager")
  109. public void createWithdrawInfo(WithdrawExc withdrawExc) {
  110. withdrawExc.setRecallStat("S");
  111. withdrawDao.updateWithdrawException(withdrawExc);
  112. wmsWithdrawService.updateTbIfRecallExceptionRslt(withdrawExc);
  113. }
  114. /**
  115. * 회수예외 사유변경 목록
  116. *
  117. * @param Delivery
  118. * @return
  119. * @author moon
  120. * @since 2021. 05. 20
  121. */
  122. public Collection<WithdrawExc> getWithdrawExceptionChangeList(WithdrawExc withdrawExc) {
  123. return withdrawDao.getWithdrawExceptionChangeList(withdrawExc);
  124. }
  125. /**
  126. * 환불비 조회
  127. *
  128. * @param Delivery
  129. * @return
  130. * @author moon
  131. * @since 2021. 05. 21
  132. */
  133. public GagaMap getRefundAmt(Collection<WithdrawExc> list) {
  134. OrderChange orderChange = new OrderChange();
  135. int[] ordDtlNoArr = new int[list.size()];
  136. int[] cnclRtnReqQtyArr = new int[list.size()];
  137. int i=0;
  138. for(WithdrawExc data : list) {
  139. ordDtlNoArr[i] = data.getOrdDtlNo();
  140. cnclRtnReqQtyArr[i] = data.getChgQty();
  141. i++;
  142. }
  143. WithdrawExc item = list.iterator().next();
  144. orderChange.setOrdDtlNoArr(ordDtlNoArr);
  145. orderChange.setCnclRtnReqQtyArr(cnclRtnReqQtyArr);
  146. orderChange.setCustNo(item.getCustNo());
  147. orderChange.setOrdNo(item.getOrdNo());
  148. orderChange.setDelvFeeCd(item.getDelvFeeCd());
  149. orderChange.setChgGb(item.getChgGb());
  150. GagaMap refundPreInfo = coreOrderChangeService.getRefundPreInfo(orderChange);
  151. List<Order> returnReqList = (List<Order>)refundPreInfo.get("cnclReqList");
  152. GagaMap result = coreOrderRefundService.cnclRtnRefundAmt(returnReqList);
  153. return result;
  154. }
  155. /**
  156. * WMS회수목록 - 옵션정보
  157. *
  158. * @param Delivery
  159. * @return
  160. * @author moon
  161. * @since 2021. 03. 04
  162. */
  163. public Collection<WmsWithdraw> getOptionInfo(Collection<WmsWithdraw> wmsWithdrawList) {
  164. for(WmsWithdraw data : wmsWithdrawList) {
  165. WmsWithdraw optionInfo = withdrawDao.getOptionInfo(data);
  166. data.setGoodsCd(optionInfo.getGoodsCd());
  167. }
  168. return wmsWithdrawList;
  169. }
  170. /**
  171. * 회수지시목록 건수
  172. *
  173. * @param Withdraw
  174. * @return
  175. * @author moon
  176. * @since 2021. 05. 10
  177. */
  178. public int getWithdrawDirectiveListCount(Withdraw withdraw) {
  179. return withdrawDao.getWithdrawDirectiveListCount(withdraw);
  180. }
  181. /**
  182. * 회수지시 목록
  183. *
  184. * @param Withdraw
  185. * @return
  186. * @author moon
  187. * @since 2021. 05. 10
  188. */
  189. public Collection<Withdraw> getWithdrawDirectiveList(Withdraw withdraw) {
  190. return withdrawDao.getWithdrawDirectiveList(withdraw);
  191. }
  192. /**
  193. * 재회수지시
  194. *
  195. * @param Withdraw
  196. * @return void
  197. * @author moon
  198. * @since 2021. 05. 11
  199. */
  200. @Transactional("shopTxnManager")
  201. public void reRecallOrder(Withdraw withdraw) {
  202. Integer userNo = TsaSession.getInfo().getUserNo();
  203. withdraw.setUpdNo(userNo);
  204. withdrawDao.updateReRecallOrderChange(withdraw);
  205. if(OrderChangeGb.RETURN.value().equals(withdraw.getChgGb())) { // 반품요청
  206. withdraw.setChgStat(OrderChangeStat.RETURN.value()); // 반품접수
  207. } else { //교환요청
  208. withdraw.setChgStat(OrderChangeStat.EXCHANGE.value()); // 교환접수
  209. }
  210. withdrawDao.updateReRecallOrder(withdraw);
  211. // 상세목록 조회
  212. Collection<Withdraw> list = withdrawDao.getOrdChgDtlList(withdraw);
  213. for(Withdraw data : list) {
  214. // 주문상세변경 이력
  215. OrderChange ordChg = new OrderChange();
  216. ordChg.setRegNo(userNo);
  217. ordChg.setUpdNo(userNo);
  218. ordChg.setOrdChgSq(data.getOrdChgSq());
  219. ordChg.setOrdDtlNo(data.getOrdDtlNo());
  220. ordChg.setChgStat(data.getChgStat());
  221. orderChangeDao.createOrderChangeDetailHst(ordChg);
  222. }
  223. // WMS 재회수지시
  224. wmsWithdrawService.updateReRecallOrder(withdraw);
  225. }
  226. /**
  227. * 주문변경사유 변경
  228. *
  229. * @param Withdraw
  230. * @return void
  231. * @author moon
  232. * @since 2021. 05. 21
  233. */
  234. @Transactional("shopTxnManager")
  235. public void saveChangeReason(WithdrawExc withdrawExc) {
  236. Integer userNo = TsaSession.getInfo().getUserNo();
  237. if("Y".equals(withdrawExc.getChangeYn())) {
  238. // TB_ORDER_CHANGE_DETAIL 변경
  239. String[] listDtlNo = withdrawExc.getOrdDtlNoList().split(",");
  240. for(int i=0; i<listDtlNo.length; i++) {
  241. WithdrawExc item = new WithdrawExc();
  242. if("G680_30".equals(withdrawExc.getWdGb())) { // 반품요청
  243. item.setChgStat(OrderChangeStat.WITHDRAW_WAIT.value()); // 반품대기 (추가배송비 결제 전)
  244. } else { // 교환요청
  245. item.setChgStat(OrderChangeStat.WITHDRAW_WAIT.value()); // 교환대기 (추가배송비 결제 전)
  246. }
  247. item.setOrdChgSq(withdrawExc.getOrdChgSq());
  248. item.setOrdDtlNo(Integer.parseInt(listDtlNo[i]));
  249. item.setUpdNo(userNo);
  250. withdrawDao.updateChangeStat(item);
  251. // 주문상세변경 이력
  252. OrderChange ordChg = new OrderChange();
  253. ordChg.setRegNo(userNo);
  254. ordChg.setUpdNo(userNo);
  255. ordChg.setOrdChgSq(item.getOrdChgSq());
  256. ordChg.setOrdDtlNo(item.getOrdDtlNo());
  257. ordChg.setChgStat(item.getChgStat());
  258. orderChangeDao.createOrderChangeDetailHst(ordChg);
  259. }
  260. } else if("S".equals(withdrawExc.getChangeYn())) {
  261. String[] listDtlNo = withdrawExc.getOrdDtlNoList().split(",");
  262. for(int i=0; i<listDtlNo.length; i++) {
  263. WithdrawExc item = new WithdrawExc();
  264. item.setChgStat(OrderChangeStat.WITHDRAW_GOODS_CHECK.value()); // G685_31 상품검수중
  265. item.setOrdChgSq(withdrawExc.getOrdChgSq());
  266. item.setOrdDtlNo(Integer.parseInt(listDtlNo[i]));
  267. item.setUpdNo(userNo);
  268. withdrawDao.updateChangeStat(item);
  269. // 주문상세변경 이력
  270. OrderChange ordChg = new OrderChange();
  271. ordChg.setRegNo(userNo);
  272. ordChg.setUpdNo(userNo);
  273. ordChg.setOrdChgSq(item.getOrdChgSq());
  274. ordChg.setOrdDtlNo(item.getOrdDtlNo());
  275. ordChg.setChgStat(item.getChgStat());
  276. orderChangeDao.createOrderChangeDetailHst(ordChg);
  277. }
  278. }
  279. // TB_ORDER_CHANGE 변경
  280. withdrawExc.setUpdNo(userNo);
  281. withdrawDao.updateChangeReason(withdrawExc);
  282. }
  283. /**
  284. * 환불관리 상세정보
  285. *
  286. * @param withdraw - 변경주문번호
  287. * @return
  288. * @author moon
  289. * @since 2020. 11. 16
  290. */
  291. public Collection<Withdraw> getRefundDetailList(Withdraw withdraw) {
  292. return withdrawDao.getRefundDetailList(withdraw);
  293. }
  294. /**
  295. * 회수관리 > 환불컨펌 > 환불처리
  296. *
  297. * @param params
  298. * @return
  299. * @author moon
  300. * @since 2020. 11. 16
  301. */
  302. @Transactional("shopTxnManager")
  303. public void refundDetailConfirm(GagaMap params) {
  304. Integer userNo = params.getInt("userNo"); // 사용자번호
  305. String allCanYn = params.getString("allCanYn"); // 전체반품여부
  306. Integer ordNo = params.getInt("ordNo"); // 주문번호
  307. Integer custNo = params.getInt("custNo"); // 고객번호
  308. String chgReasonNm = params.getString("chgReasonNm"); // 변경사유
  309. String chgReason = params.getString("chgReason"); // 변경사유코드
  310. String accountNm = params.getString("accountNm"); // 환불계좌이름
  311. String accountNo = CryptoUtils.decryptAES(params.getString("accountNo")); // 환불계좌번호
  312. String bankCd = params.getString("bankCd"); // 환불계좌은행코드
  313. String ordNm = params.getString("ordNm"); // 주문자명
  314. Integer delvAddrSq = params.getInt("delvAddrSq"); // 배송지번호
  315. int addDeliveryFee = params.getInt("addDeliveryFee"); // 추가배송비
  316. String addDeliveryFeeYn = params.getString("addDeliveryFeeYn"); // 추가배송비여부
  317. String mallGb = params.getString("mallGb"); // 몰구분
  318. Integer ordChgSq = params.getInt("ordChgSq"); // 변경요청번호
  319. String pgStat = params.getString("pgStat"); // PG점프
  320. int depositAmt = params.getInt("depositAmt"); // PG점프 임금액
  321. int codFee = params.getInt("codFee"); // 착불비
  322. String codFeeYn = params.getString("codFeeYn"); // 착불비여부
  323. String enCloseFeeYn = params.getString("enCloseFeeYn"); // 동봉비여부
  324. int enCloseFee = params.getInt("enCloseFee"); // 동봉비
  325. String wdInvoiceNo = params.getString("wdInvoiceNo"); // 회수송장번호
  326. String wdGb = params.getString("wdGb"); // 회수구분
  327. int addPayCost = params.getInt("addPayCost"); // 추가배송비
  328. String delvExpnYn = params.getString("delvExpnYn"); // 확정후 품절,불량 여부
  329. String delvFeeCd = params.getString("delvFeeCd"); // 배송비정책코드
  330. String pgGb = params.getString("pgGb"); // PG 구분
  331. String payMeans = params.getString("payMeans");
  332. String batchYn = "N";
  333. // OrderChange change = new OrderChange();
  334. // change.setOrdNo(params.getInt("ordNo"));
  335. // change.setCustNo(params.getInt("custNo"));
  336. // change.setOrderNm(params.getString("ordNm"));
  337. // change.setPgGb(params.getString("pgGb"));
  338. // change.setPayMeans(params.getString("payMeans"));
  339. // change.setBankCd(params.getString("bankCd"));
  340. // change.setAccountNm(params.getString("accountNm"));
  341. // change.setAccountNo(CryptoUtils.decryptAES(params.getString("accountNo")));
  342. // //change.getOrdDtlNoList().add(params.getOrdDtlNo());
  343. // //change.getCnclRtnReqQtyList().add(params.getCnclRtnQty());
  344. // change.setChgReason(params.getString("chgReason"));
  345. // change.setChgReasonNm(params.getString("chgReasonNm"));
  346. // change.setBatchYn("N");
  347. // change.setDelvAddrSq(params.getInt("delvAddrSq"));
  348. // change.setAddDeliveryFeeYn(params.getString("addDeliveryFeeYn"));
  349. // change.setAddDeliveryFee(params.getInt("addDeliveryFee"));
  350. // change.setRegNo(userNo);
  351. // change.setUpdNo(userNo);
  352. // change.setUserNo(userNo);
  353. // change.setOrdChgSq(params.getInt("ordChgSq"));
  354. // change.setMallGb(params.getString("mallGb"));
  355. // change.setSpanRefundAmt(params.getInt("spanRefundAmt"));
  356. // change.setPgStat(params.getString("pgStat"));
  357. // change.setCodFeeYn(params.getString("codFeeYn"));
  358. // change.setCodFee(params.getInt("codFee"));
  359. // change.setEnCloseFeeYn(params.getString("enCloseFeeYn"));
  360. // change.setEncloseFee(params.getInt("enCloseFee"));
  361. // change.setWdInvoiceNo(params.getString("wdInvoiceNo"));
  362. try {
  363. OrderChange orderChange = new OrderChange();
  364. orderChange.setOrdChgSq(ordChgSq);
  365. orderChange.setUserNo(userNo);
  366. GagaMap info = orderChangeService.refundConfirmPreInfo(orderChange);
  367. info.set("chgReasonNm" , chgReasonNm); // 변경사유
  368. info.set("chgReason" , chgReason); // 변경사유코드
  369. info.set("accountNm" , accountNm); // 환불계좌이름
  370. info.set("accountNo" , accountNo); // 환불계좌번호
  371. info.set("bankCd" , bankCd); // 환불계좌은행코드
  372. info.set("custNo" , custNo); // 고객번호
  373. info.set("ordNm" , ordNm); // 주문자명
  374. info.set("delvAddrSq" , delvAddrSq); // 배송지번호
  375. info.set("delvExpnYn" , delvExpnYn); // 확정후반품,불량여부
  376. info.set("addDeliveryFee" , addDeliveryFee); // 추가배송비
  377. info.set("addDeliveryFeeYn" , addDeliveryFeeYn); // 추가배송비여부
  378. info.set("mallGb" , mallGb); // 몰구분
  379. info.set("ordNo" , ordNo); // 주문번호
  380. info.set("ordChgSq" , ordChgSq); // 변경요청번호
  381. info.set("pgStat" , pgStat); // PG점프
  382. info.set("depositAmt" , depositAmt); // PG점프 입금액
  383. info.set("codFee" , codFee); // 착불비
  384. info.set("codFeeYn" , codFeeYn); // 착불비여부
  385. info.set("enCloseFeeYn" , enCloseFeeYn); // 동봉비여부
  386. info.set("enCloseFee" , enCloseFee); // 동봉비
  387. info.set("wdInvoiceNo" , wdInvoiceNo); // 회수송장번호
  388. info.set("wdGb" , wdGb); // 회수구분
  389. info.set("addPayCost" , addPayCost); // 추가배송비
  390. info.set("allCanYn" , allCanYn); // 전체반품여부
  391. info.set("delvExpnYn" , delvExpnYn); // 확정후 품절,불량 여부
  392. info.set("delvFeeCd" , delvFeeCd); // 배송비정책코드
  393. if ("Y".equals(allCanYn)) {
  394. // orderChangeService.allRefund(change);
  395. orderChangeService.allRefund(info, userNo);
  396. } else {
  397. orderChangeService.partialRefund(info, userNo);
  398. }
  399. // 네이버페이 환불컨펌
  400. if(TscConstants.PgGb.NAVER_ORDER.value().equals(pgGb)) {
  401. // PG 미전송이 아닐 경우 (Y면 미전송, N이면 전송)
  402. if("N".equals(pgStat)) {
  403. // WMS 예외로 넘어온 데이터인지 확인 후 네이버페이 진행
  404. Collection<OrderChange> exceptions = orderChangeDao.getOrderRecallExceptionInfo(orderChange); // 예외 품절 및 불량 정보 조회
  405. int i = 0;
  406. for(OrderChange exception : exceptions) {
  407. if(exception.getOrderDtlNo() > 0) { // 확정 후 품절 및 불량이 있을경우
  408. if("O".equals(exception.getOrdExchGb())) { // 원배송 확정 후 품절 및 불량
  409. // 품절 취소 송부
  410. Order param = new Order();
  411. param.setOrdDtlNo(exception.getOrdDtlNo());
  412. // coreNaverPayService.sendNaverPaySoldoutCancel(param, userNo); // 품절취소
  413. String addUrl = "/naverpay/send/soldout/cancel?ordDtlNo=" + exception.getOrdDtlNo() + "&userNo=" + userNo;
  414. coreNaverPayService.sendScmServerForNaverpay(addUrl); // 품절취소
  415. } else if ("E".equals(exception.getOrdExchGb())){ // 교환 후 확정 후 품절 및 불량
  416. // 교환 반려 > 반품 접수 > 반품 완료
  417. String addUrl = "";
  418. // 네이버페이는 SCM을 통해서 송부
  419. // coreNaverPayService.sendNaverPayRejectExchange(exception, userNo); // 교환반려
  420. addUrl = "/naverpay/send/reject/exchange?ordDtlNo=" + exception.getOrdDtlNo() + "&userNo=" + userNo;
  421. coreNaverPayService.sendScmServerForNaverpay(addUrl); // 교환 반려
  422. // coreNaverPayService.sendNaverPaySoldoutReturnReq(param, userNo); // 품절반품접수
  423. addUrl = "/naverpay/send/soldout/return/req?ordDtlNo=" + exception.getOrdDtlNo() + "&userNo=" + userNo;
  424. coreNaverPayService.sendScmServerForNaverpay(addUrl); // 품절반품접수
  425. // coreNaverPayService.sendNaverPayReturnComplete(exception, userNo); // 반품완료
  426. addUrl = "/naverpay/send/return/complete?ordDtlNo=" + exception.getOrdDtlNo() + "&userNo=" + userNo;
  427. coreNaverPayService.sendScmServerForNaverpay(addUrl); // 반품완료
  428. }
  429. } else { // 정상 반품 완료
  430. // coreNaverPayService.sendNaverPayReturnComplete(exception, userNo); // 반품완료
  431. String addUrl = "/naverpay/send/return/complete?ordDtlNo=" + exception.getOrdDtlNo() + "&userNo=" + userNo;
  432. coreNaverPayService.sendScmServerForNaverpay(addUrl); // 반품완료
  433. }
  434. i++;
  435. }
  436. }
  437. }
  438. } catch (Exception e) {
  439. e.printStackTrace();
  440. throw new IllegalStateException("실패");
  441. }
  442. }
  443. /**
  444. * 회수 철회 알림톡(KAKAO)
  445. *
  446. * @param Withdraw
  447. * @return void
  448. * @author moon
  449. * @since 2021. 07. 21
  450. */
  451. @Transactional("shopTxnManager")
  452. public void sendRecallCancel(Withdraw withdraw) {
  453. Integer userNo = TsaSession.getInfo().getUserNo();
  454. String gubun = withdraw.getGubun();
  455. Withdraw refundOrdchgSq = new Withdraw();
  456. refundOrdchgSq.setOrdChgSq(withdraw.getOrdChgSq());
  457. Withdraw info = withdrawDao.getWithdrawInfo(refundOrdchgSq);
  458. Order order = new Order();
  459. order.setOrdNo(info.getOrdNo());
  460. order.setCustNo(info.getCustNo());
  461. order.setOrdNm(info.getOrdNm());
  462. order.setGoodsNm(info.getGoodsNm());
  463. order.setGoodsCnt(info.getGoodsCnt()+"");
  464. order.setOrdPhnno(info.getOrdPhnno());
  465. order.setChgerBaseAddr(info.getChgerBaseAddr());
  466. try {
  467. kakaotalkService.sendRecallCancel(order, userNo, gubun);
  468. } catch(Exception e) {
  469. log.debug("kakaotalkService Exception OrdNo:"+withdraw.getOrdNo());
  470. }
  471. }
  472. public Withdraw getRefundInfo(Withdraw withdraw) {
  473. return withdrawDao.getRefundInfo(withdraw);
  474. }
  475. /**
  476. * 회수예외 CS메모저장
  477. *
  478. * @param Delivery
  479. * @return
  480. * @author moon
  481. * @since 2021. 08. 20
  482. */
  483. @Transactional("shopTxnManager")
  484. public void updateCsMemo(WithdrawExc withdrawExc) {
  485. withdrawDao.updateCsMemo(withdrawExc);
  486. }
  487. }