| | |
| | | private final MallMemberMapper mallMemberMapper; |
| | | private final DataDictionaryCustomMapper dataDictionaryCustomMapper; |
| | | private final MallLeaderAchieveMapper mallLeaderAchieveMapper; |
| | | private final IApiMallTeamLeaderService iApiMallTeamLeaderService; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | |
| | | 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("退款成功"); |
| | | } |