Browse Source

元宇宙昵称修改

lidongze 3 years ago
parent
commit
b346885229

+ 2 - 0
src/main/java/com/izouma/nineth/domain/UserDetail.java

@@ -7,6 +7,7 @@ import lombok.NoArgsConstructor;
 
 import javax.persistence.Entity;
 import javax.persistence.Id;
+import javax.persistence.Transient;
 
 @Data
 @AllArgsConstructor
@@ -19,6 +20,7 @@ public class UserDetail extends BaseEntityNoID {
     private Long userId;
 
     @ApiModelProperty("昵称")
+    @Transient
     private String nickname;
 
     @ApiModelProperty("头像")

+ 17 - 0
src/main/java/com/izouma/nineth/service/UserService.java

@@ -144,6 +144,23 @@ public class UserService {
         return userRepo.save(user);
     }
 
+    public User metaUpdate(Long userId, String nickname) {
+        if (StringUtils.isBlank(nickname)) {
+            throw new BusinessException("用户昵称为空");
+        }
+        User user = userRepo.findById(userId).orElse(null);
+        if (Objects.isNull(user)) {
+            throw new BusinessException("用户信息为空");
+        }
+        if (!nickname.equals(user.getNickname())) {
+            if (!contentAuditService.auditText(nickname)) {
+                throw new BusinessException("昵称包含非法内容");
+            }
+        }
+        user.setNickname(nickname);
+        return save(user);
+    }
+
     public User update(Long userId, String nickname, String avatar, String sex, String bg, String intro,
                        Boolean useCollectionPic, Boolean riskWarning, Integer level, Boolean isPublicShow) {
         User user = userRepo.findById(userId).orElseThrow(new BusinessException("用户不存在"));

+ 15 - 5
src/main/java/com/izouma/nineth/web/UserDetailController.java

@@ -1,5 +1,6 @@
 package com.izouma.nineth.web;
 
+import com.izouma.nineth.domain.User;
 import com.izouma.nineth.domain.UserDetail;
 import com.izouma.nineth.dto.MetaRestResult;
 import com.izouma.nineth.dto.PageQuery;
@@ -7,6 +8,8 @@ import com.izouma.nineth.exception.BusinessException;
 import com.izouma.nineth.repo.UserDetailRepo;
 import com.izouma.nineth.service.ContentAuditService;
 import com.izouma.nineth.service.UserDetailService;
+import com.izouma.nineth.service.UserService;
+import com.izouma.nineth.utils.SecurityUtils;
 import com.izouma.nineth.utils.excel.ExcelUtils;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
@@ -25,17 +28,27 @@ public class UserDetailController extends BaseController {
     private UserDetailService userDetailService;
     private UserDetailRepo userDetailRepo;
     private ContentAuditService contentAuditService;
+    private UserService userService;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")
     public UserDetail save(@RequestBody UserDetail record) {
-
+        if (Objects.isNull(record)) {
+            throw new BusinessException("参数为空");
+        }
         if (StringUtils.isNotBlank(record.getAutograph())) {
             if (!contentAuditService.auditText(record.getAutograph())) {
                 throw new BusinessException("简介包含非法内容");
             }
         }
-        return userDetailRepo.save(record);
+        UserDetail newUserDetail = userDetailRepo.save(record);
+        if (StringUtils.isNotBlank(record.getNickname())) {
+            User user = userService.metaUpdate(SecurityUtils.getAuthenticatedUser().getId(), record.getNickname());
+            if (Objects.nonNull(user)) {
+                newUserDetail.setNickname(user.getNickname());
+            }
+        }
+        return newUserDetail;
     }
 
     @PostMapping("/meta/save")
@@ -103,9 +116,6 @@ public class UserDetailController extends BaseController {
         if(StringUtils.isNotBlank(userDetail.getMail())) {
             return true;
         }
-        if(StringUtils.isNotBlank(userDetail.getNickname())) {
-            return true;
-        }
         if(StringUtils.isNotBlank(userDetail.getOccupation())) {
             return true;
         }