refactor(controller): 重构控制器代码结构和依赖管理

This commit is contained in:
2026-01-08 09:44:51 +08:00
parent 67d2170eda
commit 20fb90b373
41 changed files with 83 additions and 179 deletions
@@ -15,7 +15,7 @@
*/ */
package cn.odboy.system.constant; package cn.odboy.system.constant;
public interface TransferProtocolConst { public interface SystemTransferProtocolConst {
String PREFIX_HTTP = "http://"; String PREFIX_HTTP = "http://";
String PREFIX_HTTPS = "https://"; String PREFIX_HTTPS = "https://";
@@ -16,8 +16,8 @@
package cn.odboy.system.controller; package cn.odboy.system.controller;
import cn.odboy.annotation.AnonymousPostMapping; import cn.odboy.annotation.AnonymousPostMapping;
import cn.odboy.system.dal.model.response.SystemAuthVo;
import cn.odboy.system.dal.model.request.SystemUserLoginArgs; import cn.odboy.system.dal.model.request.SystemUserLoginArgs;
import cn.odboy.system.dal.model.response.SystemAuthVo;
import cn.odboy.system.service.SystemAuthService; import cn.odboy.system.service.SystemAuthService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@@ -19,8 +19,8 @@ import cn.odboy.base.KitPageArgs;
import cn.odboy.base.KitPageResult; import cn.odboy.base.KitPageResult;
import cn.odboy.system.dal.dataobject.SystemDeptTb; import cn.odboy.system.dal.dataobject.SystemDeptTb;
import cn.odboy.system.dal.model.request.SystemCreateDeptArgs; import cn.odboy.system.dal.model.request.SystemCreateDeptArgs;
import cn.odboy.system.dal.model.response.SystemDeptVo;
import cn.odboy.system.dal.model.request.SystemQueryDeptArgs; import cn.odboy.system.dal.model.request.SystemQueryDeptArgs;
import cn.odboy.system.dal.model.response.SystemDeptVo;
import cn.odboy.system.framework.operalog.OperationLog; import cn.odboy.system.framework.operalog.OperationLog;
import cn.odboy.system.service.SystemDeptService; import cn.odboy.system.service.SystemDeptService;
import cn.odboy.util.KitPageUtil; import cn.odboy.util.KitPageUtil;
@@ -59,8 +59,7 @@ public class SystemDeptController {
@ApiOperation("查询部门") @ApiOperation("查询部门")
@PostMapping(value = "/searchDept") @PostMapping(value = "/searchDept")
@PreAuthorize("@el.check('user:list','dept:list')") @PreAuthorize("@el.check('user:list','dept:list')")
public ResponseEntity<KitPageResult<SystemDeptTb>> queryDept( public ResponseEntity<KitPageResult<SystemDeptTb>> queryDept(@Validated @RequestBody KitPageArgs<SystemQueryDeptArgs> pageArgs) throws Exception {
@Validated @RequestBody KitPageArgs<SystemQueryDeptArgs> pageArgs) throws Exception {
List<SystemDeptTb> depts = systemDeptService.queryAllDeptByArgs(pageArgs.getArgs(), true); List<SystemDeptTb> depts = systemDeptService.queryAllDeptByArgs(pageArgs.getArgs(), true);
return ResponseEntity.ok(KitPageUtil.toPage(depts)); return ResponseEntity.ok(KitPageUtil.toPage(depts));
} }
@@ -68,8 +67,7 @@ public class SystemDeptController {
@ApiOperation("查询部门:根据ID获取同级与上级数据") @ApiOperation("查询部门:根据ID获取同级与上级数据")
@PostMapping("/searchDeptTree") @PostMapping("/searchDeptTree")
@PreAuthorize("@el.check('user:list','dept:list')") @PreAuthorize("@el.check('user:list','dept:list')")
public ResponseEntity<KitPageResult<SystemDeptVo>> queryDeptSuperiorTree(@RequestBody List<Long> ids, public ResponseEntity<KitPageResult<SystemDeptVo>> queryDeptSuperiorTree(@RequestBody List<Long> ids, @RequestParam(defaultValue = "false") Boolean exclude) {
@RequestParam(defaultValue = "false") Boolean exclude) {
return ResponseEntity.ok(systemDeptService.searchDeptTree(ids, exclude)); return ResponseEntity.ok(systemDeptService.searchDeptTree(ids, exclude));
} }
@@ -25,7 +25,6 @@ import cn.odboy.system.service.SystemDictService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import java.io.IOException;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
@@ -51,7 +50,7 @@ public class SystemDictController {
@ApiOperation("导出字典数据") @ApiOperation("导出字典数据")
@GetMapping(value = "/download") @GetMapping(value = "/download")
@PreAuthorize("@el.check('dict:list')") @PreAuthorize("@el.check('dict:list')")
public void exportDict(HttpServletResponse response, SystemQueryDictArgs args) throws IOException { public void exportDict(HttpServletResponse response, SystemQueryDictArgs args) {
systemDictService.exportDictXlsx(response, args); systemDictService.exportDictXlsx(response, args);
} }
@@ -66,8 +65,7 @@ public class SystemDictController {
@ApiOperation("分页查询字典") @ApiOperation("分页查询字典")
@PostMapping(value = "/searchDict") @PostMapping(value = "/searchDict")
@PreAuthorize("@el.check('dict:list')") @PreAuthorize("@el.check('dict:list')")
public ResponseEntity<KitPageResult<SystemDictTb>> queryDictByArgs( public ResponseEntity<KitPageResult<SystemDictTb>> queryDictByArgs(@Validated @RequestBody KitPageArgs<SystemQueryDictArgs> pageArgs) {
@Validated @RequestBody KitPageArgs<SystemQueryDictArgs> pageArgs) {
Page<SystemDictTb> page = new Page<>(pageArgs.getPage(), pageArgs.getSize()); Page<SystemDictTb> page = new Page<>(pageArgs.getPage(), pageArgs.getSize());
return ResponseEntity.ok(systemDictService.searchDict(pageArgs.getArgs(), page)); return ResponseEntity.ok(systemDictService.searchDict(pageArgs.getArgs(), page));
} }
@@ -19,8 +19,8 @@ import cn.odboy.base.KitPageArgs;
import cn.odboy.base.KitPageResult; import cn.odboy.base.KitPageResult;
import cn.odboy.system.dal.dataobject.SystemDictDetailTb; import cn.odboy.system.dal.dataobject.SystemDictDetailTb;
import cn.odboy.system.dal.model.request.SystemCreateDictDetailArgs; import cn.odboy.system.dal.model.request.SystemCreateDictDetailArgs;
import cn.odboy.system.dal.model.response.SystemDictDetailVo;
import cn.odboy.system.dal.model.request.SystemQueryDictDetailArgs; import cn.odboy.system.dal.model.request.SystemQueryDictDetailArgs;
import cn.odboy.system.dal.model.response.SystemDictDetailVo;
import cn.odboy.system.framework.operalog.OperationLog; import cn.odboy.system.framework.operalog.OperationLog;
import cn.odboy.system.service.SystemDictDetailService; import cn.odboy.system.service.SystemDictDetailService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -49,8 +49,7 @@ public class SystemDictDetailController {
@ApiOperation("查询字典详情") @ApiOperation("查询字典详情")
@PostMapping(value = "/searchDictDetail") @PostMapping(value = "/searchDictDetail")
public ResponseEntity<KitPageResult<SystemDictDetailVo>> queryDictDetailByArgs( public ResponseEntity<KitPageResult<SystemDictDetailVo>> queryDictDetailByArgs(@Validated @RequestBody KitPageArgs<SystemQueryDictDetailArgs> pageArgs) {
@Validated @RequestBody KitPageArgs<SystemQueryDictDetailArgs> pageArgs) {
Page<SystemDictDetailTb> page = new Page<>(pageArgs.getPage(), pageArgs.getSize()); Page<SystemDictDetailTb> page = new Page<>(pageArgs.getPage(), pageArgs.getSize());
return ResponseEntity.ok(systemDictDetailService.searchDictDetail(pageArgs.getArgs(), page)); return ResponseEntity.ok(systemDictDetailService.searchDictDetail(pageArgs.getArgs(), page));
} }
@@ -75,8 +74,7 @@ public class SystemDictDetailController {
@ApiOperation("修改字典详情") @ApiOperation("修改字典详情")
@PostMapping(value = "/updateDictDetailById") @PostMapping(value = "/updateDictDetailById")
@PreAuthorize("@el.check('dict:edit')") @PreAuthorize("@el.check('dict:edit')")
public ResponseEntity<Void> updateDictDetailById( public ResponseEntity<Void> updateDictDetailById(@Validated(SystemDictDetailTb.Update.class) @RequestBody SystemDictDetailTb args) {
@Validated(SystemDictDetailTb.Update.class) @RequestBody SystemDictDetailTb args) {
systemDictDetailService.updateDictDetailById(args); systemDictDetailService.updateDictDetailById(args);
return ResponseEntity.ok(null); return ResponseEntity.ok(null);
} }
@@ -49,8 +49,7 @@ public class SystemEmailController {
@OperationLog @OperationLog
@ApiOperation("修改邮箱配置") @ApiOperation("修改邮箱配置")
@PostMapping(value = "/updateEmailConfigById") @PostMapping(value = "/updateEmailConfigById")
public ResponseEntity<Void> updateEmailConfigById(@Validated @RequestBody SystemEmailConfigTb emailConfig) public ResponseEntity<Void> updateEmailConfigById(@Validated @RequestBody SystemEmailConfigTb emailConfig) throws Exception {
throws Exception {
systemEmailService.updateEmailConfigById(emailConfig); systemEmailService.updateEmailConfigById(emailConfig);
return ResponseEntity.ok(null); return ResponseEntity.ok(null);
} }
@@ -25,7 +25,6 @@ import cn.odboy.system.service.SystemJobService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import java.io.IOException;
import java.util.Set; import java.util.Set;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -50,15 +49,14 @@ public class SystemJobController {
@ApiOperation("导出岗位数据") @ApiOperation("导出岗位数据")
@GetMapping(value = "/download") @GetMapping(value = "/download")
@PreAuthorize("@el.check('job:list')") @PreAuthorize("@el.check('job:list')")
public void exportJob(HttpServletResponse response, SystemQueryJobArgs args) throws IOException { public void exportJob(HttpServletResponse response, SystemQueryJobArgs args) {
systemJobService.exportJobXlsx(response, args); systemJobService.exportJobXlsx(response, args);
} }
@ApiOperation("分页查询岗位") @ApiOperation("分页查询岗位")
@PostMapping(value = "/searchJob") @PostMapping(value = "/searchJob")
@PreAuthorize("@el.check('job:list','user:list')") @PreAuthorize("@el.check('job:list','user:list')")
public ResponseEntity<KitPageResult<SystemJobTb>> queryJobByArgs( public ResponseEntity<KitPageResult<SystemJobTb>> queryJobByArgs(@Validated @RequestBody KitPageArgs<SystemQueryJobArgs> pageArgs) {
@Validated @RequestBody KitPageArgs<SystemQueryJobArgs> pageArgs) {
Page<SystemJobTb> page = new Page<>(pageArgs.getPage(), pageArgs.getSize()); Page<SystemJobTb> page = new Page<>(pageArgs.getPage(), pageArgs.getSize());
return ResponseEntity.ok(systemJobService.searchJobByArgs(pageArgs.getArgs(), page)); return ResponseEntity.ok(systemJobService.searchJobByArgs(pageArgs.getArgs(), page));
} }
@@ -24,7 +24,6 @@ import cn.odboy.system.service.SystemLocalStorageService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import java.io.IOException;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
@@ -49,8 +48,7 @@ public class SystemLocalStorageController {
@ApiOperation("查询文件") @ApiOperation("查询文件")
@PostMapping(value = "/searchLocalStorage") @PostMapping(value = "/searchLocalStorage")
@PreAuthorize("@el.check('storage:list')") @PreAuthorize("@el.check('storage:list')")
public ResponseEntity<KitPageResult<SystemLocalStorageTb>> queryLocalStorage( public ResponseEntity<KitPageResult<SystemLocalStorageTb>> queryLocalStorage(@Validated @RequestBody KitPageArgs<SystemQueryStorageArgs> pageArgs) {
@Validated @RequestBody KitPageArgs<SystemQueryStorageArgs> pageArgs) {
Page<SystemLocalStorageTb> page = new Page<>(pageArgs.getPage(), pageArgs.getSize()); Page<SystemLocalStorageTb> page = new Page<>(pageArgs.getPage(), pageArgs.getSize());
return ResponseEntity.ok(localStorageService.searchLocalStorage(pageArgs.getArgs(), page)); return ResponseEntity.ok(localStorageService.searchLocalStorage(pageArgs.getArgs(), page));
} }
@@ -59,7 +57,7 @@ public class SystemLocalStorageController {
@ApiOperation("导出本地存储记录数据") @ApiOperation("导出本地存储记录数据")
@GetMapping(value = "/download") @GetMapping(value = "/download")
@PreAuthorize("@el.check('storage:list')") @PreAuthorize("@el.check('storage:list')")
public void exportFile(HttpServletResponse response, SystemQueryStorageArgs args) throws IOException { public void exportFile(HttpServletResponse response, SystemQueryStorageArgs args) {
localStorageService.exportLocalStorageXlsx(response, args); localStorageService.exportLocalStorageXlsx(response, args);
} }
@@ -19,9 +19,9 @@ import cn.odboy.base.KitPageArgs;
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.SystemMenuTb;
import cn.odboy.system.dal.model.request.SystemQueryMenuArgs;
import cn.odboy.system.dal.model.response.SystemMenuRouterVo; import cn.odboy.system.dal.model.response.SystemMenuRouterVo;
import cn.odboy.system.dal.model.response.SystemMenuVo; import cn.odboy.system.dal.model.response.SystemMenuVo;
import cn.odboy.system.dal.model.request.SystemQueryMenuArgs;
import cn.odboy.system.framework.operalog.OperationLog; import cn.odboy.system.framework.operalog.OperationLog;
import cn.odboy.system.service.SystemMenuService; import cn.odboy.system.service.SystemMenuService;
import cn.odboy.util.KitPageUtil; import cn.odboy.util.KitPageUtil;
@@ -48,8 +48,7 @@ public class SystemOnlineController {
@ApiOperation("查询在线用户") @ApiOperation("查询在线用户")
@PostMapping(value = "/searchOnlineUser") @PostMapping(value = "/searchOnlineUser")
@PreAuthorize("@el.check()") @PreAuthorize("@el.check()")
public ResponseEntity<KitPageResult<SystemUserOnlineVo>> queryOnlineUser( public ResponseEntity<KitPageResult<SystemUserOnlineVo>> queryOnlineUser(@Validated @RequestBody KitPageArgs<SystemUserOnlineVo> pageArgs) {
@Validated @RequestBody KitPageArgs<SystemUserOnlineVo> pageArgs) {
IPage<SystemUserOnlineVo> page = new Page<>(pageArgs.getPage(), pageArgs.getSize()); IPage<SystemUserOnlineVo> page = new Page<>(pageArgs.getPage(), pageArgs.getSize());
return ResponseEntity.ok(systemUserOnlineInfoDAO.searchOnlineUser(pageArgs.getArgs(), page)); return ResponseEntity.ok(systemUserOnlineInfoDAO.searchOnlineUser(pageArgs.getArgs(), page));
} }
@@ -18,14 +18,13 @@ package cn.odboy.system.controller;
import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageArgs;
import cn.odboy.base.KitPageResult; import cn.odboy.base.KitPageResult;
import cn.odboy.system.dal.dataobject.SystemOssStorageTb; import cn.odboy.system.dal.dataobject.SystemOssStorageTb;
import cn.odboy.system.dal.model.response.SystemOssStorageVo;
import cn.odboy.system.dal.model.request.SystemQueryStorageArgs; import cn.odboy.system.dal.model.request.SystemQueryStorageArgs;
import cn.odboy.system.dal.model.response.SystemOssStorageVo;
import cn.odboy.system.framework.operalog.OperationLog; import cn.odboy.system.framework.operalog.OperationLog;
import cn.odboy.system.service.SystemOssStorageService; import cn.odboy.system.service.SystemOssStorageService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import java.io.IOException;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -52,8 +51,7 @@ public class SystemOssStorageController {
@ApiOperation("查询文件") @ApiOperation("查询文件")
@PostMapping(value = "/searchOssStorage") @PostMapping(value = "/searchOssStorage")
@PreAuthorize("@el.check('storage:list')") @PreAuthorize("@el.check('storage:list')")
public ResponseEntity<KitPageResult<SystemOssStorageVo>> queryOssStorage( public ResponseEntity<KitPageResult<SystemOssStorageVo>> queryOssStorage(@Validated @RequestBody KitPageArgs<SystemQueryStorageArgs> pageArgs) {
@Validated @RequestBody KitPageArgs<SystemQueryStorageArgs> pageArgs) {
Page<SystemOssStorageTb> page = new Page<>(pageArgs.getPage(), pageArgs.getSize()); Page<SystemOssStorageTb> page = new Page<>(pageArgs.getPage(), pageArgs.getSize());
return ResponseEntity.ok(systemOssStorageService.searchOssStorage(pageArgs.getArgs(), page)); return ResponseEntity.ok(systemOssStorageService.searchOssStorage(pageArgs.getArgs(), page));
} }
@@ -62,7 +60,7 @@ public class SystemOssStorageController {
@ApiOperation("导出OSS存储记录数据") @ApiOperation("导出OSS存储记录数据")
@GetMapping(value = "/download") @GetMapping(value = "/download")
@PreAuthorize("@el.check('storage:list')") @PreAuthorize("@el.check('storage:list')")
public void exportFile(HttpServletResponse response, SystemQueryStorageArgs args) throws IOException { public void exportFile(HttpServletResponse response, SystemQueryStorageArgs args) {
systemOssStorageService.exportOssStorageXlsx(response, args); systemOssStorageService.exportOssStorageXlsx(response, args);
} }
@@ -19,9 +19,9 @@ 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.response.SystemQuartzJobVo;
import cn.odboy.system.dal.model.request.SystemQueryQuartzJobArgs; import cn.odboy.system.dal.model.request.SystemQueryQuartzJobArgs;
import cn.odboy.system.dal.model.request.SystemUpdateQuartzJobArgs; import cn.odboy.system.dal.model.request.SystemUpdateQuartzJobArgs;
import cn.odboy.system.dal.model.response.SystemQuartzJobVo;
import cn.odboy.system.framework.operalog.OperationLog; import cn.odboy.system.framework.operalog.OperationLog;
import cn.odboy.system.service.SystemQuartzJobService; import cn.odboy.system.service.SystemQuartzJobService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -53,8 +53,7 @@ public class SystemQuartzJobController {
@ApiOperation("查询定时任务") @ApiOperation("查询定时任务")
@PostMapping(value = "/searchQuartzJob") @PostMapping(value = "/searchQuartzJob")
@PreAuthorize("@el.check('quartzJob:list')") @PreAuthorize("@el.check('quartzJob:list')")
public ResponseEntity<KitPageResult<SystemQuartzJobTb>> queryQuartzJobByCrud( public ResponseEntity<KitPageResult<SystemQuartzJobTb>> queryQuartzJobByCrud(@Validated @RequestBody KitPageArgs<SystemQueryQuartzJobArgs> pageArgs) {
@Validated @RequestBody KitPageArgs<SystemQueryQuartzJobArgs> pageArgs) {
Page<SystemQuartzJobTb> page = new Page<>(pageArgs.getPage(), pageArgs.getSize()); Page<SystemQuartzJobTb> page = new Page<>(pageArgs.getPage(), pageArgs.getSize());
return ResponseEntity.ok(systemQuartzJobService.searchQuartzJobByArgs(pageArgs.getArgs(), page)); return ResponseEntity.ok(systemQuartzJobService.searchQuartzJobByArgs(pageArgs.getArgs(), page));
} }
@@ -27,7 +27,6 @@ import cn.odboy.system.service.SystemRoleService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import java.io.IOException;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
@@ -59,7 +58,7 @@ public class SystemRoleController {
@ApiOperation("导出角色数据") @ApiOperation("导出角色数据")
@GetMapping(value = "/download") @GetMapping(value = "/download")
@PreAuthorize("@el.check('role:list')") @PreAuthorize("@el.check('role:list')")
public void exportRole(HttpServletResponse response, SystemQueryRoleArgs args) throws IOException { public void exportRole(HttpServletResponse response, SystemQueryRoleArgs args) {
systemRoleService.exportRoleXlsx(response, args); systemRoleService.exportRoleXlsx(response, args);
} }
@@ -6,8 +6,6 @@ import io.swagger.annotations.ApiModelProperty;
import java.util.List; import java.util.List;
import java.util.Objects; 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;
@@ -15,15 +13,12 @@ import lombok.Setter;
@Setter @Setter
public class SystemDeptVo extends KitBaseUserTimeTb { public class SystemDeptVo extends KitBaseUserTimeTb {
@NotNull(groups = Update.class)
@ApiModelProperty(value = "ID", hidden = true) @ApiModelProperty(value = "ID", hidden = true)
private Long id; private Long id;
@ApiModelProperty(value = "排序") @ApiModelProperty(value = "排序")
private Integer deptSort; private Integer deptSort;
@NotBlank
@ApiModelProperty(value = "部门名称") @ApiModelProperty(value = "部门名称")
private String name; private String name;
@NotNull
@ApiModelProperty(value = "是否启用") @ApiModelProperty(value = "是否启用")
private Boolean enabled; private Boolean enabled;
@ApiModelProperty(value = "上级部门") @ApiModelProperty(value = "上级部门")
@@ -18,7 +18,6 @@ package cn.odboy.system.dal.model.response;
import cn.odboy.base.KitBaseUserTimeTb; 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;
@@ -26,7 +25,6 @@ import lombok.Setter;
@Setter @Setter
public class SystemDictDetailVo extends KitBaseUserTimeTb { public class SystemDictDetailVo extends KitBaseUserTimeTb {
@NotNull(groups = Update.class)
@ApiModelProperty(value = "ID", hidden = true) @ApiModelProperty(value = "ID", hidden = true)
private Long id; private Long id;
@ApiModelProperty(hidden = true) @ApiModelProperty(hidden = true)
@@ -6,7 +6,6 @@ import io.swagger.annotations.ApiModelProperty;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Set; import java.util.Set;
import jakarta.validation.constraints.NotNull;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@@ -14,7 +13,6 @@ import lombok.Setter;
@Setter @Setter
public class SystemMenuVo extends KitBaseUserTimeTb { public class SystemMenuVo extends KitBaseUserTimeTb {
@NotNull(groups = {Update.class})
@ApiModelProperty(value = "ID", hidden = true) @ApiModelProperty(value = "ID", hidden = true)
private Long id; private Long id;
@ApiModelProperty(value = "菜单标题") @ApiModelProperty(value = "菜单标题")
@@ -2,29 +2,21 @@ package cn.odboy.system.dal.model.response;
import cn.odboy.base.KitBaseUserTimeTb; 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 KitBaseUserTimeTb { public class SystemQuartzJobVo extends KitBaseUserTimeTb {
public static final String JOB_KEY = "JOB_KEY";
@NotNull(groups = {Update.class})
private Long id; private Long id;
@ApiModelProperty(value = "定时器名称") @ApiModelProperty(value = "定时器名称")
private String jobName; private String jobName;
@NotBlank
@ApiModelProperty(value = "Bean名称") @ApiModelProperty(value = "Bean名称")
private String beanName; private String beanName;
@NotBlank
@ApiModelProperty(value = "方法名称") @ApiModelProperty(value = "方法名称")
private String methodName; private String methodName;
@ApiModelProperty(value = "参数") @ApiModelProperty(value = "参数")
private String params; private String params;
@NotBlank
@ApiModelProperty(value = "cron表达式") @ApiModelProperty(value = "cron表达式")
private String cronExpression; private String cronExpression;
@ApiModelProperty(value = "状态:暂停或启动") @ApiModelProperty(value = "状态:暂停或启动")
@@ -37,7 +29,6 @@ public class SystemQuartzJobVo extends KitBaseUserTimeTb {
private String subTask; private String subTask;
@ApiModelProperty(value = "失败后暂停") @ApiModelProperty(value = "失败后暂停")
private Boolean pauseAfterFailure; private Boolean pauseAfterFailure;
@NotBlank
@ApiModelProperty(value = "备注") @ApiModelProperty(value = "备注")
private String description; private String description;
/** /**
@@ -7,8 +7,6 @@ import cn.odboy.system.dal.dataobject.SystemUserTb;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.util.Objects; 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;
@@ -16,10 +14,8 @@ import lombok.Setter;
@Setter @Setter
public class SystemRoleVo extends KitBaseUserTimeTb { public class SystemRoleVo extends KitBaseUserTimeTb {
@NotNull(groups = {Update.class})
@ApiModelProperty(value = "ID", hidden = true) @ApiModelProperty(value = "ID", hidden = true)
private Long id; private Long id;
@NotBlank
@ApiModelProperty(value = "名称", hidden = true) @ApiModelProperty(value = "名称", hidden = true)
private String name; private String name;
@ApiModelProperty(value = "数据权限,全部 、 本级 、 自定义") @ApiModelProperty(value = "数据权限,全部 、 本级 、 自定义")
@@ -7,9 +7,6 @@ import io.swagger.annotations.ApiModelProperty;
import java.util.Date; import java.util.Date;
import java.util.Objects; 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;
@@ -17,22 +14,16 @@ import lombok.Setter;
@Setter @Setter
public class SystemUserVo extends SystemUserTb { public class SystemUserVo extends SystemUserTb {
@NotNull(groups = Update.class)
@ApiModelProperty(value = "ID", hidden = true) @ApiModelProperty(value = "ID", hidden = true)
private Long id; private Long id;
@ApiModelProperty(hidden = true) @ApiModelProperty(hidden = true)
private Long deptId; private Long deptId;
@NotBlank
@ApiModelProperty(value = "用户名称") @ApiModelProperty(value = "用户名称")
private String username; private String username;
@NotBlank
@ApiModelProperty(value = "用户昵称") @ApiModelProperty(value = "用户昵称")
private String nickName; private String nickName;
@Email
@NotBlank
@ApiModelProperty(value = "邮箱") @ApiModelProperty(value = "邮箱")
private String email; private String email;
@NotBlank
@ApiModelProperty(value = "电话号码") @ApiModelProperty(value = "电话号码")
private String phone; private String phone;
@ApiModelProperty(value = "用户性别") @ApiModelProperty(value = "用户性别")
@@ -43,7 +34,6 @@ public class SystemUserVo extends SystemUserTb {
private String avatarPath; private String avatarPath;
@ApiModelProperty(value = "密码") @ApiModelProperty(value = "密码")
private String password; private String password;
@NotNull
@ApiModelProperty(value = "是否启用") @ApiModelProperty(value = "是否启用")
private Boolean enabled; private Boolean enabled;
@ApiModelProperty(value = "是否为admin账号", hidden = true) @ApiModelProperty(value = "是否为admin账号", hidden = true)
@@ -4,8 +4,8 @@ import cn.hutool.core.util.StrUtil;
import cn.odboy.base.KitPageResult; import cn.odboy.base.KitPageResult;
import cn.odboy.framework.properties.AppProperties; import cn.odboy.framework.properties.AppProperties;
import cn.odboy.framework.redis.KitRedisHelper; import cn.odboy.framework.redis.KitRedisHelper;
import cn.odboy.system.dal.model.response.SystemUserJwtVo;
import cn.odboy.system.dal.model.export.SystemUserOnlineExportRowVo; import cn.odboy.system.dal.model.export.SystemUserOnlineExportRowVo;
import cn.odboy.system.dal.model.response.SystemUserJwtVo;
import cn.odboy.system.dal.model.response.SystemUserOnlineVo; import cn.odboy.system.dal.model.response.SystemUserOnlineVo;
import cn.odboy.system.framework.permission.core.handler.TokenProvider; import cn.odboy.system.framework.permission.core.handler.TokenProvider;
import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitBeanUtil;
@@ -21,7 +21,7 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.odboy.framework.exception.BadRequestException; 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.SystemTransferProtocolConst;
import cn.odboy.system.dal.dataobject.SystemMenuTb; import cn.odboy.system.dal.dataobject.SystemMenuTb;
import cn.odboy.system.dal.model.export.SystemMenuExportRowVo; import cn.odboy.system.dal.model.export.SystemMenuExportRowVo;
import cn.odboy.system.dal.model.response.SystemMenuMetaVo; import cn.odboy.system.dal.model.response.SystemMenuMetaVo;
@@ -81,9 +81,9 @@ public class SystemMenuService {
args.setPid(null); args.setPid(null);
} }
if (args.getIFrame()) { if (args.getIFrame()) {
if (!(args.getPath().toLowerCase().startsWith(TransferProtocolConst.PREFIX_HTTP) || if (!(args.getPath().toLowerCase().startsWith(SystemTransferProtocolConst.PREFIX_HTTP) ||
args.getPath().toLowerCase().startsWith(TransferProtocolConst.PREFIX_HTTPS))) { args.getPath().toLowerCase().startsWith(SystemTransferProtocolConst.PREFIX_HTTPS))) {
throw new BadRequestException(TransferProtocolConst.PREFIX_HTTPS_BAD_REQUEST); throw new BadRequestException(SystemTransferProtocolConst.PREFIX_HTTPS_BAD_REQUEST);
} }
} }
systemMenuMapper.insert(args); systemMenuMapper.insert(args);
@@ -105,9 +105,9 @@ public class SystemMenuService {
} }
SystemMenuTb menu = systemMenuMapper.selectById(args.getId()); SystemMenuTb menu = systemMenuMapper.selectById(args.getId());
if (args.getIFrame()) { if (args.getIFrame()) {
if (!(args.getPath().toLowerCase().startsWith(TransferProtocolConst.PREFIX_HTTP) || if (!(args.getPath().toLowerCase().startsWith(SystemTransferProtocolConst.PREFIX_HTTP) ||
args.getPath().toLowerCase().startsWith(TransferProtocolConst.PREFIX_HTTPS))) { args.getPath().toLowerCase().startsWith(SystemTransferProtocolConst.PREFIX_HTTPS))) {
throw new BadRequestException(TransferProtocolConst.PREFIX_HTTPS_BAD_REQUEST); throw new BadRequestException(SystemTransferProtocolConst.PREFIX_HTTPS_BAD_REQUEST);
} }
} }
SystemMenuTb menu1 = this.getMenuByTitle(args.getTitle()); SystemMenuTb menu1 = this.getMenuByTitle(args.getTitle());
@@ -1,23 +1,23 @@
/* /*
* Copyright 2021-2025 Odboy * Copyright 2021-2025 Odboy
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
* You may obtain a copy of the License at * You may obtain a copy of the License at
* *
* http://www.apache.org/licenses/LICENSE-2.0 * http://www.apache.org/licenses/LICENSE-2.0
* *
* Unless required by applicable law or agreed to in writing, software * Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* 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.constant; package cn.odboy.system.constant;
public interface TransferProtocolConst { public interface SystemTransferProtocolConst {
String PREFIX_HTTP = "http://"; String PREFIX_HTTP = "http://";
String PREFIX_HTTPS = "https://"; String PREFIX_HTTPS = "https://";
String PREFIX_HTTPS_BAD_REQUEST = "外链必须以http://或者https://开头"; String PREFIX_HTTPS_BAD_REQUEST = "外链必须以http://或者https://开头";
} }
@@ -16,8 +16,8 @@
package cn.odboy.system.controller; package cn.odboy.system.controller;
import cn.odboy.annotation.AnonymousPostMapping; import cn.odboy.annotation.AnonymousPostMapping;
import cn.odboy.system.dal.model.response.SystemAuthVo;
import cn.odboy.system.dal.model.request.SystemUserLoginArgs; import cn.odboy.system.dal.model.request.SystemUserLoginArgs;
import cn.odboy.system.dal.model.response.SystemAuthVo;
import cn.odboy.system.service.SystemAuthService; import cn.odboy.system.service.SystemAuthService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@@ -19,8 +19,8 @@ import cn.odboy.base.KitPageArgs;
import cn.odboy.base.KitPageResult; import cn.odboy.base.KitPageResult;
import cn.odboy.system.dal.dataobject.SystemDeptTb; import cn.odboy.system.dal.dataobject.SystemDeptTb;
import cn.odboy.system.dal.model.request.SystemCreateDeptArgs; import cn.odboy.system.dal.model.request.SystemCreateDeptArgs;
import cn.odboy.system.dal.model.response.SystemDeptVo;
import cn.odboy.system.dal.model.request.SystemQueryDeptArgs; import cn.odboy.system.dal.model.request.SystemQueryDeptArgs;
import cn.odboy.system.dal.model.response.SystemDeptVo;
import cn.odboy.system.framework.operalog.OperationLog; import cn.odboy.system.framework.operalog.OperationLog;
import cn.odboy.system.service.SystemDeptService; import cn.odboy.system.service.SystemDeptService;
import cn.odboy.util.KitPageUtil; import cn.odboy.util.KitPageUtil;
@@ -59,8 +59,7 @@ public class SystemDeptController {
@ApiOperation("查询部门") @ApiOperation("查询部门")
@PostMapping(value = "/searchDept") @PostMapping(value = "/searchDept")
@PreAuthorize("@el.check('user:list','dept:list')") @PreAuthorize("@el.check('user:list','dept:list')")
public ResponseEntity<KitPageResult<SystemDeptTb>> queryDept( public ResponseEntity<KitPageResult<SystemDeptTb>> queryDept(@Validated @RequestBody KitPageArgs<SystemQueryDeptArgs> pageArgs) throws Exception {
@Validated @RequestBody KitPageArgs<SystemQueryDeptArgs> pageArgs) throws Exception {
List<SystemDeptTb> depts = systemDeptService.queryAllDeptByArgs(pageArgs.getArgs(), true); List<SystemDeptTb> depts = systemDeptService.queryAllDeptByArgs(pageArgs.getArgs(), true);
return ResponseEntity.ok(KitPageUtil.toPage(depts)); return ResponseEntity.ok(KitPageUtil.toPage(depts));
} }
@@ -68,8 +67,7 @@ public class SystemDeptController {
@ApiOperation("查询部门:根据ID获取同级与上级数据") @ApiOperation("查询部门:根据ID获取同级与上级数据")
@PostMapping("/searchDeptTree") @PostMapping("/searchDeptTree")
@PreAuthorize("@el.check('user:list','dept:list')") @PreAuthorize("@el.check('user:list','dept:list')")
public ResponseEntity<KitPageResult<SystemDeptVo>> queryDeptSuperiorTree(@RequestBody List<Long> ids, public ResponseEntity<KitPageResult<SystemDeptVo>> queryDeptSuperiorTree(@RequestBody List<Long> ids, @RequestParam(defaultValue = "false") Boolean exclude) {
@RequestParam(defaultValue = "false") Boolean exclude) {
return ResponseEntity.ok(systemDeptService.searchDeptTree(ids, exclude)); return ResponseEntity.ok(systemDeptService.searchDeptTree(ids, exclude));
} }
@@ -25,7 +25,6 @@ import cn.odboy.system.service.SystemDictService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import java.io.IOException;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@@ -51,7 +50,7 @@ public class SystemDictController {
@ApiOperation("导出字典数据") @ApiOperation("导出字典数据")
@GetMapping(value = "/download") @GetMapping(value = "/download")
@PreAuthorize("@el.check('dict:list')") @PreAuthorize("@el.check('dict:list')")
public void exportDict(HttpServletResponse response, SystemQueryDictArgs args) throws IOException { public void exportDict(HttpServletResponse response, SystemQueryDictArgs args) {
systemDictService.exportDictXlsx(response, args); systemDictService.exportDictXlsx(response, args);
} }
@@ -66,8 +65,7 @@ public class SystemDictController {
@ApiOperation("分页查询字典") @ApiOperation("分页查询字典")
@PostMapping(value = "/searchDict") @PostMapping(value = "/searchDict")
@PreAuthorize("@el.check('dict:list')") @PreAuthorize("@el.check('dict:list')")
public ResponseEntity<KitPageResult<SystemDictTb>> queryDictByArgs( public ResponseEntity<KitPageResult<SystemDictTb>> queryDictByArgs(@Validated @RequestBody KitPageArgs<SystemQueryDictArgs> pageArgs) {
@Validated @RequestBody KitPageArgs<SystemQueryDictArgs> pageArgs) {
Page<SystemDictTb> page = new Page<>(pageArgs.getPage(), pageArgs.getSize()); Page<SystemDictTb> page = new Page<>(pageArgs.getPage(), pageArgs.getSize());
return ResponseEntity.ok(systemDictService.searchDict(pageArgs.getArgs(), page)); return ResponseEntity.ok(systemDictService.searchDict(pageArgs.getArgs(), page));
} }
@@ -19,8 +19,8 @@ import cn.odboy.base.KitPageArgs;
import cn.odboy.base.KitPageResult; import cn.odboy.base.KitPageResult;
import cn.odboy.system.dal.dataobject.SystemDictDetailTb; import cn.odboy.system.dal.dataobject.SystemDictDetailTb;
import cn.odboy.system.dal.model.request.SystemCreateDictDetailArgs; import cn.odboy.system.dal.model.request.SystemCreateDictDetailArgs;
import cn.odboy.system.dal.model.response.SystemDictDetailVo;
import cn.odboy.system.dal.model.request.SystemQueryDictDetailArgs; import cn.odboy.system.dal.model.request.SystemQueryDictDetailArgs;
import cn.odboy.system.dal.model.response.SystemDictDetailVo;
import cn.odboy.system.framework.operalog.OperationLog; import cn.odboy.system.framework.operalog.OperationLog;
import cn.odboy.system.service.SystemDictDetailService; import cn.odboy.system.service.SystemDictDetailService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -49,8 +49,7 @@ public class SystemDictDetailController {
@ApiOperation("查询字典详情") @ApiOperation("查询字典详情")
@PostMapping(value = "/searchDictDetail") @PostMapping(value = "/searchDictDetail")
public ResponseEntity<KitPageResult<SystemDictDetailVo>> queryDictDetailByArgs( public ResponseEntity<KitPageResult<SystemDictDetailVo>> queryDictDetailByArgs(@Validated @RequestBody KitPageArgs<SystemQueryDictDetailArgs> pageArgs) {
@Validated @RequestBody KitPageArgs<SystemQueryDictDetailArgs> pageArgs) {
Page<SystemDictDetailTb> page = new Page<>(pageArgs.getPage(), pageArgs.getSize()); Page<SystemDictDetailTb> page = new Page<>(pageArgs.getPage(), pageArgs.getSize());
return ResponseEntity.ok(systemDictDetailService.searchDictDetail(pageArgs.getArgs(), page)); return ResponseEntity.ok(systemDictDetailService.searchDictDetail(pageArgs.getArgs(), page));
} }
@@ -75,8 +74,7 @@ public class SystemDictDetailController {
@ApiOperation("修改字典详情") @ApiOperation("修改字典详情")
@PostMapping(value = "/updateDictDetailById") @PostMapping(value = "/updateDictDetailById")
@PreAuthorize("@el.check('dict:edit')") @PreAuthorize("@el.check('dict:edit')")
public ResponseEntity<Void> updateDictDetailById( public ResponseEntity<Void> updateDictDetailById(@Validated(SystemDictDetailTb.Update.class) @RequestBody SystemDictDetailTb args) {
@Validated(SystemDictDetailTb.Update.class) @RequestBody SystemDictDetailTb args) {
systemDictDetailService.updateDictDetailById(args); systemDictDetailService.updateDictDetailById(args);
return ResponseEntity.ok(null); return ResponseEntity.ok(null);
} }
@@ -49,8 +49,7 @@ public class SystemEmailController {
@OperationLog @OperationLog
@ApiOperation("修改邮箱配置") @ApiOperation("修改邮箱配置")
@PostMapping(value = "/updateEmailConfigById") @PostMapping(value = "/updateEmailConfigById")
public ResponseEntity<Void> updateEmailConfigById(@Validated @RequestBody SystemEmailConfigTb emailConfig) public ResponseEntity<Void> updateEmailConfigById(@Validated @RequestBody SystemEmailConfigTb emailConfig) throws Exception {
throws Exception {
systemEmailService.updateEmailConfigById(emailConfig); systemEmailService.updateEmailConfigById(emailConfig);
return ResponseEntity.ok(null); return ResponseEntity.ok(null);
} }
@@ -25,7 +25,6 @@ import cn.odboy.system.service.SystemJobService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import java.io.IOException;
import java.util.Set; import java.util.Set;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -50,15 +49,14 @@ public class SystemJobController {
@ApiOperation("导出岗位数据") @ApiOperation("导出岗位数据")
@GetMapping(value = "/download") @GetMapping(value = "/download")
@PreAuthorize("@el.check('job:list')") @PreAuthorize("@el.check('job:list')")
public void exportJob(HttpServletResponse response, SystemQueryJobArgs args) throws IOException { public void exportJob(HttpServletResponse response, SystemQueryJobArgs args) {
systemJobService.exportJobXlsx(response, args); systemJobService.exportJobXlsx(response, args);
} }
@ApiOperation("分页查询岗位") @ApiOperation("分页查询岗位")
@PostMapping(value = "/searchJob") @PostMapping(value = "/searchJob")
@PreAuthorize("@el.check('job:list','user:list')") @PreAuthorize("@el.check('job:list','user:list')")
public ResponseEntity<KitPageResult<SystemJobTb>> queryJobByArgs( public ResponseEntity<KitPageResult<SystemJobTb>> queryJobByArgs(@Validated @RequestBody KitPageArgs<SystemQueryJobArgs> pageArgs) {
@Validated @RequestBody KitPageArgs<SystemQueryJobArgs> pageArgs) {
Page<SystemJobTb> page = new Page<>(pageArgs.getPage(), pageArgs.getSize()); Page<SystemJobTb> page = new Page<>(pageArgs.getPage(), pageArgs.getSize());
return ResponseEntity.ok(systemJobService.searchJobByArgs(pageArgs.getArgs(), page)); return ResponseEntity.ok(systemJobService.searchJobByArgs(pageArgs.getArgs(), page));
} }
@@ -24,7 +24,6 @@ import cn.odboy.system.service.SystemLocalStorageService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
@@ -49,8 +48,7 @@ public class SystemLocalStorageController {
@ApiOperation("查询文件") @ApiOperation("查询文件")
@PostMapping(value = "/searchLocalStorage") @PostMapping(value = "/searchLocalStorage")
@PreAuthorize("@el.check('storage:list')") @PreAuthorize("@el.check('storage:list')")
public ResponseEntity<KitPageResult<SystemLocalStorageTb>> queryLocalStorage( public ResponseEntity<KitPageResult<SystemLocalStorageTb>> queryLocalStorage(@Validated @RequestBody KitPageArgs<SystemQueryStorageArgs> pageArgs) {
@Validated @RequestBody KitPageArgs<SystemQueryStorageArgs> pageArgs) {
Page<SystemLocalStorageTb> page = new Page<>(pageArgs.getPage(), pageArgs.getSize()); Page<SystemLocalStorageTb> page = new Page<>(pageArgs.getPage(), pageArgs.getSize());
return ResponseEntity.ok(localStorageService.searchLocalStorage(pageArgs.getArgs(), page)); return ResponseEntity.ok(localStorageService.searchLocalStorage(pageArgs.getArgs(), page));
} }
@@ -59,7 +57,7 @@ public class SystemLocalStorageController {
@ApiOperation("导出本地存储记录数据") @ApiOperation("导出本地存储记录数据")
@GetMapping(value = "/download") @GetMapping(value = "/download")
@PreAuthorize("@el.check('storage:list')") @PreAuthorize("@el.check('storage:list')")
public void exportFile(HttpServletResponse response, SystemQueryStorageArgs args) throws IOException { public void exportFile(HttpServletResponse response, SystemQueryStorageArgs args) {
localStorageService.exportLocalStorageXlsx(response, args); localStorageService.exportLocalStorageXlsx(response, args);
} }
@@ -19,9 +19,9 @@ import cn.odboy.base.KitPageArgs;
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.SystemMenuTb;
import cn.odboy.system.dal.model.request.SystemQueryMenuArgs;
import cn.odboy.system.dal.model.response.SystemMenuRouterVo; import cn.odboy.system.dal.model.response.SystemMenuRouterVo;
import cn.odboy.system.dal.model.response.SystemMenuVo; import cn.odboy.system.dal.model.response.SystemMenuVo;
import cn.odboy.system.dal.model.request.SystemQueryMenuArgs;
import cn.odboy.system.framework.operalog.OperationLog; import cn.odboy.system.framework.operalog.OperationLog;
import cn.odboy.system.service.SystemMenuService; import cn.odboy.system.service.SystemMenuService;
import cn.odboy.util.KitPageUtil; import cn.odboy.util.KitPageUtil;
@@ -48,8 +48,7 @@ public class SystemOnlineController {
@ApiOperation("查询在线用户") @ApiOperation("查询在线用户")
@PostMapping(value = "/searchOnlineUser") @PostMapping(value = "/searchOnlineUser")
@PreAuthorize("@el.check()") @PreAuthorize("@el.check()")
public ResponseEntity<KitPageResult<SystemUserOnlineVo>> queryOnlineUser( public ResponseEntity<KitPageResult<SystemUserOnlineVo>> queryOnlineUser(@Validated @RequestBody KitPageArgs<SystemUserOnlineVo> pageArgs) {
@Validated @RequestBody KitPageArgs<SystemUserOnlineVo> pageArgs) {
IPage<SystemUserOnlineVo> page = new Page<>(pageArgs.getPage(), pageArgs.getSize()); IPage<SystemUserOnlineVo> page = new Page<>(pageArgs.getPage(), pageArgs.getSize());
return ResponseEntity.ok(systemUserOnlineInfoDAO.searchOnlineUser(pageArgs.getArgs(), page)); return ResponseEntity.ok(systemUserOnlineInfoDAO.searchOnlineUser(pageArgs.getArgs(), page));
} }
@@ -18,14 +18,13 @@ package cn.odboy.system.controller;
import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageArgs;
import cn.odboy.base.KitPageResult; import cn.odboy.base.KitPageResult;
import cn.odboy.system.dal.dataobject.SystemOssStorageTb; import cn.odboy.system.dal.dataobject.SystemOssStorageTb;
import cn.odboy.system.dal.model.response.SystemOssStorageVo;
import cn.odboy.system.dal.model.request.SystemQueryStorageArgs; import cn.odboy.system.dal.model.request.SystemQueryStorageArgs;
import cn.odboy.system.dal.model.response.SystemOssStorageVo;
import cn.odboy.system.framework.operalog.OperationLog; import cn.odboy.system.framework.operalog.OperationLog;
import cn.odboy.system.service.SystemOssStorageService; import cn.odboy.system.service.SystemOssStorageService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -52,8 +51,7 @@ public class SystemOssStorageController {
@ApiOperation("查询文件") @ApiOperation("查询文件")
@PostMapping(value = "/searchOssStorage") @PostMapping(value = "/searchOssStorage")
@PreAuthorize("@el.check('storage:list')") @PreAuthorize("@el.check('storage:list')")
public ResponseEntity<KitPageResult<SystemOssStorageVo>> queryOssStorage( public ResponseEntity<KitPageResult<SystemOssStorageVo>> queryOssStorage(@Validated @RequestBody KitPageArgs<SystemQueryStorageArgs> pageArgs) {
@Validated @RequestBody KitPageArgs<SystemQueryStorageArgs> pageArgs) {
Page<SystemOssStorageTb> page = new Page<>(pageArgs.getPage(), pageArgs.getSize()); Page<SystemOssStorageTb> page = new Page<>(pageArgs.getPage(), pageArgs.getSize());
return ResponseEntity.ok(systemOssStorageService.searchOssStorage(pageArgs.getArgs(), page)); return ResponseEntity.ok(systemOssStorageService.searchOssStorage(pageArgs.getArgs(), page));
} }
@@ -62,7 +60,7 @@ public class SystemOssStorageController {
@ApiOperation("导出OSS存储记录数据") @ApiOperation("导出OSS存储记录数据")
@GetMapping(value = "/download") @GetMapping(value = "/download")
@PreAuthorize("@el.check('storage:list')") @PreAuthorize("@el.check('storage:list')")
public void exportFile(HttpServletResponse response, SystemQueryStorageArgs args) throws IOException { public void exportFile(HttpServletResponse response, SystemQueryStorageArgs args) {
systemOssStorageService.exportOssStorageXlsx(response, args); systemOssStorageService.exportOssStorageXlsx(response, args);
} }
@@ -19,9 +19,9 @@ 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.response.SystemQuartzJobVo;
import cn.odboy.system.dal.model.request.SystemQueryQuartzJobArgs; import cn.odboy.system.dal.model.request.SystemQueryQuartzJobArgs;
import cn.odboy.system.dal.model.request.SystemUpdateQuartzJobArgs; import cn.odboy.system.dal.model.request.SystemUpdateQuartzJobArgs;
import cn.odboy.system.dal.model.response.SystemQuartzJobVo;
import cn.odboy.system.framework.operalog.OperationLog; import cn.odboy.system.framework.operalog.OperationLog;
import cn.odboy.system.service.SystemQuartzJobService; import cn.odboy.system.service.SystemQuartzJobService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -53,8 +53,7 @@ public class SystemQuartzJobController {
@ApiOperation("查询定时任务") @ApiOperation("查询定时任务")
@PostMapping(value = "/searchQuartzJob") @PostMapping(value = "/searchQuartzJob")
@PreAuthorize("@el.check('quartzJob:list')") @PreAuthorize("@el.check('quartzJob:list')")
public ResponseEntity<KitPageResult<SystemQuartzJobTb>> queryQuartzJobByCrud( public ResponseEntity<KitPageResult<SystemQuartzJobTb>> queryQuartzJobByCrud(@Validated @RequestBody KitPageArgs<SystemQueryQuartzJobArgs> pageArgs) {
@Validated @RequestBody KitPageArgs<SystemQueryQuartzJobArgs> pageArgs) {
Page<SystemQuartzJobTb> page = new Page<>(pageArgs.getPage(), pageArgs.getSize()); Page<SystemQuartzJobTb> page = new Page<>(pageArgs.getPage(), pageArgs.getSize());
return ResponseEntity.ok(systemQuartzJobService.searchQuartzJobByArgs(pageArgs.getArgs(), page)); return ResponseEntity.ok(systemQuartzJobService.searchQuartzJobByArgs(pageArgs.getArgs(), page));
} }
@@ -27,7 +27,6 @@ import cn.odboy.system.service.SystemRoleService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import java.io.IOException;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@@ -59,7 +58,7 @@ public class SystemRoleController {
@ApiOperation("导出角色数据") @ApiOperation("导出角色数据")
@GetMapping(value = "/download") @GetMapping(value = "/download")
@PreAuthorize("@el.check('role:list')") @PreAuthorize("@el.check('role:list')")
public void exportRole(HttpServletResponse response, SystemQueryRoleArgs args) throws IOException { public void exportRole(HttpServletResponse response, SystemQueryRoleArgs args) {
systemRoleService.exportRoleXlsx(response, args); systemRoleService.exportRoleXlsx(response, args);
} }
@@ -6,8 +6,6 @@ import io.swagger.annotations.ApiModelProperty;
import java.util.List; import java.util.List;
import java.util.Objects; 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;
@@ -15,15 +13,12 @@ import lombok.Setter;
@Setter @Setter
public class SystemDeptVo extends KitBaseUserTimeTb { public class SystemDeptVo extends KitBaseUserTimeTb {
@NotNull(groups = Update.class)
@ApiModelProperty(value = "ID", hidden = true) @ApiModelProperty(value = "ID", hidden = true)
private Long id; private Long id;
@ApiModelProperty(value = "排序") @ApiModelProperty(value = "排序")
private Integer deptSort; private Integer deptSort;
@NotBlank
@ApiModelProperty(value = "部门名称") @ApiModelProperty(value = "部门名称")
private String name; private String name;
@NotNull
@ApiModelProperty(value = "是否启用") @ApiModelProperty(value = "是否启用")
private Boolean enabled; private Boolean enabled;
@ApiModelProperty(value = "上级部门") @ApiModelProperty(value = "上级部门")
@@ -18,7 +18,6 @@ package cn.odboy.system.dal.model.response;
import cn.odboy.base.KitBaseUserTimeTb; 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;
@@ -26,7 +25,6 @@ import lombok.Setter;
@Setter @Setter
public class SystemDictDetailVo extends KitBaseUserTimeTb { public class SystemDictDetailVo extends KitBaseUserTimeTb {
@NotNull(groups = Update.class)
@ApiModelProperty(value = "ID", hidden = true) @ApiModelProperty(value = "ID", hidden = true)
private Long id; private Long id;
@ApiModelProperty(hidden = true) @ApiModelProperty(hidden = true)
@@ -6,7 +6,6 @@ import io.swagger.annotations.ApiModelProperty;
import java.util.List; import java.util.List;
import java.util.Objects; 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;
@@ -14,7 +13,6 @@ import lombok.Setter;
@Setter @Setter
public class SystemMenuVo extends KitBaseUserTimeTb { public class SystemMenuVo extends KitBaseUserTimeTb {
@NotNull(groups = {Update.class})
@ApiModelProperty(value = "ID", hidden = true) @ApiModelProperty(value = "ID", hidden = true)
private Long id; private Long id;
@ApiModelProperty(value = "菜单标题") @ApiModelProperty(value = "菜单标题")
@@ -2,29 +2,21 @@ package cn.odboy.system.dal.model.response;
import cn.odboy.base.KitBaseUserTimeTb; 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 KitBaseUserTimeTb { public class SystemQuartzJobVo extends KitBaseUserTimeTb {
public static final String JOB_KEY = "JOB_KEY";
@NotNull(groups = {Update.class})
private Long id; private Long id;
@ApiModelProperty(value = "定时器名称") @ApiModelProperty(value = "定时器名称")
private String jobName; private String jobName;
@NotBlank
@ApiModelProperty(value = "Bean名称") @ApiModelProperty(value = "Bean名称")
private String beanName; private String beanName;
@NotBlank
@ApiModelProperty(value = "方法名称") @ApiModelProperty(value = "方法名称")
private String methodName; private String methodName;
@ApiModelProperty(value = "参数") @ApiModelProperty(value = "参数")
private String params; private String params;
@NotBlank
@ApiModelProperty(value = "cron表达式") @ApiModelProperty(value = "cron表达式")
private String cronExpression; private String cronExpression;
@ApiModelProperty(value = "状态:暂停或启动") @ApiModelProperty(value = "状态:暂停或启动")
@@ -37,7 +29,6 @@ public class SystemQuartzJobVo extends KitBaseUserTimeTb {
private String subTask; private String subTask;
@ApiModelProperty(value = "失败后暂停") @ApiModelProperty(value = "失败后暂停")
private Boolean pauseAfterFailure; private Boolean pauseAfterFailure;
@NotBlank
@ApiModelProperty(value = "备注") @ApiModelProperty(value = "备注")
private String description; private String description;
/** /**
@@ -7,8 +7,6 @@ import cn.odboy.system.dal.dataobject.SystemUserTb;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.util.Objects; 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;
@@ -16,10 +14,8 @@ import lombok.Setter;
@Setter @Setter
public class SystemRoleVo extends KitBaseUserTimeTb { public class SystemRoleVo extends KitBaseUserTimeTb {
@NotNull(groups = {Update.class})
@ApiModelProperty(value = "ID", hidden = true) @ApiModelProperty(value = "ID", hidden = true)
private Long id; private Long id;
@NotBlank
@ApiModelProperty(value = "名称", hidden = true) @ApiModelProperty(value = "名称", hidden = true)
private String name; private String name;
@ApiModelProperty(value = "数据权限,全部 、 本级 、 自定义") @ApiModelProperty(value = "数据权限,全部 、 本级 、 自定义")
@@ -7,9 +7,6 @@ import io.swagger.annotations.ApiModelProperty;
import java.util.Date; import java.util.Date;
import java.util.Objects; 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;
@@ -17,22 +14,16 @@ import lombok.Setter;
@Setter @Setter
public class SystemUserVo extends SystemUserTb { public class SystemUserVo extends SystemUserTb {
@NotNull(groups = Update.class)
@ApiModelProperty(value = "ID", hidden = true) @ApiModelProperty(value = "ID", hidden = true)
private Long id; private Long id;
@ApiModelProperty(hidden = true) @ApiModelProperty(hidden = true)
private Long deptId; private Long deptId;
@NotBlank
@ApiModelProperty(value = "用户名称") @ApiModelProperty(value = "用户名称")
private String username; private String username;
@NotBlank
@ApiModelProperty(value = "用户昵称") @ApiModelProperty(value = "用户昵称")
private String nickName; private String nickName;
@Email
@NotBlank
@ApiModelProperty(value = "邮箱") @ApiModelProperty(value = "邮箱")
private String email; private String email;
@NotBlank
@ApiModelProperty(value = "电话号码") @ApiModelProperty(value = "电话号码")
private String phone; private String phone;
@ApiModelProperty(value = "用户性别") @ApiModelProperty(value = "用户性别")
@@ -43,7 +34,6 @@ public class SystemUserVo extends SystemUserTb {
private String avatarPath; private String avatarPath;
@ApiModelProperty(value = "密码") @ApiModelProperty(value = "密码")
private String password; private String password;
@NotNull
@ApiModelProperty(value = "是否启用") @ApiModelProperty(value = "是否启用")
private Boolean enabled; private Boolean enabled;
@ApiModelProperty(value = "是否为admin账号", hidden = true) @ApiModelProperty(value = "是否为admin账号", hidden = true)
@@ -21,7 +21,7 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.odboy.framework.exception.BadRequestException; 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.SystemTransferProtocolConst;
import cn.odboy.system.dal.dataobject.SystemMenuTb; import cn.odboy.system.dal.dataobject.SystemMenuTb;
import cn.odboy.system.dal.model.export.SystemMenuExportRowVo; import cn.odboy.system.dal.model.export.SystemMenuExportRowVo;
import cn.odboy.system.dal.model.response.SystemMenuMetaVo; import cn.odboy.system.dal.model.response.SystemMenuMetaVo;
@@ -81,9 +81,9 @@ public class SystemMenuService {
args.setPid(null); args.setPid(null);
} }
if (args.getIFrame()) { if (args.getIFrame()) {
if (!(args.getPath().toLowerCase().startsWith(TransferProtocolConst.PREFIX_HTTP) || if (!(args.getPath().toLowerCase().startsWith(SystemTransferProtocolConst.PREFIX_HTTP) ||
args.getPath().toLowerCase().startsWith(TransferProtocolConst.PREFIX_HTTPS))) { args.getPath().toLowerCase().startsWith(SystemTransferProtocolConst.PREFIX_HTTPS))) {
throw new BadRequestException(TransferProtocolConst.PREFIX_HTTPS_BAD_REQUEST); throw new BadRequestException(SystemTransferProtocolConst.PREFIX_HTTPS_BAD_REQUEST);
} }
} }
systemMenuMapper.insert(args); systemMenuMapper.insert(args);
@@ -105,9 +105,9 @@ public class SystemMenuService {
} }
SystemMenuTb menu = systemMenuMapper.selectById(args.getId()); SystemMenuTb menu = systemMenuMapper.selectById(args.getId());
if (args.getIFrame()) { if (args.getIFrame()) {
if (!(args.getPath().toLowerCase().startsWith(TransferProtocolConst.PREFIX_HTTP) || if (!(args.getPath().toLowerCase().startsWith(SystemTransferProtocolConst.PREFIX_HTTP) ||
args.getPath().toLowerCase().startsWith(TransferProtocolConst.PREFIX_HTTPS))) { args.getPath().toLowerCase().startsWith(SystemTransferProtocolConst.PREFIX_HTTPS))) {
throw new BadRequestException(TransferProtocolConst.PREFIX_HTTPS_BAD_REQUEST); throw new BadRequestException(SystemTransferProtocolConst.PREFIX_HTTPS_BAD_REQUEST);
} }
} }
SystemMenuTb menu1 = this.getMenuByTitle(args.getTitle()); SystemMenuTb menu1 = this.getMenuByTitle(args.getTitle());