xiaoyong931011
2022-09-13 290da793c35d43b3b32be97643cf0b66f694ae84
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -148,7 +148,6 @@
                }
                MallGoods mallGoods = mallGoodsMapper.selectById(sku.getGoodsId());
                // 零撸专区购买
                if (new BigDecimal(mallGoods.getPresentPrice()).compareTo(BigDecimal.ZERO) == 0) {
                    List<MallOrderItem> items = mallOrderItemMapper.selectItemByGoodsIdUnCancel(mallGoods.getId(), member.getId());
@@ -160,6 +159,10 @@
                if (MallGoods.ISSALE_STATUS_DISABLED.equals(mallGoods.getIsSale())) {
                    throw new FebsException(mallGoods.getGoodsName() + "已下架");
                }
                mallGoods.setStock(mallGoods.getStock() - item.getCnt());
                mallGoods.setVolume(mallGoods.getVolume() + item.getCnt());
                mallGoodsMapper.updateById(mallGoods);
                BigDecimal amount = sku.getPresentPrice().multiply(BigDecimal.valueOf(item.getCnt()));
                orderItem.setAmount(amount);
@@ -462,7 +465,8 @@
    @Override
    public OrderDetailVo findOrderDetailsById(Long id) {
        MallOrderInfo orderInfo = this.baseMapper.selectOrderDetailsById(id);
        if (orderInfo == null || AppContants.DEL_FLAG_Y == orderInfo.getDelFlag()) {
//        if (orderInfo == null || AppContants.DEL_FLAG_Y == orderInfo.getDelFlag()) {
        if (ObjectUtil.isNull(orderInfo)) {
            throw new FebsException("订单不存在");
        }
@@ -506,6 +510,11 @@
            throw new FebsException("还未送至自提点");
        }
        List<MallRefundEntity> mallRefundEntities = mallRefundMapper.selectByItemIdAndOrderIdAndState(null, orderInfo.getId(), 3);
        if(CollUtil.isNotEmpty(mallRefundEntities)){
            throw new FebsException("请先处理退款商品");
        }
        orderInfo.setStatus(OrderStatusEnum.FINISH.getValue());
        orderInfo.setReceivingTime(new Date());
        this.baseMapper.updateById(orderInfo);
@@ -514,8 +523,11 @@
        Long orderInfoId = orderInfo.getId();
        List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(orderInfoId);
        if(CollUtil.isNotEmpty(mallOrderItemList)){
            DataDictionaryCustom dicBonusPercent = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.BONUS_PERCENT.getType(), DataDictionaryEnum.BONUS_PERCENT.getCode());
            BigDecimal bonusPercent = new BigDecimal(dicBonusPercent.getValue()).setScale(2,BigDecimal.ROUND_DOWN);
            MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(orderInfo.getTakeUniqueCode());
            BigDecimal bonusPercent =new BigDecimal(mallTeamLeader.getBonusPercent()==null?"0":mallTeamLeader.getBonusPercent());
//            DataDictionaryCustom dicBonusPercent = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.BONUS_PERCENT.getType(), DataDictionaryEnum.BONUS_PERCENT.getCode());
//            BigDecimal bonusPercent = new BigDecimal(dicBonusPercent.getValue()).setScale(2,BigDecimal.ROUND_DOWN);
            for(MallOrderItem mallOrderItem : mallOrderItemList){
                Integer state = mallOrderItem.getState() == null ? 1 : mallOrderItem.getState();
                if(1 == state){
@@ -722,9 +734,10 @@
                mallRefundEntity.setRefundNo(mallOrderInfo.getOrderNo()+"_RITEM"+mallOrderItem.getId());
                mallRefundEntity.setMemberId(member.getId());
                mallRefundEntity.setOrderId(mallOrderInfo.getId());
                if("余额支付"==mallOrderInfo.getPayMethod()){
                mallRefundEntity.setItemId(mallOrderItem.getId());
                if("余额支付".equals(mallOrderInfo.getPayMethod())){
                    mallRefundEntity.setType(3);
                }else if("微信支付"==mallOrderInfo.getPayMethod()){
                }else if("微信支付".equals(mallOrderInfo.getPayMethod())){
                    mallRefundEntity.setType(1);
                }else{
                    mallRefundEntity.setType(3);
@@ -736,14 +749,12 @@
                if(mallRefund.getState() == 1){
                    return new FebsResponse().fail().message("订单已退款");
                }
                if(mallRefund.getState() == 3){
                    return new FebsResponse().fail().message("订单退款中");
                }
                if(mallRefund.getState() == 2){
                if(mallRefund.getState() == 2 || mallRefund.getState() == 3){
                    mallRefundEntity.setId(mallRefund.getId());
                    mallRefundEntity.setRefundNo(mallRefund.getRefundNo());
                    mallRefundEntity.setMemberId(mallRefund.getMemberId());
                    mallRefundEntity.setOrderId(mallRefund.getOrderId());
                    mallRefundEntity.setItemId(mallRefund.getItemId());
                    mallRefundEntity.setType(mallRefund.getType());
                    mallRefundEntity.setState(3);
                    mallRefundEntity.setAmount(mallRefund.getAmount());
@@ -755,65 +766,8 @@
            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("退款失败,请联系客服人员");
//            }
        }
        return new FebsResponse().success().message("退款成功");
        return new FebsResponse().success();
    }
    @Override
@@ -855,4 +809,16 @@
        return new FebsResponse().success().message("已申请");
    }
    @Override
    public FebsResponse cancelRefundOrder(Long id) {
        MallRefundEntity mallRefundEntity = mallRefundMapper.selectById(id);
        mallRefundEntity.setState(2);
        mallRefundMapper.updateById(mallRefundEntity);
        Long itemId = mallRefundEntity.getItemId();
        MallOrderItem mallOrderItem = mallOrderItemMapper.selectById(itemId);
        mallOrderItem.setState(1);
        mallOrderItemMapper.updateById(mallOrderItem);
        return new FebsResponse().success().message("已取消");
    }
}