From d40acf3c7e80ebbdeed0347828e4dc83503e7a75 Mon Sep 17 00:00:00 2001 From: wangxiang <1827945911@qq.com> Date: Fri, 21 Apr 2023 12:38:41 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E6=95=B4=E4=BD=93?= =?UTF-8?q?=E6=8E=A8=E9=80=81=E4=BB=A3=E7=A0=81=EF=BC=8C=E6=8F=90=E9=AB=98?= =?UTF-8?q?=E5=8F=AF=E7=BB=B4=E6=8A=A4=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kicc/common/data/entity/KiccUser.java | 7 +-- .../common/security/util/SecurityUtils.java | 39 +++++++++++++++++ .../api/enums/PushAuditStatusEnum.java | 38 ++++++++++++++++ .../api/enums/PushConcernTypeEnum.java | 31 +++++++++++++ .../kicc/system/api/enums/UserTypeEnum.java | 36 ++++++++++++++++ .../controller/PushApplicationController.java | 10 +++-- .../controller/PushConcernFanController.java | 15 ++++--- .../controller/PushEnterpriseController.java | 8 ++-- .../impl/PushApplicationServiceImpl.java | 43 +++++-------------- .../system/controller/UserController.java | 35 ++++++++------- 10 files changed, 193 insertions(+), 69 deletions(-) create mode 100644 kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/enums/PushAuditStatusEnum.java create mode 100644 kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/enums/PushConcernTypeEnum.java create mode 100644 kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/enums/UserTypeEnum.java diff --git a/kicc-common/kicc-common-data/src/main/java/com/cloud/kicc/common/data/entity/KiccUser.java b/kicc-common/kicc-common-data/src/main/java/com/cloud/kicc/common/data/entity/KiccUser.java index 58071915..ebbe6177 100644 --- a/kicc-common/kicc-common-data/src/main/java/com/cloud/kicc/common/data/entity/KiccUser.java +++ b/kicc-common/kicc-common-data/src/main/java/com/cloud/kicc/common/data/entity/KiccUser.java @@ -41,12 +41,7 @@ public class KiccUser extends User { /** * 用户类型 - * { label: '系统管理员', value: '0' }, - * { label: '普通用户', value: '1' }, - * { label: '企业用户', value: '2' }, - * { label: '收样员', value: '3' }, - * { label: '客服', value: '4' }, - * { label: '企业内部用户', value: '5' }, + * {@link com.cloud.kicc.system.api.enums.UserTypeEnum } */ @Getter private String userType; diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/util/SecurityUtils.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/util/SecurityUtils.java index b26369a1..f1e5fd0d 100644 --- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/util/SecurityUtils.java +++ b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/util/SecurityUtils.java @@ -1,11 +1,19 @@ package com.cloud.kicc.common.security.util; import cn.hutool.core.util.StrUtil; +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.exception.CheckedException; +import com.cloud.kicc.common.core.util.SpringContextHolderUtil; import com.cloud.kicc.common.data.entity.KiccUser; +import com.cloud.kicc.system.api.entity.User; +import com.cloud.kicc.system.api.feign.RemoteUserService; import lombok.experimental.UtilityClass; +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.context.SecurityContextHolder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; @@ -70,6 +78,37 @@ public class SecurityUtils { return roleIds; } + /** + * 对外开放接口临时登录会话 + * @param userId 用户id + * @return User 用户对象 + */ + public User openInterfaceTemporaryLoginSession(String userId){ + RemoteUserService remoteUserService = SpringContextHolderUtil.getBean(RemoteUserService.class); + R result = remoteUserService.selectByUserId(userId, SecurityConstants.FROM_IN); + if (result == null || result.getData() == null) { + throw new CheckedException("用户不存在"); + } + User user = result.getData(); + KiccUser kiccUser = new KiccUser( + user.getId(), + user.getDeptId(), + user.getUserName(), + SecurityConstants.BCRYPT + user.getPassword(), + user.getPhone(), + user.getUserType(), + user.getTenantId(), + true, + true, + true, + StrUtil.equals(user.getStatus(), CommonConstants.STATUS_NORMAL), + AuthorityUtils.createAuthorityList(user.getPermissions()) + ); + Authentication authentication = new UsernamePasswordAuthenticationToken(kiccUser, "N/A", kiccUser.getAuthorities()); + SecurityContextHolder.getContext().setAuthentication(authentication); + return user; + } + public static void main(String[] args) { System.out.println(new BCryptPasswordEncoder().encode("123456")); } diff --git a/kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/enums/PushAuditStatusEnum.java b/kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/enums/PushAuditStatusEnum.java new file mode 100644 index 00000000..953cdc89 --- /dev/null +++ b/kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/enums/PushAuditStatusEnum.java @@ -0,0 +1,38 @@ +package com.cloud.kicc.commonbiz.api.enums; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +/** + *

+ * 推送审核状态 + *

+ * + * @Author: wangxiang4 + * @since: 2023/4/21 + */ +@Getter +@RequiredArgsConstructor +public enum PushAuditStatusEnum { + + + REJECTED(-1,"驳回"), + + NOT_APPLIED(0,"未提交"), + + UNDER_REVIEW(1,"审核中"), + + APPROVED(2,"通过"); + + + /** + * 值 + */ + private final Integer value; + + /** + * 描述 + */ + private final String description; + +} diff --git a/kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/enums/PushConcernTypeEnum.java b/kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/enums/PushConcernTypeEnum.java new file mode 100644 index 00000000..217596c5 --- /dev/null +++ b/kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/enums/PushConcernTypeEnum.java @@ -0,0 +1,31 @@ +package com.cloud.kicc.commonbiz.api.enums; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +/** + *

+ * 推送关注类型 + *

+ * + * @Author: wangxiang4 + * @since: 2023/4/21 + */ +@Getter +@RequiredArgsConstructor +public enum PushConcernTypeEnum { + + DEFAULT("0","默认类型"), + INTERNAL_COMPANY("1","内部企业"); + + /** + * 值 + */ + private final String value; + + /** + * 描述 + */ + private final String description; + +} diff --git a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/enums/UserTypeEnum.java b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/enums/UserTypeEnum.java new file mode 100644 index 00000000..99e5d5e3 --- /dev/null +++ b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/enums/UserTypeEnum.java @@ -0,0 +1,36 @@ +package com.cloud.kicc.system.api.enums; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +/** + *

+ * 用户类型枚举 + *

+ * + * @Author: wangxiang4 + * @since: 2023/4/21 + */ +@Getter +@RequiredArgsConstructor +public enum UserTypeEnum { + + + ADMIN("0", "系统管理员"), + NORMAL_USER("1", "普通用户"), + ENTERPRISE_USER("2", "企业用户"), + SAMPLE_COLLECTOR("3", "收样员"), + CUSTOMER_SERVICE("4", "客服"), + INTERNAL_USER("5", "企业内部用户"); + + /** + * 值 + */ + private final String value; + + /** + * 描述 + */ + private final String description; + +} diff --git a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushApplicationController.java b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushApplicationController.java index ed8a4a0e..0051646e 100644 --- a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushApplicationController.java +++ b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushApplicationController.java @@ -15,8 +15,10 @@ import com.cloud.kicc.common.security.util.SecurityUtils; import com.cloud.kicc.commonbiz.api.entity.PushApplication; import com.cloud.kicc.commonbiz.api.entity.PushChatMessage; import com.cloud.kicc.commonbiz.api.entity.PushEnterprise; +import com.cloud.kicc.commonbiz.api.enums.PushAuditStatusEnum; import com.cloud.kicc.commonbiz.service.IPushApplicationService; import com.cloud.kicc.commonbiz.service.IPushEnterpriseService; +import com.cloud.kicc.system.api.enums.UserTypeEnum; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; @@ -67,9 +69,11 @@ public class PushApplicationController { @PostMapping("/save") public R save(@Valid @RequestBody PushApplication pushApplication) { // 企业用户需要验证是否进行企业认证 - if (StrUtil.equals(SecurityUtils.getUser().getUserType(), "2") && - iPushEnterpriseService.count(Wrappers.lambdaQuery().eq(PushEnterprise::getUserId, SecurityUtils.getUser().getId())) == 0){ - throw new CheckedException("当前企业用户未进行企业认证,请认证后在试!"); + if (StrUtil.equals(SecurityUtils.getUser().getUserType(), UserTypeEnum.ENTERPRISE_USER.getValue()) && + iPushEnterpriseService.count(Wrappers.lambdaQuery() + .eq(PushEnterprise::getStatus, PushAuditStatusEnum.APPROVED.getValue()) + .eq(PushEnterprise::getUserId, SecurityUtils.getUser().getId())) == 0){ + throw new CheckedException("该企业用户未进行企业认证,禁止操作!"); } pushApplication.setMessageSecret(UUID.randomUUID().toString().replace("-","")); iPushApplicationService.save(pushApplication); 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 8cc871f8..f7629e20 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 @@ -7,8 +7,9 @@ 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.common.security.util.SecurityUtils; import com.cloud.kicc.commonbiz.api.entity.*; +import com.cloud.kicc.commonbiz.api.enums.PushAuditStatusEnum; +import com.cloud.kicc.commonbiz.api.enums.PushConcernTypeEnum; import com.cloud.kicc.commonbiz.service.*; import com.cloud.kicc.system.api.entity.User; import io.swagger.annotations.Api; @@ -70,12 +71,12 @@ public class PushConcernFanController { public R save(@Valid @RequestBody PushConcernFan pushConcernFan) { // 关注可以重复申请,后者信息覆盖前者信息需先删除前者的关注数据 iPushConcernFanService.remove(Wrappers.lambdaQuery() - .eq(PushConcernFan::getStatus, 0) + .in(PushConcernFan::getStatus, PushAuditStatusEnum.NOT_APPLIED.getValue(), PushAuditStatusEnum.UNDER_REVIEW.getValue()) .eq(PushConcernFan::getFanUserId, pushConcernFan.getFanUserId()) .eq(PushConcernFan::getConcernUserId, pushConcernFan.getConcernUserId())); iPushConcernFanService.save(pushConcernFan); // 同步推送类型 - if (pushConcernFan.getStatus() == 1) { + if (pushConcernFan.getStatus() == PushAuditStatusEnum.APPROVED.getValue()) { List pushTypes = iPushTypeService.list(Wrappers.lambdaQuery().eq(PushType::getCreateById, pushConcernFan.getConcernUserId())); List pushConcernFanTypes = pushTypes.stream().map(item -> new PushConcernFanType() .setName(item.getName()) @@ -113,8 +114,8 @@ public class PushConcernFanController { PushConcernFan pushConcernFan = new PushConcernFan(); pushConcernFan.setFanUserId(item.getId()); pushConcernFan.setConcernUserId(innerEnterpriseUserId); - pushConcernFan.setType("1"); - pushConcernFan.setStatus(1); + pushConcernFan.setType(PushConcernTypeEnum.INTERNAL_COMPANY.getValue()); + pushConcernFan.setStatus(PushAuditStatusEnum.APPROVED.getValue()); iPushConcernFanService.save(pushConcernFan); }); return R.ok(); @@ -127,7 +128,7 @@ public class PushConcernFanController { .set(PushConcernFan::getStatus, status) .eq(PushConcernFan::getId, id)); // 同步推送类型 - if (status == 1) { + if (status == PushAuditStatusEnum.APPROVED.getValue()) { PushConcernFan pushConcernFan = iPushConcernFanService.getById(id); List pushTypes = iPushTypeService.list(Wrappers.lambdaQuery() .eq(PushType::getCreateById, pushConcernFan.getConcernUserId())); @@ -154,7 +155,7 @@ public class PushConcernFanController { @PutMapping("/rejectAuth/{ids:[\\w,]+}") public R rejectAuth(@PathVariable String[] ids) { iPushConcernFanService.update(Wrappers.lambdaUpdate() - .set(PushConcernFan::getStatus, -1) + .set(PushConcernFan::getStatus, PushAuditStatusEnum.REJECTED.getValue()) .in(PushConcernFan::getId, ids)); return R.ok(true); } diff --git a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushEnterpriseController.java b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushEnterpriseController.java index 38a61f47..348ff350 100644 --- a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushEnterpriseController.java +++ b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushEnterpriseController.java @@ -12,7 +12,9 @@ import com.cloud.kicc.common.core.constant.AppConstants; import com.cloud.kicc.common.core.exception.CheckedException; import com.cloud.kicc.common.security.util.SecurityUtils; import com.cloud.kicc.commonbiz.api.entity.PushEnterprise; +import com.cloud.kicc.commonbiz.api.enums.PushAuditStatusEnum; import com.cloud.kicc.commonbiz.service.IPushEnterpriseService; +import com.cloud.kicc.system.api.enums.UserTypeEnum; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; @@ -68,12 +70,12 @@ public class PushEnterpriseController { @PostMapping("/save") public R save(@Valid @RequestBody PushEnterprise pushEnterprise) { // 限制只能有企业用户进行认证 - if (!StrUtil.equals(SecurityUtils.getUser().getUserType(), "2")) { + if (!StrUtil.equals(SecurityUtils.getUser().getUserType(), UserTypeEnum.ENTERPRISE_USER.getValue())) { throw new CheckedException("当前用户不是企业用户请用企业用户登录后重试!"); } if(iPushEnterpriseService.count(Wrappers.lambdaQuery() .eq(PushEnterprise::getUserId, SecurityUtils.getUser().getId())) > 0) { - throw new CheckedException("当前企业用户下已经存在认证数据!"); + throw new CheckedException("该企业用户下已经存在认证数据!"); } if (StrUtil.isBlank(pushEnterprise.getUserId())) pushEnterprise.setUserId(SecurityUtils.getUser().getId()); iPushEnterpriseService.save(pushEnterprise); @@ -98,7 +100,7 @@ public class PushEnterpriseController { @PutMapping("/rejectAuth/{ids:[\\w,]+}") public R rejectAuth(@PathVariable String[] ids) { iPushEnterpriseService.update(Wrappers.lambdaUpdate() - .set(PushEnterprise::getStatus, -1) + .set(PushEnterprise::getStatus, PushAuditStatusEnum.REJECTED.getValue()) .in(PushEnterprise::getId, ids)); return R.ok(true); } diff --git a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/PushApplicationServiceImpl.java b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/PushApplicationServiceImpl.java index 32cb5a94..0bb64e8f 100644 --- a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/PushApplicationServiceImpl.java +++ b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/PushApplicationServiceImpl.java @@ -1,6 +1,7 @@ package com.cloud.kicc.commonbiz.service.impl; import cn.hutool.core.date.LocalDateTimeUtil; +import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.BooleanUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.extra.servlet.ServletUtil; @@ -14,10 +15,12 @@ import com.cloud.kicc.common.core.exception.CheckedException; 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.api.enums.PushAuditStatusEnum; import com.cloud.kicc.commonbiz.mapper.PushApplicationMapper; import com.cloud.kicc.commonbiz.service.*; import com.cloud.kicc.commonbiz.util.PushClientUtil; import com.cloud.kicc.system.api.entity.User; +import com.cloud.kicc.system.api.enums.UserTypeEnum; import com.cloud.kicc.system.api.feign.RemoteUserService; import lombok.RequiredArgsConstructor; import okhttp3.OkHttpClient; @@ -55,7 +58,6 @@ public class PushApplicationServiceImpl extends ServiceImpl result = remoteUserService.selectByUserId(pushChatMessage.getUserId(), SecurityConstants.FROM_IN); - if (result == null || result.getData() == null) { - throw new CheckedException("用户不存在"); + SecurityUtils.openInterfaceTemporaryLoginSession(pushChatMessage.getUserId()); + if (!ArrayUtil.contains(new String[]{ UserTypeEnum.ENTERPRISE_USER.getValue(), UserTypeEnum.INTERNAL_USER.getValue() }, SecurityUtils.getUser().getUserType())) { + throw new CheckedException("该用户不是企业用户,禁止操作!"); } - // todo: // 待处理需要统一封装公开接口用户信息登录 - User user = result.getData(); - KiccUser kiccUser = new KiccUser( - user.getId(), - user.getDeptId(), - user.getUserName(), - SecurityConstants.BCRYPT + user.getPassword(), - user.getPhone(), - user.getUserType(), - user.getTenantId(), - true, - true, - true, - StrUtil.equals(user.getStatus(), CommonConstants.STATUS_NORMAL), - AuthorityUtils.createAuthorityList(user.getPermissions()) - ); - Authentication authentication = new UsernamePasswordAuthenticationToken(kiccUser, "N/A", kiccUser.getAuthorities()); - SecurityContextHolder.getContext().setAuthentication(authentication); - - // todo: // 待处理需要使用枚举规范用户类型参数,不好维护 - if (!StrUtil.equals(SecurityUtils.getUser().getUserType(), "2") && - !StrUtil.equals(SecurityUtils.getUser().getUserType(), "5")) { - throw new CheckedException("当前用户不是企业用户,禁止操作!"); - } - - if (StrUtil.equals(SecurityUtils.getUser().getUserType(), "2") && - iPushEnterpriseService.count(Wrappers.lambdaQuery().eq(PushEnterprise::getUserId, SecurityUtils.getUser().getId())) == 0){ - throw new CheckedException("当前企业用户未进行企业认证,请认证后在试!"); + if (StrUtil.equals(SecurityUtils.getUser().getUserType(), UserTypeEnum.ENTERPRISE_USER.getValue()) && + iPushEnterpriseService.count(Wrappers.lambdaQuery() + .eq(PushEnterprise::getStatus, PushAuditStatusEnum.APPROVED.getValue()) + .eq(PushEnterprise::getUserId, SecurityUtils.getUser().getId())) == 0){ + throw new CheckedException("该企业用户未进行企业认证,禁止操作!"); } PushApplication pushApplication = baseMapper.selectOne(Wrappers.lambdaQuery() 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 d7fc454d..4a99a339 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 @@ -1,7 +1,9 @@ package com.cloud.kicc.system.controller; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.EnumUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -21,6 +23,7 @@ import com.cloud.kicc.system.api.entity.Menu; 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.api.vo.ResultVo; import com.cloud.kicc.system.service.MenuService; import com.cloud.kicc.system.service.RoleService; @@ -92,6 +95,18 @@ public class UserController { return R.ok(userService.getCurrentUserInfo()); } + @GetMapping("/getUserTypeList") + public R getUserTypeList() { + List> result = CollectionUtil.newArrayList(); + for (UserTypeEnum userTypeEnum : UserTypeEnum.values()) { + Map select = MapUtil.newHashMap(); + select.put("value", userTypeEnum.getValue()); + select.put("label", userTypeEnum.getDescription()); + result.add(select); + } + return R.ok(result); + } + @GetMapping("/{id:\\w+}") public R getById(@PathVariable("id") String id) { User user = userService.getById(id); @@ -137,24 +152,8 @@ public class UserController { @SysLog("新增外部系统用户") @PostMapping("/saveExternalUser") public R saveExternalUser(@RequestBody User externalUser) { - User user = userService.getById("1510539584287346688"); - userService.getUserAuthority(user); - KiccUser kiccUser = new KiccUser( - user.getId(), - user.getDeptId(), - user.getUserName(), - SecurityConstants.BCRYPT + user.getPassword(), - user.getPhone(), - user.getUserType(), - user.getTenantId(), - true, - true, - true, - StrUtil.equals(user.getStatus(), CommonConstants.STATUS_NORMAL), - AuthorityUtils.createAuthorityList(user.getPermissions()) - ); - Authentication authentication = new UsernamePasswordAuthenticationToken(kiccUser, "N/A", kiccUser.getAuthorities()); - SecurityContextHolder.getContext().setAuthentication(authentication); + // todo: 使用管理员临时ID,需调整 + SecurityUtils.openInterfaceTemporaryLoginSession("1510539584287346688"); externalUser.setPassword(ENCODER.encode(externalUser.getPassword())); userService.saveUser(externalUser); return R.ok(externalUser);