From 245387f28097aff09c30267a55da673c0fcf9e3f Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Fri, 20 Jun 2025 16:44:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8E=E5=8F=B0=E6=99=AF=E5=8C=BA=E7=AB=AF?= =?UTF-8?q?=E8=B6=8B=E5=8A=BF=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/controller/pc/ScenicController.java | 5 + .../ycwl/basic/mapper/StatisticsMapper.java | 5 + .../service/mobile/AppStatisticsService.java | 2 + .../mobile/impl/AppStatisticsServiceImpl.java | 23 +++ .../resources/mapper/StatisticsMapper.xml | 168 ++++++++++++++++++ 5 files changed, 203 insertions(+) diff --git a/src/main/java/com/ycwl/basic/controller/pc/ScenicController.java b/src/main/java/com/ycwl/basic/controller/pc/ScenicController.java index 6d6fe17..8c9e3f7 100644 --- a/src/main/java/com/ycwl/basic/controller/pc/ScenicController.java +++ b/src/main/java/com/ycwl/basic/controller/pc/ScenicController.java @@ -150,4 +150,9 @@ public class ScenicController { query.setScenicId(scenicId); return appStatisticsService.userConversionFunnel(query); } + @PostMapping("/{scenicId}/orderChart") + public ApiResponse getOrderChart(@PathVariable("scenicId") Long scenicId, @RequestBody CommonQueryReq query) { + query.setScenicId(scenicId); + return appStatisticsService.orderChart(query); + } } diff --git a/src/main/java/com/ycwl/basic/mapper/StatisticsMapper.java b/src/main/java/com/ycwl/basic/mapper/StatisticsMapper.java index 9e4cef6..3761f23 100644 --- a/src/main/java/com/ycwl/basic/mapper/StatisticsMapper.java +++ b/src/main/java/com/ycwl/basic/mapper/StatisticsMapper.java @@ -7,6 +7,7 @@ import org.apache.ibatis.annotations.Mapper; import java.math.BigDecimal; import java.util.Date; +import java.util.HashMap; import java.util.List; /** @@ -97,4 +98,8 @@ public interface StatisticsMapper { List listStatByScenic(Long scenicId, Date startTime, Date endTime); int insertStat(Long scenicId, Date date, AppStatisticsFunnelVO data); + + List> orderChartByDate(CommonQueryReq query); + + List> orderChartByHour(CommonQueryReq query); } 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 cbb8c15..2e5d464 100644 --- a/src/main/java/com/ycwl/basic/service/mobile/AppStatisticsService.java +++ b/src/main/java/com/ycwl/basic/service/mobile/AppStatisticsService.java @@ -23,4 +23,6 @@ public interface AppStatisticsService { ApiResponse userConversionFunnel(CommonQueryReq query); ApiResponse addStatistics(StatisticsRecordAddReq req); + + ApiResponse orderChart(CommonQueryReq query); } diff --git a/src/main/java/com/ycwl/basic/service/mobile/impl/AppStatisticsServiceImpl.java b/src/main/java/com/ycwl/basic/service/mobile/impl/AppStatisticsServiceImpl.java index b3f3948..b0db28e 100644 --- a/src/main/java/com/ycwl/basic/service/mobile/impl/AppStatisticsServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/mobile/impl/AppStatisticsServiceImpl.java @@ -1,6 +1,7 @@ package com.ycwl.basic.service.mobile.impl; import cn.hutool.core.date.DateField; +import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; @@ -25,6 +26,7 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.text.DecimalFormat; import java.util.Date; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; @@ -313,6 +315,27 @@ public class AppStatisticsServiceImpl implements AppStatisticsService { } } + @Override + public ApiResponse orderChart(CommonQueryReq query) { + if(query.getEndTime()==null && query.getStartTime()==null){ + // 没有传时间,则代表用户没有自定义查询时间,使用standard来判断查询时间范围 + Integer standard = query.getStandard(); + if(standard==null){ + query.setStandard(0); + } + //获取当前周期的具体时间范围 + standardToNewSpecificTime(query); + } + if (DateUtil.between(query.getStartTime(), query.getEndTime(), DateUnit.DAY) <= 2) { + // 如果是同一天 + List> hashMaps = statisticsMapper.orderChartByHour(query); + return ApiResponse.success(hashMaps); + } else { + List> hashMaps = statisticsMapper.orderChartByDate(query); + return ApiResponse.success(hashMaps); + } + } + /** * * @param num1 diff --git a/src/main/resources/mapper/StatisticsMapper.xml b/src/main/resources/mapper/StatisticsMapper.xml index 4b7092f..1384da6 100644 --- a/src/main/resources/mapper/StatisticsMapper.xml +++ b/src/main/resources/mapper/StatisticsMapper.xml @@ -318,6 +318,174 @@ WHERE scenic_id = #{scenicId} AND date BETWEEN #{startTime} AND #{endTime} + + REPLACE INTO scenic_stats (scenic_id, date, cs1, v1, sv1, u1, m1, gv1, gv2, pv1, pv2, cp1, o1, o2, o3, ro2, ro3) VALUES (#{scenicId}, #{date}, #{data.cameraShotOfMemberNum}, #{data.totalVisitorOfMemberNum}, #{data.scanCodeVisitorOfMemberNum}, #{data.uploadFaceOfMemberNum}, #{data.pushOfMemberNum}, #{data.completeVideoOfMemberNum}, #{data.completeOfVideoNum}, #{data.previewVideoOfMemberNum}, #{data.previewOfVideoNum}, #{data.clickOnPayOfMemberNum}, #{data.payOfMemberNum}, #{data.payOfOrderNum}, #{data.payOfOrderAmount}, #{data.refundOfOrderNum}, #{data.refundOfOrderAmount})