多数据源修复mapper绑定的bug

pull/5/head
infin_caishuxiao 8 years ago
parent 160bf35c9c
commit 649f85cc65

@ -3,10 +3,16 @@ package com.infincash.statistics.risk.table.prd.extend;
import java.util.Date;
public class RiskStatsDTO {
String riskRuleId;
String riskRuleId;
int count;
Date time;
public Date getTime() {
return time;
}
public void setTime(Date time) {
this.time = time;
}
public String getRiskRuleId() {
return riskRuleId;
}
@ -18,13 +24,5 @@ public class RiskStatsDTO {
}
public void setCount(int count) {
this.count = count;
}
public Date getTime() {
return time;
}
public void setTime(Date time) {
this.time = time;
}
}
}

@ -10,10 +10,13 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
@Configuration
@MapperScan(basePackages = {"com.infincash.statistics.risk.mapper.prd"}, sqlSessionFactoryRef = "sqlSessionFactoryPrd")
public class PrdDbConfig {
static final String MAPPER_LOCATION = "classpath:mapping/prd/*.xml";
@Autowired
@Qualifier("prd")
private DataSource prd;
@ -22,6 +25,9 @@ public class PrdDbConfig {
public SqlSessionFactory sqlSessionFactoryPrd() throws Exception {
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(prd);
factoryBean.setMapperLocations(
new PathMatchingResourcePatternResolver().getResources(MAPPER_LOCATION)
);
return factoryBean.getObject();
}

@ -10,10 +10,13 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
@Configuration
@MapperScan(basePackages = {"com.infincash.statistics.risk.mapper.stats"}, sqlSessionFactoryRef = "sqlSessionFactoryStats")
public class StatsDbConfig {
static final String MAPPER_LOCATION = "classpath:mapping/stats/*.xml";
@Autowired
@Qualifier("stats")
private DataSource stats;
@ -21,7 +24,10 @@ public class StatsDbConfig {
@Bean
public SqlSessionFactory sqlSessionFactoryStats() throws Exception {
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(stats); // 使用titan数据源, 连接titan库
factoryBean.setDataSource(stats);
factoryBean.setMapperLocations(
new PathMatchingResourcePatternResolver().getResources(MAPPER_LOCATION)
);
return factoryBean.getObject();
}

@ -32,10 +32,8 @@ public class RiskCountStatisticsJobHandler extends IJobHandler {
public ReturnT<String> execute(String param) throws Exception {
List<RiskStatsDTO> aa = service.countRecentRisk();
for (RiskStatsDTO a:aa) {
XxlJobLogger.log(a.getRiskRuleId() + a.getCount() + a.getTime().toGMTString());
XxlJobLogger.log(a.getRiskRuleId() +", "+ a.getCount()+", "+ a.getTime());
}
XxlJobLogger.log("beat at:");
return SUCCESS;
}
}

@ -8,10 +8,9 @@ spring.datasource.stats.username=jobopr
spring.datasource.stats.password=jobopr666
spring.datasource.stats.driver-class-name=com.mysql.jdbc.Driver
mybatis.mapper-locations=classpath:mapping/*/*.xml
mybatis.type-aliases-package=com.infincash.statistics.risk.table
# multi datasource no need declare here
#mybatis.mapper-locations=classpath:mapping/*.xml
#mybatis.type-aliases-package=com.infincash.statistics.risk.table
# web port
server.port=9001

@ -1,11 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.infincash.statistics.risk.mapper.prd.TRiskRuleMapper">
<select id="countRiskRule" resultType="com.infincash.statistics.risk.table.prd.extend.RiskStatsDTO">
<resultMap id="riskStatsDTOMap" type="com.infincash.statistics.risk.table.prd.extend.RiskStatsDTO">
<result property="riskRuleId" column="risk_rule_id" />
<result property="count" column="count1" />
<result property="time" column="time" />
</resultMap>
<!-- id, risk_rule_id, count(1) as count1, now() as time resultType="com.infincash.statistics.risk.table.prd.extend.RiskStatsDTO" -->
<select id="countRiskRule" resultMap="riskStatsDTOMap" >
<![CDATA[
select
risk_rule_id, count(1) as count, now() as time
risk_rule_id, count(1) as count1, 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;
]]>
</select>
</mapper>
Loading…
Cancel
Save