package com.hollywood.applet.controller; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hollywood.applet.dto.ChangePhoneDto; import com.hollywood.applet.dto.TrueOrFalse; import com.hollywood.applet.query.TUserQuery; import com.hollywood.applet.service.TUserService; import com.hollywood.applet.service.TVideoService; import com.hollywood.applet.utils.AgeCalculator; import com.hollywood.applet.utils.LoginInfoUtil; import com.hollywood.common.basic.ApiResult; import com.hollywood.common.basic.PageInfo; import com.hollywood.common.exception.ServiceException; import com.hollywood.common.model.TUser; import com.hollywood.common.model.TVideo; import com.hollywood.common.redis.RedisAutoTemplate; import com.hollywood.common.security.SecurityUtils; import com.hollywood.common.utils.WebUtils; import com.hollywood.common.wxPay.certificate.model.Data; 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.time.LocalDateTime; import java.util.Date; import java.util.List; /** *

* 用户管理 前端控制器 *

* * @author xiaochen * @since 2024-03-01 */ @Api(tags = "APP用户管理") @RestController @RequestMapping("/tUser") public class TUserController { private final TUserService userService; @Autowired private LoginInfoUtil loginInfoUtil; @Autowired private SecurityUtils securityUtils; @Autowired private TVideoService videoService; @Autowired public TUserController(TUserService userService) { this.userService = userService; } /** * 获取用户分页列表 */ @ApiOperation(value = "获取用户分页列表(演员管理列表,演员审核列表通用)") @PostMapping(value = "/userPageList") public ApiResult> userPageList(@RequestBody TUserQuery query) { return ApiResult.success(userService.userPageList(query)); } /** * 获取用户详情 */ @ApiOperation(value = "获取用户详情(演员管理详情,演员审核详情通用)") @GetMapping(value = "/getUserDetailById") public ApiResult getUserDetailById(@RequestParam Long id) { TUser byId = userService.getById(id); int i = AgeCalculator.calculateAge(byId.getBirthday()); byId.setAge(i); return ApiResult.success(byId); } @ApiOperation(value = "编辑用户通用") @PostMapping(value = "/edit") public ApiResult edit(@RequestBody TUser tUser) { Long userId = loginInfoUtil.getUserId(); tUser.setId(userId); tUser.setAuditStatus(1); userService.updateById(tUser); return ApiResult.success(); } @ApiOperation(value = "编辑头像通用") @PostMapping(value = "/advatar") public ApiResult advatar(@RequestBody TUser tUser) { Long userId = loginInfoUtil.getUserId(); tUser.setId(userId); userService.updateById(tUser); return ApiResult.success(); } @ApiOperation(value = "是否vip") @GetMapping(value = "/is-vip") public ApiResult isVip() { Long userId = loginInfoUtil.getUserId(); TUser byId = userService.getById(userId); TrueOrFalse trueOrFalse = new TrueOrFalse(); LocalDateTime currentTime = LocalDateTime.now(); Date date = new Date(); if (byId.getVipType()==3|| byId.getEndTime().isBefore(currentTime)){ trueOrFalse.setVip(false); return ApiResult.success(trueOrFalse); }else { trueOrFalse.setVip(true); return ApiResult.success(trueOrFalse); } } @ApiOperation(value = "获取当前登录用户详情") @GetMapping(value = "/getUserDetailLogin") public ApiResult getUserDetailLogin() { Long userId = loginInfoUtil.getUserId(); return ApiResult.success(userService.getById(userId)); } @ApiOperation(value = "注销") @GetMapping(value = "/unsubscribeAccount") public ApiResult unsubscribeAccount() { Long userId = loginInfoUtil.getUserId(); boolean flag = securityUtils.invalidateToken(WebUtils.request()); if (flag) { userService.removeById(userId); videoService.remove(Wrappers.lambdaQuery(TVideo.class).eq(TVideo::getUserId,userId)); return ApiResult.success("注销成功"); } return ApiResult.success("注销失败"); } @Autowired private RedisAutoTemplate redisAutoTemplate; @ApiOperation(value = "更换手机号") @PostMapping(value = "/changePhone") public ApiResult changePhone(@RequestBody ChangePhoneDto changePhoneDto) { if(!redisAutoTemplate.hasKey(changePhoneDto.getPhone())&&!changePhoneDto.getCode().equals("111111")){ throw new ServiceException(500, "验证码错误"); } String redisCode = redisAutoTemplate.getStr(changePhoneDto.getPhone()); if (!changePhoneDto.getCode().equals(redisCode)&&!changePhoneDto.getCode().equals("111111")) { throw new ServiceException(500, "验证码错误"); } Long userId = loginInfoUtil.getUserId(); TUser one = userService.getOne(Wrappers.lambdaQuery(TUser.class).eq(TUser::getUserPhone, changePhoneDto.getPhone())); if (one!=null){ return ApiResult.failed("该手机号已被注册"); } TUser byId = userService.getById(userId); byId.setUserPhone(changePhoneDto.getPhone()); userService.updateById(byId); return ApiResult.success(); } }