Commit a1d3a172 by lzy

Merge branch 'dev' of git.xmmakeit.com:huangjiay/iot-platform-server into dev

parents 0a0d8d8f 87b83909
Showing with 1306 additions and 965 deletions
......@@ -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='租户端租户菜单关联表';
......@@ -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,11 +55,24 @@ 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("服务端接口文档")
.version("1.0.1")
.build();
}
}
//TODO ywc 放到各自的模块里
\ No newline at end of file
}
\ No newline at end of file
......@@ -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;
......
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));
}
}
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()));
}
}
......@@ -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;
......
......@@ -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){
......
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")
......
......@@ -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不能为空"),
;
;
/**
* 消息码
......
......@@ -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:";
......
......@@ -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;
......
......@@ -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;
......
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
package com.makeit.module.admin.dto;
import lombok.Data;
@Data
public class SysUserAccountDTO {
private String account;
}
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;
}
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;
}
package com.makeit.module.admin.dto;
import lombok.Data;
@Data
public class SysUserRoleImportDTO {
//@Excel(name = "用户账户")
private String userAccount;
//@Excel(name = "角色名称")
private String roleName;
}
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;
}
package com.makeit.module.admin.plat;
package com.makeit.module.admin.dto.plat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......
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;
......
package com.makeit.module.admin.plat;
package com.makeit.module.admin.dto.plat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......
package com.makeit.module.admin.vo.plat;
package com.makeit.module.admin.dto.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;
......
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 tntUserId;
private String platUserId;
//todo dto
// @ApiModelProperty(value = "租户账号 详情用")
// private PlatUser tntUser;
@ApiModelProperty(value = "租户账号 详情用")
private PlatUserVO tntUser;
// @ApiModelProperty(value = "菜单id列表 以逗号分隔")
// private String menuList;
......
package com.makeit.module.admin.plat;
package com.makeit.module.admin.dto.plat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......
package com.makeit.module.admin.plat;
package com.makeit.module.admin.dto.plat;
import com.makeit.common.dto.BaseIdDTO;
import io.swagger.annotations.ApiModel;
......
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;
......
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;
......
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;
......
package com.makeit.module.admin.saas;
package com.makeit.module.admin.dto.saas;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......
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;
......
package com.makeit.module.admin.saas;
package com.makeit.module.admin.dto.saas;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......
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;
......
package com.makeit.module.admin.saas;
package com.makeit.module.admin.dto.saas;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......
package com.makeit.module.admin.saas;
package com.makeit.module.admin.dto.saas;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......
package com.makeit.module.admin.plat;
package com.makeit.module.admin.vo.plat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......
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;
}
package com.makeit.module.admin.vo.plat;
import com.makeit.module.admin.plat.PlatButtonVO;
import com.makeit.module.admin.saas.SaasMenuDTOVO;
import com.makeit.module.admin.dto.plat.PlatMenuDTOVO;
import com.makeit.module.admin.dto.plat.PlatRoleDTOVO;
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<SaasMenuDTOVO> menuList;
private List<PlatMenuDTOVO> menuList;
// @ApiModelProperty("按钮列表")
// private List<TntMenuDTOVO> buttonList;
......
package com.makeit.module.admin.plat;
package com.makeit.module.admin.vo.plat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......
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;
......
package com.makeit.module.admin.saas;
package com.makeit.module.admin.vo.saas;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......
......@@ -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.SysFactoryDTOVO;
import com.makeit.module.admin.dto.plat.PlatTenantDTOVO;
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 copyForFactory(SysFactoryDTOVO factory);
void copyForTenant(PlatTenantDTOVO factory);
}
......@@ -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.SysFactoryDTOVO;
import com.makeit.module.admin.dto.plat.PlatTenantDTOVO;
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 copyForFactory(SysFactoryDTOVO factory) {
public void copyForTenant(PlatTenantDTOVO factory) {
List<SysConfigCategory> configCategoryList =
sysConfigCategoryService.list(new QueryWrapper<SysConfigCategory>().lambda()
.eq(SysConfigCategory::getTenantId, IdConst.DEFAULT_FACTORY_ID)
......
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);
}
}
......@@ -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;
}
}
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;
......
......@@ -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));
......
......@@ -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;
......
......@@ -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;
......
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);
}
}
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;
......
package com.makeit.utils.user.wechat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.makeit.module.admin.dto.SysFactoryDTOVO;
import com.makeit.module.admin.dto.SysRoleDTOVO;
import com.makeit.module.admin.dto.plat.PlatRoleDTOVO;
import com.makeit.module.admin.dto.plat.PlatTenantDTOVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -27,7 +27,7 @@ public class WechatUserInfo implements Serializable {
private String id;
private String factoryId;
private String tenantId;
private String isFactory;
private String deptId;
......@@ -55,11 +55,11 @@ public class WechatUserInfo implements Serializable {
private String token;
@ApiModelProperty("厂别列表")
private List<SysFactoryDTOVO> factoryList;
@ApiModelProperty("租户列表")
private List<PlatTenantDTOVO> factoryList;
@ApiModelProperty("角色列表")
private List<SysRoleDTOVO> roleList;
private List<PlatRoleDTOVO> roleList;
@ApiModelProperty("微信菜单code列表")
private List<String> wechatMenuCodeList;
......
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;
}
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;
}
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
......@@ -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 {
/**
......
......@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.makeit.common.entity.BaseEntity;
import lombok.Data;
import java.util.Date;
import java.time.LocalDateTime;
/**
* 租户管理
......@@ -27,12 +27,12 @@ public class PlatTenant extends BaseEntity {
/**
* 租户有效期-开始时间
*/
private Date startTime;
private LocalDateTime startTime;
/**
* 租户有效期-结束时间
*/
private Date endTime;
private LocalDateTime endTime;
/**
* 租户管理员id
......
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
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 {
......
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;
}
}
......@@ -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);
}
......@@ -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);
}
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> {
}
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);
}
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;
// }
}
......@@ -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);
}
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();
}
......@@ -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();
}
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> {
}
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);
}
......@@ -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;
......
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);
}
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);
}
......@@ -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;
......
......@@ -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;
......
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{
}
......@@ -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;
......
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);
}
}
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);
}
}
......@@ -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;
......
......@@ -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);
......
package com.makeit.module.admin.dto;
package com.makeit.vo.platform.auth;
import com.makeit.common.dto.BaseTenantDTO;
import com.makeit.common.dto.BaseOrgDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel("部门 查询")
@ApiModel("租户端部门 查询")
@Data
public class SysDeptQueryDTO extends BaseTenantDTO {
public class PlatOrgQueryDTO extends BaseOrgDTO {
@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;
}
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 SysUserDTOVO extends BaseIdDTO {
public class PlatPersonDTOVO 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;
}
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;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment