Просмотр исходного кода

feat:
为用户添加默认头像

18339543638 2 лет назад
Родитель
Сommit
30aeeb3afa

+ 30 - 0
tr-framework/src/main/java/cn/tr/core/utils/UserUtil.java

@@ -0,0 +1,30 @@
+package cn.tr.core.utils;
+
+import cn.hutool.core.util.StrUtil;
+
+import java.util.function.Function;
+
+/**
+ * @ClassName : UserUtil
+ * @Description :
+ * @Author : LF
+ * @Date: 2023年09月05日
+ */
+
+public class UserUtil {
+    public static Function<String, String> userNickNameSupplier=userId->"";
+
+    public static String getNickName(String userId){
+        if(StrUtil.isBlank(userId)){
+            return "";
+        }
+        return userNickNameSupplier.apply(userId);
+    }
+
+    public static String getAvatar(String userId){
+        if(StrUtil.isBlank(userId)){
+            return "";
+        }
+        return AvatarUtil.generateAvatar(getNickName(userId));
+    }
+}

+ 1 - 1
tr-modules/tr-module-quartz/src/main/java/cn/tr/module/quartz/jobLog/dto/SysJobLogDTO.java

@@ -22,7 +22,7 @@ import java.util.*;
 public class SysJobLogDTO extends BaseDTO  {
     private static final long serialVersionUID = 1L;
     @ApiModelProperty(value = "任务日志ID", position = 1)
-     @NotBlank  (message = "主键不能为空",groups = {Update.class})
+    @NotBlank  (message = "主键不能为空",groups = {Update.class})
     private String id;
 
     @ApiModelProperty(value = "任务名称", position = 2)

+ 26 - 0
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/user/provider/SysUserNickNameProvider.java

@@ -0,0 +1,26 @@
+package cn.tr.module.sys.user.provider;
+
+import cn.tr.core.utils.UserUtil;
+import cn.tr.module.sys.user.service.ISysUserService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+
+/**
+ * @ClassName : SysUserNickNameProvider
+ * @Description :
+ * @Author : LF
+ * @Date: 2023年09月05日
+ */
+@Component
+@AllArgsConstructor
+public class SysUserNickNameProvider {
+    private final ISysUserService userService;
+
+
+    @PostConstruct
+    public void init(){
+        UserUtil.userNickNameSupplier=userService::selectNickNameById;
+    }
+}

+ 15 - 0
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/user/service/ISysUserService.java

@@ -3,6 +3,8 @@ import cn.tr.module.sys.user.dto.SysUserDTO;
 import cn.tr.module.sys.user.dto.SysUserEditDTO;
 import cn.tr.module.sys.user.dto.SysUserQueryDTO;
 import cn.tr.plugin.security.bo.UserLoginInfoBO;
+import org.springframework.cache.annotation.CacheEvict;
+import org.springframework.cache.annotation.Cacheable;
 
 import java.util.*;
 /**
@@ -27,6 +29,19 @@ public interface ISysUserService {
      */
     SysUserDTO selectSysUserById(String id);
 
+
+    /**
+     * 根据id查询用户昵称
+     * @param userId 用户id
+     * @return 用户
+     */
+    @Cacheable(value = "user:nickname",key = "#userId")
+    String  selectNickNameById(String userId);
+
+    @CacheEvict(value = "user:nickname",key = "#userId")
+    default void delNickNameCache(String userId){
+
+    };
     /**
      * 更新用户
      * @param source 更新用户

+ 13 - 2
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/user/service/impl/SysUserServiceImpl.java

@@ -1,6 +1,7 @@
 package cn.tr.module.sys.user.service.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.tr.core.annotation.TenantIgnore;
 import cn.tr.core.exception.ServiceException;
@@ -19,8 +20,6 @@ import cn.tr.module.sys.user.service.ISysUserRoleService;
 import cn.tr.module.sys.user.service.ISysUserService;
 import cn.tr.module.sys.user.po.SysUserPO;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
@@ -53,6 +52,11 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserRepository,SysUserPO>
     @Autowired
     @Lazy
     private SysConfigManager configManager;
+
+    @Autowired
+    @Lazy
+    private ISysUserService sysUserService;
+
     @Override
     public List<SysUserDTO> selectSysUserList(SysUserQueryDTO query) {
         return SysUserMapper.INSTANCE.toUserDTOList(baseMapper.selectList(
@@ -77,6 +81,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserRepository,SysUserPO>
         return result;
     }
 
+    @Override
+    public String selectNickNameById(String userId) {
+        SysUserPO user = getById(userId);
+        return ObjectUtil.isNull(user)?"":user.getNickname();
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean updateSysUserById(SysUserEditDTO source) {
@@ -87,6 +97,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserRepository,SysUserPO>
             assignUserPortal(source.getId(),source.getPortalIds());
             assignUserPosition(source.getId(),source.getPostIds());
         }
+        sysUserService.delNickNameCache(source.getId());
         return result;
     }
 

+ 26 - 1
tr-plugins/tr-spring-boot-starter-plugin-mybatis/src/main/java/cn/tr/plugin/mybatis/pojo/BaseDTO.java

@@ -1,9 +1,10 @@
 package cn.tr.plugin.mybatis.pojo;
 
+
+import cn.tr.core.utils.UserUtil;
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-
 import java.io.Serializable;
 import java.util.Date;
 
@@ -30,4 +31,28 @@ public class BaseDTO implements Serializable {
     @JsonIgnoreProperties(allowGetters = true)
     @ApiModelProperty(readOnly = true)
     private Date updateTime;
+
+    @ApiModelProperty(hidden = true)
+    @JsonIgnoreProperties
+    private String updateBy;
+
+    @ApiModelProperty(hidden = true)
+    @JsonIgnoreProperties
+    private String createBy;
+
+    public String getUpdatorName() {
+        return UserUtil.getNickName(updateBy);
+    }
+
+    public String getCreatorName() {
+        return UserUtil.getNickName(createBy);
+    }
+
+    public String getUpdateAvatar() {
+        return UserUtil.getAvatar(updateBy);
+    }
+
+    public String getCreateAvatar() {
+        return UserUtil.getAvatar(createBy);
+    }
 }