xiaoyong931011
2022-09-05 95c11133bd778a27672c77af85d420b90b8e65e8
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -74,6 +74,7 @@
    private final MallTeamLeaderMapper mallTeamLeaderMapper;
    private final MallMemberMapper mallMemberMapper;
    private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
    private final MallLeaderAchieveMapper mallLeaderAchieveMapper;
    @Override
    @Transactional(rollbackFor = Exception.class)
@@ -127,6 +128,7 @@
                orderItem.setStyleName(mallGoods.getGoodsName());
                orderItem.setSkuName(mallGoods.getGoodsName());
                orderItem.setSkuImage(mallGoods.getThumb());
                orderItem.setState(1);
                total = total.add(amount);
            } else {
@@ -161,6 +163,7 @@
                orderItem.setGoodsId(sku.getGoodsId());
                orderItem.setGoodsName(sku.getGoodsName());
                orderItem.setSkuId(sku.getId());
                orderItem.setState(1);
                orderItem.setStyleName(sku.getStyleName());
                orderItem.setSkuName(sku.getSkuName());
                orderItem.setSkuImage(sku.getSkuImage());
@@ -184,9 +187,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());
@@ -292,7 +295,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())) {
@@ -313,44 +316,45 @@
                orderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue());
                orderInfo.setPayTime(new Date());
                orderInfo.setPayResult("1");
                orderInfo.setDeliveryState(OrderDeliveryStateEnum.DELIVERY_WAIT.getValue());
                boolean hasTc = false;
                // 静态倍数
                List<MallOrderItem> orderItems = this.baseMapper.getMallOrderItemByOrderId(orderInfo.getId());
                if (CollUtil.isNotEmpty(orderItems)) {
                    for (MallOrderItem orderItem : orderItems) {
                        MallGoods mallGoods = mallGoodsMapper.selectById(orderItem.getGoodsId());
                        BigDecimal score = BigDecimal.ZERO;
                        MallGoodsSku sku = mallGoodsSkuMapper.selectById(orderItem.getSkuId());
                        if (mallGoods.getIsNormal() == 2) {
                            hasTc = true;
                            score = sku.getPresentPrice().multiply(mallGoods.getStaticMulti()).multiply(new BigDecimal(orderItem.getCnt()));
//                            BigDecimal staticMulti = mallGoods.getStaticMulti() == null ? BigDecimal.ZERO : mallGoods.getStaticMulti();
//                            score = sku.getPresentPrice().multiply(staticMulti);
                        }
                        if (score.compareTo(BigDecimal.ZERO) > 0) {
                            memberWalletService.add(score, member.getId(), "score");
                            mallMoneyFlowService.addMoneyFlow(member.getId(), score, MoneyFlowTypeEnum.STATIC_BONUS.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.SCORE.getValue());
                            // 添加业绩
                            mallAchieveService.add(orderItem.getId());
                        }
                    }
                }
//                boolean hasTc = false;
//                // 静态倍数
//                List<MallOrderItem> orderItems = this.baseMapper.getMallOrderItemByOrderId(orderInfo.getId());
//                if (CollUtil.isNotEmpty(orderItems)) {
//                    for (MallOrderItem orderItem : orderItems) {
//                        MallGoods mallGoods = mallGoodsMapper.selectById(orderItem.getGoodsId());
//                        BigDecimal score = BigDecimal.ZERO;
//                        MallGoodsSku sku = mallGoodsSkuMapper.selectById(orderItem.getSkuId());
//                        if (mallGoods.getIsNormal() == 2) {
//                            hasTc = true;
//                            score = sku.getPresentPrice().multiply(mallGoods.getStaticMulti()).multiply(new BigDecimal(orderItem.getCnt()));
////                            BigDecimal staticMulti = mallGoods.getStaticMulti() == null ? BigDecimal.ZERO : mallGoods.getStaticMulti();
////                            score = sku.getPresentPrice().multiply(staticMulti);
//                        }
//
//                        if (score.compareTo(BigDecimal.ZERO) > 0) {
//                            memberWalletService.add(score, member.getId(), "score");
//                            mallMoneyFlowService.addMoneyFlow(member.getId(), score, MoneyFlowTypeEnum.STATIC_BONUS.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.SCORE.getValue());
//
//                            // 添加业绩
//                            mallAchieveService.add(orderItem.getId());
//                        }
//                    }
//                }
                // 购买套餐后,升级为普通会员
                if (hasTc) {
                    MallMember mallMember = memberMapper.selectById(member.getId());
                    if (AgentLevelEnum.ZERO_LEVEL.name().equals(mallMember.getLevel())) {
                        mallMember.setLevel(AgentLevelEnum.FIRST_LEVEL.name());
                        memberMapper.updateById(mallMember);
                    }
                }
