Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 3b20c477
由
张少辉
编写于
2026-04-22 15:51:31 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
数据库双写
1 个父辈
f123188e
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
205 行增加
和
7 行删除
src/main/java/com/neotel/smfcore/common/base/AbstractBaseDao.java
src/main/java/com/neotel/smfcore/core/config/mongodb/MongoDbConfig.java
src/main/java/com/neotel/smfcore/core/config/mongodb/bean/CustomMongoProperties.java
src/main/java/com/neotel/smfcore/core/kanban/rest/BoxKanbanController.java
src/main/resources/config/application-prod.yml
src/main/java/com/neotel/smfcore/common/base/AbstractBaseDao.java
查看文件 @
3b20c47
package
com
.
neotel
.
smfcore
.
common
.
base
;
package
com
.
neotel
.
smfcore
.
common
.
base
;
import
com.neotel.smfcore.core.config.mongodb.MongoDbConfig
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
org.apache.logging.log4j.Logger
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.mongodb.core.FindAndModifyOptions
;
import
org.springframework.data.mongodb.core.FindAndModifyOptions
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
...
@@ -19,8 +21,15 @@ import java.util.regex.Pattern;
...
@@ -19,8 +21,15 @@ import java.util.regex.Pattern;
* Created by kangmor on 2015/9/14.
* Created by kangmor on 2015/9/14.
*/
*/
public
abstract
class
AbstractBaseDao
implements
IBaseDao
{
public
abstract
class
AbstractBaseDao
implements
IBaseDao
{
@Autowired
@Autowired
@Qualifier
(
"masterMongoTemplate"
)
private
MongoTemplate
mongoTemplate
;
private
MongoTemplate
mongoTemplate
;
@Autowired
@Qualifier
(
"backUpMongoTemplate"
)
private
MongoTemplate
backUpMongoTemplate
;
private
final
static
int
DEFAULT_PAGE_SIZE
=
10
;
private
final
static
int
DEFAULT_PAGE_SIZE
=
10
;
protected
final
transient
Logger
log
=
LogManager
.
getLogger
(
getClass
());
protected
final
transient
Logger
log
=
LogManager
.
getLogger
(
getClass
());
...
@@ -34,6 +43,13 @@ public abstract class AbstractBaseDao implements IBaseDao {
...
@@ -34,6 +43,13 @@ public abstract class AbstractBaseDao implements IBaseDao {
bean
.
setUpdateDate
(
new
Date
(
System
.
currentTimeMillis
()));
bean
.
setUpdateDate
(
new
Date
(
System
.
currentTimeMillis
()));
getMongoTemplate
().
save
(
bean
);
getMongoTemplate
().
save
(
bean
);
log
.
debug
(
"Bean "
+
getEntityClass
()
+
" is saved with id "
+
bean
.
getId
());
log
.
debug
(
"Bean "
+
getEntityClass
()
+
" is saved with id "
+
bean
.
getId
());
try
{
if
(
getBackUpMongoTemplate
()
!=
null
)
{
getBackUpMongoTemplate
().
save
(
bean
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"{}备份库操作失败:{}"
,
"save"
,
e
.
getMessage
());
}
return
bean
;
return
bean
;
}
}
...
@@ -46,6 +62,13 @@ public abstract class AbstractBaseDao implements IBaseDao {
...
@@ -46,6 +62,13 @@ public abstract class AbstractBaseDao implements IBaseDao {
t
.
setUpdateDate
(
new
Date
(
System
.
currentTimeMillis
()));
t
.
setUpdateDate
(
new
Date
(
System
.
currentTimeMillis
()));
}
}
getMongoTemplate
().
insertAll
(
beanList
);
getMongoTemplate
().
insertAll
(
beanList
);
try
{
if
(
getBackUpMongoTemplate
()
!=
null
)
{
getBackUpMongoTemplate
().
insertAll
(
beanList
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"{}备份库操作失败:{}"
,
"insertAll"
,
e
.
getMessage
());
}
}
}
return
beanList
;
return
beanList
;
}
}
...
@@ -104,11 +127,25 @@ public abstract class AbstractBaseDao implements IBaseDao {
...
@@ -104,11 +127,25 @@ public abstract class AbstractBaseDao implements IBaseDao {
@Override
@Override
public
void
updateMulti
(
Query
query
,
Update
update
){
public
void
updateMulti
(
Query
query
,
Update
update
){
getMongoTemplate
().
updateMulti
(
query
,
update
,
getEntityClass
());
getMongoTemplate
().
updateMulti
(
query
,
update
,
getEntityClass
());
try
{
if
(
getBackUpMongoTemplate
()
!=
null
)
{
getBackUpMongoTemplate
().
updateMulti
(
query
,
update
,
getEntityClass
());
}
}
catch
(
Exception
e
)
{
log
.
error
(
"{}备份库操作失败:{}"
,
"updateMulti"
,
e
.
getMessage
());
}
}
}
@Override
@Override
public
void
updateFirst
(
Query
query
,
Update
update
){
public
void
updateFirst
(
Query
query
,
Update
update
){
getMongoTemplate
().
updateFirst
(
query
,
update
,
getEntityClass
());
getMongoTemplate
().
updateFirst
(
query
,
update
,
getEntityClass
());
try
{
if
(
getBackUpMongoTemplate
()
!=
null
)
{
getBackUpMongoTemplate
().
updateFirst
(
query
,
update
,
getEntityClass
());
}
}
catch
(
Exception
e
)
{
log
.
error
(
"{}备份库操作失败:{}"
,
"updateFirst"
,
e
.
getMessage
());
}
}
}
@Override
@Override
...
@@ -156,6 +193,13 @@ public abstract class AbstractBaseDao implements IBaseDao {
...
@@ -156,6 +193,13 @@ public abstract class AbstractBaseDao implements IBaseDao {
T
t
=
findOneById
(
id
);
T
t
=
findOneById
(
id
);
if
(
t
!=
null
)
{
if
(
t
!=
null
)
{
getMongoTemplate
().
remove
(
t
);
getMongoTemplate
().
remove
(
t
);
try
{
if
(
getBackUpMongoTemplate
()
!=
null
)
{
getBackUpMongoTemplate
().
remove
(
t
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"{}备份库操作失败:{}"
,
"removeOneById"
,
e
.
getMessage
());
}
}
}
}
}
...
@@ -163,6 +207,13 @@ public abstract class AbstractBaseDao implements IBaseDao {
...
@@ -163,6 +207,13 @@ public abstract class AbstractBaseDao implements IBaseDao {
public
<
T
extends
BasePo
>
void
removeOne
(
Object
bean
)
{
public
<
T
extends
BasePo
>
void
removeOne
(
Object
bean
)
{
if
(
bean
!=
null
)
{
if
(
bean
!=
null
)
{
getMongoTemplate
().
remove
(
bean
);
getMongoTemplate
().
remove
(
bean
);
try
{
if
(
getBackUpMongoTemplate
()
!=
null
)
{
getBackUpMongoTemplate
().
remove
(
bean
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"{}备份库操作失败:{}"
,
"removeOne"
,
e
.
getMessage
());
}
}
}
}
}
...
@@ -177,6 +228,13 @@ public abstract class AbstractBaseDao implements IBaseDao {
...
@@ -177,6 +228,13 @@ public abstract class AbstractBaseDao implements IBaseDao {
if
(
list
!=
null
&&
list
.
size
()
>
0
)
{
if
(
list
!=
null
&&
list
.
size
()
>
0
)
{
for
(
T
t
:
list
)
{
for
(
T
t
:
list
)
{
getMongoTemplate
().
remove
(
t
);
getMongoTemplate
().
remove
(
t
);
try
{
if
(
getBackUpMongoTemplate
()
!=
null
)
{
getBackUpMongoTemplate
().
remove
(
t
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"{}备份库操作失败:{}"
,
"removeByQuery"
,
e
.
getMessage
());
}
}
}
}
}
}
}
...
@@ -187,6 +245,13 @@ public abstract class AbstractBaseDao implements IBaseDao {
...
@@ -187,6 +245,13 @@ public abstract class AbstractBaseDao implements IBaseDao {
if
(
list
!=
null
&&
list
.
size
()
>
0
){
if
(
list
!=
null
&&
list
.
size
()
>
0
){
for
(
T
t
:
list
){
for
(
T
t
:
list
){
getMongoTemplate
().
remove
(
t
);
getMongoTemplate
().
remove
(
t
);
try
{
if
(
getBackUpMongoTemplate
()
!=
null
)
{
getBackUpMongoTemplate
().
remove
(
t
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"{}备份库操作失败:{}"
,
"removeAll"
,
e
.
getMessage
());
}
}
}
}
}
}
}
...
@@ -220,6 +285,13 @@ public abstract class AbstractBaseDao implements IBaseDao {
...
@@ -220,6 +285,13 @@ public abstract class AbstractBaseDao implements IBaseDao {
}
}
}
}
try
{
if
(
getBackUpMongoTemplate
()
!=
null
)
{
getBackUpMongoTemplate
().
save
(
sequence
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"{}备份库操作失败:{}"
,
"getNextId"
,
e
.
getMessage
());
}
return
sequence
.
getSeq
().
toString
();
return
sequence
.
getSeq
().
toString
();
}
}
...
@@ -230,6 +302,18 @@ public abstract class AbstractBaseDao implements IBaseDao {
...
@@ -230,6 +302,18 @@ public abstract class AbstractBaseDao implements IBaseDao {
return
mongoTemplate
;
return
mongoTemplate
;
}
}
/**
* 如果没有配置数据源,则返回为空
* @return
*/
public
MongoTemplate
getBackUpMongoTemplate
()
{
String
databaseName
=
backUpMongoTemplate
.
getDb
().
getName
();
if
(
MongoDbConfig
.
getNoDatabase
().
equals
(
databaseName
))
{
return
null
;
}
return
backUpMongoTemplate
;
}
public
void
setMongoTemplate
(
MongoTemplate
mongoTemplate
)
{
public
void
setMongoTemplate
(
MongoTemplate
mongoTemplate
)
{
this
.
mongoTemplate
=
mongoTemplate
;
this
.
mongoTemplate
=
mongoTemplate
;
}
}
...
...
src/main/java/com/neotel/smfcore/core/config/mongodb/MongoDbConfig.java
0 → 100644
查看文件 @
3b20c47
package
com
.
neotel
.
smfcore
.
core
.
config
.
mongodb
;
import
com.mongodb.MongoClientSettings
;
import
com.mongodb.MongoCredential
;
import
com.mongodb.ServerAddress
;
import
com.mongodb.client.MongoClient
;
import
com.mongodb.client.MongoClients
;
import
com.mongodb.connection.ClusterConnectionMode
;
import
com.mongodb.connection.ClusterType
;
import
com.neotel.smfcore.common.utils.StringUtils
;
import
com.neotel.smfcore.core.config.mongodb.bean.CustomMongoProperties
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Primary
;
import
org.springframework.data.mongodb.MongoDatabaseFactory
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.SimpleMongoClientDatabaseFactory
;
import
java.util.ArrayList
;
import
java.util.List
;
@Configuration
public
class
MongoDbConfig
{
private
static
final
String
NO_HOST
=
"none"
;
private
static
final
Integer
NO_PORT
=
0
;
private
static
final
String
NO_DATABASE
=
"noConfigDatabase"
;
@Primary
@Bean
(
"masterMongoProperties"
)
@ConfigurationProperties
(
prefix
=
"spring.data.mongodb"
)
protected
CustomMongoProperties
masterMongoProperties
()
{
return
new
CustomMongoProperties
();
}
@Bean
(
"backUpMongoProperties"
)
@ConfigurationProperties
(
prefix
=
"spring.data.backup-mongodb"
)
protected
CustomMongoProperties
backUpMongoProperties
()
{
return
new
CustomMongoProperties
();
}
@Primary
@Bean
(
name
=
"masterMongoTemplate"
)
public
MongoTemplate
masterMongoTemplate
(
@Qualifier
(
"masterMongoProperties"
)
CustomMongoProperties
mongoProperties
)
{
return
new
MongoTemplate
(
mongoDbFactory
(
mongoProperties
));
}
@Bean
(
name
=
"backUpMongoTemplate"
)
public
MongoTemplate
backUpMongoTemplate
(
@Qualifier
(
"backUpMongoProperties"
)
CustomMongoProperties
mongoProperties
)
{
//如果没有配置的话,则模板返回为空
if
(
StringUtils
.
isBlank
(
mongoProperties
.
getHost
()))
{
mongoProperties
.
setHost
(
NO_HOST
);
mongoProperties
.
setPort
(
NO_PORT
);
mongoProperties
.
setDatabase
(
NO_DATABASE
);
}
return
new
MongoTemplate
(
mongoDbFactory
(
mongoProperties
));
}
private
MongoDatabaseFactory
mongoDbFactory
(
CustomMongoProperties
mongoProperties
)
{
ClusterConnectionMode
clusterConnectionMode
;
ClusterType
clusterType
;
List
<
ServerAddress
>
serverAddressList
=
new
ArrayList
<>();
clusterConnectionMode
=
ClusterConnectionMode
.
SINGLE
;
clusterType
=
ClusterType
.
STANDALONE
;
ServerAddress
serverAddress
=
new
ServerAddress
(
mongoProperties
.
getHost
(),
mongoProperties
.
getPort
());
serverAddressList
.
add
(
serverAddress
);
MongoClientSettings
.
Builder
settingBuilder
=
MongoClientSettings
.
builder
()
.
applyToClusterSettings
(
builder
->
builder
.
hosts
(
serverAddressList
)
.
mode
(
clusterConnectionMode
)
.
requiredClusterType
(
clusterType
)
).
applyToConnectionPoolSettings
(
builder
->
builder
.
maxSize
(
mongoProperties
.
getMaxConSize
())
.
minSize
(
mongoProperties
.
getMinConsize
())
);
if
(
StringUtils
.
isNotEmpty
(
mongoProperties
.
getUsername
())
&&
StringUtils
.
isNotEmpty
(
mongoProperties
.
getPassword
())){
MongoCredential
credential
=
MongoCredential
.
createCredential
(
mongoProperties
.
getUsername
(),
mongoProperties
.
getDatabase
(),
mongoProperties
.
getPassword
().
toCharArray
());
settingBuilder
.
credential
(
credential
);
}
MongoClientSettings
setting
=
settingBuilder
.
build
();
MongoClient
mongoClient
=
MongoClients
.
create
(
setting
);
return
new
SimpleMongoClientDatabaseFactory
(
mongoClient
,
mongoProperties
.
getDatabase
());
}
public
static
String
getNoDatabase
()
{
return
NO_DATABASE
;
}
}
src/main/java/com/neotel/smfcore/core/config/mongodb/bean/CustomMongoProperties.java
0 → 100644
查看文件 @
3b20c47
package
com
.
neotel
.
smfcore
.
core
.
config
.
mongodb
.
bean
;
import
lombok.Getter
;
import
lombok.Setter
;
@Getter
@Setter
public
class
CustomMongoProperties
{
private
String
host
;
private
Integer
port
;
private
String
database
;
private
String
username
;
private
String
password
;
private
Integer
maxConSize
=
100
;
private
Integer
minConsize
=
50
;
}
src/main/java/com/neotel/smfcore/core/kanban/rest/BoxKanbanController.java
查看文件 @
3b20c47
...
@@ -2,7 +2,6 @@ package com.neotel.smfcore.core.kanban.rest;
...
@@ -2,7 +2,6 @@ package com.neotel.smfcore.core.kanban.rest;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.google.common.base.Strings
;
import
com.google.common.base.Strings
;
import
com.google.common.collect.Lists
;
import
com.neotel.smfcore.common.bean.PageData
;
import
com.neotel.smfcore.common.bean.PageData
;
import
com.neotel.smfcore.common.bean.ResultBean
;
import
com.neotel.smfcore.common.bean.ResultBean
;
import
com.neotel.smfcore.common.exception.ValidateException
;
import
com.neotel.smfcore.common.exception.ValidateException
;
...
@@ -25,19 +24,15 @@ import com.neotel.smfcore.core.storage.service.po.Storage;
...
@@ -25,19 +24,15 @@ import com.neotel.smfcore.core.storage.service.po.Storage;
import
com.neotel.smfcore.core.storage.service.po.StoragePos
;
import
com.neotel.smfcore.core.storage.service.po.StoragePos
;
import
com.neotel.smfcore.core.system.service.manager.impl.DataLogManagerImpl
;
import
com.neotel.smfcore.core.system.service.manager.impl.DataLogManagerImpl
;
import
com.neotel.smfcore.core.system.service.po.DataLog
;
import
com.neotel.smfcore.core.system.service.po.DataLog
;
import
com.neotel.smfcore.core.system.service.po.Humiture
;
import
com.neotel.smfcore.core.system.util.DevicesStatusUtil
;
import
com.neotel.smfcore.core.system.util.DevicesStatusUtil
;
import
com.neotel.smfcore.core.system.util.TaskService
;
import
com.neotel.smfcore.core.system.util.TaskService
;
import
com.neotel.smfcore.security.annotation.AnonymousPutMapping
;
import
com.neotel.smfcore.security.annotation.AnonymousPutMapping
;
import
com.neotel.smfcore.security.service.manager.IGroupManager
;
import
com.neotel.smfcore.security.service.manager.IGroupManager
;
import
com.neotel.smfcore.security.service.manager.impl.GroupManagerImpl
;
import
com.neotel.smfcore.security.service.manager.impl.UserManagerImpl
;
import
com.neotel.smfcore.security.service.manager.impl.UserManagerImpl
;
import
com.neotel.smfcore.security.service.po.Group
;
import
com.neotel.smfcore.security.service.po.Group
;
import
com.neotel.smfcore.security.service.po.User
;
import
com.neotel.smfcore.security.service.po.User
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
javafx.concurrent.Task
;
import
lombok.Data
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -45,7 +40,6 @@ import org.springframework.data.domain.Pageable;
...
@@ -45,7 +40,6 @@ import org.springframework.data.domain.Pageable;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
...
...
src/main/resources/config/application-prod.yml
查看文件 @
3b20c47
...
@@ -11,10 +11,18 @@ login:
...
@@ -11,10 +11,18 @@ login:
spring
:
spring
:
data
:
data
:
mongodb
:
mongodb
:
#host: 127.0.0.1
host
:
10.68.27.88
# 主机地址
host
:
10.68.27.88
# 主机地址
port
:
27017
# 端口
port
:
27017
# 端口
database
:
sp_smf
#备件仓数据库
database
:
sp_smf
#备件仓数据库
username
:
neotel
password
:
neotel
backup-mongodb
:
host
:
10.68.27.128
# 主机地址
port
:
27017
# 端口
database
:
sp_smf
# 数据库
username
:
neotel
password
:
neotel
#kafka配置
#kafka配置
# kafka:
# kafka:
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论