package com.ai.da.controller; import com.ai.da.common.config.exception.BusinessException; import com.ai.da.common.response.PageBaseResponse; import com.ai.da.common.response.Response; import com.ai.da.mapper.primary.entity.TrialOrder; import com.ai.da.model.dto.*; import com.ai.da.model.vo.AccountLoginVO; import com.ai.da.model.vo.AccountPreLoginVO; import com.ai.da.model.vo.PersonalHomepageVO; import com.ai.da.service.AccountService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import java.util.HashMap; import java.util.List; import java.util.Map; @Api(tags = "Account模块") @Slf4j @RestController @RequestMapping("/api/account") public class AccountController { @Resource private AccountService accountService; @ApiOperation(value = "预先登入") @PostMapping("/preLogin") public Response preLogin(@Valid @RequestBody AccountPreLoginDTO accountDTO) { return Response.success(accountService.preLogin(accountDTO)); } @ApiOperation(value = "登入") @PostMapping("/login") public Response login(@Valid @RequestBody AccountLoginDTO accountDTO, HttpServletRequest request) { return Response.success(accountService.login(accountDTO, request)); } @ApiOperation(value = "绑定邮箱") @PostMapping("/bindEmail") public Response bindEmail(@Valid @RequestBody AccountBindEmailDTO accountBindEmailDTO) { return Response.success(accountService.bindEmail(accountBindEmailDTO)); } @ApiOperation(value = "忘记密码") @PostMapping("/resetPwd") public Response resetPwd(@Valid @RequestBody AccountRegisterDTO accountRegisterDTO) { return Response.success(accountService.forgetPwd(accountRegisterDTO)); } @ApiOperation(value = "发送邮件") @PostMapping("/sendEmail") public Response sendEmail(@Valid @RequestBody EmailSendDTO emailSendDTO) { return Response.success(accountService.sendEmail(emailSendDTO)); } @ApiOperation(value = "登出") @PostMapping("/logout") public Response logout(@Valid @RequestBody AccountLogoutDTO accountLogoutDTO) { return Response.success(accountService.logout(accountLogoutDTO)); } @ApiOperation(value = "是否登入") @PostMapping("/isLogin") public Response isLogin(@Valid @RequestBody AccountLogoutDTO accountLogoutDTO) { return Response.success(accountService.isLogin(accountLogoutDTO)); } @ApiOperation(value = "获取当前用户语言") @PostMapping("/getUserLanguage") public Response getUserLanguage() { return Response.success(accountService.getUserLanguage()); } @ApiOperation(value = "切换当前用户语言") @GetMapping("/changeUserLanguage") public Response changeUserLanguage(String language) { return Response.success(accountService.changeUserLanguage(language)); } @ApiOperation(value = "试用用户退出登录") @GetMapping("/trialUserLogout") public Response trialUserLogout() { return Response.success(accountService.trialUserLogout()); } @ApiOperation(value = "完成新手教程") @PostMapping("/completeGuidance") public Response completeGuidance() { return Response.success(accountService.completeGuidance()); } @ApiOperation(value = "试用订单列表") @PostMapping("/trialOrderList") public Response> trialOrderList(@Valid @RequestBody TrialOrderDTO trialOrderDTO) { return Response.success(PageBaseResponse.success(accountService.trialOrderList(trialOrderDTO))); } @ApiOperation(value = "通过试用订单审批") @PostMapping("/trialOrderApproval") public Response trialOrderApproval(@RequestParam("ids") List ids) { return Response.success(accountService.trialOrderApproval(ids)); } @ApiOperation(value = "拒绝试用订单审批") @PostMapping("/trialOrderRefuse") public Response trialOrderRefuse(@RequestParam("ids") List ids) { return Response.success(accountService.trialOrderRefuse(ids)); } @ApiOperation(value = "获取是否自动审评") @PostMapping("/getIsAutoApproval") public Response getIsAutoApproval() { return Response.success(accountService.getIsAutoApproval()); } @ApiOperation(value = "切换是否自动审评") @PostMapping("/switchIsAutoApproval") public Response switchIsAutoApproval() { return Response.success(accountService.switchIsAutoApproval()); } @ApiOperation(value = "aws状态检测") @GetMapping("/healthy") @ResponseStatus(HttpStatus.OK) public Response> checkStatus(){ Map returnMap = new HashMap<>(); returnMap.put("code",200); return Response.success(returnMap); } @ApiOperation(value = "查询账号到期时间") @PostMapping("/getExpiredTime") public Response getExpiredTime(){ return Response.success(accountService.getExpiredTime()); } @ApiOperation(value = "免密登录") @PostMapping("/noLoginRequired") public Response noLoginRequired(@RequestBody NoLoginRequiredDTO noLoginRequiredDTO, HttpServletRequest request){ return Response.success(accountService.noLoginRequired(noLoginRequiredDTO, request)); } @PostMapping("upgradeNotification") @ApiOperation(value = "升级邮件通知") public Response upgradeNotification() { accountService.upgradeNotification(); return Response.success(true); } @CrossOrigin @ApiOperation(value = "广场用户注册") @PostMapping("/designWorksRegister") public Response designWorksRegister(@Valid @RequestBody AccountDesignWorksRegisterDTO accountDesignWorksRegisterDTO) { return Response.success(accountService.designWorksRegister(accountDesignWorksRegisterDTO)); } @CrossOrigin @ApiOperation(value = "广场用户注册") @PostMapping("/designWorksRegisterCode") public Response designWorksRegisterCode(@Valid @RequestBody AccountDesignWorksRegisterDTO accountDesignWorksRegisterDTO) { return Response.success(accountService.designWorksRegisterCode(accountDesignWorksRegisterDTO)); } /** * 填写调查问卷 * @return */ @ApiOperation(value = "填写调查问卷") @PostMapping("/questionnaire") public Response questionnaire(@Valid @RequestBody String questionnaireInfo){ return Response.success(accountService.collectQuestionnaires(questionnaireInfo)); } /** * 参与活动 获取福利 * @return */ @ApiOperation(value = "参与活动 获取福利") @GetMapping("/activity") public Response getActivityBenefits(){ return Response.success(accountService.getActivityBenefits()); } @ApiOperation(value = "将用户账号过期时间设置为过期当天的23:59:59") @GetMapping("/setUserValidToDayEnd") public Response> setUserValidToDayEnd(){ return Response.success(accountService.setUserValidToDayEnd()); } // 用户上传头像 @ApiOperation(value = "上传头像") @PostMapping(path = "/uploadAvatar") public Response uploadAvatar(@RequestParam("file") MultipartFile file) { if (null == file || StringUtils.isEmpty(file.getOriginalFilename())) { throw new BusinessException("file.cannot.be.empty"); } return Response.success(accountService.uploadAvatar(file)); } @ApiOperation(value = "个人主页浏览量增加") @GetMapping("/viewsIncrease") public Response viewsGet(@RequestParam("id") Long id) { return Response.success(accountService.viewsIncrease(id)); } @ApiOperation(value = "获取个人主页信息") @GetMapping("/personalHomepage") public Response getPersonalHomepage(@RequestParam("id") Long id){ return Response.success(accountService.getPersonalHomepage(id)); } @ApiOperation(value = "getNicknameModifyTimes") @GetMapping("/getNicknameModifyTimes") public Response> getNicknameModifyTimes(){ return Response.success(accountService.getNicknameModifyTimes()); } @ApiOperation(value = "editUserName") @GetMapping("/editUserName") public Response editUserName(@RequestParam("newUserName") String newUserName){ accountService.editUserName(newUserName); return Response.success("success"); } @ApiOperation(value = "verifyUserEmail") @GetMapping("/verifyUserEmail") public Response verifyUserEmail(@RequestParam("verifyCode") String verifyCode){ accountService.verifyUserEmail(verifyCode); return Response.success("success"); } @ApiOperation(value = "changeUserEmail") @GetMapping("/changeUserEmail") public Response changeUserEmail(@RequestParam("newMailbox") String newMailbox){ accountService.changeUserEmail(newMailbox); return Response.success("success"); } @ApiOperation(value = "activateNewEmail") @GetMapping("/activateNewEmail") public Response activateNewEmail(@RequestParam("token") String token){ accountService.activateNewEmail(token); return Response.success("success"); } }