| | |
| | | @Resource |
| | | private UserServiceRecordService userServiceRecordService; |
| | | |
| | | @Resource |
| | | private RemoteCouponService remoteCouponService; |
| | | |
| | | |
| | | /** |
| | |
| | | BigDecimal goodsPrice; |
| | | BigDecimal goodsTotalPrice; |
| | | BigDecimal goodsRealPrice; |
| | | List<AppMemberCouponVo> appMemberCouponVoList = remoteMemberService.listVoMemberCouponByUserId(userId).getData(); |
| | | List<AppMemberCouponVo> appMemberCouponVoList = remoteCouponService.listVoMemberCouponByUserId(userId).getData(); |
| | | List<AppMemberCouponVo> appGoodsMemberCouponVoList; |
| | | Map<String, AppMemberCouponVo> appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity())); |
| | | AppMemberCouponVo appMemberCouponVo; |
| | |
| | | BigDecimal goodsPrice; |
| | | BigDecimal goodsTotalPrice; |
| | | BigDecimal goodsRealPrice; |
| | | List<AppMemberCouponVo> appMemberCouponVoList = remoteMemberService.listVoMemberCouponByUserId(userId).getData(); |
| | | 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 goodsRealPrice; |
| | | Long shopId = merNewOrderDto.getShopId(); |
| | | Shop shop = remoteShopService.getShop(shopId).getData(); |
| | | List<AppMemberCouponVo> appMemberCouponVoList = remoteMemberService.listVoMemberCouponByUserId(userId).getData(); |
| | | 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())); |
| | |
| | | } |
| | | //获取商品分类销售数据 |
| | | List<MgtMapTotalPlusVo> mgtMapTotalVoGoodsType = orderMapper.listTotalOrderTotalGoodsType(mgtBaseShopDto); |
| | | List<MgtMapTotalVo> goodsTypeTotalList = new ArrayList<>(); |
| | | List<MgtMapBigTotalVo> goodsTypeMoneyList = new ArrayList<>(); |
| | | if (mgtMapTotalVoGoodsType != null && mgtMapTotalVoGoodsType.size() > 0) { |
| | | String[] goodsTypeKey = new String[mgtMapTotalVoGoodsType.size()]; |
| | | Integer[] goodsTypeTotalValue = new Integer[mgtMapTotalVoGoodsType.size()]; |
| | | BigDecimal[] goodsTypeMoneyValue = new BigDecimal[mgtMapTotalVoGoodsType.size()]; |
| | | MgtMapTotalVo mgtMapTotalVo; |
| | | MgtMapBigTotalVo mgtMapBigTotalVo; |
| | | // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 |
| | | for (int i = 0; i < mgtMapTotalVoGoodsType.size(); i++) { |
| | | goodsTypeTotalValue[i] = mgtMapTotalVoGoodsType.get(i).getMapValueFirst(); |
| | | goodsTypeMoneyValue[i] = mgtMapTotalVoGoodsType.get(i).getMapValueSecond(); |
| | | 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")){ |
| | | goodsTypeKey[i] = "周期"; |
| | | mgtTotalOrderTotalVo.setCycleTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); |
| | | mgtTotalOrderTotalVo.setCycleMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); |
| | | 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")){ |
| | | goodsTypeKey[i] = "服务"; |
| | | mgtTotalOrderTotalVo.setServiceTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); |
| | | mgtTotalOrderTotalVo.setServiceMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); |
| | | 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")){ |
| | | goodsTypeKey[i] = "体验"; |
| | | mgtTotalOrderTotalVo.setExperienceTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); |
| | | mgtTotalOrderTotalVo.setExperienceMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); |
| | | 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")){ |
| | | goodsTypeKey[i] = "单品"; |
| | | mgtMapTotalVo.setMapKey("单品"); |
| | | mgtMapBigTotalVo.setMapKey("单品"); |
| | | } |
| | | } |
| | | mgtTotalOrderTotalVo.setGoodsTypeKey(goodsTypeKey); |
| | | mgtTotalOrderTotalVo.setGoodsTypeTotalValue(goodsTypeTotalValue); |
| | | mgtTotalOrderTotalVo.setGoodsTypeMoneyValue(goodsTypeMoneyValue); |
| | | mgtTotalOrderTotalVo.setGoodsTypeTotalList(goodsTypeTotalList); |
| | | mgtTotalOrderTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList); |
| | | } |
| | | //获取商品销售排名 |
| | | List<MgtMapTotalPlusVo> goodsRankList = orderMapper.listTotalOrderTotalGoodsRank(mgtBaseShopDto); |
| | | List<MgtMapBigTotalVo> 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); |
| | | goodsRankList = bigListRemoveNull(goodsRankList); |
| | | mgtTotalOrderTotalVo.setGoodsRankList(goodsRankList); |
| | | } |
| | | //获取来源销售排名 |
| | | List<MgtMapTotalPlusVo> orderFromList = orderMapper.listTotalOrderTotalOrderFrom(mgtBaseShopDto); |
| | | List<MgtMapBigTotalVo> 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); |
| | | orderFromList = bigListRemoveNull(orderFromList); |
| | | mgtTotalOrderTotalVo.setOrderFromRankList(orderFromList); |
| | | } |
| | | return mgtTotalOrderTotalVo; |
| | | } |
| | | |
| | | /** |
| | | * @description 去除空字符串 |
| | | * @author jqs |
| | | * @date 2023/6/27 17:35 |
| | | * @param mgtMapTotalVos |
| | | * @return List<MgtMapTotalVo> |
| | | */ |
| | | 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; |
| | | } |
| | | |
| | | /** |
| | | * @description 去除空字符串 |
| | | * @author jqs |
| | | * @date 2023/6/27 17:35 |
| | | * @param mgtMapTotalVos |
| | | * @return List<MgtMapTotalVo> |
| | | */ |
| | | 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; |
| | | } |
| | | |
| | | /** |
| | | * @description |
| | |
| | | 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); |
| | |
| | | mgtBaseShopDto.setEndDate(mgtBasePlatformDto.getEndDate()); |
| | | mgtBaseShopDto.setShopId(shopId); |
| | | mgtTotalDataTotalVo = this.getTotalDataTotal(mgtBaseShopDto); |
| | | Shop shop = remoteShopService.getShop(shopId).getData(); |
| | | mgtTotalDataTotalVo.setShopName(shop.getShopName()); |
| | | mgtTotalDataTotalVoList.add(mgtTotalDataTotalVo); |
| | | } |
| | | } |
| | |
| | | } |
| | | //获取商品分类销售数据 |
| | | 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) { |
| | | String[] goodsTypeKey = new String[mgtMapTotalVoGoodsType.size()]; |
| | | Integer[] goodsTypeTotalValue = new Integer[mgtMapTotalVoGoodsType.size()]; |
| | | BigDecimal[] goodsTypeMoneyValue = new BigDecimal[mgtMapTotalVoGoodsType.size()]; |
| | | MgtMapTotalVo mgtMapTotalVo; |
| | | MgtMapBigTotalVo mgtMapBigTotalVo; |
| | | // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 |
| | | for (int i = 0; i < mgtMapTotalVoGoodsType.size(); i++) { |
| | | goodsTypeTotalValue[i] = mgtMapTotalVoGoodsType.get(i).getMapValueFirst(); |
| | | goodsTypeMoneyValue[i] = mgtMapTotalVoGoodsType.get(i).getMapValueSecond(); |
| | | 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")){ |
| | | goodsTypeKey[i] = "周期"; |
| | | mgtTotalOrderTotalVo.setCycleTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); |
| | | mgtTotalOrderTotalVo.setCycleMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); |
| | | 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")){ |
| | | goodsTypeKey[i] = "服务"; |
| | | mgtTotalOrderTotalVo.setServiceTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); |
| | | mgtTotalOrderTotalVo.setServiceMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); |
| | | 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")){ |
| | | goodsTypeKey[i] = "体验"; |
| | | mgtTotalOrderTotalVo.setExperienceTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); |
| | | mgtTotalOrderTotalVo.setExperienceMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); |
| | | 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")){ |
| | | goodsTypeKey[i] = "单品"; |
| | | mgtMapTotalVo.setMapKey("单品"); |
| | | mgtMapBigTotalVo.setMapKey("单品"); |
| | | } |
| | | } |
| | | mgtTotalOrderTotalVo.setGoodsTypeKey(goodsTypeKey); |
| | | mgtTotalOrderTotalVo.setGoodsTypeTotalValue(goodsTypeTotalValue); |
| | | mgtTotalOrderTotalVo.setGoodsTypeMoneyValue(goodsTypeMoneyValue); |
| | | mgtTotalOrderTotalVo.setGoodsTypeTotalList(goodsTypeTotalList); |
| | | mgtTotalOrderTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList); |
| | | } |
| | | //获取商品销售排名 |
| | | List<MgtMapTotalPlusVo> goodsRankList = orderMapper.listPlTotalOrderTotalGoodsRank(mgtBasePlatformDto); |
| | | List<MgtMapBigTotalVo> 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); |
| | | goodsRankList = bigListRemoveNull(goodsRankList); |
| | | mgtTotalOrderTotalVo.setGoodsRankList(goodsRankList); |
| | | } |
| | | //获取来源销售排名 |
| | | List<MgtMapTotalPlusVo> orderFromList = orderMapper.listPlTotalOrderTotalOrderFrom(mgtBasePlatformDto); |
| | | List<MgtMapBigTotalVo> 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); |
| | | orderFromList = bigListRemoveNull(orderFromList); |
| | | mgtTotalOrderTotalVo.setOrderFromRankList(orderFromList); |
| | | } |
| | | return mgtTotalOrderTotalVo; |
| | | } |
| | |
| | | * @return MgtTotalActivityTotalVo |
| | | */ |
| | | @Override |
| | | public MgtPlTotalActivityTotalVo getPlTotalActivityAgeRank(MgtPlActivityAgeDto mgtPlActivityAgeDto){ |
| | | public List<MgtMapTotalPlusVo> 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; |
| | | List<MgtMapTotalPlusVo> ageRankList = orderMapper.getPlTotalActivityAgeRank(mgtPlActivityAgeDto); |
| | | return ageRankList; |
| | | } |
| | | |
| | | /** |
| | | * @description 获取优惠券核销信息 |
| | | * @author jqs |
| | | * @date 2023/6/27 11:10 |
| | | * @param verifyCode |
| | | * @return MerVerifyCouponVo |
| | | */ |
| | | @Override |
| | | public MerVerifyCouponVo verifyCoupon(String verifyCode){ |
| | | MerVerifyCouponVo merVerifyCouponVo = new MerVerifyCouponVo(); |
| | | MerVerifyCouponGetVo verifyCouponGetVo = remoteCouponService.getVerifyCoupon(verifyCode).getData(); |
| | | |
| | | return merVerifyCouponVo; |
| | | } |
| | | } |