From 30bc5274884e0f6d11580f9d3af9e71d7a320888 Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期四, 24 八月 2023 19:03:10 +0800
Subject: [PATCH] bug

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java |  263 ++++++++++++++++++++++++++++++---------------------
 1 files changed, 154 insertions(+), 109 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 9ca1fb0..a77412b 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
@@ -2926,8 +2926,9 @@
     @Override
     public MgtTotalDataTotalVo getTotalDataTotal(MgtBaseShopDto mgtBaseShopDto) {
 
-        //获取人数统计
+        //营业额
         BigDecimal salesTotal = orderMapper.shopSalesTotal(mgtBaseShopDto);
+        MgtTotalDataTotalVo mgtTotalDataTotalVo = orderMapper.getTotalDataTotal(mgtBaseShopDto);
         // 获取当月时间
         LocalDate currentDate = LocalDate.now();
         LocalDate firstDayOfMonth = currentDate.withDayOfMonth(1);
@@ -2937,13 +2938,18 @@
         String lastDayOfMonthStr = lastDayOfMonth.format(formatter);
         mgtBaseShopDto.setStartDate(firstDayOfMonthStr);
         mgtBaseShopDto.setEndDate(lastDayOfMonthStr);
-        //
-        MgtTotalDataTotalVo mgtTotalDataTotalVo = orderMapper.getTotalDataTotal(mgtBaseShopDto);
-
-        mgtTotalDataTotalVo.setSalesTotal(salesTotal);
+        //总进店人数 体验人数 体验开单人数 没体验开单人数
+        MgtTotalDataTotalVo mgtTotalDataMemberTotalVo = orderMapper.getTotalDataMemberTotal(mgtBaseShopDto);
+        mgtTotalDataTotalVo.setOnlyExperiencePerson(mgtTotalDataMemberTotalVo.getOnlyExperiencePerson());
+        mgtTotalDataTotalVo.setExperienceCyclePerson(mgtTotalDataMemberTotalVo.getExperienceCyclePerson());
+        mgtTotalDataTotalVo.setOnlyCyclePerson(mgtTotalDataMemberTotalVo.getOnlyCyclePerson());
+        mgtTotalDataTotalVo.setOrderPerson(mgtTotalDataMemberTotalVo.getOrderPerson());
+        //续单人数
         Integer reorderPerson = orderMapper.getReorderPerson(mgtBaseShopDto);
-        mgtTotalDataTotalVo.setReorderPerson(reorderPerson);
+        //回头客
         Integer returnedPerson = orderMapper.getReturnedPerson(mgtBaseShopDto);
+        mgtTotalDataTotalVo.setSalesTotal(salesTotal);
+        mgtTotalDataTotalVo.setReorderPerson(reorderPerson);
         mgtTotalDataTotalVo.setReturnedPerson(returnedPerson);
         return mgtTotalDataTotalVo;
     }
@@ -4158,11 +4164,14 @@
      */
     @Override
     public StaffActivityOrderTotalVo getStaffActivityOrderTotal(StaffTotalDto staffTotalDto) {
-        StaffActivityOrderTotalVo staffActivityOrderTotalVo = orderMapper.getStaffActivityOrderTotal(staffTotalDto);
-        StaffActivityOrderTotalVo staffActivityOrderGoodsTotalVo = orderMapper.getStaffActivityOrderGoodsTotal(staffTotalDto);
-        staffActivityOrderTotalVo.setCycleTotal(staffActivityOrderGoodsTotalVo.getCycleTotal());
-        staffActivityOrderTotalVo.setServiceTotal(staffActivityOrderGoodsTotalVo.getServiceTotal());
-        staffActivityOrderTotalVo.setExperienceTotal(staffActivityOrderGoodsTotalVo.getExperienceTotal());
+        StaffActivityOrderTotalVo staffActivityOrderTotalVo = new StaffActivityOrderTotalVo();
+        if(staffTotalDto.getActivityFrom()==1){
+            staffActivityOrderTotalVo = orderMapper.getStaffActivityOrderTotal(staffTotalDto);
+            StaffActivityOrderTotalVo staffActivityOrderGoodsTotalVo = orderMapper.getStaffActivityOrderGoodsTotal(staffTotalDto);
+            staffActivityOrderTotalVo.setCycleTotal(staffActivityOrderGoodsTotalVo.getCycleTotal());
+            staffActivityOrderTotalVo.setServiceTotal(staffActivityOrderGoodsTotalVo.getServiceTotal());
+            staffActivityOrderTotalVo.setExperienceTotal(staffActivityOrderGoodsTotalVo.getExperienceTotal());
+        }
         return staffActivityOrderTotalVo;
     }
 
