From 61b5f9863f14ab4fc9da504ca2b553a778eb2e2c Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期三, 24 一月 2024 15:10:32 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/HongRuiTang

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java |  327 ++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 243 insertions(+), 84 deletions(-)

diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
index 8eaf64d..f276d42 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -4,6 +4,7 @@
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -46,6 +47,7 @@
 import com.ruoyi.system.api.constant.DelayTaskEnum;
 import com.ruoyi.system.api.constant.SecurityConstant;
 import com.ruoyi.system.api.domain.dto.*;
+import com.ruoyi.system.api.domain.poji.activity.Activity;
 import com.ruoyi.system.api.domain.poji.activity.ActivityRecord;
 import com.ruoyi.system.api.domain.poji.config.DelayTask;
 import com.ruoyi.system.api.domain.poji.goods.Goods;
@@ -63,6 +65,7 @@
 import lombok.extern.log4j.Log4j2;
 import org.redisson.api.RLock;
 import org.redisson.api.RedissonClient;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -954,6 +957,41 @@
             R<com.alibaba.fastjson.JSONObject> r = HuiFuTianXiaUtil.weixinPayment(outTradeNo, description, payMoney.doubleValue(), openid, request.getNotifyUrl());
             if(r.getCode() != 200){
                 throw new ServiceException(r.getMsg());
+            }else{
+                new Thread(new Runnable() {
+                    @Override
+                    public void run() {
+                        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+                        int time = 0;
+                        for (int i = 0; i < 13; i++) {
+                            try {
+                                time += (5000 * i);
+                                Thread.sleep(time);
+                            } catch (InterruptedException e) {
+                                e.printStackTrace();
+                            }
+                            R<WeixinPaymentNotifyVo> voR = HuiFuTianXiaUtil.queryPayment(outTradeNo, sdf.format(new Date()));
+                            if(voR.getCode() == 200){
+                                WeixinPaymentNotifyVo data = voR.getData();
+                                //P:处理中;S:成功;F:失败;I: 初始(初始状态很罕见,请联系汇付技术人员处理);
+                                String transStat = data.getTransStat();
+                                if("S".equals(transStat)){
+                                    PartnerTransactionsResult transaction = new PartnerTransactionsResult();
+                                    transaction.setOutTradeNo(data.getReqSeqId());
+                                    payBack(transaction, data.getFeeFlag() == 1 ? BigDecimal.ZERO : new BigDecimal(data.getFeeAmount()));
+                                    return;
+                                }
+                                if("P".equals(transStat) || "F".equals(transStat)){
+                                    continue;
+                                }
+                                log.error("支付失败,流水号:{}, 状态码:{}", outTradeNo, transStat);
+                                return;
+                            }else{
+                                log.error("支付查询失败!流水号:{},结果:{}", outTradeNo, voR.getMsg());
+                            }
+                        }
+                    }
+                }).start();
             }
             com.alibaba.fastjson.JSONObject data = r.getData();
             String mainMchId = WxPayConfiguration.getPlatformTyMacId();
