Ver Fonte

add:
用户新增个性签名

18339543638 há 2 anos atrás
pai
commit
ea3c5d9419

+ 14 - 0
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/oauth2/controller/CurrentUserController.java

@@ -4,6 +4,7 @@ import cn.tr.core.exception.ServiceException;
 import cn.tr.core.exception.TRExcCode;
 import cn.tr.core.pojo.CommonResult;
 import cn.tr.core.utils.TreeUtil;
+import cn.tr.module.sys.oauth2.dto.AccountUserInfoEditDTO;
 import cn.tr.module.sys.oauth2.psw.operator.AbstractOAuth2PswUserOperator;
 import cn.tr.module.sys.oauth2.psw.operator.OAuth2PswUserOperatorManager;
 import cn.tr.module.sys.oauth2.service.CurrentUserService;
@@ -79,4 +80,17 @@ public class CurrentUserController {
         return CommonResult.success(operator.getAccountInfo());
     }
 
+    @ApiOperation("更新用户的个人账户中心信息")
+    @GetMapping("/loginInfo")
+    public CommonResult<Boolean> updateAccountInfo(AccountUserInfoEditDTO source){
+        SaTokenUtils.getStpUtil().checkLogin();
+        String stpType = LoginUserContextHolder.getStpType();
+        AbstractOAuth2PswUserOperator operator = pswUserOperatorManager.matchLoginType(stpType);
+        if(operator==null){
+            throw new ServiceException(TRExcCode.USER_ERROR_A0200,String.format("账号体系[{%s}]不存在",stpType));
+        }
+        operator.getAccountInfo();
+        return CommonResult.success(true);
+    }
+
 }

+ 3 - 2
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/oauth2/dto/AccountUserInfoDTO.java

@@ -1,7 +1,5 @@
 package cn.tr.module.sys.oauth2.dto;
 
-import cn.hutool.core.util.StrUtil;
-import cn.tr.core.utils.AvatarUtil;
 import cn.tr.core.utils.UserUtil;
 import cn.tr.module.sys.user.dto.*;
 import io.swagger.annotations.ApiModelProperty;
@@ -70,6 +68,9 @@ public class AccountUserInfoDTO {
         @ApiModelProperty("最后登录时间")
         private Date lastLoginDate;
 
+        @ApiModelProperty("个人签名")
+        private String signature;
+
         public String getAvatar() {
             return UserUtil.getAvatar(nickname,gender);
         }

+ 42 - 0
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/oauth2/dto/AccountUserInfoEditDTO.java

@@ -0,0 +1,42 @@
+package cn.tr.module.sys.oauth2.dto;
+
+import cn.tr.core.utils.UserUtil;
+import cn.tr.module.sys.user.dto.SysOrgSmallDTO;
+import cn.tr.module.sys.user.dto.SysPositionSmallDTO;
+import cn.tr.module.sys.user.dto.SysRoleSmallDTO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @ClassName : AccountUserInfoDTO
+ * @Description : 账户中心信息
+ * @Author : LF
+ * @Date: 2023年05月25日
+ */
+@Data
+public class AccountUserInfoEditDTO {
+
+    @ApiModelProperty("昵称")
+    private String nickname;
+
+    @ApiModelProperty("头像")
+    private String avatar;
+
+    @ApiModelProperty("性别")
+    private String gender;
+
+    @ApiModelProperty("电话")
+    private String phone;
+
+    @ApiModelProperty("邮箱")
+    private String email;
+
+    @ApiModelProperty("个人签名")
+    private String signature;
+}

+ 4 - 0
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/oauth2/mapper/OAuth2Mapper.java

@@ -1,7 +1,9 @@
 package cn.tr.module.sys.oauth2.mapper;
 
+import cn.tr.module.sys.oauth2.dto.AccountUserInfoEditDTO;
 import cn.tr.module.sys.oauth2.dto.OAuth2PswLoginInfoDTO;
 import cn.tr.module.sys.user.dto.SysUserDTO;
+import cn.tr.module.sys.user.po.SysUserPO;
 import org.mapstruct.Mapper;
 import org.mapstruct.Mapping;
 import org.mapstruct.Mappings;
@@ -21,4 +23,6 @@ public interface OAuth2Mapper {
             @Mapping(source = "id",target = "userId")
     )
     OAuth2PswLoginInfoDTO  toPswLoginInfo(SysUserDTO source);
+
+    SysUserPO toSysUser(AccountUserInfoEditDTO source);
 }

+ 8 - 0
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/oauth2/operator/OAuth2UserOperator.java

@@ -19,6 +19,7 @@ import cn.dev33.satoken.session.SaSession;
 import cn.dev33.satoken.session.TokenSign;
 import cn.tr.module.sys.oauth2.LoginTypeMatcher;
 import cn.tr.module.sys.oauth2.dto.AccountUserInfoDTO;
