From e7f246acd3a61cde79ffeb4f7486d485bd5f43aa Mon Sep 17 00:00:00 2001 From: zuoqinbo Date: Tue, 17 Oct 2023 16:14:18 +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?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../im/center/api/vo/resp/RobotInfoResp.java | 5 ++ im-center-server/pom.xml | 5 ++ .../BaiduAccessTokenRefreshJobHandler.java | 44 ++++++++++++ .../java/cn/axzo/im/job/BaseJobHandler.java | 33 +++++++++ .../java/cn/axzo/im/job/XxlJobConfig.java | 70 +++++++++++++++++++ .../cn/axzo/im/service/RobotInfoService.java | 16 +++++ 6 files changed, 173 insertions(+) create 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/BaseJobHandler.java create mode 100644 im-center-server/src/main/java/cn/axzo/im/job/XxlJobConfig.java diff --git a/im-center-api/src/main/java/cn/axzo/im/center/api/vo/resp/RobotInfoResp.java b/im-center-api/src/main/java/cn/axzo/im/center/api/vo/resp/RobotInfoResp.java index 33c06c7..e5f230e 100644 --- a/im-center-api/src/main/java/cn/axzo/im/center/api/vo/resp/RobotInfoResp.java +++ b/im-center-api/src/main/java/cn/axzo/im/center/api/vo/resp/RobotInfoResp.java @@ -13,6 +13,11 @@ import java.util.List; */ @Data public class RobotInfoResp { + + /** + * 主键ID + */ + private Long id; /** * 机器人ID */ diff --git a/im-center-server/pom.xml b/im-center-server/pom.xml index eefaa88..d83abf7 100644 --- a/im-center-server/pom.xml +++ b/im-center-server/pom.xml @@ -31,6 +31,11 @@ msg-center-api 1.0.0-SNAPSHOT + + com.xuxueli + xxl-job-core + 2.2.0 + cn.axzo.framework axzo-web-spring-boot-starter 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 new file mode 100644 index 0000000..3fcda77 --- /dev/null +++ b/im-center-server/src/main/java/cn/axzo/im/job/BaiduAccessTokenRefreshJobHandler.java @@ -0,0 +1,44 @@ +//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 new file mode 100644 index 0000000..1129115 --- /dev/null +++ b/im-center-server/src/main/java/cn/axzo/im/job/BaseJobHandler.java @@ -0,0 +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; +// +//} 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 new file mode 100644 index 0000000..e0feafd --- /dev/null +++ b/im-center-server/src/main/java/cn/axzo/im/job/XxlJobConfig.java @@ -0,0 +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(); +// } +// +//} 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 d10c7c5..a9baed1 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 @@ -29,6 +29,7 @@ import javax.validation.Valid; import java.util.Date; import java.util.List; import java.util.UUID; +import java.util.function.Consumer; import java.util.stream.Collectors; /** @@ -157,6 +158,21 @@ public class RobotInfoService { List list = BeanMapper.copyList(robotInfoIPage.getRecords(), RobotInfoResp.class); PageResp pageOfRobotInfoResp = PageResp.list(robotInfoIPage.getCurrent(), robotInfoIPage.getSize(), robotInfoIPage.getTotal(), list); + list.forEach(robotInfoResp -> { + RobotInfo robotInfo = robotInfoDao.lambdaQuery().eq(RobotInfo::getIsDelete, 0) + .eq(RobotInfo::getId, robotInfoResp.getId()).one(); + if (robotInfo == null) { + return ; + } + List tagIdList = robotInfo.getTagNameList(); + List robotTags = robotTagDao.queryRobotTagValidList(tagIdList); + List robotTagsResp = BeanMapper.copyList(robotTags, RobotTagResp.class); + robotInfoResp.setRobotTagList(robotTagsResp); + robotTagsResp.forEach(robotTag -> { + int useCount = robotTagService.findTagUseCount(Integer.parseInt(String.valueOf(robotTag.getId()))); + robotTag.setUseCount(useCount); + }); + }); list.forEach(this::fillRobotRespOfMsgTemplate); return pageOfRobotInfoResp; }