@@ -1318,11 +1356,104 @@
             //处理订单回显
             for (AppUserOrderPageVo appUserOrderPageVo : appUserOrderPageVoList) {
                 if(member.getBindingFlag()==0&&appUserOrderPageVo.getOrderFrom()==2){
-                    appUserOrderPageVo.setShopName("全部店铺");
+                    //查询秒杀活动的参与店铺
+                    R<Activity> activity = remoteActivityService.getActivity(appUserOrderPageVo.getActivityId());
+                    if(activity.getCode() != 200){
+                        throw new RuntimeException(activity.getMsg());
+                    }
+                    Activity data = activity.getData();
+                    if(data.getAreaFlag() == 1){
+                        appUserOrderPageVo.setShopNumber(0);
+                        appUserOrderPageVo.setShopName("全部店铺");
+                    }
+                    if(data.getAreaFlag() == 2 && data.getShopFlag() == 1){
+                        String designatedArea = data.getDesignatedArea();
+                        String[] split = designatedArea.split(",");
+                        List<String> list = Arrays.asList(split);
+                        R<List<Shop>> listR = remoteShopService.listShopByCityCode(list);
+                        if(listR.getCode() != 200){
+                            throw new RuntimeException(listR.getMsg());
+                        }
+                        List<Shop> data1 = listR.getData();
+                        appUserOrderPageVo.setShopNumber(1);
+                        appUserOrderPageVo.setShopName(JSON.toJSONString(data1));
+                    }
+                    if(data.getShopFlag() == 2){
+                        String applicableShop = data.getApplicableShop();
+                        String[] split = applicableShop.split(",");
+                        List<String> list = Arrays.asList(split);
+                        R<List<Shop>> listR = remoteShopService.listShopByIds(list);
+                        if(listR.getCode() != 200){
+                            throw new RuntimeException(listR.getMsg());
+                        }
+                        List<Shop> data1 = listR.getData();
+                        appUserOrderPageVo.setShopNumber(1);
+                        appUserOrderPageVo.setShopName(JSON.toJSONString(data1));
+                    }
+                }else if(member.getBindingFlag()==1&&appUserOrderPageVo.getOrderFrom()==2){
+                    Long relationShopId = member.getRelationShopId();
+                    R<Shop> shop = remoteShopService.getShop(relationShopId);
+                    if(shop.getCode() != 200){
+                        throw new RuntimeException(shop.getMsg());
+                    }
+                    Shop data1 = shop.getData();
+                    //查询秒杀活动的参与店铺
+                    R<Activity> activity = remoteActivityService.getActivity(appUserOrderPageVo.getActivityId());
+                    if(activity.getCode() != 200){
+                        throw new RuntimeException(activity.getMsg());
+                    }
+                    Activity data = activity.getData();
+                    if(data.getAreaFlag() == 1){
+                        appUserOrderPageVo.setShopNumber(2);
+                        appUserOrderPageVo.setShopName(data1.getShopName());
+                        appUserOrderPageVo.setShopServicePhone(data1.getShopServicePhone());
+                    }
+                    if(data.getAreaFlag() == 2 && data.getShopFlag() == 1){
+                        String designatedArea = data.getDesignatedArea();
+                        String[] split = designatedArea.split(",");
+                        List<String> list = Arrays.asList(split);
+                        R<List<Shop>> listR = remoteShopService.listShopByCityCode(list);
+                        if(listR.getCode() != 200){
+                            throw new RuntimeException(listR.getMsg());
+                        }
+                        List<Shop> data2 = listR.getData();
+                        List<Long> collect = data2.stream().map(Shop::getShopId).collect(Collectors.toList());
+                        if(collect.contains(relationShopId)){
+                            appUserOrderPageVo.setShopNumber(2);
+                            appUserOrderPageVo.setShopName(data1.getShopName());
+                            appUserOrderPageVo.setShopServicePhone(data1.getShopServicePhone());
+                        }else{
+                            appUserOrderPageVo.setShopNumber(1);
+                            appUserOrderPageVo.setShopName(JSON.toJSONString(data2));
+                        }
+                    }
+                    if(data.getShopFlag() == 2){
+                        String applicableShop = data.getApplicableShop();
+                        String[] split = applicableShop.split(",");
+                        List<String> list = Arrays.asList(split);
+                        R<List<Shop>> listR = remoteShopService.listShopByIds(list);
+                        if(listR.getCode() != 200){
+                            throw new RuntimeException(listR.getMsg());
+                        }
+                        List<Shop> data2 = listR.getData();
+                        List<Long> collect = data2.stream().map(Shop::getShopId).collect(Collectors.toList());
+                        if(collect.contains(relationShopId)){
+                            appUserOrderPageVo.setShopNumber(2);
+                            appUserOrderPageVo.setShopName(data1.getShopName());
+                            appUserOrderPageVo.setShopServicePhone(data1.getShopServicePhone());
+                        }else{
+                            appUserOrderPageVo.setShopNumber(1);
+                            appUserOrderPageVo.setShopName(JSON.toJSONString(data2));
+                        }
+                    }
+
+
+
                 }else{
                     simpleShopVo = shopMap.get(appUserOrderPageVo.getShopId());
                     appUserOrderPageVo.setShopName(simpleShopVo.getShopName());
                     appUserOrderPageVo.setShopServicePhone(simpleShopVo.getShopServicePhone());
+                    appUserOrderPageVo.setShopNumber(2);
                     if (appUserOrderPageVo.getShopId().equals(appUserOrderPageDto.getShopId())) {
                         appUserOrderPageVo.setSameShop(1);
                     } else {
@@ -1520,20 +1651,10 @@
         //判断用户是否绑定
         if(member.getBindingFlag()==1){
             //绑定用户判断核销商户
-            if(order.getOrderFrom()==2&&order.getUnbindingFlag()==1){
-                if (!member.getRelationShopId().equals(shopId)) {
-                    throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
-                }
-                //未绑定时下的活动订单只需要判断店铺是否支持
-                String activityId = order.getActivityId();
-                MerActivityShopDto merActivityShopDto = new MerActivityShopDto();
-                merActivityShopDto.setShopId(shopId);
-                merActivityShopDto.setActivityId(activityId);
-                Boolean judge = remoteActivityService.judgeActivityShop(merActivityShopDto).getData();
-                if(!judge){
-                    throw new ServiceException(AppErrorConstant.SHOP_NO_ACTIVITY);
-                }
-            }else{
+            if (order.getOrderFrom()==2&&!member.getRelationShopId().equals(shopId)) {
+                throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
+            }
+            if(order.getOrderFrom() == 1){
                 //商城订单和绑定后活动订单判断核销商户和订单商户和用户关联商户是否统一
                 if (!order.getShopId().equals(shopId)) {
                     throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
@@ -1671,12 +1792,16 @@
         //获取核销商户
         ShopRelUserVo shopRelUserVo = remoteShopService.getShopByUserId(merVerifyOrderDto.getUserId()).getData();
         Long shopId = shopRelUserVo.getShopId();
+        log.info("当前核销员工【" + shopRelUserVo.getUserName() + "】门店ID:" + shopId);
         //获取订单商品列表
         List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listAppVoByOrderId(orderId);
         //绑定用户判断核销商户
         if(member.getBindingFlag()==1){
             //未绑定的活动订单只需要判断店铺是否支持
-            if(order.getOrderFrom()==2&&order.getUnbindingFlag()==1){
+            if(order.getOrderFrom()==2 && !member.getRelationShopId().equals(shopId)){
+                throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
+            }
+            if(order.getOrderFrom()==2 && member.getRelationShopId().equals(shopId)){
                 String activityId = order.getActivityId();
                 MerActivityShopDto merActivityShopDto = new MerActivityShopDto();
                 merActivityShopDto.setShopId(shopId);
@@ -1684,11 +1809,6 @@
                 Boolean judge = remoteActivityService.judgeActivityShop(merActivityShopDto).getData();
                 if(!judge){
                     throw new ServiceException(AppErrorConstant.SHOP_NO_ACTIVITY);
-                }
-            }else{
-                //绑定用户需直接判断商户一致
-                if (!order.getShopId().equals(shopId)) {
-                    throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
                 }
             }
         }else{
@@ -1897,10 +2017,14 @@
         }
         this.saveOrUpdate(order);
         // 订单金额大于0时进行分账
-        if (order.getOnlinePayMoney().compareTo(BigDecimal.ZERO)>0) {
+        OrderPayment orderPayment = orderPaymentService.getOne(new QueryWrapper<OrderPayment>()
+                .eq("order_id", order.getOrderId()).eq("pay_status", 2)
+                .eq("del_flag", 0));
+        BigDecimal bigDecimal = orderPayment.getPayMoney().subtract(orderPayment.getFeeAmount()).setScale(2, BigDecimal.ROUND_HALF_EVEN);
+        if (bigDecimal.compareTo(BigDecimal.ZERO)>0) {
             // TODO: 2023/10/17  更换分账渠道(汇付天下)
 //            submitProfitSharing(orderId, order.getOrderNo(), order.getShopId(), order.getOnlinePayMoney(),order.getOrderFrom());
-            submitProfitSharing1(orderId, order.getOrderNo(), order.getShopId(), order.getOnlinePayMoney(),order.getOrderFrom());
+            submitProfitSharing1(orderId, order.getOrderNo(), order.getShopId(), bigDecimal, order.getOrderFrom());
         }
         //创建支付记录
         if(merVerifyOrderDto.getRelPayMoney().compareTo(BigDecimal.ZERO)>0){
@@ -2542,10 +2666,6 @@
         OrderGoods orderGoods;
         String orderGoodsId;
         GoodsFile goodsFile;
-        //BigDecimal cycleMoney = new BigDecimal("0.00");
-        //BigDecimal experienceMoney = new BigDecimal("0.00");
-        //BigDecimal serviceMoney = new BigDecimal("0.00");
-        //BigDecimal goodsMoney = new BigDecimal("0.00");
         List<OrderGoods> orderGoodsList = new ArrayList<>();
         ConsumerGoods consumerGoods;
         String consumerGoodsId;
@@ -2686,24 +2806,6 @@
                     consumerGoodsList.add(consumerGoods);
                 }
             }
-
-            //商户变更计算
-            /*switch (orderGoods.getGoodsType()) {
-                case 1:
-                    cycleMoney = cycleMoney.add(orderGoods.getGoodsReceivableMoney());
-                    break;
-                case 2:
-                    serviceMoney = serviceMoney.add(orderGoods.getGoodsReceivableMoney());
-                    break;
-                case 3:
-                    experienceMoney = experienceMoney.add(orderGoods.getGoodsReceivableMoney());
-                    break;
-                case 4:
-                    goodsMoney = goodsMoney.add(orderGoods.getGoodsReceivableMoney());
-                    break;
-                default:
-                    break;
-            }*/
         }
         //创建订单
         Order order = new Order();
@@ -2770,15 +2872,6 @@
         memberTotalChangeDto.setUserId(order.getUserId());
         memberTotalChangeDto.setConsumeTime(nowTime);
         remoteMemberService.changeMemberTotal(memberTotalChangeDto);
-        //更新商户统计
-        /*ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto();
-        shopTotalChangeDto.setShopId(order.getShopId());
-        shopTotalChangeDto.setOrderType(1);
-        shopTotalChangeDto.setCycleMoney(cycleMoney);
-        shopTotalChangeDto.setServiceMoney(serviceMoney);
-        shopTotalChangeDto.setExperienceMoney(experienceMoney);
-        shopTotalChangeDto.setGoodsMoney(goodsMoney);
-        remoteShopService.changeShopTotal(shopTotalChangeDto);*/
         //创建支付记录
         PayRecord payRecord = new PayRecord();
         payRecord.setDelFlag(0);
@@ -2850,7 +2943,7 @@
             // 根据用户ID列表获取用户信息
             MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto();
             mgtBaseBathDto.setIds(userIdSj.toString());
-            List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(mgtBaseBathDto).getData();
+            List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(userIdSj.toString()).getData();
             Map<Long, MgtSimpleMemberVo> userMap = simpleMemberVoList.stream()
                     .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity()));
             // 遍历订单列表,设置用户信息
@@ -3010,13 +3103,14 @@
                     .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity()));
             mgtBaseBathDto = new MgtBaseBathDto();
             mgtBaseBathDto.setIds(userJoinedString);
-            List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(mgtBaseBathDto).getData();
+            List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(userJoinedString).getData();
             Map<Long, MgtSimpleMemberVo> userMap = simpleMemberVoList.stream()
                     .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity()));
             // 遍历列表,设置店铺名称、用户名称和未支付金额
             for (MgtActivityOrderPageVo mgtActivityOrderPageVo : activityOrderPageVoList) {
                 if(mgtActivityOrderPageVo.getShopId()!=null){
-                    mgtActivityOrderPageVo.setShopName(shopMap.get(mgtActivityOrderPageVo.getShopId()).getShopName());
+                    MgtSimpleShopVo mgtSimpleShopVo = shopMap.get(mgtActivityOrderPageVo.getShopId());
+                    mgtActivityOrderPageVo.setShopName(null == mgtSimpleShopVo ? "" : mgtSimpleShopVo.getShopName());
 
                 }
                 if (userMap.get(mgtActivityOrderPageVo.getUserId()) != null) {
@@ -3135,7 +3229,7 @@
                 String userJoinedString = String.join(",", userIdSet.stream().map(Object::toString).collect(Collectors.toList()));
                 MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto();
                 mgtBaseBathDto.setIds(userJoinedString);
-                List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(mgtBaseBathDto).getData();
+                List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(userJoinedString).getData();
                 userMap = simpleMemberVoList.stream()
                         .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity()));
             }
