refactor(system): 重构系统模块的VO类和定时任务处理
This commit is contained in:
+2
-1
@@ -19,6 +19,7 @@ import cn.odboy.base.KitPageArgs;
|
|||||||
import cn.odboy.base.KitPageResult;
|
import cn.odboy.base.KitPageResult;
|
||||||
import cn.odboy.system.dal.dataobject.SystemQuartzJobTb;
|
import cn.odboy.system.dal.dataobject.SystemQuartzJobTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemQuartzLogTb;
|
import cn.odboy.system.dal.dataobject.SystemQuartzLogTb;
|
||||||
|
import cn.odboy.system.dal.model.SystemQuartzJobVo;
|
||||||
import cn.odboy.system.dal.model.SystemQueryQuartzJobArgs;
|
import cn.odboy.system.dal.model.SystemQueryQuartzJobArgs;
|
||||||
import cn.odboy.system.dal.model.SystemUpdateQuartzJobArgs;
|
import cn.odboy.system.dal.model.SystemUpdateQuartzJobArgs;
|
||||||
import cn.odboy.system.framework.operalog.OperationLog;
|
import cn.odboy.system.framework.operalog.OperationLog;
|
||||||
@@ -86,7 +87,7 @@ public class SystemQuartzJobController {
|
|||||||
@ApiOperation("新增定时任务")
|
@ApiOperation("新增定时任务")
|
||||||
@PostMapping(value = "/createQuartzJob")
|
@PostMapping(value = "/createQuartzJob")
|
||||||
@PreAuthorize("@el.check('quartzJob:add')")
|
@PreAuthorize("@el.check('quartzJob:add')")
|
||||||
public ResponseEntity<Void> createQuartzJob(@Validated @RequestBody SystemQuartzJobTb args) {
|
public ResponseEntity<Void> createQuartzJob(@Validated @RequestBody SystemQuartzJobVo args) {
|
||||||
systemQuartzJobService.createJob(args);
|
systemQuartzJobService.createJob(args);
|
||||||
return ResponseEntity.ok(null);
|
return ResponseEntity.ok(null);
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-2
@@ -62,6 +62,5 @@ public class SystemQuartzJobTb extends KitBaseUserTimeTb {
|
|||||||
@NotBlank
|
@NotBlank
|
||||||
@ApiModelProperty(value = "备注")
|
@ApiModelProperty(value = "备注")
|
||||||
@TableField(updateStrategy = FieldStrategy.ALWAYS)
|
@TableField(updateStrategy = FieldStrategy.ALWAYS)
|
||||||
private String
|
private String description;
|
||||||
description;
|
|
||||||
}
|
}
|
||||||
+56
-2
@@ -1,17 +1,71 @@
|
|||||||
package cn.odboy.system.dal.model;
|
package cn.odboy.system.dal.model;
|
||||||
|
|
||||||
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
import cn.odboy.base.KitBaseUserTimeTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
public class SystemDeptVo extends SystemDeptTb {
|
public class SystemDeptVo extends KitBaseUserTimeTb {
|
||||||
|
|
||||||
|
@NotNull(groups = Update.class)
|
||||||
|
@ApiModelProperty(value = "ID", hidden = true)
|
||||||
|
private Long id;
|
||||||
|
@ApiModelProperty(value = "排序")
|
||||||
|
private Integer deptSort;
|
||||||
|
@NotBlank
|
||||||
|
@ApiModelProperty(value = "部门名称")
|
||||||
|
private String name;
|
||||||
|
@NotNull
|
||||||
|
@ApiModelProperty(value = "是否启用")
|
||||||
|
private Boolean enabled;
|
||||||
|
@ApiModelProperty(value = "上级部门")
|
||||||
|
private Long pid;
|
||||||
|
@ApiModelProperty(value = "子节点数目", hidden = true)
|
||||||
|
private Integer subCount = 0;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (o == null || getClass() != o.getClass()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
SystemDeptVo dept = (SystemDeptVo) o;
|
||||||
|
return Objects.equals(id, dept.id) && Objects.equals(name, dept.name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return Objects.hash(id, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否有子节点")
|
||||||
|
public Boolean getHasChildren() {
|
||||||
|
return subCount > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否为叶子")
|
||||||
|
public Boolean getLeaf() {
|
||||||
|
return subCount <= 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "标签名称")
|
||||||
|
public String getLabel() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 扩展字段
|
||||||
|
*/
|
||||||
@ApiModelProperty(value = "角色")
|
@ApiModelProperty(value = "角色")
|
||||||
private Set<SystemRoleTb> roles;
|
private Set<SystemRoleTb> roles;
|
||||||
@ApiModelProperty(value = "子部门")
|
@ApiModelProperty(value = "子部门")
|
||||||
|
|||||||
+17
-2
@@ -15,16 +15,31 @@
|
|||||||
*/
|
*/
|
||||||
package cn.odboy.system.dal.model;
|
package cn.odboy.system.dal.model;
|
||||||
|
|
||||||
import cn.odboy.system.dal.dataobject.SystemDictDetailTb;
|
import cn.odboy.base.KitBaseUserTimeTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemDictTb;
|
import cn.odboy.system.dal.dataobject.SystemDictTb;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
public class SystemDictDetailVo extends SystemDictDetailTb {
|
public class SystemDictDetailVo extends KitBaseUserTimeTb {
|
||||||
|
|
||||||
|
@NotNull(groups = Update.class)
|
||||||
|
@ApiModelProperty(value = "ID", hidden = true)
|
||||||
|
private Long id;
|
||||||
|
@ApiModelProperty(hidden = true)
|
||||||
|
private Long dictId;
|
||||||
|
@ApiModelProperty(value = "字典标签")
|
||||||
|
private String label;
|
||||||
|
@ApiModelProperty(value = "字典值")
|
||||||
|
private String value;
|
||||||
|
@ApiModelProperty(value = "排序")
|
||||||
|
private Integer dictSort = 999;
|
||||||
|
/**
|
||||||
|
* 扩展字段
|
||||||
|
*/
|
||||||
@ApiModelProperty(value = "字典")
|
@ApiModelProperty(value = "字典")
|
||||||
private SystemDictTb dict;
|
private SystemDictTb dict;
|
||||||
}
|
}
|
||||||
+69
-4
@@ -1,19 +1,84 @@
|
|||||||
package cn.odboy.system.dal.model;
|
package cn.odboy.system.dal.model;
|
||||||
|
|
||||||
import cn.odboy.system.dal.dataobject.SystemMenuTb;
|
import cn.odboy.base.KitBaseUserTimeTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import lombok.EqualsAndHashCode;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@EqualsAndHashCode(callSuper = true)
|
public class SystemMenuVo extends KitBaseUserTimeTb {
|
||||||
public class SystemMenuVo extends SystemMenuTb {
|
|
||||||
|
|
||||||
|
@NotNull(groups = {Update.class})
|
||||||
|
@ApiModelProperty(value = "ID", hidden = true)
|
||||||
|
private Long id;
|
||||||
|
@ApiModelProperty(value = "菜单标题")
|
||||||
|
private String title;
|
||||||
|
@ApiModelProperty(value = "菜单组件名称")
|
||||||
|
private String componentName;
|
||||||
|
@ApiModelProperty(value = "排序")
|
||||||
|
private Integer menuSort = 999;
|
||||||
|
@ApiModelProperty(value = "组件路径")
|
||||||
|
private String component;
|
||||||
|
@ApiModelProperty(value = "路由地址")
|
||||||
|
private String path;
|
||||||
|
@ApiModelProperty(value = "菜单类型,目录、菜单、按钮")
|
||||||
|
private Integer type;
|
||||||
|
@ApiModelProperty(value = "权限标识")
|
||||||
|
private String permission;
|
||||||
|
@ApiModelProperty(value = "菜单图标")
|
||||||
|
private String icon;
|
||||||
|
@ApiModelProperty(value = "缓存")
|
||||||
|
private Boolean cache;
|
||||||
|
@ApiModelProperty(value = "是否隐藏")
|
||||||
|
private Boolean hidden;
|
||||||
|
@ApiModelProperty(value = "上级菜单")
|
||||||
|
private Long pid;
|
||||||
|
@ApiModelProperty(value = "子节点数目", hidden = true)
|
||||||
|
private Integer subCount = 0;
|
||||||
|
@ApiModelProperty(value = "外链菜单")
|
||||||
|
private Boolean iFrame;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (o == null || getClass() != o.getClass()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
SystemMenuVo menu = (SystemMenuVo) o;
|
||||||
|
return Objects.equals(id, menu.id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return Objects.hash(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否有子节点")
|
||||||
|
public Boolean getHasChildren() {
|
||||||
|
return subCount > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否为叶子")
|
||||||
|
public Boolean getLeaf() {
|
||||||
|
return subCount <= 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "标签名称")
|
||||||
|
public String getLabel() {
|
||||||
|
return title;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 附加属性
|
||||||
|
*/
|
||||||
@ApiModelProperty(value = "菜单角色")
|
@ApiModelProperty(value = "菜单角色")
|
||||||
private Set<SystemRoleTb> roles;
|
private Set<SystemRoleTb> roles;
|
||||||
@ApiModelProperty(value = "子菜单")
|
@ApiModelProperty(value = "子菜单")
|
||||||
|
|||||||
+32
-2
@@ -15,13 +15,43 @@
|
|||||||
*/
|
*/
|
||||||
package cn.odboy.system.dal.model;
|
package cn.odboy.system.dal.model;
|
||||||
|
|
||||||
import cn.odboy.system.dal.dataobject.SystemOssStorageTb;
|
import cn.odboy.base.KitBaseUserTimeTb;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
public class SystemOssStorageVo extends SystemOssStorageTb {
|
public class SystemOssStorageVo extends KitBaseUserTimeTb {
|
||||||
|
|
||||||
|
@ApiModelProperty("ID")
|
||||||
|
private Long id;
|
||||||
|
@ApiModelProperty("类型,比如minio")
|
||||||
|
private String serviceType;
|
||||||
|
@ApiModelProperty("服务地址")
|
||||||
|
private String endpoint;
|
||||||
|
@ApiModelProperty("存储桶名称")
|
||||||
|
private String bucketName;
|
||||||
|
@ApiModelProperty("完整文件名称")
|
||||||
|
private String fileName;
|
||||||
|
@ApiModelProperty("文件大小, 单位:字节")
|
||||||
|
private Long fileSize;
|
||||||
|
@ApiModelProperty("文件类型")
|
||||||
|
private String fileMime;
|
||||||
|
@ApiModelProperty("短文件名")
|
||||||
|
private String filePrefix;
|
||||||
|
@ApiModelProperty("文件后缀")
|
||||||
|
private String fileSuffix;
|
||||||
|
@ApiModelProperty("文件md5")
|
||||||
|
private String fileMd5;
|
||||||
|
@ApiModelProperty("文件链接")
|
||||||
|
private String fileUrl;
|
||||||
|
@ApiModelProperty("文件编码")
|
||||||
|
private String fileCode;
|
||||||
|
@ApiModelProperty("对象路径")
|
||||||
|
private String objectName;
|
||||||
|
/**
|
||||||
|
* 扩展字段
|
||||||
|
*/
|
||||||
private String fileSizeDesc;
|
private String fileSizeDesc;
|
||||||
}
|
}
|
||||||
|
|||||||
+36
-2
@@ -1,14 +1,48 @@
|
|||||||
package cn.odboy.system.dal.model;
|
package cn.odboy.system.dal.model;
|
||||||
|
|
||||||
import cn.odboy.system.dal.dataobject.SystemQuartzJobTb;
|
import cn.odboy.base.KitBaseUserTimeTb;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
public class SystemQuartzJobVo extends SystemQuartzJobTb {
|
public class SystemQuartzJobVo extends KitBaseUserTimeTb {
|
||||||
|
|
||||||
|
public static final String JOB_KEY = "JOB_KEY";
|
||||||
|
@NotNull(groups = {Update.class})
|
||||||
|
private Long id;
|
||||||
|
@ApiModelProperty(value = "定时器名称")
|
||||||
|
private String jobName;
|
||||||
|
@NotBlank
|
||||||
|
@ApiModelProperty(value = "Bean名称")
|
||||||
|
private String beanName;
|
||||||
|
@NotBlank
|
||||||
|
@ApiModelProperty(value = "方法名称")
|
||||||
|
private String methodName;
|
||||||
|
@ApiModelProperty(value = "参数")
|
||||||
|
private String params;
|
||||||
|
@NotBlank
|
||||||
|
@ApiModelProperty(value = "cron表达式")
|
||||||
|
private String cronExpression;
|
||||||
|
@ApiModelProperty(value = "状态:暂停或启动")
|
||||||
|
private Boolean isPause = false;
|
||||||
|
@ApiModelProperty(value = "负责人")
|
||||||
|
private String personInCharge;
|
||||||
|
@ApiModelProperty(value = "报警邮箱")
|
||||||
|
private String email;
|
||||||
|
@ApiModelProperty(value = "子任务")
|
||||||
|
private String subTask;
|
||||||
|
@ApiModelProperty(value = "失败后暂停")
|
||||||
|
private Boolean pauseAfterFailure;
|
||||||
|
@NotBlank
|
||||||
|
@ApiModelProperty(value = "备注")
|
||||||
|
private String description;
|
||||||
|
/**
|
||||||
|
* 扩展字段
|
||||||
|
*/
|
||||||
@ApiModelProperty(value = "用于子任务唯一标识", hidden = true)
|
@ApiModelProperty(value = "用于子任务唯一标识", hidden = true)
|
||||||
private String uuid;
|
private String uuid;
|
||||||
}
|
}
|
||||||
|
|||||||
+40
-2
@@ -1,21 +1,59 @@
|
|||||||
package cn.odboy.system.dal.model;
|
package cn.odboy.system.dal.model;
|
||||||
|
|
||||||
|
import cn.odboy.base.KitBaseUserTimeTb;
|
||||||
|
import cn.odboy.system.constant.SystemDataScopeEnum;
|
||||||
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
|
||||||
import cn.odboy.system.dal.dataobject.SystemUserTb;
|
import cn.odboy.system.dal.dataobject.SystemUserTb;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
public class SystemRoleVo extends SystemRoleTb {
|
public class SystemRoleVo extends KitBaseUserTimeTb {
|
||||||
|
|
||||||
|
@NotNull(groups = {Update.class})
|
||||||
|
@ApiModelProperty(value = "ID", hidden = true)
|
||||||
|
private Long id;
|
||||||
|
@NotBlank
|
||||||
|
@ApiModelProperty(value = "名称", hidden = true)
|
||||||
|
private String name;
|
||||||
|
@ApiModelProperty(value = "数据权限,全部 、 本级 、 自定义")
|
||||||
|
private String dataScope = SystemDataScopeEnum.THIS_LEVEL.getValue();
|
||||||
|
@ApiModelProperty(value = "级别,数值越小,级别越大")
|
||||||
|
private Integer level = 3;
|
||||||
|
@ApiModelProperty(value = "描述")
|
||||||
|
private String description;
|
||||||
|
/**
|
||||||
|
* 扩展字段
|
||||||
|
*/
|
||||||
@ApiModelProperty(value = "用户", hidden = true)
|
@ApiModelProperty(value = "用户", hidden = true)
|
||||||
private Set<SystemUserTb> users;
|
private Set<SystemUserTb> users;
|
||||||
@ApiModelProperty(value = "菜单", hidden = true)
|
@ApiModelProperty(value = "菜单", hidden = true)
|
||||||
private Set<SystemMenuVo> menus;
|
private Set<SystemMenuVo> menus;
|
||||||
@ApiModelProperty(value = "部门", hidden = true)
|
@ApiModelProperty(value = "部门", hidden = true)
|
||||||
private Set<SystemDeptTb> depts;
|
private Set<SystemDeptTb> depts;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (o == null || getClass() != o.getClass()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
SystemRoleVo role = (SystemRoleVo) o;
|
||||||
|
return Objects.equals(id, role.id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return Objects.hash(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
-2
@@ -19,7 +19,6 @@ import cn.odboy.base.KitObject;
|
|||||||
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemJobTb;
|
import cn.odboy.system.dal.dataobject.SystemJobTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -36,7 +35,6 @@ public class SystemSimpleUserVo extends KitObject {
|
|||||||
@ApiModelProperty(value = "用户岗位")
|
@ApiModelProperty(value = "用户岗位")
|
||||||
private Set<SystemJobTb> jobs;
|
private Set<SystemJobTb> jobs;
|
||||||
private Long deptId;
|
private Long deptId;
|
||||||
@TableField(exist = false)
|
|
||||||
private SystemDeptTb dept;
|
private SystemDeptTb dept;
|
||||||
@ApiModelProperty(value = "用户名称")
|
@ApiModelProperty(value = "用户名称")
|
||||||
private String username;
|
private String username;
|
||||||
|
|||||||
+61
-2
@@ -1,11 +1,15 @@
|
|||||||
package cn.odboy.system.dal.model;
|
package cn.odboy.system.dal.model;
|
||||||
|
|
||||||
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
|
||||||
import cn.odboy.system.dal.dataobject.SystemJobTb;
|
import cn.odboy.system.dal.dataobject.SystemJobTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemUserTb;
|
import cn.odboy.system.dal.dataobject.SystemUserTb;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import jakarta.validation.constraints.Email;
|
||||||
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
@@ -13,10 +17,65 @@ import lombok.Setter;
|
|||||||
@Setter
|
@Setter
|
||||||
public class SystemUserVo extends SystemUserTb {
|
public class SystemUserVo extends SystemUserTb {
|
||||||
|
|
||||||
|
@NotNull(groups = Update.class)
|
||||||
|
@ApiModelProperty(value = "ID", hidden = true)
|
||||||
|
private Long id;
|
||||||
|
@ApiModelProperty(hidden = true)
|
||||||
|
private Long deptId;
|
||||||
|
@NotBlank
|
||||||
|
@ApiModelProperty(value = "用户名称")
|
||||||
|
private String username;
|
||||||
|
@NotBlank
|
||||||
|
@ApiModelProperty(value = "用户昵称")
|
||||||
|
private String nickName;
|
||||||
|
@Email
|
||||||
|
@NotBlank
|
||||||
|
@ApiModelProperty(value = "邮箱")
|
||||||
|
private String email;
|
||||||
|
@NotBlank
|
||||||
|
@ApiModelProperty(value = "电话号码")
|
||||||
|
private String phone;
|
||||||
|
@ApiModelProperty(value = "用户性别")
|
||||||
|
private String gender;
|
||||||
|
@ApiModelProperty(value = "头像真实名称", hidden = true)
|
||||||
|
private String avatarName;
|
||||||
|
@ApiModelProperty(value = "头像存储的路径", hidden = true)
|
||||||
|
private String avatarPath;
|
||||||
|
@ApiModelProperty(value = "密码")
|
||||||
|
private String password;
|
||||||
|
@NotNull
|
||||||
|
@ApiModelProperty(value = "是否启用")
|
||||||
|
private Boolean enabled;
|
||||||
|
@ApiModelProperty(value = "是否为admin账号", hidden = true)
|
||||||
|
private Boolean isAdmin = false;
|
||||||
|
@ApiModelProperty(value = "最后修改密码的时间", hidden = true)
|
||||||
|
private Date pwdResetTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 扩展字段
|
||||||
|
*/
|
||||||
@ApiModelProperty(value = "用户部门")
|
@ApiModelProperty(value = "用户部门")
|
||||||
private SystemDeptTb dept;
|
private SystemDeptVo dept;
|
||||||
@ApiModelProperty(value = "用户角色")
|
@ApiModelProperty(value = "用户角色")
|
||||||
private Set<SystemRoleTb> roles;
|
private Set<SystemRoleTb> roles;
|
||||||
@ApiModelProperty(value = "用户岗位")
|
@ApiModelProperty(value = "用户岗位")
|
||||||
private Set<SystemJobTb> jobs;
|
private Set<SystemJobTb> jobs;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (o == null || getClass() != o.getClass()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
SystemUserVo user = (SystemUserVo) o;
|
||||||
|
return Objects.equals(id, user.id) && Objects.equals(username, user.username);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return Objects.hash(id, username);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-3
@@ -13,10 +13,9 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.system.framework.quartz;
|
package cn.odboy.system.framework.quartz;
|
||||||
|
|
||||||
import cn.odboy.system.dal.dataobject.SystemQuartzJobTb;
|
import cn.odboy.system.dal.model.SystemQuartzJobVo;
|
||||||
import cn.odboy.system.service.SystemQuartzJobService;
|
import cn.odboy.system.service.SystemQuartzJobService;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -41,7 +40,7 @@ public class ActiveJobRegister implements ApplicationRunner {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void run(ApplicationArguments applicationArguments) {
|
public void run(ApplicationArguments applicationArguments) {
|
||||||
List<SystemQuartzJobTb> quartzJobs = systemQuartzJobService.listEnableQuartzJob();
|
List<SystemQuartzJobVo> quartzJobs = systemQuartzJobService.listEnableQuartzJob();
|
||||||
quartzJobs.forEach(quartzManage::addJob);
|
quartzJobs.forEach(quartzManage::addJob);
|
||||||
log.info("Timing task injection complete");
|
log.info("Timing task injection complete");
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -114,7 +114,7 @@ public class ExecutionJobBean extends QuartzJobBean {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private SystemSendEmailArgs taskAlarm(SystemQuartzJobTb quartzJob, String msg) {
|
private SystemSendEmailArgs taskAlarm(SystemQuartzJobVo quartzJob, String msg) {
|
||||||
SystemSendEmailArgs sendEmailRequest = new SystemSendEmailArgs();
|
SystemSendEmailArgs sendEmailRequest = new SystemSendEmailArgs();
|
||||||
sendEmailRequest.setSubject("定时任务【" + quartzJob.getJobName() + "】执行失败,请尽快处理!");
|
sendEmailRequest.setSubject("定时任务【" + quartzJob.getJobName() + "】执行失败,请尽快处理!");
|
||||||
Map<String, Object> data = new HashMap<>(16);
|
Map<String, Object> data = new HashMap<>(16);
|
||||||
|
|||||||
+7
-14
@@ -13,13 +13,13 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.system.framework.quartz;
|
package cn.odboy.system.framework.quartz;
|
||||||
|
|
||||||
import cn.odboy.framework.exception.BadRequestException;
|
import cn.odboy.framework.exception.BadRequestException;
|
||||||
import cn.odboy.system.dal.dataobject.SystemQuartzJobTb;
|
import cn.odboy.system.dal.dataobject.SystemQuartzJobTb;
|
||||||
import jakarta.annotation.Resource;
|
import cn.odboy.system.dal.model.SystemQuartzJobVo;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.quartz.CronScheduleBuilder;
|
import org.quartz.CronScheduleBuilder;
|
||||||
import org.quartz.CronTrigger;
|
import org.quartz.CronTrigger;
|
||||||
@@ -40,32 +40,26 @@ import org.springframework.stereotype.Component;
|
|||||||
public class QuartzManage {
|
public class QuartzManage {
|
||||||
|
|
||||||
private static final String JOB_NAME = "TASK_";
|
private static final String JOB_NAME = "TASK_";
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private Scheduler scheduler;
|
private Scheduler scheduler;
|
||||||
|
|
||||||
public void addJob(SystemQuartzJobTb quartzJob) {
|
public void addJob(SystemQuartzJobVo quartzJob) {
|
||||||
try {
|
try {
|
||||||
// 构建job信息
|
// 构建job信息
|
||||||
JobDetail jobDetail =
|
JobDetail jobDetail =
|
||||||
JobBuilder.newJob(ExecutionJobBean.class).withIdentity(JOB_NAME + quartzJob.getId()).build();
|
JobBuilder.newJob(ExecutionJobBean.class).withIdentity(JOB_NAME + quartzJob.getId()).build();
|
||||||
|
|
||||||
// 通过触发器名和cron 表达式创建 Trigger
|
// 通过触发器名和cron 表达式创建 Trigger
|
||||||
Trigger trigger = TriggerBuilder.newTrigger().withIdentity(JOB_NAME + quartzJob.getId()).startNow()
|
Trigger trigger = TriggerBuilder.newTrigger().withIdentity(JOB_NAME + quartzJob.getId()).startNow()
|
||||||
.withSchedule(CronScheduleBuilder.cronSchedule(quartzJob.getCronExpression())).build();
|
.withSchedule(CronScheduleBuilder.cronSchedule(quartzJob.getCronExpression())).build();
|
||||||
|
|
||||||
trigger.getJobDataMap().put(SystemQuartzJobTb.JOB_KEY, quartzJob);
|
trigger.getJobDataMap().put(SystemQuartzJobTb.JOB_KEY, quartzJob);
|
||||||
|
|
||||||
// 重置启动时间
|
// 重置启动时间
|
||||||
((CronTriggerImpl) trigger).setStartTime(new Date());
|
((CronTriggerImpl) trigger).setStartTime(new Date());
|
||||||
|
|
||||||
// 执行定时任务,如果是持久化的,这里会报错,捕获输出
|
// 执行定时任务,如果是持久化的,这里会报错,捕获输出
|
||||||
try {
|
try {
|
||||||
scheduler.scheduleJob(jobDetail, trigger);
|
scheduler.scheduleJob(jobDetail, trigger);
|
||||||
} catch (ObjectAlreadyExistsException e) {
|
} catch (ObjectAlreadyExistsException e) {
|
||||||
log.warn("定时任务已存在,跳过加载");
|
log.warn("定时任务已存在,跳过加载");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 暂停任务
|
// 暂停任务
|
||||||
if (quartzJob.getIsPause()) {
|
if (quartzJob.getIsPause()) {
|
||||||
pauseJob(quartzJob);
|
pauseJob(quartzJob);
|
||||||
@@ -81,7 +75,7 @@ public class QuartzManage {
|
|||||||
*
|
*
|
||||||
* @param quartzJob /
|
* @param quartzJob /
|
||||||
*/
|
*/
|
||||||
public void updateJobCron(SystemQuartzJobTb quartzJob) {
|
public void updateJobCron(SystemQuartzJobVo quartzJob) {
|
||||||
try {
|
try {
|
||||||
TriggerKey triggerKey = TriggerKey.triggerKey(JOB_NAME + quartzJob.getId());
|
TriggerKey triggerKey = TriggerKey.triggerKey(JOB_NAME + quartzJob.getId());
|
||||||
CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey);
|
CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey);
|
||||||
@@ -95,7 +89,6 @@ public class QuartzManage {
|
|||||||
// 重置启动时间
|
// 重置启动时间
|
||||||
((CronTriggerImpl) trigger).setStartTime(new Date());
|
((CronTriggerImpl) trigger).setStartTime(new Date());
|
||||||
trigger.getJobDataMap().put(SystemQuartzJobTb.JOB_KEY, quartzJob);
|
trigger.getJobDataMap().put(SystemQuartzJobTb.JOB_KEY, quartzJob);
|
||||||
|
|
||||||
scheduler.rescheduleJob(triggerKey, trigger);
|
scheduler.rescheduleJob(triggerKey, trigger);
|
||||||
// 暂停任务
|
// 暂停任务
|
||||||
if (quartzJob.getIsPause()) {
|
if (quartzJob.getIsPause()) {
|
||||||
@@ -128,7 +121,7 @@ public class QuartzManage {
|
|||||||
*
|
*
|
||||||
* @param quartzJob /
|
* @param quartzJob /
|
||||||
*/
|
*/
|
||||||
public void resumeJob(SystemQuartzJobTb quartzJob) {
|
public void resumeJob(SystemQuartzJobVo quartzJob) {
|
||||||
try {
|
try {
|
||||||
TriggerKey triggerKey = TriggerKey.triggerKey(JOB_NAME + quartzJob.getId());
|
TriggerKey triggerKey = TriggerKey.triggerKey(JOB_NAME + quartzJob.getId());
|
||||||
CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey);
|
CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey);
|
||||||
@@ -149,7 +142,7 @@ public class QuartzManage {
|
|||||||
*
|
*
|
||||||
* @param quartzJob /
|
* @param quartzJob /
|
||||||
*/
|
*/
|
||||||
public void runJobNow(SystemQuartzJobTb quartzJob) {
|
public void runJobNow(SystemQuartzJobVo quartzJob) {
|
||||||
try {
|
try {
|
||||||
TriggerKey triggerKey = TriggerKey.triggerKey(JOB_NAME + quartzJob.getId());
|
TriggerKey triggerKey = TriggerKey.triggerKey(JOB_NAME + quartzJob.getId());
|
||||||
CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey);
|
CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey);
|
||||||
@@ -172,7 +165,7 @@ public class QuartzManage {
|
|||||||
*
|
*
|
||||||
* @param quartzJob /
|
* @param quartzJob /
|
||||||
*/
|
*/
|
||||||
public void pauseJob(SystemQuartzJobTb quartzJob) {
|
public void pauseJob(SystemQuartzJobVo quartzJob) {
|
||||||
try {
|
try {
|
||||||
JobKey jobKey = JobKey.jobKey(JOB_NAME + quartzJob.getId());
|
JobKey jobKey = JobKey.jobKey(JOB_NAME + quartzJob.getId());
|
||||||
scheduler.pauseJob(jobKey);
|
scheduler.pauseJob(jobKey);
|
||||||
|
|||||||
+2
-3
@@ -18,7 +18,6 @@ package cn.odboy.system.service;
|
|||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.odboy.system.constant.SystemDataScopeEnum;
|
import cn.odboy.system.constant.SystemDataScopeEnum;
|
||||||
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
|
||||||
import cn.odboy.system.dal.model.SystemDeptVo;
|
import cn.odboy.system.dal.model.SystemDeptVo;
|
||||||
import cn.odboy.system.dal.model.SystemRoleVo;
|
import cn.odboy.system.dal.model.SystemRoleVo;
|
||||||
import cn.odboy.system.dal.model.SystemUserVo;
|
import cn.odboy.system.dal.model.SystemUserVo;
|
||||||
@@ -55,7 +54,7 @@ public class SystemDataService {
|
|||||||
// 查询用户角色
|
// 查询用户角色
|
||||||
List<SystemRoleVo> roleList = systemUserRoleService.queryRoleByUsersId(user.getId());
|
List<SystemRoleVo> roleList = systemUserRoleService.queryRoleByUsersId(user.getId());
|
||||||
// 获取对应的部门ID
|
// 获取对应的部门ID
|
||||||
for (SystemRoleTb role : roleList) {
|
for (SystemRoleVo role : roleList) {
|
||||||
SystemDataScopeEnum dataScopeEnum = SystemDataScopeEnum.find(role.getDataScope());
|
SystemDataScopeEnum dataScopeEnum = SystemDataScopeEnum.find(role.getDataScope());
|
||||||
switch (Objects.requireNonNull(dataScopeEnum)) {
|
switch (Objects.requireNonNull(dataScopeEnum)) {
|
||||||
case THIS_LEVEL:
|
case THIS_LEVEL:
|
||||||
@@ -78,7 +77,7 @@ public class SystemDataService {
|
|||||||
* @param role 角色
|
* @param role 角色
|
||||||
* @return 数据权限ID
|
* @return 数据权限ID
|
||||||
*/
|
*/
|
||||||
private List<Long> queryCustomDataPermissionByArgs(List<Long> deptIds, SystemRoleTb role) {
|
private List<Long> queryCustomDataPermissionByArgs(List<Long> deptIds, SystemRoleVo role) {
|
||||||
List<SystemDeptTb> deptList = systemRoleDeptService.listDeptByRoleId(role.getId());
|
List<SystemDeptTb> deptList = systemRoleDeptService.listDeptByRoleId(role.getId());
|
||||||
for (SystemDeptTb dept : deptList) {
|
for (SystemDeptTb dept : deptList) {
|
||||||
deptIds.add(dept.getId());
|
deptIds.add(dept.getId());
|
||||||
|
|||||||
+16
-16
@@ -83,7 +83,7 @@ public class SystemDeptService {
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void updateDeptById(SystemDeptTb args) {
|
public void updateDeptById(SystemDeptTb args) {
|
||||||
// 旧的部门
|
// 旧的部门
|
||||||
Long oldPid = this.getDeptById(args.getId()).getPid();
|
Long oldPid = this.getDeptVoById(args.getId()).getPid();
|
||||||
Long newPid = args.getPid();
|
Long newPid = args.getPid();
|
||||||
if (args.getPid() != null && args.getId().equals(args.getPid())) {
|
if (args.getPid() != null && args.getId().equals(args.getPid())) {
|
||||||
throw new BadRequestException("上级不能为自己");
|
throw new BadRequestException("上级不能为自己");
|
||||||
@@ -103,10 +103,10 @@ public class SystemDeptService {
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void deleteDeptByIds(Set<Long> ids) {
|
public void deleteDeptByIds(Set<Long> ids) {
|
||||||
// 获取部门, 和其所有子部门
|
// 获取部门, 和其所有子部门
|
||||||
Set<SystemDeptTb> depts = this.traverseDeptByIdWithPids(ids);
|
Set<SystemDeptVo> depts = this.traverseDeptByIdWithPids(ids);
|
||||||
// 验证是否被角色或用户关联
|
// 验证是否被角色或用户关联
|
||||||
this.verifyBindRelationByIds(depts);
|
this.verifyBindRelationByIds(depts);
|
||||||
for (SystemDeptTb dept : depts) {
|
for (SystemDeptVo dept : depts) {
|
||||||
systemDeptMapper.deleteById(dept.getId());
|
systemDeptMapper.deleteById(dept.getId());
|
||||||
this.updateDeptSubCnt(dept.getPid());
|
this.updateDeptSubCnt(dept.getPid());
|
||||||
}
|
}
|
||||||
@@ -211,8 +211,8 @@ public class SystemDeptService {
|
|||||||
* @param id /
|
* @param id /
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
public SystemDeptTb getDeptById(Long id) {
|
public SystemDeptVo getDeptVoById(Long id) {
|
||||||
return systemDeptMapper.selectById(id);
|
return KitBeanUtil.copyToClass(systemDeptMapper.selectById(id), SystemDeptVo.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -222,8 +222,8 @@ public class SystemDeptService {
|
|||||||
* @param depts /
|
* @param depts /
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
private Set<SystemDeptTb> queryRelationDeptByArgs(List<SystemDeptVo> deptTbList, Set<SystemDeptTb> depts) {
|
private Set<SystemDeptVo> queryRelationDeptByArgs(List<SystemDeptVo> deptTbList, Set<SystemDeptVo> depts) {
|
||||||
for (SystemDeptTb dept : deptTbList) {
|
for (SystemDeptVo dept : deptTbList) {
|
||||||
depts.add(dept);
|
depts.add(dept);
|
||||||
List<SystemDeptVo> deptList = this.listDeptByPid(dept.getId());
|
List<SystemDeptVo> deptList = this.listDeptByPid(dept.getId());
|
||||||
if (CollUtil.isNotEmpty(deptList)) {
|
if (CollUtil.isNotEmpty(deptList)) {
|
||||||
@@ -254,13 +254,13 @@ public class SystemDeptService {
|
|||||||
* @param deptList /
|
* @param deptList /
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
private List<SystemDeptVo> querySuperiorDeptByPid(SystemDeptTb dept, List<SystemDeptVo> deptList) {
|
private List<SystemDeptVo> querySuperiorDeptByPid(SystemDeptVo dept, List<SystemDeptVo> deptList) {
|
||||||
if (dept.getPid() == null) {
|
if (dept.getPid() == null) {
|
||||||
deptList.addAll(this.listRootDept());
|
deptList.addAll(this.listRootDept());
|
||||||
return deptList;
|
return deptList;
|
||||||
}
|
}
|
||||||
deptList.addAll(this.listDeptByPid(dept.getPid()));
|
deptList.addAll(this.listDeptByPid(dept.getPid()));
|
||||||
return querySuperiorDeptByPid(this.getDeptById(dept.getPid()), deptList);
|
return querySuperiorDeptByPid(this.getDeptVoById(dept.getPid()), deptList);
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<SystemDeptVo> listRootDept() {
|
private List<SystemDeptVo> listRootDept() {
|
||||||
@@ -278,7 +278,7 @@ public class SystemDeptService {
|
|||||||
Set<SystemDeptVo> deptSet1 = new LinkedHashSet<>();
|
Set<SystemDeptVo> deptSet1 = new LinkedHashSet<>();
|
||||||
for (Long id : ids) {
|
for (Long id : ids) {
|
||||||
// 同级数据
|
// 同级数据
|
||||||
SystemDeptTb dept = this.getDeptById(id);
|
SystemDeptVo dept = this.getDeptVoById(id);
|
||||||
// 上级数据
|
// 上级数据
|
||||||
List<SystemDeptVo> depts = this.querySuperiorDeptByPid(dept, new ArrayList<>());
|
List<SystemDeptVo> depts = this.querySuperiorDeptByPid(dept, new ArrayList<>());
|
||||||
if (exclude) {
|
if (exclude) {
|
||||||
@@ -314,7 +314,7 @@ public class SystemDeptService {
|
|||||||
}
|
}
|
||||||
if (isChild) {
|
if (isChild) {
|
||||||
deptSet.add(dept);
|
deptSet.add(dept);
|
||||||
} else if (dept.getPid() != null && !deptNames.contains(this.getDeptById(dept.getPid()).getName())) {
|
} else if (dept.getPid() != null && !deptNames.contains(this.getDeptVoById(dept.getPid()).getName())) {
|
||||||
deptSet.add(dept);
|
deptSet.add(dept);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -332,8 +332,8 @@ public class SystemDeptService {
|
|||||||
*
|
*
|
||||||
* @param deptSet /
|
* @param deptSet /
|
||||||
*/
|
*/
|
||||||
public void verifyBindRelationByIds(Set<SystemDeptTb> deptSet) {
|
public void verifyBindRelationByIds(Set<SystemDeptVo> deptSet) {
|
||||||
Set<Long> deptIds = deptSet.stream().map(SystemDeptTb::getId).collect(Collectors.toSet());
|
Set<Long> deptIds = deptSet.stream().map(SystemDeptVo::getId).collect(Collectors.toSet());
|
||||||
if (systemUserDeptService.countUserByDeptIds(deptIds) > 0) {
|
if (systemUserDeptService.countUserByDeptIds(deptIds) > 0) {
|
||||||
throw new BadRequestException("所选部门存在用户关联,请解除后再试!");
|
throw new BadRequestException("所选部门存在用户关联,请解除后再试!");
|
||||||
}
|
}
|
||||||
@@ -353,11 +353,11 @@ public class SystemDeptService {
|
|||||||
*
|
*
|
||||||
* @param ids /
|
* @param ids /
|
||||||
*/
|
*/
|
||||||
public Set<SystemDeptTb> traverseDeptByIdWithPids(Set<Long> ids) {
|
public Set<SystemDeptVo> traverseDeptByIdWithPids(Set<Long> ids) {
|
||||||
Set<SystemDeptTb> depts = new HashSet<>();
|
Set<SystemDeptVo> depts = new HashSet<>();
|
||||||
for (Long id : ids) {
|
for (Long id : ids) {
|
||||||
// 根部门
|
// 根部门
|
||||||
depts.add(this.getDeptById(id));
|
depts.add(this.getDeptVoById(id));
|
||||||
// 子部门
|
// 子部门
|
||||||
List<SystemDeptVo> deptList = this.listDeptByPid(id);
|
List<SystemDeptVo> deptList = this.listDeptByPid(id);
|
||||||
if (CollectionUtil.isNotEmpty(deptList)) {
|
if (CollectionUtil.isNotEmpty(deptList)) {
|
||||||
|
|||||||
+1
-1
@@ -109,7 +109,7 @@ public class SystemDictDetailService {
|
|||||||
*/
|
*/
|
||||||
public KitPageResult<SystemDictDetailVo> searchDictDetail(SystemQueryDictDetailArgs args, Page<SystemDictDetailTb> page) {
|
public KitPageResult<SystemDictDetailVo> searchDictDetail(SystemQueryDictDetailArgs args, Page<SystemDictDetailTb> page) {
|
||||||
IPage<SystemDictDetailVo> iPage = systemDictDetailMapper.selectPageByArgs(page, args).convert(i -> KitBeanUtil.copyToClass(i, SystemDictDetailVo.class));
|
IPage<SystemDictDetailVo> iPage = systemDictDetailMapper.selectPageByArgs(page, args).convert(i -> KitBeanUtil.copyToClass(i, SystemDictDetailVo.class));
|
||||||
List<Long> dictIds = iPage.getRecords().stream().map(SystemDictDetailTb::getDictId).collect(Collectors.toList());
|
List<Long> dictIds = iPage.getRecords().stream().map(SystemDictDetailVo::getDictId).collect(Collectors.toList());
|
||||||
Map<Long, SystemDictTb> id2ItemMap = systemDictMapper.selectByIds(dictIds).stream().collect(Collectors.toMap(SystemDictTb::getId, i -> i));
|
Map<Long, SystemDictTb> id2ItemMap = systemDictMapper.selectByIds(dictIds).stream().collect(Collectors.toMap(SystemDictTb::getId, i -> i));
|
||||||
for (SystemDictDetailVo record : iPage.getRecords()) {
|
for (SystemDictDetailVo record : iPage.getRecords()) {
|
||||||
record.setDict(id2ItemMap.get(record.getDictId()));
|
record.setDict(id2ItemMap.get(record.getDictId()));
|
||||||
|
|||||||
+7
-8
@@ -23,7 +23,6 @@ import cn.odboy.framework.exception.BadRequestException;
|
|||||||
import cn.odboy.system.constant.SystemYesOrNoChConst;
|
import cn.odboy.system.constant.SystemYesOrNoChConst;
|
||||||
import cn.odboy.system.constant.TransferProtocolConst;
|
import cn.odboy.system.constant.TransferProtocolConst;
|
||||||
import cn.odboy.system.dal.dataobject.SystemMenuTb;
|
import cn.odboy.system.dal.dataobject.SystemMenuTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
|
||||||
import cn.odboy.system.dal.model.SystemMenuExportRowVo;
|
import cn.odboy.system.dal.model.SystemMenuExportRowVo;
|
||||||
import cn.odboy.system.dal.model.SystemMenuMetaVo;
|
import cn.odboy.system.dal.model.SystemMenuMetaVo;
|
||||||
import cn.odboy.system.dal.model.SystemMenuRouterVo;
|
import cn.odboy.system.dal.model.SystemMenuRouterVo;
|
||||||
@@ -160,12 +159,12 @@ public class SystemMenuService {
|
|||||||
menuSet = this.queryChildMenuByArgs(menuList, menuSet);
|
menuSet = this.queryChildMenuByArgs(menuList, menuSet);
|
||||||
}
|
}
|
||||||
List<Long> menuIds =
|
List<Long> menuIds =
|
||||||
menuSet.stream().map(SystemMenuTb::getId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
|
menuSet.stream().map(SystemMenuVo::getId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
|
||||||
if (CollUtil.isNotEmpty(menuIds)) {
|
if (CollUtil.isNotEmpty(menuIds)) {
|
||||||
systemRoleMenuService.deleteRoleMenuByMenuIds(menuIds);
|
systemRoleMenuService.deleteRoleMenuByMenuIds(menuIds);
|
||||||
systemMenuMapper.deleteByIds(menuIds);
|
systemMenuMapper.deleteByIds(menuIds);
|
||||||
}
|
}
|
||||||
for (SystemMenuTb menu : menuSet) {
|
for (SystemMenuVo menu : menuSet) {
|
||||||
this.updateMenuSubCnt(menu.getPid());
|
this.updateMenuSubCnt(menu.getPid());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -222,7 +221,7 @@ public class SystemMenuService {
|
|||||||
*/
|
*/
|
||||||
public List<SystemMenuVo> listMenuByUserId(Long currentUserId) {
|
public List<SystemMenuVo> listMenuByUserId(Long currentUserId) {
|
||||||
List<SystemRoleVo> roles = systemUserRoleService.queryRoleByUsersId(currentUserId);
|
List<SystemRoleVo> roles = systemUserRoleService.queryRoleByUsersId(currentUserId);
|
||||||
Set<Long> roleIds = roles.stream().map(SystemRoleTb::getId).collect(Collectors.toSet());
|
Set<Long> roleIds = roles.stream().map(SystemRoleVo::getId).collect(Collectors.toSet());
|
||||||
return new ArrayList<>(systemRoleMenuService.queryMenuByRoleIds(roleIds));
|
return new ArrayList<>(systemRoleMenuService.queryMenuByRoleIds(roleIds));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -270,7 +269,7 @@ public class SystemMenuService {
|
|||||||
* @param menus /
|
* @param menus /
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
public List<SystemMenuVo> querySuperiorMenuByArgs(SystemMenuTb menu, List<SystemMenuVo> menus) {
|
public List<SystemMenuVo> querySuperiorMenuByArgs(SystemMenuVo menu, List<SystemMenuVo> menus) {
|
||||||
if (menu.getPid() == null) {
|
if (menu.getPid() == null) {
|
||||||
menus.addAll(this.listRootMenu());
|
menus.addAll(this.listRootMenu());
|
||||||
return menus;
|
return menus;
|
||||||
@@ -364,7 +363,7 @@ public class SystemMenuService {
|
|||||||
* @param menuVo /
|
* @param menuVo /
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
private SystemMenuRouterVo getMenuVo(SystemMenuTb menu, SystemMenuRouterVo menuVo) {
|
private SystemMenuRouterVo getMenuVo(SystemMenuVo menu, SystemMenuRouterVo menuVo) {
|
||||||
SystemMenuRouterVo menuVo1 = new SystemMenuRouterVo();
|
SystemMenuRouterVo menuVo1 = new SystemMenuRouterVo();
|
||||||
menuVo1.setMeta(menuVo.getMeta());
|
menuVo1.setMeta(menuVo.getMeta());
|
||||||
// 非外链
|
// 非外链
|
||||||
@@ -435,7 +434,7 @@ public class SystemMenuService {
|
|||||||
List<SystemMenuVo> menuList = this.listMenuByPid(id);
|
List<SystemMenuVo> menuList = this.listMenuByPid(id);
|
||||||
menuSet.add(this.getMenuVoById(id));
|
menuSet.add(this.getMenuVoById(id));
|
||||||
menuSet = this.queryChildMenuByArgs(menuList, menuSet);
|
menuSet = this.queryChildMenuByArgs(menuList, menuSet);
|
||||||
return menuSet.stream().map(SystemMenuTb::getId).collect(Collectors.toSet());
|
return menuSet.stream().map(SystemMenuVo::getId).collect(Collectors.toSet());
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<SystemMenuVo> listMenuSuperior(List<Long> ids) {
|
public List<SystemMenuVo> listMenuSuperior(List<Long> ids) {
|
||||||
@@ -443,7 +442,7 @@ public class SystemMenuService {
|
|||||||
List<SystemMenuVo> systemMenuTbs;
|
List<SystemMenuVo> systemMenuTbs;
|
||||||
if (CollectionUtil.isNotEmpty(ids)) {
|
if (CollectionUtil.isNotEmpty(ids)) {
|
||||||
menus = new LinkedHashSet<>(this.listMenuByIds(ids));
|
menus = new LinkedHashSet<>(this.listMenuByIds(ids));
|
||||||
for (SystemMenuTb menu : menus) {
|
for (SystemMenuVo menu : menus) {
|
||||||
List<SystemMenuVo> menuList = this.querySuperiorMenuByArgs(menu, new ArrayList<>());
|
List<SystemMenuVo> menuList = this.querySuperiorMenuByArgs(menu, new ArrayList<>());
|
||||||
for (SystemMenuVo data : menuList) {
|
for (SystemMenuVo data : menuList) {
|
||||||
if (data.getId().equals(menu.getPid())) {
|
if (data.getId().equals(menu.getPid())) {
|
||||||
|
|||||||
+15
-25
@@ -79,7 +79,7 @@ public class SystemQuartzJobService {
|
|||||||
* @param args /
|
* @param args /
|
||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void createJob(SystemQuartzJobTb args) {
|
public void createJob(SystemQuartzJobVo args) {
|
||||||
if (args.getId() != null) {
|
if (args.getId() != null) {
|
||||||
throw new BadRequestException("无效参数id");
|
throw new BadRequestException("无效参数id");
|
||||||
}
|
}
|
||||||
@@ -88,7 +88,8 @@ public class SystemQuartzJobService {
|
|||||||
if (!CronExpression.isValidExpression(args.getCronExpression())) {
|
if (!CronExpression.isValidExpression(args.getCronExpression())) {
|
||||||
throw new BadRequestException("cron表达式格式错误");
|
throw new BadRequestException("cron表达式格式错误");
|
||||||
}
|
}
|
||||||
systemQuartzJobMapper.insert(args);
|
SystemQuartzJobTb record = KitBeanUtil.copyToClass(args, SystemQuartzJobTb.class);
|
||||||
|
systemQuartzJobMapper.insert(record);
|
||||||
quartzManage.addJob(args);
|
quartzManage.addJob(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -110,9 +111,10 @@ public class SystemQuartzJobService {
|
|||||||
throw new BadRequestException("子任务中不能添加当前任务ID");
|
throw new BadRequestException("子任务中不能添加当前任务ID");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
SystemQuartzJobTb quartzJob = KitBeanUtil.copyToClass(args, SystemQuartzJobTb.class);
|
SystemQuartzJobTb jobTb = KitBeanUtil.copyToClass(args, SystemQuartzJobTb.class);
|
||||||
systemQuartzJobMapper.insertOrUpdate(quartzJob);
|
systemQuartzJobMapper.insertOrUpdate(jobTb);
|
||||||
quartzManage.updateJobCron(quartzJob);
|
SystemQuartzJobVo jobVo = KitBeanUtil.copyToClass(args, SystemQuartzJobVo.class);
|
||||||
|
quartzManage.updateJobCron(jobVo);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -121,7 +123,7 @@ public class SystemQuartzJobService {
|
|||||||
* @param quartzJob /
|
* @param quartzJob /
|
||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void switchQuartzJobStatus(SystemQuartzJobTb quartzJob) {
|
public void switchQuartzJobStatus(SystemQuartzJobVo quartzJob) {
|
||||||
// 置换暂停状态
|
// 置换暂停状态
|
||||||
if (quartzJob.getIsPause()) {
|
if (quartzJob.getIsPause()) {
|
||||||
quartzManage.resumeJob(quartzJob);
|
quartzManage.resumeJob(quartzJob);
|
||||||
@@ -130,7 +132,8 @@ public class SystemQuartzJobService {
|
|||||||
quartzManage.pauseJob(quartzJob);
|
quartzManage.pauseJob(quartzJob);
|
||||||
quartzJob.setIsPause(true);
|
quartzJob.setIsPause(true);
|
||||||
}
|
}
|
||||||
systemQuartzJobMapper.insertOrUpdate(quartzJob);
|
SystemQuartzJobTb quartzJobTb = KitBeanUtil.copyToClass(quartzJob, SystemQuartzJobTb.class);
|
||||||
|
systemQuartzJobMapper.insertOrUpdate(quartzJobTb);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -138,7 +141,7 @@ public class SystemQuartzJobService {
|
|||||||
*
|
*
|
||||||
* @param quartzJob /
|
* @param quartzJob /
|
||||||
*/
|
*/
|
||||||
public void startQuartzJob(SystemQuartzJobTb quartzJob) {
|
public void startQuartzJob(SystemQuartzJobVo quartzJob) {
|
||||||
quartzManage.runJobNow(quartzJob);
|
quartzManage.runJobNow(quartzJob);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -263,31 +266,18 @@ public class SystemQuartzJobService {
|
|||||||
return systemQuartzLogMapper.selectList(wrapper);
|
return systemQuartzLogMapper.selectList(wrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
public SystemQuartzJobTb getQuartzJobById(Long id) {
|
public SystemQuartzJobVo getQuartzJobById(Long id) {
|
||||||
return systemQuartzJobMapper.selectById(id);
|
return KitBeanUtil.copyToClass(systemQuartzJobMapper.selectById(id), SystemQuartzJobVo.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<SystemQuartzJobTb> listEnableQuartzJob() {
|
public List<SystemQuartzJobVo> listEnableQuartzJob() {
|
||||||
LambdaQueryWrapper<SystemQuartzJobTb> wrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SystemQuartzJobTb> wrapper = new LambdaQueryWrapper<>();
|
||||||
wrapper.eq(SystemQuartzJobTb::getIsPause, 0);
|
wrapper.eq(SystemQuartzJobTb::getIsPause, 0);
|
||||||
return systemQuartzJobMapper.selectList(wrapper);
|
return KitBeanUtil.copyToList(systemQuartzJobMapper.selectList(wrapper), SystemQuartzJobVo.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void exportQuartzJobXlsx(HttpServletResponse response, SystemQueryQuartzJobArgs args) {
|
public void exportQuartzJobXlsx(HttpServletResponse response, SystemQueryQuartzJobArgs args) {
|
||||||
List<SystemQuartzJobTb> systemQuartzJobTbs = this.queryQuartzJobByArgs(args);
|
List<SystemQuartzJobTb> systemQuartzJobTbs = this.queryQuartzJobByArgs(args);
|
||||||
// KitXlsxExportUtil.exportFile(response, "定时任务数据", systemQuartzJobTbs, SystemQuartzJobExportRowVo.class,
|
|
||||||
// (dataObject) -> {
|
|
||||||
// SystemQuartzJobExportRowVo rowVo = new SystemQuartzJobExportRowVo();
|
|
||||||
// rowVo.setJobName(dataObject.getJobName());
|
|
||||||
// rowVo.setBeanName(dataObject.getBeanName());
|
|
||||||
// rowVo.setMethodName(dataObject.getMethodName());
|
|
||||||
// rowVo.setParams(dataObject.getParams());
|
|
||||||
// rowVo.setCronExpression(dataObject.getCronExpression());
|
|
||||||
// rowVo.setIsPause(dataObject.getIsPause() ? "暂停中" : "运行中");
|
|
||||||
// rowVo.setDescription(dataObject.getDescription());
|
|
||||||
// rowVo.setCreateTime(dataObject.getCreateTime());
|
|
||||||
// return CollUtil.newArrayList(rowVo);
|
|
||||||
// });
|
|
||||||
List<SystemQuartzJobExportRowVo> rowVos = new ArrayList<>();
|
List<SystemQuartzJobExportRowVo> rowVos = new ArrayList<>();
|
||||||
for (SystemQuartzJobTb dataObject : systemQuartzJobTbs) {
|
for (SystemQuartzJobTb dataObject : systemQuartzJobTbs) {
|
||||||
SystemQuartzJobExportRowVo rowVo = new SystemQuartzJobExportRowVo();
|
SystemQuartzJobExportRowVo rowVo = new SystemQuartzJobExportRowVo();
|
||||||
|
|||||||
+14
-8
@@ -21,7 +21,6 @@ import cn.hutool.core.lang.Dict;
|
|||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.odboy.base.KitPageResult;
|
import cn.odboy.base.KitPageResult;
|
||||||
import cn.odboy.framework.exception.BadRequestException;
|
import cn.odboy.framework.exception.BadRequestException;
|
||||||
import cn.odboy.system.dal.dataobject.SystemMenuTb;
|
|
||||||
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemUserTb;
|
import cn.odboy.system.dal.dataobject.SystemUserTb;
|
||||||
import cn.odboy.system.dal.model.SystemCreateRoleArgs;
|
import cn.odboy.system.dal.model.SystemCreateRoleArgs;
|
||||||
@@ -94,7 +93,7 @@ public class SystemRoleService {
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void updateRoleById(SystemRoleVo args) {
|
public void updateRoleById(SystemRoleVo args) {
|
||||||
checkRoleLevels(args.getLevel());
|
checkRoleLevels(args.getLevel());
|
||||||
SystemRoleVo role = this.getRoleVoById(args.getId());
|
SystemRoleTb role = this.getRoleTbById(args.getId());
|
||||||
SystemRoleTb role1 = this.getRoleByName(args.getName());
|
SystemRoleTb role1 = this.getRoleByName(args.getName());
|
||||||
if (role1 != null && !role1.getId().equals(role.getId())) {
|
if (role1 != null && !role1.getId().equals(role.getId())) {
|
||||||
throw new BadRequestException("角色名称已存在");
|
throw new BadRequestException("角色名称已存在");
|
||||||
@@ -102,7 +101,6 @@ public class SystemRoleService {
|
|||||||
role.setName(args.getName());
|
role.setName(args.getName());
|
||||||
role.setDescription(args.getDescription());
|
role.setDescription(args.getDescription());
|
||||||
role.setDataScope(args.getDataScope());
|
role.setDataScope(args.getDataScope());
|
||||||
role.setDepts(args.getDepts());
|
|
||||||
role.setLevel(args.getLevel());
|
role.setLevel(args.getLevel());
|
||||||
// 更新
|
// 更新
|
||||||
systemRoleMapper.insertOrUpdate(role);
|
systemRoleMapper.insertOrUpdate(role);
|
||||||
@@ -114,8 +112,8 @@ public class SystemRoleService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private SystemRoleVo getRoleVoById(Long id) {
|
private SystemRoleTb getRoleTbById(Long id) {
|
||||||
return KitBeanUtil.copyToClass(systemRoleMapper.selectById(id), SystemRoleVo.class);
|
return systemRoleMapper.selectById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -143,7 +141,7 @@ public class SystemRoleService {
|
|||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void deleteRoleByIds(Set<Long> ids) {
|
public void deleteRoleByIds(Set<Long> ids) {
|
||||||
List<Integer> roleLevels = systemRoleMapper.selectByIds(ids).stream().map(SystemRoleTb::getLevel).distinct().toList();
|
List<Integer> roleLevels = systemRoleMapper.selectByIds(ids).stream().map(SystemRoleTb::getLevel).distinct().collect(Collectors.toList());
|
||||||
for (Integer roleLevel : roleLevels) {
|
for (Integer roleLevel : roleLevels) {
|
||||||
checkRoleLevels(roleLevel);
|
checkRoleLevels(roleLevel);
|
||||||
}
|
}
|
||||||
@@ -223,7 +221,7 @@ public class SystemRoleService {
|
|||||||
return permissions.stream().map(SystemRoleCodeVo::new).collect(Collectors.toList());
|
return permissions.stream().map(SystemRoleCodeVo::new).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
List<SystemRoleVo> roles = systemUserRoleService.queryRoleByUsersId(user.getId());
|
List<SystemRoleVo> roles = systemUserRoleService.queryRoleByUsersId(user.getId());
|
||||||
permissions = roles.stream().flatMap(role -> role.getMenus().stream()).map(SystemMenuTb::getPermission)
|
permissions = roles.stream().flatMap(role -> role.getMenus().stream()).map(SystemMenuVo::getPermission)
|
||||||
.filter(StrUtil::isNotBlank).collect(Collectors.toSet());
|
.filter(StrUtil::isNotBlank).collect(Collectors.toSet());
|
||||||
return permissions.stream().map(SystemRoleCodeVo::new).collect(Collectors.toList());
|
return permissions.stream().map(SystemRoleCodeVo::new).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
@@ -271,7 +269,7 @@ public class SystemRoleService {
|
|||||||
*/
|
*/
|
||||||
private int checkRoleLevels(Integer level) {
|
private int checkRoleLevels(Integer level) {
|
||||||
List<Integer> levels = systemUserRoleService.queryRoleByUsersId(KitSecurityHelper.getCurrentUserId()).stream()
|
List<Integer> levels = systemUserRoleService.queryRoleByUsersId(KitSecurityHelper.getCurrentUserId()).stream()
|
||||||
.map(SystemRoleTb::getLevel).toList();
|
.map(SystemRoleVo::getLevel).collect(Collectors.toList());
|
||||||
int min = Collections.min(levels);
|
int min = Collections.min(levels);
|
||||||
if (level != null) {
|
if (level != null) {
|
||||||
if (level < min) {
|
if (level < min) {
|
||||||
@@ -283,6 +281,14 @@ public class SystemRoleService {
|
|||||||
|
|
||||||
public void exportRoleXlsx(HttpServletResponse response, SystemQueryRoleArgs args) {
|
public void exportRoleXlsx(HttpServletResponse response, SystemQueryRoleArgs args) {
|
||||||
List<SystemRoleVo> systemRoleVos = this.queryRoleByArgs(args);
|
List<SystemRoleVo> systemRoleVos = this.queryRoleByArgs(args);
|
||||||
|
// KitXlsxExportUtil.exportFile(response, "角色数据", systemRoleVos, SystemRoleExportRowVo.class, (dataObject) -> {
|
||||||
|
// SystemRoleExportRowVo rowVo = new SystemRoleExportRowVo();
|
||||||
|
// rowVo.setName(dataObject.getName());
|
||||||
|
// rowVo.setLevel(dataObject.getLevel());
|
||||||
|
// rowVo.setDescription(dataObject.getDescription());
|
||||||
|
// rowVo.setCreateTime(dataObject.getCreateTime());
|
||||||
|
// return CollUtil.newArrayList(rowVo);
|
||||||
|
// });
|
||||||
List<SystemRoleExportRowVo> rowVos = new ArrayList<>();
|
List<SystemRoleExportRowVo> rowVos = new ArrayList<>();
|
||||||
for (SystemRoleVo dataObject : systemRoleVos) {
|
for (SystemRoleVo dataObject : systemRoleVos) {
|
||||||
SystemRoleExportRowVo rowVo = new SystemRoleExportRowVo();
|
SystemRoleExportRowVo rowVo = new SystemRoleExportRowVo();
|
||||||
|
|||||||
+1
-1
@@ -140,7 +140,7 @@ public class SystemUserRoleService {
|
|||||||
public void checkLevel(SystemUserVo args) {
|
public void checkLevel(SystemUserVo args) {
|
||||||
Integer currentLevel = Collections.min(
|
Integer currentLevel = Collections.min(
|
||||||
this.queryRoleByUsersId(KitSecurityHelper.getCurrentUserId()).stream()
|
this.queryRoleByUsersId(KitSecurityHelper.getCurrentUserId()).stream()
|
||||||
.map(SystemRoleTb::getLevel).collect(Collectors.toList()));
|
.map(SystemRoleVo::getLevel).collect(Collectors.toList()));
|
||||||
Integer optLevel = this.getDeptLevelByRoles(args.getRoles());
|
Integer optLevel = this.getDeptLevelByRoles(args.getRoles());
|
||||||
if (currentLevel > optLevel) {
|
if (currentLevel > optLevel) {
|
||||||
throw new BadRequestException("角色权限不足");
|
throw new BadRequestException("角色权限不足");
|
||||||
|
|||||||
+4
-4
@@ -26,7 +26,6 @@ import cn.odboy.framework.properties.AppProperties;
|
|||||||
import cn.odboy.framework.server.core.KitFileLocalUploadHelper;
|
import cn.odboy.framework.server.core.KitFileLocalUploadHelper;
|
||||||
import cn.odboy.system.constant.SystemCaptchaBizEnum;
|
import cn.odboy.system.constant.SystemCaptchaBizEnum;
|
||||||
import cn.odboy.system.constant.SystemZhConst;
|
import cn.odboy.system.constant.SystemZhConst;
|
||||||
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
|
||||||
import cn.odboy.system.dal.dataobject.SystemJobTb;
|
import cn.odboy.system.dal.dataobject.SystemJobTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemUserJobTb;
|
import cn.odboy.system.dal.dataobject.SystemUserJobTb;
|
||||||
@@ -34,6 +33,7 @@ import cn.odboy.system.dal.dataobject.SystemUserRoleTb;
|
|||||||
import cn.odboy.system.dal.dataobject.SystemUserTb;
|
import cn.odboy.system.dal.dataobject.SystemUserTb;
|
||||||
import cn.odboy.system.dal.model.SystemDeptVo;
|
import cn.odboy.system.dal.model.SystemDeptVo;
|
||||||
import cn.odboy.system.dal.model.SystemQueryUserArgs;
|
import cn.odboy.system.dal.model.SystemQueryUserArgs;
|
||||||
|
import cn.odboy.system.dal.model.SystemRoleVo;
|
||||||
import cn.odboy.system.dal.model.SystemUpdateUserPasswordArgs;
|
import cn.odboy.system.dal.model.SystemUpdateUserPasswordArgs;
|
||||||
import cn.odboy.system.dal.model.SystemUserExportRowVo;
|
import cn.odboy.system.dal.model.SystemUserExportRowVo;
|
||||||
import cn.odboy.system.dal.model.SystemUserVo;
|
import cn.odboy.system.dal.model.SystemUserVo;
|
||||||
@@ -205,9 +205,9 @@ public class SystemUserService {
|
|||||||
for (Long id : ids) {
|
for (Long id : ids) {
|
||||||
Integer currentLevel = Collections.min(
|
Integer currentLevel = Collections.min(
|
||||||
systemUserRoleService.queryRoleByUsersId(currentUserId).stream()
|
systemUserRoleService.queryRoleByUsersId(currentUserId).stream()
|
||||||
.map(SystemRoleTb::getLevel).collect(Collectors.toList()));
|
.map(SystemRoleVo::getLevel).collect(Collectors.toList()));
|
||||||
Integer optLevel = Collections.min(
|
Integer optLevel = Collections.min(
|
||||||
systemUserRoleService.queryRoleByUsersId(id).stream().map(SystemRoleTb::getLevel)
|
systemUserRoleService.queryRoleByUsersId(id).stream().map(SystemRoleVo::getLevel)
|
||||||
.collect(Collectors.toList()));
|
.collect(Collectors.toList()));
|
||||||
if (currentLevel > optLevel) {
|
if (currentLevel > optLevel) {
|
||||||
throw new BadRequestException(
|
throw new BadRequestException(
|
||||||
@@ -439,7 +439,7 @@ public class SystemUserService {
|
|||||||
SystemUserVo userVo = KitBeanUtil.copyToClass(user, SystemUserVo.class);
|
SystemUserVo userVo = KitBeanUtil.copyToClass(user, SystemUserVo.class);
|
||||||
// 查询关联的部门信息
|
// 查询关联的部门信息
|
||||||
if (user.getDeptId() != null) {
|
if (user.getDeptId() != null) {
|
||||||
SystemDeptTb dept = systemDeptService.getDeptById(user.getDeptId());
|
SystemDeptVo dept = systemDeptService.getDeptVoById(user.getDeptId());
|
||||||
userVo.setDept(dept);
|
userVo.setDept(dept);
|
||||||
}
|
}
|
||||||
// 查询关联的岗位信息
|
// 查询关联的岗位信息
|
||||||
|
|||||||
+5
-7
@@ -13,13 +13,12 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy;
|
package cn.odboy;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
|
||||||
import cn.odboy.system.dal.dataobject.SystemJobTb;
|
import cn.odboy.system.dal.dataobject.SystemJobTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
||||||
|
import cn.odboy.system.dal.model.SystemDeptVo;
|
||||||
import cn.odboy.system.dal.model.SystemUserVo;
|
import cn.odboy.system.dal.model.SystemUserVo;
|
||||||
import cn.odboy.system.service.SystemUserService;
|
import cn.odboy.system.service.SystemUserService;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@@ -36,19 +35,19 @@ public class SystemApplicationTests {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private SystemUserService systemUserService;
|
private SystemUserService systemUserService;
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void contextLoads() {
|
public void contextLoads() {
|
||||||
SystemDeptTb systemDept = new SystemDeptTb();
|
SystemDeptVo systemDept = new SystemDeptVo();
|
||||||
systemDept.setId(2L);
|
systemDept.setId(2L);
|
||||||
|
|
||||||
SystemJobTb systemJob = new SystemJobTb();
|
SystemJobTb systemJob = new SystemJobTb();
|
||||||
systemJob.setId(11L);
|
systemJob.setId(11L);
|
||||||
Set<SystemJobTb> systemJobs = CollUtil.newHashSet(systemJob);
|
Set<SystemJobTb> systemJobs = CollUtil.newHashSet(systemJob);
|
||||||
|
|
||||||
SystemRoleTb systemRole = new SystemRoleTb();
|
SystemRoleTb systemRole = new SystemRoleTb();
|
||||||
systemRole.setId(2L);
|
systemRole.setId(2L);
|
||||||
Set<SystemRoleTb> systemRoles = CollUtil.newHashSet(systemRole);
|
Set<SystemRoleTb> systemRoles = CollUtil.newHashSet(systemRole);
|
||||||
|
|
||||||
String pwd = passwordEncoder.encode("123456");
|
String pwd = passwordEncoder.encode("123456");
|
||||||
for (int i = 100; i < 200; i++) {
|
for (int i = 100; i < 200; i++) {
|
||||||
SystemUserVo systemUser = new SystemUserVo();
|
SystemUserVo systemUser = new SystemUserVo();
|
||||||
@@ -64,4 +63,3 @@ public class SystemApplicationTests {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -19,6 +19,7 @@ import cn.odboy.base.KitPageArgs;
|
|||||||
import cn.odboy.base.KitPageResult;
|
import cn.odboy.base.KitPageResult;
|
||||||
import cn.odboy.system.dal.dataobject.SystemQuartzJobTb;
|
import cn.odboy.system.dal.dataobject.SystemQuartzJobTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemQuartzLogTb;
|
import cn.odboy.system.dal.dataobject.SystemQuartzLogTb;
|
||||||
|
import cn.odboy.system.dal.model.SystemQuartzJobVo;
|
||||||
import cn.odboy.system.dal.model.SystemQueryQuartzJobArgs;
|
import cn.odboy.system.dal.model.SystemQueryQuartzJobArgs;
|
||||||
import cn.odboy.system.dal.model.SystemUpdateQuartzJobArgs;
|
import cn.odboy.system.dal.model.SystemUpdateQuartzJobArgs;
|
||||||
import cn.odboy.system.framework.operalog.OperationLog;
|
import cn.odboy.system.framework.operalog.OperationLog;
|
||||||
@@ -86,7 +87,7 @@ public class SystemQuartzJobController {
|
|||||||
@ApiOperation("新增定时任务")
|
@ApiOperation("新增定时任务")
|
||||||
@PostMapping(value = "/createQuartzJob")
|
@PostMapping(value = "/createQuartzJob")
|
||||||
@PreAuthorize("@el.check('quartzJob:add')")
|
@PreAuthorize("@el.check('quartzJob:add')")
|
||||||
public ResponseEntity<Void> createQuartzJob(@Validated @RequestBody SystemQuartzJobTb args) {
|
public ResponseEntity<Void> createQuartzJob(@Validated @RequestBody SystemQuartzJobVo args) {
|
||||||
systemQuartzJobService.createJob(args);
|
systemQuartzJobService.createJob(args);
|
||||||
return ResponseEntity.ok(null);
|
return ResponseEntity.ok(null);
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-2
@@ -62,6 +62,5 @@ public class SystemQuartzJobTb extends KitBaseUserTimeTb {
|
|||||||
@NotBlank
|
@NotBlank
|
||||||
@ApiModelProperty(value = "备注")
|
@ApiModelProperty(value = "备注")
|
||||||
@TableField(updateStrategy = FieldStrategy.ALWAYS)
|
@TableField(updateStrategy = FieldStrategy.ALWAYS)
|
||||||
private String
|
private String description;
|
||||||
description;
|
|
||||||
}
|
}
|
||||||
+56
-2
@@ -1,17 +1,71 @@
|
|||||||
package cn.odboy.system.dal.model;
|
package cn.odboy.system.dal.model;
|
||||||
|
|
||||||
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
import cn.odboy.base.KitBaseUserTimeTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
public class SystemDeptVo extends SystemDeptTb {
|
public class SystemDeptVo extends KitBaseUserTimeTb {
|
||||||
|
|
||||||
|
@NotNull(groups = Update.class)
|
||||||
|
@ApiModelProperty(value = "ID", hidden = true)
|
||||||
|
private Long id;
|
||||||
|
@ApiModelProperty(value = "排序")
|
||||||
|
private Integer deptSort;
|
||||||
|
@NotBlank
|
||||||
|
@ApiModelProperty(value = "部门名称")
|
||||||
|
private String name;
|
||||||
|
@NotNull
|
||||||
|
@ApiModelProperty(value = "是否启用")
|
||||||
|
private Boolean enabled;
|
||||||
|
@ApiModelProperty(value = "上级部门")
|
||||||
|
private Long pid;
|
||||||
|
@ApiModelProperty(value = "子节点数目", hidden = true)
|
||||||
|
private Integer subCount = 0;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (o == null || getClass() != o.getClass()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
SystemDeptVo dept = (SystemDeptVo) o;
|
||||||
|
return Objects.equals(id, dept.id) && Objects.equals(name, dept.name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return Objects.hash(id, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否有子节点")
|
||||||
|
public Boolean getHasChildren() {
|
||||||
|
return subCount > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否为叶子")
|
||||||
|
public Boolean getLeaf() {
|
||||||
|
return subCount <= 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "标签名称")
|
||||||
|
public String getLabel() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 扩展字段
|
||||||
|
*/
|
||||||
@ApiModelProperty(value = "角色")
|
@ApiModelProperty(value = "角色")
|
||||||
private Set<SystemRoleTb> roles;
|
private Set<SystemRoleTb> roles;
|
||||||
@ApiModelProperty(value = "子部门")
|
@ApiModelProperty(value = "子部门")
|
||||||
|
|||||||
+17
-2
@@ -15,16 +15,31 @@
|
|||||||
*/
|
*/
|
||||||
package cn.odboy.system.dal.model;
|
package cn.odboy.system.dal.model;
|
||||||
|
|
||||||
import cn.odboy.system.dal.dataobject.SystemDictDetailTb;
|
import cn.odboy.base.KitBaseUserTimeTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemDictTb;
|
import cn.odboy.system.dal.dataobject.SystemDictTb;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
public class SystemDictDetailVo extends SystemDictDetailTb {
|
public class SystemDictDetailVo extends KitBaseUserTimeTb {
|
||||||
|
|
||||||
|
@NotNull(groups = Update.class)
|
||||||
|
@ApiModelProperty(value = "ID", hidden = true)
|
||||||
|
private Long id;
|
||||||
|
@ApiModelProperty(hidden = true)
|
||||||
|
private Long dictId;
|
||||||
|
@ApiModelProperty(value = "字典标签")
|
||||||
|
private String label;
|
||||||
|
@ApiModelProperty(value = "字典值")
|
||||||
|
private String value;
|
||||||
|
@ApiModelProperty(value = "排序")
|
||||||
|
private Integer dictSort = 999;
|
||||||
|
/**
|
||||||
|
* 扩展字段
|
||||||
|
*/
|
||||||
@ApiModelProperty(value = "字典")
|
@ApiModelProperty(value = "字典")
|
||||||
private SystemDictTb dict;
|
private SystemDictTb dict;
|
||||||
}
|
}
|
||||||
+69
-2
@@ -1,17 +1,84 @@
|
|||||||
package cn.odboy.system.dal.model;
|
package cn.odboy.system.dal.model;
|
||||||
|
|
||||||
import cn.odboy.system.dal.dataobject.SystemMenuTb;
|
import cn.odboy.base.KitBaseUserTimeTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
public class SystemMenuVo extends SystemMenuTb {
|
public class SystemMenuVo extends KitBaseUserTimeTb {
|
||||||
|
|
||||||
|
@NotNull(groups = {Update.class})
|
||||||
|
@ApiModelProperty(value = "ID", hidden = true)
|
||||||
|
private Long id;
|
||||||
|
@ApiModelProperty(value = "菜单标题")
|
||||||
|
private String title;
|
||||||
|
@ApiModelProperty(value = "菜单组件名称")
|
||||||
|
private String componentName;
|
||||||
|
@ApiModelProperty(value = "排序")
|
||||||
|
private Integer menuSort = 999;
|
||||||
|
@ApiModelProperty(value = "组件路径")
|
||||||
|
private String component;
|
||||||
|
@ApiModelProperty(value = "路由地址")
|
||||||
|
private String path;
|
||||||
|
@ApiModelProperty(value = "菜单类型,目录、菜单、按钮")
|
||||||
|
private Integer type;
|
||||||
|
@ApiModelProperty(value = "权限标识")
|
||||||
|
private String permission;
|
||||||
|
@ApiModelProperty(value = "菜单图标")
|
||||||
|
private String icon;
|
||||||
|
@ApiModelProperty(value = "缓存")
|
||||||
|
private Boolean cache;
|
||||||
|
@ApiModelProperty(value = "是否隐藏")
|
||||||
|
private Boolean hidden;
|
||||||
|
@ApiModelProperty(value = "上级菜单")
|
||||||
|
private Long pid;
|
||||||
|
@ApiModelProperty(value = "子节点数目", hidden = true)
|
||||||
|
private Integer subCount = 0;
|
||||||
|
@ApiModelProperty(value = "外链菜单")
|
||||||
|
private Boolean iFrame;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (o == null || getClass() != o.getClass()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
SystemMenuVo menu = (SystemMenuVo) o;
|
||||||
|
return Objects.equals(id, menu.id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return Objects.hash(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否有子节点")
|
||||||
|
public Boolean getHasChildren() {
|
||||||
|
return subCount > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否为叶子")
|
||||||
|
public Boolean getLeaf() {
|
||||||
|
return subCount <= 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "标签名称")
|
||||||
|
public String getLabel() {
|
||||||
|
return title;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 附加属性
|
||||||
|
*/
|
||||||
@ApiModelProperty(value = "菜单角色")
|
@ApiModelProperty(value = "菜单角色")
|
||||||
private Set<SystemRoleTb> roles;
|
private Set<SystemRoleTb> roles;
|
||||||
@ApiModelProperty(value = "子菜单")
|
@ApiModelProperty(value = "子菜单")
|
||||||
|
|||||||
+32
-2
@@ -15,13 +15,43 @@
|
|||||||
*/
|
*/
|
||||||
package cn.odboy.system.dal.model;
|
package cn.odboy.system.dal.model;
|
||||||
|
|
||||||
import cn.odboy.system.dal.dataobject.SystemOssStorageTb;
|
import cn.odboy.base.KitBaseUserTimeTb;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
public class SystemOssStorageVo extends SystemOssStorageTb {
|
public class SystemOssStorageVo extends KitBaseUserTimeTb {
|
||||||
|
|
||||||
|
@ApiModelProperty("ID")
|
||||||
|
private Long id;
|
||||||
|
@ApiModelProperty("类型,比如minio")
|
||||||
|
private String serviceType;
|
||||||
|
@ApiModelProperty("服务地址")
|
||||||
|
private String endpoint;
|
||||||
|
@ApiModelProperty("存储桶名称")
|
||||||
|
private String bucketName;
|
||||||
|
@ApiModelProperty("完整文件名称")
|
||||||
|
private String fileName;
|
||||||
|
@ApiModelProperty("文件大小, 单位:字节")
|
||||||
|
private Long fileSize;
|
||||||
|
@ApiModelProperty("文件类型")
|
||||||
|
private String fileMime;
|
||||||
|
@ApiModelProperty("短文件名")
|
||||||
|
private String filePrefix;
|
||||||
|
@ApiModelProperty("文件后缀")
|
||||||
|
private String fileSuffix;
|
||||||
|
@ApiModelProperty("文件md5")
|
||||||
|
private String fileMd5;
|
||||||
|
@ApiModelProperty("文件链接")
|
||||||
|
private String fileUrl;
|
||||||
|
@ApiModelProperty("文件编码")
|
||||||
|
private String fileCode;
|
||||||
|
@ApiModelProperty("对象路径")
|
||||||
|
private String objectName;
|
||||||
|
/**
|
||||||
|
* 扩展字段
|
||||||
|
*/
|
||||||
private String fileSizeDesc;
|
private String fileSizeDesc;
|
||||||
}
|
}
|
||||||
|
|||||||
+36
-2
@@ -1,14 +1,48 @@
|
|||||||
package cn.odboy.system.dal.model;
|
package cn.odboy.system.dal.model;
|
||||||
|
|
||||||
import cn.odboy.system.dal.dataobject.SystemQuartzJobTb;
|
import cn.odboy.base.KitBaseUserTimeTb;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
public class SystemQuartzJobVo extends SystemQuartzJobTb {
|
public class SystemQuartzJobVo extends KitBaseUserTimeTb {
|
||||||
|
|
||||||
|
public static final String JOB_KEY = "JOB_KEY";
|
||||||
|
@NotNull(groups = {Update.class})
|
||||||
|
private Long id;
|
||||||
|
@ApiModelProperty(value = "定时器名称")
|
||||||
|
private String jobName;
|
||||||
|
@NotBlank
|
||||||
|
@ApiModelProperty(value = "Bean名称")
|
||||||
|
private String beanName;
|
||||||
|
@NotBlank
|
||||||
|
@ApiModelProperty(value = "方法名称")
|
||||||
|
private String methodName;
|
||||||
|
@ApiModelProperty(value = "参数")
|
||||||
|
private String params;
|
||||||
|
@NotBlank
|
||||||
|
@ApiModelProperty(value = "cron表达式")
|
||||||
|
private String cronExpression;
|
||||||
|
@ApiModelProperty(value = "状态:暂停或启动")
|
||||||
|
private Boolean isPause = false;
|
||||||
|
@ApiModelProperty(value = "负责人")
|
||||||
|
private String personInCharge;
|
||||||
|
@ApiModelProperty(value = "报警邮箱")
|
||||||
|
private String email;
|
||||||
|
@ApiModelProperty(value = "子任务")
|
||||||
|
private String subTask;
|
||||||
|
@ApiModelProperty(value = "失败后暂停")
|
||||||
|
private Boolean pauseAfterFailure;
|
||||||
|
@NotBlank
|
||||||
|
@ApiModelProperty(value = "备注")
|
||||||
|
private String description;
|
||||||
|
/**
|
||||||
|
* 扩展字段
|
||||||
|
*/
|
||||||
@ApiModelProperty(value = "用于子任务唯一标识", hidden = true)
|
@ApiModelProperty(value = "用于子任务唯一标识", hidden = true)
|
||||||
private String uuid;
|
private String uuid;
|
||||||
}
|
}
|
||||||
|
|||||||
+40
-2
@@ -1,21 +1,59 @@
|
|||||||
package cn.odboy.system.dal.model;
|
package cn.odboy.system.dal.model;
|
||||||
|
|
||||||
|
import cn.odboy.base.KitBaseUserTimeTb;
|
||||||
|
import cn.odboy.system.constant.SystemDataScopeEnum;
|
||||||
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
|
||||||
import cn.odboy.system.dal.dataobject.SystemUserTb;
|
import cn.odboy.system.dal.dataobject.SystemUserTb;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
public class SystemRoleVo extends SystemRoleTb {
|
public class SystemRoleVo extends KitBaseUserTimeTb {
|
||||||
|
|
||||||
|
@NotNull(groups = {Update.class})
|
||||||
|
@ApiModelProperty(value = "ID", hidden = true)
|
||||||
|
private Long id;
|
||||||
|
@NotBlank
|
||||||
|
@ApiModelProperty(value = "名称", hidden = true)
|
||||||
|
private String name;
|
||||||
|
@ApiModelProperty(value = "数据权限,全部 、 本级 、 自定义")
|
||||||
|
private String dataScope = SystemDataScopeEnum.THIS_LEVEL.getValue();
|
||||||
|
@ApiModelProperty(value = "级别,数值越小,级别越大")
|
||||||
|
private Integer level = 3;
|
||||||
|
@ApiModelProperty(value = "描述")
|
||||||
|
private String description;
|
||||||
|
/**
|
||||||
|
* 扩展字段
|
||||||
|
*/
|
||||||
@ApiModelProperty(value = "用户", hidden = true)
|
@ApiModelProperty(value = "用户", hidden = true)
|
||||||
private Set<SystemUserTb> users;
|
private Set<SystemUserTb> users;
|
||||||
@ApiModelProperty(value = "菜单", hidden = true)
|
@ApiModelProperty(value = "菜单", hidden = true)
|
||||||
private Set<SystemMenuVo> menus;
|
private Set<SystemMenuVo> menus;
|
||||||
@ApiModelProperty(value = "部门", hidden = true)
|
@ApiModelProperty(value = "部门", hidden = true)
|
||||||
private Set<SystemDeptTb> depts;
|
private Set<SystemDeptTb> depts;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (o == null || getClass() != o.getClass()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
SystemRoleVo role = (SystemRoleVo) o;
|
||||||
|
return Objects.equals(id, role.id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return Objects.hash(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
-2
@@ -19,7 +19,6 @@ import cn.odboy.base.KitObject;
|
|||||||
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemJobTb;
|
import cn.odboy.system.dal.dataobject.SystemJobTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -36,7 +35,6 @@ public class SystemSimpleUserVo extends KitObject {
|
|||||||
@ApiModelProperty(value = "用户岗位")
|
@ApiModelProperty(value = "用户岗位")
|
||||||
private Set<SystemJobTb> jobs;
|
private Set<SystemJobTb> jobs;
|
||||||
private Long deptId;
|
private Long deptId;
|
||||||
@TableField(exist = false)
|
|
||||||
private SystemDeptTb dept;
|
private SystemDeptTb dept;
|
||||||
@ApiModelProperty(value = "用户名称")
|
@ApiModelProperty(value = "用户名称")
|
||||||
private String username;
|
private String username;
|
||||||
|
|||||||
+61
-2
@@ -1,11 +1,15 @@
|
|||||||
package cn.odboy.system.dal.model;
|
package cn.odboy.system.dal.model;
|
||||||
|
|
||||||
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
|
||||||
import cn.odboy.system.dal.dataobject.SystemJobTb;
|
import cn.odboy.system.dal.dataobject.SystemJobTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemUserTb;
|
import cn.odboy.system.dal.dataobject.SystemUserTb;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import javax.validation.constraints.Email;
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
@@ -13,10 +17,65 @@ import lombok.Setter;
|
|||||||
@Setter
|
@Setter
|
||||||
public class SystemUserVo extends SystemUserTb {
|
public class SystemUserVo extends SystemUserTb {
|
||||||
|
|
||||||
|
@NotNull(groups = Update.class)
|
||||||
|
@ApiModelProperty(value = "ID", hidden = true)
|
||||||
|
private Long id;
|
||||||
|
@ApiModelProperty(hidden = true)
|
||||||
|
private Long deptId;
|
||||||
|
@NotBlank
|
||||||
|
@ApiModelProperty(value = "用户名称")
|
||||||
|
private String username;
|
||||||
|
@NotBlank
|
||||||
|
@ApiModelProperty(value = "用户昵称")
|
||||||
|
private String nickName;
|
||||||
|
@Email
|
||||||
|
@NotBlank
|
||||||
|
@ApiModelProperty(value = "邮箱")
|
||||||
|
private String email;
|
||||||
|
@NotBlank
|
||||||
|
@ApiModelProperty(value = "电话号码")
|
||||||
|
private String phone;
|
||||||
|
@ApiModelProperty(value = "用户性别")
|
||||||
|
private String gender;
|
||||||
|
@ApiModelProperty(value = "头像真实名称", hidden = true)
|
||||||
|
private String avatarName;
|
||||||
|
@ApiModelProperty(value = "头像存储的路径", hidden = true)
|
||||||
|
private String avatarPath;
|
||||||
|
@ApiModelProperty(value = "密码")
|
||||||
|
private String password;
|
||||||
|
@NotNull
|
||||||
|
@ApiModelProperty(value = "是否启用")
|
||||||
|
private Boolean enabled;
|
||||||
|
@ApiModelProperty(value = "是否为admin账号", hidden = true)
|
||||||
|
private Boolean isAdmin = false;
|
||||||
|
@ApiModelProperty(value = "最后修改密码的时间", hidden = true)
|
||||||
|
private Date pwdResetTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 扩展字段
|
||||||
|
*/
|
||||||
@ApiModelProperty(value = "用户部门")
|
@ApiModelProperty(value = "用户部门")
|
||||||
private SystemDeptTb dept;
|
private SystemDeptVo dept;
|
||||||
@ApiModelProperty(value = "用户角色")
|
@ApiModelProperty(value = "用户角色")
|
||||||
private Set<SystemRoleTb> roles;
|
private Set<SystemRoleTb> roles;
|
||||||
@ApiModelProperty(value = "用户岗位")
|
@ApiModelProperty(value = "用户岗位")
|
||||||
private Set<SystemJobTb> jobs;
|
private Set<SystemJobTb> jobs;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (o == null || getClass() != o.getClass()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
SystemUserVo user = (SystemUserVo) o;
|
||||||
|
return Objects.equals(id, user.id) && Objects.equals(username, user.username);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return Objects.hash(id, username);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -15,7 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package cn.odboy.system.framework.quartz;
|
package cn.odboy.system.framework.quartz;
|
||||||
|
|
||||||
import cn.odboy.system.dal.dataobject.SystemQuartzJobTb;
|
import cn.odboy.system.dal.model.SystemQuartzJobVo;
|
||||||
import cn.odboy.system.service.SystemQuartzJobService;
|
import cn.odboy.system.service.SystemQuartzJobService;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -40,7 +40,7 @@ public class ActiveJobRegister implements ApplicationRunner {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void run(ApplicationArguments applicationArguments) {
|
public void run(ApplicationArguments applicationArguments) {
|
||||||
List<SystemQuartzJobTb> quartzJobs = systemQuartzJobService.listEnableQuartzJob();
|
List<SystemQuartzJobVo> quartzJobs = systemQuartzJobService.listEnableQuartzJob();
|
||||||
quartzJobs.forEach(quartzManage::addJob);
|
quartzJobs.forEach(quartzManage::addJob);
|
||||||
log.info("Timing task injection complete");
|
log.info("Timing task injection complete");
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -114,7 +114,7 @@ public class ExecutionJobBean extends QuartzJobBean {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private SystemSendEmailArgs taskAlarm(SystemQuartzJobTb quartzJob, String msg) {
|
private SystemSendEmailArgs taskAlarm(SystemQuartzJobVo quartzJob, String msg) {
|
||||||
SystemSendEmailArgs sendEmailRequest = new SystemSendEmailArgs();
|
SystemSendEmailArgs sendEmailRequest = new SystemSendEmailArgs();
|
||||||
sendEmailRequest.setSubject("定时任务【" + quartzJob.getJobName() + "】执行失败,请尽快处理!");
|
sendEmailRequest.setSubject("定时任务【" + quartzJob.getJobName() + "】执行失败,请尽快处理!");
|
||||||
Map<String, Object> data = new HashMap<>(16);
|
Map<String, Object> data = new HashMap<>(16);
|
||||||
|
|||||||
+6
-5
@@ -17,6 +17,7 @@ package cn.odboy.system.framework.quartz;
|
|||||||
|
|
||||||
import cn.odboy.framework.exception.BadRequestException;
|
import cn.odboy.framework.exception.BadRequestException;
|
||||||
import cn.odboy.system.dal.dataobject.SystemQuartzJobTb;
|
import cn.odboy.system.dal.dataobject.SystemQuartzJobTb;
|
||||||
|
import cn.odboy.system.dal.model.SystemQuartzJobVo;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -42,7 +43,7 @@ public class QuartzManage {
|
|||||||
@Resource
|
@Resource
|
||||||
private Scheduler scheduler;
|
private Scheduler scheduler;
|
||||||
|
|
||||||
public void addJob(SystemQuartzJobTb quartzJob) {
|
public void addJob(SystemQuartzJobVo quartzJob) {
|
||||||
try {
|
try {
|
||||||
// 构建job信息
|
// 构建job信息
|
||||||
JobDetail jobDetail =
|
JobDetail jobDetail =
|
||||||
@@ -74,7 +75,7 @@ public class QuartzManage {
|
|||||||
*
|
*
|
||||||
* @param quartzJob /
|
* @param quartzJob /
|
||||||
*/
|
*/
|
||||||
public void updateJobCron(SystemQuartzJobTb quartzJob) {
|
public void updateJobCron(SystemQuartzJobVo quartzJob) {
|
||||||
try {
|
try {
|
||||||
TriggerKey triggerKey = TriggerKey.triggerKey(JOB_NAME + quartzJob.getId());
|
TriggerKey triggerKey = TriggerKey.triggerKey(JOB_NAME + quartzJob.getId());
|
||||||
CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey);
|
CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey);
|
||||||
@@ -120,7 +121,7 @@ public class QuartzManage {
|
|||||||
*
|
*
|
||||||
* @param quartzJob /
|
* @param quartzJob /
|
||||||
*/
|
*/
|
||||||
public void resumeJob(SystemQuartzJobTb quartzJob) {
|
public void resumeJob(SystemQuartzJobVo quartzJob) {
|
||||||
try {
|
try {
|
||||||
TriggerKey triggerKey = TriggerKey.triggerKey(JOB_NAME + quartzJob.getId());
|
TriggerKey triggerKey = TriggerKey.triggerKey(JOB_NAME + quartzJob.getId());
|
||||||
CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey);
|
CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey);
|
||||||
@@ -141,7 +142,7 @@ public class QuartzManage {
|
|||||||
*
|
*
|
||||||
* @param quartzJob /
|
* @param quartzJob /
|
||||||
*/
|
*/
|
||||||
public void runJobNow(SystemQuartzJobTb quartzJob) {
|
public void runJobNow(SystemQuartzJobVo quartzJob) {
|
||||||
try {
|
try {
|
||||||
TriggerKey triggerKey = TriggerKey.triggerKey(JOB_NAME + quartzJob.getId());
|
TriggerKey triggerKey = TriggerKey.triggerKey(JOB_NAME + quartzJob.getId());
|
||||||
CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey);
|
CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey);
|
||||||
@@ -164,7 +165,7 @@ public class QuartzManage {
|
|||||||
*
|
*
|
||||||
* @param quartzJob /
|
* @param quartzJob /
|
||||||
*/
|
*/
|
||||||
public void pauseJob(SystemQuartzJobTb quartzJob) {
|
public void pauseJob(SystemQuartzJobVo quartzJob) {
|
||||||
try {
|
try {
|
||||||
JobKey jobKey = JobKey.jobKey(JOB_NAME + quartzJob.getId());
|
JobKey jobKey = JobKey.jobKey(JOB_NAME + quartzJob.getId());
|
||||||
scheduler.pauseJob(jobKey);
|
scheduler.pauseJob(jobKey);
|
||||||
|
|||||||
+2
-3
@@ -18,7 +18,6 @@ package cn.odboy.system.service;
|
|||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.odboy.system.constant.SystemDataScopeEnum;
|
import cn.odboy.system.constant.SystemDataScopeEnum;
|
||||||
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
|
||||||
import cn.odboy.system.dal.model.SystemDeptVo;
|
import cn.odboy.system.dal.model.SystemDeptVo;
|
||||||
import cn.odboy.system.dal.model.SystemRoleVo;
|
import cn.odboy.system.dal.model.SystemRoleVo;
|
||||||
import cn.odboy.system.dal.model.SystemUserVo;
|
import cn.odboy.system.dal.model.SystemUserVo;
|
||||||
@@ -55,7 +54,7 @@ public class SystemDataService {
|
|||||||
// 查询用户角色
|
// 查询用户角色
|
||||||
List<SystemRoleVo> roleList = systemUserRoleService.queryRoleByUsersId(user.getId());
|
List<SystemRoleVo> roleList = systemUserRoleService.queryRoleByUsersId(user.getId());
|
||||||
// 获取对应的部门ID
|
// 获取对应的部门ID
|
||||||
for (SystemRoleTb role : roleList) {
|
for (SystemRoleVo role : roleList) {
|
||||||
SystemDataScopeEnum dataScopeEnum = SystemDataScopeEnum.find(role.getDataScope());
|
SystemDataScopeEnum dataScopeEnum = SystemDataScopeEnum.find(role.getDataScope());
|
||||||
switch (Objects.requireNonNull(dataScopeEnum)) {
|
switch (Objects.requireNonNull(dataScopeEnum)) {
|
||||||
case THIS_LEVEL:
|
case THIS_LEVEL:
|
||||||
@@ -78,7 +77,7 @@ public class SystemDataService {
|
|||||||
* @param role 角色
|
* @param role 角色
|
||||||
* @return 数据权限ID
|
* @return 数据权限ID
|
||||||
*/
|
*/
|
||||||
private List<Long> queryCustomDataPermissionByArgs(List<Long> deptIds, SystemRoleTb role) {
|
private List<Long> queryCustomDataPermissionByArgs(List<Long> deptIds, SystemRoleVo role) {
|
||||||
List<SystemDeptTb> deptList = systemRoleDeptService.listDeptByRoleId(role.getId());
|
List<SystemDeptTb> deptList = systemRoleDeptService.listDeptByRoleId(role.getId());
|
||||||
for (SystemDeptTb dept : deptList) {
|
for (SystemDeptTb dept : deptList) {
|
||||||
deptIds.add(dept.getId());
|
deptIds.add(dept.getId());
|
||||||
|
|||||||
+16
-16
@@ -83,7 +83,7 @@ public class SystemDeptService {
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void updateDeptById(SystemDeptTb args) {
|
public void updateDeptById(SystemDeptTb args) {
|
||||||
// 旧的部门
|
// 旧的部门
|
||||||
Long oldPid = this.getDeptById(args.getId()).getPid();
|
Long oldPid = this.getDeptVoById(args.getId()).getPid();
|
||||||
Long newPid = args.getPid();
|
Long newPid = args.getPid();
|
||||||
if (args.getPid() != null && args.getId().equals(args.getPid())) {
|
if (args.getPid() != null && args.getId().equals(args.getPid())) {
|
||||||
throw new BadRequestException("上级不能为自己");
|
throw new BadRequestException("上级不能为自己");
|
||||||
@@ -103,10 +103,10 @@ public class SystemDeptService {
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void deleteDeptByIds(Set<Long> ids) {
|
public void deleteDeptByIds(Set<Long> ids) {
|
||||||
// 获取部门, 和其所有子部门
|
// 获取部门, 和其所有子部门
|
||||||
Set<SystemDeptTb> depts = this.traverseDeptByIdWithPids(ids);
|
Set<SystemDeptVo> depts = this.traverseDeptByIdWithPids(ids);
|
||||||
// 验证是否被角色或用户关联
|
// 验证是否被角色或用户关联
|
||||||
this.verifyBindRelationByIds(depts);
|
this.verifyBindRelationByIds(depts);
|
||||||
for (SystemDeptTb dept : depts) {
|
for (SystemDeptVo dept : depts) {
|
||||||
systemDeptMapper.deleteById(dept.getId());
|
systemDeptMapper.deleteById(dept.getId());
|
||||||
this.updateDeptSubCnt(dept.getPid());
|
this.updateDeptSubCnt(dept.getPid());
|
||||||
}
|
}
|
||||||
@@ -211,8 +211,8 @@ public class SystemDeptService {
|
|||||||
* @param id /
|
* @param id /
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
public SystemDeptTb getDeptById(Long id) {
|
public SystemDeptVo getDeptVoById(Long id) {
|
||||||
return systemDeptMapper.selectById(id);
|
return KitBeanUtil.copyToClass(systemDeptMapper.selectById(id), SystemDeptVo.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -222,8 +222,8 @@ public class SystemDeptService {
|
|||||||
* @param depts /
|
* @param depts /
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
private Set<SystemDeptTb> queryRelationDeptByArgs(List<SystemDeptVo> deptTbList, Set<SystemDeptTb> depts) {
|
private Set<SystemDeptVo> queryRelationDeptByArgs(List<SystemDeptVo> deptTbList, Set<SystemDeptVo> depts) {
|
||||||
for (SystemDeptTb dept : deptTbList) {
|
for (SystemDeptVo dept : deptTbList) {
|
||||||
depts.add(dept);
|
depts.add(dept);
|
||||||
List<SystemDeptVo> deptList = this.listDeptByPid(dept.getId());
|
List<SystemDeptVo> deptList = this.listDeptByPid(dept.getId());
|
||||||
if (CollUtil.isNotEmpty(deptList)) {
|
if (CollUtil.isNotEmpty(deptList)) {
|
||||||
@@ -254,13 +254,13 @@ public class SystemDeptService {
|
|||||||
* @param deptList /
|
* @param deptList /
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
private List<SystemDeptVo> querySuperiorDeptByPid(SystemDeptTb dept, List<SystemDeptVo> deptList) {
|
private List<SystemDeptVo> querySuperiorDeptByPid(SystemDeptVo dept, List<SystemDeptVo> deptList) {
|
||||||
if (dept.getPid() == null) {
|
if (dept.getPid() == null) {
|
||||||
deptList.addAll(this.listRootDept());
|
deptList.addAll(this.listRootDept());
|
||||||
return deptList;
|
return deptList;
|
||||||
}
|
}
|
||||||
deptList.addAll(this.listDeptByPid(dept.getPid()));
|
deptList.addAll(this.listDeptByPid(dept.getPid()));
|
||||||
return querySuperiorDeptByPid(this.getDeptById(dept.getPid()), deptList);
|
return querySuperiorDeptByPid(this.getDeptVoById(dept.getPid()), deptList);
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<SystemDeptVo> listRootDept() {
|
private List<SystemDeptVo> listRootDept() {
|
||||||
@@ -278,7 +278,7 @@ public class SystemDeptService {
|
|||||||
Set<SystemDeptVo> deptSet1 = new LinkedHashSet<>();
|
Set<SystemDeptVo> deptSet1 = new LinkedHashSet<>();
|
||||||
for (Long id : ids) {
|
for (Long id : ids) {
|
||||||
// 同级数据
|
// 同级数据
|
||||||
SystemDeptTb dept = this.getDeptById(id);
|
SystemDeptVo dept = this.getDeptVoById(id);
|
||||||
// 上级数据
|
// 上级数据
|
||||||
List<SystemDeptVo> depts = this.querySuperiorDeptByPid(dept, new ArrayList<>());
|
List<SystemDeptVo> depts = this.querySuperiorDeptByPid(dept, new ArrayList<>());
|
||||||
if (exclude) {
|
if (exclude) {
|
||||||
@@ -314,7 +314,7 @@ public class SystemDeptService {
|
|||||||
}
|
}
|
||||||
if (isChild) {
|
if (isChild) {
|
||||||
deptSet.add(dept);
|
deptSet.add(dept);
|
||||||
} else if (dept.getPid() != null && !deptNames.contains(this.getDeptById(dept.getPid()).getName())) {
|
} else if (dept.getPid() != null && !deptNames.contains(this.getDeptVoById(dept.getPid()).getName())) {
|
||||||
deptSet.add(dept);
|
deptSet.add(dept);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -332,8 +332,8 @@ public class SystemDeptService {
|
|||||||
*
|
*
|
||||||
* @param deptSet /
|
* @param deptSet /
|
||||||
*/
|
*/
|
||||||
public void verifyBindRelationByIds(Set<SystemDeptTb> deptSet) {
|
public void verifyBindRelationByIds(Set<SystemDeptVo> deptSet) {
|
||||||
Set<Long> deptIds = deptSet.stream().map(SystemDeptTb::getId).collect(Collectors.toSet());
|
Set<Long> deptIds = deptSet.stream().map(SystemDeptVo::getId).collect(Collectors.toSet());
|
||||||
if (systemUserDeptService.countUserByDeptIds(deptIds) > 0) {
|
if (systemUserDeptService.countUserByDeptIds(deptIds) > 0) {
|
||||||
throw new BadRequestException("所选部门存在用户关联,请解除后再试!");
|
throw new BadRequestException("所选部门存在用户关联,请解除后再试!");
|
||||||
}
|
}
|
||||||
@@ -353,11 +353,11 @@ public class SystemDeptService {
|
|||||||
*
|
*
|
||||||
* @param ids /
|
* @param ids /
|
||||||
*/
|
*/
|
||||||
public Set<SystemDeptTb> traverseDeptByIdWithPids(Set<Long> ids) {
|
public Set<SystemDeptVo> traverseDeptByIdWithPids(Set<Long> ids) {
|
||||||
Set<SystemDeptTb> depts = new HashSet<>();
|
Set<SystemDeptVo> depts = new HashSet<>();
|
||||||
for (Long id : ids) {
|
for (Long id : ids) {
|
||||||
// 根部门
|
// 根部门
|
||||||
depts.add(this.getDeptById(id));
|
depts.add(this.getDeptVoById(id));
|
||||||
// 子部门
|
// 子部门
|
||||||
List<SystemDeptVo> deptList = this.listDeptByPid(id);
|
List<SystemDeptVo> deptList = this.listDeptByPid(id);
|
||||||
if (CollectionUtil.isNotEmpty(deptList)) {
|
if (CollectionUtil.isNotEmpty(deptList)) {
|
||||||
|
|||||||
+1
-1
@@ -109,7 +109,7 @@ public class SystemDictDetailService {
|
|||||||
*/
|
*/
|
||||||
public KitPageResult<SystemDictDetailVo> searchDictDetail(SystemQueryDictDetailArgs args, Page<SystemDictDetailTb> page) {
|
public KitPageResult<SystemDictDetailVo> searchDictDetail(SystemQueryDictDetailArgs args, Page<SystemDictDetailTb> page) {
|
||||||
IPage<SystemDictDetailVo> iPage = systemDictDetailMapper.selectPageByArgs(page, args).convert(i -> KitBeanUtil.copyToClass(i, SystemDictDetailVo.class));
|
IPage<SystemDictDetailVo> iPage = systemDictDetailMapper.selectPageByArgs(page, args).convert(i -> KitBeanUtil.copyToClass(i, SystemDictDetailVo.class));
|
||||||
List<Long> dictIds = iPage.getRecords().stream().map(SystemDictDetailTb::getDictId).collect(Collectors.toList());
|
List<Long> dictIds = iPage.getRecords().stream().map(SystemDictDetailVo::getDictId).collect(Collectors.toList());
|
||||||
Map<Long, SystemDictTb> id2ItemMap = systemDictMapper.selectByIds(dictIds).stream().collect(Collectors.toMap(SystemDictTb::getId, i -> i));
|
Map<Long, SystemDictTb> id2ItemMap = systemDictMapper.selectByIds(dictIds).stream().collect(Collectors.toMap(SystemDictTb::getId, i -> i));
|
||||||
for (SystemDictDetailVo record : iPage.getRecords()) {
|
for (SystemDictDetailVo record : iPage.getRecords()) {
|
||||||
record.setDict(id2ItemMap.get(record.getDictId()));
|
record.setDict(id2ItemMap.get(record.getDictId()));
|
||||||
|
|||||||
+7
-8
@@ -23,7 +23,6 @@ import cn.odboy.framework.exception.BadRequestException;
|
|||||||
import cn.odboy.system.constant.SystemYesOrNoChConst;
|
import cn.odboy.system.constant.SystemYesOrNoChConst;
|
||||||
import cn.odboy.system.constant.TransferProtocolConst;
|
import cn.odboy.system.constant.TransferProtocolConst;
|
||||||
import cn.odboy.system.dal.dataobject.SystemMenuTb;
|
import cn.odboy.system.dal.dataobject.SystemMenuTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
|
||||||
import cn.odboy.system.dal.model.SystemMenuExportRowVo;
|
import cn.odboy.system.dal.model.SystemMenuExportRowVo;
|
||||||
import cn.odboy.system.dal.model.SystemMenuMetaVo;
|
import cn.odboy.system.dal.model.SystemMenuMetaVo;
|
||||||
import cn.odboy.system.dal.model.SystemMenuRouterVo;
|
import cn.odboy.system.dal.model.SystemMenuRouterVo;
|
||||||
@@ -160,12 +159,12 @@ public class SystemMenuService {
|
|||||||
menuSet = this.queryChildMenuByArgs(menuList, menuSet);
|
menuSet = this.queryChildMenuByArgs(menuList, menuSet);
|
||||||
}
|
}
|
||||||
List<Long> menuIds =
|
List<Long> menuIds =
|
||||||
menuSet.stream().map(SystemMenuTb::getId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
|
menuSet.stream().map(SystemMenuVo::getId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
|
||||||
if (CollUtil.isNotEmpty(menuIds)) {
|
if (CollUtil.isNotEmpty(menuIds)) {
|
||||||
systemRoleMenuService.deleteRoleMenuByMenuIds(menuIds);
|
systemRoleMenuService.deleteRoleMenuByMenuIds(menuIds);
|
||||||
systemMenuMapper.deleteByIds(menuIds);
|
systemMenuMapper.deleteByIds(menuIds);
|
||||||
}
|
}
|
||||||
for (SystemMenuTb menu : menuSet) {
|
for (SystemMenuVo menu : menuSet) {
|
||||||
this.updateMenuSubCnt(menu.getPid());
|
this.updateMenuSubCnt(menu.getPid());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -222,7 +221,7 @@ public class SystemMenuService {
|
|||||||
*/
|
*/
|
||||||
public List<SystemMenuVo> listMenuByUserId(Long currentUserId) {
|
public List<SystemMenuVo> listMenuByUserId(Long currentUserId) {
|
||||||
List<SystemRoleVo> roles = systemUserRoleService.queryRoleByUsersId(currentUserId);
|
List<SystemRoleVo> roles = systemUserRoleService.queryRoleByUsersId(currentUserId);
|
||||||
Set<Long> roleIds = roles.stream().map(SystemRoleTb::getId).collect(Collectors.toSet());
|
Set<Long> roleIds = roles.stream().map(SystemRoleVo::getId).collect(Collectors.toSet());
|
||||||
return new ArrayList<>(systemRoleMenuService.queryMenuByRoleIds(roleIds));
|
return new ArrayList<>(systemRoleMenuService.queryMenuByRoleIds(roleIds));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -270,7 +269,7 @@ public class SystemMenuService {
|
|||||||
* @param menus /
|
* @param menus /
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
public List<SystemMenuVo> querySuperiorMenuByArgs(SystemMenuTb menu, List<SystemMenuVo> menus) {
|
public List<SystemMenuVo> querySuperiorMenuByArgs(SystemMenuVo menu, List<SystemMenuVo> menus) {
|
||||||
if (menu.getPid() == null) {
|
if (menu.getPid() == null) {
|
||||||
menus.addAll(this.listRootMenu());
|
menus.addAll(this.listRootMenu());
|
||||||
return menus;
|
return menus;
|
||||||
@@ -364,7 +363,7 @@ public class SystemMenuService {
|
|||||||
* @param menuVo /
|
* @param menuVo /
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
private SystemMenuRouterVo getMenuVo(SystemMenuTb menu, SystemMenuRouterVo menuVo) {
|
private SystemMenuRouterVo getMenuVo(SystemMenuVo menu, SystemMenuRouterVo menuVo) {
|
||||||
SystemMenuRouterVo menuVo1 = new SystemMenuRouterVo();
|
SystemMenuRouterVo menuVo1 = new SystemMenuRouterVo();
|
||||||
menuVo1.setMeta(menuVo.getMeta());
|
menuVo1.setMeta(menuVo.getMeta());
|
||||||
// 非外链
|
// 非外链
|
||||||
@@ -435,7 +434,7 @@ public class SystemMenuService {
|
|||||||
List<SystemMenuVo> menuList = this.listMenuByPid(id);
|
List<SystemMenuVo> menuList = this.listMenuByPid(id);
|
||||||
menuSet.add(this.getMenuVoById(id));
|
menuSet.add(this.getMenuVoById(id));
|
||||||
menuSet = this.queryChildMenuByArgs(menuList, menuSet);
|
menuSet = this.queryChildMenuByArgs(menuList, menuSet);
|
||||||
return menuSet.stream().map(SystemMenuTb::getId).collect(Collectors.toSet());
|
return menuSet.stream().map(SystemMenuVo::getId).collect(Collectors.toSet());
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<SystemMenuVo> listMenuSuperior(List<Long> ids) {
|
public List<SystemMenuVo> listMenuSuperior(List<Long> ids) {
|
||||||
@@ -443,7 +442,7 @@ public class SystemMenuService {
|
|||||||
List<SystemMenuVo> systemMenuTbs;
|
List<SystemMenuVo> systemMenuTbs;
|
||||||
if (CollectionUtil.isNotEmpty(ids)) {
|
if (CollectionUtil.isNotEmpty(ids)) {
|
||||||
menus = new LinkedHashSet<>(this.listMenuByIds(ids));
|
menus = new LinkedHashSet<>(this.listMenuByIds(ids));
|
||||||
for (SystemMenuTb menu : menus) {
|
for (SystemMenuVo menu : menus) {
|
||||||
List<SystemMenuVo> menuList = this.querySuperiorMenuByArgs(menu, new ArrayList<>());
|
List<SystemMenuVo> menuList = this.querySuperiorMenuByArgs(menu, new ArrayList<>());
|
||||||
for (SystemMenuVo data : menuList) {
|
for (SystemMenuVo data : menuList) {
|
||||||
if (data.getId().equals(menu.getPid())) {
|
if (data.getId().equals(menu.getPid())) {
|
||||||
|
|||||||
+15
-25
@@ -79,7 +79,7 @@ public class SystemQuartzJobService {
|
|||||||
* @param args /
|
* @param args /
|
||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void createJob(SystemQuartzJobTb args) {
|
public void createJob(SystemQuartzJobVo args) {
|
||||||
if (args.getId() != null) {
|
if (args.getId() != null) {
|
||||||
throw new BadRequestException("无效参数id");
|
throw new BadRequestException("无效参数id");
|
||||||
}
|
}
|
||||||
@@ -88,7 +88,8 @@ public class SystemQuartzJobService {
|
|||||||
if (!CronExpression.isValidExpression(args.getCronExpression())) {
|
if (!CronExpression.isValidExpression(args.getCronExpression())) {
|
||||||
throw new BadRequestException("cron表达式格式错误");
|
throw new BadRequestException("cron表达式格式错误");
|
||||||
}
|
}
|
||||||
systemQuartzJobMapper.insert(args);
|
SystemQuartzJobTb record = KitBeanUtil.copyToClass(args, SystemQuartzJobTb.class);
|
||||||
|
systemQuartzJobMapper.insert(record);
|
||||||
quartzManage.addJob(args);
|
quartzManage.addJob(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -110,9 +111,10 @@ public class SystemQuartzJobService {
|
|||||||
throw new BadRequestException("子任务中不能添加当前任务ID");
|
throw new BadRequestException("子任务中不能添加当前任务ID");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
SystemQuartzJobTb quartzJob = KitBeanUtil.copyToClass(args, SystemQuartzJobTb.class);
|
SystemQuartzJobTb jobTb = KitBeanUtil.copyToClass(args, SystemQuartzJobTb.class);
|
||||||
systemQuartzJobMapper.insertOrUpdate(quartzJob);
|
systemQuartzJobMapper.insertOrUpdate(jobTb);
|
||||||
quartzManage.updateJobCron(quartzJob);
|
SystemQuartzJobVo jobVo = KitBeanUtil.copyToClass(args, SystemQuartzJobVo.class);
|
||||||
|
quartzManage.updateJobCron(jobVo);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -121,7 +123,7 @@ public class SystemQuartzJobService {
|
|||||||
* @param quartzJob /
|
* @param quartzJob /
|
||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void switchQuartzJobStatus(SystemQuartzJobTb quartzJob) {
|
public void switchQuartzJobStatus(SystemQuartzJobVo quartzJob) {
|
||||||
// 置换暂停状态
|
// 置换暂停状态
|
||||||
if (quartzJob.getIsPause()) {
|
if (quartzJob.getIsPause()) {
|
||||||
quartzManage.resumeJob(quartzJob);
|
quartzManage.resumeJob(quartzJob);
|
||||||
@@ -130,7 +132,8 @@ public class SystemQuartzJobService {
|
|||||||
quartzManage.pauseJob(quartzJob);
|
quartzManage.pauseJob(quartzJob);
|
||||||
quartzJob.setIsPause(true);
|
quartzJob.setIsPause(true);
|
||||||
}
|
}
|
||||||
systemQuartzJobMapper.insertOrUpdate(quartzJob);
|
SystemQuartzJobTb quartzJobTb = KitBeanUtil.copyToClass(quartzJob, SystemQuartzJobTb.class);
|
||||||
|
systemQuartzJobMapper.insertOrUpdate(quartzJobTb);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -138,7 +141,7 @@ public class SystemQuartzJobService {
|
|||||||
*
|
*
|
||||||
* @param quartzJob /
|
* @param quartzJob /
|
||||||
*/
|
*/
|
||||||
public void startQuartzJob(SystemQuartzJobTb quartzJob) {
|
public void startQuartzJob(SystemQuartzJobVo quartzJob) {
|
||||||
quartzManage.runJobNow(quartzJob);
|
quartzManage.runJobNow(quartzJob);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -263,31 +266,18 @@ public class SystemQuartzJobService {
|
|||||||
return systemQuartzLogMapper.selectList(wrapper);
|
return systemQuartzLogMapper.selectList(wrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
public SystemQuartzJobTb getQuartzJobById(Long id) {
|
public SystemQuartzJobVo getQuartzJobById(Long id) {
|
||||||
return systemQuartzJobMapper.selectById(id);
|
return KitBeanUtil.copyToClass(systemQuartzJobMapper.selectById(id), SystemQuartzJobVo.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<SystemQuartzJobTb> listEnableQuartzJob() {
|
public List<SystemQuartzJobVo> listEnableQuartzJob() {
|
||||||
LambdaQueryWrapper<SystemQuartzJobTb> wrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SystemQuartzJobTb> wrapper = new LambdaQueryWrapper<>();
|
||||||
wrapper.eq(SystemQuartzJobTb::getIsPause, 0);
|
wrapper.eq(SystemQuartzJobTb::getIsPause, 0);
|
||||||
return systemQuartzJobMapper.selectList(wrapper);
|
return KitBeanUtil.copyToList(systemQuartzJobMapper.selectList(wrapper), SystemQuartzJobVo.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void exportQuartzJobXlsx(HttpServletResponse response, SystemQueryQuartzJobArgs args) {
|
public void exportQuartzJobXlsx(HttpServletResponse response, SystemQueryQuartzJobArgs args) {
|
||||||
List<SystemQuartzJobTb> systemQuartzJobTbs = this.queryQuartzJobByArgs(args);
|
List<SystemQuartzJobTb> systemQuartzJobTbs = this.queryQuartzJobByArgs(args);
|
||||||
// KitXlsxExportUtil.exportFile(response, "定时任务数据", systemQuartzJobTbs, SystemQuartzJobExportRowVo.class,
|
|
||||||
// (dataObject) -> {
|
|
||||||
// SystemQuartzJobExportRowVo rowVo = new SystemQuartzJobExportRowVo();
|
|
||||||
// rowVo.setJobName(dataObject.getJobName());
|
|
||||||
// rowVo.setBeanName(dataObject.getBeanName());
|
|
||||||
// rowVo.setMethodName(dataObject.getMethodName());
|
|
||||||
// rowVo.setParams(dataObject.getParams());
|
|
||||||
// rowVo.setCronExpression(dataObject.getCronExpression());
|
|
||||||
// rowVo.setIsPause(dataObject.getIsPause() ? "暂停中" : "运行中");
|
|
||||||
// rowVo.setDescription(dataObject.getDescription());
|
|
||||||
// rowVo.setCreateTime(dataObject.getCreateTime());
|
|
||||||
// return CollUtil.newArrayList(rowVo);
|
|
||||||
// });
|
|
||||||
List<SystemQuartzJobExportRowVo> rowVos = new ArrayList<>();
|
List<SystemQuartzJobExportRowVo> rowVos = new ArrayList<>();
|
||||||
for (SystemQuartzJobTb dataObject : systemQuartzJobTbs) {
|
for (SystemQuartzJobTb dataObject : systemQuartzJobTbs) {
|
||||||
SystemQuartzJobExportRowVo rowVo = new SystemQuartzJobExportRowVo();
|
SystemQuartzJobExportRowVo rowVo = new SystemQuartzJobExportRowVo();
|
||||||
|
|||||||
+5
-7
@@ -21,7 +21,6 @@ import cn.hutool.core.lang.Dict;
|
|||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.odboy.base.KitPageResult;
|
import cn.odboy.base.KitPageResult;
|
||||||
import cn.odboy.framework.exception.BadRequestException;
|
import cn.odboy.framework.exception.BadRequestException;
|
||||||
import cn.odboy.system.dal.dataobject.SystemMenuTb;
|
|
||||||
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemUserTb;
|
import cn.odboy.system.dal.dataobject.SystemUserTb;
|
||||||
import cn.odboy.system.dal.model.SystemCreateRoleArgs;
|
import cn.odboy.system.dal.model.SystemCreateRoleArgs;
|
||||||
@@ -94,7 +93,7 @@ public class SystemRoleService {
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void updateRoleById(SystemRoleVo args) {
|
public void updateRoleById(SystemRoleVo args) {
|
||||||
checkRoleLevels(args.getLevel());
|
checkRoleLevels(args.getLevel());
|
||||||
SystemRoleVo role = this.getRoleVoById(args.getId());
|
SystemRoleTb role = this.getRoleTbById(args.getId());
|
||||||
SystemRoleTb role1 = this.getRoleByName(args.getName());
|
SystemRoleTb role1 = this.getRoleByName(args.getName());
|
||||||
if (role1 != null && !role1.getId().equals(role.getId())) {
|
if (role1 != null && !role1.getId().equals(role.getId())) {
|
||||||
throw new BadRequestException("角色名称已存在");
|
throw new BadRequestException("角色名称已存在");
|
||||||
@@ -102,7 +101,6 @@ public class SystemRoleService {
|
|||||||
role.setName(args.getName());
|
role.setName(args.getName());
|
||||||
role.setDescription(args.getDescription());
|
role.setDescription(args.getDescription());
|
||||||
role.setDataScope(args.getDataScope());
|
role.setDataScope(args.getDataScope());
|
||||||
role.setDepts(args.getDepts());
|
|
||||||
role.setLevel(args.getLevel());
|
role.setLevel(args.getLevel());
|
||||||
// 更新
|
// 更新
|
||||||
systemRoleMapper.insertOrUpdate(role);
|
systemRoleMapper.insertOrUpdate(role);
|
||||||
@@ -114,8 +112,8 @@ public class SystemRoleService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private SystemRoleVo getRoleVoById(Long id) {
|
private SystemRoleTb getRoleTbById(Long id) {
|
||||||
return KitBeanUtil.copyToClass(systemRoleMapper.selectById(id), SystemRoleVo.class);
|
return systemRoleMapper.selectById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -223,7 +221,7 @@ public class SystemRoleService {
|
|||||||
return permissions.stream().map(SystemRoleCodeVo::new).collect(Collectors.toList());
|
return permissions.stream().map(SystemRoleCodeVo::new).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
List<SystemRoleVo> roles = systemUserRoleService.queryRoleByUsersId(user.getId());
|
List<SystemRoleVo> roles = systemUserRoleService.queryRoleByUsersId(user.getId());
|
||||||
permissions = roles.stream().flatMap(role -> role.getMenus().stream()).map(SystemMenuTb::getPermission)
|
permissions = roles.stream().flatMap(role -> role.getMenus().stream()).map(SystemMenuVo::getPermission)
|
||||||
.filter(StrUtil::isNotBlank).collect(Collectors.toSet());
|
.filter(StrUtil::isNotBlank).collect(Collectors.toSet());
|
||||||
return permissions.stream().map(SystemRoleCodeVo::new).collect(Collectors.toList());
|
return permissions.stream().map(SystemRoleCodeVo::new).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
@@ -271,7 +269,7 @@ public class SystemRoleService {
|
|||||||
*/
|
*/
|
||||||
private int checkRoleLevels(Integer level) {
|
private int checkRoleLevels(Integer level) {
|
||||||
List<Integer> levels = systemUserRoleService.queryRoleByUsersId(KitSecurityHelper.getCurrentUserId()).stream()
|
List<Integer> levels = systemUserRoleService.queryRoleByUsersId(KitSecurityHelper.getCurrentUserId()).stream()
|
||||||
.map(SystemRoleTb::getLevel).collect(Collectors.toList());
|
.map(SystemRoleVo::getLevel).collect(Collectors.toList());
|
||||||
int min = Collections.min(levels);
|
int min = Collections.min(levels);
|
||||||
if (level != null) {
|
if (level != null) {
|
||||||
if (level < min) {
|
if (level < min) {
|
||||||
|
|||||||
+1
-2
@@ -18,7 +18,6 @@ package cn.odboy.system.service;
|
|||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.odboy.framework.exception.BadRequestException;
|
import cn.odboy.framework.exception.BadRequestException;
|
||||||
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemMenuTb;
|
|
||||||
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemUserRoleTb;
|
import cn.odboy.system.dal.dataobject.SystemUserRoleTb;
|
||||||
import cn.odboy.system.dal.model.SystemMenuVo;
|
import cn.odboy.system.dal.model.SystemMenuVo;
|
||||||
@@ -141,7 +140,7 @@ public class SystemUserRoleService {
|
|||||||
public void checkLevel(SystemUserVo args) {
|
public void checkLevel(SystemUserVo args) {
|
||||||
Integer currentLevel = Collections.min(
|
Integer currentLevel = Collections.min(
|
||||||
this.queryRoleByUsersId(KitSecurityHelper.getCurrentUserId()).stream()
|
this.queryRoleByUsersId(KitSecurityHelper.getCurrentUserId()).stream()
|
||||||
.map(SystemRoleTb::getLevel).collect(Collectors.toList()));
|
.map(SystemRoleVo::getLevel).collect(Collectors.toList()));
|
||||||
Integer optLevel = this.getDeptLevelByRoles(args.getRoles());
|
Integer optLevel = this.getDeptLevelByRoles(args.getRoles());
|
||||||
if (currentLevel > optLevel) {
|
if (currentLevel > optLevel) {
|
||||||
throw new BadRequestException("角色权限不足");
|
throw new BadRequestException("角色权限不足");
|
||||||
|
|||||||
+4
-4
@@ -26,7 +26,6 @@ import cn.odboy.framework.properties.AppProperties;
|
|||||||
import cn.odboy.framework.server.core.KitFileLocalUploadHelper;
|
import cn.odboy.framework.server.core.KitFileLocalUploadHelper;
|
||||||
import cn.odboy.system.constant.SystemCaptchaBizEnum;
|
import cn.odboy.system.constant.SystemCaptchaBizEnum;
|
||||||
import cn.odboy.system.constant.SystemZhConst;
|
import cn.odboy.system.constant.SystemZhConst;
|
||||||
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
|
||||||
import cn.odboy.system.dal.dataobject.SystemJobTb;
|
import cn.odboy.system.dal.dataobject.SystemJobTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemUserJobTb;
|
import cn.odboy.system.dal.dataobject.SystemUserJobTb;
|
||||||
@@ -34,6 +33,7 @@ import cn.odboy.system.dal.dataobject.SystemUserRoleTb;
|
|||||||
import cn.odboy.system.dal.dataobject.SystemUserTb;
|
import cn.odboy.system.dal.dataobject.SystemUserTb;
|
||||||
import cn.odboy.system.dal.model.SystemDeptVo;
|
import cn.odboy.system.dal.model.SystemDeptVo;
|
||||||
import cn.odboy.system.dal.model.SystemQueryUserArgs;
|
import cn.odboy.system.dal.model.SystemQueryUserArgs;
|
||||||
|
import cn.odboy.system.dal.model.SystemRoleVo;
|
||||||
import cn.odboy.system.dal.model.SystemUpdateUserPasswordArgs;
|
import cn.odboy.system.dal.model.SystemUpdateUserPasswordArgs;
|
||||||
import cn.odboy.system.dal.model.SystemUserExportRowVo;
|
import cn.odboy.system.dal.model.SystemUserExportRowVo;
|
||||||
import cn.odboy.system.dal.model.SystemUserVo;
|
import cn.odboy.system.dal.model.SystemUserVo;
|
||||||
@@ -205,9 +205,9 @@ public class SystemUserService {
|
|||||||
for (Long id : ids) {
|
for (Long id : ids) {
|
||||||
Integer currentLevel = Collections.min(
|
Integer currentLevel = Collections.min(
|
||||||
systemUserRoleService.queryRoleByUsersId(currentUserId).stream()
|
systemUserRoleService.queryRoleByUsersId(currentUserId).stream()
|
||||||
.map(SystemRoleTb::getLevel).collect(Collectors.toList()));
|
.map(SystemRoleVo::getLevel).collect(Collectors.toList()));
|
||||||
Integer optLevel = Collections.min(
|
Integer optLevel = Collections.min(
|
||||||
systemUserRoleService.queryRoleByUsersId(id).stream().map(SystemRoleTb::getLevel)
|
systemUserRoleService.queryRoleByUsersId(id).stream().map(SystemRoleVo::getLevel)
|
||||||
.collect(Collectors.toList()));
|
.collect(Collectors.toList()));
|
||||||
if (currentLevel > optLevel) {
|
if (currentLevel > optLevel) {
|
||||||
throw new BadRequestException(
|
throw new BadRequestException(
|
||||||
@@ -439,7 +439,7 @@ public class SystemUserService {
|
|||||||
SystemUserVo userVo = KitBeanUtil.copyToClass(user, SystemUserVo.class);
|
SystemUserVo userVo = KitBeanUtil.copyToClass(user, SystemUserVo.class);
|
||||||
// 查询关联的部门信息
|
// 查询关联的部门信息
|
||||||
if (user.getDeptId() != null) {
|
if (user.getDeptId() != null) {
|
||||||
SystemDeptTb dept = systemDeptService.getDeptById(user.getDeptId());
|
SystemDeptVo dept = systemDeptService.getDeptVoById(user.getDeptId());
|
||||||
userVo.setDept(dept);
|
userVo.setDept(dept);
|
||||||
}
|
}
|
||||||
// 查询关联的岗位信息
|
// 查询关联的岗位信息
|
||||||
|
|||||||
@@ -16,9 +16,9 @@
|
|||||||
package cn.odboy;
|
package cn.odboy;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.odboy.system.dal.dataobject.SystemDeptTb;
|
|
||||||
import cn.odboy.system.dal.dataobject.SystemJobTb;
|
import cn.odboy.system.dal.dataobject.SystemJobTb;
|
||||||
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
import cn.odboy.system.dal.dataobject.SystemRoleTb;
|
||||||
|
import cn.odboy.system.dal.model.SystemDeptVo;
|
||||||
import cn.odboy.system.dal.model.SystemUserVo;
|
import cn.odboy.system.dal.model.SystemUserVo;
|
||||||
import cn.odboy.system.service.SystemUserService;
|
import cn.odboy.system.service.SystemUserService;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@@ -40,7 +40,7 @@ public class SystemApplicationTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void contextLoads() {
|
public void contextLoads() {
|
||||||
SystemDeptTb systemDept = new SystemDeptTb();
|
SystemDeptVo systemDept = new SystemDeptVo();
|
||||||
systemDept.setId(2L);
|
systemDept.setId(2L);
|
||||||
SystemJobTb systemJob = new SystemJobTb();
|
SystemJobTb systemJob = new SystemJobTb();
|
||||||
systemJob.setId(11L);
|
systemJob.setId(11L);
|
||||||
|
|||||||
Reference in New Issue
Block a user