diff --git a/xservice-core/src/main/java/com/xiang/app/common/manage/QuartzConfigManageImpl.java b/xservice-core/src/main/java/com/xiang/app/common/manage/QuartzConfigManageImpl.java new file mode 100644 index 0000000..9eb2c28 --- /dev/null +++ b/xservice-core/src/main/java/com/xiang/app/common/manage/QuartzConfigManageImpl.java @@ -0,0 +1,44 @@ +package com.xiang.app.common.manage; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.xiang.xmc.service.quartz.domain.entity.JobConfigDO; +import com.xiang.xmc.service.quartz.manage.IQuartzConfigManage; +import com.xiang.xmc.service.quartz.mapper.JobConfigMapper; +import com.xiang.xmc.xservice.mysql.annotation.DynamicDataSource; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Author: xiang + * @Date: 2026-01-05 14:21 + */ +@Service +public class QuartzConfigManageImpl extends ServiceImpl implements IQuartzConfigManage { + @Override + @DynamicDataSource(value = "xxz-job") + public JobConfigDO getByName(String appName, String beanName) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(JobConfigDO::getApplicationName, appName); + lqw.eq(JobConfigDO::getBeanName, beanName); + lqw.eq(JobConfigDO::getDelFlag, 0); + return baseMapper.selectOne(lqw); + } + + @Override + @DynamicDataSource(value = "xxz-job") + public List selectByAppName(String appName) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(JobConfigDO::getApplicationName, appName); + lqw.eq(JobConfigDO::getDelFlag, 0); + return baseMapper.selectList(lqw); + } + + @Override + @DynamicDataSource(value = "xxz-job") + public int delByAppName(String appName) { + return 0; + } +} diff --git a/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/schedule/TestXxzJob.java b/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/schedule/TestXxzJob.java new file mode 100644 index 0000000..d897785 --- /dev/null +++ b/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/schedule/TestXxzJob.java @@ -0,0 +1,19 @@ +package com.xiang.app.modules.jntyzx.schedule; + +import com.xiang.xmc.service.quartz.annotation.XxzJob; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @Author: xiang + * @Date: 2026-01-05 08:59 + */ +@Slf4j +@Component +public class TestXxzJob { + + @XxzJob(name = "TestXxzJob") + public void testXxzJob() { + log.info("测试xxz-job框架"); + } +} diff --git a/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/JntyzxHttpServiceImpl.java b/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/impl/JntyzxHttpServiceImpl.java similarity index 98% rename from xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/JntyzxHttpServiceImpl.java rename to xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/impl/JntyzxHttpServiceImpl.java index 25bc043..bce8162 100644 --- a/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/JntyzxHttpServiceImpl.java +++ b/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/impl/JntyzxHttpServiceImpl.java @@ -1,4 +1,4 @@ -package com.xiang.app.modules.jntyzx.service; +package com.xiang.app.modules.jntyzx.service.impl; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; @@ -16,6 +16,7 @@ import com.xiang.app.modules.jntyzx.entity.resp.OrderCreateResp; import com.xiang.app.modules.jntyzx.entity.resp.query.SitePositionList; import com.xiang.app.modules.jntyzx.entity.resp.query.VenueList; import com.xiang.app.modules.jntyzx.manage.IOrderCreateInfoManage; +import com.xiang.app.modules.jntyzx.service.IJntyzxHttpService; import com.xiang.xmc.service.cache.service.IRedisService; import com.xiang.xmc.service.http.helper.HttpHelper; import com.xiang.xservice.basic.utils.Base64; diff --git a/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/OrderInfoServiceImpl.java b/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/impl/OrderInfoServiceImpl.java similarity index 83% rename from xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/OrderInfoServiceImpl.java rename to xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/impl/OrderInfoServiceImpl.java index 635ca94..714f5a7 100644 --- a/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/OrderInfoServiceImpl.java +++ b/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/impl/OrderInfoServiceImpl.java @@ -1,7 +1,8 @@ -package com.xiang.app.modules.jntyzx.service; +package com.xiang.app.modules.jntyzx.service.impl; import com.xiang.app.modules.jntyzx.entity.pojo.OrderInfoDO; import com.xiang.app.modules.jntyzx.manage.IOrderCreateInfoManage; +import com.xiang.app.modules.jntyzx.service.IJtOrderService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; diff --git a/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/UserTokenInfoServiceImpl.java b/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/impl/UserTokenInfoServiceImpl.java similarity index 94% rename from xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/UserTokenInfoServiceImpl.java rename to xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/impl/UserTokenInfoServiceImpl.java index fb00df4..bc197e0 100644 --- a/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/UserTokenInfoServiceImpl.java +++ b/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/impl/UserTokenInfoServiceImpl.java @@ -1,9 +1,11 @@ -package com.xiang.app.modules.jntyzx.service; +package com.xiang.app.modules.jntyzx.service.impl; import com.xiang.app.common.service.dingtalk.JtDingTalkFactory; import com.xiang.app.modules.jntyzx.entity.pojo.UserTokenInfoDO; import com.xiang.app.modules.jntyzx.entity.resp.JntyzxResponse; import com.xiang.app.modules.jntyzx.manage.IUserTokenInfoManage; +import com.xiang.app.modules.jntyzx.service.IJntyzxHttpService; +import com.xiang.app.modules.jntyzx.service.IUserTokenInfoService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; diff --git a/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/VenueServiceImpl.java b/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/impl/VenueServiceImpl.java similarity index 96% rename from xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/VenueServiceImpl.java rename to xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/impl/VenueServiceImpl.java index f2f05c9..54848f7 100644 --- a/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/VenueServiceImpl.java +++ b/xservice-core/src/main/java/com/xiang/app/modules/jntyzx/service/impl/VenueServiceImpl.java @@ -1,10 +1,13 @@ -package com.xiang.app.modules.jntyzx.service; +package com.xiang.app.modules.jntyzx.service.impl; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.xiang.app.modules.jntyzx.entity.pojo.VenueInfoDO; import com.xiang.app.modules.jntyzx.entity.resp.query.SitePositionList; import com.xiang.app.modules.jntyzx.manage.IVenueInfoManage; +import com.xiang.app.modules.jntyzx.service.IJntyzxHttpService; +import com.xiang.app.modules.jntyzx.service.IUserTokenInfoService; +import com.xiang.app.modules.jntyzx.service.IVenueService; import com.xiang.app.modules.jntyzx.utils.VenueInfoUtils; import com.xiang.xservice.basic.utils.DateUtils; import lombok.RequiredArgsConstructor; diff --git a/xservice-server/src/main/java/com/xiang/app/Application.java b/xservice-server/src/main/java/com/xiang/app/Application.java index c1fc3f0..7e1149a 100644 --- a/xservice-server/src/main/java/com/xiang/app/Application.java +++ b/xservice-server/src/main/java/com/xiang/app/Application.java @@ -1,5 +1,7 @@ package com.xiang.app; +import com.xiang.xmc.service.quartz.annotation.EnableXxzJob; +import org.mybatis.spring.annotation.MapperScan; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.SpringApplication; @@ -15,6 +17,11 @@ import org.springframework.boot.context.properties.ConfigurationPropertiesScan; "com.xiang.xservice.logger", "com.xiang.app.common.config", }) +@MapperScan(basePackages = { + "com.xiang.xmc.service.quartz", + "com.xiang.app.modules.*.mapper" +}) +@EnableXxzJob(basePackages = {"com.xiang.app.modules.*.schedule"}) public class Application { private static final Logger log = LoggerFactory.getLogger(Application.class); diff --git a/xservice-server/src/main/java/com/xiang/app/JobScannerRun.java b/xservice-server/src/main/java/com/xiang/app/JobScannerRun.java new file mode 100644 index 0000000..2e3f3ee --- /dev/null +++ b/xservice-server/src/main/java/com/xiang/app/JobScannerRun.java @@ -0,0 +1,30 @@ +package com.xiang.app; + +import com.xiang.xmc.service.quartz.domain.JobDefinition; +import com.xiang.xmc.service.quartz.holder.JobDefinitionHolder; +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import java.util.List; + +/** + * @Author: xiang + * @Date: 2025-12-31 14:19 + */ +@Component +@Slf4j +public class JobScannerRun implements ApplicationRunner { + @Override + public void run(ApplicationArguments args) throws Exception { + List jobDefinitions = JobDefinitionHolder.getAll(); + if (CollectionUtils.isEmpty(jobDefinitions)) { + log.info("job 注册为空"); + } + jobDefinitions.forEach(item -> { + log.info("已注册job:" + item.getName()); + }); + } +} diff --git a/xservice-server/src/main/resources/application-dev.yml b/xservice-server/src/main/resources/application-dev.yml index fd9202c..612f7b2 100644 --- a/xservice-server/src/main/resources/application-dev.yml +++ b/xservice-server/src/main/resources/application-dev.yml @@ -17,6 +17,12 @@ spring: password: cornucopia@123 driver-class-name: com.mysql.cj.jdbc.Driver sshConnect: false + xxz-job: + url: jdbc:mysql://120.27.153.87:3306/xservice_quartz?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true + username: quartz + password: quartz@123 + driver-class-name: com.mysql.cj.jdbc.Driver + sshConnect: false redis: host: r-bp1wt59a6nfyt4e3ltpd.redis.rds.aliyuncs.com port: 6379 @@ -29,6 +35,8 @@ spring: max-idle: 8 min-idle: 0 max-wait: 1000 +xxz-job: + appName: xservice-cornucopia dingtalk: robot: