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
977ba3d2
Commit
977ba3d2
authored
Nov 16, 2023
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加线程发送消息
parent
3beda11c
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
185 additions
and
86 deletions
+185
-86
base-manager/src/main/java/com/mortals/xhx/base/system/user/service/UserService.java
...com/mortals/xhx/base/system/user/service/UserService.java
+24
-19
base-manager/src/main/java/com/mortals/xhx/base/system/user/service/impl/UserServiceImpl.java
...ls/xhx/base/system/user/service/impl/UserServiceImpl.java
+84
-3
base-manager/src/main/java/com/mortals/xhx/base/system/user/web/UserController.java
.../com/mortals/xhx/base/system/user/web/UserController.java
+12
-9
base-manager/src/main/java/com/mortals/xhx/base/system/user/web/UserForm.java
...n/java/com/mortals/xhx/base/system/user/web/UserForm.java
+0
-46
common-lib/src/main/java/com/mortals/xhx/feign/selfsystem/ISelfSystemFeign.java
...va/com/mortals/xhx/feign/selfsystem/ISelfSystemFeign.java
+55
-0
portal-manager/src/main/java/com/mortals/xhx/common/utils/SendSubSystemTask.java
.../java/com/mortals/xhx/common/utils/SendSubSystemTask.java
+10
-9
No files found.
base-manager/src/main/java/com/mortals/xhx/base/system/user/service/UserService.java
View file @
977ba3d2
/**
* 文件:UserService.java
* 版本:1.0.0
* 日期:
* Copyright ®
* All right reserved.
*/
* 文件:UserService.java
* 版本:1.0.0
* 日期:
* Copyright ®
* All right reserved.
*/
package
com.mortals.xhx.base.system.user.service
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.model.Result
;
import
com.mortals.framework.service.ICRUDCacheService
;
import
com.mortals.framework.service.ICRUDService
;
import
com.mortals.framework.service.IUser
;
import
com.mortals.xhx.base.system.menu.model.MenuEntity
;
import
com.mortals.xhx.base.system.user.dao.UserDao
;
import
com.mortals.xhx.base.system.user.model.UserEntity
;
import
com.mortals.xhx.common.pdu.user.UserPdu
;
...
...
@@ -29,7 +31,7 @@ import java.util.Set;
* @version 1.0.0
*/
public
interface
UserService
extends
ICRUDCacheService
<
UserEntity
,
Long
>
{
public
interface
UserService
extends
ICRUDCacheService
<
UserEntity
,
Long
>
{
/**
* 用户登录
*
...
...
@@ -116,8 +118,11 @@ public interface UserService extends ICRUDCacheService<UserEntity,Long> {
boolean
updateUserPwd
(
String
loginName
,
String
oldPwd
,
String
newPwd
)
throws
AppException
;
void
updateWidthDao
(
UserEntity
userEntity
);
void
updateUserList
(
List
<
UserPdu
>
list
);
Rest
<
Void
>
refreshUser
();
UserDao
getUserDao
();
}
\ No newline at end of file
base-manager/src/main/java/com/mortals/xhx/base/system/user/service/impl/UserServiceImpl.java
View file @
977ba3d2
...
...
@@ -26,11 +26,14 @@ import com.mortals.xhx.base.system.menu.model.MenuEntity;
import
com.mortals.xhx.base.system.menu.service.MenuService
;
import
com.mortals.xhx.base.system.resource.model.ResourceEntity
;
import
com.mortals.xhx.base.system.resource.service.ResourceService
;
import
com.mortals.xhx.base.system.role.model.RoleUserQuery
;
import
com.mortals.xhx.base.system.role.service.RoleUserService
;
import
com.mortals.xhx.base.system.user.dao.UserDao
;
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.code.YesNoEnum
;
import
com.mortals.xhx.common.pdu.RespData
;
import
com.mortals.xhx.common.pdu.user.UserPdu
;
import
com.mortals.xhx.common.utils.BeanUtil
;
...
...
@@ -43,6 +46,7 @@ import com.mortals.xhx.module.site.service.SiteService;
import
com.mortals.xhx.module.workman.model.WorkmanEntity
;
import
com.mortals.xhx.module.workman.model.WorkmanQuery
;
import
com.mortals.xhx.module.workman.service.WorkmanService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -61,12 +65,19 @@ import java.util.stream.Collectors;
* @version 1.0.0
*/
@Service
(
"userService"
)
@Slf4j
public
class
UserServiceImpl
extends
AbstractCRUDCacheServiceImpl
<
UserDao
,
UserEntity
,
Long
>
implements
UserService
{
@Autowired
private
MenuService
menuService
;
@Autowired
private
ResourceService
resourceService
;
@Autowired
private
RoleUserService
roleUserService
;
@Autowired
private
IUserFeign
userFeign
;
/**
* @param data
* @return
...
...
@@ -341,12 +352,9 @@ public class UserServiceImpl extends AbstractCRUDCacheServiceImpl<UserDao, UserE
}
}
//分组刷新节点 新增
Map
<
String
,
List
<
UserEntity
>>
saveSitesCollect
=
userEntitySave
.
stream
().
collect
(
Collectors
.
groupingBy
(
x
->
x
.
getSiteIds
()));
// Map<String, List<UserEntity>> updateSitesCollect = userEntityUpdate.stream().collect(Collectors.groupingBy(x -> x.getSiteIds()));
saveSitesCollect
.
entrySet
().
stream
().
forEach
(
item
->
{
String
siteIds
=
item
.
getKey
();
List
<
UserEntity
>
userEntities
=
item
.
getValue
();
...
...
@@ -388,6 +396,79 @@ public class UserServiceImpl extends AbstractCRUDCacheServiceImpl<UserDao, UserE
}
@Override
public
Rest
<
Void
>
refreshUser
()
{
UserPdu
userPdu
=
new
UserPdu
();
userPdu
.
setPage
(
1
);
userPdu
.
setSize
(-
1
);
Rest
<
RespData
<
List
<
UserPdu
>>>
resp
=
userFeign
.
list
(
userPdu
);
if
(
resp
.
getCode
()
==
YesNoEnum
.
YES
.
getValue
())
{
List
<
UserPdu
>
userPduList
=
resp
.
getData
().
getData
();
log
.
info
(
"用户总数量:{}"
,
userPduList
.
size
());
if
(!
ObjectUtils
.
isEmpty
(
userPduList
))
{
List
<
UserEntity
>
newUserList
=
userPduList
.
stream
().
map
(
newUser
->
{
UserEntity
userEntity
=
new
UserEntity
();
userEntity
.
initAttrValue
();
BeanUtils
.
copyProperties
(
newUser
,
userEntity
,
new
String
[]{
"id"
,
"lastLoginTime"
,
"lastLoginAddress"
});
return
userEntity
;
}).
collect
(
Collectors
.
toList
());
List
<
UserEntity
>
saveUpdateUserList
=
newUserList
.
parallelStream
().
map
(
item
->
{
UserEntity
extCache
=
this
.
getExtCache
(
item
.
getLoginName
());
if
(
ObjectUtils
.
isEmpty
(
extCache
))
{
item
.
setCreateUserId
(
1L
);
item
.
setCreateUserName
(
"系统管理员"
);
item
.
setCreateTime
(
new
Date
());
return
item
;
}
else
{
//更新用户列表
item
.
setId
(
extCache
.
getId
());
item
.
setUpdateUserId
(
1L
);
item
.
setUpdateUserName
(
"系统管理员"
);
item
.
setUpdateTime
(
new
Date
());
return
item
;
}
}).
collect
(
Collectors
.
toList
());
Map
<
Boolean
,
List
<
UserEntity
>>
saveUpdateCollect
=
saveUpdateUserList
.
stream
().
collect
(
Collectors
.
partitioningBy
(
x
->
x
.
getId
()
==
null
));
if
(!
ObjectUtils
.
isEmpty
(
saveUpdateCollect
.
get
(
true
)))
{
//需要新增的用户
log
.
info
(
"需要新增用户数量:{}"
,
saveUpdateCollect
.
get
(
true
).
size
());
saveUpdateCollect
.
get
(
true
).
stream
().
forEach
(
item
->
{
this
.
getUserDao
().
insert
(
item
);
this
.
putCache
(
item
.
getId
()
==
null
?
""
:
item
.
getId
().
toString
(),
item
);
RoleUserQuery
roleUserQuery
=
new
RoleUserQuery
();
roleUserQuery
.
setUserId
(
item
.
getId
());
roleUserQuery
.
setRoleIdList
(
Arrays
.
asList
(
1L
));
roleUserService
.
doDistributionRole
(
roleUserQuery
);
});
}
if
(!
ObjectUtils
.
isEmpty
(
saveUpdateCollect
.
get
(
false
)))
{
//需要新增的用户
log
.
info
(
"需要更新用户数量:{}"
,
saveUpdateCollect
.
get
(
false
).
size
());
saveUpdateCollect
.
get
(
false
).
stream
().
forEach
(
item
->
{
this
.
getUserDao
().
update
(
item
);
this
.
putCache
(
item
.
getId
()
==
null
?
""
:
item
.
getId
().
toString
(),
item
);
});
}
//差集删除
Set
<
String
>
collectSet
=
newUserList
.
parallelStream
().
map
(
x
->
x
.
getLoginName
()).
collect
(
Collectors
.
toSet
());
Long
[]
removeUserIds
=
this
.
getCacheList
().
parallelStream
().
filter
(
f
->
!
collectSet
.
contains
(
f
.
getLoginName
())).
map
(
i
->
i
.
getId
()).
distinct
().
toArray
(
Long
[]::
new
);
if
(!
ObjectUtils
.
isEmpty
(
removeUserIds
))
{
log
.
info
(
"需要删除的本地用户数量:{}"
,
removeUserIds
.
length
);
this
.
remove
(
removeUserIds
,
null
);
}
}
//查找新增 与更新
}
return
Rest
.
ok
();
}
@Override
public
UserDao
getUserDao
()
{
return
this
.
getDao
();
}
public
static
void
main
(
String
[]
args
)
throws
Exception
{
//eba467f81fb265befdf1f6ab041d39ab 原始admin密码
...
...
base-manager/src/main/java/com/mortals/xhx/base/system/user/web/UserController.java
View file @
977ba3d2
...
...
@@ -2,7 +2,9 @@ package com.mortals.xhx.base.system.user.web;
import
com.alibaba.fastjson.JSONObject
;
import
com.mortals.framework.annotation.UnAuth
;
import
com.mortals.framework.common.IBaseEnum
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.framework.common.code.UserType
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.model.Context
;
...
...
@@ -16,10 +18,7 @@ import io.jsonwebtoken.Claims;
import
io.jsonwebtoken.Jwts
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.StringUtils
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
...
...
@@ -37,11 +36,7 @@ import java.util.Map;
@RequestMapping
(
"user"
)
public
class
UserController
extends
BaseCRUDJsonBodyMappingController
<
UserService
,
UserEntity
,
Long
>
{
@Autowired
private
UserService
userService
;
public
UserController
()
{
super
.
setFormClass
(
UserForm
.
class
);
super
.
setModuleDesc
(
"用户信息"
);
}
...
...
@@ -64,7 +59,6 @@ public class UserController extends BaseCRUDJsonBodyMappingController<UserServic
}
@Override
protected
int
editAfter
(
Long
id
,
Map
<
String
,
Object
>
model
,
UserEntity
entity
,
Context
context
)
throws
AppException
{
entity
.
setLoginPwd
(
null
);
...
...
@@ -108,6 +102,15 @@ public class UserController extends BaseCRUDJsonBodyMappingController<UserServic
}
@PostMapping
({
"refreshUser"
})
@UnAuth
public
Rest
<
Object
>
refreshUser
()
{
log
.
info
(
"刷新用户"
);
this
.
service
.
refreshUser
();
return
Rest
.
ok
(
"用户同步刷新操作成功"
);
}
public
static
void
main
(
String
[]
args
)
{
String
token
=
"eyJhbGciOiJIUzI1NiJ9.eyJsb2dpbl91c2VyX2tleSI6IjIzNGE5NDA5ZDVhOTQ3MWNhMzdkYjZkYmMwY2JjZTc5In0.MWyQW40HYDxyUz7PJRf_nRsFPWx3Hr811Ime984nixs"
;
...
...
base-manager/src/main/java/com/mortals/xhx/base/system/user/web/UserForm.java
deleted
100644 → 0
View file @
3beda11c
/**
* 文件:UserForm.java
* 版本:1.0.0
* 日期:
* Copyright ®
* All right reserved.
*/
package
com.mortals.xhx.base.system.user.web
;
import
com.mortals.framework.web.BaseCRUDFormLong
;
import
com.mortals.xhx.base.system.user.model.UserEntity
;
import
com.mortals.xhx.base.system.user.model.UserQuery
;
/**
* <p>Title: 用户信息</p>
* <p>Description: UserForm </p>
* <p>Copyright: Copyright ® </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public
class
UserForm
extends
BaseCRUDFormLong
<
UserEntity
>
{
private
UserEntity
entity
=
new
UserEntity
();
private
UserQuery
query
=
new
UserQuery
();
public
UserForm
(){
}
@Override
public
UserEntity
getEntity
()
{
return
entity
;
}
public
void
setEntity
(
UserEntity
entity
)
{
this
.
entity
=
entity
;
}
@Override
public
UserQuery
getQuery
()
{
return
query
;
}
public
void
setQuery
(
UserQuery
query
)
{
this
.
query
=
query
;
}
}
\ No newline at end of file
common-lib/src/main/java/com/mortals/xhx/feign/selfsystem/ISelfSystemFeign.java
0 → 100644
View file @
977ba3d2
package
com.mortals.xhx.feign.selfsystem
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.xhx.feign.IFeign
;
import
feign.hystrix.FallbackFactory
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.bind.annotation.PostMapping
;
/**
* 自助服务系统 Feign接口
*
* @author zxfei
* @date 2022-10-26
*/
@FeignClient
(
name
=
"sst-manager"
,
path
=
"/sst"
,
fallbackFactory
=
SelfSystemFeignFallbackFactory
.
class
)
public
interface
ISelfSystemFeign
extends
IFeign
{
/**
* 用户刷新通知
*
* @param
* @return
*/
@PostMapping
(
value
=
"/user/refreshUser"
)
Rest
<
Void
>
refreshUser
();
}
@Slf4j
@Component
class
SelfSystemFeignFallbackFactory
implements
FallbackFactory
<
ISelfSystemFeign
>
{
@Override
public
ISelfSystemFeign
create
(
Throwable
t
)
{
return
new
ISelfSystemFeign
()
{
/**
* @return
*/
@Override
public
Rest
<
Void
>
refreshUser
()
{
return
Rest
.
fail
(
"暂时无法通知设备,请稍后再试!"
);
}
};
}
}
portal-manager/src/main/java/com/mortals/xhx/common/utils/SendSubSystemTask.java
View file @
977ba3d2
...
...
@@ -2,6 +2,7 @@ package com.mortals.xhx.common.utils;
import
com.mortals.xhx.feign.area.IApiAreaFeign
;
import
com.mortals.xhx.feign.device.IDeviceFeign
;
import
com.mortals.xhx.feign.selfsystem.ISelfSystemFeign
;
import
com.mortals.xhx.feign.skin.ISkinFillFeign
;
import
com.mortals.xhx.feign.skin.ISkinSampleFeign
;
import
com.mortals.xhx.utils.SpringUtils
;
...
...
@@ -16,25 +17,24 @@ import lombok.extern.slf4j.Slf4j;
* @description:
**/
@Slf4j
@AllArgsConstructor
public
class
SendSubSystemTask
implements
Runnable
{
private
IApiAreaFeign
apiAreaFeign
;
private
IDeviceFeign
deviceFeign
;
private
ISkinSampleFeign
skinSampleFeign
;
private
ISkinFillFeign
skinFillFeign
;
private
ISelfSystemFeign
selfSystemFeign
;
public
SendSubSystemTask
()
{
apiAreaFeign
=
SpringUtils
.
getBean
(
IApiAreaFeign
.
class
);
deviceFeign
=
SpringUtils
.
getBean
(
IDeviceFeign
.
class
);
skinSampleFeign
=
SpringUtils
.
getBean
(
ISkinSampleFeign
.
class
);
skinFillFeign
=
SpringUtils
.
getBean
(
ISkinFillFeign
.
class
);
apiAreaFeign
=
SpringUtils
.
getBean
(
IApiAreaFeign
.
class
);
deviceFeign
=
SpringUtils
.
getBean
(
IDeviceFeign
.
class
);
skinSampleFeign
=
SpringUtils
.
getBean
(
ISkinSampleFeign
.
class
);
skinFillFeign
=
SpringUtils
.
getBean
(
ISkinFillFeign
.
class
);
selfSystemFeign
=
SpringUtils
.
getBean
(
ISelfSystemFeign
.
class
);
}
@Override
public
void
run
()
{
String
resp
=
null
;
try
{
Thread
.
sleep
(
2000
);
apiAreaFeign
.
refreshUser
();
...
...
@@ -44,9 +44,10 @@ public class SendSubSystemTask implements Runnable {
skinSampleFeign
.
refreshUser
();
Thread
.
sleep
(
2000
);
skinFillFeign
.
refreshUser
();
Thread
.
sleep
(
2000
);
selfSystemFeign
.
refreshUser
();
}
catch
(
Exception
e
)
{
log
.
error
(
"异常:"
,
e
);
log
.
error
(
"通知异常:"
,
e
);
}
}
}
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