From ad42254ea0834cf23b0f1093ab2ff9acf5e76b53 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Tue, 14 Oct 2025 19:38:47 +0800 Subject: [PATCH] =?UTF-8?q?refactor(task):=20=E7=A7=BB=E9=99=A4=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E6=A8=A1=E5=9D=97=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 删除了对通知模块的包引用 - 移除了通知模块相关的类导入- 清理了与通知功能相关的代码依赖 -优化了任务服务实现类的依赖结构 - 简化了下载通知任务器的代码引用 - 解除了通知工厂类的直接依赖关系 --- .../com/ycwl/basic/notify/NotifyFactory.java | 51 ---------------- .../basic/notify/adapters/INotifyAdapter.java | 11 ---- .../adapters/ServerChanNotifyAdapter.java | 54 ----------------- .../notify/adapters/WxMpSrvNotifyAdapter.java | 60 ------------------- .../basic/notify/entity/NotifyContent.java | 22 ------- .../basic/notify/entity/ServerChanConfig.java | 11 ---- .../basic/notify/entity/WxMpSrvConfig.java | 15 ----- .../ycwl/basic/notify/enums/NotifyType.java | 15 ----- .../starter/NotifyAutoConfigurator.java | 32 ---------- .../starter/config/NotifyConfigItem.java | 13 ---- .../starter/config/OverallNotifyConfig.java | 15 ----- .../task/impl/TaskTaskServiceImpl.java | 4 -- .../task/DownloadNotificationTasker.java | 4 -- 13 files changed, 307 deletions(-) delete mode 100644 src/main/java/com/ycwl/basic/notify/NotifyFactory.java delete mode 100644 src/main/java/com/ycwl/basic/notify/adapters/INotifyAdapter.java delete mode 100644 src/main/java/com/ycwl/basic/notify/adapters/ServerChanNotifyAdapter.java delete mode 100644 src/main/java/com/ycwl/basic/notify/adapters/WxMpSrvNotifyAdapter.java delete mode 100644 src/main/java/com/ycwl/basic/notify/entity/NotifyContent.java delete mode 100644 src/main/java/com/ycwl/basic/notify/entity/ServerChanConfig.java delete mode 100644 src/main/java/com/ycwl/basic/notify/entity/WxMpSrvConfig.java delete mode 100644 src/main/java/com/ycwl/basic/notify/enums/NotifyType.java delete mode 100644 src/main/java/com/ycwl/basic/notify/starter/NotifyAutoConfigurator.java delete mode 100644 src/main/java/com/ycwl/basic/notify/starter/config/NotifyConfigItem.java delete mode 100644 src/main/java/com/ycwl/basic/notify/starter/config/OverallNotifyConfig.java diff --git a/src/main/java/com/ycwl/basic/notify/NotifyFactory.java b/src/main/java/com/ycwl/basic/notify/NotifyFactory.java deleted file mode 100644 index e7a6a846..00000000 --- a/src/main/java/com/ycwl/basic/notify/NotifyFactory.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.ycwl.basic.notify; - -import com.ycwl.basic.notify.adapters.INotifyAdapter; -import com.ycwl.basic.notify.adapters.ServerChanNotifyAdapter; -import com.ycwl.basic.notify.adapters.WxMpSrvNotifyAdapter; -import com.ycwl.basic.notify.enums.NotifyType; - -import java.util.HashMap; -import java.util.Map; - -public class NotifyFactory { - public static INotifyAdapter get(NotifyType type) { - return switch (type) { - case SERVER_CHAN -> new ServerChanNotifyAdapter(); - case WX_MP_SRV -> new WxMpSrvNotifyAdapter(); - default -> throw new RuntimeException("不支持的通知类型"); - }; - } - - public static INotifyAdapter get(NotifyType type, Map config) { - INotifyAdapter adapter = get(type); - adapter.loadConfig(config); - return adapter; - } - - protected static Map namedNotifier = new HashMap<>(); - protected static INotifyAdapter defaultNotifier = null; - - public static void register(String name, INotifyAdapter adapter) { - namedNotifier.put(name, adapter); - } - - public static INotifyAdapter via(String name) { - INotifyAdapter adapter = namedNotifier.get(name); - if (adapter == null) { - throw new RuntimeException("未定义的通知方式:"+name); - } - return adapter; - } - - public static INotifyAdapter via() { - if (defaultNotifier == null) { - throw new RuntimeException("未定义默认通知方式"); - } - return defaultNotifier; - } - - public static void setDefault(String defaultStorage) { - NotifyFactory.defaultNotifier = via(defaultStorage); - } -} diff --git a/src/main/java/com/ycwl/basic/notify/adapters/INotifyAdapter.java b/src/main/java/com/ycwl/basic/notify/adapters/INotifyAdapter.java deleted file mode 100644 index 93bad9b4..00000000 --- a/src/main/java/com/ycwl/basic/notify/adapters/INotifyAdapter.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.ycwl.basic.notify.adapters; - -import com.ycwl.basic.notify.entity.NotifyContent; - -import java.util.Map; - -public interface INotifyAdapter { - void loadConfig(Map _config); - - void sendTo(NotifyContent notifyContent, String to); -} diff --git a/src/main/java/com/ycwl/basic/notify/adapters/ServerChanNotifyAdapter.java b/src/main/java/com/ycwl/basic/notify/adapters/ServerChanNotifyAdapter.java deleted file mode 100644 index 2e4af1e8..00000000 --- a/src/main/java/com/ycwl/basic/notify/adapters/ServerChanNotifyAdapter.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.ycwl.basic.notify.adapters; - -import cn.hutool.http.HttpUtil; -import com.ycwl.basic.notify.entity.NotifyContent; -import com.ycwl.basic.notify.entity.ServerChanConfig; - -import java.util.HashMap; -import java.util.Map; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public class ServerChanNotifyAdapter implements INotifyAdapter { - ServerChanConfig config; - - @Override - public void loadConfig(Map _config) { - ServerChanConfig config = new ServerChanConfig(); - config.setKey(_config.get("key")); - config.checkEverythingOK(); - this.config = config; - } - - @Override - public void sendTo(NotifyContent notifyContent, String to) { - scSend(notifyContent.getTitle(), notifyContent.getContent(), config.getKey()); - } - - public static String scSend(String title, String content, String key) { - try { - String api; - - // 判断 sendkey 是否以 "sctp" 开头,并提取数字部分拼接 URL - if (key.startsWith("sctp")) { - Pattern pattern = Pattern.compile("sctp(\\d+)t"); - Matcher matcher = pattern.matcher(key); - if (matcher.find()) { - String num = matcher.group(1); - api = "https://" + num + ".push.ft07.com/send/" + key +".send"; - } else { - throw new IllegalArgumentException("Invalid sendkey format for sctp"); - } - } else { - api = "https://sctapi.ftqq.com/" + key + ".send"; - } - Map body = new HashMap<>(); - body.put("title", title); - body.put("desp", content); - return HttpUtil.post(api, body); - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } -} diff --git a/src/main/java/com/ycwl/basic/notify/adapters/WxMpSrvNotifyAdapter.java b/src/main/java/com/ycwl/basic/notify/adapters/WxMpSrvNotifyAdapter.java deleted file mode 100644 index c89a383a..00000000 --- a/src/main/java/com/ycwl/basic/notify/adapters/WxMpSrvNotifyAdapter.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.ycwl.basic.notify.adapters; - -import cn.hutool.http.HttpUtil; -import com.ycwl.basic.utils.JacksonUtil; -import com.ycwl.basic.notify.entity.NotifyContent; -import com.ycwl.basic.notify.entity.WxMpSrvConfig; - -import java.util.Date; -import java.util.Map; - -public class WxMpSrvNotifyAdapter implements INotifyAdapter{ - private WxMpSrvConfig config; - - @Override - public void loadConfig(Map _config) { - WxMpSrvConfig config = new WxMpSrvConfig(); - config.setAppId(_config.get("appId")); - config.setAppSecret(_config.get("appSecret")); - if (_config.containsKey("state")) { - config.setState(_config.get("state")); - } - config.checkEverythingOK(); - this.config = config; - } - - @Override - public void sendTo(NotifyContent notifyContent, String openId) { - Map params = notifyContent.getParams(); - params.put("touser", openId); - params.put("miniprogram_state", config.getState()); - sendServiceNotification(params); - } - - private static final String SEND_TEMPLATE_MESSAGE_URL = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=%s"; - - private static final String ACCESS_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s"; - private String ACCESS_TOKEN = ""; - private Date expireTime = new Date(); - - private String getAccessToken() { - if (ACCESS_TOKEN != null && !ACCESS_TOKEN.isEmpty()) { - if (expireTime.getTime() > System.currentTimeMillis()) { - return ACCESS_TOKEN; - } - } - String url = String.format(ACCESS_TOKEN_URL, config.getAppId(), config.getAppSecret()); - String response = HttpUtil.get(url); - Map jsonObject = JacksonUtil.parseObject(response, Map.class); - ACCESS_TOKEN = (String) jsonObject.get("access_token"); - Integer expiresIn = (Integer) jsonObject.get("expires_in"); - expireTime = new Date(System.currentTimeMillis() + (expiresIn != null ? expiresIn : 7200) * 1000); - return ACCESS_TOKEN; - } - - public void sendServiceNotification(Map params) { - String url = String.format(SEND_TEMPLATE_MESSAGE_URL, getAccessToken()); - String response = HttpUtil.post(url, JacksonUtil.toJSONString(params)); - System.out.println(response); - } -} diff --git a/src/main/java/com/ycwl/basic/notify/entity/NotifyContent.java b/src/main/java/com/ycwl/basic/notify/entity/NotifyContent.java deleted file mode 100644 index d6527f83..00000000 --- a/src/main/java/com/ycwl/basic/notify/entity/NotifyContent.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.ycwl.basic.notify.entity; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.HashMap; -import java.util.Map; - -@Data -@NoArgsConstructor -@AllArgsConstructor -public class NotifyContent { - private String title; - private String content; - private Map params = new HashMap<>(); - - public NotifyContent(String title, String content) { - this.title = title; - this.content = content; - } -} diff --git a/src/main/java/com/ycwl/basic/notify/entity/ServerChanConfig.java b/src/main/java/com/ycwl/basic/notify/entity/ServerChanConfig.java deleted file mode 100644 index 7a2a91d7..00000000 --- a/src/main/java/com/ycwl/basic/notify/entity/ServerChanConfig.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.ycwl.basic.notify.entity; - -import lombok.Data; - -@Data -public class ServerChanConfig { - private String key; - - public void checkEverythingOK() { - } -} diff --git a/src/main/java/com/ycwl/basic/notify/entity/WxMpSrvConfig.java b/src/main/java/com/ycwl/basic/notify/entity/WxMpSrvConfig.java deleted file mode 100644 index e2a95cae..00000000 --- a/src/main/java/com/ycwl/basic/notify/entity/WxMpSrvConfig.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.ycwl.basic.notify.entity; - -import lombok.Data; - -@Data -public class WxMpSrvConfig { - private String appId; - private String appSecret; - private String state = "formal"; - private String templateId; - - public void checkEverythingOK() { - - } -} diff --git a/src/main/java/com/ycwl/basic/notify/enums/NotifyType.java b/src/main/java/com/ycwl/basic/notify/enums/NotifyType.java deleted file mode 100644 index b16b2860..00000000 --- a/src/main/java/com/ycwl/basic/notify/enums/NotifyType.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.ycwl.basic.notify.enums; - -import lombok.Getter; - -@Getter -public enum NotifyType { - WX_MP_SRV("WX_MP_SRV"), - SERVER_CHAN("SERVER_CHAN"); - - private final String type; - - NotifyType(String type) { - this.type = type; - } -} diff --git a/src/main/java/com/ycwl/basic/notify/starter/NotifyAutoConfigurator.java b/src/main/java/com/ycwl/basic/notify/starter/NotifyAutoConfigurator.java deleted file mode 100644 index b06a234b..00000000 --- a/src/main/java/com/ycwl/basic/notify/starter/NotifyAutoConfigurator.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.ycwl.basic.notify.starter; - -import com.ycwl.basic.notify.NotifyFactory; -import com.ycwl.basic.notify.adapters.INotifyAdapter; -import com.ycwl.basic.notify.starter.config.NotifyConfigItem; -import com.ycwl.basic.notify.starter.config.OverallNotifyConfig; -import org.apache.commons.lang3.StringUtils; -import org.springframework.context.annotation.Configuration; - -@Configuration -public class NotifyAutoConfigurator { - private final OverallNotifyConfig config; - public NotifyAutoConfigurator(OverallNotifyConfig config) { - this.config = config; - if (config != null) { - if (config.getConfigs() != null) { - loadConfig(); - } - if (StringUtils.isNotBlank(config.getDefaultUse())) { - NotifyFactory.setDefault(config.getDefaultUse()); - } - } - } - - private void loadConfig() { - for (NotifyConfigItem item : config.getConfigs()) { - INotifyAdapter adapter = NotifyFactory.get(item.getType()); - adapter.loadConfig(item.getConfig()); - NotifyFactory.register(item.getName(), adapter); - } - } -} diff --git a/src/main/java/com/ycwl/basic/notify/starter/config/NotifyConfigItem.java b/src/main/java/com/ycwl/basic/notify/starter/config/NotifyConfigItem.java deleted file mode 100644 index 711b0c57..00000000 --- a/src/main/java/com/ycwl/basic/notify/starter/config/NotifyConfigItem.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.ycwl.basic.notify.starter.config; - -import com.ycwl.basic.notify.enums.NotifyType; -import lombok.Data; - -import java.util.Map; - -@Data -public class NotifyConfigItem { - private String name; - private NotifyType type; - private Map config; -} diff --git a/src/main/java/com/ycwl/basic/notify/starter/config/OverallNotifyConfig.java b/src/main/java/com/ycwl/basic/notify/starter/config/OverallNotifyConfig.java deleted file mode 100644 index 93c475be..00000000 --- a/src/main/java/com/ycwl/basic/notify/starter/config/OverallNotifyConfig.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.ycwl.basic.notify.starter.config; - -import lombok.Data; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.stereotype.Component; - -import java.util.List; - -@Component -@ConfigurationProperties(prefix = "notify") -@Data -public class OverallNotifyConfig { - private String defaultUse; - private List configs; -} diff --git a/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java b/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java index a8ed5f5e..ce47643f 100644 --- a/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java @@ -41,10 +41,6 @@ import com.ycwl.basic.model.task.req.TaskReqVo; import com.ycwl.basic.model.task.req.TaskSuccessReqVo; import com.ycwl.basic.model.task.req.WorkerAuthReqVo; import com.ycwl.basic.model.task.resp.TaskSyncRespVo; -import com.ycwl.basic.notify.NotifyFactory; -import com.ycwl.basic.notify.adapters.INotifyAdapter; -import com.ycwl.basic.notify.entity.NotifyContent; -import com.ycwl.basic.notify.enums.NotifyType; import com.ycwl.basic.repository.DeviceRepository; import com.ycwl.basic.repository.FaceRepository; import com.ycwl.basic.repository.RenderWorkerRepository; diff --git a/src/main/java/com/ycwl/basic/task/DownloadNotificationTasker.java b/src/main/java/com/ycwl/basic/task/DownloadNotificationTasker.java index a81477fb..f653acf9 100644 --- a/src/main/java/com/ycwl/basic/task/DownloadNotificationTasker.java +++ b/src/main/java/com/ycwl/basic/task/DownloadNotificationTasker.java @@ -14,10 +14,6 @@ import com.ycwl.basic.model.pc.mp.MpConfigEntity; import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity; import com.ycwl.basic.model.pc.scenic.entity.ScenicEntity; import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery; -import com.ycwl.basic.notify.NotifyFactory; -import com.ycwl.basic.notify.adapters.INotifyAdapter; -import com.ycwl.basic.notify.entity.NotifyContent; -import com.ycwl.basic.notify.enums.NotifyType; import com.ycwl.basic.repository.ScenicRepository; import com.ycwl.basic.repository.TemplateRepository; import com.ycwl.basic.integration.common.manager.ScenicConfigManager;