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
b4f33b30
Commit
b4f33b30
authored
Oct 26, 2023
by
yht15023815643
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'V20230915' of
http://192.168.60.201/root/dsk-operate-sys
into V20230915
parents
48d6bb00
60a833cc
Changes
22
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
1542 additions
and
1239 deletions
+1542
-1239
BusinessOpenTenderServiceImpl.java
...m/dsk/biz/service/impl/BusinessOpenTenderServiceImpl.java
+4
-4
project.js
dsk-operate-ui/src/api/project/project.js
+1
-2
asc.svg
dsk-operate-ui/src/assets/icons/svg/asc.svg
+1
-0
desc.svg
dsk-operate-ui/src/assets/icons/svg/desc.svg
+1
-0
common.css
dsk-operate-ui/src/assets/styles/common.css
+4
-0
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.js
dsk-operate-ui/src/utils/postMessageBridge/bridge/index.js
+13
-0
index.js
dsk-operate-ui/src/utils/postMessageBridge/index.js
+0
-0
index.vue
dsk-operate-ui/src/views/custom/customList/index.vue
+588
-597
detail.vue
dsk-operate-ui/src/views/detail.vue
+1
-1
HeadFormNew.vue
...ate-ui/src/views/detail/party-a/component/HeadFormNew.vue
+0
-5
index.vue
dsk-operate-ui/src/views/enterpriseManagement/index.vue
+5
-2
index.vue
dsk-operate-ui/src/views/market/index.vue
+23
-19
BatchImportCom.vue
...rc/views/project/projectList/component/BatchImportCom.vue
+168
-0
BidOpeningRecord.vue
.../views/project/projectList/component/BidOpeningRecord.vue
+113
-35
batchImportReset.vue
.../views/project/projectList/component/batchImportReset.vue
+2
-2
index.vue
dsk-operate-ui/src/views/project/projectList/index.vue
+417
-410
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
+0
-3
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 @
b4f33b30
...
...
@@ -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
Array
(
bo
.
getTenderer
()))
throw
new
BeanException
(
"开
标人不能为空!"
);
if
(
ObjectUtils
.
isArra
y
(
bo
.
getTendererNature
()))
throw
new
BeanException
(
"企业性质不能为空!"
);
if
(
ObjectUtils
.
isArra
y
(
bo
.
getTenderAmount
()))
throw
new
BeanException
(
"投标金额不能为空!"
);
if
(
ObjectUtils
.
is
Empt
y
(
bo
.
getBusinessId
()))
throw
new
BeanException
(
"项目id不能为空!"
);
if
(
ObjectUtils
.
is
Empty
(
bo
.
getTenderer
()))
throw
new
BeanException
(
"投
标人不能为空!"
);
// if(ObjectUtils.isEmpt
y(bo.getTendererNature())) throw new BeanException("企业性质不能为空!");
// if(ObjectUtils.isEmpt
y(bo.getTenderAmount())) throw new BeanException("投标金额不能为空!");
}
}
dsk-operate-ui/src/api/project/project.js
View file @
b4f33b30
...
...
@@ -309,8 +309,7 @@ export const modifyBidOpeningRecordApi = (data) => request({
*/
export
const
removeBidOpeningRecordApi
=
(
params
)
=>
request
({
method
:
"DELETE"
,
url
:
"/business/open/tender"
,
params
url
:
`/business/open/tender/
${
params
}
`
,
});
dsk-operate-ui/src/assets/icons/svg/asc.svg
0 → 100644
View file @
b4f33b30
<svg
width=
"24"
height=
"24"
viewBox=
"0 0 48 48"
xmlns=
"http://www.w3.org/2000/svg"
><path
d=
"M23.063 13.171a1.2 1.2 0 011.874 0l13.503 16.88c.629.785.07 1.949-.937 1.949H10.497c-1.006 0-1.566-1.164-.937-1.95l13.503-16.879z"
/></svg>
\ No newline at end of file
dsk-operate-ui/src/assets/icons/svg/desc.svg
0 → 100644
View file @
b4f33b30
<svg
width=
"24"
height=
"24"
viewBox=
"0 0 48 48"
xmlns=
"http://www.w3.org/2000/svg"
><path
d=
"M24.937 34.829a1.2 1.2 0 01-1.874 0L9.56 17.949C8.93 17.165 9.49 16 10.497 16h27.006c1.007 0 1.566 1.164.937 1.95L24.937 34.829z"
/></svg>
\ No newline at end of file
dsk-operate-ui/src/assets/styles/common.css
View file @
b4f33b30
...
...
@@ -16,3 +16,7 @@
.fade-leave-to
/* .fade-leave-active below version 2.1.8 */
{
opacity
:
0
;
}
.el-message
{
z-index
:
3000
!important
;
}
dsk-operate-ui/src/layout/components/TagsView/index.vue
View file @
b4f33b30
...
...
@@ -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 @
b4f33b30
...
...
@@ -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/utils/postMessageBridge/bridge/index.js
0 → 100644
View file @
b4f33b30
/*
* @Author: thy
* @Date: 2023-10-26 14:56:41
* @LastEditors: thy
* @LastEditTime: 2023-10-26 16:00:22
* @Description: file content
* @FilePath: \dsk-operate-ui\src\utils\postMessageBridge\bridge\index.js
*/
class
PostMessageBridge
{
constructor
()
{
}
}
\ No newline at end of file
dsk-operate-ui/src/utils/postMessageBridge/index.js
0 → 100644
View file @
b4f33b30
dsk-operate-ui/src/views/custom/customList/index.vue
View file @
b4f33b30
This diff is collapsed.
Click to expand it.
dsk-operate-ui/src/views/detail.vue
View file @
b4f33b30
...
...
@@ -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/detail/party-a/component/HeadFormNew.vue
View file @
b4f33b30
...
...
@@ -35,11 +35,6 @@
</transition>
</
template
>
</el-input>
<!-- <div class="cooperate-name enterprise-search-container" :id="'focus'+i">
<el-input clearable @clear="changeSelect" @focus="clickFocus('focus'+i)" @blur="clickFocus('focus'+i)" v-model="form.value"
:placeholder="form.placeholder" :style="form.width?'width:'+form.width+'px':'width:180px'"></el-input>
<span @click="changeSelect">搜索</span>
</div> -->
</div>
</template>
<!-- 多选 -->
...
...
dsk-operate-ui/src/views/enterpriseManagement/index.vue
View file @
b4f33b30
...
...
@@ -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/market/index.vue
View file @
b4f33b30
...
...
@@ -11,9 +11,9 @@
<
script
>
import
{
steerScroll
}
from
'@/assets/js/jskplug'
;
import
{
dskAccessToken
}
from
'@/api/common'
;
import
{
encodeStr
}
from
"@/assets/js/common"
import
{
encodeStr
}
from
"@/assets/js/common"
;
import
MaxPageSizeTip
from
"@/views/components/MaxPageSizeTip.vue"
;
import
{
getUipIdByCid
}
from
'@/api/macro/macro'
import
{
getUipIdByCid
}
from
'@/api/macro/macro'
;
export
default
{
name
:
'Enterprise'
,
components
:
{
...
...
@@ -42,13 +42,13 @@ export default {
if
(
window
.
location
.
host
===
'http://szh.jiansheku.com'
||
window
.
location
.
host
===
'szh.jiansheku.com'
)
{
this
.
domain
=
'https://plug.jiansheku.com'
;
}
else
{
this
.
domain
=
'https://pre-plug.jiansheku.com'
this
.
domain
=
'https://pre-plug.jiansheku.com'
;
// this.domain = 'http://192.168.60.8:3400';
this
.
domain
=
'http://192.168.60.210:3400'
;
//
this.domain = 'http://192.168.60.210:3400';
}
this
.
gettokens
();
this
.
iframeObserver
();
let
that
=
this
let
that
=
this
;
window
.
addEventListener
(
"message"
,
this
.
pagecapListener
,
{
passive
:
true
});
window
.
addEventListener
(
'message'
,
this
.
linkListener
,
false
);
},
...
...
@@ -66,26 +66,26 @@ export default {
this
.
iframeIns
.
contentWindow
.
postMessage
(
"removeHtmlLayoutStyle"
,
{
targetOrigin
:
this
.
domain
,
});
},
methods
:
{
linkListener
(
event
){
let
{
data
}
=
event
if
(
data
.
id
)
{
getUipIdByCid
([
data
.
id
]).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
if
(
res
.
data
&&
res
.
data
.
length
>
0
&&
res
.
data
[
0
].
uipId
)
{
this
.
$router
.
push
({
path
:
'/enterprise/'
+
this
.
encodeStr
(
data
.
id
)})
}
else
{
this
.
$tab
.
openPage
(
data
.
title
,
'/company/'
+
this
.
encodeStr
(
data
.
id
))
linkListener
(
event
)
{
let
{
data
}
=
event
;
if
(
data
.
id
)
{
getUipIdByCid
([
data
.
id
]).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
if
(
res
.
data
&&
res
.
data
.
length
>
0
&&
res
.
data
[
0
].
uipId
)
{
this
.
$router
.
push
({
path
:
'/enterprise/'
+
this
.
encodeStr
(
data
.
id
)
});
}
else
{
this
.
$tab
.
openPage
(
data
.
title
,
'/company/'
+
this
.
encodeStr
(
data
.
id
));
}
}
}).
catch
(
error
=>
{
}).
catch
(
error
=>
{
});
}
else
{
if
(
data
.
url
)
{
}
else
{
if
(
data
.
url
)
{
this
.
$tab
.
openPage
(
data
.
title
,
data
.
url
).
then
(()
=>
{
// 执行结束的逻辑
})
})
;
}
}
},
...
...
@@ -151,9 +151,13 @@ export default {
<
style
lang=
"scss"
scoped
>
.market-container
{
width
:
100%
;
height
:
100%
;
padding
:
16px
24px
;
padding-right
:
15px
;
box-sizing
:
border-box
;
position
:
absolute
;
left
:
0
;
top
:
0
;
.market-iframe
{
width
:
100%
;
...
...
dsk-operate-ui/src/views/project/projectList/component/BatchImportCom.vue
0 → 100644
View file @
b4f33b30
<
template
>
<div
class=
"batch-import-com"
>
<!-- 导入弹窗 -->
<el-dialog
:title=
"upload.title"
:visible
.
sync=
"upload.open"
width=
"400px"
>
<el-upload
ref=
"upload"
:limit=
"1"
accept=
".xlsx, .xls"
:headers=
"upload.headers"
:action=
"upload.url"
:disabled=
"upload.isUploading"
:on-progress=
"handleFileUploadProgress"
:on-success=
"handleFileSuccess"
:auto-upload=
"false"
drag
>
<i
class=
"el-icon-upload"
></i>
<div
class=
"el-upload__text"
>
将文件拖到此处,或
<em>
点击上传
</em></div>
<div
class=
"el-upload__tip text-center"
slot=
"tip"
>
<span>
仅允许导入xls、xlsx格式文件。
</span>
<el-link
type=
"primary"
:underline=
"false"
style=
"font-size:12px;vertical-align: baseline;"
@
click=
"importTemplate"
>
下载模板
</el-link>
</div>
</el-upload>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitFileForm"
>
确 定
</el-button>
<el-button
@
click=
"upload.open = false"
>
取 消
</el-button>
</div>
</el-dialog>
<!--导入结果-->
<el-dialog
title=
"导入失败"
:visible
.
sync=
"upload.showResult"
width=
"60%"
class=
"batch-import-upload-dialog-container"
custom-class=
"batch-import-upload-dialog"
@
close=
"importResultClose"
>
<div
class=
"batch-import-upload-inner"
>
<el-table
:data=
"uploadResult.errorMsg"
border
stripe
v-if=
"uploadResult.errorMsg.length"
class=
"error-msg-list-table"
max-height=
"500px"
>
<el-table-column
label=
"导入状态"
>
<template
slot-scope=
"scope"
>
<span
style=
"color:red;"
>
导入失败
</span>
</
template
>
</el-table-column>
<!-- <el-table-column label="投标人">
<template slot-scope="scope">
<span></span>
</template>
</el-table-column> -->
<el-table-column
label=
"导入失败原因"
>
<
template
slot-scope=
"scope"
>
<span
style=
"color:red;"
>
{{
scope
.
row
}}
</span>
</
template
>
</el-table-column>
</el-table>
<el-row
style=
"padding-top: 20px;text-align: right"
>
<el-button
@
click=
"upload.showResult = false"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"upload.showResult = false"
>
确定
</el-button>
</el-row>
</div>
</el-dialog>
</div>
</template>
<
script
>
export
default
{
name
:
"batchImportCom"
,
props
:
{
uploadOptions
:
{
type
:
Object
,
default
:
()
=>
({})
}
},
watch
:
{
"uploadOptions"
:
{
handler
(
newValue
,
oldValue
)
{
this
.
upload
=
newValue
;
},
deep
:
true
}
},
data
()
{
return
{
// 导入参数
upload
:
this
.
uploadOptions
,
// 导入结果
uploadResult
:
{
successCount
:
0
,
errorCount
:
0
,
errorMsg
:
[]
}
};
},
//可访问data属性
created
()
{
},
//计算集
computed
:
{
},
//方法集
methods
:
{
// 文件上传中处理
handleFileUploadProgress
(
event
,
file
,
fileList
)
{
this
.
upload
.
isUploading
=
true
;
},
// 文件上传成功处理
handleFileSuccess
(
response
,
file
,
fileList
)
{
this
.
upload
.
open
=
false
;
this
.
upload
.
isUploading
=
false
;
this
.
$refs
.
upload
.
clearFiles
();
if
(
response
.
code
==
200
)
{
this
.
$message
.
success
(
'上传成功!'
);
if
(
response
.
data
)
{
this
.
uploadResult
.
successCount
=
response
.
data
.
sucessCount
;
this
.
uploadResult
.
errorCount
=
response
.
data
.
errorCount
;
response
.
data
.
errorMsg
?
this
.
uploadResult
.
errorMsg
=
response
.
data
.
errorMsg
:
null
;
this
.
upload
.
showResult
=
true
;
}
}
else
{
this
.
$message
.
error
(
`上传失败,
${
response
.
msg
?
response
.
msg
:
"请根据模板正确填写表格内容!"
}
`
);
}
},
// 提交上传文件
submitFileForm
()
{
this
.
$refs
.
upload
.
submit
();
},
/** 下载模板操作 */
importTemplate
()
{
let
a
=
document
.
createElement
(
"a"
);
a
.
setAttribute
(
"href"
,
this
.
upload
.
fileTemplateUrl
);
a
.
setAttribute
(
"download"
,
`
${
this
.
upload
.
fileName
}
_
${
new
Date
().
getTime
()}
.xlsx`
);
document
.
body
.
appendChild
(
a
);
a
.
click
();
a
.
remove
();
},
importResultClose
()
{
this
.
upload
.
showResult
=
false
;
this
.
uploadResult
=
this
.
$options
.
data
.
call
(
this
).
uploadResult
;
},
},
}
</
script
>
<
style
lang=
"scss"
scoped
>
.batch-import-com
{
::v-deep
.batch-import-upload-dialog-container
{
.batch-import-upload-dialog
{
width
:
100%
;
max-height
:
85%
;
overflow
:
auto
;
.el-dialog__header
{
position
:
sticky
;
top
:
0px
;
background
:
#fff
;
z-index
:
99
;
padding-bottom
:
0px
;
}
.batch-import-upload-inner
{
width
:
100%
;
display
:
flex
;
flex-direction
:
column
;
.result-count
{
line-height
:
32px
;
.success
{
color
:
#67c23a
;
}
.error
{
color
:
#f56c6c
;
}
}
.error-msg-list-table
{
margin-top
:
8px
;
}
}
}
}
}
</
style
>
dsk-operate-ui/src/views/project/projectList/component/BidOpeningRecord.vue
View file @
b4f33b30
This diff is collapsed.
Click to expand it.
dsk-operate-ui/src/views/project/projectList/component/batchImportReset.vue
View file @
b4f33b30
...
...
@@ -106,8 +106,8 @@ export default {
},
onSuccess
(
res
,
file
,
fileList
)
{
if
(
res
.
code
==
200
)
{
this
.
successCount
=
res
.
successCount
;
let
str
=
'成功导入条数'
+
res
.
successCount
+
',失败条数'
+
res
.
errorCount
;
this
.
successCount
=
res
.
data
.
successCount
;
let
str
=
'成功导入条数'
+
res
.
data
.
successCount
+
',失败条数'
+
res
.
data
.
errorCount
;
this
.
messages
=
str
;
this
.
addsuccess
=
true
;
}
else
{
...
...
dsk-operate-ui/src/views/project/projectList/index.vue
View file @
b4f33b30
This diff is collapsed.
Click to expand it.
dsk-operate-ui/src/views/radar/components/Establishment/index.vue
View file @
b4f33b30
...
...
@@ -226,6 +226,10 @@
<span>
总投资:
</span>
<span
v-html=
"item.money+'万元'"
></span>
</p>
<p
class=
"list-content-text"
v-if=
"item.handleTime"
>
<span>
最新审批日期:
</span>
<span>
{{
item
.
handleTime
}}
</span>
</p>
<p
class=
"list-content-text"
v-if=
"item.planStartTime"
>
<span>
计划开工日期:
</span>
<span>
{{
item
.
planStartTime
}}
</span>
...
...
@@ -598,7 +602,7 @@
}
else
{
this
.
page
=
page
;
this
.
search
(
page
,
this
.
limit
);
this
.
jump1
(
);
window
.
scrollTo
(
0
,
400
);
}
},
fieldCommand
(
command
)
{
...
...
dsk-operate-ui/src/views/radar/components/bxprozbgg/index.vue
View file @
b4f33b30
dsk-operate-ui/src/views/system/user/index.vue
View file @
b4f33b30
...
...
@@ -345,9 +345,6 @@
<i
class=
"el-icon-upload"
></i>
<div
class=
"el-upload__text"
>
将文件拖到此处,或
<em>
点击上传
</em></div>
<div
class=
"el-upload__tip text-center"
slot=
"tip"
>
<!--<div class="el-upload__tip" slot="tip">-->
<!--<el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据-->
<!--</div>-->
<span>
仅允许导入xls、xlsx格式文件。
</span>
<el-link
type=
"primary"
:underline=
"false"
style=
"font-size:12px;vertical-align: baseline;"
@
click=
"importTemplate"
>
下载模板
</el-link>
</div>
...
...
dsk-system/src/main/java/com/dsk/system/service/impl/ISysTenantServiceImpl.java
View file @
b4f33b30
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