From d91087908dab99aad3cc4564ecb8ddbf20e948c4 Mon Sep 17 00:00:00 2001 From: wangxiang <1827945911@qq.com> Date: Wed, 23 Aug 2023 18:34:38 +0800 Subject: [PATCH] chore: extraction userVo merge kiccUser --- .../core/constant/SecurityConstants.java | 10 ++ .../kicc/common/data/entity/KiccUser.java | 91 ++++++++++++++----- .../mock/annotation/WithMockOAuth2User.java | 5 +- .../override/jackson2/ExUserDeserializer.java | 58 ------------ .../override/jackson2/ExUserMixin.java | 23 ----- .../jackson2/SimpleGrantedAuthorityMixin.java | 32 +++++++ .../service/KiccUserDetailsService.java | 40 ++++---- .../impl/KiccAppUserDetailsServiceImpl.java | 4 +- .../impl/KiccUserDetailsServiceImpl.java | 4 +- .../common/security/util/SecurityUtils.java | 60 ++++++------ .../system/api/feign/RemoteUserService.java | 8 +- .../com/cloud/kicc/system/api/vo/UserVo.java | 62 ------------- .../controller/MapTaskController.java | 4 +- .../controller/MapTaskPresetController.java | 4 +- .../commonbiz/mapper/PushBlacklistMapper.java | 5 +- .../service/impl/MapLogisticServiceImpl.java | 6 +- .../impl/PushBlacklistServiceImpl.java | 3 - .../kicc/system/controller/AppController.java | 6 +- .../system/controller/SsoUserController.java | 7 +- .../system/controller/TenantController.java | 4 +- .../system/controller/UserController.java | 40 ++++---- .../cloud/kicc/system/mapper/UserMapper.java | 12 +-- .../kicc/system/service/ISsoUserService.java | 7 +- .../kicc/system/service/UserService.java | 24 ++--- .../system/service/impl/AppServiceImpl.java | 4 +- .../service/impl/SsoUserServiceImpl.java | 31 +++---- .../system/service/impl/UserServiceImpl.java | 46 +++++----- .../src/main/resources/mapper/UserMapper.xml | 8 +- 28 files changed, 276 insertions(+), 332 deletions(-) delete mode 100644 kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/override/jackson2/ExUserDeserializer.java delete mode 100644 kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/override/jackson2/ExUserMixin.java create mode 100644 kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/override/jackson2/SimpleGrantedAuthorityMixin.java delete mode 100644 kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/vo/UserVo.java diff --git a/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/constant/SecurityConstants.java b/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/constant/SecurityConstants.java index 90d16d92..71f3cec0 100644 --- a/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/constant/SecurityConstants.java +++ b/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/constant/SecurityConstants.java @@ -114,4 +114,14 @@ public interface SecurityConstants { */ String CLIENT_ID = "clientId"; + /** + * 模拟测试账户 + */ + String MOCK_USERNAME = "admin"; + + /** + * 模拟测试密码 + */ + String MOCK_PASSWORD = "kanglai123"; + } diff --git a/kicc-common/kicc-common-data/src/main/java/com/cloud/kicc/common/data/entity/KiccUser.java b/kicc-common/kicc-common-data/src/main/java/com/cloud/kicc/common/data/entity/KiccUser.java index 8593bdb2..f08d02d4 100644 --- a/kicc-common/kicc-common-data/src/main/java/com/cloud/kicc/common/data/entity/KiccUser.java +++ b/kicc-common/kicc-common-data/src/main/java/com/cloud/kicc/common/data/entity/KiccUser.java @@ -1,11 +1,19 @@ package com.cloud.kicc.common.data.entity; -import lombok.*; +import cn.hutool.core.util.ObjectUtil; +import com.cloud.kicc.common.core.constant.SecurityConstants; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; import lombok.experimental.Accessors; -import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.AuthorityUtils; +import org.springframework.security.core.authority.SimpleGrantedAuthority; -import java.util.Collection; -import java.util.Set; +import java.util.List; /** *

@@ -19,27 +27,64 @@ import java.util.Set; @Setter @Accessors(chain = true) @EqualsAndHashCode(callSuper = false) +@ApiModel(description = "完整用户信息") public class KiccUser extends CasUser { - /** 部门ID */ - private String deptId; - - /** 用户类型 */ - private String userType; - - /** 扩展用户权限 */ - private String[] exPermissions; - - public KiccUser(String username, - String password, - Collection authorities, - String deptId, - String userType, - String[] exPermissions) { - super(username, password, authorities); - this.deptId = deptId; - this.userType = userType; - this.exPermissions = exPermissions; + @ApiModelProperty("扩展用户ID") + private String id; + + @ApiModelProperty("CAS用户ID") + private String casUserId; + + @ApiModelProperty("用户类型 {@link com.cloud.kicc.system.api.enums.UserTypeEnum }") + 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; + + public KiccUser() { + super(SecurityConstants.MOCK_USERNAME, SecurityConstants.MOCK_PASSWORD, AuthorityUtils.createAuthorityList()); + } + + @JsonCreator + public KiccUser(@JsonProperty("username") String username, + @JsonProperty("password") String password, + @JsonProperty("enabled") boolean enabled, + @JsonProperty("accountNonExpired") boolean accountNonExpired, + @JsonProperty("credentialsNonExpired") boolean credentialsNonExpired, + @JsonProperty("accountNonLocked") boolean accountNonLocked, + @JsonProperty("authorities") List authorities) { + super(ObjectUtil.defaultIfNull(username, SecurityConstants.MOCK_USERNAME), + ObjectUtil.defaultIfNull(password, SecurityConstants.MOCK_PASSWORD), + enabled, + accountNonExpired, + credentialsNonExpired, + accountNonLocked, + ObjectUtil.defaultIfNull(authorities, AuthorityUtils.createAuthorityList())); } } diff --git a/kicc-common/kicc-common-mock/src/main/java/com/cloud/kicc/common/mock/annotation/WithMockOAuth2User.java b/kicc-common/kicc-common-mock/src/main/java/com/cloud/kicc/common/mock/annotation/WithMockOAuth2User.java index 256f5f42..56849487 100644 --- a/kicc-common/kicc-common-mock/src/main/java/com/cloud/kicc/common/mock/annotation/WithMockOAuth2User.java +++ b/kicc-common/kicc-common-mock/src/main/java/com/cloud/kicc/common/mock/annotation/WithMockOAuth2User.java @@ -1,5 +1,6 @@ package com.cloud.kicc.common.mock.annotation; +import com.cloud.kicc.common.core.constant.SecurityConstants; import com.cloud.kicc.common.mock.WithMockSecurityContextFactory; import org.springframework.security.test.context.support.WithSecurityContext; @@ -22,11 +23,11 @@ public @interface WithMockOAuth2User { /** * 用户名 */ - String username() default "admin"; + String username() default SecurityConstants.MOCK_USERNAME; /** * 密码 */ - String password() default "kanglai123"; + String password() default SecurityConstants.MOCK_PASSWORD; } 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 deleted file mode 100644 index d32a1a4d..00000000 --- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/override/jackson2/ExUserDeserializer.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.cloud.kicc.common.security.override.jackson2; - -import com.cloud.kicc.common.data.entity.KiccUser; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.MissingNode; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.AuthorityUtils; - -import java.io.IOException; -import java.util.List; - -/** - *

- * 反序列化扩展用户实现 - *

- * - * @Author: wangxiang4 - * @Since: 2023/8/19 - */ -class ExUserDeserializer extends JsonDeserializer { - - private static final TypeReference EX_PERMISSIONS_SET = new TypeReference() {}; - - @Override - public KiccUser deserialize(JsonParser jp, DeserializationContext context) throws IOException { - ObjectMapper mapper = (ObjectMapper) jp.getCodec(); - JsonNode jsonNode = mapper.readTree(jp); - JsonNode passwordNode = readJsonNode(jsonNode, "password"); - String username = readJsonNode(jsonNode, "username").asText(); - String password = passwordNode.asText(""); - String deptId = readJsonNode(jsonNode, "deptId").asText(); - String userType = readJsonNode(jsonNode, "userType").asText(); - String[] exPermissions = mapper.convertValue(jsonNode.get("exPermissions"), EX_PERMISSIONS_SET); - List authorities = AuthorityUtils.createAuthorityList(exPermissions); - KiccUser result = new KiccUser( - username, - password, - authorities, - deptId, - userType, - exPermissions - ); - if (passwordNode.asText(null) == null) { - result.eraseCredentials(); - } - return result; - } - - private JsonNode readJsonNode(JsonNode jsonNode, String field) { - return jsonNode.has(field) ? jsonNode.get(field) : MissingNode.getInstance(); - } - -} diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/override/jackson2/ExUserMixin.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/override/jackson2/ExUserMixin.java deleted file mode 100644 index 1591fc5a..00000000 --- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/override/jackson2/ExUserMixin.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.cloud.kicc.common.security.override.jackson2; - -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; - -/** - *

- * 序列化扩展SSO用户信息 - *

- * - * @Author: wangxiang4 - * @Since: 2023/8/19 - */ -@JsonDeserialize(using = ExUserDeserializer.class) -@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, - getterVisibility = JsonAutoDetect.Visibility.NONE, - isGetterVisibility = JsonAutoDetect.Visibility.NONE) -@JsonIgnoreProperties(ignoreUnknown = true) -public abstract class ExUserMixin { - -} diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/override/jackson2/SimpleGrantedAuthorityMixin.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/override/jackson2/SimpleGrantedAuthorityMixin.java new file mode 100644 index 00000000..5325bad9 --- /dev/null +++ b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/override/jackson2/SimpleGrantedAuthorityMixin.java @@ -0,0 +1,32 @@ + + +package com.cloud.kicc.common.security.override.jackson2; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + *

