Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
etax-income-api
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
caoxiaohong
etax-income-api
Commits
9a2c4297
Commit
9a2c4297
authored
Dec 24, 2024
by
ddx
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add redis config
parent
d15eb210
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
297 additions
and
3 deletions
+297
-3
etax-income-domain/pom.xml
+10
-0
etax-income-domain/src/main/java/com/sxc/etaxincome/domain/business/impl/SysManageManager.java
+11
-1
etax-income-domain/src/main/java/com/sxc/etaxincome/domain/config/RedisConfig.java
+78
-0
etax-income-domain/src/main/java/com/sxc/etaxincome/domain/infrastructure/IRedisService.java
+24
-0
etax-income-domain/src/main/java/com/sxc/etaxincome/domain/infrastructure/impl/EtaxConfigService.java
+1
-1
etax-income-domain/src/main/java/com/sxc/etaxincome/domain/infrastructure/impl/RedisService.java
+106
-0
etax-income-server/src/main/resources/application-dev.yml
+22
-0
etax-income-server/src/main/resources/application-prod.yml
+22
-0
etax-income-server/src/main/resources/application-stage.yml
+22
-0
etax-income-server/src/main/webapp/scripts/management-query-realuser-page.js
+1
-1
No files found.
etax-income-domain/pom.xml
View file @
9a2c4297
...
...
@@ -18,6 +18,7 @@
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<buildnumber-maven-plugin.version>
1.4
</buildnumber-maven-plugin.version>
<templating-maven-plugin.version>
1.0.0
</templating-maven-plugin.version>
<commons-pool2.version>
2.11.1
</commons-pool2.version>
</properties>
<dependencies>
...
...
@@ -46,6 +47,15 @@
<artifactId>
kryo
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-data-redis
</artifactId>
</dependency>
<dependency>
<groupId>
org.apache.commons
</groupId>
<artifactId>
commons-pool2
</artifactId>
<version>
${commons-pool2.version}
</version>
</dependency>
<dependency>
<groupId>
com.alicp.jetcache
</groupId>
<artifactId>
jetcache-starter-redis-lettuce
</artifactId>
</dependency>
...
...
etax-income-domain/src/main/java/com/sxc/etaxincome/domain/business/impl/SysManageManager.java
View file @
9a2c4297
package
com
.
sxc
.
etaxincome
.
domain
.
business
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.sxc.etaxincome.domain.business.ICachedConfigManager
;
import
com.sxc.etaxincome.domain.business.ISysManageManager
;
import
com.sxc.etaxincome.domain.infrastructure.IRedisService
;
import
com.sxc.etaxincome.domain.model.sysManage.SysAppUserSummary
;
import
com.sxc.etaxincome.entity.FinSysDict
;
import
com.sxc.etaxincome.entity.FinUserTaxno
;
...
...
@@ -40,6 +42,11 @@ public class SysManageManager implements ISysManageManager {
@Autowired
private
ICachedConfigManager
cachedConfigManager
;
@Autowired
private
IRedisService
redisService
;
public
static
final
String
CACHE_USER_TAX_PREFIX
=
"real:usertax:"
;
public
List
<
SysAppUserSummary
>
queryListByCriteria
()
{
SysAppUser
sysAppUserCriteria
=
new
SysAppUser
();
...
...
@@ -58,7 +65,10 @@ public class SysManageManager implements ISysManageManager {
}
public
boolean
updateTaxStatusById
(
FinUserTaxno
finUserTaxno
)
{
return
finUserTaxnoService
.
updateTaxStatusById
(
finUserTaxno
);
boolean
updateFlag
=
finUserTaxnoService
.
updateTaxStatusById
(
finUserTaxno
);
FinUserTaxno
taxUser
=
finUserTaxnoService
.
getById
(
finUserTaxno
.
getId
());
redisService
.
set
(
CACHE_USER_TAX_PREFIX
+
taxUser
.
getUsername
()
+
taxUser
.
getTaxno
(),
JSON
.
toJSONString
(
taxUser
),
3600
);
return
updateFlag
;
}
}
etax-income-domain/src/main/java/com/sxc/etaxincome/domain/config/RedisConfig.java
0 → 100644
View file @
9a2c4297
package
com
.
sxc
.
etaxincome
.
domain
.
config
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.apache.commons.pool2.impl.GenericObjectPoolConfig
;
import
org.springframework.cache.annotation.CachingConfigurerSupport
;
import
org.springframework.cache.annotation.EnableCaching
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.data.redis.connection.RedisConnectionFactory
;
import
org.springframework.data.redis.connection.RedisPassword
;
import
org.springframework.data.redis.connection.RedisStandaloneConfiguration
;
import
org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory
;
import
org.springframework.data.redis.connection.lettuce.LettucePoolingClientConfiguration
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.data.redis.serializer.StringRedisSerializer
;
import
java.time.Duration
;
@Configuration
@EnableCaching
public
class
RedisConfig
extends
CachingConfigurerSupport
{
public
RedisTemplate
<
String
,
String
>
redisTemplateBase
(
int
database
,
long
timeout
,
int
maxActive
,
int
maxWait
,
int
maxIdle
,
int
minIdle
,
String
hostName
,
int
port
,
String
password
)
{
/* ========= 基本配置 ========= */
RedisStandaloneConfiguration
configuration
=
new
RedisStandaloneConfiguration
();
configuration
.
setHostName
(
hostName
);
configuration
.
setPort
(
port
);
configuration
.
setDatabase
(
database
);
if
(!
ObjectUtils
.
isEmpty
(
password
))
{
RedisPassword
redisPassword
=
RedisPassword
.
of
(
password
);
configuration
.
setPassword
(
redisPassword
);
}
/* ========= 连接池通用配置 ========= */
GenericObjectPoolConfig
genericObjectPoolConfig
=
new
GenericObjectPoolConfig
();
genericObjectPoolConfig
.
setMaxTotal
(
maxActive
);
genericObjectPoolConfig
.
setMinIdle
(
minIdle
);
genericObjectPoolConfig
.
setMaxIdle
(
maxIdle
);
genericObjectPoolConfig
.
setMaxWait
(
Duration
.
ofSeconds
(
maxWait
));
/* ========= lettuce pool ========= */
LettucePoolingClientConfiguration
.
LettucePoolingClientConfigurationBuilder
builder
=
LettucePoolingClientConfiguration
.
builder
();
builder
.
poolConfig
(
genericObjectPoolConfig
);
builder
.
commandTimeout
(
Duration
.
ofSeconds
(
timeout
));
LettuceConnectionFactory
connectionFactory
=
new
LettuceConnectionFactory
(
configuration
,
builder
.
build
());
connectionFactory
.
afterPropertiesSet
();
/* ========= 创建 template ========= */
return
createRedisTemplate
(
connectionFactory
);
}
/**
* 默认配置的redis template
* @param redisConnectionFactory
* @return
*/
@Bean
public
RedisTemplate
<
String
,
String
>
redisTemplate
(
RedisConnectionFactory
redisConnectionFactory
)
{
return
createRedisTemplate
(
redisConnectionFactory
);
}
/**
* json 实现 redisTemplate
* <p>
* 该方法不能加 @Bean 否则不管如何调用,connectionFactory都会是默认配置
*
* @param redisConnectionFactory
* @return
*/
public
RedisTemplate
<
String
,
String
>
createRedisTemplate
(
RedisConnectionFactory
redisConnectionFactory
)
{
RedisTemplate
<
String
,
String
>
redisTemplate
=
new
RedisTemplate
<>();
redisTemplate
.
setConnectionFactory
(
redisConnectionFactory
);
redisTemplate
.
setValueSerializer
(
new
StringRedisSerializer
());
redisTemplate
.
setKeySerializer
(
new
StringRedisSerializer
());
redisTemplate
.
afterPropertiesSet
();
return
redisTemplate
;
}
}
etax-income-domain/src/main/java/com/sxc/etaxincome/domain/infrastructure/IRedisService.java
0 → 100644
View file @
9a2c4297
package
com
.
sxc
.
etaxincome
.
domain
.
infrastructure
;
import
org.springframework.data.redis.core.ZSetOperations
;
import
org.springframework.data.redis.core.script.RedisScript
;
import
java.util.List
;
import
java.util.Set
;
public
interface
IRedisService
{
void
set
(
String
key
,
String
value
);
void
set
(
String
key
,
String
value
,
long
expiredSeconds
);
String
get
(
String
key
);
boolean
delete
(
String
key
);
Set
<
String
>
members
(
String
key
);
void
add
(
String
key
,
Set
<
String
>
values
);
void
remove
(
String
key
,
Set
<
String
>
values
);
void
update
(
String
key
,
Set
<
String
>
values
);
Long
increment
(
String
key
);
Long
increment
(
String
key
,
long
delta
);
Boolean
expire
(
String
key
,
long
timeoutSeconds
);
ZSetOperations
<
String
,
String
>
getZSetOperations
();
Boolean
keyExists
(
String
key
);
<
T
>
T
execute
(
RedisScript
<
T
>
redisScript
,
List
<
String
>
keyList
,
Object
...
args
);
}
etax-income-domain/src/main/java/com/sxc/etaxincome/domain/infrastructure/impl/EtaxConfigService.java
View file @
9a2c4297
...
...
@@ -51,7 +51,7 @@ public class EtaxConfigService implements IEtaxConfigService {
return
eTaxWebsiteList
;
}
@Override
@Override
@Cached
(
name
=
"gx2022:config:jx-user-url-config-item:"
,
key
=
"#userCode"
,
expire
=
REMOTE_CACHED_EXPIRE_SECONDS
,
cacheType
=
CacheType
.
LOCAL
,
cacheNullValue
=
true
)
public
String
getJxUserUrl
(
String
userCode
)
{
JxUserUrlConfig
jxUserUrlConfig
=
etaxConfigRemoteService
.
getJxUserUrlConfigConfigRemote
();
...
...
etax-income-domain/src/main/java/com/sxc/etaxincome/domain/infrastructure/impl/RedisService.java
0 → 100644
View file @
9a2c4297
package
com
.
sxc
.
etaxincome
.
domain
.
infrastructure
.
impl
;
import
com.sxc.etaxincome.domain.infrastructure.IRedisService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.data.redis.core.ZSetOperations
;
import
org.springframework.data.redis.core.script.RedisScript
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.concurrent.TimeUnit
;
@Slf4j
@Service
(
value
=
"redisService"
)
public
class
RedisService
implements
IRedisService
{
@Autowired
@Qualifier
(
"redisTemplate"
)
private
RedisTemplate
<
String
,
String
>
redisTemplate
;
@Override
public
void
set
(
String
key
,
String
value
)
{
redisTemplate
.
opsForValue
().
set
(
key
,
value
);
}
@Override
public
void
set
(
String
key
,
String
value
,
long
expiredSeconds
)
{
redisTemplate
.
opsForValue
().
set
(
key
,
value
,
expiredSeconds
,
TimeUnit
.
SECONDS
);
}
@Override
public
String
get
(
String
key
)
{
return
redisTemplate
.
opsForValue
().
get
(
key
);
}
@Override
public
boolean
delete
(
String
key
)
{
Boolean
result
=
redisTemplate
.
delete
(
key
);
if
(
result
!=
null
)
{
return
result
;
}
return
false
;
}
@Override
public
Set
<
String
>
members
(
String
key
)
{
return
redisTemplate
.
opsForSet
().
members
(
key
);
}
@Override
public
void
add
(
String
key
,
Set
<
String
>
values
)
{
redisTemplate
.
opsForSet
().
add
(
key
,
values
.
toArray
(
new
String
[
0
]));
}
@Override
public
void
remove
(
String
key
,
Set
<
String
>
values
)
{
if
(
CollectionUtils
.
isEmpty
(
values
))
{
return
;
}
redisTemplate
.
opsForSet
().
remove
(
key
,
values
.
toArray
(
new
String
[
0
]));
}
@Override
public
void
update
(
String
key
,
Set
<
String
>
values
)
{
if
(
CollectionUtils
.
isEmpty
(
values
))
{
return
;
}
Set
<
String
>
oldSet
=
this
.
members
(
key
);
oldSet
.
removeAll
(
values
);
this
.
remove
(
key
,
oldSet
);
this
.
add
(
key
,
values
);
}
@Override
public
Long
increment
(
String
key
)
{
return
redisTemplate
.
opsForValue
().
increment
(
key
);
}
@Override
public
Long
increment
(
String
key
,
long
delta
)
{
return
redisTemplate
.
opsForValue
().
increment
(
key
,
delta
);
}
@Override
public
Boolean
expire
(
String
key
,
long
timeoutSeconds
)
{
return
redisTemplate
.
expire
(
key
,
timeoutSeconds
,
TimeUnit
.
SECONDS
);
}
@Override
public
ZSetOperations
<
String
,
String
>
getZSetOperations
()
{
return
redisTemplate
.
opsForZSet
();
}
@Override
public
Boolean
keyExists
(
String
key
)
{
return
redisTemplate
.
hasKey
(
key
);
}
public
<
T
>
T
execute
(
RedisScript
<
T
>
redisScript
,
List
<
String
>
keyList
,
Object
...
args
)
{
return
redisTemplate
.
execute
(
redisScript
,
keyList
,
args
);
}
}
etax-income-server/src/main/resources/application-dev.yml
View file @
9a2c4297
spring
:
#redis 配置
#数据库索引(默认为0)
redis
:
database
:
0
#服务器连接地址
host
:
localhost
#端口
port
:
6379
#密码
password
:
# 超时
timeout
:
10000
# 连接池最大连接数(使用负值表示没有限制) 默认 8
lettuce
:
pool
:
max-active
:
8
# 连接池最大阻塞等待时间(使用负值表示没有限制) 默认 -1
max-wait
:
-1
# 连接池中的最大空闲连接 默认 8
max-idle
:
8
# 连接池中的最小空闲连接 默认 0
min-idle
:
0
datasource
:
hikari
:
auto-commit
:
true
...
...
etax-income-server/src/main/resources/application-prod.yml
View file @
9a2c4297
spring
:
#redis 配置
#数据库索引(默认为0)
redis
:
database
:
0
#服务器连接地址
host
:
db5.taxservices.cn
#端口
port
:
6784
#密码
password
:
dpptss@2022
# 超时
timeout
:
10000
# 连接池最大连接数(使用负值表示没有限制) 默认 8
lettuce
:
pool
:
max-active
:
8
# 连接池最大阻塞等待时间(使用负值表示没有限制) 默认 -1
max-wait
:
-1
# 连接池中的最大空闲连接 默认 8
max-idle
:
8
# 连接池中的最小空闲连接 默认 0
min-idle
:
0
datasource
:
hikari
:
auto-commit
:
true
...
...
etax-income-server/src/main/resources/application-stage.yml
View file @
9a2c4297
spring
:
#redis 配置
#数据库索引(默认为0)
redis
:
database
:
0
#服务器连接地址
host
:
db5.taxservices.cn
#端口
port
:
6784
#密码
password
:
dpptss@2022
# 超时
timeout
:
10000
# 连接池最大连接数(使用负值表示没有限制) 默认 8
lettuce
:
pool
:
max-active
:
8
# 连接池最大阻塞等待时间(使用负值表示没有限制) 默认 -1
max-wait
:
-1
# 连接池中的最大空闲连接 默认 8
max-idle
:
8
# 连接池中的最小空闲连接 默认 0
min-idle
:
0
datasource
:
hikari
:
auto-commit
:
true
...
...
etax-income-server/src/main/webapp/scripts/management-query-realuser-page.js
View file @
9a2c4297
...
...
@@ -38,7 +38,7 @@ function queryPageList() {
maintainSelected
:
true
,
//设置为 true 在点击分页按钮或搜索按钮时,将记住checkbox的选择项
sidePagination
:
"server"
,
//分页方式:client客户端分页,server服务端分页(*)
pageNumber
:
1
,
//初始化加载第一页,默认第一页
pageSize
:
5
,
//每页的记录行数(*)
pageSize
:
10
,
//每页的记录行数(*)
pageList
:
[
5
,
10
,
25
,
50
,
100
],
//可供选择的每页的行数(*)
search
:
true
,
//是否显示表格搜索,此搜索是客户端搜索,不会进服务端
strictSearch
:
true
,
//设置为 true启用 全匹配搜索,否则为模糊搜索
...
...
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