From 5ceebb66f0111c067276578d62943f3b1b07be68 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Wed, 04 Sep 2024 15:22:50 +0800
Subject: [PATCH] 云众医疗 商品页增加查询条件

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java |  173 +++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 160 insertions(+), 13 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java
index 5c133af..c95bedb 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java
@@ -83,14 +83,20 @@
         List<MallTeamLeader> mallTeamLeaderNo = this.baseMapper.selectListByMemberIdAndState(memberId, MallTeamLeader.STATE_NO);
         if(CollUtil.isNotEmpty(mallTeamLeaderNo)){
             mallTeamLeaderAdd = mallTeamLeaderNo.get(0);
-        }
-        if(ObjectUtil.isNotEmpty(mallTeamLeaderAdd)){
-            mallTeamLeaderAdd = MallTeamLeaderConversion.INSTANCE.dtoToEntity(apiApplayLeaderDto);
-            mallTeamLeaderAdd.setState(MallTeamLeader.STATE_ING);
-            //申请团长默认关闭返利,返利比例为0
-            mallTeamLeaderAdd.setProfitSwitch(2);
-            mallTeamLeaderAdd.setBonusPercent("0");
-            this.baseMapper.updateById(mallTeamLeaderAdd);
+            if(ObjectUtil.isNotEmpty(mallTeamLeaderAdd)){
+                mallTeamLeaderAdd.setName(apiApplayLeaderDto.getName());
+                mallTeamLeaderAdd.setPhone(apiApplayLeaderDto.getPhone());
+                mallTeamLeaderAdd.setAddressPic(apiApplayLeaderDto.getAddressPic());
+                mallTeamLeaderAdd.setAddressArea(apiApplayLeaderDto.getAddressArea());
+                mallTeamLeaderAdd.setDetailAddress(apiApplayLeaderDto.getDetailAddress());
+                mallTeamLeaderAdd.setLongitude(apiApplayLeaderDto.getLongitude());
+                mallTeamLeaderAdd.setLatitude(apiApplayLeaderDto.getLatitude());
+                mallTeamLeaderAdd.setState(MallTeamLeader.STATE_ING);
+                //申请团长默认关闭返利,返利比例为0
+                mallTeamLeaderAdd.setProfitSwitch(2);
+                mallTeamLeaderAdd.setBonusPercent("0");
+                this.baseMapper.updateById(mallTeamLeaderAdd);
+            }
         }else{
             MallTeamLeader mallTeamLeader = MallTeamLeaderConversion.INSTANCE.dtoToEntity(apiApplayLeaderDto);
             mallTeamLeader.setMemberId(memberId);
@@ -383,6 +389,10 @@
 
         MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(orderId);
         MallOrderItem mallOrderItem = mallOrderItemMapper.selectById(itemId);
+        MallGoodsSku mallGoodsSku = mallGoodsSkuMapper.selectById(mallOrderItem.getSkuId());
+        if(ObjectUtil.isEmpty(mallGoodsSku)){
+            return new FebsResponse().fail().message("退款失败,请联系客服人员");
+        }
         List<MallRefundEntity> mallRefundEntities = mallRefundMapper.selectByItemIdAndOrderIdAndState(itemId, orderId, 3);
         if(CollUtil.isEmpty(mallRefundEntities)){
             return new FebsResponse().fail().message("退款失败,请联系客服人员");
@@ -410,6 +420,14 @@
 
             //退款退款金额
             BigDecimal refundAmount = mallRefundEntity.getAmount();
+            List<MallOrderItem> mallOrderItemListOnly = mallOrderItemMapper.selectListByStateAndOrderId(1,orderId);
+            List<MallOrderItem> mallOrderItemListIng = mallOrderItemMapper.selectListByStateAndOrderId(2,orderId);
+            if(CollUtil.isEmpty(mallOrderItemListOnly) && CollUtil.isNotEmpty(mallOrderItemListIng) ){
+                if(1 == mallOrderItemListIng.size() ){
+                    refundAmount = refundAmount.add(mallOrderInfo.getCarriage());
+                    log.info("退款订单编号为{},订单金额:{},待退款订单:{},退款金额:{}", refundNo,orderAmount,mallOrderItemListOnly.size(),refundAmount);
+                }
+            }
             BigDecimal bb = new BigDecimal(100);
             int refundMoney = refundAmount.multiply(bb).intValue();
 
@@ -423,8 +441,6 @@
                 mallGoods.setStock(mallGoods.getStock() + mallOrderItem.getCnt());
                 mallGoods.setVolume(mallGoods.getVolume() - mallOrderItem.getCnt());
                 mallGoodsMapper.updateById(mallGoods);
-
-                MallGoodsSku mallGoodsSku = mallGoodsSkuMapper.selectById(mallOrderItem.getSkuId());
                 mallGoodsSku.setStock(mallGoodsSku.getStock() + mallOrderItem.getCnt());
                 mallGoodsSku.setSkuVolume(mallGoodsSku.getSkuVolume() - mallOrderItem.getCnt());
                 mallGoodsSkuMapper.updateById(mallGoodsSku);
@@ -432,7 +448,7 @@
                 mallRefundEntity.setState(1);
                 mallRefundEntity.setUpdatedTime(DateUtil.date());
                 mallRefundMapper.updateById(mallRefundEntity);
-                mallMoneyFlowService.addMoneyFlow(mallOrderInfo.getMemberId(), refundAmount, MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue());
+                mallMoneyFlowService.addMoneyFlow(mallOrderInfo.getMemberId(), refundAmount, MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue(),"余额退款",2);
 
                 List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByNotInStateAndOrderId(3,orderId);
                 if(CollUtil.isEmpty(mallOrderItemList)){
@@ -465,7 +481,7 @@
                 mallGoods.setVolume(mallGoods.getVolume() - mallOrderItem.getCnt());
                 mallGoodsMapper.updateById(mallGoods);
 
-                MallGoodsSku mallGoodsSku = mallGoodsSkuMapper.selectById(mallOrderItem.getSkuId());
+//                MallGoodsSku mallGoodsSku = mallGoodsSkuMapper.selectById(mallOrderItem.getSkuId());
                 mallGoodsSku.setStock(mallGoodsSku.getStock() + mallOrderItem.getCnt());
                 mallGoodsSku.setSkuVolume(mallGoodsSku.getSkuVolume() - mallOrderItem.getCnt());
                 mallGoodsSkuMapper.updateById(mallGoodsSku);
@@ -474,7 +490,138 @@
                 mallRefundEntity.setState(1);
                 mallRefundEntity.setUpdatedTime(DateUtil.date());
                 mallRefundMapper.updateById(mallRefundEntity);
-                mallMoneyFlowService.addMoneyFlow(mallOrderInfo.getMemberId(), refundAmount, MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue());
+                mallMoneyFlowService.addMoneyFlow(mallOrderInfo.getMemberId(), refundAmount, MoneyFlowTypeEnum.WECHAT_REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.WECHAT.getValue(),"微信退款",2);
+
+                List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByNotInStateAndOrderId(3,orderId);
+                if(CollUtil.isEmpty(mallOrderItemList)){
+                    MallOrderInfo mallOrderRefund = mallOrderInfoMapper.selectById(orderId);
+                    mallOrderRefund.setStatus(6);
+                    mallOrderInfoMapper.updateById(mallOrderRefund);
+                }
+            }else{
+
+                //更新订单详情
+                mallOrderItem.setState(1);
+                mallOrderItemMapper.updateById(mallOrderItem);
+
+                mallRefundEntity.setState(2);
+                mallRefundMapper.updateById(mallRefundEntity);
+                return new FebsResponse().fail().message("退款失败,请联系客服人员");
+            }
+            return new FebsResponse().success().message("退款成功");
+        }
+    }
+
+    @Override
+    public FebsResponse leaderRefundOrderAll(ApiLeaderRefundOrderDto apiLeaderRefundOrderDto) {
+
+        //获取退款订单信息
+        Long orderId = apiLeaderRefundOrderDto.getOrderId();
+        Long itemId = apiLeaderRefundOrderDto.getItemId();
+
+        MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(orderId);
+        MallOrderItem mallOrderItem = mallOrderItemMapper.selectById(itemId);
+        MallGoodsSku mallGoodsSku = mallGoodsSkuMapper.selectById(mallOrderItem.getSkuId());
+        if(ObjectUtil.isEmpty(mallGoodsSku)){
+            return new FebsResponse().fail().message("退款失败,请联系客服人员");
+        }
+        List<MallRefundEntity> mallRefundEntities = mallRefundMapper.selectByItemIdAndOrderIdAndState(itemId, orderId, 3);
+        if(CollUtil.isEmpty(mallRefundEntities)){
+            return new FebsResponse().fail().message("退款失败,请联系客服人员");
+        }
+        MallRefundEntity mallRefundEntity = mallRefundEntities.get(0);
+
+        Integer agreeState = apiLeaderRefundOrderDto.getAgreeState() == null? 2:apiLeaderRefundOrderDto.getAgreeState();
+        if(2 == agreeState){
+            //更新订单详情
+            mallOrderItem.setState(1);
+            mallOrderItemMapper.updateById(mallOrderItem);
+            //更新退款订单
+            mallRefundEntity.setState(2);
+            mallRefundEntity.setUpdatedTime(DateUtil.date());
+            mallRefundMapper.updateById(mallRefundEntity);
+            return new FebsResponse().success().message("操作成功");
+        }else{//退款订单编号
+            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();
+            List<MallOrderItem> mallOrderItemListOnly = mallOrderItemMapper.selectListByStateAndOrderId(1,orderId);
+            if(CollUtil.isNotEmpty(mallOrderItemListOnly)){
+                if(1==mallOrderItemListOnly.size()){
+                    refundAmount = refundAmount.add(mallOrderInfo.getCarriage());
+                    log.info("退款订单编号为{},订单金额:{},待退款订单:{},退款金额:{}", refundNo,orderAmount,mallOrderItemListOnly.size(),refundAmount);
+                }
+            }
+            BigDecimal bb = new BigDecimal(100);
+            int refundMoney = refundAmount.multiply(bb).intValue();
+
+            //余额支付退款
+            if(mallRefundEntity.getType() == 3){
+                //更新订单详情
+                mallOrderItem.setState(3);
+                mallOrderItemMapper.updateById(mallOrderItem);
+                //更新库存信息
+                MallGoods mallGoods = mallGoodsMapper.selectById(mallOrderItem.getGoodsId());
+                mallGoods.setStock(mallGoods.getStock() + mallOrderItem.getCnt());
+                mallGoods.setVolume(mallGoods.getVolume() - mallOrderItem.getCnt());
+                mallGoodsMapper.updateById(mallGoods);
+                mallGoodsSku.setStock(mallGoodsSku.getStock() + mallOrderItem.getCnt());
+                mallGoodsSku.setSkuVolume(mallGoodsSku.getSkuVolume() - mallOrderItem.getCnt());
+                mallGoodsSkuMapper.updateById(mallGoodsSku);
+                //更新退款订单
+                mallRefundEntity.setState(1);
+                mallRefundEntity.setUpdatedTime(DateUtil.date());
+                mallRefundMapper.updateById(mallRefundEntity);
+                mallMoneyFlowService.addMoneyFlow(mallOrderInfo.getMemberId(), refundAmount, MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue(),"余额退款",2);
+
+                List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByNotInStateAndOrderId(3,orderId);
+                if(CollUtil.isEmpty(mallOrderItemList)){
+                    MallOrderInfo mallOrderRefund = mallOrderInfoMapper.selectById(orderId);
+                    mallOrderRefund.setStatus(6);
+                    mallOrderInfoMapper.updateById(mallOrderRefund);
+                }
+                memberWalletService.add(refundAmount, mallOrderInfo.getMemberId(), "balance");
+                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){
+                //更新订单详情
+                mallOrderItem.setState(3);
+                mallOrderItemMapper.updateById(mallOrderItem);
+                //更新库存信息
+                MallGoods mallGoods = mallGoodsMapper.selectById(mallOrderItem.getGoodsId());
+                mallGoods.setStock(mallGoods.getStock() + mallOrderItem.getCnt());
+                mallGoods.setVolume(mallGoods.getVolume() - mallOrderItem.getCnt());
+                mallGoodsMapper.updateById(mallGoods);
+
+//                MallGoodsSku mallGoodsSku = mallGoodsSkuMapper.selectById(mallOrderItem.getSkuId());
+                mallGoodsSku.setStock(mallGoodsSku.getStock() + mallOrderItem.getCnt());
+                mallGoodsSku.setSkuVolume(mallGoodsSku.getSkuVolume() - mallOrderItem.getCnt());
+                mallGoodsSkuMapper.updateById(mallGoodsSku);
+
+                //更新退款订单
+                mallRefundEntity.setState(1);
+                mallRefundEntity.setUpdatedTime(DateUtil.date());
+                mallRefundMapper.updateById(mallRefundEntity);
+                mallMoneyFlowService.addMoneyFlow(mallOrderInfo.getMemberId(), refundAmount, MoneyFlowTypeEnum.WECHAT_REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.WECHAT.getValue(),"微信退款",2);
 
                 List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByNotInStateAndOrderId(3,orderId);
                 if(CollUtil.isEmpty(mallOrderItemList)){

--
Gitblit v1.9.1