linksProperties = new LRUMap(MAX_DATASOURCE_COUNT);
public DynamicDataSourceUtil(DataSource dynamicRoutingDataSource,
DynamicDataSourceProperties dynamicDataSourceProperties,
diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/override/jackson2/ExUserDeserializer.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/override/jackson2/ExUserDeserializer.java
index d219c74d..d32a1a4d 100644
--- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/override/jackson2/ExUserDeserializer.java
+++ b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/override/jackson2/ExUserDeserializer.java
@@ -13,7 +13,6 @@ import org.springframework.security.core.authority.AuthorityUtils;
import java.io.IOException;
import java.util.List;
-import java.util.Set;
/**
*
@@ -25,7 +24,7 @@ import java.util.Set;
*/
class ExUserDeserializer extends JsonDeserializer {
- private static final TypeReference> EX_PERMISSIONS_SET = new TypeReference>() {};
+ private static final TypeReference EX_PERMISSIONS_SET = new TypeReference() {};
@Override
public KiccUser deserialize(JsonParser jp, DeserializationContext context) throws IOException {
@@ -36,8 +35,8 @@ class ExUserDeserializer extends JsonDeserializer {
String password = passwordNode.asText("");
String deptId = readJsonNode(jsonNode, "deptId").asText();
String userType = readJsonNode(jsonNode, "userType").asText();
- Set exPermissions = mapper.convertValue(jsonNode.get("exPermissions"), EX_PERMISSIONS_SET);
- List authorities = AuthorityUtils.createAuthorityList(exPermissions.toArray(new String[0]));
+ String[] exPermissions = mapper.convertValue(jsonNode.get("exPermissions"), EX_PERMISSIONS_SET);
+ List authorities = AuthorityUtils.createAuthorityList(exPermissions);
KiccUser result = new KiccUser(
username,
password,
diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/KiccUserDetailsService.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/KiccUserDetailsService.java
index 0a97f382..a43c4de0 100644
--- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/KiccUserDetailsService.java
+++ b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/KiccUserDetailsService.java
@@ -1,8 +1,6 @@
package com.cloud.kicc.common.security.service;
-import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil;
-import cn.hutool.json.JSONUtil;
import com.cloud.kicc.common.core.api.R;
import com.cloud.kicc.common.core.constant.CommonConstants;
import com.cloud.kicc.common.core.constant.SecurityConstants;
@@ -10,22 +8,17 @@ import com.cloud.kicc.common.core.enums.CasSystemEnum;
import com.cloud.kicc.common.data.entity.CasUser;
import com.cloud.kicc.common.data.entity.KiccUser;
import com.cloud.kicc.common.security.exception.SecurityCheckedException;
-import com.cloud.kicc.common.security.override.jackson2.ExUserMixin;
-import com.cloud.kicc.system.api.entity.User;
+import com.cloud.kicc.system.api.vo.UserVo;
import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.MapperFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.SerializationFeature;
import lombok.SneakyThrows;
-import org.springframework.beans.BeanUtils;
import org.springframework.core.Ordered;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.AuthorityUtils;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
-import java.util.*;
+import java.util.List;
/**
*
@@ -61,23 +54,14 @@ public interface KiccUserDetailsService extends UserDetailsService, Ordered {
* @return UserDetails
*/
@SneakyThrows
- default UserDetails getUserDetails(R result) {
+ default UserDetails getUserDetails(R result) {
// 验证请求是否成功
if (result.getCode() != R.SUCCESS) {
throw new SecurityCheckedException(result.getMsg());
}
- User user = result.getData();
- Set dbAuthsSet = new HashSet<>();
-
- if (ArrayUtil.isNotEmpty(user.getRoleIds())) {
- // 获取角色
- Arrays.stream(user.getRoleIds()).forEach(role -> dbAuthsSet.add(SecurityConstants.ROLE + role));
- // 获取资源
- dbAuthsSet.addAll(Arrays.asList(user.getPermissions()));
- }
-
- List authorities = AuthorityUtils.createAuthorityList(dbAuthsSet.toArray(new String[0]));
+ UserVo user = result.getData();
+ List authorities = AuthorityUtils.createAuthorityList(user.getPermissions());
CasUser casUser = new CasUser(
user.getUserName(),
SecurityConstants.BCRYPT + user.getPassword(),
@@ -85,9 +69,25 @@ public interface KiccUserDetailsService extends UserDetailsService, Ordered {
true,
true,
StrUtil.equals(user.getStatus(), CommonConstants.STATUS_NORMAL),
- authorities
+ authorities,
+ user.getCasUserId(),
+ user.getNickName(),
+ user.getEmail(),
+ user.getPhone(),
+ user.getSex(),
+ user.getAvatar(),
+ user.getLoginIp(),
+ user.getLoginTime(),
+ user.getCreateById(),
+ user.getCreateByName(),
+ user.getCreateTime(),
+ user.getUpdateById(),
+ user.getUpdateByName(),
+ user.getUpdateTime(),
+ user.getRemarks(),
+ String.join(",", user.getRoleIds()),
+ String.join(",", user.getTenantIds())
);
- BeanUtils.copyProperties(user, casUser, CasUser.class);
// 设置扩展用户数据
casUser.getExPrincipals().put(CasSystemEnum.KICC, new ObjectMapper()
@@ -98,7 +98,7 @@ public interface KiccUserDetailsService extends UserDetailsService, Ordered {
authorities,
user.getDeptId(),
user.getUserType(),
- dbAuthsSet
+ user.getPermissions()
)));
// 构造security用户
diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccAppUserDetailsServiceImpl.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccAppUserDetailsServiceImpl.java
index 5b207282..b5674c3b 100644
--- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccAppUserDetailsServiceImpl.java
+++ b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccAppUserDetailsServiceImpl.java
@@ -4,8 +4,8 @@ import com.cloud.kicc.common.core.api.R;
import com.cloud.kicc.common.core.constant.SecurityConstants;
import com.cloud.kicc.common.data.entity.CasUser;
import com.cloud.kicc.common.security.service.KiccUserDetailsService;
-import com.cloud.kicc.system.api.entity.User;
import com.cloud.kicc.system.api.feign.RemoteUserService;
+import com.cloud.kicc.system.api.vo.UserVo;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
@@ -32,7 +32,7 @@ public class KiccAppUserDetailsServiceImpl implements KiccUserDetailsService {
@Override
@SneakyThrows
public UserDetails loadUserByUsername(String phone) {
- R result = remoteUserService.selectByPhone(phone);
+ R result = remoteUserService.selectByPhone(phone);
return getUserDetails(result);
}
diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccUserDetailsServiceImpl.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccUserDetailsServiceImpl.java
index 3c928eaf..614ec508 100644
--- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccUserDetailsServiceImpl.java
+++ b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccUserDetailsServiceImpl.java
@@ -1,11 +1,9 @@
package com.cloud.kicc.common.security.service.impl;
import com.cloud.kicc.common.core.api.R;
-import com.cloud.kicc.common.core.constant.SecurityConstants;
-import com.cloud.kicc.common.security.exception.SecurityCheckedException;
import com.cloud.kicc.common.security.service.KiccUserDetailsService;
-import com.cloud.kicc.system.api.entity.User;
import com.cloud.kicc.system.api.feign.RemoteUserService;
+import com.cloud.kicc.system.api.vo.UserVo;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
@@ -34,7 +32,7 @@ public class KiccUserDetailsServiceImpl implements KiccUserDetailsService {
@Override
@SneakyThrows
public UserDetails loadUserByUsername(String username) {
- R result = remoteUserService.selectByUserName(username);
+ R result = remoteUserService.selectByUserName(username);
return getUserDetails(result);
}
diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/util/SecurityUtils.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/util/SecurityUtils.java
index d649245c..778e2fa8 100644
--- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/util/SecurityUtils.java
+++ b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/util/SecurityUtils.java
@@ -1,6 +1,5 @@
package com.cloud.kicc.common.security.util;
-import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.cloud.kicc.common.core.api.R;
@@ -12,8 +11,8 @@ import com.cloud.kicc.common.core.util.SpringContextHolderUtil;
import com.cloud.kicc.common.data.entity.CasUser;
import com.cloud.kicc.common.data.entity.KiccUser;
import com.cloud.kicc.common.security.override.jackson2.ExUserMixin;
-import com.cloud.kicc.system.api.entity.User;
import com.cloud.kicc.system.api.feign.RemoteUserService;
+import com.cloud.kicc.system.api.vo.UserVo;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.SneakyThrows;
@@ -26,7 +25,9 @@ import org.springframework.security.core.authority.AuthorityUtils;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
/**
*
@@ -69,21 +70,34 @@ public class SecurityUtils {
}
/**
- * 获取SSO扩展用户
+ * 获取完整用户
+ * @param casSystemEnum SSO系统枚举
+ * @param valueType 自定义扩展用户
+ * @param mixinSource 自定义jackson混合解析源
+ * @return T
*/
@SneakyThrows
- public KiccUser getUser() {
+ public T getUser(CasSystemEnum casSystemEnum,
+ Class valueType,
+ Class> mixinSource) {
CasUser casUser = getCasUser();
if (casUser == null) return null;
- String user = casUser.getExPrincipals().get(CasSystemEnum.KICC);
- if (JSONUtil.isJson(user)) {
- KiccUser exUser = new ObjectMapper().addMixIn(KiccUser.class, ExUserMixin.class).readValue(user, KiccUser.class);
+ String str = casUser.getExPrincipals().get(casSystemEnum);
+ if (JSONUtil.isJson(str)) {
+ T exUser = new ObjectMapper().addMixIn(valueType, mixinSource).readValue(str, valueType);
BeanUtils.copyProperties(casUser, exUser);
return exUser;
}
return null;
}
+ /**
+ * 获取SSO扩展用户
+ */
+ public KiccUser getUser() {
+ return getUser(CasSystemEnum.KICC, KiccUser.class, ExUserMixin.class);
+ }
+
/**
* 获取用户角色信息
* @return 角色集合
@@ -107,23 +121,14 @@ public class SecurityUtils {
* @return User 用户对象
*/
@SneakyThrows
- public User openInterfaceTemporaryLoginSession(String userId) {
+ public UserVo openInterfaceTemporaryLoginSession(String userId) {
RemoteUserService remoteUserService = SpringContextHolderUtil.getBean(RemoteUserService.class);
- R result = remoteUserService.selectByUserId(userId);
+ R result = remoteUserService.selectByUserId(userId);
if (result == null || result.getData() == null) {
throw new CheckedException("用户不存在");
}
- User user = result.getData();
- Set dbAuthsSet = new HashSet<>();
- if (ArrayUtil.isNotEmpty(user.getRoleIds())) {
- // 获取角色
- Arrays.stream(user.getRoleIds()).forEach(role -> dbAuthsSet.add(SecurityConstants.ROLE + role));
- // 获取资源
- dbAuthsSet.addAll(Arrays.asList(user.getPermissions()));
- }
-
- List authorities = AuthorityUtils.createAuthorityList(dbAuthsSet.toArray(new String[0]));
-
+ UserVo user = result.getData();
+ List authorities = AuthorityUtils.createAuthorityList(user.getPermissions());
CasUser casUser = new CasUser(
user.getUserName(),
SecurityConstants.BCRYPT + user.getPassword(),
@@ -131,9 +136,25 @@ public class SecurityUtils {
true,
true,
StrUtil.equals(user.getStatus(), CommonConstants.STATUS_NORMAL),
- authorities
+ authorities,
+ user.getCasUserId(),
+ user.getNickName(),
+ user.getEmail(),
+ user.getPhone(),
+ user.getSex(),
+ user.getAvatar(),
+ user.getLoginIp(),
+ user.getLoginTime(),
+ user.getCreateById(),
+ user.getCreateByName(),
+ user.getCreateTime(),
+ user.getUpdateById(),
+ user.getUpdateByName(),
+ user.getUpdateTime(),
+ user.getRemarks(),
+ String.join(",", user.getRoleIds()),
+ String.join(",", user.getTenantIds())
);
- BeanUtils.copyProperties(user, casUser);
// 设置扩展用户数据
casUser.getExPrincipals().put(CasSystemEnum.KICC, new ObjectMapper()
.setSerializationInclusion(JsonInclude.Include.NON_NULL)
@@ -143,7 +164,7 @@ public class SecurityUtils {
authorities,
user.getDeptId(),
user.getUserType(),
- dbAuthsSet
+ user.getPermissions()
)));
Authentication authentication = new UsernamePasswordAuthenticationToken(casUser, "N/A", casUser.getAuthorities());
diff --git a/kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/feign/RemotePushConcernFanService.java b/kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/feign/RemotePushConcernFanService.java
index 14342458..a67412bf 100644
--- a/kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/feign/RemotePushConcernFanService.java
+++ b/kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/feign/RemotePushConcernFanService.java
@@ -19,7 +19,7 @@ import java.util.Set;
*
*
* @Author: wangxiang4
- * @since: 2023/4/6
+ * @Since: 2023/4/6
*/
@FeignClient(contextId = "remotePushConcernFanService", value = ServiceNameConstants.COMMON_SERVICE)
public interface RemotePushConcernFanService {
diff --git a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/entity/SsoUser.java b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/entity/SsoUser.java
index c7fc634f..4f73641c 100644
--- a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/entity/SsoUser.java
+++ b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/entity/SsoUser.java
@@ -21,7 +21,7 @@ import java.time.LocalDateTime;
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
-@TableName("sys_sso_user")
+@TableName("cas_sso_user")
@ApiModel(description = "SSO用户表")
public class SsoUser extends CommonEntity {
@@ -57,10 +57,6 @@ public class SsoUser extends CommonEntity {
/** 最后登陆时间 */
private LocalDateTime loginTime;
- /** 权限标识集合 */
- @TableField(exist = false)
- private String[] permissions;
-
/** 新密码 */
@TableField(exist = false)
private String newPassword;
diff --git a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/entity/User.java b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/entity/User.java
index ca4794b3..3e8f2950 100644
--- a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/entity/User.java
+++ b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/entity/User.java
@@ -1,8 +1,5 @@
package com.cloud.kicc.system.api.entity;
-import com.alibaba.excel.annotation.ExcelProperty;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.cloud.kicc.common.data.entity.CommonEntity;
import io.swagger.annotations.ApiModel;
@@ -11,149 +8,46 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
-import java.time.LocalDateTime;
-
/**
*
* 用户信息表
*
*
* @Author: wangxiang4
- * @Date: 2022/2/24
+ * @Since: 2023/8/21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
-@TableName("sys_user")
+@TableName(value = "sys_user", excludeProperty = { "remarks" })
@ApiModel(description = "用户表")
public class User extends CommonEntity {
private static final long serialVersionUID = 1L;
- /**
- * 用户ID
- */
- @TableId
- @ApiModelProperty("用户ID")
+ /** 用户ID */
private String id;
- /**
- * 用户名
- */
- @ExcelProperty("用户名")
- @ApiModelProperty("用户名")
- private String userName;
-
- /**
- * 昵称
- */
- @ExcelProperty("昵称")
- @ApiModelProperty("用户昵称")
- private String nickName;
-
- /**
- * 密码
- */
- @ApiModelProperty("用户密码")
- private String password;
+ @ApiModelProperty("CAS用户ID")
+ private String casUserId;
- /**
- * 用户类型
- */
+ /** {@link com.cloud.kicc.system.api.enums.UserTypeEnum } */
@ApiModelProperty("用户类型")
private String userType;
- /**
- * 机构ID
- */
@ApiModelProperty("机构ID")
private String deptId;
- /**
- * 机构名称
- */
@ApiModelProperty("机构名称")
private String deptName;
- /**
- * 用户邮箱
- */
- @ExcelProperty("邮箱")
- @ApiModelProperty("邮箱")
- private String email;
-
- /**
- * 手机号码
- */
- @ExcelProperty("手机号码")
- @ApiModelProperty("手机号码")
- private String phone;
-
- /**
- * 用户性别(0男 1女 2未知)
- */
- @ExcelProperty("性别")
- @ApiModelProperty("用户性别(0男 1女 2未知")
- private String sex;
-
- /**
- * 头像路径
- */
- @ApiModelProperty("头像路径")
- private String avatar;
-
- /**
- * 最后登陆IP
- */
- @ApiModelProperty("最后登陆IP")
- private String loginIp;
-
- /**
- * 最后登陆时间
- */
- @ApiModelProperty("最后登陆时间")
- private LocalDateTime loginTime;
-
- /**
- * 地图标记点位置图片旋转值
- */
@ApiModelProperty("地图标记点位置图片旋转值")
private Double mapOrientation;
- /**
- * 地图设计器默认中心点位置
- */
@ApiModelProperty("地图设计器默认中心点位置")
private String mapCenter;
- /**
- * 帐号状态(0正常 1停用)
- */
@ApiModelProperty("帐号状态(0正常 1停用)")
private String status;
- /**
- * 内部系统账户
- */
- @ApiModelProperty("内部系统账户ID")
- private Integer klabUserAccount;
-
- /**
- * 角色ID集合
- */
- @TableField(exist = false)
- @ApiModelProperty("角色ID集合")
- private String[] roleIds;
-
- /**
- * 权限标识集合
- */
- @TableField(exist = false)
- private String[] permissions;
-
- /**
- * 新密码
- */
- @TableField(exist = false)
- private String newPassword;
}
diff --git a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/feign/RemoteUserService.java b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/feign/RemoteUserService.java
index e0ec0d3e..999860af 100644
--- a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/feign/RemoteUserService.java
+++ b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/feign/RemoteUserService.java
@@ -4,11 +4,10 @@ import com.cloud.kicc.common.core.api.R;
import com.cloud.kicc.common.core.constant.AppConstants;
import com.cloud.kicc.common.core.constant.SecurityConstants;
import com.cloud.kicc.common.core.constant.ServiceNameConstants;
-import com.cloud.kicc.system.api.entity.User;
+import com.cloud.kicc.system.api.vo.UserVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestHeader;
/**
*
@@ -27,7 +26,7 @@ public interface RemoteUserService {
* @return R
*/
@GetMapping(value = AppConstants.APP_SYSTEM + "/user/selectByUserName/{userName}", headers = SecurityConstants.HEADER_FROM_IN)
- R selectByUserName(@PathVariable("userName") String userName);
+ R selectByUserName(@PathVariable("userName") String userName);
/**
* 通过手机号码查询用户
@@ -35,7 +34,7 @@ public interface RemoteUserService {
* @return R
*/
@GetMapping(value = AppConstants.APP_SYSTEM + "/user/selectByPhone/{phone}", headers = SecurityConstants.HEADER_FROM_IN)
- R selectByPhone(@PathVariable("phone") String phone);
+ R selectByPhone(@PathVariable("phone") String phone);
/**
* 通过用户ID查询用户
@@ -43,6 +42,6 @@ public interface RemoteUserService {
* @return R
*/
@GetMapping(value = AppConstants.APP_SYSTEM + "/user/getUser/{userId}", headers = SecurityConstants.HEADER_FROM_IN)
- R selectByUserId(@PathVariable("userId") String userid);
+ R selectByUserId(@PathVariable("userId") String userid);
}
diff --git a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/vo/UserVo.java b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/vo/UserVo.java
new file mode 100644
index 00000000..5bedd617
--- /dev/null
+++ b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/vo/UserVo.java
@@ -0,0 +1,62 @@
+package com.cloud.kicc.system.api.vo;
+
+import com.cloud.kicc.system.api.entity.SsoUser;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ *
+ * 返回完整用户信息(CasUser and SystemUser)
+ *
+ *
+ * @Author: wangxiang4
+ * @Since: 2023/8/21
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(description = "完整用户信息VO")
+public class UserVo extends SsoUser {
+
+ private static final long serialVersionUID = 1L;
+
+ private String id;
+
+ @ApiModelProperty("CAS用户ID")
+ private String casUserId;
+
+ /** {@link com.cloud.kicc.system.api.enums.UserTypeEnum } */
+ @ApiModelProperty("用户类型")
+ private String userType;
+
+ @ApiModelProperty("机构ID")
+ private String deptId;
+
+ @ApiModelProperty("机构名称")
+ private String deptName;
+
+ @ApiModelProperty("地图标记点位置图片旋转值")
+ private Double mapOrientation;
+
+ @ApiModelProperty("地图设计器默认中心点位置")
+ private String mapCenter;
+
+ @ApiModelProperty("帐号状态(0正常 1停用)")
+ private String status;
+
+ @ApiModelProperty("指定登录后首页跳转")
+ private String homePath;
+
+ @ApiModelProperty("角色ID集合")
+ private String[] roleIds;
+
+ @ApiModelProperty("菜单按钮权限")
+ private String[] permissions;
+
+ @ApiModelProperty("多租户ID集合")
+ private String[] tenantIds;
+
+}
diff --git a/kicc-platform/kicc-platform-api/kicc-workflow-api/src/main/java/com/cloud/kicc/workflow/api/constant/SqlConstants.java b/kicc-platform/kicc-platform-api/kicc-workflow-api/src/main/java/com/cloud/kicc/workflow/api/constant/SqlConstants.java
index f28c2860..2ce31118 100644
--- a/kicc-platform/kicc-platform-api/kicc-workflow-api/src/main/java/com/cloud/kicc/workflow/api/constant/SqlConstants.java
+++ b/kicc-platform/kicc-platform-api/kicc-workflow-api/src/main/java/com/cloud/kicc/workflow/api/constant/SqlConstants.java
@@ -12,10 +12,10 @@ public interface SqlConstants {
String QUERY_ACT_HI_COMMENT= "select * from ACT_HI_COMMENT where TYPE_ like ? and TASK_ID_ = ? order by TIME_ desc";
- String QUERY_USER_BY_ID = "select id, user_name userName, nick_name nickName, password, dept_id deptId, status from sys_user where id = ?";
+ String QUERY_USER_BY_ID = "select csu.id, csu.user_name userName, csu.nick_name nickName, csu.password, u.dept_id deptId, u.status from sys_user u join remote_cas_sso_user csu on u.cas_user_id = csu.id where csu.id = ?";
- String QUERY_USER_BY_DEPT_ID = "select id, user_name userName, nick_name nickName, password, dept_id deptId, status from sys_user where dept_id = ?";
+ String QUERY_USER_BY_DEPT_ID = "select csu.id, csu.user_name userName, csu.nick_name nickName, csu.password, u.dept_id deptId, u.status from sys_user u join remote_cas_sso_user csu on u.cas_user_id = csu.id where u.dept_id = ?";
- String QUERY_USER_BY_ROLE_ID = "select distinct id, user_name userName, nick_name nickName, password, dept_id deptId, status from sys_user a, sys_user_role b where a.id = b.user_id and b.role_id = ?";
+ String QUERY_USER_BY_ROLE_ID = "select distinct csu.id, csu.user_name userName, csu.nick_name nickName, csu.password, u.dept_id deptId, u.status from sys_user u join remote_cas_sso_user csu on u.cas_user_id = csu.id join sys_user_role b on csu.id = b.user_id where b.role_id = ?";
}
diff --git a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/MapTaskController.java b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/MapTaskController.java
index abe50b78..294c746e 100644
--- a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/MapTaskController.java
+++ b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/MapTaskController.java
@@ -9,13 +9,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cloud.kicc.common.core.api.R;
import com.cloud.kicc.common.core.constant.AppConstants;
-import com.cloud.kicc.common.core.constant.SecurityConstants;
import com.cloud.kicc.common.security.util.SecurityUtils;
import com.cloud.kicc.commonbiz.api.entity.*;
import com.cloud.kicc.commonbiz.service.*;
-import com.cloud.kicc.system.api.entity.User;
import com.cloud.kicc.system.api.feign.RemoteUserService;
-import io.lettuce.core.api.push.PushMessage;
+import com.cloud.kicc.system.api.vo.UserVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
@@ -87,7 +85,7 @@ public class MapTaskController {
mapTask.setBatchCode(batchCode);
JSONObject jsonObject = new JSONObject();
- R user = remoteUserService.selectByUserId(mapTask.getCourierUserId());
+ R user = remoteUserService.selectByUserId(mapTask.getCourierUserId());
Hospital hospital = hospitalService.getById(mapTask.getHospitalId());
jsonObject.put("hospitalId", hospital.getKlabHospitalAccount());
if (StrUtil.isNotBlank(mapTask.getOrgId())) {
@@ -100,7 +98,7 @@ public class MapTaskController {
jsonObject.put("officeId", 0);
jsonObject.put("doctorId", 0);
- jsonObject.put("syUserId", user.getData().getKlabUserAccount());
+ jsonObject.put("syUserId", user.getData().getCasUserId());
jsonObject.put("batchCode", mapTask.getBatchCode());
jsonObject.put("taskType", mapTask.getTaskType());
jsonObject.put("originImages", mapTask.getReceiptFileId());
diff --git a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/MapTaskPresetController.java b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/MapTaskPresetController.java
index 1ca2f258..6f488486 100644
--- a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/MapTaskPresetController.java
+++ b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/MapTaskPresetController.java
@@ -9,7 +9,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cloud.kicc.common.core.api.R;
import com.cloud.kicc.common.core.constant.AppConstants;
-import com.cloud.kicc.common.core.constant.SecurityConstants;
import com.cloud.kicc.commonbiz.api.entity.Hospital;
import com.cloud.kicc.commonbiz.api.entity.MapTaskPreset;
import com.cloud.kicc.commonbiz.api.entity.Org;
@@ -17,12 +16,11 @@ import com.cloud.kicc.commonbiz.service.HospitalService;
import com.cloud.kicc.commonbiz.service.IMapLogisticService;
import com.cloud.kicc.commonbiz.service.IMapTaskPresetService;
import com.cloud.kicc.commonbiz.service.OrgService;
-import com.cloud.kicc.system.api.entity.User;
import com.cloud.kicc.system.api.feign.RemoteUserService;
+import com.cloud.kicc.system.api.vo.UserVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
-import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
@@ -83,7 +81,7 @@ public class MapTaskPresetController {
String batchCode = UUID.fromString(UUID.randomUUID().toString()).toString();
mapTaskPreset.setBatchCode(batchCode);
JSONObject jsonObject = new JSONObject();
- R user = remoteUserService.selectByUserId(mapTaskPreset.getCourierUserId());
+ R user = remoteUserService.selectByUserId(mapTaskPreset.getCourierUserId());
if (StrUtil.isNotBlank(mapTaskPreset.getOrginPresetId())) {
Hospital hospital = hospitalService.getById(mapTaskPreset.getOrginPresetId());
jsonObject.put("hospitalId", hospital.getKlabHospitalAccount());
@@ -99,7 +97,7 @@ public class MapTaskPresetController {
jsonObject.put("officeId", 0);
jsonObject.put("doctorId", 0);
- jsonObject.put("syUserId", user.getData().getKlabUserAccount());
+ jsonObject.put("syUserId", user.getData().getCasUserId());
jsonObject.put("batchCode", mapTaskPreset);
jsonObject.put("taskType", 1);
jsonObject.put("originImages", mapTaskPreset.getReceiptFileId());
diff --git a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushBlacklistController.java b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushBlacklistController.java
index 73a7381a..79bacf48 100644
--- a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushBlacklistController.java
+++ b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushBlacklistController.java
@@ -13,7 +13,6 @@ import com.cloud.kicc.commonbiz.api.entity.PushConcernFanType;
import com.cloud.kicc.commonbiz.service.IPushBlacklistService;
import com.cloud.kicc.commonbiz.service.IPushConcernFanService;
import com.cloud.kicc.commonbiz.service.IPushConcernFanTypeService;
-import com.cloud.kicc.system.api.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
@@ -43,9 +42,9 @@ public class PushBlacklistController {
@ApiOperation("分页查询")
@GetMapping("/list")
- public R list(Page page, User user) {
- user.setCreateById(SecurityUtils.getCasUser().getId());
- IPage