| | |
| | | @Transactional |
| | | public FebsResponse refundOrder(Long id) { |
| | | MallMember member = LoginUserUtil.getLoginUser(); |
| | | MallOrderInfo mallOrderInfo = this.baseMapper.selectById(id); |
| | | if(ObjectUtil.isEmpty(mallOrderInfo)){ |
| | | return new FebsResponse().fail().message("订单不存在"); |
| | | } |
| | | MallOrderInfo mallOrderInfo = ValidateEntityUtils |
| | | .ensureColumnReturnEntity(id, MallOrderInfo::getId, this.baseMapper::selectOne, "订单不存在"); |
| | | Integer status = mallOrderInfo.getStatus(); |
| | | if(OrderStatusEnum.WAIT_SHIPPING.getValue() != status){ |
| | | return new FebsResponse().fail().message("订单不是待发货状态"); |
| | | } |
| | | Integer deliveryState = mallOrderInfo.getDeliveryState(); |
| | | if(1 != deliveryState){ |
| | | return new FebsResponse().fail().message("订单不是待配送状态"); |
| | | } |
| | | |
| | | ValidateEntityUtils.ensureEqual(OrderStatusEnum.WAIT_SHIPPING.getValue(),status,"订单不是待发货状态"); |
| | | ValidateEntityUtils.ensureEqual(1,deliveryState,"订单不是待配送状态"); |
| | | //根据子订单生成退款记录 |
| | | List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(id); |
| | | if(CollUtil.isEmpty(mallOrderItemList)){ |
| | | return new FebsResponse().fail().message("订单不存在"); |
| | | } |
| | | List<MallOrderItem> mallOrderItemList = ValidateEntityUtils |
| | | .ensureColumnReturnEntityList(id, MallOrderItem::getOrderId, mallOrderItemMapper::selectList, "订单不存在"); |
| | | for(MallOrderItem mallOrderItem : mallOrderItemList){ |
| | | QueryWrapper<MallRefundEntity> objectQueryWrapper = new QueryWrapper<>(); |
| | | objectQueryWrapper.eq("member_id",member.getId()); |
| | |
| | | mallRefundEntity.setItemId(mallOrderItem.getId()); |
| | | if("余额支付".equals(mallOrderInfo.getPayMethod())){ |
| | | mallRefundEntity.setType(3); |
| | | }else if("微信支付".equals(mallOrderInfo.getPayMethod())){ |
| | | }else if("FIUU支付".equals(mallOrderInfo.getPayMethod())){ |
| | | mallRefundEntity.setType(1); |
| | | }else{ |
| | | mallRefundEntity.setType(3); |
| | |
| | | mallRefundEntity.setAmount(mallOrderItem.getAmount()); |
| | | mallRefundMapper.insert(mallRefundEntity); |
| | | }else{ |
| | | if(mallRefund.getState() == 1){ |
| | | return new FebsResponse().fail().message("订单已退款"); |
| | | } |
| | | ValidateEntityUtils.ensureNotEqual(1,mallRefund.getState(),"订单已退款"); |
| | | if(mallRefund.getState() == 2 || mallRefund.getState() == 3){ |
| | | mallRefundEntity.setId(mallRefund.getId()); |
| | | mallRefundEntity.setRefundNo(mallRefund.getRefundNo()); |