//                if (hasTc) {
//                    MallMember mallMember = memberMapper.selectById(member.getId());
//                    if (AgentLevelEnum.ZERO_LEVEL.name().equals(mallMember.getLevel())) {
//                        mallMember.setLevel(AgentLevelEnum.FIRST_LEVEL.name());
//                        memberMapper.updateById(mallMember);
//                    }
//                }
                mallMoneyFlowService.addMoneyFlow(member.getId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue());
                agentProducer.sendAutoLevelUpMsg(member.getId());
                agentProducer.sendOrderReturn(orderInfo.getId());
//                agentProducer.sendAutoLevelUpMsg(member.getId());
//                agentProducer.sendOrderReturn(orderInfo.getId());
                break;
            case "4":
                if (orderInfo.getOrderType() != 2) {
@@ -440,7 +444,8 @@
        }
        OrderDetailVo orderDetailVo = MallOrderInfoConversion.INSTANCE.entityToDetailVo(orderInfo);
        orderDetailVo.setLeaderLatitude(orderInfo.getLeaderLatitude());
        orderDetailVo.setLeaderLongitude(orderInfo.getLeaderLongitude());
//        if (orderInfo.getStatus() == OrderStatusEnum.WAIT_FINISH.getValue()) {
//            MallExpressInfo expressInfo = expressInfoMapper.selectByOrderId(orderInfo.getId());
//            orderDetailVo.setExpressNo(expressInfo.getExpressNo());
@@ -482,6 +487,15 @@
        orderInfo.setStatus(OrderStatusEnum.FINISH.getValue());
        orderInfo.setReceivingTime(new Date());
        this.baseMapper.updateById(orderInfo);
        //生成一条团长提成记录
        MallLeaderAchieve mallLeaderAchieve = new MallLeaderAchieve();
        mallLeaderAchieve.setMemberId(orderInfo.getMemberId());
        mallLeaderAchieve.setOrderNo(orderInfo.getOrderNo());
        mallLeaderAchieve.setAmount(orderInfo.getAmount());
        mallLeaderAchieve.setUniqueCode(orderInfo.getTakeUniqueCode());
        mallLeaderAchieve.setState(MallLeaderAchieve.STATE_ONE);
        mallLeaderAchieveMapper.insert(mallLeaderAchieve);
    }
    @Override
@@ -701,6 +715,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) {
@@ -716,14 +745,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);
@@ -749,17 +776,24 @@
            return new FebsResponse().fail().message("该订单无法申请退款");
        }
        MallOrderItem mallOrderItem = mallOrderItemMapper.selectById(itemId);
        MallRefundEntity mallRefundEntity = new MallRefundEntity();
        mallRefundEntity.setRefundNo(mallOrderInfo.getOrderNo()+"_RITEM"+itemId);
        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.setType(applyRefundOrderDto.getType());
        mallRefundEntity.setOrderId(orderId);
        mallRefundEntity.setItemId(itemId);
        mallRefundEntity.setAmount(mallOrderItem.getAmount());
        mallRefundMapper.insert(mallRefundEntity);
        return new FebsResponse().success().message("已申请");