This commit is contained in:
2026-05-21 11:55:32 +08:00
parent 1406ad264f
commit b431473127
3 changed files with 71 additions and 25 deletions
@@ -14,6 +14,7 @@ import com.wisedu.casp.sdk.api.mc.recallMsg.RecallMsgResponse;
import com.wisedu.casp.sdk.core.Client;
import com.wisedu.casp.sdk.core.DefaultClient;
import lombok.extern.slf4j.Slf4j;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.json.Json;
import org.nutz.lang.Lang;
@@ -31,6 +32,9 @@ import java.util.List;
@IocBean
public class SmsJshvcServiceImpl implements SmsService {
@Inject
private TodoPlatformConfig todoPlatformConfig;
@Override
public void sendSingleMessage(String loginName, String content) {
this.sendSingleMessage(loginName, "智慧工会", content);
@@ -109,7 +113,7 @@ public class SmsJshvcServiceImpl implements SmsService {
@Override
public void recallMsg(String msgId) {
try {
Client client = new DefaultClient(TodoPlatformConfig.TODO_PLATFORM_BASE_URL, TodoPlatformConfig.TODO_APP_ID, TodoPlatformConfig.TODO_APP_SECRET);
Client client = createClient();
RecallMsgRequest request = new RecallMsgRequest();
request.setMsgId(msgId);
@@ -143,7 +147,7 @@ public class SmsJshvcServiceImpl implements SmsService {
}
try {
// 创建客户端
Client client = new DefaultClient(TodoPlatformConfig.TODO_PLATFORM_BASE_URL, TodoPlatformConfig.TODO_APP_ID, TodoPlatformConfig.TODO_APP_SECRET);
Client client = createClient();
SendMsgRequest request = new SendMsgRequest();
request.setSubject(title);
request.setContent(content);
@@ -179,4 +183,15 @@ public class SmsJshvcServiceImpl implements SmsService {
log.error("发送企业微信通知失败", e);
}
}
/**
* 创建待办平台消息客户端,平台地址、appId、appSecret 均从 application 配置读取。
*/
private Client createClient() {
return new DefaultClient(
todoPlatformConfig.getTodoPlatformBaseUrl(),
todoPlatformConfig.getTodoAppId(),
todoPlatformConfig.getTodoAppSecret()
);
}
}
@@ -1,30 +1,48 @@
package com.budwk.app.todo.platform;
import lombok.Getter;
import org.nutz.ioc.impl.PropertiesProxy;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
/**
* @ClassName TodoPlatformConfig
* @Author JyuHsin
* @Date 2026/2/25 16:26
* @Version 1.0
* @Description TODO
* @Description 待办平台配置,从 application 配置文件读取平台地址、鉴权参数和接口路径。
*/
@IocBean(create = "init")
@Getter
public class TodoPlatformConfig {
// token 获取
public static final String TOKEN_URL = "/accessToken";
// 待办平台基础地址
public static final String TODO_PLATFORM_BASE_URL = "https://gateway.jshvc.edu.cn";
// 待办平台新增或者修改
public static final String TODO_PLATFORM_SAVE_OR_UPDATE_URL = "/saveOrUpdate";
// 待办平台修改地址
public static final String TODO_PLATFORM_MODIFY_URL = "/modifyInfo";
// 待办平台删除任务地址
public static final String TODO_PLATFORM_DELETE_TASK_URL = "/delete";
// 待办平台删除实例地址
public static final String TODO_PLATFORM_DELETE_INSTANCE_URL = "/realDelete";
@Inject
private PropertiesProxy conf;
private String tokenUrl;
private String todoPlatformBaseUrl;
private String todoPlatformSaveOrUpdateUrl;
private String todoPlatformModifyUrl;
private String todoPlatformDeleteTaskUrl;
private String todoPlatformDeleteInstanceUrl;
private String todoAppId;
private String todoAppSecret;
private String redisKeyTodoAccessToken;
private Long todoRequestTimeout;
public void init() {
// 配置项缺失时保留原硬编码默认值,避免未补齐配置导致已有环境启动失败。
tokenUrl = conf.get("todo-platform.token-url", "/accessToken");
todoPlatformBaseUrl = conf.get("todo-platform.base-url", "https://gateway.jshvc.edu.cn");
todoPlatformSaveOrUpdateUrl = conf.get("todo-platform.save-or-update-url", "/saveOrUpdate");
todoPlatformModifyUrl = conf.get("todo-platform.modify-url", "/modifyInfo");
todoPlatformDeleteTaskUrl = conf.get("todo-platform.delete-task-url", "/delete");
todoPlatformDeleteInstanceUrl = conf.get("todo-platform.delete-instance-url", "/realDelete");
todoAppId = conf.get("todo-platform.app-id", "XXXXXXXXXXXXXXXXXXXXXX");
todoAppSecret = conf.get("todo-platform.app-secret", "XXXXXXXXXXXXXXXXXXXXXX");
redisKeyTodoAccessToken = "todo:token:";
todoRequestTimeout = conf.getLong("todo-platform.request-timeout", 5000L);
}
public static final String TODO_APP_ID = "XXXXXXXXXXXXXXXXXXXXXX";
public static final String TODO_APP_SECRET = "XXXXXXXXXXXXXXXXXXXXXX";
public static final String REDIS_KEY_TODO_ACCESS_TOKEN = "todo:token:";
public static final Long TODO_REQUEST_TIMEOUT = 5000L;
}
@@ -58,6 +58,8 @@ public class TodoServiceImpl implements TodoService {
private RedisService redisService;
@Inject
private FlowEngine flowEngine;
@Inject
private TodoPlatformConfig todoPlatformConfig;
@Override
public void saveTask(ProcessTask task) {
@@ -79,7 +81,7 @@ public class TodoServiceImpl implements TodoService {
List<Processor> processorList = taskActors.stream().map(o -> new Processor(o.getActorAccount())).toList();
// 创建客户端
Client client = new DefaultClient(TodoPlatformConfig.TODO_PLATFORM_BASE_URL, TodoPlatformConfig.TODO_APP_ID, TodoPlatformConfig.TODO_APP_SECRET);
Client client = createClient();
// 创建请求对象
SaveOrUpdateRequest request = new SaveOrUpdateRequest();
// 发起任务
@@ -111,7 +113,7 @@ public class TodoServiceImpl implements TodoService {
insertModel.setApplicationModel(applicationModel);
request.setInsertModel(Collections.singletonList(insertModel));
/*Client channelClient = new DefaultClient(TodoPlatformConfig.TODO_PLATFORM_BASE_URL, TodoPlatformConfig.TODO_APP_ID, TodoPlatformConfig.TODO_APP_SECRET);
/*Client channelClient = createClient();
GetEnableChannelByTypeRequest channelByTypeRequest = new GetEnableChannelByTypeRequest();
channelByTypeRequest.setChannelType(ChannelType_Constants.QYWECHAT);
GetEnableChannelByTypeResponse channelByTypeResponse = channelClient.execute(channelByTypeRequest);
@@ -152,7 +154,7 @@ public class TodoServiceImpl implements TodoService {
ProcessTaskVO taskVO = flowEngine.processTaskService().findById(task.getId());
// 创建客户端
Client client = new DefaultClient(TodoPlatformConfig.TODO_PLATFORM_BASE_URL, TodoPlatformConfig.TODO_APP_ID, TodoPlatformConfig.TODO_APP_SECRET);
Client client = createClient();
// 创建请求对象
SaveOrUpdateRequest request = new SaveOrUpdateRequest();
@@ -193,7 +195,7 @@ public class TodoServiceImpl implements TodoService {
log.info("修改待办任务,任务数据:{}", Json.toJson(task));
try {
// 创建客户端
Client client = new DefaultClient(TodoPlatformConfig.TODO_PLATFORM_BASE_URL, TodoPlatformConfig.TODO_APP_ID, TodoPlatformConfig.TODO_APP_SECRET);
Client client = createClient();
// 创建请求对象
TaskModifyInfoRequest request = new TaskModifyInfoRequest();
// 需要修改什么后面扩展吧
@@ -218,7 +220,7 @@ public class TodoServiceImpl implements TodoService {
log.info("删除待办任务,任务ID{}", taskId);
try {
// 创建客户端
Client client = new DefaultClient(TodoPlatformConfig.TODO_PLATFORM_BASE_URL, TodoPlatformConfig.TODO_APP_ID, TodoPlatformConfig.TODO_APP_SECRET);
Client client = createClient();
// 创建请求对象
TaskRealDeleteRequest request = new TaskRealDeleteRequest();
request.setTaskId(taskId);
@@ -240,7 +242,7 @@ public class TodoServiceImpl implements TodoService {
log.info("删除待办流程,实例ID{}", processInstanceId);
try {
// 创建客户端
Client client = new DefaultClient(TodoPlatformConfig.TODO_PLATFORM_BASE_URL, TodoPlatformConfig.TODO_APP_ID, TodoPlatformConfig.TODO_APP_SECRET);
Client client = createClient();
// 创建请求对象
ProcessInstanceRealDeleteRequest request = new ProcessInstanceRealDeleteRequest();
request.setProcessInstanceId(processInstanceId);
@@ -252,4 +254,15 @@ public class TodoServiceImpl implements TodoService {
log.error("删除流程实例失败", e);
}
}
/**
* 创建待办平台 SDK 客户端,平台地址、appId、appSecret 均从 application 配置读取。
*/
private Client createClient() {
return new DefaultClient(
todoPlatformConfig.getTodoPlatformBaseUrl(),
todoPlatformConfig.getTodoAppId(),
todoPlatformConfig.getTodoAppSecret()
);
}
}