diff --git a/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/infincash/statistics/risk/RiskService.java b/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/infincash/statistics/risk/RiskService.java index 4af015f1..53fe80b5 100644 --- a/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/infincash/statistics/risk/RiskService.java +++ b/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/infincash/statistics/risk/RiskService.java @@ -1,5 +1,9 @@ package com.infincash.statistics.risk; +import java.util.List; + +import com.infincash.statistics.risk.table.prd.extend.RiskStatsDTO; + public interface RiskService { - int countRecentRisk(); + List countRecentRisk(); } diff --git a/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/infincash/statistics/risk/RiskServiceImpl.java b/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/infincash/statistics/risk/RiskServiceImpl.java index f5f993ff..a183a2b3 100644 --- a/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/infincash/statistics/risk/RiskServiceImpl.java +++ b/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/infincash/statistics/risk/RiskServiceImpl.java @@ -1,9 +1,12 @@ package com.infincash.statistics.risk; +import java.util.List; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.infincash.statistics.risk.mapper.TRiskRuleMapper; +import com.infincash.statistics.risk.mapper.prd.TRiskRuleMapper; +import com.infincash.statistics.risk.table.prd.extend.RiskStatsDTO; @Service public class RiskServiceImpl implements RiskService { @@ -12,8 +15,7 @@ public class RiskServiceImpl implements RiskService { private TRiskRuleMapper mapper;//这里会报错,但是并不会影响 @Override - public int countRecentRisk() { + public List countRecentRisk() { return mapper.countRiskRule(); } - } diff --git a/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/infincash/statistics/risk/mapper/TRiskRuleMapper.java b/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/infincash/statistics/risk/mapper/TRiskRuleMapper.java deleted file mode 100644 index 9c632794..00000000 --- a/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/infincash/statistics/risk/mapper/TRiskRuleMapper.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.infincash.statistics.risk.mapper; - -public interface TRiskRuleMapper { - int countRiskRule(); -} \ No newline at end of file diff --git a/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/infincash/statistics/risk/mapper/prd/TRiskRuleMapper.java b/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/infincash/statistics/risk/mapper/prd/TRiskRuleMapper.java new file mode 100644 index 00000000..007bbf51 --- /dev/null +++ b/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/infincash/statistics/risk/mapper/prd/TRiskRuleMapper.java @@ -0,0 +1,9 @@ +package com.infincash.statistics.risk.mapper.prd; + +import java.util.List; + +import com.infincash.statistics.risk.table.prd.extend.RiskStatsDTO; + +public interface TRiskRuleMapper { + List countRiskRule(); +} \ No newline at end of file diff --git a/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/infincash/statistics/risk/mapper/stats/TStatsRiskDetailMapper.java b/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/infincash/statistics/risk/mapper/stats/TStatsRiskDetailMapper.java index 70fd7cff..5d78d12b 100644 --- a/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/infincash/statistics/risk/mapper/stats/TStatsRiskDetailMapper.java +++ b/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/infincash/statistics/risk/mapper/stats/TStatsRiskDetailMapper.java @@ -1,17 +1,9 @@ package com.infincash.statistics.risk.mapper.stats; +import java.util.List; + import com.infincash.statistics.risk.table.stats.TStatsRiskDetail; public interface TStatsRiskDetailMapper { - int deleteByPrimaryKey(Long id); - - int insert(TStatsRiskDetail record); - - int insertSelective(TStatsRiskDetail record); - - TStatsRiskDetail selectByPrimaryKey(Long id); - - int updateByPrimaryKeySelective(TStatsRiskDetail record); - - int updateByPrimaryKey(TStatsRiskDetail record); + int insertBatch(List record); } \ No newline at end of file diff --git a/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/infincash/statistics/risk/table/prd/extend/RiskStatsDTO.java b/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/infincash/statistics/risk/table/prd/extend/RiskStatsDTO.java new file mode 100644 index 00000000..13d692ba --- /dev/null +++ b/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/infincash/statistics/risk/table/prd/extend/RiskStatsDTO.java @@ -0,0 +1,30 @@ +package com.infincash.statistics.risk.table.prd.extend; + +import java.util.Date; + +public class RiskStatsDTO { + String riskRuleId; + int count; + Date time; + + public String getRiskRuleId() { + return riskRuleId; + } + public void setRiskRuleId(String riskRuleId) { + this.riskRuleId = riskRuleId; + } + public int getCount() { + return count; + } + public void setCount(int count) { + this.count = count; + } + public Date getTime() { + return time; + } + public void setTime(Date time) { + this.time = time; + } + + +} diff --git a/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/xxl/job/executor/Application.java b/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/xxl/job/executor/Application.java index 9b28bd4b..c98c3811 100644 --- a/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/xxl/job/executor/Application.java +++ b/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/xxl/job/executor/Application.java @@ -1,6 +1,5 @@ package com.xxl.job.executor; -import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; diff --git a/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/xxl/job/executor/core/config/PrdDbConfig.java b/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/xxl/job/executor/core/config/PrdDbConfig.java index 6d876970..9c10e753 100644 --- a/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/xxl/job/executor/core/config/PrdDbConfig.java +++ b/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/xxl/job/executor/core/config/PrdDbConfig.java @@ -12,26 +12,22 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration -@MapperScan(basePackages = {"titan.mapper"}, sqlSessionFactoryRef = "sqlSessionFactory1") +@MapperScan(basePackages = {"com.infincash.statistics.risk.mapper.prd"}, sqlSessionFactoryRef = "sqlSessionFactoryPrd") public class PrdDbConfig { - @Autowired - @Qualifier("titanMasterDS") - private DataSource ds1; - + @Qualifier("prd") + private DataSource prd; @Bean - public SqlSessionFactory sqlSessionFactory1() throws Exception { + public SqlSessionFactory sqlSessionFactoryPrd() throws Exception { SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean(); - factoryBean.setDataSource(ds1); // 使用titan数据源, 连接titan库 - + factoryBean.setDataSource(prd); return factoryBean.getObject(); - } @Bean - public SqlSessionTemplate sqlSessionTemplate1() throws Exception { - SqlSessionTemplate template = new SqlSessionTemplate(sqlSessionFactory1()); // 使用上面配置的Factory + public SqlSessionTemplate sqlSessionTemplatePrd() throws Exception { + SqlSessionTemplate template = new SqlSessionTemplate(sqlSessionFactoryPrd()); return template; } } \ No newline at end of file diff --git a/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/xxl/job/executor/core/config/StatsDbConfig.java b/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/xxl/job/executor/core/config/StatsDbConfig.java index 6781296a..a0b93c02 100644 --- a/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/xxl/job/executor/core/config/StatsDbConfig.java +++ b/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/xxl/job/executor/core/config/StatsDbConfig.java @@ -12,25 +12,22 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration -@MapperScan(basePackages = {"other.mapper"}, sqlSessionFactoryRef = "sqlSessionFactory2") +@MapperScan(basePackages = {"com.infincash.statistics.risk.mapper.stats"}, sqlSessionFactoryRef = "sqlSessionFactoryStats") public class StatsDbConfig { @Autowired - @Qualifier("ds2") - private DataSource ds2; + @Qualifier("stats") + private DataSource stats; @Bean - public SqlSessionFactory sqlSessionFactory2() throws Exception { + public SqlSessionFactory sqlSessionFactoryStats() throws Exception { SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean(); - factoryBean.setDataSource(ds2); - - + factoryBean.setDataSource(stats); // 使用titan数据源, 连接titan库 return factoryBean.getObject(); - } @Bean - public SqlSessionTemplate sqlSessionTemplate2() throws Exception { - SqlSessionTemplate template = new SqlSessionTemplate(sqlSessionFactory2()); + public SqlSessionTemplate sqlSessionTemplateStats() throws Exception { + SqlSessionTemplate template = new SqlSessionTemplate(sqlSessionFactoryStats()); // 使用上面配置的Factory return template; } } \ No newline at end of file diff --git a/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/xxl/job/executor/service/jobhandler/RiskCountStatisticsJobHandler.java b/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/xxl/job/executor/service/jobhandler/RiskCountStatisticsJobHandler.java index 7d98f862..5d8f0226 100644 --- a/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/xxl/job/executor/service/jobhandler/RiskCountStatisticsJobHandler.java +++ b/xxl-job-executor-samples/xxl-job-executor-db/src/main/java/com/xxl/job/executor/service/jobhandler/RiskCountStatisticsJobHandler.java @@ -1,9 +1,12 @@ package com.xxl.job.executor.service.jobhandler; +import java.util.List; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.infincash.statistics.risk.RiskService; +import com.infincash.statistics.risk.table.prd.extend.RiskStatsDTO; import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.handler.IJobHandler; import com.xxl.job.core.handler.annotation.JobHandler; @@ -27,8 +30,10 @@ public class RiskCountStatisticsJobHandler extends IJobHandler { @Override public ReturnT execute(String param) throws Exception { - int aa = service.countRecentRisk(); - XxlJobLogger.log("aa: " + aa); + List aa = service.countRecentRisk(); + for (RiskStatsDTO a:aa) { + XxlJobLogger.log(a.getRiskRuleId() + a.getCount() + a.getTime().toGMTString()); + } XxlJobLogger.log("beat at:"); return SUCCESS; } diff --git a/xxl-job-executor-samples/xxl-job-executor-db/src/main/resources/application.properties b/xxl-job-executor-samples/xxl-job-executor-db/src/main/resources/application.properties index 3dbbf114..eac60995 100644 --- a/xxl-job-executor-samples/xxl-job-executor-db/src/main/resources/application.properties +++ b/xxl-job-executor-samples/xxl-job-executor-db/src/main/resources/application.properties @@ -10,7 +10,7 @@ spring.datasource.stats.driver-class-name=com.mysql.jdbc.Driver -mybatis.mapper-locations=classpath:mapping/*.xml +mybatis.mapper-locations=classpath:mapping/*/*.xml mybatis.type-aliases-package=com.infincash.statistics.risk.table # web port server.port=9001 diff --git a/xxl-job-executor-samples/xxl-job-executor-db/src/main/resources/mapping/prd/TRiskRuleMapper.xml b/xxl-job-executor-samples/xxl-job-executor-db/src/main/resources/mapping/prd/TRiskRuleMapper.xml index 8a732410..930de187 100644 --- a/xxl-job-executor-samples/xxl-job-executor-db/src/main/resources/mapping/prd/TRiskRuleMapper.xml +++ b/xxl-job-executor-samples/xxl-job-executor-db/src/main/resources/mapping/prd/TRiskRuleMapper.xml @@ -1,15 +1,9 @@ - - - - - - - - select - risk_rule_id, count(1), now() + risk_rule_id, count(1) as count, now() as time from t_user_risk where user_id in (select user_id from t_user where DATE_SUB(NOW(),INTERVAL 1 HOUR) <= register_time) GROUP by risk_rule_id order by risk_rule_id; diff --git a/xxl-job-executor-samples/xxl-job-executor-db/src/main/resources/mapping/stats/TStatsRiskDetailMapper.xml b/xxl-job-executor-samples/xxl-job-executor-db/src/main/resources/mapping/stats/TStatsRiskDetailMapper.xml index 12df531b..774aaf13 100644 --- a/xxl-job-executor-samples/xxl-job-executor-db/src/main/resources/mapping/stats/TStatsRiskDetailMapper.xml +++ b/xxl-job-executor-samples/xxl-job-executor-db/src/main/resources/mapping/stats/TStatsRiskDetailMapper.xml @@ -16,22 +16,17 @@ from t_stats_risk_detail where id = #{id,jdbcType=BIGINT} - - delete from t_stats_risk_detail - where id = #{id,jdbcType=BIGINT} - + insert into t_stats_risk_detail (id, stats_time, a_hour_count, risk_rule_id) values (#{id,jdbcType=BIGINT}, #{statsTime,jdbcType=TIMESTAMP}, #{aHourCount,jdbcType=INTEGER}, #{riskRuleId,jdbcType=VARCHAR}) - + + insert into t_stats_risk_detail - - id, - stats_time, @@ -43,9 +38,6 @@ - - #{id,jdbcType=BIGINT}, - #{statsTime,jdbcType=TIMESTAMP}, @@ -57,104 +49,4 @@ - - update t_stats_risk_detail - - - stats_time = #{statsTime,jdbcType=TIMESTAMP}, - - - a_hour_count = #{aHourCount,jdbcType=INTEGER}, - - - risk_rule_id = #{riskRuleId,jdbcType=VARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update t_stats_risk_detail - set stats_time = #{statsTime,jdbcType=TIMESTAMP}, - a_hour_count = #{aHourCount,jdbcType=INTEGER}, - risk_rule_id = #{riskRuleId,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - - - - - - - - - id, stats_time, a_hour_count, risk_rule_id - - - - delete from t_stats_risk_detail - where id = #{id,jdbcType=BIGINT} - - - insert into t_stats_risk_detail (id, stats_time, a_hour_count, - risk_rule_id) - values (#{id,jdbcType=BIGINT}, #{statsTime,jdbcType=TIMESTAMP}, #{aHourCount,jdbcType=INTEGER}, - #{riskRuleId,jdbcType=VARCHAR}) - - - insert into t_stats_risk_detail - - - id, - - - stats_time, - - - a_hour_count, - - - risk_rule_id, - - - - - #{id,jdbcType=BIGINT}, - - - #{statsTime,jdbcType=TIMESTAMP}, - - - #{aHourCount,jdbcType=INTEGER}, - - - #{riskRuleId,jdbcType=VARCHAR}, - - - - - update t_stats_risk_detail - - - stats_time = #{statsTime,jdbcType=TIMESTAMP}, - - - a_hour_count = #{aHourCount,jdbcType=INTEGER}, - - - risk_rule_id = #{riskRuleId,jdbcType=VARCHAR}, - - - where id = #{id,jdbcType=BIGINT} - - - update t_stats_risk_detail - set stats_time = #{statsTime,jdbcType=TIMESTAMP}, - a_hour_count = #{aHourCount,jdbcType=INTEGER}, - risk_rule_id = #{riskRuleId,jdbcType=VARCHAR} - where id = #{id,jdbcType=BIGINT} - \ No newline at end of file