Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
X
xyqb-user2
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
head_group
xyqb-user2
Commits
9213a603
Commit
9213a603
authored
Nov 26, 2020
by
董建华
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加多数据源
parent
eb2349b0
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
142 additions
and
34 deletions
+142
-34
Bootstrap.java
src/main/java/cn/quantgroup/xyqb/Bootstrap.java
+2
-1
LoginInterceptorAspect.java
...uantgroup/xyqb/aspect/captcha/LoginInterceptorAspect.java
+4
-8
JpaConfig.java
src/main/java/cn/quantgroup/xyqb/config/data/JpaConfig.java
+1
-1
LoginRiskJpaConfig.java
...va/cn/quantgroup/xyqb/config/data/LoginRiskJpaConfig.java
+123
-0
CountDevice.java
...main/java/cn/quantgroup/xyqb/risk/entity/CountDevice.java
+2
-5
LoginInfo.java
src/main/java/cn/quantgroup/xyqb/risk/entity/LoginInfo.java
+2
-2
WhiteList.java
src/main/java/cn/quantgroup/xyqb/risk/entity/WhiteList.java
+2
-1
LoginInfoRepository.java
.../quantgroup/xyqb/risk/repository/LoginInfoRepository.java
+4
-14
WhiteListRepository.java
.../quantgroup/xyqb/risk/repository/WhiteListRepository.java
+2
-2
No files found.
src/main/java/cn/quantgroup/xyqb/Bootstrap.java
View file @
9213a603
...
...
@@ -2,6 +2,7 @@ package cn.quantgroup.xyqb;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
;
import
org.springframework.cache.annotation.EnableCaching
;
import
org.springframework.context.annotation.ComponentScan
;
import
org.springframework.context.annotation.EnableAspectJAutoProxy
;
...
...
@@ -22,7 +23,7 @@ import cn.quantgroup.tech.db.EnableDynamicDataSource;
@EnableCaching
@EnableAsync
@EnableAspectJAutoProxy
@SpringBootApplication
@SpringBootApplication
(
exclude
=
{
DataSourceAutoConfiguration
.
class
})
@EnableDynamicDataSource
public
class
Bootstrap
{
...
...
src/main/java/cn/quantgroup/xyqb/aspect/captcha/LoginInterceptorAspect.java
View file @
9213a603
package
cn
.
quantgroup
.
xyqb
.
aspect
.
captcha
;
import
cn.quantgroup.xyqb.entity.CountDevice
;
import
cn.quantgroup.xyqb.entity.LoginInfo
;
import
cn.quantgroup.xyqb.risk.entity.CountDevice
;
import
cn.quantgroup.xyqb.entity.enums.Device
;
import
cn.quantgroup.xyqb.entity.enums.KeyType
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.model.LoginRefuseResult
;
import
cn.quantgroup.xyqb.repository.LoginInfoRepository
;
import
cn.quantgroup.xyqb.repository.WhiteListRepository
;
import
cn.quantgroup.xyqb.risk.entity.LoginInfo
;
import
cn.quantgroup.xyqb.risk.repository.LoginInfoRepository
;
import
cn.quantgroup.xyqb.risk.repository.WhiteListRepository
;
import
com.google.common.collect.Maps
;
import
lombok.extern.slf4j.Slf4j
;
import
org.aspectj.lang.ProceedingJoinPoint
;
...
...
@@ -16,16 +16,12 @@ import org.aspectj.lang.annotation.Aspect;
import
org.aspectj.lang.annotation.Pointcut
;
import
org.springframework.core.annotation.Order
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Optional
;
import
java.util.Set
;
/**
* @author :dongjianhua
...
...
src/main/java/cn/quantgroup/xyqb/config/data/JpaConfig.java
View file @
9213a603
...
...
@@ -44,7 +44,7 @@ public class JpaConfig {
@Value
(
"${xyqb.data.mysql.max-pool-size}"
)
private
Integer
maxPoolSize
;
@Primary
@Bean
@DependsOn
(
value
=
"dataSource"
)
public
EntityManagerFactory
entityManagerFactory
(
DataSource
dataSource
)
{
...
...
src/main/java/cn/quantgroup/xyqb/config/data/LoginRiskJpaConfig.java
0 → 100644
View file @
9213a603
package
cn
.
quantgroup
.
xyqb
.
config
.
data
;
import
com.zaxxer.hikari.HikariDataSource
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder
;
import
org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.DependsOn
;
import
org.springframework.data.jpa.repository.config.EnableJpaRepositories
;
import
org.springframework.jdbc.core.JdbcTemplate
;
import
org.springframework.orm.jpa.JpaTransactionManager
;
import
org.springframework.orm.jpa.JpaVendorAdapter
;
import
org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean
;
import
org.springframework.orm.jpa.vendor.Database
;
import
org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter
;
import
org.springframework.transaction.PlatformTransactionManager
;
import
org.springframework.transaction.annotation.EnableTransactionManagement
;
import
javax.persistence.EntityManagerFactory
;
import
javax.sql.DataSource
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Properties
;
/**
* 登录风控拦截数据库
*/
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories
(
basePackages
=
{
"cn.quantgroup.xyqb.risk.repository"
},
entityManagerFactoryRef
=
"riskEntityManager"
,
transactionManagerRef
=
"riskTransactionManager"
)
public
class
LoginRiskJpaConfig
{
@Value
(
"${login.risk.datasource.url}"
)
private
String
dataSourceUrl
;
@Value
(
"${login.risk.datasource.password}"
)
private
String
password
;
@Value
(
"${login.risk.datasource.username}"
)
private
String
username
;
@Value
(
"${xyqb.data.mysql.max-pool-size}"
)
private
Integer
maxPoolSize
;
private
static
final
String
DATABASE_TYPE_DEFAULT
=
"com.mysql.jdbc.Driver"
;
@Bean
(
name
=
"riskEntityManager"
)
@DependsOn
(
"riskDataSource"
)
public
EntityManagerFactory
entityManagerFactory
(
@Qualifier
(
"riskDataSource"
)
DataSource
dataSource
)
{
LocalContainerEntityManagerFactoryBean
entityManager
=
new
LocalContainerEntityManagerFactoryBean
();
entityManager
.
setDataSource
(
dataSource
);
entityManager
.
setPackagesToScan
(
"cn.quantgroup.xyqb.risk"
);
entityManager
.
setPersistenceUnitName
(
"riskDataSource"
);
Properties
properties
=
new
Properties
();
properties
.
put
(
"hibernate.jdbc.batch_size"
,
30
);
properties
.
put
(
"hibernate.order_inserts"
,
true
);
properties
.
put
(
"hibernate.order_updates"
,
true
);
entityManager
.
setJpaProperties
(
properties
);
entityManager
.
setJpaVendorAdapter
(
jpaVendorAdapter
());
entityManager
.
afterPropertiesSet
();
return
entityManager
.
getObject
();
}
private
JpaVendorAdapter
jpaVendorAdapter
()
{
HibernateJpaVendorAdapter
hibernateJpaVendorAdapter
=
new
HibernateJpaVendorAdapter
();
hibernateJpaVendorAdapter
.
setShowSql
(
false
);
hibernateJpaVendorAdapter
.
setGenerateDdl
(
false
);
hibernateJpaVendorAdapter
.
setDatabase
(
Database
.
MYSQL
);
return
hibernateJpaVendorAdapter
;
}
@Bean
(
name
=
"riskTransactionManager"
)
@DependsOn
(
"riskEntityManager"
)
public
PlatformTransactionManager
transactionManager
(
@Qualifier
(
"riskEntityManager"
)
EntityManagerFactory
entityManagerFactory
)
{
JpaTransactionManager
transactionManager
=
new
JpaTransactionManager
();
transactionManager
.
setEntityManagerFactory
(
entityManagerFactory
);
return
transactionManager
;
}
@Bean
(
name
=
"riskJdbcTemplate"
)
@DependsOn
(
"riskDataSource"
)
public
JdbcTemplate
jdbcTemplate
(
@Qualifier
(
"riskDataSource"
)
DataSource
dataSource
)
{
JdbcTemplate
jdbcTemplate
=
new
JdbcTemplate
();
jdbcTemplate
.
setDataSource
(
dataSource
);
return
jdbcTemplate
;
}
/**
* private static final String DATASOURCE_TYPE_DEFAULT =
* "com.zaxxer.hikari.HikariDataSource";
* private static final String DATABASE_TYPE_DEFAULT =
* "com.mysql.jdbc.Driver";
* private static final String MASTER_PREFIX =
* "spring.datasource.";
* private static final String SLAVE_PREFIX =
* "slave.datasource.";
*
* @return
*/
@Bean
(
name
=
"riskDataSource"
)
public
DataSource
riskDataSource
()
{
DataSourceBuilder
factory
=
DataSourceBuilder
.
create
()
.
driverClassName
(
DATABASE_TYPE_DEFAULT
)
.
url
(
dataSourceUrl
)
.
username
(
username
)
.
password
(
password
)
.
type
(
HikariDataSource
.
class
);
return
factory
.
build
();
}
}
src/main/java/cn/quantgroup/xyqb/entity/CountDevice.java
→
src/main/java/cn/quantgroup/xyqb/
risk/
entity/CountDevice.java
View file @
9213a603
package
cn
.
quantgroup
.
xyqb
.
entity
;
package
cn
.
quantgroup
.
xyqb
.
risk
.
entity
;
import
cn.quantgroup.xyqb.entity.enums.Device
;
...
...
@@ -8,10 +8,7 @@ import lombok.ToString;
import
javax.persistence.*
;
/**
* 查询营销短信统计信息
*
* @author renwc
* @date 2020-07-14
* 统计黑名单
*/
@NamedNativeQueries
(
{
...
...
src/main/java/cn/quantgroup/xyqb/entity/LoginInfo.java
→
src/main/java/cn/quantgroup/xyqb/
risk/
entity/LoginInfo.java
View file @
9213a603
package
cn
.
quantgroup
.
xyqb
.
entity
;
package
cn
.
quantgroup
.
xyqb
.
risk
.
entity
;
import
cn.quantgroup.xyqb.entity.BaseEntity
;
import
cn.quantgroup.xyqb.entity.enums.Device
;
import
lombok.Data
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.Table
;
import
java.sql.Timestamp
;
/**
* @author :dongjianhua
...
...
src/main/java/cn/quantgroup/xyqb/entity/WhiteList.java
→
src/main/java/cn/quantgroup/xyqb/
risk/
entity/WhiteList.java
View file @
9213a603
package
cn
.
quantgroup
.
xyqb
.
entity
;
package
cn
.
quantgroup
.
xyqb
.
risk
.
entity
;
import
cn.quantgroup.xyqb.entity.BaseEntity
;
import
cn.quantgroup.xyqb.entity.enums.KeyType
;
import
lombok.Data
;
...
...
src/main/java/cn/quantgroup/xyqb/repository/LoginInfoRepository.java
→
src/main/java/cn/quantgroup/xyqb/r
isk/r
epository/LoginInfoRepository.java
View file @
9213a603
package
cn
.
quantgroup
.
xyqb
.
repository
;
package
cn
.
quantgroup
.
xyqb
.
r
isk
.
r
epository
;
import
cn.quantgroup.xyqb.entity.CountDevice
;
import
cn.quantgroup.xyqb.entity.LoginInfo
;
import
cn.quantgroup.xyqb.entity.enums.Device
;
import
cn.quantgroup.xyqb.risk.entity.CountDevice
;
import
cn.quantgroup.xyqb.risk.entity.LoginInfo
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.Query
;
import
org.springframework.scheduling.annotation.Async
;
...
...
@@ -25,20 +24,11 @@ public interface LoginInfoRepository extends JpaRepository<LoginInfo, Long> {
* @return
*/
// @Query(value = "select count(1) ,device from login_info where phone_no=?1 and last_login_at> DATE_ADD(CURRENT_TIMESTAMP(),INTERVAL -90 DAY group by device", nativeQuery = true)
CountDevice
countByPhoneAndDevice
(
String
phone
,
int
device
,
String
deviceId
);
CountDevice
countByPhoneAndDevice
(
String
phone
,
int
device
,
String
deviceId
);
/**
* 查询有没有(手机+设备唯一)
*
* @param phone
* @param device
* @return
*/
LoginInfo
getFirstByPhoneNoAndDevice
(
String
phone
,
Device
device
);
@Async
@Override
<
S
extends
LoginInfo
>
S
save
(
S
s
);
}
src/main/java/cn/quantgroup/xyqb/repository/WhiteListRepository.java
→
src/main/java/cn/quantgroup/xyqb/r
isk/r
epository/WhiteListRepository.java
View file @
9213a603
package
cn
.
quantgroup
.
xyqb
.
repository
;
package
cn
.
quantgroup
.
xyqb
.
r
isk
.
r
epository
;
import
cn.quantgroup.xyqb.entity.WhiteList
;
import
cn.quantgroup.xyqb.
risk.
entity.WhiteList
;
import
cn.quantgroup.xyqb.entity.enums.KeyType
;
import
org.springframework.data.jpa.repository.JpaRepository
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment