152 lines
5.4 KiB
Java
152 lines
5.4 KiB
Java
package com.imooc.controller;
|
||
|
||
import com.imooc.base.BaseInfoProperties;
|
||
import com.imooc.bo.UpdatedUserBO;
|
||
import com.imooc.config.MinIOConfig;
|
||
import com.imooc.enums.FileTypeEnum;
|
||
import com.imooc.enums.UserInfoModifyType;
|
||
import com.imooc.grace.result.GraceJSONResult;
|
||
import com.imooc.grace.result.ResponseStatusEnum;
|
||
import com.imooc.pojo.Users;
|
||
import com.imooc.service.UserService;
|
||
import com.imooc.utils.MinIOUtils;
|
||
import com.imooc.utils.SMSUtils;
|
||
import com.imooc.vo.UsersVO;
|
||
import io.prometheus.client.Info;
|
||
import io.swagger.annotations.Api;
|
||
import io.swagger.annotations.ApiOperation;
|
||
import lombok.extern.slf4j.Slf4j;
|
||
import org.apache.commons.lang3.StringUtils;
|
||
import org.springframework.beans.BeanUtils;
|
||
import org.springframework.beans.factory.annotation.Autowired;
|
||
import org.springframework.stereotype.Controller;
|
||
import org.springframework.web.bind.annotation.*;
|
||
import org.springframework.web.multipart.MultipartFile;
|
||
|
||
/**
|
||
* @author vercen
|
||
* @version 1.0
|
||
* @date 2023/5/20 14:32
|
||
*/
|
||
@RestController
|
||
@Slf4j
|
||
@Api(tags = "UserInfoController用户信息接口模块")
|
||
@RequestMapping("userInfo")
|
||
public class UserInfoController extends BaseInfoProperties {
|
||
|
||
@Autowired
|
||
UserService userService;
|
||
|
||
// @ResponseBody
|
||
@ApiOperation(value = "根据userId返回个人信息")
|
||
@GetMapping("query")
|
||
public Object query(@RequestParam String userId){
|
||
Users user = userService.getUser(userId);
|
||
|
||
UsersVO usersVO = new UsersVO();
|
||
BeanUtils.copyProperties(user, usersVO);
|
||
|
||
|
||
// 我的关注博主总数量
|
||
String myFollowsCountsStr = redis.get(REDIS_MY_FOLLOWS_COUNTS + ":" + userId);
|
||
// 我的粉丝总数
|
||
String myFansCountsStr = redis.get(REDIS_MY_FANS_COUNTS + ":" + userId);
|
||
// 用户获赞总数,视频博主(点赞/喜欢)总和
|
||
// String likedVlogCountsStr = redis.get(REDIS_VLOG_BE_LIKED_COUNTS + ":" + userId);
|
||
String likedVlogerCountsStr = redis.get(REDIS_VLOGER_BE_LIKED_COUNTS + ":" + userId);
|
||
|
||
Integer myFollowsCounts = 0;
|
||
Integer myFansCounts = 0;
|
||
Integer likedVlogCounts = 0;
|
||
Integer likedVlogerCounts = 0;
|
||
Integer totalLikeMeCounts = 0;
|
||
|
||
|
||
if (StringUtils.isNotBlank(myFollowsCountsStr)) {
|
||
myFollowsCounts = Integer.valueOf(myFollowsCountsStr);
|
||
}
|
||
if (StringUtils.isNotBlank(myFansCountsStr)) {
|
||
myFansCounts = Integer.valueOf(myFansCountsStr);
|
||
}
|
||
// if (StringUtils.isNotBlank(likedVlogCountsStr)) {
|
||
// likedVlogCounts = Integer.valueOf(likedVlogCountsStr);
|
||
// }
|
||
if (StringUtils.isNotBlank(likedVlogerCountsStr)) {
|
||
likedVlogerCounts = Integer.valueOf(likedVlogerCountsStr);
|
||
}
|
||
totalLikeMeCounts = likedVlogCounts + likedVlogerCounts;
|
||
|
||
usersVO.setMyFollowsCounts(myFollowsCounts);
|
||
usersVO.setMyFansCounts(myFansCounts);
|
||
usersVO.setTotalLikeMeCounts(totalLikeMeCounts);
|
||
|
||
//usersVO.setMyFansCounts((Integer) myFansCounts);
|
||
|
||
return GraceJSONResult.ok(usersVO);
|
||
}
|
||
|
||
@PostMapping("modifyUserInfo")
|
||
public GraceJSONResult modifyUserInfo(@RequestBody UpdatedUserBO updatedUserBO, @RequestParam Integer type) throws Exception {
|
||
|
||
UserInfoModifyType.checkUserInfoTypeIsRight(type);
|
||
Users newUserInfo = userService.updateUserInfo(updatedUserBO, type);
|
||
return GraceJSONResult.ok(newUserInfo);
|
||
}
|
||
|
||
@Autowired
|
||
private MinIOConfig minIOConfig;
|
||
|
||
@PostMapping("modifyImage")
|
||
public GraceJSONResult modifyImage(@RequestParam String userId,
|
||
@RequestParam Integer type,
|
||
MultipartFile file) throws Exception {
|
||
|
||
if (type != FileTypeEnum.BGIMG.type && type != FileTypeEnum.FACE.type) {
|
||
return GraceJSONResult.errorCustom(ResponseStatusEnum.FILE_UPLOAD_FAILD);
|
||
}
|
||
|
||
String fileName = file.getOriginalFilename();
|
||
|
||
MinIOUtils.uploadFile(minIOConfig.getBucketName(),
|
||
fileName,
|
||
file.getInputStream());
|
||
|
||
String imgUrl = minIOConfig.getFileHost()
|
||
+ "/"
|
||
+ minIOConfig.getBucketName()
|
||
+ "/"
|
||
+ fileName;
|
||
|
||
|
||
// 修改图片地址到数据库
|
||
UpdatedUserBO updatedUserBO = new UpdatedUserBO();
|
||
updatedUserBO.setId(userId);
|
||
|
||
if (type == FileTypeEnum.BGIMG.type) {
|
||
updatedUserBO.setBgImg(imgUrl);
|
||
} else {
|
||
updatedUserBO.setFace(imgUrl);
|
||
}
|
||
Users users = userService.updateUserInfo(updatedUserBO);
|
||
|
||
return GraceJSONResult.ok(users);
|
||
}
|
||
|
||
@ApiOperation(value = "根据昵称搜索用户")
|
||
@GetMapping("searchByNickname")
|
||
public GraceJSONResult searchByNickname(@RequestParam String nickname,
|
||
@RequestParam(defaultValue = "") String id,
|
||
@RequestParam Integer page,
|
||
@RequestParam Integer pageSize){
|
||
try {
|
||
return GraceJSONResult.ok(userService.searchByNickname(nickname, page, pageSize,id));
|
||
} catch (Exception e) {
|
||
// 记录异常日志
|
||
log.error("搜索用户时发生异常,nickname: {}, page: {}, pageSize: {}", nickname, page, pageSize, e);
|
||
return GraceJSONResult.errorMsg("搜索用户时发生异常,请稍后重试");
|
||
}
|
||
}
|
||
|
||
|
||
}
|