From 89488ad059f74dcdb59c70e9c87d7af51f680112 Mon Sep 17 00:00:00 2001 From: wangxiang <1827945911@qq.com> Date: Thu, 23 Feb 2023 04:14:26 +0800 Subject: [PATCH] =?UTF-8?q?:rocket:=20=E4=BC=81=E4=B8=9A=E8=AE=A4=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/exception/CommonException.java | 34 ------------------- .../handle/GlobalBizExceptionHandler.java | 6 ++-- .../controller/PushThirdPartyController.java | 19 +++++++++-- .../impl/MapLogisticSseServiceImpl.java | 8 ++--- .../system/service/impl/UserServiceImpl.java | 8 ++--- 5 files changed, 27 insertions(+), 48 deletions(-) delete mode 100644 kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/exception/CommonException.java diff --git a/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/exception/CommonException.java b/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/exception/CommonException.java deleted file mode 100644 index ad188d3e..00000000 --- a/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/exception/CommonException.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.cloud.kicc.common.core.exception; - -import lombok.NoArgsConstructor; - -/** - *

- * 通用前端提示自定义异常信息 - *

- * - * @Author: entfrm开发团队-王翔 - * @Date: 2022/2/18 - */ -@NoArgsConstructor -public class CommonException extends RuntimeException { - - private static final long serialVersionUID = 1L; - - public CommonException(String message) { - super(message); - } - - public CommonException(Throwable cause) { - super(cause); - } - - public CommonException(String message, Throwable cause) { - super(message, cause); - } - - public CommonException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { - super(message, cause, enableSuppression, writableStackTrace); - } - -} diff --git a/kicc-common/kicc-common-feign/src/main/java/com/cloud/kicc/common/feign/sentinel/handle/GlobalBizExceptionHandler.java b/kicc-common/kicc-common-feign/src/main/java/com/cloud/kicc/common/feign/sentinel/handle/GlobalBizExceptionHandler.java index 6c187ba3..822c89f2 100644 --- a/kicc-common/kicc-common-feign/src/main/java/com/cloud/kicc/common/feign/sentinel/handle/GlobalBizExceptionHandler.java +++ b/kicc-common/kicc-common-feign/src/main/java/com/cloud/kicc/common/feign/sentinel/handle/GlobalBizExceptionHandler.java @@ -2,7 +2,7 @@ package com.cloud.kicc.common.feign.sentinel.handle; import com.alibaba.csp.sentinel.Tracer; import com.cloud.kicc.common.core.api.R; -import com.cloud.kicc.common.core.exception.CommonException; +import com.cloud.kicc.common.core.exception.CheckedException; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; import org.springframework.http.HttpStatus; @@ -52,9 +52,9 @@ public class GlobalBizExceptionHandler { * @param e the e * @return R */ - @ExceptionHandler(CommonException.class) + @ExceptionHandler(CheckedException.class) @ResponseStatus(HttpStatus.NETWORK_AUTHENTICATION_REQUIRED) - public R handleGlobalCommonException(CommonException e) { + public R handleGlobalCommonException(CheckedException e) { log.error("自定义异常信息 ex={}", e.getMessage(), e); // 业务异常交由 sentinel 记录 diff --git a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushThirdPartyController.java b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushThirdPartyController.java index f9007217..3ce70cb8 100644 --- a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushThirdPartyController.java +++ b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushThirdPartyController.java @@ -3,11 +3,13 @@ package com.cloud.kicc.commonbiz.controller; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; 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.core.exception.CheckedException; import com.cloud.kicc.common.security.util.SecurityUtils; import com.cloud.kicc.commonbiz.api.entity.PushThirdParty; import com.cloud.kicc.commonbiz.service.IPushThirdPartyService; @@ -30,7 +32,7 @@ import java.util.Arrays; @RestController @RequestMapping(AppConstants.APP_COMMON + "/pushThirdParty") @RequiredArgsConstructor -@Api(tags = "第三方推送信息") +@Api(tags = "第三方认证") public class PushThirdPartyController { private final IPushThirdPartyService iPushThirdPartyService; @@ -63,7 +65,12 @@ public class PushThirdPartyController { @ApiOperation("保存") @PostMapping("/save") public R save(@Valid @RequestBody PushThirdParty pushThirdParty) { - if (StrUtil.isBlank(pushThirdParty.getUserId())) pushThirdParty.setUserId(SecurityUtils.getUser().getId()); + if(iPushThirdPartyService.count(Wrappers.lambdaQuery() + .eq(PushThirdParty::getUserId, SecurityUtils.getUser().getId())) > 0) { + throw new CheckedException("当前已经存在认证申请不能重复申请!"); + } + if (StrUtil.isBlank(pushThirdParty.getUserId())) + pushThirdParty.setUserId(SecurityUtils.getUser().getId()); iPushThirdPartyService.save(pushThirdParty); return R.ok(); } @@ -82,5 +89,13 @@ public class PushThirdPartyController { return R.ok(); } + @ApiOperation("撤销申请") + @DeleteMapping("/revokeAuth") + public R revokeAuth() { + iPushThirdPartyService.remove(Wrappers.lambdaQuery() + .eq(PushThirdParty::getUserId, SecurityUtils.getUser().getId())); + return R.ok(); + } + } diff --git a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/MapLogisticSseServiceImpl.java b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/MapLogisticSseServiceImpl.java index d778c5b7..ed4cbdeb 100644 --- a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/MapLogisticSseServiceImpl.java +++ b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/MapLogisticSseServiceImpl.java @@ -2,7 +2,7 @@ package com.cloud.kicc.commonbiz.service.impl; import cn.hutool.core.collection.ConcurrentHashSet; import cn.hutool.core.util.StrUtil; -import com.cloud.kicc.common.core.exception.CommonException; +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.SseSignalContainer; @@ -49,7 +49,7 @@ public class MapLogisticSseServiceImpl implements IMapLogisticSseService { @SneakyThrows public SseEmitter SseSubscribe(String clientId) { KiccUser kiccUser = getUser(); - Optional.ofNullable(clientId).orElseThrow(() -> new CommonException("当前客户端Id为空,请检查后重试!")); + Optional.ofNullable(clientId).orElseThrow(() -> new CheckedException("当前客户端Id为空,请检查后重试!")); // 设置超时时间为1小时 SseEmitter sseEmitter = new SseEmitter(3600_000L); SseSignalContainer sseSignalContainer =new SseSignalContainer( @@ -96,7 +96,7 @@ public class MapLogisticSseServiceImpl implements IMapLogisticSseService { @Override public void disconnect(String clientId) { KiccUser kiccUser = getUser(); - Optional.ofNullable(clientId).orElseThrow(() -> new CommonException("当前客户端Id为空,请检查后重试!")); + Optional.ofNullable(clientId).orElseThrow(() -> new CheckedException("当前客户端Id为空,请检查后重试!")); Set sendSseSignalContainers = sseSignalContainers.stream() .filter(item -> StrUtil.equals(item.getClientId(), clientId) && StrUtil.equals(item.getTenantId(), kiccUser.getTenantId())) .collect(Collectors.toSet()); @@ -156,7 +156,7 @@ public class MapLogisticSseServiceImpl implements IMapLogisticSseService { private KiccUser getUser() { KiccUser kiccUser = SecurityUtils.getUser(); - Optional.ofNullable(kiccUser).orElseThrow(() -> new CommonException("当前用户登录,请先登录后重试!")); + Optional.ofNullable(kiccUser).orElseThrow(() -> new CheckedException("当前用户登录,请先登录后重试!")); return kiccUser; } 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 0c7ac04d..185ecf84 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 @@ -6,10 +6,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.core.constant.SecurityConstants; import com.cloud.kicc.common.core.exception.CheckedException; -import com.cloud.kicc.common.core.exception.CommonException; import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.common.security.util.SecurityUtils; import com.cloud.kicc.system.api.entity.Dept; @@ -106,7 +104,7 @@ public class UserServiceImpl extends ServiceImpl implements Us }); // 检测多租户信息是否存在,不存在抛出异常 if (tenantCode.size() == 0) { - throw new CommonException("当前用户多租户不存在,请联系统管理员检查多租户是否过期或者冻结!"); + throw new CheckedException("当前用户多租户不存在,请联系统管理员检查多租户是否过期或者冻结!"); } user.setTenantId(String.join(",", tenantCode)); user.setPermissions(ArrayUtil.toArray(permissions, String.class)); @@ -118,7 +116,7 @@ public class UserServiceImpl extends ServiceImpl implements Us User user = super.getOne(Wrappers.query().lambda().eq(User::getId, SecurityUtils.getUser().getId())); this.getUserAuthority(user); if (user == null) { - throw new CommonException("用户信息为空,请检查当前多租户下是否有当前用户信息!"); + throw new CheckedException("用户信息为空,请检查当前多租户下是否有当前用户信息!"); } return user; } @@ -127,7 +125,7 @@ public class UserServiceImpl extends ServiceImpl implements Us public void setCurrentUserTenant(String... tenantIds) { Authentication currentAuthentication = SecurityContextHolder.getContext().getAuthentication(); if (currentAuthentication == null) { - new CommonException("当前用户未登录,请登录后重试!"); + new CheckedException("当前用户未登录,请登录后重试!"); } OAuth2Authentication oAuth2Authentication = (OAuth2Authentication) currentAuthentication; OAuth2AccessToken accessToken = tokenStore.getAccessToken(oAuth2Authentication);