From e153b340f4371ea7bbeb3009a382837ffd60a4b9 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期一, 28 八月 2023 18:12:01 +0800 Subject: [PATCH] bug --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 593 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 540 insertions(+), 53 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 27c19ec..7562c5b 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 @@ -784,7 +784,7 @@ orderId, order.getPayMoney(), appPlaceOrderDto.getOpenid(), appPlaceOrderDto.getSpbillCreateIp(), goodsNameList,1); //生成自动取消订单延时任务 - String payStr = appPlaceOrderVo.getAppId()+"-"+appPlaceOrderVo.getTimeStamp()+"-"+appPlaceOrderVo.getNonceStr()+"-"+appPlaceOrderVo.getPackageStr()+"-"+appPlaceOrderVo.getSignType()+"-"+appPlaceOrderVo.getSignType()+"-"+appPlaceOrderVo.getPaySign(); + String payStr = appPlaceOrderVo.getAppId()+"-"+appPlaceOrderVo.getTimeStamp()+"-"+appPlaceOrderVo.getNonceStr()+"-"+appPlaceOrderVo.getPackageStr()+"-"+appPlaceOrderVo.getSignType()+"-"+appPlaceOrderVo.getPaySign(); redisService.setCacheObject(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + orderId, payStr , delayTime.longValue(), TimeUnit.MINUTES); DelayTask delayTask = new DelayTask(); delayTask.setDelFlag(0); @@ -1180,11 +1180,11 @@ } appPlaceOrderVo.setEndTime(DateUtils.addMinutes(order.getCreateTime(), delayTime)); // 小程序微信下单支付 - createWxPayInfo(appPlaceOrderVo, userId, order.getShopId(), orderGoods.getGoodsName(), orderNo, + createWxPayInfo(appPlaceOrderVo, userId, order.getShopId(), orderGoods.getGoodsName(), outTradeNo, orderId, order.getPayMoney(), appPlaceActivityDto.getOpenid(), appPlaceActivityDto.getSpbillCreateIp(), goodsNameList,2); //生成自动取消订单延时任务 - String payStr = appPlaceOrderVo.getAppId()+"-"+appPlaceOrderVo.getTimeStamp()+"-"+appPlaceOrderVo.getNonceStr()+"-"+appPlaceOrderVo.getPackageStr()+"-"+appPlaceOrderVo.getSignType()+"-"+appPlaceOrderVo.getSignType()+"-"+appPlaceOrderVo.getPaySign(); + String payStr = appPlaceOrderVo.getAppId()+"-"+appPlaceOrderVo.getTimeStamp()+"-"+appPlaceOrderVo.getNonceStr()+"-"+appPlaceOrderVo.getPackageStr()+"-"+appPlaceOrderVo.getSignType()+"-"+appPlaceOrderVo.getPaySign(); redisService.setCacheObject(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + orderId, payStr , delayTime.longValue(), TimeUnit.MINUTES); DelayTask delayTask = new DelayTask(); delayTask.setDelFlag(0); @@ -1333,7 +1333,7 @@ if(order.getOrderStatus()!=1){ throw new ServiceException(AppErrorConstant.CANCEL_CANCEL_ORDER); } - String payStr = redisService.getCacheObject(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode()+orderId); + String payStr = redisService.getCacheObject(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode()+ "-"+orderId); if(StringUtils.isBlank(payStr)){ throw new ServiceException(AppErrorConstant.CANCEL_CANCEL_ORDER); } @@ -1342,7 +1342,7 @@ delayTime = redisService.getCacheObject(SecurityConstant.AUTO_CANCEL_ORDER_TIME); } AppPlaceOrderVo appPlaceOrderVo = new AppPlaceOrderVo(); - OrderPayment orderPayment = orderPaymentService.getByOrderId(orderId); + OrderPayment orderPayment = orderPaymentService.getByUnpaidOrderId(orderId); String[] payArr = payStr.split("-"); appPlaceOrderVo.setOrderId(order.getOrderId()); appPlaceOrderVo.setOrderNo(order.getOrderNo()); @@ -1703,7 +1703,7 @@ } catch (WxPayException e) { resultMessage = String.format("订单分账:%s 分账失败:%s", orderNo, e.getMessage()); log.info(resultMessage); - e.printStackTrace(); + throw new ServiceException(resultMessage); } // 保存分账信息 @@ -2813,34 +2813,83 @@ List<MgtMapIntTotalVo> goodsTypeTotalList = new ArrayList<>(); List<MgtMapBigTotalVo> goodsTypeMoneyList = new ArrayList<>(); if (MgtMapIntTotalVoGoodsType != null && MgtMapIntTotalVoGoodsType.size() > 0) { - MgtMapIntTotalVo MgtMapIntTotalVo; + MgtMapIntTotalVo mgtMapIntTotalVo; MgtMapBigTotalVo mgtMapBigTotalVo; // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 + Boolean noCycle = true; + Boolean noService = true; + Boolean noExperience = true; + Boolean noGoods = true; for (int i = 0; i < MgtMapIntTotalVoGoodsType.size(); i++) { - MgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo = new MgtMapIntTotalVo(); mgtMapBigTotalVo = new MgtMapBigTotalVo(); - MgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); + mgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); mgtMapBigTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond()); if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("1")) { - MgtMapIntTotalVo.setMapKey("周期"); + mgtMapIntTotalVo.setMapKey("周期"); mgtMapBigTotalVo.setMapKey("周期"); mgtTotalOrderTotalVo.setCycleTotal(mgtTotalOrderTotalVo.getCycleTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); mgtTotalOrderTotalVo.setCycleMoney(mgtTotalOrderTotalVo.getCycleMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); + noCycle= false; } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) { - MgtMapIntTotalVo.setMapKey("服务"); + mgtMapIntTotalVo.setMapKey("服务"); mgtMapBigTotalVo.setMapKey("服务"); mgtTotalOrderTotalVo.setServiceTotal(mgtTotalOrderTotalVo.getServiceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); mgtTotalOrderTotalVo.setServiceMoney(mgtTotalOrderTotalVo.getServiceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); + noService= false; } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) { - MgtMapIntTotalVo.setMapKey("体验"); + mgtMapIntTotalVo.setMapKey("体验"); mgtMapBigTotalVo.setMapKey("体验"); mgtTotalOrderTotalVo.setExperienceTotal(mgtTotalOrderTotalVo.getExperienceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); mgtTotalOrderTotalVo.setExperienceMoney(mgtTotalOrderTotalVo.getExperienceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); + noExperience = false; } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) { - MgtMapIntTotalVo.setMapKey("单品"); + mgtMapIntTotalVo.setMapKey("单品"); mgtMapBigTotalVo.setMapKey("单品"); + noGoods = false; } - goodsTypeTotalList.add(MgtMapIntTotalVo); + //补充缺少类型 + if(noCycle){ + mgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo.setMapKey("周期"); + mgtMapIntTotalVo.setMapValue(0); + goodsTypeTotalList.add(mgtMapIntTotalVo); + mgtMapBigTotalVo = new MgtMapBigTotalVo(); + mgtMapBigTotalVo.setMapKey("周期"); + mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO); + goodsTypeMoneyList.add(mgtMapBigTotalVo); + } + if(noService){ + mgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo.setMapKey("服务"); + mgtMapIntTotalVo.setMapValue(0); + goodsTypeTotalList.add(mgtMapIntTotalVo); + mgtMapBigTotalVo = new MgtMapBigTotalVo(); + mgtMapBigTotalVo.setMapKey("服务"); + mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO); + goodsTypeMoneyList.add(mgtMapBigTotalVo); + } + if(noExperience){ + mgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo.setMapKey("体验"); + mgtMapIntTotalVo.setMapValue(0); + goodsTypeTotalList.add(mgtMapIntTotalVo); + mgtMapBigTotalVo = new MgtMapBigTotalVo(); + mgtMapBigTotalVo.setMapKey("体验"); + mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO); + goodsTypeMoneyList.add(mgtMapBigTotalVo); + } + if(noGoods){ + mgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo.setMapKey("单品"); + mgtMapIntTotalVo.setMapValue(0); + goodsTypeTotalList.add(mgtMapIntTotalVo); + mgtMapBigTotalVo = new MgtMapBigTotalVo(); + mgtMapBigTotalVo.setMapKey("单品"); + mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO); + goodsTypeMoneyList.add(mgtMapBigTotalVo); + } + goodsTypeTotalList.add(mgtMapIntTotalVo); goodsTypeMoneyList.add(mgtMapBigTotalVo); } mgtTotalOrderTotalVo.setGoodsTypeTotalList(goodsTypeTotalList); @@ -2861,8 +2910,8 @@ //订单分布 //日期全部时固定为5天 if(StringUtils.isBlank(mgtBaseShopDto.getStartDate())){ - mgtBaseShopDto.setStartDate(DateUtils.getDate()); - mgtBaseShopDto.setEndDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4))); + mgtBaseShopDto.setEndDate(DateUtils.getDate()); + mgtBaseShopDto.setStartDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4))); } List<MgtMapTotalPlusVo> MgtMapIntTotalVos = orderMapper.listTotalOrderTotal(mgtBaseShopDto); if (MgtMapIntTotalVos != null && MgtMapIntTotalVos.size() > 0) { @@ -2942,34 +2991,83 @@ totalActivityTotalVo.setExperienceTotal(0); totalActivityTotalVo.setExperienceMoney(BigDecimal.ZERO); // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 - MgtMapIntTotalVo MgtMapIntTotalVo; + MgtMapIntTotalVo mgtMapIntTotalVo; MgtMapBigTotalVo mgtMapBigTotalVo; // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 + Boolean noCycle = true; + Boolean noService = true; + Boolean noExperience = true; + Boolean noGoods = true; for (int i = 0; i < MgtMapIntTotalVoGoodsType.size(); i++) { - MgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo = new MgtMapIntTotalVo(); mgtMapBigTotalVo = new MgtMapBigTotalVo(); - MgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); + mgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); mgtMapBigTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond()); if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("1")) { - MgtMapIntTotalVo.setMapKey("周期"); + mgtMapIntTotalVo.setMapKey("周期"); mgtMapBigTotalVo.setMapKey("周期"); totalActivityTotalVo.setCycleTotal(totalActivityTotalVo.getCycleTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); totalActivityTotalVo.setCycleMoney(totalActivityTotalVo.getCycleMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); + noCycle= false; } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) { - MgtMapIntTotalVo.setMapKey("服务"); + mgtMapIntTotalVo.setMapKey("服务"); mgtMapBigTotalVo.setMapKey("服务"); totalActivityTotalVo.setServiceTotal(totalActivityTotalVo.getServiceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); totalActivityTotalVo.setServiceMoney(totalActivityTotalVo.getServiceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); + noService= false; } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) { - MgtMapIntTotalVo.setMapKey("体验"); + mgtMapIntTotalVo.setMapKey("体验"); mgtMapBigTotalVo.setMapKey("体验"); totalActivityTotalVo.setExperienceTotal(totalActivityTotalVo.getExperienceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); totalActivityTotalVo.setExperienceMoney(totalActivityTotalVo.getExperienceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); + noExperience = false; } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) { - MgtMapIntTotalVo.setMapKey("单品"); + mgtMapIntTotalVo.setMapKey("单品"); mgtMapBigTotalVo.setMapKey("单品"); + noGoods = false; } - goodsTypeTotalList.add(MgtMapIntTotalVo); + goodsTypeTotalList.add(mgtMapIntTotalVo); + goodsTypeMoneyList.add(mgtMapBigTotalVo); + } + //补充缺少类型 + if(noCycle){ + mgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo.setMapKey("周期"); + mgtMapIntTotalVo.setMapValue(0); + goodsTypeTotalList.add(mgtMapIntTotalVo); + mgtMapBigTotalVo = new MgtMapBigTotalVo(); + mgtMapBigTotalVo.setMapKey("周期"); + mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO); + goodsTypeMoneyList.add(mgtMapBigTotalVo); + } + if(noService){ + mgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo.setMapKey("服务"); + mgtMapIntTotalVo.setMapValue(0); + goodsTypeTotalList.add(mgtMapIntTotalVo); + mgtMapBigTotalVo = new MgtMapBigTotalVo(); + mgtMapBigTotalVo.setMapKey("服务"); + mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO); + goodsTypeMoneyList.add(mgtMapBigTotalVo); + } + if(noExperience){ + mgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo.setMapKey("体验"); + mgtMapIntTotalVo.setMapValue(0); + goodsTypeTotalList.add(mgtMapIntTotalVo); + mgtMapBigTotalVo = new MgtMapBigTotalVo(); + mgtMapBigTotalVo.setMapKey("体验"); + mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO); + goodsTypeMoneyList.add(mgtMapBigTotalVo); + } + if(noGoods){ + mgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo.setMapKey("单品"); + mgtMapIntTotalVo.setMapValue(0); + goodsTypeTotalList.add(mgtMapIntTotalVo); + mgtMapBigTotalVo = new MgtMapBigTotalVo(); + mgtMapBigTotalVo.setMapKey("单品"); + mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO); goodsTypeMoneyList.add(mgtMapBigTotalVo); } totalActivityTotalVo.setGoodsTypeTotalList(goodsTypeTotalList); @@ -2979,8 +3077,8 @@ //获取订单分布 //日期全部时固定为5天 if(StringUtils.isBlank(mgtBaseShopDto.getStartDate())){ - mgtBaseShopDto.setStartDate(DateUtils.getDate()); - mgtBaseShopDto.setEndDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4))); + mgtBaseShopDto.setEndDate(DateUtils.getDate()); + mgtBaseShopDto.setStartDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4))); } List<MgtMapTotalPlusVo> MgtMapIntTotalVos = orderMapper.listTotalActivityTotal(mgtBaseShopDto); if (MgtMapIntTotalVos != null && MgtMapIntTotalVos.size() > 0) { @@ -2995,6 +3093,46 @@ totalActivityTotalVo.setOrderTotalKey(orderTotalKey); totalActivityTotalVo.setOrderTotalValue(orderTotalValue); totalActivityTotalVo.setOrderMoneyValue(orderMoneyValue); + } + //参与人数 + List<MgtMapIntTotalVo> joinList = orderMapper.getActivityMemberTotal(mgtBaseShopDto); + // 将查询结果转为Map + Map<String, Integer> mgtMapIntTotalVoMap = new HashMap<>(); + if (joinList != null && !joinList.isEmpty()) { + mgtMapIntTotalVoMap = joinList.stream() + .collect(Collectors.toMap(MgtMapIntTotalVo::getMapKey, MgtMapIntTotalVo::getMapValue)); + } + // 获取日期范围 + List<String> dateList = getDateRange(mgtBaseShopDto.getStartDate(), mgtBaseShopDto.getEndDate()); + int size = dateList.size(); + // 创建日期和成员总数的数组 + String[] joinMemberTotalKey = new String[size]; + Integer[] joinMemberTotalValue = new Integer[size]; + // 遍历日期列表,设置日期和成员总数的数组 + String str; + Integer value; + for (int i = 0; i < size; i++) { + str = dateList.get(i); + joinMemberTotalKey[i] = str; + value = mgtMapIntTotalVoMap.get(str); + joinMemberTotalValue[i] = (value != null) ? value : 0; + } + totalActivityTotalVo.setJoinMemberTotalKey(joinMemberTotalKey); + totalActivityTotalVo.setJoinMemberTotalValue(joinMemberTotalValue); + return totalActivityTotalVo; + } + + @Override + public MgtTotalActivityTotalVo getTotalActivityJoinMemberTotal(MgtBaseShopDto mgtBaseShopDto) { + MgtTotalActivityTotalVo totalActivityTotalVo = new MgtTotalActivityTotalVo(); + //日期全部时固定为5天 + if(StringUtils.isBlank(mgtBaseShopDto.getStartDate())){ + mgtBaseShopDto.setEndDate(DateUtils.getDate()); + mgtBaseShopDto.setStartDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4))); + } + if(mgtBaseShopDto.getAgeType()!=null){ + List<Long> userIdList = remoteMemberService.listUserIdByAgeType(mgtBaseShopDto.getAgeType()).getData(); + mgtBaseShopDto.setUserIdList(userIdList); } //参与人数 List<MgtMapIntTotalVo> joinList = orderMapper.getActivityMemberTotal(mgtBaseShopDto); @@ -3129,10 +3267,28 @@ mgtBasePlatformDto.setUserIdList(userIdList); } } - List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData(); + List<Long> shopIdList = new ArrayList<>(); + if(mgtBasePlatformDto.getShopId()!=null){ + shopIdList.add(mgtBasePlatformDto.getShopId()); + }else{ + shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData(); + } List<MgtTotalDataTotalVo> mgtTotalDataTotalVoList = new ArrayList<>(); MgtBaseShopDto mgtBaseShopDto; MgtTotalDataTotalVo mgtTotalDataTotalVo; + MgtSimpleShopVo simpleShopVo; + HashSet<String> set = new HashSet<>(); + // 遍历MgtMemberOrderPageVoList,获取shopId并添加到set中 + for (Long entity : shopIdList) { + set.add(entity.toString()); + } + String joinedString = String.join(",", set); + MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto(); + mgtBaseBathDto.setIds(joinedString); + List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(mgtBaseBathDto).getData(); + // 将MgtSimpleShopVoList转换为Map<Long, MgtSimpleShopVo>,以便后续根据shopId获取对应的MgtSimpleShopVo + Map<Long, MgtSimpleShopVo> shopMap = simpleShopVoList.stream() + .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity())); if (shopIdList != null && !shopIdList.isEmpty()) { for (Long shopId : shopIdList) { mgtBaseShopDto = new MgtBaseShopDto(); @@ -3140,8 +3296,10 @@ mgtBaseShopDto.setEndDate(mgtBasePlatformDto.getEndDate()); mgtBaseShopDto.setShopId(shopId); mgtTotalDataTotalVo = this.getTotalDataTotal(mgtBaseShopDto); - Shop shop = remoteShopService.getShop(shopId).getData(); - mgtTotalDataTotalVo.setShopName(shop.getShopName()); + simpleShopVo = shopMap.get(shopId); + if (simpleShopVo!=null) { + mgtTotalDataTotalVo.setShopName(simpleShopVo.getShopName()); + } mgtTotalDataTotalVoList.add(mgtTotalDataTotalVo); } } @@ -3191,34 +3349,83 @@ mgtTotalOrderTotalVo.setExperienceTotal(0); mgtTotalOrderTotalVo.setExperienceMoney(BigDecimal.ZERO); if (MgtMapIntTotalVoGoodsType != null && MgtMapIntTotalVoGoodsType.size() > 0) { - MgtMapIntTotalVo MgtMapIntTotalVo; + MgtMapIntTotalVo mgtMapIntTotalVo; MgtMapBigTotalVo mgtMapBigTotalVo; // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 + Boolean noCycle = true; + Boolean noService = true; + Boolean noExperience = true; + Boolean noGoods = true; for (int i = 0; i < MgtMapIntTotalVoGoodsType.size(); i++) { - MgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo = new MgtMapIntTotalVo(); mgtMapBigTotalVo = new MgtMapBigTotalVo(); - MgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); + mgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); mgtMapBigTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond()); if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("1")) { - MgtMapIntTotalVo.setMapKey("周期"); + mgtMapIntTotalVo.setMapKey("周期"); mgtMapBigTotalVo.setMapKey("周期"); mgtTotalOrderTotalVo.setCycleTotal(mgtTotalOrderTotalVo.getCycleTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); mgtTotalOrderTotalVo.setCycleMoney(mgtTotalOrderTotalVo.getCycleMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); + noCycle= false; } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) { - MgtMapIntTotalVo.setMapKey("服务"); + mgtMapIntTotalVo.setMapKey("服务"); mgtMapBigTotalVo.setMapKey("服务"); mgtTotalOrderTotalVo.setServiceTotal(mgtTotalOrderTotalVo.getServiceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); mgtTotalOrderTotalVo.setServiceMoney(mgtTotalOrderTotalVo.getServiceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); + noService= false; } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) { - MgtMapIntTotalVo.setMapKey("体验"); + mgtMapIntTotalVo.setMapKey("体验"); mgtMapBigTotalVo.setMapKey("体验"); mgtTotalOrderTotalVo.setExperienceTotal(mgtTotalOrderTotalVo.getExperienceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); mgtTotalOrderTotalVo.setExperienceMoney(mgtTotalOrderTotalVo.getExperienceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); + noExperience = false; } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) { - MgtMapIntTotalVo.setMapKey("单品"); + mgtMapIntTotalVo.setMapKey("单品"); mgtMapBigTotalVo.setMapKey("单品"); + noGoods = false; } - goodsTypeTotalList.add(MgtMapIntTotalVo); + goodsTypeTotalList.add(mgtMapIntTotalVo); + goodsTypeMoneyList.add(mgtMapBigTotalVo); + } + //补充缺少类型 + if(noCycle){ + mgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo.setMapKey("周期"); + mgtMapIntTotalVo.setMapValue(0); + goodsTypeTotalList.add(mgtMapIntTotalVo); + mgtMapBigTotalVo = new MgtMapBigTotalVo(); + mgtMapBigTotalVo.setMapKey("周期"); + mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO); + goodsTypeMoneyList.add(mgtMapBigTotalVo); + } + if(noService){ + mgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo.setMapKey("服务"); + mgtMapIntTotalVo.setMapValue(0); + goodsTypeTotalList.add(mgtMapIntTotalVo); + mgtMapBigTotalVo = new MgtMapBigTotalVo(); + mgtMapBigTotalVo.setMapKey("服务"); + mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO); + goodsTypeMoneyList.add(mgtMapBigTotalVo); + } + if(noExperience){ + mgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo.setMapKey("体验"); + mgtMapIntTotalVo.setMapValue(0); + goodsTypeTotalList.add(mgtMapIntTotalVo); + mgtMapBigTotalVo = new MgtMapBigTotalVo(); + mgtMapBigTotalVo.setMapKey("体验"); + mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO); + goodsTypeMoneyList.add(mgtMapBigTotalVo); + } + if(noGoods){ + mgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo.setMapKey("单品"); + mgtMapIntTotalVo.setMapValue(0); + goodsTypeTotalList.add(mgtMapIntTotalVo); + mgtMapBigTotalVo = new MgtMapBigTotalVo(); + mgtMapBigTotalVo.setMapKey("单品"); + mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO); goodsTypeMoneyList.add(mgtMapBigTotalVo); } mgtTotalOrderTotalVo.setGoodsTypeTotalList(goodsTypeTotalList); @@ -3239,8 +3446,8 @@ //订单分布 //日期全部时固定为5天 if(StringUtils.isBlank(mgtBasePlatformDto.getStartDate())){ - mgtBasePlatformDto.setStartDate(DateUtils.getDate()); - mgtBasePlatformDto.setEndDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4))); + mgtBasePlatformDto.setEndDate(DateUtils.getDate()); + mgtBasePlatformDto.setStartDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4))); } List<MgtMapTotalPlusVo> MgtMapIntTotalVos = orderMapper.listPlTotalOrderTotal(mgtBasePlatformDto); if (MgtMapIntTotalVos != null && MgtMapIntTotalVos.size() > 0) { @@ -3273,7 +3480,7 @@ return new MgtPlTotalActivityTotalVo(); } //获取需要关联的用户id集合 - if (mgtBasePlatformDto.getDeptId() != null) { + /*if (mgtBasePlatformDto.getDeptId() != null) { List<Long> userIdList = new ArrayList<>(); if (mgtBasePlatformDto.getUserId() != null) { userIdList.add(mgtBasePlatformDto.getUserId()); @@ -3286,7 +3493,7 @@ if (!userIdList.isEmpty()) { mgtBasePlatformDto.setUserIdList(userIdList); } - } + }*/ List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData(); mgtBasePlatformDto.setShopIdList(shopIdList); //获取基础统计 @@ -3308,41 +3515,90 @@ totalActivityTotalVo.setExperienceTotal(0); totalActivityTotalVo.setExperienceMoney(BigDecimal.ZERO); if (MgtMapIntTotalVoGoodsType != null && MgtMapIntTotalVoGoodsType.size() > 0) { - MgtMapIntTotalVo MgtMapIntTotalVo; + MgtMapIntTotalVo mgtMapIntTotalVo; MgtMapBigTotalVo mgtMapBigTotalVo; // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 + Boolean noCycle = true; + Boolean noService = true; + Boolean noExperience = true; + Boolean noGoods = true; for (int i = 0; i < MgtMapIntTotalVoGoodsType.size(); i++) { - MgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo = new MgtMapIntTotalVo(); mgtMapBigTotalVo = new MgtMapBigTotalVo(); - MgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); + mgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); mgtMapBigTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond()); if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("1")) { - MgtMapIntTotalVo.setMapKey("周期"); + mgtMapIntTotalVo.setMapKey("周期"); mgtMapBigTotalVo.setMapKey("周期"); totalActivityTotalVo.setCycleTotal(totalActivityTotalVo.getCycleTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); totalActivityTotalVo.setCycleMoney(totalActivityTotalVo.getCycleMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); + noCycle= false; } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) { - MgtMapIntTotalVo.setMapKey("服务"); + mgtMapIntTotalVo.setMapKey("服务"); mgtMapBigTotalVo.setMapKey("服务"); totalActivityTotalVo.setServiceTotal(totalActivityTotalVo.getServiceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); totalActivityTotalVo.setServiceMoney(totalActivityTotalVo.getServiceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); + noService= false; } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) { - MgtMapIntTotalVo.setMapKey("体验"); + mgtMapIntTotalVo.setMapKey("体验"); mgtMapBigTotalVo.setMapKey("体验"); totalActivityTotalVo.setExperienceTotal(totalActivityTotalVo.getExperienceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); totalActivityTotalVo.setExperienceMoney(totalActivityTotalVo.getExperienceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); + noExperience = false; } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) { - MgtMapIntTotalVo.setMapKey("单品"); + mgtMapIntTotalVo.setMapKey("单品"); mgtMapBigTotalVo.setMapKey("单品"); + noGoods = false; } + } + //补充缺少类型 + if(noCycle){ + mgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo.setMapKey("周期"); + mgtMapIntTotalVo.setMapValue(0); + goodsTypeTotalList.add(mgtMapIntTotalVo); + mgtMapBigTotalVo = new MgtMapBigTotalVo(); + mgtMapBigTotalVo.setMapKey("周期"); + mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO); + goodsTypeMoneyList.add(mgtMapBigTotalVo); + } + if(noService){ + mgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo.setMapKey("服务"); + mgtMapIntTotalVo.setMapValue(0); + goodsTypeTotalList.add(mgtMapIntTotalVo); + mgtMapBigTotalVo = new MgtMapBigTotalVo(); + mgtMapBigTotalVo.setMapKey("服务"); + mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO); + goodsTypeMoneyList.add(mgtMapBigTotalVo); + } + if(noExperience){ + mgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo.setMapKey("体验"); + mgtMapIntTotalVo.setMapValue(0); + goodsTypeTotalList.add(mgtMapIntTotalVo); + mgtMapBigTotalVo = new MgtMapBigTotalVo(); + mgtMapBigTotalVo.setMapKey("体验"); + mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO); + goodsTypeMoneyList.add(mgtMapBigTotalVo); + } + if(noGoods){ + mgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo.setMapKey("单品"); + mgtMapIntTotalVo.setMapValue(0); + goodsTypeTotalList.add(mgtMapIntTotalVo); + mgtMapBigTotalVo = new MgtMapBigTotalVo(); + mgtMapBigTotalVo.setMapKey("单品"); + mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO); + goodsTypeMoneyList.add(mgtMapBigTotalVo); } totalActivityTotalVo.setGoodsTypeTotalList(goodsTypeTotalList); totalActivityTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList); } //日期全部时固定为5天 if(StringUtils.isBlank(mgtBasePlatformDto.getStartDate())){ - mgtBasePlatformDto.setStartDate(DateUtils.getDate()); - mgtBasePlatformDto.setEndDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4))); + mgtBasePlatformDto.setEndDate(DateUtils.getDate()); + mgtBasePlatformDto.setStartDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4))); } //获取订单分布 List<MgtMapTotalPlusVo> MgtMapIntTotalVos = orderMapper.listPlTotalActivityTotal(mgtBasePlatformDto); @@ -3446,14 +3702,137 @@ // 遍历日期列表,设置日期和成员总数的数组 for (int i = 0; i < size; i++) { str = dateList.get(i); - joinMemberTotalKey[i] = str; + getMemberTotalKey[i] = str; value = getMemberMap.get(str); - joinMemberTotalValue[i] = (value != null) ? value : 0; + getMemberTotalValue[i] = (value != null) ? value : 0; } totalActivityTotalVo.setGetMemberTotalKey(getMemberTotalKey); totalActivityTotalVo.setGetMemberTotalValue(getMemberTotalValue); return totalActivityTotalVo; } + + + @Override + public MgtPlTotalActivityTotalVo getPlTotalActivityJoinMemberTotal(MgtBasePlatformDto mgtBasePlatformDto) { + if(mgtBasePlatformDto.getActivityFrom()!=null&&mgtBasePlatformDto.getActivityFrom() == 2){ + return new MgtPlTotalActivityTotalVo(); + } + //获取需要关联的用户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); + } + }*/ + if(mgtBasePlatformDto.getAgeType()!=null){ + List<Long> userIdList = remoteMemberService.listUserIdByAgeType(mgtBasePlatformDto.getAgeType()).getData(); + mgtBasePlatformDto.setUserIdList(userIdList); + } + List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData(); + mgtBasePlatformDto.setShopIdList(shopIdList); + MgtPlTotalActivityTotalVo totalActivityTotalVo = new MgtPlTotalActivityTotalVo(); + //日期全部时固定为5天 + if(StringUtils.isBlank(mgtBasePlatformDto.getStartDate())){ + mgtBasePlatformDto.setEndDate(DateUtils.getDate()); + mgtBasePlatformDto.setStartDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4))); + } + //参与人数 + List<MgtMapIntTotalVo> joinList = orderMapper.getMgtActivityMemberTotal(mgtBasePlatformDto); + // 将查询结果转为Map + Map<String, Integer> mgtMapIntTotalVoMap = new HashMap<>(); + if (joinList != null && !joinList.isEmpty()) { + mgtMapIntTotalVoMap = joinList.stream() + .collect(Collectors.toMap(MgtMapIntTotalVo::getMapKey, MgtMapIntTotalVo::getMapValue)); + } + // 获取日期范围 + List<String> dateList = getDateRange(mgtBasePlatformDto.getStartDate(), mgtBasePlatformDto.getEndDate()); + int size = dateList.size(); + // 创建日期和成员总数的数组 + String[] joinMemberTotalKey = new String[size]; + Integer[] joinMemberTotalValue = new Integer[size]; + // 遍历日期列表,设置日期和成员总数的数组 + String str; + Integer value; + for (int i = 0; i < size; i++) { + str = dateList.get(i); + joinMemberTotalKey[i] = str; + value = mgtMapIntTotalVoMap.get(str); + joinMemberTotalValue[i] = (value != null) ? value : 0; + } + totalActivityTotalVo.setJoinMemberTotalKey(joinMemberTotalKey); + totalActivityTotalVo.setJoinMemberTotalValue(joinMemberTotalValue); + return totalActivityTotalVo; + } + + @Override + public MgtPlTotalActivityTotalVo getPlTotalActivityGetMemberTotal(MgtBasePlatformDto mgtBasePlatformDto) { + if(mgtBasePlatformDto.getActivityFrom()!=null&&mgtBasePlatformDto.getActivityFrom() == 2){ + return new MgtPlTotalActivityTotalVo(); + } + //获取需要关联的用户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); + } + }*/ + if(mgtBasePlatformDto.getAgeType()!=null){ + List<Long> userIdList = remoteMemberService.listUserIdByAgeType(mgtBasePlatformDto.getAgeType()).getData(); + mgtBasePlatformDto.setUserIdList(userIdList); + } + List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData(); + mgtBasePlatformDto.setShopIdList(shopIdList); + MgtPlTotalActivityTotalVo totalActivityTotalVo = new MgtPlTotalActivityTotalVo(); + //日期全部时固定为5天 + if(StringUtils.isBlank(mgtBasePlatformDto.getStartDate())){ + mgtBasePlatformDto.setEndDate(DateUtils.getDate()); + mgtBasePlatformDto.setStartDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4))); + } + //获客人数 + List<MgtMapIntTotalVo> getList = orderMapper.getMgtActivityGetMemberTotal(mgtBasePlatformDto); + // 将查询结果转为Map + Map<String, Integer> getMemberMap = new HashMap<>(); + if (getList != null && !getList.isEmpty()) { + getMemberMap = getList.stream() + .collect(Collectors.toMap(MgtMapIntTotalVo::getMapKey, MgtMapIntTotalVo::getMapValue)); + } + // 获取日期范围 + List<String> dateList = getDateRange(mgtBasePlatformDto.getStartDate(), mgtBasePlatformDto.getEndDate()); + int size = dateList.size(); + // 创建日期和成员总数的数组 + String[] getMemberTotalKey = new String[size]; + Integer[] getMemberTotalValue = new Integer[size]; + // 遍历日期列表,设置日期和成员总数的数组 + String str; + Integer value; + // 遍历日期列表,设置日期和成员总数的数组 + for (int i = 0; i < size; i++) { + str = dateList.get(i); + getMemberTotalKey[i] = str; + value = getMemberMap.get(str); + getMemberTotalValue[i] = (value != null) ? value : 0; + } + totalActivityTotalVo.setGetMemberTotalKey(getMemberTotalKey); + totalActivityTotalVo.setGetMemberTotalValue(getMemberTotalValue); + return totalActivityTotalVo; + } + /** * @param mgtPlActivityAgeDto @@ -3823,6 +4202,10 @@ bigTotal = hundredBig; } // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 + Boolean noCycle = true; + Boolean noService = true; + Boolean noExperience = true; + Boolean noGoods = true; for (int i = 0; i < MgtMapIntTotalVoGoodsType.size(); i++) { mgtMapIntTotalVo = new MgtMapIntTotalVo(); mgtMapBigTotalVo = new MgtMapBigTotalVo(); @@ -3833,17 +4216,62 @@ if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("1")) { mgtMapIntTotalVo.setMapKey("周期"); mgtMapBigTotalVo.setMapKey("周期"); + noCycle= false; } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) { mgtMapIntTotalVo.setMapKey("服务"); mgtMapBigTotalVo.setMapKey("服务"); + noService= false; } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) { mgtMapIntTotalVo.setMapKey("体验"); mgtMapBigTotalVo.setMapKey("体验"); + noExperience = false; } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) { mgtMapIntTotalVo.setMapKey("单品"); mgtMapBigTotalVo.setMapKey("单品"); + noGoods = false; } goodsTypeTotalList.add(mgtMapIntTotalVo); + goodsTypeMoneyList.add(mgtMapBigTotalVo); + } + //补充缺少类型 + if(noCycle){ + mgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo.setMapKey("周期"); + mgtMapIntTotalVo.setMapValue(0); + goodsTypeTotalList.add(mgtMapIntTotalVo); + mgtMapBigTotalVo = new MgtMapBigTotalVo(); + mgtMapBigTotalVo.setMapKey("周期"); + mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO); + goodsTypeMoneyList.add(mgtMapBigTotalVo); + } + if(noService){ + mgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo.setMapKey("服务"); + mgtMapIntTotalVo.setMapValue(0); + goodsTypeTotalList.add(mgtMapIntTotalVo); + mgtMapBigTotalVo = new MgtMapBigTotalVo(); + mgtMapBigTotalVo.setMapKey("服务"); + mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO); + goodsTypeMoneyList.add(mgtMapBigTotalVo); + } + if(noExperience){ + mgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo.setMapKey("体验"); + mgtMapIntTotalVo.setMapValue(0); + goodsTypeTotalList.add(mgtMapIntTotalVo); + mgtMapBigTotalVo = new MgtMapBigTotalVo(); + mgtMapBigTotalVo.setMapKey("体验"); + mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO); + goodsTypeMoneyList.add(mgtMapBigTotalVo); + } + if(noGoods){ + mgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo.setMapKey("单品"); + mgtMapIntTotalVo.setMapValue(0); + goodsTypeTotalList.add(mgtMapIntTotalVo); + mgtMapBigTotalVo = new MgtMapBigTotalVo(); + mgtMapBigTotalVo.setMapKey("单品"); + mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO); goodsTypeMoneyList.add(mgtMapBigTotalVo); } orderTypeTotalVo.setGoodsTypeTotalList(goodsTypeTotalList); @@ -4063,7 +4491,7 @@ @Override @Transactional public void payBack(PartnerTransactionsResult transaction) { - + log.info("订单支付回调---"+transaction.toString()); // Order order = this.getById(orderId); // 更新订单状态 outTradeNo String outTradeNo = transaction.getOutTradeNo(); @@ -4558,6 +4986,15 @@ return orderDistributionTotalVo; } + /** + * @description 补时间 + * @author jqs + * @date 2023/8/28 15:03 + * @param orderTotalKey + * @param orderTotalValue + * @param orderMoneyValue + * @return MerOrderDistributionTotalVo + */ public MerOrderDistributionTotalVo fillOrderTotalKeyAndValuesToRecentFiveDays(String[] orderTotalKey,Integer[] orderTotalValue,BigDecimal[] orderMoneyValue) { MerOrderDistributionTotalVo orderDistributionTotalVo = new MerOrderDistributionTotalVo(); // 获取当前日期 @@ -4599,6 +5036,7 @@ orderDistributionTotalVo.setOrderMoneyValue(orderMoneyValue); return orderDistributionTotalVo; } + private int getIndexInOrderTotalKey(String day,String[] orderTotalKey) { for (int i = 0; i < orderTotalKey.length; i++) { @@ -4643,6 +5081,10 @@ bigTotal = hundredBig; } // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 + Boolean noCycle = true; + Boolean noService = true; + Boolean noExperience = true; + Boolean noGoods = true; for (int i = 0; i < MgtMapIntTotalVoGoodsType.size(); i++) { mgtMapIntTotalVo = new MgtMapIntTotalVo(); mgtMapBigTotalVo = new MgtMapBigTotalVo(); @@ -4653,19 +5095,64 @@ if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("1")) { mgtMapIntTotalVo.setMapKey("周期"); mgtMapBigTotalVo.setMapKey("周期"); + noCycle= false; } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) { mgtMapIntTotalVo.setMapKey("服务"); mgtMapBigTotalVo.setMapKey("服务"); + noService= false; } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) { mgtMapIntTotalVo.setMapKey("体验"); mgtMapBigTotalVo.setMapKey("体验"); + noExperience = false; } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) { mgtMapIntTotalVo.setMapKey("单品"); mgtMapBigTotalVo.setMapKey("单品"); + noGoods = false; } goodsTypeTotalList.add(mgtMapIntTotalVo); goodsTypeMoneyList.add(mgtMapBigTotalVo); } + //补充缺少类型 + if(noCycle){ + mgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo.setMapKey("周期"); + mgtMapIntTotalVo.setMapValue(0); + goodsTypeTotalList.add(mgtMapIntTotalVo); + mgtMapBigTotalVo = new MgtMapBigTotalVo(); + mgtMapBigTotalVo.setMapKey("周期"); + mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO); + goodsTypeMoneyList.add(mgtMapBigTotalVo); + } + if(noService){ + mgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo.setMapKey("服务"); + mgtMapIntTotalVo.setMapValue(0); + goodsTypeTotalList.add(mgtMapIntTotalVo); + mgtMapBigTotalVo = new MgtMapBigTotalVo(); + mgtMapBigTotalVo.setMapKey("服务"); + mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO); + goodsTypeMoneyList.add(mgtMapBigTotalVo); + } + if(noExperience){ + mgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo.setMapKey("体验"); + mgtMapIntTotalVo.setMapValue(0); + goodsTypeTotalList.add(mgtMapIntTotalVo); + mgtMapBigTotalVo = new MgtMapBigTotalVo(); + mgtMapBigTotalVo.setMapKey("体验"); + mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO); + goodsTypeMoneyList.add(mgtMapBigTotalVo); + } + if(noGoods){ + mgtMapIntTotalVo = new MgtMapIntTotalVo(); + mgtMapIntTotalVo.setMapKey("单品"); + mgtMapIntTotalVo.setMapValue(0); + goodsTypeTotalList.add(mgtMapIntTotalVo); + mgtMapBigTotalVo = new MgtMapBigTotalVo(); + mgtMapBigTotalVo.setMapKey("单品"); + mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO); + goodsTypeMoneyList.add(mgtMapBigTotalVo); + } orderTypeTotalVo.setGoodsTypeTotalList(goodsTypeTotalList); orderTypeTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList); } -- Gitblit v1.7.1