@@ -4175,7 +4184,10 @@
      */
     @Override
     public StaffActivityTotalVo getStaffActivityTotal(StaffTotalDto staffTotalDto) {
-        StaffActivityTotalVo staffActivityTotalVo = orderMapper.getStaffActivityTotal(staffTotalDto);
+        StaffActivityTotalVo staffActivityTotalVo = new StaffActivityTotalVo();
+        if(staffTotalDto.getActivityFrom()==1){
+            staffActivityTotalVo = orderMapper.getStaffActivityTotal(staffTotalDto);
+        }
         return staffActivityTotalVo;
     }
 
@@ -4241,19 +4253,21 @@
             orderDistributionTotalVo.setOrderTotalValue(orderTotalValue);
             orderDistributionTotalVo.setOrderMoneyValue(orderMoneyValue);
         }*/
-        List<MgtMapTotalPlusVo> mgtMapTotalPlusVoList = orderMapper.listStaffActivityOrderDistributionTotal(staffTotalDto);
-        if (mgtMapTotalPlusVoList != null && !mgtMapTotalPlusVoList.isEmpty()) {
-            String[] orderTotalKey = new String[mgtMapTotalPlusVoList.size()];
-            Integer[] orderTotalValue = new Integer[mgtMapTotalPlusVoList.size()];
-            BigDecimal[] orderMoneyValue = new BigDecimal[mgtMapTotalPlusVoList.size()];
-            MgtMapTotalPlusVo mgtMapTotalPlusVo;
-            for (int i = 0; i < mgtMapTotalPlusVoList.size(); i++) {
-                mgtMapTotalPlusVo = mgtMapTotalPlusVoList.get(i);
-                orderTotalKey[i] = mgtMapTotalPlusVo.getMapKey();
-                orderTotalValue[i] = mgtMapTotalPlusVo.getMapValueFirst();
-                orderMoneyValue[i] = mgtMapTotalPlusVo.getMapValueSecond();
+        if(staffTotalDto.getActivityFrom()==1){
+            List<MgtMapTotalPlusVo> mgtMapTotalPlusVoList = orderMapper.listStaffActivityOrderDistributionTotal(staffTotalDto);
+            if (mgtMapTotalPlusVoList != null && !mgtMapTotalPlusVoList.isEmpty()) {
+                String[] orderTotalKey = new String[mgtMapTotalPlusVoList.size()];
+                Integer[] orderTotalValue = new Integer[mgtMapTotalPlusVoList.size()];
+                BigDecimal[] orderMoneyValue = new BigDecimal[mgtMapTotalPlusVoList.size()];
+                MgtMapTotalPlusVo mgtMapTotalPlusVo;
+                for (int i = 0; i < mgtMapTotalPlusVoList.size(); i++) {
+                    mgtMapTotalPlusVo = mgtMapTotalPlusVoList.get(i);
+                    orderTotalKey[i] = mgtMapTotalPlusVo.getMapKey();
+                    orderTotalValue[i] = mgtMapTotalPlusVo.getMapValueFirst();
+                    orderMoneyValue[i] = mgtMapTotalPlusVo.getMapValueSecond();
+                }
+                orderDistributionTotalVo = fillOrderTotalKeyAndValuesToRecentFiveDays(orderTotalKey,orderTotalValue,orderMoneyValue);
             }
-            orderDistributionTotalVo = fillOrderTotalKeyAndValuesToRecentFiveDays(orderTotalKey,orderTotalValue,orderMoneyValue);
         }
         // 返回订单分布总数对象
         return orderDistributionTotalVo;
@@ -4321,37 +4335,39 @@
     @Override
     public MerOrderTypeTotalVo getStaffOrderTypeTotal(StaffTotalDto staffTotalDto) {
         MerOrderTypeTotalVo orderTypeTotalVo = new MerOrderTypeTotalVo();
-        //获取商品分类销售数据
-        List<MgtMapTotalPlusVo> MgtMapIntTotalVoGoodsType = orderMapper.listStaffOrderTotalGoodsType(staffTotalDto);
-        List<MgtMapIntTotalVo> goodsTypeTotalList = new ArrayList<>();
-        List<MgtMapBigTotalVo> goodsTypeMoneyList = new ArrayList<>();
-        if (MgtMapIntTotalVoGoodsType != null && MgtMapIntTotalVoGoodsType.size() > 0) {
-            MgtMapIntTotalVo MgtMapIntTotalVo;
-            MgtMapBigTotalVo mgtMapBigTotalVo;
-            // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
-            for (int i = 0; i < MgtMapIntTotalVoGoodsType.size(); i++) {
-                MgtMapIntTotalVo = new MgtMapIntTotalVo();
-                mgtMapBigTotalVo = new MgtMapBigTotalVo();
-                MgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
-                mgtMapBigTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond());
-                if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("1")) {
-                    MgtMapIntTotalVo.setMapKey("周期");
-                    mgtMapBigTotalVo.setMapKey("周期");
-                } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) {
-                    MgtMapIntTotalVo.setMapKey("服务");
-                    mgtMapBigTotalVo.setMapKey("服务");
-                } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) {
-                    MgtMapIntTotalVo.setMapKey("体验");
-                    mgtMapBigTotalVo.setMapKey("体验");
-                } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) {
-                    MgtMapIntTotalVo.setMapKey("单品");
-                    mgtMapBigTotalVo.setMapKey("单品");
+        if(staffTotalDto.getActivityFrom()==1){
+            //获取商品分类销售数据
+            List<MgtMapTotalPlusVo> MgtMapIntTotalVoGoodsType = orderMapper.listStaffOrderTotalGoodsType(staffTotalDto);
+            List<MgtMapIntTotalVo> goodsTypeTotalList = new ArrayList<>();
+            List<MgtMapBigTotalVo> goodsTypeMoneyList = new ArrayList<>();
+            if (MgtMapIntTotalVoGoodsType != null && MgtMapIntTotalVoGoodsType.size() > 0) {
+                MgtMapIntTotalVo MgtMapIntTotalVo;
+                MgtMapBigTotalVo mgtMapBigTotalVo;
+                // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
+                for (int i = 0; i < MgtMapIntTotalVoGoodsType.size(); i++) {
+                    MgtMapIntTotalVo = new MgtMapIntTotalVo();
+                    mgtMapBigTotalVo = new MgtMapBigTotalVo();
+                    MgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
+                    mgtMapBigTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond());
+                    if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("1")) {
+                        MgtMapIntTotalVo.setMapKey("周期");
+                        mgtMapBigTotalVo.setMapKey("周期");
+                    } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) {
+                        MgtMapIntTotalVo.setMapKey("服务");
+                        mgtMapBigTotalVo.setMapKey("服务");
+                    } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) {
+                        MgtMapIntTotalVo.setMapKey("体验");
+                        mgtMapBigTotalVo.setMapKey("体验");
+                    } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) {
+                        MgtMapIntTotalVo.setMapKey("单品");
+                        mgtMapBigTotalVo.setMapKey("单品");
+                    }
+                    goodsTypeTotalList.add(MgtMapIntTotalVo);
+                    goodsTypeMoneyList.add(mgtMapBigTotalVo);
                 }
