Browse Source

chore: extraction userVo merge kiccUser

master
wangxiang 2 years ago
parent
commit
d91087908d
No known key found for this signature in database
GPG Key ID: 1BA7946AB6B232E4
  1. 10
      kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/constant/SecurityConstants.java
  2. 85
      kicc-common/kicc-common-data/src/main/java/com/cloud/kicc/common/data/entity/KiccUser.java
  3. 5
      kicc-common/kicc-common-mock/src/main/java/com/cloud/kicc/common/mock/annotation/WithMockOAuth2User.java
  4. 58
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/override/jackson2/ExUserDeserializer.java
  5. 23
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/override/jackson2/ExUserMixin.java
  6. 32
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/override/jackson2/SimpleGrantedAuthorityMixin.java
  7. 40
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/KiccUserDetailsService.java
  8. 4
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccAppUserDetailsServiceImpl.java
  9. 4
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccUserDetailsServiceImpl.java
  10. 58
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/util/SecurityUtils.java
  11. 8
      kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/feign/RemoteUserService.java
  12. 62
      kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/vo/UserVo.java
  13. 4
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/MapTaskController.java
  14. 4
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/MapTaskPresetController.java
  15. 5
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/PushBlacklistMapper.java
  16. 6
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/MapLogisticServiceImpl.java
  17. 3
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/PushBlacklistServiceImpl.java
  18. 6
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/AppController.java
  19. 7
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/SsoUserController.java
  20. 4
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/TenantController.java
  21. 40
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java
  22. 12
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/mapper/UserMapper.java
  23. 7
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/ISsoUserService.java
  24. 24
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/UserService.java
  25. 4
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/AppServiceImpl.java
  26. 31
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/SsoUserServiceImpl.java
  27. 46
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/UserServiceImpl.java
  28. 8
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/resources/mapper/UserMapper.xml

10
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 CLIENT_ID = "clientId";
/**
* 模拟测试账户
*/
String MOCK_USERNAME = "admin";
/**
* 模拟测试密码
*/
String MOCK_PASSWORD = "kanglai123";
} }

85
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; 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 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.List;
import java.util.Set;
/** /**
*<p> *<p>
@ -19,27 +27,64 @@ import java.util.Set;
@Setter @Setter
@Accessors(chain = true) @Accessors(chain = true)
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
@ApiModel(description = "完整用户信息")
public class KiccUser extends CasUser { public class KiccUser extends CasUser {
/** 部门ID */ @ApiModelProperty("扩展用户ID")
private String deptId; private String id;
@ApiModelProperty("CAS用户ID")
private String casUserId;
/** 用户类型 */ @ApiModelProperty("用户类型 {@link com.cloud.kicc.system.api.enums.UserTypeEnum }")
private String userType; private String userType;
/** 扩展用户权限 */ @ApiModelProperty("机构ID")
private String[] exPermissions; private String deptId;
public KiccUser(String username, @ApiModelProperty("机构名称")
String password, private String deptName;
Collection<? extends GrantedAuthority> authorities,
String deptId, @ApiModelProperty("地图标记点位置图片旋转值")
String userType, private Double mapOrientation;
String[] exPermissions) {
super(username, password, authorities); @ApiModelProperty("地图设计器默认中心点位置")
this.deptId = deptId; private String mapCenter;
this.userType = userType;
this.exPermissions = exPermissions; @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<SimpleGrantedAuthority> authorities) {
super(ObjectUtil.defaultIfNull(username, SecurityConstants.MOCK_USERNAME),
ObjectUtil.defaultIfNull(password, SecurityConstants.MOCK_PASSWORD),
enabled,
accountNonExpired,
credentialsNonExpired,
accountNonLocked,
ObjectUtil.defaultIfNull(authorities, AuthorityUtils.createAuthorityList()));
} }
} }

5
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; package com.cloud.kicc.common.mock.annotation;
import com.cloud.kicc.common.core.constant.SecurityConstants;
import com.cloud.kicc.common.mock.WithMockSecurityContextFactory; import com.cloud.kicc.common.mock.WithMockSecurityContextFactory;
import org.springframework.security.test.context.support.WithSecurityContext; 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;
} }

58
kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/override/jackson2/ExUserDeserializer.java

@ -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;
/**
*<p>
* 反序列化扩展用户实现
*</p>
*
* @Author: wangxiang4
* @Since: 2023/8/19
*/
class ExUserDeserializer extends JsonDeserializer<KiccUser> {
private static final TypeReference<String[]> EX_PERMISSIONS_SET = new TypeReference<String[]>() {};
@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<GrantedAuthority> 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();
}
}

23
kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/override/jackson2/ExUserMixin.java

