Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dsk-cr20g
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
Administrator
dsk-cr20g
Commits
8db03d08
Commit
8db03d08
authored
Aug 31, 2023
by
lcl
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'zuhuduan' of
http://192.168.60.201/root/dsk-operate-sys
into zuhuduan
parents
5360d775
922b87eb
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
255 additions
and
141 deletions
+255
-141
SysDeptController.java
...java/com/dsk/web/controller/system/SysDeptController.java
+10
-8
SysUserController.java
...java/com/dsk/web/controller/system/SysUserController.java
+3
-4
MapStructUtils.java
...on/src/main/java/com/dsk/common/utils/MapStructUtils.java
+0
-91
PasswordUtils.java
...mon/src/main/java/com/dsk/common/utils/PasswordUtils.java
+62
-0
SysDeptVo.java
...tem/src/main/java/com/dsk/system/domain/vo/SysDeptVo.java
+108
-0
ISysTenantServiceImpl.java
...va/com/dsk/system/service/impl/ISysTenantServiceImpl.java
+2
-16
SysDeptServiceImpl.java
.../java/com/dsk/system/service/impl/SysDeptServiceImpl.java
+54
-22
SysUserServiceImpl.java
.../java/com/dsk/system/service/impl/SysUserServiceImpl.java
+16
-0
No files found.
dsk-admin/src/main/java/com/dsk/web/controller/system/SysDeptController.java
View file @
8db03d08
package
com
.
dsk
.
web
.
controller
.
system
;
package
com
.
dsk
.
web
.
controller
.
system
;
import
cn.dev33.satoken.annotation.SaCheckPermission
;
import
cn.dev33.satoken.annotation.SaCheckPermission
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.convert.Convert
;
import
cn.hutool.core.convert.Convert
;
import
com.dsk.common.annotation.Log
;
import
com.dsk.common.annotation.Log
;
import
com.dsk.common.constant.UserConstants
;
import
com.dsk.common.constant.UserConstants
;
...
@@ -9,8 +10,10 @@ import com.dsk.common.core.domain.R;
...
@@ -9,8 +10,10 @@ import com.dsk.common.core.domain.R;
import
com.dsk.system.domain.SysDept
;
import
com.dsk.system.domain.SysDept
;
import
com.dsk.common.enums.BusinessType
;
import
com.dsk.common.enums.BusinessType
;
import
com.dsk.common.utils.StringUtils
;
import
com.dsk.common.utils.StringUtils
;
import
com.dsk.system.domain.vo.SysDeptVo
;
import
com.dsk.system.service.ISysDeptService
;
import
com.dsk.system.service.ISysDeptService
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
...
@@ -34,9 +37,13 @@ public class SysDeptController extends BaseController {
...
@@ -34,9 +37,13 @@ public class SysDeptController extends BaseController {
*/
*/
@SaCheckPermission
(
"system:dept:list"
)
@SaCheckPermission
(
"system:dept:list"
)
@GetMapping
(
"/list"
)
@GetMapping
(
"/list"
)
public
R
<
List
<
SysDept
>>
list
(
SysDept
dept
)
{
public
R
<
List
<
SysDept
Vo
>>
list
(
SysDept
dept
)
{
List
<
SysDept
>
depts
=
deptService
.
selectDeptList
(
dept
);
List
<
SysDept
>
depts
=
deptService
.
selectDeptList
(
dept
);
return
R
.
ok
(
depts
);
List
<
SysDeptVo
>
deptVos
=
BeanUtil
.
copyToList
(
depts
,
SysDeptVo
.
class
);
deptVos
.
forEach
(
sysDeptVo
->
{
sysDeptVo
.
setExistUsers
(
deptService
.
hasChildByDeptId
(
sysDeptVo
.
getDeptId
()));
});
return
R
.
ok
(
deptVos
);
}
}
/**
/**
...
@@ -106,13 +113,8 @@ public class SysDeptController extends BaseController {
...
@@ -106,13 +113,8 @@ public class SysDeptController extends BaseController {
@SaCheckPermission
(
"system:dept:remove"
)
@SaCheckPermission
(
"system:dept:remove"
)
@Log
(
title
=
"部门管理"
,
businessType
=
BusinessType
.
DELETE
)
@Log
(
title
=
"部门管理"
,
businessType
=
BusinessType
.
DELETE
)
@DeleteMapping
(
"/{deptId}"
)
@DeleteMapping
(
"/{deptId}"
)
@Transactional
public
R
<
Void
>
remove
(
@PathVariable
Long
deptId
)
{
public
R
<
Void
>
remove
(
@PathVariable
Long
deptId
)
{
if
(
deptService
.
hasChildByDeptId
(
deptId
))
{
return
R
.
warn
(
"存在下级部门,不允许删除"
);
}
if
(
deptService
.
checkDeptExistUser
(
deptId
))
{
return
R
.
warn
(
"部门存在用户,不允许删除"
);
}
deptService
.
checkDeptDataScope
(
deptId
);
deptService
.
checkDeptDataScope
(
deptId
);
return
toAjax
(
deptService
.
deleteDeptById
(
deptId
));
return
toAjax
(
deptService
.
deleteDeptById
(
deptId
));
}
}
...
...
dsk-admin/src/main/java/com/dsk/web/controller/system/SysUserController.java
View file @
8db03d08
...
@@ -10,9 +10,6 @@ import com.dsk.common.annotation.Log;
...
@@ -10,9 +10,6 @@ import com.dsk.common.annotation.Log;
import
com.dsk.common.core.controller.BaseController
;
import
com.dsk.common.core.controller.BaseController
;
import
com.dsk.common.core.domain.PageQuery
;
import
com.dsk.common.core.domain.PageQuery
;
import
com.dsk.common.core.domain.R
;
import
com.dsk.common.core.domain.R
;
import
com.dsk.system.domain.SysDept
;
import
com.dsk.system.domain.SysRole
;
import
com.dsk.system.domain.SysUser
;
import
com.dsk.common.core.page.TableDataInfo
;
import
com.dsk.common.core.page.TableDataInfo
;
import
com.dsk.common.enums.BusinessType
;
import
com.dsk.common.enums.BusinessType
;
import
com.dsk.common.excel.ExcelResult
;
import
com.dsk.common.excel.ExcelResult
;
...
@@ -20,6 +17,9 @@ import com.dsk.common.helper.LoginHelper;
...
@@ -20,6 +17,9 @@ import com.dsk.common.helper.LoginHelper;
import
com.dsk.common.utils.StreamUtils
;
import
com.dsk.common.utils.StreamUtils
;
import
com.dsk.common.utils.StringUtils
;
import
com.dsk.common.utils.StringUtils
;
import
com.dsk.common.utils.poi.ExcelUtil
;
import
com.dsk.common.utils.poi.ExcelUtil
;
import
com.dsk.system.domain.SysDept
;
import
com.dsk.system.domain.SysRole
;
import
com.dsk.system.domain.SysUser
;
import
com.dsk.system.domain.vo.SysUserExportVo
;
import
com.dsk.system.domain.vo.SysUserExportVo
;
import
com.dsk.system.domain.vo.SysUserImportVo
;
import
com.dsk.system.domain.vo.SysUserImportVo
;
import
com.dsk.system.listener.SysUserImportListener
;
import
com.dsk.system.listener.SysUserImportListener
;
...
@@ -142,7 +142,6 @@ public class SysUserController extends BaseController {
...
@@ -142,7 +142,6 @@ public class SysUserController extends BaseController {
}
else
if
(
StringUtils
.
isNotEmpty
(
user
.
getEmail
())
&&
!
userService
.
checkEmailUnique
(
user
))
{
}
else
if
(
StringUtils
.
isNotEmpty
(
user
.
getEmail
())
&&
!
userService
.
checkEmailUnique
(
user
))
{
return
R
.
fail
(
"新增用户'"
+
user
.
getUserName
()
+
"'失败,邮箱账号已存在"
);
return
R
.
fail
(
"新增用户'"
+
user
.
getUserName
()
+
"'失败,邮箱账号已存在"
);
}
}
user
.
setPassword
(
BCrypt
.
hashpw
(
user
.
getPassword
()));
return
toAjax
(
userService
.
insertUser
(
user
));
return
toAjax
(
userService
.
insertUser
(
user
));
}
}
...
...
dsk-common/src/main/java/com/dsk/common/utils/MapStructUtils.java
deleted
100644 → 0
View file @
5360d775
package
com
.
dsk
.
common
.
utils
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.map.MapUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.dsk.common.utils.spring.SpringUtils
;
import
io.github.linpeilie.Converter
;
import
lombok.AccessLevel
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author sxk
* @date 2023.08.23
* @description: Mapstruct 工具类
* <p>参考文档:<a href="https://mapstruct.plus/introduction/quick-start.html">mapstruct-plus</a></p>
*/
@NoArgsConstructor
(
access
=
AccessLevel
.
PRIVATE
)
public
class
MapStructUtils
{
private
final
static
Converter
CONVERTER
=
SpringUtils
.
getBean
(
Converter
.
class
);
/**
* 将 T 类型对象,转换为 desc 类型的对象并返回
*
* @param source 数据来源实体
* @param desc 描述对象 转换后的对象
* @return desc
*/
public
static
<
T
,
V
>
V
convert
(
T
source
,
Class
<
V
>
desc
)
{
if
(
ObjectUtil
.
isNull
(
source
))
{
return
null
;
}
if
(
ObjectUtil
.
isNull
(
desc
))
{
return
null
;
}
return
CONVERTER
.
convert
(
source
,
desc
);
}
/**
* 将 T 类型对象,按照配置的映射字段规则,给 desc 类型的对象赋值并返回 desc 对象
*
* @param source 数据来源实体
* @param desc 转换后的对象
* @return desc
*/
public
static
<
T
,
V
>
V
convert
(
T
source
,
V
desc
)
{
if
(
ObjectUtil
.
isNull
(
source
))
{
return
null
;
}
if
(
ObjectUtil
.
isNull
(
desc
))
{
return
null
;
}
return
CONVERTER
.
convert
(
source
,
desc
);
}
/**
* 将 T 类型的集合,转换为 desc 类型的集合并返回
*
* @param sourceList 数据来源实体列表
* @param desc 描述对象 转换后的对象
* @return desc
*/
public
static
<
T
,
V
>
List
<
V
>
convert
(
List
<
T
>
sourceList
,
Class
<
V
>
desc
)
{
if
(
ObjectUtil
.
isNull
(
sourceList
))
{
return
null
;
}
if
(
CollUtil
.
isEmpty
(
sourceList
))
{
return
CollUtil
.
newArrayList
();
}
return
CONVERTER
.
convert
(
sourceList
,
desc
);
}
/**
* 将 Map 转换为 beanClass 类型的集合并返回
*
* @param map 数据来源
* @param beanClass bean类
* @return bean对象
*/
public
static
<
T
>
T
convert
(
Map
<
String
,
Object
>
map
,
Class
<
T
>
beanClass
)
{
if
(
MapUtil
.
isEmpty
(
map
))
{
return
null
;
}
if
(
ObjectUtil
.
isNull
(
beanClass
))
{
return
null
;
}
return
CONVERTER
.
convert
(
map
,
beanClass
);
}
}
dsk-common/src/main/java/com/dsk/common/utils/PasswordUtils.java
0 → 100644
View file @
8db03d08
package
com
.
dsk
.
common
.
utils
;
import
lombok.AccessLevel
;
import
lombok.NoArgsConstructor
;
import
java.util.Random
;
/**
* 密码工具类
*
* @author sxk
* @date 2023.08.31
*/
@NoArgsConstructor
(
access
=
AccessLevel
.
PRIVATE
)
public
class
PasswordUtils
{
private
static
final
String
LOWER_CASE
=
"abcdefghijklmnopqrstuvwxyz"
;
private
static
final
String
UPPER_CASE
=
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
;
private
static
final
String
NUMBERS
=
"0123456789"
;
/**
* 生成随机密码
* @param length 密码长度
* @return 新生成的密码
*/
public
static
String
generatePwd
(
int
length
)
{
StringBuilder
password
=
new
StringBuilder
();
Random
random
=
new
Random
();
// 至少包含一个小写字母
password
.
append
(
LOWER_CASE
.
charAt
(
random
.
nextInt
(
LOWER_CASE
.
length
())));
// 至少包含一个大写字母
password
.
append
(
UPPER_CASE
.
charAt
(
random
.
nextInt
(
UPPER_CASE
.
length
())));
// 至少包含一个数字
password
.
append
(
NUMBERS
.
charAt
(
random
.
nextInt
(
NUMBERS
.
length
())));
// 生成剩余部分的密码
for
(
int
i
=
0
;
i
<
length
-
3
;
i
++)
{
String
characters
=
LOWER_CASE
+
UPPER_CASE
+
NUMBERS
;
password
.
append
(
characters
.
charAt
(
random
.
nextInt
(
characters
.
length
())));
}
// 打乱密码中字符的顺序
return
shufflePassword
(
password
.
toString
());
}
public
static
String
shufflePassword
(
String
password
)
{
char
[]
passwordArray
=
password
.
toCharArray
();
Random
random
=
new
Random
();
for
(
int
i
=
passwordArray
.
length
-
1
;
i
>
0
;
i
--)
{
int
index
=
random
.
nextInt
(
i
+
1
);
char
temp
=
passwordArray
[
index
];
passwordArray
[
index
]
=
passwordArray
[
i
];
passwordArray
[
i
]
=
temp
;
}
return
new
String
(
passwordArray
);
}
}
dsk-system/src/main/java/com/dsk/system/domain/vo/SysDeptVo.java
0 → 100644
View file @
8db03d08
package
com
.
dsk
.
system
.
domain
.
vo
;
import
com.alibaba.excel.annotation.ExcelIgnoreUnannotated
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableLogic
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.dsk.common.annotation.ExcelDictFormat
;
import
com.dsk.common.convert.ExcelDictConvert
;
import
com.dsk.common.tenant.core.TenantEntity
;
import
com.dsk.system.domain.SysDept
;
import
com.dsk.system.domain.SysTenantPackage
;
import
com.sun.org.apache.xpath.internal.operations.Bool
;
import
io.github.linpeilie.annotations.AutoMapper
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
javax.validation.constraints.Email
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.Size
;
import
java.io.Serializable
;
/**
* 部门表 sys_dept
*
* @author Lion Li
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper
(
target
=
SysDept
.
class
)
public
class
SysDeptVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 部门ID
*/
@ExcelProperty
(
value
=
"部门id"
)
private
Long
deptId
;
/**
* 父部门ID
*/
@ExcelProperty
(
value
=
"父部门id"
)
private
Long
parentId
;
/**
* 部门名称
*/
@ExcelProperty
(
value
=
"部门名称"
)
private
String
deptName
;
/**
* 显示顺序
*/
@ExcelProperty
(
value
=
"显示顺序"
)
private
Integer
orderNum
;
/**
* 负责人
*/
@ExcelProperty
(
value
=
"负责人"
)
private
String
leader
;
/**
* 联系电话
*/
@ExcelProperty
(
value
=
"联系电话"
)
private
String
phone
;
/**
* 邮箱
*/
@ExcelProperty
(
value
=
"邮箱"
)
private
String
email
;
/**
* 部门状态:0正常,1停用
*/
@ExcelProperty
(
value
=
"部门状态"
,
converter
=
ExcelDictConvert
.
class
)
@ExcelDictFormat
(
readConverterExp
=
"0=正常,1=停用"
)
private
String
status
;
/**
* 删除标志(0代表存在 2代表删除)
*/
@ExcelProperty
(
value
=
"删除标志"
,
converter
=
ExcelDictConvert
.
class
)
@ExcelDictFormat
(
readConverterExp
=
"0=存在,2=删除"
)
private
String
delFlag
;
/**
* 祖级列表
*/
@ExcelProperty
(
value
=
"祖级列表"
)
private
String
ancestors
;
private
String
parentName
;
/**
* 该部门是否存在用户(true代表存在 false代表不存在)
*/
@ExcelProperty
(
value
=
"该部门是否存在用户"
,
converter
=
ExcelDictConvert
.
class
)
@ExcelDictFormat
(
readConverterExp
=
"true=存在,false=删除"
)
private
Boolean
existUsers
;
}
dsk-system/src/main/java/com/dsk/system/service/impl/ISysTenantServiceImpl.java
View file @
8db03d08
...
@@ -17,6 +17,7 @@ import com.dsk.common.core.domain.entity.SysDictType;
...
@@ -17,6 +17,7 @@ import com.dsk.common.core.domain.entity.SysDictType;
import
com.dsk.common.core.page.TableDataInfo
;
import
com.dsk.common.core.page.TableDataInfo
;
import
com.dsk.common.exception.ServiceException
;
import
com.dsk.common.exception.ServiceException
;
import
com.dsk.common.utils.DingTalkUtil
;
import
com.dsk.common.utils.DingTalkUtil
;
import
com.dsk.common.utils.PasswordUtils
;
import
com.dsk.common.utils.StringUtils
;
import
com.dsk.common.utils.StringUtils
;
import
com.dsk.system.domain.*
;
import
com.dsk.system.domain.*
;
import
com.dsk.system.domain.bo.SysTenantBo
;
import
com.dsk.system.domain.bo.SysTenantBo
;
...
@@ -33,7 +34,6 @@ import javax.annotation.Resource;
...
@@ -33,7 +34,6 @@ import javax.annotation.Resource;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.Collection
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Random
;
/**
/**
* @author sxk
* @author sxk
...
@@ -186,7 +186,7 @@ public class ISysTenantServiceImpl implements ISysTenantService {
...
@@ -186,7 +186,7 @@ public class ISysTenantServiceImpl implements ISysTenantService {
user
.
setUserName
(
bo
.
getContactPhone
());
user
.
setUserName
(
bo
.
getContactPhone
());
user
.
setNickName
(
bo
.
getContactUserName
());
user
.
setNickName
(
bo
.
getContactUserName
());
//生成8位随机密码
//生成8位随机密码
String
password
=
generatePasswor
d
(
8
);
String
password
=
PasswordUtils
.
generatePw
d
(
8
);
user
.
setPassword
(
BCrypt
.
hashpw
(
password
));
user
.
setPassword
(
BCrypt
.
hashpw
(
password
));
user
.
setDeptId
(
deptId
);
user
.
setDeptId
(
deptId
);
userMapper
.
insert
(
user
);
userMapper
.
insert
(
user
);
...
@@ -238,20 +238,6 @@ public class ISysTenantServiceImpl implements ISysTenantService {
...
@@ -238,20 +238,6 @@ public class ISysTenantServiceImpl implements ISysTenantService {
return
true
;
return
true
;
}
}
// 生成随机密码
public
static
String
generatePassword
(
int
length
)
{
String
characters
=
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
;
StringBuilder
password
=
new
StringBuilder
();
Random
random
=
new
Random
();
for
(
int
i
=
0
;
i
<
length
;
i
++)
{
int
index
=
random
.
nextInt
(
characters
.
length
());
password
.
append
(
characters
.
charAt
(
index
));
}
return
password
.
toString
();
}
/**
/**
* 生成租户id
* 生成租户id
*
*
...
...
dsk-system/src/main/java/com/dsk/system/service/impl/SysDeptServiceImpl.java
View file @
8db03d08
...
@@ -31,6 +31,7 @@ import org.springframework.stereotype.Service;
...
@@ -31,6 +31,7 @@ import org.springframework.stereotype.Service;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
/**
* 部门管理 服务实现
* 部门管理 服务实现
...
@@ -301,7 +302,38 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
...
@@ -301,7 +302,38 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
@CacheEvict
(
cacheNames
=
CacheNames
.
SYS_DEPT
,
key
=
"#deptId"
)
@CacheEvict
(
cacheNames
=
CacheNames
.
SYS_DEPT
,
key
=
"#deptId"
)
@Override
@Override
public
int
deleteDeptById
(
Long
deptId
)
{
public
int
deleteDeptById
(
Long
deptId
)
{
//如果有子部门,递归删除部门和用户
if
(
hasChildByDeptId
(
deptId
))
{
List
<
SysDept
>
childDepts
=
baseMapper
.
selectDeptList
(
new
LambdaQueryWrapper
<
SysDept
>()
.
eq
(
SysDept:
:
getParentId
,
deptId
));
childDepts
.
forEach
(
childDept
->
{
//如果该子部门有用户,则删除所有用户
checkDelUsers
(
childDept
.
getDeptId
());
//递归调用
deleteDeptById
(
childDept
.
getDeptId
());
});
}
//如果该部门有用户,则删除所有用户
checkDelUsers
(
deptId
);
//删除该部门
return
baseMapper
.
deleteById
(
deptId
);
return
baseMapper
.
deleteById
(
deptId
);
}
}
/**
* 判断该部门是否有用户,有则删除所有用户
*
* @param deptId 部门ID
*/
private
int
checkDelUsers
(
Long
deptId
)
{
//如果该部门有用户
if
(
checkDeptExistUser
(
deptId
))
{
List
<
SysUser
>
childUsers
=
userMapper
.
selectList
(
new
LambdaQueryWrapper
<
SysUser
>()
.
eq
(
true
,
SysUser:
:
getDeptId
,
deptId
));
List
<
Long
>
childUsersIds
=
childUsers
.
stream
().
map
(
SysUser:
:
getUserId
).
collect
(
Collectors
.
toList
());
//删除该子部门下所有用户
return
userMapper
.
deleteBatchIds
(
childUsersIds
);
}
return
-
1
;
}
}
}
dsk-system/src/main/java/com/dsk/system/service/impl/SysUserServiceImpl.java
View file @
8db03d08
package
com
.
dsk
.
system
.
service
.
impl
;
package
com
.
dsk
.
system
.
service
.
impl
;
import
cn.dev33.satoken.secure.BCrypt
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.util.ArrayUtil
;
import
cn.hutool.core.util.ArrayUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.ObjectUtil
;
...
@@ -9,6 +10,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
...
@@ -9,6 +10,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.dsk.common.utils.DingTalkUtil
;
import
com.dsk.common.utils.PasswordUtils
;
import
com.dsk.system.mapper.*
;
import
com.dsk.system.mapper.*
;
import
com.dsk.system.service.ISysUserService
;
import
com.dsk.system.service.ISysUserService
;
import
com.dsk.common.constant.CacheNames
;
import
com.dsk.common.constant.CacheNames
;
...
@@ -270,8 +273,21 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
...
@@ -270,8 +273,21 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
int
insertUser
(
SysUser
user
)
{
public
int
insertUser
(
SysUser
user
)
{
String
password
=
PasswordUtils
.
generatePwd
(
8
);
user
.
setPassword
(
BCrypt
.
hashpw
(
password
));
// 新增用户信息
// 新增用户信息
int
rows
=
baseMapper
.
insert
(
user
);
int
rows
=
baseMapper
.
insert
(
user
);
if
(
rows
>
0
)
{
//租户新增成功,发送短信通知租户
//此处暂用钉钉机器人模拟发送短信
String
content
=
"【央企数字经营管理系统通知】:"
+
user
.
getNickName
()
+
"您好,您已经成功注册央企数字经营管理系统,请使用手机号码登录,初始密码为"
+
password
+
"。友情提示:为了您的账号安全,请立即前往【个人中心】修改密码。"
;
DingTalkUtil
.
sendDingTalkMsg
(
content
);
System
.
out
.
println
(
"👉🏻:"
+
content
);
}
// 新增用户岗位关联
// 新增用户岗位关联
insertUserPost
(
user
);
insertUserPost
(
user
);
// 新增用户与角色管理
// 新增用户与角色管理
...
...
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