From 6590df3c04a513d1e577ed0ecc23898099731250 Mon Sep 17 00:00:00 2001 From: zuoqinbo Date: Tue, 17 Oct 2023 19:03:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=9C=BA=E5=99=A8=E4=BA=BA=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E6=A8=A1=E6=9D=BF=E6=8E=A5=E5=8F=A3=E8=81=94=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../compile/default-compile/inputFiles.lst | 2 +- .../im/center/common/enums/AppTypeEnum.java | 9 ++ im-center-server/im-center-server.iml | 72 ++++----- im-center-server/pom.xml | 2 - .../BaiduAccessTokenRefreshJobHandler.java | 44 ------ .../java/cn/axzo/im/job/BaseJobHandler.java | 66 ++++----- .../axzo/im/job/SyncImAccountJobHandler.java | 40 +++++ .../java/cn/axzo/im/job/XxlJobConfig.java | 140 +++++++++--------- .../cn/axzo/im/service/RobotInfoService.java | 12 +- .../im/service/RobotMsgTemplateService.java | 37 ++++- pom.xml | 7 +- 11 files changed, 231 insertions(+), 200 deletions(-) delete mode 100644 im-center-server/src/main/java/cn/axzo/im/job/BaiduAccessTokenRefreshJobHandler.java create mode 100644 im-center-server/src/main/java/cn/axzo/im/job/SyncImAccountJobHandler.java diff --git a/im-center-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/im-center-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index 58a8cc1..c0e1559 100644 --- a/im-center-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/im-center-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1,5 +1,6 @@ D:\im-center\im-center-api\src\main\java\cn\axzo\im\center\api\feign\AccountApi.java D:\im-center\im-center-api\src\main\java\cn\axzo\im\center\api\feign\RobotTagApi.java +D:\im-center\im-center-api\src\main\java\cn\axzo\im\center\api\vo\req\RobotMsgTemplatePageQuery.java D:\im-center\im-center-api\src\main\java\cn\axzo\im\center\api\feign\MessageApi.java D:\im-center\im-center-api\src\main\java\cn\axzo\im\center\api\vo\resp\UserAccountResp.java D:\im-center\im-center-api\src\main\java\cn\axzo\im\center\api\vo\resp\MsgTemplateResp.java @@ -11,7 +12,6 @@ D:\im-center\im-center-api\src\main\java\cn\axzo\im\center\api\vo\req\UpdateRobo D:\im-center\im-center-api\src\main\java\cn\axzo\im\center\api\vo\resp\MessageDispatchResp.java D:\im-center\im-center-api\src\main\java\cn\axzo\im\center\api\vo\req\RobotMsgTemplateReq.java D:\im-center\im-center-api\src\main\java\cn\axzo\im\center\api\vo\req\RobotAccountReq.java -D:\im-center\im-center-api\src\main\java\cn\axzo\im\center\api\vo\req\MsgTemplatePageQuery.java D:\im-center\im-center-api\src\main\java\cn\axzo\im\center\api\vo\req\UserAccountReq.java D:\im-center\im-center-api\src\main\java\cn\axzo\im\center\api\vo\resp\MessageTemplateResp.java D:\im-center\im-center-api\src\main\java\cn\axzo\im\center\api\vo\req\RobotTagReq.java diff --git a/im-center-common/src/main/java/cn/axzo/im/center/common/enums/AppTypeEnum.java b/im-center-common/src/main/java/cn/axzo/im/center/common/enums/AppTypeEnum.java index 25b5602..e5addb6 100644 --- a/im-center-common/src/main/java/cn/axzo/im/center/common/enums/AppTypeEnum.java +++ b/im-center-common/src/main/java/cn/axzo/im/center/common/enums/AppTypeEnum.java @@ -14,8 +14,17 @@ import org.apache.commons.lang3.StringUtils; @Getter public enum AppTypeEnum { + /** + * 工人端 + */ WORKER("cm", "工人端"), + /** + * 企业管理端 + */ ENTERPRISE("cmp", "企业管理端"), + /** + * 服务器 机器人 + */ SYSTEM("system", "服务器"); diff --git a/im-center-server/im-center-server.iml b/im-center-server/im-center-server.iml index 8365df9..029d400 100644 --- a/im-center-server/im-center-server.iml +++ b/im-center-server/im-center-server.iml @@ -68,6 +68,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -191,21 +228,12 @@ - - - - - - - - - @@ -261,31 +289,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - @@ -333,7 +336,6 @@ - diff --git a/im-center-server/pom.xml b/im-center-server/pom.xml index d83abf7..8e94379 100644 --- a/im-center-server/pom.xml +++ b/im-center-server/pom.xml @@ -29,12 +29,10 @@ cn.axzo.msgcenter msg-center-api - 1.0.0-SNAPSHOT com.xuxueli xxl-job-core - 2.2.0 cn.axzo.framework diff --git a/im-center-server/src/main/java/cn/axzo/im/job/BaiduAccessTokenRefreshJobHandler.java b/im-center-server/src/main/java/cn/axzo/im/job/BaiduAccessTokenRefreshJobHandler.java deleted file mode 100644 index 3fcda77..0000000 --- a/im-center-server/src/main/java/cn/axzo/im/job/BaiduAccessTokenRefreshJobHandler.java +++ /dev/null @@ -1,44 +0,0 @@ -//package cn.axzo.im.job; -// -//import cn.axzo.outman.client.task.BaseJobHandler; -//import cn.axzo.outman.common.constants.CommonConstants; -//import cn.axzo.outman.service.api.TaskService; -//import cn.azxo.framework.common.utils.LogUtil; -//import com.xxl.job.core.biz.model.ReturnT; -//import com.xxl.job.core.handler.annotation.XxlJob; -//import lombok.extern.slf4j.Slf4j; -//import org.springframework.stereotype.Component; -// -//import javax.annotation.Resource; -// -///** -// * 百度访问令牌刷新定时任务 -// * -// * @author zhaoyong -// * @see BaiduAccessTokenRefreshJobHandler -// * @since 2021-06-28 21:58 -// */ -//@Slf4j -//@Component -//public class BaiduAccessTokenRefreshJobHandler extends BaseJobHandler { -// -// @Resource(name = "taskService") -// private TaskService taskService; -// -// @Override -// @XxlJob("baiduAccessTokenRefreshJobHandler") -// public ReturnT execute(String param) throws Exception { -// return jobLoggerTemplate.execute(CommonConstants.CTX_LOG_ID_MDC, () -> { -// log.info("BaiduAccessTokenRefreshJobHandler.execute task Start ......"); -// try { -// taskService.refreshBaiduAccessToken(); -// } catch (Exception e) { -// LogUtil.error("BaiduAccessTokenRefreshJobHandler.execute is error", e); -// return ReturnT.FAIL; -// } -// log.info("BaiduAccessTokenRefreshJobHandler.execute task End ......"); -// return ReturnT.SUCCESS; -// }); -// } -// -//} diff --git a/im-center-server/src/main/java/cn/axzo/im/job/BaseJobHandler.java b/im-center-server/src/main/java/cn/axzo/im/job/BaseJobHandler.java index 1129115..763751d 100644 --- a/im-center-server/src/main/java/cn/axzo/im/job/BaseJobHandler.java +++ b/im-center-server/src/main/java/cn/axzo/im/job/BaseJobHandler.java @@ -1,33 +1,33 @@ -//package cn.axzo.im.job; -// -//import cn.azxo.framework.common.logger.JobLoggerTemplate; -//import cn.azxo.framework.common.service.JobParamResolver; -//import com.xxl.job.core.biz.model.ReturnT; -// -//import javax.annotation.Resource; -// -///** -// * 基础定时任务 -// * -// * @author zhaoyong -// * @see BaseJobHandler -// * @since 2021-06-23 18:32 -// */ -//public abstract class BaseJobHandler { -// -// @Resource(name = "jobLoggerTemplate") -// protected JobLoggerTemplate jobLoggerTemplate; -// -// @Resource(name = "jobParamResolver") -// protected JobParamResolver jobParamResolver; -// -// /** -// * 定时任务执行逻辑 -// * -// * @param param -// * @return -// * @throws Exception -// */ -// public abstract ReturnT execute(String param) throws Exception; -// -//} +package cn.axzo.im.job; + +import cn.azxo.framework.common.logger.JobLoggerTemplate; +import cn.azxo.framework.common.service.JobParamResolver; +import com.xxl.job.core.biz.model.ReturnT; + +import javax.annotation.Resource; + +/** + * 基础定时任务 + * + * @author zhaoyong + * @see BaseJobHandler + * @since 2021-06-23 18:32 + */ +public abstract class BaseJobHandler { + + @Resource(name = "jobLoggerTemplate") + protected JobLoggerTemplate jobLoggerTemplate; + + @Resource(name = "jobParamResolver") + protected JobParamResolver jobParamResolver; + + /** + * 定时任务执行逻辑 + * + * @param param + * @return + * @throws Exception + */ + public abstract ReturnT execute(String param) throws Exception; + +} diff --git a/im-center-server/src/main/java/cn/axzo/im/job/SyncImAccountJobHandler.java b/im-center-server/src/main/java/cn/axzo/im/job/SyncImAccountJobHandler.java new file mode 100644 index 0000000..e10c95f --- /dev/null +++ b/im-center-server/src/main/java/cn/axzo/im/job/SyncImAccountJobHandler.java @@ -0,0 +1,40 @@ +package cn.axzo.im.job; + +import cn.azxo.framework.common.utils.LogUtil; +import com.xxl.job.core.biz.model.ReturnT; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 百度访问令牌刷新定时任务 + * + * @author zhaoyong + * @see SyncImAccountJobHandler + * @since 2021-06-28 21:58 + */ +@Slf4j +@Component +public class SyncImAccountJobHandler extends BaseJobHandler { + /** + * MDC 日志 KEY + */ + public static final String CTX_LOG_ID_MDC = "ctxLogId"; + + @Override + @XxlJob("syncImAccountJobHandler") + public ReturnT execute(String param) throws Exception { + return jobLoggerTemplate.execute(CTX_LOG_ID_MDC, () -> { + log.info("SyncImAccountJobHandler.execute task Start ......"); + try { + System.out.println("sync im account to user info"); + } catch (Exception e) { + LogUtil.error("SyncImAccountJobHandler.execute is error", e); + return ReturnT.FAIL; + } + log.info("SyncImAccountJobHandler.execute task End ......"); + return ReturnT.SUCCESS; + }); + } + +} diff --git a/im-center-server/src/main/java/cn/axzo/im/job/XxlJobConfig.java b/im-center-server/src/main/java/cn/axzo/im/job/XxlJobConfig.java index e0feafd..54934b8 100644 --- a/im-center-server/src/main/java/cn/axzo/im/job/XxlJobConfig.java +++ b/im-center-server/src/main/java/cn/axzo/im/job/XxlJobConfig.java @@ -1,70 +1,70 @@ -//package cn.axzo.im.job; -// -//import cn.azxo.framework.common.logger.JobLoggerTemplate; -//import cn.azxo.framework.common.service.JobParamResolver; -//import cn.azxo.framework.common.spring.condition.NonLocalEnvironment; -//import com.xxl.job.core.executor.impl.XxlJobSpringExecutor; -//import lombok.extern.slf4j.Slf4j; -//import org.springframework.beans.factory.annotation.Value; -//import org.springframework.context.annotation.Bean; -//import org.springframework.context.annotation.Configuration; -// -///** -// * Xxl Job Config -// * -// * @author zhaoyong -// * @see XxlJobConfig -// * @since 2021-06-23 18:28 -// */ -//@Slf4j -//@Configuration -//public class XxlJobConfig { -// -// @Value("${xxl.job.admin.addresses}") -// private String adminAddresses; -// -// @Value("${xxl.job.executor.appName}") -// private String appName; -// -// @Value("${xxl.job.executor.ip:}") -// private String ip; -// -// @Value("${xxl.job.executor.port}") -// private int port; -// -// @Value("${xxl.job.accessToken:}") -// private String accessToken; -// -// @Value("${xxl.job.executor.logPath:}") -// private String logPath; -// -// @Value("${xxl.job.executor.logRetentionDays}") -// private int logRetentionDays; -// -// @Bean -// @NonLocalEnvironment -// public XxlJobSpringExecutor xxlJobExecutor() { -// log.info(">>>>>>>>>>> axzo outman service xxl-job config init."); -// XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); -// xxlJobSpringExecutor.setAdminAddresses(adminAddresses); -// xxlJobSpringExecutor.setAppname(appName); -// xxlJobSpringExecutor.setIp(ip); -// xxlJobSpringExecutor.setPort(port); -// xxlJobSpringExecutor.setAccessToken(accessToken); -// xxlJobSpringExecutor.setLogPath(logPath); -// xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays); -// return xxlJobSpringExecutor; -// } -// -// -// @Bean("jobParamResolver") -// public JobParamResolver jobParamResolver() { -// return new JobParamResolver(); -// } -// -// @Bean("jobLoggerTemplate") -// public JobLoggerTemplate jobLoggerTemplate() { -// return new JobLoggerTemplate(); -// } -// -//} +package cn.axzo.im.job; + +import cn.azxo.framework.common.logger.JobLoggerTemplate; +import cn.azxo.framework.common.service.JobParamResolver; +import cn.azxo.framework.common.spring.condition.NonLocalEnvironment; +import com.xxl.job.core.executor.impl.XxlJobSpringExecutor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * Xxl Job Config + * + * @author zhaoyong + * @see XxlJobConfig + * @since 2021-06-23 18:28 + */ +@Slf4j +@Configuration +public class XxlJobConfig { + + @Value("${xxl.job.admin.addresses}") + private String adminAddresses; + + @Value("${xxl.job.executor.appName}") + private String appName; + + @Value("${xxl.job.executor.ip:}") + private String ip; + + @Value("${xxl.job.executor.port}") + private int port; + + @Value("${xxl.job.accessToken:}") + private String accessToken; + + @Value("${xxl.job.executor.logPath:}") + private String logPath; + + @Value("${xxl.job.executor.logRetentionDays}") + private int logRetentionDays; + + @Bean + @NonLocalEnvironment + public XxlJobSpringExecutor xxlJobExecutor() { + log.info("----axzo im-center service xxl-job config init---"); + XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); + xxlJobSpringExecutor.setAdminAddresses(adminAddresses); + xxlJobSpringExecutor.setAppname(appName); + xxlJobSpringExecutor.setIp(ip); + xxlJobSpringExecutor.setPort(port); + xxlJobSpringExecutor.setAccessToken(accessToken); + xxlJobSpringExecutor.setLogPath(logPath); + xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays); + return xxlJobSpringExecutor; + } + + + @Bean("jobParamResolver") + public JobParamResolver jobParamResolver() { + return new JobParamResolver(); + } + + @Bean("jobLoggerTemplate") + public JobLoggerTemplate jobLoggerTemplate() { + return new JobLoggerTemplate(); + } + +} diff --git a/im-center-server/src/main/java/cn/axzo/im/service/RobotInfoService.java b/im-center-server/src/main/java/cn/axzo/im/service/RobotInfoService.java index a9baed1..97766e6 100644 --- a/im-center-server/src/main/java/cn/axzo/im/service/RobotInfoService.java +++ b/im-center-server/src/main/java/cn/axzo/im/service/RobotInfoService.java @@ -154,11 +154,11 @@ public class RobotInfoService { } public PageResp queryRobotInfoList(RobotPageQuery robotInfoQuery) { - IPage robotInfoIPage = robotInfoDao.queryRobotInfoOfPage(robotInfoQuery); - List list = BeanMapper.copyList(robotInfoIPage.getRecords(), RobotInfoResp.class); - PageResp pageOfRobotInfoResp = PageResp.list(robotInfoIPage.getCurrent(), robotInfoIPage.getSize(), - robotInfoIPage.getTotal(), list); - list.forEach(robotInfoResp -> { + IPage robotInfoPage = robotInfoDao.queryRobotInfoOfPage(robotInfoQuery); + List robotInfoRespList = BeanMapper.copyList(robotInfoPage.getRecords(), RobotInfoResp.class); + PageResp pageOfRobotInfoResp = PageResp.list(robotInfoPage.getCurrent(), robotInfoPage.getSize(), + robotInfoPage.getTotal(), robotInfoRespList); + robotInfoRespList.forEach(robotInfoResp -> { RobotInfo robotInfo = robotInfoDao.lambdaQuery().eq(RobotInfo::getIsDelete, 0) .eq(RobotInfo::getId, robotInfoResp.getId()).one(); if (robotInfo == null) { @@ -173,7 +173,7 @@ public class RobotInfoService { robotTag.setUseCount(useCount); }); }); - list.forEach(this::fillRobotRespOfMsgTemplate); + robotInfoRespList.forEach(this::fillRobotRespOfMsgTemplate); return pageOfRobotInfoResp; } diff --git a/im-center-server/src/main/java/cn/axzo/im/service/RobotMsgTemplateService.java b/im-center-server/src/main/java/cn/axzo/im/service/RobotMsgTemplateService.java index efaa0e6..b77b6eb 100644 --- a/im-center-server/src/main/java/cn/axzo/im/service/RobotMsgTemplateService.java +++ b/im-center-server/src/main/java/cn/axzo/im/service/RobotMsgTemplateService.java @@ -10,6 +10,10 @@ import cn.axzo.im.dao.repository.RobotInfoDao; import cn.axzo.im.dao.repository.RobotMsgTemplateDao; import cn.axzo.im.entity.RobotInfo; import cn.axzo.im.entity.RobotMsgTemplate; +import cn.axzo.msg.center.service.template.client.MessageTemplateClient; +import cn.axzo.msg.center.service.template.response.MessageTemplatePageResponse; +import cn.azxo.framework.common.model.CommonResponse; +import cn.azxo.framework.common.utils.StringUtils; import com.google.common.collect.Lists; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -19,7 +23,9 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.Date; import java.util.List; +import java.util.function.Function; import java.util.stream.Collectors; +import java.util.stream.Stream; /** * 机器人消息模板服务 @@ -36,6 +42,10 @@ public class RobotMsgTemplateService { @Resource private RobotMsgTemplateDao robotMsgTemplateDao; + + @Resource + private MessageTemplateClient messageTemplateClient; + @Resource private RobotInfoDao robotInfoDao; @@ -93,14 +103,25 @@ public class RobotMsgTemplateService { if (CollectionUtils.isEmpty(msgTemplateIds)) { return Lists.newArrayList(); } - List templateRespList = msgTemplateIds.stream().map(msgTemplateId -> { - //TODO 根据msgTemplateId查询 显示排序问题 - RobotMsgTemplateResp template = new RobotMsgTemplateResp(); - template.setMsgTemplateId(msgTemplateId); - template.setStatus("上架啦"); - return template; - }).collect(Collectors.toList()); - return templateRespList; + CommonResponse> commonResponse = messageTemplateClient.listByCodes(msgTemplateIds); + List templatePageResponses = commonResponse.getData(); + if (CollectionUtils.isNotEmpty(templatePageResponses)) { + List robotMsgTemplates = templatePageResponses.stream().map(messageTemplatePageResponse -> { + RobotMsgTemplateResp robotMsgTemplateResp = new RobotMsgTemplateResp(); + + robotMsgTemplateResp.setMsgTemplateId(messageTemplatePageResponse.getTemplateCode()); + robotMsgTemplateResp.setStatus(messageTemplatePageResponse.getStatus().getDesc()); + robotMsgTemplateResp.setMsgCategory(StringUtils.join(messageTemplatePageResponse.getGroupNodeNamePaths(), "|")); + robotMsgTemplateResp.setMsgContent(messageTemplatePageResponse.getContent()); + robotMsgTemplateResp.setMsgHeader(messageTemplatePageResponse.getTitle()); + robotMsgTemplateResp.setMsgType(messageTemplatePageResponse.getCategory().getMessage()); + robotMsgTemplateResp.setMsgName(messageTemplatePageResponse.getTemplateName()); + return robotMsgTemplateResp; + }).collect(Collectors.toList()); + + return robotMsgTemplates; + } + return Lists.newArrayList(); } public List queryRobotIdByTemplate(String templateId) { diff --git a/pom.xml b/pom.xml index 5d5154a..4d63a2a 100644 --- a/pom.xml +++ b/pom.xml @@ -54,8 +54,13 @@ cn.axzo.msgcenter msg-center-api + 1.0.0-SNAPSHOT + + + com.xuxueli + xxl-job-core + 2.2.0 - cn.axzo.im.center im-center-common