From 565d630cc2a2e6d1432e008937ed6bd4e2f28aaf Mon Sep 17 00:00:00 2001 From: wangxiang <1827945911@qq.com> Date: Wed, 27 Dec 2023 16:48:53 +0800 Subject: [PATCH] fix: Optimize user --- .../system/controller/UserController.java | 20 ++---------------- .../kicc/system/service/UserService.java | 5 +++++ .../system/service/impl/AppServiceImpl.java | 12 ++++++++++- .../system/service/impl/UserServiceImpl.java | 21 +++++++++++++++++++ 4 files changed, 39 insertions(+), 19 deletions(-) diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java index 5dccfdbc..c3aacc55 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java @@ -120,7 +120,7 @@ public class UserController { String execAdminUserId = configService.getValueByKey("app.exec.admin.userId"); KiccUser kiccUser = userService.getUserById(execAdminUserId); Optional.ofNullable(kiccUser).orElseThrow(() -> new CheckedException("当前系统管理执行用户无效请重新在参数管理中配置!")); - String initUserType = configService.getValueByKey("app.init.deptId"); + String initUserType = configService.getValueByKey("app.init.normal.userType"); String initTenantId = configService.getValueByKey("app.init.tenantId"); String initRoleIds = configService.getValueByKey("app.init.roleIds"); @@ -152,23 +152,7 @@ public class UserController { @PreAuthorize("@pms.hasPermission('user_add')") public R save(@RequestBody KiccUser user) { userService.saveUser(user); - // fixme: 推送.APP相关 - // 企业内部用户推送类型数据同步 - if (StrUtil.equals(user.getUserType(), UserTypeEnum.INTERNAL_USER.getValue())) { - List userList = userService.list(Wrappers.lambdaQuery() - .ne(User::getId, SecurityUtils.getUser().getId()) - .notIn(User::getUserType, UserTypeEnum.ENTERPRISE_USER.getValue(), UserTypeEnum.INTERNAL_USER.getValue())); - remotePushConcernFanService.enterpriseUserFanSave(user.getId(), userList); - } - // 创建系统中的用户强制关联内部企业 - if (!ArrayUtil.contains(new String[]{ - UserTypeEnum.ENTERPRISE_USER.getValue(), - UserTypeEnum.INTERNAL_USER.getValue(), - }, SecurityUtils.getUser().getUserType())) { - List enterpriseUserList = userService.list(Wrappers.lambdaQuery() - .in(User::getUserType, UserTypeEnum.INTERNAL_USER.getValue())); - remotePushConcernFanService.bindConcernEnterpriseUser(user.getId(), enterpriseUserList); - } + userService.appPushBindEnterpriseInnerUser(user); return R.ok(); } diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/UserService.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/UserService.java index b9e47213..219cc8e2 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/UserService.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/UserService.java @@ -97,4 +97,9 @@ public interface UserService extends IService { */ List getUserByPhone(String phone); + /** + * app消息推送绑定企业内部账户 + */ + void appPushBindEnterpriseInnerUser(KiccUser user); + } diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/AppServiceImpl.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/AppServiceImpl.java index 7eb101e3..2634c9ca 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/AppServiceImpl.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/AppServiceImpl.java @@ -2,6 +2,7 @@ package com.cloud.kicc.system.service.impl; import cn.hutool.core.lang.Validator; import cn.hutool.core.text.CharSequenceUtil; +import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ObjectUtil; import cn.javaer.aliyun.sms.SmsClient; import com.baomidou.dynamic.datasource.annotation.DSTransactional; @@ -13,9 +14,12 @@ import com.cloud.kicc.common.core.exception.CheckedException; import com.cloud.kicc.common.core.exception.ValidateCodeException; import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.common.data.entity.SsoUser; +import com.cloud.kicc.common.security.util.SecurityUtils; +import com.cloud.kicc.commonbiz.api.feign.RemotePushConcernFanService; import com.cloud.kicc.system.api.entity.Dept; 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.service.*; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -49,6 +53,7 @@ public class AppServiceImpl implements AppService { private final DeptService deptService; private final UserRoleService userRoleService; private final ISsoUserService iSsoUserService; + private final RemotePushConcernFanService remotePushConcernFanService; /** * 发送手机验证码 @@ -90,7 +95,7 @@ public class AppServiceImpl implements AppService { String execAdminUserId = configService.getValueByKey("app.exec.admin.userId"); KiccUser kiccUser = userService.getUserById(execAdminUserId); Optional.ofNullable(kiccUser).orElseThrow(() -> new CheckedException("当前系统管理执行用户无效请重新在参数管理中配置!")); - String initUserType = configService.getValueByKey("app.init.deptId"); + String initUserType = configService.getValueByKey("app.init.normal.userType"); String initTenantId = configService.getValueByKey("app.init.tenantId"); String initRoleIds = configService.getValueByKey("app.init.roleIds"); String initPassword = configService.getValueByKey("appid.password"); @@ -135,6 +140,11 @@ public class AppServiceImpl implements AppService { ur.setTenantId(initTenantId); return ur; }).collect(Collectors.toList())); + + // 创建系统中的用户强制关联内部企业 + List enterpriseUserList = userService.list(Wrappers.lambdaQuery().in(User::getUserType, UserTypeEnum.INTERNAL_USER.getValue())); + remotePushConcernFanService.bindConcernEnterpriseUser(user.getId(), enterpriseUserList); + // 处理原密码给到APP自动一键登陆 ssoUser.setPassword(initPassword); return ssoUser; diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/UserServiceImpl.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/UserServiceImpl.java index aa80f845..77c4762a 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/UserServiceImpl.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/UserServiceImpl.java @@ -5,16 +5,19 @@ import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.StrUtil; 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.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.commonbiz.api.feign.RemotePushConcernFanService; 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.enums.UserTypeEnum; import com.cloud.kicc.system.mapper.UserMapper; import com.cloud.kicc.system.service.*; import lombok.AllArgsConstructor; @@ -54,6 +57,7 @@ public class UserServiceImpl extends ServiceImpl implements Us private final MenuService menuService; private final TenantService tenantService; private final TokenStore tokenStore; + private final RemotePushConcernFanService remotePushConcernFanService; @Override @Transactional(rollbackFor = Exception.class) @@ -232,4 +236,21 @@ public class UserServiceImpl extends ServiceImpl implements Us return baseMapper.getUserByParamList(MapUtil.builder("phone", phone).build()); } + @Override + public void appPushBindEnterpriseInnerUser(KiccUser user) { + // fixme: 推送.APP相关 + // 企业内部用户推送类型数据同步 + if (StrUtil.equals(user.getUserType(), UserTypeEnum.INTERNAL_USER.getValue())) { + List userList = super.list(Wrappers.lambdaQuery() + .ne(User::getId, SecurityUtils.getUser().getId()) + .notIn(User::getUserType, UserTypeEnum.ENTERPRISE_USER.getValue(), UserTypeEnum.INTERNAL_USER.getValue())); + remotePushConcernFanService.enterpriseUserFanSave(user.getId(), userList); + } + // 创建系统中的用户强制关联内部企业 + if (!ArrayUtil.contains(new String[]{ UserTypeEnum.ENTERPRISE_USER.getValue(), UserTypeEnum.INTERNAL_USER.getValue() }, SecurityUtils.getUser().getUserType())) { + List enterpriseUserList = super.list(Wrappers.lambdaQuery().in(User::getUserType, UserTypeEnum.INTERNAL_USER.getValue())); + remotePushConcernFanService.bindConcernEnterpriseUser(user.getId(), enterpriseUserList); + } + } + }