Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
黄嘉阳
/
iot-platform-server
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
87b83909
authored
Aug 31, 2023
by
李小龙
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
整理代码
parent
5fc97f14
Show whitespace changes
Inline
Side-by-side
Showing
105 changed files
with
3890 additions
and
969 deletions
db/saas.sql
saas-module/src/main/java/com/makeit/controller/config/SwaggerSaasConfig.java
saas-module/src/main/java/com/makeit/controller/saas/SaasLoginController.java
saas-module/src/main/java/com/makeit/controller/saas/SaasOperationLogController.java
saas-module/src/main/java/com/makeit/controller/saas/SaasPrivacyConfigController.java
saas-module/src/main/java/com/makeit/controller/saas/SaasRoleController.java
saas-module/src/main/java/com/makeit/controller/saas/SaasUserController.java
server-common/src/main/java/com/makeit/module/admin/plat/BaseOrgDTO.java → server-common/src/main/java/com/makeit/common/dto/BaseOrgDTO.java
server-common/src/main/java/com/makeit/enums/CodeMessageEnum.java
server-common/src/main/java/com/makeit/enums/redis/RedisConst.java
server-common/src/main/java/com/makeit/global/inteceptor/PlatAuthorizationInterceptor.java
server-common/src/main/java/com/makeit/global/inteceptor/SaasAuthorizationInterceptor.java
server-common/src/main/java/com/makeit/module/admin/dto/CusChangePasswordDTO.java
server-common/src/main/java/com/makeit/module/admin/dto/FactoryStatusDTO.java
server-common/src/main/java/com/makeit/module/admin/dto/SysButtonVO.java
server-common/src/main/java/com/makeit/module/admin/dto/SysDeptDTOVO.java
server-common/src/main/java/com/makeit/module/admin/dto/SysFactoryDTOVO.java
server-common/src/main/java/com/makeit/module/admin/dto/SysMenuDTOVO.java
server-common/src/main/java/com/makeit/module/admin/dto/SysMenuQueryDTO.java
server-common/src/main/java/com/makeit/module/admin/dto/SysPersonDTOVO.java
server-common/src/main/java/com/makeit/module/admin/dto/SysPersonExcelDTOVO.java
server-common/src/main/java/com/makeit/module/admin/dto/SysPersonSimpleDTO.java
server-common/src/main/java/com/makeit/module/admin/dto/SysRoleAndMenuCodeDTO.java
server-common/src/main/java/com/makeit/module/admin/dto/SysRoleDTOVO.java
server-common/src/main/java/com/makeit/module/admin/dto/SysRoleFactoryDTO.java
server-common/src/main/java/com/makeit/module/admin/dto/SysRoleMenuDTO.java
server-common/src/main/java/com/makeit/module/admin/dto/SysUserAccountDTO.java
server-common/src/main/java/com/makeit/module/admin/dto/SysUserQueryDTO.java
server-common/src/main/java/com/makeit/module/admin/dto/SysUserRoleDTO.java
server-common/src/main/java/com/makeit/module/admin/dto/SysUserRoleImportDTO.java
server-common/src/main/java/com/makeit/module/admin/dto/ValidateCodeDTO.java
server-common/src/main/java/com/makeit/module/admin/plat/ChangePasswordDTO.java → server-common/src/main/java/com/makeit/module/admin/dto/plat/ChangePasswordDTO.java
server-common/src/main/java/com/makeit/module/admin/plat/PlatMenuDTOVO.java → server-common/src/main/java/com/makeit/module/admin/dto/plat/PlatMenuDTOVO.java
server-common/src/main/java/com/makeit/module/admin/plat/PlatMenuQueryDTO.java → server-common/src/main/java/com/makeit/module/admin/dto/plat/PlatMenuQueryDTO.java
server-common/src/main/java/com/makeit/module/admin/vo/plat/PlatRoleDTOVO.java → server-common/src/main/java/com/makeit/module/admin/dto/plat/PlatRoleDTOVO.java
server-common/src/main/java/com/makeit/module/admin/plat/PlatTenantDTOVO.java → server-common/src/main/java/com/makeit/module/admin/dto/plat/PlatTenantDTOVO.java
server-common/src/main/java/com/makeit/module/admin/plat/PlatTenantMenuDTO.java → server-common/src/main/java/com/makeit/module/admin/dto/plat/PlatTenantMenuDTO.java
server-common/src/main/java/com/makeit/module/admin/plat/PlatTenantStatusDTO.java → server-common/src/main/java/com/makeit/module/admin/dto/plat/PlatTenantStatusDTO.java
server-common/src/main/java/com/makeit/module/admin/plat/PlatUserDTOVO.java → server-common/src/main/java/com/makeit/module/admin/dto/plat/PlatUserDTOVO.java
server-common/src/main/java/com/makeit/module/admin/plat/PlatUserQueryDTO.java → server-common/src/main/java/com/makeit/module/admin/dto/plat/PlatUserQueryDTO.java
server-common/src/main/java/com/makeit/module/admin/saas/SaasMenuDTOVO.java → server-common/src/main/java/com/makeit/module/admin/dto/saas/SaasMenuDTOVO.java
server-common/src/main/java/com/makeit/module/admin/saas/SaasMenuQueryDTO.java → server-common/src/main/java/com/makeit/module/admin/dto/saas/SaasMenuQueryDTO.java
server-common/src/main/java/com/makeit/module/admin/saas/SaasRoleDTOVO.java → server-common/src/main/java/com/makeit/module/admin/dto/saas/SaasRoleDTOVO.java
server-common/src/main/java/com/makeit/module/admin/saas/SaasRoleMenuDTO.java → server-common/src/main/java/com/makeit/module/admin/dto/saas/SaasRoleMenuDTO.java
server-common/src/main/java/com/makeit/module/admin/saas/SaasUserDTOVO.java → server-common/src/main/java/com/makeit/module/admin/dto/saas/SaasUserDTOVO.java
server-common/src/main/java/com/makeit/module/admin/saas/SaasUserQueryDTO.java → server-common/src/main/java/com/makeit/module/admin/dto/saas/SaasUserQueryDTO.java
server-common/src/main/java/com/makeit/module/admin/saas/SaasUserRoleDTO.java → server-common/src/main/java/com/makeit/module/admin/dto/saas/SaasUserRoleDTO.java
server-common/src/main/java/com/makeit/module/admin/plat/PlatButtonVO.java → server-common/src/main/java/com/makeit/module/admin/vo/plat/PlatButtonVO.java
server-common/src/main/java/com/makeit/module/admin/vo/plat/PlatTenantVO.java
server-common/src/main/java/com/makeit/module/admin/vo/plat/PlatUserLoginVO.java
server-common/src/main/java/com/makeit/module/admin/plat/PlatUserRoleMenuRedisVO.java → server-common/src/main/java/com/makeit/module/admin/vo/plat/PlatUserRoleMenuRedisVO.java
server-common/src/main/java/com/makeit/utils/user/saas/SaasUserLoginVO.java → server-common/src/main/java/com/makeit/module/admin/vo/saas/SaasUserLoginVO.java
server-common/src/main/java/com/makeit/module/admin/saas/SaasUserRoleMenuRedisVO.java → server-common/src/main/java/com/makeit/module/admin/vo/saas/SaasUserRoleMenuRedisVO.java
server-common/src/main/java/com/makeit/module/system/service/SysConfigService.java
server-common/src/main/java/com/makeit/module/system/service/impl/SysConfigServiceImpl.java
server-common/src/main/java/com/makeit/utils/sql/groupby/DynamicQuery.java
server-common/src/main/java/com/makeit/utils/sql/groupby/SqlUtil.java
server-common/src/main/java/com/makeit/utils/user/ThreadLocalUserUtil.java
server-common/src/main/java/com/makeit/utils/user/TokenUtil.java
server-common/src/main/java/com/makeit/utils/user/common/CommonUserUtil.java
server-common/src/main/java/com/makeit/utils/user/plat/PlatUserUtil.java
server-common/src/main/java/com/makeit/utils/user/plat/TntUserJoinUtil.java
server-common/src/main/java/com/makeit/utils/user/saas/SaasUserUtil.java
server-common/src/main/java/com/makeit/utils/user/wechat/WechatUserInfo.java
server-service/src/main/java/com/makeit/dto/saas/SaasOperationLogDTO.java
server-service/src/main/java/com/makeit/dto/saas/SaasPrivacyConfigDTO.java
server-service/src/main/java/com/makeit/entity/platform/auth/PlatOrg.java
server-service/src/main/java/com/makeit/entity/platform/auth/PlatUser.java
server-service/src/main/java/com/makeit/entity/saas/PlatTenant.java
server-service/src/main/java/com/makeit/entity/saas/PlatTenantMenu.java
server-service/src/main/java/com/makeit/entity/saas/SaasOperationLog.java
server-service/src/main/java/com/makeit/enums/IsTenantAccountEnum.java
server-service/src/main/java/com/makeit/mapper/platform/auth/PlatOrgMapper.java
server-service/src/main/java/com/makeit/mapper/platform/auth/PlatUserMapper.java
server-service/src/main/java/com/makeit/mapper/saas/PlatTenantMenuMapper.java
server-service/src/main/java/com/makeit/mapper/saas/SaasOperationLogMapper.java
server-service/src/main/java/com/makeit/server/platform/auth/DeptUtil.java
server-service/src/main/java/com/makeit/server/platform/auth/PlatOrgService.java
server-service/src/main/java/com/makeit/server/platform/auth/PlatUserService.java
server-service/src/main/java/com/makeit/server/platform/auth/impl/PlatOrgServiceImpl.java
server-service/src/main/java/com/makeit/server/platform/auth/impl/PlatUserServiceImpl.java
server-service/src/main/java/com/makeit/service/saas/PlatMenuService.java
server-service/src/main/java/com/makeit/service/saas/PlatTenantMenuService.java
server-service/src/main/java/com/makeit/service/saas/PlatTenantService.java
server-service/src/main/java/com/makeit/service/saas/SaasMenuService.java
server-service/src/main/java/com/makeit/service/saas/SaasOperationLogService.java
server-service/src/main/java/com/makeit/service/saas/SaasPrivacyConfigService.java
server-service/src/main/java/com/makeit/service/saas/SaasRoleService.java
server-service/src/main/java/com/makeit/service/saas/SaasUserService.java
server-service/src/main/java/com/makeit/service/saas/impl/PlatMenuServiceImpl.java
server-service/src/main/java/com/makeit/service/saas/impl/PlatTenantMenuServiceImpl.java
server-service/src/main/java/com/makeit/service/saas/impl/PlatTenantServiceImpl.java
server-service/src/main/java/com/makeit/service/saas/impl/SaasMenuServiceImpl.java
server-service/src/main/java/com/makeit/service/saas/impl/SaasOperationLogServiceImpl.java
server-service/src/main/java/com/makeit/service/saas/impl/SaasPrivacyConfigServiceImpl.java
server-service/src/main/java/com/makeit/service/saas/impl/SaasRoleServiceImpl.java
server-service/src/main/java/com/makeit/service/saas/impl/SaasUserServiceImpl.java
server-common/src/main/java/com/makeit/module/admin/dto/SysDeptQueryDTO.java → server-service/src/main/java/com/makeit/vo/platform/auth/PlatOrgQueryDTO.java
server-common/src/main/java/com/makeit/module/admin/dto/SysUserDTOVO.java → server-service/src/main/java/com/makeit/vo/platform/auth/PlatPersonDTOVO.java
server-service/src/main/java/com/makeit/vo/platform/auth/PlatUserCountVO.java
server-service/src/main/java/com/makeit/vo/saas/SaasOperationLogQueryVO.java
server-service/src/main/resources/mappers/PlatOrgMapper.xml
server-service/src/main/resources/mappers/PlatTenantMenuMapper.xml
server-service/src/main/resources/mappers/PlatUserMapper.xml
server-service/src/main/resources/mappers/SaasOperationLogMapper.xml
db/saas.sql
View file @
87b83909
...
...
@@ -84,7 +84,7 @@ CREATE TABLE `saas_menu` (
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb4
ROW_FORMAT
=
COMPACT
COMMENT
=
'saas端菜单'
;
CREATE
TABLE
`plat_
auth_
menu`
(
CREATE
TABLE
`plat_menu`
(
`id`
varchar
(
64
)
NOT
NULL
COLLATE
utf8mb4_general_ci
COMMENT
'主键id'
,
`parent_id`
varchar
(
64
)
NOT
NULL
COMMENT
'父级id'
,
`name`
varchar
(
100
)
NOT
NULL
COMMENT
'资源名称'
,
...
...
@@ -149,6 +149,19 @@ CREATE TABLE `plat_tenant` (
PRIMARY
KEY
(
`id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb4
STATS_AUTO_RECALC
=
0
ROW_FORMAT
=
COMPACT
COMMENT
=
'租户管理'
;
CREATE
TABLE
`plat_tenant_menu`
(
`id`
varchar
(
64
)
COLLATE
utf8mb4_general_ci
NOT
NULL
COMMENT
'id'
,
`tenant_id`
varchar
(
64
)
COLLATE
utf8mb4_general_ci
NOT
NULL
COMMENT
'租户id'
,
`menu_id`
varchar
(
64
)
COLLATE
utf8mb4_general_ci
NOT
NULL
COMMENT
'菜单id'
,
`create_date`
datetime
NOT
NULL
COMMENT
'创建时间'
,
`update_date`
datetime
NOT
NULL
COMMENT
'更新时间'
,
`del_flag`
CHAR
(
1
)
DEFAULT
NULL
COMMENT
'删除标识'
,
PRIMARY
KEY
(
`id`
),
KEY
`tnt_tenant_menu_menu_id_index`
(
`menu_id`
),
KEY
`tnt_tenant_menu_tenant_id_index`
(
`tenant_id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb4
COLLATE
=
utf8mb4_general_ci
ROW_FORMAT
=
COMPACT
COMMENT
=
'租户端租户菜单关联表'
;
saas-module/src/main/java/com/makeit/controller/config/SwaggerSaasConfig.java
View file @
87b83909
...
...
@@ -27,11 +27,19 @@ public class SwaggerSaasConfig {
@Bean
public
SwaggerModuleConfig
saasModule
()
{
SwaggerModuleConfig
config
=
new
SwaggerModuleConfig
();
config
.
setPackageList
(
Arrays
.
asList
(
"com.makeit.controller"
));
config
.
setPackageList
(
Arrays
.
asList
(
"com.makeit.controller
.saas
"
));
config
.
setModuleName
(
"saas管理"
);
return
config
;
}
@Bean
public
SwaggerModuleConfig
sysModule
()
{
SwaggerModuleConfig
config
=
new
SwaggerModuleConfig
();
config
.
setPackageList
(
Arrays
.
asList
(
"com.makeit.controller.sys"
));
config
.
setModuleName
(
"系统通用"
);
return
config
;
}
@Bean
public
Docket
saasApi
()
{
...
...
@@ -47,6 +55,20 @@ public class SwaggerSaasConfig {
return
builder
.
build
();
}
@Bean
public
Docket
sysApi
()
{
Docket
docket
=
new
Docket
(
DocumentationType
.
SWAGGER_2
)
.
apiInfo
(
apiInfo
())
.
groupName
(
"00-系统通用"
);
ApiSelectorBuilder
builder
=
docket
.
select
();
//api过滤
builder
=
builder
.
apis
(
RequestHandlerSelectors
.
basePackage
(
"com.makeit.controller.sys"
)
);
return
builder
.
build
();
}
private
ApiInfo
apiInfo
()
{
return
new
ApiInfoBuilder
().
title
(
"IOT文档"
)
.
description
(
"服务端接口文档"
)
...
...
@@ -54,4 +76,3 @@ public class SwaggerSaasConfig {
.
build
();
}
}
\ No newline at end of file
//TODO ywc 放到各自的模块里
\ No newline at end of file
saas-module/src/main/java/com/makeit/controller/saas/SaasLoginController.java
View file @
87b83909
...
...
@@ -4,7 +4,7 @@ import com.makeit.common.dto.LoginDTO;
import
com.makeit.common.response.ApiResponseEntity
;
import
com.makeit.common.response.ApiResponseUtils
;
import
com.makeit.service.saas.SaasUserService
;
import
com.makeit.
utils.user
.saas.SaasUserLoginVO
;
import
com.makeit.
module.admin.vo
.saas.SaasUserLoginVO
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
saas-module/src/main/java/com/makeit/controller/saas/SaasOperationLogController.java
0 → 100644
View file @
87b83909
package
com
.
makeit
.
controller
.
saas
;
import
com.makeit.common.page.PageReqDTO
;
import
com.makeit.common.page.PageVO
;
import
com.makeit.common.response.ApiResponseEntity
;
import
com.makeit.common.response.ApiResponseUtils
;
import
com.makeit.dto.saas.SaasOperationLogDTO
;
import
com.makeit.global.annotation.Action
;
import
com.makeit.service.saas.SaasOperationLogService
;
import
com.makeit.vo.saas.SaasOperationLogQueryVO
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
@Api
(
tags
=
"saas端-系统管理-系统日志"
)
@RestController
@RequestMapping
(
"/saas/sys/operationLog"
)
public
class
SaasOperationLogController
{
@Autowired
private
SaasOperationLogService
saasOperationLogService
;
@Action
(
module
=
"saas端-系统管理-系统日志"
,
name
=
"列表"
,
code
=
"plat:sys:operationLog:list"
)
@ApiOperation
(
value
=
"列表"
,
notes
=
""
)
@PostMapping
(
"/list"
)
public
ApiResponseEntity
<
PageVO
<
SaasOperationLogDTO
>>
list
(
@RequestBody
PageReqDTO
<
SaasOperationLogQueryVO
>
pageReq
){
return
ApiResponseUtils
.
success
(
saasOperationLogService
.
index
(
pageReq
));
}
}
saas-module/src/main/java/com/makeit/controller/saas/SaasPrivacyConfigController.java
0 → 100644
View file @
87b83909
package
com
.
makeit
.
controller
.
saas
;
import
com.makeit.common.response.ApiResponseEntity
;
import
com.makeit.common.response.ApiResponseUtils
;
import
com.makeit.dto.saas.SaasPrivacyConfigDTO
;
import
com.makeit.global.annotation.Action
;
import
com.makeit.service.saas.SaasPrivacyConfigService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
*
* @author lzy
* @date 2022年5月28日
* @description
*/
@Api
(
tags
=
"saas端-隐私政策-关于我们"
)
@RestController
@RequestMapping
(
"/saas/sys/privacyConfig"
)
public
class
SaasPrivacyConfigController
{
@Autowired
private
SaasPrivacyConfigService
saasPrivacyConfigService
;
@Action
(
module
=
"saas端-隐私政策-关于我们"
,
name
=
"新增"
,
code
=
"saas.sys.privacyConfig.add"
)
//@PlatOperationLogger
@ApiOperation
(
value
=
"新增隐私政策-关于我们"
,
notes
=
""
)
@PostMapping
(
"/add"
)
public
ApiResponseEntity
<?>
add
(
@Validated
@RequestBody
SaasPrivacyConfigDTO
saasPrivacyConfigDTO
){
saasPrivacyConfigService
.
add
(
saasPrivacyConfigDTO
);
return
ApiResponseUtils
.
success
();
}
@Action
(
module
=
"saas端-隐私政策-关于我们"
,
name
=
"详情"
,
code
=
"saas.sys.privacyConfig.view"
)
@ApiOperation
(
value
=
"获取隐私政策-关于我们"
,
notes
=
""
)
@PostMapping
(
"/view"
)
public
ApiResponseEntity
<
SaasPrivacyConfigDTO
>
view
(
@RequestBody
SaasPrivacyConfigDTO
saasPrivacyConfigDTO
){
return
ApiResponseUtils
.
success
(
saasPrivacyConfigService
.
view
(
saasPrivacyConfigDTO
.
getCategory
()));
}
@Action
(
module
=
"saas端-关于我们"
,
name
=
"新增"
,
code
=
"saas.sys.about.add"
)
//@PlatOperationLogger
@ApiOperation
(
value
=
"新增关于我们"
,
notes
=
""
)
@PostMapping
(
"/addAbout"
)
public
ApiResponseEntity
<?>
addAbout
(
@Validated
@RequestBody
SaasPrivacyConfigDTO
saasPrivacyConfigDTO
){
saasPrivacyConfigService
.
add
(
saasPrivacyConfigDTO
);
return
ApiResponseUtils
.
success
();
}
@Action
(
module
=
"saas端-关于我们"
,
name
=
"详情"
,
code
=
"saas.sys.about.view"
)
@ApiOperation
(
value
=
"获取关于我们"
,
notes
=
""
)
@PostMapping
(
"/viewAbout"
)
public
ApiResponseEntity
<
SaasPrivacyConfigDTO
>
viewAbout
(
@RequestBody
SaasPrivacyConfigDTO
saasPrivacyConfigDTO
){
return
ApiResponseUtils
.
success
(
saasPrivacyConfigService
.
view
(
saasPrivacyConfigDTO
.
getCategory
()));
}
}
saas-module/src/main/java/com/makeit/controller/saas/SaasRoleController.java
View file @
87b83909
...
...
@@ -6,9 +6,9 @@ import com.makeit.common.dto.StatusDTO;
import
com.makeit.common.response.ApiResponseEntity
;
import
com.makeit.common.response.ApiResponseUtils
;
import
com.makeit.global.annotation.Action
;
import
com.makeit.module.admin.saas.SaasRoleDTOVO
;
import
com.makeit.module.admin.saas.SaasRoleMenuDTO
;
import
com.makeit.module.admin.saas.SaasUserRoleDTO
;
import
com.makeit.module.admin.
dto.
saas.SaasRoleDTOVO
;
import
com.makeit.module.admin.
dto.
saas.SaasRoleMenuDTO
;
import
com.makeit.module.admin.
dto.
saas.SaasUserRoleDTO
;
import
com.makeit.service.saas.SaasRoleService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
...
...
saas-module/src/main/java/com/makeit/controller/saas/SaasUserController.java
View file @
87b83909
...
...
@@ -8,10 +8,10 @@ import com.makeit.common.page.PageVO;
import
com.makeit.common.response.ApiResponseEntity
;
import
com.makeit.common.response.ApiResponseUtils
;
import
com.makeit.global.annotation.Action
;
import
com.makeit.module.admin.saas.SaasUserDTOVO
;
import
com.makeit.module.admin.saas.SaasUserQueryDTO
;
import
com.makeit.module.admin.
dto.
saas.SaasUserDTOVO
;
import
com.makeit.module.admin.
dto.
saas.SaasUserQueryDTO
;
import
com.makeit.service.saas.SaasUserService
;
import
com.makeit.
utils.user
.saas.SaasUserLoginVO
;
import
com.makeit.
module.admin.vo
.saas.SaasUserLoginVO
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -39,7 +39,7 @@ public class SaasUserController {
@Autowired
private
SaasUserService
saasUserService
;
@Action
(
module
=
"
SAAS
端-用户"
,
name
=
"分页列表"
,
code
=
"saas:user:page"
)
@Action
(
module
=
"
saas
端-用户"
,
name
=
"分页列表"
,
code
=
"saas:user:page"
)
@ApiOperation
(
"分页列表"
)
@PostMapping
(
"page"
)
public
ApiResponseEntity
<
PageVO
<
SaasUserDTOVO
>>
page
(
@RequestBody
PageReqDTO
<
SaasUserQueryDTO
>
page
){
...
...
@@ -53,7 +53,7 @@ public class SaasUserController {
return
ApiResponseUtils
.
success
(
saasUserService
.
page
(
page
));
}
//@Action(module = "
SAAS
端-用户", name = "分页列表-排除超级管理员", code = "plat:user:pageNotSuperAdmin")
//@Action(module = "
saas
端-用户", name = "分页列表-排除超级管理员", code = "plat:user:pageNotSuperAdmin")
@ApiOperation
(
"分页列表-排除超级管理员"
)
@PostMapping
(
"pageNotSuperAdmin"
)
public
ApiResponseEntity
<
PageVO
<
SaasUserDTOVO
>>
pageNotSuperAdmin
(
@RequestBody
PageReqDTO
<
SaasUserQueryDTO
>
page
){
...
...
@@ -72,7 +72,7 @@ public class SaasUserController {
return
ApiResponseUtils
.
success
(
saasUserService
.
listNoSuperAdmin
(
dto
));
}
@Action
(
module
=
"
SAAS
端-用户"
,
name
=
"新增"
,
code
=
"saas:user:add"
)
@Action
(
module
=
"
saas
端-用户"
,
name
=
"新增"
,
code
=
"saas:user:add"
)
@ApiOperation
(
"新增"
)
@PostMapping
(
"add"
)
public
ApiResponseEntity
<?>
add
(
@Validated
@RequestBody
SaasUserDTOVO
dto
){
...
...
@@ -80,7 +80,7 @@ public class SaasUserController {
return
ApiResponseUtils
.
success
();
}
@Action
(
module
=
"
SAAS
端-用户"
,
name
=
"编辑"
,
code
=
"saas:user:edit"
)
@Action
(
module
=
"
saas
端-用户"
,
name
=
"编辑"
,
code
=
"saas:user:edit"
)
@ApiOperation
(
"编辑"
)
@PostMapping
(
"edit"
)
public
ApiResponseEntity
<?>
edit
(
@Validated
@RequestBody
SaasUserDTOVO
dto
){
...
...
@@ -88,7 +88,7 @@ public class SaasUserController {
return
ApiResponseUtils
.
success
();
}
@Action
(
module
=
"
SAAS
端-用户"
,
name
=
"改变密码"
,
code
=
"saas:user:changePassword"
)
@Action
(
module
=
"
saas
端-用户"
,
name
=
"改变密码"
,
code
=
"saas:user:changePassword"
)
@ApiOperation
(
"改变密码"
)
@PostMapping
(
"changePassword"
)
public
ApiResponseEntity
<?>
changePassword
(
@RequestBody
SaasUserDTOVO
dto
){
...
...
@@ -96,14 +96,14 @@ public class SaasUserController {
return
ApiResponseUtils
.
success
();
}
@Action
(
module
=
"
SAAS
端-用户"
,
name
=
"详情"
,
code
=
"saas:user:view"
)
@Action
(
module
=
"
saas
端-用户"
,
name
=
"详情"
,
code
=
"saas:user:view"
)
@ApiOperation
(
"详情"
)
@PostMapping
(
"view"
)
public
ApiResponseEntity
<
SaasUserDTOVO
>
view
(
@RequestBody
BaseIdDTO
dto
){;
return
ApiResponseUtils
.
success
(
saasUserService
.
view
(
dto
.
getId
()));
}
@Action
(
module
=
"
SAAS
端-用户"
,
name
=
"删除"
,
code
=
"saas:user:del"
)
@Action
(
module
=
"
saas
端-用户"
,
name
=
"删除"
,
code
=
"saas:user:del"
)
@ApiOperation
(
"删除"
)
@PostMapping
(
"del"
)
public
ApiResponseEntity
<?>
del
(
@RequestBody
BaseIdDTO
dto
){
...
...
@@ -111,7 +111,7 @@ public class SaasUserController {
return
ApiResponseUtils
.
success
();
}
@Action
(
module
=
"
SAAS
端-用户"
,
name
=
"改变状态"
,
code
=
"saas:user:changeStatus"
)
@Action
(
module
=
"
saas
端-用户"
,
name
=
"改变状态"
,
code
=
"saas:user:changeStatus"
)
@ApiOperation
(
"改变状态"
)
@PostMapping
(
"changeStatus"
)
public
ApiResponseEntity
<?>
changeStatus
(
@RequestBody
StatusDTO
dto
){
...
...
server-common/src/main/java/com/makeit/
module/admin/plat
/BaseOrgDTO.java
→
server-common/src/main/java/com/makeit/
common/dto
/BaseOrgDTO.java
View file @
87b83909
package
com
.
makeit
.
module
.
admin
.
plat
;
package
com
.
makeit
.
common
.
dto
;
import
com.makeit.common.dto.BaseTenantDTO
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
...
...
@@ -13,7 +12,7 @@ import java.io.Serializable;
@ApiModel
(
"部门BASE"
)
public
class
BaseOrgDTO
extends
BaseTenantDTO
implements
Serializable
{
@ApiModelProperty
(
value
=
"部门树 id"
,
required
=
true
)
@ApiModelProperty
(
value
=
"部门树 id"
,
required
=
true
)
private
String
deptId
;
@ApiModelProperty
(
value
=
"部门树冗余 id"
)
...
...
server-common/src/main/java/com/makeit/enums/CodeMessageEnum.java
View file @
87b83909
...
...
@@ -91,6 +91,128 @@ public enum CodeMessageEnum {
PLATFORM_ERROR_ELDER_CERTIFICATENUMBER_DUPLICATE
(
500
,
"PLATFORM.ERROR.ELDER.CERTIFICATENUMBER.DUPLICATE"
),
SYSTEM_ERROR_CANT_CHANGE_TENANT_STATUS
(
500
,
"当前时间要在开始时间和结束时间之间才能设置为启用"
),
SYSTEM_ERROR_CANT_REMOVE_TENANT_USER_LINK
(
500
,
"已经关联了租户的管理员账号不允许删除"
),
SYSTEM_ERROR_TENANT_ID_NOT_BLANK
(
510
,
"租户id不能为空"
),
SYSTEM_ERROR_TENANT_NOT_EXIST
(
510
,
"该租户不存在或者被禁用"
),
SYSTEM_ERROR_AUTH_DEPT_LEVEL
(
500
,
"部门标签只能是集团、品牌、酒店(品牌和酒店可以同层级)、部门这样的顺序"
),
SYSTEM_ERROR_ROLE_ADMIN_CANT_ADD
(
500
,
"不能在该节点下新增非管理员角色"
),
SYSTEM_ERROR_ROLE_ADMIN_CANT_EDIT
(
500
,
"管理员角色不能修改"
),
SYSTEM_ERROR_SAVE_CANT_DO
(
700
,
"有事件处于拟稿不能进行此操作"
),
SYSTEM_ERROR_WAIT_FIRST_CANT_DO
(
700
,
"有事件处于待初审不能进行此操作"
),
SYSTEM_ERROR_WAIT_SECOND_CANT_DO
(
700
,
"有事件处于待终审不能进行此操作"
),
SYSTEM_ERROR_EFFECT_CANT_DO
(
700
,
"有事件已生效不能进行此操作"
),
SYSTEM_ERROR_NO_EFFECT_CANT_DO
(
700
,
"有事件未生效不能进行此操作"
),
SYSTEM_ERROR_RECORD_NOT_EFFECT_CANT_DO
(
500
,
"本人该事件未生效不能举报"
),
//SYSTEM_ERROR_RECORD_REPORT_CANT_DO(500, "本人已举报过该事件不能重复举报"),
SYSTEM_ERROR_RECORD_REPORT_CANT_DO
(
500
,
"该事件已被本人或其他人举报不能重复举报"
),
SYSTEM_ERROR_RECORD_REPORT_RESULT_CANT_DO
(
500
,
"已受理或已驳回的举报的不能撤回"
),
// SYSTEM_ERROR_RECORD_NO_EFFECT_CANT_INVALID(500, "含不是已生效的事件不能作废"),
// SYSTEM_ERROR_RECORD_INVALID_CANT_INVALID(500, "含已作废的事件不能作废"),
// SYSTEM_ERROR_RECORD_SETTLEMENT_CANT_INVALID(500, "含已结算的事件不能作废"),
SYSTEM_ERROR_RECORD_NO_EFFECT_CANT_DO
(
700
,
"已生效的事件才能进行此操作"
),
SYSTEM_ERROR_RECORD_INVALID_CANT_DO
(
700
,
"包含已作废的事件不能进行此操作"
),
SYSTEM_ERROR_RECORD_SETTLEMENT_CANT_DO
(
700
,
"包含已结算的事件不能进行此操作"
),
SYSTEM_ERROR_RECORD_SETTLEMENT_CANT_SUBMIT
(
700
,
"奖扣事件月度积分已结算,不能再提交事件申请"
),
SYSTEM_ERROR_RECORD_AWARD_DATE_EXCEED
(
600
,
"奖扣时间已超过%s"
),
SYSTEM_ERROR_RECORD_VALID_TIME_DAY_EXCEED
(
600
,
"%s天内已提交超过%s次"
),
SYSTEM_ERROR_RECORD_MULTIPLE_EXCEED
(
600
,
"最多只能录入%s次"
),
SYSTEM_ERROR_EVENT_NOT_EXIST
(
600
,
"该事件不存在或者被禁用"
),
SYSTEM_ERROR_AUDIT_ROLE_NOT_EXIST
(
600
,
"审核角色不存在或者被禁用"
),
//SYSTEM_ERROR_FIRST_AUDIT_ROLE_NOT_EXIST(500,"初审角色不存在或者被禁用"),
//SYSTEM_ERROR_SECOND_AUDIT_ROLE_NOT_EXIST(500,"终审角色不存在或者被禁用"),
SYS_ERROR_SINGLE_AWARD_INTEGRAL_LIMIT
(
700
,
"超出单次奖扣额度,请修改后再提交"
),
SYS_ERROR_MONTH_AWARD_INTEGRAL_LIMIT
(
700
,
"超出当月累计奖扣额度,请修改后再提交"
),
SYSTEM_ERROR_SETTLEMENT_CANT_DO
(
700
,
"月度内还有事件正在审核中,请审核后再次结算"
),
// 标签模块 10000 - 20000
SYSTEM_ERROR_LABEL_NAME_EXIT
(
10000
,
"标签编号已存在"
),
SYSTEM_ERROR_LABEL_UPLOAD_EXIT
(
10001
,
"请上传excel"
),
SYSTEM_ERROR_LABEL_NOT_DATA
(
10002
,
"请至少上传一条数据"
),
SYSTEM_ERROR_LABEL_NOT_APPLY
(
10003
,
"该用户已申请了该标签"
),
//参数设置 20000 30000
SYSTEM_ERROR_CUSTOM_GROUP_NAME_EXIT
(
20000
,
"名称已存在"
),
SYSTEM_ERROR_CUSTOM_GROUP_USER_NOT_EXIT
(
20001
,
"请至少选择一个人员"
),
SYSTEM_ERROR_PROCESS_CONFIG_EXIT
(
20030
,
"该事件已设置"
),
SYSTEM_ERROR_AWARD_INTEGRAL_CONFIG_EXIT
(
20060
,
"名称已存在"
),
SYSTEM_ERROR_PERIOD_MONTH_FORMAT
(
500
,
"该月份不存在"
),
SYSTEM_ERROR_PERIOD_MONTH_NOT_EXIST
(
800
,
"未配置年度起始月份"
),
TNT_INCIDENT_CATEGORY_ERROR_LEVEL
(
6001
,
"事件分类层级最多为3层"
),
TNT_INCIDENT_CATEGORY_ERROR_BLANK_ID
(
6003
,
"事件分类id不能为空"
),
TNT_INCIDENT_CATEGORY_ERROR_CHILDREN_NO_BLANK
(
6003
,
"事件分类子类数据需要为空"
),
TNT_INCIDENT_UPDATE_NO_ID
(
6004
,
"修改数据主键id不能为空"
),
TNT_INCIDENT_HOTEL_ID_NO_BLANK
(
6005
,
"hotelId不能为空"
),
TNT_INCIDENT_DEPT_ID_NO_BLANK
(
6006
,
"部门id不能为空"
),
TNT_INCIDENT_STANDARD_REPETITION
(
6007
,
"标准事件重复"
),
TNT_INCIDENT_STANDARD_AUDIT_PERSON_ERROR
(
6008
,
"审核人员错误,请使用正确审核人员"
),
TNT_INCIDENT_STANDARD_AUDIT_STATUS_ERROR
(
6009
,
"事件状态有误,无法审核"
),
TNT_INCIDENT_SYS_REPETITION_ERROR
(
6010
,
"系统事件重复,无法添加"
),
TNT_INCIDENT_TENANT_ID_NO_BLANK
(
60011
,
"租户id不能为空"
),
TNT_INCIDENT_CATEGORY_HAVE_EVENT
(
60012
,
"事件分类下存在事件"
),
TNT_DEPT_MAP_NOT_NULL
(
60013
,
"请求map不能为空"
),
TNT_DEPT_ID_FALSE
(
60014
,
"部门id有误,不存在这个部门id"
),
TNT_EVENT_EXPIRATION_DATE_TIMEOUT
(
60015
,
"事件失效日期已过期"
),
TNT_EVENT_MAINTAIN_FLOW_EXIST
(
60016
,
"事件维护流程正在申请中"
),
TNT_STANDARD_EVENT_HAVE_EVENT
(
60017
,
"事件已存在申请记录"
),
TNT_ATTENDANCE_REPETITION
(
60018
,
"已签到,无法再次签到"
),
TNT_INCIDENT_STANDARD_DEL_ERROR
(
60019
,
"事件存在申请记录,不允许删除"
),
TNT_INCIDENT_STANDARD_DEL_HAVE_AUDIT_ERROR
(
60019
,
"事件存在修改记录无法删除"
),
TNT_INCIDENT_STANDARD_UPDATE_ERROR
(
60020
,
"事件维护流程正在申请中,不能编辑"
),
TNT_INCIDENT_STANDARD_MANAGE_DEPT_ID_ERROR
(
60021
,
"选择为公共标准事件时,时间管理部门id不能为空"
),
TNT_INCIDENT_DURATION_TIME_ERROR
(
60022
,
"失效日期不能小于今日日期"
),
TNT_INCIDENT_INTEGRAL_CONFIGURATION_NULL_ERROR
(
60023
,
"签到积分配置表不能为空"
),
TNT_INCIDENT_INTEGRAL_NOT_CONFIG_ERROR
(
60024
,
"部门不存在消息模板"
),
TNT_START_MONTH_NULL_ERROR
(
60025
,
"季度开始月份未配置"
),
TNT_REWARD_LEVEL_COUNT_ERROR
(
60029
,
"配置总数人数已存在,不能存在两个相同总人数的配置"
),
TNT_PROCESS_FIRST_CONFIG_NULL_ERROR
(
60026
,
"初审流程设置未配置"
),
TNT_PROCESS_FINAL_CONFIG_NULL_ERROR
(
60026
,
"终审流程设置未配置"
),
TNT_INCIDENT_CATEGORY_REPETITION_ERROR
(
60027
,
"事件名称重复"
),
TNT_INCIDENT_CATEGORY_NULL_ERROR
(
60028
,
"事件分类为空"
),
TNT_SYS_EVENT_CATEGORY_NULL_ERROR
(
60029
,
"系统事件分类不存在"
),
TNT_REWARD_LEVEL_CONFIG_CATEGORY_EXIT
(
60030
,
"该等级已存在"
),
TNT_INCIDENT_INTEGRAL_CONFIGURATION_TIME_NULL_ERROR
(
60031
,
"签到积分配置表事件不存在"
),
TNT_REWARD_LEVEL_COUNT_LIST_NULL_ERROR
(
60032
,
"奖励级别人数列表不能为空"
),
TNT_REWARD_LEVEL_COUNT_TOTAL_AMOUNT_LEST_ERROR
(
60033
,
"奖励级别人数总数不能小于档级人数总和"
),
TNT_EVENT_CATEGORY_IMPORT_ERROR
(
60033
,
"事件导入错误,文件格式有误"
),
TNT_PERIOD_NULL_ERROR
(
60034
,
"结算周期为空,请在月度结算模块设置结算周期"
),
TNT_REWARD_LEVEL_NULL_ERROR
(
60035
,
"奖励级别配置为空"
),
TNT_REWARD_LEVEL_STATEMENT_CATEGORY_NULL_ERROR
(
60035
,
"维度配置不能为空"
),
TNT_GRADES_LEVEL_DEPT_CUSTOMER_NULL_ERROR
(
60035
,
"部门id列表,自定义小组列表不能都为空"
),
TNT_GRADES_LEVEL_TYPE_NULL_ERROR
(
60036
,
"查询档级奖金时,type不能为空"
),
TNT_GRADES_LEVEL_DEPT_ID_NULL_ERROR
(
60037
,
"查询档级奖金时,部门id不能为空"
),
TNT_GRADES_LEVEL_DEPT_CUSTOMER_ID_NULL_ERROR
(
60038
,
"查询档级奖金时,部门id、分组id不存在"
),
TNT_MESSAGE_VIEW_DEPT_ID_ID_ERROR
(
60039
,
"部门id和历史数据id不能为空"
),
;
;
/**
* 消息码
...
...
server-common/src/main/java/com/makeit/enums/redis/RedisConst.java
View file @
87b83909
...
...
@@ -90,6 +90,8 @@ public class RedisConst {
public
static
final
String
TOPIC_TNT_CONFIG_REFRESH
=
"topic:tnt:config:refresh"
;
public
static
final
String
TOPIC_I18N_DIC_REFRESH
=
"topic:i18n:dict:refresh"
;
public
static
final
String
TENANT_PREFIX
=
"tenant:"
;
...
...
server-common/src/main/java/com/makeit/global/inteceptor/PlatAuthorizationInterceptor.java
View file @
87b83909
...
...
@@ -5,7 +5,7 @@ import com.makeit.enums.CodeMessageEnum;
import
com.makeit.enums.order.InterceptorOrderConst
;
import
com.makeit.exception.BusinessException
;
import
com.makeit.global.annotation.Action
;
import
com.makeit.module.admin.plat.PlatUserRoleMenuRedisVO
;
import
com.makeit.module.admin.
vo.
plat.PlatUserRoleMenuRedisVO
;
import
com.makeit.utils.user.plat.PlatUserUtil
;
import
org.springframework.core.annotation.Order
;
import
org.springframework.stereotype.Component
;
...
...
server-common/src/main/java/com/makeit/global/inteceptor/SaasAuthorizationInterceptor.java
View file @
87b83909
...
...
@@ -5,7 +5,7 @@ import com.makeit.enums.id.IdConst;
import
com.makeit.enums.order.InterceptorOrderConst
;
import
com.makeit.exception.BusinessException
;
import
com.makeit.global.annotation.Action
;
import
com.makeit.module.admin.saas.SaasUserRoleMenuRedisVO
;
import
com.makeit.module.admin.
vo.
saas.SaasUserRoleMenuRedisVO
;
import
com.makeit.utils.user.saas.SaasUserUtil
;
import
org.springframework.core.annotation.Order
;
import
org.springframework.stereotype.Component
;
...
...
server-common/src/main/java/com/makeit/module/admin/dto/CusChangePasswordDTO.java
deleted
100644 → 0
View file @
5fc97f14
package
com
.
makeit
.
module
.
admin
.
dto
;
import
com.makeit.global.validator.Password
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@ApiModel
(
"客户修改密码 dto"
)
@Data
public
class
CusChangePasswordDTO
extends
ValidateCodeDTO
{
@Password
(
message
=
"SYSTEM.ERROR.USER.PASSWORD.FORMAT.ERROR"
)
@ApiModelProperty
(
"新密码"
)
private
String
password
;
@ApiModelProperty
(
"客户名称"
)
private
String
name
;
}
server-common/src/main/java/com/makeit/module/admin/dto/FactoryStatusDTO.java
deleted
100644 → 0
View file @
5fc97f14
package
com
.
makeit
.
module
.
admin
.
dto
;
import
com.makeit.common.dto.BaseIdDTO
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@ApiModel
(
"改变状态"
)
@Data
public
class
FactoryStatusDTO
extends
BaseIdDTO
{
// @ApiModelProperty(value = "开始时间")
// private LocalDateTime startTime;
//
// @ApiModelProperty(value = "结束时间")
// private LocalDateTime endTime;
// @ApiModelProperty(value = "开始时间")
// private LocalDate startTime;
//
// @ApiModelProperty(value = "结束时间")
// private LocalDate endTime;
@ApiModelProperty
(
"状态 0禁用 1启用"
)
private
String
status
;
}
server-common/src/main/java/com/makeit/module/admin/dto/SysButtonVO.java
deleted
100644 → 0
View file @
5fc97f14
package
com
.
makeit
.
module
.
admin
.
dto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.Pattern
;
@ApiModel
(
"资源(菜单)详情"
)
@Data
public
class
SysButtonVO
{
// @NotBlank(message = "名称不能为空")
// @ApiModelProperty(value = "名称")
// private String name;
@ApiModelProperty
(
value
=
"模块+类名+方法"
)
private
String
code
;
@NotBlank
(
message
=
"类型不能为空"
)
@Pattern
(
regexp
=
"1|2|3"
,
message
=
"类型可选值 1目录 2菜单 3按钮"
)
@ApiModelProperty
(
value
=
"类型 1目录 2菜单 3按钮"
)
private
String
category
;
}
server-common/src/main/java/com/makeit/module/admin/dto/SysDeptDTOVO.java
deleted
100644 → 0
View file @
5fc97f14
package
com
.
makeit
.
module
.
admin
.
dto
;
import
com.makeit.common.dto.BaseIdDTO
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
SysDeptDTOVO
extends
BaseIdDTO
{
@ApiModelProperty
(
value
=
"父级id"
)
private
String
parentId
;
@ApiModelProperty
(
value
=
"名称"
)
private
String
name
;
@ApiModelProperty
(
value
=
"排序"
)
private
Integer
sort
;
@ApiModelProperty
(
value
=
"状态 0禁用 1启用"
)
private
String
status
;
@ApiModelProperty
(
value
=
"标签 1集团 2子公司 3部门"
)
private
String
tag
;
@ApiModelProperty
(
value
=
"级别"
)
private
Integer
level
;
@ApiModelProperty
(
value
=
"备注"
)
private
String
remark
;
@ApiModelProperty
(
value
=
"负责人id"
)
private
String
leadUserId
;
@ApiModelProperty
(
value
=
"负责人名称"
)
private
String
leadUserName
;
@ApiModelProperty
(
value
=
"子集"
)
private
List
<
SysDeptDTOVO
>
children
;
@ApiModelProperty
(
value
=
"父亲"
)
private
SysDeptDTOVO
parent
;
@ApiModelProperty
(
value
=
"国家/地区英文名"
)
private
String
countryEng
;
@ApiModelProperty
(
value
=
"国家/地区"
)
private
String
country
;
@ApiModelProperty
(
value
=
"地址"
)
private
String
address
;
@ApiModelProperty
(
value
=
"法人"
)
private
String
legalPerson
;
@ApiModelProperty
(
value
=
"委托人"
)
private
String
principal
;
@ApiModelProperty
(
value
=
"传真"
)
private
String
fax
;
@ApiModelProperty
(
value
=
"电话"
)
private
String
phone
;
@ApiModelProperty
(
value
=
"纳税人识别号"
)
private
String
taxpayerId
;
@ApiModelProperty
(
value
=
"开户行"
)
private
String
accountBank
;
@ApiModelProperty
(
value
=
"开户行账户"
)
private
String
accountBankAccount
;
@ApiModelProperty
(
value
=
"开户行账户名称"
)
private
String
accountName
;
}
server-common/src/main/java/com/makeit/module/admin/dto/SysFactoryDTOVO.java
deleted
100644 → 0
View file @
5fc97f14
package
com
.
makeit
.
module
.
admin
.
dto
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.makeit.common.dto.BaseIdDTO
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.Size
;
import
java.time.LocalDateTime
;
@ApiModel
(
"厂别dto vo"
)
@Data
public
class
SysFactoryDTOVO
extends
BaseIdDTO
{
@Size
(
max
=
50
,
message
=
"名称最长为50字符"
)
@NotBlank
(
message
=
"名称不能为空"
)
@ApiModelProperty
(
value
=
"名称"
)
private
String
name
;
@NotBlank
(
message
=
"部门id集合不能为空"
)
@ApiModelProperty
(
value
=
"部门id集合"
)
private
String
deptIdList
;
@ApiModelProperty
(
value
=
"部门原始id集合"
,
notes
=
"展示"
)
private
String
deptOriIdList
;
@ApiModelProperty
(
value
=
"部门名称集合"
,
notes
=
"展示"
)
private
String
deptNameList
;
@ApiModelProperty
(
value
=
"创建时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
LocalDateTime
createdAt
;
@ApiModelProperty
(
value
=
"更新时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
LocalDateTime
updatedAt
;
}
server-common/src/main/java/com/makeit/module/admin/dto/SysMenuDTOVO.java
deleted
100644 → 0
View file @
5fc97f14
package
com
.
makeit
.
module
.
admin
.
dto
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.makeit.common.dto.BaseIdDTO
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.Pattern
;
import
java.time.LocalDateTime
;
import
java.util.List
;
@ApiModel
(
"资源(菜单) 新增 编辑 详情"
)
@Data
public
class
SysMenuDTOVO
extends
BaseIdDTO
{
@NotBlank
(
message
=
"上级菜单不能为空"
)
@ApiModelProperty
(
value
=
"父级id"
)
private
String
parentId
;
@NotBlank
(
message
=
"名称不能为空"
)
@ApiModelProperty
(
value
=
"名称"
)
private
String
name
;
@ApiModelProperty
(
value
=
"名称-英文"
)
private
String
nameEng
;
@ApiModelProperty
(
value
=
"模块+类名+方法"
)
private
String
code
;
@ApiModelProperty
(
value
=
"图标"
)
private
String
icon
;
@ApiModelProperty
(
value
=
"排序"
)
private
Integer
sort
;
@NotBlank
(
message
=
"状态不能为空"
)
@Pattern
(
regexp
=
"0|1"
,
message
=
"状态可选值 0禁用 1启用"
)
@ApiModelProperty
(
value
=
"状态 0禁用 1启用"
)
private
String
status
;
@NotBlank
(
message
=
"类型不能为空"
)
@Pattern
(
regexp
=
"1|2|3"
,
message
=
"类型可选值 1目录 2菜单 3按钮"
)
@ApiModelProperty
(
value
=
"类型 1目录 2菜单 3按钮"
)
private
String
category
;
@ApiModelProperty
(
value
=
"前端路径"
)
private
String
requestPath
;
@ApiModelProperty
(
value
=
"组件路径"
)
private
String
componentPath
;
@ApiModelProperty
(
value
=
"组件名称"
)
private
String
componentName
;
@ApiModelProperty
(
value
=
"备注"
)
private
String
remark
;
/**
* 创建时间
*/
@ApiModelProperty
(
value
=
"创建时间"
,
required
=
false
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
LocalDateTime
createdAt
;
@TableField
(
exist
=
false
)
@ApiModelProperty
(
value
=
"子集"
)
private
List
<
SysMenuDTOVO
>
children
;
@ApiModelProperty
(
value
=
"隐藏状态 0不隐藏 1隐藏"
)
private
String
hiddenStatus
;
@ApiModelProperty
(
value
=
"缓存状态 0不缓存 1缓存"
)
private
String
cacheStatus
;
}
server-common/src/main/java/com/makeit/module/admin/dto/SysMenuQueryDTO.java
deleted
100644 → 0
View file @
5fc97f14
package
com
.
makeit
.
module
.
admin
.
dto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@ApiModel
(
"资源(菜单) 查询"
)
@Data
public
class
SysMenuQueryDTO
{
@ApiModelProperty
(
value
=
"名称"
)
private
String
name
;
@ApiModelProperty
(
value
=
"状态 0禁用 1启用"
)
private
String
status
;
@ApiModelProperty
(
value
=
"厂别id 和角色id二选一"
)
private
String
factoryId
;
@ApiModelProperty
(
value
=
"角色id 和厂别id二选一"
)
private
String
roleId
;
}
server-common/src/main/java/com/makeit/module/admin/dto/SysPersonDTOVO.java
deleted
100644 → 0
View file @
5fc97f14
package
com
.
makeit
.
module
.
admin
.
dto
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
com.makeit.common.dto.BaseIdDTO
;
import
com.makeit.global.validator.CanBlankPattern
;
import
com.makeit.global.validator.Password
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.*
;
import
java.time.LocalDateTime
;
import
java.util.List
;
@ApiModel
(
"厂别账号 新增 编辑 详情"
)
@Data
public
class
SysPersonDTOVO
extends
BaseIdDTO
{
public
static
final
String
ACCOUNT_PATTERN
=
"[a-zA-Z0-9]{0,64}"
;
public
static
final
String
OFFICE_PHONE_PATTERN
=
/*"[0-9]{7,11}"*/
"^(((\\d{3,4}-)?[0-9]{7,8})|(1[0-9]{10}))$"
;
public
static
final
String
MAIL_PATTERN
=
"^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$"
;
//@NotBlank(message = "账户不能为空")
@Size
(
max
=
50
,
message
=
"账户最长为50字符"
)
@CanBlankPattern
(
regexp
=
ACCOUNT_PATTERN
,
message
=
"账户只能为大小写英文字符和数字,且最多64字符"
)
@ApiModelProperty
(
value
=
"账户"
)
private
String
account
;
@Size
(
max
=
32
,
message
=
"密码最长为32字符"
)
@Password
(
message
=
"SYSTEM.ERROR.USER.PASSWORD.FORMAT.ERROR"
)
@ApiModelProperty
(
value
=
"密码"
)
@JsonProperty
(
access
=
JsonProperty
.
Access
.
WRITE_ONLY
)
private
String
password
;
@NotBlank
(
message
=
"姓名不能为空"
)
@Size
(
max
=
50
,
message
=
"用户名最长为50字符"
)
@ApiModelProperty
(
value
=
"姓名"
)
private
String
name
;
@ApiModelProperty
(
value
=
"性別 数据字典 1男 2女"
)
private
String
sex
;
@NotBlank
(
message
=
"手机号不能为空"
)
//@Mobile(message = "手机号格式不对")
@ApiModelProperty
(
value
=
"手机号"
)
private
String
mobile
;
//@NotBlank(message = "邮箱不能为空")
@Email
(
message
=
"邮箱格式不对"
)
@ApiModelProperty
(
value
=
"邮箱"
)
private
String
mail
;
@NotBlank
(
message
=
"状态不能为空"
)
@Pattern
(
regexp
=
"1|0"
,
message
=
"状态可选值为 1启用 0禁用"
)
@ApiModelProperty
(
value
=
"状态 1启用 0禁用"
)
private
String
status
;
@ApiModelProperty
(
value
=
"在职状态 1在职 0离职"
)
private
String
empStatus
;
//@NotBlank(message = "部门不能为空")
@ApiModelProperty
(
value
=
"部门id"
)
private
String
deptId
;
@ApiModelProperty
(
value
=
"部门id路径"
)
private
String
deptIdPath
;
@ApiModelProperty
(
value
=
"主管"
)
private
String
superior
;
@ApiModelProperty
(
value
=
"AD账号"
)
private
String
empNo
;
@ApiModelProperty
(
value
=
"是否系统账号 0否 1是"
)
private
String
systemStatus
;
@ApiModelProperty
(
value
=
"是否公共账号 0否 1是"
)
private
String
publicStatus
;
@ApiModelProperty
(
value
=
"是否主账号 0否 1是"
)
private
String
masterStatus
;
@ApiModelProperty
(
value
=
"是否自建账号 0否 1是"
)
private
String
selfStatus
;
@Size
(
max
=
200
,
message
=
"备注最长200字符"
)
@ApiModelProperty
(
value
=
"备注"
)
private
String
remark
;
/**
* 创建时间
*/
@ApiModelProperty
(
value
=
"创建时间"
,
required
=
false
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
LocalDateTime
createdAt
;
/**
* 更新时间
*/
@ApiModelProperty
(
value
=
"更新时间"
,
required
=
false
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
LocalDateTime
updatedAt
;
@ApiModelProperty
(
value
=
"同步时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
LocalDateTime
syncTime
;
@ApiModelProperty
(
value
=
"创建人名称"
)
private
String
createdByName
;
@ApiModelProperty
(
value
=
"更新人名称"
)
private
String
updatedByName
;
@ApiModelProperty
(
value
=
"公司名称"
)
private
String
companyName
;
@ApiModelProperty
(
value
=
"部门名称"
)
private
String
deptName
;
@ApiModelProperty
(
value
=
"部门id路径(全路径)"
)
private
String
deptIdPathName
;
//@Valid
// @NotEmpty(message = "角色不能为空")
@ApiModelProperty
(
value
=
"角色集合"
)
private
List
<
SysRoleDTOVO
>
roleList
;
//@Valid
@NotEmpty
(
message
=
"角色不能为空"
)
@ApiModelProperty
(
value
=
"角色Id集合"
)
private
List
<
String
>
roleIdList
;
}
server-common/src/main/java/com/makeit/module/admin/dto/SysPersonExcelDTOVO.java
deleted
100644 → 0
View file @
5fc97f14
package
com
.
makeit
.
module
.
admin
.
dto
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.alibaba.excel.annotation.format.DateTimeFormat
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.makeit.enums.CommonEnum
;
import
com.makeit.enums.biz.auth.SysUserEnum
;
import
com.makeit.utils.data.excel.easyexcel.DictEnumConverter
;
import
com.makeit.utils.data.excel.easyexcel.DictEnumFormat
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.time.LocalDateTime
;
@ApiModel
(
"人员excel"
)
@Data
public
class
SysPersonExcelDTOVO
{
@ExcelProperty
(
"登录名"
)
@ApiModelProperty
(
value
=
"账户"
)
private
String
account
;
@ExcelProperty
(
"姓名"
)
@ApiModelProperty
(
value
=
"姓名"
)
private
String
name
;
@DictEnumFormat
(
em
=
SysUserEnum
.
SexEnum
.
class
)
@ExcelProperty
(
value
=
"性别"
,
converter
=
DictEnumConverter
.
class
)
@ApiModelProperty
(
value
=
"性別 数据字典 1男 2女"
)
private
String
sex
;
@ExcelProperty
(
"手机"
)
@ApiModelProperty
(
value
=
"手机号"
)
private
String
mobile
;
@ExcelProperty
(
"邮箱"
)
@ApiModelProperty
(
value
=
"邮箱"
)
private
String
mail
;
@DictEnumFormat
(
pattern
=
{
"1_启用"
,
"0_禁用"
})
@ExcelProperty
(
value
=
"账号状态"
,
converter
=
DictEnumConverter
.
class
)
@ApiModelProperty
(
value
=
"状态 1启用 0禁用"
)
private
String
status
;
@DictEnumFormat
(
pattern
=
{
"1_在职"
,
"0_离职"
})
@ExcelProperty
(
value
=
"在职状态"
,
converter
=
DictEnumConverter
.
class
)
@ApiModelProperty
(
value
=
"在职状态 1在职 0离职"
)
private
String
empStatus
;
@ExcelProperty
(
"所属部门"
)
@ApiModelProperty
(
value
=
"所属部门"
)
private
String
deptName
;
@ExcelProperty
(
"上级"
)
@ApiModelProperty
(
value
=
"上级"
)
private
String
superior
;
@ExcelProperty
(
"AD账号"
)
@ApiModelProperty
(
value
=
"AD账号"
)
private
String
empNo
;
@DictEnumFormat
(
em
=
CommonEnum
.
class
)
@ExcelProperty
(
value
=
"是否系统账号"
,
converter
=
DictEnumConverter
.
class
)
@ApiModelProperty
(
value
=
"是否系统账号 0否 1是"
)
private
String
systemStatus
;
@DictEnumFormat
(
em
=
CommonEnum
.
class
)
@ExcelProperty
(
value
=
"是否公共账号"
,
converter
=
DictEnumConverter
.
class
)
@ApiModelProperty
(
value
=
"是否公共账号 0否 1是"
)
private
String
publicStatus
;
@DictEnumFormat
(
em
=
CommonEnum
.
class
)
@ExcelProperty
(
value
=
"是否主账号"
,
converter
=
DictEnumConverter
.
class
)
@ApiModelProperty
(
value
=
"是否主账号 0否 1是"
)
private
String
masterStatus
;
@DateTimeFormat
(
"yyyy-MM-dd HH:mm:ss"
)
@ExcelProperty
(
value
=
"同步时间"
)
@ApiModelProperty
(
value
=
"同步时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
LocalDateTime
syncTime
;
}
server-common/src/main/java/com/makeit/module/admin/dto/SysPersonSimpleDTO.java
deleted
100644 → 0
View file @
5fc97f14
package
com
.
makeit
.
module
.
admin
.
dto
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
com.makeit.global.validator.Mobile
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.Email
;
import
javax.validation.constraints.Size
;
@ApiModel
(
"厂别账号 新增 编辑 详情"
)
@Data
public
class
SysPersonSimpleDTO
{
@Size
(
max
=
32
,
message
=
"密码最长为32字符"
)
@ApiModelProperty
(
value
=
"密码"
)
@JsonProperty
(
access
=
JsonProperty
.
Access
.
WRITE_ONLY
)
private
String
password
;
//@NotBlank(message = "手机号不能为空")
@Mobile
(
message
=
"手机号格式不对"
)
@ApiModelProperty
(
value
=
"手机号"
)
private
String
mobile
;
@Email
(
message
=
"邮箱格式不对"
)
@ApiModelProperty
(
value
=
"邮箱"
)
private
String
mail
;
}
server-common/src/main/java/com/makeit/module/admin/dto/SysRoleAndMenuCodeDTO.java
deleted
100644 → 0
View file @
5fc97f14
package
com
.
makeit
.
module
.
admin
.
dto
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
SysRoleAndMenuCodeDTO
{
private
List
<
String
>
menuCodeList
;
private
List
<
String
>
roleCodeList
;
}
server-common/src/main/java/com/makeit/module/admin/dto/SysRoleDTOVO.java
deleted
100644 → 0
View file @
5fc97f14
package
com
.
makeit
.
module
.
admin
.
dto
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.makeit.common.dto.BaseTenantDTO
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.Pattern
;
import
javax.validation.constraints.Size
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
java.util.List
;
@ApiModel
(
"角色 列表 新增 编辑 详情"
)
@Data
public
class
SysRoleDTOVO
extends
BaseTenantDTO
implements
Serializable
{
@NotBlank
(
message
=
"名称不能为空"
)
@Size
(
max
=
64
,
message
=
"名称最长为64字符"
)
@ApiModelProperty
(
value
=
"名称"
)
private
String
name
;
//@NotBlank(message = "编码不能为空")
@Size
(
max
=
64
,
message
=
"编码最长为64字符"
)
@Pattern
(
regexp
=
"[a-zA-Z0-9]{0,64}"
,
message
=
"编码只能为大小写英文字符和数字"
)
@ApiModelProperty
(
value
=
"编码"
)
private
String
code
;
@NotBlank
(
message
=
"状态不能为空"
)
@Pattern
(
regexp
=
"0|1"
,
message
=
"状态可选值为 0禁用 1启用"
)
@ApiModelProperty
(
value
=
"状态 0禁用 1启用"
)
private
String
status
;
//@NotBlank(message = "描述不能为空")
@Size
(
max
=
512
,
message
=
"描述最长512字符"
)
@ApiModelProperty
(
value
=
"备注/描述"
)
private
String
remark
;
/**
* 创建时间
*/
@ApiModelProperty
(
value
=
"创建时间"
,
required
=
false
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
LocalDateTime
createdAt
;
/**
* 更新时间
*/
@ApiModelProperty
(
value
=
"更新时间"
,
required
=
false
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
LocalDateTime
updatedAt
;
@ApiModelProperty
(
value
=
"更新人名称"
)
private
String
updatedByName
;
@ApiModelProperty
(
value
=
"关键词 查询用"
)
private
String
keyword
;
// @TableField(exist = false)
// @ApiModelProperty(value = "角色名称集合")
// private List<String> nameList;
@ApiModelProperty
(
value
=
"code集合"
)
private
List
<
String
>
codeList
;
@ApiModelProperty
(
value
=
"菜单集合id集合"
)
private
List
<
String
>
menuIdList
;
@ApiModelProperty
(
value
=
"菜单code集合"
)
private
List
<
String
>
menuCodeList
;
}
server-common/src/main/java/com/makeit/module/admin/dto/SysRoleFactoryDTO.java
deleted
100644 → 0
View file @
5fc97f14
package
com
.
makeit
.
module
.
admin
.
dto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.List
;
@ApiModel
(
"角色分配工厂"
)
@Data
public
class
SysRoleFactoryDTO
implements
Serializable
{
@ApiModelProperty
(
value
=
"角色id"
)
private
String
roleId
;
@ApiModelProperty
(
value
=
"工厂集合id"
)
private
List
<
String
>
factoryIdList
;
}
server-common/src/main/java/com/makeit/module/admin/dto/SysRoleMenuDTO.java
deleted
100644 → 0
View file @
5fc97f14
package
com
.
makeit
.
module
.
admin
.
dto
;
import
com.makeit.common.dto.BaseTenantDTO
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.List
;
@ApiModel
(
"角色分配菜单"
)
@Data
public
class
SysRoleMenuDTO
extends
BaseTenantDTO
implements
Serializable
{
// @ApiModelProperty(value = "菜单id")
// private String menuId;
@ApiModelProperty
(
value
=
"角色id"
)
private
String
roleId
;
@ApiModelProperty
(
value
=
"菜单集合id"
)
private
List
<
String
>
menuIdList
;
}
server-common/src/main/java/com/makeit/module/admin/dto/SysUserAccountDTO.java
deleted
100644 → 0
View file @
5fc97f14
package
com
.
makeit
.
module
.
admin
.
dto
;
import
lombok.Data
;
@Data
public
class
SysUserAccountDTO
{
private
String
account
;
}
server-common/src/main/java/com/makeit/module/admin/dto/SysUserQueryDTO.java
deleted
100644 → 0
View file @
5fc97f14
package
com
.
makeit
.
module
.
admin
.
dto
;
import
com.makeit.common.dto.BaseIdDTO
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.List
;
@ApiModel
(
"厂别账号 查询"
)
@Data
public
class
SysUserQueryDTO
extends
BaseIdDTO
{
@ApiModelProperty
(
"部门id"
)
private
String
deptId
;
@ApiModelProperty
(
value
=
"账户"
)
private
String
account
;
@ApiModelProperty
(
value
=
"姓名"
)
private
String
name
;
@ApiModelProperty
(
value
=
"手机号"
)
private
String
mobile
;
@ApiModelProperty
(
value
=
"邮箱"
)
private
String
mail
;
@ApiModelProperty
(
value
=
"状态 0禁用 1启用"
)
private
String
status
;
@ApiModelProperty
(
value
=
"角色id roleId和notRoleId只能用一个"
)
private
String
roleId
;
@ApiModelProperty
(
value
=
"要排除的角色id roleId和notRoleId只能用一个"
)
private
String
notRoleId
;
@ApiModelProperty
(
value
=
"关键词 用来搜姓名或者账户"
)
private
String
keyword
;
@ApiModelProperty
(
value
=
"用户账户集合"
)
private
List
<
String
>
accountList
;
@ApiModelProperty
(
value
=
"用户姓名集合"
)
private
List
<
String
>
nameList
;
@ApiModelProperty
(
value
=
"用户id集合"
)
private
List
<
String
>
userIdList
;
@ApiModelProperty
(
value
=
"角色id集合"
)
private
List
<
String
>
roleIdList
;
@ApiModelProperty
(
value
=
"部门id集合"
)
private
List
<
String
>
deptIdList
;
@ApiModelProperty
(
value
=
"用户组id"
)
private
String
userGroupId
;
}
server-common/src/main/java/com/makeit/module/admin/dto/SysUserRoleDTO.java
deleted
100644 → 0
View file @
5fc97f14
package
com
.
makeit
.
module
.
admin
.
dto
;
import
com.makeit.common.dto.BaseTenantDTO
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
@ApiModel
(
"角色分配用户"
)
@Data
public
class
SysUserRoleDTO
extends
BaseTenantDTO
implements
Serializable
{
@ApiModelProperty
(
value
=
"用户id"
)
private
String
userId
;
@ApiModelProperty
(
value
=
"角色id"
)
private
String
roleId
;
}
server-common/src/main/java/com/makeit/module/admin/dto/SysUserRoleImportDTO.java
deleted
100644 → 0
View file @
5fc97f14
package
com
.
makeit
.
module
.
admin
.
dto
;
import
lombok.Data
;
@Data
public
class
SysUserRoleImportDTO
{
//@Excel(name = "用户账户")
private
String
userAccount
;
//@Excel(name = "角色名称")
private
String
roleName
;
}
server-common/src/main/java/com/makeit/module/admin/dto/ValidateCodeDTO.java
deleted
100644 → 0
View file @
5fc97f14
package
com
.
makeit
.
module
.
admin
.
dto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.Email
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
@ApiModel
(
"修改手机号 dto"
)
@Data
public
class
ValidateCodeDTO
{
//@Mobile(message = "手机号格式不对")
//@NotBlank(message = "手机号不能为空")
@ApiModelProperty
(
"手机号"
)
private
String
phone
;
@Email
(
message
=
"validation.error.system.customer.mail.mail"
)
@ApiModelProperty
(
"邮箱"
)
private
String
mail
;
@ApiModelProperty
(
"是否发送邮箱(目前用来控制 登录用户的邮箱) 0否 1是"
)
private
String
mailStatus
;
@NotBlank
(
message
=
"SYSTEM.ERROR.TMP.TOKEN.BLANK"
)
@ApiModelProperty
(
"token"
)
private
String
token
;
@NotNull
(
message
=
"SYSTEM.ERROR.TMP.CODE.BLANK"
)
@ApiModelProperty
(
"验证码"
)
private
Integer
code
;
}
server-common/src/main/java/com/makeit/module/admin/plat/ChangePasswordDTO.java
→
server-common/src/main/java/com/makeit/module/admin/
dto/
plat/ChangePasswordDTO.java
View file @
87b83909
package
com
.
makeit
.
module
.
admin
.
plat
;
package
com
.
makeit
.
module
.
admin
.
dto
.
plat
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
server-common/src/main/java/com/makeit/module/admin/plat/PlatMenuDTOVO.java
→
server-common/src/main/java/com/makeit/module/admin/
dto/
plat/PlatMenuDTOVO.java
View file @
87b83909
package
com
.
makeit
.
module
.
admin
.
plat
;
package
com
.
makeit
.
module
.
admin
.
dto
.
plat
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
...
...
@@ -24,8 +24,8 @@ public class PlatMenuDTOVO extends BaseIdDTO {
@ApiModelProperty
(
value
=
"名称"
)
private
String
name
;
@ApiModelProperty
(
value
=
"模块+类名+方法"
)
private
String
code
;
//
@ApiModelProperty(value = "模块+类名+方法")
//
private String code;
@ApiModelProperty
(
value
=
"图标"
)
private
String
icon
;
...
...
server-common/src/main/java/com/makeit/module/admin/plat/PlatMenuQueryDTO.java
→
server-common/src/main/java/com/makeit/module/admin/
dto/
plat/PlatMenuQueryDTO.java
View file @
87b83909
package
com
.
makeit
.
module
.
admin
.
plat
;
package
com
.
makeit
.
module
.
admin
.
dto
.
plat
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
server-common/src/main/java/com/makeit/module/admin/
v
o/plat/PlatRoleDTOVO.java
→
server-common/src/main/java/com/makeit/module/admin/
dt
o/plat/PlatRoleDTOVO.java
View file @
87b83909
package
com
.
makeit
.
module
.
admin
.
v
o
.
plat
;
package
com
.
makeit
.
module
.
admin
.
dt
o
.
plat
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.makeit.
module.admin.plat
.BaseOrgDTO
;
import
com.makeit.
common.dto
.BaseOrgDTO
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
...
...
server-common/src/main/java/com/makeit/module/admin/plat/PlatTenantDTOVO.java
→
server-common/src/main/java/com/makeit/module/admin/
dto/
plat/PlatTenantDTOVO.java
View file @
87b83909
package
com
.
makeit
.
module
.
admin
.
plat
;
package
com
.
makeit
.
module
.
admin
.
dto
.
plat
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.makeit.common.dto.BaseIdDTO
;
import
com.makeit.utils.user.plat.PlatUserVO
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
...
...
@@ -31,23 +32,23 @@ public class PlatTenantDTOVO extends BaseIdDTO {
// @ApiModelProperty(value = "结束时间")
// private LocalDateTime endTime;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
@NotNull
(
message
=
"开始时间不能为空"
)
@ApiModelProperty
(
value
=
"开始时间"
)
private
LocalDate
startTime
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
@NotNull
(
message
=
"结束时间不能为空"
)
@ApiModelProperty
(
value
=
"结束时间"
)
private
LocalDate
endTime
;
@NotBlank
(
message
=
"租户管理员不能为空"
)
@ApiModelProperty
(
value
=
"租户管理员id"
)
private
String
tn
tUserId
;
private
String
pla
tUserId
;
//todo dto
//
@ApiModelProperty(value = "租户账号 详情用")
// private PlatUser
tntUser;
@ApiModelProperty
(
value
=
"租户账号 详情用"
)
private
PlatUserVO
tntUser
;
// @ApiModelProperty(value = "菜单id列表 以逗号分隔")
// private String menuList;
...
...
server-common/src/main/java/com/makeit/module/admin/plat/PlatTenantMenuDTO.java
→
server-common/src/main/java/com/makeit/module/admin/
dto/
plat/PlatTenantMenuDTO.java
View file @
87b83909
package
com
.
makeit
.
module
.
admin
.
plat
;
package
com
.
makeit
.
module
.
admin
.
dto
.
plat
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
server-common/src/main/java/com/makeit/module/admin/plat/PlatTenantStatusDTO.java
→
server-common/src/main/java/com/makeit/module/admin/
dto/
plat/PlatTenantStatusDTO.java
View file @
87b83909
package
com
.
makeit
.
module
.
admin
.
plat
;
package
com
.
makeit
.
module
.
admin
.
dto
.
plat
;
import
com.makeit.common.dto.BaseIdDTO
;
import
io.swagger.annotations.ApiModel
;
...
...
server-common/src/main/java/com/makeit/module/admin/plat/PlatUserDTOVO.java
→
server-common/src/main/java/com/makeit/module/admin/
dto/
plat/PlatUserDTOVO.java
View file @
87b83909
package
com
.
makeit
.
module
.
admin
.
plat
;
package
com
.
makeit
.
module
.
admin
.
dto
.
plat
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
com.makeit.common.dto.BaseIdDTO
;
import
com.makeit.module.admin.vo.plat.PlatRoleDTOVO
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
...
...
server-common/src/main/java/com/makeit/module/admin/plat/PlatUserQueryDTO.java
→
server-common/src/main/java/com/makeit/module/admin/
dto/
plat/PlatUserQueryDTO.java
View file @
87b83909
package
com
.
makeit
.
module
.
admin
.
plat
;
package
com
.
makeit
.
module
.
admin
.
dto
.
plat
;
import
com.makeit.common.dto.BaseOrgDTO
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
...
...
server-common/src/main/java/com/makeit/module/admin/saas/SaasMenuDTOVO.java
→
server-common/src/main/java/com/makeit/module/admin/
dto/
saas/SaasMenuDTOVO.java
View file @
87b83909
package
com
.
makeit
.
module
.
admin
.
saas
;
package
com
.
makeit
.
module
.
admin
.
dto
.
saas
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
...
...
server-common/src/main/java/com/makeit/module/admin/saas/SaasMenuQueryDTO.java
→
server-common/src/main/java/com/makeit/module/admin/
dto/
saas/SaasMenuQueryDTO.java
View file @
87b83909
package
com
.
makeit
.
module
.
admin
.
saas
;
package
com
.
makeit
.
module
.
admin
.
dto
.
saas
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
server-common/src/main/java/com/makeit/module/admin/saas/SaasRoleDTOVO.java
→
server-common/src/main/java/com/makeit/module/admin/
dto/
saas/SaasRoleDTOVO.java
View file @
87b83909
package
com
.
makeit
.
module
.
admin
.
saas
;
package
com
.
makeit
.
module
.
admin
.
dto
.
saas
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.makeit.common.dto.BaseIdDTO
;
...
...
server-common/src/main/java/com/makeit/module/admin/saas/SaasRoleMenuDTO.java
→
server-common/src/main/java/com/makeit/module/admin/
dto/
saas/SaasRoleMenuDTO.java
View file @
87b83909
package
com
.
makeit
.
module
.
admin
.
saas
;
package
com
.
makeit
.
module
.
admin
.
dto
.
saas
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
server-common/src/main/java/com/makeit/module/admin/saas/SaasUserDTOVO.java
→
server-common/src/main/java/com/makeit/module/admin/
dto/
saas/SaasUserDTOVO.java
View file @
87b83909
package
com
.
makeit
.
module
.
admin
.
saas
;
package
com
.
makeit
.
module
.
admin
.
dto
.
saas
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
...
...
@@ -41,7 +41,7 @@ public class SaasUserDTOVO extends BaseIdDTO implements Serializable {
private
String
name
;
@NotBlank
(
message
=
"手机号不能为空"
)
@Pattern
(
regexp
=
"1[0-9]{10}"
,
message
=
"手机号格式不对"
)
@Pattern
(
regexp
=
"1[0-9]{10}"
,
message
=
"手机号格式不对"
)
//@Size(max = 11, message = "手机号最长为64字符")
@ApiModelProperty
(
value
=
"手机号"
)
private
String
mobile
;
...
...
server-common/src/main/java/com/makeit/module/admin/saas/SaasUserQueryDTO.java
→
server-common/src/main/java/com/makeit/module/admin/
dto/
saas/SaasUserQueryDTO.java
View file @
87b83909
package
com
.
makeit
.
module
.
admin
.
saas
;
package
com
.
makeit
.
module
.
admin
.
dto
.
saas
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
server-common/src/main/java/com/makeit/module/admin/saas/SaasUserRoleDTO.java
→
server-common/src/main/java/com/makeit/module/admin/
dto/
saas/SaasUserRoleDTO.java
View file @
87b83909
package
com
.
makeit
.
module
.
admin
.
saas
;
package
com
.
makeit
.
module
.
admin
.
dto
.
saas
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
server-common/src/main/java/com/makeit/module/admin/plat/PlatButtonVO.java
→
server-common/src/main/java/com/makeit/module/admin/
vo/
plat/PlatButtonVO.java
View file @
87b83909
package
com
.
makeit
.
module
.
admin
.
plat
;
package
com
.
makeit
.
module
.
admin
.
vo
.
plat
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
server-common/src/main/java/com/makeit/module/admin/vo/plat/PlatTenantVO.java
0 → 100644
View file @
87b83909
package
com
.
makeit
.
module
.
admin
.
vo
.
plat
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.makeit.common.dto.BaseIdDTO
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
@ApiModel
(
"租户 查询 详情"
)
@Data
public
class
PlatTenantVO
extends
BaseIdDTO
implements
Serializable
{
@ApiModelProperty
(
value
=
"名称"
)
private
String
name
;
@ApiModelProperty
(
value
=
"状态 0停用 1启用"
)
private
String
status
;
// @ApiModelProperty(value = "开始时间")
// private LocalDateTime startTime;
//
// @ApiModelProperty(value = "结束时间")
// private LocalDateTime endTime;
@ApiModelProperty
(
value
=
"开始时间"
)
private
LocalDate
startTime
;
@ApiModelProperty
(
value
=
"结束时间"
)
private
LocalDate
endTime
;
@ApiModelProperty
(
value
=
"租户管理员id"
)
private
String
tntUserId
;
@ApiModelProperty
(
value
=
"租户管理员账号"
)
private
String
userAccount
;
@ApiModelProperty
(
value
=
"租户管理员用户名"
)
private
String
userName
;
/**
* 创建时间
*/
@ApiModelProperty
(
value
=
"创建时间"
,
required
=
false
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
LocalDateTime
createdAt
;
/**
* 更新时间
*/
@ApiModelProperty
(
value
=
"更新时间"
,
required
=
false
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
LocalDateTime
updatedAt
;
}
server-common/src/main/java/com/makeit/module/admin/vo/plat/PlatUserLoginVO.java
View file @
87b83909
package
com
.
makeit
.
module
.
admin
.
vo
.
plat
;
import
com.makeit.module.admin.
plat.PlatButton
VO
;
import
com.makeit.module.admin.
saas.SaasMenu
DTOVO
;
import
com.makeit.module.admin.
dto.plat.PlatMenuDTO
VO
;
import
com.makeit.module.admin.
dto.plat.PlatRole
DTOVO
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
...
...
@@ -34,15 +34,15 @@ public class PlatUserLoginVO implements Serializable {
@ApiModelProperty
(
"token"
)
private
String
token
;
//todo dto
//
@ApiModelProperty("租户列表")
// private List<PlatTenant
> tenantList;
@ApiModelProperty
(
"租户列表"
)
private
List
<
PlatTenantVO
>
tenantList
;
@ApiModelProperty
(
"角色列表"
)
private
List
<
PlatRoleDTOVO
>
roleList
;
@ApiModelProperty
(
"菜单树形列表"
)
private
List
<
Saas
MenuDTOVO
>
menuList
;
private
List
<
Plat
MenuDTOVO
>
menuList
;
// @ApiModelProperty("按钮列表")
// private List<TntMenuDTOVO> buttonList;
...
...
server-common/src/main/java/com/makeit/module/admin/plat/PlatUserRoleMenuRedisVO.java
→
server-common/src/main/java/com/makeit/module/admin/
vo/
plat/PlatUserRoleMenuRedisVO.java
View file @
87b83909
package
com
.
makeit
.
module
.
admin
.
plat
;
package
com
.
makeit
.
module
.
admin
.
vo
.
plat
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
...
...
server-common/src/main/java/com/makeit/
utils/user
/saas/SaasUserLoginVO.java
→
server-common/src/main/java/com/makeit/
module/admin/vo
/saas/SaasUserLoginVO.java
View file @
87b83909
package
com
.
makeit
.
utils
.
user
.
saas
;
package
com
.
makeit
.
module
.
admin
.
vo
.
saas
;
import
com.makeit.module.admin.saas.SaasMenuDTOVO
;
import
com.makeit.module.admin.saas.SaasRoleDTOVO
;
import
com.makeit.module.admin.
dto.
saas.SaasMenuDTOVO
;
import
com.makeit.module.admin.
dto.
saas.SaasRoleDTOVO
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
...
...
server-common/src/main/java/com/makeit/module/admin/saas/SaasUserRoleMenuRedisVO.java
→
server-common/src/main/java/com/makeit/module/admin/
vo/
saas/SaasUserRoleMenuRedisVO.java
View file @
87b83909
package
com
.
makeit
.
module
.
admin
.
saas
;
package
com
.
makeit
.
module
.
admin
.
vo
.
saas
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
...
...
server-common/src/main/java/com/makeit/module/system/service/SysConfigService.java
View file @
87b83909
...
...
@@ -3,7 +3,7 @@ package com.makeit.module.system.service;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.makeit.common.page.PageReqDTO
;
import
com.makeit.common.page.PageVO
;
import
com.makeit.module.admin.dto.
SysFactory
DTOVO
;
import
com.makeit.module.admin.dto.
plat.PlatTenant
DTOVO
;
import
com.makeit.module.system.entity.SysConfig
;
import
com.makeit.module.system.entity.SysConfigCategory
;
import
com.makeit.module.system.vo.SysConfigVO
;
...
...
@@ -48,7 +48,7 @@ public interface SysConfigService extends IService<SysConfig> {
List
<
SysConfigVO
>
viewListByCategoryCodeCanNull
(
String
categoryCode
);
void
copyFor
Factory
(
SysFactory
DTOVO
factory
);
void
copyFor
Tenant
(
PlatTenant
DTOVO
factory
);
}
server-common/src/main/java/com/makeit/module/system/service/impl/SysConfigServiceImpl.java
View file @
87b83909
...
...
@@ -12,7 +12,7 @@ import com.makeit.enums.id.IdConst;
import
com.makeit.enums.redis.RedisConst
;
import
com.makeit.exception.BusinessException
;
import
com.makeit.global.aspect.tenant.TenantIdUtil
;
import
com.makeit.module.admin.dto.
SysFactory
DTOVO
;
import
com.makeit.module.admin.dto.
plat.PlatTenant
DTOVO
;
import
com.makeit.module.system.dto.SysConfigCategoryDTOVO
;
import
com.makeit.module.system.entity.SysConfig
;
import
com.makeit.module.system.entity.SysConfigCategory
;
...
...
@@ -365,7 +365,7 @@ public class SysConfigServiceImpl extends ServiceImpl<SysConfigMapper, SysConfig
@Transactional
@Override
public
void
copyFor
Factory
(
SysFactory
DTOVO
factory
)
{
public
void
copyFor
Tenant
(
PlatTenant
DTOVO
factory
)
{
List
<
SysConfigCategory
>
configCategoryList
=
sysConfigCategoryService
.
list
(
new
QueryWrapper
<
SysConfigCategory
>().
lambda
()
.
eq
(
SysConfigCategory:
:
getTenantId
,
IdConst
.
DEFAULT_FACTORY_ID
)
...
...
server-common/src/main/java/com/makeit/utils/sql/groupby/DynamicQuery.java
0 → 100644
View file @
87b83909
package
com
.
makeit
.
utils
.
sql
.
groupby
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.StringUtils
;
import
lombok.experimental.Accessors
;
@Accessors
(
chain
=
true
)
public
class
DynamicQuery
<
T
>
extends
QueryWrapper
<
T
>
{
public
DynamicQuery
()
{
}
public
DynamicQuery
(
T
entity
)
{
super
(
entity
);
}
public
DynamicQuery
(
T
entity
,
String
...
columns
)
{
super
(
entity
,
columns
);
}
@Override
protected
String
columnToString
(
String
column
)
{
return
StringUtils
.
camelToUnderline
(
column
);
}
}
server-common/src/main/java/com/makeit/utils/sql/groupby/SqlUtil.java
View file @
87b83909
...
...
@@ -101,4 +101,20 @@ public class SqlUtil {
return
new
String
[]{
count
(
CountVO
.
Fields
.
count
),
c
+
" AS "
+
groupKeyAlias
};
}
public
static
String
as
(
String
column
)
{
return
StringUtils
.
camelToUnderline
(
column
)
+
" AS "
+
column
;
}
public
static
String
as
(
String
column
,
String
alias
)
{
return
StringUtils
.
camelToUnderline
(
column
)
+
" AS "
+
alias
;
}
public
static
String
sum
(
String
column
,
String
alias
)
{
return
"SUM("
+
StringUtils
.
camelToUnderline
(
column
)
+
") AS "
+
alias
;
}
public
static
String
sum
(
String
alias
)
{
return
"SUM("
+
StringUtils
.
camelToUnderline
(
alias
)
+
") AS "
+
alias
;
}
}
server-common/src/main/java/com/makeit/utils/user/ThreadLocalUserUtil.java
View file @
87b83909
package
com
.
makeit
.
utils
.
user
;
import
com.makeit.config.global.thread.BizThreadLocal
;
import
com.makeit.module.admin.plat.PlatUserRoleMenuRedisVO
;
import
com.makeit.module.admin.saas.SaasUserRoleMenuRedisVO
;
import
com.makeit.module.admin.
vo.
plat.PlatUserRoleMenuRedisVO
;
import
com.makeit.module.admin.
vo.
saas.SaasUserRoleMenuRedisVO
;
import
com.makeit.module.admin.vo.plat.PlatUserLoginVO
;
import
com.makeit.
utils.user
.saas.SaasUserLoginVO
;
import
com.makeit.
module.admin.vo
.saas.SaasUserLoginVO
;
import
com.makeit.utils.user.wechat.WechatUserInfo
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
server-common/src/main/java/com/makeit/utils/user/TokenUtil.java
View file @
87b83909
...
...
@@ -5,13 +5,13 @@ import com.makeit.enums.CodeMessageEnum;
import
com.makeit.enums.HeaderConst
;
import
com.makeit.enums.redis.RedisConst
;
import
com.makeit.exception.BusinessException
;
import
com.makeit.module.admin.plat.PlatUserRoleMenuRedisVO
;
import
com.makeit.module.admin.saas.SaasUserRoleMenuRedisVO
;
import
com.makeit.module.admin.vo.plat.PlatUserLoginVO
;
import
com.makeit.module.admin.vo.plat.PlatUserRoleMenuRedisVO
;
import
com.makeit.module.admin.vo.saas.SaasUserLoginVO
;
import
com.makeit.module.admin.vo.saas.SaasUserRoleMenuRedisVO
;
import
com.makeit.utils.redis.RedisTemplateUtil
;
import
com.makeit.utils.redis.RedisUtil
;
import
com.makeit.utils.request.RequestUtil
;
import
com.makeit.utils.user.saas.SaasUserLoginVO
;
import
com.makeit.utils.user.wechat.WechatUserInfo
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -312,6 +312,9 @@ public class TokenUtil {
public
static
<
T
>
void
saasLogin
(
String
token
,
T
t
)
{
login
(
RedisConst
.
PLATFORM_TOKEN_PREFIX
,
token
,
t
);
}
public
static
<
T
>
void
platLogin
(
String
token
,
T
t
)
{
login
(
RedisConst
.
TOKEN_PREFIX
,
token
,
t
);
}
public
static
void
platRefreshToken
()
{
refreshToken
(
RedisConst
.
PLATFORM_TOKEN_PREFIX
,
RequestUtil
.
getHeader
(
HeaderConst
.
PLATFORM_TOKEN
));
...
...
server-common/src/main/java/com/makeit/utils/user/common/CommonUserUtil.java
View file @
87b83909
...
...
@@ -2,7 +2,7 @@ package com.makeit.utils.user.common;
import
com.makeit.enums.HeaderConst
;
import
com.makeit.module.admin.vo.plat.PlatUserLoginVO
;
import
com.makeit.
utils.user
.saas.SaasUserLoginVO
;
import
com.makeit.
module.admin.vo
.saas.SaasUserLoginVO
;
import
com.makeit.utils.user.ThreadLocalUserUtil
;
import
com.makeit.utils.user.TokenUtil
;
import
com.makeit.utils.user.wechat.WechatUserInfo
;
...
...
server-common/src/main/java/com/makeit/utils/user/plat/PlatUserUtil.java
View file @
87b83909
...
...
@@ -5,7 +5,7 @@ import com.makeit.enums.CommonEnum;
import
com.makeit.enums.biz.auth.IsFactoryAccountEnum
;
import
com.makeit.enums.id.IdConst
;
import
com.makeit.exception.BusinessException
;
import
com.makeit.module.admin.plat.PlatUserRoleMenuRedisVO
;
import
com.makeit.module.admin.
vo.
plat.PlatUserRoleMenuRedisVO
;
import
com.makeit.module.admin.vo.plat.PlatUserLoginVO
;
import
com.makeit.utils.data.convert.BeanDtoVoUtils
;
import
com.makeit.utils.user.TokenUtil
;
...
...
server-common/src/main/java/com/makeit/utils/user/plat/TntUserJoinUtil.java
0 → 100644
View file @
87b83909
package
com
.
makeit
.
utils
.
user
.
plat
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.support.SFunction
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.makeit.utils.sql.join.JoinUtil
;
import
java.util.List
;
import
java.util.function.BiConsumer
;
import
java.util.function.Consumer
;
import
java.util.function.Function
;
public
class
TntUserJoinUtil
{
public
static
<
T
,
E
>
void
join
(
IService
<
E
>
service
,
List
<
T
>
list
,
List
<
Function
<
T
,
String
>>
getNidList
,
SFunction
<
E
,
String
>
getId
,
List
<
BiConsumer
<
T
,
E
>>
consumerList
)
{
JoinUtil
.
join
(
list
,
service
,
getNidList
,
getId
,
consumerList
);
}
public
static
<
T
,
E
>
void
join
(
IService
<
E
>
service
,
List
<
T
>
list
,
Consumer
<
LambdaQueryWrapper
<
E
>>
extQuery
,
List
<
Function
<
T
,
String
>>
getNidList
,
SFunction
<
E
,
String
>
getId
,
List
<
BiConsumer
<
T
,
E
>>
consumerList
)
{
JoinUtil
.
join
(
list
,
service
,
extQuery
,
getNidList
,
getId
,
consumerList
);
}
public
static
<
T
,
E
>
void
join
(
IService
<
E
>
service
,
List
<
T
>
list
,
Function
<
T
,
String
>
getNid
,
BiConsumer
<
T
,
E
>
consumer
,
SFunction
<
E
,
String
>
getId
)
{
JoinUtil
.
join
(
list
,
service
,
getNid
,
getId
,
consumer
);
}
public
static
<
T
,
E
>
void
join
(
IService
<
E
>
service
,
List
<
T
>
list
,
Consumer
<
LambdaQueryWrapper
<
E
>>
extQuery
,
Function
<
T
,
String
>
getNid
,
BiConsumer
<
T
,
E
>
consumer
,
SFunction
<
E
,
String
>
getId
)
{
JoinUtil
.
join
(
list
,
service
,
extQuery
,
getNid
,
getId
,
consumer
);
}
public
static
<
T
,
E
>
void
joinSplit
(
IService
<
E
>
service
,
List
<
T
>
list
,
Consumer
<
LambdaQueryWrapper
<
E
>>
extQuery
,
Function
<
T
,
String
>
getNid
,
BiConsumer
<
T
,
List
<
E
>>
consumer
,
SFunction
<
E
,
String
>
getId
)
{
JoinUtil
.
joinSplit
(
list
,
service
,
extQuery
,
getNid
,
getId
,
consumer
);
}
public
static
<
T
,
E
>
void
joinSplit
(
IService
<
E
>
service
,
List
<
T
>
list
,
Function
<
T
,
String
>
getNid
,
SFunction
<
E
,
String
>
getId
,
BiConsumer
<
T
,
List
<
E
>>
consumer
)
{
JoinUtil
.
joinSplit
(
list
,
service
,
getNid
,
getId
,
consumer
);
}
}
server-common/src/main/java/com/makeit/utils/user/saas/SaasUserUtil.java
View file @
87b83909
package
com
.
makeit
.
utils
.
user
.
saas
;
import
com.makeit.module.admin.saas.SaasUserRoleMenuRedisVO
;
import
com.makeit.module.admin.vo.saas.SaasUserLoginVO
;
import
com.makeit.module.admin.vo.saas.SaasUserRoleMenuRedisVO
;
import
com.makeit.utils.data.convert.BeanDtoVoUtils
;
import
com.makeit.utils.user.TokenUtil
;
...
...
server-common/src/main/java/com/makeit/utils/user/wechat/WechatUserInfo.java
View file @
87b83909
package
com
.
makeit
.
utils
.
user
.
wechat
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
com.makeit.module.admin.dto.
SysFactory
DTOVO
;
import
com.makeit.module.admin.dto.
SysRole
DTOVO
;
import
com.makeit.module.admin.dto.
plat.PlatRole
DTOVO
;
import
com.makeit.module.admin.dto.
plat.PlatTenant
DTOVO
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
...
...
@@ -27,7 +27,7 @@ public class WechatUserInfo implements Serializable {
private
String
id
;
private
String
factory
Id
;
private
String
tenant
Id
;
private
String
isFactory
;
private
String
deptId
;
...
...
@@ -55,11 +55,11 @@ public class WechatUserInfo implements Serializable {
private
String
token
;
@ApiModelProperty
(
"
厂别
列表"
)
private
List
<
SysFactory
DTOVO
>
factoryList
;
@ApiModelProperty
(
"
租户
列表"
)
private
List
<
PlatTenant
DTOVO
>
factoryList
;
@ApiModelProperty
(
"角色列表"
)
private
List
<
Sys
RoleDTOVO
>
roleList
;
private
List
<
Plat
RoleDTOVO
>
roleList
;
@ApiModelProperty
(
"微信菜单code列表"
)
private
List
<
String
>
wechatMenuCodeList
;
...
...
server-service/src/main/java/com/makeit/dto/saas/SaasOperationLogDTO.java
0 → 100644
View file @
87b83909
package
com
.
makeit
.
dto
.
saas
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
*
* @author lzy
* @date 2022年6月3日
* @description
*/
@Data
@ApiModel
(
"平台端日志记录DTO"
)
public
class
SaasOperationLogDTO
implements
Serializable
{
/**
*
*/
private
static
final
long
serialVersionUID
=
1050316889800314337L
;
@ApiModelProperty
(
value
=
"操作人"
)
private
String
saasUserId
;
@ApiModelProperty
(
value
=
"租户ID"
)
private
String
tenantId
;
@ApiModelProperty
(
value
=
"操作内容"
)
private
String
content
;
@ApiModelProperty
(
value
=
"操作人"
)
private
String
saasUserName
;
@ApiModelProperty
(
value
=
"租户名称"
)
private
String
tenantName
;
@ApiModelProperty
(
value
=
"操作时间"
)
@JsonFormat
(
pattern
=
"yyyy年MM月dd HH:mm:ss"
)
private
LocalDateTime
createDate
;
}
server-service/src/main/java/com/makeit/dto/saas/SaasPrivacyConfigDTO.java
0 → 100644
View file @
87b83909
package
com
.
makeit
.
dto
.
saas
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.Size
;
import
java.io.Serializable
;
/**
*
* @author lzy
* @date 2022年5月28日
* @description
*/
@Data
@ApiModel
(
"隐私政策/关于我们 DTO"
)
public
class
SaasPrivacyConfigDTO
implements
Serializable
{
/**
*
*/
private
static
final
long
serialVersionUID
=
-
4366060533944603436L
;
@ApiModelProperty
(
"标题"
)
private
String
title
;
@Size
(
max
=
1800
,
message
=
"申请说明最长为1800字符"
)
@ApiModelProperty
(
value
=
"内容"
)
private
String
content
;
@ApiModelProperty
(
"分类 0-隐私政策 1-关于我们"
)
private
String
category
;
}
server-service/src/main/java/com/makeit/entity/platform/auth/PlatOrg.java
View file @
87b83909
package
com
.
makeit
.
entity
.
platform
.
auth
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.makeit.common.entity.BaseBusEntity
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.List
;
/**
* 租户端部门
* @TableName plat_org
...
...
@@ -47,4 +51,11 @@ public class PlatOrg extends BaseBusEntity {
*/
private
String
region
;
@ApiModelProperty
(
value
=
"子集"
)
@TableField
(
exist
=
false
)
private
List
<
PlatOrg
>
children
;
@TableField
(
exist
=
false
)
private
PlatOrg
parent
;
}
\ No newline at end of file
server-service/src/main/java/com/makeit/entity/platform/auth/PlatUser.java
View file @
87b83909
...
...
@@ -3,6 +3,7 @@ package com.makeit.entity.platform.auth;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.makeit.common.entity.BaseBusEntity
;
import
lombok.Data
;
import
lombok.experimental.FieldNameConstants
;
/**
* 租户账号管理
...
...
@@ -10,6 +11,7 @@ import lombok.Data;
*/
@TableName
(
value
=
"plat_user"
)
@Data
@FieldNameConstants
public
class
PlatUser
extends
BaseBusEntity
{
/**
...
...
server-service/src/main/java/com/makeit/entity/saas/PlatTenant.java
View file @
87b83909
...
...
@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import
com.makeit.common.entity.BaseEntity
;
import
lombok.Data
;
import
java.
util.Dat
e
;
import
java.
time.LocalDateTim
e
;
/**
* 租户管理
...
...
@@ -27,12 +27,12 @@ public class PlatTenant extends BaseEntity {
/**
* 租户有效期-开始时间
*/
private
Dat
e
startTime
;
private
LocalDateTim
e
startTime
;
/**
* 租户有效期-结束时间
*/
private
Dat
e
endTime
;
private
LocalDateTim
e
endTime
;
/**
* 租户管理员id
...
...
server-service/src/main/java/com/makeit/entity/saas/PlatTenantMenu.java
0 → 100644
View file @
87b83909
package
com
.
makeit
.
entity
.
saas
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.makeit.common.entity.BaseBusEntity
;
import
lombok.Data
;
/**
* 租户端租户菜单关联表
* @TableName plat_tenant_menu
*/
@TableName
(
value
=
"plat_tenant_menu"
)
@Data
public
class
PlatTenantMenu
extends
BaseBusEntity
{
/**
* 菜单id
*/
private
String
menuId
;
}
\ No newline at end of file
server-service/src/main/java/com/makeit/entity/saas/SaasOperationLog.java
View file @
87b83909
package
com
.
makeit
.
entity
.
saas
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.util.Date
;
import
com.makeit.common.entity.BaseEntity
;
import
lombok.Data
;
/**
* saas端操作日志
*
* @TableName saas_operation_log
*/
@TableName
(
value
=
"saas_operation_log"
)
@TableName
(
value
=
"saas_operation_log"
)
@Data
public
class
SaasOperationLog
extends
BaseEntity
{
...
...
server-service/src/main/java/com/makeit/enums/IsTenantAccountEnum.java
0 → 100644
View file @
87b83909
package
com
.
makeit
.
enums
;
public
enum
IsTenantAccountEnum
{
NO
(
"0"
),
YES
(
"1"
);
private
String
value
;
IsTenantAccountEnum
(
String
value
)
{
this
.
value
=
value
;
}
public
String
getValue
()
{
return
value
;
}
}
server-service/src/main/java/com/makeit/mapper/platform/auth/PlatOrgMapper.java
View file @
87b83909
...
...
@@ -4,6 +4,8 @@ package com.makeit.mapper.platform.auth;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.makeit.entity.platform.auth.PlatOrg
;
import
java.util.List
;
/**
* @author lixl
* @description 针对表【plat_org(租户端部门)】的数据库操作Mapper
...
...
@@ -12,5 +14,5 @@ import com.makeit.entity.platform.auth.PlatOrg;
*/
public
interface
PlatOrgMapper
extends
BaseMapper
<
PlatOrg
>
{
List
<
PlatOrg
>
getSelfAndParents
(
String
id
);
}
server-service/src/main/java/com/makeit/mapper/platform/auth/PlatUserMapper.java
View file @
87b83909
...
...
@@ -2,7 +2,12 @@ package com.makeit.mapper.platform.auth;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.makeit.entity.platform.auth.PlatUser
;
import
com.makeit.entity.saas.PlatMenu
;
import
com.makeit.module.admin.dto.plat.PlatUserQueryDTO
;
import
java.util.List
;
/**
* @author lixl
...
...
@@ -12,5 +17,7 @@ import com.makeit.entity.platform.auth.PlatUser;
*/
public
interface
PlatUserMapper
extends
BaseMapper
<
PlatUser
>
{
Page
<
PlatUser
>
noDeptUserList
(
Page
<
PlatUser
>
page
,
PlatUserQueryDTO
dto
);
List
<
PlatMenu
>
getMenuListByUserId
(
String
userId
);
}
server-service/src/main/java/com/makeit/mapper/saas/PlatTenantMenuMapper.java
0 → 100644
View file @
87b83909
package
com
.
makeit
.
mapper
.
saas
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.makeit.entity.saas.PlatTenantMenu
;
/**
* @author lixl
* @description 针对表【plat_tenant_menu(租户端租户菜单关联表)】的数据库操作Mapper
* @createDate 2023-08-31 11:15:44
* @Entity com.makeit.entity.saas.PlatTenantMenu
*/
public
interface
PlatTenantMenuMapper
extends
BaseMapper
<
PlatTenantMenu
>
{
}
server-service/src/main/java/com/makeit/mapper/saas/SaasOperationLogMapper.java
View file @
87b83909
package
com
.
makeit
.
mapper
.
saas
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.makeit.dto.saas.SaasOperationLogDTO
;
import
com.makeit.entity.saas.SaasOperationLog
;
import
com.makeit.vo.saas.SaasOperationLogQueryVO
;
import
org.apache.ibatis.annotations.Param
;
/**
* @author lixl
...
...
@@ -11,5 +15,6 @@ import com.makeit.entity.saas.SaasOperationLog;
*/
public
interface
SaasOperationLogMapper
extends
BaseMapper
<
SaasOperationLog
>
{
Page
<
SaasOperationLogDTO
>
selectByCondition
(
Page
<
SaasOperationLogQueryVO
>
page
,
@Param
(
"params"
)
SaasOperationLogQueryVO
saasOperationLogQueryVO
);
}
server-service/src/main/java/com/makeit/server/platform/auth/DeptUtil.java
0 → 100644
View file @
87b83909
package
com
.
makeit
.
server
.
platform
.
auth
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.makeit.entity.platform.auth.PlatOrg
;
import
com.makeit.utils.data.convert.StreamUtil
;
import
com.makeit.utils.sql.join.JoinUtil
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.MapUtils
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.function.BiConsumer
;
import
java.util.function.Function
;
@Component
public
class
DeptUtil
{
private
static
PlatUserService
tntUserService
;
private
static
PlatOrgService
tntDeptService
;
public
static
PlatOrg
getById
(
String
deptId
)
{
return
tntDeptService
.
getById
(
deptId
);
}
public
static
List
<
PlatOrg
>
getHotelList
()
{
List
<
PlatOrg
>
deptList
=
tntDeptService
.
list
(
new
QueryWrapper
<
PlatOrg
>().
lambda
()
//.eq(PlatOrg::getTag, DeptEnum.DeptTagEnum.HOTEL.getValue())
//.eq(TntDept::getStatus, CommonEnum.YES.getValue())
);
return
deptList
;
}
//涉及角色
// public static List<PlatOrg> getDeptList(String deptId) {//集团 品牌 酒店 部门 上级和下级
// PlatOrgQueryDTO tntDeptQueryDTO = new PlatOrgQueryDTO();
//
// tntDeptQueryDTO.setDeptId(deptId);
//
// return tntDeptService.list(tntDeptQueryDTO);
// }
//涉及角色
// public static List<PlatOrg> getDeptList(String deptId, String fromHotel) {//集团 品牌 酒店 部门 上级和下级
// PlatOrgQueryDTO tntDeptQueryDTO = new PlatOrgQueryDTO();
//
// tntDeptQueryDTO.setDeptId(deptId);
// tntDeptQueryDTO.setFromHotel(fromHotel);
//
// return tntDeptService.list(tntDeptQueryDTO);
// }
//涉及角色
// public static List<String> getDeptIdList(String deptId) {//集团 品牌 酒店 部门 上级和下级
// List<String> idList = StreamUtil.map(getDeptList(deptId), PlatOrg::getId);
// idList.add(-1 + "");
// return idList;
// }
//涉及角色
// public static List<String> getDeptCantTapIdList(String deptId, String fromHotel) { //集团 品牌 酒店 部门 上级和下级 可点击的
// List<String> idList = getDeptList(deptId, fromHotel).stream()//.filter(e -> CommonEnum.YES.getValue().equals(e.getCanTap()))
// .map(PlatOrg::getId).collect(Collectors.toList());
// idList.add(-1 + "");
// return idList;
// }
//涉及角色
// public static List<PlatOrg> getDeptSelfAndChildren(String deptId) {//集团 品牌 酒店 上级和下级
// return tntUserService.getDeptSelfAndChildren(deptId);
// }
//涉及角色
// public static List<String> getDeptSelfAndChildrenIdList(String deptId) {//集团 品牌 酒店 上级和下级
// List<String> idList = StreamUtil.map(tntUserService.getDeptSelfAndChildren(deptId), PlatOrg::getId);
// idList.add(-1 + "");
// return idList;
// }
//not ywc
// public static List<TntDept> getDeptSelfAndChildren(String deptName, List<TntDept> selfAndChildren) {
// return getDeptSelfAndChildrenByDeptNameList(Arrays.asList(deptName), selfAndChildren);
// }
// public static List<PlatOrg> getDeptSelfAndChildrenByDeptNameList(List<String> deptNames, Map<String, PlatOrg> selfAndChildren) {
// return tntUserService.getDeptSelfAndChildrenByDeptName(deptNames, selfAndChildren);
// }
//涉及角色
// public static List<PlatOrg> getDeptSelfAndChildrenCanTap(String deptId) {//集团 品牌 酒店 上级和下级 可点击的
// return tntUserService.getDeptSelfAndChildrenCanTap(deptId);
// }
//涉及角色
// public static List<String> getDeptSelfAndChildrenCanTapIdList(String deptId) {//集团 品牌 酒店 上级和下级 可点击的
// List<String> idList = StreamUtil.map(tntUserService.getDeptSelfAndChildrenCanTap(deptId), PlatOrg::getId);
// idList.add(-1 + "");
// return idList;
// }
// //涉及角色
// public static List<String> getDeptSelfAndChildrenCanTapIdListFilterName(String deptId, String name) {//集团 品牌 酒店 上级和下级 可点击的
// List<PlatOrg> deptList = tntUserService.getDeptSelfAndChildrenCanTap(deptId);
// PlatOrgQueryDTO queryDTO = new PlatOrgQueryDTO();
// queryDTO.setName(name);
// deptList = filter(deptList, queryDTO);
// List<String> idList = StreamUtil.map(deptList, PlatOrg::getId);
// idList.add(-1 + "");
// return idList;
// }
// //涉及角色
// public static List<PlatOrg> getHotelList(String deptId) {//酒店那一级
// // 也能点击?
//
// return tntUserService.getHotelList(deptId);
// }
// //涉及角色
// public static List<String> getHotelIdList(String deptId) {//酒店那一级
// // 也能点击?
//
// List<String> deptIdList = StreamUtil.map(tntUserService.getHotelList(deptId), PlatOrg::getId);
// deptIdList.add(-1 + "");
// return deptIdList;
// }
//不涉及角色
// public static List<PlatOrg> filter(List<PlatOrg> deptList, PlatOrgQueryDTO dto) {
// return tntDeptService.filter(deptList, dto);
// }
//
// //不涉及角色
// public static List<PlatOrg> findSelfAndAllParent(String deptId) {
// return tntDeptService.findSelfAndAllParent(deptId);
// }
//
// //不涉及角色
// public static Map<String, List<PlatOrg>> findSelfAndAllParent(List<String> deptIdList) {
// return tntDeptService.findSelfAndAllParent(deptIdList);
// }
//不涉及角色
public
static
List
<
String
>
findSelfAndAllChildrenIdList
(
String
deptId
)
{
List
<
String
>
idList
=
StreamUtil
.
map
(
tntDeptService
.
findSelfAndAllChildren
(
deptId
),
PlatOrg:
:
getId
);
idList
.
add
(-
1
+
""
);
return
idList
;
}
// public static PlatOrg getHotel(String deptId) {
// List<PlatOrg> deptList = DeptUtil.findSelfAndAllParent(deptId);
// PlatOrg hotel = null;
// for (PlatOrg d : deptList) {
//// if (DeptEnum.DeptTagEnum.HOTEL.getValue().equals(d.getTag())) {
//// hotel = d;
//// break;
//// }
// }
//
// return hotel;
// }
//不涉及角色
// public static <T> void fillDept(List<T> list, Function<T, String> getDeptId, BiConsumer<T, String> fillDeptName) {
// List<String> deptIdList = StreamUtil.map(list, getDeptId);
// deptIdList.add(-1 + "");
// Map<String, List<PlatOrg>> deptMap = DeptUtil.findSelfAndAllParent(deptIdList);
// list.forEach(e -> {
// MapUtil.setIfPresent(deptMap, getDeptId.apply(e), l -> {
// fillDeptName.accept(e, l.stream().map(PlatOrg::getName).collect(Collectors.joining("-")));
// });
// });
// }
public
static
<
T
>
void
join
(
List
<
T
>
list
,
Function
<
T
,
String
>
getNid
,
BiConsumer
<
T
,
PlatOrg
>
consumer
)
{
JoinUtil
.
join
(
list
,
tntDeptService
,
null
,
getNid
,
PlatOrg:
:
getId
,
consumer
);
}
public
static
String
getDeptName
(
List
<
String
>
applyDeptIds
,
Map
<
String
,
String
>
deptMap
)
{
if
(
CollectionUtils
.
isEmpty
(
applyDeptIds
)
||
MapUtils
.
isEmpty
(
deptMap
))
{
return
""
;
}
StringBuilder
sb
=
new
StringBuilder
();
for
(
String
applyDeptId
:
applyDeptIds
)
{
String
dept
=
deptMap
.
get
(
applyDeptId
);
if
(
ObjectUtils
.
isNotEmpty
(
dept
))
{
sb
.
append
(
dept
+
","
);
}
}
if
(
sb
.
length
()
>
0
)
{
return
sb
.
deleteCharAt
(
sb
.
length
()
-
1
).
toString
();
}
return
""
;
}
// @Autowired
// public void setTntUserService(TntUserService tntUserService) {
// DeptUtil.tntUserService = tntUserService;
// }
//
// @Autowired
// public void setTntDeptService(TntDeptService tntDeptService) {
// DeptUtil.tntDeptService = tntDeptService;
// }
}
server-service/src/main/java/com/makeit/server/platform/auth/PlatOrgService.java
View file @
87b83909
...
...
@@ -3,6 +3,11 @@ package com.makeit.server.platform.auth;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.makeit.entity.platform.auth.PlatOrg
;
import
com.makeit.vo.platform.auth.PlatOrgQueryDTO
;
import
java.util.Comparator
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author lixl
...
...
@@ -10,5 +15,69 @@ import com.makeit.entity.platform.auth.PlatOrg;
* @createDate 2023-08-30 20:10:25
*/
public
interface
PlatOrgService
extends
IService
<
PlatOrg
>
{
List
<
PlatOrg
>
filter
(
List
<
PlatOrg
>
deptList
,
PlatOrgQueryDTO
dto
);
List
<
PlatOrg
>
list
(
PlatOrgQueryDTO
dto
);
List
<
PlatOrg
>
tree
(
PlatOrgQueryDTO
dto
);
List
<
PlatOrg
>
treeCount
(
PlatOrgQueryDTO
dto
);
List
<
PlatOrg
>
tree
(
List
<
PlatOrg
>
tntDeptList
);
List
<
PlatOrg
>
treeTop
(
List
<
PlatOrg
>
tntDeptList
);
Map
<
String
,
PlatOrg
>
treeParentAndChildren
(
List
<
PlatOrg
>
tntDeptList
);
List
<
PlatOrg
>
findSelfAndAllChildren
(
String
deptId
);
/**
* 根据部门名称获取部门及部门一下部门的数据集合
* @param deptId
* @param deptName
* @return
*/
List
<
PlatOrg
>
getDeptSelfAndChildrenByDeptName
(
String
deptId
,
String
deptName
);
List
<
PlatOrg
>
findSelfAndAllParent
(
String
deptId
);
Map
<
String
,
List
<
PlatOrg
>>
findSelfAndAllParent
(
List
<
String
>
deptIdList
);
void
findParent
(
Map
<
String
,
PlatOrg
>
map
,
PlatOrg
tntDept
,
List
<
PlatOrg
>
list
);
void
findParentCanTap
(
Map
<
String
,
PlatOrg
>
map
,
PlatOrg
tntDept
,
List
<
PlatOrg
>
list
);
void
flat
(
List
<
PlatOrg
>
oldList
,
List
<
PlatOrg
>
newList
);
void
flatChildren
(
PlatOrg
old
,
List
<
PlatOrg
>
newList
);
Comparator
<
PlatOrg
>
getComparator
();
void
add
(
PlatOrg
dto
);
void
edit
(
PlatOrg
dto
);
PlatOrg
view
(
String
id
);
void
del
(
String
id
);
List
<
PlatOrg
>
listWithoutDept
();
/**
* 获取所有父类及自己的id列表
* @param deptId
* @return
*/
List
<
PlatOrg
>
getSelfAndAllParent
(
String
deptId
);
List
<
PlatOrg
>
getDeptSelfAndChildren
(
String
deptId
);
}
server-service/src/main/java/com/makeit/server/platform/auth/PlatUserService.java
View file @
87b83909
package
com
.
makeit
.
server
.
platform
.
auth
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.makeit.common.dto.LoginDTO
;
import
com.makeit.common.dto.StatusDTO
;
import
com.makeit.common.page.PageReqDTO
;
import
com.makeit.common.page.PageVO
;
import
com.makeit.entity.platform.auth.PlatOrg
;
import
com.makeit.entity.platform.auth.PlatRole
;
import
com.makeit.entity.platform.auth.PlatUser
;
import
com.makeit.entity.saas.PlatMenu
;
import
com.makeit.entity.saas.PlatTenant
;
import
com.makeit.module.admin.dto.plat.PlatUserDTOVO
;
import
com.makeit.module.admin.dto.plat.PlatUserQueryDTO
;
import
com.makeit.module.admin.vo.plat.PlatUserLoginVO
;
import
com.makeit.vo.platform.auth.PlatPersonDTOVO
;
import
com.makeit.vo.platform.auth.PlatUserCountVO
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author lixl
...
...
@@ -9,5 +26,108 @@ import com.makeit.entity.platform.auth.PlatUser;
* @createDate 2023-08-30 20:10:25
*/
public
interface
PlatUserService
extends
IService
<
PlatUser
>
{
PageVO
<
PlatUserDTOVO
>
pageTenant
(
PageReqDTO
<
PlatUserQueryDTO
>
page
);
List
<
PlatUserDTOVO
>
listTenant
(
PlatUserQueryDTO
dto
);
void
add
(
PlatUserDTOVO
dto
);
void
edit
(
PlatUserDTOVO
dto
);
void
setPassword
(
PlatUser
user
);
void
changePassword
(
PlatUserDTOVO
dto
);
PlatUserDTOVO
view
(
String
id
);
void
del
(
String
id
);
void
changeStatus
(
StatusDTO
dto
);
List
<
PlatTenant
>
setTenantList
(
PlatUser
tntUser
);
PlatUserLoginVO
login
(
LoginDTO
loginDTO
);
void
logout
();
List
<
PlatMenu
>
getMenuListByTenantId
(
String
tenantId
);
PlatUserLoginVO
getRoleAndMenuList
();
PlatUserLoginVO
getRoleAndMenuList2
();
// PlatUserLoginVO getWechatMenuList();
PlatUserLoginVO
getUserVO
();
PlatPersonDTOVO
getUserDetail
();
// List<String> getCustomGroupNameList();
List
<
PlatRole
>
getRoleList
(
String
userId
);
/*人员*/
PageVO
<
PlatPersonDTOVO
>
page
(
PageReqDTO
<
PlatUserQueryDTO
>
page
);
List
<
PlatPersonDTOVO
>
list
(
PlatUserQueryDTO
dto
);
List
<
PlatUserCountVO
>
listCount
(
PlatUserQueryDTO
dto
);
Page
<
PlatUser
>
pageNoDeptUser
(
Page
<
PlatUser
>
page
,
PlatUserQueryDTO
dto
);
PageVO
<
PlatPersonDTOVO
>
pageNoDeptUser
(
PageReqDTO
<
PlatUserQueryDTO
>
page
);
List
<
PlatPersonDTOVO
>
auditUserList
(
PlatUserQueryDTO
dto
);
void
addPerson
(
PlatPersonDTOVO
dto
);
void
editPerson
(
PlatPersonDTOVO
dto
);
PlatPersonDTOVO
viewPerson
(
String
id
);
// void changeDeptMessage(PlatUser tntUser, String oldDeptId, String newDeptId);
//void leaveMessage(PlatUser tntUser);
// List<PlatRole> getRoleListWithTag(String userId);
// PlatRole getMaxRole(String userId);
List
<
PlatOrg
>
getDeptTreeList
();
/**
* 根据部门名称获取部门列表
*
* @param selfAndChildren
* @param deptName
* @return
*/
List
<
PlatOrg
>
getDeptSelfAndChildrenByDeptName
(
List
<
String
>
deptName
,
Map
<
String
,
PlatOrg
>
selfAndChildren
);
List
<
PlatOrg
>
getDeptSelfAndChildrenCanTap
(
String
deptId
);
// List<PlatOrg> getHotelList(String deptId);
List
<
PlatOrg
>
getCandidateDeptList
();
// List<String> getCustomGroupNameList(String userId);
//
// List<String> getCustomGroupIdList(String userId);
List
<
PlatMenu
>
getMenuListByUserId
(
String
userId
);
/**
* 查询本部门
*
* @param page
* @return
*/
PageVO
<
PlatPersonDTOVO
>
indexPage
(
PageReqDTO
<
PlatUserQueryDTO
>
page
);
List
<
PlatOrg
>
getDeptList
();
}
server-service/src/main/java/com/makeit/server/platform/auth/impl/PlatOrgServiceImpl.java
View file @
87b83909
package
com
.
makeit
.
server
.
platform
.
auth
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.makeit.entity.platform.auth.PlatOrg
;
import
com.makeit.enums.CommonEnum
;
import
com.makeit.enums.id.TreeConst
;
import
com.makeit.global.aspect.tenant.TenantIdUtil
;
import
com.makeit.mapper.platform.auth.PlatOrgMapper
;
import
com.makeit.module.admin.dto.plat.PlatUserQueryDTO
;
import
com.makeit.module.system.service.SysConfigCategoryService
;
import
com.makeit.server.platform.auth.PlatOrgService
;
import
com.makeit.server.platform.auth.PlatUserService
;
import
com.makeit.utils.data.convert.StreamUtil
;
import
com.makeit.vo.platform.auth.PlatOrgQueryDTO
;
import
com.makeit.vo.platform.auth.PlatUserCountVO
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Collections
;
import
java.util.Comparator
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
/**
* @author lixl
* @description 针对表【plat_org(租户端部门)】的数据库操作Service实现
* @createDate 2023-08-30 20:10:25
*/
* @author lixl
* @description 针对表【plat_org(租户端部门)】的数据库操作Service实现
* @createDate 2023-08-30 20:10:25
*/
@Service
public
class
PlatOrgServiceImpl
extends
ServiceImpl
<
PlatOrgMapper
,
PlatOrg
>
implements
PlatOrgService
{
implements
PlatOrgService
{
// @Autowired
// private TntAsyncCommonService tntAsyncCommonService;
@Autowired
private
PlatUserService
platUserService
;
@Autowired
private
SysConfigCategoryService
sysConfigCategoryService
;
@Override
public
List
<
PlatOrg
>
filter
(
List
<
PlatOrg
>
deptList
,
PlatOrgQueryDTO
dto
)
{
return
new
HashSet
<>(
deptList
).
stream
()
.
filter
(
e
->
{
if
(
StringUtils
.
isNotBlank
(
dto
.
getStatus
()))
{
return
e
.
getStatus
().
equals
(
dto
.
getStatus
());
}
return
true
;
})
.
filter
(
e
->
{
if
(
StringUtils
.
isNotBlank
(
dto
.
getName
()))
{
return
e
.
getName
().
contains
(
dto
.
getName
());
}
return
true
;
})
.
sorted
(
getComparator
())
.
collect
(
Collectors
.
toList
());
}
@Override
public
List
<
PlatOrg
>
list
(
PlatOrgQueryDTO
dto
)
{
//parent_path find_in_set ?
// List<TntDept> tntDeptList = list(new QueryWrapper<TntDept>().lambda()
// .like(StringUtils.isNotBlank(dto.getName()), TntDept::getName, dto.getName())
// .eq(StringUtils.isNotBlank(dto.getStatus()), TntDept::getStatus, dto.getStatus())
// .in(TntDept::getId, DeptUtil.getDeptSelfAndChildrenIdList(dto.getId()))
// .orderByAsc(TntDept::getSort)
// .orderByAsc(TntDept::getCreatedAt)
// );
List
<
PlatOrg
>
deptList
=
list
(
new
QueryWrapper
<
PlatOrg
>().
lambda
()
//.eq(PlatOrg::getTag, DeptEnum.DeptTagEnum.DEPT.getValue())
);
deptList
.
forEach
(
e
->
{
// e.setCanTap(CommonEnum.YES.getValue());
});
List
<
PlatOrg
>
tntDeptList
=
this
.
getDeptSelfAndChildren
(
dto
.
getDeptId
());
// if (CommonEnum.YES.getValue().equals(dto.getFromHotel())) {
// tntDeptList = StreamUtil.filter(tntDeptList, e -> DeptEnum.DeptTagEnum.HOTEL.getValue().equals(e.getTag()));
// }
List
<
String
>
idList
=
StreamUtil
.
map
(
tntDeptList
,
PlatOrg:
:
getId
);
if
(
StringUtils
.
isNotBlank
(
dto
.
getDeptId
()))
{
//左上方可点击的 和 左下方中的任意
idList
.
add
(
dto
.
getDeptId
());
}
tntDeptList
.
addAll
(
deptList
);
List
<
PlatOrg
>
topList
=
tree
(
tntDeptList
,
idList
);
List
<
PlatOrg
>
newList
=
new
ArrayList
<>(
10
);
flat
(
topList
,
newList
);
newList
.
forEach
(
e
->
{
e
.
setChildren
(
null
);
});
tntDeptList
=
newList
;
tntDeptList
=
filter
(
tntDeptList
,
dto
);
return
tntDeptList
;
}
private
List
<
PlatOrg
>
tree
(
List
<
PlatOrg
>
tntDeptList
,
List
<
String
>
deptIdList
)
{
Map
<
String
,
PlatOrg
>
map
=
StreamUtil
.
toMap
(
tntDeptList
,
PlatOrg:
:
getId
);
List
<
PlatOrg
>
topList
=
deptIdList
.
stream
().
map
(
e
->
map
.
get
(
e
)).
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toList
());
tntDeptList
.
forEach
(
e
->
{
PlatOrg
parent
=
map
.
get
(
e
.
getParentId
());
if
(
parent
!=
null
)
{
List
<
PlatOrg
>
children
=
parent
.
getChildren
();
if
(
children
==
null
)
{
children
=
new
ArrayList
<>(
10
);
parent
.
setChildren
(
children
);
}
children
.
add
(
e
);
}
});
return
topList
;
}
@Override
public
List
<
PlatOrg
>
tree
(
List
<
PlatOrg
>
tntDeptList
)
{
Map
<
String
,
PlatOrg
>
map
=
StreamUtil
.
toMap
(
tntDeptList
,
PlatOrg:
:
getId
);
//List<PlatOrg> topList = StreamUtil.filter(tntDeptList, e -> TreeConst.TOP_LEVEL.equals(e.getParentId()));
List
<
PlatOrg
>
topList
=
new
ArrayList
<>(
10
);
tntDeptList
.
forEach
(
e
->
{
PlatOrg
parent
=
map
.
get
(
e
.
getParentId
());
if
(
parent
!=
null
)
{
List
<
PlatOrg
>
children
=
parent
.
getChildren
();
if
(
children
==
null
)
{
children
=
new
ArrayList
<>(
10
);
parent
.
setChildren
(
children
);
}
children
.
add
(
e
);
}
else
{
topList
.
add
(
e
);
}
});
return
topList
;
}
@Override
public
List
<
PlatOrg
>
treeTop
(
List
<
PlatOrg
>
tntDeptList
)
{
Map
<
String
,
PlatOrg
>
map
=
StreamUtil
.
toMap
(
tntDeptList
,
PlatOrg:
:
getId
);
List
<
PlatOrg
>
topList
=
StreamUtil
.
filter
(
tntDeptList
,
e
->
TreeConst
.
TOP_LEVEL
.
equals
(
e
.
getParentId
()));
tntDeptList
.
forEach
(
e
->
{
PlatOrg
parent
=
map
.
get
(
e
.
getParentId
());
if
(
parent
!=
null
)
{
List
<
PlatOrg
>
children
=
parent
.
getChildren
();
if
(
children
==
null
)
{
children
=
new
ArrayList
<>(
10
);
parent
.
setChildren
(
children
);
}
children
.
add
(
e
);
}
});
return
topList
;
}
@Override
public
Map
<
String
,
PlatOrg
>
treeParentAndChildren
(
List
<
PlatOrg
>
tntDeptList
)
{
Map
<
String
,
PlatOrg
>
map
=
StreamUtil
.
toMap
(
tntDeptList
,
PlatOrg:
:
getId
);
tntDeptList
.
forEach
(
e
->
{
PlatOrg
parent
=
map
.
get
(
e
.
getParentId
());
if
(
parent
!=
null
)
{
List
<
PlatOrg
>
children
=
parent
.
getChildren
();
if
(
children
==
null
)
{
children
=
new
ArrayList
<>(
10
);
parent
.
setChildren
(
children
);
}
children
.
add
(
e
);
e
.
setParent
(
parent
);
}
});
return
map
;
}
@Override
public
List
<
PlatOrg
>
findSelfAndAllChildren
(
String
deptId
)
{
//只能从酒店或者部门开始
List
<
PlatOrg
>
deptList
=
list
(
new
QueryWrapper
<
PlatOrg
>().
lambda
()
.
eq
(
PlatOrg:
:
getStatus
,
CommonEnum
.
YES
.
getValue
())
//.in(PlatOrg::getTag, DeptEnum.DeptTagEnum.HOTEL.getValue(), DeptEnum.DeptTagEnum.DEPT.getValue())
);
List
<
PlatOrg
>
now
=
tree
(
deptList
,
Arrays
.
asList
(
deptId
));
List
<
PlatOrg
>
list
=
new
ArrayList
<>(
10
);
flat
(
now
,
list
);
return
list
;
}
@Override
public
List
<
PlatOrg
>
getDeptSelfAndChildrenByDeptName
(
String
deptId
,
String
deptName
)
{
//获取所有酒店层级的部门列表
List
<
PlatOrg
>
selfAndChildren
=
findSelfAndAllChildren
(
deptId
);
if
(
CollectionUtils
.
isNotEmpty
(
selfAndChildren
))
{
//获取对应部门名称的部门数据
List
<
PlatOrg
>
tntDepts
=
StreamUtil
.
filter
(
selfAndChildren
,
e
->
deptName
.
equals
(
e
.
getName
()));
if
(
CollectionUtils
.
isNotEmpty
(
tntDepts
))
{
List
<
PlatOrg
>
PlatOrgFilterByName
=
tree
(
selfAndChildren
,
Arrays
.
asList
(
tntDepts
.
get
(
0
).
getId
()));
List
<
PlatOrg
>
tntDeptArrayList
=
new
ArrayList
<>(
10
);
flat
(
PlatOrgFilterByName
,
tntDeptArrayList
);
return
tntDeptArrayList
;
}
}
return
new
ArrayList
<>();
}
@Override
public
List
<
PlatOrg
>
findSelfAndAllParent
(
String
deptId
)
{
return
findSelfAndAllParent
(
Arrays
.
asList
(
deptId
)).
get
(
deptId
);
}
@Override
public
Map
<
String
,
List
<
PlatOrg
>>
findSelfAndAllParent
(
List
<
String
>
deptIdList
)
{
List
<
PlatOrg
>
deptList
=
list
(
new
QueryWrapper
<
PlatOrg
>().
lambda
()
// .in(PlatOrg::getTag,
// Arrays.asList(DeptEnum.DeptTagEnum.HOTEL.getValue(),
// DeptEnum.DeptTagEnum.DEPT.getValue())
// )
.
eq
(
PlatOrg:
:
getStatus
,
CommonEnum
.
YES
.
getValue
())
.
orderByAsc
(
PlatOrg:
:
getId
)
);
Map
<
String
,
PlatOrg
>
deptMap
=
StreamUtil
.
toMap
(
deptList
,
PlatOrg:
:
getId
);
return
new
HashSet
<>(
deptIdList
).
stream
().
collect
(
Collectors
.
toMap
(
Function
.
identity
(),
e
->
{
PlatOrg
now
=
deptMap
.
get
(
e
);
if
(
now
==
null
)
{
return
new
ArrayList
<>(
10
);
}
List
<
PlatOrg
>
list
=
new
ArrayList
<>(
10
);
list
.
add
(
now
);
findParent
(
deptMap
,
now
,
list
);
Collections
.
reverse
(
list
);
return
list
;
}));
}
@Override
public
void
findParent
(
Map
<
String
,
PlatOrg
>
map
,
PlatOrg
tntDept
,
List
<
PlatOrg
>
list
)
{
PlatOrg
parent
=
map
.
get
(
tntDept
.
getParentId
());
if
(
parent
!=
null
)
{
list
.
add
(
parent
);
findParent
(
map
,
parent
,
list
);
}
}
@Override
public
void
findParentCanTap
(
Map
<
String
,
PlatOrg
>
map
,
PlatOrg
tntDept
,
List
<
PlatOrg
>
list
)
{
if
(
tntDept
==
null
)
{
return
;
}
PlatOrg
parent
=
map
.
get
(
tntDept
.
getParentId
());
if
(
parent
!=
null
)
{
// if (CommonEnum.YES.getValue().equals(parent.getCanTap())) {
// tntDept.setCanTap(CommonEnum.YES.getValue());
// }
//这里有硬编码
//应该是角色挂的节点(包含) 和 酒店节点(包含) 之间的所有节点都表红
list
.
add
(
parent
);
findParentCanTap
(
map
,
parent
,
list
);
}
}
@Override
public
void
flat
(
List
<
PlatOrg
>
oldList
,
List
<
PlatOrg
>
newList
)
{
if
(
oldList
!=
null
)
{
newList
.
addAll
(
oldList
);
oldList
.
forEach
(
e
->
{
flat
(
e
.
getChildren
(),
newList
);
});
}
}
@Override
public
void
flatChildren
(
PlatOrg
old
,
List
<
PlatOrg
>
newList
)
{
if
(
old
!=
null
&&
old
.
getChildren
()
!=
null
)
{
newList
.
addAll
(
old
.
getChildren
());
old
.
getChildren
().
forEach
(
e
->
{
flatChildren
(
e
,
newList
);
});
}
}
@Override
public
Comparator
<
PlatOrg
>
getComparator
()
{
return
(
o1
,
o2
)
->
{
if
(
o1
.
getSort
()
==
null
&&
o2
.
getSort
()
!=
null
)
{
return
-
1
;
}
else
if
(
o1
.
getSort
()
!=
null
&&
o2
.
getSort
()
==
null
)
{
return
1
;
}
else
if
(
o1
.
getSort
()
==
null
&&
o2
.
getSort
()
==
null
)
{
return
o1
.
getCreateDate
().
compareTo
(
o2
.
getCreateDate
());
}
else
{
int
c
=
o1
.
getSort
().
compareTo
(
o2
.
getSort
());
if
(
c
!=
0
)
{
return
c
;
}
else
{
return
o1
.
getCreateDate
().
compareTo
(
o2
.
getCreateDate
());
}
}
};
}
@Override
public
List
<
PlatOrg
>
tree
(
PlatOrgQueryDTO
dto
)
{
List
<
PlatOrg
>
list
=
list
(
dto
);
return
tree
(
list
);
}
@Override
public
List
<
PlatOrg
>
treeCount
(
PlatOrgQueryDTO
dto
)
{
List
<
PlatOrg
>
list
=
list
(
dto
);
List
<
PlatOrg
>
tree
=
tree
(
list
);
// list = new ArrayList<>(10);
// flat(tree,list);
//System.out.println(tntUserService.listCount(new TntUserQueryDTO()));
List
<
PlatUserCountVO
>
countVOList
=
platUserService
.
listCount
(
new
PlatUserQueryDTO
());
Map
<
String
,
Integer
>
countVOMap
=
countVOList
.
stream
().
collect
(
Collectors
.
toMap
(
PlatUserCountVO:
:
getDeptId
,
PlatUserCountVO:
:
getCount
));
Map
<
PlatOrg
,
List
<
PlatOrg
>>
deptMap
=
new
HashMap
<>(
16
);
List
<
PlatOrg
>
deptList
=
new
ArrayList
<>(
tree
);
for
(
int
i
=
0
;
i
<
deptList
.
size
();
i
++)
{
PlatOrg
d
=
deptList
.
get
(
i
);
List
<
PlatOrg
>
c
=
new
ArrayList
<>();
c
.
add
(
d
);
for
(
int
i1
=
0
;
i1
<
c
.
size
();
i1
++)
{
PlatOrg
ctd
=
c
.
get
(
i1
);
if
(
ctd
.
getChildren
()
!=
null
)
{
c
.
addAll
(
ctd
.
getChildren
());
}
}
if
(
d
.
getChildren
()
!=
null
)
{
deptList
.
addAll
(
d
.
getChildren
());
}
deptMap
.
put
(
d
,
c
);
}
//
// deptMap.forEach((k, v) -> {
// int i = 0;
// for (PlatOrg d : v) {
// Integer c = countVOMap.get(d.getId());
// if (c == null) {
// c = 0;
// }
// i = i + c;
// }
// k.setCount(i);
// });
return
tree
;
}
private
void
check
(
PlatOrg
dto
)
{
// PlatMenu old = getOne(new QueryWrapper<PlatOrg>().lambda()
// .eq(PlatMenu::getCode, dto.getCode()));
// if (old != null && !old.getId().equals(dto.getId())) {
// throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR_NAME_DUPLICATE);
// }
PlatOrg
parent
=
getById
(
dto
.
getParentId
());
// if (parent != null) {
// if (DeptEnum.DeptTagEnum.GROUP.getValue().equals(parent.getTag())) {
// if (!DeptEnum.DeptTagEnum.BRAND.getValue().equals(dto.getTag()) && !DeptEnum.DeptTagEnum.HOTEL.getValue().equals(dto.getTag())) {
// throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR_AUTH_DEPT_LEVEL);
// }
// }
// if (DeptEnum.DeptTagEnum.BRAND.getValue().equals(parent.getTag())) {
// if (!DeptEnum.DeptTagEnum.HOTEL.getValue().equals(dto.getTag()) && !DeptEnum.DeptTagEnum.BRAND.getValue().equals(dto.getTag())) {
// throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR_AUTH_DEPT_LEVEL);
// }
// }
// if (DeptEnum.DeptTagEnum.HOTEL.getValue().equals(parent.getTag())) {
// if (!DeptEnum.DeptTagEnum.DEPT.getValue().equals(dto.getTag())) {
// throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR_AUTH_DEPT_LEVEL);
// }
// }
// if (DeptEnum.DeptTagEnum.DEPT.getValue().equals(parent.getTag())) {
// if (!DeptEnum.DeptTagEnum.DEPT.getValue().equals(dto.getTag())) {
// throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR_AUTH_DEPT_LEVEL);
// }
// }
//
// if (DeptEnum.DeptTypeEnum.DEFAULT.getValue().equals(parent.getType()) && DeptEnum.DeptTypeEnum.SELF.getValue().equals(dto.getType())) {
// throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR);//要不要具体化
// }
//
// }
//
// if (DeptEnum.DeptTagEnum.HOTEL.getValue().equals(dto.getTag()) && StringUtils.isBlank(dto.getHotelId())) {
// throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR);//要不要具体化
// }
// if (TreeConst.TOP_LEVEL.equals(dto.getParentId())) {
// dto.setLevel(0);
// } else {
// dto.setLevel(parent.getLevel() + 1);
// }
}
@Transactional
@Override
public
void
add
(
PlatOrg
dto
)
{
check
(
dto
);
dto
.
setTenantId
(
TenantIdUtil
.
getTenantId
());
save
(
dto
);
// if (DeptEnum.DeptTagEnum.HOTEL.getValue().equals(dto.getTag())) {
// tntAsyncCommonService.copyConfigForHotel(dto);
// }
}
@Transactional
@Override
public
void
edit
(
PlatOrg
dto
)
{
check
(
dto
);
updateById
(
dto
);
dto
.
setTenantId
(
TenantIdUtil
.
getTenantId
());
// if (DeptEnum.DeptTagEnum.HOTEL.getValue().equals(dto.getTag())) {
//// long configCategoryCount = tntConfigCategoryService.count(new QueryWrapper<TntConfigCategory>().lambda()
//// .eq(TntConfigCategory::getDeptId, dto.getId()));
////
//// if (configCategoryCount != 0) {
//// return;
//// }
// tntAsyncCommonService.copyConfigForHotel(dto);
// }
}
@Override
public
PlatOrg
view
(
String
id
)
{
return
getById
(
id
);
}
@Transactional
@Override
public
void
del
(
String
id
)
{
List
<
PlatOrg
>
list
=
new
ArrayList
<>(
10
);
List
<
PlatOrg
>
children
=
list
(
new
QueryWrapper
<
PlatOrg
>().
lambda
()
.
eq
(
PlatOrg:
:
getParentId
,
id
));
while
(!
children
.
isEmpty
())
{
list
.
addAll
(
children
);
List
<
String
>
idList
=
StreamUtil
.
map
(
children
,
PlatOrg:
:
getId
);
idList
.
add
(-
1
+
""
);
children
=
list
(
new
QueryWrapper
<
PlatOrg
>().
lambda
()
.
in
(
PlatOrg:
:
getParentId
,
idList
));
}
List
<
String
>
idList
=
StreamUtil
.
map
(
list
,
PlatOrg:
:
getId
);
idList
.
add
(
id
);
remove
(
new
QueryWrapper
<
PlatOrg
>().
lambda
()
.
in
(
PlatOrg:
:
getId
,
idList
));
}
@Override
public
List
<
PlatOrg
>
listWithoutDept
()
{
List
<
PlatOrg
>
deptList
=
list
(
new
QueryWrapper
<
PlatOrg
>().
lambda
()
//.eq(PlatOrg::getTenantId, TenantIdUtil.getTenantId())
// .in(PlatOrg::getTag,
// Arrays.asList(
// DeptEnum.DeptTagEnum.GROUP.getValue(),
// DeptEnum.DeptTagEnum.BRAND.getValue(),
// DeptEnum.DeptTagEnum.HOTEL.getValue()
// )
// )
.
eq
(
PlatOrg:
:
getStatus
,
CommonEnum
.
YES
.
getValue
())
.
orderByAsc
(
PlatOrg:
:
getSort
)
.
orderByAsc
(
PlatOrg:
:
getCreateDate
)
);
return
deptList
;
}
@Override
public
List
<
PlatOrg
>
getSelfAndAllParent
(
String
deptId
)
{
return
baseMapper
.
getSelfAndParents
(
deptId
);
}
@Override
public
List
<
PlatOrg
>
getDeptSelfAndChildren
(
String
deptId
)
{
//给筛选列表用 包含自己
List
<
PlatOrg
>
newList
=
platUserService
.
getDeptList
();
if
(
StringUtils
.
isBlank
(
deptId
))
{
return
newList
;
}
else
{
List
<
PlatOrg
>
treeList
=
this
.
tree
(
newList
);
List
<
PlatOrg
>
deptList
=
StreamUtil
.
filter
(
newList
,
e
->
e
.
getId
().
equals
(
deptId
));
if
(!
deptList
.
isEmpty
())
{
this
.
flat
(
deptList
.
get
(
0
).
getChildren
(),
deptList
);
}
return
deptList
;
}
}
}
server-service/src/main/java/com/makeit/server/platform/auth/impl/PlatUserServiceImpl.java
View file @
87b83909
package
com
.
makeit
.
server
.
platform
.
auth
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.makeit.common.dto.LoginDTO
;
import
com.makeit.common.dto.StatusDTO
;
import
com.makeit.common.entity.BaseBusEntity
;
import
com.makeit.common.page.PageReqDTO
;
import
com.makeit.common.page.PageVO
;
import
com.makeit.entity.platform.auth.PlatOrg
;
import
com.makeit.entity.platform.auth.PlatRole
;
import
com.makeit.entity.platform.auth.PlatRoleMenu
;
import
com.makeit.entity.platform.auth.PlatRoleOrg
;
import
com.makeit.entity.platform.auth.PlatUser
;
import
com.makeit.entity.platform.auth.PlatUserRole
;
import
com.makeit.entity.saas.PlatMenu
;
import
com.makeit.entity.saas.PlatTenant
;
import
com.makeit.entity.saas.PlatTenantMenu
;
import
com.makeit.enums.CodeMessageEnum
;
import
com.makeit.enums.CommonEnum
;
import
com.makeit.enums.IsTenantAccountEnum
;
import
com.makeit.enums.biz.auth.SysEnum
;
import
com.makeit.enums.biz.sys.SysDictCategoryConst
;
import
com.makeit.exception.BusinessException
;
import
com.makeit.global.aspect.tenant.TenantIdUtil
;
import
com.makeit.mapper.platform.auth.PlatUserMapper
;
import
com.makeit.module.admin.dto.plat.PlatMenuDTOVO
;
import
com.makeit.module.admin.dto.plat.PlatRoleDTOVO
;
import
com.makeit.module.admin.dto.plat.PlatUserDTOVO
;
import
com.makeit.module.admin.dto.plat.PlatUserQueryDTO
;
import
com.makeit.module.admin.vo.plat.PlatButtonVO
;
import
com.makeit.module.admin.vo.plat.PlatTenantVO
;
import
com.makeit.module.admin.vo.plat.PlatUserLoginVO
;
import
com.makeit.module.admin.vo.plat.PlatUserRoleMenuRedisVO
;
import
com.makeit.module.system.service.SysDictionaryCategoryService
;
import
com.makeit.server.platform.auth.PlatOrgService
;
import
com.makeit.server.platform.auth.PlatRoleMenuService
;
import
com.makeit.server.platform.auth.PlatRoleOrgService
;
import
com.makeit.server.platform.auth.PlatRoleService
;
import
com.makeit.server.platform.auth.PlatUserRoleService
;
import
com.makeit.server.platform.auth.PlatUserService
;
import
com.makeit.service.saas.PlatMenuService
;
import
com.makeit.service.saas.PlatTenantMenuService
;
import
com.makeit.service.saas.PlatTenantService
;
import
com.makeit.utils.data.convert.BeanDtoVoUtils
;
import
com.makeit.utils.data.convert.JsonUtil
;
import
com.makeit.utils.data.convert.PageUtil
;
import
com.makeit.utils.data.convert.StreamUtil
;
import
com.makeit.utils.data.id.IdGen
;
import
com.makeit.utils.sql.groupby.DynamicQuery
;
import
com.makeit.utils.sql.groupby.SqlUtil
;
import
com.makeit.utils.sql.join.JoinUtil
;
import
com.makeit.utils.user.PasswordUtils
;
import
com.makeit.utils.user.TokenUtil
;
import
com.makeit.utils.user.plat.PlatUserUtil
;
import
com.makeit.utils.user.plat.PlatUserVO
;
import
com.makeit.vo.platform.auth.PlatPersonDTOVO
;
import
com.makeit.vo.platform.auth.PlatUserCountVO
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.HashSet
;
import
java.util.LinkedHashSet
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.Set
;
import
java.util.function.Consumer
;
import
java.util.stream.Collectors
;
/**
* @author lixl
...
...
@@ -14,5 +87,1148 @@ import org.springframework.stereotype.Service;
@Service
public
class
PlatUserServiceImpl
extends
ServiceImpl
<
PlatUserMapper
,
PlatUser
>
implements
PlatUserService
{
@Autowired
private
PlatTenantService
platTenantService
;
@Autowired
private
PlatTenantMenuService
platTenantMenuService
;
@Autowired
private
PlatUserRoleService
platUserRoleService
;
@Autowired
private
PlatRoleService
platRoleService
;
@Autowired
private
PlatRoleMenuService
platRoleMenuService
;
@Autowired
private
PlatMenuService
platMenuService
;
@Autowired
private
PlatRoleOrgService
platRoleOrgService
;
@Autowired
private
PlatOrgService
platOrgService
;
//
// @Autowired
// private TntRoleWechatMenuService tntRoleWechatMenuService;
//
//
// @Autowired
// private TntFrequentUserService tntFrequentUserService;
//
//
// @Autowired
// private TntUserLabelService tntUserLabelService;
// @Autowired
// private TntCustomGroupService tntCustomGroupService;
//
// @Autowired
// private TntCustomGroupUserService tntCustomGroupUserService;
// @Autowired
// private TntLoginLogService tntLoginLogService;
@Autowired
private
SysDictionaryCategoryService
sysDictionaryCategoryService
;
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
PlatUserServiceImpl
.
class
);
// @Lazy
// @Autowired
// private TntAsyncMessageService tntAsyncMessageService;
private
LambdaQueryWrapper
<
PlatUser
>
listTenantLambdaQueryWrapper
(
PlatUserQueryDTO
dto
,
Consumer
<
LambdaQueryWrapper
<
PlatUser
>>
consumer
)
{
LambdaQueryWrapper
<
PlatUser
>
lambdaQueryWrapper
=
new
QueryWrapper
<
PlatUser
>().
lambda
()
.
like
(
StringUtils
.
isNotBlank
(
dto
.
getAccount
()),
PlatUser:
:
getAccount
,
dto
.
getAccount
())
//.like(StringUtils.isNotBlank(dto.getUsername()), TntUser::getUserName, dto.getUsername())
.
like
(
StringUtils
.
isNotBlank
(
dto
.
getName
()),
PlatUser:
:
getUsername
,
dto
.
getName
())
.
like
(
StringUtils
.
isNotBlank
(
dto
.
getMobile
()),
PlatUser:
:
getMobile
,
dto
.
getMobile
())
.
eq
(
StringUtils
.
isNotBlank
(
dto
.
getStatus
()),
PlatUser:
:
getStatus
,
dto
.
getStatus
());
if
(
consumer
!=
null
)
{
consumer
.
accept
(
lambdaQueryWrapper
);
}
lambdaQueryWrapper
.
orderByDesc
(
PlatUser:
:
getId
);
return
lambdaQueryWrapper
;
}
private
void
fillTenant
(
List
<
PlatUserDTOVO
>
tntUserList
)
{
List
<
String
>
userIdList
=
StreamUtil
.
map
(
tntUserList
,
PlatUserDTOVO:
:
getId
);
userIdList
.
add
(-
1
+
""
);
List
<
PlatTenant
>
tenantList
=
platTenantService
.
list
(
new
QueryWrapper
<
PlatTenant
>().
lambda
()
.
in
(
PlatTenant:
:
getTntUserId
,
userIdList
)
.
orderByAsc
(
PlatTenant:
:
getCreateDate
)
);
Map
<
String
,
List
<
PlatTenant
>>
userIdTenantListMap
=
StreamUtil
.
groupBy
(
tenantList
,
PlatTenant:
:
getTntUserId
);
tntUserList
.
forEach
(
e
->
{
List
<
PlatTenant
>
tenantList1
=
userIdTenantListMap
.
get
(
e
.
getId
());
if
(
tenantList1
!=
null
)
{
e
.
setTenantNameList
(
String
.
join
(
","
,
StreamUtil
.
map
(
tenantList1
,
PlatTenant:
:
getName
)));
}
});
}
@Override
public
PageVO
<
PlatUserDTOVO
>
pageTenant
(
PageReqDTO
<
PlatUserQueryDTO
>
page
)
{
PlatUserQueryDTO
dto
=
page
.
getData
();
Page
<
PlatUser
>
p
=
PageUtil
.
toMpPage
(
page
);
Page
<
PlatUser
>
pageList
=
page
(
p
,
listTenantLambdaQueryWrapper
(
dto
,
qw
->
{
qw
.
eq
(
PlatUser:
:
getIsTenant
,
IsTenantAccountEnum
.
YES
.
getValue
());
}));
List
<
PlatUserDTOVO
>
tntUserDTOVOList
=
BeanDtoVoUtils
.
listVo
(
pageList
.
getRecords
(),
PlatUserDTOVO
.
class
);
fillTenant
(
tntUserDTOVOList
);
return
PageUtil
.
toPageVO
(
tntUserDTOVOList
,
pageList
);
}
@Override
public
List
<
PlatUserDTOVO
>
listTenant
(
PlatUserQueryDTO
dto
)
{
return
BeanDtoVoUtils
.
listVo
(
list
(
listTenantLambdaQueryWrapper
(
dto
,
qw
->
{
qw
.
eq
(
PlatUser:
:
getIsTenant
,
IsTenantAccountEnum
.
YES
.
getValue
());
})),
PlatUserDTOVO
.
class
);
}
private
void
check
(
PlatUserDTOVO
dto
)
{
List
<
PlatUser
>
userList
=
list
(
new
QueryWrapper
<
PlatUser
>().
lambda
()
//.eq(TntUser::getIsTenant, IsTenantAccountEnum.YES.getValue())
.
and
(
qw
->
{
qw
.
eq
(
PlatUser:
:
getAccount
,
dto
.
getAccount
())
.
or
()
.
eq
(
PlatUser:
:
getMobile
,
dto
.
getMobile
());
})
);
userList
.
forEach
(
e
->
{
if
(
e
.
getAccount
().
equals
(
dto
.
getAccount
())
&&
!
e
.
getId
().
equals
(
dto
.
getId
()))
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR_USER_ACCOUNT_DUPLICATE
);
}
if
(
e
.
getMobile
().
equals
(
dto
.
getMobile
())
&&
!
e
.
getId
().
equals
(
dto
.
getId
()))
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR_USER_MOBILE_DUPLICATE
);
}
});
}
private
void
checkPerson
(
PlatUserDTOVO
dto
)
{
List
<
PlatUser
>
userList
=
list
(
new
QueryWrapper
<
PlatUser
>().
lambda
()
.
eq
(
PlatUser:
:
getIsTenant
,
IsTenantAccountEnum
.
NO
.
getValue
())
.
and
(
qw
->
{
qw
.
eq
(
PlatUser:
:
getAccount
,
dto
.
getAccount
())
.
or
()
.
eq
(
PlatUser:
:
getMobile
,
dto
.
getMobile
());
})
);
userList
.
forEach
(
e
->
{
if
(
e
.
getAccount
().
equals
(
dto
.
getAccount
())
&&
!
e
.
getId
().
equals
(
dto
.
getId
()))
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR_USER_ACCOUNT_DUPLICATE
);
}
if
(
e
.
getMobile
().
equals
(
dto
.
getMobile
())
&&
!
e
.
getId
().
equals
(
dto
.
getId
()))
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR_USER_MOBILE_DUPLICATE
);
}
});
}
@Override
public
void
setPassword
(
PlatUser
user
)
{
if
(
StringUtils
.
isNotBlank
(
user
.
getPassword
()))
{
PasswordUtils
.
validatePasswordFormat
(
user
.
getPassword
());
user
.
setPassword
(
PasswordUtils
.
encryptPassword
(
user
.
getPassword
()));
}
}
@Transactional
@Override
public
void
add
(
PlatUserDTOVO
dto
)
{
check
(
dto
);
PlatUser
user
=
BeanDtoVoUtils
.
convert
(
dto
,
PlatUser
.
class
);
user
.
setIsTenant
(
CommonEnum
.
YES
.
getValue
());
if
(
StringUtils
.
isBlank
(
user
.
getPassword
()))
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR_USER_PASSWORD_NOT_BLANK
);
}
setPassword
(
user
);
save
(
user
);
dto
.
setId
(
user
.
getId
());
}
@Transactional
@Override
public
void
edit
(
PlatUserDTOVO
dto
)
{
dto
.
setAccount
(
null
);
check
(
dto
);
PlatUser
user
=
BeanDtoVoUtils
.
convert
(
dto
,
PlatUser
.
class
);
user
.
setIsTenant
(
CommonEnum
.
YES
.
getValue
());
setPassword
(
user
);
updateById
(
user
);
}
@Transactional
@Override
public
void
changePassword
(
PlatUserDTOVO
dto
)
{
PlatUser
user
=
getById
(
dto
.
getId
());
user
.
setPassword
(
dto
.
getPassword
());
setPassword
(
user
);
updateById
(
user
);
}
@Override
public
PlatUserDTOVO
view
(
String
id
)
{
PlatUserDTOVO
userVO
=
BeanDtoVoUtils
.
convert
(
getById
(
id
),
PlatUserDTOVO
.
class
);
return
userVO
;
}
@Transactional
@Override
public
void
del
(
String
id
)
{
long
count
=
platTenantService
.
count
(
new
QueryWrapper
<
PlatTenant
>().
lambda
()
.
eq
(
PlatTenant:
:
getTntUserId
,
id
));
if
(
count
>
0
)
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR_CANT_REMOVE_TENANT_USER_LINK
);
}
removeById
(
id
);
}
@Transactional
@Override
public
void
changeStatus
(
StatusDTO
dto
)
{
if
(
Arrays
.
stream
(
CommonEnum
.
values
()).
noneMatch
(
e
->
e
.
getValue
().
equals
(
dto
.
getStatus
())))
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR
);
}
PlatUser
user
=
getById
(
dto
.
getId
());
if
(
user
.
getStatus
().
equals
(
dto
.
getStatus
()))
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR
);
}
user
.
setStatus
(
dto
.
getStatus
());
updateById
(
user
);
}
private
void
setTenantList
(
PlatUserLoginVO
tntUserLoginVO
)
{
if
(
IsTenantAccountEnum
.
YES
.
getValue
().
equals
(
tntUserLoginVO
.
getIsTenant
()))
{
List
<
PlatTenant
>
tntTenantList
=
platTenantService
.
list
(
new
QueryWrapper
<
PlatTenant
>().
lambda
()
.
eq
(
PlatTenant:
:
getStatus
,
CommonEnum
.
YES
.
getValue
())
.
eq
(
PlatTenant:
:
getTntUserId
,
tntUserLoginVO
.
getId
())
.
orderByAsc
(
PlatTenant:
:
getCreateDate
)
);
List
<
PlatTenantVO
>
voList
=
BeanDtoVoUtils
.
listVo
(
tntTenantList
,
PlatTenantVO
.
class
);
tntUserLoginVO
.
setTenantList
(
voList
);
if
(
tntTenantList
.
isEmpty
())
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR_TENANT_NOT_EXIST
);
}
}
}
@Override
public
List
<
PlatTenant
>
setTenantList
(
PlatUser
tntUser
)
{
if
(
IsTenantAccountEnum
.
YES
.
getValue
().
equals
(
tntUser
.
getIsTenant
()))
{
List
<
PlatTenant
>
tntTenantList
=
platTenantService
.
list
(
new
QueryWrapper
<
PlatTenant
>().
lambda
()
.
eq
(
PlatTenant:
:
getStatus
,
CommonEnum
.
YES
.
getValue
())
.
eq
(
PlatTenant:
:
getTntUserId
,
tntUser
.
getId
())
.
orderByAsc
(
PlatTenant:
:
getCreateDate
)
);
return
tntTenantList
;
}
return
null
;
}
@Override
public
PlatUserLoginVO
login
(
LoginDTO
loginDTO
)
{
if
(
StringUtils
.
isBlank
(
loginDTO
.
getAccount
()))
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR
);
}
if
(
StringUtils
.
isBlank
(
loginDTO
.
getPassword
()))
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR
);
}
PlatUser
tntUser
=
getOne
(
new
QueryWrapper
<
PlatUser
>().
lambda
()
.
eq
(
PlatUser:
:
getAccount
,
loginDTO
.
getAccount
())
.
or
()
.
eq
(
PlatUser:
:
getMobile
,
loginDTO
.
getAccount
())
);
//这样在所有租户内工号不能重复
if
(
tntUser
==
null
)
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR_AUTH_USER_PASSWORD
);
}
if
(
CommonEnum
.
NO
.
getValue
().
equals
(
tntUser
.
getStatus
()))
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR_AUTH_USER_HAS_DISABLED
);
}
if
(!
PasswordUtils
.
validatePassword
(
loginDTO
.
getPassword
(),
tntUser
.
getPassword
()))
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR_AUTH_USER_PASSWORD
);
}
PlatUserLoginVO
userLoginVO
=
BeanDtoVoUtils
.
convert
(
tntUser
,
PlatUserLoginVO
.
class
);
String
token
=
IdGen
.
getUUID
();
userLoginVO
.
setToken
(
token
);
TokenUtil
.
tntLogin
(
token
,
userLoginVO
);
setTenantList
(
userLoginVO
);
return
userLoginVO
;
}
private
void
fillMenuList
(
List
<
PlatMenu
>
menuList
,
PlatUserLoginVO
userLoginVO
)
{
// List<TntMenu> buttonList = StreamUtil.filter(menuList, e -> SysEnum.MenuTypeEnum.MENU.getValue().equals(e.getCategory()) || SysEnum.MenuTypeEnum.BUTTON.getValue().equals(e.getCategory()));
//
// List<TntMenu> nonButtonList = StreamUtil.filter(menuList, e -> SysEnum.MenuTypeEnum.CATALOGUE.getValue().equals(e.getCategory()) || SysEnum.MenuTypeEnum.MENU.getValue().equals(e.getCategory()));
List
<
PlatMenu
>
buttonList
=
new
ArrayList
<>(
10
);
List
<
PlatMenu
>
nonButtonList
=
new
ArrayList
<>(
10
);
String
catalogue
=
SysEnum
.
MenuTypeEnum
.
CATALOGUE
.
getValue
();
String
menu
=
SysEnum
.
MenuTypeEnum
.
MENU
.
getValue
();
String
button
=
SysEnum
.
MenuTypeEnum
.
BUTTON
.
getValue
();
menuList
.
forEach
(
e
->
{
if
(
menu
.
equals
(
e
.
getResourceType
())
||
button
.
equals
(
e
.
getResourceType
()))
{
buttonList
.
add
(
e
);
}
if
(
catalogue
.
equals
(
e
.
getResourceType
())
||
menu
.
equals
(
e
.
getResourceType
()))
{
nonButtonList
.
add
(
e
);
}
});
List
<
PlatMenuDTOVO
>
menuVOList
=
platMenuService
.
tree
(
BeanDtoVoUtils
.
listVo
(
nonButtonList
,
PlatMenuDTOVO
.
class
));
userLoginVO
.
setButtonList
(
BeanDtoVoUtils
.
listVo
(
buttonList
,
PlatButtonVO
.
class
));
userLoginVO
.
setMenuList
(
menuVOList
);
}
private
void
fillMenuList2
(
List
<
PlatMenu
>
menuList
,
PlatUserLoginVO
userLoginVO
)
{
List
<
PlatMenuDTOVO
>
menuVOList
=
platMenuService
.
tree
(
BeanDtoVoUtils
.
listVo
(
menuList
,
PlatMenuDTOVO
.
class
));
userLoginVO
.
setMenuList
(
menuVOList
);
}
@Override
public
List
<
PlatMenu
>
getMenuListByTenantId
(
String
tenantId
)
{
List
<
PlatTenantMenu
>
tntTenantMenuList
=
platTenantMenuService
.
list
(
new
QueryWrapper
<
PlatTenantMenu
>().
lambda
()
.
eq
(
PlatTenantMenu:
:
getTenantId
,
tenantId
));
List
<
String
>
menuIdList
=
StreamUtil
.
map
(
tntTenantMenuList
,
PlatTenantMenu:
:
getMenuId
);
menuIdList
.
add
(-
1
+
""
);
List
<
PlatMenu
>
menuList
=
platMenuService
.
list
(
new
QueryWrapper
<
PlatMenu
>().
lambda
()
.
in
(
PlatMenu:
:
getId
,
menuIdList
)
.
eq
(
PlatMenu:
:
getStatus
,
CommonEnum
.
YES
.
getValue
())
.
orderByAsc
(
PlatMenu:
:
getSort
)
.
orderByAsc
(
PlatMenu:
:
getCreateDate
)
);
return
menuList
;
}
private
void
supperRoleMenuList
(
PlatUserLoginVO
userLoginVO
)
{
fillMenuList
(
getMenuListByTenantId
(
userLoginVO
.
getTenantId
()),
userLoginVO
);
}
private
void
supperRoleMenuList2
(
PlatUserLoginVO
userLoginVO
)
{
fillMenuList2
(
getMenuListByTenantId
(
userLoginVO
.
getTenantId
()),
userLoginVO
);
}
private
void
setRoleMenuToRedis
(
PlatUserLoginVO
userLoginVO
)
{
PlatUserRoleMenuRedisVO
tntUserRoleMenuRedisVO
=
new
PlatUserRoleMenuRedisVO
();
tntUserRoleMenuRedisVO
.
setId
(
userLoginVO
.
getId
());
tntUserRoleMenuRedisVO
.
setIsTenant
(
tntUserRoleMenuRedisVO
.
getIsTenant
());
if
(
userLoginVO
.
getRoleList
()
!=
null
)
{
tntUserRoleMenuRedisVO
.
setRoleCodeList
(
StreamUtil
.
map
(
userLoginVO
.
getRoleList
(),
PlatRoleDTOVO:
:
getCode
));
}
if
(
userLoginVO
.
getButtonList
()
!=
null
)
{
tntUserRoleMenuRedisVO
.
setButtonCodeList
(
StreamUtil
.
map
(
userLoginVO
.
getButtonList
(),
PlatButtonVO:
:
getCode
));
}
TokenUtil
.
tntLoginRoleMenu
(
tntUserRoleMenuRedisVO
);
}
@Override
public
PlatUserLoginVO
getUserVO
()
{
return
PlatUserUtil
.
getUserVODetail
();
}
@Override
public
PlatPersonDTOVO
getUserDetail
()
{
PlatPersonDTOVO
tntPersonDTOVO
=
BeanDtoVoUtils
.
convert
(
getById
(
PlatUserUtil
.
getUserId
()),
PlatPersonDTOVO
.
class
);
fillDept
(
Arrays
.
asList
(
tntPersonDTOVO
));
return
tntPersonDTOVO
;
}
// @Override
// public List<String> getCustomGroupNameList() {
// return getCustomGroupNameList(PlatUserUtil.getUserId());
// }
@Override
public
List
<
PlatRole
>
getRoleList
(
String
userId
)
{
List
<
PlatUserRole
>
userRoleList
=
platUserRoleService
.
list
(
new
QueryWrapper
<
PlatUserRole
>().
lambda
()
.
eq
(
PlatUserRole:
:
getUserId
,
userId
));
List
<
String
>
roleIdList
=
StreamUtil
.
map
(
userRoleList
,
PlatUserRole:
:
getRoleId
);
roleIdList
.
add
(-
1
+
""
);
List
<
PlatRole
>
roleList
=
platRoleService
.
list
(
new
QueryWrapper
<
PlatRole
>().
lambda
()
.
in
(
PlatRole:
:
getId
,
roleIdList
)
);
return
roleList
;
}
private
List
<
PlatMenu
>
getMenuListByUserId
(
PlatUserLoginVO
userLoginVO
)
{
List
<
PlatRole
>
roleList
=
getRoleList
(
userLoginVO
.
getId
());
List
<
String
>
roleIdList
=
StreamUtil
.
map
(
roleList
,
PlatRole:
:
getId
);
roleIdList
.
add
(-
1
+
""
);
List
<
PlatRoleMenu
>
roleMenuList
=
platRoleMenuService
.
list
(
new
QueryWrapper
<
PlatRoleMenu
>().
lambda
()
.
in
(
PlatRoleMenu:
:
getRoleId
,
roleIdList
));
List
<
String
>
menuIdList
=
StreamUtil
.
map
(
roleMenuList
,
PlatRoleMenu:
:
getMenuId
);
menuIdList
.
add
(-
1
+
""
);
List
<
PlatMenu
>
menuList
=
platMenuService
.
list
(
new
QueryWrapper
<
PlatMenu
>().
lambda
()
.
in
(
PlatMenu:
:
getId
,
menuIdList
)
.
eq
(
PlatMenu:
:
getStatus
,
CommonEnum
.
YES
.
getValue
())
.
orderByAsc
(
PlatMenu:
:
getSort
)
.
orderByAsc
(
PlatMenu:
:
getCreateDate
)
);
// List<TntMenu> menuList = getMenuListByUserId(userLoginVO.getId());
// menuList = new ArrayList<>(new HashSet<>(menuList));
userLoginVO
.
setRoleList
(
BeanDtoVoUtils
.
listVo
(
roleList
,
PlatRoleDTOVO
.
class
));
if
(
StringUtils
.
isNotBlank
(
userLoginVO
.
getTenantId
()))
{
Set
<
String
>
menuIdSet
=
StreamUtil
.
mapToSet
(
getMenuListByTenantId
(
userLoginVO
.
getTenantId
()),
PlatMenu:
:
getId
);
menuList
=
StreamUtil
.
filter
(
menuList
,
e
->
menuIdSet
.
contains
(
e
.
getId
()));
}
return
menuList
;
}
@Override
public
PlatUserLoginVO
getRoleAndMenuList
()
{
//TODO 用join做
//TODO 只返回必要字段 菜单和角色
long
s
=
System
.
currentTimeMillis
();
String
tenantId
=
TenantIdUtil
.
getTenantId
();
if
(
StringUtils
.
isBlank
(
tenantId
))
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR_TENANT_ID_NOT_BLANK
);
}
platTenantService
.
checkTenant
(
tenantId
);
PlatUserVO
tntUserVO
=
PlatUserUtil
.
getUserVO
();
PlatUserLoginVO
userLoginVO
=
BeanDtoVoUtils
.
convert
(
tntUserVO
,
PlatUserLoginVO
.
class
);
//tntLoginLogService.addTenant(null, null);
if
(
IsTenantAccountEnum
.
YES
.
getValue
().
equals
(
tntUserVO
.
getIsTenant
()))
{
userLoginVO
.
setTenantId
(
tenantId
);
TokenUtil
.
platLogin
(
TokenUtil
.
tntGetToken
(),
userLoginVO
);
supperRoleMenuList
(
userLoginVO
);
setRoleMenuToRedis
(
userLoginVO
);
return
userLoginVO
;
}
List
<
PlatMenu
>
menuList
=
getMenuListByUserId
(
userLoginVO
);
fillMenuList
(
menuList
,
userLoginVO
);
setRoleMenuToRedis
(
userLoginVO
);
return
userLoginVO
;
}
@Override
public
PlatUserLoginVO
getRoleAndMenuList2
()
{
//TODO 用join做
//TODO 只返回必要字段 菜单和角色
PlatUserVO
tntUserVO
=
PlatUserUtil
.
getUserVO
();
PlatUserLoginVO
userLoginVO
=
BeanDtoVoUtils
.
convert
(
tntUserVO
,
PlatUserLoginVO
.
class
);
if
(
IsTenantAccountEnum
.
YES
.
getValue
().
equals
(
tntUserVO
.
getIsTenant
()))
{
userLoginVO
.
setTenantId
(
TenantIdUtil
.
getTenantId
());
supperRoleMenuList2
(
userLoginVO
);
return
userLoginVO
;
}
List
<
PlatMenu
>
menuList
=
getMenuListByUserId
(
userLoginVO
);
fillMenuList2
(
menuList
,
userLoginVO
);
return
userLoginVO
;
}
private
void
supperWechatMenuList
(
PlatUserLoginVO
userLoginVO
)
{
userLoginVO
.
setWechatMenuCodeList
(
sysDictionaryCategoryService
.
getCodeListByPrefix
(
SysDictCategoryConst
.
WECHAT_MENU_PREFIX
));
}
// @Override
// public PlatUserLoginVO getWechatMenuList() {
// //TODO 用join做
// //TODO 只返回必要字段 菜单和角色
//
// PlatUserVO tntUserVO = PlatUserUtil.getUserVO();
//
// PlatUserLoginVO userLoginVO = BeanDtoVoUtils.convert(tntUserVO, PlatUserLoginVO.class);
//
// if (IsTenantAccountEnum.YES.getValue().equals(userLoginVO.getIsTenant())) {
//
// supperWechatMenuList(userLoginVO);
// return userLoginVO;
// }
//
// List<PlatRole> roleList = getRoleList(userLoginVO.getId());
// List<String> roleIdList = StreamUtil.map(roleList, PlatRole::getId);
// roleIdList.add(-1 + "");
//
// List<PlatRoleWechatMenu> roleWechatMenuList = tntRoleWechatMenuService.list(new QueryWrapper<PlatRoleWechatMenu>().lambda()
// .in(PlatRoleWechatMenu::getRoleId, roleIdList));
//
// userLoginVO.setWechatMenuCodeList(StreamUtil.map(roleWechatMenuList, PlatRoleWechatMenu::getMenuId));
//
//
// return userLoginVO;
// }
@Override
public
void
logout
()
{
TokenUtil
.
tntLogout
();
}
public
List
<
String
>
userIdListByRoleId
(
PlatUserQueryDTO
dto
)
{
List
<
String
>
userIdList
=
new
ArrayList
<>(
10
);
userIdList
.
add
(-
1
+
""
);
if
(
StringUtils
.
isNotBlank
(
dto
.
getRoleId
()))
{
List
<
PlatUserRole
>
userRoleList
=
platUserRoleService
.
list
(
new
QueryWrapper
<
PlatUserRole
>().
lambda
()
.
eq
(
PlatUserRole:
:
getRoleId
,
dto
.
getRoleId
()));
userIdList
.
addAll
(
StreamUtil
.
map
(
userRoleList
,
PlatUserRole:
:
getUserId
));
}
if
(
StringUtils
.
isNotBlank
(
dto
.
getNotRoleId
()))
{
List
<
PlatUserRole
>
userRoleList
=
platUserRoleService
.
list
(
new
QueryWrapper
<
PlatUserRole
>().
lambda
()
.
eq
(
PlatUserRole:
:
getRoleId
,
dto
.
getNotRoleId
()));
userIdList
.
addAll
(
StreamUtil
.
map
(
userRoleList
,
PlatUserRole:
:
getUserId
));
}
return
userIdList
;
}
private
void
roleIdFilter
(
LambdaQueryWrapper
<
PlatUser
>
lambdaQueryWrapper
,
PlatUserQueryDTO
dto
)
{
//TODO join
List
<
String
>
userIdList
=
userIdListByRoleId
(
dto
);
lambdaQueryWrapper
.
in
(
StringUtils
.
isNotBlank
(
dto
.
getRoleId
()),
PlatUser:
:
getId
,
userIdList
)
.
notIn
(
StringUtils
.
isNotBlank
(
dto
.
getNotRoleId
()),
PlatUser:
:
getId
,
userIdList
);
}
private
LambdaQueryWrapper
<
PlatUser
>
listLambdaQueryWrapper
(
PlatUserQueryDTO
dto
)
{
//TODO 用标签查人可能慢
List
<
String
>
labelUserIdList
=
new
ArrayList
<>(
10
);
labelUserIdList
.
add
(-
1
+
""
);
// if (StringUtils.isNotBlank(dto.getLabelId())) {
// labelUserIdList.addAll(
// StreamUtil.map(
// tntUserLabelService.list(new QueryWrapper<PlatUserLabel>().lambda()
// .eq(PlatUserLabel::getLabelId, dto.getLabelId())
// .eq(PlatUserLabel::getStatus, LabelEnum.LabelUserStatusEnum.EFFECT.getValue())
// ),
// PlatUserLabel::getPlatUserId)
// );
// }
LambdaQueryWrapper
<
PlatUser
>
lambdaQueryWrapper
=
new
QueryWrapper
<
PlatUser
>().
lambda
()
.
eq
(
PlatUser:
:
getIsTenant
,
IsTenantAccountEnum
.
NO
.
getValue
())
.
like
(
StringUtils
.
isNotBlank
(
dto
.
getAccount
()),
PlatUser:
:
getAccount
,
dto
.
getAccount
())
.
in
(
dto
.
getAccountList
()
!=
null
,
PlatUser:
:
getAccount
,
dto
.
getAccountList
())
.
like
(
StringUtils
.
isNotBlank
(
dto
.
getName
()),
PlatUser:
:
getUsername
,
dto
.
getName
())
.
in
(
dto
.
getNameList
()
!=
null
,
PlatUser:
:
getUsername
,
dto
.
getName
())
.
like
(
StringUtils
.
isNotBlank
(
dto
.
getMobile
()),
PlatUser:
:
getMobile
,
dto
.
getMobile
())
.
eq
(
StringUtils
.
isNotBlank
(
dto
.
getStatus
()),
PlatUser:
:
getStatus
,
dto
.
getStatus
())
.
in
(
StringUtils
.
isNotBlank
(
dto
.
getLabelId
()),
PlatUser:
:
getId
,
labelUserIdList
)
.
eq
(
PlatUser:
:
getTenantId
,
TenantIdUtil
.
getTenantId
())
.
and
(
StringUtils
.
isNotBlank
(
dto
.
getKeyword
()),
qw
->
{
qw
.
like
(
StringUtils
.
isNotBlank
(
dto
.
getKeyword
()),
PlatUser:
:
getUsername
,
dto
.
getKeyword
())
.
or
()
.
like
(
StringUtils
.
isNotBlank
(
dto
.
getKeyword
()),
PlatUser:
:
getAccount
,
dto
.
getKeyword
());
})
//.in(PlatUser::getOrgId, DeptUtil.getDeptCantTapIdList(dto.getDeptId(), dto.getFromHotel()))
;
roleIdFilter
(
lambdaQueryWrapper
,
dto
);
roleIdList
(
lambdaQueryWrapper
,
dto
);
if
(
dto
.
getDeptIdList
()
!=
null
)
{
dto
.
getDeptIdList
().
add
(-
1
+
""
);
lambdaQueryWrapper
.
in
(
PlatUser:
:
getOrgId
,
dto
.
getDeptIdList
());
}
lambdaQueryWrapper
.
orderByDesc
(
PlatUser:
:
getCreateDate
);
lambdaQueryWrapper
.
orderByDesc
(
PlatUser:
:
getId
);
return
lambdaQueryWrapper
;
}
private
void
fillDept
(
List
<
PlatPersonDTOVO
>
tntUserDTOVOList
)
{
JoinUtil
.
join
(
tntUserDTOVOList
,
platOrgService
,
PlatPersonDTOVO:
:
getDeptId
,
PlatOrg:
:
getId
,
(
p
,
d
)
->
{
p
.
setDeptName
(
d
.
getName
());
});
JoinUtil
.
joinSplit
(
tntUserDTOVOList
,
platOrgService
,
null
,
PlatPersonDTOVO:
:
getChargeDeptId
,
PlatOrg:
:
getId
,
(
p
,
d
)
->
{
p
.
setChargeDeptName
(
d
.
stream
().
map
(
PlatOrg:
:
getName
).
collect
(
Collectors
.
joining
(
","
)));
});
}
@Override
public
PageVO
<
PlatPersonDTOVO
>
page
(
PageReqDTO
<
PlatUserQueryDTO
>
page
)
{
PlatUserQueryDTO
dto
=
page
.
getData
();
Page
<
PlatUser
>
p
=
PageUtil
.
toMpPage
(
page
);
Page
<
PlatUser
>
pageList
=
page
(
p
,
listLambdaQueryWrapper
(
dto
));
List
<
PlatPersonDTOVO
>
tntUserDTOVOList
=
BeanDtoVoUtils
.
listVo
(
pageList
.
getRecords
(),
PlatPersonDTOVO
.
class
);
fillDept
(
tntUserDTOVOList
);
return
PageUtil
.
toPageVO
(
tntUserDTOVOList
,
pageList
);
}
@Override
public
List
<
PlatPersonDTOVO
>
list
(
PlatUserQueryDTO
dto
)
{
List
<
PlatPersonDTOVO
>
tntUserList
=
BeanDtoVoUtils
.
listVo
(
list
(
listLambdaQueryWrapper
(
dto
)),
PlatPersonDTOVO
.
class
);
fillDept
(
tntUserList
);
return
tntUserList
;
}
@Override
public
List
<
PlatUserCountVO
>
listCount
(
PlatUserQueryDTO
dto
)
{
//
List
<
Map
<
String
,
Object
>>
tntUserList
=
listMaps
(
new
DynamicQuery
<
PlatUser
>()
.
select
(
SqlUtil
.
count
(
PlatUserCountVO
.
Fields
.
count
),
SqlUtil
.
as
(
PlatUserCountVO
.
Fields
.
deptId
)
)
.
eq
(
BaseBusEntity
.
Fields
.
tenantId
,
TenantIdUtil
.
getTenantId
())
.
eq
(
PlatUser
.
Fields
.
isTenant
,
IsTenantAccountEnum
.
NO
.
getValue
())
.
eq
(
PlatUser
.
Fields
.
status
,
CommonEnum
.
YES
.
getValue
())
//.in(PlatUser.Fields.orgId, DeptUtil.getDeptCantTapIdList(dto.getDeptId(), dto.getFromHotel()))
.
groupBy
(
PlatUser
.
Fields
.
orgId
)
);
List
<
PlatUserCountVO
>
voList
=
JsonUtil
.
mapToBean
(
tntUserList
,
new
TypeReference
<
List
<
PlatUserCountVO
>>()
{
});
return
voList
;
}
@Override
public
Page
<
PlatUser
>
pageNoDeptUser
(
Page
<
PlatUser
>
page
,
PlatUserQueryDTO
dto
)
{
return
getBaseMapper
().
noDeptUserList
(
page
,
dto
);
}
@Override
public
PageVO
<
PlatPersonDTOVO
>
pageNoDeptUser
(
PageReqDTO
<
PlatUserQueryDTO
>
page
)
{
PlatUserQueryDTO
dto
=
page
.
getData
();
dto
.
setTenantId
(
TenantIdUtil
.
getTenantId
());
Page
<
PlatUser
>
p
=
PageUtil
.
toMpPage
(
page
);
List
<
String
>
userIdList
=
userIdListByRoleId
(
dto
);
dto
.
setUserIdList
(
userIdList
);
Page
<
PlatUser
>
pageList
=
pageNoDeptUser
(
p
,
dto
);
List
<
PlatPersonDTOVO
>
tntUserDTOVOList
=
BeanDtoVoUtils
.
listVo
(
pageList
.
getRecords
(),
PlatPersonDTOVO
.
class
);
return
PageUtil
.
toPageVO
(
tntUserDTOVOList
,
pageList
);
}
private
void
frequentUser
(
LambdaQueryWrapper
<
PlatUser
>
lambdaQueryWrapper
,
PlatUserQueryDTO
dto
)
{
if
(
CommonEnum
.
YES
.
getValue
().
equals
(
dto
.
getIsFrequent
()))
{
List
<
String
>
frequentUserIdList
=
new
ArrayList
<>(
10
);
frequentUserIdList
.
add
(-
1
+
""
);
// frequentUserIdList.addAll(
// StreamUtil.map(
// tntFrequentUserService.list(new QueryWrapper<PlatFrequentUser>().lambda()
// .eq(PlatFrequentUser::getPlatUserId, PlatUserUtil.getUserId())
// ),
// PlatFrequentUser::getFrequentUserId)
// );
lambdaQueryWrapper
.
in
(
CommonEnum
.
YES
.
getValue
().
equals
(
dto
.
getIsFrequent
()),
PlatUser:
:
getId
,
frequentUserIdList
);
}
}
private
void
roleIdList
(
LambdaQueryWrapper
<
PlatUser
>
lambdaQueryWrapper
,
PlatUserQueryDTO
dto
)
{
if
(
dto
.
getRoleIdList
()
!=
null
)
{
dto
.
getRoleIdList
().
add
(-
1
+
""
);
List
<
String
>
idList
=
new
ArrayList
<>();
idList
.
add
(-
1
+
""
);
List
<
PlatUserRole
>
userRoleList
=
platUserRoleService
.
list
(
new
QueryWrapper
<
PlatUserRole
>().
lambda
()
.
in
(
PlatUserRole:
:
getRoleId
,
dto
.
getRoleIdList
()));
idList
.
addAll
(
StreamUtil
.
map
(
userRoleList
,
PlatUserRole:
:
getUserId
));
lambdaQueryWrapper
.
in
(
PlatUser:
:
getId
,
idList
);
}
}
@Override
public
List
<
PlatPersonDTOVO
>
auditUserList
(
PlatUserQueryDTO
dto
)
{
LambdaQueryWrapper
<
PlatUser
>
lambdaQueryWrapper
=
new
QueryWrapper
<
PlatUser
>().
lambda
()
.
eq
(
PlatUser:
:
getIsTenant
,
IsTenantAccountEnum
.
NO
.
getValue
())
.
like
(
StringUtils
.
isNotBlank
(
dto
.
getAccount
()),
PlatUser:
:
getAccount
,
dto
.
getAccount
())
.
like
(
StringUtils
.
isNotBlank
(
dto
.
getName
()),
PlatUser:
:
getUsername
,
dto
.
getName
())
.
like
(
StringUtils
.
isNotBlank
(
dto
.
getMobile
()),
PlatUser:
:
getMobile
,
dto
.
getMobile
())
.
eq
(
StringUtils
.
isNotBlank
(
dto
.
getStatus
()),
PlatUser:
:
getStatus
,
dto
.
getStatus
())
//.eq(dto.getPostLevel() != null, PlatUser::getPostLevel, dto.getPostLevel())
.
eq
(
PlatUser:
:
getTenantId
,
TenantIdUtil
.
getTenantId
());
frequentUser
(
lambdaQueryWrapper
,
dto
);
roleIdList
(
lambdaQueryWrapper
,
dto
);
if
(
dto
.
getDeptIdList
()
!=
null
||
StringUtils
.
isNotBlank
(
dto
.
getChargeDeptId
()))
{
dto
.
getDeptIdList
().
add
(-
1
+
""
);
lambdaQueryWrapper
.
and
(
qw
->
{
qw
.
in
(
dto
.
getDeptIdList
()
!=
null
,
PlatUser:
:
getOrgId
,
dto
.
getDeptIdList
())
.
or
(
StringUtils
.
isNotBlank
(
dto
.
getChargeDeptId
()))
//.like(StringUtils.isNotBlank(dto.getChargeDeptId()), PlatUser::getChargeDeptId, dto.getChargeDeptId())
;
});
}
lambdaQueryWrapper
.
orderByDesc
(
PlatUser:
:
getCreateDate
);
List
<
PlatPersonDTOVO
>
tntUserList
=
BeanDtoVoUtils
.
listVo
(
list
(
lambdaQueryWrapper
),
PlatPersonDTOVO
.
class
);
fillDept
(
tntUserList
);
return
tntUserList
;
}
private
void
setRoleList
(
PlatPersonDTOVO
dto
)
{
platUserRoleService
.
remove
(
new
QueryWrapper
<
PlatUserRole
>().
lambda
()
.
eq
(
PlatUserRole:
:
getUserId
,
dto
.
getId
()));
if
(
dto
.
getRoleList
()
!=
null
)
{
List
<
PlatUserRole
>
userRoleList
=
StreamUtil
.
map
(
dto
.
getRoleList
(),
e
->
{
PlatUserRole
tntUserRole
=
new
PlatUserRole
();
tntUserRole
.
setUserId
(
dto
.
getId
());
tntUserRole
.
setRoleId
(
e
.
getId
());
return
tntUserRole
;
});
platUserRoleService
.
saveBatch
(
userRoleList
);
}
}
@Transactional
@Override
public
void
addPerson
(
PlatPersonDTOVO
dto
)
{
checkPerson
(
BeanDtoVoUtils
.
convert
(
dto
,
PlatUserDTOVO
.
class
));
PlatUser
user
=
BeanDtoVoUtils
.
convert
(
dto
,
PlatUser
.
class
);
user
.
setIsTenant
(
CommonEnum
.
NO
.
getValue
());
user
.
setTenantId
(
TenantIdUtil
.
getTenantId
());
if
(
StringUtils
.
isBlank
(
user
.
getPassword
()))
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR_USER_PASSWORD_NOT_BLANK
);
}
setPassword
(
user
);
user
.
setStatus
(
CommonEnum
.
YES
.
getValue
());
//user.setEmpStatus(CommonEnum.YES.getValue());
save
(
user
);
dto
.
setId
(
user
.
getId
());
setRoleList
(
dto
);
}
@Transactional
@Override
public
void
editPerson
(
PlatPersonDTOVO
dto
)
{
//dto.setAccount(null);
checkPerson
(
BeanDtoVoUtils
.
convert
(
dto
,
PlatUserDTOVO
.
class
));
PlatUser
tntUser
=
getById
(
dto
.
getId
());
// if (StringUtils.isNotBlank(tntUser.getOrgId()) && StringUtils.isNotBlank(dto.getDeptId()) && !tntUser.getOrgId().equals(dto.getDeptId())) {
// changeDeptMessage(tntUser, tntUser.getOrgId(), dto.getDeptId());
// }
// if (CommonEnum.YES.getValue().equals(tntUser.getEmpStatus()) && CommonEnum.NO.getValue().equals(dto.getEmpStatus())) {
// leaveMessage(tntUser);
// }
PlatUser
user
=
BeanDtoVoUtils
.
convert
(
dto
,
PlatUser
.
class
);
user
.
setIsTenant
(
CommonEnum
.
NO
.
getValue
());
// if (!CommonEnum.YES.getValue().equals(user.getEmpStatus())) {
// user.setStatus(CommonEnum.NO.getValue());
// }
setPassword
(
user
);
updateById
(
user
);
setRoleList
(
dto
);
}
private
void
getRoleList
(
PlatPersonDTOVO
userVO
)
{
List
<
PlatUserRole
>
userRoleList
=
platUserRoleService
.
list
(
new
QueryWrapper
<
PlatUserRole
>().
lambda
()
.
eq
(
PlatUserRole:
:
getUserId
,
userVO
.
getId
())
.
orderByAsc
(
PlatUserRole:
:
getId
)
);
List
<
String
>
roleIdList
=
StreamUtil
.
map
(
userRoleList
,
PlatUserRole:
:
getRoleId
);
roleIdList
.
add
(-
1
+
""
);
List
<
PlatRole
>
roleList
=
platRoleService
.
list
(
new
QueryWrapper
<
PlatRole
>().
lambda
()
.
in
(
PlatRole:
:
getId
,
roleIdList
));
Map
<
String
,
PlatRole
>
roleMap
=
StreamUtil
.
toMap
(
roleList
,
PlatRole:
:
getId
);
LinkedHashSet
<
PlatRole
>
newList
=
new
LinkedHashSet
<>(
10
);
userRoleList
.
forEach
(
e
->
{
PlatRole
role
=
roleMap
.
get
(
e
.
getRoleId
());
if
(
role
!=
null
)
{
newList
.
add
(
role
);
}
});
userVO
.
setRoleList
(
BeanDtoVoUtils
.
listVo
(
new
ArrayList
<>(
newList
),
PlatRoleDTOVO
.
class
));
}
@Override
public
PlatPersonDTOVO
viewPerson
(
String
id
)
{
PlatPersonDTOVO
userVO
=
BeanDtoVoUtils
.
convert
(
getById
(
id
),
PlatPersonDTOVO
.
class
);
fillDept
(
Arrays
.
asList
(
userVO
));
getRoleList
(
userVO
);
return
userVO
;
}
// @Override
// public void changeDeptMessage(PlatUser tntUser, String oldDeptId, String newDeptId) {
// PlatOrg oldDept = platOrgService.getById(oldDeptId);
// PlatOrg newDept = platOrgService.getById(newDeptId);
//
// List<PlatCustomGroup> groupList = CustomGroupUtil.getGroupByUserId(tntUser.getId());
//
// PlatDept hotel = DeptUtil.getHotel(tntUser.getDeptId());
//
// List<ChangeDeptMessageDTO> dtoList = StreamUtil.map(groupList, e -> {
// ChangeDeptMessageDTO changeDeptMessageDTO = new ChangeDeptMessageDTO();
//
// changeDeptMessageDTO.setGroupId(e.getId());
//
// changeDeptMessageDTO.setUserName(tntUser.getName());
// if (oldDept != null) {
// changeDeptMessageDTO.setOldDeptName(oldDept.getName());
// } else {
// changeDeptMessageDTO.setOldDeptName("");
// }
// changeDeptMessageDTO.setNewDeptName(newDept.getName());
// changeDeptMessageDTO.setGroupAdminUserId(e.getTntUserId());
//
// return changeDeptMessageDTO;
// });
//
// tntAsyncMessageService.addChangeDeptMessage(hotel, dtoList);
//
// }
// @Override
// public void leaveMessage(TntUser tntUser) {
//
// List<TntCustomGroup> groupList = CustomGroupUtil.getGroupByUserId(tntUser.getId());
//
// TntDept hotel = DeptUtil.getHotel(tntUser.getDeptId());
//
// List<ChangeDeptMessageDTO> dtoList = StreamUtil.map(groupList, e -> {
// ChangeDeptMessageDTO changeDeptMessageDTO = new ChangeDeptMessageDTO();
//
// changeDeptMessageDTO.setGroupId(e.getId());
//
// changeDeptMessageDTO.setUserName(tntUser.getName());
// changeDeptMessageDTO.setGroupAdminUserId(e.getTntUserId());
//
// return changeDeptMessageDTO;
// });
//
// tntAsyncMessageService.addLeaveMessage(hotel, dtoList);
//
// }
// @Override
// public List<PlatRole> getRoleListWithTag(String userId) {
//
// List<PlatRole> roleList = getRoleList(userId);
//
// List<String> deptIdList = StreamUtil.map(roleList, TntRole::getDeptId);
//
// List<PlatOrg> deptList = platOrgService.list(new QueryWrapper<PlatOrg>().lambda()
// .in(PlatOrg::getId, deptIdList)
// .eq(PlatOrg::getStatus, CommonEnum.YES.getValue())
// );
//
// Map<String, PlatOrg> deptMap = StreamUtil.toMap(deptList, PlatOrg::getId);
//// roleList.forEach(e -> {
//// PlatOrg dept = deptMap.get(e.PlatOrg());
//// if (dept != null) {
//// e.setTag(dept.getTag());
//// }
//// });
//
// return roleList;
// }
// @Override
// public TntRole getMaxRole(String userId) {
// List<TntRole> roleList = getRoleListWithTag(userId);
// if (roleList.isEmpty()) {
// return null;
// }
// TntRole tntRole = Collections.min(roleList, Comparator.comparing(o -> DeptEnum.tagLevelMap.get(o.getTag())));
// return tntRole;
// }
@Override
public
List
<
PlatOrg
>
getDeptList
()
{
List
<
PlatOrg
>
tntDeptList
=
platOrgService
.
listWithoutDept
();
Map
<
String
,
PlatOrg
>
map
=
StreamUtil
.
toMap
(
tntDeptList
,
PlatOrg:
:
getId
);
List
<
PlatOrg
>
newList
=
new
ArrayList
<>(
10
);
if
(
IsTenantAccountEnum
.
YES
.
getValue
().
equals
(
PlatUserUtil
.
getUserVO
().
getIsTenant
()))
{
newList
.
addAll
(
tntDeptList
);
// newList.forEach(e -> {
// e.setCanTap(CommonEnum.YES.getValue());
// });
}
else
{
//这个排除了禁用的角色
List
<
PlatRole
>
tntRoleList
=
getRoleList
(
PlatUserUtil
.
getUserId
());
//这个要不要从缓存取
List
<
String
>
roleIdList
=
StreamUtil
.
map
(
tntRoleList
,
PlatRole:
:
getId
);
roleIdList
.
add
(-
1
+
""
);
List
<
PlatRoleOrg
>
roleDeptList
=
platRoleOrgService
.
list
(
new
QueryWrapper
<
PlatRoleOrg
>().
lambda
()
.
in
(
PlatRoleOrg:
:
getRoleId
,
roleIdList
));
newList
=
roleDeptList
.
stream
().
map
(
e
->
map
.
get
(
e
.
getOrgId
())).
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toList
());
// newList.forEach(e -> {
// e.setCanTap(CommonEnum.YES.getValue());
// });
// tntRoleList.forEach(e -> {
// TntDept tntDept = map.get(e.getDeptId());
// if (tntDept != null) {
// tntDept.setCanTap(CommonEnum.YES.getValue());
// }
// });
PlatOrg
userDept
=
map
.
get
(
PlatUserUtil
.
getUserVO
().
getDeptId
());
// if (userDept != null) {
// userDept.setCanTap(CommonEnum.YES.getValue());
// }
Set
<
PlatOrg
>
set
=
new
HashSet
<>(
newList
);
newList
.
forEach
(
e
->
{
List
<
PlatOrg
>
parentList
=
new
ArrayList
<>(
10
);
//platOrgService.findParentCanTap(map, e, parentList);
set
.
addAll
(
parentList
);
});
newList
=
set
.
stream
().
sorted
(
platOrgService
.
getComparator
()).
collect
(
Collectors
.
toList
());
}
newList
=
StreamUtil
.
filter
(
newList
,
e
->
CommonEnum
.
YES
.
getValue
().
equals
(
e
.
getStatus
()));
return
newList
;
}
@Override
public
List
<
PlatOrg
>
getDeptTreeList
()
{
//给左上角用
List
<
PlatOrg
>
newList
=
getDeptList
();
return
platOrgService
.
tree
(
newList
);
}
@Override
public
List
<
PlatOrg
>
getDeptSelfAndChildrenByDeptName
(
List
<
String
>
deptNames
,
Map
<
String
,
PlatOrg
>
selfAndChildren
)
{
if
(
CollectionUtils
.
isEmpty
(
deptNames
))
{
return
new
ArrayList
<>();
}
else
{
List
<
PlatOrg
>
deptList
=
new
ArrayList
<>(
10
);
for
(
String
deptName
:
deptNames
)
{
PlatOrg
dept
=
selfAndChildren
.
get
(
deptName
);
if
(
dept
==
null
)
{
logger
.
info
(
"deptName:{},dept:{}"
,
deptName
,
dept
);
}
if
(
dept
!=
null
)
{
setDeptList
(
dept
,
deptList
);
}
}
List
<
PlatOrg
>
collect
=
deptList
.
stream
().
distinct
().
collect
(
Collectors
.
toList
());
return
collect
;
}
}
/**
* @param tntDept
*/
private
void
setDeptList
(
PlatOrg
tntDept
,
List
<
PlatOrg
>
deptList
)
{
// 添加本身
if
(
ObjectUtils
.
isNotEmpty
(
tntDept
))
{
deptList
.
add
(
tntDept
);
}
// 添加子类
if
(
CollectionUtils
.
isNotEmpty
(
tntDept
.
getChildren
()))
{
deptList
.
addAll
(
tntDept
.
getChildren
());
for
(
PlatOrg
item
:
tntDept
.
getChildren
())
{
setDeptList
(
item
,
deptList
);
}
}
}
@Override
public
List
<
PlatOrg
>
getDeptSelfAndChildrenCanTap
(
String
deptId
)
{
//给筛选列表用 包含自己
// return StreamUtil.filter(platOrgService.getDeptSelfAndChildren(deptId), e -> CommonEnum.YES.getValue().equals(e.getCanTap()));
return
platOrgService
.
getDeptSelfAndChildren
(
deptId
);
}
// @Override
// public List<PlatOrg> getHotelList(String deptId) {//新增编辑角色 那边的管理范围 //不包含自己
// List<PlatOrg> newList = getDeptList();
// if (StringUtils.isBlank(deptId)) {
// return StreamUtil.filter(newList, e -> DeptEnum.DeptTagEnum.HOTEL.getValue().equals(e.getTag()));
// //return newList;
// } else {
// List<PlatOrg> treeList = platOrgService.tree(newList);
//
// List<PlatOrg> matchList = StreamUtil.filter(newList, e -> e.getId().equals(deptId));
// if (matchList.isEmpty()) {
// return new ArrayList<>(10);
// }
//
// List<PlatOrg> deptList = new ArrayList<>(10);
//
// if (DeptEnum.DeptTagEnum.HOTEL.getValue().equals(matchList.get(0).getTag())) {
// deptList.add(matchList.get(0));
// }
//
// platOrgService.flat(matchList.get(0).getChildren(), deptList);
// deptList.forEach(e -> {
// e.setChildren(null);
// });
// return StreamUtil.filter(deptList, e -> DeptEnum.DeptTagEnum.HOTEL.getValue().equals(e.getTag()));
// //return deptList;
// }
// }
@Override
public
List
<
PlatOrg
>
getCandidateDeptList
()
{
//新增编辑角色 那边的管理范围 //不包含自己
List
<
PlatOrg
>
newList
=
getDeptList
();
// newList.forEach(e -> {
// e.setCanTap(null);
// });
// newList.forEach(e -> {
// if (DeptEnum.DeptTagEnum.HOTEL.getValue().equals(e.getTag())) {
// e.setCanTap(CommonEnum.YES.getValue());
// }
// });
return
platOrgService
.
tree
(
newList
);
}
// @Override
// public List<String> getCustomGroupNameList(String userId) {
// List<TntCustomGroup> customGroupList = CustomGroupUtil.getGroupByUserId(userId);
// return StreamUtil.map(customGroupList, TntCustomGroup::getName);
// }
//
// @Override
// public List<String> getCustomGroupIdList(String userId) {
// List<TntCustomGroup> customGroupList = CustomGroupUtil.getGroupByUserId(userId);
// return StreamUtil.map(customGroupList, TntCustomGroup::getId);
// }
@Override
public
List
<
PlatMenu
>
getMenuListByUserId
(
String
userId
)
{
return
getBaseMapper
().
getMenuListByUserId
(
userId
);
}
@Override
public
PageVO
<
PlatPersonDTOVO
>
indexPage
(
PageReqDTO
<
PlatUserQueryDTO
>
page
)
{
PlatUserQueryDTO
dto
=
page
.
getData
();
Page
<
PlatUser
>
p
=
PageUtil
.
toMpPage
(
page
);
LambdaQueryWrapper
<
PlatUser
>
lambdaQueryWrapper
=
new
LambdaQueryWrapper
<>();
lambdaQueryWrapper
.
like
(
StringUtils
.
isNotBlank
(
dto
.
getName
()),
PlatUser:
:
getUsername
,
dto
.
getName
());
lambdaQueryWrapper
.
like
(
StringUtils
.
isNotBlank
(
dto
.
getAccount
()),
PlatUser:
:
getAccount
,
dto
.
getAccount
());
lambdaQueryWrapper
.
eq
(
StringUtils
.
isNotBlank
(
dto
.
getStatus
()),
PlatUser:
:
getStatus
,
dto
.
getStatus
());
Page
<
PlatUser
>
pageList
=
page
(
p
,
lambdaQueryWrapper
);
List
<
PlatPersonDTOVO
>
tntUserDTOVOList
=
BeanDtoVoUtils
.
listVo
(
pageList
.
getRecords
(),
PlatPersonDTOVO
.
class
);
fillDept
(
tntUserDTOVOList
);
return
PageUtil
.
toPageVO
(
tntUserDTOVOList
,
pageList
);
}
}
server-service/src/main/java/com/makeit/service/saas/PlatMenuService.java
View file @
87b83909
...
...
@@ -2,6 +2,10 @@ package com.makeit.service.saas;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.makeit.entity.saas.PlatMenu
;
import
com.makeit.module.admin.dto.plat.PlatMenuDTOVO
;
import
com.makeit.module.admin.dto.plat.PlatMenuQueryDTO
;
import
java.util.List
;
/**
* @author lixl
...
...
@@ -9,5 +13,21 @@ import com.makeit.entity.saas.PlatMenu;
* @createDate 2023-08-29 14:29:10
*/
public
interface
PlatMenuService
extends
IService
<
PlatMenu
>
{
List
<
PlatMenuDTOVO
>
list
(
PlatMenuQueryDTO
dto
);
List
<
PlatMenuDTOVO
>
tree
(
List
<
PlatMenuDTOVO
>
tntMenuList
);
List
<
PlatMenuDTOVO
>
tree
(
PlatMenuQueryDTO
dto
);
void
add
(
PlatMenuDTOVO
dto
);
void
edit
(
PlatMenuDTOVO
dto
);
PlatMenuDTOVO
view
(
String
id
);
void
del
(
String
id
);
void
sync
();
List
<
PlatMenu
>
loadMenuCodeLis
();
}
server-service/src/main/java/com/makeit/service/saas/PlatTenantMenuService.java
0 → 100644
View file @
87b83909
package
com
.
makeit
.
service
.
saas
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.makeit.entity.saas.PlatTenantMenu
;
/**
* @author lixl
* @description 针对表【plat_tenant_menu(租户端租户菜单关联表)】的数据库操作Service
* @createDate 2023-08-31 11:15:44
*/
public
interface
PlatTenantMenuService
extends
IService
<
PlatTenantMenu
>
{
}
server-service/src/main/java/com/makeit/service/saas/PlatTenantService.java
View file @
87b83909
package
com
.
makeit
.
service
.
saas
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.makeit.common.page.PageReqDTO
;
import
com.makeit.common.page.PageVO
;
import
com.makeit.entity.saas.PlatTenant
;
import
com.makeit.module.admin.dto.plat.PlatTenantDTOVO
;
import
com.makeit.module.admin.dto.plat.PlatTenantMenuDTO
;
import
com.makeit.module.admin.dto.plat.PlatTenantStatusDTO
;
import
com.makeit.module.admin.vo.plat.PlatTenantVO
;
import
java.util.List
;
/**
* @author lixl
...
...
@@ -9,5 +17,25 @@ import com.makeit.entity.saas.PlatTenant;
* @createDate 2023-08-29 14:29:10
*/
public
interface
PlatTenantService
extends
IService
<
PlatTenant
>
{
PageVO
<
PlatTenantVO
>
page
(
PageReqDTO
<
PlatTenantVO
>
page
);
List
<
PlatTenant
>
list
(
PlatTenantVO
dto
);
List
<
PlatTenant
>
listByUserIdAndAccount
(
PlatTenantVO
dto
);
String
add
(
PlatTenantDTOVO
dto
);
void
edit
(
PlatTenantDTOVO
dto
);
PlatTenantDTOVO
view
(
String
id
);
void
del
(
String
id
);
void
changeStatus
(
PlatTenantStatusDTO
dto
);
void
changeStatusJob
();
void
assignMenuList
(
PlatTenantMenuDTO
tntTenantMenuDTO
);
void
checkTenant
(
String
id
);
}
server-service/src/main/java/com/makeit/service/saas/SaasMenuService.java
View file @
87b83909
...
...
@@ -2,8 +2,8 @@ package com.makeit.service.saas;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.makeit.entity.saas.SaasMenu
;
import
com.makeit.module.admin.saas.SaasMenuDTOVO
;
import
com.makeit.module.admin.saas.SaasMenuQueryDTO
;
import
com.makeit.module.admin.
dto.
saas.SaasMenuDTOVO
;
import
com.makeit.module.admin.
dto.
saas.SaasMenuQueryDTO
;
import
java.util.List
;
...
...
server-service/src/main/java/com/makeit/service/saas/SaasOperationLogService.java
View file @
87b83909
package
com
.
makeit
.
service
.
saas
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.makeit.common.page.PageReqDTO
;
import
com.makeit.common.page.PageVO
;
import
com.makeit.dto.saas.SaasOperationLogDTO
;
import
com.makeit.entity.saas.SaasOperationLog
;
import
com.makeit.vo.saas.SaasOperationLogQueryVO
;
/**
* @author lixl
...
...
@@ -9,5 +13,8 @@ import com.makeit.entity.saas.SaasOperationLog;
* @createDate 2023-08-29 11:14:07
*/
public
interface
SaasOperationLogService
extends
IService
<
SaasOperationLog
>
{
void
add
(
String
content
,
String
tenantId
);
PageVO
<
SaasOperationLogDTO
>
index
(
PageReqDTO
<
SaasOperationLogQueryVO
>
pageReq
);
}
server-service/src/main/java/com/makeit/service/saas/SaasPrivacyConfigService.java
View file @
87b83909
package
com
.
makeit
.
service
.
saas
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.makeit.dto.saas.SaasPrivacyConfigDTO
;
import
com.makeit.entity.saas.SaasPrivacyConfig
;
/**
...
...
@@ -9,5 +10,16 @@ import com.makeit.entity.saas.SaasPrivacyConfig;
* @createDate 2023-08-29 11:14:07
*/
public
interface
SaasPrivacyConfigService
extends
IService
<
SaasPrivacyConfig
>
{
/**
*
* @param saasPrivacyConfigDTO
*/
void
add
(
SaasPrivacyConfigDTO
saasPrivacyConfigDTO
);
/**
*
* @param category
* @return
*/
SaasPrivacyConfigDTO
view
(
String
category
);
}
server-service/src/main/java/com/makeit/service/saas/SaasRoleService.java
View file @
87b83909
...
...
@@ -3,9 +3,9 @@ package com.makeit.service.saas;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.makeit.common.dto.StatusDTO
;
import
com.makeit.entity.saas.SaasRole
;
import
com.makeit.module.admin.saas.SaasRoleDTOVO
;
import
com.makeit.module.admin.saas.SaasRoleMenuDTO
;
import
com.makeit.module.admin.saas.SaasUserRoleDTO
;
import
com.makeit.module.admin.
dto.
saas.SaasRoleDTOVO
;
import
com.makeit.module.admin.
dto.
saas.SaasRoleMenuDTO
;
import
com.makeit.module.admin.
dto.
saas.SaasUserRoleDTO
;
import
java.util.List
;
...
...
server-service/src/main/java/com/makeit/service/saas/SaasUserService.java
View file @
87b83909
...
...
@@ -5,10 +5,10 @@ import com.makeit.common.dto.LoginDTO;
import
com.makeit.common.dto.StatusDTO
;
import
com.makeit.common.page.PageReqDTO
;
import
com.makeit.common.page.PageVO
;
import
com.makeit.module.admin.saas.SaasUserDTOVO
;
import
com.makeit.module.admin.saas.SaasUserQueryDTO
;
import
com.makeit.module.admin.
dto.
saas.SaasUserDTOVO
;
import
com.makeit.module.admin.
dto.
saas.SaasUserQueryDTO
;
import
com.makeit.entity.saas.SaasUser
;
import
com.makeit.
utils.user
.saas.SaasUserLoginVO
;
import
com.makeit.
module.admin.vo
.saas.SaasUserLoginVO
;
import
java.util.List
;
...
...
server-service/src/main/java/com/makeit/service/saas/impl/PlatMenuServiceImpl.java
View file @
87b83909
package
com
.
makeit
.
service
.
saas
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.makeit.entity.saas.PlatMenu
;
import
com.makeit.entity.saas.PlatTenantMenu
;
import
com.makeit.enums.CodeMessageEnum
;
import
com.makeit.enums.CommonEnum
;
import
com.makeit.enums.biz.auth.SysEnum
;
import
com.makeit.enums.id.TreeConst
;
import
com.makeit.exception.BusinessException
;
import
com.makeit.global.annotation.Action
;
import
com.makeit.mapper.saas.PlatMenuMapper
;
import
com.makeit.module.admin.dto.plat.PlatMenuDTOVO
;
import
com.makeit.module.admin.dto.plat.PlatMenuQueryDTO
;
import
com.makeit.service.saas.PlatMenuService
;
import
com.makeit.service.saas.PlatTenantMenuService
;
import
com.makeit.utils.data.convert.BeanDtoVoUtils
;
import
com.makeit.utils.data.convert.StreamUtil
;
import
io.swagger.annotations.Api
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.config.BeanDefinition
;
import
org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider
;
import
org.springframework.core.type.filter.RegexPatternTypeFilter
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.lang.reflect.Method
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.regex.Pattern
;
import
java.util.stream.Collectors
;
/**
* @author lixl
...
...
@@ -15,4 +47,291 @@ import org.springframework.stereotype.Service;
public
class
PlatMenuServiceImpl
extends
ServiceImpl
<
PlatMenuMapper
,
PlatMenu
>
implements
PlatMenuService
{
@Autowired
private
PlatTenantMenuService
platTenantMenuService
;
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
PlatMenuServiceImpl
.
class
);
@Override
public
List
<
PlatMenuDTOVO
>
list
(
PlatMenuQueryDTO
dto
)
{
List
<
String
>
menuIdList
=
new
ArrayList
<>(
10
);
menuIdList
.
add
(-
1
+
""
);
if
(
StringUtils
.
isNotBlank
(
dto
.
getTenantId
()))
{
List
<
PlatTenantMenu
>
tntTenantMenuList
=
platTenantMenuService
.
list
(
new
QueryWrapper
<
PlatTenantMenu
>().
lambda
()
.
eq
(
PlatTenantMenu:
:
getTenantId
,
dto
.
getTenantId
()));
menuIdList
.
addAll
(
StreamUtil
.
map
(
tntTenantMenuList
,
PlatTenantMenu:
:
getMenuId
));
}
List
<
PlatMenu
>
tntMenuList
=
list
(
new
QueryWrapper
<
PlatMenu
>().
lambda
()
.
like
(
StringUtils
.
isNotBlank
(
dto
.
getName
()),
PlatMenu:
:
getName
,
dto
.
getName
())
.
eq
(
StringUtils
.
isNotBlank
(
dto
.
getStatus
()),
PlatMenu:
:
getStatus
,
dto
.
getStatus
())
.
in
(
StringUtils
.
isNotBlank
(
dto
.
getTenantId
()),
PlatMenu:
:
getId
,
menuIdList
)
//.orderByAsc(PlatMenu::getParentId)
.
orderByAsc
(
PlatMenu:
:
getSort
)
.
orderByAsc
(
PlatMenu:
:
getCreateDate
)
);
return
BeanDtoVoUtils
.
listVo
(
tntMenuList
,
PlatMenuDTOVO
.
class
);
}
@Override
public
List
<
PlatMenuDTOVO
>
tree
(
List
<
PlatMenuDTOVO
>
tntMenuList
)
{
Map
<
String
,
PlatMenuDTOVO
>
map
=
StreamUtil
.
toMap
(
tntMenuList
,
PlatMenuDTOVO:
:
getId
);
List
<
PlatMenuDTOVO
>
topList
=
StreamUtil
.
filter
(
tntMenuList
,
e
->
TreeConst
.
TOP_LEVEL
.
equals
(
e
.
getParentId
()));
tntMenuList
.
forEach
(
e
->
{
PlatMenuDTOVO
parent
=
map
.
get
(
e
.
getParentId
());
if
(
parent
!=
null
)
{
List
<
PlatMenuDTOVO
>
children
=
parent
.
getChildren
();
if
(
children
==
null
)
{
children
=
new
ArrayList
<>(
10
);
parent
.
setChildren
(
children
);
}
children
.
add
(
e
);
}
});
return
topList
;
}
@Override
public
List
<
PlatMenuDTOVO
>
tree
(
PlatMenuQueryDTO
dto
)
{
List
<
PlatMenuDTOVO
>
tntMenuList
=
list
(
dto
);
return
tree
(
tntMenuList
);
}
// private void checkName(TntMenuDTOVO dto) {
// TntMenu old = getOne(new QueryWrapper<TntMenu>().lambda()
// .in(TntMenu::getCategory, SysEnum.MenuTypeEnum.CATALOGUE.getValue(), SysEnum.MenuTypeEnum.MENU.getValue())
// .eq(TntMenu::getName, dto.getName()));
// if (old != null && !old.getId().equals(dto.getId())) {
// throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR_NAME_DUPLICATE);
// }
// }
/**
* 校验资源名称是否重复
* @param dto
*/
private
void
checkCode
(
PlatMenuDTOVO
dto
)
{
PlatMenu
old
=
getOne
(
new
QueryWrapper
<
PlatMenu
>().
lambda
()
.
eq
(
PlatMenu:
:
getName
,
dto
.
getName
()));
if
(
old
!=
null
&&
!
old
.
getId
().
equals
(
dto
.
getId
()))
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR_CODE_DUPLICATE
);
}
}
@Transactional
@Override
public
void
add
(
PlatMenuDTOVO
dto
)
{
checkCode
(
dto
);
save
(
BeanDtoVoUtils
.
convert
(
dto
,
PlatMenu
.
class
));
}
@Transactional
@Override
public
void
edit
(
PlatMenuDTOVO
dto
)
{
checkCode
(
dto
);
updateById
(
BeanDtoVoUtils
.
convert
(
dto
,
PlatMenu
.
class
));
}
@Override
public
PlatMenuDTOVO
view
(
String
id
)
{
return
BeanDtoVoUtils
.
convert
(
getById
(
id
),
PlatMenuDTOVO
.
class
);
}
@Transactional
@Override
public
void
del
(
String
id
)
{
List
<
PlatMenu
>
list
=
new
ArrayList
<>(
10
);
List
<
PlatMenu
>
children
=
list
(
new
QueryWrapper
<
PlatMenu
>().
lambda
()
.
eq
(
PlatMenu:
:
getParentId
,
id
));
while
(!
children
.
isEmpty
())
{
list
.
addAll
(
children
);
List
<
String
>
idList
=
StreamUtil
.
map
(
children
,
PlatMenu:
:
getId
);
idList
.
add
(-
1
+
""
);
children
=
list
(
new
QueryWrapper
<
PlatMenu
>().
lambda
()
.
in
(
PlatMenu:
:
getParentId
,
idList
));
}
List
<
String
>
idList
=
StreamUtil
.
map
(
list
,
PlatMenu:
:
getId
);
idList
.
add
(
id
);
remove
(
new
QueryWrapper
<
PlatMenu
>().
lambda
()
.
in
(
PlatMenu:
:
getId
,
idList
));
}
@Override
@Transactional
public
void
sync
()
{
List
<
PlatMenu
>
exitList
=
list
(
new
QueryWrapper
<
PlatMenu
>().
lambda
()
.
isNotNull
(
PlatMenu:
:
getName
)
.
in
(
PlatMenu:
:
getResourceType
,
SysEnum
.
MenuTypeEnum
.
MENU
.
getValue
(),
SysEnum
.
MenuTypeEnum
.
BUTTON
.
getValue
())
);
Map
<
String
,
PlatMenu
>
exitCodeMap
=
StreamUtil
.
toMapDep
(
exitList
,
PlatMenu:
:
getName
);
//查询数据库中已存在的权限
List
<
PlatMenu
>
exitButtonList
=
StreamUtil
.
filter
(
exitList
,
e
->
SysEnum
.
MenuTypeEnum
.
BUTTON
.
getValue
().
equals
(
e
.
getResourceType
()));
Map
<
String
,
PlatMenu
>
exitButtonCodeMap
=
StreamUtil
.
toMap
(
exitButtonList
,
PlatMenu:
:
getName
);
//加载项目中的权限
List
<
PlatMenu
>
loadActionList
=
StreamUtil
.
filter
(
this
.
load
(),
e
->
!
TreeConst
.
TOP_LEVEL
.
equals
(
e
.
getParentId
()));
Set
<
String
>
loadActionCodeList
=
loadActionList
.
stream
().
map
(
PlatMenu:
:
getName
).
collect
(
Collectors
.
toSet
());
//新增加的权限
List
<
PlatMenu
>
addActionList
=
loadActionList
.
stream
().
filter
(
item
->
!
exitButtonCodeMap
.
containsKey
(
item
.
getName
())).
collect
(
Collectors
.
toList
());
//删除的权限
List
<
PlatMenu
>
deleteActionList
=
exitButtonList
.
stream
().
filter
(
item
->
!
loadActionCodeList
.
contains
(
item
.
getName
())).
collect
(
Collectors
.
toList
());
saveBatch
(
StreamUtil
.
filter
(
addActionList
,
e
->
TreeConst
.
TOP_LEVEL
.
equals
(
e
.
getParentId
())));
addActionList
.
forEach
(
e
->
{
if
(
TreeConst
.
TOP_LEVEL
.
equals
(
e
.
getParentId
()))
{
exitCodeMap
.
put
(
e
.
getName
(),
e
);
}
});
List
<
PlatMenu
>
buttonList
=
new
ArrayList
<>(
10
);
addActionList
.
forEach
(
e
->
{
if
(!
TreeConst
.
TOP_LEVEL
.
equals
(
e
.
getParentId
()))
{
String
groupCode
=
getGroupCode
(
e
.
getName
());
PlatMenu
buttonGroup
=
exitCodeMap
.
get
(
groupCode
);
if
(
buttonGroup
!=
null
)
{
e
.
setParentId
(
buttonGroup
.
getId
());
}
else
{
e
.
setParentId
(
e
.
getId
());
}
buttonList
.
add
(
e
);
}
if
(
StringUtils
.
isBlank
(
e
.
getParentId
()))
{
e
.
setParentId
(
TreeConst
.
TOP_LEVEL
);
}
});
saveBatch
(
buttonList
);
List
<
String
>
removeIdList
=
StreamUtil
.
map
(
deleteActionList
,
PlatMenu:
:
getId
);
removeIdList
.
add
(-
1
+
""
);
removeByIds
(
removeIdList
);
}
@Override
public
List
<
PlatMenu
>
loadMenuCodeLis
()
{
List
<
PlatMenu
>
list
=
StreamUtil
.
filter
(
this
.
load
(),
e
->
TreeConst
.
TOP_LEVEL
.
equals
(
e
.
getParentId
()));
return
list
;
}
private
List
<
PlatMenu
>
load
()
{
Set
<
String
>
buttonCodeSet
=
new
HashSet
<>(
16
);
List
<
PlatMenu
>
buttonList
=
new
ArrayList
<>();
// 禁止默认过滤条件设置false
final
ClassPathScanningCandidateComponentProvider
provider
=
new
ClassPathScanningCandidateComponentProvider
(
false
);
//插入匹配过滤条件
provider
.
addIncludeFilter
(
new
RegexPatternTypeFilter
(
Pattern
.
compile
(
".*Controller"
)));
final
Set
<
BeanDefinition
>
classes
=
provider
.
findCandidateComponents
(
"com.makeit.controller.tenant"
);
//从bean中加载数据
for
(
BeanDefinition
bean
:
classes
)
{
try
{
Class
<?>
clazz
=
Class
.
forName
(
bean
.
getBeanClassName
());
Method
[]
methods
=
clazz
.
getMethods
();
for
(
Method
method
:
methods
)
{
if
(
method
.
isAnnotationPresent
(
Action
.
class
))
{
Action
action
=
method
.
getAnnotation
(
Action
.
class
);
Arrays
.
asList
(
action
.
code
()).
forEach
(
e
->
{
if
(
buttonCodeSet
.
contains
(
e
))
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR_CODE_DUPLICATE
);
}
else
{
buttonCodeSet
.
add
(
e
);
}
String
groupName
=
action
.
module
();
String
groupCode
=
null
;
if
(
StringUtils
.
isBlank
(
groupName
))
{
Api
api
=
clazz
.
getAnnotation
(
Api
.
class
);
if
(
api
!=
null
)
{
groupName
=
api
.
tags
()[
0
];
}
}
groupCode
=
getGroupCode
(
e
);
if
(
StringUtils
.
isNotBlank
(
groupCode
)
&&
!
buttonCodeSet
.
contains
(
groupCode
))
{
buttonCodeSet
.
add
(
groupCode
);
buttonList
.
add
(
generateButtonGroup
(
groupName
,
groupCode
));
}
PlatMenu
button
=
new
PlatMenu
();
button
.
setName
(
action
.
name
());
//button.setCode(e);
button
.
setSort
(
0
);
button
.
setStatus
(
CommonEnum
.
YES
.
getValue
());
button
.
setResourceType
(
SysEnum
.
MenuTypeEnum
.
BUTTON
.
getValue
());
button
.
setHiddenStatus
(
CommonEnum
.
NO
.
getValue
());
button
.
setCacheStatus
(
CommonEnum
.
NO
.
getValue
());
buttonList
.
add
(
button
);
});
}
}
}
catch
(
ClassNotFoundException
e
)
{
logger
.
info
(
"ex_"
+
e
.
getMessage
(),
e
);
}
}
return
buttonList
;
}
private
String
getGroupCode
(
String
code
)
{
if
(
code
.
contains
(
":"
))
{
return
code
.
substring
(
0
,
code
.
lastIndexOf
(
":"
));
}
if
(
code
.
contains
(
"."
))
{
return
code
.
substring
(
0
,
code
.
lastIndexOf
(
"."
));
}
return
code
;
}
private
PlatMenu
generateButtonGroup
(
String
name
,
String
code
)
{
PlatMenu
button
=
new
PlatMenu
();
button
.
setName
(
name
);
// button.setCode(code);
button
.
setParentId
(
TreeConst
.
TOP_LEVEL
);
button
.
setSort
(
0
);
button
.
setStatus
(
CommonEnum
.
YES
.
getValue
());
button
.
setResourceType
(
SysEnum
.
MenuTypeEnum
.
BUTTON
.
getValue
());
button
.
setHiddenStatus
(
CommonEnum
.
NO
.
getValue
());
button
.
setCacheStatus
(
CommonEnum
.
NO
.
getValue
());
return
button
;
}
}
server-service/src/main/java/com/makeit/service/saas/impl/PlatTenantMenuServiceImpl.java
0 → 100644
View file @
87b83909
package
com
.
makeit
.
service
.
saas
.
impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.makeit.entity.saas.PlatTenantMenu
;
import
com.makeit.mapper.saas.PlatTenantMenuMapper
;
import
com.makeit.service.saas.PlatTenantMenuService
;
import
org.springframework.stereotype.Service
;
/**
* @author lixl
* @description 针对表【plat_tenant_menu(租户端租户菜单关联表)】的数据库操作Service实现
* @createDate 2023-08-31 11:15:44
*/
@Service
public
class
PlatTenantMenuServiceImpl
extends
ServiceImpl
<
PlatTenantMenuMapper
,
PlatTenantMenu
>
implements
PlatTenantMenuService
{
}
server-service/src/main/java/com/makeit/service/saas/impl/PlatTenantServiceImpl.java
View file @
87b83909
package
com
.
makeit
.
service
.
saas
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.makeit.common.entity.BaseEntity
;
import
com.makeit.common.page.PageReqDTO
;
import
com.makeit.common.page.PageVO
;
import
com.makeit.entity.platform.auth.PlatUser
;
import
com.makeit.entity.saas.PlatTenant
;
import
com.makeit.entity.saas.PlatTenantMenu
;
import
com.makeit.enums.CodeMessageEnum
;
import
com.makeit.enums.CommonEnum
;
import
com.makeit.enums.IsTenantAccountEnum
;
import
com.makeit.enums.redis.RedisConst
;
import
com.makeit.exception.BusinessException
;
import
com.makeit.global.aspect.tenant.TenantIdUtil
;
import
com.makeit.mapper.saas.PlatTenantMapper
;
import
com.makeit.module.admin.dto.plat.PlatTenantDTOVO
;
import
com.makeit.module.admin.dto.plat.PlatTenantMenuDTO
;
import
com.makeit.module.admin.dto.plat.PlatTenantStatusDTO
;
import
com.makeit.module.system.service.SysConfigService
;
import
com.makeit.server.platform.auth.PlatUserService
;
import
com.makeit.service.saas.PlatMenuService
;
import
com.makeit.service.saas.PlatTenantMenuService
;
import
com.makeit.service.saas.PlatTenantService
;
import
com.makeit.service.saas.SaasOperationLogService
;
import
com.makeit.service.saas.SaasUserService
;
import
com.makeit.utils.data.convert.BeanDtoVoUtils
;
import
com.makeit.utils.data.convert.PageUtil
;
import
com.makeit.utils.data.convert.StreamUtil
;
import
com.makeit.utils.redis.RedisCacheUtil
;
import
com.makeit.utils.redis.ScheduleLockUtil
;
import
com.makeit.utils.user.plat.PlatUserUtil
;
import
com.makeit.utils.user.plat.PlatUserVO
;
import
com.makeit.utils.user.plat.TntUserJoinUtil
;
import
com.makeit.utils.user.wechat.WechatUserInfo
;
import
com.makeit.utils.user.wechat.WechatUserUtil
;
import
com.makeit.module.admin.vo.plat.PlatTenantVO
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Objects
;
/**
* @author lixl
...
...
@@ -15,4 +59,271 @@ import org.springframework.stereotype.Service;
public
class
PlatTenantServiceImpl
extends
ServiceImpl
<
PlatTenantMapper
,
PlatTenant
>
implements
PlatTenantService
{
@Autowired
private
PlatMenuService
platMenuService
;
@Autowired
private
PlatUserService
platUserService
;
@Autowired
private
SaasUserService
saasUserService
;
@Autowired
private
SaasOperationLogService
saasOperationLogService
;
@Autowired
private
SysConfigService
sysConfigService
;
@Autowired
private
PlatTenantMenuService
platTenantMenuService
;
private
LambdaQueryWrapper
<
PlatTenant
>
listLambdaQueryWrapper
(
PlatTenantVO
dto
,
boolean
userAccountLike
)
{
List
<
String
>
tenantUserIdList
=
new
ArrayList
<>(
10
);
tenantUserIdList
.
add
(-
1
+
""
);
if
(
StringUtils
.
isNotBlank
(
dto
.
getUserAccount
()))
{
List
<
PlatUser
>
tntUserList
=
platUserService
.
list
(
new
QueryWrapper
<
PlatUser
>().
lambda
()
.
like
(
userAccountLike
,
PlatUser:
:
getAccount
,
dto
.
getUserAccount
())
.
eq
(!
userAccountLike
,
PlatUser:
:
getAccount
,
dto
.
getUserAccount
())
.
eq
(
PlatUser:
:
getIsTenant
,
IsTenantAccountEnum
.
YES
.
getValue
())
);
tenantUserIdList
.
addAll
(
StreamUtil
.
map
(
tntUserList
,
PlatUser:
:
getId
));
}
List
<
String
>
tenantIdList
=
saasUserService
.
getDataScopeByUserId
();
LambdaQueryWrapper
<
PlatTenant
>
lambdaQueryWrapper
=
new
QueryWrapper
<
PlatTenant
>().
lambda
()
.
like
(
StringUtils
.
isNotBlank
(
dto
.
getName
()),
PlatTenant:
:
getName
,
dto
.
getName
())
.
eq
(
StringUtils
.
isNotBlank
(
dto
.
getStatus
()),
PlatTenant:
:
getStatus
,
dto
.
getStatus
())
.
in
(
StringUtils
.
isNotBlank
(
dto
.
getUserAccount
()),
PlatTenant:
:
getTntUserId
,
tenantUserIdList
)
.
in
(
tenantIdList
!=
null
,
PlatTenant:
:
getId
,
tenantIdList
);
lambdaQueryWrapper
.
orderByDesc
(
PlatTenant:
:
getCreateDate
);
return
lambdaQueryWrapper
;
}
@Override
public
List
<
PlatTenant
>
list
(
PlatTenantVO
dto
)
{
LambdaQueryWrapper
<
PlatTenant
>
lambdaQueryWrapper
=
listLambdaQueryWrapper
(
dto
,
true
);
List
<
PlatTenant
>
tntTenantList
=
list
(
lambdaQueryWrapper
);
return
tntTenantList
;
}
@Override
public
List
<
PlatTenant
>
listByUserIdAndAccount
(
PlatTenantVO
dto
)
{
LambdaQueryWrapper
<
PlatTenant
>
lambdaQueryWrapper
=
listLambdaQueryWrapper
(
dto
,
false
);
List
<
PlatTenant
>
tntTenantList
=
list
(
lambdaQueryWrapper
);
return
tntTenantList
;
}
@Override
public
PageVO
<
PlatTenantVO
>
page
(
PageReqDTO
<
PlatTenantVO
>
page
)
{
PlatTenantVO
dto
=
page
.
getData
();
Page
<
PlatTenant
>
p
=
PageUtil
.
toMpPage
(
page
);
LambdaQueryWrapper
<
PlatTenant
>
lambdaQueryWrapper
=
listLambdaQueryWrapper
(
dto
,
true
);
Page
<
PlatTenant
>
pageList
=
page
(
p
,
lambdaQueryWrapper
);
List
<
PlatTenantVO
>
voList
=
BeanDtoVoUtils
.
listVo
(
pageList
.
getRecords
(),
PlatTenantVO
.
class
);
TntUserJoinUtil
.
join
(
platUserService
,
voList
,
qw
->
qw
.
eq
(
PlatUser:
:
getIsTenant
,
IsTenantAccountEnum
.
YES
.
getValue
()),
PlatTenantVO:
:
getTntUserId
,(
t
,
u
)
->
{
t
.
setUserAccount
(
u
.
getAccount
());
t
.
setUserName
(
u
.
getUsername
());
},
BaseEntity:
:
getId
);
return
PageUtil
.
toPageVO
(
voList
,
pageList
);
}
private
void
checkName
(
PlatTenantDTOVO
dto
)
{
PlatTenant
tntTenant
=
getOne
(
new
QueryWrapper
<
PlatTenant
>().
lambda
()
.
eq
(
PlatTenant:
:
getName
,
dto
.
getName
())
);
if
(
tntTenant
!=
null
&&
!
tntTenant
.
getId
().
equals
(
dto
.
getId
()))
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR_NAME_DUPLICATE
);
}
}
private
void
checkDate
(
PlatTenantDTOVO
dto
)
{
if
(
dto
.
getStartTime
()
==
null
||
dto
.
getEndTime
()
==
null
)
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR_START_END_TIME_NOT_NULL
);
}
if
(
dto
.
getStartTime
().
compareTo
(
dto
.
getEndTime
())
>
0
)
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR_START_LE_END
);
}
LocalDate
localDate
=
LocalDate
.
now
();
if
(
dto
.
getStartTime
().
compareTo
(
localDate
)
<=
0
&&
localDate
.
compareTo
(
dto
.
getEndTime
())
<=
0
)
{
dto
.
setStatus
(
CommonEnum
.
YES
.
getValue
());
}
else
{
dto
.
setStatus
(
CommonEnum
.
NO
.
getValue
());
}
}
@Transactional
@Override
public
void
assignMenuList
(
PlatTenantMenuDTO
tntTenantMenuDTO
)
{
platTenantMenuService
.
remove
(
new
QueryWrapper
<
PlatTenantMenu
>().
lambda
()
.
eq
(
PlatTenantMenu:
:
getTenantId
,
tntTenantMenuDTO
.
getTenantId
()));
List
<
PlatTenantMenu
>
tntTenantMenuList
=
StreamUtil
.
map
(
tntTenantMenuDTO
.
getMenuIdList
(),
e
->
{
PlatTenantMenu
tntTenantMenu
=
new
PlatTenantMenu
();
tntTenantMenu
.
setMenuId
(
e
);
tntTenantMenu
.
setTenantId
(
tntTenantMenuDTO
.
getTenantId
());
return
tntTenantMenu
;
});
platTenantMenuService
.
saveBatch
(
tntTenantMenuList
);
}
@Transactional
@Override
public
String
add
(
PlatTenantDTOVO
dto
)
{
checkName
(
dto
);
checkDate
(
dto
);
PlatTenant
tntTenant
=
BeanDtoVoUtils
.
convert
(
dto
,
PlatTenant
.
class
);
save
(
tntTenant
);
dto
.
setId
(
tntTenant
.
getId
());
//setMenuList(dto);
sysConfigService
.
copyForTenant
(
dto
);
return
tntTenant
.
getId
();
}
@Transactional
@Override
public
void
edit
(
PlatTenantDTOVO
dto
)
{
checkName
(
dto
);
checkDate
(
dto
);
PlatTenant
tntTenant
=
BeanDtoVoUtils
.
convert
(
dto
,
PlatTenant
.
class
);
updateById
(
tntTenant
);
//setMenuList(dto);
saasOperationLogService
.
add
(
"平台端-租户账号-编辑"
,
dto
.
getId
());
}
@Override
public
PlatTenantDTOVO
view
(
String
id
)
{
PlatTenantDTOVO
userVO
=
BeanDtoVoUtils
.
convert
(
getById
(
id
),
PlatTenantDTOVO
.
class
);
TntUserJoinUtil
.
join
(
platUserService
,
Arrays
.
asList
(
userVO
),
PlatTenantDTOVO:
:
getPlatUserId
,(
t
,
u
)->
t
.
setTntUser
(
BeanDtoVoUtils
.
convert
(
u
,
PlatUserVO
.
class
))
,
PlatUser:
:
getId
);
//platOperationLogService.add("平台端-租户账号-详情", id);
return
userVO
;
}
@Transactional
@Override
public
void
del
(
String
id
)
{
removeById
(
id
);
saasOperationLogService
.
add
(
"平台端-租户账号-删除"
,
id
);
}
@Transactional
@Override
public
void
changeStatus
(
PlatTenantStatusDTO
dto
)
{
if
(
Arrays
.
stream
(
CommonEnum
.
values
()).
noneMatch
(
e
->
e
.
getValue
().
equals
(
dto
.
getStatus
())))
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR
);
}
PlatTenant
tntTenant
=
getById
(
dto
.
getId
());
if
(
tntTenant
.
getStatus
().
equals
(
dto
.
getStatus
()))
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR
);
}
LocalDateTime
now
=
LocalDateTime
.
now
();
if
(
CommonEnum
.
YES
.
getValue
().
equals
(
dto
.
getStatus
())
&&
(
now
.
compareTo
(
tntTenant
.
getStartTime
())
<
0
||
tntTenant
.
getEndTime
().
compareTo
(
now
)
<
0
))
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR_CANT_CHANGE_TENANT_STATUS
);
}
tntTenant
.
setStatus
(
dto
.
getStatus
());
updateById
(
tntTenant
);
if
(
CommonEnum
.
YES
.
getValue
().
equals
(
dto
.
getStatus
()))
{
saasOperationLogService
.
add
(
"平台端-租户账号-启用"
,
dto
.
getId
());
}
else
{
saasOperationLogService
.
add
(
"平台端-租户账号-禁用"
,
dto
.
getId
());
}
}
@Transactional
@Override
public
void
changeStatusJob
()
{
if
(!
ScheduleLockUtil
.
lockWithLog
(
"TntTenantServiceImpl:changeStatusJob"
))
{
return
;
}
List
<
PlatTenant
>
tntTenantList
=
list
(
new
QueryWrapper
<
PlatTenant
>().
lambda
()
.
lt
(
PlatTenant:
:
getEndTime
,
LocalDate
.
now
())
.
eq
(
PlatTenant:
:
getStatus
,
CommonEnum
.
YES
.
getValue
())
.
orderByAsc
(
PlatTenant:
:
getCreateDate
)
);
tntTenantList
.
forEach
(
e
->
{
e
.
setStatus
(
CommonEnum
.
NO
.
getValue
());
});
updateBatchById
(
tntTenantList
);
}
@Override
public
void
checkTenant
(
String
id
)
{
if
(
StringUtils
.
isBlank
(
id
))
{
return
;
}
//TODO 这里要不要缓存租户 1min过期就行
//TntTenant tntTenant = getById(id);
PlatTenant
tntTenant
=
RedisCacheUtil
.
get
(
RedisConst
.
TENANT_PREFIX
+
id
,
()
->
getById
(
id
),
1
);
if
(
tntTenant
==
null
)
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR_TENANT_NOT_EXIST
);
}
if
(
CommonEnum
.
NO
.
getValue
().
equals
(
tntTenant
.
getStatus
()))
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR_TENANT_NOT_EXIST
);
}
LocalDateTime
localDate
=
LocalDateTime
.
now
();
if
(
tntTenant
.
getStartTime
().
compareTo
(
localDate
)
>
0
||
localDate
.
compareTo
(
tntTenant
.
getEndTime
())
>
0
)
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR_TENANT_NOT_EXIST
);
}
PlatUserVO
tntUserVO
=
PlatUserUtil
.
getUserVOCanNull
();
if
(
tntUserVO
!=
null
)
{
if
(
TenantIdUtil
.
getTenantId
()
!=
null
&&
tntUserVO
.
getTenantId
()
!=
null
&&
!
Objects
.
equals
(
TenantIdUtil
.
getTenantId
(),
tntUserVO
.
getTenantId
()))
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR_TENANT_NOT_EXIST
);
}
}
WechatUserInfo
wechatUserInfo
=
WechatUserUtil
.
getUserVOCanNull
();
if
(
wechatUserInfo
!=
null
)
{
if
(
TenantIdUtil
.
getTenantId
()
!=
null
&&
wechatUserInfo
.
getTenantId
()
!=
null
&&
!
Objects
.
equals
(
TenantIdUtil
.
getTenantId
(),
wechatUserInfo
.
getTenantId
()))
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR_TENANT_NOT_EXIST
);
}
}
}
}
server-service/src/main/java/com/makeit/service/saas/impl/SaasMenuServiceImpl.java
View file @
87b83909
...
...
@@ -11,8 +11,8 @@ import com.makeit.enums.id.TreeConst;
import
com.makeit.exception.BusinessException
;
import
com.makeit.global.annotation.Action
;
import
com.makeit.mapper.saas.SaasMenuMapper
;
import
com.makeit.module.admin.saas.SaasMenuDTOVO
;
import
com.makeit.module.admin.saas.SaasMenuQueryDTO
;
import
com.makeit.module.admin.
dto.
saas.SaasMenuDTOVO
;
import
com.makeit.module.admin.
dto.
saas.SaasMenuQueryDTO
;
import
com.makeit.service.saas.SaasMenuService
;
import
com.makeit.service.saas.SaasRoleMenuService
;
import
com.makeit.utils.data.convert.BeanDtoVoUtils
;
...
...
server-service/src/main/java/com/makeit/service/saas/impl/SaasOperationLogServiceImpl.java
View file @
87b83909
package
com
.
makeit
.
service
.
saas
.
impl
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.makeit.common.page.PageReqDTO
;
import
com.makeit.common.page.PageVO
;
import
com.makeit.dto.saas.SaasOperationLogDTO
;
import
com.makeit.entity.saas.SaasOperationLog
;
import
com.makeit.mapper.saas.SaasOperationLogMapper
;
import
com.makeit.service.saas.SaasOperationLogService
;
import
com.makeit.utils.data.convert.PageUtil
;
import
com.makeit.utils.user.plat.PlatUserUtil
;
import
com.makeit.vo.saas.SaasOperationLogQueryVO
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
/**
* @author lixl
...
...
@@ -15,4 +23,22 @@ import org.springframework.stereotype.Service;
public
class
SaasOperationLogServiceImpl
extends
ServiceImpl
<
SaasOperationLogMapper
,
SaasOperationLog
>
implements
SaasOperationLogService
{
@Transactional
@Override
public
void
add
(
String
content
,
String
tenantId
)
{
SaasOperationLog
platOperationLog
=
new
SaasOperationLog
();
platOperationLog
.
setContent
(
content
);
platOperationLog
.
setSaasUserId
(
PlatUserUtil
.
getUserId
());
platOperationLog
.
setTenantId
(
tenantId
);
save
(
platOperationLog
);
}
@Override
public
PageVO
<
SaasOperationLogDTO
>
index
(
PageReqDTO
<
SaasOperationLogQueryVO
>
pageReq
)
{
Page
<
SaasOperationLogDTO
>
pages
=
baseMapper
.
selectByCondition
(
new
Page
<>(
pageReq
.
getPage
(),
pageReq
.
getLimit
()),
pageReq
.
getData
());
return
PageUtil
.
toPageVO
(
pages
);
}
}
server-service/src/main/java/com/makeit/service/saas/impl/SaasPrivacyConfigServiceImpl.java
View file @
87b83909
package
com
.
makeit
.
service
.
saas
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.makeit.dto.saas.SaasPrivacyConfigDTO
;
import
com.makeit.entity.saas.SaasPrivacyConfig
;
import
com.makeit.mapper.saas.SaasPrivacyConfigMapper
;
import
com.makeit.service.saas.SaasPrivacyConfigService
;
import
com.makeit.utils.data.convert.BeanDtoVoUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
/**
* @author lixl
...
...
@@ -14,5 +18,24 @@ import org.springframework.stereotype.Service;
@Service
public
class
SaasPrivacyConfigServiceImpl
extends
ServiceImpl
<
SaasPrivacyConfigMapper
,
SaasPrivacyConfig
>
implements
SaasPrivacyConfigService
{
@Override
@Transactional
public
void
add
(
SaasPrivacyConfigDTO
saasPrivacyConfigDTO
)
{
LambdaQueryWrapper
<
SaasPrivacyConfig
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
eq
(
SaasPrivacyConfig:
:
getCategory
,
saasPrivacyConfigDTO
.
getCategory
());
this
.
remove
(
queryWrapper
);
this
.
save
(
BeanDtoVoUtils
.
convert
(
saasPrivacyConfigDTO
,
SaasPrivacyConfig
.
class
));
}
@Override
public
SaasPrivacyConfigDTO
view
(
String
category
)
{
LambdaQueryWrapper
<
SaasPrivacyConfig
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
eq
(
SaasPrivacyConfig:
:
getCategory
,
category
);
SaasPrivacyConfig
platPrivacyConfig
=
this
.
getOne
(
queryWrapper
);
return
BeanDtoVoUtils
.
convert
(
platPrivacyConfig
,
SaasPrivacyConfigDTO
.
class
);
}
}
server-service/src/main/java/com/makeit/service/saas/impl/SaasRoleServiceImpl.java
View file @
87b83909
...
...
@@ -10,9 +10,9 @@ import com.makeit.enums.CodeMessageEnum;
import
com.makeit.enums.CommonEnum
;
import
com.makeit.exception.BusinessException
;
import
com.makeit.mapper.saas.SaasRoleMapper
;
import
com.makeit.module.admin.saas.SaasRoleDTOVO
;
import
com.makeit.module.admin.saas.SaasRoleMenuDTO
;
import
com.makeit.module.admin.saas.SaasUserRoleDTO
;
import
com.makeit.module.admin.
dto.
saas.SaasRoleDTOVO
;
import
com.makeit.module.admin.
dto.
saas.SaasRoleMenuDTO
;
import
com.makeit.module.admin.
dto.
saas.SaasUserRoleDTO
;
import
com.makeit.service.saas.SaasRoleMenuService
;
import
com.makeit.service.saas.SaasRoleService
;
import
com.makeit.service.saas.SaasUserRoleService
;
...
...
server-service/src/main/java/com/makeit/service/saas/impl/SaasUserServiceImpl.java
View file @
87b83909
...
...
@@ -21,11 +21,11 @@ import com.makeit.enums.biz.auth.TenantEnum;
import
com.makeit.enums.id.IdConst
;
import
com.makeit.exception.BusinessException
;
import
com.makeit.mapper.saas.SaasUserMapper
;
import
com.makeit.module.admin.saas.SaasMenuDTOVO
;
import
com.makeit.module.admin.saas.SaasRoleDTOVO
;
import
com.makeit.module.admin.saas.SaasUserDTOVO
;
import
com.makeit.module.admin.saas.SaasUserQueryDTO
;
import
com.makeit.module.admin.saas.SaasUserRoleMenuRedisVO
;
import
com.makeit.module.admin.
dto.
saas.SaasMenuDTOVO
;
import
com.makeit.module.admin.
dto.
saas.SaasRoleDTOVO
;
import
com.makeit.module.admin.
dto.
saas.SaasUserDTOVO
;
import
com.makeit.module.admin.
dto.
saas.SaasUserQueryDTO
;
import
com.makeit.module.admin.
vo.
saas.SaasUserRoleMenuRedisVO
;
import
com.makeit.service.saas.SaasMenuService
;
import
com.makeit.service.saas.SaasRoleMenuService
;
import
com.makeit.service.saas.SaasRoleService
;
...
...
@@ -37,7 +37,7 @@ import com.makeit.utils.data.convert.PageUtil;
import
com.makeit.utils.data.convert.StreamUtil
;
import
com.makeit.utils.data.id.IdGen
;
import
com.makeit.utils.user.PasswordUtils
;
import
com.makeit.
utils.user
.saas.SaasUserLoginVO
;
import
com.makeit.
module.admin.vo
.saas.SaasUserLoginVO
;
import
com.makeit.utils.user.saas.SaasUserUtil
;
import
com.makeit.utils.user.saas.SaasUserVO
;
import
com.makeit.utils.user.TokenUtil
;
...
...
@@ -433,7 +433,6 @@ implements SaasUserService{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR_AUTH_USER_PASSWORD
);
}
if
(
CommonEnum
.
NO
.
getValue
().
equals
(
platUser
.
getStatus
()))
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR_AUTH_USER_HAS_DISABLED
);
}
if
(!
PasswordUtils
.
validatePassword
(
loginDTO
.
getPassword
(),
platUser
.
getPassword
()))
{
throw
new
BusinessException
(
CodeMessageEnum
.
SYSTEM_ERROR_AUTH_USER_PASSWORD
);
...
...
server-
common/src/main/java/com/makeit/module/admin/dto/SysDept
QueryDTO.java
→
server-
service/src/main/java/com/makeit/vo/platform/auth/PlatOrg
QueryDTO.java
View file @
87b83909
package
com
.
makeit
.
module
.
admin
.
dto
;
package
com
.
makeit
.
vo
.
platform
.
auth
;
import
com.makeit.common.dto.Base
Tenant
DTO
;
import
com.makeit.common.dto.Base
Org
DTO
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@ApiModel
(
"部门 查询"
)
@ApiModel
(
"
租户端
部门 查询"
)
@Data
public
class
SysDeptQueryDTO
extends
BaseTenant
DTO
{
public
class
PlatOrgQueryDTO
extends
BaseOrg
DTO
{
@ApiModelProperty
(
value
=
"名称"
)
private
String
name
;
...
...
@@ -15,9 +15,7 @@ public class SysDeptQueryDTO extends BaseTenantDTO {
@ApiModelProperty
(
value
=
"状态 0禁用 1启用"
)
private
String
status
;
@ApiModelProperty
(
value
=
"标签 1集团 2子公司 3部门"
)
private
String
tag
;
@ApiModelProperty
(
value
=
"是否从酒店开始 0否 1是"
)
private
String
fromHotel
;
}
server-
common/src/main/java/com/makeit/module/admin/dto/SysUser
DTOVO.java
→
server-
service/src/main/java/com/makeit/vo/platform/auth/PlatPerson
DTOVO.java
View file @
87b83909
package
com
.
makeit
.
module
.
admin
.
dto
;
package
com
.
makeit
.
vo
.
platform
.
auth
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
com.makeit.common.dto.BaseIdDTO
;
import
com.makeit.global.validator.Mobile
;
import
com.makeit.global.validator.Password
;
import
com.makeit.module.admin.dto.plat.PlatRoleDTOVO
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
...
...
@@ -16,33 +15,38 @@ import javax.validation.constraints.Size;
import
java.time.LocalDateTime
;
import
java.util.List
;
@ApiModel
(
"
厂别
账号 新增 编辑 详情"
)
@ApiModel
(
"
租户
账号 新增 编辑 详情"
)
@Data
public
class
SysUser
DTOVO
extends
BaseIdDTO
{
public
class
PlatPerson
DTOVO
extends
BaseIdDTO
{
//@NotBlank(message = "名称不能为空")
// @NotBlank(message = "用户名不能为空")
// @Size(max = 64, message = "用户名最长为64字符")
// @ApiModelProperty(value = "用户名")
// private String username;
@NotBlank
(
message
=
"名称不能为空"
)
@Size
(
max
=
64
,
message
=
"名称最长为64字符"
)
@Pattern
(
regexp
=
"[a-zA-Z0-9]{0,64}"
,
message
=
"
账户
只能为大小写英文字符和数字"
)
@Pattern
(
regexp
=
"[a-zA-Z0-9]{0,64}"
,
message
=
"
工号
只能为大小写英文字符和数字"
)
@ApiModelProperty
(
value
=
"账户"
)
private
String
account
;
//@NotBlank(message = "密码不能为空")
@Size
(
max
=
32
,
message
=
"密码最长为64字符"
)
@Password
(
message
=
"SYSTEM.ERROR.USER.PASSWORD.FORMAT.ERROR"
)
@ApiModelProperty
(
value
=
"密码"
)
@JsonProperty
(
access
=
JsonProperty
.
Access
.
WRITE_ONLY
)
private
String
password
;
// @ApiModelProperty(value = "姓名")
// private String name;
@NotBlank
(
message
=
"姓名不能为空"
)
@Size
(
max
=
64
,
message
=
"用户名最长为64字符"
)
@ApiModelProperty
(
value
=
"姓名"
)
private
String
name
;
@Pattern
(
regexp
=
"1|2"
,
message
=
"性別可选值为 1男 2女"
)
@ApiModelProperty
(
value
=
"性別 数据字典 1男 2女"
)
private
String
sex
;
@NotBlank
(
message
=
"手机号不能为空"
)
@Mobile
(
message
=
"手机号格式不对"
)
@Pattern
(
regexp
=
"1[0-9]{10}"
,
message
=
"手机号格式不对"
)
//@Size(max = 11, message = "手机号最长为64字符")
@ApiModelProperty
(
value
=
"手机号"
)
private
String
mobile
;
...
...
@@ -51,13 +55,46 @@ public class SysUserDTOVO extends BaseIdDTO {
@ApiModelProperty
(
value
=
"状态 0禁用 1启用"
)
private
String
status
;
@ApiModelProperty
(
value
=
"邮箱"
)
private
String
mail
;
@NotBlank
(
message
=
"部门不能为空"
)
@ApiModelProperty
(
value
=
"部门树id"
)
private
String
deptId
;
@ApiModelProperty
(
value
=
"分管部门id"
)
private
String
chargeDeptId
;
@NotBlank
(
message
=
"性别不能为空"
)
@Pattern
(
regexp
=
"1|2"
,
message
=
"性别可选值为 1男 2女"
)
@ApiModelProperty
(
value
=
"性别 1男 2女"
)
private
String
sex
;
@ApiModelProperty
(
value
=
"职位"
)
private
String
post
;
//@NotNull(message = "职级不能为空")
@ApiModelProperty
(
value
=
"职级"
)
private
Integer
postLevel
;
@ApiModelProperty
(
value
=
"职级描述"
)
private
String
postLevelDesc
;
@NotBlank
(
message
=
"类型不能为空"
)
@Pattern
(
regexp
=
"1|2"
,
message
=
"类型可选值为 1默认 2自建"
)
@ApiModelProperty
(
value
=
"类型 1默认 2自建"
)
private
String
type
;
@ApiModelProperty
(
value
=
"企业微信id"
)
private
String
wechatId
;
@Size
(
max
=
512
,
message
=
"备注最长512字符"
)
@ApiModelProperty
(
value
=
"备注"
)
private
String
remark
;
@ApiModelProperty
(
value
=
"在职状态 0离职 1在职"
)
private
String
empStatus
;
/**
* 创建时间
*/
...
...
@@ -65,10 +102,30 @@ public class SysUserDTOVO extends BaseIdDTO {
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
LocalDateTime
createdAt
;
/**
* 更新时间
*/
@ApiModelProperty
(
value
=
"更新时间"
,
required
=
false
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
LocalDateTime
updatedAt
;
@ApiModelProperty
(
value
=
"部门名称"
)
private
String
deptName
;
@ApiModelProperty
(
value
=
"分管部门名称"
)
private
String
chargeDeptName
;
@ApiModelProperty
(
value
=
"头像"
)
private
String
avatar
;
@TableField
(
exist
=
false
)
@ApiModelProperty
(
value
=
"角色集合"
)
private
List
<
SysRoleDTOVO
>
roleList
;
private
List
<
PlatRoleDTOVO
>
roleList
;
@ApiModelProperty
(
"是否常用 0否 1是"
)
private
String
isFrequent
;
@ApiModelProperty
(
value
=
"厂别名称集合"
)
private
String
factoryNameList
;
}
server-service/src/main/java/com/makeit/vo/platform/auth/PlatUserCountVO.java
0 → 100644
View file @
87b83909
package
com
.
makeit
.
vo
.
platform
.
auth
;
import
lombok.Data
;
import
lombok.experimental.FieldNameConstants
;
@FieldNameConstants
@Data
public
class
PlatUserCountVO
{
//private String id;
private
String
deptId
;
private
Integer
count
;
}
server-service/src/main/java/com/makeit/vo/saas/SaasOperationLogQueryVO.java
0 → 100644
View file @
87b83909
package
com
.
makeit
.
vo
.
saas
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
*
* @author lzy
* @date 2022年6月3日
* @description
*/
@Data
@ApiModel
(
"平台端日志记录DTO VO"
)
public
class
SaasOperationLogQueryVO
implements
Serializable
{
/**
*
*/
private
static
final
long
serialVersionUID
=
5253605558374084937L
;
@ApiModelProperty
(
value
=
"操作人"
)
private
String
platUserName
;
@ApiModelProperty
(
value
=
"租户名称"
)
private
String
tenantName
;
@ApiModelProperty
(
value
=
"操作内容"
)
private
String
content
;
@ApiModelProperty
(
value
=
"开始时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
String
startedAt
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
String
endedAt
;
}
server-service/src/main/resources/mappers/PlatOrgMapper.xml
0 → 100644
View file @
87b83909
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.makeit.mapper.platform.auth.PlatOrgMapper"
>
<select
id=
"getSelfAndParents"
parameterType=
"String"
resultType=
"com.makeit.entity.platform.auth.PlatOrg"
>
SELECT T2.*
FROM (
SELECT
@r AS _id,
(SELECT @r := parent_id FROM plat_org WHERE id COLLATE utf8mb4_general_ci = _id COLLATE utf8mb4_general_ci) AS parent_id
FROM
(SELECT @r := #{id}) vars,
plat_org h
WHERE @r
<>
0 ) T1
JOIN plat_org T2
ON T1._id COLLATE utf8mb4_general_ci = T2.id COLLATE utf8mb4_general_ci
</select>
</mapper>
server-service/src/main/resources/mappers/PlatTenantMenuMapper.xml
0 → 100644
View file @
87b83909
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.makeit.mapper.saas.PlatTenantMenuMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"com.makeit.entity.saas.PlatTenantMenu"
>
<id
property=
"id"
column=
"id"
jdbcType=
"VARCHAR"
/>
<result
property=
"tenantId"
column=
"tenant_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"menuId"
column=
"menu_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"createDate"
column=
"create_date"
jdbcType=
"TIMESTAMP"
/>
<result
property=
"updateDate"
column=
"update_date"
jdbcType=
"TIMESTAMP"
/>
<result
property=
"delFlag"
column=
"del_flag"
jdbcType=
"CHAR"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id,tenant_id,menu_id,
create_date,update_date,del_flag
</sql>
</mapper>
server-service/src/main/resources/mappers/PlatUserMapper.xml
0 → 100644
View file @
87b83909
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.makeit.mapper.platform.auth.PlatUserMapper"
>
<select
id=
"noDeptUserList"
parameterType=
"String"
resultType=
"com.makeit.entity.platform.auth.PlatUser"
>
SELECT t1.*
FROM plat_user AS t1
LEFT JOIN
(SELECT * FROM plat_user
WHERE plat_user.del_flag = 0
) AS t2
ON t1.org_id = t2.id
<where>
AND t2.id iS NULL
AND t1.is_tenant = '0'
<if
test=
"dto.tenantId != null and dto.tenantId != ''"
>
AND t1.tenant_id = #{dto.tenantId}
</if>
<if
test=
"dto.account != null and dto.account != ''"
>
AND t1.account LIKE CONCAT('%',#{dto.account},'%')
</if>
<if
test=
"dto.name != null and dto.name != ''"
>
AND t1.username LIKE CONCAT('%',#{dto.name},'%')
</if>
<if
test=
"dto.mobile != null and dto.mobile != ''"
>
AND t1.mobile LIKE CONCAT('%',#{dto.mobile},'%')
</if>
<if
test=
"dto.status != null and dto.status != ''"
>
AND t1.status = #{dto.status}
</if>
<if
test=
"dto.roleId != null and dto.notRoleId != '' "
>
AND t1.id IN
<foreach
collection=
"dto.userIdList"
item=
"item"
separator=
","
open=
"("
close=
")"
index=
""
>
#{item}
</foreach>
</if>
<if
test=
"dto.notRoleId != null and dto.notRoleId != ''"
>
AND t1.id NOT IN
<foreach
collection=
"dto.userIdList"
item=
"item"
separator=
","
open=
"("
close=
")"
index=
""
>
#{item}
</foreach>
</if>
<if
test=
"dto.keyword != null and dto.keyword != ''"
>
AND ( t1.account LIKE CONCAT('%',#{dto.keyword},'%')
OR t1.username LIKE CONCAT('%',#{dto.keyword},'%')
)
</if>
</where>
</select>
<select
id=
"getMenuListByUserId"
resultType=
"com.makeit.entity.saas.PlatMenu"
>
SELECT t1.*
FROM plat_menu AS t1
LEFT JOIN plat_role_menu AS t2
ON t1.id = t2.menu_id
LEFT JOIN plat_role AS t3
ON t2.role_id = t3.id
LEFT JOIN plat_user_role AS t4
ON t3.id = t4.role_id
<where>
AND t1.del_flag = 0
AND t2.del_flag = 0
AND t3.del_flag = 0
AND t4.del_flag = 0
AND t4.user_id =#{userId}
</where>
</select>
</mapper>
server-service/src/main/resources/mappers/SaasOperationLogMapper.xml
0 → 100644
View file @
87b83909
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.makeit.mapper.saas.SaasOperationLogMapper"
>
<select
id=
"selectByCondition"
resultType=
"com.makeit.dto.saas.SaasOperationLogDTO"
>
select
ol.id as id,
ol.saas_user_id as platUserId,
ol.tenant_id as tenantId,
ol.content as content,
ol.create_date as createDate,
pu.username as platUserName,
t.name as tenantName
from saas_operation_log ol
left join saas_user pu on ol.saas_user_id = pu.id and pu.del_flag = 0
left join plat_tenant t on t.id = ol.tenant_id and t.del_flag = 0
<where>
and ol.del_flag = 0
<if
test=
"params.platUserName != null and params.platUserName != ''"
>
and pu.username like CONCAT('%',#{params.platUserName},'%')
</if>
<if
test=
"params.tenantName != null and params.tenantName != ''"
>
and t.name like CONCAT('%',#{params.tenantName},'%')
</if>
<if
test=
"params.startedAt != null and params.startedAt != ''"
>
and ol.create_date
>
#{params.startedAt}
</if>
<if
test=
"params.endedAt != null and params.endedAt != ''"
>
and ol.create_date
<
#{params.endedAt}
</if>
</where>
order by ol.create_date desc
</select>
</mapper>
\ No newline at end of file
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