package cn.iocoder.yudao.module.mes.controller.admin.trace.consumer; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.module.mes.controller.admin.trace.consumer.vo.MesTraceConsumerScanDistributionReqVO; import cn.iocoder.yudao.module.mes.controller.admin.trace.consumer.vo.MesTraceConsumerScanDistributionRespVO; import cn.iocoder.yudao.module.mes.controller.admin.trace.consumer.vo.MesTraceConsumerScanSummaryRespVO; import cn.iocoder.yudao.module.mes.controller.admin.trace.consumer.vo.MesTraceConsumerScanTrendRespVO; import cn.iocoder.yudao.module.mes.service.trace.consumer.MesTraceConsumerScanStatisticsService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import jakarta.validation.Valid; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.time.LocalDateTime; import java.util.List; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @Tag(name = "管理后台 - MES 消费者扫码访问统计") @RestController @RequestMapping("/mes/trace-consumer-scan") @Validated public class MesTraceConsumerScanController { @Resource private MesTraceConsumerScanStatisticsService statisticsService; @GetMapping("/summary") @Operation(summary = "消费者扫码访问汇总") @PreAuthorize("@ss.hasPermission('mes:trace-consumer-scan:query')") public CommonResult getSummary( @RequestParam(value = "startTime", required = false) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) LocalDateTime startTime, @RequestParam(value = "endTime", required = false) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) LocalDateTime endTime) { return success(statisticsService.getSummary(startTime, endTime)); } @GetMapping("/trend") @Operation(summary = "消费者扫码访问趋势") @PreAuthorize("@ss.hasPermission('mes:trace-consumer-scan:query')") public CommonResult> getTrend( @RequestParam(value = "startTime", required = false) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) LocalDateTime startTime, @RequestParam(value = "endTime", required = false) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) LocalDateTime endTime) { return success(statisticsService.getTrend(startTime, endTime)); } @GetMapping("/distribution") @Operation(summary = "消费者扫码访问分布") @PreAuthorize("@ss.hasPermission('mes:trace-consumer-scan:query')") public CommonResult> getDistribution( @Valid MesTraceConsumerScanDistributionReqVO reqVO) { return success(statisticsService.getDistribution(reqVO)); } }