Browse Source

🚀 企业认证

master
wangxiang 2 years ago
parent
commit
89488ad059
  1. 34
      kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/exception/CommonException.java
  2. 6
      kicc-common/kicc-common-feign/src/main/java/com/cloud/kicc/common/feign/sentinel/handle/GlobalBizExceptionHandler.java
  3. 19
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushThirdPartyController.java
  4. 8
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/MapLogisticSseServiceImpl.java
  5. 8
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/UserServiceImpl.java

34
kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/exception/CommonException.java

@ -1,34 +0,0 @@
package com.cloud.kicc.common.core.exception;
import lombok.NoArgsConstructor;
/**
*<p>
* 通用前端提示自定义异常信息
*</p>
*
* @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);
}
}

6
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.alibaba.csp.sentinel.Tracer;
import com.cloud.kicc.common.core.api.R; 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 lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
@ -52,9 +52,9 @@ public class GlobalBizExceptionHandler {
* @param e the e * @param e the e
* @return R * @return R
*/ */
@ExceptionHandler(CommonException.class) @ExceptionHandler(CheckedException.class)
@ResponseStatus(HttpStatus.NETWORK_AUTHENTICATION_REQUIRED) @ResponseStatus(HttpStatus.NETWORK_AUTHENTICATION_REQUIRED)
public R handleGlobalCommonException(CommonException e) { public R handleGlobalCommonException(CheckedException e) {
log.error("自定义异常信息 ex={}", e.getMessage(), e); log.error("自定义异常信息 ex={}", e.getMessage(), e);
// 业务异常交由 sentinel 记录 // 业务异常交由 sentinel 记录

19
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 cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cloud.kicc.common.core.api.R; import com.cloud.kicc.common.core.api.R;
import com.cloud.kicc.common.core.constant.AppConstants; 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.common.security.util.SecurityUtils;
import com.cloud.kicc.commonbiz.api.entity.PushThirdParty; import com.cloud.kicc.commonbiz.api.entity.PushThirdParty;
import com.cloud.kicc.commonbiz.service.IPushThirdPartyService; import com.cloud.kicc.commonbiz.service.IPushThirdPartyService;
@ -30,7 +32,7 @@ import java.util.Arrays;
@RestController @RestController
@RequestMapping(AppConstants.APP_COMMON + "/pushThirdParty") @RequestMapping(AppConstants.APP_COMMON + "/pushThirdParty")
@RequiredArgsConstructor @RequiredArgsConstructor
@Api(tags = "第三方推送信息") @Api(tags = "第三方认证")
public class PushThirdPartyController { public class PushThirdPartyController {
private final IPushThirdPartyService iPushThirdPartyService; private final IPushThirdPartyService iPushThirdPartyService;
@ -63,7 +65,12 @@ public class PushThirdPartyController {
@ApiOperation("保存") @ApiOperation("保存")
@PostMapping("/save") @PostMapping("/save")
public R save(@Valid @RequestBody PushThirdParty pushThirdParty) { public R save(@Valid @RequestBody PushThirdParty pushThirdParty) {
if (StrUtil.isBlank(pushThirdParty.getUserId())) pushThirdParty.setUserId(SecurityUtils.getUser().getId()); if(iPushThirdPartyService.count(Wrappers.<PushThirdParty>lambdaQuery()
.eq(PushThirdParty::getUserId, SecurityUtils.getUser().getId())) > 0) {
throw new CheckedException("当前已经存在认证申请不能重复申请!");
}
if (StrUtil.isBlank(pushThirdParty.getUserId()))
pushThirdParty.setUserId(SecurityUtils.getUser().getId());
iPushThirdPartyService.save(pushThirdParty); iPushThirdPartyService.save(pushThirdParty);
return R.ok(); return R.ok();
} }
@ -82,5 +89,13 @@ public class PushThirdPartyController {
return R.ok(); return R.ok();
} }
@ApiOperation("撤销申请")
@DeleteMapping("/revokeAuth")
public R<Boolean> revokeAuth() {
iPushThirdPartyService.remove(Wrappers.<PushThirdParty>lambdaQuery()
.eq(PushThirdParty::getUserId, SecurityUtils.getUser().getId()));
return R.ok();
}
} }

8
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.collection.ConcurrentHashSet;
import cn.hutool.core.util.StrUtil; 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.data.entity.KiccUser;
import com.cloud.kicc.common.security.util.SecurityUtils; import com.cloud.kicc.common.security.util.SecurityUtils;
import com.cloud.kicc.commonbiz.api.entity.SseSignalContainer; import com.cloud.kicc.commonbiz.api.entity.SseSignalContainer;
@ -49,7 +49,7 @@ public class MapLogisticSseServiceImpl implements IMapLogisticSseService {
@SneakyThrows @SneakyThrows
public SseEmitter SseSubscribe(String clientId) { public SseEmitter SseSubscribe(String clientId) {
KiccUser kiccUser = getUser(); KiccUser kiccUser = getUser();
Optional.ofNullable(clientId).orElseThrow(() -> new CommonException("当前客户端Id为空,请检查后重试!")); Optional.ofNullable(clientId).orElseThrow(() -> new CheckedException("当前客户端Id为空,请检查后重试!"));
// 设置超时时间为1小时 // 设置超时时间为1小时
SseEmitter sseEmitter = new SseEmitter(3600_000L); SseEmitter sseEmitter = new SseEmitter(3600_000L);
SseSignalContainer sseSignalContainer =new SseSignalContainer( SseSignalContainer sseSignalContainer =new SseSignalContainer(
@ -96,7 +96,7 @@ public class MapLogisticSseServiceImpl implements IMapLogisticSseService {
@Override @Override
public void disconnect(String clientId) { public void disconnect(String clientId) {
KiccUser kiccUser = getUser(); KiccUser kiccUser = getUser();
Optional.ofNullable(clientId).orElseThrow(() -> new CommonException("当前客户端Id为空,请检查后重试!")); Optional.ofNullable(clientId).orElseThrow(() -> new CheckedException("当前客户端Id为空,请检查后重试!"));
Set<SseSignalContainer> sendSseSignalContainers = sseSignalContainers.stream() Set<SseSignalContainer> sendSseSignalContainers = sseSignalContainers.stream()
.filter(item -> StrUtil.equals(item.getClientId(), clientId) && StrUtil.equals(item.getTenantId(), kiccUser.getTenantId())) .filter(item -> StrUtil.equals(item.getClientId(), clientId) && StrUtil.equals(item.getTenantId(), kiccUser.getTenantId()))
.collect(Collectors.toSet()); .collect(Collectors.toSet());
@ -156,7 +156,7 @@ public class MapLogisticSseServiceImpl implements IMapLogisticSseService {
private KiccUser getUser() { private KiccUser getUser() {
KiccUser kiccUser = SecurityUtils.getUser(); KiccUser kiccUser = SecurityUtils.getUser();
Optional.ofNullable(kiccUser).orElseThrow(() -> new CommonException("当前用户登录,请先登录后重试!")); Optional.ofNullable(kiccUser).orElseThrow(() -> new CheckedException("当前用户登录,请先登录后重试!"));
return kiccUser; return kiccUser;
} }

8
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.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.constant.SecurityConstants;
import com.cloud.kicc.common.core.exception.CheckedException; 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.data.entity.KiccUser;
import com.cloud.kicc.common.security.util.SecurityUtils; import com.cloud.kicc.common.security.util.SecurityUtils;
import com.cloud.kicc.system.api.entity.Dept; import com.cloud.kicc.system.api.entity.Dept;
@ -106,7 +104,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
}); });
// 检测多租户信息是否存在,不存在抛出异常 // 检测多租户信息是否存在,不存在抛出异常
if (tenantCode.size() == 0) { if (tenantCode.size() == 0) {
throw new CommonException("当前用户多租户不存在,请联系统管理员检查多租户是否过期或者冻结!"); throw new CheckedException("当前用户多租户不存在,请联系统管理员检查多租户是否过期或者冻结!");
} }
user.setTenantId(String.join(",", tenantCode)); user.setTenantId(String.join(",", tenantCode));
user.setPermissions(ArrayUtil.toArray(permissions, String.class)); user.setPermissions(ArrayUtil.toArray(permissions, String.class));
@ -118,7 +116,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
User user = super.getOne(Wrappers.<User>query().lambda().eq(User::getId, SecurityUtils.getUser().getId())); User user = super.getOne(Wrappers.<User>query().lambda().eq(User::getId, SecurityUtils.getUser().getId()));
this.getUserAuthority(user); this.getUserAuthority(user);
if (user == null) { if (user == null) {
throw new CommonException("用户信息为空,请检查当前多租户下是否有当前用户信息!"); throw new CheckedException("用户信息为空,请检查当前多租户下是否有当前用户信息!");
} }
return user; return user;
} }
@ -127,7 +125,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
public void setCurrentUserTenant(String... tenantIds) { public void setCurrentUserTenant(String... tenantIds) {
Authentication currentAuthentication = SecurityContextHolder.getContext().getAuthentication(); Authentication currentAuthentication = SecurityContextHolder.getContext().getAuthentication();
if (currentAuthentication == null) { if (currentAuthentication == null) {
new CommonException("当前用户未登录,请登录后重试!"); new CheckedException("当前用户未登录,请登录后重试!");
} }
OAuth2Authentication oAuth2Authentication = (OAuth2Authentication) currentAuthentication; OAuth2Authentication oAuth2Authentication = (OAuth2Authentication) currentAuthentication;
OAuth2AccessToken accessToken = tokenStore.getAccessToken(oAuth2Authentication); OAuth2AccessToken accessToken = tokenStore.getAccessToken(oAuth2Authentication);

Loading…
Cancel
Save