|
@@ -1,10 +1,21 @@
|
|
|
package com.abi.qms.platform.infrastructure.util;
|
|
|
|
|
|
import com.abi.qms.platform.dao.entity.UserInfo;
|
|
|
+import com.abi.qms.platform.dao.entity.UserRoleDetail;
|
|
|
+import com.abi.qms.platform.dao.enums.TrueFalseEnum;
|
|
|
import com.abi.qms.platform.dao.mapper.UserInfoMapper;
|
|
|
+import com.abi.qms.platform.service.RoleManagerService;
|
|
|
+import com.abi.task.common.utils.PojoConverterUtils;
|
|
|
+import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
+import lombok.Data;
|
|
|
+import lombok.NoArgsConstructor;
|
|
|
+import lombok.ToString;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
+import java.io.Serializable;
|
|
|
+
|
|
|
/**
|
|
|
* 用户工具类
|
|
|
*
|
|
@@ -16,8 +27,11 @@ public class UserUtil {
|
|
|
@Autowired
|
|
|
private UserInfoMapper userInfoMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private RoleManagerService roleManagerService;
|
|
|
+
|
|
|
/**
|
|
|
- * 仅token中的user信息
|
|
|
+ * 仅token数据的user
|
|
|
*/
|
|
|
private final InheritableThreadLocal<UserInfo> USER_THREAD_LOCAL = new InheritableThreadLocal();
|
|
|
|
|
@@ -36,21 +50,46 @@ public class UserUtil {
|
|
|
/**
|
|
|
* 查询数据库后完整的user信息
|
|
|
*/
|
|
|
- private final InheritableThreadLocal<UserInfo> USER_WHOLE_THREAD_LOCAL = new InheritableThreadLocal();
|
|
|
+ private final InheritableThreadLocal<UserBean> USER_WHOLE_THREAD_LOCAL = new InheritableThreadLocal();
|
|
|
|
|
|
private synchronized void initWholeUser() {
|
|
|
if(USER_WHOLE_THREAD_LOCAL.get()!=null){
|
|
|
return;
|
|
|
}
|
|
|
+ //查询用户数据
|
|
|
UserInfo wholeUser = userInfoMapper.selectById(USER_THREAD_LOCAL.get().getId());
|
|
|
- USER_WHOLE_THREAD_LOCAL.set(wholeUser);
|
|
|
+
|
|
|
+ //查询其他数据
|
|
|
+ UserRoleDetail roleDetail = roleManagerService.getRoleDetail(wholeUser.getRoleCode());
|
|
|
+ int isMainAccount = (TrueFalseEnum.TRUE.is(roleDetail.getIsActivateMiniAppMainAccount()))?1:0;
|
|
|
+
|
|
|
+ //转为userBean
|
|
|
+ UserBean userBean = PojoConverterUtils.copy(wholeUser, UserBean.class);
|
|
|
+ //塞入其他信息
|
|
|
+ userBean.setIsMainAccount(isMainAccount);
|
|
|
+
|
|
|
+ USER_WHOLE_THREAD_LOCAL.set(userBean);
|
|
|
}
|
|
|
|
|
|
- public UserInfo getWholeUser() {
|
|
|
+ public UserBean getWholeUser() {
|
|
|
if(USER_WHOLE_THREAD_LOCAL.get()==null && USER_THREAD_LOCAL.get()!=null && USER_THREAD_LOCAL.get().getId()!=null){
|
|
|
initWholeUser();
|
|
|
}
|
|
|
return USER_WHOLE_THREAD_LOCAL.get();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 用户信息
|
|
|
+ */
|
|
|
+ @Data
|
|
|
+ @NoArgsConstructor
|
|
|
+ @AllArgsConstructor
|
|
|
+ @ToString
|
|
|
+ public static class UserBean extends UserInfo implements Serializable {
|
|
|
+
|
|
|
+ @Schema(name = "是小程序用户主账号 1-是 0-不是")
|
|
|
+ private Integer isMainAccount;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|