统计添加注释
This commit is contained in:
parent
8a7021d759
commit
fb530a1eb4
@ -139,23 +139,28 @@ public class AppStatisticsServiceImpl implements AppStatisticsService {
|
|||||||
//镜头检测游客数
|
//镜头检测游客数
|
||||||
Integer cameraShotOfMemberNum=statisticsMapper.countCameraShotOfMember(query);
|
Integer cameraShotOfMemberNum=statisticsMapper.countCameraShotOfMember(query);
|
||||||
//扫码访问人数
|
//扫码访问人数
|
||||||
|
// 扫小程序码或景区码进入访问的用户数,包括授权用户(使用OpenID进行精准统计)和未授权用户(使用 UUID统计访问)。但当用户授权时,获取OpenID并与UUID关联,删除本地UUID,避免重复记录。
|
||||||
Integer scanCodeVisitorOfMemberNum=statisticsMapper.countScanCodeOfMember(query);
|
Integer scanCodeVisitorOfMemberNum=statisticsMapper.countScanCodeOfMember(query);
|
||||||
//镜头检测游客数_扫码访问人数_转化率
|
//镜头检测游客数_扫码访问人数_转化率
|
||||||
// vo.setCsom_scaom(calculateConversionRate(scanCodeVisitorOfMemberNum,cameraShotOfMemberNum));
|
// vo.setCsom_scaom(calculateConversionRate(scanCodeVisitorOfMemberNum,cameraShotOfMemberNum));
|
||||||
vo.setCsom_scaom("-");
|
vo.setCsom_scaom("-");
|
||||||
//上传头像(人脸)人数
|
//上传头像(人脸)人数
|
||||||
|
// 上传了人脸的用户数(包括本地临时ID和获取到OpenID的,同一设备微信获取到OpenID要覆盖掉之前生成的临时ID),上传多张人脸都只算一个人。
|
||||||
Integer uploadFaceOfMemberNum=statisticsMapper.countUploadFaceOfMember(query);
|
Integer uploadFaceOfMemberNum=statisticsMapper.countUploadFaceOfMember(query);
|
||||||
//扫码访问人数_上传头像人数_转化率
|
//扫码访问人数_上传头像人数_转化率
|
||||||
vo.setScaom_ufom(calculateConversionRate(uploadFaceOfMemberNum,scanCodeVisitorOfMemberNum));
|
vo.setScaom_ufom(calculateConversionRate(uploadFaceOfMemberNum,scanCodeVisitorOfMemberNum));
|
||||||
//推送订阅人数
|
//推送订阅人数
|
||||||
|
// 只要点了允许通知,哪怕只勾选1条订阅都算
|
||||||
Integer pushOfMemberNum =statisticsMapper.countPushOfMember(query);
|
Integer pushOfMemberNum =statisticsMapper.countPushOfMember(query);
|
||||||
//上传头像人数_推送订阅人数_转化率
|
//上传头像人数_推送订阅人数_转化率
|
||||||
vo.setUfom_pom((calculateConversionRate(pushOfMemberNum,uploadFaceOfMemberNum)));
|
vo.setUfom_pom((calculateConversionRate(pushOfMemberNum,uploadFaceOfMemberNum)));
|
||||||
//生成视频人数
|
//生成视频人数
|
||||||
|
// 生成过Vlog视频的用户ID数,要注意屏蔽掉以前没有片段也能生成的情况
|
||||||
Integer completeVideoOfMemberNum =statisticsMapper.countCompleteVideoOfMember(query);
|
Integer completeVideoOfMemberNum =statisticsMapper.countCompleteVideoOfMember(query);
|
||||||
//推送订阅人数_生成视频人数_转化率
|
//推送订阅人数_生成视频人数_转化率
|
||||||
vo.setPom_cvom((calculateConversionRate(completeVideoOfMemberNum,pushOfMemberNum)));
|
vo.setPom_cvom((calculateConversionRate(completeVideoOfMemberNum,pushOfMemberNum)));
|
||||||
//预览视频人数
|
//预览视频人数
|
||||||
|
// 购买前播放了5秒的视频条数。
|
||||||
Integer previewVideoOfMemberNum =statisticsMapper.countPreviewVideoOfMember(query);
|
Integer previewVideoOfMemberNum =statisticsMapper.countPreviewVideoOfMember(query);
|
||||||
if (previewVideoOfMemberNum==null){
|
if (previewVideoOfMemberNum==null){
|
||||||
previewVideoOfMemberNum=0;
|
previewVideoOfMemberNum=0;
|
||||||
@ -163,6 +168,7 @@ public class AppStatisticsServiceImpl implements AppStatisticsService {
|
|||||||
//生成视频人数_预览视频人数_转化率
|
//生成视频人数_预览视频人数_转化率
|
||||||
vo.setCvom_pvom((calculateConversionRate(previewVideoOfMemberNum,completeVideoOfMemberNum)));
|
vo.setCvom_pvom((calculateConversionRate(previewVideoOfMemberNum,completeVideoOfMemberNum)));
|
||||||
//点击购买人数
|
//点击购买人数
|
||||||
|
// 点了立即购买按钮的用户ID就算,包括支付的和未支付的都算,只要点击了。
|
||||||
Integer clickOnPayOfMemberNum =statisticsMapper.countClickPayOfMember(query);
|
Integer clickOnPayOfMemberNum =statisticsMapper.countClickPayOfMember(query);
|
||||||
//预览视频人数_点击购买人数_转化率
|
//预览视频人数_点击购买人数_转化率
|
||||||
vo.setPvom_cpom((calculateConversionRate(clickOnPayOfMemberNum,previewVideoOfMemberNum)));
|
vo.setPvom_cpom((calculateConversionRate(clickOnPayOfMemberNum,previewVideoOfMemberNum)));
|
||||||
@ -171,9 +177,11 @@ public class AppStatisticsServiceImpl implements AppStatisticsService {
|
|||||||
//点击购买人数_支付订单人数_转化率
|
//点击购买人数_支付订单人数_转化率
|
||||||
vo.setCpom_pom((calculateConversionRate(payOfMemberNum,clickOnPayOfMemberNum)));
|
vo.setCpom_pom((calculateConversionRate(payOfMemberNum,clickOnPayOfMemberNum)));
|
||||||
//总访问人数
|
//总访问人数
|
||||||
|
// 通过任何途径访问到小程序的总人数,包括授权用户和未授权用户。
|
||||||
Integer totalVisitorOfMemberNum =statisticsMapper.countTotalVisitorOfMember(query);
|
Integer totalVisitorOfMemberNum =statisticsMapper.countTotalVisitorOfMember(query);
|
||||||
// Integer totalVisitorOfMemberNum =scanCodeVisitorOfMemberNum;
|
// Integer totalVisitorOfMemberNum =scanCodeVisitorOfMemberNum;
|
||||||
//生成视频条数
|
//生成视频条数
|
||||||
|
// 仅指代生成的Vlog条数,不包含录像原片。
|
||||||
Integer completeOfVideoNum =statisticsMapper.countCompleteOfVideo(query);
|
Integer completeOfVideoNum =statisticsMapper.countCompleteOfVideo(query);
|
||||||
//预览视频条数
|
//预览视频条数
|
||||||
Integer previewOfVideoNum =statisticsMapper.countPreviewOfVideo(query);
|
Integer previewOfVideoNum =statisticsMapper.countPreviewOfVideo(query);
|
||||||
@ -341,15 +349,16 @@ public class AppStatisticsServiceImpl implements AppStatisticsService {
|
|||||||
int payCount=statisticsMapper.countPayOfOrder(query);
|
int payCount=statisticsMapper.countPayOfOrder(query);
|
||||||
|
|
||||||
if(cycle==1){
|
if(cycle==1){
|
||||||
//当前周期的支付订单金额
|
// 支付过订单的金额,包含已退款的金额。
|
||||||
vo.setNowOrderAmount(orderAmountDf.format(orderAmount));
|
vo.setNowOrderAmount(orderAmountDf.format(orderAmount));
|
||||||
//当前周期预览_支付转化率、扫码_付费用户转化率
|
// 订单数÷预览人数。假设一共5个人预览,产生了3个订单,其实是2个人支付的(其中1人购买2单),预览-支付转化率是3÷5,而不是2÷5。
|
||||||
if(preview==0){
|
if(preview==0){
|
||||||
vo.setNowPreviewPay("0.00");
|
vo.setNowPreviewPay("0.00");
|
||||||
}else {
|
}else {
|
||||||
BigDecimal previewPay = new BigDecimal(pay).divide(new BigDecimal(preview), 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
|
BigDecimal previewPay = new BigDecimal(payCount).divide(new BigDecimal(preview), 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
|
||||||
vo.setNowPreviewPay(df.format(previewPay));
|
vo.setNowPreviewPay(df.format(previewPay));
|
||||||
}
|
}
|
||||||
|
// 付费的用户人数÷扫码的用户人数。此处是人数除以人数,而且是除以扫码人数,而不是预览人数。
|
||||||
if(scanCode==0){
|
if(scanCode==0){
|
||||||
vo.setNowScanCodePay("0.00");
|
vo.setNowScanCodePay("0.00");
|
||||||
}else {
|
}else {
|
||||||
@ -358,14 +367,16 @@ public class AppStatisticsServiceImpl implements AppStatisticsService {
|
|||||||
}
|
}
|
||||||
}else if(cycle==2){
|
}else if(cycle==2){
|
||||||
//上一个周期的支付订单金额
|
//上一个周期的支付订单金额
|
||||||
|
// 支付过订单的金额,包含已退款的金额。
|
||||||
vo.setPreviousOrderAmount(orderAmountDf.format(orderAmount));
|
vo.setPreviousOrderAmount(orderAmountDf.format(orderAmount));
|
||||||
// 计算预览_支付转化率
|
// 订单数÷预览人数。假设一共5个人预览,产生了3个订单,其实是2个人支付的(其中1人购买2单),预览-支付转化率是3÷5,而不是2÷5。
|
||||||
if(preview==0){
|
if(preview==0){
|
||||||
vo.setPreviousPreviewPay("0.00");
|
vo.setPreviousPreviewPay("0.00");
|
||||||
}else {
|
}else {
|
||||||
BigDecimal previewPay = new BigDecimal(pay).divide(new BigDecimal(preview), 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
|
BigDecimal previewPay = new BigDecimal(payCount).divide(new BigDecimal(preview), 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
|
||||||
vo.setPreviousPreviewPay(df.format(previewPay));
|
vo.setPreviousPreviewPay(df.format(previewPay));
|
||||||
}
|
}
|
||||||
|
// 付费的用户人数÷扫码的用户人数。此处是人数除以人数,而且是除以扫码人数,而不是预览人数。
|
||||||
if(scanCode==0){
|
if(scanCode==0){
|
||||||
vo.setPreviousScanCodePay("0.00");
|
vo.setPreviousScanCodePay("0.00");
|
||||||
}else {
|
}else {
|
||||||
|
@ -155,17 +155,16 @@
|
|||||||
<select id="countCompleteVideoOfMember" resultType="java.lang.Integer">
|
<select id="countCompleteVideoOfMember" resultType="java.lang.Integer">
|
||||||
select ifnull(count(1),0) as count
|
select ifnull(count(1),0) as count
|
||||||
from(
|
from(
|
||||||
select member_video.member_id
|
select member_id
|
||||||
from member_video
|
from member_video
|
||||||
left join video on member_video.video_id = video.id
|
|
||||||
where member_video.scenic_id = #{scenicId}
|
where member_video.scenic_id = #{scenicId}
|
||||||
<if test="startTime!= null">
|
<if test="startTime!= null">
|
||||||
and video.create_time >= #{startTime}
|
and member_video.create_time >= #{startTime}
|
||||||
</if>
|
</if>
|
||||||
<if test="endTime!= null">
|
<if test="endTime!= null">
|
||||||
and video.create_time <= #{endTime}
|
and member_video.create_time <= #{endTime}
|
||||||
</if>
|
</if>
|
||||||
group by member_video.member_id
|
group by member_id
|
||||||
)a
|
)a
|
||||||
</select>
|
</select>
|
||||||
<select id="countTotalVisitorOfMember" resultType="java.lang.Integer">
|
<select id="countTotalVisitorOfMember" resultType="java.lang.Integer">
|
||||||
@ -186,7 +185,7 @@
|
|||||||
</select>
|
</select>
|
||||||
<select id="countCompleteOfVideo" resultType="java.lang.Integer">
|
<select id="countCompleteOfVideo" resultType="java.lang.Integer">
|
||||||
select count(1) as count
|
select count(1) as count
|
||||||
from task
|
from video
|
||||||
where scenic_id = #{scenicId}
|
where scenic_id = #{scenicId}
|
||||||
<if test="startTime!= null">
|
<if test="startTime!= null">
|
||||||
and create_time >= #{startTime}
|
and create_time >= #{startTime}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user