diff --git a/njzscloud-common/njzscloud-common-security/src/main/java/com/njzscloud/common/security/support/ITokenService.java b/njzscloud-common/njzscloud-common-security/src/main/java/com/njzscloud/common/security/support/ITokenService.java index 3cf049d..8b62bbb 100644 --- a/njzscloud-common/njzscloud-common-security/src/main/java/com/njzscloud/common/security/support/ITokenService.java +++ b/njzscloud-common/njzscloud-common-security/src/main/java/com/njzscloud/common/security/support/ITokenService.java @@ -4,6 +4,8 @@ public interface ITokenService { void saveToken(UserDetail userDetail); + void updateToken(UserDetail userDetail); + UserDetail loadUser(String tokenStr); void removeToken(Token token); diff --git a/njzscloud-common/njzscloud-common-security/src/main/java/com/njzscloud/common/security/support/UserDetail.java b/njzscloud-common/njzscloud-common-security/src/main/java/com/njzscloud/common/security/support/UserDetail.java index eafa11d..ec31d04 100644 --- a/njzscloud-common/njzscloud-common-security/src/main/java/com/njzscloud/common/security/support/UserDetail.java +++ b/njzscloud-common/njzscloud-common-security/src/main/java/com/njzscloud/common/security/support/UserDetail.java @@ -42,9 +42,16 @@ public class UserDetail implements CredentialsContainer, Principal { * 账号 Id */ private Long accountId; - private Long tenantId; + /** + * 允许的客户端 + */ private Integer clientCode; + /** + * 当前客户端 + */ private Integer client; + + private Long tenantId; private String tenantName; /** * 登录方式 diff --git a/njzscloud-common/njzscloud-common-security/src/main/java/com/njzscloud/common/security/util/SecurityUtil.java b/njzscloud-common/njzscloud-common-security/src/main/java/com/njzscloud/common/security/util/SecurityUtil.java index 08b3ee2..1617507 100644 --- a/njzscloud-common/njzscloud-common-security/src/main/java/com/njzscloud/common/security/util/SecurityUtil.java +++ b/njzscloud-common/njzscloud-common-security/src/main/java/com/njzscloud/common/security/util/SecurityUtil.java @@ -54,7 +54,22 @@ public class SecurityUtil { SpringUtil.getBean(ITokenService.class).saveToken(userDetail); } + /** + * 注册新 TOKEN + * + * @param userDetail 用户信息 + */ public static UserDetail registrationUser(UserDetail userDetail) { + SpringUtil.getBean(ITokenService.class).updateToken(userDetail); + return userDetail; + } + + /** + * 更新 TOKEN + * + * @param userDetail 用户信息 + */ + public static UserDetail updateUser(UserDetail userDetail) { Token token = Token.of(userDetail.getUserId(), userDetail.getAccountId(), userDetail.getAuthWay()); userDetail.setToken(token); saveToken(userDetail); diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/customer/constant/IdentityCategory.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/customer/constant/IdentityCategory.java index 4a14880..fe62166 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/customer/constant/IdentityCategory.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/customer/constant/IdentityCategory.java @@ -13,12 +13,12 @@ import lombok.RequiredArgsConstructor; public enum IdentityCategory implements DictStr { PingTai("PingTai", "平台"), + XiaoNa("XiaoNa", "消纳方"), + ChanFei("ChanFei", "产废方"), YunShu("YunShu", "运输方"), - XiaoNa("XiaoNa", "消纳方"), - CaiGou("CaiGou", "采购方"), SiJi("SiJi", "司机"), diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/customer/controller/CustomerController.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/customer/controller/CustomerController.java index 0749e6b..9e023eb 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/customer/controller/CustomerController.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/customer/controller/CustomerController.java @@ -10,6 +10,7 @@ import com.njzscloud.dispose.cst.customer.pojo.param.AddCustomerParam; import com.njzscloud.dispose.cst.customer.pojo.param.SearchCustomerParam; import com.njzscloud.dispose.cst.customer.pojo.result.SearchCustomerResult; import com.njzscloud.dispose.cst.customer.service.CustomerService; +import com.njzscloud.dispose.sys.auth.pojo.result.MyResult; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; @@ -44,6 +45,18 @@ public class CustomerController { return R.success(customerService.list(Wrappers.lambdaQuery(CustomerEntity.class).eq(CustomerEntity::getUserId, userId))); } + /** + * 切换身份 + * + * @param targetCustomerId 目标身份 + */ + @GetMapping("/change_identity") + public R changeIdentity(@RequestParam("targetCustomerId") Long targetCustomerId) { + MyResult myResult = SecurityUtil.loginUser(); + myResult = customerService.changeIdentity(targetCustomerId, myResult); + return R.success(myResult); + } + /** * 修改 */ diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/customer/service/CustomerService.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/customer/service/CustomerService.java index 6377058..59af532 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/customer/service/CustomerService.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/customer/service/CustomerService.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njzscloud.common.core.ex.Exceptions; import com.njzscloud.common.mp.support.PageParam; import com.njzscloud.common.mp.support.PageResult; +import com.njzscloud.common.security.util.SecurityUtil; import com.njzscloud.dispose.cst.customer.constant.IdentityCategory; import com.njzscloud.dispose.cst.customer.constant.SettlementWay; import com.njzscloud.dispose.cst.customer.mapper.CustomerMapper; @@ -18,12 +19,17 @@ import com.njzscloud.dispose.cst.customer.pojo.param.SearchCustomerParam; import com.njzscloud.dispose.cst.customer.pojo.result.SearchCustomerResult; import com.njzscloud.dispose.cst.org.pojo.param.AddOrgParam; import com.njzscloud.dispose.cst.org.service.OrgService; +import com.njzscloud.dispose.sys.auth.pojo.result.IdentityInfo; +import com.njzscloud.dispose.sys.auth.pojo.result.MyResult; +import com.njzscloud.dispose.sys.auth.service.AuthService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.Objects; +import java.util.Optional; /** * 客户信息 @@ -33,6 +39,7 @@ import java.util.List; @RequiredArgsConstructor public class CustomerService extends ServiceImpl implements IService { private final OrgService orgService; + private final AuthService authService; /** * 新增 @@ -111,4 +118,20 @@ public class CustomerService extends ServiceImpl .eq(identityCategory != null, "a.identity_category", identityCategory) )); } + + @Transactional(rollbackFor = Exception.class) + public MyResult changeIdentity(Long targetCustomerId, MyResult myResult) { + List identities = myResult.getIdentities(); + Assert.notEmpty(identities, () -> Exceptions.exception("无需切换")); + Optional identityInfo = identities.stream().filter(it -> Objects.equals(it.getCustomerId(), targetCustomerId)).findFirst(); + Assert.isTrue(identityInfo.isPresent(), () -> Exceptions.exception("目标身份不存在,无法切换")); + Long currentCustomerId = myResult.getCurrentCustomerId(); + IdentityInfo currentIdentity = myResult.currentIdentity(); + Assert.isTrue(Objects.equals(currentCustomerId, targetCustomerId), () -> Exceptions.exception("已是【{}】身份,无需切换", currentIdentity.getIdentityCategory().getTxt())); + myResult.setCurrentCustomerId(targetCustomerId); + SecurityUtil.updateUser(myResult); + Long userId = myResult.getUserId(); + Integer client = myResult.getClient(); + return (MyResult) authService.my(userId, client); + } } diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/org/controller/OrgApplyController.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/org/controller/OrgApplyController.java index e90d162..3766dd6 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/org/controller/OrgApplyController.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/org/controller/OrgApplyController.java @@ -4,6 +4,8 @@ import com.njzscloud.common.core.utils.R; import com.njzscloud.common.mp.support.PageParam; import com.njzscloud.common.mp.support.PageResult; import com.njzscloud.dispose.cst.org.pojo.entity.OrgApplyEntity; +import com.njzscloud.dispose.cst.org.pojo.param.SearchOrgApplyParam; +import com.njzscloud.dispose.cst.org.pojo.result.SearchOrgApplyResult; import com.njzscloud.dispose.cst.org.service.OrgApplyService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -60,7 +62,7 @@ public class OrgApplyController { * 分页查询 */ @GetMapping("/paging") - public R> paging(PageParam pageParam, OrgApplyEntity orgApplyEntity) { - return R.success(orgApplyService.paging(pageParam, orgApplyEntity)); + public R> paging(PageParam pageParam, SearchOrgApplyParam searchOrgApplyParam) { + return R.success(orgApplyService.paging(pageParam, searchOrgApplyParam)); } } diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/org/mapper/OrgApplyMapper.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/org/mapper/OrgApplyMapper.java index 8c64f49..4a6427e 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/org/mapper/OrgApplyMapper.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/org/mapper/OrgApplyMapper.java @@ -1,12 +1,18 @@ package com.njzscloud.dispose.cst.org.mapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njzscloud.dispose.cst.org.pojo.entity.OrgApplyEntity; +import com.njzscloud.dispose.cst.org.pojo.result.SearchOrgApplyResult; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 加入组织申请 */ @Mapper public interface OrgApplyMapper extends BaseMapper { + IPage paging(Page page, @Param("ew") QueryWrapper ew); } diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/org/pojo/param/SearchOrgApplyParam.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/org/pojo/param/SearchOrgApplyParam.java new file mode 100644 index 0000000..53545d0 --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/org/pojo/param/SearchOrgApplyParam.java @@ -0,0 +1,46 @@ +package com.njzscloud.dispose.cst.org.pojo.param; + +import com.njzscloud.dispose.cst.customer.constant.IdentityCategory; +import com.njzscloud.dispose.cst.org.constant.ApplyStatus; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import lombok.experimental.Accessors; + +import java.time.LocalDateTime; + +/** + * 加入组织申请 + */ +@Getter +@Setter +@ToString +@Accessors(chain = true) +public class SearchOrgApplyParam { + + /** + * 申请时间, + * 排序字段:a.apply_time + */ + private LocalDateTime applyStartTime; + + private LocalDateTime applyEndTime; + + /** + * 状态,ShenQingZhong-->申请中、JuJue-->拒绝、TongYi-->同意 + */ + private ApplyStatus applyStatus; + /** + * 客户姓名 + */ + private String customerName; + + /** + * 客户联系电话 + */ + private String customerPhone; + /** + * 身份类型;多个身份多条数据,PingTai-->平台、ChanFei-->产废方、QingYun-->清运方、XiaoNa-->消纳方、CaiGou-->采购方 + */ + private IdentityCategory identityCategory; +} diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/org/pojo/result/SearchOrgApplyResult.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/org/pojo/result/SearchOrgApplyResult.java new file mode 100644 index 0000000..6c969e8 --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/org/pojo/result/SearchOrgApplyResult.java @@ -0,0 +1,65 @@ +package com.njzscloud.dispose.cst.org.pojo.result; + +import com.njzscloud.dispose.cst.customer.constant.IdentityCategory; +import com.njzscloud.dispose.cst.org.constant.ApplyStatus; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import lombok.experimental.Accessors; + +import java.time.LocalDateTime; + +/** + * 加入组织申请 + */ +@Getter +@Setter +@ToString +@Accessors(chain = true) +public class SearchOrgApplyResult { + + /** + * Id + */ + private Long id; + + /** + * 申请人 Id + */ + private Long customerId; + + /** + * 客户姓名 + */ + private String customerName; + + /** + * 客户联系电话 + */ + private String customerPhone; + /** + * 身份类型;多个身份多条数据,PingTai-->平台、ChanFei-->产废方、QingYun-->清运方、XiaoNa-->消纳方、CaiGou-->采购方 + */ + private IdentityCategory identityCategory; + + + /** + * 加入的组织 Id + */ + private Long orgId; + + /** + * 申请时间 + */ + private LocalDateTime applyTime; + + /** + * 状态,ShenQingZhong-->申请中、JuJue-->拒绝、TongYi-->同意 + */ + private ApplyStatus applyStatus; + + /** + * 拒绝原因 + */ + private String cause; +} diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/org/service/OrgApplyService.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/org/service/OrgApplyService.java index af1548f..18704e5 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/org/service/OrgApplyService.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/org/service/OrgApplyService.java @@ -1,17 +1,23 @@ package com.njzscloud.dispose.cst.org.service; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njzscloud.common.mp.support.PageParam; import com.njzscloud.common.mp.support.PageResult; +import com.njzscloud.dispose.cst.customer.constant.IdentityCategory; +import com.njzscloud.dispose.cst.org.constant.ApplyStatus; import com.njzscloud.dispose.cst.org.mapper.OrgApplyMapper; import com.njzscloud.dispose.cst.org.pojo.entity.OrgApplyEntity; +import com.njzscloud.dispose.cst.org.pojo.param.SearchOrgApplyParam; +import com.njzscloud.dispose.cst.org.pojo.result.SearchOrgApplyResult; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.time.LocalDateTime; import java.util.List; /** @@ -54,7 +60,20 @@ public class OrgApplyService extends ServiceImpl /** * 分页查询 */ - public PageResult paging(PageParam pageParam, OrgApplyEntity orgApplyEntity) { - return PageResult.of(this.page(pageParam.toPage(), Wrappers.query(orgApplyEntity))); + public PageResult paging(PageParam pageParam, SearchOrgApplyParam searchOrgApplyParam) { + LocalDateTime applyStartTime = searchOrgApplyParam.getApplyStartTime(); + LocalDateTime applyEndTime = searchOrgApplyParam.getApplyEndTime(); + ApplyStatus applyStatus = searchOrgApplyParam.getApplyStatus(); + String customerName = searchOrgApplyParam.getCustomerName(); + String customerPhone = searchOrgApplyParam.getCustomerPhone(); + IdentityCategory identityCategory = searchOrgApplyParam.getIdentityCategory(); + return PageResult.of(baseMapper.paging(pageParam.toPage(), Wrappers.query() + .ge(applyStartTime != null, "a.apply_time", applyStartTime) + .le(applyStartTime != null, "a.apply_time", applyEndTime) + .eq(applyStatus != null, "a.apply_status", applyStatus) + .eq(identityCategory != null, "b.identity_category", identityCategory) + .eq(StrUtil.isNotBlank(customerName), "b.customer_name", customerName) + .eq(StrUtil.isNotBlank(customerPhone), "b.phone", customerPhone) + )); } } diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/auth/pojo/result/MyResult.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/auth/pojo/result/MyResult.java index 765a76f..2da2e74 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/auth/pojo/result/MyResult.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/auth/pojo/result/MyResult.java @@ -1,5 +1,7 @@ package com.njzscloud.dispose.sys.auth.pojo.result; +import cn.hutool.core.lang.Assert; +import com.njzscloud.common.core.ex.Exceptions; import com.njzscloud.common.security.support.UserDetail; import com.njzscloud.dispose.sys.user.constant.Gender; import lombok.Getter; @@ -8,18 +10,38 @@ import lombok.experimental.Accessors; import java.util.List; import java.util.Map; +import java.util.Objects; +import java.util.Optional; @Getter @Setter @Accessors(chain = true) public class MyResult extends UserDetail { + /** + * 菜单信息 + */ private List menus; + /** + * 端点信息 + */ private List endpoints; + /** + * 身份信息 + */ private List identities; + /** + * 系统设置 + */ private List> setting; + /** + * 当前身份 Id + * + */ + private Long currentCustomerId; + /** * 头像 */ @@ -37,5 +59,11 @@ public class MyResult extends UserDetail { */ private String email; + public IdentityInfo currentIdentity() { + Optional identityInfo = identities.stream().filter(it -> Objects.equals(it.getCustomerId(), currentCustomerId)).findFirst(); + Assert.isTrue(identityInfo.isPresent(), () -> Exceptions.error("无身份信息")); + // noinspection OptionalGetWithoutIsPresent + return identityInfo.get(); + } } diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/auth/service/AuthService.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/auth/service/AuthService.java index a8795b7..475dba7 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/auth/service/AuthService.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/auth/service/AuthService.java @@ -1,6 +1,7 @@ package com.njzscloud.dispose.sys.auth.service; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -37,7 +38,8 @@ public class AuthService implements IAuthService { @Override @Transactional(rollbackFor = Exception.class) public UserDetail selectUser(PasswordLoginForm form) { - return authMapper.selectUser(Wrappers.query().eq("a.username", form.getAccount()).eq("a.deleted", 0)); + MyResult myResult = authMapper.selectUser(Wrappers.query().eq("a.username", form.getAccount()).eq("a.deleted", 0)); + return my(myResult, form.getClientCode().getVal()); } @Override @@ -45,14 +47,18 @@ public class AuthService implements IAuthService { public UserDetail selectUser(WechatMiniLoginForm form) { String openid = form.getOpenid(); String unionid = form.getUnionid(); - return authMapper.selectUser(Wrappers.query().eq("a.wechat_openid", openid) + MyResult myResult = authMapper.selectUser(Wrappers.query().eq("a.wechat_openid", openid) .eq(StrUtil.isNotBlank(unionid), "a.wechat_unionid", unionid) .eq("a.deleted", 0)); + return my(myResult, form.getClientCode().getVal()); } @Override public Set selectRole(Long userId) { - return authMapper.selectRole(userId); + Set roles = authMapper.selectRole(userId); + roles.add(ROLE_AUTHENTICATED); + roles.add(ROLE_ANONYMOUS); + return roles; } /** @@ -62,13 +68,27 @@ public class AuthService implements IAuthService { public UserDetail my(Long userId, Integer client) { UserDetail userDetail = authMapper.selectUser(Wrappers.query().eq("b.id", userId).eq("a.deleted", 0)); Assert.notNull(userDetail, () -> Exceptions.exception("未查询到用户信息")); + return my(userDetail, client); + } + + public UserDetail my(UserDetail userDetail, Integer client) { + if (userDetail == null) return null; + Long userId = userDetail.getUserId(); + Assert.notNull(userDetail, () -> Exceptions.exception("未查询到用户信息")); List menuResources = authMapper.selectUserMenu(userId, client); List endpointResources = authMapper.selectUserEndpoint(userId); List identityInfoList = authMapper.selectUserIdentity(userId); + Long currentCustomerId = null; + + if (CollUtil.isNotEmpty(identityInfoList)) { + IdentityInfo identityInfo = identityInfoList.getFirst(); + currentCustomerId = identityInfo.getCustomerId(); + } Set roles = authMapper.selectRole(userId); roles.add(ROLE_AUTHENTICATED); roles.add(ROLE_ANONYMOUS); return BeanUtil.copyProperties(userDetail, MyResult.class) + .setCurrentCustomerId(currentCustomerId) .setIdentities(identityInfoList) .setMenus(menuResources) .setEndpoints(endpointResources) diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/auth/service/TokenService.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/auth/service/TokenService.java index ea378ee..7ac0767 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/auth/service/TokenService.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/auth/service/TokenService.java @@ -51,6 +51,31 @@ public class TokenService implements ITokenService { } } + @Override + public void updateToken(UserDetail userDetail) { + try { + writeLock.lock(); + Token token = userDetail.getToken(); + long userId = token.userId(); + String tid = token.tid(); + String key = Constants.TOKEN_CACHE_KEY.fill(userId, tid); + TOKEN_CACHE.remove(key); + SysTokenEntity sysTokenEntity = sysTokenMapper.selectOne(Wrappers.lambdaQuery() + .eq(SysTokenEntity::getUserId, userId) + .eq(SysTokenEntity::getTid, tid)); + sysTokenMapper.updateById(new SysTokenEntity() + .setId(sysTokenEntity.getId()) + .setUserId(userId) + .setTid(tid) + .setTkey(key) + .setTval(token.toString()) + .setUserDetail(Fastjson.toJsonStr(userDetail)) + ); + } finally { + writeLock.unlock(); + } + } + @Override public UserDetail loadUser(String tokenStr) { try { diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/user/service/UserService.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/user/service/UserService.java index 73897d9..b9d639b 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/user/service/UserService.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/user/service/UserService.java @@ -20,6 +20,7 @@ import com.njzscloud.dispose.cst.customer.constant.IdentityCategory; import com.njzscloud.dispose.cst.customer.pojo.param.AddCustomerParam; import com.njzscloud.dispose.cst.customer.service.CustomerService; import com.njzscloud.dispose.cst.org.pojo.param.AddOrgParam; +import com.njzscloud.dispose.sys.auth.service.AuthService; import com.njzscloud.dispose.sys.role.pojo.entity.RoleEntity; import com.njzscloud.dispose.sys.role.pojo.result.RoleDetailResult; import com.njzscloud.dispose.sys.user.constant.Gender; @@ -40,6 +41,8 @@ import java.util.List; import java.util.Set; import java.util.stream.Collectors; +import static com.njzscloud.common.security.contant.Constants.ROLE_ANONYMOUS; +import static com.njzscloud.common.security.contant.Constants.ROLE_AUTHENTICATED; import static com.njzscloud.dispose.event.SysMittEvent.COERCE_LOGOUT; /** @@ -136,6 +139,8 @@ public class UserService extends ServiceImpl implements return PageResult.of(baseMapper.paging(pageParam.toPage(), ew)); } + AuthService authService; + /** * 用户注册 * @@ -175,9 +180,13 @@ public class UserService extends ServiceImpl implements customerService.add(BeanUtil.copyProperties(customer, AddCustomerParam.class) .setAddOrgParam(BeanUtil.copyProperties(org, AddOrgParam.class))); List roleDetailResults = userRoleService.listRole(userId); - UserDetail userDetail = baseMapper.selectUser(userId) + + Set roles = roleDetailResults.stream().map(RoleDetailResult::getRoleCode).collect(Collectors.toSet()); + roles.add(ROLE_AUTHENTICATED); + roles.add(ROLE_ANONYMOUS); + UserDetail userDetail = authService.my(userId, account.getClientCode()) .setAuthWay(userRegisterParam.getAuthWay()) - .setRoles(roleDetailResults.stream().map(RoleDetailResult::getRoleCode).collect(Collectors.toSet())); + .setRoles(roles); return SecurityUtil.registrationUser(userDetail); } diff --git a/njzscloud-svr/src/main/resources/mapper/cst/customer/CustomerMapper.xml b/njzscloud-svr/src/main/resources/mapper/cst/customer/CustomerMapper.xml index 14d4712..0b6e887 100644 --- a/njzscloud-svr/src/main/resources/mapper/cst/customer/CustomerMapper.xml +++ b/njzscloud-svr/src/main/resources/mapper/cst/customer/CustomerMapper.xml @@ -60,6 +60,6 @@ diff --git a/njzscloud-svr/src/main/resources/mapper/cst/org/OrgApplyMapper.xml b/njzscloud-svr/src/main/resources/mapper/cst/org/OrgApplyMapper.xml index f48e2a6..70f8403 100644 --- a/njzscloud-svr/src/main/resources/mapper/cst/org/OrgApplyMapper.xml +++ b/njzscloud-svr/src/main/resources/mapper/cst/org/OrgApplyMapper.xml @@ -1,4 +1,20 @@ + diff --git a/njzscloud-svr/src/main/resources/mapper/sys/auth/AuthMapper.xml b/njzscloud-svr/src/main/resources/mapper/sys/auth/AuthMapper.xml index ac272c4..8f2be9e 100644 --- a/njzscloud-svr/src/main/resources/mapper/sys/auth/AuthMapper.xml +++ b/njzscloud-svr/src/main/resources/mapper/sys/auth/AuthMapper.xml @@ -30,6 +30,7 @@ SELECT a.role_code FROM sys_role a INNER JOIN sys_user_role b ON b.role_id = a.id AND b.user_id = #{userId} + ORDER BY a.id