+import cn.tr.module.sys.oauth2.dto.AccountUserInfoEditDTO;
 import cn.tr.module.sys.oauth2.dto.OAuth2PswReqDTO;
 import cn.tr.module.sys.oauth2.enums.OAuth2ModelEnum;
 import cn.tr.module.sys.user.dto.OnlineUserSessionDTO;
@@ -71,6 +72,13 @@ public interface OAuth2UserOperator extends LoginTypeMatcher {
 	 */
 	AccountUserInfoDTO getAccountInfo();
 
+	/**
+	 * 更新当前用户的账户信息
+	 * @param userId
+	 * @param source
+	 */
+	void updateAccountUserInfo(String userId, AccountUserInfoEditDTO source);
+
 	default void setSessionUser(String tokenValue, UserLoginInfoBO loginInfo){
 		SaTokenUtils.set(SecurityConstant.LOGIN_USER,loginInfo);
 		OnlineUserSessionDTO userSession = SaTokenUtils.getValue(SecurityConstant.SESSION_USER, OnlineUserSessionDTO.class);

+ 14 - 0
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/oauth2/psw/operator/LoginOAuth2PswUserOperator.java

@@ -16,6 +16,7 @@ import cn.tr.module.sys.config.SysConfigManager;
 import cn.tr.module.sys.config.SysConfigProperties;
 import cn.tr.module.sys.oauth2.config.CaptchaOperator;
 import cn.tr.module.sys.oauth2.dto.AccountUserInfoDTO;
+import cn.tr.module.sys.oauth2.dto.AccountUserInfoEditDTO;
 import cn.tr.module.sys.oauth2.mapper.OAuth2Mapper;
 import cn.tr.module.sys.oauth2.dto.OAuth2PswReqDTO;
 import cn.tr.module.sys.tenant.dto.SysTenantCommonDTO;
@@ -28,6 +29,8 @@ import cn.tr.module.sys.user.enums.UserStatusEnum;
 import cn.tr.module.sys.user.mapper.SysOrgMapper;
 import cn.tr.module.sys.user.mapper.SysPositionMapper;
 import cn.tr.module.sys.user.mapper.SysRoleMapper;
+import cn.tr.module.sys.user.po.SysUserPO;
+import cn.tr.module.sys.user.repository.SysUserRepository;
 import cn.tr.module.sys.user.service.ISysOrgService;
 import cn.tr.module.sys.user.service.ISysPositionService;
 import cn.tr.module.sys.user.service.ISysRoleService;
@@ -57,6 +60,9 @@ public class LoginOAuth2PswUserOperator extends AbstractOAuth2PswUserOperator{
     @Autowired
     private ISysUserService sysUserService;
 
+    @Autowired
+    private SysUserRepository sysUserRepository;
+
     @Autowired
     private ISysTenantService tenantService;
 
@@ -181,6 +187,7 @@ public class LoginOAuth2PswUserOperator extends AbstractOAuth2PswUserOperator{
                 .lastLoginIp(user.getLastLoginIp())
                 .lastLoginAddress(user.getLastLoginAddress())
                 .lastLoginDate(user.getLastLoginDate())
+                .signature(user.getSignature())
                 .build();
         //填充角色信息
         List<SysRoleDTO> roles = roleService.selectSysRoleByIds(user.getRoleIds());
@@ -195,6 +202,13 @@ public class LoginOAuth2PswUserOperator extends AbstractOAuth2PswUserOperator{
         return result;
     }
 
+    @Override
+    public void updateAccountUserInfo(String userId, AccountUserInfoEditDTO source) {
+        SysUserPO sysUserPO = OAuth2Mapper.INSTANCE.toSysUser(source);
+        sysUserPO.setId(userId);
+        sysUserRepository.updateById(sysUserPO);
+    }
+
     @Override
     public String matchLoginType() {
         return StpUtil.TYPE;

+ 4 - 0
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/user/dto/SysUserDTO.java

@@ -5,6 +5,7 @@ import cn.tr.core.validation.Insert;
 import cn.tr.core.validation.Update;
 import cn.tr.module.sys.user.enums.UserStatusEnum;
 import cn.tr.plugin.mybatis.pojo.BaseDTO;
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -120,6 +121,9 @@ public class SysUserDTO extends BaseDTO {
 
     private String tenantId;
 
+    @JsonIgnore
+    private String signature;
+
     public String getAvatar() {
         return UserUtil.getAvatar(id);
     }

+ 4 - 0
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/user/po/SysUserPO.java

@@ -62,6 +62,10 @@ public class SysUserPO extends TenantPO {
     @Comment("用户头像")
     private String avatar;
 
+    /**
+     * 用户签名
+     */
+    private String signature;
     /**
      * {@link UserStatusEnum#getValue()}
      */

+ 1 - 0
tr-test/src/main/resources/db/migration/V20231026__AddUserSignature.sql

@@ -0,0 +1 @@
+alter table sys_user add signature text comment '个性签名';