后台景区端趋势图

This commit is contained in:
2025-06-20 16:44:59 +08:00
parent 6d8261ff25
commit 245387f280
5 changed files with 203 additions and 0 deletions

View File

@@ -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);
}
}

View File

@@ -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<AppStatisticsFunnelVO> listStatByScenic(Long scenicId, Date startTime, Date endTime);
int insertStat(Long scenicId, Date date, AppStatisticsFunnelVO data);
List<HashMap<String, String>> orderChartByDate(CommonQueryReq query);
List<HashMap<String, String>> orderChartByHour(CommonQueryReq query);
}

View File

@@ -23,4 +23,6 @@ public interface AppStatisticsService {
ApiResponse<AppStatisticsFunnelVO> userConversionFunnel(CommonQueryReq query);
ApiResponse<String> addStatistics(StatisticsRecordAddReq req);
ApiResponse orderChart(CommonQueryReq query);
}

View File

@@ -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<HashMap<String, String>> hashMaps = statisticsMapper.orderChartByHour(query);
return ApiResponse.success(hashMaps);
} else {
List<HashMap<String, String>> hashMaps = statisticsMapper.orderChartByDate(query);
return ApiResponse.success(hashMaps);
}
}
/**
*
* @param num1