实现“扫码访问人数、推送订阅人数、预览视频人数统计”
This commit is contained in:
parent
ba4c339660
commit
ebd01b4247
@ -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.AppSta1VO;
|
||||||
import com.ycwl.basic.model.mobile.statistic.AppSta2VO;
|
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.model.mobile.statistic.CommonQueryReq;
|
||||||
import com.ycwl.basic.service.mobile.AppStatisticsService;
|
import com.ycwl.basic.service.mobile.AppStatisticsService;
|
||||||
import com.ycwl.basic.utils.ApiResponse;
|
import com.ycwl.basic.utils.ApiResponse;
|
||||||
@ -37,6 +38,11 @@ public class AppStatisticsController {
|
|||||||
return statisticsService.twoStatistics(query);
|
return statisticsService.twoStatistics(query);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("扫码访问人数、推送订阅人数、预览视频人数统计")
|
||||||
|
@PostMapping("/free")
|
||||||
|
public ApiResponse<AppSta3VO> freeStatistics(@RequestBody CommonQueryReq query) {
|
||||||
|
|
||||||
|
return statisticsService.freeStatistics(query);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,7 @@ public interface StatisticsMapper {
|
|||||||
int countPreviewOfMember(CommonQueryReq query);
|
int countPreviewOfMember(CommonQueryReq query);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 统计扫码人数
|
* 统计扫码访问人数
|
||||||
* @param query
|
* @param query
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@ -46,7 +46,24 @@ public interface StatisticsMapper {
|
|||||||
*/
|
*/
|
||||||
int countPayOfMember(CommonQueryReq query);
|
int countPayOfMember(CommonQueryReq query);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统计现场支付订单数
|
||||||
|
* @param query
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
int countSceneOrderNum(CommonQueryReq query);
|
int countSceneOrderNum(CommonQueryReq query);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统计推送支付订单数
|
||||||
|
* @param query
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
int countPushOrderNum(CommonQueryReq query);
|
int countPushOrderNum(CommonQueryReq query);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统计推送订阅人数
|
||||||
|
* @param query
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int countPushOfMember(CommonQueryReq query);
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
}
|
@ -3,6 +3,7 @@ package com.ycwl.basic.service.impl.mobile;
|
|||||||
import com.ycwl.basic.mapper.StatisticsMapper;
|
import com.ycwl.basic.mapper.StatisticsMapper;
|
||||||
import com.ycwl.basic.model.mobile.statistic.AppSta1VO;
|
import com.ycwl.basic.model.mobile.statistic.AppSta1VO;
|
||||||
import com.ycwl.basic.model.mobile.statistic.AppSta2VO;
|
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.model.mobile.statistic.CommonQueryReq;
|
||||||
import com.ycwl.basic.service.mobile.AppStatisticsService;
|
import com.ycwl.basic.service.mobile.AppStatisticsService;
|
||||||
import com.ycwl.basic.utils.ApiResponse;
|
import com.ycwl.basic.utils.ApiResponse;
|
||||||
@ -87,6 +88,63 @@ public class AppStatisticsServiceImpl implements AppStatisticsService {
|
|||||||
return ApiResponse.success(vo);
|
return ApiResponse.success(vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ApiResponse<AppSta3VO> 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往期
|
* @param cycle 周期 1当前 2往期
|
||||||
@ -104,16 +162,16 @@ public class AppStatisticsServiceImpl implements AppStatisticsService {
|
|||||||
if(cycle==1){
|
if(cycle==1){
|
||||||
//当前周期的总支付订单数
|
//当前周期的总支付订单数
|
||||||
vo.setNowPayOrderNum(totalOrderNum);
|
vo.setNowPayOrderNum(totalOrderNum);
|
||||||
//查询现场支付订单数
|
//当前周期的现场支付订单数
|
||||||
vo.setNowSceneOrderNum(sceneOrderNum);
|
vo.setNowSceneOrderNum(sceneOrderNum);
|
||||||
//查询推送支付订单数
|
//当前周期的推送支付订单数
|
||||||
vo.setNowPushOrderNum(pushOrderNum);
|
vo.setNowPushOrderNum(pushOrderNum);
|
||||||
}else if(cycle==2){
|
}else if(cycle==2){
|
||||||
//当前周期的总支付订单数
|
//上一个周期的总支付订单数
|
||||||
vo.setPreviousPayOrderNum(totalOrderNum);
|
vo.setPreviousPayOrderNum(totalOrderNum);
|
||||||
//查询现场支付订单数
|
//上一个周期的现场支付订单数
|
||||||
vo.setPreviousSceneOrderNum(sceneOrderNum);
|
vo.setPreviousSceneOrderNum(sceneOrderNum);
|
||||||
//查询推送支付订单数
|
//上一个周期的推送支付订单数
|
||||||
vo.setPreviousPushOrderNum(pushOrderNum);
|
vo.setPreviousPushOrderNum(pushOrderNum);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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.AppSta1VO;
|
||||||
import com.ycwl.basic.model.mobile.statistic.AppSta2VO;
|
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.model.mobile.statistic.CommonQueryReq;
|
||||||
import com.ycwl.basic.utils.ApiResponse;
|
import com.ycwl.basic.utils.ApiResponse;
|
||||||
|
|
||||||
@ -14,4 +15,6 @@ public interface AppStatisticsService {
|
|||||||
ApiResponse<AppSta1VO> oneStatistics(CommonQueryReq query);
|
ApiResponse<AppSta1VO> oneStatistics(CommonQueryReq query);
|
||||||
|
|
||||||
ApiResponse<AppSta2VO> twoStatistics(CommonQueryReq query);
|
ApiResponse<AppSta2VO> twoStatistics(CommonQueryReq query);
|
||||||
|
|
||||||
|
ApiResponse<AppSta3VO> freeStatistics(CommonQueryReq query);
|
||||||
}
|
}
|
||||||
|
@ -17,36 +17,84 @@
|
|||||||
select ifnull(count(1),0) as count
|
select ifnull(count(1),0) as count
|
||||||
from statistics
|
from statistics
|
||||||
where type=2 and scenic_id = #{scenicId}
|
where type=2 and scenic_id = #{scenicId}
|
||||||
|
<if test="startTime!= null and startTime!= ''">
|
||||||
|
and create_time >= #{startTime}
|
||||||
|
</if>
|
||||||
|
<if test="endTime!= null and endTime!= ''">
|
||||||
|
and create_time <= #{endTime}
|
||||||
|
</if>
|
||||||
group by member_id
|
group by member_id
|
||||||
</select>
|
</select>
|
||||||
<select id="countScanCodeOfMember" resultType="java.lang.Integer">
|
<select id="countScanCodeOfMember" resultType="java.lang.Integer">
|
||||||
select ifnull(count(1),0) as count
|
select ifnull(count(1),0) as count
|
||||||
from statistics
|
from statistics
|
||||||
where type=0 and scenic_id = #{scenicId}
|
where type=0 and scenic_id = #{scenicId}
|
||||||
|
<if test="startTime!= null and startTime!= ''">
|
||||||
|
and create_time >= #{startTime}
|
||||||
|
</if>
|
||||||
|
<if test="endTime!= null and endTime!= ''">
|
||||||
|
and create_time <= #{endTime}
|
||||||
|
</if>
|
||||||
group by member_id
|
group by member_id
|
||||||
</select>
|
</select>
|
||||||
<select id="countClickPayOfMember" resultType="java.lang.Integer">
|
<select id="countClickPayOfMember" resultType="java.lang.Integer">
|
||||||
select ifnull(count(1),0) as count
|
select ifnull(count(1),0) as count
|
||||||
from statistics
|
from statistics
|
||||||
where type=9 and scenic_id = #{scenicId}
|
where type=9 and scenic_id = #{scenicId}
|
||||||
|
<if test="startTime!= null and startTime!= ''">
|
||||||
|
and create_time >= #{startTime}
|
||||||
|
</if>
|
||||||
|
<if test="endTime!= null and endTime!= ''">
|
||||||
|
and create_time <= #{endTime}
|
||||||
|
</if>
|
||||||
group by member_id
|
group by member_id
|
||||||
</select>
|
</select>
|
||||||
<select id="countPayOfMember" resultType="java.lang.Integer">
|
<select id="countPayOfMember" resultType="java.lang.Integer">
|
||||||
select ifnull(count(1),0) as count
|
select ifnull(count(1),0) as count
|
||||||
from statistics
|
from statistics
|
||||||
where type in(3,4) and scenic_id = #{scenicId}
|
where type in(3,4) and scenic_id = #{scenicId}
|
||||||
|
<if test="startTime!= null and startTime!= ''">
|
||||||
|
and create_time >= #{startTime}
|
||||||
|
</if>
|
||||||
|
<if test="endTime!= null and endTime!= ''">
|
||||||
|
and create_time <= #{endTime}
|
||||||
|
</if>
|
||||||
group by member_id
|
group by member_id
|
||||||
</select>
|
</select>
|
||||||
<select id="countSceneOrderNum" resultType="java.lang.Integer">
|
<select id="countSceneOrderNum" resultType="java.lang.Integer">
|
||||||
select ifnull(count(1),0) as count
|
select ifnull(count(1),0) as count
|
||||||
from statistics
|
from statistics
|
||||||
where type=3 and scenic_id = #{scenicId}
|
where type=3 and scenic_id = #{scenicId}
|
||||||
|
<if test="startTime!= null and startTime!= ''">
|
||||||
|
and create_time >= #{startTime}
|
||||||
|
</if>
|
||||||
|
<if test="endTime!= null and endTime!= ''">
|
||||||
|
and create_time <= #{endTime}
|
||||||
|
</if>
|
||||||
group by morph_id
|
group by morph_id
|
||||||
</select>
|
</select>
|
||||||
<select id="countPushOrderNum" resultType="java.lang.Integer">
|
<select id="countPushOrderNum" resultType="java.lang.Integer">
|
||||||
select ifnull(count(1),0) as count
|
select ifnull(count(1),0) as count
|
||||||
from statistics
|
from statistics
|
||||||
where type=4 and scenic_id = #{scenicId}
|
where type=4 and scenic_id = #{scenicId}
|
||||||
|
<if test="startTime!= null and startTime!= ''">
|
||||||
|
and create_time >= #{startTime}
|
||||||
|
</if>
|
||||||
|
<if test="endTime!= null and endTime!= ''">
|
||||||
|
and create_time <= #{endTime}
|
||||||
|
</if>
|
||||||
group by morph_id
|
group by morph_id
|
||||||
</select>
|
</select>
|
||||||
|
<select id="countPushOfMember" resultType="java.lang.Integer">
|
||||||
|
select ifnull(count(1),0) as count
|
||||||
|
from statistics
|
||||||
|
where type=6 and scenic_id = #{scenicId}
|
||||||
|
<if test="startTime!= null and startTime!= ''">
|
||||||
|
and create_time >= #{startTime}
|
||||||
|
</if>
|
||||||
|
<if test="endTime!= null and endTime!= ''">
|
||||||
|
and create_time <= #{endTime}
|
||||||
|
</if>
|
||||||
|
group by member_id
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
Loading…
x
Reference in New Issue
Block a user