| | |
| | | // 将set中的shopId转换为逗号分隔的字符串 |
| | | String joinedString = String.join(",", set); |
| | | // 通过remoteShopService获取MgtSimpleShopVoList |
| | | List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(joinedString).getData(); |
| | | MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto(); |
| | | mgtBaseBathDto.setIds(joinedString); |
| | | List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(mgtBaseBathDto).getData(); |
| | | // 将MgtSimpleShopVoList转换为Map<Long, MgtSimpleShopVo>,以便后续根据shopId获取对应的MgtSimpleShopVo |
| | | Map<Long, MgtSimpleShopVo> map = simpleShopVoList.stream() |
| | | .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity())); |
| | |
| | | String shopJoinedString = String.join(",", shopIdSet.stream().map(Object::toString).collect(Collectors.toList())); |
| | | String userJoinedString = String.join(",", userIdSet.stream().map(Object::toString).collect(Collectors.toList())); |
| | | // 从远程服务获取店铺和用户信息 |
| | | List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(shopJoinedString).getData(); |
| | | MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto(); |
| | | mgtBaseBathDto.setIds(shopJoinedString); |
| | | List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(mgtBaseBathDto).getData(); |
| | | Map<Long, MgtSimpleShopVo> shopMap = simpleShopVoList.stream() |
| | | .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity())); |
| | | List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(userJoinedString).getData(); |
| | | mgtBaseBathDto = new MgtBaseBathDto(); |
| | | mgtBaseBathDto.setIds(userJoinedString); |
| | | List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(mgtBaseBathDto).getData(); |
| | | Map<Long, MgtSimpleMemberVo> userMap = simpleMemberVoList.stream() |
| | | .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity())); |
| | | // 遍历列表,设置店铺名称、用户名称和未支付金额 |
| | | for (MgtActivityOrderPageVo mgtActivityOrderPageVo : activityOrderPageVoList) { |
| | | mgtActivityOrderPageVo.setShopName(shopMap.get(mgtActivityOrderPageVo.getShopId()).getShopName()); |
| | | mgtActivityOrderPageVo.setUserName(userMap.get(mgtActivityOrderPageVo.getUserId()).getUserName()); |
| | | if(userMap.get(mgtActivityOrderPageVo.getUserId())!=null){ |
| | | mgtActivityOrderPageVo.setUserName(userMap.get(mgtActivityOrderPageVo.getUserId()).getNickName()); |
| | | } |
| | | BigDecimal unPaidMoney = mgtActivityOrderPageVo.getReceivableMoney().subtract(mgtActivityOrderPageVo.getPayMoney()); |
| | | mgtActivityOrderPageVo.setUnPaidMoney(unPaidMoney == null ? zeroBig : unPaidMoney); |
| | | } |
| | |
| | | shopIdSet.add(mgtShopOrderPageVo.getShopId()); |
| | | userIdSet.add(mgtShopOrderPageVo.getUserId()); |
| | | } |
| | | // 将店铺 ID 和用户 ID 转换为逗号分隔的字符串 |
| | | String shopJoinedString = String.join(",", shopIdSet.stream().map(Object::toString).collect(Collectors.toList())); |
| | | String userJoinedString = String.join(",", userIdSet.stream().map(Object::toString).collect(Collectors.toList())); |
| | | // 从远程服务获取店铺和用户信息 |
| | | List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(shopJoinedString).getData(); |
| | | Map<Long, MgtSimpleShopVo> shopMap = simpleShopVoList.stream() |
| | | .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity())); |
| | | List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(userJoinedString).getData(); |
| | | Map<Long, MgtSimpleMemberVo> userMap = simpleMemberVoList.stream() |
| | | .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity())); |
| | | Map<Long, MgtSimpleShopVo> shopMap = null; |
| | | Map<Long, MgtSimpleMemberVo> userMap = null; |
| | | if(shopIdSet!=null&&!shopIdSet.isEmpty()){ |
| | | String shopJoinedString = String.join(",", shopIdSet.stream().map(Object::toString).collect(Collectors.toList())); |
| | | MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto(); |
| | | mgtBaseBathDto.setIds(shopJoinedString); |
| | | List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(mgtBaseBathDto).getData(); |
| | | shopMap = simpleShopVoList.stream() |
| | | .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity())); |
| | | } |
| | | if(userIdSet!=null&&!userIdSet.isEmpty()){ |
| | | 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(); |
| | | userMap = simpleMemberVoList.stream() |
| | | .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity())); |
| | | } |
| | | // 遍历列表,设置店铺名称、用户名称和未支付金额 |
| | | for (MgtShopOrderPageVo mgtShopOrderPageVo : shopOrderPageVoList) { |
| | | mgtShopOrderPageVo.setShopName(shopMap.get(mgtShopOrderPageVo.getShopId()).getShopName()); |
| | | mgtShopOrderPageVo.setUserName(userMap.get(mgtShopOrderPageVo.getUserId()).getUserName()); |
| | | if(shopMap!=null&&!shopMap.isEmpty()){ |
| | | mgtShopOrderPageVo.setShopName(shopMap.get(mgtShopOrderPageVo.getShopId()).getShopName()); |
| | | } |
| | | if(userMap!=null&&!userMap.isEmpty()){ |
| | | if(userMap.get(mgtShopOrderPageVo.getUserId())!=null){ |
| | | mgtShopOrderPageVo.setUserName(userMap.get(mgtShopOrderPageVo.getUserId()).getNickName()); |
| | | } |
| | | } |
| | | BigDecimal unPaidMoney = mgtShopOrderPageVo.getReceivableMoney().subtract(mgtShopOrderPageVo.getPayMoney()); |
| | | mgtShopOrderPageVo.setUnPaidMoney(unPaidMoney == null ? zeroBig : unPaidMoney); |
| | | } |
| | |
| | | } |
| | | return mgtTotalOrderTotalVo; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @description |
| | | * @author jqs |
| | | * @date 2023/6/20 9:27 |
| | | * @param mgtBaseShopDto |
| | | * @return MgtTotalActivityTotalVo |
| | | */ |
| | | @Override |
| | | public MgtTotalActivityTotalVo getTotalActivityTotal(MgtBaseShopDto mgtBaseShopDto){ |
| | | //获取基础统计 |
| | | MgtTotalActivityTotalVo totalActivityTotalVo = orderMapper.getTotalActivityTotal(mgtBaseShopDto); |
| | | //获取商品分类销售数据 |
| | | List<MgtMapTotalVo> mgtMapTotalVoGoodsType = orderMapper.listTotalActivityTotalGoodsType(mgtBaseShopDto); |
| | | if (mgtMapTotalVoGoodsType != null && mgtMapTotalVoGoodsType.size() > 0) { |
| | | String[] goodsTypeKey = new String[mgtMapTotalVoGoodsType.size()]; |
| | | Integer[] goodsTypeTotalValue = new Integer[mgtMapTotalVoGoodsType.size()]; |
| | | BigDecimal[] goodsTypeMoneyValue = new BigDecimal[mgtMapTotalVoGoodsType.size()]; |
| | | // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 |
| | | for (int i = 0; i < mgtMapTotalVoGoodsType.size(); i++) { |
| | | goodsTypeTotalValue[i] = mgtMapTotalVoGoodsType.get(i).getMapValueFirst(); |
| | | goodsTypeMoneyValue[i] = mgtMapTotalVoGoodsType.get(i).getMapValueSecond(); |
| | | if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("1")){ |
| | | goodsTypeKey[i] = "周期"; |
| | | totalActivityTotalVo.setCycleTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); |
| | | totalActivityTotalVo.setCycleMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); |
| | | totalActivityTotalVo.setCyclePerson(mgtMapTotalVoGoodsType.get(i).getMapValueThird()); |
| | | }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("2")){ |
| | | goodsTypeKey[i] = "服务"; |
| | | totalActivityTotalVo.setServiceTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); |
| | | totalActivityTotalVo.setServiceMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); |
| | | totalActivityTotalVo.setServicePerson(mgtMapTotalVoGoodsType.get(i).getMapValueThird()); |
| | | }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("3")){ |
| | | goodsTypeKey[i] = "体验"; |
| | | totalActivityTotalVo.setExperienceTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); |
| | | totalActivityTotalVo.setExperienceMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); |
| | | totalActivityTotalVo.setExperiencePerson(mgtMapTotalVoGoodsType.get(i).getMapValueThird()); |
| | | }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("4")){ |
| | | goodsTypeKey[i] = "单品"; |
| | | } |
| | | } |
| | | totalActivityTotalVo.setGoodsTypeKey(goodsTypeKey); |
| | | totalActivityTotalVo.setGoodsTypeTotalValue(goodsTypeTotalValue); |
| | | totalActivityTotalVo.setGoodsTypeMoneyValue(goodsTypeMoneyValue); |
| | | } |
| | | //获取订单分布 |
| | | List<MgtMapTotalVo> mgtMapTotalVos = orderMapper.listTotalActivityTotal(mgtBaseShopDto); |
| | | if (mgtMapTotalVos != null && mgtMapTotalVos.size() > 0) { |
| | | String[] orderTotalKey = new String[mgtMapTotalVos.size()]; |
| | | Integer[] orderTotalValue = new Integer[mgtMapTotalVos.size()]; |
| | | BigDecimal[] orderMoneyValue = new BigDecimal[mgtMapTotalVos.size()]; |
| | | for (int i = 0; i < mgtMapTotalVos.size(); i++) { |
| | | orderTotalKey[i] = mgtMapTotalVos.get(i).getMapKey(); |
| | | orderTotalValue[i] = mgtMapTotalVos.get(i).getMapValueFirst(); |
| | | orderMoneyValue[i] = mgtMapTotalVos.get(i).getMapValueSecond(); |
| | | } |
| | | totalActivityTotalVo.setOrderTotalKey(orderTotalKey); |
| | | totalActivityTotalVo.setOrderTotalValue(orderTotalValue); |
| | | totalActivityTotalVo.setOrderMoneyValue(orderMoneyValue); |
| | | } |
| | | return totalActivityTotalVo; |
| | | } |
| | | |
| | | /** |
| | | * @description |
| | | * @author jqs |
| | | * @date 2023/6/20 9:56 |
| | | * @param mgtActivityAgeDto |
| | | * @return MgtTotalActivityTotalVo |
| | | */ |
| | | @Override |
| | | public MgtTotalActivityTotalVo getTotalActivityAgeRank(MgtActivityAgeDto mgtActivityAgeDto){ |
| | | List<Long> userIds = orderMapper.getUserIdAgeRank(mgtActivityAgeDto); |
| | | mgtActivityAgeDto.setUserIds(userIds); |
| | | userIds = remoteMemberService.listUserIdByAge(mgtActivityAgeDto).getData(); |
| | | mgtActivityAgeDto.setUserIds(userIds); |
| | | MgtTotalActivityTotalVo totalActivityTotalVo = orderMapper.getTotalActivityAgeRank(mgtActivityAgeDto); |
| | | return totalActivityTotalVo; |
| | | } |
| | | |
| | | /** |
| | | * @description |
| | | * @author jqs |
| | | * @date 2023/6/20 15:31 |
| | | * @param mgtBaseShopDto |
| | | * @return MgtTotalDataTotalVo |
| | | */ |
| | | @Override |
| | | public MgtTotalDataTotalVo getTotalDataTotal(MgtBaseShopDto mgtBaseShopDto){ |
| | | //获取人数统计 |
| | | MgtTotalDataTotalVo mgtTotalDataTotalVo = orderMapper.getTotalDataTotal(mgtBaseShopDto); |
| | | Integer reorderPerson = orderMapper.getReorderPerson(mgtBaseShopDto); |
| | | mgtTotalDataTotalVo.setReorderPerson(reorderPerson); |
| | | Integer returnedPerson = orderMapper.getReturnedPerson(mgtBaseShopDto); |
| | | mgtTotalDataTotalVo.setReturnedPerson(returnedPerson); |
| | | return mgtTotalDataTotalVo; |
| | | } |
| | | } |