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 { @@ -114,4 +114,14 @@ public interface SecurityConstants {
*/
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 @@ @@ -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;
/**
*<p>
@ -19,27 +27,64 @@ import java.util.Set; @@ -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;
@ApiModelProperty("扩展用户ID")
private String id;
@ApiModelProperty("CAS用户ID")
private String casUserId;
/** 用户类型 */
@ApiModelProperty("用户类型 {@link com.cloud.kicc.system.api.enums.UserTypeEnum }")
private String userType;
/** 扩展用户权限 */
private String[] exPermissions;
public KiccUser(String username,
String password,
Collection<? extends GrantedAuthority> authorities,
String deptId,
String userType,
String[] exPermissions) {
super(username, password, authorities);
this.deptId = deptId;
this.userType = userType;
this.exPermissions = exPermissions;
@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<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 @@ @@ -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 { @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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; @@ -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;
/**
*<p>
@ -54,16 +56,19 @@ public interface KiccUserDetailsService extends UserDetailsService, Ordered { @@ -54,16 +56,19 @@ public interface KiccUserDetailsService extends UserDetailsService, Ordered {
* @return UserDetails
*/
@SneakyThrows
default UserDetails getUserDetails(R<UserVo> result) {
default UserDetails getUserDetails(R<KiccUser> result) {
// 验证请求是否成功
if (result.getCode() != R.SUCCESS) {
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(
user.getUserName(),
user.getUsername(),
SecurityConstants.BCRYPT + user.getPassword(),
true,
true,
@ -88,18 +93,21 @@ public interface KiccUserDetailsService extends UserDetailsService, Ordered { @@ -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;

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; @@ -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 { @@ -32,7 +32,7 @@ public class KiccAppUserDetailsServiceImpl implements KiccUserDetailsService {
@Override
@SneakyThrows
public UserDetails loadUserByUsername(String phone) {
R<UserVo> result = remoteUserService.selectByPhone(phone);
R<KiccUser> result = remoteUserService.selectByPhone(phone);
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 @@ @@ -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 { @@ -32,7 +32,7 @@ public class KiccUserDetailsServiceImpl implements KiccUserDetailsService {
@Override
@SneakyThrows
public UserDetails loadUserByUsername(String username) {
R<UserVo> result = remoteUserService.selectByUserName(username);
R<KiccUser> result = remoteUserService.selectByUserName(username);
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; @@ -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; @@ -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;
/**
*<p>
@ -73,21 +75,18 @@ public class SecurityUtils { @@ -73,21 +75,18 @@ public class SecurityUtils {
* 获取完整用户
* @param casSystemEnum SSO系统枚举
* @param valueType 自定义扩展用户
* @param mixinSource 自定义jackson混合解析源
* @return T
*/
@SneakyThrows
public <T> T getUser(CasSystemEnum casSystemEnum,
Class<T> valueType,
Class<?> mixinSource) {
public <T> T getUser(CasSystemEnum casSystemEnum, Class<T> 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 { @@ -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 { @@ -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<UserVo> result = remoteUserService.selectByUserId(userId);
R<KiccUser> result = remoteUserService.selectByUserId(userId);
if (result == null || result.getData() == null) {
throw new CheckedException("用户不存在");
}
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(
user.getUserName(),
user.getUsername(),
SecurityConstants.BCRYPT + user.getPassword(),
true,
true,
@ -155,18 +156,21 @@ public class SecurityUtils { @@ -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()
.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));
Authentication authentication = new UsernamePasswordAuthenticationToken(casUser, "N/A", casUser.getAuthorities());
SecurityContextHolder.getContext().setAuthentication(authentication);
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; @@ -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 { @@ -26,7 +26,7 @@ public interface RemoteUserService {
* @return R
*/
@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 { @@ -34,7 +34,7 @@ public interface RemoteUserService {
* @return R
*/
@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查询用户
@ -42,6 +42,6 @@ public interface RemoteUserService { @@ -42,6 +42,6 @@ public interface RemoteUserService {
* @return R
*/
@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 @@ @@ -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; @@ -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 { @@ -85,7 +85,7 @@ public class MapTaskController {
mapTask.setBatchCode(batchCode);
JSONObject jsonObject = new JSONObject();
R<UserVo> user = remoteUserService.selectByUserId(mapTask.getCourierUserId());
R<KiccUser> user = remoteUserService.selectByUserId(mapTask.getCourierUserId());
Hospital hospital = hospitalService.getById(mapTask.getHospitalId());
jsonObject.put("hospitalId", hospital.getKlabHospitalAccount());
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; @@ -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; @@ -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 { @@ -81,7 +81,7 @@ public class MapTaskPresetController {
String batchCode = UUID.fromString(UUID.randomUUID().toString()).toString();
mapTaskPreset.setBatchCode(batchCode);
JSONObject jsonObject = new JSONObject();
R<UserVo> user = remoteUserService.selectByUserId(mapTaskPreset.getCourierUserId());
R<KiccUser> user = remoteUserService.selectByUserId(mapTaskPreset.getCourierUserId());
if (StrUtil.isNotBlank(mapTaskPreset.getOrginPresetId())) {
Hospital hospital = hospitalService.getById(mapTaskPreset.getOrginPresetId());
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 @@ @@ -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;

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; @@ -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<MapLogisticMapper, MapLo @@ -115,7 +115,7 @@ public class MapLogisticServiceImpl extends ServiceImpl<MapLogisticMapper, MapLo
mapLogistic.getMapTask().forEach(mapTask -> {
if (mapTask.getEnabledCreateReport()) {
JSONObject jsonObject = new JSONObject();
R<UserVo> user = remoteUserService.selectByUserId(mapTask.getCourierUserId());
R<KiccUser> 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<MapLogisticMapper, MapLo @@ -138,7 +138,7 @@ public class MapLogisticServiceImpl extends ServiceImpl<MapLogisticMapper, MapLo
mapTask.getMapTaskPreset().forEach(mapTaskPreset -> {
JSONObject jsonObject = new JSONObject();
if (mapTaskPreset.getEnabledCreateReport()) {
R<UserVo> taskPresetUser = remoteUserService.selectByUserId(mapTaskPreset.getCourierUserId());
R<KiccUser> taskPresetUser = remoteUserService.selectByUserId(mapTaskPreset.getCourierUserId());
if (StrUtil.isNotBlank(mapTaskPreset.getOrginPresetId())) {
Hospital hospital = hospitalService.getById(mapTaskPreset.getOrginPresetId());
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; @@ -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;

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; @@ -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 { @@ -46,8 +46,8 @@ public class AppController {
*/
@Inner
@GetMapping("/selectByPhone/{phone:\\d+}")
public R<UserVo> selectByPhone(@PathVariable String phone) {
List<UserVo> user = userService.getUserByPhone(phone);
public R<KiccUser> selectByPhone(@PathVariable String phone) {
List<KiccUser> user = userService.getUserByPhone(phone);
if (user.isEmpty()) {
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 @@ @@ -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 { @@ -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();
}

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; @@ -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 { @@ -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<Tenant> tenantList = tenantService.list(Wrappers.<Tenant>query().lambda().in(Tenant::getCode, user.getTenantIds()));
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; @@ -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; @@ -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 { @@ -58,14 +58,14 @@ public class UserController {
@GetMapping("/list")
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());
}
@GetMapping("/getCourierUserList")
@ApiOperation(value = "获取全部快递员集合")
public R getCourierUserList() {
List<UserVo> userList = userService.getCourierUserList();
List<KiccUser> userList = userService.getCourierUserList();
return R.ok(userList);
}
@ -88,7 +88,7 @@ public class UserController { @@ -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<String> roles;
// 设置所有角色集合信息
List<Role> roleList = roleService.list();
@ -104,15 +104,25 @@ public class UserController { @@ -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 { @@ -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 { @@ -177,8 +177,8 @@ public class UserController {
@ResponseExcel(name = "用户列表", sheets = @Sheet(sheetName = "user_list"))
@GetMapping("/exportUser")
@PreAuthorize("@pms.hasPermission('user_export')")
public List<UserVo> exportUserList() {
IPage<UserVo> userIPage = userService.selectUserList(new Page<>(1, 1000), MapUtil.<String, Object>builder().build());
public List<KiccUser> exportUserList() {
IPage<KiccUser> userIPage = userService.selectUserList(new Page<>(1, 1000), MapUtil.<String, Object>builder().build());
return userIPage.getRecords();
}
@ -207,7 +207,7 @@ public class UserController { @@ -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();

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; @@ -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<User> { @@ -23,26 +23,26 @@ public interface UserMapper extends BaseMapper<User> {
* 获取全部快递员集合
* @return List<User>
*/
List<UserVo> getCourierUserList();
List<KiccUser> getCourierUserList();
/**
* 查询用户列表
* @param page 分页
* @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 指定参数
*/
UserVo getUserByParam(Map<String, Object> param);
KiccUser getUserByParam(Map<String, Object> 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 @@ @@ -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;
/**
*<p>
@ -17,8 +16,8 @@ public interface ISsoUserService extends IService<SsoUser> { @@ -17,8 +16,8 @@ public interface ISsoUserService extends IService<SsoUser> {
/**
* 修改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; @@ -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<User> { @@ -23,7 +23,7 @@ public interface UserService extends IService<User> {
* @param user 用户信息
* @return 结果
*/
int saveUser(UserVo user);
int saveUser(KiccUser user);
/**
* 导入用户数据
@ -31,14 +31,14 @@ public interface UserService extends IService<User> { @@ -31,14 +31,14 @@ public interface UserService extends IService<User> {
* @param isUpdateSupport 是否更新支持如果已存在则进行更新数据
* @return 结果
*/
String importUser(List<UserVo> userList, Boolean isUpdateSupport);
String importUser(List<KiccUser> userList, Boolean isUpdateSupport);
/**
* 获取用户权限
* @param user 用户信息
* @return 结果
*/
UserVo getUserAuthority(UserVo user);
KiccUser getUserAuthority(KiccUser user);
/**
* 设置当前用户多租户信息
@ -49,40 +49,40 @@ public interface UserService extends IService<User> { @@ -49,40 +49,40 @@ public interface UserService extends IService<User> {
/**
* 获取当前用户信息
* @return UserVo
* @return KiccUser
*/
UserVo getCurrentUserInfo();
KiccUser getCurrentUserInfo();
/**
* 获取全部快递员集合
* @return List<User>
*/
List<UserVo> getCourierUserList();
List<KiccUser> getCourierUserList();
/**
* 查询用户列表
* @param page 分页
* @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查询用户
* @param userId 用户ID
*/
UserVo getUserById(String userId);
KiccUser getUserById(String userId);
/**
* 根据名称查询用户
* @param userName 用户名称
*/
UserVo getUserByName(String userName);
KiccUser getUserByName(String userName);
/**
* 根据手机号查询用户
* @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; @@ -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 { @@ -44,7 +44,7 @@ public class AppServiceImpl implements AppService {
*/
@Override
public R<Boolean> sendSmsCode(String phone) {
List<UserVo> user = userService.getUserByPhone(phone);
List<KiccUser> user = userService.getUserByPhone(phone);
if (CollUtil.isEmpty(user)) {
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; @@ -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<SsoUserMapper, SsoUser> impl @@ -30,25 +29,25 @@ public class SsoUserServiceImpl extends ServiceImpl<SsoUserMapper, SsoUser> 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()));
}
}

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; @@ -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; @@ -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;
/**
*<p>
@ -58,20 +57,20 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us @@ -58,20 +57,20 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> 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<UserRole>().eq(UserRole::getUserId, user.getCasUserId()));
// 新增用户与角色管理
addUserRole(userVo);
addUserRole(kiccUser);
return baseMapper.updateById(user);
}
}
@ -79,7 +78,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us @@ -79,7 +78,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
@Override
@SneakyThrows
public UserVo getUserAuthority(UserVo user) {
public KiccUser getUserAuthority(KiccUser user) {
// 设置角色列表
List<Role> roleList = roleService.selectMyRolesByUserId(user.getCasUserId());
// 设置角色列表 (ID)
@ -107,11 +106,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us @@ -107,11 +106,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> 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<UserMapper, User> implements Us @@ -138,7 +134,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> 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<UserMapper, User> implements Us @@ -152,12 +148,12 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
}
@Override
public List<UserVo> getCourierUserList() {
public List<KiccUser> getCourierUserList() {
return baseMapper.getCourierUserList();
}
@Override
public String importUser(List<UserVo> userList, Boolean isUpdateSupport) {
public String importUser(List<KiccUser> userList, Boolean isUpdateSupport) {
if (userList == null || userList.isEmpty()) {
throw new CheckedException("导入用户数据不能为空!");
}
@ -165,10 +161,10 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us @@ -165,10 +161,10 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> 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<UserMapper, User> implements Us @@ -181,18 +177,18 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
}
baseMapper.insert(u);
successNum++;
successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 导入成功");
successMsg.append("<br/>" + successNum + "、账号 " + user.getUsername() + " 导入成功");
} else if (isUpdateSupport) {
this.updateById(u);
successNum++;
successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 更新成功");
successMsg.append("<br/>" + successNum + "、账号 " + user.getUsername() + " 更新成功");
} else {
failureNum++;
failureMsg.append("<br/>" + failureNum + "、账号 " + user.getUserName() + " 已存在");
failureMsg.append("<br/>" + failureNum + "、账号 " + user.getUsername() + " 已存在");
}
} catch (Exception e) {
failureNum++;
String msg = "<br/>" + failureNum + "、账号 " + user.getUserName() + " 导入失败:";
String msg = "<br/>" + failureNum + "、账号 " + user.getUsername() + " 导入失败:";
failureMsg.append(msg + e.getMessage());
}
}
@ -206,22 +202,22 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us @@ -206,22 +202,22 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
}
@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);
}
@Override
public UserVo getUserById(String userId) {
public KiccUser getUserById(String userId) {
return baseMapper.getUserByParam(MapUtil.<String, Object>builder("casUserId", userId).build());
}
@Override
public UserVo getUserByName(String userName) {
public KiccUser getUserByName(String userName) {
return baseMapper.getUserByParam(MapUtil.<String, Object>builder("userName", userName).build());
}
@Override
public List<UserVo> getUserByPhone(String phone) {
public List<KiccUser> getUserByPhone(String phone) {
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 @@ @@ -2,7 +2,7 @@
<!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">
<select id="getCourierUserList" resultType="com.cloud.kicc.system.api.vo.UserVo">
<select id="getCourierUserList" resultType="com.cloud.kicc.common.data.entity.KiccUser">
select
u.id,
csu.id cas_user_id,
@ -41,7 +41,7 @@ @@ -41,7 +41,7 @@
and u.user_type = '3'
</select>
<select id="selectUserList" resultType="com.cloud.kicc.system.api.vo.UserVo">
<select id="selectUserList" resultType="com.cloud.kicc.common.data.entity.KiccUser">
select
u.id,
csu.id cas_user_id,
@ -101,7 +101,7 @@ @@ -101,7 +101,7 @@
order by u.create_time asc
</select>
<select id="getUserByParam" resultType="com.cloud.kicc.system.api.vo.UserVo">
<select id="getUserByParam" resultType="com.cloud.kicc.common.data.entity.KiccUser">
select
u.id,
csu.id cas_user_id,
@ -157,7 +157,7 @@ @@ -157,7 +157,7 @@
</where>
</select>
<select id="getUserByParamList" resultType="com.cloud.kicc.system.api.vo.UserVo">
<select id="getUserByParamList" resultType="com.cloud.kicc.common.data.entity.KiccUser">
select
u.id,
csu.id cas_user_id,

Loading…
Cancel
Save