xiaoyong931011
2022-08-29 832c911439b27f96596aff9d0e67ddc1e0ce2cf3
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -733,4 +733,43 @@
        return new FebsResponse().success().message("退款成功");
    }
    @Override
    public FebsResponse applyRefundOrder(ApplyRefundOrderDto applyRefundOrderDto) {
        Long orderId = applyRefundOrderDto.getOrderId();
        Long itemId = applyRefundOrderDto.getItemId();
        MallMember member = LoginUserUtil.getLoginUser();
        MallOrderInfo mallOrderInfo = this.baseMapper.selectById(orderId);
        if(ObjectUtil.isEmpty(mallOrderInfo)){
            return new FebsResponse().fail().message("订单不存在");
        }
        List<MallRefundEntity> mallRefundEntitieSuccess = mallRefundMapper.selectByItemIdAndOrderIdAndState(itemId,orderId,1);
        List<MallRefundEntity> mallRefundEntitiesIng = mallRefundMapper.selectByItemIdAndOrderIdAndState(itemId,orderId,3);
        if(CollUtil.isNotEmpty(mallRefundEntitieSuccess) || CollUtil.isNotEmpty(mallRefundEntitiesIng)){
            return new FebsResponse().fail().message("该订单无法申请退款");
        }
        MallRefundEntity mallRefundEntity = new MallRefundEntity();
        MallOrderItem mallOrderItem = mallOrderItemMapper.selectById(itemId);
        if(ObjectUtil.isNotEmpty(mallOrderItem)){
            mallOrderItem.setState(2);
            mallOrderItemMapper.updateById(mallOrderItem);
            mallRefundEntity.setRefundNo(mallOrderInfo.getOrderNo()+"_RITEM"+itemId);
            mallRefundEntity.setItemId(itemId);
        }else{
            mallRefundEntity.setRefundNo(mallOrderInfo.getOrderNo()+"_R"+orderId);
        }
        mallRefundEntity.setRefundReason(applyRefundOrderDto.getRefundReason());
        mallRefundEntity.setRefundRemark(applyRefundOrderDto.getRefundRemark());
        mallRefundEntity.setRefundPic(applyRefundOrderDto.getRefundPic());
        mallRefundEntity.setMemberId(member.getId());
        mallRefundEntity.setState(3);
        mallRefundEntity.setType(1);
        mallRefundEntity.setOrderId(orderId);
        mallRefundEntity.setAmount(mallOrderItem.getAmount());
        mallRefundMapper.insert(mallRefundEntity);
        return new FebsResponse().success().message("已申请");
    }
}