package com.zc.business.controller; import com.ruoyi.common.core.domain.AjaxResult; import com.zc.business.domain.DcCongestedSectionData; import com.zc.business.domain.DcTrafficMetricsData; import com.zc.business.domain.DcTrafficSectionData; import com.zc.business.request.DcTrafficMetricsDataRequest; import com.zc.business.request.DcTrafficSectionDataRequest; import com.zc.business.service.DcTrafficStatisticsService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 交通数据统计 * * @author xiepufeng */ @Api(tags = "交通数据统计") @RestController @RequestMapping("/business/traffic-statistics") public class DcTrafficStatisticsController { @Autowired private DcTrafficStatisticsService dcTrafficStatisticsService; /** * 获取当前交通截面数据 * * @param request 请求参数,封装了对于交通截面数据查询的详细要求 * @return 返回一个AjaxResult对象,其中包含了查询结果。如果查询成功,则结果中封装了当前交通截面的数据(DcTrafficSectionData类型) */ @ApiOperation("获取当前交通截面数据") @GetMapping("/current/sections") public AjaxResult currentSections(DcTrafficSectionDataRequest request){ // 调用服务层方法,查询当前交通截面数据 List dcTrafficMetricsData = dcTrafficStatisticsService.currentSections(request); // 将查询结果封装为AjaxResult对象返回 return AjaxResult.success(dcTrafficMetricsData); } /** * 获取历史交通截面数据 * * @param request 包含交通截面数据请求参数的对象 * @return 返回一个包含历史交通截面数据的AjaxResult对象 */ @ApiOperation("获取历史交通截面数据") @GetMapping("/history/sections") public AjaxResult historySections(DcTrafficSectionDataRequest request){ // 调用服务层方法,获取历史交通截面的统计数据 List dcTrafficMetricsData = dcTrafficStatisticsService.historySections(request); // 将获取到的历史交通截面数据封装成AjaxResult对象并返回 return AjaxResult.success(dcTrafficMetricsData); } /** * 获取当前交通特征指数 * * @param request 请求参数,封装了获取交通指标所需的数据和条件 * @return 返回当前交通特征指数的数据结果,使用AjaxResult包装 */ @ApiOperation("获取当前交通特征指数") @GetMapping("/current/metrics") public AjaxResult currentTrafficMetrics(DcTrafficMetricsDataRequest request){ // 调用服务层方法,获取当前交通指标数据 List dcTrafficMetricsData = dcTrafficStatisticsService.currentTrafficMetrics(request); // 将获取到的交通指标数据封装为成功的结果并返回 return AjaxResult.success(dcTrafficMetricsData); } /** * 获取历史交通特征指数 * * @param request 请求参数,包含需要查询的历史交通特征指数的详细信息 * @return 返回一个AjaxResult对象,其中包含了查询结果的成功状态和历史交通特征指数数据列表 */ @ApiOperation("获取历史交通特征指数") @GetMapping("/history/metrics") public AjaxResult historyTrafficMetrics(DcTrafficMetricsDataRequest request){ // 调用服务层方法,查询历史交通特征指数数据 List dcTrafficMetricsDataList = dcTrafficStatisticsService.historyTrafficMetrics(request); // 将查询结果封装成成功响应并返回 return AjaxResult.success(dcTrafficMetricsDataList); } /** * 获取当前拥堵路段 * * @param direction 交通方向,指定查询哪个方向的拥堵路段。具体方向的定义根据实际业务而定。 * @return 返回一个AjaxResult对象,其中包含了查询结果。如果查询成功,则结果中封装了当前拥堵路段的数据列表。 */ @ApiOperation("获取当前拥堵路段") @GetMapping("/current/congested") public AjaxResult currentCongestedSection(Byte direction){ // 调用服务层方法,获取当前交通指标数据 List dcTrafficMetricsData = dcTrafficStatisticsService.currentCongestedSection(direction); // 将获取到的交通指标数据封装为成功的结果并返回 return AjaxResult.success(dcTrafficMetricsData); } }