@@ -3186,8 +3280,6 @@
         Order order = this.getById(orderId);
         // 获取会员信息
         Member member = remoteMemberService.getMember(order.getUserId()).getData();
-        // 获取商店信息
-        Shop shop = remoteShopService.getShop(order.getShopId()).getData();
         // 获取订单商品详细信息
         List<MgtOrderGoodsDetailVo> orderGoodsDetailVoList = orderGoodsService.listMgtVoByOrderId(orderId);
         // 设置MgtOrderDetailVo属性
@@ -3217,6 +3309,7 @@
         }
         // 设置订单编号
         mgtOrderDetailVo.setOrderNo(order.getOrderNo());
+        mgtOrderDetailVo.setOutTradeNo(order.getOutTradeNo());
         // 设置订单来源
         switch (order.getOrderFrom()) {
             case 1:
@@ -3247,10 +3340,12 @@
         mgtOrderDetailVo.setCancelTime(order.getCancelTime());
         mgtOrderDetailVo.setOrderRemark(order.getOrderRemark());
         mgtOrderDetailVo.setShopId(order.getShopId());
-        if (shop != null) {
+        if (3 == order.getOrderStatus()) {
+            // 获取商店信息
+            Shop shop = remoteShopService.getShop(order.getShopId()).getData();
             mgtOrderDetailVo.setShopName(shop.getShopName());
         } else {
-            mgtOrderDetailVo.setShopName("商户已被删除");
+            mgtOrderDetailVo.setShopName("");
         }
         mgtOrderDetailVo.setVerifyTime(order.getUseTime());
         //获取支付记录
@@ -3829,14 +3924,52 @@
             List<Long> userIdList = new ArrayList<>();
             if (mgtBasePlatformDto.getUserId() != null) {
                 userIdList.add(mgtBasePlatformDto.getUserId());
-            } else {
-                MgtUserIdByDept mgtUserIdByDept = new MgtUserIdByDept();
-                mgtUserIdByDept.setDeptId(mgtBasePlatformDto.getUserId());
-                mgtUserIdByDept = remoteConfigService.getUserIdByDept(mgtUserIdByDept).getData();
-                userIdList = mgtUserIdByDept.getUserIdList();
+            }
+            else {
+                // 如果当前登陆人的可视权限是仅个人 只选择了部门也只能看自己的数据
+                SysUser sysUser = SecurityUtils.getSysUser();
+                if (sysUser.getDataScope().equals("5")){
+                    userIdList.add(sysUser.getUserId());
+                }else{
+                    MgtUserIdByDept mgtUserIdByDept = new MgtUserIdByDept();
+                    mgtUserIdByDept.setDeptId(mgtBasePlatformDto.getDeptId());
+                    mgtUserIdByDept = remoteConfigService.getUserIdByDept(mgtUserIdByDept).getData();
+                    userIdList = mgtUserIdByDept.getUserIdList();
+                }
             }
             if (!userIdList.isEmpty()) {
                 mgtBasePlatformDto.setUserIdList(userIdList);
+            }
+        }else{
+            // 没有选择筛选部门和员工 获取当前登陆人的可视权限
+            SysUser sysUser = SecurityUtils.getSysUser();
+            // 如果当前登陆人是查看个人数据
+            Long userId1  = null;
+            // 如果当前登陆人权限是查看部门数据
+            List<Long> userList = new ArrayList<>();
+            if (sysUser!=null){
+                String dataScope = sysUser.getDataScope();
+                if (!sysUser.getUserName().equals("admin")){
+                    if (org.springframework.util.StringUtils.hasLength(dataScope)){
+                        switch (dataScope){
+                            case "3":
+                                // 本部门数据 查询当前登陆人属于哪个部门 查询这个部门下所有员工关联的所有店铺
+                                MgtUserIdByDept mgtUserIdByDept = new MgtUserIdByDept();
+                                mgtUserIdByDept.setDeptId(sysUser.getDeptId());
+                                mgtUserIdByDept = remoteConfigService.getUserIdByDept(mgtUserIdByDept).getData();
+                                userList = mgtUserIdByDept.getUserIdList();
+                                mgtBasePlatformDto.setDeptId(sysUser.getDeptId());
+                                mgtBasePlatformDto.setUserIdList(userList);
+                            case "5":
+                                // 仅个人数据 查询当前登陆人关联店铺下的用户
+                                userId1 = sysUser.getUserId();
+                                userList.add(userId1);
+                                mgtBasePlatformDto.setDeptId(sysUser.getDeptId());
+                                mgtBasePlatformDto.setUserIdList(userList);
+                                break;
+                        }
+                    }
+                }
             }
         }
         MgtTotalOrderTotalVo mgtTotalOrderTotalVo = new MgtTotalOrderTotalVo();
@@ -3847,6 +3980,7 @@
         mgtTotalOrderTotalVo.setCycleTotal(0);
         mgtTotalOrderTotalVo.setExperienceTotal(0);
         mgtTotalOrderTotalVo.setServiceTotal(0);
+        mgtTotalOrderTotalVo.setItemTotal(0);
         mgtTotalOrderTotalVo.setOrderMoney(new BigDecimal("0"));
         mgtTotalOrderTotalVo.setOnlineMoney(new BigDecimal("0"));
         mgtTotalOrderTotalVo.setOfflineMoney(new BigDecimal("0"));
@@ -3854,6 +3988,7 @@
         mgtTotalOrderTotalVo.setCycleMoney(new BigDecimal("0"));
         mgtTotalOrderTotalVo.setExperienceMoney(new BigDecimal("0"));
         mgtTotalOrderTotalVo.setServiceMoney(new BigDecimal("0"));
+        mgtTotalOrderTotalVo.setItemMoney(new BigDecimal("0"));
         mgtTotalOrderTotalVo.setOrderTotalKey(new String[0]);
         mgtTotalOrderTotalVo.setOrderTotalValue(new Integer[0]);
         mgtTotalOrderTotalVo.setOrderMoneyValue(new BigDecimal[0]);
@@ -3861,6 +3996,7 @@
         mgtTotalOrderTotalVo.setGoodsTypeMoneyList(Lists.newArrayList());
         mgtTotalOrderTotalVo.setGoodsRankList(Lists.newArrayList());
         mgtTotalOrderTotalVo.setOrderFromRankList(Lists.newArrayList());
+
         List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData();
         if (mgtBasePlatformDto.getUserId() != null || StringUtils.isNotBlank(mgtBasePlatformDto.getShopProvinceCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopCityCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopAreaCode())) {
             if(shopIdList==null||shopIdList.isEmpty()){
@@ -3877,7 +4013,7 @@
         mgtTotalOrderTotalVo.setOrderTotal(totalOrderTotalVo.getOrderTotal());
         mgtTotalOrderTotalVo.setOnlineTotal(totalOrderTotalVo.getOnlineTotal());
         mgtTotalOrderTotalVo.setOfflineTotal(totalOrderTotalVo.getOfflineTotal());
-        mgtTotalOrderTotalVo.setActivityTotal(0);
+        mgtTotalOrderTotalVo.setActivityTotal(totalOrderTotalVo.getActivityTotal());
         mgtTotalOrderTotalVo.setOrderMoney(totalOrderTotalVo.getOrderMoney());
         mgtTotalOrderTotalVo.setOnlineMoney(totalOrderTotalVo.getOnlineMoney());
         mgtTotalOrderTotalVo.setOfflineMoney(totalOrderTotalVo.getOfflineMoney());
@@ -3890,6 +4026,8 @@
         mgtTotalOrderTotalVo.setCycleMoney(BigDecimal.ZERO);
         mgtTotalOrderTotalVo.setServiceTotal(0);
         mgtTotalOrderTotalVo.setServiceMoney(BigDecimal.ZERO);
+        mgtTotalOrderTotalVo.setItemTotal(0);
+        mgtTotalOrderTotalVo.setItemMoney(BigDecimal.ZERO);
         mgtTotalOrderTotalVo.setExperienceTotal(0);
         mgtTotalOrderTotalVo.setExperienceMoney(BigDecimal.ZERO);
         if (MgtMapIntTotalVoGoodsType != null && MgtMapIntTotalVoGoodsType.size() > 0) {
@@ -3926,6 +4064,8 @@
                 } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) {
                     mgtMapIntTotalVo.setMapKey("单品");
                     mgtMapBigTotalVo.setMapKey("单品");
+                    mgtTotalOrderTotalVo.setItemTotal(mgtTotalOrderTotalVo.getItemTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
+                    mgtTotalOrderTotalVo.setItemMoney(mgtTotalOrderTotalVo.getItemMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond()));
                     noGoods = false;
                 }
                 goodsTypeTotalList.add(mgtMapIntTotalVo);
@@ -5012,7 +5152,7 @@
                 String userJoinedString = String.join(",", userIdSet.stream().map(Object::toString).collect(Collectors.toList()));
                 MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto();
                 mgtBaseBathDto.setIds(userJoinedString);
-                List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(mgtBaseBathDto).getData();
+                List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(userJoinedString).getData();
                 userMap = simpleMemberVoList.stream()
                         .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity()));
             }
