Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dsk-operate-sys-cscec
Project
Project
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fulixin
dsk-operate-sys-cscec
Commits
96864d26
Commit
96864d26
authored
Oct 26, 2023
by
tianhongyang
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'V20230915' of
http://192.168.60.201/root/dsk-operate-sys
into V20230915
parents
94265561
83d014ec
Changes
15
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
505 additions
and
193 deletions
+505
-193
BusinessOpenTenderServiceImpl.java
...m/dsk/biz/service/impl/BusinessOpenTenderServiceImpl.java
+4
-4
sidebar.scss
dsk-operate-ui/src/assets/styles/sidebar.scss
+1
-1
index.vue
dsk-operate-ui/src/layout/components/TagsView/index.vue
+1
-1
index.js
dsk-operate-ui/src/router/index.js
+12
-0
index.vue
dsk-operate-ui/src/views/custom/customList/index.vue
+72
-0
index.vue
...operate-ui/src/views/custom/historicalCustomers/index.vue
+116
-4
detail.vue
dsk-operate-ui/src/views/detail.vue
+1
-1
index.vue
...iews/enterpriseData/components/SearchEnterprise/index.vue
+2
-4
index.vue
dsk-operate-ui/src/views/enterpriseManagement/index.vue
+5
-2
index.vue
dsk-operate-ui/src/views/macro/enterprises/index.vue
+101
-16
index.vue
dsk-operate-ui/src/views/market/index.vue
+1
-1
index.vue
...ate-ui/src/views/radar/components/Establishment/index.vue
+81
-77
index.vue
...operate-ui/src/views/radar/components/bxprozbgg/index.vue
+81
-81
index.vue
dsk-operate-ui/src/views/system/user/index.vue
+1
-1
ISysTenantServiceImpl.java
...va/com/dsk/system/service/impl/ISysTenantServiceImpl.java
+26
-0
No files found.
dsk-module/dsk-biz-api/src/main/java/com/dsk/biz/service/impl/BusinessOpenTenderServiceImpl.java
View file @
96864d26
...
...
@@ -61,9 +61,9 @@ public class BusinessOpenTenderServiceImpl implements IBusinessOpenTenderService
}
private
void
verifyBean
(
BusinessOpenTender
bo
){
if
(
ObjectUtils
.
is
Arra
y
(
bo
.
getBusinessId
()))
throw
new
BeanException
(
"项目id不能为空!"
);
if
(
ObjectUtils
.
is
Arra
y
(
bo
.
getTenderer
()))
throw
new
BeanException
(
"开标人不能为空!"
);
if
(
ObjectUtils
.
is
Arra
y
(
bo
.
getTendererNature
()))
throw
new
BeanException
(
"企业性质不能为空!"
);
if
(
ObjectUtils
.
is
Arra
y
(
bo
.
getTenderAmount
()))
throw
new
BeanException
(
"投标金额不能为空!"
);
if
(
ObjectUtils
.
is
Empt
y
(
bo
.
getBusinessId
()))
throw
new
BeanException
(
"项目id不能为空!"
);
if
(
ObjectUtils
.
is
Empt
y
(
bo
.
getTenderer
()))
throw
new
BeanException
(
"开标人不能为空!"
);
if
(
ObjectUtils
.
is
Empt
y
(
bo
.
getTendererNature
()))
throw
new
BeanException
(
"企业性质不能为空!"
);
if
(
ObjectUtils
.
is
Empt
y
(
bo
.
getTenderAmount
()))
throw
new
BeanException
(
"投标金额不能为空!"
);
}
}
dsk-operate-ui/src/assets/styles/sidebar.scss
View file @
96864d26
...
...
@@ -3,7 +3,7 @@
height
:
100%
;
transition
:
margin-left
0
.28s
;
margin-left
:
$base-sidebar-width
;
width
:
calc
(
100%
-
$base-sidebar-width
);
width
:
calc
(
100%
-
#{
$base-sidebar-width
}
);
position
:
relative
;
background
:
#f5f5f5
;
}
...
...
dsk-operate-ui/src/layout/components/TagsView/index.vue
View file @
96864d26
...
...
@@ -44,7 +44,7 @@
<svg
:class=
"isActive(tag)?'tags-icon tags-icon-active':'tags-icon'"
aria-hidden=
"true"
>
<use
:xlink:href=
"iconName(tag)"
/>
</svg>
<span
:id=
"isActive(tag)?'tagTitle':''"
>
{{
tag
.
title
}}
</span>
<span
:id=
"isActive(tag)?'tagTitle':''"
>
{{
tag
.
title
.
replace
(
/<
[^
>
]
+>/g
,
''
)
}}
</span>
<span
v-if=
"!isAffix(tag)"
class=
"el-icon-close"
@
click
.
prevent
.
stop=
"closeSelectedTag(tag)"
/>
<i
:class=
"index!=visitedViews.length-1 && index != isActiveIndex() && index != isActiveIndex()-1?'tags-item-line':'tags-item-line item-color'"
/>
</router-link>
...
...
dsk-operate-ui/src/router/index.js
View file @
96864d26
...
...
@@ -159,6 +159,18 @@ export const constantRoutes = [
}
]
},
{
path
:
''
,
component
:
Layout
,
hidden
:
true
,
redirect
:
'noredirect'
,
children
:
[
{
path
:
'/JumpPage.html'
,
component
:
()
=>
import
(
'@/views/detail'
),
}
]
},
//乙方-企业详情
{
path
:
'/company'
,
...
...
dsk-operate-ui/src/views/custom/customList/index.vue
View file @
96864d26
...
...
@@ -840,6 +840,78 @@ export default {
}
}
}
::v-deep
.normal-search-container
{
display
:
flex
;
align-items
:
center
;
&
.is-hover-search
{
width
:
238px
;
background
:
#f4f6f9
;
border-radius
:
4px
4px
4px
4px
;
&
>
img
{
cursor
:
unset
;
}
}
&
:hover
{
&
>
span
{
color
:
#0081ff
;
}
}
&
>
img
{
width
:
16px
;
height
:
16px
;
margin-left
:
12px
;
cursor
:
pointer
;
}
&
>
span
{
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
font-weight
:
400
;
margin-left
:
8px
;
line-height
:
22px
;
font-size
:
14px
;
cursor
:
pointer
;
}
.el-input
{
&
>
.el-input__inner
{
border
:
none
;
height
:
32px
;
line-height
:
32px
;
caret-color
:
#0081ff
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
font-size
:
14px
;
background
:
#f4f6f9
;
padding-right
:
26px
;
padding-left
:
8px
;
&
:
:
placeholder
{
color
:
rgba
(
35
,
35
,
35
,
0
.4
)
!
important
;
font-size
:
14px
!
important
;
line-height
:
32px
;
}
}
.el-input__suffix
{
right
:
12px
;
display
:
flex
;
align-items
:
center
;
.el-input__suffix-inner
{
height
:
14px
;
width
:
14px
;
}
img
{
cursor
:
pointer
;
vertical-align
:
unset
;
margin-bottom
:
14px
;
}
}
}
}
}
}
.box
{
...
...
dsk-operate-ui/src/views/custom/historicalCustomers/index.vue
View file @
96864d26
...
...
@@ -8,10 +8,23 @@
<div
class=
"p2"
>
建议调整关键词或筛选条件,重新搜索
</div>
</div>
<div
class=
"table_search"
>
<div
class=
"newSearch"
>
<el-input
type=
"text"
v-model=
"searchParam.companyName"
clearable
placeholder=
"输入企业名称查询"
@
change=
"clearname"
>
<i
slot=
"prefix"
class=
"el-input__icon"
><img
src=
"@/assets/images/project/sousuo.png"
width=
"16px"
@
click=
"handleCurrentChange(1)"
></i>
</el-input>
<div>
<!-- 未点击前的输入框样式 -->
<div
class=
"normal-search-container"
:class=
"
{'is-hover-search' : hover}" @mouseover="searchHover($event)"
@mouseleave="searchUnHover($event,searchParam.companyName)">
<img
src=
"@/assets/images/enterprise/enterprise-search-icon.svg"
alt=
""
>
<span
v-show=
"!hover && !searchParam.companyName"
>
搜索
</span>
<el-input
v-model=
"searchParam.companyName"
placeholder=
"输入关键词查询"
@
focus=
"searchFocus($event)"
@
blur=
"searchBlur($event)"
@
keydown
.
native
.
enter=
"getCustomerList"
@
input=
"value => searchInput(value)"
v-show=
"hover || searchParam.companyName"
>
<template
slot=
"suffix"
>
<transition
mode=
"out-in"
appear
name=
"fade"
>
<img
src=
"@/assets/images/enterprise/search-input-clear-icon.svg"
alt=
""
@
click
.
stop=
"searchParam.companyName = '';getCustomerList()"
v-show=
"showClearIcon"
>
</transition>
</
template
>
</el-input>
</div>
</div>
<div
class=
"dc"
>
<div
class=
"total"
>
共{{tableData.total}}条
</div>
...
...
@@ -239,6 +252,8 @@ export default {
keys
:
1
,
RLcompanyName
:
''
,
//重新认领企业名称
isSkeleton
:
true
,
showClearIcon
:
false
,
hover
:
false
,
}
},
created
()
{
...
...
@@ -336,6 +351,28 @@ export default {
this
.
searchParam
.
pageNum
=
val
this
.
getCustomerList
()
},
searchFocus
(
event
)
{
const
{
target
}
=
event
;
if
(
target
?.
value
?.
length
)
{
this
.
showClearIcon
=
true
}
},
searchBlur
(
event
)
{
this
.
showClearIcon
=
false
},
searchInput
(
value
)
{
if
(
value
?.
length
)
{
this
.
showClearIcon
=
true
}
},
searchHover
(
event
)
{
this
.
hover
=
true
},
searchUnHover
(
event
,
value
)
{
if
(
!
value
)
{
this
.
hover
=
false
}
},
}
}
</
script
>
...
...
@@ -358,6 +395,81 @@ export default {
padding-top
:
16px
;
width
:
100%
;
height
:
100%
;
.table_search
{
::v-deep
.normal-search-container
{
display
:
flex
;
align-items
:
center
;
line-height
:
32px
;
height
:
32px
;
&
.is-hover-search
{
width
:
238px
;
background
:
#f4f6f9
;
border-radius
:
4px
4px
4px
4px
;
&
>
img
{
cursor
:
unset
;
}
}
&
:hover
{
&
>
span
{
color
:
#0081ff
;
}
}
&
>
img
{
width
:
16px
;
height
:
16px
;
margin-left
:
12px
;
cursor
:
pointer
;
}
&
>
span
{
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
font-weight
:
400
;
margin-left
:
8px
;
line-height
:
22px
;
font-size
:
14px
;
cursor
:
pointer
;
}
.el-input
{
&
>
.el-input__inner
{
border
:
none
;
height
:
32px
;
line-height
:
32px
;
caret-color
:
#0081ff
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
font-size
:
14px
;
background
:
#f4f6f9
;
padding-right
:
26px
;
padding-left
:
8px
;
&
:
:
placeholder
{
color
:
rgba
(
35
,
35
,
35
,
0
.4
)
!
important
;
font-size
:
14px
!
important
;
line-height
:
32px
;
}
}
.el-input__suffix
{
right
:
12px
;
display
:
flex
;
align-items
:
center
;
.el-input__suffix-inner
{
height
:
14px
;
width
:
14px
;
}
img
{
cursor
:
pointer
;
vertical-align
:
unset
;
margin-bottom
:
14px
;
}
}
}
}
}
}
.box
{
position
:
relative
;
...
...
dsk-operate-ui/src/views/detail.vue
View file @
96864d26
...
...
@@ -37,7 +37,7 @@ export default {
this
.
domain
=
'https://plug.jiansheku.com'
}
else
{
this
.
domain
=
'https://pre-plug.jiansheku.com'
this
.
domain
=
'http://192.168.60.210:3400'
//
this.domain='http://192.168.60.210:3400'
}
this
.
gettokens
();
},
...
...
dsk-operate-ui/src/views/enterpriseData/components/SearchEnterprise/index.vue
View file @
96864d26
...
...
@@ -2776,12 +2776,10 @@ export default {
},
toEnterprise
(
id
,
html
,
type
,
name
)
{
// this.$tab.openPage(name, '/company/' + encodeStr(id) + '/' + (html ? '?html=' + html : '') + (type ? '&flag=true&type=' + type : ''))
this
.
$router
.
push
({
path
:
'/company/'
+
encodeStr
(
id
)
+
'/'
+
(
html
?
html
:
''
)
+
(
type
?
'?flag=true&type='
+
type
:
''
)}
)
this
.
$tab
.
openPage
(
name
,
'/company/'
+
encodeStr
(
id
)
+
'/'
+
(
html
?
html
+
'/'
:
''
)
+
(
type
?
'?flag=true&type='
+
type
:
''
))
},
toEnterpriseDetail
(
id
,
name
)
{
// this.$tab.openPage(name, '/company/' + encodeStr(id) + '/?index=true')
this
.
$router
.
push
({
path
:
'/company/'
+
encodeStr
(
id
)
+
'/?index=true'
}
)
this
.
$tab
.
openPage
(
name
,
'/company/'
+
encodeStr
(
id
)
)
},
labelsWidth
(
e
,
t
=
0
)
{
...
...
dsk-operate-ui/src/views/enterpriseManagement/index.vue
View file @
96864d26
...
...
@@ -221,7 +221,7 @@
<p>
温馨提示:此操作可能会影响正在使用的用户,建议合理安排同步时间
</p>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"dialogVisible1 = false"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"handleConfirm()"
>
同步
</el-button>
<el-button
type=
"primary"
@
click=
"handleConfirm()"
:loading=
"state"
>
同步
</el-button>
</div>
</el-dialog>
</div>
...
...
@@ -305,7 +305,8 @@
},
//企业方案列表
packageList
:[],
syncItem
:{}
syncItem
:{},
state
:
false
,
};
},
created
()
{
...
...
@@ -390,8 +391,10 @@
/** 同步按钮操作 */
handleConfirm
()
{
let
_this
=
this
this
.
state
=
true
syncTenantPackage
({
tenantId
:
this
.
syncItem
.
tenantId
,
packageId
:
this
.
syncItem
.
packageId
}).
then
(
res
=>
{
if
(
res
.
code
===
200
){
this
.
state
=
false
_this
.
$message
.
success
(
res
.
msg
);
this
.
dialogVisible1
=
false
;
}
...
...
dsk-operate-ui/src/views/macro/enterprises/index.vue
View file @
96864d26
...
...
@@ -32,19 +32,35 @@
<!--
<i
slot=
"prefix"
class=
"el-icon-search"
></i>
-->
<!--
<el-button
slot=
"append"
@
click=
"handleSearch()"
>
搜索
</el-button>
-->
<!--
</el-input>
-->
<!--<!– 未点击前的输入框样式 –>-->
<!--
<div
class=
"normal-search-container"
@
click=
"showSearchBox = true"
v-if=
"!showSearchBox"
>
-->
<!--
<img
src=
"@/assets/images/enterprise/enterprise-search-icon.svg"
alt=
""
>
-->
<!--
<span>
搜索
</span>
-->
<!--
</div>
-->
<!--<!– 输入框展开后样式 –>-->
<!--
<transition
@
enter=
"onEnter"
appear
mode=
"out-in"
>
-->
<!--
<div
class=
"cooperate-name enterprise-search-container"
id=
"focus1"
v-if=
"showSearchBox"
>
-->
<!--
<el-input
clearable
@
clear=
"handleSearch"
@
focus=
"clickFocus('focus1')"
@
blur=
"clickFocus('focus1')"
v-model=
"queryParams.ename"
--
>
<!--placeholder="输入关键词查询">
</el-input>
-->
<!--
<span
@
click=
"handleSearch"
>
搜索
</span>
-->
<!--
</div>
-->
<!--
</transition>
-->
<!-- 未点击前的输入框样式 -->
<div
class=
"normal-search-container"
@
click=
"showSearchBox = true"
v-if=
"!showSearchBox"
>
<div
class=
"normal-search-container"
:class=
"
{'is-hover-search' : hover}" @mouseover="searchHover($event)"
@mouseleave="searchUnHover($event,queryParams.ename)">
<img
src=
"@/assets/images/enterprise/enterprise-search-icon.svg"
alt=
""
>
<span>
搜索
</span>
<span
v-show=
"!hover && !queryParams.ename"
>
搜索
</span>
<el-input
v-model=
"queryParams.ename"
placeholder=
"输入关键词查询"
@
focus=
"searchFocus($event)"
@
blur=
"searchBlur($event)"
@
keydown
.
native
.
enter=
"handleSearch"
@
input=
"value => searchInput(value)"
v-show=
"hover || queryParams.ename"
>
<template
slot=
"suffix"
>
<transition
mode=
"out-in"
appear
name=
"fade"
>
<img
src=
"@/assets/images/enterprise/search-input-clear-icon.svg"
alt=
""
@
click
.
stop=
"queryParams.ename = '';handleSearch()"
v-show=
"showClearIcon"
>
</transition>
</
template
>
</el-input>
</div>
<!-- 输入框展开后样式 -->
<transition
@
enter=
"onEnter"
appear
mode=
"out-in"
>
<div
class=
"cooperate-name enterprise-search-container"
id=
"focus1"
v-if=
"showSearchBox"
>
<el-input
clearable
@
clear=
"handleSearch"
@
focus=
"clickFocus('focus1')"
@
blur=
"clickFocus('focus1')"
v-model=
"queryParams.ename"
placeholder=
"输入关键词查询"
></el-input>
<span
@
click=
"handleSearch"
>
搜索
</span>
</div>
</transition>
<span
class=
"total"
>
共{{tableDataTotal}}条
</span>
</div>
<skeleton
v-if=
"isSkeleton"
style=
"padding: 16px"
></skeleton>
...
...
@@ -157,7 +173,8 @@ export default {
timePlaceholder
:
'中标时间'
,
inputID1
:
this
.
getUid
(),
inputID2
:
this
.
getUid
(),
showSearchBox
:
false
showClearIcon
:
false
,
hover
:
false
,
}
},
created
()
{
...
...
@@ -315,6 +332,28 @@ export default {
this
.
querySubmit
()
}
},
searchFocus
(
event
)
{
const
{
target
}
=
event
;
if
(
target
?.
value
?.
length
)
{
this
.
showClearIcon
=
true
}
},
searchBlur
(
event
)
{
this
.
showClearIcon
=
false
},
searchInput
(
value
)
{
if
(
value
?.
length
)
{
this
.
showClearIcon
=
true
}
},
searchHover
(
event
)
{
this
.
hover
=
true
},
searchUnHover
(
event
,
value
)
{
if
(
!
value
)
{
this
.
hover
=
false
}
},
formatStatus
:
function
(
row
,
column
,
cellValue
)
{
return
cellValue
?
cellValue
:
'-'
},
...
...
@@ -593,12 +632,21 @@ export default {
margin-bottom
:
3px
;
}
}
.normal-search-container
{
margin-left
:
12px
;
::v-deep
.normal-search-container
{
display
:
flex
;
align-items
:
center
;
cursor
:
pointer
;
height
:
34px
;
line-height
:
32px
;
height
:
32px
;
&
.is-hover-search
{
width
:
238px
;
background
:
#f4f6f9
;
border-radius
:
4px
4px
4px
4px
;
&
>
img
{
cursor
:
unset
;
}
}
&
:hover
{
&
>
span
{
color
:
#0081ff
;
...
...
@@ -609,15 +657,52 @@ export default {
width
:
16px
;
height
:
16px
;
margin-left
:
12px
;
cursor
:
pointer
;
}
&
>
span
{
color
:
#232323
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
font-weight
:
400
;
margin-left
:
8px
;
line-height
:
22px
;
font-size
:
14px
;
cursor
:
pointer
;
}
.el-input
{
&
>
.el-input__inner
{
border
:
none
;
height
:
32px
;
line-height
:
32px
;
caret-color
:
#0081ff
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
font-size
:
14px
;
background
:
#f4f6f9
;
padding-right
:
26px
;
padding-left
:
8px
;
&
:
:
placeholder
{
color
:
rgba
(
35
,
35
,
35
,
0
.4
)
!
important
;
font-size
:
14px
!
important
;
line-height
:
32px
;
}
}
.el-input__suffix
{
right
:
12px
;
display
:
flex
;
align-items
:
center
;
.el-input__suffix-inner
{
height
:
14px
;
width
:
14px
;
}
img
{
cursor
:
pointer
;
vertical-align
:
unset
;
margin-bottom
:
14px
;
}
}
}
}
.cooperate-name
{
...
...
dsk-operate-ui/src/views/market/index.vue
View file @
96864d26
...
...
@@ -44,7 +44,7 @@ export default {
}
else
{
this
.
domain
=
'https://pre-plug.jiansheku.com'
;
// this.domain = 'http://192.168.60.8:3400';
this
.
domain
=
'http://192.168.60.104
:3400'
;
// this.domain = 'http://192.168.60.210
:3400';
}
this
.
gettokens
();
this
.
iframeObserver
();
...
...
dsk-operate-ui/src/views/radar/components/Establishment/index.vue
View file @
96864d26
This diff is collapsed.
Click to expand it.
dsk-operate-ui/src/views/radar/components/bxprozbgg/index.vue
View file @
96864d26
This diff is collapsed.
Click to expand it.
dsk-operate-ui/src/views/system/user/index.vue
View file @
96864d26
...
...
@@ -151,7 +151,7 @@
<el-table-column
type=
"selection"
width=
"50"
align=
"center"
/>
<el-table-column
label=
"用户编号"
align=
"center"
:key=
'mathkey+1'
prop=
"userId"
v-if=
"columns[0].visible"
/>
<!--
<el-table-column
label=
"用户名称"
align=
"center"
key=
"userName"
prop=
"userName"
v-if=
"columns[1].visible"
:show-overflow-tooltip=
"true"
/>
-->
<el-table-column
label=
"用户
昵
称"
align=
"center"
:key=
'mathkey+2'
prop=
"nickName"
v-if=
"columns[2].visible"
:show-overflow-tooltip=
"true"
/>
<el-table-column
label=
"用户
名
称"
align=
"center"
:key=
'mathkey+2'
prop=
"nickName"
v-if=
"columns[2].visible"
:show-overflow-tooltip=
"true"
/>
<el-table-column
label=
"组织"
align=
"center"
:key=
'mathkey+3'
prop=
"dept.deptName"
v-if=
"columns[3].visible"
:show-overflow-tooltip=
"true"
/>
<el-table-column
label=
"手机号码"
align=
"center"
:key=
'mathkey+4'
prop=
"phonenumber"
v-if=
"columns[4].visible"
width=
"120"
/>
<el-table-column
label=
"状态"
align=
"center"
:key=
'mathkey+5'
v-if=
"columns[5].visible"
>
...
...
dsk-system/src/main/java/com/dsk/system/service/impl/ISysTenantServiceImpl.java
View file @
96864d26
package
com
.
dsk
.
system
.
service
.
impl
;
import
cn.dev33.satoken.secure.BCrypt
;
import
cn.dev33.satoken.session.SaSession
;
import
cn.dev33.satoken.session.TokenSign
;
import
cn.dev33.satoken.stp.StpUtil
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.convert.Convert
;
import
cn.hutool.core.date.DateTime
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.RandomUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.CollectionUtils
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.dsk.common.constant.CacheNames
;
...
...
@@ -15,9 +20,11 @@ import com.dsk.common.core.domain.PageQuery;
import
com.dsk.common.core.domain.entity.SysDictData
;
import
com.dsk.common.core.domain.entity.SysDictType
;
import
com.dsk.common.core.page.TableDataInfo
;
import
com.dsk.common.enums.UserStatus
;
import
com.dsk.common.exception.ServiceException
;
import
com.dsk.common.utils.PasswordUtils
;
import
com.dsk.common.utils.StringUtils
;
import
com.dsk.common.utils.redis.RedisUtils
;
import
com.dsk.system.domain.*
;
import
com.dsk.system.domain.bo.SysTenantBo
;
import
com.dsk.system.domain.vo.SysTenantVo
;
...
...
@@ -201,6 +208,7 @@ public class ISysTenantServiceImpl implements ISysTenantService {
String
password
=
PasswordUtils
.
generatePwd
(
8
);
user
.
setPassword
(
BCrypt
.
hashpw
(
password
));
user
.
setDeptId
(
deptId
);
user
.
setCreateTime
(
new
DateTime
());
userMapper
.
insert
(
user
);
//新增系统用户后,默认当前用户为部门的负责人
SysDept
sd
=
new
SysDept
();
...
...
@@ -393,6 +401,24 @@ public class ISysTenantServiceImpl implements ISysTenantService {
roleMenuMapper
.
delete
(
new
LambdaQueryWrapper
<
SysRoleMenu
>().
in
(
SysRoleMenu:
:
getRoleId
,
roleIds
).
notIn
(!
menuIds
.
isEmpty
(),
SysRoleMenu:
:
getMenuId
,
menuIds
));
}
try
{
//清除企业用户登录信息
List
<
SysUser
>
tenantUsers
=
userMapper
.
selectList
(
Wrappers
.<
SysUser
>
lambdaQuery
()
.
eq
(
SysUser:
:
getTenantId
,
tenantId
).
eq
(
SysUser:
:
getStatus
,
UserStatus
.
OK
.
getCode
()));
if
(!
CollectionUtils
.
isEmpty
(
tenantUsers
))
{
for
(
SysUser
tenantUser
:
tenantUsers
)
{
String
key
=
"global:Authorization:login:session:00:"
+
tenantUser
.
getUserId
();
if
(
RedisUtils
.
hasKey
(
key
))
{
SaSession
session
=
RedisUtils
.
getCacheObject
(
key
);
List
<
TokenSign
>
tokenSignList
=
session
.
getTokenSignList
();
tokenSignList
.
forEach
(
sign
->
StpUtil
.
kickoutByTokenValue
(
sign
.
getValue
()));
}
}
}
}
catch
(
Exception
e
)
{
log
.
error
(
"清除企业用户登录信息操作失败!error={}"
,
e
.
getMessage
());
}
return
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