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; }