+ * 反序列化扩展SSO用户权限 + *

+ * + * @Author: wangxiang4 + * @Since: 2023/8/19 + */ +@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, + getterVisibility = JsonAutoDetect.Visibility.PUBLIC_ONLY, + isGetterVisibility = JsonAutoDetect.Visibility.NONE) +@JsonIgnoreProperties(ignoreUnknown = true) +public abstract class SimpleGrantedAuthorityMixin { + + /** + * Mixin Constructor. + * @param role the role + */ + @JsonCreator + public SimpleGrantedAuthorityMixin(@JsonProperty("authority") String role) { + } + +} 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 a43c4de0..83ed2cac 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 @@ -5,20 +5,22 @@ import com.cloud.kicc.common.core.api.R; import com.cloud.kicc.common.core.constant.CommonConstants; import com.cloud.kicc.common.core.constant.SecurityConstants; import com.cloud.kicc.common.core.enums.CasSystemEnum; +import com.cloud.kicc.common.core.jackson.KiccJavaTimeModule; 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.system.api.vo.UserVo; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.ObjectMapper; 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.authority.SimpleGrantedAuthority; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; /** *

@@ -54,16 +56,19 @@ 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()); } - UserVo user = result.getData(); - List authorities = AuthorityUtils.createAuthorityList(user.getPermissions()); + + KiccUser user = result.getData(); + List authorities = Arrays.stream(user.getPermissions()) + .map(SimpleGrantedAuthority::new) + .collect(Collectors.toList()); CasUser casUser = new CasUser( - user.getUserName(), + user.getUsername(), SecurityConstants.BCRYPT + user.getPassword(), true, true, @@ -88,18 +93,21 @@ public interface KiccUserDetailsService extends UserDetailsService, Ordered { String.join(",", user.getRoleIds()), String.join(",", user.getTenantIds()) ); - + KiccUser kiccUser = new KiccUser( + casUser.getUsername(), + casUser.getPassword(), + casUser.isEnabled(), + casUser.isAccountNonExpired(), + casUser.isCredentialsNonExpired(), + casUser.isAccountNonLocked(), + authorities + ); + BeanUtils.copyProperties(user, kiccUser); // 设置扩展用户数据 casUser.getExPrincipals().put(CasSystemEnum.KICC, new ObjectMapper() + .registerModule(new KiccJavaTimeModule()) .setSerializationInclusion(JsonInclude.Include.NON_NULL) - .writeValueAsString(new KiccUser( - user.getUserName(), - SecurityConstants.BCRYPT + user.getPassword(), - authorities, - user.getDeptId(), - user.getUserType(), - user.getPermissions() - ))); + .writeValueAsString(kiccUser)); // 构造security用户 return casUser; 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 b5674c3b..0544745c 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 @@ -3,9 +3,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.data.entity.CasUser; +import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.common.security.service.KiccUserDetailsService; 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 614ec508..e231db57 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,9 +1,9 @@ package com.cloud.kicc.common.security.service.impl; import com.cloud.kicc.common.core.api.R; +import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.common.security.service.KiccUserDetailsService; 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 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 778e2fa8..22e56f0b 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 @@ -7,12 +7,12 @@ import com.cloud.kicc.common.core.constant.CommonConstants; import com.cloud.kicc.common.core.constant.SecurityConstants; import com.cloud.kicc.common.core.enums.CasSystemEnum; import com.cloud.kicc.common.core.exception.CheckedException; +import com.cloud.kicc.common.core.jackson.KiccJavaTimeModule; 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.common.security.override.jackson2.SimpleGrantedAuthorityMixin; 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; @@ -21,13 +21,15 @@ import org.springframework.beans.BeanUtils; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.AuthorityUtils; +import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.List; +import java.util.stream.Collectors; /** *

@@ -73,21 +75,18 @@ public class SecurityUtils { * 获取完整用户 * @param casSystemEnum SSO系统枚举 * @param valueType 自定义扩展用户 - * @param mixinSource 自定义jackson混合解析源 * @return T */ @SneakyThrows - public T getUser(CasSystemEnum casSystemEnum, - Class valueType, - Class mixinSource) { + public T getUser(CasSystemEnum casSystemEnum, Class valueType) { CasUser casUser = getCasUser(); if (casUser == null) return null; 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; - } + if (JSONUtil.isJson(str)) + return new ObjectMapper() + .registerModule(new KiccJavaTimeModule()) + .addMixIn(SimpleGrantedAuthority.class, SimpleGrantedAuthorityMixin.class) + .readValue(str, valueType); return null; } @@ -95,7 +94,7 @@ public class SecurityUtils { * 获取SSO扩展用户 */ public KiccUser getUser() { - return getUser(CasSystemEnum.KICC, KiccUser.class, ExUserMixin.class); + return getUser(CasSystemEnum.KICC, KiccUser.class); } /** @@ -121,16 +120,18 @@ public class SecurityUtils { * @return User 用户对象 */ @SneakyThrows - public UserVo openInterfaceTemporaryLoginSession(String userId) { + public KiccUser 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("用户不存在"); } - UserVo user = result.getData(); - List authorities = AuthorityUtils.createAuthorityList(user.getPermissions()); + KiccUser user = result.getData(); + List authorities = Arrays.stream(user.getPermissions()) + .map(SimpleGrantedAuthority::new) + .collect(Collectors.toList()); CasUser casUser = new CasUser( - user.getUserName(), + user.getUsername(), SecurityConstants.BCRYPT + user.getPassword(), true, true, @@ -155,18 +156,21 @@ public class SecurityUtils { String.join(",", user.getRoleIds()), String.join(",", user.getTenantIds()) ); + KiccUser kiccUser = new KiccUser( + casUser.getUsername(), + casUser.getPassword(), + casUser.isEnabled(), + casUser.isAccountNonExpired(), + casUser.isCredentialsNonExpired(), + casUser.isAccountNonLocked(), + authorities + ); + BeanUtils.copyProperties(user, kiccUser); // 设置扩展用户数据 casUser.getExPrincipals().put(CasSystemEnum.KICC, new ObjectMapper() - .setSerializationInclusion(JsonInclude.Include.NON_NULL) - .writeValueAsString(new KiccUser( - user.getUserName(), - SecurityConstants.BCRYPT + user.getPassword(), - authorities, - user.getDeptId(), - user.getUserType(), - user.getPermissions() - ))); - + .registerModule(new KiccJavaTimeModule()) + .setSerializationInclusion(JsonInclude.Include.NON_NULL) + .writeValueAsString(kiccUser)); Authentication authentication = new UsernamePasswordAuthenticationToken(casUser, "N/A", casUser.getAuthorities()); SecurityContextHolder.getContext().setAuthentication(authentication); return user; 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 999860af..e98c544a 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,7 +4,7 @@ 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.vo.UserVo; +import com.cloud.kicc.common.data.entity.KiccUser; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -26,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); /** * 通过手机号码查询用户 @@ -34,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查询用户 @@ -42,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 deleted file mode 100644 index 5bedd617..00000000 --- a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/vo/UserVo.java +++ /dev/null @@ -1,62 +0,0 @@ -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-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 294c746e..e9c93ece 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,11 +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.data.entity.KiccUser; 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.feign.RemoteUserService; -import com.cloud.kicc.system.api.vo.UserVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; @@ -85,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())) { 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 6f488486..d3678d26 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,6 +9,7 @@ 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.data.entity.KiccUser; 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,7 +18,6 @@ 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.feign.RemoteUserService; -import com.cloud.kicc.system.api.vo.UserVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; @@ -81,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()); diff --git a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/PushBlacklistMapper.java b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/PushBlacklistMapper.java index 5114960f..734f4d9f 100644 --- a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/PushBlacklistMapper.java +++ b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/PushBlacklistMapper.java @@ -1,11 +1,8 @@ package com.cloud.kicc.commonbiz.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.cloud.kicc.commonbiz.api.entity.PushBlacklist; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.cloud.kicc.system.api.entity.User; -import com.cloud.kicc.system.api.vo.UserVo; -import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Param; import java.util.Map; diff --git a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/MapLogisticServiceImpl.java b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/MapLogisticServiceImpl.java index bd79d939..6011461c 100644 --- a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/MapLogisticServiceImpl.java +++ b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/MapLogisticServiceImpl.java @@ -10,13 +10,13 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.cloud.kicc.common.core.api.R; +import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.common.security.util.SecurityUtils; import com.cloud.kicc.commonbiz.api.entity.*; import com.cloud.kicc.commonbiz.mapper.MapLogisticMapper; import com.cloud.kicc.commonbiz.service.*; import com.cloud.kicc.commonbiz.util.PushClientUtil; import com.cloud.kicc.system.api.feign.RemoteUserService; -import com.cloud.kicc.system.api.vo.UserVo; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import okhttp3.*; @@ -115,7 +115,7 @@ public class MapLogisticServiceImpl extends ServiceImpl { if (mapTask.getEnabledCreateReport()) { 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())) { @@ -138,7 +138,7 @@ public class MapLogisticServiceImpl extends ServiceImpl { JSONObject jsonObject = new JSONObject(); if (mapTaskPreset.getEnabledCreateReport()) { - R taskPresetUser = remoteUserService.selectByUserId(mapTaskPreset.getCourierUserId()); + R taskPresetUser = remoteUserService.selectByUserId(mapTaskPreset.getCourierUserId()); if (StrUtil.isNotBlank(mapTaskPreset.getOrginPresetId())) { Hospital hospital = hospitalService.getById(mapTaskPreset.getOrginPresetId()); jsonObject.put("hospitalId", hospital.getKlabHospitalAccount()); diff --git a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/PushBlacklistServiceImpl.java b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/PushBlacklistServiceImpl.java index e655e132..0794a901 100644 --- a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/PushBlacklistServiceImpl.java +++ b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/PushBlacklistServiceImpl.java @@ -5,9 +5,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.cloud.kicc.commonbiz.api.entity.PushBlacklist; import com.cloud.kicc.commonbiz.mapper.PushBlacklistMapper; import com.cloud.kicc.commonbiz.service.IPushBlacklistService; -import com.cloud.kicc.system.api.entity.User; -import com.cloud.kicc.system.api.vo.UserVo; -import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Service; import java.util.Map; diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/AppController.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/AppController.java index f2c77df1..d41e4c7c 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/AppController.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/AppController.java @@ -2,8 +2,8 @@ package com.cloud.kicc.system.controller; import com.cloud.kicc.common.core.api.R; import com.cloud.kicc.common.core.constant.AppConstants; +import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.common.security.annotation.Inner; -import com.cloud.kicc.system.api.vo.UserVo; import com.cloud.kicc.system.service.AppService; import com.cloud.kicc.system.service.UserService; import io.swagger.annotations.Api; @@ -46,8 +46,8 @@ public class AppController { */ @Inner @GetMapping("/selectByPhone/{phone:\\d+}") - public R selectByPhone(@PathVariable String phone) { - List user = userService.getUserByPhone(phone); + public R selectByPhone(@PathVariable String phone) { + List user = userService.getUserByPhone(phone); if (user.isEmpty()) { return R.error("该手机号不存在,请注册!"); } diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/SsoUserController.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/SsoUserController.java index d8bfc579..b4ea9479 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/SsoUserController.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/SsoUserController.java @@ -1,18 +1,17 @@ package com.cloud.kicc.system.controller; import cn.hutool.core.util.StrUtil; -import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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.data.entity.KiccUser; import com.cloud.kicc.common.log.annotation.SysLog; import com.cloud.kicc.common.security.util.SecurityUtils; import com.cloud.kicc.system.api.entity.SsoUser; import com.cloud.kicc.system.api.entity.User; -import com.cloud.kicc.system.api.vo.UserVo; import com.cloud.kicc.system.service.ISsoUserService; import lombok.RequiredArgsConstructor; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; @@ -104,8 +103,8 @@ public class SsoUserController { @SysLog("同时修改SSO跟系统用户") @PutMapping("/updateSsoUserAndExUser") - public R updateSsoUserAndExUser(@Validated @RequestBody UserVo userVo) { - iSsoUserService.updateSsoUserAndExUser(userVo); + public R updateSsoUserAndExUser(@Validated @RequestBody KiccUser kiccUser) { + iSsoUserService.updateSsoUserAndExUser(kiccUser); return R.ok(); } diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/TenantController.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/TenantController.java index 3800421d..88332e62 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/TenantController.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/TenantController.java @@ -8,11 +8,11 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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.data.entity.KiccUser; import com.cloud.kicc.common.log.annotation.SysLog; import com.cloud.kicc.common.security.util.SecurityUtils; import com.cloud.kicc.system.api.entity.RoleTenant; import com.cloud.kicc.system.api.entity.Tenant; -import com.cloud.kicc.system.api.vo.UserVo; import com.cloud.kicc.system.service.RoleTenantService; import com.cloud.kicc.system.service.TenantService; import com.cloud.kicc.system.service.UserService; @@ -57,7 +57,7 @@ public class TenantController { @GetMapping("/currentUserTenantList") @PreAuthorize("@pms.hasPermission('tenant_view')") public R currentUserTenantList() { - UserVo user = userService.getUserById(SecurityUtils.getCasUser().getId()); + KiccUser user = userService.getUserById(SecurityUtils.getCasUser().getId()); userService.getUserAuthority(user); List tenantList = tenantService.list(Wrappers.query().lambda().in(Tenant::getCode, user.getTenantIds())); return R.ok(tenantList); diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java index e274be00..cf0cb05b 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java @@ -11,6 +11,7 @@ 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.exception.CheckedException; +import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.common.log.annotation.SysLog; import com.cloud.kicc.common.security.annotation.Inner; import com.cloud.kicc.common.security.util.SecurityUtils; @@ -21,7 +22,6 @@ import com.cloud.kicc.system.api.entity.User; import com.cloud.kicc.system.api.entity.UserRole; import com.cloud.kicc.system.api.enums.UserTypeEnum; import com.cloud.kicc.system.api.vo.ResultVo; -import com.cloud.kicc.system.api.vo.UserVo; import com.cloud.kicc.system.service.MenuService; import com.cloud.kicc.system.service.RoleService; import com.cloud.kicc.system.service.UserRoleService; @@ -58,14 +58,14 @@ public class UserController { @GetMapping("/list") public R list(Page page,@RequestParam Map param) { - IPage userIPage = userService.selectUserList(page, param); + IPage userIPage = userService.selectUserList(page, param); return R.ok(userIPage.getRecords(), userIPage.getTotal()); } @GetMapping("/getCourierUserList") @ApiOperation(value = "获取全部快递员集合") public R getCourierUserList() { - List userList = userService.getCourierUserList(); + List userList = userService.getCourierUserList(); return R.ok(userList); } @@ -88,7 +88,7 @@ public class UserController { @GetMapping("/{id:\\w+}") public R getById(@PathVariable("id") String id) { - UserVo user = userService.getUserById(id); + KiccUser user = userService.getUserById(id); List roles; // 设置所有角色集合信息 List roleList = roleService.list(); @@ -104,15 +104,25 @@ public class UserController { @Inner @GetMapping("/getUser/{id:\\w+}") public R getUser(@PathVariable("id") String id) { - UserVo user = userService.getUserById(id); + KiccUser user = userService.getUserById(id); if (user == null) return R.error("该用户不存在,请注册!"); return R.ok(userService.getUserAuthority(user)); } + @Inner + @GetMapping("/selectByUserName/{userName}") + public R selectByUserName(@PathVariable String userName) { + KiccUser user = userService.getUserByName(userName); + if (user == null) { + return R.error("该用户不存在,请注册!"); + } + return R.ok(userService.getUserAuthority(user)); + } + @SysLog("用户新增") @PostMapping("/save") @PreAuthorize("@pms.hasPermission('user_add')") - public R save(@RequestBody UserVo user) { + public R save(@RequestBody KiccUser user) { userService.saveUser(user); // fixme: 推送.APP相关 // 企业内部用户推送类型数据同步 @@ -134,20 +144,10 @@ public class UserController { return R.ok(); } - @Inner - @GetMapping("/selectByUserName/{userName}") - public R selectByUserName(@PathVariable String userName) { - UserVo user = userService.getUserByName(userName); - if (user == null) { - return R.error("该用户不存在,请注册!"); - } - return R.ok(userService.getUserAuthority(user)); - } - @SysLog("用户修改") @PutMapping("/update") @PreAuthorize("@pms.hasPermission('user_edit')") - public R update(@RequestBody UserVo user) { + public R update(@RequestBody KiccUser user) { userService.saveUser(user); return R.ok(); } @@ -177,8 +177,8 @@ public class UserController { @ResponseExcel(name = "用户列表", sheets = @Sheet(sheetName = "user_list")) @GetMapping("/exportUser") @PreAuthorize("@pms.hasPermission('user_export')") - public List exportUserList() { - IPage userIPage = userService.selectUserList(new Page<>(1, 1000), MapUtil.builder().build()); + public List exportUserList() { + IPage userIPage = userService.selectUserList(new Page<>(1, 1000), MapUtil.builder().build()); return userIPage.getRecords(); } @@ -207,7 +207,7 @@ public class UserController { @GetMapping("/resetTenant") @PreAuthorize("@pms.hasPermission('user_edit')") public R resetTenant() { - UserVo user = userService.getUserById(SecurityUtils.getCasUser().getId()); + KiccUser user = userService.getUserById(SecurityUtils.getCasUser().getId()); userService.getUserAuthority(user); userService.setCurrentUserTenant(user.getTenantId()); return R.ok(); diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/mapper/UserMapper.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/mapper/UserMapper.java index b6cd9a97..df34942d 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/mapper/UserMapper.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/mapper/UserMapper.java @@ -2,8 +2,8 @@ package com.cloud.kicc.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.system.api.entity.User; -import com.cloud.kicc.system.api.vo.UserVo; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -23,26 +23,26 @@ public interface UserMapper extends BaseMapper { * 获取全部快递员集合 * @return List */ - List getCourierUserList(); + List getCourierUserList(); /** * 查询用户列表 * @param page 分页 * @param param 请求参数 - * @return IPage + * @return IPage */ - IPage selectUserList(@Param("page") IPage> page, @Param("param") Map param); + IPage selectUserList(@Param("page") IPage> page, @Param("param") Map param); /** * 根据指定参数查询用户 * @param param 指定参数 */ - UserVo getUserByParam(Map param); + KiccUser getUserByParam(Map param); /** * 根据指定参数查询用户列表 * @param param 指定参数 */ - List getUserByParamList(Map param); + List getUserByParamList(Map param); } diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/ISsoUserService.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/ISsoUserService.java index e80d688e..903e86c5 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/ISsoUserService.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/ISsoUserService.java @@ -1,9 +1,8 @@ package com.cloud.kicc.system.service; -import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.extension.service.IService; +import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.system.api.entity.SsoUser; -import com.cloud.kicc.system.api.vo.UserVo; /** *

@@ -17,8 +16,8 @@ public interface ISsoUserService extends IService { /** * 修改SSO跟系统用户 - * @param userVo 完整用户信息 + * @param kiccUser 完整用户信息 */ - void updateSsoUserAndExUser(UserVo userVo); + void updateSsoUserAndExUser(KiccUser kiccUser); } diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/UserService.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/UserService.java index f6786477..efea8f3f 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/UserService.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/UserService.java @@ -2,8 +2,8 @@ package com.cloud.kicc.system.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.system.api.entity.User; -import com.cloud.kicc.system.api.vo.UserVo; import java.util.List; import java.util.Map; @@ -23,7 +23,7 @@ public interface UserService extends IService { * @param user 用户信息 * @return 结果 */ - int saveUser(UserVo user); + int saveUser(KiccUser user); /** * 导入用户数据 @@ -31,14 +31,14 @@ public interface UserService extends IService { * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据 * @return 结果 */ - String importUser(List userList, Boolean isUpdateSupport); + String importUser(List userList, Boolean isUpdateSupport); /** * 获取用户权限 * @param user 用户信息 * @return 结果 */ - UserVo getUserAuthority(UserVo user); + KiccUser getUserAuthority(KiccUser user); /** * 设置当前用户多租户信息 @@ -49,40 +49,40 @@ public interface UserService extends IService { /** * 获取当前用户信息 - * @return UserVo + * @return KiccUser */ - UserVo getCurrentUserInfo(); + KiccUser getCurrentUserInfo(); /** * 获取全部快递员集合 * @return List */ - List getCourierUserList(); + List getCourierUserList(); /** * 查询用户列表 * @param page 分页 * @param param 请求参数 - * @return IPage + * @return IPage */ - IPage selectUserList(IPage> page, Map param); + IPage selectUserList(IPage> page, Map param); /** * 根据id查询用户 * @param userId 用户ID */ - UserVo getUserById(String userId); + KiccUser getUserById(String userId); /** * 根据名称查询用户 * @param userName 用户名称 */ - UserVo getUserByName(String userName); + KiccUser getUserByName(String userName); /** * 根据手机号查询用户 * @param phone 手机号 */ - List getUserByPhone(String phone); + List getUserByPhone(String phone); } diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/AppServiceImpl.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/AppServiceImpl.java index 00ba7475..2aa00ca4 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/AppServiceImpl.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/AppServiceImpl.java @@ -6,7 +6,7 @@ import cn.javaer.aliyun.sms.SmsClient; import com.cloud.kicc.common.core.api.R; import com.cloud.kicc.common.core.constant.CacheConstants; import com.cloud.kicc.common.core.constant.SecurityConstants; -import com.cloud.kicc.system.api.vo.UserVo; +import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.system.service.AppService; import com.cloud.kicc.system.service.UserService; import lombok.AllArgsConstructor; @@ -44,7 +44,7 @@ public class AppServiceImpl implements AppService { */ @Override public R sendSmsCode(String phone) { - List user = userService.getUserByPhone(phone); + List user = userService.getUserByPhone(phone); if (CollUtil.isEmpty(user)) { log.info("手机号未注册:{}", phone); diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/SsoUserServiceImpl.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/SsoUserServiceImpl.java index 64265a57..2d1b2db4 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/SsoUserServiceImpl.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/SsoUserServiceImpl.java @@ -3,10 +3,9 @@ package com.cloud.kicc.system.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DSTransactional; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.cloud.kicc.common.core.exception.CheckedException; +import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.system.api.entity.SsoUser; import com.cloud.kicc.system.api.entity.User; -import com.cloud.kicc.system.api.vo.UserVo; import com.cloud.kicc.system.mapper.SsoUserMapper; import com.cloud.kicc.system.service.ISsoUserService; import com.cloud.kicc.system.service.UserService; @@ -30,25 +29,25 @@ public class SsoUserServiceImpl extends ServiceImpl impl @Override @DSTransactional - public void updateSsoUserAndExUser(UserVo userVo) { + public void updateSsoUserAndExUser(KiccUser kiccUser) { // 修改SSO用户信息 SsoUser ssoUser = new SsoUser() - .setId(userVo.getCasUserId()) - .setNickName(userVo.getNickName()) - .setPassword(userVo.getPassword()) - .setEmail(userVo.getEmail()) - .setPhone(userVo.getPhone()) - .setSex(userVo.getSex()) - .setAvatar(userVo.getAvatar()); - ssoUser.setRemarks(userVo.getRemarks()); + .setId(kiccUser.getCasUserId()) + .setNickName(kiccUser.getNickName()) + .setPassword(kiccUser.getPassword()) + .setEmail(kiccUser.getEmail()) + .setPhone(kiccUser.getPhone()) + .setSex(kiccUser.getSex()) + .setAvatar(kiccUser.getAvatar()); + ssoUser.setRemarks(kiccUser.getRemarks()); baseMapper.updateById(ssoUser); // 修改扩展用户信息 userService.updateById(new User() - .setId(userVo.getId()) - .setUserType(userVo.getUserType()) - .setMapCenter(userVo.getMapCenter()) - .setMapOrientation(userVo.getMapOrientation()) - .setStatus(userVo.getStatus())); + .setId(kiccUser.getId()) + .setUserType(kiccUser.getUserType()) + .setMapCenter(kiccUser.getMapCenter()) + .setMapOrientation(kiccUser.getMapOrientation()) + .setStatus(kiccUser.getStatus())); } } diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/UserServiceImpl.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/UserServiceImpl.java index 08f6d137..ebc3f46e 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/UserServiceImpl.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/UserServiceImpl.java @@ -9,12 +9,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.cloud.kicc.common.core.constant.SecurityConstants; import com.cloud.kicc.common.core.exception.CheckedException; import com.cloud.kicc.common.data.entity.CasUser; +import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.common.security.util.SecurityUtils; import com.cloud.kicc.system.api.entity.Dept; import com.cloud.kicc.system.api.entity.Role; import com.cloud.kicc.system.api.entity.User; import com.cloud.kicc.system.api.entity.UserRole; -import com.cloud.kicc.system.api.vo.UserVo; import com.cloud.kicc.system.mapper.UserMapper; import com.cloud.kicc.system.service.*; import lombok.AllArgsConstructor; @@ -35,7 +35,6 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.stream.Collectors; -import java.util.stream.Stream; /** *

@@ -58,20 +57,20 @@ public class UserServiceImpl extends ServiceImpl implements Us @Override @Transactional(rollbackFor = Exception.class) - public int saveUser(UserVo userVo) { + public int saveUser(KiccUser kiccUser) { User user = new User(); - BeanUtils.copyProperties(userVo, user); + BeanUtils.copyProperties(kiccUser, user); if (StrUtil.isEmptyIfStr(user.getId())) { // 新增用户信息 int rows = baseMapper.insert(user); // 新增用户与角色管理 - addUserRole(userVo); + addUserRole(kiccUser); return rows; } else { // 修改遵守先删后新增规则 userRoleService.remove(new LambdaQueryWrapper().eq(UserRole::getUserId, user.getCasUserId())); // 新增用户与角色管理 - addUserRole(userVo); + addUserRole(kiccUser); return baseMapper.updateById(user); } } @@ -79,7 +78,7 @@ public class UserServiceImpl extends ServiceImpl implements Us @Override @SneakyThrows - public UserVo getUserAuthority(UserVo user) { + public KiccUser getUserAuthority(KiccUser user) { // 设置角色列表 List roleList = roleService.selectMyRolesByUserId(user.getCasUserId()); // 设置角色列表 (ID) @@ -107,11 +106,8 @@ public class UserServiceImpl extends ServiceImpl implements Us } @Override - public UserVo getCurrentUserInfo() { - UserVo user = getUserById(SecurityUtils.getCasUser().getId()); - user.setRoleIds(SecurityUtils.getCasUser().getRoleId().split(",")); - user.setTenantIds(SecurityUtils.getCasUser().getTenantId().split(",")); - user.setPermissions(SecurityUtils.getUser().getExPermissions()); + public KiccUser getCurrentUserInfo() { + KiccUser user = SecurityUtils.getUser(); return user; } @@ -138,7 +134,7 @@ public class UserServiceImpl extends ServiceImpl implements Us * 新增用户角色信息 * @param user 用户对象 */ - public void addUserRole(UserVo user) { + public void addUserRole(KiccUser user) { String[] roles = user.getRoleIds(); if (roles != null) { // 新增用户与角色管理 @@ -152,12 +148,12 @@ public class UserServiceImpl extends ServiceImpl implements Us } @Override - public List getCourierUserList() { + public List getCourierUserList() { return baseMapper.getCourierUserList(); } @Override - public String importUser(List userList, Boolean isUpdateSupport) { + public String importUser(List userList, Boolean isUpdateSupport) { if (userList == null || userList.isEmpty()) { throw new CheckedException("导入用户数据不能为空!"); } @@ -165,10 +161,10 @@ public class UserServiceImpl extends ServiceImpl implements Us int failureNum = 0; StringBuilder successMsg = new StringBuilder(); StringBuilder failureMsg = new StringBuilder(); - for (UserVo user : userList) { + for (KiccUser user : userList) { try { // 验证是否存在这个用户 - UserVo uv = getUserByName(user.getUserName()); + KiccUser uv = getUserByName(user.getUsername()); User u = new User(); BeanUtils.copyProperties(uv, u); if (uv == null) { @@ -181,18 +177,18 @@ public class UserServiceImpl extends ServiceImpl implements Us } baseMapper.insert(u); successNum++; - successMsg.append("
" + successNum + "、账号 " + user.getUserName() + " 导入成功"); + successMsg.append("
" + successNum + "、账号 " + user.getUsername() + " 导入成功"); } else if (isUpdateSupport) { this.updateById(u); successNum++; - successMsg.append("
" + successNum + "、账号 " + user.getUserName() + " 更新成功"); + successMsg.append("
" + successNum + "、账号 " + user.getUsername() + " 更新成功"); } else { failureNum++; - failureMsg.append("
" + failureNum + "、账号 " + user.getUserName() + " 已存在"); + failureMsg.append("
" + failureNum + "、账号 " + user.getUsername() + " 已存在"); } } catch (Exception e) { failureNum++; - String msg = "
" + failureNum + "、账号 " + user.getUserName() + " 导入失败:"; + String msg = "
" + failureNum + "、账号 " + user.getUsername() + " 导入失败:"; failureMsg.append(msg + e.getMessage()); } } @@ -206,22 +202,22 @@ public class UserServiceImpl extends ServiceImpl implements Us } @Override - public IPage selectUserList(IPage> page, Map param) { + public IPage selectUserList(IPage> page, Map param) { return baseMapper.selectUserList(page, param); } @Override - public UserVo getUserById(String userId) { + public KiccUser getUserById(String userId) { return baseMapper.getUserByParam(MapUtil.builder("casUserId", userId).build()); } @Override - public UserVo getUserByName(String userName) { + public KiccUser getUserByName(String userName) { return baseMapper.getUserByParam(MapUtil.builder("userName", userName).build()); } @Override - public List getUserByPhone(String phone) { + public List getUserByPhone(String phone) { return baseMapper.getUserByParamList(MapUtil.builder("phone", phone).build()); } diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/resources/mapper/UserMapper.xml b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/resources/mapper/UserMapper.xml index fb1703d7..113390cf 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/resources/mapper/UserMapper.xml +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/resources/mapper/UserMapper.xml @@ -2,7 +2,7 @@ - select u.id, csu.id cas_user_id, @@ -41,7 +41,7 @@ and u.user_type = '3' - select u.id, csu.id cas_user_id, @@ -101,7 +101,7 @@ order by u.create_time asc - select u.id, csu.id cas_user_id, @@ -157,7 +157,7 @@ - select u.id, csu.id cas_user_id,