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