| | |
| | | @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); |
| | |
| | | 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; |
| | | } |
| | |
| | | */ |
| | | @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; |
| | | } |
| | | |
| | |
| | | */ |
| | | @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; |
| | | } |
| | | |
| | |
| | | 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; |
| | |
| | | @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; |
| | | } |
| | |
| | | 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; |
| | | } |
| | |
| | | */ |
| | | @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; |
| | | } |
| | |
| | | } |
| | | 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; |
| | | } |
| | | } |