Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
device-new-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
赵啸非
device-new-platform
Commits
1a6da35f
Commit
1a6da35f
authored
Nov 16, 2023
by
“yiyousong”
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.scsmile.cn/zxf/device-new-platform
parents
8c6229bf
1f9ac10e
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
375 additions
and
246 deletions
+375
-246
device-manager-ui/admin/src/views/analysis/components/HeaderSite-back.vue
...i/admin/src/views/analysis/components/HeaderSite-back.vue
+225
-0
device-manager-ui/admin/src/views/analysis/components/HeaderSite.vue
...ger-ui/admin/src/views/analysis/components/HeaderSite.vue
+100
-94
device-manager/src/main/java/com/mortals/xhx/base/system/user/model/UserEntityExt.java
...com/mortals/xhx/base/system/user/model/UserEntityExt.java
+0
-42
device-manager/src/main/java/com/mortals/xhx/base/system/user/service/UserService.java
...com/mortals/xhx/base/system/user/service/UserService.java
+0
-3
device-manager/src/main/java/com/mortals/xhx/base/system/user/service/impl/UserServiceImpl.java
...ls/xhx/base/system/user/service/impl/UserServiceImpl.java
+49
-55
device-manager/src/main/java/com/mortals/xhx/base/system/user/web/UserController.java
.../com/mortals/xhx/base/system/user/web/UserController.java
+0
-5
device-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
device-manager/src/main/java/com/mortals/xhx/module/device/service/impl/DeviceAlarmInfoServiceImpl.java
...odule/device/service/impl/DeviceAlarmInfoServiceImpl.java
+1
-1
No files found.
device-manager-ui/admin/src/views/analysis/components/HeaderSite-back.vue
0 → 100644
View file @
1a6da35f
<
template
>
<el-popover
placement=
"bottom-start"
trigger=
"manual"
v-model=
"visible"
>
<a
slot=
"reference"
class=
"ant-dropdown-link"
@
click=
"visible = true"
>
{{
siteName
}}
<i
class=
"el-icon-arrow-down"
></i>
</a>
<div
class=
"content"
style=
"min-width: 50vw; min-height: 200px"
>
<div
class=
"flex_row flex_align_c primary-color name"
>
<i
class=
"el-icon-location"
style=
"margin-right: 10px"
></i>
<span
style=
""
>
{{
siteName
}}
</span>
</div>
<div
class=
"site-list"
>
<span
v-for=
"(item, index) in sitelist"
:key=
"index"
:class=
"
{ 'primary-color': item.id == checkid }"
@click="setSite(item)"
>
{{
item
.
label
}}
</span
>
</div>
<div
class=
"check-site"
>
<span>
您的选择是:
</span>
<span
v-for=
"(item, index) in checkarr"
:key=
"index"
@
click=
"updataSite(item)"
>
{{
index
>
0
?
"
>
"
:
""
}}{{
item
.
label
}}
</span
>
</div>
<div
class=
"site-btn"
>
<el-button
type=
"primary"
class=
"addclass"
size=
"small"
style=
"margin-right: 10px"
@
click=
"onSucessSite"
:disabled=
"isSite"
>
确定
</el-button
>
<el-button
size=
"small"
@
click=
"visible = false"
>
取消
</el-button>
</div>
</div>
</el-popover>
</
template
>
<
script
>
import
session
from
"
@/assets/utils/session.js
"
;
export
default
{
data
()
{
return
{
sitelist
:
[],
visible
:
false
,
offsetLeft
:
0
,
checkarr
:
[],
//选中站点
checkid
:
undefined
,
//最终选中站点
siteName
:
"
请选择站点
"
,
isSite
:
true
,
};
},
computed
:
{},
created
()
{
this
.
getwaitedListdata
();
},
mounted
()
{},
methods
:
{
// 确认站点
onSucessSite
()
{
if
(
this
.
checkarr
.
length
==
0
)
return
;
let
obj
=
this
.
checkarr
[
this
.
checkarr
.
length
-
1
];
this
.
clickSite
(
obj
);
},
// 选中
setSite
(
obj
)
{
this
.
checkid
=
undefined
;
// 为子节点不添加数据
let
data
=
this
.
checkarr
[
this
.
checkarr
.
length
-
1
];
if
(
data
&&
(
data
.
isLeaf
||
data
.
children
.
length
==
0
))
{
// 如果为子节点更新最后一个数据
this
.
checkid
=
obj
.
id
;
this
.
checkarr
[
this
.
checkarr
.
length
-
1
]
=
obj
;
}
else
{
this
.
checkarr
.
push
(
obj
);
if
(
obj
.
children
&&
obj
.
children
.
length
>
0
)
{
this
.
sitelist
=
obj
.
children
;
}
}
if
(
obj
&&
obj
.
type
==
"
site
"
)
{
this
.
isSite
=
false
;
}
else
{
this
.
isSite
=
true
;
}
},
// 更新选中
updataSite
(
row
)
{
const
{
id
}
=
row
;
this
.
checkid
=
undefined
;
let
index
=
this
.
checkarr
.
findIndex
((
v
)
=>
v
.
id
==
id
);
this
.
checkarr
.
length
=
index
+
1
;
this
.
sitelist
=
row
.
children
;
if
(
row
&&
row
.
type
==
"
site
"
)
{
this
.
isSite
=
false
;
}
else
{
this
.
isSite
=
true
;
}
},
getwaitedListdata
()
{
let
url
=
process
.
env
.
VUE_APP_SITETREE_URL
==
"
undefined
"
?
"
http://192.168.0.98:11078/base/site/siteTree
"
:
process
.
env
.
VUE_APP_SITETREE_URL
;
this
.
$get
(
url
).
then
((
res
)
=>
{
const
{
siteTree
}
=
res
.
data
;
this
.
sitelist
=
siteTree
;
let
arr
=
[];
const
treeFn
=
function
(
e
)
{
e
.
forEach
((
element
)
=>
{
arr
.
push
(
element
);
if
(
element
.
children
&&
element
.
children
.
length
>
0
)
{
treeFn
(
element
.
children
);
}
});
};
const
siteid
=
session
.
getSession
(
"
siteid
"
);
treeFn
(
siteTree
);
const
siteObj
=
arr
.
find
((
v
)
=>
v
.
id
==
siteid
);
this
.
siteName
=
siteObj
?
siteObj
.
label
:
"
请选择站点
"
;
});
},
clickSite
(
obj
)
{
session
.
setSession
(
"
siteid
"
,
obj
.
id
);
this
.
show
=
false
;
if
(
location
.
href
.
search
(
/token/gi
)
>=
0
)
{
setTimeout
(()
=>
{
location
.
reload
();
});
}
else
{
location
.
reload
();
}
},
},
};
</
script
>
<
style
lang=
"less"
scoped
>
.ant-dropdown-link {
padding: 0px;
font-size: 16px;
min-width: 200px;
display: inline-block;
}
.content {
display: flex;
flex-direction: column;
justify-content: space-around;
.name {
font-size: 20px;
color: #1890ff;
}
.site-list {
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
display: flex;
flex-wrap: wrap;
span {
line-height: 1.5;
padding: 10px 20px;
cursor: pointer;
&:hover {
color: #1890ff;
}
}
}
.check-site,
.site-btn {
padding: 0 20px;
}
.check-site {
cursor: pointer;
}
}
.trigger {
display: inline-block;
position: relative;
}
.ant-dropdown-link {
padding: 0px;
font-size: 16px;
display: inline-block;
color: #fff;
cursor: pointer;
}
.select-site {
position: fixed;
left: 300px !important;
top: 65px;
background: #fff;
border-radius: 6px;
padding: 10px;
min-width: 60%;
max-width: 80%;
z-index: 9;
color: rgba(0, 0, 0, 0.8);
font-size: 14px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
.name {
font-size: 20px;
}
.site-list {
// padding: 10px 0;
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
overflow: hidden;
span {
float: left;
line-height: 1.5;
padding: 10px 20px;
cursor: pointer;
&:hover {
color: #1890ff;
}
}
}
.check-site,
.site-btn {
padding: 0 20px;
}
}
</
style
>
device-manager-ui/admin/src/views/analysis/components/HeaderSite.vue
View file @
1a6da35f
<
template
>
<el-popover
placement=
"bottom-start"
trigger=
"manual"
v-model=
"visible"
>
<a
slot=
"reference"
class=
"ant-dropdown-link"
@
click=
"visible = true"
>
{{
siteName
}}
<i
class=
"el-icon-arrow-down"
></i>
</a>
<div
class=
"content"
style=
"min-width: 50vw; min-height: 200px"
>
<div
:trigger=
"['click']"
class=
"trigger"
@
click=
"ontrigger"
>
<slot>
<a
class=
"ant-dropdown-link"
@
click=
"(e) => e.preventDefault()"
>
{{
siteName
}}
<a-icon
type=
"down"
/>
</a>
</slot>
<div
slot=
"overlay"
class=
"select-site"
:style=
"
{ left: `${offsetLeft}px` }"
v-if="show"
>
<div
class=
"flex_row flex_align_c primary-color name"
>
<
i
class=
"el-icon-location"
style=
"margin-right: 10px"
></i
>
<span
style=
""
>
{{
siteName
}}
</span>
<
a-icon
type=
"environment"
style=
"margin-right: 10px"
/
>
<span
style=
""
>
{{
siteName
}}
</span>
</div>
<div
class=
"site-list"
>
<span
...
...
@@ -27,168 +34,166 @@
>
</div>
<div
class=
"site-btn"
>
<el-button
type=
"primary"
class=
"addclass"
size=
"small"
<a-button
type=
"primary"
style=
"margin-right: 10px"
@
click=
"onSucessSite"
:disabled=
"isSite"
>
确定
</
el
-button
>
确定
</
a
-button
>
<
el-button
size=
"small"
@
click=
"visible = false"
>
取消
</el
-button>
<
a-button
@
click=
"show = false"
>
取消
</a
-button>
</div>
</div>
</
el-popover
>
</
div
>
</
template
>
<
script
>
// import {getsiteTree} from "@/services/default"
// import { mapGetters } from "vuex";
// import Cookie from 'js-cookie'
import
session
from
"
@/assets/utils/session.js
"
;
export
default
{
data
()
{
return
{
sitelist
:
[],
visible
:
false
,
show
:
false
,
offsetLeft
:
0
,
checkarr
:
[],
//选中站点
checkid
:
undefined
,
//最终选中站点
siteName
:
"
请选择站点
"
,
isSite
:
true
,
siteName
:
"
"
,
isSite
:
true
};
},
computed
:
{},
// computed: {
// ...mapGetters("account", ["user"]),
// },
created
()
{
this
.
getwaitedListdata
();
},
mounted
()
{},
mounted
()
{
const
{
offsetLeft
}
=
this
.
$el
;
this
.
offsetLeft
=
offsetLeft
;
},
methods
:
{
// 确认站点
onSucessSite
()
{
if
(
this
.
checkarr
.
length
==
0
)
return
;
let
obj
=
this
.
checkarr
[
this
.
checkarr
.
length
-
1
];
this
.
clickSite
(
obj
);
},
// 选中
setSite
(
obj
)
{
this
.
checkid
=
undefined
;
// 为子节点不添加数据
let
data
=
this
.
checkarr
[
this
.
checkarr
.
length
-
1
];
if
(
data
&&
(
data
.
isLeaf
||
data
.
children
.
length
==
0
))
{
// 如果为子节点更新最后一个数据
this
.
checkid
=
obj
.
id
;
this
.
checkarr
[
this
.
checkarr
.
length
-
1
]
=
obj
;
// 如果选中数据有子集更新站点列表
if
(
obj
.
children
&&
obj
.
children
.
length
>
0
){
this
.
sitelist
=
obj
.
children
}
}
else
{
this
.
checkarr
.
push
(
obj
);
if
(
obj
.
children
&&
obj
.
children
.
length
>
0
)
{
this
.
sitelist
=
obj
.
children
;
if
(
obj
.
children
&&
obj
.
children
.
length
>
0
)
{
this
.
sitelist
=
obj
.
children
}
}
if
(
obj
&&
obj
.
type
==
"
site
"
)
{
this
.
isSite
=
false
;
}
else
{
this
.
isSite
=
true
;
if
(
obj
&&
obj
.
type
==
"
site
"
){
this
.
isSite
=
false
}
else
{
this
.
isSite
=
true
}
},
// 更新选中
updataSite
(
row
)
{
const
{
id
}
=
row
;
const
{
id
}
=
row
this
.
checkid
=
undefined
;
let
index
=
this
.
checkarr
.
findIndex
((
v
)
=>
v
.
id
==
id
);
this
.
checkarr
.
length
=
index
+
1
;
this
.
sitelist
=
row
.
children
;
if
(
row
&&
row
.
type
==
"
site
"
)
{
this
.
isSite
=
false
;
}
else
{
this
.
isSite
=
true
;
if
(
index
>
-
1
){
this
.
checkarr
.
splice
(
index
+
1
,
this
.
checkarr
.
length
-
(
index
+
1
))
}
if
(
row
.
children
&&
row
.
children
.
length
>
0
){
this
.
sitelist
=
row
.
children
}
if
(
row
&&
row
.
type
==
"
site
"
){
this
.
isSite
=
false
}
else
{
this
.
isSite
=
true
}
// this.getwaitedListdata(id);
},
getwaitedListdata
()
{
let
url
=
process
.
env
.
VUE_APP_SITETREE_URL
==
"
undefined
"
?
"
http://192.168.0.98:11078/base/site/siteTree
"
:
process
.
env
.
VUE_APP_SITETREE_URL
;
this
.
$get
(
url
).
then
((
res
)
=>
{
const
{
siteTree
}
=
res
.
data
;
this
.
sitelist
=
siteTree
;
let
arr
=
[];
const
treeFn
=
function
(
e
)
{
e
.
forEach
((
element
)
=>
{
arr
.
push
(
element
);
if
(
element
.
children
&&
element
.
children
.
length
>
0
)
{
treeFn
(
element
.
children
);
}
});
};
const
siteid
=
session
.
getSession
(
"
siteid
"
);
treeFn
(
siteTree
);
const
siteObj
=
arr
.
find
((
v
)
=>
v
.
id
==
siteid
);
this
.
siteName
=
siteObj
?
siteObj
.
label
:
"
请选择站点
"
;
});
this
.
$get
(
url
).
then
(
res
=>
{
const
{
code
,
data
}
=
res
.
data
if
(
code
==
1
){
const
{
siteTree
}
=
data
this
.
sitelist
=
siteTree
let
arr
=
[]
const
treeFn
=
function
(
e
){
e
.
forEach
(
element
=>
{
arr
.
push
(
element
)
if
(
element
.
children
&&
element
.
children
.
length
>
0
){
treeFn
(
element
.
children
)
}
});
}
// const siteid = Cookie.get('siteid')
const
siteid
=
session
.
getSession
(
"
siteid
"
);
treeFn
(
siteTree
)
const
siteObj
=
arr
.
find
(
v
=>
v
.
id
==
siteid
)
this
.
siteName
=
siteObj
?
siteObj
.
label
:
"
请选择站点
"
}
})
},
clickSite
(
obj
)
{
// Cookie.set('siteid', obj.id)
session
.
setSession
(
"
siteid
"
,
obj
.
id
);
this
.
show
=
false
;
if
(
location
.
href
.
search
(
/token/gi
)
>=
0
)
{
this
.
show
=
false
if
(
location
.
href
.
search
(
/token/ig
)
>=
0
){
this
.
$router
.
push
({
path
:
'
/resource/advimg
'
})
setTimeout
(()
=>
{
location
.
reload
()
;
location
.
reload
()
});
}
else
{
location
.
reload
();
}
else
{
location
.
reload
()
}
},
ontrigger
(
e
)
{
if
(
e
.
target
&&
e
.
target
.
nodeName
==
"
A
"
)
{
this
.
show
=
!
this
.
show
;
}
},
},
};
</
script
>
<
style
lang=
"less"
scoped
>
.ant-dropdown-link {
padding: 0px;
font-size: 16px;
min-width: 200px;
display: inline-block;
}
.content {
display: flex;
flex-direction: column;
justify-content: space-around;
.name {
font-size: 20px;
color: #1890ff;
}
.site-list {
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
display: flex;
flex-wrap: wrap;
span {
line-height: 1.5;
padding: 10px 20px;
cursor: pointer;
&:hover {
color: #1890ff;
}
}
}
.check-site,
.site-btn {
padding: 0 20px;
}
.check-site {
cursor: pointer;
}
}
.trigger {
display: inline-block;
position: relative;
}
.ant-dropdown-link {
padding: 0px;
color: #fff;
padding: 0 20px;
font-size: 16px;
min-width: 200px;
display: inline-block;
color: #fff;
cursor: pointer;
}
.select-site {
position: fixed;
left:
300px !important
;
left:
0
;
top: 65px;
background: #fff;
border-radius: 6px;
...
...
@@ -211,6 +216,7 @@ export default {
float: left;
line-height: 1.5;
padding: 10px 20px;
display: inline-block;
cursor: pointer;
&:hover {
color: #1890ff;
...
...
device-manager/src/main/java/com/mortals/xhx/base/system/user/model/UserEntityExt.java
deleted
100644 → 0
View file @
8c6229bf
package
com.mortals.xhx.base.system.user.model
;
import
com.mortals.framework.model.BaseEntityLong
;
import
lombok.Data
;
import
java.util.List
;
/**
* Description:User
* date: 2021-9-26 16:11:48
*/
@Data
public
class
UserEntityExt
extends
BaseEntityLong
{
/**
* 站点名称
*/
private
String
siteName
;
private
String
roleIds
;
/**
* 唯一标识
*/
private
String
token
;
/**
* 菜单栏
*/
private
String
menuUrl
;
/**
* 登录时间
*/
private
Long
loginTime
;
/**
* 过期时间
*/
private
Long
expireTime
;
}
\ No newline at end of file
device-manager/src/main/java/com/mortals/xhx/base/system/user/service/UserService.java
View file @
1a6da35f
...
...
@@ -116,9 +116,6 @@ public interface UserService extends ICRUDCacheService<UserEntity,Long> {
boolean
updateUserPwd
(
String
loginName
,
String
oldPwd
,
String
newPwd
)
throws
AppException
;
Rest
<
Void
>
refreshUser
();
UserDao
getUserDao
();
...
...
device-manager/src/main/java/com/mortals/xhx/base/system/user/service/impl/UserServiceImpl.java
View file @
1a6da35f
...
...
@@ -25,7 +25,6 @@ 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.RoleUserEntity
;
import
com.mortals.xhx.base.system.role.model.RoleUserQuery
;
import
com.mortals.xhx.base.system.role.service.RoleService
;
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
;
...
...
@@ -38,6 +37,7 @@ import com.mortals.xhx.feign.user.IUserFeign;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Lazy
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.ObjectUtils
;
...
...
@@ -63,10 +63,9 @@ public class UserServiceImpl extends AbstractCRUDCacheServiceImpl<UserDao, UserE
@Autowired
private
ResourceService
resourceService
;
@Autowired
private
RoleService
roleService
;
@Autowired
private
RoleUserService
roleUserService
;
@Lazy
@Autowired
private
IUserFeign
userFeign
;
...
...
@@ -105,19 +104,22 @@ public class UserServiceImpl extends AbstractCRUDCacheServiceImpl<UserDao, UserE
//更新不更新密码字段
entity
.
setLoginPwd
(
null
);
this
.
doHandlerUser
(
entity
);
//更新角色
if
(
entity
.
getId
().
longValue
()
!=
SysConstains
.
ADMIN_ID
&&
!
ObjectUtils
.
isEmpty
(
entity
.
getRoleIds
()))
{
RoleUserQuery
roleUserQuery
=
new
RoleUserQuery
();
roleUserQuery
.
setUserId
(
entity
.
getId
());
List
<
Long
>
idList
=
Arrays
.
asList
(
entity
.
getRoleIds
().
split
(
","
)).
stream
().
map
(
Long:
:
parseLong
).
collect
(
Collectors
.
toList
());
roleUserQuery
.
setRoleIdList
(
idList
);
roleUserService
.
doDistributionRole
(
roleUserQuery
);
}
}
@Override
protected
void
saveAfter
(
UserEntity
entity
,
Context
context
)
throws
AppException
{
//更新角色
//新增角色
updateUserRole
(
entity
);
super
.
saveAfter
(
entity
,
context
);
}
@Override
protected
void
updateAfter
(
UserEntity
entity
,
Context
context
)
throws
AppException
{
updateUserRole
(
entity
);
super
.
updateAfter
(
entity
,
context
);
}
private
void
updateUserRole
(
UserEntity
entity
)
{
if
(!
ObjectUtils
.
isEmpty
(
entity
.
getId
())
&&
entity
.
getId
().
longValue
()
!=
SysConstains
.
ADMIN_ID
&&
!
ObjectUtils
.
isEmpty
(
entity
.
getRoleIds
()))
{
RoleUserQuery
roleUserQuery
=
new
RoleUserQuery
();
roleUserQuery
.
setUserId
(
entity
.
getId
());
...
...
@@ -125,7 +127,6 @@ public class UserServiceImpl extends AbstractCRUDCacheServiceImpl<UserDao, UserE
roleUserQuery
.
setRoleIdList
(
idList
);
roleUserService
.
doDistributionRole
(
roleUserQuery
);
}
super
.
saveAfter
(
entity
,
context
);
}
@Override
...
...
@@ -139,21 +140,6 @@ public class UserServiceImpl extends AbstractCRUDCacheServiceImpl<UserDao, UserE
super
.
findAfter
(
params
,
pageInfo
,
context
,
list
);
}
@Override
protected
UserEntity
findBefore
(
UserEntity
params
,
Context
context
)
throws
AppException
{
// if (StringUtils.isNotEmpty(params.getDeptIds())) {
// params.setDeptIds(StringUtils.fillWithMark(params.getDeptIds(), ","));
// }
return
super
.
findBefore
(
params
,
context
);
}
@Override
protected
UserEntity
findBefore
(
UserEntity
params
,
PageInfo
pageInfo
,
Context
context
)
throws
AppException
{
// if (StringUtils.isNotEmpty(params.getDeptIds())) {
// params.setDeptIds(StringUtils.fillWithMark(params.getDeptIds(), ","));
// }
return
super
.
findBefore
(
params
,
pageInfo
,
context
);
}
public
UserEntity
findByLoginName
(
String
loginName
)
{
UserQuery
params
=
new
UserQuery
();
...
...
@@ -343,40 +329,51 @@ public class UserServiceImpl extends AbstractCRUDCacheServiceImpl<UserDao, UserE
List
<
UserEntity
>
newUserList
=
userPduList
.
stream
().
map
(
newUser
->
{
UserEntity
userEntity
=
new
UserEntity
();
userEntity
.
initAttrValue
();
BeanUtils
.
copyProperties
(
newUser
,
userEntity
,
new
String
[]{
"id"
,
"lastLoginTime"
,
"lastLoginAddress"
});
BeanUtils
.
copyProperties
(
newUser
,
userEntity
,
new
String
[]{
"id"
,
"lastLoginTime"
,
"lastLoginAddress"
});
return
userEntity
;
}).
collect
(
Collectors
.
toList
());
List
<
UserEntity
>
oldUserList
=
this
.
find
(
new
UserQuery
());
log
.
info
(
" oldUserList size:{}"
,
oldUserList
.
size
());
Map
<
String
,
UserEntity
>
oldUserMap
=
oldUserList
.
stream
().
collect
(
Collectors
.
toMap
(
x
->
x
.
getLoginName
(),
y
->
y
,
(
o
,
n
)
->
n
));
Map
<
String
,
UserEntity
>
newUserMap
=
newUserList
.
stream
().
collect
(
Collectors
.
toMap
(
x
->
x
.
getLoginName
(),
y
->
y
,
(
o
,
n
)
->
n
));
List
<
UserEntity
>
saveUserList
=
newUserList
.
stream
().
map
(
item
->
{
if
(!
oldUserMap
.
containsKey
(
item
.
getLoginName
()))
{
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
;
}
return
null
;
}).
filter
(
f
->
f
!=
null
).
collect
(
Collectors
.
toList
(
));
if
(!
ObjectUtils
.
isEmpty
(
saveUserList
))
{
saveU
serList
.
stream
().
forEach
(
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
());
saveU
pdateCollect
.
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
);
});
//userService.save(saveUserList);
}
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
);
});
}
}
//查找新增 与更新
}
return
Rest
.
ok
();
}
...
...
@@ -388,13 +385,10 @@ public class UserServiceImpl extends AbstractCRUDCacheServiceImpl<UserDao, UserE
@Override
protected
void
removeAfter
(
Long
[]
ids
,
Context
context
,
int
result
)
throws
AppException
{
Arrays
.
asList
(
ids
).
stream
().
peek
(
userId
->
{
RoleUserQuery
roleUserQuery
=
new
RoleUserQuery
();
roleUserQuery
.
setUserId
(
userId
);
Long
[]
userIds
=
roleUserService
.
find
(
roleUserQuery
).
stream
().
map
(
RoleUserEntity:
:
getId
).
toArray
(
Long
[]::
new
);
roleUserService
.
remove
(
userIds
,
context
);
}).
count
();
super
.
removeAfter
(
ids
,
context
,
result
);
RoleUserQuery
roleUserQuery
=
new
RoleUserQuery
();
roleUserQuery
.
setUserIdList
(
Arrays
.
asList
(
ids
));
Long
[]
userIds
=
roleUserService
.
find
(
roleUserQuery
).
stream
().
map
(
RoleUserEntity:
:
getId
).
toArray
(
Long
[]::
new
);
roleUserService
.
remove
(
userIds
,
context
);
}
}
\ No newline at end of file
device-manager/src/main/java/com/mortals/xhx/base/system/user/web/UserController.java
View file @
1a6da35f
...
...
@@ -44,7 +44,6 @@ public class UserController extends BaseCRUDJsonBodyMappingController<UserServic
private
RoleUserService
roleUserService
;
public
UserController
()
{
super
.
setFormClass
(
UserForm
.
class
);
super
.
setModuleDesc
(
"用户信息"
);
}
...
...
@@ -78,10 +77,6 @@ public class UserController extends BaseCRUDJsonBodyMappingController<UserServic
@Override
protected
int
saveAfter
(
UserEntity
entity
,
Map
<
String
,
Object
>
model
,
Context
context
)
throws
AppException
{
if
(
entity
.
getId
()
==
getCurUser
().
getId
())
{
// TODO: 2022/8/15 更新redis session信息
//saveCurrUserForSession(request, response, userService.get(form.getEntity().getId(), false));
}
return
super
.
saveAfter
(
entity
,
model
,
context
);
}
...
...
device-manager/src/main/java/com/mortals/xhx/base/system/user/web/UserForm.java
deleted
100644 → 0
View file @
8c6229bf
/**
* 文件: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
device-manager/src/main/java/com/mortals/xhx/module/device/service/impl/DeviceAlarmInfoServiceImpl.java
View file @
1a6da35f
...
...
@@ -107,7 +107,7 @@ public class DeviceAlarmInfoServiceImpl extends AbstractCRUDServiceImpl<DeviceAl
deviceAlarmInfo
.
setTodayAlarmInfoCount
(
todayAlarmInfoCount
);
//今日告警设备数量
long
todayAlarmDeviceCount
=
deviceAlarmInfoList
.
parallelStream
().
distinct
().
count
();
long
todayAlarmDeviceCount
=
deviceAlarmInfoList
.
parallelStream
().
map
(
i
->
i
.
getDeviceCode
()).
distinct
().
count
();
deviceAlarmInfo
.
setTodayAlarmDeviceCount
(
todayAlarmDeviceCount
);
//告警类型分布
...
...
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