From 311a077f30f6d3970428e9b3ba2dbd7d95ac795a Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 06 Sep 2022 16:20:43 +0800
Subject: [PATCH] 20220902
---
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 188 ++++++++++++++++++++++++++---------------------
1 files changed, 104 insertions(+), 84 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index 5d503c2..09e56e6 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -75,6 +75,7 @@
private final MallMemberMapper mallMemberMapper;
private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
private final MallLeaderAchieveMapper mallLeaderAchieveMapper;
+ private final IApiMallTeamLeaderService iApiMallTeamLeaderService;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -705,93 +706,112 @@
if(1 != deliveryState){
return new FebsResponse().fail().message("订单不是待配送状态");
}
- QueryWrapper<MallRefundEntity> objectQueryWrapper = new QueryWrapper<>();
- objectQueryWrapper.eq("member_id",member.getId());
- objectQueryWrapper.eq("order_id",mallOrderInfo.getId());
- MallRefundEntity mallRefund = mallRefundMapper.selectOne(objectQueryWrapper);
- MallRefundEntity mallRefundEntity = new MallRefundEntity();
- if(ObjectUtil.isEmpty(mallRefund)){
- mallRefundEntity.setRefundNo(mallOrderInfo.getOrderNo()+"_r");
- mallRefundEntity.setMemberId(member.getId());
- mallRefundEntity.setOrderId(mallOrderInfo.getId());
- mallRefundEntity.setType(1);
- mallRefundEntity.setState(3);
- mallRefundEntity.setAmount(mallOrderInfo.getAmount());
- mallRefundMapper.insert(mallRefundEntity);
- }else{
- if(mallRefund.getState() == 1){
- return new FebsResponse().fail().message("订单已退款");
- }
- if(mallRefund.getState() == 3){
- return new FebsResponse().fail().message("订单退款中");
- }
- if(mallRefund.getState() == 2){
- mallRefundEntity.setId(mallRefund.getId());
- mallRefundEntity.setRefundNo(mallRefund.getRefundNo());
- mallRefundEntity.setMemberId(mallRefund.getMemberId());
- mallRefundEntity.setOrderId(mallRefund.getOrderId());
- mallRefundEntity.setType(mallRefund.getType());
+ //根据子订单生成退款记录
+ List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(id);
+ if(CollUtil.isEmpty(mallOrderItemList)){
+ return new FebsResponse().fail().message("订单不存在");
+ }
+ for(MallOrderItem mallOrderItem : mallOrderItemList){
+ QueryWrapper<MallRefundEntity> objectQueryWrapper = new QueryWrapper<>();
+ objectQueryWrapper.eq("member_id",member.getId());
+ objectQueryWrapper.eq("order_id",mallOrderInfo.getId());
+ objectQueryWrapper.eq("item_id",mallOrderItem.getId());
+ MallRefundEntity mallRefund = mallRefundMapper.selectOne(objectQueryWrapper);
+ MallRefundEntity mallRefundEntity = new MallRefundEntity();
+ if(ObjectUtil.isEmpty(mallRefund)){
+ mallRefundEntity.setRefundNo(mallOrderInfo.getOrderNo()+"_RITEM"+mallOrderItem.getId());
+ mallRefundEntity.setMemberId(member.getId());
+ mallRefundEntity.setOrderId(mallOrderInfo.getId());
+ if("余额支付"==mallOrderInfo.getPayMethod()){
+ mallRefundEntity.setType(3);
+ }else if("微信支付"==mallOrderInfo.getPayMethod()){
+ mallRefundEntity.setType(1);
+ }else{
+ mallRefundEntity.setType(3);
+ }
mallRefundEntity.setState(3);
- mallRefundEntity.setAmount(mallRefund.getAmount());
- mallRefundMapper.updateById(mallRefundEntity);
+ mallRefundEntity.setAmount(mallOrderItem.getAmount());
+ mallRefundMapper.insert(mallRefundEntity);
+ }else{
+ if(mallRefund.getState() == 1){
+ return new FebsResponse().fail().message("订单已退款");
+ }
+ if(mallRefund.getState() == 3){
+ return new FebsResponse().fail().message("订单退款中");
+ }
+ if(mallRefund.getState() == 2){
+ mallRefundEntity.setId(mallRefund.getId());
+ mallRefundEntity.setRefundNo(mallRefund.getRefundNo());
+ mallRefundEntity.setMemberId(mallRefund.getMemberId());
+ mallRefundEntity.setOrderId(mallRefund.getOrderId());
+ mallRefundEntity.setType(mallRefund.getType());
+ mallRefundEntity.setState(3);
+ mallRefundEntity.setAmount(mallRefund.getAmount());
+ mallRefundMapper.updateById(mallRefundEntity);
+ }
}
- }
+ ApiLeaderRefundOrderDto apiLeaderRefundOrderDto = new ApiLeaderRefundOrderDto();
+ apiLeaderRefundOrderDto.setOrderId(mallOrderInfo.getId());
+ apiLeaderRefundOrderDto.setItemId(mallOrderItem.getId());
+ apiLeaderRefundOrderDto.setAgreeState(1);
+ iApiMallTeamLeaderService.leaderRefundOrder(apiLeaderRefundOrderDto);
- //退款订单编号
- String orderNo = mallOrderInfo.getOrderNo();
- //退款退款编号
- String refundNo = mallRefundEntity.getRefundNo();
- //退款订单金额
- BigDecimal orderAmount = mallOrderInfo.getAmount();
- BigDecimal aa = new BigDecimal(100);
- int orderMoney = orderAmount.multiply(aa).intValue();
-
- //退款退款金额
- BigDecimal refundAmount = mallRefundEntity.getAmount();
- BigDecimal bb = new BigDecimal(100);
- int refundMoney = refundAmount.multiply(bb).intValue();
-
- Long refundId = mallRefundEntity.getId();
- MallRefundEntity mallRefundOld = mallRefundMapper.selectById(refundId);
- MallOrderInfo mallOrderInfoOld = this.baseMapper.selectByOrderNo(orderNo);
- //余额支付退款
- if(OrderPayMethodEnum.BALANCE.getName().equals(mallOrderInfo.getPayMethod())){
- mallRefundOld.setState(1);
- mallRefundMapper.updateById(mallRefundOld);
- mallOrderInfoOld.setStatus(OrderStatusEnum.REFUNDED.getValue());
- this.baseMapper.updateById(mallOrderInfoOld);
- mallMoneyFlowService.addMoneyFlow(mallOrderInfoOld.getMemberId(), mallOrderInfoOld.getAmount(), MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue());
- memberWalletService.add(refundAmount, member.getId(), "balance");
- mallOrderItemMapper.updateStateByOrderId(3,mallOrderInfoOld.getId());
- return new FebsResponse().success().message("退款成功");
- }
-
- Boolean flag = false;
- Boolean debug = xcxProperties.getDebug();
- if (debug) {
- boolean b = weixinServiceUtil.comRefund(orderNo, refundNo, 1, 1, null);
- flag = b;
- } else {
- log.info("开始调用退款接口。。。退款编号为{}", refundNo);
- boolean b = weixinServiceUtil.comRefund(orderNo, refundNo, orderMoney, refundMoney, null);
- flag = b;
- }
-
- /**
- * 更新退款表
- * 更新订单表
- */
- if(flag){
- mallRefundOld.setState(1);
- mallRefundMapper.updateById(mallRefundOld);
- mallOrderInfoOld.setStatus(OrderStatusEnum.REFUNDED.getValue());
- this.baseMapper.updateById(mallOrderInfoOld);
- mallOrderItemMapper.updateStateByOrderId(3,mallOrderInfoOld.getId());
- mallMoneyFlowService.addMoneyFlow(mallOrderInfoOld.getMemberId(), mallOrderInfoOld.getAmount(), MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue());
- }else{
- mallRefundOld.setState(2);
- mallRefundMapper.updateById(mallRefundOld);
- return new FebsResponse().fail().message("退款失败,请联系客服人员");
+// //退款订单编号
+// String orderNo = mallOrderInfo.getOrderNo();
+// //退款退款编号
+// String refundNo = mallRefundEntity.getRefundNo();
+// //退款订单金额
+// BigDecimal orderAmount = mallOrderInfo.getAmount();
+// BigDecimal aa = new BigDecimal(100);
+// int orderMoney = orderAmount.multiply(aa).intValue();
+//
+// //退款退款金额
+// BigDecimal refundAmount = mallRefundEntity.getAmount();
+// BigDecimal bb = new BigDecimal(100);
+// int refundMoney = refundAmount.multiply(bb).intValue();
+//
+// Long refundId = mallRefundEntity.getId();
+// MallRefundEntity mallRefundOld = mallRefundMapper.selectById(refundId);
+// MallOrderInfo mallOrderInfoOld = this.baseMapper.selectByOrderNo(orderNo);
+// //余额支付退款
+// if(OrderPayMethodEnum.BALANCE.getName().equals(mallOrderInfo.getPayMethod())){
+// mallRefundOld.setState(1);
+// mallRefundMapper.updateById(mallRefundOld);
+// mallOrderInfoOld.setStatus(OrderStatusEnum.REFUNDED.getValue());
+// this.baseMapper.updateById(mallOrderInfoOld);
+// mallMoneyFlowService.addMoneyFlow(mallOrderInfoOld.getMemberId(), mallOrderInfoOld.getAmount(), MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue());
+// memberWalletService.add(refundAmount, member.getId(), "balance");
+// mallOrderItemMapper.updateStateByOrderId(3,mallOrderInfoOld.getId());
+// return new FebsResponse().success().message("退款成功");
+// }
+//
+// Boolean flag = false;
+// Boolean debug = xcxProperties.getDebug();
+// if (debug) {
+// boolean b = weixinServiceUtil.comRefund(orderNo, refundNo, 1, 1, null);
+// flag = b;
+// } else {
+// log.info("开始调用退款接口。。。退款编号为{}", refundNo);
+// boolean b = weixinServiceUtil.comRefund(orderNo, refundNo, orderMoney, refundMoney, null);
+// flag = b;
+// }
+//
+// /**
+// * 更新退款表
+// * 更新订单表
+// */
+// if(flag){
+// mallRefundOld.setState(1);
+// mallRefundMapper.updateById(mallRefundOld);
+// mallOrderInfoOld.setStatus(OrderStatusEnum.REFUNDED.getValue());
+// this.baseMapper.updateById(mallOrderInfoOld);
+// mallOrderItemMapper.updateStateByOrderId(3,mallOrderInfoOld.getId());
+// mallMoneyFlowService.addMoneyFlow(mallOrderInfoOld.getMemberId(), mallOrderInfoOld.getAmount(), MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue());
+// }else{
+// mallRefundOld.setState(2);
+// mallRefundMapper.updateById(mallRefundOld);
+// return new FebsResponse().fail().message("退款失败,请联系客服人员");
+// }
}
return new FebsResponse().success().message("退款成功");
}
--
Gitblit v1.9.1