3235f0b9 by xu

可信空间连接器入住接口

1 parent 06ecf3b7
......@@ -84,6 +84,13 @@ public class TdsConnectorIdentityController {
return CommonRes.success(true);
}
@GetMapping("/get-effective-connector")
@SystemLog(value = "连接器身份信息-查询有效的连接器信息")
public CommonRes<TdsConnectorIdentityRSVO> getEffectiveConnector() {
TdsConnectorIdentityRSVO vo = tdsConnectorIdentityService.getEffectiveConnector();
return CommonRes.success(vo);
}
//endregion
}
......
package com.csbr.qingcloud.portal.domain.vo;
import com.alibaba.fastjson.JSONArray;
import com.csbr.cloud.common.annotations.SystemParamsDict;
import io.swagger.v3.oas.annotations.media.Schema;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
......@@ -34,6 +35,14 @@ public class TdsConnectorIdentityManagementRSVO {
*/
@Schema(description = "使用场景(数据字典使用场景)")
private String useScenariosCode;
/**
* 使用场景名称
*/
@Schema(description = "使用场景")
@SystemParamsDict(dictTypeName = "可信空间使用场景",codeFieldName = "useScenariosCode")
private String useScenariosName;
/**
* 期望效期
......
......@@ -3,6 +3,7 @@ package com.csbr.qingcloud.portal.mybatis.entity;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import csbr.cloud.entity.domain.base.dao.BaseDO;
import csbr.cloud.entity.domain.base.dao.BaseShardingDO;
import jdk.jfr.Name;
import lombok.Data;
import lombok.EqualsAndHashCode;
......@@ -19,13 +20,7 @@ import java.util.Date;
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@Name("连接器附加信息")
public class MfTdsConnectorAdditional extends BaseDO {
/**
* 会员Guid
*/
@Name("会员Guid")
private String tenantGuid;
public class MfTdsConnectorAdditional extends BaseShardingDO {
/**
* 连接器Guid
......
......@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import csbr.cloud.entity.domain.base.dao.BaseDO;
import csbr.cloud.entity.domain.base.dao.BaseShardingDO;
import jdk.jfr.Name;
import lombok.Data;
import lombok.EqualsAndHashCode;
......@@ -24,13 +25,7 @@ import java.util.List;
@Accessors(chain = true)
@Name("连接器身份信息")
@TableName(autoResultMap = true)
public class MfTdsConnectorIdentity extends BaseDO {
/**
* 会员Guid
*/
@Name("会员Guid")
private String tenantGuid;
public class MfTdsConnectorIdentity extends BaseShardingDO {
/**
* 接入连接器名称
......@@ -80,6 +75,7 @@ public class MfTdsConnectorIdentity extends BaseDO {
* 可信身份凭证
*/
@Name("可信身份凭证")
@TableField(typeHandler = FastjsonTypeHandler.class)
private JSONArray trustedIdentityCredential;
/**
......
......@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import csbr.cloud.entity.domain.base.dao.BaseDO;
import csbr.cloud.entity.domain.base.dao.BaseShardingDO;
import jdk.jfr.Name;
import lombok.Data;
import lombok.EqualsAndHashCode;
......@@ -22,7 +23,7 @@ import java.util.Date;
@Accessors(chain = true)
@Name("连接器身份管理")
@TableName(autoResultMap = true)
public class MfTdsConnectorIdentityManagement extends BaseDO {
public class MfTdsConnectorIdentityManagement extends BaseShardingDO {
/**
* 节点Guid
......
......@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import csbr.cloud.entity.domain.base.dao.BaseDO;
import csbr.cloud.entity.domain.base.dao.BaseShardingDO;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import jdk.jfr.Name;
......@@ -27,13 +28,7 @@ import java.util.Map;
@Accessors(chain = true)
@Name("连接器可验信息")
@TableName(autoResultMap = true)
public class MfTdsConnectorVerifiable extends BaseDO {
/**
* 会员Guid
*/
@Name("会员Guid")
private String tenantGuid;
public class MfTdsConnectorVerifiable extends BaseShardingDO {
/**
* 连接器Guid
......
......@@ -76,4 +76,10 @@ public interface TdsConnectorIdentityService {
* @param bizApproveVO
*/
void flowComplete(BizCallbackDTO bizApproveVO);
/**
* 查询有效的连接器信息
* @return
*/
TdsConnectorIdentityRSVO getEffectiveConnector();
}
......
......@@ -202,7 +202,7 @@ public class TdsConnectorAdditionalServiceImpl implements TdsConnectorAdditional
if(ObjectUtils.isEmpty(connectorGuids)){
return;
}
LambdaUpdateWrapper<MfTdsConnectorAdditional> removeWrapper = Wrappers.lambdaUpdate();
LambdaUpdateWrapper<MfTdsConnectorAdditional> removeWrapper = mfTdsConnectorAdditionalService.csbrUpdateWrapper(MfTdsConnectorAdditional.class);
removeWrapper.in(MfTdsConnectorAdditional::getConnectorGuid,connectorGuids);
mfTdsConnectorAdditionalService.remove(removeWrapper);
}
......
package com.csbr.qingcloud.portal.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.csbr.cloud.common.enums.SystemError;
import com.csbr.cloud.common.enums.WorkFlowBizEnum;
import com.csbr.qingcloud.portal.domain.vo.TdsConnectorIdentityManagementVoucherRQVO;
......@@ -27,6 +29,7 @@ import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import io.seata.spring.annotation.GlobalTransactional;
import org.springframework.transaction.annotation.Transactional;
......@@ -67,6 +70,9 @@ public class TdsConnectorIdentityManagementServiceImpl extends FlowAbstractImpl
@Resource
private MessageSourceUtil messageSourceUtil;
@Value("${csbr.platform-type:''}")
private String platformType;
/**
* 连接器身份管理分页查询
* @author xup
......@@ -82,6 +88,7 @@ public class TdsConnectorIdentityManagementServiceImpl extends FlowAbstractImpl
queryWrapper.in(CollectionUtils.isNotEmpty(queryVO.getGuidList()), MfTdsConnectorIdentityManagement::getGuid,
queryVO.getGuidList());
queryWrapper.orderByDesc(MfTdsConnectorIdentityManagement::getCreateTime);
mfTdsConnectorIdentityManagementService.csbrExcludeShardingLambdaQueryWrapper(queryWrapper);
PageListVO<MfTdsConnectorIdentityManagement> pageList = mfTdsConnectorIdentityManagementService.csbrPageList(queryVO, queryWrapper);
PageListVO<TdsConnectorIdentityManagementRSVO> rsPageList = csbrBeanUtil.convert(pageList, PageListVO.class);
afterQuery(pageList, rsPageList);
......@@ -241,14 +248,8 @@ public class TdsConnectorIdentityManagementServiceImpl extends FlowAbstractImpl
if (ApprovalStateEnum.PASSED.getValue().equals(dto.getApprovalState())) {
// todo
}
// 同步更新审批状态
LambdaUpdateWrapper<MfTdsConnectorIdentityManagement> updateWrapper = mfTdsConnectorIdentityManagementService.csbrUpdateWrapper(MfTdsConnectorIdentityManagement.class);
updateWrapper.set(MfTdsConnectorIdentityManagement::getBizApproveState, dto.getApprovalState());
updateWrapper.eq(MfTdsConnectorIdentityManagement::getGuid, dto.getBizGuid());
boolean flag = mfTdsConnectorIdentityManagementService.update(updateWrapper);
if (!flag) {
throw new CsbrSystemException(SystemError.DATA_UPDATE_ERROR, messageSourceUtil.updateMessage(String.format("%s的业务审批状态", FUNCTION_NAME)));
}
entity.setBizApproveState(dto.getApprovalState());
mfTdsConnectorIdentityManagementService.updateById(entity);
}
@Override
......@@ -301,6 +302,9 @@ public class TdsConnectorIdentityManagementServiceImpl extends FlowAbstractImpl
//region 2.数据验证特殊处理
//region 2.1.业务合规性验证
if("ZQ".equals(platformType)) {
verifyDuplication(rqVO);
}
//endregion 2.1.业务合规性验证
//region 2.2.业务数据验证
......@@ -331,6 +335,29 @@ public class TdsConnectorIdentityManagementServiceImpl extends FlowAbstractImpl
}
/**
* 验证重复
* @param rqVO
*/
private void verifyDuplication(TdsConnectorIdentityManagementRQVO rqVO) {
//验证统一使用场景下是否存在没过期的
//1、验证重复
LambdaQueryWrapper<MfTdsConnectorIdentityManagement> queryWrapper = Wrappers.lambdaQuery(MfTdsConnectorIdentityManagement.class);
if(StringUtils.isNotBlank(rqVO.getGuid())){
queryWrapper.ne(MfTdsConnectorIdentityManagement::getGuid,rqVO.getGuid());
}
//排除驳回、撤回的数据
queryWrapper.notIn(MfTdsConnectorIdentityManagement::getBizApproveState,ApprovalStateEnum.CANCEL.getValue(),
ApprovalStateEnum.REJECT.getValue());
//根据使用场景查询
queryWrapper.eq(MfTdsConnectorIdentityManagement::getUseScenariosCode,rqVO.getUseScenariosCode());
//期望效期有效的
queryWrapper.gt(MfTdsConnectorIdentityManagement::getExpirationTime,new Date());
if(mfTdsConnectorIdentityManagementService.count(queryWrapper)>0){
throw new CsbrSystemException(SystemError.DATA_ALREADY_EXISTS,"该连接器的使用场景已经存在。");
}
}
/**
* 连接器身份管理新增后置处理
* @author xup
* @date 2025-09-23 17:35
......@@ -457,7 +484,7 @@ public class TdsConnectorIdentityManagementServiceImpl extends FlowAbstractImpl
rqQueryVO.setIsNeedQuery(true);
if (approvalFlowUtil.isQueryBizGuid(rqQueryVO)) {
rqQueryVO.setFlowType(FLOW_TYPE);
List<String> bizGuidList = approvalFlowUtil.getApprovalBizGuids(rqQueryVO);
List<String> bizGuidList = approvalFlowUtil.getApprovalCrossTenantBizGuids(rqQueryVO);
if (CollectionUtils.isEmpty(bizGuidList)) {
rqQueryVO.setIsNeedQuery(false);
} else {
......
......@@ -29,6 +29,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -79,6 +80,9 @@ public class TdsConnectorIdentityServiceImpl extends FlowAbstractImpl implements
@Resource
private BizCommonRedisUtil bizCommonRedisUtil;
@Value("${csbr.platform-type:''}")
private String platformType;
/**
* 连接器身份信息分页查询
* @author xup
......@@ -94,6 +98,7 @@ public class TdsConnectorIdentityServiceImpl extends FlowAbstractImpl implements
queryWrapper.in(CollectionUtils.isNotEmpty(queryVO.getGuidList()), MfTdsConnectorIdentity::getGuid,
queryVO.getGuidList());
queryWrapper.orderByDesc(MfTdsConnectorIdentity::getCreateTime);
mfTdsConnectorIdentityService.csbrExcludeShardingLambdaQueryWrapper(queryWrapper);
PageListVO<MfTdsConnectorIdentity> pageList = mfTdsConnectorIdentityService.csbrPageList(queryVO, queryWrapper);
PageListVO<TdsConnectorIdentityRSVO> rsPageList = csbrBeanUtil.convert(pageList, PageListVO.class);
afterQuery(pageList, rsPageList);
......@@ -263,10 +268,19 @@ public class TdsConnectorIdentityServiceImpl extends FlowAbstractImpl implements
throw new CsbrSystemException(SystemError.DATA_NOT_EXISTS, messageSourceUtil.notExistsToSelectMessage(FUNCTION_NAME));
}
// 同步更新审批状态
LambdaUpdateWrapper<MfTdsConnectorIdentity> updateWrapper = mfTdsConnectorIdentityService.csbrUpdateWrapper(MfTdsConnectorIdentity.class);
updateWrapper.set(MfTdsConnectorIdentity::getBizApproveState, bizApproveVO.getApprovalState());
updateWrapper.eq(MfTdsConnectorIdentity::getGuid, bizApproveVO.getBizGuid());
mfTdsConnectorIdentityService.update(updateWrapper);
entity.setBizApproveState(bizApproveVO.getApprovalState());
mfTdsConnectorIdentityService.updateById(entity);
}
@Override
public TdsConnectorIdentityRSVO getEffectiveConnector() {
LambdaQueryWrapper<MfTdsConnectorIdentity> queryWrapper = Wrappers.lambdaQuery();
queryWrapper.eq(MfTdsConnectorIdentity::getBizApproveState,ApprovalStateEnum.PASSED.getValue());
List<MfTdsConnectorIdentity> list = mfTdsConnectorIdentityService.list(queryWrapper);
if(ObjectUtils.isNotEmpty(list)){
return convertToVO(list.get(0));
}
return null;
}
/**
......@@ -289,7 +303,9 @@ public class TdsConnectorIdentityServiceImpl extends FlowAbstractImpl implements
//region 2.2.业务数据验证
//验证接入连接器名称唯一性
verifyUniqueness(rqVO);
if("ZQ".equals(platformType)) {
verifyUniqueness(rqVO);
}
//endregion 2.数据验证特殊处理
//region 3.数据转换处理
......@@ -315,17 +331,15 @@ public class TdsConnectorIdentityServiceImpl extends FlowAbstractImpl implements
}
/**
* 验证接入连接器名称唯一性
* 验证是否已经存在连接器
* @param rqVO
*/
private void verifyUniqueness(TdsConnectorIdentityRQVO rqVO) {
//1、验证是否已经存在连接器
LambdaQueryWrapper<MfTdsConnectorIdentity> queryWrapper = Wrappers.lambdaQuery();
if(StringUtils.isNotBlank(rqVO.getGuid())){
queryWrapper.ne(MfTdsConnectorIdentity::getGuid,rqVO.getGuid());
}
queryWrapper.eq(MfTdsConnectorIdentity::getConnectorName,rqVO.getConnectorName());
queryWrapper.notIn(MfTdsConnectorIdentity::getBizApproveState,ApprovalStateEnum.CANCEL.getValue(),ApprovalStateEnum.REJECT.getValue());
if(mfTdsConnectorIdentityService.count(queryWrapper)>0){
throw new CsbrSystemException(SystemError.DATA_ALREADY_EXISTS,"接入连接器名称已经存在。");
throw new CsbrSystemException(SystemError.DATA_ALREADY_EXISTS,"该企业下已经存在连接器,无法新增。");
}
}
......@@ -379,8 +393,6 @@ public class TdsConnectorIdentityServiceImpl extends FlowAbstractImpl implements
//endregion 2.2.业务数据验证
//endregion 2.数据验证特殊处理
//验证接入连接器名称唯一性
verifyUniqueness(rqVO);
//region 3.数据转换处理
//region 3.1.数据过程转换
......
......@@ -202,7 +202,7 @@ public class TdsConnectorVerifiableServiceImpl implements TdsConnectorVerifiable
if(ObjectUtils.isEmpty(connectorGuids)){
return;
}
LambdaUpdateWrapper<MfTdsConnectorVerifiable> removeWrapper = Wrappers.lambdaUpdate();
LambdaUpdateWrapper<MfTdsConnectorVerifiable> removeWrapper = mfTdsConnectorVerifiableService.csbrUpdateWrapper(MfTdsConnectorVerifiable.class);
removeWrapper.in(MfTdsConnectorVerifiable::getConnectorGuid,connectorGuids);
mfTdsConnectorVerifiableService.remove(removeWrapper);
}
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!