@@ -5072,6 +5212,9 @@
                     try {
                         redissonLock.lock(30, TimeUnit.SECONDS);
                         Integer surpNum = redisService.getCacheObject(SecurityConstant.ACTIVITY_GOODS + "-" + order.getActivityId() + "-" + orderGoods.getGoodsId());
+                        if(null == surpNum){
+                            surpNum = 0;
+                        }
                         redisService.setCacheObject(SecurityConstant.ACTIVITY_GOODS + "-" + order.getActivityId() + "-" + orderGoods.getGoodsId(), surpNum + orderGoods.getBuyNum());
                     } finally {
                         redissonLock.unlock();
@@ -5122,7 +5265,7 @@
     @Override
     @Transactional
     @GlobalTransactional(rollbackFor = Exception.class)
-    public void payBack(PartnerTransactionsResult transaction) {
+    public void payBack(PartnerTransactionsResult transaction, BigDecimal feeAmount) {
         log.info("订单支付回调---"+transaction.toString());
         // Order order = this.getById(orderId);
         // 更新订单状态 outTradeNo
@@ -5176,12 +5319,8 @@
             goodsTotalChangeDto.setChangeType(1);
             goodsTotalChangeDto.setChangeNum(orderGoods.getBuyNum());
             goodsTotalChangeDto.setMoney(orderGoods.getGoodsReceivableMoney());
-            Integer bugGoodsNum = orderMapper.countUserBuyGoodsNum(order.getUserId(), orderGoods.getGoodsId());
-            if (bugGoodsNum == null || bugGoodsNum < 1) {
-                goodsTotalChangeDto.setPersonNum(1);
-            }else{
-                goodsTotalChangeDto.setPersonNum(0);
-            }
+            Integer bugGoodsNum = orderMapper.countUserBuyGoodsNum(orderGoods.getGoodsId());
+            goodsTotalChangeDto.setPersonNum(bugGoodsNum);
             goodsTotalChangeDtoList.add(goodsTotalChangeDto);
         }
         //更新商品统计
@@ -5256,7 +5395,7 @@
             profitsSharingService.applyProfitSharing(request);*/
         }
         //修改支付记录生成支付记录
-        orderPaymentService.updatePaySuccess(transaction.getOutTradeNo(), transaction.getTransactionId());
+        orderPaymentService.updatePaySuccess(transaction.getOutTradeNo(), feeAmount, transaction.getTransactionId());
         PayRecord payRecord = new PayRecord();
         payRecord.setDelFlag(0);
         payRecord.setOrderId(orderId);
@@ -5337,6 +5476,9 @@
                     try {
                         redissonLock.lock(30, TimeUnit.SECONDS);
                         Integer surpNum = redisService.getCacheObject(SecurityConstant.ACTIVITY_GOODS + "-" + order.getActivityId() + "-" + orderGoods.getGoodsId());
+                        if(null == surpNum){
+                            surpNum = 0;
+                        }
                         redisService.setCacheObject(SecurityConstant.ACTIVITY_GOODS + "-" + order.getActivityId() + "-" + orderGoods.getGoodsId(), surpNum + orderGoods.getBuyNum());
                     } finally {
                         redissonLock.unlock();
@@ -5387,12 +5529,8 @@
                 goodsTotalChangeDto.setChangeType(2);
                 goodsTotalChangeDto.setChangeNum(orderGoods.getBuyNum());
                 goodsTotalChangeDto.setMoney(orderGoods.getGoodsReceivableMoney());
-                Integer bugGoodsNum = orderMapper.countUserBuyGoodsNum(order.getUserId(), orderGoods.getGoodsId());
-                if (bugGoodsNum == null || bugGoodsNum <= orderGoods.getBuyNum()) {
-                    goodsTotalChangeDto.setPersonNum(1);
-                }else{
-                    goodsTotalChangeDto.setPersonNum(0);
-                }
+                Integer bugGoodsNum = orderMapper.countUserBuyGoodsNum(orderGoods.getGoodsId());
+                goodsTotalChangeDto.setPersonNum(bugGoodsNum);
                 goodsTotalChangeDtoList.add(goodsTotalChangeDto);
             }
             remoteGoodsService.changeGoodsTotal(goodsTotalChangeDtoList);
@@ -6074,6 +6212,9 @@
                     try {
                         redissonLock.lock(30, TimeUnit.SECONDS);
                         Integer surpNum = redisService.getCacheObject(SecurityConstant.ACTIVITY_GOODS + "-" + order.getActivityId() + "-" + orderGoods.getGoodsId());
+                        if(null == surpNum){
+                            surpNum = 0;
+                        }
                         redisService.setCacheObject(SecurityConstant.ACTIVITY_GOODS + "-" + order.getActivityId() + "-" + orderGoods.getGoodsId(), surpNum + orderGoods.getBuyNum());
                     } finally {
                         redissonLock.unlock();
@@ -6153,7 +6294,7 @@
             // 获取用户列表
             MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto();
             mgtBaseBathDto.setIds(userIdSj.toString());
-            List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(mgtBaseBathDto).getData();
+            List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(userIdSj.toString()).getData();
             // 将用户列表转换为Map,以便根据用户ID快速查找用户信息
             Map<Long, MgtSimpleMemberVo> userMap = simpleMemberVoList.stream()
                     .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity()));
@@ -6234,4 +6375,22 @@
         ProfitSharingResult profitSharingResult = wxService.getEcommerceService().queryProfitSharing(request);
         return profitSharingResult;
     }
+
+    @Override
+    public List<String> getActivityOrderGoods(String activityId) {
+        List<Order> orders = this.baseMapper.selectList(new QueryWrapper<Order>()
+                .eq("del_flag", 0)
+                .in("order_status", Arrays.asList(1, 2, 3))
+                .eq("activity_id", activityId)
+        );
+        if(orders.size() > 0){
+            List<String> collect = orders.stream().map(Order::getOrderId).collect(Collectors.toList());
+            List<OrderGoods> list = orderGoodsService.list(new QueryWrapper<OrderGoods>()
+                    .eq("del_flag", 0)
+                    .in("order_id", collect)
+            );
+            return list.stream().map(OrderGoods::getGoodsId).collect(Collectors.toList());
+        }
+        return new ArrayList<>();
+    }
 }

--
Gitblit v1.7.1