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;
|
|
/**
|
* <p>
|
* 用户管理 前端控制器
|
* </p>
|
*
|
* @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<PageInfo<TUser>> userPageList(@RequestBody TUserQuery query) {
|
return ApiResult.success(userService.userPageList(query));
|
}
|
|
/**
|
* 获取用户详情
|
*/
|
@ApiOperation(value = "获取用户详情(演员管理详情,演员审核详情通用)")
|
@GetMapping(value = "/getUserDetailById")
|
public ApiResult<TUser> 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<TUser> getUserDetailLogin() {
|
Long userId = loginInfoUtil.getUserId();
|
|
return ApiResult.success(userService.getById(userId));
|
}
|
|
@ApiOperation(value = "注销")
|
@GetMapping(value = "/unsubscribeAccount")
|
public ApiResult<String> 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();
|
}
|
|
|
|
|
|
|
}
|