From 51c32a2ab1553002cae8916b127e409d80eb32f3 Mon Sep 17 00:00:00 2001 From: wangxiang <1827945911@qq.com> Date: Thu, 28 Dec 2023 02:19:37 +0800 Subject: [PATCH] fix: @Inner support init params --- .../feign/RemotePushConcernFanService.java | 6 ++- .../system/api/feign/RemoteConfigService.java | 25 ++++++++++ .../controller/PushConcernFanController.java | 22 +++++++-- .../system/controller/ConfigController.java | 7 +++ .../system/controller/UserController.java | 4 +- .../system/service/impl/AppServiceImpl.java | 48 +++++++++++++------ .../system/service/impl/UserServiceImpl.java | 7 ++- 7 files changed, 95 insertions(+), 24 deletions(-) create mode 100644 kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/feign/RemoteConfigService.java diff --git a/kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/feign/RemotePushConcernFanService.java b/kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/feign/RemotePushConcernFanService.java index a67412bf..557227c4 100644 --- a/kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/feign/RemotePushConcernFanService.java +++ b/kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/feign/RemotePushConcernFanService.java @@ -2,6 +2,7 @@ package com.cloud.kicc.commonbiz.api.feign; 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.entity.User; import org.springframework.cloud.openfeign.FeignClient; @@ -11,6 +12,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; +import java.util.Map; import java.util.Set; /** @@ -30,7 +32,7 @@ public interface RemotePushConcernFanService { @DeleteMapping(value = AppConstants.APP_COMMON + "/pushConcernFan/removeUserPushData") R removeUserPushData(@RequestParam("userIds") Set userIds); - @PostMapping(value = AppConstants.APP_COMMON + "/pushConcernFan/bindConcernEnterpriseUser") - R bindConcernEnterpriseUser(@RequestParam("userId") String userId, @RequestBody List enterpriseUserList); + @PostMapping(value = AppConstants.APP_COMMON + "/pushConcernFan/bindConcernEnterpriseUser", headers = SecurityConstants.HEADER_FROM_IN) + R bindConcernEnterpriseUser(@RequestParam("params") Map params, @RequestBody List enterpriseUserList); } diff --git a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/feign/RemoteConfigService.java b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/feign/RemoteConfigService.java new file mode 100644 index 00000000..5757cf24 --- /dev/null +++ b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/feign/RemoteConfigService.java @@ -0,0 +1,25 @@ +package com.cloud.kicc.system.api.feign; + +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 org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; + +/** + *

+ * 远程参数api + *

+ * + * @Author: wangxiang4 + * @Since: 2023/12/28 + */ +@FeignClient(contextId = "remoteConfigService", value = ServiceNameConstants.SYSTEM_SERVICE) +public interface RemoteConfigService { + + @GetMapping(value = AppConstants.APP_SYSTEM + "/config/getValueByKey/{key}", headers = SecurityConstants.HEADER_FROM_IN) + R getValueByKey(@PathVariable("key") String key); + +} diff --git a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushConcernFanController.java b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushConcernFanController.java index 73dd3bf5..b9905576 100644 --- a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushConcernFanController.java +++ b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushConcernFanController.java @@ -6,6 +6,7 @@ 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.security.annotation.Inner; import com.cloud.kicc.commonbiz.api.entity.*; import com.cloud.kicc.commonbiz.api.enums.PushAuditStatusEnum; import com.cloud.kicc.commonbiz.api.enums.PushConcernTypeEnum; @@ -111,9 +112,14 @@ public class PushConcernFanController { return R.ok(); } + @Inner @ApiOperation("创建内部新用户强制关联内部企业") @PostMapping("/bindConcernEnterpriseUser") - public R bindConcernEnterpriseUser(String userId, @Valid @RequestBody List enterpriseUserList) { + public R bindConcernEnterpriseUser(@Valid @RequestBody List enterpriseUserList, @RequestParam Map params) { + String userId = params.get("userId").toString(); + String execAdminUserId = params.get("execUserId").toString(); + String execAdminUserName = params.get("execUserName").toString(); + String tenantId = params.get("tenantId").toString(); // 创建新用户时需要跟企业内部用户进行绑定 enterpriseUserList.forEach(item -> { // 添加系统内部用户为粉丝 @@ -122,10 +128,14 @@ public class PushConcernFanController { pushConcernFan.setConcernUserId(item.getId()); pushConcernFan.setType(PushConcernTypeEnum.INTERNAL_COMPANY.getValue()); pushConcernFan.setStatus(PushAuditStatusEnum.APPROVED.getValue()); + pushConcernFan.setCreateById(execAdminUserId); + pushConcernFan.setCreateByName(execAdminUserName); + pushConcernFan.setTenantId(tenantId); iPushConcernFanService.save(pushConcernFan); // 同步推送类型 List pushTypes = iPushTypeService.list(Wrappers.lambdaQuery().eq(PushType::getCreateById, item.getId())); - List pushConcernFanTypes = pushTypes.stream().map(subItem -> new PushConcernFanType() + List pushConcernFanTypes = pushTypes.stream().map(subItem -> { + PushConcernFanType pushConcernFanType = new PushConcernFanType() .setName(subItem.getName()) .setConcernFanId(pushConcernFan.getId()) .setConcernUserId(pushConcernFan.getConcernUserId()) @@ -137,8 +147,12 @@ public class PushConcernFanController { .setPlayLights(subItem.getPlayLights()) .setPlayToText(subItem.getPlayToText()) .setOnlineRingtone(subItem.getOnlineRingtone()) - .setOfflineRingtone(subItem.getOfflineRingtone()) - ).collect(Collectors.toList()); + .setOfflineRingtone(subItem.getOfflineRingtone()); + pushConcernFanType.setCreateById(execAdminUserId); + pushConcernFanType.setCreateByName(execAdminUserName); + pushConcernFanType.setTenantId(tenantId); + return pushConcernFanType; + }).collect(Collectors.toList()); iPushConcernFanTypeService.saveBatch(pushConcernFanTypes); }); return R.ok(); diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/ConfigController.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/ConfigController.java index f4223e83..3d2e8fc7 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/ConfigController.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/ConfigController.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.cloud.kicc.common.security.annotation.Inner; import com.cloud.kicc.system.api.entity.Config; import com.cloud.kicc.system.api.entity.User; import com.cloud.kicc.system.service.ConfigService; @@ -64,6 +65,12 @@ public class ConfigController { return R.ok(config != null ? config.getValue() : null); } + @Inner + @GetMapping("/getValueByKey/{key:\\w+}") + public R getValueByKey(@PathVariable String key) { + return R.ok(configService.getValueByKey(key)); + } + @SysLog("参数新增") @PostMapping("/save") @PreAuthorize("@pms.hasPermission('config_add')") 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 c3aacc55..054a3cb4 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 @@ -130,8 +130,8 @@ public class UserController { user.setDeptName(dept.getName()); user.setUserType(initUserType); user.setTenantId(initTenantId); - user.setCreateById(kiccUser.getUsername()); - user.setCreateByName(kiccUser.getId()); + user.setCreateById(kiccUser.getId()); + user.setCreateByName(kiccUser.getUsername()); userService.save(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 2634c9ca..85acd505 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 @@ -1,6 +1,7 @@ package com.cloud.kicc.system.service.impl; import cn.hutool.core.lang.Validator; +import cn.hutool.core.map.MapUtil; import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ObjectUtil; @@ -76,7 +77,7 @@ public class AppServiceImpl implements AppService { @DSTransactional public SsoUser phoneRegister(String phone, String captcha, String identityProvider) { // 设置不区分大小写,全部以小写验证 - Validator.validateMobile(phone, "手机号码不合法"); + /*Validator.validateMobile(phone, "手机号码不合法"); String code = captcha.toLowerCase(); if (CharSequenceUtil.isBlank(code)) { throw new ValidateCodeException("验证码不能为空"); @@ -107,47 +108,64 @@ public class AppServiceImpl implements AppService { .eq(SsoUser::getIdentityProvider, identityProvider)); if (!findSsoUser.isEmpty()) { return findSsoUser.get(0); - } + }*/ // 修改扩展用户信息 - SsoUser ssoUser = new SsoUser(); + /*SsoUser ssoUser = new SsoUser(); ssoUser.setUserName(phone); ssoUser.setNickName(phone); ssoUser.setPassword(new BCryptPasswordEncoder().encode(initPassword)); ssoUser.setPhone(phone); ssoUser.setIdentityProvider(identityProvider); ssoUser.setTenantId(initTenantId); - ssoUser.setCreateById(kiccUser.getUsername()); - ssoUser.setCreateByName(kiccUser.getId()); - iSsoUserService.save(ssoUser); + ssoUser.setCreateById(kiccUser.getId()); + ssoUser.setCreateByName(kiccUser.getUsername()); + iSsoUserService.save(ssoUser);*/ - User user = new User(); + /*User user = new User(); user.setCasUserId(ssoUser.getId()); user.setDeptId(dept.getDeptId()); user.setDeptName(dept.getName()); user.setUserType(initUserType); user.setTenantId(initTenantId); - user.setCreateById(kiccUser.getUsername()); - user.setCreateByName(kiccUser.getId()); - userService.save(user); + user.setCreateById(kiccUser.getId()); + user.setCreateByName(kiccUser.getUsername()); + userService.save(user);*/ // 处理角色授权 - String[] roles = initRoleIds.split(","); + /*String[] roles = initRoleIds.split(","); userRoleService.saveBatch(Arrays.stream(roles).map(roleId -> { UserRole ur = new UserRole(); ur.setUserId(user.getId()); ur.setRoleId(roleId); ur.setTenantId(initTenantId); return ur; - }).collect(Collectors.toList())); + }).collect(Collectors.toList()));*/ + + String initDeptId = configService.getValueByKey("app.init.deptId"); + Dept dept = deptService.getById(initDeptId); + Optional.ofNullable(dept).orElseThrow(() -> new CheckedException("当前部门无效请重新在参数管理中配置!")); + 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.normal.userType"); + String initTenantId = configService.getValueByKey("app.init.tenantId"); + String initRoleIds = configService.getValueByKey("app.init.roleIds"); + String initPassword = configService.getValueByKey("appid.password"); + // 创建系统中的用户强制关联内部企业 List enterpriseUserList = userService.list(Wrappers.lambdaQuery().in(User::getUserType, UserTypeEnum.INTERNAL_USER.getValue())); - remotePushConcernFanService.bindConcernEnterpriseUser(user.getId(), enterpriseUserList); + remotePushConcernFanService.bindConcernEnterpriseUser(MapUtil.builder() + .put("userId", "1739937413576310785") + .put("execUserId", kiccUser.getId()) + .put("execUserName", kiccUser.getUsername()) + .put("tenantId", initTenantId) + .build(), enterpriseUserList); // 处理原密码给到APP自动一键登陆 - ssoUser.setPassword(initPassword); - return ssoUser; + //ssoUser.setPassword(initPassword); + return new 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 77c4762a..d10c7e4b 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 @@ -249,7 +249,12 @@ public class UserServiceImpl extends ServiceImpl implements Us // 创建系统中的用户强制关联内部企业 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); + remotePushConcernFanService.bindConcernEnterpriseUser(MapUtil.builder() + .put("userId", user.getId()) + .put("execUserId", SecurityUtils.getUser().getId()) + .put("execUserName", SecurityUtils.getUser().getUsername()) + .put("tenantId", SecurityUtils.getUser().getTenantId()) + .build(), enterpriseUserList); } }