From 9c6fd541f0aa8e384c26998597a6788bb77eca8d Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期二, 04 七月 2023 14:56:25 +0800 Subject: [PATCH] 商户端营销统计 --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 177 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 175 insertions(+), 2 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 4708de6..ec6cfb0 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 @@ -2053,8 +2053,181 @@ merTotalDto.setShopIdList(shopIdList); merTotalDto.setShopId(null); } - MerOrderTotalVo orderTotalVo = new MerOrderTotalVo(); - + if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){ + List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); + merTotalDto.setShopIdList(shopIdList); + merTotalDto.setShopId(null); + } + MerOrderTotalVo orderTotalVo = orderMapper.getMerOrderTotalOrderFrom(merTotalDto); return orderTotalVo; } + + + /** + * @description + * @author jqs + * @date 2023/7/4 9:29 + * @param merTotalDto + * @return MerOrderDistributionTotalVo + */ + @Override + public MerOrderDistributionTotalVo MerOrderDistributionTotalVo(MerTotalDto merTotalDto){ + if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){ + List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); + merTotalDto.setShopIdList(shopIdList); + merTotalDto.setShopId(null); + } + MerOrderDistributionTotalVo orderDistributionTotalVo = new MerOrderDistributionTotalVo(); + // 获取订单年龄用户列表 + List<MerOrderAgeUserVo> orderAgeUserVoList = remoteMemberService.listOrderAgeUser(merTotalDto).getData(); + // 如果订单年龄用户列表不为空 + if (orderAgeUserVoList != null && !orderAgeUserVoList.isEmpty()) { + // 定义变量 + Integer ageType; + List<Long> userIdList; + MerOrderAgeUserVo orderAgeUserVo; + MgtMapTotalPlusVo mgtMapTotalPlusVo; + String[] orderTotalKey = new String[5]; + Integer[] orderTotalValue = new Integer[5]; + BigDecimal[] orderMoneyValue = new BigDecimal[5]; + // 遍历订单年龄用户列表 + for (int i = 0; i < orderAgeUserVoList.size(); i++) { + orderAgeUserVo = orderAgeUserVoList.get(i); + ageType = orderAgeUserVo.getAgeType(); + userIdList = orderAgeUserVo.getUserIdList(); + // 根据年龄类型设置订单总数键 + switch (ageType) { + case 1: + orderTotalKey[i] = "<20"; + break; + case 2: + orderTotalKey[i] = "21-30"; + break; + case 3: + orderTotalKey[i] = "31-40"; + break; + case 4: + orderTotalKey[i] = "41-50"; + break; + case 5: + orderTotalKey[i] = ">50"; + break; + } + // 如果用户ID列表不为空 + if (userIdList != null && !userIdList.isEmpty()) { + mgtMapTotalPlusVo = orderMapper.listMerOrderDistributionTotal(userIdList); + orderTotalValue[i] = mgtMapTotalPlusVo.getMapValueFirst(); + orderMoneyValue[i] = mgtMapTotalPlusVo.getMapValueSecond(); + } else { + orderTotalValue[i] = 0; + orderMoneyValue[i] = BigDecimal.ZERO; + } + } + // 设置订单分布总数对象的属性值 + orderDistributionTotalVo.setOrderTotalKey(orderTotalKey); + orderDistributionTotalVo.setOrderTotalValue(orderTotalValue); + orderDistributionTotalVo.setOrderMoneyValue(orderMoneyValue); + } + // 返回订单分布总数对象 + return orderDistributionTotalVo; + } + + /** + * @description 商户获取销售占比统计 + * @author jqs + * @date 2023/7/4 13:58 + * @param merTotalDto + * @return MerOrderTypeTotalVo + */ + @Override + public MerOrderTypeTotalVo getMerOrderTypeTotal(MerTotalDto merTotalDto){ + if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){ + List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); + merTotalDto.setShopIdList(shopIdList); + merTotalDto.setShopId(null); + } + MerOrderTypeTotalVo orderTypeTotalVo = new MerOrderTypeTotalVo(); + //获取商品分类销售数据 + List<MgtMapTotalPlusVo> MgtMapIntTotalVoGoodsType = orderMapper.listMerOrderTotalGoodsType(merTotalDto); + 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); + } + orderTypeTotalVo.setGoodsTypeTotalList(goodsTypeTotalList); + orderTypeTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList); + } + return orderTypeTotalVo; + } + + + /** + * @description 商户端获取销售排行 + * @author jqs + * @date 2023/7/4 14:23 + * @param merTotalDto + * @return MerOrderGoodsRankVo + */ + @Override + public MerOrderGoodsRankVo getMerOrderGoodsRank(MerTotalDto merTotalDto){ + if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){ + List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); + merTotalDto.setShopIdList(shopIdList); + merTotalDto.setShopId(null); + } + MerOrderGoodsRankVo orderGoodsRankVo = new MerOrderGoodsRankVo(); + List<MgtMapBigTotalVo> goodsRankList = orderMapper.listMerOrderTotalGoodsRank(merTotalDto); + if (goodsRankList != null && goodsRankList.size() > 0) { + goodsRankList = bigListRemoveNull(goodsRankList); + orderGoodsRankVo.setGoodsRankList(goodsRankList); + } + return orderGoodsRankVo; + } + + + /** + * @description 商户端获取渠道排行 + * @author jqs + * @date 2023/7/4 14:51 + * @param merTotalDto + * @return MerOrderFromRankVo + */ + @Override + public MerOrderFromRankVo getMerOrderFromRank(MerTotalDto merTotalDto){ + if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){ + List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); + merTotalDto.setShopIdList(shopIdList); + merTotalDto.setShopId(null); + } + MerOrderFromRankVo merOrderFromRankVo = new MerOrderFromRankVo(); + //获取来源销售排名 + List<MgtMapBigTotalVo> orderFromList = orderMapper.listMerOrderTotalOrderFrom(merTotalDto); + if (orderFromList != null && orderFromList.size() > 0) { + orderFromList = bigListRemoveNull(orderFromList); + merOrderFromRankVo.setOrderFromRankList(orderFromList); + } + return merOrderFromRankVo; + } } -- Gitblit v1.7.1