diff --git a/mallinkAdmin/src/main/java/com/simple/controller/MarkingDataReportController.java b/mallinkAdmin/src/main/java/com/simple/controller/MarkingDataReportController.java index f803a5833..8caf77fdc 100644 --- a/mallinkAdmin/src/main/java/com/simple/controller/MarkingDataReportController.java +++ b/mallinkAdmin/src/main/java/com/simple/controller/MarkingDataReportController.java @@ -21,9 +21,16 @@ public class MarkingDataReportController extends BaseController { @Autowired private MarkingDataReportService markingDataReportService; - @ApiOperation("根据id查询接口") + @ApiOperation("查询券数据") @GetMapping("/couponData") public ResultData findCouponData() { return new ResultData(markingDataReportService.getCouponDate(getTenantId())); } + @ApiOperation("查询场景投放券数据") + @GetMapping("/sceneData") + public ResultData findSceneData() { + return new ResultData(markingDataReportService.getSceneData(getTenantId())); + } + + } diff --git a/mallinkService/src/main/java/com/simple/domain/vo/MarkingSceneDataReportVo.java b/mallinkService/src/main/java/com/simple/domain/vo/MarkingSceneDataReportVo.java new file mode 100644 index 000000000..d0ad3db8f --- /dev/null +++ b/mallinkService/src/main/java/com/simple/domain/vo/MarkingSceneDataReportVo.java @@ -0,0 +1,62 @@ +package com.simple.domain.vo; + +/** + * Created by syf on 2018/8/29. + */ +public class MarkingSceneDataReportVo { + + private String xTime; + private int parkSendCount; + private int verifySendCount; + private int parkCount; + private int verifyCount; + private int tempCount; + + public int getTempCount() { + return tempCount; + } + + public void setTempCount(int tempCount) { + this.tempCount = tempCount; + } + + public String getxTime() { + return xTime; + } + + public void setxTime(String xTime) { + this.xTime = xTime; + } + + public int getParkSendCount() { + return parkSendCount; + } + + public void setParkSendCount(int parkSendCount) { + this.parkSendCount = parkSendCount; + } + + public int getVerifySendCount() { + return verifySendCount; + } + + public void setVerifySendCount(int verifySendCount) { + this.verifySendCount = verifySendCount; + } + + public int getParkCount() { + return parkCount; + } + + public void setParkCount(int parkCount) { + this.parkCount = parkCount; + } + + public int getVerifyCount() { + return verifyCount; + } + + public void setVerifyCount(int verifyCount) { + this.verifyCount = verifyCount; + } +} diff --git a/mallinkService/src/main/java/com/simple/mapper/WxCouponActionLogMapper.java b/mallinkService/src/main/java/com/simple/mapper/WxCouponActionLogMapper.java index 053fa82d8..80d7d9714 100644 --- a/mallinkService/src/main/java/com/simple/mapper/WxCouponActionLogMapper.java +++ b/mallinkService/src/main/java/com/simple/mapper/WxCouponActionLogMapper.java @@ -2,12 +2,24 @@ package com.simple.mapper; import java.util.*; import com.simple.common.CommonMapper; +import com.simple.domain.vo.MarkingSceneDataReportVo; import org.apache.ibatis.annotations.Param; import com.simple.domain.po.WxCouponActionLog; public interface WxCouponActionLogMapper extends CommonMapper { List findList(WxCouponActionLog wxCouponActionLog); + /** + * 查询场景投放发券数 + * @param tenantId + * @param startTime + * @param endTime + * @return + */ + int findCountByDateLimit(@Param("tenantId")String tenantId,@Param("startTime") Date startTime,@Param("endTime")Date endTime); + + List sceneDataMap(HashMap params); + List sceneDataMapJoinCouponOrder(HashMap params); diff --git a/mallinkService/src/main/java/com/simple/service/MarkingDataReportService.java b/mallinkService/src/main/java/com/simple/service/MarkingDataReportService.java index 2d8124f0d..fad5463e2 100644 --- a/mallinkService/src/main/java/com/simple/service/MarkingDataReportService.java +++ b/mallinkService/src/main/java/com/simple/service/MarkingDataReportService.java @@ -7,4 +7,6 @@ import java.util.Map; */ public interface MarkingDataReportService { Map getCouponDate(String tenantId); + + Map getSceneData(String tenantId); } diff --git a/mallinkService/src/main/java/com/simple/service/impl/MarkingDataReportServiceImpl.java b/mallinkService/src/main/java/com/simple/service/impl/MarkingDataReportServiceImpl.java index 2e2320273..607b07134 100644 --- a/mallinkService/src/main/java/com/simple/service/impl/MarkingDataReportServiceImpl.java +++ b/mallinkService/src/main/java/com/simple/service/impl/MarkingDataReportServiceImpl.java @@ -1,6 +1,8 @@ package com.simple.service.impl; import com.simple.domain.vo.MarkingCouponDataReportVo; +import com.simple.domain.vo.MarkingSceneDataReportVo; +import com.simple.mapper.WxCouponActionLogMapper; import com.simple.mapper.WxCouponOrderMapper; import com.simple.service.MarkingDataReportService; import org.springframework.beans.factory.annotation.Autowired; @@ -8,6 +10,7 @@ import org.springframework.stereotype.Service; import java.text.NumberFormat; import java.util.*; +import java.util.stream.Collectors; /** * Created by syf on 2018/8/28. @@ -18,6 +21,8 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { @Autowired private WxCouponOrderMapper wxCouponOrderMapper; + @Autowired + private WxCouponActionLogMapper wxCouponActionLogMapper; //取本月第一天 private Date getFirstDayOfMonth(){ @@ -41,6 +46,7 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { return date; } //取的当月券数据 + @Override public Map getCouponDate(String tenantId){ //今日领取券数 //查询coupon order表 @@ -68,16 +74,78 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { params.put("tenantId",tenantId); params.put("startTime",getFirstDayOfMonth()); params.put("endTime",addDay(1)); - List couponDataMap=wxCouponOrderMapper.couponDataMap(params); + List couponDatalist=wxCouponOrderMapper.couponDataMap(params); //查询券领取人数 HashMap returnMap = new HashMap<>(); returnMap.put("couponUpDay",couponUpDay);//比昨日提升 returnMap.put("couponUpWeek",couponUpWeek);//比上周提升 returnMap.put("todayCouponCount",todayCouponCount);//今日领取数 - returnMap.put("couponDataMap",couponDataMap); + returnMap.put("couponDataMap",couponDatalist); + return returnMap; + } + + + @Override + public Map getSceneData(String tenantId){ + //今日营销投放券数 + int todaySceneCount = wxCouponActionLogMapper.findCountByDateLimit(tenantId,addDay(0),addDay(1)); + int yesterdayCount = wxCouponActionLogMapper.findCountByDateLimit(tenantId,addDay(-1),addDay(0)); + int lastWeekCount = wxCouponActionLogMapper.findCountByDateLimit(tenantId,addDay(-7),addDay(-6)); + + NumberFormat nf = NumberFormat.getPercentInstance(); + nf.setMinimumFractionDigits(2);//控制保留小数点后几位,2:表示保留2位小数点 + String sceneDownDay =""; + if(yesterdayCount!=0) { + sceneDownDay = nf.format((yesterdayCount-todaySceneCount) / (float) yesterdayCount); + }else{ + sceneDownDay = nf.format(0-todaySceneCount); + } + String sceneUpWeek =""; + if(lastWeekCount!=0) { + sceneUpWeek = nf.format((todaySceneCount - lastWeekCount) / (float) lastWeekCount); + }else{ + sceneUpWeek = nf.format(todaySceneCount); + } + + HashMap params = new HashMap<>(); + params.put("tenantId",tenantId); + params.put("startTime",getFirstDayOfMonth()); + params.put("endTime",addDay(1)); + //停车发券数 停车发券被核销数 核销发券数 核销发券被核销数 + List list = wxCouponActionLogMapper.sceneDataMap(params); + + //停车发券被核销数 + HashMap params1 = new HashMap<>(); + params1.put("tenantId",tenantId); + params1.put("startTime",getFirstDayOfMonth()); + params1.put("endTime",addDay(1)); + params1.put("channelType",3);//停车 + List list1 = wxCouponActionLogMapper.sceneDataMapJoinCouponOrder(params1); + Map parkCountMap = list1.stream().collect(Collectors.toMap(MarkingSceneDataReportVo::getxTime, p->p.getTempCount())); + //核销发券被核销数 + HashMap params2 = new HashMap<>(); + params2.put("tenantId",tenantId); + params2.put("startTime",getFirstDayOfMonth()); + params2.put("endTime",addDay(1)); + params2.put("channelType",4);//核销 + List list2 = wxCouponActionLogMapper.sceneDataMapJoinCouponOrder(params2); + Map verifyCountMap = list2.stream().collect(Collectors.toMap(MarkingSceneDataReportVo::getxTime, p->p.getTempCount())); + + for (MarkingSceneDataReportVo vo:list) { + vo.setParkCount(parkCountMap.get(vo.getxTime()) == null ? 0 : parkCountMap.get(vo.getxTime())); + vo.setVerifyCount(verifyCountMap.get(vo.getxTime()) == null ? 0 : verifyCountMap.get(vo.getxTime())); + } + + + HashMap returnMap = new HashMap<>(); + returnMap.put("sceneDownDay",sceneDownDay);//比昨日下降 + returnMap.put("sceneUpWeek",sceneUpWeek);//比上周提升 + returnMap.put("todaySceneCount",todaySceneCount);//今日领取数 + returnMap.put("sceneDataMap",list); return returnMap; } + } diff --git a/mallinkService/src/main/resources/mapper/WxCouponActionLogMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponActionLogMapper.xml index 2ce37552e..4613245ec 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponActionLogMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponActionLogMapper.xml @@ -71,7 +71,23 @@ select from wx_coupon_action_log - + + + + + + + + diff --git a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml index 4fde77b86..19f65a8cd 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml @@ -374,15 +374,6 @@ select COUNT(*) FROM wx_coupon_order where tenant_id = #{tenantId} and create_date >= #{startTime} and create_date <= #{endTime} - -