多数据源

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

@ -1,5 +1,9 @@
package com.infincash.statistics.risk; package com.infincash.statistics.risk;
import java.util.List;
import com.infincash.statistics.risk.table.prd.extend.RiskStatsDTO;
public interface RiskService { public interface RiskService {
int countRecentRisk(); List<RiskStatsDTO> countRecentRisk();
} }

@ -1,9 +1,12 @@
package com.infincash.statistics.risk; package com.infincash.statistics.risk;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; 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 @Service
public class RiskServiceImpl implements RiskService { public class RiskServiceImpl implements RiskService {
@ -12,8 +15,7 @@ public class RiskServiceImpl implements RiskService {
private TRiskRuleMapper mapper;//这里会报错,但是并不会影响 private TRiskRuleMapper mapper;//这里会报错,但是并不会影响
@Override @Override
public int countRecentRisk() { public List<RiskStatsDTO> countRecentRisk() {
return mapper.countRiskRule(); return mapper.countRiskRule();
} }
} }

@ -1,5 +0,0 @@
package com.infincash.statistics.risk.mapper;
public interface TRiskRuleMapper {
int countRiskRule();
}

@ -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<RiskStatsDTO> countRiskRule();
}

@ -1,17 +1,9 @@
package com.infincash.statistics.risk.mapper.stats; package com.infincash.statistics.risk.mapper.stats;
import java.util.List;
import com.infincash.statistics.risk.table.stats.TStatsRiskDetail; import com.infincash.statistics.risk.table.stats.TStatsRiskDetail;
public interface TStatsRiskDetailMapper { public interface TStatsRiskDetailMapper {
int deleteByPrimaryKey(Long id); int insertBatch(List<TStatsRiskDetail> record);
int insert(TStatsRiskDetail record);
int insertSelective(TStatsRiskDetail record);
TStatsRiskDetail selectByPrimaryKey(Long id);
int updateByPrimaryKeySelective(TStatsRiskDetail record);
int updateByPrimaryKey(TStatsRiskDetail record);
} }

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

@ -1,6 +1,5 @@
package com.xxl.job.executor; package com.xxl.job.executor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;

@ -12,26 +12,22 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@Configuration @Configuration
@MapperScan(basePackages = {"titan.mapper"}, sqlSessionFactoryRef = "sqlSessionFactory1") @MapperScan(basePackages = {"com.infincash.statistics.risk.mapper.prd"}, sqlSessionFactoryRef = "sqlSessionFactoryPrd")
public class PrdDbConfig { public class PrdDbConfig {
@Autowired @Autowired
@Qualifier("titanMasterDS") @Qualifier("prd")
private DataSource ds1; private DataSource prd;
@Bean @Bean
public SqlSessionFactory sqlSessionFactory1() throws Exception { public SqlSessionFactory sqlSessionFactoryPrd() throws Exception {
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean(); SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(ds1); // 使用titan数据源, 连接titan库 factoryBean.setDataSource(prd);
return factoryBean.getObject(); return factoryBean.getObject();
} }
@Bean @Bean
public SqlSessionTemplate sqlSessionTemplate1() throws Exception { public SqlSessionTemplate sqlSessionTemplatePrd() throws Exception {
SqlSessionTemplate template = new SqlSessionTemplate(sqlSessionFactory1()); // 使用上面配置的Factory SqlSessionTemplate template = new SqlSessionTemplate(sqlSessionFactoryPrd());
return template; return template;
} }
} }

@ -12,25 +12,22 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@Configuration @Configuration
@MapperScan(basePackages = {"other.mapper"}, sqlSessionFactoryRef = "sqlSessionFactory2") @MapperScan(basePackages = {"com.infincash.statistics.risk.mapper.stats"}, sqlSessionFactoryRef = "sqlSessionFactoryStats")
public class StatsDbConfig { public class StatsDbConfig {
@Autowired @Autowired
@Qualifier("ds2") @Qualifier("stats")
private DataSource ds2; private DataSource stats;
@Bean @Bean
public SqlSessionFactory sqlSessionFactory2() throws Exception { public SqlSessionFactory sqlSessionFactoryStats() throws Exception {
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean(); SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(ds2); factoryBean.setDataSource(stats); // 使用titan数据源, 连接titan库
return factoryBean.getObject(); return factoryBean.getObject();
} }
@Bean @Bean
public SqlSessionTemplate sqlSessionTemplate2() throws Exception { public SqlSessionTemplate sqlSessionTemplateStats() throws Exception {
SqlSessionTemplate template = new SqlSessionTemplate(sqlSessionFactory2()); SqlSessionTemplate template = new SqlSessionTemplate(sqlSessionFactoryStats()); // 使用上面配置的Factory
return template; return template;
} }
} }

