From ebd01b42470c070973beb5484129b9071dc68d70 Mon Sep 17 00:00:00 2001 From: longbinbin <2284496322@qq.com> Date: Thu, 12 Dec 2024 16:21:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E2=80=9C=E6=89=AB=E7=A0=81?= =?UTF-8?q?=E8=AE=BF=E9=97=AE=E4=BA=BA=E6=95=B0=E3=80=81=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E8=AE=A2=E9=98=85=E4=BA=BA=E6=95=B0=E3=80=81=E9=A2=84=E8=A7=88?= =?UTF-8?q?=E8=A7=86=E9=A2=91=E4=BA=BA=E6=95=B0=E7=BB=9F=E8=AE=A1=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mobile/AppStatisticsController.java | 6 ++ .../ycwl/basic/mapper/StatisticsMapper.java | 19 +++++- .../model/mobile/statistic/AppSta3VO.java | 26 +++++++ .../impl/mobile/AppStatisticsServiceImpl.java | 68 +++++++++++++++++-- .../service/mobile/AppStatisticsService.java | 3 + .../resources/mapper/pc/StatisticsMapper.xml | 48 +++++++++++++ 6 files changed, 164 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/ycwl/basic/model/mobile/statistic/AppSta3VO.java diff --git a/src/main/java/com/ycwl/basic/controller/mobile/AppStatisticsController.java b/src/main/java/com/ycwl/basic/controller/mobile/AppStatisticsController.java index af84c37..5453715 100644 --- a/src/main/java/com/ycwl/basic/controller/mobile/AppStatisticsController.java +++ b/src/main/java/com/ycwl/basic/controller/mobile/AppStatisticsController.java @@ -2,6 +2,7 @@ package com.ycwl.basic.controller.mobile; import com.ycwl.basic.model.mobile.statistic.AppSta1VO; import com.ycwl.basic.model.mobile.statistic.AppSta2VO; +import com.ycwl.basic.model.mobile.statistic.AppSta3VO; import com.ycwl.basic.model.mobile.statistic.CommonQueryReq; import com.ycwl.basic.service.mobile.AppStatisticsService; import com.ycwl.basic.utils.ApiResponse; @@ -37,6 +38,11 @@ public class AppStatisticsController { return statisticsService.twoStatistics(query); } + @ApiOperation("扫码访问人数、推送订阅人数、预览视频人数统计") + @PostMapping("/free") + public ApiResponse freeStatistics(@RequestBody CommonQueryReq query) { + return statisticsService.freeStatistics(query); + } } diff --git a/src/main/java/com/ycwl/basic/mapper/StatisticsMapper.java b/src/main/java/com/ycwl/basic/mapper/StatisticsMapper.java index 4670e6d..78b979c 100644 --- a/src/main/java/com/ycwl/basic/mapper/StatisticsMapper.java +++ b/src/main/java/com/ycwl/basic/mapper/StatisticsMapper.java @@ -26,7 +26,7 @@ public interface StatisticsMapper { int countPreviewOfMember(CommonQueryReq query); /** - * 统计扫码人数 + * 统计扫码访问人数 * @param query * @return */ @@ -46,7 +46,24 @@ public interface StatisticsMapper { */ int countPayOfMember(CommonQueryReq query); + /** + * 统计现场支付订单数 + * @param query + * @return + */ int countSceneOrderNum(CommonQueryReq query); + /** + * 统计推送支付订单数 + * @param query + * @return + */ int countPushOrderNum(CommonQueryReq query); + + /** + * 统计推送订阅人数 + * @param query + * @return + */ + int countPushOfMember(CommonQueryReq query); } diff --git a/src/main/java/com/ycwl/basic/model/mobile/statistic/AppSta3VO.java b/src/main/java/com/ycwl/basic/model/mobile/statistic/AppSta3VO.java new file mode 100644 index 0000000..48ad471 --- /dev/null +++ b/src/main/java/com/ycwl/basic/model/mobile/statistic/AppSta3VO.java @@ -0,0 +1,26 @@ +package com.ycwl.basic.model.mobile.statistic; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author:longbinbin + * @Date:2024/12/11 18:23 + */ +@Data +@ApiModel("移动端扫码访问人数、推送订阅人数、预览视频人数统计结果类") +public class AppSta3VO { + @ApiModelProperty("现在的数据 扫码访问人数") + private Integer nowScanCodeOfPeopleNum; + @ApiModelProperty("上一期的数据 扫码访问人数") + private Integer previousScanCodeOfPeopleNum; + @ApiModelProperty("现在的数据 推送订阅人数") + private Integer nowPushOfPeopleNum; + @ApiModelProperty("上一期的数据 推送订阅人数") + private Integer previousPushOfPeopleNum; + @ApiModelProperty("现在的数据 预览视频人数") + private Integer nowPreviewVideoOfPeopleNum; + @ApiModelProperty("上一期的数据 预览视频人数") + private Integer previousPreviewVideoOfPeopleNum; +} diff --git a/src/main/java/com/ycwl/basic/service/impl/mobile/AppStatisticsServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/mobile/AppStatisticsServiceImpl.java index 5e82b9d..73b0b19 100644 --- a/src/main/java/com/ycwl/basic/service/impl/mobile/AppStatisticsServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/mobile/AppStatisticsServiceImpl.java @@ -3,6 +3,7 @@ package com.ycwl.basic.service.impl.mobile; import com.ycwl.basic.mapper.StatisticsMapper; import com.ycwl.basic.model.mobile.statistic.AppSta1VO; import com.ycwl.basic.model.mobile.statistic.AppSta2VO; +import com.ycwl.basic.model.mobile.statistic.AppSta3VO; import com.ycwl.basic.model.mobile.statistic.CommonQueryReq; import com.ycwl.basic.service.mobile.AppStatisticsService; import com.ycwl.basic.utils.ApiResponse; @@ -87,6 +88,63 @@ public class AppStatisticsServiceImpl implements AppStatisticsService { return ApiResponse.success(vo); } + @Override + public ApiResponse freeStatistics(CommonQueryReq query) { + AppSta3VO vo = new AppSta3VO(); + if(query.getEndTime()==null && query.getStartTime()==null){ + // 没有传时间,则代表用户没有自定义查询时间,使用standard来判断查询时间范围 + Integer standard = query.getStandard(); + if(standard==null){ + query.setStandard(0); + } + //获取当前周期的具体时间范围 + standardToNewSpecificTime(query); + //查询处理数据逻辑 + freeStatisticsHandler(1,query,vo); + //---------------------------------------------------- + //获取当前周期的具体时间范围 + standardToPreviousSpecificTime(query); + //查询处理数据逻辑 + freeStatisticsHandler(2,query,vo); + }else{ + //自定义时间查询,只有当前数据,没有往期对比数据 + //查询处理数据逻辑 + freeStatisticsHandler(1,query,vo); + } + return ApiResponse.success(vo); + } + + /** + * + * @param cycle 周期 1当前 2往期 + * @param query + * @param vo + */ + private void freeStatisticsHandler(Integer cycle,CommonQueryReq query,AppSta3VO vo){ + //查询扫码访问人数 + int sceneNum=statisticsMapper.countScanCodeOfMember(query); + //查询推送订阅人数 + int pushNum=statisticsMapper.countPushOfMember(query); + // 查询预览视频人数 + Integer previewNum=statisticsMapper.countPreviewOfMember(query); + + if(cycle==1){ + //当前周期的扫码访问人数 + vo.setNowScanCodeOfPeopleNum(sceneNum); + //当前周期的推送订阅人数 + vo.setNowPushOfPeopleNum(pushNum); + //当前周期的预览视频人数 + vo.setNowPreviewVideoOfPeopleNum(previewNum); + }else if(cycle==2){ + //上一个周期的扫码访问人数 + vo.setPreviousScanCodeOfPeopleNum(sceneNum); + //上一个周期的推送订阅人数 + vo.setPreviousPushOfPeopleNum(pushNum); + //上一个周期的预览视频人数 + vo.setPreviousPreviewVideoOfPeopleNum(previewNum); + } + } + /** * * @param cycle 周期 1当前 2往期 @@ -104,16 +162,16 @@ public class AppStatisticsServiceImpl implements AppStatisticsService { if(cycle==1){ //当前周期的总支付订单数 vo.setNowPayOrderNum(totalOrderNum); - //查询现场支付订单数 + //当前周期的现场支付订单数 vo.setNowSceneOrderNum(sceneOrderNum); - //查询推送支付订单数 + //当前周期的推送支付订单数 vo.setNowPushOrderNum(pushOrderNum); }else if(cycle==2){ - //当前周期的总支付订单数 + //上一个周期的总支付订单数 vo.setPreviousPayOrderNum(totalOrderNum); - //查询现场支付订单数 + //上一个周期的现场支付订单数 vo.setPreviousSceneOrderNum(sceneOrderNum); - //查询推送支付订单数 + //上一个周期的推送支付订单数 vo.setPreviousPushOrderNum(pushOrderNum); } } diff --git a/src/main/java/com/ycwl/basic/service/mobile/AppStatisticsService.java b/src/main/java/com/ycwl/basic/service/mobile/AppStatisticsService.java index 30dc45e..f4bbc0e 100644 --- a/src/main/java/com/ycwl/basic/service/mobile/AppStatisticsService.java +++ b/src/main/java/com/ycwl/basic/service/mobile/AppStatisticsService.java @@ -2,6 +2,7 @@ package com.ycwl.basic.service.mobile; import com.ycwl.basic.model.mobile.statistic.AppSta1VO; import com.ycwl.basic.model.mobile.statistic.AppSta2VO; +import com.ycwl.basic.model.mobile.statistic.AppSta3VO; import com.ycwl.basic.model.mobile.statistic.CommonQueryReq; import com.ycwl.basic.utils.ApiResponse; @@ -14,4 +15,6 @@ public interface AppStatisticsService { ApiResponse oneStatistics(CommonQueryReq query); ApiResponse twoStatistics(CommonQueryReq query); + + ApiResponse freeStatistics(CommonQueryReq query); } diff --git a/src/main/resources/mapper/pc/StatisticsMapper.xml b/src/main/resources/mapper/pc/StatisticsMapper.xml index 742705e..c392073 100644 --- a/src/main/resources/mapper/pc/StatisticsMapper.xml +++ b/src/main/resources/mapper/pc/StatisticsMapper.xml @@ -17,36 +17,84 @@ select ifnull(count(1),0) as count from statistics where type=2 and scenic_id = #{scenicId} + + and create_time >= #{startTime} + + + and create_time <= #{endTime} + group by member_id + \ No newline at end of file