biz-process 部分类的逻辑转写成java
This commit is contained in:
parent
a4c12a7f78
commit
0d6ba0ff33
@ -0,0 +1,17 @@
|
|||||||
|
package cd.casic.ci.common.pipeline.enums;
|
||||||
|
|
||||||
|
public enum AuthSystemType {
|
||||||
|
// v0权限中心
|
||||||
|
V0_AUTH_TYPE("v0"),
|
||||||
|
|
||||||
|
// v3权限中心
|
||||||
|
V3_AUTH_TYPE("v3"),
|
||||||
|
|
||||||
|
// rbac权限中心
|
||||||
|
RBAC_AUTH_TYPE("rbac");
|
||||||
|
private String value;
|
||||||
|
|
||||||
|
AuthSystemType(String value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
package cd.casic.ci.common.pipeline.pojo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Schema(title = "分页数据包装模型")
|
||||||
|
public class Pagination<T> {
|
||||||
|
|
||||||
|
@Schema(title = "是否有下一页", required = true)
|
||||||
|
private boolean hasNext;
|
||||||
|
|
||||||
|
@Schema(title = "数据", required = true)
|
||||||
|
private List<T> records;
|
||||||
|
|
||||||
|
@Schema(title = "总记录行数", required = false)
|
||||||
|
private Long count;
|
||||||
|
}
|
@ -0,0 +1,62 @@
|
|||||||
|
package cd.casic.ci.common.pipeline.pojo.auth;
|
||||||
|
|
||||||
|
|
||||||
|
import cd.casic.ci.common.pipeline.enums.AuthSystemType;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Schema(title = "筛选项目条件实体")
|
||||||
|
public class ProjectConditionDTO {
|
||||||
|
|
||||||
|
@Schema(title = "中心ID")
|
||||||
|
private Long centerId;
|
||||||
|
|
||||||
|
@Schema(title = "部门ID")
|
||||||
|
private Long deptId;
|
||||||
|
|
||||||
|
@Schema(title = "bgId")
|
||||||
|
private Long bgId;
|
||||||
|
|
||||||
|
@Schema(title = "bg列表")
|
||||||
|
private List<Long> bgIdList;
|
||||||
|
|
||||||
|
@Schema(title = "项目创建人")
|
||||||
|
private String projectCreator;
|
||||||
|
|
||||||
|
@Schema(title = "排除项目code")
|
||||||
|
private List<String> excludedProjectCodes;
|
||||||
|
|
||||||
|
@Schema(title = "项目ID列表")
|
||||||
|
private List<String> projectCodes;
|
||||||
|
|
||||||
|
@Schema(title = "资源类型")
|
||||||
|
private String resourceType;
|
||||||
|
|
||||||
|
@Schema(title = "路由tag")
|
||||||
|
private AuthSystemType routerTag;
|
||||||
|
|
||||||
|
@Schema(title = "是否包含router_tag为null")
|
||||||
|
private Boolean includeNullRouterTag = false;
|
||||||
|
|
||||||
|
@Schema(title = "是否关联产品")
|
||||||
|
private Boolean relatedProduct;
|
||||||
|
|
||||||
|
@Schema(title = "排除创建时间大于该值的项目")
|
||||||
|
private String excludedCreateTime;
|
||||||
|
|
||||||
|
@Schema(title = "是否启用")
|
||||||
|
private Boolean enabled;
|
||||||
|
|
||||||
|
@Schema(title = "渠道代码")
|
||||||
|
private String channelCode;
|
||||||
|
|
||||||
|
@Schema(title = "remoteDev相关")
|
||||||
|
private Boolean queryRemoteDevFlag;
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package cd.casic.ci.process.process.event.engine.control;
|
package cd.casic.ci.process.engine.control;
|
||||||
|
|
||||||
|
|
||||||
import cd.casic.ci.common.pipeline.Model;
|
import cd.casic.ci.common.pipeline.Model;
|
||||||
@ -27,9 +27,6 @@ import cd.casic.ci.process.process.service.base.pojo.*;
|
|||||||
import cd.casic.ci.process.process.service.base.pojo.constant.CallbackConstants;
|
import cd.casic.ci.process.process.service.base.pojo.constant.CallbackConstants;
|
||||||
import cd.casic.ci.project.service.ServiceAllocIdResource;
|
import cd.casic.ci.project.service.ServiceAllocIdResource;
|
||||||
import cd.casic.framework.commons.util.watcher.Watcher;
|
import cd.casic.framework.commons.util.watcher.Watcher;
|
||||||
import com.alibaba.fastjson.JSON;
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
||||||
|
|
||||||
|
|
||||||
import io.github.resilience4j.circuitbreaker.CallNotPermittedException;
|
import io.github.resilience4j.circuitbreaker.CallNotPermittedException;
|
@ -0,0 +1,94 @@
|
|||||||
|
package cd.casic.ci.process.process.callback.listener;
|
||||||
|
|
||||||
|
|
||||||
|
import cd.casic.ci.process.engine.control.CallBackControl;
|
||||||
|
import cd.casic.ci.project.dal.pojo.ProjectCreateInfo;
|
||||||
|
import cd.casic.ci.project.dal.pojo.ProjectVO;
|
||||||
|
import cd.casic.ci.project.pojo.ProjectUpdateInfo;
|
||||||
|
import cd.casic.ci.project.pojo.mq.ProjectBroadCastEvent;
|
||||||
|
import cd.casic.ci.project.pojo.mq.ProjectCreateBroadCastEvent;
|
||||||
|
import cd.casic.ci.project.pojo.mq.ProjectEnableStatusBroadCastEvent;
|
||||||
|
import cd.casic.ci.project.pojo.mq.ProjectUpdateBroadCastEvent;
|
||||||
|
import cd.casic.ci.project.service.ProjectService;
|
||||||
|
import cd.casic.framework.mq.redis.core.stream.AbstractRedisStreamMessageListener;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@Slf4j
|
||||||
|
public class ProjectCallbackEventListener extends AbstractRedisStreamMessageListener<ProjectBroadCastEvent> {
|
||||||
|
@Resource
|
||||||
|
private CallBackControl callBackControl;
|
||||||
|
private ProjectService projectService;
|
||||||
|
@Override
|
||||||
|
public void onMessage(ProjectBroadCastEvent event) {
|
||||||
|
log.info("Receive ProjectEvent from MQ [$event]");
|
||||||
|
try {
|
||||||
|
if (event instanceof ProjectUpdateBroadCastEvent) {
|
||||||
|
onReceiveProjectUpdate((ProjectUpdateBroadCastEvent)event);
|
||||||
|
} else if (event instanceof ProjectEnableStatusBroadCastEvent) {
|
||||||
|
onReceiveProjectEnable((ProjectEnableStatusBroadCastEvent)event);
|
||||||
|
} else if (event instanceof ProjectCreateBroadCastEvent) {
|
||||||
|
onReceiveProjectCreate((ProjectCreateBroadCastEvent)event);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("BKSystemMonitor| project callback listener execute error", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 处理创建项目事件
|
||||||
|
* @param event ProjectCreateBroadCastEvent
|
||||||
|
*/
|
||||||
|
private void onReceiveProjectCreate(ProjectCreateBroadCastEvent event){
|
||||||
|
ProjectCreateInfo projectInfo = event.getProjectInfo();
|
||||||
|
callBackControl.projectCreate(
|
||||||
|
projectInfo.getEnglishName(),
|
||||||
|
projectInfo.getProjectName(),
|
||||||
|
event.getUserId());
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 处理更新项目事件
|
||||||
|
* @param event ProjectUpdateBroadCastEvent
|
||||||
|
*/
|
||||||
|
private void onReceiveProjectUpdate(ProjectUpdateBroadCastEvent event){
|
||||||
|
ProjectUpdateInfo projectInfo = event.getProjectInfo();
|
||||||
|
callBackControl.projectUpdate(
|
||||||
|
projectInfo.getEnglishName(),
|
||||||
|
projectInfo.getProjectName(),
|
||||||
|
event.getUserId()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 处理项目禁用事件
|
||||||
|
* @param event ProjectEnableStatusBroadCastEvent
|
||||||
|
*/
|
||||||
|
private void onReceiveProjectEnable(ProjectEnableStatusBroadCastEvent event){
|
||||||
|
ProjectVO project = getProject(event.getProjectId());
|
||||||
|
if (project!=null) {
|
||||||
|
if (event.getEnable()) {
|
||||||
|
callBackControl.projectEnable(event.getProjectId(),project.getProjectName(),event.getUserId());
|
||||||
|
} else {
|
||||||
|
callBackControl.projectDisable(event.getProjectId(),project.getProjectName(),event.getUserId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private ProjectVO getProject(String projectEnglishName){
|
||||||
|
if (StringUtils.isEmpty(projectEnglishName)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
return projectService.getByEnglishName(projectEnglishName);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.warn(
|
||||||
|
"fail to get project info|projectEnglishName[$projectEnglishName]",
|
||||||
|
e
|
||||||
|
);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,43 +0,0 @@
|
|||||||
package cd.casic.ci.process.process.event.callback.listener;
|
|
||||||
|
|
||||||
|
|
||||||
import cd.casic.ci.project.pojo.mq.ProjectBroadCastEvent;
|
|
||||||
import cd.casic.ci.project.pojo.mq.ProjectCreateBroadCastEvent;
|
|
||||||
import cd.casic.ci.project.pojo.mq.ProjectEnableStatusBroadCastEvent;
|
|
||||||
import cd.casic.ci.project.pojo.mq.ProjectUpdateBroadCastEvent;
|
|
||||||
import cd.casic.framework.mq.redis.core.stream.AbstractRedisStreamMessageListener;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
@Service
|
|
||||||
@Slf4j
|
|
||||||
public class ProjectCallbackEventListener extends AbstractRedisStreamMessageListener<ProjectBroadCastEvent> {
|
|
||||||
@Override
|
|
||||||
public void onMessage(ProjectBroadCastEvent message) {
|
|
||||||
log.info("Receive ProjectEvent from MQ [$event]");
|
|
||||||
try {
|
|
||||||
if (message instanceof ProjectUpdateBroadCastEvent) {
|
|
||||||
|
|
||||||
} else if (message instanceof ProjectEnableStatusBroadCastEvent) {
|
|
||||||
|
|
||||||
} else if (message instanceof ProjectCreateBroadCastEvent) {
|
|
||||||
|
|
||||||
}
|
|
||||||
// when (event) {
|
|
||||||
// is ProjectUpdateBroadCastEvent -> {
|
|
||||||
// onReceiveProjectUpdate(event)
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// is ProjectEnableStatusBroadCastEvent -> {
|
|
||||||
// onReceiveProjectEnable(event)
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// is ProjectCreateBroadCastEvent -> {
|
|
||||||
// onReceiveProjectCreate(event)
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.error("BKSystemMonitor| project callback listener execute error", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,4 +1,4 @@
|
|||||||
package cd.casic.ci.process.process.dataObject;
|
package cd.casic.ci.project.dal.dto;
|
||||||
|
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
@ -0,0 +1,7 @@
|
|||||||
|
package cd.casic.ci.project.enums;
|
||||||
|
|
||||||
|
public enum PluginDetailsDisplayOrder {
|
||||||
|
LOG,
|
||||||
|
ARTIFACT,
|
||||||
|
CONFIG
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
package cd.casic.ci.project.enums;
|
||||||
|
|
||||||
|
public enum ProjectCollation {
|
||||||
|
DEFAULT,
|
||||||
|
|
||||||
|
ASC,
|
||||||
|
|
||||||
|
DESC;
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
package cd.casic.ci.project.enums;
|
||||||
|
|
||||||
|
public enum ProjectSortType {
|
||||||
|
PROJECT_NAME,
|
||||||
|
ENGLISH_NAME
|
||||||
|
}
|
@ -0,0 +1,46 @@
|
|||||||
|
package cd.casic.ci.project.pojo;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Schema(title = "运营产品")
|
||||||
|
public class OperationalProductVO {
|
||||||
|
|
||||||
|
@Schema(title = "运营产品ID")
|
||||||
|
@JsonProperty(value = "ProductId", required = false)
|
||||||
|
private Integer productId;
|
||||||
|
|
||||||
|
@Schema(title = "运营产品ID")
|
||||||
|
@JsonProperty(value = "ProductName", required = false)
|
||||||
|
private String productName;
|
||||||
|
|
||||||
|
@Schema(title = "运营产品ID")
|
||||||
|
@JsonProperty(value = "PlanProductId", required = false)
|
||||||
|
private Integer planProductId;
|
||||||
|
|
||||||
|
@Schema(title = "规划产品名称")
|
||||||
|
@JsonProperty(value = "PlanProductName", required = false)
|
||||||
|
private String planProductName;
|
||||||
|
|
||||||
|
@Schema(title = "部门ID")
|
||||||
|
@JsonProperty(value = "DeptId", required = false)
|
||||||
|
private String deptId;
|
||||||
|
|
||||||
|
@Schema(title = "部门名称")
|
||||||
|
@JsonProperty(value = "DeptName", required = false)
|
||||||
|
private String deptName;
|
||||||
|
|
||||||
|
@Schema(title = "BgId")
|
||||||
|
@JsonProperty(value = "BgId", required = false)
|
||||||
|
private String bgId;
|
||||||
|
|
||||||
|
@Schema(title = "Bg名称")
|
||||||
|
@JsonProperty(value = "BgName", required = false)
|
||||||
|
private String bgName;
|
||||||
|
}
|
@ -0,0 +1,25 @@
|
|||||||
|
package cd.casic.ci.project.pojo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Schema(title = "项目基本信息")
|
||||||
|
public class ProjectBaseInfo {
|
||||||
|
|
||||||
|
@Schema(title = "主键ID")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Schema(title = "英文缩写")
|
||||||
|
private String englishName;
|
||||||
|
|
||||||
|
@Schema(title = "项目名称")
|
||||||
|
private String projectName;
|
||||||
|
|
||||||
|
@Schema(title = "是否启用")
|
||||||
|
private Boolean enabled;
|
||||||
|
}
|
@ -0,0 +1,31 @@
|
|||||||
|
package cd.casic.ci.project.pojo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Schema(title = "项目--权限")
|
||||||
|
public class ProjectByConditionDTO {
|
||||||
|
|
||||||
|
@Schema(title = "项目名称")
|
||||||
|
private String projectName;
|
||||||
|
|
||||||
|
@Schema(title = "项目英文名称")
|
||||||
|
private String englishName;
|
||||||
|
|
||||||
|
@Schema(title = "权限")
|
||||||
|
private boolean permission;
|
||||||
|
|
||||||
|
@Schema(title = "环境路由")
|
||||||
|
private String routerTag;
|
||||||
|
|
||||||
|
@Schema(title = "bgId")
|
||||||
|
private Long bgId;
|
||||||
|
|
||||||
|
@Schema(title = "remotedev管理员")
|
||||||
|
private String remotedevManager;
|
||||||
|
}
|
@ -0,0 +1,40 @@
|
|||||||
|
package cd.casic.ci.project.pojo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Schema
|
||||||
|
public class ProjectCreateUserInfo {
|
||||||
|
|
||||||
|
@Schema(title = "操作人")
|
||||||
|
private String createUserId;
|
||||||
|
|
||||||
|
@Schema(title = "待分配的角色名称")
|
||||||
|
private String roleName;
|
||||||
|
|
||||||
|
@Schema(title = "角色Id")
|
||||||
|
private Integer roleId;
|
||||||
|
|
||||||
|
@Schema(title = "组ID")
|
||||||
|
private Integer groupId;
|
||||||
|
|
||||||
|
@Schema(title = "目标用户")
|
||||||
|
private List<String> userIds = new ArrayList<>();
|
||||||
|
|
||||||
|
@Schema(title = "目标部门")
|
||||||
|
private List<String> deptIds = new ArrayList<>();
|
||||||
|
|
||||||
|
@Schema(title = "资源类型")
|
||||||
|
private String resourceType;
|
||||||
|
|
||||||
|
@Schema(title = "资源ID")
|
||||||
|
private String resourceCode;
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
package cd.casic.ci.project.pojo;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class ProjectLogo {
|
||||||
|
private String logoAddr;
|
||||||
|
}
|
@ -0,0 +1,40 @@
|
|||||||
|
package cd.casic.ci.project.pojo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Schema(title = "项目组织")
|
||||||
|
public class ProjectOrganizationInfo {
|
||||||
|
|
||||||
|
@Schema(title = "事业群ID")
|
||||||
|
private Long bgId;
|
||||||
|
|
||||||
|
@Schema(title = "事业群名字")
|
||||||
|
private String bgName;
|
||||||
|
|
||||||
|
@Schema(title = "业务线ID")
|
||||||
|
private Long businessLineId;
|
||||||
|
|
||||||
|
@Schema(title = "业务线名称")
|
||||||
|
private String businessLineName;
|
||||||
|
|
||||||
|
@Schema(title = "中心ID")
|
||||||
|
private Long centerId;
|
||||||
|
|
||||||
|
@Schema(title = "中心名称")
|
||||||
|
private String centerName;
|
||||||
|
|
||||||
|
@Schema(title = "部门ID")
|
||||||
|
private Long deptId;
|
||||||
|
|
||||||
|
@Schema(title = "部门名称")
|
||||||
|
private String deptName;
|
||||||
|
|
||||||
|
@Schema(title = "是否需要更正组织")
|
||||||
|
private boolean needFix = true;
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
package cd.casic.ci.project.pojo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
|
||||||
|
@Schema(title = "修改项目创建人")
|
||||||
|
public class ProjectUpdateCreatorDTO {
|
||||||
|
@Schema(title = "项目code")
|
||||||
|
private String projectCode;
|
||||||
|
@Schema(title = "创建人")
|
||||||
|
private String creator;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,173 @@
|
|||||||
|
package cd.casic.ci.project.pojo.vo;
|
||||||
|
|
||||||
|
import cd.casic.ci.project.dal.pojo.SubjectScopeInfo;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Schema(title = "项目-显示模型")
|
||||||
|
@SuppressWarnings("ALL")
|
||||||
|
public class ProjectDiffVO {
|
||||||
|
|
||||||
|
@Schema(title = "主键ID")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Schema(title = "项目ID")
|
||||||
|
private String projectId;
|
||||||
|
|
||||||
|
@Schema(title = "项目名称")
|
||||||
|
private String projectName;
|
||||||
|
|
||||||
|
@Schema(title = "审批中项目名称")
|
||||||
|
private String afterProjectName;
|
||||||
|
|
||||||
|
@Schema(title = "项目代码")
|
||||||
|
private String projectCode;
|
||||||
|
|
||||||
|
@Schema(title = "审批状态")
|
||||||
|
private Integer approvalStatus;
|
||||||
|
|
||||||
|
@Schema(title = "审批时间")
|
||||||
|
private String approvalTime;
|
||||||
|
|
||||||
|
@Schema(title = "审批人")
|
||||||
|
private String approver;
|
||||||
|
|
||||||
|
@Schema(title = "创建时间")
|
||||||
|
private String createdAt;
|
||||||
|
|
||||||
|
@Schema(title = "创建人")
|
||||||
|
private String creator;
|
||||||
|
|
||||||
|
@Schema(title = "事业群ID")
|
||||||
|
private String bgId;
|
||||||
|
|
||||||
|
@Schema(title = "审批中事业群ID")
|
||||||
|
private String afterBgId;
|
||||||
|
|
||||||
|
@Schema(title = "事业群名字")
|
||||||
|
private String bgName;
|
||||||
|
|
||||||
|
@Schema(title = "审批中事业群名字")
|
||||||
|
private String afterBgName;
|
||||||
|
|
||||||
|
@Schema(title = "事业线ID")
|
||||||
|
private String businessLineId;
|
||||||
|
|
||||||
|
@Schema(title = "审批中事业线ID")
|
||||||
|
private Long afterBusinessLineId;
|
||||||
|
|
||||||
|
@Schema(title = "事业线名称")
|
||||||
|
private String businessLineName;
|
||||||
|
|
||||||
|
@Schema(title = "审批中事业线名称")
|
||||||
|
private String afterBusinessLineName;
|
||||||
|
|
||||||
|
@Schema(title = "中心ID")
|
||||||
|
private String centerId;
|
||||||
|
|
||||||
|
@Schema(title = "审批中中心ID")
|
||||||
|
private String afterCenterId;
|
||||||
|
|
||||||
|
@Schema(title = "中心名称")
|
||||||
|
private String centerName;
|
||||||
|
|
||||||
|
@Schema(title = "审批中中心名称")
|
||||||
|
private String afterCenterName;
|
||||||
|
|
||||||
|
@Schema(title = "部门ID")
|
||||||
|
private String deptId;
|
||||||
|
|
||||||
|
@Schema(title = "审批中部门ID")
|
||||||
|
private String afterDeptId;
|
||||||
|
|
||||||
|
@Schema(title = "部门名称")
|
||||||
|
private String deptName;
|
||||||
|
|
||||||
|
@Schema(title = "审批中部门名称")
|
||||||
|
private String afterDeptName;
|
||||||
|
|
||||||
|
@Schema(title = "描述")
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
@Schema(title = "审批中描述")
|
||||||
|
private String afterDescription;
|
||||||
|
|
||||||
|
@Schema(title = "英文缩写")
|
||||||
|
private String englishName;
|
||||||
|
|
||||||
|
@Schema(title = "logo地址")
|
||||||
|
private String logoAddr;
|
||||||
|
|
||||||
|
@Schema(title = "审批中logo地址")
|
||||||
|
private String afterLogoAddr;
|
||||||
|
|
||||||
|
@Schema(title = "评论")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
@Schema(title = "修改时间")
|
||||||
|
private String updatedAt;
|
||||||
|
|
||||||
|
@Schema(title = "修改人")
|
||||||
|
private String updator;
|
||||||
|
|
||||||
|
@Schema(title = "项目最大可授权人员范围")
|
||||||
|
private List<SubjectScopeInfo> subjectScopes;
|
||||||
|
|
||||||
|
@Schema(title = "审批中的项目最大可授权人员范围")
|
||||||
|
private List<SubjectScopeInfo> afterSubjectScopes;
|
||||||
|
|
||||||
|
@Schema(title = "项目性质")
|
||||||
|
private Integer authSecrecy;
|
||||||
|
|
||||||
|
@Schema(title = "审批中项目性质")
|
||||||
|
private Integer afterAuthSecrecy;
|
||||||
|
|
||||||
|
@Schema(title = "项目类型")
|
||||||
|
private Integer projectType;
|
||||||
|
|
||||||
|
@Schema(title = "审批中项目类型")
|
||||||
|
private Integer afterProjectType;
|
||||||
|
|
||||||
|
@Schema(title = "运营产品ID")
|
||||||
|
private Integer productId;
|
||||||
|
|
||||||
|
@Schema(title = "审批中运营产品ID")
|
||||||
|
private Integer afterProductId;
|
||||||
|
|
||||||
|
@Schema(title = "运营产品名称")
|
||||||
|
private String productName;
|
||||||
|
|
||||||
|
@Schema(title = "审批中运营产品名称")
|
||||||
|
private String afterProductName;
|
||||||
|
|
||||||
|
@Schema(title = "流水线语言风格")
|
||||||
|
private String pipelineDialect;
|
||||||
|
|
||||||
|
@Schema(title = "审批中流水线语言风格")
|
||||||
|
private String afterPipelineDialect;
|
||||||
|
|
||||||
|
@Schema(title = "是否开启流水线命名提示")
|
||||||
|
private Boolean enablePipelineNameTips = false;
|
||||||
|
|
||||||
|
@Schema(title = "审批中是否开启流水线命名提示")
|
||||||
|
private Boolean afterEnablePipelineNameTips = false;
|
||||||
|
|
||||||
|
@Schema(title = "流水线命名格式")
|
||||||
|
private String pipelineNameFormat;
|
||||||
|
|
||||||
|
@Schema(title = "审批中流水线命名格式")
|
||||||
|
private String afterPipelineNameFormat;
|
||||||
|
|
||||||
|
@Schema(title = "构建日志归档阈值(单位:万)")
|
||||||
|
private Integer loggingLineLimit;
|
||||||
|
|
||||||
|
@Schema(title = "审批中构建日志归档阈值(单位:万)")
|
||||||
|
private Integer afterLoggingLineLimit;
|
||||||
|
}
|
@ -0,0 +1,259 @@
|
|||||||
|
package cd.casic.ci.project.service;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import cd.casic.ci.common.pipeline.pojo.Pagination;
|
||||||
|
import cd.casic.ci.common.pipeline.pojo.auth.ProjectConditionDTO;
|
||||||
|
import cd.casic.ci.project.dal.dto.TProjectRecord;
|
||||||
|
import cd.casic.ci.project.dal.pojo.*;
|
||||||
|
import cd.casic.ci.project.enums.*;
|
||||||
|
import cd.casic.ci.project.pojo.*;
|
||||||
|
import cd.casic.ci.project.pojo.vo.ProjectDiffVO;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
import javax.security.auth.AuthPermission;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
@SuppressWarnings("ALL")
|
||||||
|
public interface ProjectService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验项目名称/英文名称是否合法
|
||||||
|
*/
|
||||||
|
void validate(ProjectValidateType validateType, String name, @Nullable String projectId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建项目信息
|
||||||
|
*/
|
||||||
|
String create(
|
||||||
|
String userId,
|
||||||
|
ProjectCreateInfo projectCreateInfo,
|
||||||
|
@Nullable String accessToken,
|
||||||
|
ProjectCreateExtInfo createExtInfo,
|
||||||
|
@Nullable String defaultProjectId,
|
||||||
|
ProjectChannelCode projectChannel
|
||||||
|
);
|
||||||
|
|
||||||
|
ProjectVO createExtProject(
|
||||||
|
String userId,
|
||||||
|
String projectCode,
|
||||||
|
ProjectCreateInfo projectCreateInfo,
|
||||||
|
boolean needAuth,
|
||||||
|
boolean needValidate,
|
||||||
|
ProjectChannelCode channel
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据项目ID/英文ID获取项目信息对象
|
||||||
|
* @param englishName projectCode 英文ID
|
||||||
|
* @return ProjectVO 如果没有则为null
|
||||||
|
*/
|
||||||
|
ProjectVO getByEnglishName(
|
||||||
|
String userId,
|
||||||
|
String englishName,
|
||||||
|
@Nullable String accessToken
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据项目ID/英文ID获取项目信息对象
|
||||||
|
* @param englishName projectCode 英文ID
|
||||||
|
* @return ProjectVO 如果没有则为null
|
||||||
|
*/
|
||||||
|
ProjectVO show(
|
||||||
|
String userId,
|
||||||
|
String englishName,
|
||||||
|
@Nullable String accessToken
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据项目ID/英文ID获取项目审批中对比信息
|
||||||
|
* @param englishName projectCode 英文ID
|
||||||
|
* @return ProjectDiffVO 如果没有则为null
|
||||||
|
*/
|
||||||
|
ProjectDiffVO diff(String userId, String englishName, @Nullable String accessToken);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据项目ID/英文ID获取项目信息对象
|
||||||
|
* @param englishName projectCode 英文ID
|
||||||
|
* @return ProjectVO 如果没有则为null
|
||||||
|
*/
|
||||||
|
ProjectVO getByEnglishName(String englishName);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改项目信息 englishName是项目英文名,目前平台在api接口上会把他命名成projectId,实际上与t_project表中的project_id字段不同
|
||||||
|
* 后续会统一
|
||||||
|
*/
|
||||||
|
boolean update(
|
||||||
|
String userId,
|
||||||
|
String englishName,
|
||||||
|
ProjectUpdateInfo projectUpdateInfo,
|
||||||
|
@Nullable String accessToken,
|
||||||
|
@Nullable Boolean needApproval
|
||||||
|
);
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * 更新Logo TODO FormDataContentDisposition类是 org.glassfish库的,
|
||||||
|
// 涉及文件上传模块相关内容先空着后续在看具体解决方案
|
||||||
|
// */
|
||||||
|
// ProjectLogo updateLogo(
|
||||||
|
// String userId,
|
||||||
|
// String englishName,
|
||||||
|
// InputStream inputStream,
|
||||||
|
// FormDataContentDisposition disposition,
|
||||||
|
// @Nullable String accessToken
|
||||||
|
// );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上传Logo
|
||||||
|
*/
|
||||||
|
String uploadLogo(
|
||||||
|
String userId,
|
||||||
|
InputStream inputStream,
|
||||||
|
@Nullable String accessToken
|
||||||
|
);
|
||||||
|
|
||||||
|
boolean updateProjectName(String userId, String projectId, String projectName);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取所有项目信息
|
||||||
|
*/
|
||||||
|
List<ProjectVO> list(
|
||||||
|
String userId,
|
||||||
|
@Nullable String accessToken,
|
||||||
|
@Nullable Boolean enabled,
|
||||||
|
boolean unApproved,
|
||||||
|
@Nullable ProjectSortType sortType,
|
||||||
|
@Nullable ProjectCollation collation
|
||||||
|
);
|
||||||
|
|
||||||
|
Pagination<ProjectByConditionDTO> listProjectsForApply(
|
||||||
|
String userId,
|
||||||
|
@Nullable String accessToken,
|
||||||
|
@Nullable String projectName,
|
||||||
|
@Nullable String projectId,
|
||||||
|
int page,
|
||||||
|
int pageSize
|
||||||
|
);
|
||||||
|
|
||||||
|
List<ProjectVO> list(String userId);
|
||||||
|
|
||||||
|
List<ProjectVO> list(Set<String> projectCodes, @Nullable Boolean enabled);
|
||||||
|
|
||||||
|
List<ProjectVO> listOnlyByProjectCode(Set<String> projectCodes);
|
||||||
|
|
||||||
|
List<ProjectVO> list(List<String> projectCodes);
|
||||||
|
|
||||||
|
Page<ProjectVO> list(int limit, int offset);
|
||||||
|
|
||||||
|
Page<ProjectVO> listByChannel(int limit, int offset, List<String> projectChannelCode);
|
||||||
|
|
||||||
|
List<ProjectVO> getAllProject();
|
||||||
|
|
||||||
|
List<ProjectByConditionDTO> listProjectsByCondition(
|
||||||
|
ProjectConditionDTO projectConditionDTO,
|
||||||
|
int limit,
|
||||||
|
int offset
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取用户已的可访问项目列表
|
||||||
|
*/
|
||||||
|
List<ProjectVO> getProjectByUser(String userName);
|
||||||
|
|
||||||
|
HashMap<String, String> getNameByCode(String projectCodes);
|
||||||
|
|
||||||
|
void updateUsableStatus(
|
||||||
|
@Nullable String userId,
|
||||||
|
String englishName,
|
||||||
|
boolean enabled,
|
||||||
|
boolean checkPermission
|
||||||
|
);
|
||||||
|
|
||||||
|
Page<ProjectVO> searchProjectByProjectName(String projectName, int limit, int offset);
|
||||||
|
|
||||||
|
boolean hasCreatePermission(String userId);
|
||||||
|
|
||||||
|
long getMinId();
|
||||||
|
|
||||||
|
long getMaxId();
|
||||||
|
|
||||||
|
List<ProjectBaseInfo> getProjectListById(long minId, long maxId);
|
||||||
|
|
||||||
|
boolean verifyUserProjectPermission(
|
||||||
|
String userId,
|
||||||
|
String projectId,
|
||||||
|
AuthPermission permission,
|
||||||
|
@Nullable String accessToken
|
||||||
|
);
|
||||||
|
|
||||||
|
Set<String> listSecrecyProject();
|
||||||
|
|
||||||
|
boolean createProjectUser(String projectId, ProjectCreateUserInfo createInfo);
|
||||||
|
|
||||||
|
boolean relationIamProject(String projectCode, String relationId);
|
||||||
|
|
||||||
|
ProjectVO getProjectByName(String projectName);
|
||||||
|
|
||||||
|
boolean updateProjectProperties(@Nullable String userId, String projectCode, ProjectProperties properties);
|
||||||
|
|
||||||
|
boolean setDisableWhenInactiveFlag(List<String> projectCodes);
|
||||||
|
|
||||||
|
boolean cancelCreateProject(String userId, String projectId);
|
||||||
|
|
||||||
|
boolean cancelUpdateProject(String userId, String projectId);
|
||||||
|
|
||||||
|
boolean isRbacPermission(String projectId);
|
||||||
|
|
||||||
|
boolean updateProjectSubjectScopes(
|
||||||
|
String projectId,
|
||||||
|
List<SubjectScopeInfo> subjectScopes
|
||||||
|
);
|
||||||
|
|
||||||
|
boolean updateProjectCreator(List<ProjectUpdateCreatorDTO> projectUpdateCreatorDtoList);
|
||||||
|
|
||||||
|
List<OperationalProductVO> getOperationalProducts();
|
||||||
|
|
||||||
|
OperationalProductVO getProductByProductId(int productId);
|
||||||
|
|
||||||
|
List<OperationalProductVO> getOperationalProductsByBgName(String bgName);
|
||||||
|
|
||||||
|
void updateProjectProductId(
|
||||||
|
String englishName,
|
||||||
|
@Nullable String productName,
|
||||||
|
@Nullable Integer productId
|
||||||
|
);
|
||||||
|
|
||||||
|
void updateOrganizationByEnglishName(
|
||||||
|
String englishName,
|
||||||
|
ProjectOrganizationInfo projectOrganizationInfo
|
||||||
|
);
|
||||||
|
|
||||||
|
ProjectOrganizationInfo fixProjectOrganization(
|
||||||
|
TProjectRecord tProjectRecord
|
||||||
|
);
|
||||||
|
|
||||||
|
List<ProjectBaseInfo> getProjectListByProductId(
|
||||||
|
int productId
|
||||||
|
);
|
||||||
|
|
||||||
|
List<String> getExistedEnglishName(
|
||||||
|
List<String> englishNameList
|
||||||
|
);
|
||||||
|
|
||||||
|
boolean remindUserOfRelatedProduct(
|
||||||
|
String userId,
|
||||||
|
String englishName
|
||||||
|
);
|
||||||
|
|
||||||
|
boolean updatePluginDetailsDisplay(
|
||||||
|
String englishName,
|
||||||
|
List<PluginDetailsDisplayOrder> pluginDetailsDisplayOrder
|
||||||
|
);
|
||||||
|
|
||||||
|
String getPipelineDialect(String projectId);
|
||||||
|
}
|
@ -0,0 +1,30 @@
|
|||||||
|
package cd.casic.ci.project.service.impl;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import cd.casic.ci.project.service.ServiceAllocIdResource;
|
||||||
|
import cd.casic.framework.redis.core.RedisTemplateUtils;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
@Service
|
||||||
|
public class ServiceAllocIdResourceImpl implements ServiceAllocIdResource {
|
||||||
|
RedisTemplateUtils redisTemplateUtils;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long generateSegmentId(String bizTag) {
|
||||||
|
return redisTemplateUtils.incr(bizTag,1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Long> batchGenerateSegmentId(String bizTag, Integer number) {
|
||||||
|
List<Long> idList = new ArrayList<>(number);
|
||||||
|
// 可以改成批处理
|
||||||
|
for (int i = 0; i < number; i++) {
|
||||||
|
long incr = redisTemplateUtils.incr(bizTag, 1);
|
||||||
|
idList.add(incr);
|
||||||
|
}
|
||||||
|
return idList;
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user