xiaoyong931011
2022-09-05 097f92827a7f6896dd2861ee83dcfed9204f1abc
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -85,6 +85,11 @@
            throw new FebsException("请选择自提点");
        }
        MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(takeUniqueCode);
        if(ObjectUtil.isEmpty(mallTeamLeader)){
            throw new FebsException("请重新选择团长");
        }
        String orderNo = MallUtils.getOrderNum();
        MallOrderInfo orderInfo = new MallOrderInfo();
        orderInfo.setOrderNo(orderNo);
@@ -187,9 +192,9 @@
        BigDecimal delivaryAmount = addOrderDto.getDeliveryAmount() == null ? BigDecimal.ZERO : addOrderDto.getDeliveryAmount();
        if(BigDecimal.ZERO.compareTo(delivaryAmount) < 0 && 1 == addOrderDto.getIsHome()){
            total = total.add(delivaryAmount);
            orderInfo.setCarriage(delivaryAmount);
        }
        orderInfo.setAmount(total);
        orderInfo.setCarriage(carriage);
        MallAddressInfo address = mallAddressInfoMapper.selectAddressInfoByMemberIdAndId(member.getId(), addOrderDto.getAddressId());
        orderInfo.setName(address.getName());
@@ -227,6 +232,23 @@
        orderInfo.setStatus(OrderStatusEnum.CANCEL.getValue());
        orderInfo.setCancelType(MallOrderInfo.CANCEL_BY_SELF);
        this.baseMapper.updateById(orderInfo);
        List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(id);
        if(CollUtil.isNotEmpty(mallOrderItemList)){
            for(MallOrderItem mallOrderItem : mallOrderItemList){
                Long goodsId = mallOrderItem.getGoodsId();
                Long skuId = mallOrderItem.getSkuId();
                Integer cnt = mallOrderItem.getCnt();
                MallGoods mallGoods = mallGoodsMapper.selectById(goodsId);
                mallGoods.setVolume(mallGoods.getVolume() - cnt);
                mallGoods.setStock(mallGoods.getStock() + cnt);
                mallGoodsMapper.updateById(mallGoods);
                MallGoodsSku mallGoodsSku = mallGoodsSkuMapper.selectById(skuId);
                mallGoodsSku.setSkuVolume(mallGoodsSku.getSkuVolume() - cnt);
                mallGoodsSku.setStock(mallGoodsSku.getStock() + cnt);
                mallGoodsSkuMapper.updateById(mallGoodsSku);
            }
        }
    }
    /**
@@ -295,7 +317,7 @@
                wxResultStr = JSONUtil.toJsonStr(brandWCPayRequestData);
                payResultStr = brandWCPayRequestData.getPrepay_id();
                orderInfo.setPayMethod("微信支付");
                agentProducer.sendOrderReturn(orderInfo.getId());
//                agentProducer.sendOrderReturn(orderInfo.getId());
                break;
            case "2":
                if (StrUtil.isNotBlank(orderInfo.getPayOrderNo())) {
@@ -316,6 +338,7 @@
                orderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue());
                orderInfo.setPayTime(new Date());
                orderInfo.setPayResult("1");
                orderInfo.setDeliveryState(OrderDeliveryStateEnum.DELIVERY_WAIT.getValue());
//                boolean hasTc = false;
//                // 静态倍数
@@ -490,7 +513,8 @@
        MallLeaderAchieve mallLeaderAchieve = new MallLeaderAchieve();
        mallLeaderAchieve.setMemberId(orderInfo.getMemberId());
        mallLeaderAchieve.setOrderNo(orderInfo.getOrderNo());
        mallLeaderAchieve.setAmount(orderInfo.getAmount());
        BigDecimal subtract = orderInfo.getAmount().subtract(orderInfo.getCarriage() == null ? BigDecimal.ZERO : orderInfo.getCarriage());
        mallLeaderAchieve.setAmount(subtract);
        mallLeaderAchieve.setUniqueCode(orderInfo.getTakeUniqueCode());
        mallLeaderAchieve.setState(MallLeaderAchieve.STATE_ONE);
        mallLeaderAchieveMapper.insert(mallLeaderAchieve);
@@ -713,6 +737,21 @@
        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) {
@@ -728,14 +767,12 @@
         * 更新退款表
         * 更新订单表
         */
        Long refundId = mallRefundEntity.getId();
        MallRefundEntity mallRefundOld = mallRefundMapper.selectById(refundId);
        MallOrderInfo mallOrderInfoOld = this.baseMapper.selectByOrderNo(orderNo);
        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);
@@ -777,7 +814,7 @@
        mallRefundEntity.setRefundPic(applyRefundOrderDto.getRefundPic());
        mallRefundEntity.setMemberId(member.getId());
        mallRefundEntity.setState(3);
        mallRefundEntity.setType(1);
        mallRefundEntity.setType(applyRefundOrderDto.getType());
        mallRefundEntity.setOrderId(orderId);
        mallRefundEntity.setAmount(mallOrderItem.getAmount());
        mallRefundMapper.insert(mallRefundEntity);