@ -1,9 +1,12 @@
package com.xxl.job.executor.service.jobhandler; package com.xxl.job.executor.service.jobhandler;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.infincash.statistics.risk.RiskService; 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.biz.model.ReturnT;
import com.xxl.job.core.handler.IJobHandler; import com.xxl.job.core.handler.IJobHandler;
import com.xxl.job.core.handler.annotation.JobHandler; import com.xxl.job.core.handler.annotation.JobHandler;
@ -27,8 +30,10 @@ public class RiskCountStatisticsJobHandler extends IJobHandler {
@Override @Override
public ReturnT<String> execute(String param) throws Exception { public ReturnT<String> execute(String param) throws Exception {
int aa = service.countRecentRisk(); List<RiskStatsDTO> aa = service.countRecentRisk();
XxlJobLogger.log("aa: " + aa); for (RiskStatsDTO a:aa) {
XxlJobLogger.log(a.getRiskRuleId() + a.getCount() + a.getTime().toGMTString());
}
XxlJobLogger.log("beat at:"); XxlJobLogger.log("beat at:");
return SUCCESS; return SUCCESS;
} }

@ -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 mybatis.type-aliases-package=com.infincash.statistics.risk.table
# web port # web port
server.port=9001 server.port=9001

@ -1,15 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!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.TRiskRuleMapper"> <mapper namespace="com.infincash.statistics.risk.mapper.prd.TRiskRuleMapper">
<resultMap type="com.infincash.statistics.risk.table.extend.RiskStatsDTO" id="RiskStatsDTOMap"> <select id="countRiskRule" resultType="com.infincash.statistics.risk.table.prd.extend.RiskStatsDTO">
<id property="id" column="id" />
<result property="userName" column="username" />
<result property="passW ord" column="password" />
</resultMap>
<select id="countRiskRule" resultMap="RiskStatsDTOMap">
select select
risk_rule_id, count(1), now() risk_rule_id, count(1) as count, now() as time
from t_user_risk from t_user_risk
where user_id in (select user_id from t_user where DATE_SUB(NOW(),INTERVAL 1 HOUR) <= register_time) 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; GROUP by risk_rule_id order by risk_rule_id;

@ -16,22 +16,17 @@
from t_stats_risk_detail from t_stats_risk_detail
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
</select> </select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from t_stats_risk_detail
where id = #{id,jdbcType=BIGINT}
</delete>
<insert id="insert" parameterType="com.infincash.statistics.risk.table.stats.TStatsRiskDetail"> <insert id="insert" parameterType="com.infincash.statistics.risk.table.stats.TStatsRiskDetail">
insert into t_stats_risk_detail (id, stats_time, a_hour_count, insert into t_stats_risk_detail (id, stats_time, a_hour_count,
risk_rule_id) risk_rule_id)
values (#{id,jdbcType=BIGINT}, #{statsTime,jdbcType=TIMESTAMP}, #{aHourCount,jdbcType=INTEGER}, values (#{id,jdbcType=BIGINT}, #{statsTime,jdbcType=TIMESTAMP}, #{aHourCount,jdbcType=INTEGER},
#{riskRuleId,jdbcType=VARCHAR}) #{riskRuleId,jdbcType=VARCHAR})
</insert> </insert>
<insert id="insertSelective" parameterType="com.infincash.statistics.risk.table.stats.TStatsRiskDetail">
<insert id="insertBatch" parameterType="com.infincash.statistics.risk.table.stats.TStatsRiskDetail">
insert into t_stats_risk_detail insert into t_stats_risk_detail
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="statsTime != null"> <if test="statsTime != null">
stats_time, stats_time,
</if> </if>
@ -43,9 +38,6 @@
</if> </if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=BIGINT},
</if>
<if test="statsTime != null"> <if test="statsTime != null">
#{statsTime,jdbcType=TIMESTAMP}, #{statsTime,jdbcType=TIMESTAMP},
</if> </if>
@ -57,104 +49,4 @@
</if> </if>
</trim> </trim>
</insert> </insert>
<update id="updateByPrimaryKeySelective" parameterType="com.infincash.statistics.risk.table.stats.TStatsRiskDetail">
update t_stats_risk_detail
<set>
<if test="statsTime != null">
stats_time = #{statsTime,jdbcType=TIMESTAMP},
</if>
<if test="aHourCount != null">
a_hour_count = #{aHourCount,jdbcType=INTEGER},
</if>
<if test="riskRuleId != null">
risk_rule_id = #{riskRuleId,jdbcType=VARCHAR},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<update id="updateByPrimaryKey" parameterType="com.infincash.statistics.risk.table.stats.TStatsRiskDetail">
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}
</update>
<resultMap id="BaseResultMap" type="com.infincash.statistics.risk.table.stats.TStatsRiskDetail">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="stats_time" jdbcType="TIMESTAMP" property="statsTime" />
<result column="a_hour_count" jdbcType="INTEGER" property="aHourCount" />
<result column="risk_rule_id" jdbcType="VARCHAR" property="riskRuleId" />
</resultMap>
<sql id="Base_Column_List">
id, stats_time, a_hour_count, risk_rule_id
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from t_stats_risk_detail
where id = #{id,jdbcType=BIGINT}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from t_stats_risk_detail
where id = #{id,jdbcType=BIGINT}
</delete>
<insert id="insert" parameterType="com.infincash.statistics.risk.table.stats.TStatsRiskDetail">
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>
<insert id="insertSelective" parameterType="com.infincash.statistics.risk.table.stats.TStatsRiskDetail">
insert into t_stats_risk_detail
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="statsTime != null">
stats_time,
</if>
<if test="aHourCount != null">
a_hour_count,
</if>
<if test="riskRuleId != null">
risk_rule_id,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=BIGINT},
</if>
<if test="statsTime != null">
#{statsTime,jdbcType=TIMESTAMP},
</if>
<if test="aHourCount != null">
#{aHourCount,jdbcType=INTEGER},
</if>
<if test="riskRuleId != null">
#{riskRuleId,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.infincash.statistics.risk.table.stats.TStatsRiskDetail">
update t_stats_risk_detail
<set>
<if test="statsTime != null">
stats_time = #{statsTime,jdbcType=TIMESTAMP},
</if>
<if test="aHourCount != null">
a_hour_count = #{aHourCount,jdbcType=INTEGER},
</if>
<if test="riskRuleId != null">
risk_rule_id = #{riskRuleId,jdbcType=VARCHAR},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<update id="updateByPrimaryKey" parameterType="com.infincash.statistics.risk.table.stats.TStatsRiskDetail">
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}
</update>
</mapper> </mapper>
Loading…
Cancel
Save