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