@ -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;
/**
*<p>
* 序列化扩展SSO用户信息
*</p>
*
* @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 {
}

32
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;
/**
*<p>
* 反序列化扩展SSO用户权限
*</p>
*
* @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) {
}
}

40
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.CommonConstants;
import com.cloud.kicc.common.core.constant.SecurityConstants; import com.cloud.kicc.common.core.constant.SecurityConstants;
import com.cloud.kicc.common.core.enums.CasSystemEnum; 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.CasUser;
import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.common.data.entity.KiccUser;
import com.cloud.kicc.common.security.exception.SecurityCheckedException; 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.annotation.JsonInclude;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import org.springframework.beans.BeanUtils;
import org.springframework.core.Ordered; import org.springframework.core.Ordered;
import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.authority.AuthorityUtils;
import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UserDetailsService;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
*<p> *<p>
@ -54,16 +56,19 @@ public interface KiccUserDetailsService extends UserDetailsService, Ordered {
* @return UserDetails * @return UserDetails
*/ */
@SneakyThrows @SneakyThrows
default UserDetails getUserDetails(R<UserVo> result) { default UserDetails getUserDetails(R<KiccUser> result) {
// 验证请求是否成功 // 验证请求是否成功
if (result.getCode() != R.SUCCESS) { if (result.getCode() != R.SUCCESS) {
throw new SecurityCheckedException(result.getMsg()); throw new SecurityCheckedException(result.getMsg());
} }
UserVo user = result.getData();
List<GrantedAuthority> authorities = AuthorityUtils.createAuthorityList(user.getPermissions()); KiccUser user = result.getData();
List<SimpleGrantedAuthority> authorities = Arrays.stream(user.getPermissions())
.map(SimpleGrantedAuthority::new)
.collect(Collectors.toList());
CasUser casUser = new CasUser( CasUser casUser = new CasUser(
user.getUserName(), user.getUsername(),
SecurityConstants.BCRYPT + user.getPassword(), SecurityConstants.BCRYPT + user.getPassword(),
true, true,
true, true,
@ -88,18 +93,21 @@ public interface KiccUserDetailsService extends UserDetailsService, Ordered {
String.join(",", user.getRoleIds()), String.join(",", user.getRoleIds()),
String.join(",", user.getTenantIds()) 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() casUser.getExPrincipals().put(CasSystemEnum.KICC, new ObjectMapper()
.registerModule(new KiccJavaTimeModule())
.setSerializationInclusion(JsonInclude.Include.NON_NULL) .setSerializationInclusion(JsonInclude.Include.NON_NULL)
.writeValueAsString(new KiccUser( .writeValueAsString(kiccUser));
user.getUserName(),
SecurityConstants.BCRYPT + user.getPassword(),
authorities,
user.getDeptId(),
user.getUserType(),
user.getPermissions()
)));
// 构造security用户 // 构造security用户
return casUser; return casUser;

4
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.api.R;
import com.cloud.kicc.common.core.constant.SecurityConstants; import com.cloud.kicc.common.core.constant.SecurityConstants;
import com.cloud.kicc.common.data.entity.CasUser; 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.common.security.service.KiccUserDetailsService;
import com.cloud.kicc.system.api.feign.RemoteUserService; import com.cloud.kicc.system.api.feign.RemoteUserService;
import com.cloud.kicc.system.api.vo.UserVo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -32,7 +32,7 @@ public class KiccAppUserDetailsServiceImpl implements KiccUserDetailsService {
@Override @Override
@SneakyThrows @SneakyThrows
public UserDetails loadUserByUsername(String phone) { public UserDetails loadUserByUsername(String phone) {
R<UserVo> result = remoteUserService.selectByPhone(phone); R<KiccUser> result = remoteUserService.selectByPhone(phone);
return getUserDetails(result); return getUserDetails(result);
} }

4
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; package com.cloud.kicc.common.security.service.impl;
import com.cloud.kicc.common.core.api.R; 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.common.security.service.KiccUserDetailsService;
import com.cloud.kicc.system.api.feign.RemoteUserService; import com.cloud.kicc.system.api.feign.RemoteUserService;
import com.cloud.kicc.system.api.vo.UserVo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -32,7 +32,7 @@ public class KiccUserDetailsServiceImpl implements KiccUserDetailsService {
@Override @Override
@SneakyThrows @SneakyThrows
public UserDetails loadUserByUsername(String username) { public UserDetails loadUserByUsername(String username) {
R<UserVo> result = remoteUserService.selectByUserName(username); R<KiccUser> result = remoteUserService.selectByUserName(username);
return getUserDetails(result); return getUserDetails(result);
} }

58
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.constant.SecurityConstants;
import com.cloud.kicc.common.core.enums.CasSystemEnum; import com.cloud.kicc.common.core.enums.CasSystemEnum;
import com.cloud.kicc.common.core.exception.CheckedException; 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.core.util.SpringContextHolderUtil;
import com.cloud.kicc.common.data.entity.CasUser; import com.cloud.kicc.common.data.entity.CasUser;
import com.cloud.kicc.common.data.entity.KiccUser; 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.feign.RemoteUserService;
import com.cloud.kicc.system.api.vo.UserVo;
import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.SneakyThrows; import lombok.SneakyThrows;
@ -21,13 +21,15 @@ import org.springframework.beans.BeanUtils;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority; 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.core.context.SecurityContextHolder;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
*<p> *<p>
@ -73,21 +75,18 @@ public class SecurityUtils {
* 获取完整用户 * 获取完整用户
* @param casSystemEnum SSO系统枚举 * @param casSystemEnum SSO系统枚举
* @param valueType 自定义扩展用户 * @param valueType 自定义扩展用户
* @param mixinSource 自定义jackson混合解析源
* @return T * @return T
*/ */
@SneakyThrows @SneakyThrows
public <T> T getUser(CasSystemEnum casSystemEnum, public <T> T getUser(CasSystemEnum casSystemEnum, Class<T> valueType) {
Class<T> valueType,
Class<?> mixinSource) {
CasUser casUser = getCasUser(); CasUser casUser = getCasUser();
if (casUser == null) return null; if (casUser == null) return null;
String str = casUser.getExPrincipals().get(casSystemEnum); String str = casUser.getExPrincipals().get(casSystemEnum);
if (JSONUtil.isJson(str)) { if (JSONUtil.isJson(str))
T exUser = new ObjectMapper().addMixIn(valueType, mixinSource).readValue(str, valueType); return new ObjectMapper()
BeanUtils.copyProperties(casUser, exUser); .registerModule(new KiccJavaTimeModule())
return exUser; .addMixIn(SimpleGrantedAuthority.class, SimpleGrantedAuthorityMixin.class)
} .readValue(str, valueType);
return null; return null;
} }
@ -95,7 +94,7 @@ public class SecurityUtils {
* 获取SSO扩展用户 * 获取SSO扩展用户
*/ */
public KiccUser getUser() { 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 用户对象 * @return User 用户对象
*/ */
@SneakyThrows @SneakyThrows
public UserVo openInterfaceTemporaryLoginSession(String userId) { public KiccUser openInterfaceTemporaryLoginSession(String userId) {
RemoteUserService remoteUserService = SpringContextHolderUtil.getBean(RemoteUserService.class); RemoteUserService remoteUserService = SpringContextHolderUtil.getBean(RemoteUserService.class);
R<UserVo> result = remoteUserService.selectByUserId(userId); R<KiccUser> result = remoteUserService.selectByUserId(userId);
if (result == null || result.getData() == null) { if (result == null || result.getData() == null) {
throw new CheckedException("用户不存在"); throw new CheckedException("用户不存在");
} }
UserVo user = result.getData(); KiccUser user = result.getData();
List<GrantedAuthority> authorities = AuthorityUtils.createAuthorityList(user.getPermissions()); List<SimpleGrantedAuthority> authorities = Arrays.stream(user.getPermissions())
.map(SimpleGrantedAuthority::new)
.collect(Collectors.toList());
CasUser casUser = new CasUser( CasUser casUser = new CasUser(
user.getUserName(), user.getUsername(),
SecurityConstants.BCRYPT + user.getPassword(), SecurityConstants.BCRYPT + user.getPassword(),
true, true,
true, true,
@ -155,18 +156,21 @@ public class SecurityUtils {
String.join(",", user.getRoleIds()), String.join(",", user.getRoleIds()),
String.join(",", user.getTenantIds()) 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() casUser.getExPrincipals().put(CasSystemEnum.KICC, new ObjectMapper()
.registerModule(new KiccJavaTimeModule())
.setSerializationInclusion(JsonInclude.Include.NON_NULL) .setSerializationInclusion(JsonInclude.Include.NON_NULL)
.writeValueAsString(new KiccUser( .writeValueAsString(kiccUser));
user.getUserName(),
SecurityConstants.BCRYPT + user.getPassword(),
authorities,
user.getDeptId(),
user.getUserType(),
user.getPermissions()
)));
Authentication authentication = new UsernamePasswordAuthenticationToken(casUser, "N/A", casUser.getAuthorities()); Authentication authentication = new UsernamePasswordAuthenticationToken(casUser, "N/A", casUser.getAuthorities());
SecurityContextHolder.getContext().setAuthentication(authentication); SecurityContextHolder.getContext().setAuthentication(authentication);
return user; return user;

8
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.AppConstants;
import com.cloud.kicc.common.core.constant.SecurityConstants; import com.cloud.kicc.common.core.constant.SecurityConstants;
import com.cloud.kicc.common.core.constant.ServiceNameConstants; 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.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
@ -26,7 +26,7 @@ public interface RemoteUserService {
* @return R * @return R
*/ */
@GetMapping(value = AppConstants.APP_SYSTEM + "/user/selectByUserName/{userName}", headers = SecurityConstants.HEADER_FROM_IN) @GetMapping(value = AppConstants.APP_SYSTEM + "/user/selectByUserName/{userName}", headers = SecurityConstants.HEADER_FROM_IN)
R<UserVo> selectByUserName(@PathVariable("userName") String userName); R<KiccUser> selectByUserName(@PathVariable("userName") String userName);
/** /**
* 通过手机号码查询用户 * 通过手机号码查询用户
@ -34,7 +34,7 @@ public interface RemoteUserService {
* @return R * @return R
*/ */
@GetMapping(value = AppConstants.APP_SYSTEM + "/user/selectByPhone/{phone}", headers = SecurityConstants.HEADER_FROM_IN) @GetMapping(value = AppConstants.APP_SYSTEM + "/user/selectByPhone/{phone}", headers = SecurityConstants.HEADER_FROM_IN)
R<UserVo> selectByPhone(@PathVariable("phone") String phone); R<KiccUser> selectByPhone(@PathVariable("phone") String phone);
/** /**
* 通过用户ID查询用户 * 通过用户ID查询用户
@ -42,6 +42,6 @@ public interface RemoteUserService {
* @return R * @return R
*/ */
@GetMapping(value = AppConstants.APP_SYSTEM + "/user/getUser/{userId}", headers = SecurityConstants.HEADER_FROM_IN) @GetMapping(value = AppConstants.APP_SYSTEM + "/user/getUser/{userId}", headers = SecurityConstants.HEADER_FROM_IN)
R<UserVo> selectByUserId(@PathVariable("userId") String userid); R<KiccUser> selectByUserId(@PathVariable("userId") String userid);
} }

62
kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/vo/UserVo.java

@ -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;
/**
*<p>
* 返回完整用户信息CasUser and SystemUser
*</p>
*
* @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;
}

4
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.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cloud.kicc.common.core.api.R; import com.cloud.kicc.common.core.api.R;
import com.cloud.kicc.common.core.constant.AppConstants; 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.common.security.util.SecurityUtils;
import com.cloud.kicc.commonbiz.api.entity.*; import com.cloud.kicc.commonbiz.api.entity.*;
import com.cloud.kicc.commonbiz.service.*; import com.cloud.kicc.commonbiz.service.*;
import com.cloud.kicc.system.api.feign.RemoteUserService; 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.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -85,7 +85,7 @@ public class MapTaskController {
mapTask.setBatchCode(batchCode); mapTask.setBatchCode(batchCode);
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
R<UserVo> user = remoteUserService.selectByUserId(mapTask.getCourierUserId()); R<KiccUser> user = remoteUserService.selectByUserId(mapTask.getCourierUserId());
Hospital hospital = hospitalService.getById(mapTask.getHospitalId()); Hospital hospital = hospitalService.getById(mapTask.getHospitalId());
jsonObject.put("hospitalId", hospital.getKlabHospitalAccount()); jsonObject.put("hospitalId", hospital.getKlabHospitalAccount());
if (StrUtil.isNotBlank(mapTask.getOrgId())) { if (StrUtil.isNotBlank(mapTask.getOrgId())) {

4
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.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cloud.kicc.common.core.api.R; import com.cloud.kicc.common.core.api.R;
import com.cloud.kicc.common.core.constant.AppConstants; 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.Hospital;
import com.cloud.kicc.commonbiz.api.entity.MapTaskPreset; import com.cloud.kicc.commonbiz.api.entity.MapTaskPreset;
import com.cloud.kicc.commonbiz.api.entity.Org; 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.IMapTaskPresetService;
import com.cloud.kicc.commonbiz.service.OrgService; import com.cloud.kicc.commonbiz.service.OrgService;
import com.cloud.kicc.system.api.feign.RemoteUserService; 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.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -81,7 +81,7 @@ public class MapTaskPresetController {
String batchCode = UUID.fromString(UUID.randomUUID().toString()).toString(); String batchCode = UUID.fromString(UUID.randomUUID().toString()).toString();
mapTaskPreset.setBatchCode(batchCode); mapTaskPreset.setBatchCode(batchCode);
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
R<UserVo> user = remoteUserService.selectByUserId(mapTaskPreset.getCourierUserId()); R<KiccUser> user = remoteUserService.selectByUserId(mapTaskPreset.getCourierUserId());
if (StrUtil.isNotBlank(mapTaskPreset.getOrginPresetId())) { if (StrUtil.isNotBlank(mapTaskPreset.getOrginPresetId())) {
Hospital hospital = hospitalService.getById(mapTaskPreset.getOrginPresetId()); Hospital hospital = hospitalService.getById(mapTaskPreset.getOrginPresetId());
jsonObject.put("hospitalId", hospital.getKlabHospitalAccount()); jsonObject.put("hospitalId", hospital.getKlabHospitalAccount());

5
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; package com.cloud.kicc.commonbiz.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.cloud.kicc.commonbiz.api.entity.PushBlacklist; 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 org.apache.ibatis.annotations.Param;
import java.util.Map; import java.util.Map;

6
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.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cloud.kicc.common.core.api.R; 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.common.security.util.SecurityUtils;
import com.cloud.kicc.commonbiz.api.entity.*; import com.cloud.kicc.commonbiz.api.entity.*;
import com.cloud.kicc.commonbiz.mapper.MapLogisticMapper; import com.cloud.kicc.commonbiz.mapper.MapLogisticMapper;
import com.cloud.kicc.commonbiz.service.*; import com.cloud.kicc.commonbiz.service.*;
import com.cloud.kicc.commonbiz.util.PushClientUtil; import com.cloud.kicc.commonbiz.util.PushClientUtil;
import com.cloud.kicc.system.api.feign.RemoteUserService; import com.cloud.kicc.system.api.feign.RemoteUserService;
import com.cloud.kicc.system.api.vo.UserVo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import okhttp3.*; import okhttp3.*;
@ -115,7 +115,7 @@ public class MapLogisticServiceImpl extends ServiceImpl<MapLogisticMapper, MapLo
mapLogistic.getMapTask().forEach(mapTask -> { mapLogistic.getMapTask().forEach(mapTask -> {
if (mapTask.getEnabledCreateReport()) { if (mapTask.getEnabledCreateReport()) {
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
R<UserVo> user = remoteUserService.selectByUserId(mapTask.getCourierUserId()); R<KiccUser> user = remoteUserService.selectByUserId(mapTask.getCourierUserId());
Hospital hospital = hospitalService.getById(mapTask.getHospitalId()); Hospital hospital = hospitalService.getById(mapTask.getHospitalId());
jsonObject.put("hospitalId", hospital.getKlabHospitalAccount()); jsonObject.put("hospitalId", hospital.getKlabHospitalAccount());
if (StrUtil.isNotBlank(mapTask.getOrgId())) { if (StrUtil.isNotBlank(mapTask.getOrgId())) {
@ -138,7 +138,7 @@ public class MapLogisticServiceImpl extends ServiceImpl<MapLogisticMapper, MapLo
mapTask.getMapTaskPreset().forEach(mapTaskPreset -> { mapTask.getMapTaskPreset().forEach(mapTaskPreset -> {
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
if (mapTaskPreset.getEnabledCreateReport()) { if (mapTaskPreset.getEnabledCreateReport()) {
R<UserVo> taskPresetUser = remoteUserService.selectByUserId(mapTaskPreset.getCourierUserId()); R<KiccUser> taskPresetUser = remoteUserService.selectByUserId(mapTaskPreset.getCourierUserId());
if (StrUtil.isNotBlank(mapTaskPreset.getOrginPresetId())) { if (StrUtil.isNotBlank(mapTaskPreset.getOrginPresetId())) {
Hospital hospital = hospitalService.getById(mapTaskPreset.getOrginPresetId()); Hospital hospital = hospitalService.getById(mapTaskPreset.getOrginPresetId());
jsonObject.put("hospitalId", hospital.getKlabHospitalAccount()); jsonObject.put("hospitalId", hospital.getKlabHospitalAccount());

3
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.api.entity.PushBlacklist;
import com.cloud.kicc.commonbiz.mapper.PushBlacklistMapper; import com.cloud.kicc.commonbiz.mapper.PushBlacklistMapper;
import com.cloud.kicc.commonbiz.service.IPushBlacklistService; 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 org.springframework.stereotype.Service;
import java.util.Map; import java.util.Map;

6
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.api.R;
import com.cloud.kicc.common.core.constant.AppConstants; 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.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.AppService;
import com.cloud.kicc.system.service.UserService; import com.cloud.kicc.system.service.UserService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -46,8 +46,8 @@ public class AppController {
*/ */
@Inner @Inner
@GetMapping("/selectByPhone/{phone:\\d+}") @GetMapping("/selectByPhone/{phone:\\d+}")
public R<UserVo> selectByPhone(@PathVariable String phone) { public R<KiccUser> selectByPhone(@PathVariable String phone) {
List<UserVo> user = userService.getUserByPhone(phone); List<KiccUser> user = userService.getUserByPhone(phone);
if (user.isEmpty()) { if (user.isEmpty()) {
return R.error("该手机号不存在,请注册!"); return R.error("该手机号不存在,请注册!");
} }

7
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; package com.cloud.kicc.system.controller;
import cn.hutool.core.util.StrUtil; 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.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cloud.kicc.common.core.api.R; import com.cloud.kicc.common.core.api.R;
import com.cloud.kicc.common.core.constant.AppConstants; 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.log.annotation.SysLog;
import com.cloud.kicc.common.security.util.SecurityUtils; import com.cloud.kicc.common.security.util.SecurityUtils;
import com.cloud.kicc.system.api.entity.SsoUser; import com.cloud.kicc.system.api.entity.SsoUser;
import com.cloud.kicc.system.api.entity.User; import com.cloud.kicc.system.api.entity.User;
import com.cloud.kicc.system.api.vo.UserVo;
import com.cloud.kicc.system.service.ISsoUserService; import com.cloud.kicc.system.service.ISsoUserService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
@ -104,8 +103,8 @@ public class SsoUserController {
@SysLog("同时修改SSO跟系统用户") @SysLog("同时修改SSO跟系统用户")
@PutMapping("/updateSsoUserAndExUser") @PutMapping("/updateSsoUserAndExUser")
public R updateSsoUserAndExUser(@Validated @RequestBody UserVo userVo) { public R updateSsoUserAndExUser(@Validated @RequestBody KiccUser kiccUser) {
iSsoUserService.updateSsoUserAndExUser(userVo); iSsoUserService.updateSsoUserAndExUser(kiccUser);
return R.ok(); return R.ok();
} }

4
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.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cloud.kicc.common.core.api.R; import com.cloud.kicc.common.core.api.R;
import com.cloud.kicc.common.core.constant.AppConstants; 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.log.annotation.SysLog;
import com.cloud.kicc.common.security.util.SecurityUtils; import com.cloud.kicc.common.security.util.SecurityUtils;
import com.cloud.kicc.system.api.entity.RoleTenant; import com.cloud.kicc.system.api.entity.RoleTenant;
import com.cloud.kicc.system.api.entity.Tenant; 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.RoleTenantService;
import com.cloud.kicc.system.service.TenantService; import com.cloud.kicc.system.service.TenantService;
import com.cloud.kicc.system.service.UserService; import com.cloud.kicc.system.service.UserService;
@ -57,7 +57,7 @@ public class TenantController {
@GetMapping("/currentUserTenantList") @GetMapping("/currentUserTenantList")
@PreAuthorize("@pms.hasPermission('tenant_view')") @PreAuthorize("@pms.hasPermission('tenant_view')")
public R currentUserTenantList() { public R currentUserTenantList() {
UserVo user = userService.getUserById(SecurityUtils.getCasUser().getId()); KiccUser user = userService.getUserById(SecurityUtils.getCasUser().getId());
userService.getUserAuthority(user); userService.getUserAuthority(user);
List<Tenant> tenantList = tenantService.list(Wrappers.<Tenant>query().lambda().in(Tenant::getCode, user.getTenantIds())); List<Tenant> tenantList = tenantService.list(Wrappers.<Tenant>query().lambda().in(Tenant::getCode, user.getTenantIds()));
return R.ok(tenantList); return R.ok(tenantList);

40
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.api.R;
import com.cloud.kicc.common.core.constant.AppConstants; import com.cloud.kicc.common.core.constant.AppConstants;
import com.cloud.kicc.common.core.exception.CheckedException; 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.log.annotation.SysLog;
import com.cloud.kicc.common.security.annotation.Inner; import com.cloud.kicc.common.security.annotation.Inner;
import com.cloud.kicc.common.security.util.SecurityUtils; 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.entity.UserRole;
import com.cloud.kicc.system.api.enums.UserTypeEnum; import com.cloud.kicc.system.api.enums.UserTypeEnum;
import com.cloud.kicc.system.api.vo.ResultVo; 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.MenuService;
import com.cloud.kicc.system.service.RoleService; import com.cloud.kicc.system.service.RoleService;
import com.cloud.kicc.system.service.UserRoleService; import com.cloud.kicc.system.service.UserRoleService;
@ -58,14 +58,14 @@ public class UserController {
@GetMapping("/list") @GetMapping("/list")
public R list(Page page,@RequestParam Map param) { public R list(Page page,@RequestParam Map param) {
IPage<UserVo> userIPage = userService.selectUserList(page, param); IPage<KiccUser> userIPage = userService.selectUserList(page, param);
return R.ok(userIPage.getRecords(), userIPage.getTotal()); return R.ok(userIPage.getRecords(), userIPage.getTotal());
} }
@GetMapping("/getCourierUserList") @GetMapping("/getCourierUserList")
@ApiOperation(value = "获取全部快递员集合") @ApiOperation(value = "获取全部快递员集合")
public R getCourierUserList() { public R getCourierUserList() {
List<UserVo> userList = userService.getCourierUserList(); List<KiccUser> userList = userService.getCourierUserList();
return R.ok(userList); return R.ok(userList);
} }
@ -88,7 +88,7 @@ public class UserController {
@GetMapping("/{id:\\w+}") @GetMapping("/{id:\\w+}")
public R getById(@PathVariable("id") String id) { public R getById(@PathVariable("id") String id) {
UserVo user = userService.getUserById(id); KiccUser user = userService.getUserById(id);
List<String> roles; List<String> roles;
// 设置所有角色集合信息 // 设置所有角色集合信息
List<Role> roleList = roleService.list(); List<Role> roleList = roleService.list();
@ -104,15 +104,25 @@ public class UserController {
@Inner @Inner
@GetMapping("/getUser/{id:\\w+}") @GetMapping("/getUser/{id:\\w+}")
public R getUser(@PathVariable("id") String id) { public R getUser(@PathVariable("id") String id) {
UserVo user = userService.getUserById(id); KiccUser user = userService.getUserById(id);
if (user == null) return R.error("该用户不存在,请注册!"); if (user == null) return R.error("该用户不存在,请注册!");
return R.ok(userService.getUserAuthority(user)); 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("用户新增") @SysLog("用户新增")
@PostMapping("/save") @PostMapping("/save")
@PreAuthorize("@pms.hasPermission('user_add')") @PreAuthorize("@pms.hasPermission('user_add')")
public R save(@RequestBody UserVo user) { public R save(@RequestBody KiccUser user) {
userService.saveUser(user); userService.saveUser(user);
// fixme: 推送.APP相关 // fixme: 推送.APP相关
// 企业内部用户推送类型数据同步 // 企业内部用户推送类型数据同步
@ -134,20 +144,10 @@ public class UserController {
return R.ok(); 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("用户修改") @SysLog("用户修改")
@PutMapping("/update") @PutMapping("/update")
@PreAuthorize("@pms.hasPermission('user_edit')") @PreAuthorize("@pms.hasPermission('user_edit')")
public R update(@RequestBody UserVo user) { public R update(@RequestBody KiccUser user) {
userService.saveUser(user); userService.saveUser(user);
return R.ok(); return R.ok();
} }
@ -177,8 +177,8 @@ public class UserController {
@ResponseExcel(name = "用户列表", sheets = @Sheet(sheetName = "user_list")) @ResponseExcel(name = "用户列表", sheets = @Sheet(sheetName = "user_list"))
@GetMapping("/exportUser") @GetMapping("/exportUser")
@PreAuthorize("@pms.hasPermission('user_export')") @PreAuthorize("@pms.hasPermission('user_export')")
public List<UserVo> exportUserList() { public List<KiccUser> exportUserList() {
IPage<UserVo> userIPage = userService.selectUserList(new Page<>(1, 1000), MapUtil.<String, Object>builder().build()); IPage<KiccUser> userIPage = userService.selectUserList(new Page<>(1, 1000), MapUtil.<String, Object>builder().build());
return userIPage.getRecords(); return userIPage.getRecords();
} }
@ -207,7 +207,7 @@ public class UserController {
@GetMapping("/resetTenant") @GetMapping("/resetTenant")
@PreAuthorize("@pms.hasPermission('user_edit')") @PreAuthorize("@pms.hasPermission('user_edit')")
public R resetTenant() { public R resetTenant() {
UserVo user = userService.getUserById(SecurityUtils.getCasUser().getId()); KiccUser user = userService.getUserById(SecurityUtils.getCasUser().getId());
userService.getUserAuthority(user); userService.getUserAuthority(user);
userService.setCurrentUserTenant(user.getTenantId()); userService.setCurrentUserTenant(user.getTenantId());
return R.ok(); return R.ok();

12
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.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; 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.entity.User;
import com.cloud.kicc.system.api.vo.UserVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@ -23,26 +23,26 @@ public interface UserMapper extends BaseMapper<User> {
* 获取全部快递员集合 * 获取全部快递员集合
* @return List<User> * @return List<User>
*/ */
List<UserVo> getCourierUserList(); List<KiccUser> getCourierUserList();
/** /**
* 查询用户列表 * 查询用户列表
* @param page 分页 * @param page 分页
* @param param 请求参数 * @param param 请求参数
* @return IPage<UserVo> * @return IPage<KiccUser>
*/ */
IPage<UserVo> selectUserList(@Param("page") IPage<Map<String, Object>> page, @Param("param") Map<String, Object> param); IPage<KiccUser> selectUserList(@Param("page") IPage<Map<String, Object>> page, @Param("param") Map<String, Object> param);
/** /**
* 根据指定参数查询用户 * 根据指定参数查询用户
* @param param 指定参数 * @param param 指定参数
*/ */
UserVo getUserByParam(Map<String, Object> param); KiccUser getUserByParam(Map<String, Object> param);
/** /**
* 根据指定参数查询用户列表 * 根据指定参数查询用户列表
* @param param 指定参数 * @param param 指定参数
*/ */
List<UserVo> getUserByParamList(Map<String, Object> param); List<KiccUser> getUserByParamList(Map<String, Object> param);
} }

7
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; package com.cloud.kicc.system.service;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.service.IService; 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.entity.SsoUser;
import com.cloud.kicc.system.api.vo.UserVo;
/** /**
*<p> *<p>
@ -17,8 +16,8 @@ public interface ISsoUserService extends IService<SsoUser> {
/** /**
* 修改SSO跟系统用户 * 修改SSO跟系统用户
* @param userVo 完整用户信息 * @param kiccUser 完整用户信息
*/ */
void updateSsoUserAndExUser(UserVo userVo); void updateSsoUserAndExUser(KiccUser kiccUser);
} }

24
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.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; 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.entity.User;
import com.cloud.kicc.system.api.vo.UserVo;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -23,7 +23,7 @@ public interface UserService extends IService<User> {
* @param user 用户信息 * @param user 用户信息
* @return 结果 * @return 结果
*/ */
int saveUser(UserVo user); int saveUser(KiccUser user);
/** /**
* 导入用户数据 * 导入用户数据
@ -31,14 +31,14 @@ public interface UserService extends IService<User> {
* @param isUpdateSupport 是否更新支持如果已存在则进行更新数据 * @param isUpdateSupport 是否更新支持如果已存在则进行更新数据
* @return 结果 * @return 结果
*/ */
String importUser(List<UserVo> userList, Boolean isUpdateSupport); String importUser(List<KiccUser> userList, Boolean isUpdateSupport);
/** /**
* 获取用户权限 * 获取用户权限
* @param user 用户信息 * @param user 用户信息
* @return 结果 * @return 结果
*/ */
UserVo getUserAuthority(UserVo user); KiccUser getUserAuthority(KiccUser user);
/** /**
* 设置当前用户多租户信息 * 设置当前用户多租户信息
@ -49,40 +49,40 @@ public interface UserService extends IService<User> {
/** /**
* 获取当前用户信息 * 获取当前用户信息
* @return UserVo * @return KiccUser
*/ */
UserVo getCurrentUserInfo(); KiccUser getCurrentUserInfo();
/** /**
* 获取全部快递员集合 * 获取全部快递员集合
* @return List<User> * @return List<User>
*/ */
List<UserVo> getCourierUserList(); List<KiccUser> getCourierUserList();
/** /**
* 查询用户列表 * 查询用户列表
* @param page 分页 * @param page 分页
* @param param 请求参数 * @param param 请求参数
* @return IPage<UserVo> * @return IPage<KiccUser>
*/ */
IPage<UserVo> selectUserList(IPage<Map<String, Object>> page, Map<String, Object> param); IPage<KiccUser> selectUserList(IPage<Map<String, Object>> page, Map<String, Object> param);
/** /**
* 根据id查询用户 * 根据id查询用户
* @param userId 用户ID * @param userId 用户ID
*/ */
UserVo getUserById(String userId); KiccUser getUserById(String userId);
/** /**
* 根据名称查询用户 * 根据名称查询用户
* @param userName 用户名称 * @param userName 用户名称
*/ */
UserVo getUserByName(String userName); KiccUser getUserByName(String userName);
/** /**
* 根据手机号查询用户 * 根据手机号查询用户
* @param phone 手机号 * @param phone 手机号
*/ */
List<UserVo> getUserByPhone(String phone); List<KiccUser> getUserByPhone(String phone);
} }

4
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.api.R;
import com.cloud.kicc.common.core.constant.CacheConstants; import com.cloud.kicc.common.core.constant.CacheConstants;
import com.cloud.kicc.common.core.constant.SecurityConstants; 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.AppService;
import com.cloud.kicc.system.service.UserService; import com.cloud.kicc.system.service.UserService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -44,7 +44,7 @@ public class AppServiceImpl implements AppService {
*/ */
@Override @Override
public R<Boolean> sendSmsCode(String phone) { public R<Boolean> sendSmsCode(String phone) {
List<UserVo> user = userService.getUserByPhone(phone); List<KiccUser> user = userService.getUserByPhone(phone);
if (CollUtil.isEmpty(user)) { if (CollUtil.isEmpty(user)) {
log.info("手机号未注册:{}", phone); log.info("手机号未注册:{}", phone);

31
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.DS;
import com.baomidou.dynamic.datasource.annotation.DSTransactional; import com.baomidou.dynamic.datasource.annotation.DSTransactional;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.SsoUser;
import com.cloud.kicc.system.api.entity.User; 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.mapper.SsoUserMapper;
import com.cloud.kicc.system.service.ISsoUserService; import com.cloud.kicc.system.service.ISsoUserService;
import com.cloud.kicc.system.service.UserService; import com.cloud.kicc.system.service.UserService;
@ -30,25 +29,25 @@ public class SsoUserServiceImpl extends ServiceImpl<SsoUserMapper, SsoUser> impl
@Override @Override
@DSTransactional @DSTransactional
public void updateSsoUserAndExUser(UserVo userVo) { public void updateSsoUserAndExUser(KiccUser kiccUser) {
// 修改SSO用户信息 // 修改SSO用户信息
SsoUser ssoUser = new SsoUser() SsoUser ssoUser = new SsoUser()
.setId(userVo.getCasUserId()) .setId(kiccUser.getCasUserId())
.setNickName(userVo.getNickName()) .setNickName(kiccUser.getNickName())
.setPassword(userVo.getPassword()) .setPassword(kiccUser.getPassword())
.setEmail(userVo.getEmail()) .setEmail(kiccUser.getEmail())
.setPhone(userVo.getPhone()) .setPhone(kiccUser.getPhone())
.setSex(userVo.getSex()) .setSex(kiccUser.getSex())
.setAvatar(userVo.getAvatar()); .setAvatar(kiccUser.getAvatar());
ssoUser.setRemarks(userVo.getRemarks()); ssoUser.setRemarks(kiccUser.getRemarks());
baseMapper.updateById(ssoUser); baseMapper.updateById(ssoUser);
// 修改扩展用户信息 // 修改扩展用户信息
userService.updateById(new User() userService.updateById(new User()
.setId(userVo.getId()) .setId(kiccUser.getId())
.setUserType(userVo.getUserType()) .setUserType(kiccUser.getUserType())
.setMapCenter(userVo.getMapCenter()) .setMapCenter(kiccUser.getMapCenter())
.setMapOrientation(userVo.getMapOrientation()) .setMapOrientation(kiccUser.getMapOrientation())
.setStatus(userVo.getStatus())); .setStatus(kiccUser.getStatus()));
} }
} }

46
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.constant.SecurityConstants;
import com.cloud.kicc.common.core.exception.CheckedException; import com.cloud.kicc.common.core.exception.CheckedException;
import com.cloud.kicc.common.data.entity.CasUser; 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.common.security.util.SecurityUtils;
import com.cloud.kicc.system.api.entity.Dept; import com.cloud.kicc.system.api.entity.Dept;
import com.cloud.kicc.system.api.entity.Role; import com.cloud.kicc.system.api.entity.Role;
import com.cloud.kicc.system.api.entity.User; import com.cloud.kicc.system.api.entity.User;
import com.cloud.kicc.system.api.entity.UserRole; 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.mapper.UserMapper;
import com.cloud.kicc.system.service.*; import com.cloud.kicc.system.service.*;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -35,7 +35,6 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream;
/** /**
*<p> *<p>
@ -58,20 +57,20 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int saveUser(UserVo userVo) { public int saveUser(KiccUser kiccUser) {
User user = new User(); User user = new User();
BeanUtils.copyProperties(userVo, user); BeanUtils.copyProperties(kiccUser, user);
if (StrUtil.isEmptyIfStr(user.getId())) { if (StrUtil.isEmptyIfStr(user.getId())) {
// 新增用户信息 // 新增用户信息
int rows = baseMapper.insert(user); int rows = baseMapper.insert(user);
// 新增用户与角色管理 // 新增用户与角色管理
addUserRole(userVo); addUserRole(kiccUser);
return rows; return rows;
} else { } else {
// 修改遵守先删后新增规则 // 修改遵守先删后新增规则
userRoleService.remove(new LambdaQueryWrapper<UserRole>().eq(UserRole::getUserId, user.getCasUserId())); userRoleService.remove(new LambdaQueryWrapper<UserRole>().eq(UserRole::getUserId, user.getCasUserId()));
// 新增用户与角色管理 // 新增用户与角色管理
addUserRole(userVo); addUserRole(kiccUser);
return baseMapper.updateById(user); return baseMapper.updateById(user);
} }
} }
@ -79,7 +78,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
@Override @Override
@SneakyThrows @SneakyThrows
public UserVo getUserAuthority(UserVo user) { public KiccUser getUserAuthority(KiccUser user) {
// 设置角色列表 // 设置角色列表
List<Role> roleList = roleService.selectMyRolesByUserId(user.getCasUserId()); List<Role> roleList = roleService.selectMyRolesByUserId(user.getCasUserId());
// 设置角色列表 (ID) // 设置角色列表 (ID)
@ -107,11 +106,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
} }
@Override @Override
public UserVo getCurrentUserInfo() { public KiccUser getCurrentUserInfo() {
UserVo user = getUserById(SecurityUtils.getCasUser().getId()); KiccUser user = SecurityUtils.getUser();
user.setRoleIds(SecurityUtils.getCasUser().getRoleId().split(","));
user.setTenantIds(SecurityUtils.getCasUser().getTenantId().split(","));
user.setPermissions(SecurityUtils.getUser().getExPermissions());
return user; return user;
} }
@ -138,7 +134,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
* 新增用户角色信息 * 新增用户角色信息
* @param user 用户对象 * @param user 用户对象
*/ */
public void addUserRole(UserVo user) { public void addUserRole(KiccUser user) {
String[] roles = user.getRoleIds(); String[] roles = user.getRoleIds();
if (roles != null) { if (roles != null) {
// 新增用户与角色管理 // 新增用户与角色管理
@ -152,12 +148,12 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
} }
@Override @Override
public List<UserVo> getCourierUserList() { public List<KiccUser> getCourierUserList() {
return baseMapper.getCourierUserList(); return baseMapper.getCourierUserList();
} }
@Override @Override
public String importUser(List<UserVo> userList, Boolean isUpdateSupport) { public String importUser(List<KiccUser> userList, Boolean isUpdateSupport) {
if (userList == null || userList.isEmpty()) { if (userList == null || userList.isEmpty()) {
throw new CheckedException("导入用户数据不能为空!"); throw new CheckedException("导入用户数据不能为空!");
} }
@ -165,10 +161,10 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
int failureNum = 0; int failureNum = 0;
StringBuilder successMsg = new StringBuilder(); StringBuilder successMsg = new StringBuilder();
StringBuilder failureMsg = new StringBuilder(); StringBuilder failureMsg = new StringBuilder();
for (UserVo user : userList) { for (KiccUser user : userList) {
try { try {
// 验证是否存在这个用户 // 验证是否存在这个用户
UserVo uv = getUserByName(user.getUserName()); KiccUser uv = getUserByName(user.getUsername());
User u = new User(); User u = new User();
BeanUtils.copyProperties(uv, u); BeanUtils.copyProperties(uv, u);
if (uv == null) { if (uv == null) {
@ -181,18 +177,18 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
} }
baseMapper.insert(u); baseMapper.insert(u);
successNum++; successNum++;
successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 导入成功"); successMsg.append("<br/>" + successNum + "、账号 " + user.getUsername() + " 导入成功");
} else if (isUpdateSupport) { } else if (isUpdateSupport) {
this.updateById(u); this.updateById(u);
successNum++; successNum++;
successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 更新成功"); successMsg.append("<br/>" + successNum + "、账号 " + user.getUsername() + " 更新成功");
} else { } else {
failureNum++; failureNum++;
failureMsg.append("<br/>" + failureNum + "、账号 " + user.getUserName() + " 已存在"); failureMsg.append("<br/>" + failureNum + "、账号 " + user.getUsername() + " 已存在");
} }
} catch (Exception e) { } catch (Exception e) {
failureNum++; failureNum++;
String msg = "<br/>" + failureNum + "、账号 " + user.getUserName() + " 导入失败:"; String msg = "<br/>" + failureNum + "、账号 " + user.getUsername() + " 导入失败:";
failureMsg.append(msg + e.getMessage()); failureMsg.append(msg + e.getMessage());
} }
} }
@ -206,22 +202,22 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
} }
@Override @Override
public IPage<UserVo> selectUserList(IPage<Map<String, Object>> page, Map<String, Object> param) { public IPage<KiccUser> selectUserList(IPage<Map<String, Object>> page, Map<String, Object> param) {
return baseMapper.selectUserList(page, param); return baseMapper.selectUserList(page, param);
} }
@Override @Override
public UserVo getUserById(String userId) { public KiccUser getUserById(String userId) {
return baseMapper.getUserByParam(MapUtil.<String, Object>builder("casUserId", userId).build()); return baseMapper.getUserByParam(MapUtil.<String, Object>builder("casUserId", userId).build());
} }
@Override @Override
public UserVo getUserByName(String userName) { public KiccUser getUserByName(String userName) {
return baseMapper.getUserByParam(MapUtil.<String, Object>builder("userName", userName).build()); return baseMapper.getUserByParam(MapUtil.<String, Object>builder("userName", userName).build());
} }
@Override @Override
public List<UserVo> getUserByPhone(String phone) { public List<KiccUser> getUserByPhone(String phone) {
return baseMapper.getUserByParamList(MapUtil.<String, Object>builder("phone", phone).build()); return baseMapper.getUserByParamList(MapUtil.<String, Object>builder("phone", phone).build());
} }

8
kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/resources/mapper/UserMapper.xml

@ -2,7 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cloud.kicc.system.mapper.UserMapper"> <mapper namespace="com.cloud.kicc.system.mapper.UserMapper">
<select id="getCourierUserList" resultType="com.cloud.kicc.system.api.vo.UserVo"> <select id="getCourierUserList" resultType="com.cloud.kicc.common.data.entity.KiccUser">
select select
u.id, u.id,
csu.id cas_user_id, csu.id cas_user_id,
@ -41,7 +41,7 @@
and u.user_type = '3' and u.user_type = '3'
</select> </select>
<select id="selectUserList" resultType="com.cloud.kicc.system.api.vo.UserVo"> <select id="selectUserList" resultType="com.cloud.kicc.common.data.entity.KiccUser">
select select
u.id, u.id,
csu.id cas_user_id, csu.id cas_user_id,
@ -101,7 +101,7 @@
order by u.create_time asc order by u.create_time asc
</select> </select>
<select id="getUserByParam" resultType="com.cloud.kicc.system.api.vo.UserVo"> <select id="getUserByParam" resultType="com.cloud.kicc.common.data.entity.KiccUser">
select select
u.id, u.id,
csu.id cas_user_id, csu.id cas_user_id,
@ -157,7 +157,7 @@
</where> </where>
</select> </select>
<select id="getUserByParamList" resultType="com.cloud.kicc.system.api.vo.UserVo"> <select id="getUserByParamList" resultType="com.cloud.kicc.common.data.entity.KiccUser">
select select
u.id, u.id,
csu.id cas_user_id, csu.id cas_user_id,

Loading…
Cancel
Save