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 |  138 +++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 135 insertions(+), 3 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 fbfbfba..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
@@ -421,10 +421,142 @@
             //退款退款金额
             BigDecimal refundAmount = mallRefundEntity.getAmount();
             List<MallOrderItem> mallOrderItemListOnly = mallOrderItemMapper.selectListByStateAndOrderId(1,orderId);
-            if(CollUtil.isNotEmpty(mallOrderItemListOnly)){
-                if(1 == mallOrderItemListOnly.size() &&
-                    itemId == mallOrderItemListOnly.get(0).getId()){
+            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();
+
+            //余额支付退款
+            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)){
+                    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);

--
Gitblit v1.9.1