diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumChart.java b/mallinkService/src/main/java/com/iformall/enums/EnumChart.java index 26f9b08da..ac74c6d6d 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumChart.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumChart.java @@ -51,7 +51,9 @@ public enum EnumChart { HYHYD(44, "会员活跃度"), SALE_CARD(45, "卡营销数据"), - SALE_COUPON(46, "卷营销数据"); + SALE_COUPON(46, "卷营销数据"), + SALE_PRESS(47, "砍价营销数据"), + SALE_GROUP(48, "拼团营销数据"),; public static EnumChart getEnum(Integer code) { for (EnumChart value : values()) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java index 4c4f06fdc..03d4ac8b0 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java @@ -60,7 +60,8 @@ public class WxChartServiceImpl implements WxChartDataService { WxCUserTagsMapper wxCUserTagsMapper; @Autowired WxCouponService wxCouponService; - + @Autowired + WxOrderGroupMapper wxOrderGroupMapper; @Override public ResultData queryData(Map paramsMap) { @@ -1571,6 +1572,74 @@ public class WxChartServiceImpl implements WxChartDataService { result.put("sumSubsidyMoney",wxCouponService.findSumSubsidyMoney(wxCoupon)); return new ResultData(result); } + + //拼团营销数据 + if (chart.equals(EnumChart.SALE_GROUP.getCode())) { + Map params = new HashMap<>(); + params.put("tenantId", tenantId); + //默认时间本月第一天,截止到当天 + Map result = new HashMap<>(); + Date startTime = new Date(); + Date endTime = startTime; + if (startdate == null) { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1); + startTime = c.getTime(); + params.put("startdate", startTime); + } else { + startTime = DateUtils.stringToDate(startdate + " 00:00:00"); + params.put("startdate", startTime); + } + if (enddate == null) { + params.put("enddate", endTime); + } else { + endTime = DateUtils.stringToDate(enddate + " 23:59:59"); + params.put("enddate", endTime); + } + + List> successlist = wxOrderGroupMapper.queryOrderGroupSuccessCountAndTime(params); + List> verifyList = wxOrderGroupMapper.queryOrderGroupVerifyCountAndTime(params); + + Map successMap = getDateMap(startTime, endTime); + Map verifyMap = getDateMap(startTime, endTime); + + long successCount = wxOrderGroupMapper.queryOrderGroupSuccessCount(params); + long groupCount = wxOrderGroupMapper.queryOrderGroupCount(params); + long peopleCount = wxOrderGroupMapper.queryOrderGroupPeopleCount(params); + double transferRatio = 0; + if (groupCount > 0) { + double transfer = (double) successCount / groupCount * 100; + transferRatio = new BigDecimal(transfer).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + } + + Map successListMap = successlist.parallelStream().collect(Collectors.toMap(x -> { + return x.get("time").toString(); + }, x -> { + return (long) x.get("total"); + })); + + Map verifyListMap = successlist.parallelStream().collect(Collectors.toMap(x -> { + return x.get("time").toString(); + }, x -> { + return (long) x.get("total"); + })); + + successMap.putAll(successListMap); + verifyMap.putAll(verifyMap); + + result.put("successList", successMap); + result.put("verifyList", verifyMap); + + result.put("successCount", successCount); + result.put("groupCount", groupCount); + result.put("peopleCount", peopleCount); + result.put("transferRatio", transferRatio); + + return new ResultData(result); + } + + return new ResultData(datamap); } @@ -1657,14 +1726,14 @@ public class WxChartServiceImpl implements WxChartDataService { public static Map getDateMap(Date begin, Date end) { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Map map = new LinkedHashMap<>(); - map.put(format.format(begin),0l); + map.put(format.format(begin), 0L); Calendar calBegin = Calendar.getInstance(); calBegin.setTime(begin); Calendar calEnd = Calendar.getInstance(); calEnd.setTime(end); while (calBegin.getTime().before(end)) { calBegin.add(Calendar.DAY_OF_MONTH, 1); - map.put(format.format(calBegin.getTime()),0l); + map.put(format.format(calBegin.getTime()), 0L); } return map; }