Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
smart_gov_platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
smart_gov_platform
Commits
f933c9bf
Commit
f933c9bf
authored
May 26, 2022
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加mybatis xml映射文件
parent
945f2d4f
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
104 additions
and
53 deletions
+104
-53
base-manager/src/main/java/com/mortals/xhx/base/system/user/model/UserEntity.java
...va/com/mortals/xhx/base/system/user/model/UserEntity.java
+6
-0
base-manager/src/main/java/com/mortals/xhx/common/utils/SyncTreeSiteThread.java
...java/com/mortals/xhx/common/utils/SyncTreeSiteThread.java
+13
-3
base-manager/src/main/java/com/mortals/xhx/daemon/applicationservice/DemoStartService.java
...rtals/xhx/daemon/applicationservice/DemoStartService.java
+5
-13
base-manager/src/main/java/com/mortals/xhx/daemon/applicationservice/DemoStartedService.java
...als/xhx/daemon/applicationservice/DemoStartedService.java
+22
-4
base-manager/src/main/java/com/mortals/xhx/module/site/service/SiteService.java
...java/com/mortals/xhx/module/site/service/SiteService.java
+10
-1
base-manager/src/main/java/com/mortals/xhx/module/site/service/impl/SiteServiceImpl.java
...mortals/xhx/module/site/service/impl/SiteServiceImpl.java
+30
-21
base-manager/src/main/java/com/mortals/xhx/module/site/web/SiteController.java
.../java/com/mortals/xhx/module/site/web/SiteController.java
+18
-11
No files found.
base-manager/src/main/java/com/mortals/xhx/base/system/user/model/UserEntity.java
View file @
f933c9bf
...
...
@@ -325,6 +325,12 @@ public class UserEntity extends UserEntityExt implements IUser {
public
Long
getSiteId
()
{
return
this
.
siteId
;
}
@Override
public
String
getSiteIds
()
{
return
""
;
}
/**
* 设置 站点id
* @param siteId
...
...
base-manager/src/main/java/com/mortals/xhx/common/utils/SyncTreeSiteThread.java
View file @
f933c9bf
package
com.mortals.xhx.common.utils
;
import
com.alibaba.fastjson.JSON
;
import
com.mortals.framework.model.Context
;
import
com.mortals.xhx.module.site.model.SiteTreeSelect
;
import
com.mortals.xhx.module.site.service.SiteService
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.apachecommons.CommonsLog
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.util.ObjectUtils
;
import
java.util.List
;
/**
* @author: zxfei
...
...
@@ -11,7 +17,7 @@ import lombok.extern.apachecommons.CommonsLog;
* @description:
**/
@AllArgsConstructor
@
CommonsLog
@
Slf4j
public
class
SyncTreeSiteThread
implements
Runnable
{
private
SiteService
siteService
;
...
...
@@ -20,9 +26,13 @@ public class SyncTreeSiteThread implements Runnable {
@Override
public
void
run
()
{
log
.
info
(
"刷新站点树"
);
siteService
.
setSiteTree
(
siteService
.
siteTree
(
context
),
context
);
log
.
info
(
"刷新用户站点树=》userID:{}"
,
context
.
getUser
().
getId
());
List
<
SiteTreeSelect
>
siteTreeSelects
=
siteService
.
siteTree
(
context
);
siteService
.
setSiteTree
(
siteTreeSelects
,
context
);
log
.
info
(
"刷新用户站点树=》siteTree:{}"
,
JSON
.
toJSONString
(
siteService
.
getSiteTree
(
context
)));
}
}
base-manager/src/main/java/com/mortals/xhx/daemon/applicationservice/DemoStartService.java
View file @
f933c9bf
package
com.mortals.xhx.daemon.applicationservice
;
import
com.mortals.framework.util.ThreadPool
;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
com.mortals.framework.springcloud.service.IApplicationService
;
/**
* 应用级服务,在应用启动、停止过程中调用
*
* 缺陷:类加载完成后就调用,会由于某些组件还未初始化而导致服务异常,
* 比如Kafka的连接以及订阅初始化比较靠后,在服务启动过程中就调用操作kafka相关API,将导致失败
* 比如开启Socket监听端口,可能端口都接收到连接请求了,但数据库连接还未初始化完成,导致请求处理失败
* 比如定时任务,任务执行时,相关缓存还未初始化,导致处理失败
*
* 应用场景:
* 1、无依赖其它模块或框架的数据初始化等操作
* @author GM
* @date 2020年7月15日
*/
@Component
public
class
DemoStartService
implements
IApplicationService
{
private
static
Log
logger
=
LogFactory
.
getLog
(
DemoStartService
.
class
);
@Override
public
void
start
()
{
ThreadPool
.
getInstance
().
init
(
10
);
logger
.
info
(
"开始服务..[配置已加载完成,但部分框架还未初始化,比如:Kafka]"
);
}
...
...
base-manager/src/main/java/com/mortals/xhx/daemon/applicationservice/DemoStartedService.java
View file @
f933c9bf
package
com.mortals.xhx.daemon.applicationservice
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.service.ICacheService
;
import
com.mortals.framework.springcloud.config.web.BaseWebMvcConfigurer
;
import
com.mortals.framework.util.ThreadPool
;
import
com.mortals.xhx.base.system.user.model.UserEntity
;
import
com.mortals.xhx.base.system.user.model.UserQuery
;
import
com.mortals.xhx.base.system.user.service.UserService
;
import
com.mortals.xhx.common.utils.SyncTreeSiteThread
;
import
com.mortals.xhx.module.site.model.SiteTreeSelect
;
import
com.mortals.xhx.module.site.service.SiteService
;
import
org.apache.commons.logging.Log
;
...
...
@@ -34,12 +40,24 @@ public class DemoStartedService implements IApplicationStartedService {
@Autowired
private
ICacheService
cacheService
;
@Autowired
private
UserService
userService
;
@Override
public
void
start
()
{
logger
.
info
(
"开始服务..[配置已加载完成,并且所有框架都已经初始化]"
);
List
<
SiteTreeSelect
>
siteTreeSelects
=
siteService
.
siteTree
(
null
);
siteService
.
setSiteTree
(
siteTreeSelects
,
null
);
logger
.
info
(
"开始服务..[初始化用户站点树]"
);
UserEntity
userEntity
=
new
UserEntity
();
userEntity
.
initAttrValue
();
userEntity
.
setId
(
0L
);
Context
contextTemp
=
new
Context
();
contextTemp
.
setUser
(
userEntity
);
SyncTreeSiteThread
syncTreeSiteThread
=
new
SyncTreeSiteThread
(
siteService
,
contextTemp
);
ThreadPool
.
getInstance
().
execute
(
syncTreeSiteThread
);
userService
.
find
(
new
UserQuery
()).
stream
().
forEach
(
user
->{
Context
context
=
new
Context
();
context
.
setUser
(
user
);
ThreadPool
.
getInstance
().
execute
(
new
SyncTreeSiteThread
(
siteService
,
context
));
});
}
@Override
...
...
base-manager/src/main/java/com/mortals/xhx/module/site/service/SiteService.java
View file @
f933c9bf
...
...
@@ -10,6 +10,7 @@ import com.mortals.xhx.module.site.model.SiteTreeSelect;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
/**
* SiteService
...
...
@@ -29,9 +30,17 @@ public interface SiteService extends ICRUDCacheService<SiteEntity, Long> {
*/
List
<
SiteTreeSelect
>
siteTree
(
Context
context
);
/**
* 根据站点列表获取区域站点树
*
* @param context
* @return
*/
List
<
SiteTreeSelect
>
getSiteTree
(
Context
context
);
void
setSiteTree
(
List
<
SiteTreeSelect
>
list
,
Context
context
);
}
\ No newline at end of file
base-manager/src/main/java/com/mortals/xhx/module/site/service/impl/SiteServiceImpl.java
View file @
f933c9bf
...
...
@@ -22,10 +22,7 @@ import com.mortals.xhx.module.site.model.SiteEntity;
import
com.mortals.xhx.module.site.service.SiteService
;
import
org.springframework.util.ObjectUtils
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -38,7 +35,11 @@ import java.util.stream.Collectors;
@Service
(
"siteService"
)
public
class
SiteServiceImpl
extends
AbstractCRUDCacheServiceImpl
<
SiteDao
,
SiteEntity
,
Long
>
implements
SiteService
{
private
List
<
SiteTreeSelect
>
siteTreeList
;
// private List<SiteTreeSelect> siteTreeList;
/**
* 根据用户id 暂存对应站点树 默认0为全站点树
*/
private
Map
<
Long
,
List
<
SiteTreeSelect
>>
siteTreeMap
=
new
HashMap
<>();
@Autowired
private
AreaService
areaService
;
...
...
@@ -62,31 +63,33 @@ public class SiteServiceImpl extends AbstractCRUDCacheServiceImpl<SiteDao, SiteE
super
.
saveBefore
(
entity
,
context
);
}
void
checkSite
(
SiteQuery
siteQuery
,
Context
context
){
if
(!
ObjectUtils
.
isEmpty
(
context
)&&!
ObjectUtils
.
isEmpty
(
context
.
getUser
())&&!
ObjectUtils
.
isEmpty
(
context
.
getUser
().
getSiteId
())){
}
}
@Override
public
List
<
SiteTreeSelect
>
siteTree
(
Context
context
)
{
Map
<
String
,
AreaEntity
>
areaMap
=
new
HashMap
<>();
SiteQuery
siteQuery
=
new
SiteQuery
();
Set
<
String
>
siteSet
=
Arrays
.
stream
(
context
.
getUser
().
getSiteIds
().
split
(
","
)).
filter
(
f
->!
f
.
equals
(
""
)).
collect
(
Collectors
.
toSet
());
if
(!
ObjectUtils
.
isEmpty
(
siteSet
))
{
List
<
Long
>
siteIdList
=
siteSet
.
stream
().
map
(
Long:
:
parseLong
).
collect
(
Collectors
.
toList
());
if
(!
ObjectUtils
.
isEmpty
(
siteIdList
)){
siteQuery
.
idList
(
siteIdList
);
}
}
List
<
SiteEntity
>
siteList
=
this
.
find
(
siteQuery
);
Map
<
String
,
SiteEntity
>
siteMap
=
siteList
.
parallelStream
().
collect
(
Collectors
.
toMap
(
x
->
x
.
getSiteCode
(),
y
->
y
,
(
o
,
n
)
->
n
));
//遍历过滤站点树
for
(
SiteEntity
siteEntity
:
siteList
)
{
AreaEntity
areaEntity
=
areaService
.
getExtCache
(
siteEntity
.
getAreaCode
());
//根据区域添加父节点
if
(!
ObjectUtils
.
isEmpty
(
areaEntity
)
&&
!
ObjectUtils
.
isEmpty
(
areaEntity
.
getPid
()))
{
if
(!
ObjectUtils
.
isEmpty
(
areaEntity
)
&&
!
ObjectUtils
.
isEmpty
(
areaEntity
.
getPid
()))
{
//递归查找父节点并添加
areaMap
.
put
(
areaEntity
.
getAreaCode
(),
areaEntity
);
//递归
recursionFn
(
areaMap
,
areaEntity
);
}
}
return
buildSiteTreeSelect
(
areaMap
,
siteMap
);
//areaMap 为当前站点相关区域树结构 已经剔除不必要的分支结构
return
buildSiteTreeSelect
(
areaMap
,
siteMap
);
}
public
List
<
SiteTreeSelect
>
buildSiteTreeSelect
(
Map
<
String
,
AreaEntity
>
areaMap
,
Map
<
String
,
SiteEntity
>
siteMap
)
{
...
...
@@ -107,10 +110,10 @@ public class SiteServiceImpl extends AbstractCRUDCacheServiceImpl<SiteDao, SiteE
}
//构建站点树
List
<
SiteTreeSelect
>
collect
=
returnList
.
s
tream
().
map
(
item
->
List
<
SiteTreeSelect
>
collect
=
returnList
.
parallelS
tream
().
map
(
item
->
new
SiteTreeSelect
(
item
,
siteMap
)
).
collect
(
Collectors
.
toList
());
this
.
siteTreeList
=
collect
;
//
this.siteTreeList = collect;
return
collect
;
}
...
...
@@ -159,30 +162,36 @@ public class SiteServiceImpl extends AbstractCRUDCacheServiceImpl<SiteDao, SiteE
@Override
protected
void
updateAfter
(
SiteEntity
entity
,
Context
context
)
throws
AppException
{
//刷新站点树
new
Thread
(
new
SyncTreeSiteThread
(
this
,
context
)).
start
();
new
Thread
(
new
SyncTreeSiteThread
(
this
,
context
)).
start
();
super
.
updateAfter
(
entity
,
context
);
}
@Override
protected
void
saveAfter
(
SiteEntity
entity
,
Context
context
)
throws
AppException
{
//刷新站点树
new
Thread
(
new
SyncTreeSiteThread
(
this
,
context
)).
start
();
new
Thread
(
new
SyncTreeSiteThread
(
this
,
context
)).
start
();
super
.
saveAfter
(
entity
,
context
);
}
@Override
protected
void
removeBefore
(
Long
[]
ids
,
Context
context
)
throws
AppException
{
new
Thread
(
new
SyncTreeSiteThread
(
this
,
context
)).
start
();
new
Thread
(
new
SyncTreeSiteThread
(
this
,
context
)).
start
();
super
.
removeBefore
(
ids
,
context
);
}
@Override
public
List
<
SiteTreeSelect
>
getSiteTree
(
Context
context
)
{
return
siteTreeList
;
List
<
SiteTreeSelect
>
siteTreeSelects
=
siteTreeMap
.
get
(
context
.
getUser
().
getId
());
//如果所属站点为空返回全节点树
if
(
ObjectUtils
.
isEmpty
(
siteTreeSelects
))
{
return
siteTreeSelects
;
}
else
{
return
siteTreeMap
.
get
(
0
);
}
}
@Override
public
void
setSiteTree
(
List
<
SiteTreeSelect
>
list
,
Context
context
)
{
this
.
siteTreeList
=
list
;
siteTreeMap
.
put
(
context
.
getUser
().
getId
(),
list
)
;
}
}
\ No newline at end of file
base-manager/src/main/java/com/mortals/xhx/module/site/web/SiteController.java
View file @
f933c9bf
package
com.mortals.xhx.module.site.web
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
...
...
@@ -75,17 +76,17 @@ public class SiteController extends BaseCRUDJsonBodyMappingController<SiteServic
siteTree
=
this
.
service
.
siteTree
(
getContext
());
}
//校验
Long
siteId
=
getContext
().
getUser
().
getSiteId
();
String
siteIds
=
getContext
().
getUser
().
getSiteIds
();
Set
<
String
>
siteSet
=
Arrays
.
stream
(
siteIds
.
split
(
","
)).
collect
(
Collectors
.
toSet
());
if
(!
ObjectUtils
.
isEmpty
(
siteId
)){
//遍历树
SiteTreeSelect
temp
=
reFucurs
(
siteTree
,
siteId
.
toString
());
if
(!
ObjectUtils
.
isEmpty
(
temp
))
{
siteTree
=
new
ArrayList
<>();
siteTree
.
add
(
temp
);
}
}
//
Long siteId = getContext().getUser().getSiteId();
//
String siteIds = getContext().getUser().getSiteIds();
//
Set<String> siteSet = Arrays.stream(siteIds.split(",")).collect(Collectors.toSet());
//
if(!ObjectUtils.isEmpty(siteId)){
//
//遍历树
//
SiteTreeSelect temp =reFucurs(siteTree,siteId.toString());
//
if (!ObjectUtils.isEmpty(temp)) {
//
siteTree = new ArrayList<>();
//
siteTree.add(temp);
//
}
//
}
model
.
put
(
"siteTree"
,
siteTree
);
this
.
init
(
model
,
getContext
());
recordSysLog
(
request
,
busiDesc
+
" 【成功】"
);
...
...
@@ -140,4 +141,10 @@ public class SiteController extends BaseCRUDJsonBodyMappingController<SiteServic
}
return temp;
}*/
public
static
void
main
(
String
[]
args
)
{
//深度克隆
//ObjectUtil.clone()
}
}
\ No newline at end of file
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