-                goodsTypeTotalList.add(MgtMapIntTotalVo);
-                goodsTypeMoneyList.add(mgtMapBigTotalVo);
+                orderTypeTotalVo.setGoodsTypeTotalList(goodsTypeTotalList);
+                orderTypeTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList);
             }
-            orderTypeTotalVo.setGoodsTypeTotalList(goodsTypeTotalList);
-            orderTypeTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList);
         }
         return orderTypeTotalVo;
     }
@@ -4367,32 +4383,34 @@
     public StaffActivityDateMemberTotalVo getStaffActivityGetMemberTotal(StaffTotalDto staffTotalDto) {
         // 创建返回对象
         StaffActivityDateMemberTotalVo staffActivityDateMemberTotalVo = new StaffActivityDateMemberTotalVo();
-        // 查询数据库获取数据
-        List<MgtMapIntTotalVo> mgtMapIntTotalVoList = orderMapper.getStaffActivityGetMemberTotal(staffTotalDto);
-        // 将查询结果转为Map
-        Map<String, Integer> map = new HashMap<>();
-        if (mgtMapIntTotalVoList != null && !mgtMapIntTotalVoList.isEmpty()) {
-            map = mgtMapIntTotalVoList.stream()
-                    .collect(Collectors.toMap(MgtMapIntTotalVo::getMapKey, MgtMapIntTotalVo::getMapValue));
+        if(staffTotalDto.getActivityFrom()==1){
+            // 查询数据库获取数据
+            List<MgtMapIntTotalVo> mgtMapIntTotalVoList = orderMapper.getStaffActivityGetMemberTotal(staffTotalDto);
+            // 将查询结果转为Map
+            Map<String, Integer> map = new HashMap<>();
+            if (mgtMapIntTotalVoList != null && !mgtMapIntTotalVoList.isEmpty()) {
+                map = mgtMapIntTotalVoList.stream()
+                        .collect(Collectors.toMap(MgtMapIntTotalVo::getMapKey, MgtMapIntTotalVo::getMapValue));
+            }
+            // 获取日期范围
+            List<String> dateList = getDateRange(staffTotalDto.getStartDate(), staffTotalDto.getEndDate());
+            int size = dateList.size();
+            // 创建日期和成员总数的数组
+            String[] dateMemberTotalKey = new String[size];
+            Integer[] dateMemberTotalValue = new Integer[size];
+            // 遍历日期列表,设置日期和成员总数的数组
+            String str;
+            Integer value;
+            for (int i = 0; i < size; i++) {
+                str = dateList.get(i);
+                dateMemberTotalKey[i] = str;
+                value = map.get(str);
+                dateMemberTotalValue[i] = (value != null) ? value : 0;
+            }
+            // 设置返回对象的日期和成员总数数组
+            staffActivityDateMemberTotalVo.setDateMemberTotalKey(dateMemberTotalKey);
+            staffActivityDateMemberTotalVo.setDateMemberTotalValue(dateMemberTotalValue);
         }
-        // 获取日期范围
-        List<String> dateList = getDateRange(staffTotalDto.getStartDate(), staffTotalDto.getEndDate());
-        int size = dateList.size();
-        // 创建日期和成员总数的数组
-        String[] dateMemberTotalKey = new String[size];
-        Integer[] dateMemberTotalValue = new Integer[size];
-        // 遍历日期列表,设置日期和成员总数的数组
-        String str;
-        Integer value;
-        for (int i = 0; i < size; i++) {
-            str = dateList.get(i);
-            dateMemberTotalKey[i] = str;
-            value = map.get(str);
-            dateMemberTotalValue[i] = (value != null) ? value : 0;
-        }
-        // 设置返回对象的日期和成员总数数组
-        staffActivityDateMemberTotalVo.setDateMemberTotalKey(dateMemberTotalKey);
-        staffActivityDateMemberTotalVo.setDateMemberTotalValue(dateMemberTotalValue);
         // 返回结果对象
         return staffActivityDateMemberTotalVo;
     }
@@ -4406,40 +4424,42 @@
      */
     @Override
     public StaffActivityDateMemberTotalVo getStaffActivityMemberTotal(StaffTotalDto staffTotalDto) {
-        MerTotalDto merTotalDto = new MerTotalDto();
-        merTotalDto.setAgeType(staffTotalDto.getAgeType());
-        if(staffTotalDto.getAgeType()!=null){
-            List<Long> userIdList = remoteMemberService.listUserIdByAgeType(staffTotalDto.getAgeType()).getData();
-            staffTotalDto.setUserIdList(userIdList);
-        }
         // 创建返回对象
         StaffActivityDateMemberTotalVo staffActivityDateMemberTotalVo = new StaffActivityDateMemberTotalVo();
-        // 查询数据库获取数据
-        List<MgtMapIntTotalVo> mgtMapIntTotalVoList = orderMapper.getStaffActivityMemberTotal(staffTotalDto);
-        // 将查询结果转为Map
-        Map<String, Integer> map = new HashMap<>();
-        if (mgtMapIntTotalVoList != null && !mgtMapIntTotalVoList.isEmpty()) {
-            map = mgtMapIntTotalVoList.stream()
-                    .collect(Collectors.toMap(MgtMapIntTotalVo::getMapKey, MgtMapIntTotalVo::getMapValue));
+        if(staffTotalDto.getActivityFrom()==1){
+            MerTotalDto merTotalDto = new MerTotalDto();
+            merTotalDto.setAgeType(staffTotalDto.getAgeType());
+            if(staffTotalDto.getAgeType()!=null){
+                List<Long> userIdList = remoteMemberService.listUserIdByAgeType(staffTotalDto.getAgeType()).getData();
+                staffTotalDto.setUserIdList(userIdList);
+            }
+            // 查询数据库获取数据
+            List<MgtMapIntTotalVo> mgtMapIntTotalVoList = orderMapper.getStaffActivityMemberTotal(staffTotalDto);
+            // 将查询结果转为Map
+            Map<String, Integer> map = new HashMap<>();
+            if (mgtMapIntTotalVoList != null && !mgtMapIntTotalVoList.isEmpty()) {
+                map = mgtMapIntTotalVoList.stream()
+                        .collect(Collectors.toMap(MgtMapIntTotalVo::getMapKey, MgtMapIntTotalVo::getMapValue));
+            }
+            // 获取日期范围
+            List<String> dateList = getDateRange(staffTotalDto.getStartDate(), staffTotalDto.getEndDate());
+            int size = dateList.size();
+            // 创建日期和成员总数的数组
+            String[] dateMemberTotalKey = new String[size];
+            Integer[] dateMemberTotalValue = new Integer[size];
+            // 遍历日期列表,设置日期和成员总数的数组
+            String str;
+            Integer value;
+            for (int i = 0; i < size; i++) {
+                str = dateList.get(i);
+                dateMemberTotalKey[i] = str;
+                value = map.get(str);
+                dateMemberTotalValue[i] = (value != null) ? value : 0;
+            }
+            // 设置返回对象的日期和成员总数数组
+            staffActivityDateMemberTotalVo.setDateMemberTotalKey(dateMemberTotalKey);
+            staffActivityDateMemberTotalVo.setDateMemberTotalValue(dateMemberTotalValue);
         }
-        // 获取日期范围
-        List<String> dateList = getDateRange(staffTotalDto.getStartDate(), staffTotalDto.getEndDate());
-        int size = dateList.size();
-        // 创建日期和成员总数的数组
-        String[] dateMemberTotalKey = new String[size];
-        Integer[] dateMemberTotalValue = new Integer[size];
-        // 遍历日期列表,设置日期和成员总数的数组
-        String str;
-        Integer value;
-        for (int i = 0; i < size; i++) {
-            str = dateList.get(i);
-            dateMemberTotalKey[i] = str;
-            value = map.get(str);
-            dateMemberTotalValue[i] = (value != null) ? value : 0;
-        }
-        // 设置返回对象的日期和成员总数数组
-        staffActivityDateMemberTotalVo.setDateMemberTotalKey(dateMemberTotalKey);
-        staffActivityDateMemberTotalVo.setDateMemberTotalValue(dateMemberTotalValue);
         // 返回结果对象
         return staffActivityDateMemberTotalVo;
     }
@@ -4646,4 +4666,29 @@
         }
         return merOrderPageVoList;
     }
+
+    /**
+     * @description  获取销售排行
+     * @author  jqs
+     * @date    2023/8/24 18:00
+     * @param shopIdList
+     * @return  List<MgtMapIntTotalVo>
+     */
+    @Override
+    public List<MgtMapBigTotalVo> shopSalesRank(List<Long> shopIdList){
+        return orderMapper.shopSalesRank(shopIdList);
+    }
+
+    /**
+     * @description  获取商户服务统计
+     * @author  jqs
+     * @date    2023/8/24 18:28
+     * @param shopId
+     * @return  MerHomeShopTotalVo
+     */
+    @Override
+    public MerHomeShopTotalVo getShopServiceTotal(Long shopId){
+        MerHomeShopTotalVo serviceTotalVo = orderMapper.getMerHomeShopServiceTotalVo(shopId);
+        return serviceTotalVo;
+    }
 }

--
Gitblit v1.7.1