| | |
| | | import com.ruoyi.order.service.order.ConsumerGoodsService; |
| | | import com.ruoyi.order.service.order.OrderGoodsService; |
| | | import com.ruoyi.common.security.utils.CodeFactoryUtil; |
| | | import com.ruoyi.order.service.order.UserServiceRecordService; |
| | | import com.ruoyi.system.api.domain.dto.*; |
| | | import com.ruoyi.system.api.domain.vo.*; |
| | | import com.ruoyi.system.api.domain.vo.MgtMapTotalVo; |
| | | import com.ruoyi.system.api.service.*; |
| | | import com.ruoyi.system.api.constant.AppErrorConstant; |
| | | import com.ruoyi.system.api.domain.poji.goods.Goods; |
| | |
| | | @Resource |
| | | private RemoteShoppingCartService remoteShoppingCartService; |
| | | |
| | | |
| | | @Resource |
| | | private RemoteConfigService remoteConfigService; |
| | | |
| | | @Resource |
| | | private UserServiceRecordService userServiceRecordService; |
| | | |
| | | |
| | | |
| | | /** |
| | |
| | | String goodsId; |
| | | Integer buyNum; |
| | | BigDecimal buyNumBig; |
| | | Long memberCouponId; |
| | | String memberCouponId; |
| | | Goods goods; |
| | | BigDecimal goodsPrice; |
| | | BigDecimal goodsTotalPrice; |
| | | BigDecimal goodsRealPrice; |
| | | List<AppMemberCouponVo> appMemberCouponVoList = remoteMemberService.listVoMemberCouponByUserId(userId).getData(); |
| | | List<AppMemberCouponVo> appGoodsMemberCouponVoList; |
| | | Map<Long, AppMemberCouponVo> appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity())); |
| | | Map<String, AppMemberCouponVo> appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity())); |
| | | AppMemberCouponVo appMemberCouponVo; |
| | | Integer couponType; |
| | | BigDecimal moneyThreshold; |
| | |
| | | BigDecimal buyNumBig; |
| | | Integer serviceNum; |
| | | Integer goodsNum = 0; |
| | | Long memberCouponId; |
| | | String memberCouponId; |
| | | Goods goods; |
| | | BigDecimal goodsPrice; |
| | | BigDecimal goodsTotalPrice; |
| | | BigDecimal goodsRealPrice; |
| | | List<AppMemberCouponVo> appMemberCouponVoList = remoteMemberService.listVoMemberCouponByUserId(userId).getData(); |
| | | Map<Long, AppMemberCouponVo> appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity())); |
| | | Map<String, AppMemberCouponVo> appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity())); |
| | | AppMemberCouponVo appMemberCouponVo; |
| | | Integer couponType; |
| | | BigDecimal moneyThreshold; |
| | |
| | | @Override |
| | | public MerHomeShopTotalVo getMerHomeTotal(MerHomeShopTotalVo merHomeShopTotalVo) { |
| | | Long shopId = merHomeShopTotalVo.getShopId(); |
| | | Integer todayShop = 0; |
| | | Integer unHandleOrder = 0; |
| | | BigDecimal shopTurnover = new BigDecimal("0.00"); |
| | | Integer cycleSurp = 0; |
| | | Integer explorationSurp = 0; |
| | | Integer todayShop = userServiceRecordService.countShopServicePerson(shopId); |
| | | merHomeShopTotalVo.setTodayShop(todayShop); |
| | | merHomeShopTotalVo.setUnHandleOrder(unHandleOrder); |
| | | merHomeShopTotalVo.setShopTurnover(shopTurnover); |
| | | merHomeShopTotalVo.setCycleSurp(cycleSurp); |
| | | merHomeShopTotalVo.setExplorationSurp(explorationSurp); |
| | | merHomeShopTotalVo = orderMapper.getMerHomeShopTotalVo(shopId); |
| | | return merHomeShopTotalVo; |
| | | } |
| | | |
| | |
| | | BigDecimal buyNumBig; |
| | | Integer serviceNum; |
| | | Integer goodsNum = 0; |
| | | Long memberCouponId; |
| | | String memberCouponId; |
| | | Goods goods; |
| | | BigDecimal goodsPrice; |
| | | BigDecimal goodsTotalPrice; |
| | |
| | | Long shopId = merNewOrderDto.getShopId(); |
| | | Shop shop = remoteShopService.getShop(shopId).getData(); |
| | | List<AppMemberCouponVo> appMemberCouponVoList = remoteMemberService.listVoMemberCouponByUserId(userId).getData(); |
| | | Map<Long, AppMemberCouponVo> appMemberCouponVoMap = new HashMap<>(); |
| | | Map<String, AppMemberCouponVo> appMemberCouponVoMap = new HashMap<>(); |
| | | if (null != appMemberCouponVoList) { |
| | | appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity())); |
| | | } |
| | |
| | | // 将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); |
| | | } |
| | |
| | | MgtBulletinBoardVo mgtBulletinBoardVo = orderMapper.boardOrderTotal(); |
| | | return mgtBulletinBoardVo; |
| | | } |
| | | |
| | | /** |
| | | * @description getTotalOrderTotal |
| | | * @param mgtBaseShopDto |
| | | * @return MgtTotalOrderTotalVo |
| | | * @author jqs34 |
| | | * @date 2023/6/19 22:23 |
| | | */ |
| | | @Override |
| | | public MgtTotalOrderTotalVo getTotalOrderTotal(MgtBaseShopDto mgtBaseShopDto){ |
| | | MgtTotalOrderTotalVo mgtTotalOrderTotalVo = orderMapper.getTotalOrderTotalOrderFrom(mgtBaseShopDto); |
| | | //MgtTotalOrderTotalVo mgtTotalOrderTotalVoGoodsType = orderMapper.getTotalOrderTotalGoodsType(mgtBaseShopDto); |
| | | List<MgtMapTotalPlusVo> mgtMapTotalVos = orderMapper.listTotalOrderTotal(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(); |
| | | } |
| | | mgtTotalOrderTotalVo.setOrderTotalKey(orderTotalKey); |
| | | mgtTotalOrderTotalVo.setOrderTotalValue(orderTotalValue); |
| | | mgtTotalOrderTotalVo.setOrderMoneyValue(orderMoneyValue); |
| | | } |
| | | //获取商品分类销售数据 |
| | | List<MgtMapTotalPlusVo> mgtMapTotalVoGoodsType = orderMapper.listTotalOrderTotalGoodsType(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] = "周期"; |
| | | mgtTotalOrderTotalVo.setCycleTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); |
| | | mgtTotalOrderTotalVo.setCycleMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); |
| | | }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("2")){ |
| | | goodsTypeKey[i] = "服务"; |
| | | mgtTotalOrderTotalVo.setServiceTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); |
| | | mgtTotalOrderTotalVo.setServiceMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); |
| | | }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("3")){ |
| | | goodsTypeKey[i] = "体验"; |
| | | mgtTotalOrderTotalVo.setExperienceTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); |
| | | mgtTotalOrderTotalVo.setExperienceMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); |
| | | }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("4")){ |
| | | goodsTypeKey[i] = "单品"; |
| | | } |
| | | } |
| | | mgtTotalOrderTotalVo.setGoodsTypeKey(goodsTypeKey); |
| | | mgtTotalOrderTotalVo.setGoodsTypeTotalValue(goodsTypeTotalValue); |
| | | mgtTotalOrderTotalVo.setGoodsTypeMoneyValue(goodsTypeMoneyValue); |
| | | } |
| | | //获取商品销售排名 |
| | | List<MgtMapTotalPlusVo> goodsRankList = orderMapper.listTotalOrderTotalGoodsRank(mgtBaseShopDto); |
| | | if (goodsRankList != null && goodsRankList.size() > 0) { |
| | | String[] goodsRankKey = new String[goodsRankList.size()]; |
| | | BigDecimal[] goodsRankValue = new BigDecimal[goodsRankList.size()]; |
| | | // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 |
| | | for (int i = 0; i < goodsRankList.size(); i++) { |
| | | goodsRankKey[i] = goodsRankList.get(i).getMapKey(); |
| | | goodsRankValue[i] = goodsRankList.get(i).getMapValueSecond(); |
| | | } |
| | | mgtTotalOrderTotalVo.setGoodsRankKey(goodsRankKey); |
| | | mgtTotalOrderTotalVo.setGoodsRankValue(goodsRankValue); |
| | | } |
| | | //获取来源销售排名 |
| | | List<MgtMapTotalPlusVo> orderFromList = orderMapper.listTotalOrderTotalOrderFrom(mgtBaseShopDto); |
| | | if (orderFromList != null && orderFromList.size() > 0) { |
| | | String[] orderFromKey = new String[orderFromList.size()]; |
| | | BigDecimal[] orderFromValue = new BigDecimal[orderFromList.size()]; |
| | | // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 |
| | | for (int i = 0; i < orderFromList.size(); i++) { |
| | | orderFromKey[i] = orderFromList.get(i).getMapKey(); |
| | | orderFromValue[i] = orderFromList.get(i).getMapValueSecond(); |
| | | } |
| | | mgtTotalOrderTotalVo.setOrderFromRankKey(orderFromKey); |
| | | mgtTotalOrderTotalVo.setOrderFromRankValue(orderFromValue); |
| | | } |
| | | 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<MgtMapTotalPlusVo> 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<MgtMapTotalPlusVo> 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; |
| | | } |
| | | |
| | | /** |
| | | * @description |
| | | * @author jqs |
| | | * @date 2023/6/21 15:26 |
| | | * @param mgtBasePlatformDto |
| | | * @return List<MgtMapTotalVo> |
| | | */ |
| | | @Override |
| | | public List<MgtMapTotalVo> listMemberGoodsRank(MgtBasePlatformDto mgtBasePlatformDto){ |
| | | return orderMapper.listMemberGoodsRank(mgtBasePlatformDto); |
| | | } |
| | | |
| | | /** |
| | | * @description 获取平台商户数据统计 |
| | | * @param mgtBasePlatformDto |
| | | * @return List<MgtTotalDataTotalVo> |
| | | * @author jqs34 |
| | | * @date 2023/6/23 14:01 |
| | | */ |
| | | @Override |
| | | public List<MgtTotalDataTotalVo> getPlTotalDataTotal(MgtBasePlatformDto mgtBasePlatformDto){ |
| | | //获取需要关联的用户id集合 |
| | | if (mgtBasePlatformDto.getDeptId() != null) { |
| | | 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(); |
| | | } |
| | | if (!userIdList.isEmpty()) { |
| | | mgtBasePlatformDto.setUserIdList(userIdList); |
| | | } |
| | | } |
| | | List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData(); |
| | | List<MgtTotalDataTotalVo> mgtTotalDataTotalVoList = new ArrayList<>(); |
| | | MgtBaseShopDto mgtBaseShopDto; |
| | | MgtTotalDataTotalVo mgtTotalDataTotalVo; |
| | | if(shopIdList!=null&&!shopIdList.isEmpty()){ |
| | | for(Long shopId : shopIdList){ |
| | | mgtBaseShopDto = new MgtBaseShopDto(); |
| | | mgtBaseShopDto.setStartDate(mgtBasePlatformDto.getStartDate()); |
| | | mgtBaseShopDto.setEndDate(mgtBasePlatformDto.getEndDate()); |
| | | mgtBaseShopDto.setShopId(shopId); |
| | | mgtTotalDataTotalVo = this.getTotalDataTotal(mgtBaseShopDto); |
| | | mgtTotalDataTotalVoList.add(mgtTotalDataTotalVo); |
| | | } |
| | | } |
| | | return mgtTotalDataTotalVoList; |
| | | } |
| | | |
| | | /** |
| | | * @description 获取平台商户订单统计 |
| | | * @param mgtBasePlatformDto |
| | | * @return MgtTotalOrderTotalVo |
| | | * @author jqs34 |
| | | * @date 2023/6/19 22:23 |
| | | */ |
| | | @Override |
| | | public MgtTotalOrderTotalVo getPlTotalOrderTotal(MgtBasePlatformDto mgtBasePlatformDto){ |
| | | //获取需要关联的用户id集合 |
| | | if (mgtBasePlatformDto.getDeptId() != null) { |
| | | 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(); |
| | | } |
| | | if (!userIdList.isEmpty()) { |
| | | mgtBasePlatformDto.setUserIdList(userIdList); |
| | | } |
| | | } |
| | | List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData(); |
| | | mgtBasePlatformDto.setShopIdList(shopIdList); |
| | | //获取基础统计 |
| | | MgtTotalOrderTotalVo mgtTotalOrderTotalVo = orderMapper.getPlTotalOrderTotalOrderFrom(mgtBasePlatformDto); |
| | | List<MgtMapTotalPlusVo> mgtMapTotalVos = orderMapper.listPlTotalOrderTotal(mgtBasePlatformDto); |
| | | 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(); |
| | | } |
| | | mgtTotalOrderTotalVo.setOrderTotalKey(orderTotalKey); |
| | | mgtTotalOrderTotalVo.setOrderTotalValue(orderTotalValue); |
| | | mgtTotalOrderTotalVo.setOrderMoneyValue(orderMoneyValue); |
| | | } |
| | | //获取商品分类销售数据 |
| | | List<MgtMapTotalPlusVo> mgtMapTotalVoGoodsType = orderMapper.listPlTotalOrderTotalGoodsType(mgtBasePlatformDto); |
| | | 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] = "周期"; |
| | | mgtTotalOrderTotalVo.setCycleTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); |
| | | mgtTotalOrderTotalVo.setCycleMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); |
| | | }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("2")){ |
| | | goodsTypeKey[i] = "服务"; |
| | | mgtTotalOrderTotalVo.setServiceTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); |
| | | mgtTotalOrderTotalVo.setServiceMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); |
| | | }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("3")){ |
| | | goodsTypeKey[i] = "体验"; |
| | | mgtTotalOrderTotalVo.setExperienceTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); |
| | | mgtTotalOrderTotalVo.setExperienceMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); |
| | | }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("4")){ |
| | | goodsTypeKey[i] = "单品"; |
| | | } |
| | | } |
| | | mgtTotalOrderTotalVo.setGoodsTypeKey(goodsTypeKey); |
| | | mgtTotalOrderTotalVo.setGoodsTypeTotalValue(goodsTypeTotalValue); |
| | | mgtTotalOrderTotalVo.setGoodsTypeMoneyValue(goodsTypeMoneyValue); |
| | | } |
| | | //获取商品销售排名 |
| | | List<MgtMapTotalPlusVo> goodsRankList = orderMapper.listPlTotalOrderTotalGoodsRank(mgtBasePlatformDto); |
| | | if (goodsRankList != null && goodsRankList.size() > 0) { |
| | | String[] goodsRankKey = new String[goodsRankList.size()]; |
| | | BigDecimal[] goodsRankValue = new BigDecimal[goodsRankList.size()]; |
| | | // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 |
| | | for (int i = 0; i < goodsRankList.size(); i++) { |
| | | goodsRankKey[i] = goodsRankList.get(i).getMapKey(); |
| | | goodsRankValue[i] = goodsRankList.get(i).getMapValueSecond(); |
| | | } |
| | | mgtTotalOrderTotalVo.setGoodsRankKey(goodsRankKey); |
| | | mgtTotalOrderTotalVo.setGoodsRankValue(goodsRankValue); |
| | | } |
| | | //获取来源销售排名 |
| | | List<MgtMapTotalPlusVo> orderFromList = orderMapper.listPlTotalOrderTotalOrderFrom(mgtBasePlatformDto); |
| | | if (orderFromList != null && orderFromList.size() > 0) { |
| | | String[] orderFromKey = new String[orderFromList.size()]; |
| | | BigDecimal[] orderFromValue = new BigDecimal[orderFromList.size()]; |
| | | // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 |
| | | for (int i = 0; i < orderFromList.size(); i++) { |
| | | orderFromKey[i] = orderFromList.get(i).getMapKey(); |
| | | orderFromValue[i] = orderFromList.get(i).getMapValueSecond(); |
| | | } |
| | | mgtTotalOrderTotalVo.setOrderFromRankKey(orderFromKey); |
| | | mgtTotalOrderTotalVo.setOrderFromRankValue(orderFromValue); |
| | | } |
| | | return mgtTotalOrderTotalVo; |
| | | } |
| | | |
| | | /** |
| | | * @description |
| | | * @author jqs |
| | | * @date 2023/6/20 9:27 |
| | | * @param mgtBasePlatformDto |
| | | * @return MgtTotalActivityTotalVo |
| | | */ |
| | | @Override |
| | | public MgtPlTotalActivityTotalVo getPlTotalActivityTotal(MgtBasePlatformDto mgtBasePlatformDto){ |
| | | //获取需要关联的用户id集合 |
| | | if (mgtBasePlatformDto.getDeptId() != null) { |
| | | 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(); |
| | | } |
| | | if (!userIdList.isEmpty()) { |
| | | mgtBasePlatformDto.setUserIdList(userIdList); |
| | | } |
| | | } |
| | | List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData(); |
| | | mgtBasePlatformDto.setShopIdList(shopIdList); |
| | | //获取基础统计 |
| | | MgtPlTotalActivityTotalVo totalActivityTotalVo = orderMapper.getPlTotalActivityTotal(mgtBasePlatformDto); |
| | | //获取商品分类销售数据 |
| | | List<MgtMapTotalPlusVo> mgtMapTotalVoGoodsType = orderMapper.listPlTotalActivityTotalGoodsType(mgtBasePlatformDto); |
| | | 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<MgtMapTotalPlusVo> mgtMapTotalVos = orderMapper.listPlTotalActivityTotal(mgtBasePlatformDto); |
| | | 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); |
| | | } |
| | | HashSet<String> set = new HashSet<>(); |
| | | // 遍历MgtMemberOrderPageVoList,获取shopId并添加到set中 |
| | | for (Long shopId : mgtBasePlatformDto.getShopIdList()) { |
| | | set.add(shopId.toString()); |
| | | } |
| | | // 将set中的shopId转换为逗号分隔的字符串 |
| | | String joinedString = String.join(",", set); |
| | | // 通过remoteShopService获取MgtSimpleShopVoList |
| | | 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())); |
| | | //商户活动次数排名 |
| | | List<MgtMapTotalPlusVo> shopActivityRank = orderMapper.listPlTotalShopActivityRank(mgtBasePlatformDto); |
| | | if (shopActivityRank != null && shopActivityRank.size() > 0) { |
| | | String[] shopActivityRankKey = new String[shopActivityRank.size()]; |
| | | Integer[] shopActivityRankValue = new Integer[shopActivityRank.size()]; |
| | | for (int i = 0; i < shopActivityRank.size(); i++) { |
| | | shopActivityRankKey[i] = map.get(Long.valueOf(shopActivityRank.get(i).getMapKey())).getShopName(); |
| | | shopActivityRankValue[i] = shopActivityRank.get(i).getMapValueFirst(); |
| | | } |
| | | totalActivityTotalVo.setActivityRankKey(shopActivityRankKey); |
| | | totalActivityTotalVo.setActivityRankValue(shopActivityRankValue); |
| | | } |
| | | //商户活动销售额排名 |
| | | List<MgtMapTotalPlusVo> shopActivitySalesRank = orderMapper.listPlTotalShopActivitySalesRank(mgtBasePlatformDto); |
| | | if (shopActivitySalesRank != null && shopActivitySalesRank.size() > 0) { |
| | | String[] shopActivitySalesRankKey = new String[shopActivitySalesRank.size()]; |
| | | BigDecimal[] shopActivitySalesRankValue = new BigDecimal[shopActivitySalesRank.size()]; |
| | | for (int i = 0; i < shopActivitySalesRank.size(); i++) { |
| | | shopActivitySalesRankKey[i] = map.get(Long.valueOf(shopActivityRank.get(i).getMapKey())).getShopName(); |
| | | shopActivitySalesRankValue[i] = shopActivitySalesRank.get(i).getMapValueSecond(); |
| | | } |
| | | totalActivityTotalVo.setShopSalesRankKey(shopActivitySalesRankKey); |
| | | totalActivityTotalVo.setShopSalesRankValue(shopActivitySalesRankValue); |
| | | } |
| | | //活动销售额排名 |
| | | List<MgtMapTotalPlusVo> activitySalesRank = orderMapper.listPlTotalActivitySalesRank(mgtBasePlatformDto); |
| | | if (activitySalesRank != null && activitySalesRank.size() > 0) { |
| | | String[] activitySalesRankKey = new String[activitySalesRank.size()]; |
| | | BigDecimal[] activitySalesRankValue = new BigDecimal[activitySalesRank.size()]; |
| | | for (int i = 0; i < activitySalesRank.size(); i++) { |
| | | activitySalesRankKey[i] = activitySalesRank.get(i).getMapKey(); |
| | | activitySalesRankValue[i] = activitySalesRank.get(i).getMapValueSecond(); |
| | | } |
| | | totalActivityTotalVo.setActivitySalesRankKey(activitySalesRankKey); |
| | | totalActivityTotalVo.setActivitySalesRankValue(activitySalesRankValue); |
| | | } |
| | | return totalActivityTotalVo; |
| | | } |
| | | |
| | | /** |
| | | * @description |
| | | * @author jqs |
| | | * @date 2023/6/20 9:56 |
| | | * @param mgtPlActivityAgeDto |
| | | * @return MgtTotalActivityTotalVo |
| | | */ |
| | | @Override |
| | | public MgtPlTotalActivityTotalVo getPlTotalActivityAgeRank(MgtPlActivityAgeDto mgtPlActivityAgeDto){ |
| | | List<Long> userIds = orderMapper.getPlUserIdAgeRank(mgtPlActivityAgeDto); |
| | | MgtActivityAgeDto mgtActivityAgeDto = new MgtActivityAgeDto(); |
| | | mgtActivityAgeDto.setUserIds(userIds); |
| | | mgtActivityAgeDto.setAgeType(mgtPlActivityAgeDto.getAgeType()); |
| | | userIds = remoteMemberService.listUserIdByAge(mgtActivityAgeDto).getData(); |
| | | mgtPlActivityAgeDto.setUserIds(userIds); |
| | | MgtPlTotalActivityTotalVo totalActivityTotalVo = orderMapper.getPlTotalActivityAgeRank(mgtPlActivityAgeDto); |
| | | return totalActivityTotalVo; |
| | | } |
| | | } |