From efe79e640c4598f52c2d1032fcead000edf8049e Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期三, 28 六月 2023 10:29:53 +0800 Subject: [PATCH] 统计bug和验证优化 --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 725 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 662 insertions(+), 63 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 4a625f9..243592f 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 @@ -17,8 +17,10 @@ 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; @@ -72,6 +74,15 @@ @Resource private RemoteShoppingCartService remoteShoppingCartService; + @Resource + private RemoteConfigService remoteConfigService; + + @Resource + private UserServiceRecordService userServiceRecordService; + + @Resource + private RemoteCouponService remoteCouponService; + /** * @description: buyGoods @@ -90,14 +101,14 @@ 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> appMemberCouponVoList = remoteCouponService.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; @@ -215,13 +226,13 @@ 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())); + List<AppMemberCouponVo> appMemberCouponVoList = remoteCouponService.listVoMemberCouponByUserId(userId).getData(); + Map<String, AppMemberCouponVo> appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity())); AppMemberCouponVo appMemberCouponVo; Integer couponType; BigDecimal moneyThreshold; @@ -504,16 +515,9 @@ @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; } @@ -705,15 +709,15 @@ BigDecimal buyNumBig; Integer serviceNum; Integer goodsNum = 0; - Long memberCouponId; + String memberCouponId; Goods goods; BigDecimal goodsPrice; BigDecimal goodsTotalPrice; BigDecimal goodsRealPrice; Long shopId = merNewOrderDto.getShopId(); Shop shop = remoteShopService.getShop(shopId).getData(); - List<AppMemberCouponVo> appMemberCouponVoList = remoteMemberService.listVoMemberCouponByUserId(userId).getData(); - Map<Long, AppMemberCouponVo> appMemberCouponVoMap = new HashMap<>(); + List<AppMemberCouponVo> appMemberCouponVoList = remoteCouponService.listVoMemberCouponByUserId(userId).getData(); + Map<String, AppMemberCouponVo> appMemberCouponVoMap = new HashMap<>(); if (null != appMemberCouponVoList) { appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity())); } @@ -980,7 +984,9 @@ // 将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())); @@ -1005,22 +1011,22 @@ @Override public List<MgtActivityOrderPageVo> pageMgtActivityOrder(Page page, MgtShopOrderPageDto mgtShopOrderPageDto) { //如果区域代码不为null获取对应的商户id - if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopProvinceCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopCityCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopAreaCode())){ + if (StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword()) || StringUtils.isNotBlank(mgtShopOrderPageDto.getShopProvinceCode()) || StringUtils.isNotBlank(mgtShopOrderPageDto.getShopCityCode()) || StringUtils.isNotBlank(mgtShopOrderPageDto.getShopAreaCode())) { MgtShopIdByCodeDto mgtShopIdByCodeDto = new MgtShopIdByCodeDto(); mgtShopIdByCodeDto.setShopProvinceCode(mgtShopOrderPageDto.getShopProvinceCode()); mgtShopIdByCodeDto.setShopCityCode(mgtShopOrderPageDto.getShopCityCode()); mgtShopIdByCodeDto.setShopAreaCode(mgtShopOrderPageDto.getShopAreaCode()); MgtShopIdByCodeVo mgtShopIdByCodeVo = remoteShopService.getShopIdByCode(mgtShopIdByCodeDto).getData(); - if(StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())){ + if (StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())) { mgtShopOrderPageDto.setShopIds(mgtShopIdByCodeVo.getShopIds()); } } //如果关键词不为null获取对应的用户id - if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())){ + if (StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())) { MgtUserIdByKeywordDto mgtUserIdByKeywordDto = new MgtUserIdByKeywordDto(); mgtUserIdByKeywordDto.setKeyword(mgtShopOrderPageDto.getKeyword()); - MgtUserIdByKeywordVo mgtUserIdByKeywordVo= remoteMemberService.getUserIdByKeyword(mgtUserIdByKeywordDto).getData(); - if(StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())){ + MgtUserIdByKeywordVo mgtUserIdByKeywordVo = remoteMemberService.getUserIdByKeyword(mgtUserIdByKeywordDto).getData(); + if (StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())) { mgtShopOrderPageDto.setUserIds(mgtUserIdByKeywordVo.getUserIds()); } } @@ -1041,16 +1047,22 @@ 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); } @@ -1060,31 +1072,31 @@ } /** - * @description 获取订单统计 - * @author jqs - * @date 2023/6/16 12:51 * @param mgtShopOrderPageDto - * @return MgtMemberOrderTotalVo + * @return MgtMemberOrderTotalVo + * @description 获取订单统计 + * @author jqs + * @date 2023/6/16 12:51 */ @Override - public MgtOrderTotal getMgtOrderTotal(MgtShopOrderPageDto mgtShopOrderPageDto){ + public MgtOrderTotal getMgtOrderTotal(MgtShopOrderPageDto mgtShopOrderPageDto) { //如果区域代码不为null获取对应的商户id - if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopProvinceCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopCityCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopAreaCode())){ + if (StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword()) || StringUtils.isNotBlank(mgtShopOrderPageDto.getShopProvinceCode()) || StringUtils.isNotBlank(mgtShopOrderPageDto.getShopCityCode()) || StringUtils.isNotBlank(mgtShopOrderPageDto.getShopAreaCode())) { MgtShopIdByCodeDto mgtShopIdByCodeDto = new MgtShopIdByCodeDto(); mgtShopIdByCodeDto.setShopProvinceCode(mgtShopOrderPageDto.getShopProvinceCode()); mgtShopIdByCodeDto.setShopCityCode(mgtShopOrderPageDto.getShopCityCode()); mgtShopIdByCodeDto.setShopAreaCode(mgtShopOrderPageDto.getShopAreaCode()); MgtShopIdByCodeVo mgtShopIdByCodeVo = remoteShopService.getShopIdByCode(mgtShopIdByCodeDto).getData(); - if(StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())){ + if (StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())) { mgtShopOrderPageDto.setShopIds(mgtShopIdByCodeVo.getShopIds()); } } //如果关键词不为null获取对应的用户id - if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())){ + if (StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())) { MgtUserIdByKeywordDto mgtUserIdByKeywordDto = new MgtUserIdByKeywordDto(); mgtUserIdByKeywordDto.setKeyword(mgtShopOrderPageDto.getKeyword()); - MgtUserIdByKeywordVo mgtUserIdByKeywordVo= remoteMemberService.getUserIdByKeyword(mgtUserIdByKeywordDto).getData(); - if(StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())){ + MgtUserIdByKeywordVo mgtUserIdByKeywordVo = remoteMemberService.getUserIdByKeyword(mgtUserIdByKeywordDto).getData(); + if (StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())) { mgtShopOrderPageDto.setUserIds(mgtUserIdByKeywordVo.getUserIds()); } } @@ -1106,32 +1118,32 @@ } /** - * @description 分页获取门店订单列表 - * @author jqs - * @date 2023/6/16 14:57 * @param page * @param mgtShopOrderPageDto - * @return List<MgtShopOrderPageVo> + * @return List<MgtShopOrderPageVo> + * @description 分页获取门店订单列表 + * @author jqs + * @date 2023/6/16 14:57 */ @Override - public List<MgtShopOrderPageVo> pageMgtShopOrder(Page page, MgtShopOrderPageDto mgtShopOrderPageDto){ + public List<MgtShopOrderPageVo> pageMgtShopOrder(Page page, MgtShopOrderPageDto mgtShopOrderPageDto) { //如果区域代码不为null获取对应的商户id - if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopProvinceCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopCityCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopAreaCode())){ + if (StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword()) || StringUtils.isNotBlank(mgtShopOrderPageDto.getShopProvinceCode()) || StringUtils.isNotBlank(mgtShopOrderPageDto.getShopCityCode()) || StringUtils.isNotBlank(mgtShopOrderPageDto.getShopAreaCode())) { MgtShopIdByCodeDto mgtShopIdByCodeDto = new MgtShopIdByCodeDto(); mgtShopIdByCodeDto.setShopProvinceCode(mgtShopOrderPageDto.getShopProvinceCode()); mgtShopIdByCodeDto.setShopCityCode(mgtShopOrderPageDto.getShopCityCode()); mgtShopIdByCodeDto.setShopAreaCode(mgtShopOrderPageDto.getShopAreaCode()); MgtShopIdByCodeVo mgtShopIdByCodeVo = remoteShopService.getShopIdByCode(mgtShopIdByCodeDto).getData(); - if(StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())){ + if (StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())) { mgtShopOrderPageDto.setShopIds(mgtShopIdByCodeVo.getShopIds()); } } //如果关键词不为null获取对应的用户id - if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())){ + if (StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())) { MgtUserIdByKeywordDto mgtUserIdByKeywordDto = new MgtUserIdByKeywordDto(); mgtUserIdByKeywordDto.setKeyword(mgtShopOrderPageDto.getKeyword()); - MgtUserIdByKeywordVo mgtUserIdByKeywordVo= remoteMemberService.getUserIdByKeyword(mgtUserIdByKeywordDto).getData(); - if(StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())){ + MgtUserIdByKeywordVo mgtUserIdByKeywordVo = remoteMemberService.getUserIdByKeyword(mgtUserIdByKeywordDto).getData(); + if (StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())) { mgtShopOrderPageDto.setUserIds(mgtUserIdByKeywordVo.getUserIds()); } } @@ -1147,20 +1159,35 @@ 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); } @@ -1170,14 +1197,14 @@ /** - * @description 获取订单详情 - * @author jqs - * @date 2023/6/16 16:49 * @param orderId - * @return MgtOrderDetailVo + * @return MgtOrderDetailVo + * @description 获取订单详情 + * @author jqs + * @date 2023/6/16 16:49 */ @Override - public MgtOrderDetailVo getMgtOrderDetail(String orderId){ + public MgtOrderDetailVo getMgtOrderDetail(String orderId) { // 创建MgtOrderDetailVo对象 MgtOrderDetailVo mgtOrderDetailVo = new MgtOrderDetailVo(); // 获取订单信息 @@ -1249,4 +1276,576 @@ mgtOrderDetailVo.setVerifyTime(order.getUseTime()); return mgtOrderDetailVo; } + + /** + * @param + * @return MgtBulletinBoardVo + * @description boardOrderTotal + * @author jqs34 + * @date 2023/6/18 17:20 + */ + @Override + public MgtBulletinBoardVo boardOrderTotal() { + MgtBulletinBoardVo mgtBulletinBoardVo = orderMapper.boardOrderTotal(); + return mgtBulletinBoardVo; + } + + /** + * @param mgtBaseShopDto + * @return MgtTotalOrderTotalVo + * @description getTotalOrderTotal + * @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); + List<MgtMapTotalVo> goodsTypeTotalList = new ArrayList<>(); + List<MgtMapBigTotalVo> goodsTypeMoneyList = new ArrayList<>(); + if (mgtMapTotalVoGoodsType != null && mgtMapTotalVoGoodsType.size() > 0) { + MgtMapTotalVo mgtMapTotalVo; + MgtMapBigTotalVo mgtMapBigTotalVo; + // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 + for (int i = 0; i < mgtMapTotalVoGoodsType.size(); i++) { + mgtMapTotalVo = new MgtMapTotalVo(); + mgtMapBigTotalVo = new MgtMapBigTotalVo(); + mgtMapTotalVo.setMapValue(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); + mgtMapBigTotalVo.setMapValue(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); + if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("1")) { + mgtMapTotalVo.setMapKey("周期"); + mgtMapBigTotalVo.setMapKey("周期"); + mgtTotalOrderTotalVo.setCycleTotal(mgtTotalOrderTotalVo.getCycleTotal() + mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); + mgtTotalOrderTotalVo.setCycleMoney(mgtTotalOrderTotalVo.getCycleMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond())); + } else if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("2")) { + mgtMapTotalVo.setMapKey("服务"); + mgtMapBigTotalVo.setMapKey("服务"); + mgtTotalOrderTotalVo.setServiceTotal(mgtTotalOrderTotalVo.getServiceTotal() + mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); + mgtTotalOrderTotalVo.setServiceMoney(mgtTotalOrderTotalVo.getServiceMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond())); + } else if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("3")) { + mgtMapTotalVo.setMapKey("体验"); + mgtMapBigTotalVo.setMapKey("体验"); + mgtTotalOrderTotalVo.setExperienceTotal(mgtTotalOrderTotalVo.getExperienceTotal() + mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); + mgtTotalOrderTotalVo.setExperienceMoney(mgtTotalOrderTotalVo.getExperienceMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond())); + } else if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("4")) { + mgtMapTotalVo.setMapKey("单品"); + mgtMapBigTotalVo.setMapKey("单品"); + } + goodsTypeTotalList.add(mgtMapTotalVo); + goodsTypeMoneyList.add(mgtMapBigTotalVo); + } + mgtTotalOrderTotalVo.setGoodsTypeTotalList(goodsTypeTotalList); + mgtTotalOrderTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList); + } + //获取商品销售排名 + List<MgtMapBigTotalVo> goodsRankList = orderMapper.listTotalOrderTotalGoodsRank(mgtBaseShopDto); + if (goodsRankList != null && goodsRankList.size() > 0) { + goodsRankList = bigListRemoveNull(goodsRankList); + mgtTotalOrderTotalVo.setGoodsRankList(goodsRankList); + } + //获取来源销售排名 + List<MgtMapBigTotalVo> orderFromList = orderMapper.listTotalOrderTotalOrderFrom(mgtBaseShopDto); + if (orderFromList != null && orderFromList.size() > 0) { + orderFromList = bigListRemoveNull(orderFromList); + mgtTotalOrderTotalVo.setOrderFromRankList(orderFromList); + } + return mgtTotalOrderTotalVo; + } + + /** + * @param mgtMapTotalVos + * @return List<MgtMapTotalVo> + * @description 去除空字符串 + * @author jqs + * @date 2023/6/27 17:35 + */ + private List<MgtMapTotalVo> listRemoveNull(List<MgtMapTotalVo> mgtMapTotalVos) { + for (int i = 0; i < mgtMapTotalVos.size(); i++) { + if (StringUtils.isBlank(mgtMapTotalVos.get(i).getMapKey())) { + mgtMapTotalVos.remove(i); + } + } + return mgtMapTotalVos; + } + + /** + * @param mgtMapTotalVos + * @return List<MgtMapTotalVo> + * @description 去除空字符串 + * @author jqs + * @date 2023/6/27 17:35 + */ + private List<MgtMapBigTotalVo> bigListRemoveNull(List<MgtMapBigTotalVo> mgtMapTotalVos) { + for (int i = 0; i < mgtMapTotalVos.size(); i++) { + if (StringUtils.isBlank(mgtMapTotalVos.get(i).getMapKey())) { + mgtMapTotalVos.remove(i); + } + } + return mgtMapTotalVos; + } + + /** + * @param mgtBaseShopDto + * @return MgtTotalActivityTotalVo + * @description + * @author jqs + * @date 2023/6/20 9:27 + */ + @Override + public MgtTotalActivityTotalVo getTotalActivityTotal(MgtBaseShopDto mgtBaseShopDto) { + //获取基础统计 + MgtTotalActivityTotalVo totalActivityTotalVo = orderMapper.getTotalActivityTotal(mgtBaseShopDto); + //获取商品分类销售数据 + List<MgtMapTotalPlusVo> mgtMapTotalVoGoodsType = orderMapper.listTotalActivityTotalGoodsType(mgtBaseShopDto); + if (mgtMapTotalVoGoodsType != null && mgtMapTotalVoGoodsType.size() > 0) { + List<MgtMapTotalVo> goodsTypeTotalList = new ArrayList<>(); + List<MgtMapBigTotalVo> goodsTypeMoneyList = new ArrayList<>(); + totalActivityTotalVo.setCycleTotal(0); + totalActivityTotalVo.setCycleMoney(BigDecimal.ZERO); + totalActivityTotalVo.setServiceTotal(0); + totalActivityTotalVo.setServiceMoney(BigDecimal.ZERO); + totalActivityTotalVo.setExperienceTotal(0); + totalActivityTotalVo.setExperienceMoney(BigDecimal.ZERO); + // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 + MgtMapTotalVo mgtMapTotalVo; + MgtMapBigTotalVo mgtMapBigTotalVo; + // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 + for (int i = 0; i < mgtMapTotalVoGoodsType.size(); i++) { + mgtMapTotalVo = new MgtMapTotalVo(); + mgtMapBigTotalVo = new MgtMapBigTotalVo(); + mgtMapTotalVo.setMapValue(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); + mgtMapBigTotalVo.setMapValue(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); + if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("1")) { + mgtMapTotalVo.setMapKey("周期"); + mgtMapBigTotalVo.setMapKey("周期"); + totalActivityTotalVo.setCycleTotal(totalActivityTotalVo.getCycleTotal() + mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); + totalActivityTotalVo.setCycleMoney(totalActivityTotalVo.getCycleMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond())); + } else if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("2")) { + mgtMapTotalVo.setMapKey("服务"); + mgtMapBigTotalVo.setMapKey("服务"); + totalActivityTotalVo.setServiceTotal(totalActivityTotalVo.getServiceTotal() + mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); + totalActivityTotalVo.setServiceMoney(totalActivityTotalVo.getServiceMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond())); + } else if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("3")) { + mgtMapTotalVo.setMapKey("体验"); + mgtMapBigTotalVo.setMapKey("体验"); + totalActivityTotalVo.setExperienceTotal(totalActivityTotalVo.getExperienceTotal() + mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); + totalActivityTotalVo.setExperienceMoney(totalActivityTotalVo.getExperienceMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond())); + } else if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("4")) { + mgtMapTotalVo.setMapKey("单品"); + mgtMapBigTotalVo.setMapKey("单品"); + } + goodsTypeTotalList.add(mgtMapTotalVo); + goodsTypeMoneyList.add(mgtMapBigTotalVo); + } + totalActivityTotalVo.setGoodsTypeTotalList(goodsTypeTotalList); + totalActivityTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList); + } + //获取订单分布 + 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; + } + + /** + * @param mgtActivityAgeDto + * @return MgtTotalActivityTotalVo + * @description + * @author jqs + * @date 2023/6/20 9:56 + */ + @Override + public MgtTotalActivityTotalVo getTotalActivityAgeRank(MgtActivityAgeDto mgtActivityAgeDto) { + List<Long> userIds = orderMapper.getUserIdAgeRank(mgtActivityAgeDto); + mgtActivityAgeDto.setUserIds(userIds); + userIds = remoteMemberService.listUserIdByAge(mgtActivityAgeDto).getData(); + mgtActivityAgeDto.setUserIds(userIds); + List<MgtMapTotalVo> ageRankList = orderMapper.getTotalActivityAgeRank(mgtActivityAgeDto); + ageRankList = listRemoveNull(ageRankList); + MgtTotalActivityTotalVo totalActivityTotalVo = new MgtTotalActivityTotalVo(); + String[] activityAgeKey = new String[ageRankList.size()]; + Integer[] activityAgeValue = new Integer[ageRankList.size()]; + if (!ageRankList.isEmpty()) { + MgtMapTotalVo mgtMapTotalVo; + for (int i = 0; i < ageRankList.size(); i++) { + mgtMapTotalVo = ageRankList.get(i); + activityAgeKey[i] = mgtMapTotalVo.getMapKey(); + activityAgeValue[i] = mgtMapTotalVo.getMapValue(); + } + } + totalActivityTotalVo.setActivityAgeKey(activityAgeKey); + totalActivityTotalVo.setActivityAgeValue(activityAgeValue); + return totalActivityTotalVo; + } + + /** + * @param mgtBaseShopDto + * @return MgtTotalDataTotalVo + * @description + * @author jqs + * @date 2023/6/20 15:31 + */ + @Override + public MgtTotalDataTotalVo getTotalDataTotal(MgtBaseShopDto mgtBaseShopDto) { + //获取人数统计 + MgtTotalDataTotalVo mgtTotalDataTotalVo = orderMapper.getTotalDataTotal(mgtBaseShopDto); + BigDecimal salesTotal = orderMapper.shopSalesTotal(mgtBaseShopDto); + mgtTotalDataTotalVo.setSalesTotal(salesTotal); + Integer reorderPerson = orderMapper.getReorderPerson(mgtBaseShopDto); + mgtTotalDataTotalVo.setReorderPerson(reorderPerson); + Integer returnedPerson = orderMapper.getReturnedPerson(mgtBaseShopDto); + mgtTotalDataTotalVo.setReturnedPerson(returnedPerson); + return mgtTotalDataTotalVo; + } + + /** + * @param mgtBasePlatformDto + * @return List<MgtMapTotalVo> + * @description + * @author jqs + * @date 2023/6/21 15:26 + */ + @Override + public List<MgtMapTotalVo> listMemberGoodsRank(MgtBasePlatformDto mgtBasePlatformDto) { + return orderMapper.listMemberGoodsRank(mgtBasePlatformDto); + } + + /** + * @param mgtBasePlatformDto + * @return List<MgtTotalDataTotalVo> + * @description 获取平台商户数据统计 + * @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); + Shop shop = remoteShopService.getShop(shopId).getData(); + mgtTotalDataTotalVo.setShopName(shop.getShopName()); + mgtTotalDataTotalVoList.add(mgtTotalDataTotalVo); + } + } + return mgtTotalDataTotalVoList; + } + + /** + * @param mgtBasePlatformDto + * @return MgtTotalOrderTotalVo + * @description 获取平台商户订单统计 + * @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); + List<MgtMapTotalVo> goodsTypeTotalList = new ArrayList<>(); + List<MgtMapBigTotalVo> goodsTypeMoneyList = new ArrayList<>(); + mgtTotalOrderTotalVo.setCycleTotal(0); + mgtTotalOrderTotalVo.setCycleMoney(BigDecimal.ZERO); + mgtTotalOrderTotalVo.setServiceTotal(0); + mgtTotalOrderTotalVo.setServiceMoney(BigDecimal.ZERO); + mgtTotalOrderTotalVo.setExperienceTotal(0); + mgtTotalOrderTotalVo.setExperienceMoney(BigDecimal.ZERO); + if (mgtMapTotalVoGoodsType != null && mgtMapTotalVoGoodsType.size() > 0) { + MgtMapTotalVo mgtMapTotalVo; + MgtMapBigTotalVo mgtMapBigTotalVo; + // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 + for (int i = 0; i < mgtMapTotalVoGoodsType.size(); i++) { + mgtMapTotalVo = new MgtMapTotalVo(); + mgtMapBigTotalVo = new MgtMapBigTotalVo(); + mgtMapTotalVo.setMapValue(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); + mgtMapBigTotalVo.setMapValue(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); + if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("1")) { + mgtMapTotalVo.setMapKey("周期"); + mgtMapBigTotalVo.setMapKey("周期"); + mgtTotalOrderTotalVo.setCycleTotal(mgtTotalOrderTotalVo.getCycleTotal() + mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); + mgtTotalOrderTotalVo.setCycleMoney(mgtTotalOrderTotalVo.getCycleMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond())); + } else if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("2")) { + mgtMapTotalVo.setMapKey("服务"); + mgtMapBigTotalVo.setMapKey("服务"); + mgtTotalOrderTotalVo.setServiceTotal(mgtTotalOrderTotalVo.getServiceTotal() + mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); + mgtTotalOrderTotalVo.setServiceMoney(mgtTotalOrderTotalVo.getServiceMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond())); + } else if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("3")) { + mgtMapTotalVo.setMapKey("体验"); + mgtMapBigTotalVo.setMapKey("体验"); + mgtTotalOrderTotalVo.setExperienceTotal(mgtTotalOrderTotalVo.getExperienceTotal() + mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); + mgtTotalOrderTotalVo.setExperienceMoney(mgtTotalOrderTotalVo.getExperienceMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond())); + } else if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("4")) { + mgtMapTotalVo.setMapKey("单品"); + mgtMapBigTotalVo.setMapKey("单品"); + } + goodsTypeTotalList.add(mgtMapTotalVo); + goodsTypeMoneyList.add(mgtMapBigTotalVo); + } + mgtTotalOrderTotalVo.setGoodsTypeTotalList(goodsTypeTotalList); + mgtTotalOrderTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList); + } + //获取商品销售排名 + List<MgtMapBigTotalVo> goodsRankList = orderMapper.listPlTotalOrderTotalGoodsRank(mgtBasePlatformDto); + if (goodsRankList != null && goodsRankList.size() > 0) { + goodsRankList = bigListRemoveNull(goodsRankList); + mgtTotalOrderTotalVo.setGoodsRankList(goodsRankList); + } + //获取来源销售排名 + List<MgtMapBigTotalVo> orderFromList = orderMapper.listPlTotalOrderTotalOrderFrom(mgtBasePlatformDto); + if (orderFromList != null && orderFromList.size() > 0) { + orderFromList = bigListRemoveNull(orderFromList); + mgtTotalOrderTotalVo.setOrderFromRankList(orderFromList); + } + return mgtTotalOrderTotalVo; + } + + /** + * @param mgtBasePlatformDto + * @return MgtTotalActivityTotalVo + * @description + * @author jqs + * @date 2023/6/20 9:27 + */ + @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); + List<MgtMapTotalVo> goodsTypeTotalList = new ArrayList<>(); + List<MgtMapBigTotalVo> goodsTypeMoneyList = new ArrayList<>(); + totalActivityTotalVo.setCycleTotal(0); + totalActivityTotalVo.setCycleMoney(BigDecimal.ZERO); + totalActivityTotalVo.setServiceTotal(0); + totalActivityTotalVo.setServiceMoney(BigDecimal.ZERO); + totalActivityTotalVo.setExperienceTotal(0); + totalActivityTotalVo.setExperienceMoney(BigDecimal.ZERO); + if (mgtMapTotalVoGoodsType != null && mgtMapTotalVoGoodsType.size() > 0) { + MgtMapTotalVo mgtMapTotalVo; + MgtMapBigTotalVo mgtMapBigTotalVo; + // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 + for (int i = 0; i < mgtMapTotalVoGoodsType.size(); i++) { + mgtMapTotalVo = new MgtMapTotalVo(); + mgtMapBigTotalVo = new MgtMapBigTotalVo(); + mgtMapTotalVo.setMapValue(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); + mgtMapBigTotalVo.setMapValue(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); + if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("1")) { + mgtMapTotalVo.setMapKey("周期"); + mgtMapBigTotalVo.setMapKey("周期"); + totalActivityTotalVo.setCycleTotal(totalActivityTotalVo.getCycleTotal() + mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); + totalActivityTotalVo.setCycleMoney(totalActivityTotalVo.getCycleMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond())); + } else if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("2")) { + mgtMapTotalVo.setMapKey("服务"); + mgtMapBigTotalVo.setMapKey("服务"); + totalActivityTotalVo.setServiceTotal(totalActivityTotalVo.getServiceTotal() + mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); + totalActivityTotalVo.setServiceMoney(totalActivityTotalVo.getServiceMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond())); + } else if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("3")) { + mgtMapTotalVo.setMapKey("体验"); + mgtMapBigTotalVo.setMapKey("体验"); + totalActivityTotalVo.setExperienceTotal(totalActivityTotalVo.getExperienceTotal() + mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); + totalActivityTotalVo.setExperienceMoney(totalActivityTotalVo.getExperienceMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond())); + } else if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("4")) { + mgtMapTotalVo.setMapKey("单品"); + mgtMapBigTotalVo.setMapKey("单品"); + } + } + totalActivityTotalVo.setGoodsTypeTotalList(goodsTypeTotalList); + totalActivityTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList); + } + //获取订单分布 + 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<MgtMapBigTotalVo> shopActivityRank = orderMapper.listPlTotalShopActivityRank(mgtBasePlatformDto); + if (shopActivityRank != null && shopActivityRank.size() > 0) { + shopActivityRank = bigListRemoveNull(shopActivityRank); + totalActivityTotalVo.setShopSalesRankList(shopActivityRank); + } + //商户活动销售额排名 + List<MgtMapBigTotalVo> shopActivitySalesRank = orderMapper.listPlTotalShopActivitySalesRank(mgtBasePlatformDto); + if (shopActivitySalesRank != null && shopActivitySalesRank.size() > 0) { + shopActivitySalesRank = bigListRemoveNull(shopActivitySalesRank); + totalActivityTotalVo.setShopSalesRankList(shopActivitySalesRank); + } + //活动销售额排名 + List<MgtMapBigTotalVo> activitySalesRank = orderMapper.listPlTotalActivitySalesRank(mgtBasePlatformDto); + if (activitySalesRank != null && activitySalesRank.size() > 0) { + activitySalesRank = bigListRemoveNull(activitySalesRank); + totalActivityTotalVo.setActivitySalesRankList(activitySalesRank); + } + return totalActivityTotalVo; + } + + /** + * @param mgtPlActivityAgeDto + * @return MgtTotalActivityTotalVo + * @description + * @author jqs + * @date 2023/6/20 9:56 + */ + @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); + List<MgtMapTotalVo> ageRankList = orderMapper.getPlTotalActivityAgeRank(mgtPlActivityAgeDto); + ageRankList = listRemoveNull(ageRankList); + MgtPlTotalActivityTotalVo plTotalActivityTotalVo = new MgtPlTotalActivityTotalVo(); + String[] activityAgeKey = new String[ageRankList.size()]; + Integer[] activityAgeValue = new Integer[ageRankList.size()]; + if (!ageRankList.isEmpty()) { + MgtMapTotalVo mgtMapTotalVo; + for (int i = 0; i < ageRankList.size(); i++) { + mgtMapTotalVo = ageRankList.get(i); + activityAgeKey[i] = mgtMapTotalVo.getMapKey(); + activityAgeValue[i] = mgtMapTotalVo.getMapValue(); + } + } + plTotalActivityTotalVo.setActivityAgeKey(activityAgeKey); + plTotalActivityTotalVo.setActivityAgeValue(activityAgeValue); + return plTotalActivityTotalVo; + } + + /** + * @param verifyCode + * @return MerVerifyCouponVo + * @description 获取优惠券核销信息 + * @author jqs + * @date 2023/6/27 11:10 + */ + @Override + public MerVerifyCouponVo verifyCoupon(String verifyCode) { + MerVerifyCouponVo merVerifyCouponVo = new MerVerifyCouponVo(); + MerVerifyCouponGetVo verifyCouponGetVo = remoteCouponService.getVerifyCoupon(verifyCode).getData(); + + return merVerifyCouponVo; + } } -- Gitblit v1.7.1