diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/log/RemoteLogFeign.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/log/RemoteLogFeign.java index a3003d5b..13988d37 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/log/RemoteLogFeign.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/log/RemoteLogFeign.java @@ -3,6 +3,7 @@ package com.xjs.business.log; import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; import com.xjs.business.log.domain.ApiLog; +import com.xjs.business.log.domain.TaskLog; import com.xjs.business.log.domain.WebmagicLog; import com.xjs.business.log.factory.RemoteLogFactory; import org.springframework.cloud.openfeign.FeignClient; @@ -24,5 +25,8 @@ public interface RemoteLogFeign { @PostMapping("reptileLog/saveForPRC") - public R saveReptileLog(@RequestBody WebmagicLog webmagicLog); + R saveReptileLog(@RequestBody WebmagicLog webmagicLog); + + @PostMapping("taskLog/saveForPRC") + R saveTaskLog(@RequestBody TaskLog taskLog); } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/log/domain/TaskLog.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/log/domain/TaskLog.java new file mode 100644 index 00000000..c1f51052 --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/log/domain/TaskLog.java @@ -0,0 +1,37 @@ +package com.xjs.business.log.domain; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 任务日志实体类 + * @author xiejs + * @since 2022-03-01 + */ +@Data +public class TaskLog implements Serializable { + private static final long serialVersionUID = 1L; + + /** 主键id */ + private Long id; + + /** 任务名称 */ + private String name; + + /** 方法名 */ + private String method; + + /** 类路径 */ + private String classPath; + + /** 请求时间 */ + private Long requestTime; + + /** + * 创建时间 + */ + private Date createTime; + +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/log/factory/RemoteLogFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/log/factory/RemoteLogFactory.java index b00620bc..3b4693f5 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/log/factory/RemoteLogFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/log/factory/RemoteLogFactory.java @@ -3,6 +3,7 @@ package com.xjs.business.log.factory; import com.ruoyi.common.core.domain.R; import com.xjs.business.log.RemoteLogFeign; import com.xjs.business.log.domain.ApiLog; +import com.xjs.business.log.domain.TaskLog; import com.xjs.business.log.domain.WebmagicLog; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -32,6 +33,12 @@ public class RemoteLogFactory implements FallbackFactory { log.error("日志模块爬虫日志服务添加调用失败"); return R.fail("日志模块爬虫日志服务添加调用失败" + cause.getMessage()); } + + @Override + public R saveTaskLog(TaskLog taskLog) { + log.error("日志模块任务日志服务添加调用失败"); + return R.fail("日志模块任务日志服务添加调用失败" + cause.getMessage()); + } }; } } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/aop/TaskLog.java b/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/aop/TaskLog.java new file mode 100644 index 00000000..14c68b36 --- /dev/null +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/aop/TaskLog.java @@ -0,0 +1,18 @@ +package com.xjs.job.aop; + +import java.lang.annotation.*; + +/** + * 任务日志注解 + * @author xiejs + * @since 2022-03-01 + */ +@Target({ ElementType.PARAMETER, ElementType.METHOD }) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface TaskLog { + /** + * 任务名称 + */ + public String name() default ""; +} diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/aop/taskLogAspect.java b/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/aop/taskLogAspect.java new file mode 100644 index 00000000..aae4c069 --- /dev/null +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/aop/taskLogAspect.java @@ -0,0 +1,105 @@ +package com.xjs.job.aop; + +import com.ruoyi.common.core.domain.R; +import com.xjs.business.log.RemoteLogFeign; +import lombok.extern.log4j.Log4j2; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.Signature; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Pointcut; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.lang.annotation.Annotation; +import java.lang.reflect.Method; + +/** + * 任务日志切面类 + * + * @author xiejs + * @since 2022-03-01 + */ +@Component +@Aspect +@Log4j2 +public class taskLogAspect { + + @Resource + private RemoteLogFeign remoteLogFeign; + + + /** + * 声明AOP签名 + */ + @Pointcut("@annotation(com.xjs.job.aop.TaskLog)") + public void pointcut() { + } + + /** + * 环绕切入 + */ + @Around("pointcut()") + public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable { + Object obj = null; + try { + //切入前----- + // 开始时间 + long startTime = System.currentTimeMillis(); + + obj = joinPoint.proceed(); + + //切入后----- + // 结束时间 + long endTime = System.currentTimeMillis(); + long between = endTime - startTime; + log.info("调用定时任务耗费时间:{}ms", between); + + this.handle(joinPoint, between); + } catch (Throwable e) { + e.printStackTrace(); + } + + return obj; + } + + + /** + * 处理切面逻辑 + * + * @param joinPoint 切入点 + * @param between 请求时长 + */ + private void handle(ProceedingJoinPoint joinPoint, Long between) { + //获取目标类名及方法名 + Signature signature = joinPoint.getSignature(); + String method = signature.getName(); + Class aClass = signature.getDeclaringType(); + Method[] methods = aClass.getMethods(); + String className = aClass.getName(); + + com.xjs.business.log.domain.TaskLog taskLog = new com.xjs.business.log.domain.TaskLog(); + + taskLog.setMethod(method); + taskLog.setClassPath(className); + taskLog.setRequestTime(between); + + //根据目标的方法名判断当前方法 + for (Method thisMethod : methods) { + if (method.equals(thisMethod.getName())) { + Annotation[] declaredAnnotations = thisMethod.getDeclaredAnnotations(); + for (Annotation annotation : declaredAnnotations) { + if (annotation instanceof TaskLog) { + String name = ((TaskLog) annotation).name(); + taskLog.setName(name); + } + } + } + } + + R r = remoteLogFeign.saveTaskLog(taskLog); + log.info(r.getMsg()); + } + + +} diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/openapi/CheckApiStatusTask.java b/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/openapi/CheckApiStatusTask.java index a1f4ece8..2fed4004 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/openapi/CheckApiStatusTask.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/openapi/CheckApiStatusTask.java @@ -1,14 +1,12 @@ package com.xjs.job.task.openapi; -import cn.hutool.core.date.DateUtil; import com.ruoyi.common.core.domain.R; import com.xjs.business.api.RemoteCommonFeign; +import com.xjs.job.aop.TaskLog; import lombok.extern.log4j.Log4j2; import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.time.LocalDateTime; -import java.time.temporal.ChronoUnit; /** * 检查api状态任务定时任务 @@ -22,17 +20,14 @@ public class CheckApiStatusTask { @Resource private RemoteCommonFeign remoteCommonFeign; + @TaskLog(name = "检查API状态任务") public void checkApiStatus() { log.info("---------------检查api状态定时任务Start-------------------"); - LocalDateTime localDateTime1 = DateUtil.date().toLocalDateTime(); R r = remoteCommonFeign.CheckApiStatusForRPC(); log.info("检查api状态定时任务结果:code={},msg={}",r.getCode(),r.getMsg()); - LocalDateTime localDateTime2 = DateUtil.date().toLocalDateTime(); - long between = ChronoUnit.MILLIS.between(localDateTime1, localDateTime2); - log.info("检查api状态定时任务Job耗费时间:{}ms", between); log.info("---------------检查api状态定时任务end---------------------"); diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/openapi/CopyWritingTask.java b/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/openapi/CopyWritingTask.java index 1e30e269..fda0be11 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/openapi/CopyWritingTask.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/openapi/CopyWritingTask.java @@ -4,13 +4,13 @@ import cn.hutool.core.date.DateUtil; import com.ruoyi.common.core.domain.R; import com.xjs.business.api.RemoteCopyWritingFeign; import com.xjs.business.api.domain.CopyWriting; +import com.xjs.job.aop.TaskLog; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.time.LocalDateTime; -import java.time.temporal.ChronoUnit; /** * 调用文案定时任务 @@ -26,19 +26,17 @@ public class CopyWritingTask { private static final Logger log = LoggerFactory.getLogger(CopyWritingTask.class); /** + * * 任务执行 */ + @TaskLog(name = "文案任务") public void execute() { log.info("---------------文案定时任务Start-------------------"); //该循环会导致执行i次重复删除sql for (int i = 0; i < 8; i++) { - LocalDateTime localDateTime1 = DateUtil.date().toLocalDateTime(); R r = remoteCopyWritingFeign.copyWriting(); log.info("文案定时任务[{}]结果:code={},msg={},data={}",i,r.getCode(),r.getMsg(),r.getData()); - LocalDateTime localDateTime2 = DateUtil.date().toLocalDateTime(); - long between = ChronoUnit.MILLIS.between(localDateTime1, localDateTime2); - log.info("文案[{}]定时任务Job耗费时间:{}ms", i,between); } log.info("---------------文案定时任务end---------------------"); diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/openapi/TopSearchTask.java b/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/openapi/TopSearchTask.java index 8a5c7489..f0405058 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/openapi/TopSearchTask.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/openapi/TopSearchTask.java @@ -1,14 +1,12 @@ package com.xjs.job.task.openapi; -import cn.hutool.core.date.DateUtil; import com.ruoyi.common.core.domain.R; import com.xjs.business.api.RemoteTopSearchFeign; +import com.xjs.job.aop.TaskLog; import lombok.extern.log4j.Log4j2; import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.time.LocalDateTime; -import java.time.temporal.ChronoUnit; import java.util.List; import java.util.Map; @@ -27,16 +25,13 @@ public class TopSearchTask { /** * 定时获取热搜榜 */ + @TaskLog(name = "热搜榜任务") public void getTopSearch() { log.info("---------------热搜榜定时任务Start-------------------"); - LocalDateTime localDateTime1 = DateUtil.date().toLocalDateTime(); R> mapR = remoteTopSearchFeign.topSearchForRPC(); log.info("热搜榜定时任务结果:code={},msg={}",mapR.getCode(),mapR.getMsg()); - LocalDateTime localDateTime2 = DateUtil.date().toLocalDateTime(); - long between = ChronoUnit.MILLIS.between(localDateTime1, localDateTime2); - log.info("热搜榜定时任务Job耗费时间:{}ms", between); log.info("---------------热搜榜定时任务end---------------------"); } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/openapi/WarningTask.java b/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/openapi/WarningTask.java index d9d6ed62..37b60b1c 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/openapi/WarningTask.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/openapi/WarningTask.java @@ -7,12 +7,11 @@ import com.alibaba.fastjson.JSONArray; import com.ruoyi.common.core.domain.R; import com.xjs.business.warning.RemoteWarningCRUDFeign; import com.xjs.business.warning.domain.ApiRecord; +import com.xjs.job.aop.TaskLog; import lombok.extern.log4j.Log4j2; import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.time.LocalDateTime; -import java.time.temporal.ChronoUnit; import java.util.Date; import java.util.List; @@ -32,8 +31,8 @@ public class WarningTask { /** * 处理预警api信息的每天调用次数 */ + @TaskLog(name = "预警任务") public void handleRecordDate() { - LocalDateTime localDateTime1 = DateUtil.date().toLocalDateTime(); log.info("---------------预警次数初始化定时任务Start-------------------"); R listR = remoteWarningCRUDFeign.findRecordListForRPC(); log.info("预警次数初始化定时任务结果:code={},msg={},data={}",listR.getCode(),listR.getMsg(),listR.getData()); @@ -43,9 +42,6 @@ public class WarningTask { handleDate.forEach(data -> { remoteWarningCRUDFeign.updateApiRecordForRPC(data); }); - LocalDateTime localDateTime2 = DateUtil.date().toLocalDateTime(); - long between = ChronoUnit.MILLIS.between(localDateTime1, localDateTime2); - log.info("预警次数初始化定时任务Job耗费时间:{}ms", between); log.info("---------------预警次数初始化定时任务end---------------------"); } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/openapi/WeatherTask.java b/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/openapi/WeatherTask.java index 7d5fb9d2..33304613 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/openapi/WeatherTask.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/openapi/WeatherTask.java @@ -3,6 +3,7 @@ package com.xjs.job.task.openapi; import cn.hutool.core.date.DateUtil; import com.ruoyi.common.core.domain.R; import com.xjs.business.api.RemoteWeatherFeign; +import com.xjs.job.aop.TaskLog; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; @@ -25,16 +26,14 @@ public class WeatherTask { private static final Logger log = LoggerFactory.getLogger(WeatherTask.class); /** + * * 任务执行 */ + @TaskLog(name = "天气任务") public void execute() { - LocalDateTime localDateTime1 = DateUtil.date().toLocalDateTime(); log.info("---------------天气定时任务Start-------------------"); R r = remoteWeatherFeign.getWeatherForRPC(); log.info("天气定时任务结果:code={},msg={},data={}",r.getCode(),r.getMsg(),r.getData()); - LocalDateTime localDateTime2 = DateUtil.date().toLocalDateTime(); - long between = ChronoUnit.MILLIS.between(localDateTime1, localDateTime2); - log.info("Job耗费时间:{}ms", between); log.info("---------------天气定时任务end---------------------"); } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/webmagic/CopyWritingNetworkTask.java b/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/webmagic/CopyWritingNetworkTask.java index 24807f5d..b0fbec3e 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/webmagic/CopyWritingNetworkTask.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/webmagic/CopyWritingNetworkTask.java @@ -3,6 +3,7 @@ package com.xjs.job.task.webmagic; import cn.hutool.core.date.DateUtil; import com.ruoyi.common.core.domain.R; import com.xjs.business.webmagic.RemoteWebmagicCopyWritingNetworkFeign; +import com.xjs.job.aop.TaskLog; import lombok.extern.log4j.Log4j2; import org.springframework.stereotype.Component; @@ -25,16 +26,13 @@ public class CopyWritingNetworkTask { /** * 爬虫 文案网 定时任务执行 */ + @TaskLog(name = "文案网爬虫任务") public void copyWritingNetwork() { log.info("---------------爬虫-文案网定时任务Start-------------------"); - LocalDateTime localDateTime1 = DateUtil.date().toLocalDateTime(); R r = remoteWebmagicCopyWritingNetworkFeign.copyWritingNetworkTaskForPRC(); log.info("爬虫-文案网定时任务结果:code={},msg={},data={}",r.getCode(),r.getMsg(),r.getData()); - LocalDateTime localDateTime2 = DateUtil.date().toLocalDateTime(); - long between = ChronoUnit.MILLIS.between(localDateTime1, localDateTime2); - log.info("爬虫-文案网定时任务Job耗费时间:{}ms", between); log.info("---------------爬虫-文案网定时任务end---------------------"); } } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/webmagic/SinaTask.java b/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/webmagic/SinaTask.java index 95c024e6..64cd0d43 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/webmagic/SinaTask.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/webmagic/SinaTask.java @@ -1,14 +1,12 @@ package com.xjs.job.task.webmagic; -import cn.hutool.core.date.DateUtil; import com.ruoyi.common.core.domain.R; import com.xjs.business.webmagic.RemoteWebmagicSinaFeign; +import com.xjs.job.aop.TaskLog; import lombok.extern.log4j.Log4j2; import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.time.LocalDateTime; -import java.time.temporal.ChronoUnit; /** * 爬虫 新浪新闻 定时任务 @@ -24,16 +22,13 @@ public class SinaTask { /** * 爬虫 新浪新闻 定时任务执行 */ + @TaskLog(name = "新浪新闻爬虫任务") public void sinaNews() { log.info("---------------爬虫-新浪新闻定时任务Start-------------------"); - LocalDateTime localDateTime1 = DateUtil.date().toLocalDateTime(); R r = remoteWebmagicSinaFeign.sinaTaskForPRC(); log.info("爬虫-新浪新闻定时任务结果:code={},msg={},data={}",r.getCode(),r.getMsg(),r.getData()); - LocalDateTime localDateTime2 = DateUtil.date().toLocalDateTime(); - long between = ChronoUnit.MILLIS.between(localDateTime1, localDateTime2); - log.info("爬虫-新浪新闻定时任务Job耗费时间:{}ms", between); log.info("---------------爬虫-新浪新闻定时任务end---------------------"); } } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/webmagic/WeiXinSouGouTask.java b/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/webmagic/WeiXinSouGouTask.java index e711b66a..120c0bed 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/webmagic/WeiXinSouGouTask.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/webmagic/WeiXinSouGouTask.java @@ -3,6 +3,7 @@ package com.xjs.job.task.webmagic; import cn.hutool.core.date.DateUtil; import com.ruoyi.common.core.domain.R; import com.xjs.business.webmagic.RemoteWebmagicWeiXinSouGouFeign; +import com.xjs.job.aop.TaskLog; import lombok.extern.log4j.Log4j2; import org.springframework.stereotype.Component; @@ -22,16 +23,13 @@ public class WeiXinSouGouTask { @Resource private RemoteWebmagicWeiXinSouGouFeign remoteWebmagicWeiXinSouGouFeign; + @TaskLog(name = "微信搜狗爬虫任务") public void weiXinSouGou() { log.info("---------------爬虫-微信搜狗定时任务Start-------------------"); - LocalDateTime localDateTime1 = DateUtil.date().toLocalDateTime(); R r = remoteWebmagicWeiXinSouGouFeign.WeiXinSouGouTaskForPRC(); log.info("爬虫-微信搜狗定时任务结果:code={},msg={},data={}",r.getCode(),r.getMsg(),r.getData()); - LocalDateTime localDateTime2 = DateUtil.date().toLocalDateTime(); - long between = ChronoUnit.MILLIS.between(localDateTime1, localDateTime2); - log.info("爬虫-微信搜狗定时任务Job耗费时间:{}ms", between); log.info("---------------爬虫-微信搜狗定时任务end---------------------"); } diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/webmagic/_36wallpaperTask.java b/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/webmagic/_36wallpaperTask.java index c7674304..3e1266af 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/webmagic/_36wallpaperTask.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/webmagic/_36wallpaperTask.java @@ -3,6 +3,7 @@ package com.xjs.job.task.webmagic; import cn.hutool.core.date.DateUtil; import com.ruoyi.common.core.domain.R; import com.xjs.business.webmagic.RemoteWebmagic36wallpaperFeign; +import com.xjs.job.aop.TaskLog; import lombok.extern.log4j.Log4j2; import org.springframework.stereotype.Component; @@ -25,16 +26,13 @@ public class _36wallpaperTask { /** * 爬虫 36壁纸网 定时任务执行 */ + @TaskLog(name = "36壁纸爬虫任务") public void _36wallpaper() { log.info("---------------爬虫-36壁纸网定时任务Start-------------------"); - LocalDateTime localDateTime1 = DateUtil.date().toLocalDateTime(); R r = remoteWebmagic36wallpaperFeign._36wallpaperTaskForPRC(); log.info("爬虫-36壁纸网定时任务结果:code={},msg={},data={}",r.getCode(),r.getMsg(),r.getData()); - LocalDateTime localDateTime2 = DateUtil.date().toLocalDateTime(); - long between = ChronoUnit.MILLIS.between(localDateTime1, localDateTime2); - log.info("爬虫-36壁纸网定时任务Job耗费时间:{}ms", between); log.info("---------------爬虫-36壁纸网定时任务end---------------------"); } diff --git a/ruoyi-ui/src/views/business/log/tasklog/index.vue b/ruoyi-ui/src/views/business/log/tasklog/index.vue new file mode 100644 index 00000000..b7c41fde --- /dev/null +++ b/ruoyi-ui/src/views/business/log/tasklog/index.vue @@ -0,0 +1,13 @@ + + + + + diff --git a/xjs-business/xjs-business-log/src/main/java/com/xjs/tasklog/controller/TaskLogController.java b/xjs-business/xjs-business-log/src/main/java/com/xjs/tasklog/controller/TaskLogController.java new file mode 100644 index 00000000..01690e5c --- /dev/null +++ b/xjs-business/xjs-business-log/src/main/java/com/xjs/tasklog/controller/TaskLogController.java @@ -0,0 +1,36 @@ +package com.xjs.tasklog.controller; + +import com.ruoyi.common.core.domain.R; +import com.xjs.tasklog.domain.TaskLog; +import com.xjs.tasklog.service.TaskLogService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 任务日志controller + * @author xiejs + * @since 2022-03-01 + */ +@RestController +@RequestMapping("taskLog") +@Api(tags = "业务模块-任务日志") +public class TaskLogController { + + @Autowired + private TaskLogService taskLogService; + + + //-----------------------内部调用rpc------------------------ + + @PostMapping("saveForPRC") + @ApiOperation("供AOP切面RPC远程调用") + public R saveTaskLog(@RequestBody TaskLog taskLog) { + boolean save = taskLogService.save(taskLog); + return save ? R.ok() : R.fail(); + } +} diff --git a/xjs-business/xjs-business-log/src/main/java/com/xjs/tasklog/domain/TaskLog.java b/xjs-business/xjs-business-log/src/main/java/com/xjs/tasklog/domain/TaskLog.java new file mode 100644 index 00000000..9f92500f --- /dev/null +++ b/xjs-business/xjs-business-log/src/main/java/com/xjs/tasklog/domain/TaskLog.java @@ -0,0 +1,43 @@ +package com.xjs.tasklog.domain; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.ruoyi.common.core.annotation.Excel; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 任务日志实体类 + * @author xiejs + * @since 2022-03-01 + */ +@Data +public class TaskLog implements Serializable { + private static final long serialVersionUID = 1L; + + /** 主键id */ + private Long id; + + /** 任务名称 */ + @Excel(name = "任务名称") + private String name; + + /** 方法名 */ + @Excel(name = "方法名") + private String method; + + /** 类路径 */ + @Excel(name = "类路径") + private String classPath; + + /** 请求时间 */ + @Excel(name = "请求时间") + private Long requestTime; + + @Excel(name = "创建时间",dateFormat = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT) + private Date createTime; + +} diff --git a/xjs-business/xjs-business-log/src/main/java/com/xjs/tasklog/mapper/TaskLogMapper.java b/xjs-business/xjs-business-log/src/main/java/com/xjs/tasklog/mapper/TaskLogMapper.java new file mode 100644 index 00000000..f261474f --- /dev/null +++ b/xjs-business/xjs-business-log/src/main/java/com/xjs/tasklog/mapper/TaskLogMapper.java @@ -0,0 +1,13 @@ +package com.xjs.tasklog.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.xjs.tasklog.domain.TaskLog; + +/** + * 任务日志mapper + * @author xiejs + * @since 2022-03-01 + */ +public interface TaskLogMapper extends BaseMapper { + +} diff --git a/xjs-business/xjs-business-log/src/main/java/com/xjs/tasklog/service/TaskLogService.java b/xjs-business/xjs-business-log/src/main/java/com/xjs/tasklog/service/TaskLogService.java new file mode 100644 index 00000000..56a7e926 --- /dev/null +++ b/xjs-business/xjs-business-log/src/main/java/com/xjs/tasklog/service/TaskLogService.java @@ -0,0 +1,12 @@ +package com.xjs.tasklog.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.xjs.tasklog.domain.TaskLog; + +/** + * 任务日志service + * @author xiejs + * @since 2022-03-01 + */ +public interface TaskLogService extends IService { +} diff --git a/xjs-business/xjs-business-log/src/main/java/com/xjs/tasklog/service/impl/TaskLogServiceImpl.java b/xjs-business/xjs-business-log/src/main/java/com/xjs/tasklog/service/impl/TaskLogServiceImpl.java new file mode 100644 index 00000000..5f764d6a --- /dev/null +++ b/xjs-business/xjs-business-log/src/main/java/com/xjs/tasklog/service/impl/TaskLogServiceImpl.java @@ -0,0 +1,16 @@ +package com.xjs.tasklog.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.xjs.tasklog.domain.TaskLog; +import com.xjs.tasklog.mapper.TaskLogMapper; +import com.xjs.tasklog.service.TaskLogService; +import org.springframework.stereotype.Service; + +/** + * 任务日志service实现 + * @author xiejs + * @since 2022-03-01 + */ +@Service +public class TaskLogServiceImpl extends ServiceImpl implements TaskLogService { +}