feat: add service config templates and extraction script

Former-commit-id: 1de24b7eb79676d1aba9d799a58c5a753290cf52
This commit is contained in:
反编译工作区
2026-05-01 19:38:01 +08:00
parent 3175b7074b
commit 8b15445328
2433 changed files with 8322164 additions and 1604 deletions
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>cn.cloudwalk.ninca</groupId>
<artifactId>ninca-crk-from-lib-reactor</artifactId>
<version>2.9.1_210630-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>ninca-crk-portal-resource-stubs</artifactId>
<name>ninca-crk-portal-resource-stubs</name>
<description>
编译期闭合:Davinci Portal 侧 DTO / Feign 契约片段与 ResourceClient 占位实现。
仅用于 maven-ninca-crk-from-lib 反编译反应堆本地编译走查;运行时仍应由宿主应用装配真实 Bean。
</description>
<dependencies>
<dependency>
<groupId>cn.cloudwalk.cloud</groupId>
<artifactId>cloudwalk-common-result</artifactId>
</dependency>
<!-- Quartz Job 契约(会议 facade 定时任务占位) -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.2</version>
</dependency>
</dependencies>
</project>
@@ -0,0 +1,16 @@
package cn.cloudwalk.client.davinci.portal.enterprise.param;
import java.io.Serializable;
public class EnterpriseBasicParam implements Serializable {
private static final long serialVersionUID = 4209678527822001279L;
private String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
@@ -0,0 +1,26 @@
package cn.cloudwalk.client.davinci.portal.enterprise.result;
import cn.cloudwalk.cloud.entity.CloudwalkBaseTimes;
/** 聚合编译最少字段:CorpServiceImpl / VisitorRegisterServiceImpl 仅需 corpCode、corpName。 */
public class EnterpriseDetailResult extends CloudwalkBaseTimes {
private static final long serialVersionUID = 1803902156130377090L;
private String corpName;
private String corpCode;
public String getCorpName() {
return corpName;
}
public void setCorpName(String corpName) {
this.corpName = corpName;
}
public String getCorpCode() {
return corpCode;
}
public void setCorpCode(String corpCode) {
this.corpCode = corpCode;
}
}
@@ -0,0 +1,14 @@
package cn.cloudwalk.client.davinci.portal.enterprise.service;
import cn.cloudwalk.client.davinci.portal.enterprise.param.EnterpriseBasicParam;
import cn.cloudwalk.client.davinci.portal.enterprise.result.EnterpriseDetailResult;
import cn.cloudwalk.cloud.context.CloudwalkCallContext;
import cn.cloudwalk.cloud.exception.ServiceException;
import cn.cloudwalk.cloud.result.CloudwalkResult;
/** 反应堆编译用裁剪契约(本仓库仅调用 detail)。 */
public interface PortalEnterpriseService {
CloudwalkResult<EnterpriseDetailResult> detail(EnterpriseBasicParam param, CloudwalkCallContext context)
throws ServiceException;
}
@@ -0,0 +1,18 @@
package cn.cloudwalk.client.davinci.portal.file.param;
import java.io.Serializable;
import java.util.List;
/** 删除文件请求体占位(字段名按常见网关约定;运行时由 davinci-portal 解析)。 */
public class RemoveFileParam implements Serializable {
private static final long serialVersionUID = 1L;
private List<String> paths;
public List<String> getPaths() {
return paths;
}
public void setPaths(List<String> paths) {
this.paths = paths;
}
}
@@ -0,0 +1,44 @@
package cn.cloudwalk.client.davinci.portal.file.param.part;
import java.io.Serializable;
/** 分片追加参数(与存储层 append 调用约定一致)。 */
public class FilePartAppendParam<T> implements Serializable {
private static final long serialVersionUID = 1L;
private String filePath;
private Integer partNumber;
private String uploadId;
private T content;
public String getFilePath() {
return filePath;
}
public void setFilePath(String filePath) {
this.filePath = filePath;
}
public Integer getPartNumber() {
return partNumber;
}
public void setPartNumber(Integer partNumber) {
this.partNumber = partNumber;
}
public String getUploadId() {
return uploadId;
}
public void setUploadId(String uploadId) {
this.uploadId = uploadId;
}
public T getContent() {
return content;
}
public void setContent(T content) {
this.content = content;
}
}
@@ -0,0 +1,44 @@
package cn.cloudwalk.client.davinci.portal.file.param.part;
import java.io.Serializable;
/** 分片结束参数(与 PartFinishDTO 字段对齐)。 */
public class FilePartFinishParam implements Serializable {
private static final long serialVersionUID = 1L;
private String uploadId;
private Long fileSize;
private String filePath;
private Integer returnType;
public String getUploadId() {
return uploadId;
}
public void setUploadId(String uploadId) {
this.uploadId = uploadId;
}
public Long getFileSize() {
return fileSize;
}
public void setFileSize(Long fileSize) {
this.fileSize = fileSize;
}
public String getFilePath() {
return filePath;
}
public void setFilePath(String filePath) {
this.filePath = filePath;
}
public Integer getReturnType() {
return returnType;
}
public void setReturnType(Integer returnType) {
this.returnType = returnType;
}
}
@@ -0,0 +1,17 @@
package cn.cloudwalk.client.davinci.portal.file.param.part;
import java.io.Serializable;
/** 分片上传初始化参数(与 PartInitDTO 字段对齐,供 BeanCopy 与业务层使用)。 */
public class FilePartInitParam implements Serializable {
private static final long serialVersionUID = 1L;
private String fileName;
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
}
@@ -0,0 +1,26 @@
package cn.cloudwalk.client.davinci.portal.file.result;
import java.io.Serializable;
/** 分片初始化/追加返回(与 PartInitResultDTO 字段对齐)。 */
public class FilePartResult implements Serializable {
private static final long serialVersionUID = 1L;
private String filePath;
private String uploadId;
public String getFilePath() {
return filePath;
}
public void setFilePath(String filePath) {
this.filePath = filePath;
}
public String getUploadId() {
return uploadId;
}
public void setUploadId(String uploadId) {
this.uploadId = uploadId;
}
}
@@ -0,0 +1,332 @@
package cn.cloudwalk.client.davinci.portal.user.result;
import java.util.List;
/** 与 cwos-portal-interface 对齐并补充业务使用的 {@link #personId}(考勤/访客过滤器)。 */
public class PortalUserDetailResult {
private String loginName;
private String userId;
private String orgId;
private String orgName;
private String position;
private String name;
private String title;
private List<String> roleIds;
private List<String> roles;
private Integer status;
private String telephone;
private String businessId;
private String applicationId;
private String serviceCode;
private String orgPath;
private String picturePath;
private Long pwdLastUpdateTime;
private Integer wrongTimes;
private Integer lockStatus;
private Long lockDate;
private Long pwdErrorDate;
private String email;
private String id;
private String loginPwd;
private String loginPwdSalt;
private String remark;
private String workCode;
private String pwdComplexity;
private Long lastLoginTime;
private String historyPwd1;
private String historyPwd2;
private String corpCode;
private String encodedCorpCode;
private String corpName;
private Long pwdExpiredTime;
/** 人员主键(考勤等业务直接取用)。 */
private String personId;
public String getPersonId() {
return personId;
}
public void setPersonId(String personId) {
this.personId = personId;
}
public Long getPwdExpiredTime() {
return this.pwdExpiredTime;
}
public void setPwdExpiredTime(Long pwdExpiredTime) {
this.pwdExpiredTime = pwdExpiredTime;
}
public String getLoginName() {
return this.loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public String getUserId() {
return this.userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getOrgId() {
return this.orgId;
}
public void setOrgId(String orgId) {
this.orgId = orgId;
}
public String getOrgName() {
return this.orgName;
}
public void setOrgName(String orgName) {
this.orgName = orgName;
}
public String getPosition() {
return this.position;
}
public void setPosition(String position) {
this.position = position;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getTitle() {
return this.title;
}
public void setTitle(String title) {
this.title = title;
}
public List<String> getRoleIds() {
return this.roleIds;
}
public void setRoleIds(List<String> roleIds) {
this.roleIds = roleIds;
}
public List<String> getRoles() {
return this.roles;
}
public void setRoles(List<String> roles) {
this.roles = roles;
}
public Integer getStatus() {
return this.status;
}
public void setStatus(Integer status) {
this.status = status;
}
public String getTelephone() {
return this.telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
}
public String getBusinessId() {
return this.businessId;
}
public void setBusinessId(String businessId) {
this.businessId = businessId;
}
public String getApplicationId() {
return this.applicationId;
}
public void setApplicationId(String applicationId) {
this.applicationId = applicationId;
}
public String getServiceCode() {
return this.serviceCode;
}
public void setServiceCode(String serviceCode) {
this.serviceCode = serviceCode;
}
public String getOrgPath() {
return this.orgPath;
}
public void setOrgPath(String orgPath) {
this.orgPath = orgPath;
}
public String getPicturePath() {
return this.picturePath;
}
public void setPicturePath(String picturePath) {
this.picturePath = picturePath;
}
public Long getPwdLastUpdateTime() {
return this.pwdLastUpdateTime;
}
public void setPwdLastUpdateTime(Long pwdLastUpdateTime) {
this.pwdLastUpdateTime = pwdLastUpdateTime;
}
public Integer getWrongTimes() {
return this.wrongTimes;
}
public void setWrongTimes(Integer wrongTimes) {
this.wrongTimes = wrongTimes;
}
public Integer getLockStatus() {
return this.lockStatus;
}
public void setLockStatus(Integer lockStatus) {
this.lockStatus = lockStatus;
}
public Long getLockDate() {
return this.lockDate;
}
public void setLockDate(Long lockDate) {
this.lockDate = lockDate;
}
public Long getPwdErrorDate() {
return this.pwdErrorDate;
}
public void setPwdErrorDate(Long pwdErrorDate) {
this.pwdErrorDate = pwdErrorDate;
}
public String getEmail() {
return this.email;
}
public void setEmail(String email) {
this.email = email;
}
public String getId() {
return this.id;
}
public void setId(String id) {
this.id = id;
}
public String getLoginPwd() {
return this.loginPwd;
}
public void setLoginPwd(String loginPwd) {
this.loginPwd = loginPwd;
}
public String getLoginPwdSalt() {
return this.loginPwdSalt;
}
public void setLoginPwdSalt(String loginPwdSalt) {
this.loginPwdSalt = loginPwdSalt;
}
public String getRemark() {
return this.remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public String getWorkCode() {
return this.workCode;
}
public void setWorkCode(String workCode) {
this.workCode = workCode;
}
public String getPwdComplexity() {
return this.pwdComplexity;
}
public void setPwdComplexity(String pwdComplexity) {
this.pwdComplexity = pwdComplexity;
}
public Long getLastLoginTime() {
return this.lastLoginTime;
}
public void setLastLoginTime(Long lastLoginTime) {
this.lastLoginTime = lastLoginTime;
}
public String getHistoryPwd1() {
return this.historyPwd1;
}
public void setHistoryPwd1(String historyPwd1) {
this.historyPwd1 = historyPwd1;
}
public String getHistoryPwd2() {
return this.historyPwd2;
}
public void setHistoryPwd2(String historyPwd2) {
this.historyPwd2 = historyPwd2;
}
public String getCorpCode() {
return this.corpCode;
}
public void setCorpCode(String corpCode) {
this.corpCode = corpCode;
}
public String getEncodedCorpCode() {
return this.encodedCorpCode;
}
public void setEncodedCorpCode(String encodedCorpCode) {
this.encodedCorpCode = encodedCorpCode;
}
public String getCorpName() {
return this.corpName;
}
public void setCorpName(String corpName) {
this.corpName = corpName;
}
}
@@ -0,0 +1,12 @@
package cn.cloudwalk.client.davinci.portal.user.service;
import cn.cloudwalk.client.davinci.portal.user.result.PortalUserDetailResult;
import cn.cloudwalk.cloud.context.CloudwalkCallContext;
import cn.cloudwalk.cloud.exception.ServiceException;
import cn.cloudwalk.cloud.result.CloudwalkResult;
/** 反应堆编译用裁剪契约(宿主侧可提供完整实现)。 */
public interface PortalUserService {
CloudwalkResult<PortalUserDetailResult> getCurrentUserDetail(CloudwalkCallContext context) throws ServiceException;
}
@@ -0,0 +1,38 @@
package cn.cloudwalk.cwos.client.resource;
import cn.cloudwalk.client.davinci.portal.enterprise.service.PortalEnterpriseService;
import cn.cloudwalk.client.davinci.portal.user.service.PortalUserService;
import cn.cloudwalk.cloud.result.CloudwalkResult;
/**
* 占位门面:满足 maven-ninca-crk-from-lib 编译引用。
* 默认返回失败 {@link CloudwalkResult};宿主应用应替换为从 Spring 容器解析 Bean 的实现。
*/
public final class ResourceClient {
private static final String STUB_CODE = "NINCA_STUB_RESOURCE_CLIENT";
private static final String STUB_MSG = "ninca-crk-portal-resource-stubs: replace ResourceClient with runtime SDK wiring";
private static volatile ResourceClient instance;
private ResourceClient() {}
public static ResourceClient getInstance() {
if (instance == null) {
synchronized (ResourceClient.class) {
if (instance == null) {
instance = new ResourceClient();
}
}
}
return instance;
}
public PortalUserService getPortalUserService() {
return ctx -> CloudwalkResult.fail(STUB_CODE, STUB_MSG);
}
public PortalEnterpriseService getPortalEnterpriseService() {
return (param, ctx) -> CloudwalkResult.fail(STUB_CODE, STUB_MSG);
}
}
@@ -0,0 +1,89 @@
package cn.cloudwalk.task.data.dto.param;
import java.io.Serializable;
/** 定时任务注册参数占位(ConferenceJobInit#setClazz 等字段)。 */
public class TaskModifyParam implements Serializable {
private static final long serialVersionUID = 1L;
private String jobDescription;
private String jobName;
private String jobGroup;
private Class<?> clazz;
private Boolean retry;
private Integer priority;
private Long startTime;
private String expression;
private Boolean needListener;
public String getJobDescription() {
return jobDescription;
}
public void setJobDescription(String jobDescription) {
this.jobDescription = jobDescription;
}
public String getJobName() {
return jobName;
}
public void setJobName(String jobName) {
this.jobName = jobName;
}
public String getJobGroup() {
return jobGroup;
}
public void setJobGroup(String jobGroup) {
this.jobGroup = jobGroup;
}
public Class<?> getClazz() {
return clazz;
}
public void setClazz(Class<?> clazz) {
this.clazz = clazz;
}
public Boolean getRetry() {
return retry;
}
public void setRetry(Boolean retry) {
this.retry = retry;
}
public Integer getPriority() {
return priority;
}
public void setPriority(Integer priority) {
this.priority = priority;
}
public Long getStartTime() {
return startTime;
}
public void setStartTime(Long startTime) {
this.startTime = startTime;
}
public String getExpression() {
return expression;
}
public void setExpression(String expression) {
this.expression = expression;
}
public Boolean getNeedListener() {
return needListener;
}
public void setNeedListener(Boolean needListener) {
this.needListener = needListener;
}
}
@@ -0,0 +1,12 @@
package cn.cloudwalk.task.sdk.starter.job;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
/** Quartz Job 占位基类:由具体 Job 实现 {@link #execute(JobExecutionContext)}。 */
public abstract class AbstractJob implements Job {
@Override
public abstract void execute(JobExecutionContext context) throws JobExecutionException;
}
@@ -0,0 +1,9 @@
package cn.cloudwalk.task.service;
import cn.cloudwalk.task.data.dto.param.TaskModifyParam;
/** 定时任务编排占位接口(宿主接入真实 task-sdk)。 */
public interface TaskService {
void addCronJob(TaskModifyParam param) throws Exception;
}