package com.ai.da.controller; import com.ai.da.common.context.UserContext; import com.ai.da.common.response.Response; import com.ai.da.mapper.primary.DesignMapper; import com.ai.da.mapper.primary.TrialOrderMapper; import com.ai.da.mapper.primary.entity.Account; import com.ai.da.mapper.primary.entity.TrialOrder; import com.ai.da.model.dto.UserDesignStatisticDTO; import com.ai.da.model.vo.QuestionnaireFeedbackVO; import com.ai.da.model.vo.QuestionnaireVO; import com.ai.da.service.ConvenientInquiryService; import com.baomidou.mybatisplus.core.metadata.IPage; import io.netty.util.internal.StringUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import javax.annotation.Nullable; import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.*; @Api(tags = "便利查询") @Slf4j @RestController @RequestMapping("/api/inquiry") public class ConvenientInquiryController { @Resource private TrialOrderMapper trialOrderMapper; @Resource private DesignMapper designMapper; @Resource private ConvenientInquiryService convenientInquiryService; @ApiOperation("获取当前所有试用用户") @GetMapping("/getTrial") public Response> getTrial(){ Long accountId = UserContext.getUserHolder().getId(); if (accountId.equals(31L) || accountId.equals(87L) || accountId.equals(83L) || accountId.equals(6L) || accountId.equals(4L) || accountId.equals(73L)){ List trialOrders = trialOrderMapper.selectList(null); return Response.success(trialOrders); }else { return Response.fail("Sorry, you don't have permission"); } } @ApiOperation("获取指定时间区间内所有用户design的使用情况") @GetMapping("/getDesignStatistic") public Response> getDesignStatistic(@RequestParam String startTime,@RequestParam String endTime){ Long accountId = UserContext.getUserHolder().getId(); if (accountId.equals(31L) || accountId.equals(87L) || accountId.equals(83L) || accountId.equals(6L) || accountId.equals(4L) || accountId.equals(73L)){ if (StringUtil.isNullOrEmpty(startTime)) startTime = "2024-02-01 00:00:00"; if (StringUtil.isNullOrEmpty(endTime)){ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); Date date = new Date(); endTime = simpleDateFormat.format(date); } List designStatistic = designMapper.getDesignStatistic(startTime, endTime); return Response.success(designStatistic); }else { return Response.fail("Sorry, you don't have permission"); } } //调查问卷 @ApiOperation("获取调查问卷统计详情") @GetMapping("/getQuestionnaireStatistic") public Response getQuestionnaire(){ return Response.success(convenientInquiryService.getQuestionnaireInfo()); } @ApiOperation("获取所有调查问卷") @GetMapping("/getAllQuestionnaire") public Response> getAllQuestionnaire(){ return Response.success(convenientInquiryService.getAllQuestionnaire()); } @ApiOperation("获取近期新用户") @PostMapping("/recentNewUser") public Response> recentNewUser(@ApiParam(value = "startTime") @RequestParam @Nullable String startTime, @ApiParam(value = "endTime") @RequestParam @Nullable String endTime, @ApiParam("userType") @RequestParam String userType, @ApiParam("pageNum") @RequestParam int pageNum, @ApiParam("size") @RequestParam int size){ return Response.success(convenientInquiryService.recentNewUser(startTime, endTime, userType, pageNum, size)); } @ApiOperation("获取近期新用户图表数据") @PostMapping("/recentNewUserChart") public Response> recentNewUserChart(@ApiParam(value = "startTime") @RequestParam @Nullable String startTime, @ApiParam(value = "endTime") @RequestParam @Nullable String endTime, @ApiParam("userType") @RequestParam String userType){ return Response.success(convenientInquiryService.recentNewUserChart(startTime, endTime, userType)); } @ApiOperation("获取近期活跃用户") @PostMapping("/recentActiveUser") public Response> recentActiveUser(@ApiParam(value = "startTime") @RequestParam @Nullable String startTime, @ApiParam(value = "endTime") @RequestParam @Nullable String endTime, @ApiParam("pageNum") @RequestParam int pageNum, @ApiParam("size") @RequestParam int size){ return Response.success(convenientInquiryService.recentActiveUser(startTime, endTime, pageNum, size)); } @ApiOperation("获取近期活跃用户图表数据") @PostMapping("/recentActiveUserChart") public Response recentActiveUserChart(@ApiParam(value = "startTime") @RequestParam @Nullable String startTime, @ApiParam(value = "endTime") @RequestParam @Nullable String endTime){ return Response.success(convenientInquiryService.recentActiveUserChart(startTime, endTime)); } @ApiOperation("获取用户的各模块功能使用详情") @PostMapping("/getActiveUserFunc") public Response>> getActiveUserFunc(@ApiParam(value = "startTime") @RequestParam @Nullable String startTime, @ApiParam(value = "endTime") @RequestParam @Nullable String endTime, @ApiParam("userIdList") @RequestParam List userIdList){ return Response.success(convenientInquiryService.getActiveUserFunc(startTime, endTime, userIdList)); } }