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.entity.Account; import com.ai.da.mapper.primary.entity.TrialOrder; import com.ai.da.model.dto.AccountAddDTO; 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.model.vo.QueryUserConditionsVO; import com.ai.da.service.ConvenientInquiryService; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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 javax.validation.Valid; import java.text.SimpleDateFormat; import java.util.*; @Api(tags = "便利查询") @Slf4j @RestController @RequestMapping("/api/inquiry") public class ConvenientInquiryController { @Resource private DesignMapper designMapper; @Resource private ConvenientInquiryService convenientInquiryService; @ApiOperation("获取当前所有试用用户") @PostMapping("/getTrial") public Response> getTrial(@Valid @RequestBody QueryUserConditionsVO queryUserConditionsVO) { Long accountId = UserContext.getUserHolder().getId(); if (accountId.equals(31L) || accountId.equals(87L) || accountId.equals(83L) || accountId.equals(6L) || accountId.equals(4L) || accountId.equals(73L)) { return Response.success(convenientInquiryService.getTrial(queryUserConditionsVO)); } 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(@Valid @RequestBody QueryUserConditionsVO queryUserConditionsVO) { return Response.success(convenientInquiryService.recentNewUser(queryUserConditionsVO)); } @ApiOperation("获取近期新用户图表数据") @GetMapping("/recentNewUserChart") public Response> recentNewUserChart(@ApiParam(value = "startTime") @RequestParam @Nullable String startTime, @ApiParam(value = "endTime") @RequestParam @Nullable String endTime, @ApiParam("userType") @RequestParam Integer userType) { return Response.success(convenientInquiryService.recentNewUserChart(startTime, endTime, userType)); } @ApiOperation("获取近期活跃用户") @PostMapping("/recentActiveUser") public Response> recentActiveUser(@Valid @RequestBody QueryUserConditionsVO queryUserConditionsVO) { return Response.success(convenientInquiryService.recentActiveUser(queryUserConditionsVO)); } @ApiOperation("获取近期活跃用户图表数据") @GetMapping("/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("获取用户的各模块功能使用详情") @GetMapping("/getActiveUserFunc") public Response>> getActiveUserFunc(@ApiParam(value = "startTime") @RequestParam @Nullable String startTime, @ApiParam(value = "endTime") @RequestParam @Nullable String endTime, @ApiParam("userIdList") @RequestParam @Nullable List userIdList) { return Response.success(convenientInquiryService.getActiveUserFunc(startTime, endTime, userIdList)); } @ApiOperation("试用用户到正式用户的转化率") @GetMapping("/conversionRate") public Response> conversionRate() { return Response.success(convenientInquiryService.conversionRate()); } @ApiOperation("试用用户国家/城市分布") @GetMapping("/trialUserCountry") public Response>> trialUserCountry() { return Response.success(convenientInquiryService.trialUserCountry()); } @ApiOperation("添加用户") @PostMapping("/addUser") public Response addUser(@Valid @RequestBody AccountAddDTO accountAddDTO) { return Response.success(convenientInquiryService.addUser(accountAddDTO)); } @ApiOperation("修改用户信息") @PostMapping("/modifyUser") public Response modifyUser(@ApiParam(value = "用户id") @RequestParam @Nullable Long accountId, @ApiParam(value = "有效期截止时间的毫秒级unix格式") @RequestParam @Nullable Long validEndTime, @ApiParam(value = "用户类型 1/2/3/0 -> yearly/monthly/trial/visitor") @RequestParam @Nullable Integer systemUser, @ApiParam("积分") @RequestParam @Nullable Long credits) { return Response.success(convenientInquiryService.modifyUser(accountId, validEndTime, systemUser, credits)); } @ApiOperation("获取用户信息") @PostMapping("/getUserInfo") public Response> getUserInfo(@Valid @RequestBody QueryUserConditionsVO queryUserConditionsVO) { Long accountId = UserContext.getUserHolder().getId(); if (accountId.equals(31L) || accountId.equals(87L) || accountId.equals(83L) || accountId.equals(6L) || accountId.equals(4L) || accountId.equals(73L)) { return Response.success(convenientInquiryService.getUserInfo(queryUserConditionsVO)); } else { return Response.fail("Sorry, you don't have permission"); } } @ApiOperation("获取所有用户id") @GetMapping("/getAllUserId") public Response>> getAllUsrIdList() { return Response.success(convenientInquiryService.getAllUserIdList()); } }