refactor: 解决springboot3版本功能异常问题

This commit is contained in:
2025-12-26 14:43:40 +08:00
parent 69800ef5c7
commit 137a35ee28
104 changed files with 4670 additions and 4160 deletions
@@ -13,7 +13,6 @@
* 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.controller; package cn.odboy.system.controller;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
@@ -35,8 +34,8 @@ import cn.odboy.system.framework.permission.core.handler.TokenProvider;
import cn.odboy.system.framework.permission.core.handler.UserDetailsHandler; import cn.odboy.system.framework.permission.core.handler.UserDetailsHandler;
import cn.odboy.util.KitRsaEncryptUtil; import cn.odboy.util.KitRsaEncryptUtil;
import com.wf.captcha.base.Captcha; import com.wf.captcha.base.Captcha;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.annotations.Api;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.annotations.ApiOperation;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@@ -60,16 +59,23 @@ import org.springframework.web.bind.annotation.RestController;
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping("/auth") @RequestMapping("/auth")
@Tag(name = "系统:系统授权接口") @Api(tags = "系统:系统授权接口")
public class SystemAuthController { public class SystemAuthController {
@Autowired private KitRedisHelper redisHelper;
@Autowired private SystemUserOnlineInfoDAO systemUserOnlineInfoDAO;
@Autowired private TokenProvider tokenProvider;
@Autowired private AppProperties properties;
@Autowired private PasswordEncoder passwordEncoder;
@Autowired private UserDetailsHandler userDetailsService;
@Operation(summary = "登录授权") @Autowired
private KitRedisHelper redisHelper;
@Autowired
private SystemUserOnlineInfoDAO systemUserOnlineInfoDAO;
@Autowired
private TokenProvider tokenProvider;
@Autowired
private AppProperties properties;
@Autowired
private PasswordEncoder passwordEncoder;
@Autowired
private UserDetailsHandler userDetailsService;
@ApiOperation("登录授权")
@AnonymousPostMapping(value = "/login") @AnonymousPostMapping(value = "/login")
public ResponseEntity<Map<String, Object>> login(@Validated @RequestBody SystemUserLoginArgs loginRequest, public ResponseEntity<Map<String, Object>> login(@Validated @RequestBody SystemUserLoginArgs loginRequest,
HttpServletRequest request) throws Exception { HttpServletRequest request) throws Exception {
@@ -112,15 +118,15 @@ public class SystemAuthController {
return ResponseEntity.ok(authInfo); return ResponseEntity.ok(authInfo);
} }
@Operation(summary = "获取用户信息") @ApiOperation("获取用户信息")
@PostMapping(value = "/info") @PostMapping(value = "/info")
public ResponseEntity<SystemUserInfoVo> getUserInfo() { public ResponseEntity<SystemUserInfoVo> getUserInfo() {
SystemUserJwtVo jwtUser = (SystemUserJwtVo)KitSecurityHelper.getCurrentUser(); SystemUserJwtVo jwtUser = (SystemUserJwtVo) KitSecurityHelper.getCurrentUser();
SystemUserInfoVo userInfoVo = BeanUtil.copyProperties(jwtUser, SystemUserInfoVo.class); SystemUserInfoVo userInfoVo = BeanUtil.copyProperties(jwtUser, SystemUserInfoVo.class);
return ResponseEntity.ok(userInfoVo); return ResponseEntity.ok(userInfoVo);
} }
@Operation(summary = "获取验证码") @ApiOperation("获取验证码")
@AnonymousPostMapping(value = "/captcha/getImage") @AnonymousPostMapping(value = "/captcha/getImage")
public ResponseEntity<Map<String, Object>> getCode() { public ResponseEntity<Map<String, Object>> getCode() {
// 获取运算的结果 // 获取运算的结果
@@ -136,14 +142,14 @@ public class SystemAuthController {
redisHelper.set(uuid, captchaValue, properties.getLogin().getCaptchaSetting().getExpiration(), redisHelper.set(uuid, captchaValue, properties.getLogin().getCaptchaSetting().getExpiration(),
TimeUnit.MINUTES); TimeUnit.MINUTES);
// 验证码信息 // 验证码信息
Map<String, Object> imgResult = new HashMap<>(2) {{ Map<String, Object> imgResult = new HashMap<String, Object>(2) {{
put("img", captcha.toBase64()); put("img", captcha.toBase64());
put("uuid", uuid); put("uuid", uuid);
}}; }};
return ResponseEntity.ok(imgResult); return ResponseEntity.ok(imgResult);
} }
@Operation(summary = "退出登录") @ApiOperation("退出登录")
@AnonymousPostMapping(value = "/logout") @AnonymousPostMapping(value = "/logout")
public ResponseEntity<Void> logout(HttpServletRequest request) { public ResponseEntity<Void> logout(HttpServletRequest request) {
String token = tokenProvider.getToken(request); String token = tokenProvider.getToken(request);
@@ -13,15 +13,14 @@
* 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.controller; package cn.odboy.system.controller;
import cn.odboy.framework.exception.BadRequestException; import cn.odboy.framework.exception.BadRequestException;
import cn.odboy.system.constant.SystemCaptchaBizEnum; import cn.odboy.system.constant.SystemCaptchaBizEnum;
import cn.odboy.system.dal.model.SystemCheckEmailCaptchaArgs; import cn.odboy.system.dal.model.SystemCheckEmailCaptchaArgs;
import cn.odboy.system.service.SystemEmailService; import cn.odboy.system.service.SystemEmailService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.annotations.Api;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@@ -33,25 +32,27 @@ import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@RequestMapping("/api/captcha") @RequestMapping("/api/captcha")
@Tag(name = "系统:验证码管理") @Api(tags = "系统:验证码管理")
public class SystemCaptchaController { public class SystemCaptchaController {
@Autowired private SystemEmailService systemEmailService;
@Operation(summary = "重置邮箱, 发送验证码") @Autowired
private SystemEmailService systemEmailService;
@ApiOperation("重置邮箱, 发送验证码")
@PostMapping(value = "/sendResetEmailCaptcha") @PostMapping(value = "/sendResetEmailCaptcha")
public ResponseEntity<Void> sendResetEmailCaptcha(@RequestParam String email) { public ResponseEntity<Void> sendResetEmailCaptcha(@RequestParam String email) {
systemEmailService.sendCaptcha(SystemCaptchaBizEnum.EMAIL_RESET_EMAIL_CODE, email); systemEmailService.sendCaptcha(SystemCaptchaBizEnum.EMAIL_RESET_EMAIL_CODE, email);
return ResponseEntity.ok(null); return ResponseEntity.ok(null);
} }
@Operation(summary = "重置密码,发送验证码") @ApiOperation("重置密码,发送验证码")
@PostMapping(value = "/sendResetPasswordCaptcha") @PostMapping(value = "/sendResetPasswordCaptcha")
public ResponseEntity<Void> sendResetPasswordCaptcha(@RequestParam String email) { public ResponseEntity<Void> sendResetPasswordCaptcha(@RequestParam String email) {
systemEmailService.sendCaptcha(SystemCaptchaBizEnum.EMAIL_RESET_PWD_CODE, email); systemEmailService.sendCaptcha(SystemCaptchaBizEnum.EMAIL_RESET_PWD_CODE, email);
return ResponseEntity.ok(null); return ResponseEntity.ok(null);
} }
@Operation(summary = "验证码验证") @ApiOperation("验证码验证")
@PostMapping(value = "/checkEmailCaptcha") @PostMapping(value = "/checkEmailCaptcha")
public ResponseEntity<Void> checkEmailCaptcha(@Validated @RequestBody SystemCheckEmailCaptchaArgs args) { public ResponseEntity<Void> checkEmailCaptcha(@Validated @RequestBody SystemCheckEmailCaptchaArgs args) {
SystemCaptchaBizEnum biEnum = SystemCaptchaBizEnum.getByBizCode(args.getBizCode()); SystemCaptchaBizEnum biEnum = SystemCaptchaBizEnum.getByBizCode(args.getBizCode());
@@ -13,12 +13,11 @@
* 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.controller; package cn.odboy.system.controller;
import cn.odboy.system.service.SystemDeptService; import cn.odboy.system.service.SystemDeptService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.annotations.Api;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
@@ -27,19 +26,21 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@Tag(name = "系统:组件数据源") @Api(tags = "系统:组件数据源")
@RequestMapping("/api/component") @RequestMapping("/api/component")
public class SystemComponentController { public class SystemComponentController {
@Autowired private SystemDeptService systemDeptService;
@Operation(summary = "查询部门下拉选择数据源") @Autowired
private SystemDeptService systemDeptService;
@ApiOperation("查询部门下拉选择数据源")
@PostMapping(value = "/queryDeptSelectDataSource") @PostMapping(value = "/queryDeptSelectDataSource")
@PreAuthorize("@el.check()") @PreAuthorize("@el.check()")
public ResponseEntity<?> queryDeptSelectDataSource() { public ResponseEntity<?> queryDeptSelectDataSource() {
return ResponseEntity.ok(systemDeptService.queryDeptSelectDataSource()); return ResponseEntity.ok(systemDeptService.queryDeptSelectDataSource());
} }
@Operation(summary = "查询部门下拉选择Pro数据源") @ApiOperation("查询部门下拉选择Pro数据源")
@PostMapping(value = "/queryDeptSelectProDataSource") @PostMapping(value = "/queryDeptSelectProDataSource")
@PreAuthorize("@el.check()") @PreAuthorize("@el.check()")
public ResponseEntity<?> queryDeptSelectProDataSource() { public ResponseEntity<?> queryDeptSelectProDataSource() {
@@ -13,7 +13,6 @@
* 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.controller; package cn.odboy.system.controller;
import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageArgs;
@@ -23,13 +22,14 @@ import cn.odboy.system.dal.model.SystemCreateDeptArgs;
import cn.odboy.system.dal.model.SystemQueryDeptArgs; import cn.odboy.system.dal.model.SystemQueryDeptArgs;
import cn.odboy.system.service.SystemDeptService; import cn.odboy.system.service.SystemDeptService;
import cn.odboy.util.KitPageUtil; import cn.odboy.util.KitPageUtil;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.annotations.Api;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.annotations.ApiOperation;
import jakarta.servlet.http.HttpServletResponse;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.LinkedHashSet; import java.util.LinkedHashSet;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors;
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;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
@@ -42,19 +42,21 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@Tag(name = "系统:部门管理") @Api(tags = "系统:部门管理")
@RequestMapping("/api/dept") @RequestMapping("/api/dept")
public class SystemDeptController { public class SystemDeptController {
@Autowired private SystemDeptService systemDeptService;
@Operation(summary = "导出部门数据") @Autowired
private SystemDeptService systemDeptService;
@ApiOperation("导出部门数据")
@GetMapping(value = "/download") @GetMapping(value = "/download")
@PreAuthorize("@el.check('dept:list')") @PreAuthorize("@el.check('dept:list')")
public void exportDept(HttpServletResponse response, SystemQueryDeptArgs criteria) throws Exception { public void exportDept(HttpServletResponse response, SystemQueryDeptArgs criteria) throws Exception {
systemDeptService.exportDeptExcel(systemDeptService.queryAllDept(criteria, false), response); systemDeptService.exportDeptExcel(systemDeptService.queryAllDept(criteria, false), response);
} }
@Operation(summary = "查询部门") @ApiOperation("查询部门")
@PostMapping @PostMapping
@PreAuthorize("@el.check('user:list','dept:list')") @PreAuthorize("@el.check('user:list','dept:list')")
public ResponseEntity<KitPageResult<SystemDeptTb>> queryDept( public ResponseEntity<KitPageResult<SystemDeptTb>> queryDept(
@@ -64,7 +66,7 @@ public class SystemDeptController {
return ResponseEntity.ok(KitPageUtil.toPage(depts)); return ResponseEntity.ok(KitPageUtil.toPage(depts));
} }
@Operation(summary = "查询部门:根据ID获取同级与上级数据") @ApiOperation("查询部门:根据ID获取同级与上级数据")
@PostMapping("/queryDeptSuperiorTree") @PostMapping("/queryDeptSuperiorTree")
@PreAuthorize("@el.check('user:list','dept:list')") @PreAuthorize("@el.check('user:list','dept:list')")
public ResponseEntity<KitPageResult<SystemDeptTb>> queryDeptSuperiorTree(@RequestBody List<Long> ids, public ResponseEntity<KitPageResult<SystemDeptTb>> queryDeptSuperiorTree(@RequestBody List<Long> ids,
@@ -82,14 +84,14 @@ public class SystemDeptController {
} }
} }
// 编辑部门时不显示自己以及自己下级的数据, 避免出现PID数据环形问题 // 编辑部门时不显示自己以及自己下级的数据, 避免出现PID数据环形问题
depts = depts.stream().filter(i -> !ids.contains(i.getId())).toList(); depts = depts.stream().filter(i -> !ids.contains(i.getId())).collect(Collectors.toList());
} }
deptSet.addAll(depts); deptSet.addAll(depts);
} }
return ResponseEntity.ok(systemDeptService.buildDeptTree(new ArrayList<>(deptSet))); return ResponseEntity.ok(systemDeptService.buildDeptTree(new ArrayList<>(deptSet)));
} }
@Operation(summary = "新增部门") @ApiOperation("新增部门")
@PostMapping(value = "/saveDept") @PostMapping(value = "/saveDept")
@PreAuthorize("@el.check('dept:add')") @PreAuthorize("@el.check('dept:add')")
public ResponseEntity<Void> saveDept(@Validated @RequestBody SystemCreateDeptArgs args) { public ResponseEntity<Void> saveDept(@Validated @RequestBody SystemCreateDeptArgs args) {
@@ -97,7 +99,7 @@ public class SystemDeptController {
return ResponseEntity.ok(null); return ResponseEntity.ok(null);
} }
@Operation(summary = "修改部门") @ApiOperation("修改部门")
@PostMapping(value = "/modifyDept") @PostMapping(value = "/modifyDept")
@PreAuthorize("@el.check('dept:edit')") @PreAuthorize("@el.check('dept:edit')")
public ResponseEntity<Void> modifyDept(@Validated(SystemDeptTb.Update.class) @RequestBody SystemDeptTb args) { public ResponseEntity<Void> modifyDept(@Validated(SystemDeptTb.Update.class) @RequestBody SystemDeptTb args) {
@@ -105,7 +107,7 @@ public class SystemDeptController {
return ResponseEntity.ok(null); return ResponseEntity.ok(null);
} }
@Operation(summary = "删除部门") @ApiOperation("删除部门")
@PostMapping(value = "/removeDeptByIds") @PostMapping(value = "/removeDeptByIds")
@PreAuthorize("@el.check('dept:del')") @PreAuthorize("@el.check('dept:del')")
public ResponseEntity<Void> removeDeptByIds(@RequestBody Set<Long> ids) { public ResponseEntity<Void> removeDeptByIds(@RequestBody Set<Long> ids) {
@@ -13,7 +13,6 @@
* 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.controller; package cn.odboy.system.controller;
import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageArgs;
@@ -23,12 +22,12 @@ import cn.odboy.system.dal.model.SystemCreateDictArgs;
import cn.odboy.system.dal.model.SystemQueryDictArgs; import cn.odboy.system.dal.model.SystemQueryDictArgs;
import cn.odboy.system.service.SystemDictService; 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.v3.oas.annotations.Operation; import io.swagger.annotations.Api;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.annotations.ApiOperation;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException; 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 org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
@@ -40,26 +39,28 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@Tag(name = "系统:字典管理") @Api(tags = "系统:字典管理")
@RequestMapping("/api/dict") @RequestMapping("/api/dict")
public class SystemDictController { public class SystemDictController {
@Autowired private SystemDictService systemDictService;
@Operation(summary = "导出字典数据") @Autowired
private SystemDictService systemDictService;
@ApiOperation("导出字典数据")
@GetMapping(value = "/download") @GetMapping(value = "/download")
@PreAuthorize("@el.check('dict:list')") @PreAuthorize("@el.check('dict:list')")
public void exportDict(HttpServletResponse response, SystemQueryDictArgs criteria) throws IOException { public void exportDict(HttpServletResponse response, SystemQueryDictArgs criteria) throws IOException {
systemDictService.exportDictExcel(systemDictService.queryDictByArgs(criteria), response); systemDictService.exportDictExcel(systemDictService.queryDictByArgs(criteria), response);
} }
@Operation(summary = "查询字典") @ApiOperation("查询字典")
@PostMapping(value = "/queryAllDict") @PostMapping(value = "/queryAllDict")
@PreAuthorize("@el.check('dict:list')") @PreAuthorize("@el.check('dict:list')")
public ResponseEntity<List<SystemDictTb>> queryAllDict() { public ResponseEntity<List<SystemDictTb>> queryAllDict() {
return ResponseEntity.ok(systemDictService.queryDictByArgs(new SystemQueryDictArgs())); return ResponseEntity.ok(systemDictService.queryDictByArgs(new SystemQueryDictArgs()));
} }
@Operation(summary = "查询字典") @ApiOperation("查询字典")
@PostMapping @PostMapping
@PreAuthorize("@el.check('dict:list')") @PreAuthorize("@el.check('dict:list')")
public ResponseEntity<KitPageResult<SystemDictTb>> queryDictByArgs( public ResponseEntity<KitPageResult<SystemDictTb>> queryDictByArgs(
@@ -74,7 +75,7 @@ public class SystemDictController {
return ResponseEntity.ok(systemDictService.queryDictByArgs(criteria, page)); return ResponseEntity.ok(systemDictService.queryDictByArgs(criteria, page));
} }
@Operation(summary = "新增字典") @ApiOperation("新增字典")
@PostMapping(value = "/saveDict") @PostMapping(value = "/saveDict")
@PreAuthorize("@el.check('dict:add')") @PreAuthorize("@el.check('dict:add')")
public ResponseEntity<Void> saveDict(@Validated @RequestBody SystemCreateDictArgs args) { public ResponseEntity<Void> saveDict(@Validated @RequestBody SystemCreateDictArgs args) {
@@ -82,7 +83,7 @@ public class SystemDictController {
return ResponseEntity.ok(null); return ResponseEntity.ok(null);
} }
@Operation(summary = "修改字典") @ApiOperation("修改字典")
@PostMapping(value = "/modifyDictById") @PostMapping(value = "/modifyDictById")
@PreAuthorize("@el.check('dict:edit')") @PreAuthorize("@el.check('dict:edit')")
public ResponseEntity<Void> modifyDictById(@Validated(SystemDictTb.Update.class) @RequestBody SystemDictTb args) { public ResponseEntity<Void> modifyDictById(@Validated(SystemDictTb.Update.class) @RequestBody SystemDictTb args) {
@@ -90,7 +91,7 @@ public class SystemDictController {
return ResponseEntity.ok(null); return ResponseEntity.ok(null);
} }
@Operation(summary = "删除字典") @ApiOperation("删除字典")
@PostMapping(value = "/removeDictByIds") @PostMapping(value = "/removeDictByIds")
@PreAuthorize("@el.check('dict:del')") @PreAuthorize("@el.check('dict:del')")
public ResponseEntity<Void> removeDictByIds(@RequestBody Set<Long> ids) { public ResponseEntity<Void> removeDictByIds(@RequestBody Set<Long> ids) {
@@ -13,7 +13,6 @@
* 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.controller; package cn.odboy.system.controller;
import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageArgs;
@@ -24,8 +23,8 @@ import cn.odboy.system.dal.model.SystemDictDetailVo;
import cn.odboy.system.dal.model.SystemQueryDictDetailArgs; import cn.odboy.system.dal.model.SystemQueryDictDetailArgs;
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;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.annotations.Api;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.annotations.ApiOperation;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -41,19 +40,21 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@Tag(name = "系统:字典详情管理") @Api(tags = "系统:字典详情管理")
@RequestMapping("/api/dictDetail") @RequestMapping("/api/dictDetail")
public class SystemDictDetailController { public class SystemDictDetailController {
@Autowired private SystemDictDetailService systemDictDetailService;
@Operation(summary = "查询字典详情") @Autowired
private SystemDictDetailService systemDictDetailService;
@ApiOperation("查询字典详情")
@PostMapping @PostMapping
public ResponseEntity<KitPageResult<SystemDictDetailVo>> queryDictDetailByCrud( public ResponseEntity<KitPageResult<SystemDictDetailVo>> queryDictDetailByCrud(
@Validated @RequestBody KitPageArgs<SystemQueryDictDetailArgs> args) { @Validated @RequestBody KitPageArgs<SystemQueryDictDetailArgs> args) {
return queryDictDetailByArgs(args); return queryDictDetailByArgs(args);
} }
@Operation(summary = "查询字典详情") @ApiOperation("查询字典详情")
@PostMapping(value = "/queryDictDetailByArgs") @PostMapping(value = "/queryDictDetailByArgs")
public ResponseEntity<KitPageResult<SystemDictDetailVo>> queryDictDetailByArgs( public ResponseEntity<KitPageResult<SystemDictDetailVo>> queryDictDetailByArgs(
@Validated @RequestBody KitPageArgs<SystemQueryDictDetailArgs> args) { @Validated @RequestBody KitPageArgs<SystemQueryDictDetailArgs> args) {
@@ -62,7 +63,7 @@ public class SystemDictDetailController {
return ResponseEntity.ok(systemDictDetailService.queryDictDetailByArgs(criteria, page)); return ResponseEntity.ok(systemDictDetailService.queryDictDetailByArgs(criteria, page));
} }
@Operation(summary = "查询多个字典详情") @ApiOperation("查询多个字典详情")
@GetMapping(value = "/getDictDetailMaps") @GetMapping(value = "/getDictDetailMaps")
public ResponseEntity<Map<String, List<SystemDictDetailVo>>> getDictDetailMaps(@RequestParam String dictName) { public ResponseEntity<Map<String, List<SystemDictDetailVo>>> getDictDetailMaps(@RequestParam String dictName) {
String[] names = dictName.split("[,, ]"); String[] names = dictName.split("[,, ]");
@@ -73,7 +74,7 @@ public class SystemDictDetailController {
return ResponseEntity.ok(dictMap); return ResponseEntity.ok(dictMap);
} }
@Operation(summary = "新增字典详情") @ApiOperation("新增字典详情")
@PostMapping(value = "/saveDictDetail") @PostMapping(value = "/saveDictDetail")
@PreAuthorize("@el.check('dict:add')") @PreAuthorize("@el.check('dict:add')")
public ResponseEntity<Void> saveDictDetail(@Validated @RequestBody SystemCreateDictDetailArgs args) { public ResponseEntity<Void> saveDictDetail(@Validated @RequestBody SystemCreateDictDetailArgs args) {
@@ -81,7 +82,7 @@ public class SystemDictDetailController {
return ResponseEntity.ok(null); return ResponseEntity.ok(null);
} }
@Operation(summary = "修改字典详情") @ApiOperation("修改字典详情")
@PostMapping(value = "/modifyDictDetailById") @PostMapping(value = "/modifyDictDetailById")
@PreAuthorize("@el.check('dict:edit')") @PreAuthorize("@el.check('dict:edit')")
public ResponseEntity<Void> modifyDictDetailById( public ResponseEntity<Void> modifyDictDetailById(
@@ -90,7 +91,7 @@ public class SystemDictDetailController {
return ResponseEntity.ok(null); return ResponseEntity.ok(null);
} }
@Operation(summary = "删除字典详情") @ApiOperation("删除字典详情")
@PostMapping(value = "/removeDictDetailById") @PostMapping(value = "/removeDictDetailById")
@PreAuthorize("@el.check('dict:del')") @PreAuthorize("@el.check('dict:del')")
public ResponseEntity<Void> removeDictDetailById(@RequestBody SystemDictDetailTb args) { public ResponseEntity<Void> removeDictDetailById(@RequestBody SystemDictDetailTb args) {
@@ -13,14 +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.controller; package cn.odboy.system.controller;
import cn.odboy.system.dal.dataobject.SystemEmailConfigTb; import cn.odboy.system.dal.dataobject.SystemEmailConfigTb;
import cn.odboy.system.dal.model.SystemSendEmailArgs; import cn.odboy.system.dal.model.SystemSendEmailArgs;
import cn.odboy.system.service.SystemEmailService; import cn.odboy.system.service.SystemEmailService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.annotations.Api;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@@ -34,17 +33,19 @@ import org.springframework.web.bind.annotation.RestController;
*/ */
@RestController @RestController
@RequestMapping("api/email") @RequestMapping("api/email")
@Tag(name = "工具:邮件管理") @Api(tags = "工具:邮件管理")
public class SystemEmailController { public class SystemEmailController {
@Autowired private SystemEmailService systemEmailService;
@Operation(summary = "查询配置") @Autowired
private SystemEmailService systemEmailService;
@ApiOperation("查询配置")
@PostMapping(value = "/getLastEmailConfig") @PostMapping(value = "/getLastEmailConfig")
public ResponseEntity<SystemEmailConfigTb> getLastEmailConfig() { public ResponseEntity<SystemEmailConfigTb> getLastEmailConfig() {
return ResponseEntity.ok(systemEmailService.getLastEmailConfig()); return ResponseEntity.ok(systemEmailService.getLastEmailConfig());
} }
@Operation(summary = "配置邮件") @ApiOperation("配置邮件")
@PostMapping(value = "/modifyEmailConfig") @PostMapping(value = "/modifyEmailConfig")
public ResponseEntity<Void> modifyEmailConfig(@Validated @RequestBody SystemEmailConfigTb emailConfig) public ResponseEntity<Void> modifyEmailConfig(@Validated @RequestBody SystemEmailConfigTb emailConfig)
throws Exception { throws Exception {
@@ -52,7 +53,7 @@ public class SystemEmailController {
return ResponseEntity.ok(null); return ResponseEntity.ok(null);
} }
@Operation(summary = "发送邮件") @ApiOperation("发送邮件")
@PostMapping(value = "/sendEmail") @PostMapping(value = "/sendEmail")
public ResponseEntity<Void> sendEmail(@Validated @RequestBody SystemSendEmailArgs sendEmailRequest) { public ResponseEntity<Void> sendEmail(@Validated @RequestBody SystemSendEmailArgs sendEmailRequest) {
systemEmailService.sendEmail(sendEmailRequest); systemEmailService.sendEmail(sendEmailRequest);
@@ -13,7 +13,6 @@
* 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.controller; package cn.odboy.system.controller;
import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageArgs;
@@ -23,11 +22,11 @@ import cn.odboy.system.dal.model.SystemCreateJobArgs;
import cn.odboy.system.dal.model.SystemQueryJobArgs; import cn.odboy.system.dal.model.SystemQueryJobArgs;
import cn.odboy.system.service.SystemJobService; 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.v3.oas.annotations.Operation; import io.swagger.annotations.Api;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.annotations.ApiOperation;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.Set; import java.util.Set;
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;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
@@ -39,19 +38,21 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@Tag(name = "系统:岗位管理") @Api(tags = "系统:岗位管理")
@RequestMapping("/api/job") @RequestMapping("/api/job")
public class SystemJobController { public class SystemJobController {
@Autowired private SystemJobService systemJobService;
@Operation(summary = "导出岗位数据") @Autowired
private SystemJobService systemJobService;
@ApiOperation("导出岗位数据")
@GetMapping(value = "/download") @GetMapping(value = "/download")
@PreAuthorize("@el.check('job:list')") @PreAuthorize("@el.check('job:list')")
public void exportJob(HttpServletResponse response, SystemQueryJobArgs criteria) throws IOException { public void exportJob(HttpServletResponse response, SystemQueryJobArgs criteria) throws IOException {
systemJobService.exportJobExcel(systemJobService.queryJobByArgs(criteria), response); systemJobService.exportJobExcel(systemJobService.queryJobByArgs(criteria), response);
} }
@Operation(summary = "查询岗位") @ApiOperation("查询岗位")
@PostMapping(value = "/queryAllEnableJob") @PostMapping(value = "/queryAllEnableJob")
@PreAuthorize("@el.check('job:list','user:list')") @PreAuthorize("@el.check('job:list','user:list')")
public ResponseEntity<KitPageResult<SystemJobTb>> queryJobByArgs( public ResponseEntity<KitPageResult<SystemJobTb>> queryJobByArgs(
@@ -61,7 +62,7 @@ public class SystemJobController {
return ResponseEntity.ok(systemJobService.queryJobByArgs(criteria, page)); return ResponseEntity.ok(systemJobService.queryJobByArgs(criteria, page));
} }
@Operation(summary = "查询岗位") @ApiOperation("查询岗位")
@PostMapping @PostMapping
@PreAuthorize("@el.check('job:list','user:list')") @PreAuthorize("@el.check('job:list','user:list')")
public ResponseEntity<KitPageResult<SystemJobTb>> queryJobByCrud( public ResponseEntity<KitPageResult<SystemJobTb>> queryJobByCrud(
@@ -69,7 +70,7 @@ public class SystemJobController {
return queryJobByArgs(args); return queryJobByArgs(args);
} }
@Operation(summary = "新增岗位") @ApiOperation("新增岗位")
@PostMapping(value = "/saveJob") @PostMapping(value = "/saveJob")
@PreAuthorize("@el.check('job:add')") @PreAuthorize("@el.check('job:add')")
public ResponseEntity<Void> saveJob(@Validated @RequestBody SystemCreateJobArgs args) { public ResponseEntity<Void> saveJob(@Validated @RequestBody SystemCreateJobArgs args) {
@@ -77,7 +78,7 @@ public class SystemJobController {
return ResponseEntity.ok(null); return ResponseEntity.ok(null);
} }
@Operation(summary = "修改岗位") @ApiOperation("修改岗位")
@PostMapping(value = "/modifyJobById") @PostMapping(value = "/modifyJobById")
@PreAuthorize("@el.check('job:edit')") @PreAuthorize("@el.check('job:edit')")
public ResponseEntity<Void> modifyJobById(@Validated(SystemJobTb.Update.class) @RequestBody SystemJobTb args) { public ResponseEntity<Void> modifyJobById(@Validated(SystemJobTb.Update.class) @RequestBody SystemJobTb args) {
@@ -85,7 +86,7 @@ public class SystemJobController {
return ResponseEntity.ok(null); return ResponseEntity.ok(null);
} }
@Operation(summary = "删除岗位") @ApiOperation("删除岗位")
@PostMapping(value = "/removeJobByIds") @PostMapping(value = "/removeJobByIds")
@PreAuthorize("@el.check('job:del')") @PreAuthorize("@el.check('job:del')")
public ResponseEntity<Void> removeJobByIds(@RequestBody Set<Long> ids) { public ResponseEntity<Void> removeJobByIds(@RequestBody Set<Long> ids) {
@@ -13,7 +13,6 @@
* 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.controller; package cn.odboy.system.controller;
import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageArgs;
@@ -25,10 +24,10 @@ import cn.odboy.system.dal.model.SystemQueryStorageArgs;
import cn.odboy.system.service.SystemLocalStorageService; import cn.odboy.system.service.SystemLocalStorageService;
import cn.odboy.util.KitFileUtil; import cn.odboy.util.KitFileUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.annotations.Api;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.annotations.ApiOperation;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
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;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
@@ -42,12 +41,14 @@ import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@RestController @RestController
@Tag(name = "工具:本地存储管理") @Api(tags = "工具:本地存储管理")
@RequestMapping("/api/localStorage") @RequestMapping("/api/localStorage")
public class SystemLocalStorageController { public class SystemLocalStorageController {
@Autowired private SystemLocalStorageService localStorageService;
@Operation(summary = "查询文件") @Autowired
private SystemLocalStorageService localStorageService;
@ApiOperation("查询文件")
@PostMapping @PostMapping
@PreAuthorize("@el.check('storage:list')") @PreAuthorize("@el.check('storage:list')")
public ResponseEntity<KitPageResult<SystemLocalStorageTb>> queryLocalStorage( public ResponseEntity<KitPageResult<SystemLocalStorageTb>> queryLocalStorage(
@@ -57,14 +58,14 @@ public class SystemLocalStorageController {
return ResponseEntity.ok(localStorageService.queryLocalStorage(criteria, page)); return ResponseEntity.ok(localStorageService.queryLocalStorage(criteria, page));
} }
@Operation(summary = "导出数据") @ApiOperation("导出数据")
@GetMapping(value = "/download") @GetMapping(value = "/download")
@PreAuthorize("@el.check('storage:list')") @PreAuthorize("@el.check('storage:list')")
public void exportFile(HttpServletResponse response, SystemQueryStorageArgs criteria) throws IOException { public void exportFile(HttpServletResponse response, SystemQueryStorageArgs criteria) throws IOException {
localStorageService.exportLocalStorageExcel(localStorageService.queryLocalStorage(criteria), response); localStorageService.exportLocalStorageExcel(localStorageService.queryLocalStorage(criteria), response);
} }
@Operation(summary = "上传文件") @ApiOperation("上传文件")
@PostMapping(value = "/uploadFile") @PostMapping(value = "/uploadFile")
@PreAuthorize("@el.check('storage:add')") @PreAuthorize("@el.check('storage:add')")
public ResponseEntity<Void> uploadFile(@RequestParam String name, @RequestParam("file") MultipartFile file) { public ResponseEntity<Void> uploadFile(@RequestParam String name, @RequestParam("file") MultipartFile file) {
@@ -72,7 +73,7 @@ public class SystemLocalStorageController {
return ResponseEntity.ok(null); return ResponseEntity.ok(null);
} }
@Operation(summary = "上传图片") @ApiOperation("上传图片")
@PostMapping("/uploadPicture") @PostMapping("/uploadPicture")
public ResponseEntity<SystemLocalStorageTb> uploadPicture(@RequestParam MultipartFile file) { public ResponseEntity<SystemLocalStorageTb> uploadPicture(@RequestParam MultipartFile file) {
// 判断文件是否为图片 // 判断文件是否为图片
@@ -84,7 +85,7 @@ public class SystemLocalStorageController {
return ResponseEntity.ok(localStorage); return ResponseEntity.ok(localStorage);
} }
@Operation(summary = "修改文件") @ApiOperation("修改文件")
@PostMapping(value = "/modifyLocalStorageById") @PostMapping(value = "/modifyLocalStorageById")
@PreAuthorize("@el.check('storage:edit')") @PreAuthorize("@el.check('storage:edit')")
public ResponseEntity<Void> modifyLocalStorageById(@Validated @RequestBody SystemLocalStorageTb args) { public ResponseEntity<Void> modifyLocalStorageById(@Validated @RequestBody SystemLocalStorageTb args) {
@@ -92,7 +93,7 @@ public class SystemLocalStorageController {
return ResponseEntity.ok(null); return ResponseEntity.ok(null);
} }
@Operation(summary = "多选删除") @ApiOperation("多选删除")
@PostMapping(value = "/removeFileByIds") @PostMapping(value = "/removeFileByIds")
public ResponseEntity<Void> deleteFileByIds(@RequestBody Long[] ids) { public ResponseEntity<Void> deleteFileByIds(@RequestBody Long[] ids) {
localStorageService.removeFileByIds(ids); localStorageService.removeFileByIds(ids);
@@ -13,7 +13,6 @@
* 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.controller; package cn.odboy.system.controller;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
@@ -27,15 +26,15 @@ import cn.odboy.system.dal.mysql.SystemMenuMapper;
import cn.odboy.system.framework.permission.core.KitSecurityHelper; import cn.odboy.system.framework.permission.core.KitSecurityHelper;
import cn.odboy.system.service.SystemMenuService; import cn.odboy.system.service.SystemMenuService;
import cn.odboy.util.KitPageUtil; import cn.odboy.util.KitPageUtil;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.annotations.Api;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.annotations.ApiOperation;
import jakarta.servlet.http.HttpServletResponse;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet; import java.util.HashSet;
import java.util.LinkedHashSet; import java.util.LinkedHashSet;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
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;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
@@ -48,13 +47,16 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@Tag(name = "系统:菜单管理") @Api(tags = "系统:菜单管理")
@RequestMapping("/api/menu") @RequestMapping("/api/menu")
public class SystemMenuController { public class SystemMenuController {
@Autowired private SystemMenuService systemMenuService;
@Autowired private SystemMenuMapper systemMenuMapper;
@Operation(summary = "导出菜单数据") @Autowired
private SystemMenuService systemMenuService;
@Autowired
private SystemMenuMapper systemMenuMapper;
@ApiOperation("导出菜单数据")
@GetMapping(value = "/download") @GetMapping(value = "/download")
@PreAuthorize("@el.check('menu:list')") @PreAuthorize("@el.check('menu:list')")
public void exportMenu(HttpServletResponse response, SystemQueryMenuArgs criteria) throws Exception { public void exportMenu(HttpServletResponse response, SystemQueryMenuArgs criteria) throws Exception {
@@ -62,21 +64,21 @@ public class SystemMenuController {
} }
@PostMapping(value = "/buildMenus") @PostMapping(value = "/buildMenus")
@Operation(summary = "获取前端所需菜单") @ApiOperation("获取前端所需菜单")
public ResponseEntity<List<SystemMenuVo>> buildMenus() { public ResponseEntity<List<SystemMenuVo>> buildMenus() {
List<SystemMenuTb> menuList = systemMenuService.queryMenuListByUserId(KitSecurityHelper.getCurrentUserId()); List<SystemMenuTb> menuList = systemMenuService.queryMenuListByUserId(KitSecurityHelper.getCurrentUserId());
List<SystemMenuTb> menus = systemMenuService.buildMenuTree(menuList); List<SystemMenuTb> menus = systemMenuService.buildMenuTree(menuList);
return ResponseEntity.ok(systemMenuService.buildMenuVo(menus)); return ResponseEntity.ok(systemMenuService.buildMenuVo(menus));
} }
@Operation(summary = "返回全部的菜单") @ApiOperation("返回全部的菜单")
@PostMapping(value = "/queryMenuListByPid") @PostMapping(value = "/queryMenuListByPid")
@PreAuthorize("@el.check('menu:list','roles:list')") @PreAuthorize("@el.check('menu:list','roles:list')")
public ResponseEntity<List<SystemMenuTb>> queryMenuListByPid(@RequestParam Long pid) { public ResponseEntity<List<SystemMenuTb>> queryMenuListByPid(@RequestParam Long pid) {
return ResponseEntity.ok(systemMenuService.queryMenuByPid(pid)); return ResponseEntity.ok(systemMenuService.queryMenuByPid(pid));
} }
@Operation(summary = "根据菜单ID返回所有子节点ID, 包含自身ID") @ApiOperation("根据菜单ID返回所有子节点ID, 包含自身ID")
@PostMapping(value = "/queryChildMenuSet") @PostMapping(value = "/queryChildMenuSet")
@PreAuthorize("@el.check('menu:list','roles:list')") @PreAuthorize("@el.check('menu:list','roles:list')")
public ResponseEntity<Set<Long>> queryChildMenuSet(@RequestParam Long id) { public ResponseEntity<Set<Long>> queryChildMenuSet(@RequestParam Long id) {
@@ -89,7 +91,7 @@ public class SystemMenuController {
} }
@PostMapping @PostMapping
@Operation(summary = "查询菜单") @ApiOperation("查询菜单")
@PreAuthorize("@el.check('menu:list')") @PreAuthorize("@el.check('menu:list')")
public ResponseEntity<KitPageResult<SystemMenuTb>> queryAllMenuByCrud( public ResponseEntity<KitPageResult<SystemMenuTb>> queryAllMenuByCrud(
@Validated @RequestBody KitPageArgs<SystemQueryMenuArgs> args) throws Exception { @Validated @RequestBody KitPageArgs<SystemQueryMenuArgs> args) throws Exception {
@@ -97,7 +99,7 @@ public class SystemMenuController {
} }
@PostMapping(value = "/queryMenuByArgs") @PostMapping(value = "/queryMenuByArgs")
@Operation(summary = "查询菜单") @ApiOperation("查询菜单")
@PreAuthorize("@el.check('menu:list')") @PreAuthorize("@el.check('menu:list')")
public ResponseEntity<KitPageResult<SystemMenuTb>> queryAllMenu( public ResponseEntity<KitPageResult<SystemMenuTb>> queryAllMenu(
@Validated @RequestBody KitPageArgs<SystemQueryMenuArgs> args) throws Exception { @Validated @RequestBody KitPageArgs<SystemQueryMenuArgs> args) throws Exception {
@@ -106,7 +108,7 @@ public class SystemMenuController {
return ResponseEntity.ok(KitPageUtil.toPage(menuList)); return ResponseEntity.ok(KitPageUtil.toPage(menuList));
} }
@Operation(summary = "查询菜单:根据ID获取同级与上级数据") @ApiOperation("查询菜单:根据ID获取同级与上级数据")
@PostMapping("/queryMenuSuperior") @PostMapping("/queryMenuSuperior")
@PreAuthorize("@el.check('menu:list')") @PreAuthorize("@el.check('menu:list')")
public ResponseEntity<List<SystemMenuTb>> queryMenuSuperior(@RequestBody List<Long> ids) { public ResponseEntity<List<SystemMenuTb>> queryMenuSuperior(@RequestBody List<Long> ids) {
@@ -129,7 +131,7 @@ public class SystemMenuController {
return ResponseEntity.ok(systemMenuService.queryMenuByPid(null)); return ResponseEntity.ok(systemMenuService.queryMenuByPid(null));
} }
@Operation(summary = "新增菜单") @ApiOperation("新增菜单")
@PostMapping(value = "/saveMenu") @PostMapping(value = "/saveMenu")
@PreAuthorize("@el.check('menu:add')") @PreAuthorize("@el.check('menu:add')")
public ResponseEntity<Void> saveMenu(@Validated @RequestBody SystemMenuTb args) { public ResponseEntity<Void> saveMenu(@Validated @RequestBody SystemMenuTb args) {
@@ -140,7 +142,7 @@ public class SystemMenuController {
return ResponseEntity.ok(null); return ResponseEntity.ok(null);
} }
@Operation(summary = "修改菜单") @ApiOperation("修改菜单")
@PostMapping(value = "/modifyMenuById") @PostMapping(value = "/modifyMenuById")
@PreAuthorize("@el.check('menu:edit')") @PreAuthorize("@el.check('menu:edit')")
public ResponseEntity<Void> modifyMenuById(@Validated(SystemMenuTb.Update.class) @RequestBody SystemMenuTb args) { public ResponseEntity<Void> modifyMenuById(@Validated(SystemMenuTb.Update.class) @RequestBody SystemMenuTb args) {
@@ -148,7 +150,7 @@ public class SystemMenuController {
return ResponseEntity.ok(null); return ResponseEntity.ok(null);
} }
@Operation(summary = "删除菜单") @ApiOperation("删除菜单")
@PostMapping(value = "/removeMenuByIds") @PostMapping(value = "/removeMenuByIds")
@PreAuthorize("@el.check('menu:del')") @PreAuthorize("@el.check('menu:del')")
public ResponseEntity<Void> removeMenuByIds(@RequestBody Set<Long> ids) { public ResponseEntity<Void> removeMenuByIds(@RequestBody Set<Long> ids) {
@@ -13,12 +13,11 @@
* 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.controller; package cn.odboy.system.controller;
import cn.odboy.system.service.SystemMonitorService; import cn.odboy.system.service.SystemMonitorService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.annotations.Api;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.annotations.ApiOperation;
import java.util.Map; import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
@@ -28,13 +27,15 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@Tag(name = "系统-服务监控管理") @Api(tags = "系统-服务监控管理")
@RequestMapping("/api/monitor") @RequestMapping("/api/monitor")
public class SystemMonitorController { public class SystemMonitorController {
@Autowired private SystemMonitorService systemMonitorService;
@Autowired
private SystemMonitorService systemMonitorService;
@PostMapping(value = "/queryServerMonitorInfo") @PostMapping(value = "/queryServerMonitorInfo")
@Operation(summary = "查询服务监控") @ApiOperation("查询服务监控")
@PreAuthorize("@el.check('monitor:list')") @PreAuthorize("@el.check('monitor:list')")
public ResponseEntity<Map<String, Object>> queryServerMonitorInfo() { public ResponseEntity<Map<String, Object>> queryServerMonitorInfo() {
return ResponseEntity.ok(systemMonitorService.queryServerMonitorInfo()); return ResponseEntity.ok(systemMonitorService.queryServerMonitorInfo());
@@ -13,7 +13,6 @@
* 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.controller; package cn.odboy.system.controller;
import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageArgs;
@@ -23,11 +22,11 @@ import cn.odboy.system.dal.redis.SystemUserOnlineInfoDAO;
import cn.odboy.util.KitDesEncryptUtil; import cn.odboy.util.KitDesEncryptUtil;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.annotations.Api;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.annotations.ApiOperation;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.Set; import java.util.Set;
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;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
@@ -40,11 +39,13 @@ import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@RequestMapping("/api/user/online") @RequestMapping("/api/user/online")
@Tag(name = "系统:在线用户管理") @Api(tags = "系统:在线用户管理")
public class SystemOnlineController { public class SystemOnlineController {
@Autowired private SystemUserOnlineInfoDAO systemUserOnlineInfoDAO;
@Operation(summary = "查询在线用户") @Autowired
private SystemUserOnlineInfoDAO systemUserOnlineInfoDAO;
@ApiOperation("查询在线用户")
@PostMapping @PostMapping
@PreAuthorize("@el.check()") @PreAuthorize("@el.check()")
public ResponseEntity<KitPageResult<SystemUserOnlineVo>> queryOnlineUser( public ResponseEntity<KitPageResult<SystemUserOnlineVo>> queryOnlineUser(
@@ -53,7 +54,7 @@ public class SystemOnlineController {
return ResponseEntity.ok(systemUserOnlineInfoDAO.queryUserOnlineModelPage(args.getArgs(), page)); return ResponseEntity.ok(systemUserOnlineInfoDAO.queryUserOnlineModelPage(args.getArgs(), page));
} }
@Operation(summary = "导出数据") @ApiOperation("导出数据")
@GetMapping(value = "/download") @GetMapping(value = "/download")
@PreAuthorize("@el.check()") @PreAuthorize("@el.check()")
public void exportOnlineUser(HttpServletResponse response, String username) throws IOException { public void exportOnlineUser(HttpServletResponse response, String username) throws IOException {
@@ -61,7 +62,7 @@ public class SystemOnlineController {
systemUserOnlineInfoDAO.queryUserOnlineModelListByUsername(username), response); systemUserOnlineInfoDAO.queryUserOnlineModelListByUsername(username), response);
} }
@Operation(summary = "踢出用户") @ApiOperation("踢出用户")
@PostMapping(value = "/kickOutUser") @PostMapping(value = "/kickOutUser")
@PreAuthorize("@el.check()") @PreAuthorize("@el.check()")
public ResponseEntity<Void> kickOutUser(@RequestBody Set<String> keys) throws Exception { public ResponseEntity<Void> kickOutUser(@RequestBody Set<String> keys) throws Exception {
@@ -13,7 +13,6 @@
* 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.controller; package cn.odboy.system.controller;
import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageArgs;
@@ -23,10 +22,10 @@ import cn.odboy.system.dal.model.SystemOssStorageVo;
import cn.odboy.system.dal.model.SystemQueryStorageArgs; import cn.odboy.system.dal.model.SystemQueryStorageArgs;
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.v3.oas.annotations.Operation; import io.swagger.annotations.Api;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.annotations.ApiOperation;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
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;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
@@ -42,12 +41,14 @@ import org.springframework.web.multipart.MultipartFile;
@Slf4j @Slf4j
@RestController @RestController
@Tag(name = "工具:OSS存储管理") @Api(tags = "工具:OSS存储管理")
@RequestMapping("/api/ossStorage") @RequestMapping("/api/ossStorage")
public class SystemOssStorageController { public class SystemOssStorageController {
@Autowired private SystemOssStorageService systemOssStorageService;
@Operation(summary = "查询文件") @Autowired
private SystemOssStorageService systemOssStorageService;
@ApiOperation("查询文件")
@PostMapping @PostMapping
@PreAuthorize("@el.check('storage:list')") @PreAuthorize("@el.check('storage:list')")
public ResponseEntity<KitPageResult<SystemOssStorageVo>> queryOssStorage( public ResponseEntity<KitPageResult<SystemOssStorageVo>> queryOssStorage(
@@ -57,14 +58,14 @@ public class SystemOssStorageController {
return ResponseEntity.ok(systemOssStorageService.queryOssStorage(criteria, page)); return ResponseEntity.ok(systemOssStorageService.queryOssStorage(criteria, page));
} }
@Operation(summary = "导出数据") @ApiOperation("导出数据")
@GetMapping(value = "/download") @GetMapping(value = "/download")
@PreAuthorize("@el.check('storage:list')") @PreAuthorize("@el.check('storage:list')")
public void exportFile(HttpServletResponse response, SystemQueryStorageArgs criteria) throws IOException { public void exportFile(HttpServletResponse response, SystemQueryStorageArgs criteria) throws IOException {
systemOssStorageService.exportOssStorageExcel(systemOssStorageService.queryOssStorage(criteria), response); systemOssStorageService.exportOssStorageExcel(systemOssStorageService.queryOssStorage(criteria), response);
} }
@Operation(summary = "上传文件") @ApiOperation("上传文件")
@PostMapping(value = "/uploadFile") @PostMapping(value = "/uploadFile")
@PreAuthorize("@el.check('storage:add')") @PreAuthorize("@el.check('storage:add')")
public ResponseEntity<String> uploadFile(@RequestParam("file") MultipartFile file) { public ResponseEntity<String> uploadFile(@RequestParam("file") MultipartFile file) {
@@ -72,7 +73,7 @@ public class SystemOssStorageController {
return ResponseEntity.ok(fileUrl); return ResponseEntity.ok(fileUrl);
} }
@Operation(summary = "多选删除") @ApiOperation("多选删除")
@PostMapping(value = "/removeFileByIds") @PostMapping(value = "/removeFileByIds")
public ResponseEntity<Void> removeFileByIds(@RequestBody Long[] ids) { public ResponseEntity<Void> removeFileByIds(@RequestBody Long[] ids) {
systemOssStorageService.removeFileByIds(ids); systemOssStorageService.removeFileByIds(ids);
@@ -13,7 +13,6 @@
* 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.controller; package cn.odboy.system.controller;
import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageArgs;
@@ -26,11 +25,11 @@ 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.service.SystemQuartzJobService; import cn.odboy.system.service.SystemQuartzJobService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.annotations.Api;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.annotations.ApiOperation;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.Set; import java.util.Set;
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;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
@@ -47,11 +46,13 @@ import org.springframework.web.bind.annotation.RestController;
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping("/api/quartzJob") @RequestMapping("/api/quartzJob")
@Tag(name = "系统:定时任务管理") @Api(tags = "系统:定时任务管理")
public class SystemQuartzJobController { public class SystemQuartzJobController {
@Autowired private SystemQuartzJobService systemQuartzJobService;
@Operation(summary = "查询定时任务") @Autowired
private SystemQuartzJobService systemQuartzJobService;
@ApiOperation("查询定时任务")
@PostMapping @PostMapping
@PreAuthorize("@el.check('quartzJob:list')") @PreAuthorize("@el.check('quartzJob:list')")
public ResponseEntity<KitPageResult<SystemQuartzJobTb>> queryQuartzJobByCrud( public ResponseEntity<KitPageResult<SystemQuartzJobTb>> queryQuartzJobByCrud(
@@ -61,21 +62,21 @@ public class SystemQuartzJobController {
return ResponseEntity.ok(systemQuartzJobService.queryQuartzJobByArgs(criteria, page)); return ResponseEntity.ok(systemQuartzJobService.queryQuartzJobByArgs(criteria, page));
} }
@Operation(summary = "导出任务数据") @ApiOperation("导出任务数据")
@GetMapping(value = "/download") @GetMapping(value = "/download")
@PreAuthorize("@el.check('quartzJob:list')") @PreAuthorize("@el.check('quartzJob:list')")
public void exportQuartzJob(HttpServletResponse response, SystemQueryQuartzJobArgs criteria) throws IOException { public void exportQuartzJob(HttpServletResponse response, SystemQueryQuartzJobArgs criteria) throws IOException {
systemQuartzJobService.exportQuartzJobExcel(systemQuartzJobService.queryQuartzJobByArgs(criteria), response); systemQuartzJobService.exportQuartzJobExcel(systemQuartzJobService.queryQuartzJobByArgs(criteria), response);
} }
@Operation(summary = "导出日志数据") @ApiOperation("导出日志数据")
@GetMapping(value = "/logs/download") @GetMapping(value = "/logs/download")
@PreAuthorize("@el.check('quartzJob:list')") @PreAuthorize("@el.check('quartzJob:list')")
public void exportQuartzJobLog(HttpServletResponse response, SystemQueryQuartzJobArgs criteria) throws IOException { public void exportQuartzJobLog(HttpServletResponse response, SystemQueryQuartzJobArgs criteria) throws IOException {
systemQuartzJobService.exportQuartzLogExcel(systemQuartzJobService.queryQuartzLogByArgs(criteria), response); systemQuartzJobService.exportQuartzLogExcel(systemQuartzJobService.queryQuartzLogByArgs(criteria), response);
} }
@Operation(summary = "查询任务执行日志") @ApiOperation("查询任务执行日志")
@PostMapping(value = "/logs") @PostMapping(value = "/logs")
@PreAuthorize("@el.check('quartzJob:list')") @PreAuthorize("@el.check('quartzJob:list')")
public ResponseEntity<KitPageResult<SystemQuartzLogTb>> queryQuartzJobLog(SystemQueryQuartzJobArgs args) { public ResponseEntity<KitPageResult<SystemQuartzLogTb>> queryQuartzJobLog(SystemQueryQuartzJobArgs args) {
@@ -83,7 +84,7 @@ public class SystemQuartzJobController {
return ResponseEntity.ok(systemQuartzJobService.queryQuartzLogByArgs(args, page)); return ResponseEntity.ok(systemQuartzJobService.queryQuartzLogByArgs(args, page));
} }
@Operation(summary = "新增定时任务") @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 SystemQuartzJobTb args) {
@@ -96,7 +97,7 @@ public class SystemQuartzJobController {
return ResponseEntity.ok(null); return ResponseEntity.ok(null);
} }
@Operation(summary = "修改定时任务") @ApiOperation("修改定时任务")
@PutMapping @PutMapping
@PreAuthorize("@el.check('quartzJob:edit')") @PreAuthorize("@el.check('quartzJob:edit')")
public ResponseEntity<Void> updateQuartzJob( public ResponseEntity<Void> updateQuartzJob(
@@ -107,7 +108,7 @@ public class SystemQuartzJobController {
return ResponseEntity.ok(null); return ResponseEntity.ok(null);
} }
@Operation(summary = "更改定时任务状态") @ApiOperation("更改定时任务状态")
@PostMapping(value = "/switchQuartzJobStatus/{id}") @PostMapping(value = "/switchQuartzJobStatus/{id}")
@PreAuthorize("@el.check('quartzJob:edit')") @PreAuthorize("@el.check('quartzJob:edit')")
public ResponseEntity<Void> switchQuartzJobStatus(@PathVariable Long id) { public ResponseEntity<Void> switchQuartzJobStatus(@PathVariable Long id) {
@@ -115,7 +116,7 @@ public class SystemQuartzJobController {
return ResponseEntity.ok(null); return ResponseEntity.ok(null);
} }
@Operation(summary = "执行定时任务") @ApiOperation("执行定时任务")
@PostMapping(value = "/startQuartzJob/{id}") @PostMapping(value = "/startQuartzJob/{id}")
@PreAuthorize("@el.check('quartzJob:edit')") @PreAuthorize("@el.check('quartzJob:edit')")
public ResponseEntity<Void> startQuartzJob(@PathVariable Long id) { public ResponseEntity<Void> startQuartzJob(@PathVariable Long id) {
@@ -123,7 +124,7 @@ public class SystemQuartzJobController {
return ResponseEntity.ok(null); return ResponseEntity.ok(null);
} }
@Operation(summary = "删除定时任务") @ApiOperation("删除定时任务")
@PostMapping(value = "/removeJobByIds") @PostMapping(value = "/removeJobByIds")
@PreAuthorize("@el.check('quartzJob:del')") @PreAuthorize("@el.check('quartzJob:del')")
public ResponseEntity<Void> removeJobByIds(@RequestBody Set<Long> ids) { public ResponseEntity<Void> removeJobByIds(@RequestBody Set<Long> ids) {
@@ -28,11 +28,12 @@ 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 jakarta.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors;
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;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
@@ -47,7 +48,9 @@ import org.springframework.web.bind.annotation.RestController;
@Api(tags = "系统:角色管理") @Api(tags = "系统:角色管理")
@RequestMapping("/api/role") @RequestMapping("/api/role")
public class SystemRoleController { public class SystemRoleController {
@Autowired private SystemRoleService systemRoleService;
@Autowired
private SystemRoleService systemRoleService;
@ApiOperation("获取单个role") @ApiOperation("获取单个role")
@PostMapping(value = "/queryRoleById") @PostMapping(value = "/queryRoleById")
@@ -135,7 +138,7 @@ public class SystemRoleController {
*/ */
private int checkRoleLevels(Integer level) { private int checkRoleLevels(Integer level) {
List<Integer> levels = systemRoleService.queryRoleByUsersId(KitSecurityHelper.getCurrentUserId()).stream() List<Integer> levels = systemRoleService.queryRoleByUsersId(KitSecurityHelper.getCurrentUserId()).stream()
.map(SystemRoleTb::getLevel).toList(); .map(SystemRoleTb::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) {
@@ -39,11 +39,12 @@ import cn.odboy.util.KitRsaEncryptUtil;
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 jakarta.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors;
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;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
@@ -64,13 +65,21 @@ import org.springframework.web.multipart.MultipartFile;
@RestController @RestController
@RequestMapping("/api/user") @RequestMapping("/api/user")
public class SystemUserController { public class SystemUserController {
@Autowired private PasswordEncoder passwordEncoder;
@Autowired private SystemUserService systemUserService; @Autowired
@Autowired private SystemDataService systemDataService; private PasswordEncoder passwordEncoder;
@Autowired private SystemDeptService systemDeptService; @Autowired
@Autowired private SystemRoleService systemRoleService; private SystemUserService systemUserService;
@Autowired private SystemEmailService systemEmailService; @Autowired
@Autowired private AppProperties properties; private SystemDataService systemDataService;
@Autowired
private SystemDeptService systemDeptService;
@Autowired
private SystemRoleService systemRoleService;
@Autowired
private SystemEmailService systemEmailService;
@Autowired
private AppProperties properties;
@ApiOperation("导出用户数据") @ApiOperation("导出用户数据")
@GetMapping(value = "/download") @GetMapping(value = "/download")
@@ -149,9 +158,10 @@ public class SystemUserController {
for (Long id : ids) { for (Long id : ids) {
Integer currentLevel = Collections.min( Integer currentLevel = Collections.min(
systemRoleService.queryRoleByUsersId(KitSecurityHelper.getCurrentUserId()).stream() systemRoleService.queryRoleByUsersId(KitSecurityHelper.getCurrentUserId()).stream()
.map(SystemRoleTb::getLevel).toList()); .map(SystemRoleTb::getLevel).collect(Collectors.toList()));
Integer optLevel = Integer optLevel = Collections.min(
Collections.min(systemRoleService.queryRoleByUsersId(id).stream().map(SystemRoleTb::getLevel).toList()); systemRoleService.queryRoleByUsersId(id).stream().map(SystemRoleTb::getLevel)
.collect(Collectors.toList()));
if (currentLevel > optLevel) { if (currentLevel > optLevel) {
throw new BadRequestException( throw new BadRequestException(
"角色权限不足, 不能删除:" + systemUserService.getUserById(id).getUsername()); "角色权限不足, 不能删除:" + systemUserService.getUserById(id).getUsername());
@@ -217,7 +227,7 @@ public class SystemUserController {
private void checkLevel(SystemUserVo args) { private void checkLevel(SystemUserVo args) {
Integer currentLevel = Collections.min( Integer currentLevel = Collections.min(
systemRoleService.queryRoleByUsersId(KitSecurityHelper.getCurrentUserId()).stream() systemRoleService.queryRoleByUsersId(KitSecurityHelper.getCurrentUserId()).stream()
.map(SystemRoleTb::getLevel).toList()); .map(SystemRoleTb::getLevel).collect(Collectors.toList()));
Integer optLevel = systemRoleService.getDeptLevelByRoles(args.getRoles()); Integer optLevel = systemRoleService.getDeptLevelByRoles(args.getRoles());
if (currentLevel > optLevel) { if (currentLevel > optLevel) {
throw new BadRequestException("角色权限不足"); throw new BadRequestException("角色权限不足");
@@ -227,8 +237,7 @@ public class SystemUserController {
@ApiOperation("查询用户基础数据") @ApiOperation("查询用户基础数据")
@PostMapping(value = "/queryUserMetadataOptions") @PostMapping(value = "/queryUserMetadataOptions")
@PreAuthorize("@el.check('user:list')") @PreAuthorize("@el.check('user:list')")
public ResponseEntity<List<KitSelectOptionVo>> queryUserMetadataOptions( public ResponseEntity<List<KitSelectOptionVo>> queryUserMetadataOptions(@Validated @RequestBody KitPageArgs<SystemQueryUserArgs> args) {
@Validated @RequestBody KitPageArgs<SystemQueryUserArgs> args) {
List<KitSelectOptionVo> collect = systemUserService.queryUserMetadataOptions(args); List<KitSelectOptionVo> collect = systemUserService.queryUserMetadataOptions(args);
return ResponseEntity.ok(collect); return ResponseEntity.ok(collect);
} }
@@ -22,11 +22,11 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
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;
@@ -35,16 +35,29 @@ import lombok.Setter;
@TableName("system_dept") @TableName("system_dept")
public class SystemDeptTb extends KitBaseUserTimeTb { public class SystemDeptTb extends KitBaseUserTimeTb {
@NotNull(groups = Update.class) @TableId(value = "dept_id", type = IdType.AUTO) @NotNull(groups = Update.class)
@ApiModelProperty(value = "ID", hidden = true) private Long id; @TableId(value = "dept_id", type = IdType.AUTO)
@TableField(exist = false) @JSONField(serialize = false) @ApiModelProperty(value = "角色") private Set<SystemRoleTb> @ApiModelProperty(value = "ID", hidden = true)
roles; private Long id;
@TableField(exist = false) @ApiModelProperty(value = "子部门") private List<SystemDeptTb> children; @TableField(exist = false)
@ApiModelProperty(value = "排序") private Integer deptSort; @JSONField(serialize = false)
@NotBlank @ApiModelProperty(value = "部门名称") private String name; @ApiModelProperty(value = "角色")
@NotNull @ApiModelProperty(value = "是否启用") private Boolean enabled; private Set<SystemRoleTb> roles;
@ApiModelProperty(value = "上级部门") private Long pid; @TableField(exist = false)
@ApiModelProperty(value = "子节点数目", hidden = true) private Integer subCount = 0; @ApiModelProperty(value = "子部门")
private List<SystemDeptTb> children;
@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 @Override
public boolean equals(Object o) { public boolean equals(Object o) {
@@ -54,7 +67,7 @@ public class SystemDeptTb extends KitBaseUserTimeTb {
if (o == null || getClass() != o.getClass()) { if (o == null || getClass() != o.getClass()) {
return false; return false;
} }
SystemDeptTb dept = (SystemDeptTb)o; SystemDeptTb dept = (SystemDeptTb) o;
return Objects.equals(id, dept.id) && Objects.equals(name, dept.name); return Objects.equals(id, dept.id) && Objects.equals(name, dept.name);
} }
@@ -29,10 +29,18 @@ import lombok.Setter;
@Setter @Setter
@TableName("system_dict_detail") @TableName("system_dict_detail")
public class SystemDictDetailTb extends KitBaseUserTimeTb { public class SystemDictDetailTb extends KitBaseUserTimeTb {
@NotNull(groups = Update.class) @ApiModelProperty(value = "ID", hidden = true)
@TableId(value = "id", type = IdType.AUTO) private Long id; @NotNull(groups = Update.class)
@TableField(value = "dict_id") @ApiModelProperty(hidden = true) private Long dictId; @ApiModelProperty(value = "ID", hidden = true)
@ApiModelProperty(value = "字典标签") private String label; @TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value = "字典值") private String value; private Long id;
@ApiModelProperty(value = "排序") private Integer dictSort = 999; @TableField(value = "dict_id")
@ApiModelProperty(hidden = true)
private Long dictId;
@ApiModelProperty(value = "字典标签")
private String label;
@ApiModelProperty(value = "字典值")
private String value;
@ApiModelProperty(value = "排序")
private Integer dictSort = 999;
} }
@@ -31,8 +31,15 @@ import lombok.Setter;
@Setter @Setter
@TableName("system_dict") @TableName("system_dict")
public class SystemDictTb extends KitBaseUserTimeTb { public class SystemDictTb extends KitBaseUserTimeTb {
@NotNull(groups = Update.class) @ApiModelProperty(value = "ID", hidden = true)
@TableId(value = "id", type = IdType.AUTO) private Long id; @NotNull(groups = Update.class)
@NotBlank @ApiModelProperty(value = "名称") private String name; @ApiModelProperty(value = "ID", hidden = true)
@ApiModelProperty(value = "描述") @TableField(updateStrategy = FieldStrategy.ALWAYS) private String description; @TableId(value = "id", type = IdType.AUTO)
private Long id;
@NotBlank
@ApiModelProperty(value = "名称")
private String name;
@ApiModelProperty(value = "描述")
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String description;
} }
@@ -30,10 +30,22 @@ import lombok.EqualsAndHashCode;
@TableName("system_email_config") @TableName("system_email_config")
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class SystemEmailConfigTb extends KitObject { public class SystemEmailConfigTb extends KitObject {
@TableId("config_id") private Long id;
@NotBlank @ApiModelProperty(value = "邮件服务器SMTP地址") private String host; @TableId("config_id")
@NotBlank @ApiModelProperty(value = "邮件服务器 SMTP 端口") private String port; private Long id;
@NotBlank @ApiModelProperty(value = "发件者用户名") private String user; @NotBlank
@NotBlank @ApiModelProperty(value = "密码") private String password; @ApiModelProperty(value = "邮件服务器SMTP地址")
@NotBlank @ApiModelProperty(value = "收件人") private String fromUser; private String host;
@NotBlank
@ApiModelProperty(value = "邮件服务器 SMTP 端口")
private String port;
@NotBlank
@ApiModelProperty(value = "发件者用户名")
private String user;
@NotBlank
@ApiModelProperty(value = "密码")
private String password;
@NotBlank
@ApiModelProperty(value = "收件人")
private String fromUser;
} }
@@ -20,9 +20,9 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.util.Objects;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import java.util.Objects;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@@ -30,11 +30,20 @@ import lombok.Setter;
@Setter @Setter
@TableName("system_job") @TableName("system_job")
public class SystemJobTb extends KitBaseUserTimeTb { public class SystemJobTb extends KitBaseUserTimeTb {
@NotNull(groups = Update.class) @TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value = "ID", hidden = true) private Long id; @NotNull(groups = Update.class)
@NotBlank @ApiModelProperty(value = "岗位名称") private String name; @TableId(value = "id", type = IdType.AUTO)
@NotNull @ApiModelProperty(value = "岗位排序") private Long jobSort; @ApiModelProperty(value = "ID", hidden = true)
@NotNull @ApiModelProperty(value = "是否启用") private Boolean enabled; private Long id;
@NotBlank
@ApiModelProperty(value = "岗位名称")
private String name;
@NotNull
@ApiModelProperty(value = "岗位排序")
private Long jobSort;
@NotNull
@ApiModelProperty(value = "是否启用")
private Boolean enabled;
@Override @Override
public boolean equals(Object o) { public boolean equals(Object o) {
@@ -44,7 +53,7 @@ public class SystemJobTb extends KitBaseUserTimeTb {
if (o == null || getClass() != o.getClass()) { if (o == null || getClass() != o.getClass()) {
return false; return false;
} }
SystemJobTb job = (SystemJobTb)o; SystemJobTb job = (SystemJobTb) o;
return Objects.equals(id, job.id); return Objects.equals(id, job.id);
} }
@@ -29,14 +29,24 @@ import lombok.Setter;
@Setter @Setter
@TableName("system_local_storage") @TableName("system_local_storage")
public class SystemLocalStorageTb extends KitBaseUserTimeTb { public class SystemLocalStorageTb extends KitBaseUserTimeTb {
@TableId(value = "id", type = IdType.AUTO) @ApiModelProperty(value = "ID", hidden = true) private Long id;
@ApiModelProperty(value = "真实文件名") private String realName; @TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value = "文件名") private String name; @ApiModelProperty(value = "ID", hidden = true)
@ApiModelProperty(value = "后缀") private String suffix; private Long id;
@ApiModelProperty(value = "路径") private String path; @ApiModelProperty(value = "真实文件名")
@ApiModelProperty(value = "类型") private String type; private String realName;
@ApiModelProperty(value = "大小") private String size; @ApiModelProperty(value = "文件名")
@ApiModelProperty(value = "日期分组") private String dateGroup; private String name;
@ApiModelProperty(value = "后缀")
private String suffix;
@ApiModelProperty(value = "路径")
private String path;
@ApiModelProperty(value = "类型")
private String type;
@ApiModelProperty(value = "大小")
private String size;
@ApiModelProperty(value = "日期分组")
private String dateGroup;
public void copy(SystemLocalStorageTb source) { public void copy(SystemLocalStorageTb source) {
BeanUtil.copyProperties(source, this, CopyOptions.create().setIgnoreNullValue(true)); BeanUtil.copyProperties(source, this, CopyOptions.create().setIgnoreNullValue(true));
@@ -22,10 +22,10 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import jakarta.validation.constraints.NotNull;
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;
@@ -33,24 +33,44 @@ import lombok.Setter;
@Setter @Setter
@TableName("system_menu") @TableName("system_menu")
public class SystemMenuTb extends KitBaseUserTimeTb { public class SystemMenuTb extends KitBaseUserTimeTb {
@NotNull(groups = {Update.class}) @TableId(value = "menu_id", type = IdType.AUTO)
@ApiModelProperty(value = "ID", hidden = true) private Long id; @NotNull(groups = {Update.class})
@TableField(exist = false) @JSONField(serialize = false) @ApiModelProperty(value = "菜单角色") @TableId(value = "menu_id", type = IdType.AUTO)
@ApiModelProperty(value = "ID", hidden = true)
private Long id;
@TableField(exist = false)
@JSONField(serialize = false)
@ApiModelProperty(value = "菜单角色")
private Set<SystemRoleTb> roles; private Set<SystemRoleTb> roles;
@TableField(exist = false) private List<SystemMenuTb> children; @TableField(exist = false)
@ApiModelProperty(value = "菜单标题") private String title; private List<SystemMenuTb> children;
@TableField(value = "name") @ApiModelProperty(value = "菜单组件名称") private String componentName; @ApiModelProperty(value = "菜单标题")
@ApiModelProperty(value = "排序") private Integer menuSort = 999; private String title;
@ApiModelProperty(value = "组件路径") private String component; @TableField(value = "name")
@ApiModelProperty(value = "路由地址") private String path; @ApiModelProperty(value = "菜单组件名称")
@ApiModelProperty(value = "菜单类型,目录、菜单、按钮") private Integer type; private String componentName;
@ApiModelProperty(value = "权限标识") private String permission; @ApiModelProperty(value = "排序")
@ApiModelProperty(value = "菜单图标") private String icon; private Integer menuSort = 999;
@ApiModelProperty(value = "缓存") private Boolean cache; @ApiModelProperty(value = "组件路径")
@ApiModelProperty(value = "是否隐藏") private Boolean hidden; private String component;
@ApiModelProperty(value = "上级菜单") private Long pid; @ApiModelProperty(value = "路由地址")
@ApiModelProperty(value = "子节点数目", hidden = true) private Integer subCount = 0; private String path;
@ApiModelProperty(value = "外链菜单") private Boolean iFrame; @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 @Override
public boolean equals(Object o) { public boolean equals(Object o) {
@@ -60,7 +80,7 @@ public class SystemMenuTb extends KitBaseUserTimeTb {
if (o == null || getClass() != o.getClass()) { if (o == null || getClass() != o.getClass()) {
return false; return false;
} }
SystemMenuTb menu = (SystemMenuTb)o; SystemMenuTb menu = (SystemMenuTb) o;
return Objects.equals(id, menu.id); return Objects.equals(id, menu.id);
} }
@@ -42,48 +42,61 @@ import lombok.ToString;
@TableName("system_operation_log") @TableName("system_operation_log")
@ApiModel(value = "SystemOperationLog对象", description = "审计日志") @ApiModel(value = "SystemOperationLog对象", description = "审计日志")
public class SystemOperationLogTb extends KitObject { public class SystemOperationLogTb extends KitObject {
/** /**
* id * id
*/ */
@ApiModelProperty("id") @TableId(value = "id", type = IdType.AUTO) private Long id; @ApiModelProperty("id")
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/** /**
* 业务名称 * 业务名称
*/ */
@TableField("biz_name") private String bizName; @TableField("biz_name")
private String bizName;
/** /**
* 业务方法 * 业务方法
*/ */
@TableField("method") private String method; @TableField("method")
private String method;
/** /**
* 业务参数 * 业务参数
*/ */
@TableField("params") private String params; @TableField("params")
private String params;
/** /**
* 访问来源IP * 访问来源IP
*/ */
@TableField("request_ip") private String requestIp; @TableField("request_ip")
private String requestIp;
/** /**
* 执行时间 * 执行时间
*/ */
@TableField("execute_time") private Long executeTime; @TableField("execute_time")
private Long executeTime;
/** /**
* 用户名 * 用户名
*/ */
@TableField("username") private String username; @TableField("username")
private String username;
/** /**
* 访问来源地址 * 访问来源地址
*/ */
@TableField("address") private String address; @TableField("address")
private String address;
/** /**
* 浏览器信息 * 浏览器信息
*/ */
@TableField("browser_info") private String browserInfo; @TableField("browser_info")
private String browserInfo;
/** /**
* 异常详情 * 异常详情
*/ */
@TableField("exception_detail") private String exceptionDetail; @TableField("exception_detail")
private String exceptionDetail;
/** /**
* 创建时间 * 创建时间
*/ */
@TableField(value = "create_time", fill = FieldFill.INSERT) private Date createTime; @TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime;
} }
@@ -38,17 +38,44 @@ import lombok.Setter;
@TableName("system_oss_storage") @TableName("system_oss_storage")
@ApiModel(value = "SystemOssStorage对象", description = "OSS存储") @ApiModel(value = "SystemOssStorage对象", description = "OSS存储")
public class SystemOssStorageTb extends KitBaseUserTimeTb { public class SystemOssStorageTb extends KitBaseUserTimeTb {
@ApiModelProperty("ID") @TableId(value = "id", type = IdType.AUTO) private Long id;
@TableField("service_type") @ApiModelProperty("类型,比如minio") private String serviceType; @ApiModelProperty("ID")
@TableField("endpoint") @ApiModelProperty("服务地址") private String endpoint; @TableId(value = "id", type = IdType.AUTO)
@TableField("bucket_name") @ApiModelProperty("存储桶名称") private String bucketName; private Long id;
@TableField("file_name") @ApiModelProperty("完整文件名称") private String fileName; @TableField("service_type")
@TableField("file_size") @ApiModelProperty("文件大小, 单位:字节") private Long fileSize; @ApiModelProperty("类型,比如minio")
@TableField("file_mime") @ApiModelProperty("文件类型") private String fileMime; private String serviceType;
@ApiModelProperty("短文件名") @TableField("file_prefix") private String filePrefix; @TableField("endpoint")
@ApiModelProperty("文件后缀") @TableField("file_suffix") private String fileSuffix; @ApiModelProperty("服务地址")
@TableField("file_md5") @ApiModelProperty("文件md5") private String fileMd5; private String endpoint;
@TableField("file_url") @ApiModelProperty("文件链接") private String fileUrl; @TableField("bucket_name")
@TableField("file_code") @ApiModelProperty("文件编码") private String fileCode; @ApiModelProperty("存储桶名称")
@TableField("object_name") @ApiModelProperty("对象路径") private String objectName; private String bucketName;
@TableField("file_name")
@ApiModelProperty("完整文件名称")
private String fileName;
@TableField("file_size")
@ApiModelProperty("文件大小, 单位:字节")
private Long fileSize;
@TableField("file_mime")
@ApiModelProperty("文件类型")
private String fileMime;
@ApiModelProperty("短文件名")
@TableField("file_prefix")
private String filePrefix;
@ApiModelProperty("文件后缀")
@TableField("file_suffix")
private String fileSuffix;
@TableField("file_md5")
@ApiModelProperty("文件md5")
private String fileMd5;
@TableField("file_url")
@ApiModelProperty("文件链接")
private String fileUrl;
@TableField("file_code")
@ApiModelProperty("文件编码")
private String fileCode;
@TableField("object_name")
@ApiModelProperty("对象路径")
private String objectName;
} }
@@ -31,19 +31,40 @@ import lombok.Setter;
@Setter @Setter
@TableName("system_quartz_job") @TableName("system_quartz_job")
public class SystemQuartzJobTb extends KitBaseUserTimeTb { public class SystemQuartzJobTb extends KitBaseUserTimeTb {
public static final String JOB_KEY = "JOB_KEY"; public static final String JOB_KEY = "JOB_KEY";
@TableId(value = "id", type = IdType.AUTO) @NotNull(groups = {Update.class}) private Long id; @TableId(value = "id", type = IdType.AUTO)
@TableField(exist = false) @ApiModelProperty(value = "用于子任务唯一标识", hidden = true) private String uuid; @NotNull(groups = {Update.class})
@ApiModelProperty(value = "定时器名称") private String jobName; private Long id;
@NotBlank @ApiModelProperty(value = "Bean名称") private String beanName; @TableField(exist = false)
@NotBlank @ApiModelProperty(value = "方法名称") private String methodName; @ApiModelProperty(value = "用于子任务唯一标识", hidden = true)
@ApiModelProperty(value = "参数") private String params; private String uuid;
@NotBlank @ApiModelProperty(value = "cron表达式") private String cronExpression; @ApiModelProperty(value = "定时器名称")
@ApiModelProperty(value = "状态:暂停或启动") private Boolean isPause = false; private String jobName;
@ApiModelProperty(value = "负责人") private String personInCharge; @NotBlank
@ApiModelProperty(value = "报警邮箱") private String email; @ApiModelProperty(value = "Bean名称")
@ApiModelProperty(value = "子任务") private String subTask; private String beanName;
@ApiModelProperty(value = "失败后暂停") private Boolean pauseAfterFailure; @NotBlank
@NotBlank @ApiModelProperty(value = "备注") @TableField(updateStrategy = FieldStrategy.ALWAYS) private String @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 = "备注")
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String
description; description;
} }
@@ -30,14 +30,27 @@ import lombok.EqualsAndHashCode;
@TableName("system_quartz_log") @TableName("system_quartz_log")
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class SystemQuartzLogTb extends KitObject { public class SystemQuartzLogTb extends KitObject {
@TableId(value = "id", type = IdType.AUTO) @ApiModelProperty(value = "ID", hidden = true) private Long id;
@ApiModelProperty(value = "任务名称", hidden = true) private String jobName; @TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value = "bean名称", hidden = true) private String beanName; @ApiModelProperty(value = "ID", hidden = true)
@ApiModelProperty(value = "方法名称", hidden = true) private String methodName; private Long id;
@ApiModelProperty(value = "参数", hidden = true) private String params; @ApiModelProperty(value = "任务名称", hidden = true)
@ApiModelProperty(value = "cron表达式", hidden = true) private String cronExpression; private String jobName;
@ApiModelProperty(value = "状态", hidden = true) private Boolean isSuccess; @ApiModelProperty(value = "bean名称", hidden = true)
@ApiModelProperty(value = "异常详情", hidden = true) private String exceptionDetail; private String beanName;
@ApiModelProperty(value = "执行耗时", hidden = true) private Long time; @ApiModelProperty(value = "方法名称", hidden = true)
@TableField(fill = FieldFill.INSERT) @ApiModelProperty(value = "创建时间", hidden = true) private Date createTime; private String methodName;
@ApiModelProperty(value = "参数", hidden = true)
private String params;
@ApiModelProperty(value = "cron表达式", hidden = true)
private String cronExpression;
@ApiModelProperty(value = "状态", hidden = true)
private Boolean isSuccess;
@ApiModelProperty(value = "异常详情", hidden = true)
private String exceptionDetail;
@ApiModelProperty(value = "执行耗时", hidden = true)
private Long time;
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "创建时间", hidden = true)
private Date createTime;
} }
@@ -25,6 +25,9 @@ import lombok.Setter;
@Setter @Setter
@TableName("system_roles_depts") @TableName("system_roles_depts")
public class SystemRoleDeptTb extends KitObject { public class SystemRoleDeptTb extends KitObject {
@TableField(value = "role_id") private Long roleId;
@TableField(value = "dept_id") private Long deptId; @TableField(value = "role_id")
private Long roleId;
@TableField(value = "dept_id")
private Long deptId;
} }
@@ -12,6 +12,9 @@ import lombok.Setter;
@Setter @Setter
@TableName("system_roles_menus") @TableName("system_roles_menus")
public class SystemRoleMenuTb { public class SystemRoleMenuTb {
@TableField(value = "role_id") private Long roleId;
@TableField(value = "menu_id") private Long menuId; @TableField(value = "role_id")
private Long roleId;
@TableField(value = "menu_id")
private Long menuId;
} }
@@ -23,9 +23,9 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.util.Objects;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import java.util.Objects;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@@ -36,13 +36,22 @@ import lombok.Setter;
@Setter @Setter
@TableName("system_role") @TableName("system_role")
public class SystemRoleTb extends KitBaseUserTimeTb { public class SystemRoleTb extends KitBaseUserTimeTb {
@NotNull(groups = {Update.class}) @TableId(value = "role_id", type = IdType.AUTO)
@ApiModelProperty(value = "ID", hidden = true) private Long id; @NotNull(groups = {Update.class})
@NotBlank @ApiModelProperty(value = "名称", hidden = true) private String name; @TableId(value = "role_id", type = IdType.AUTO)
@ApiModelProperty(value = "数据权限,全部 、 本级 、 自定义") private String dataScope = @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(); SystemDataScopeEnum.THIS_LEVEL.getValue();
@ApiModelProperty(value = "级别,数值越小,级别越大") private Integer level = 3; @ApiModelProperty(value = "级别,数值越小,级别越大")
@ApiModelProperty(value = "描述") @TableField(updateStrategy = FieldStrategy.ALWAYS) private String description; private Integer level = 3;
@ApiModelProperty(value = "描述")
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private String description;
@Override @Override
public boolean equals(Object o) { public boolean equals(Object o) {
@@ -52,7 +61,7 @@ public class SystemRoleTb extends KitBaseUserTimeTb {
if (o == null || getClass() != o.getClass()) { if (o == null || getClass() != o.getClass()) {
return false; return false;
} }
SystemRoleTb role = (SystemRoleTb)o; SystemRoleTb role = (SystemRoleTb) o;
return Objects.equals(id, role.id); return Objects.equals(id, role.id);
} }
@@ -12,6 +12,9 @@ import lombok.Setter;
@Setter @Setter
@TableName("system_users_jobs") @TableName("system_users_jobs")
public class SystemUserJobTb { public class SystemUserJobTb {
@TableField(value = "user_id") private Long userId;
@TableField(value = "job_id") private Long jobId; @TableField(value = "user_id")
private Long userId;
@TableField(value = "job_id")
private Long jobId;
} }
@@ -25,6 +25,9 @@ import lombok.Setter;
@Setter @Setter
@TableName("system_users_roles") @TableName("system_users_roles")
public class SystemUserRoleTb extends KitObject { public class SystemUserRoleTb extends KitObject {
@TableField(value = "user_id") private Long userId;
@TableField(value = "role_id") private Long roleId; @TableField(value = "user_id")
private Long userId;
@TableField(value = "role_id")
private Long roleId;
} }
@@ -21,11 +21,11 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
import java.util.Objects;
import jakarta.validation.constraints.Email; import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import java.util.Date;
import java.util.Objects;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@@ -33,21 +33,45 @@ import lombok.Setter;
@Setter @Setter
@TableName("system_user") @TableName("system_user")
public class SystemUserTb extends KitBaseUserTimeTb { public class SystemUserTb extends KitBaseUserTimeTb {
@NotNull(groups = Update.class) @TableId(value = "user_id", type = IdType.AUTO)
@ApiModelProperty(value = "ID", hidden = true) private Long id; @NotNull(groups = Update.class)
@TableField(value = "dept_id") @ApiModelProperty(hidden = true) private Long deptId; @TableId(value = "user_id", type = IdType.AUTO)
@ApiModelProperty(value = "用户部门") @TableField(exist = false) private SystemDeptTb dept; @ApiModelProperty(value = "ID", hidden = true)
@NotBlank @ApiModelProperty(value = "用户名称") private String username; private Long id;
@NotBlank @ApiModelProperty(value = "用户昵称") private String nickName; @TableField(value = "dept_id")
@Email @NotBlank @ApiModelProperty(value = "邮箱") private String email; @ApiModelProperty(hidden = true)
@NotBlank @ApiModelProperty(value = "电话号码") private String phone; private Long deptId;
@ApiModelProperty(value = "用户性别") private String gender; @ApiModelProperty(value = "用户部门")
@ApiModelProperty(value = "头像真实名称", hidden = true) private String avatarName; @TableField(exist = false)
@ApiModelProperty(value = "头像存储的路径", hidden = true) private String avatarPath; private SystemDeptTb dept;
@ApiModelProperty(value = "密码") private String password; @NotBlank
@NotNull @ApiModelProperty(value = "是否启用") private Boolean enabled; @ApiModelProperty(value = "用户名称")
@ApiModelProperty(value = "是否为admin账号", hidden = true) private Boolean isAdmin = false; private String username;
@ApiModelProperty(value = "最后修改密码的时间", hidden = true) private Date pwdResetTime; @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;
@Override @Override
public boolean equals(Object o) { public boolean equals(Object o) {
@@ -57,7 +81,7 @@ public class SystemUserTb extends KitBaseUserTimeTb {
if (o == null || getClass() != o.getClass()) { if (o == null || getClass() != o.getClass()) {
return false; return false;
} }
SystemUserTb user = (SystemUserTb)o; SystemUserTb user = (SystemUserTb) o;
return Objects.equals(id, user.id) && Objects.equals(username, user.username); return Objects.equals(id, user.id) && Objects.equals(username, user.username);
} }
@@ -23,7 +23,11 @@ import lombok.Setter;
@Getter @Getter
@Setter @Setter
public class SystemCheckEmailCaptchaArgs extends KitObject { public class SystemCheckEmailCaptchaArgs extends KitObject {
@NotBlank(message = "邮箱不能为空") private String email;
@NotBlank(message = "验证码不能为空") private String code; @NotBlank(message = "邮箱不能为空")
@NotBlank(message = "验证码业务标识不能为空") private String bizCode; private String email;
@NotBlank(message = "验证码不能为空")
private String code;
@NotBlank(message = "验证码业务标识不能为空")
private String bizCode;
} }
@@ -24,8 +24,11 @@ import lombok.EqualsAndHashCode;
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class SystemCreateDeptArgs extends KitObject { public class SystemCreateDeptArgs extends KitObject {
@NotBlank(message = "部门名称必填") private String name;
@NotNull(message = "部门排序必填") private Integer deptSort; @NotBlank(message = "部门名称必填")
private String name;
@NotNull(message = "部门排序必填")
private Integer deptSort;
private Boolean enabled; private Boolean enabled;
private String isTop; private String isTop;
private Long pid; private Long pid;
@@ -23,6 +23,8 @@ import lombok.EqualsAndHashCode;
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class SystemCreateDictArgs extends KitObject { public class SystemCreateDictArgs extends KitObject {
@NotBlank(message = "字典名称必填") private String name;
@NotBlank(message = "字典名称必填")
private String name;
private String description; private String description;
} }
@@ -25,8 +25,13 @@ import lombok.EqualsAndHashCode;
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class SystemCreateDictDetailArgs extends KitObject { public class SystemCreateDictDetailArgs extends KitObject {
@NotNull(message = "参数dict必填") private SystemDictTb dict;
@NotBlank(message = "字典标签必填") private String label; @NotNull(message = "参数dict必填")
@NotBlank(message = "字典值必填") private String value; private SystemDictTb dict;
@NotNull(message = "字典排序必填") private Integer dictSort; @NotBlank(message = "字典标签必填")
private String label;
@NotBlank(message = "字典值必填")
private String value;
@NotNull(message = "字典排序必填")
private Integer dictSort;
} }
@@ -24,7 +24,10 @@ import lombok.EqualsAndHashCode;
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class SystemCreateJobArgs extends KitObject { public class SystemCreateJobArgs extends KitObject {
@NotBlank(message = "职位名称必填") private String name;
@NotNull(message = "职位排序必填") private Integer jobSort; @NotBlank(message = "职位名称必填")
private String name;
@NotNull(message = "职位排序必填")
private Integer jobSort;
private Boolean enabled; private Boolean enabled;
} }
@@ -17,18 +17,22 @@ package cn.odboy.system.dal.model;
import cn.odboy.base.KitObject; import cn.odboy.base.KitObject;
import cn.odboy.system.dal.dataobject.SystemDeptTb; import cn.odboy.system.dal.dataobject.SystemDeptTb;
import java.util.Set;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import java.util.Set;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class SystemCreateRoleArgs extends KitObject { public class SystemCreateRoleArgs extends KitObject {
@NotBlank(message = "角色名称必填") private String name;
@NotNull(message = "角色级别必填") private Integer level; @NotBlank(message = "角色名称必填")
@NotBlank(message = "数据范围必填") private String dataScope; private String name;
@NotNull(message = "角色级别必填")
private Integer level;
@NotBlank(message = "数据范围必填")
private String dataScope;
private String description; private String description;
/** /**
* 关联的部门 * 关联的部门
@@ -24,5 +24,7 @@ import lombok.Setter;
@Getter @Getter
@Setter @Setter
public class SystemDictDetailVo extends SystemDictDetailTb { public class SystemDictDetailVo extends SystemDictDetailTb {
@ApiModelProperty(value = "字典") private SystemDictTb dict;
@ApiModelProperty(value = "字典")
private SystemDictTb dict;
} }
@@ -25,7 +25,11 @@ import lombok.EqualsAndHashCode;
@AllArgsConstructor @AllArgsConstructor
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class SystemMenuMetaVo extends KitObject { public class SystemMenuMetaVo extends KitObject {
@ApiModelProperty(value = "菜单标题") private String title;
@ApiModelProperty(value = "菜单图标") private String icon; @ApiModelProperty(value = "菜单标题")
@ApiModelProperty(value = "缓存") private Boolean noCache; private String title;
@ApiModelProperty(value = "菜单图标")
private String icon;
@ApiModelProperty(value = "缓存")
private Boolean noCache;
} }
@@ -27,12 +27,21 @@ import lombok.EqualsAndHashCode;
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class SystemMenuVo extends KitObject { public class SystemMenuVo extends KitObject {
@ApiModelProperty(value = "菜单名称") private String name;
@ApiModelProperty(value = "路径") private String path; @ApiModelProperty(value = "菜单名称")
@ApiModelProperty(value = "隐藏状态") private Boolean hidden; private String name;
@ApiModelProperty(value = "重定向") private String redirect; @ApiModelProperty(value = "路径")
@ApiModelProperty(value = "组件") private String component; private String path;
@ApiModelProperty(value = "总是显示") private Boolean alwaysShow; @ApiModelProperty(value = "隐藏状态")
@ApiModelProperty(value = "元数据") private SystemMenuMetaVo meta; private Boolean hidden;
@ApiModelProperty(value = "子路由") private List<SystemMenuVo> children; @ApiModelProperty(value = "重定向")
private String redirect;
@ApiModelProperty(value = "组件")
private String component;
@ApiModelProperty(value = "总是显示")
private Boolean alwaysShow;
@ApiModelProperty(value = "元数据")
private SystemMenuMetaVo meta;
@ApiModelProperty(value = "子路由")
private List<SystemMenuVo> children;
} }
@@ -22,5 +22,6 @@ import lombok.Setter;
@Getter @Getter
@Setter @Setter
public class SystemOssStorageVo extends SystemOssStorageTb { public class SystemOssStorageVo extends SystemOssStorageTb {
private String fileSizeDesc; private String fileSizeDesc;
} }
@@ -23,6 +23,7 @@ import lombok.Setter;
@Getter @Getter
@Setter @Setter
public class SystemProductLineTreeVo extends KitObject { public class SystemProductLineTreeVo extends KitObject {
private String value; private String value;
private String label; private String label;
private List<SystemProductLineTreeVo> children; private List<SystemProductLineTreeVo> children;
@@ -22,6 +22,7 @@ import lombok.Setter;
@Getter @Getter
@Setter @Setter
public class SystemProductLineVo extends KitObject { public class SystemProductLineVo extends KitObject {
/** /**
* 部门ID(select的value) * 部门ID(select的value)
*/ */
@@ -22,10 +22,17 @@ import lombok.Data;
@Data @Data
public class SystemQueryDeptArgs { public class SystemQueryDeptArgs {
@ApiModelProperty(value = "部门id集合") private List<Long> ids;
@ApiModelProperty(value = "部门名称") private String name; @ApiModelProperty(value = "部门id集合")
@ApiModelProperty(value = "是否启用") private Boolean enabled; private List<Long> ids;
@ApiModelProperty(value = "上级部门") private Long pid; @ApiModelProperty(value = "部门名称")
@ApiModelProperty(value = "PID为空查询") private Boolean pidIsNull; private String name;
@ApiModelProperty(value = "创建时间") private List<Date> createTime; @ApiModelProperty(value = "是否启用")
private Boolean enabled;
@ApiModelProperty(value = "上级部门")
private Long pid;
@ApiModelProperty(value = "PID为空查询")
private Boolean pidIsNull;
@ApiModelProperty(value = "创建时间")
private List<Date> createTime;
} }
@@ -20,7 +20,11 @@ import lombok.Data;
@Data @Data
public class SystemQueryDictArgs { public class SystemQueryDictArgs {
@ApiModelProperty(value = "模糊查询") private String blurry;
@ApiModelProperty(value = "页码", example = "1") private Integer page = 1; @ApiModelProperty(value = "模糊查询")
@ApiModelProperty(value = "每页数据量", example = "10") private Integer size = 10; private String blurry;
@ApiModelProperty(value = "页码", example = "1")
private Integer page = 1;
@ApiModelProperty(value = "每页数据量", example = "10")
private Integer size = 10;
} }
@@ -23,6 +23,9 @@ import lombok.Setter;
@Getter @Getter
@Setter @Setter
public class SystemQueryDictDetailArgs extends KitObject { public class SystemQueryDictDetailArgs extends KitObject {
@ApiModelProperty(value = "标签") private String label;
@ApiModelProperty(value = "字典名称") private String dictName; @ApiModelProperty(value = "标签")
private String label;
@ApiModelProperty(value = "字典名称")
private String dictName;
} }
@@ -24,9 +24,15 @@ import lombok.NoArgsConstructor;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
public class SystemQueryJobArgs { public class SystemQueryJobArgs {
@ApiModelProperty(value = "岗位名称") private String name;
@ApiModelProperty(value = "是否启用") private Boolean enabled; @ApiModelProperty(value = "岗位名称")
@ApiModelProperty(value = "创建时间") private List<Date> createTime; private String name;
@ApiModelProperty(value = "页码", example = "1") private Integer page = 1; @ApiModelProperty(value = "是否启用")
@ApiModelProperty(value = "每页数据量", example = "10") private Integer size = 10; private Boolean enabled;
@ApiModelProperty(value = "创建时间")
private List<Date> createTime;
@ApiModelProperty(value = "页码", example = "1")
private Integer page = 1;
@ApiModelProperty(value = "每页数据量", example = "10")
private Integer size = 10;
} }
@@ -22,8 +22,13 @@ import lombok.Data;
@Data @Data
public class SystemQueryMenuArgs { public class SystemQueryMenuArgs {
@ApiModelProperty(value = "模糊查询") private String blurry;
@ApiModelProperty(value = "创建时间") private List<Date> createTime; @ApiModelProperty(value = "模糊查询")
@ApiModelProperty(value = "PID为空查询") private Boolean pidIsNull; private String blurry;
@ApiModelProperty(value = "PID") private Long pid; @ApiModelProperty(value = "创建时间")
private List<Date> createTime;
@ApiModelProperty(value = "PID为空查询")
private Boolean pidIsNull;
@ApiModelProperty(value = "PID")
private Long pid;
} }
@@ -22,9 +22,15 @@ import lombok.Data;
@Data @Data
public class SystemQueryQuartzJobArgs { public class SystemQueryQuartzJobArgs {
@ApiModelProperty(value = "定时任务名称") private String jobName;
@ApiModelProperty(value = "是否成功") private Boolean isSuccess; @ApiModelProperty(value = "定时任务名称")
@ApiModelProperty(value = "创建时间") private List<Date> createTime; private String jobName;
@ApiModelProperty(value = "页码", example = "1") private Integer page = 1; @ApiModelProperty(value = "是否成功")
@ApiModelProperty(value = "每页数据量", example = "10") private Integer size = 10; private Boolean isSuccess;
@ApiModelProperty(value = "创建时间")
private List<Date> createTime;
@ApiModelProperty(value = "页码", example = "1")
private Integer page = 1;
@ApiModelProperty(value = "每页数据量", example = "10")
private Integer size = 10;
} }
@@ -22,9 +22,15 @@ import lombok.Data;
@Data @Data
public class SystemQueryRoleArgs { public class SystemQueryRoleArgs {
@ApiModelProperty(value = "模糊查询") private String blurry;
@ApiModelProperty(value = "创建时间") private List<Date> createTime; @ApiModelProperty(value = "模糊查询")
@ApiModelProperty(value = "页码", example = "1") private Integer page = 1; private String blurry;
@ApiModelProperty(value = "每页数据量", example = "10") private Integer size = 10; @ApiModelProperty(value = "创建时间")
@ApiModelProperty(value = "偏移量", hidden = true) private long offset; private List<Date> createTime;
@ApiModelProperty(value = "页码", example = "1")
private Integer page = 1;
@ApiModelProperty(value = "每页数据量", example = "10")
private Integer size = 10;
@ApiModelProperty(value = "偏移量", hidden = true)
private long offset;
} }
@@ -22,8 +22,13 @@ import lombok.Data;
@Data @Data
public class SystemQueryStorageArgs { public class SystemQueryStorageArgs {
@ApiModelProperty(value = "模糊查询") private String blurry;
@ApiModelProperty(value = "创建时间") private List<Date> createTime; @ApiModelProperty(value = "模糊查询")
@ApiModelProperty(value = "页码", example = "1") private Integer page = 1; private String blurry;
@ApiModelProperty(value = "每页数据量", example = "10") private Integer size = 10; @ApiModelProperty(value = "创建时间")
private List<Date> createTime;
@ApiModelProperty(value = "页码", example = "1")
private Integer page = 1;
@ApiModelProperty(value = "每页数据量", example = "10")
private Integer size = 10;
} }
@@ -27,12 +27,21 @@ import lombok.EqualsAndHashCode;
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class SystemQueryUserArgs extends KitObject { public class SystemQueryUserArgs extends KitObject {
@ApiModelProperty(value = "ID") private Long id;
@ApiModelProperty(value = "多个ID") private Set<Long> deptIds = new HashSet<>(); @ApiModelProperty(value = "ID")
@ApiModelProperty(value = "模糊查询") private String blurry; private Long id;
@ApiModelProperty(value = "是否启用") private Boolean enabled; @ApiModelProperty(value = "多个ID")
@ApiModelProperty(value = "部门ID") private Long deptId; private Set<Long> deptIds = new HashSet<>();
@ApiModelProperty(value = "创建时间") private List<Date> createTime; @ApiModelProperty(value = "模糊查询")
@ApiModelProperty(value = "页码", example = "1") private Integer page = 1; private String blurry;
@ApiModelProperty(value = "每页数据量", example = "10") private Integer size = 10; @ApiModelProperty(value = "是否启用")
private Boolean enabled;
@ApiModelProperty(value = "部门ID")
private Long deptId;
@ApiModelProperty(value = "创建时间")
private List<Date> createTime;
@ApiModelProperty(value = "页码", example = "1")
private Integer page = 1;
@ApiModelProperty(value = "每页数据量", example = "10")
private Integer size = 10;
} }
@@ -28,5 +28,7 @@ import org.springframework.security.core.GrantedAuthority;
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class SystemRoleCodeVo implements GrantedAuthority { public class SystemRoleCodeVo implements GrantedAuthority {
@ApiModelProperty(value = "角色名") private String authority;
@ApiModelProperty(value = "角色名")
private String authority;
} }
@@ -12,7 +12,11 @@ import lombok.Setter;
@Getter @Getter
@Setter @Setter
public class SystemRoleVo extends SystemRoleTb { public class SystemRoleVo extends SystemRoleTb {
@ApiModelProperty(value = "用户", hidden = true) private Set<SystemUserTb> users;
@ApiModelProperty(value = "菜单", hidden = true) private Set<SystemMenuTb> menus; @ApiModelProperty(value = "用户", hidden = true)
@ApiModelProperty(value = "部门", hidden = true) private Set<SystemDeptTb> depts; private Set<SystemUserTb> users;
@ApiModelProperty(value = "菜单", hidden = true)
private Set<SystemMenuTb> menus;
@ApiModelProperty(value = "部门", hidden = true)
private Set<SystemDeptTb> depts;
} }
@@ -16,9 +16,9 @@
package cn.odboy.system.dal.model; package cn.odboy.system.dal.model;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.util.List;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotEmpty;
import java.util.List;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -30,7 +30,14 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
public class SystemSendEmailArgs { public class SystemSendEmailArgs {
@NotEmpty @ApiModelProperty(value = "收件人") private List<String> tos;
@NotBlank @ApiModelProperty(value = "主题") private String subject; @NotEmpty
@NotBlank @ApiModelProperty(value = "内容") private String content; @ApiModelProperty(value = "收件人")
private List<String> tos;
@NotBlank
@ApiModelProperty(value = "主题")
private String subject;
@NotBlank
@ApiModelProperty(value = "内容")
private String content;
} }
@@ -28,17 +28,30 @@ import lombok.EqualsAndHashCode;
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class SystemSimpleUserVo extends KitObject { public class SystemSimpleUserVo extends KitObject {
@ApiModelProperty(value = "ID", hidden = true) private Long id;
@ApiModelProperty(value = "用户角色") private Set<SystemRoleTb> roles; @ApiModelProperty(value = "ID", hidden = true)
@ApiModelProperty(value = "用户岗位") private Set<SystemJobTb> jobs; private Long id;
@ApiModelProperty(value = "用户角色")
private Set<SystemRoleTb> roles;
@ApiModelProperty(value = "用户岗位")
private Set<SystemJobTb> jobs;
private Long deptId; private Long deptId;
@TableField(exist = false) private SystemDeptTb dept; @TableField(exist = false)
@ApiModelProperty(value = "用户名称") private String username; private SystemDeptTb dept;
@ApiModelProperty(value = "用户昵称") private String nickName; @ApiModelProperty(value = "用户名称")
@ApiModelProperty(value = "邮箱") private String email; private String username;
@ApiModelProperty(value = "电话号码") private String phone; @ApiModelProperty(value = "用户昵称")
@ApiModelProperty(value = "用户性别") private String gender; private String nickName;
@ApiModelProperty(value = "头像真实名称", hidden = true) private String avatarName; @ApiModelProperty(value = "邮箱")
@ApiModelProperty(value = "是否启用") private Boolean enabled; private String email;
@ApiModelProperty(value = "是否为admin账号", hidden = true) private Boolean isAdmin = false; @ApiModelProperty(value = "电话号码")
private String phone;
@ApiModelProperty(value = "用户性别")
private String gender;
@ApiModelProperty(value = "头像真实名称", hidden = true)
private String avatarName;
@ApiModelProperty(value = "是否启用")
private Boolean enabled;
@ApiModelProperty(value = "是否为admin账号", hidden = true)
private Boolean isAdmin = false;
} }
@@ -24,17 +24,23 @@ import lombok.EqualsAndHashCode;
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class SystemUpdateQuartzJobArgs extends KitObject { public class SystemUpdateQuartzJobArgs extends KitObject {
@NotNull private Long id;
@NotNull
private Long id;
private String uuid; private String uuid;
private String jobName; private String jobName;
@NotBlank private String beanName; @NotBlank
@NotBlank private String methodName; private String beanName;
@NotBlank
private String methodName;
private String params; private String params;
@NotBlank private String cronExpression; @NotBlank
private String cronExpression;
private Boolean isPause = false; private Boolean isPause = false;
private String personInCharge; private String personInCharge;
private String email; private String email;
private String subTask; private String subTask;
private Boolean pauseAfterFailure; private Boolean pauseAfterFailure;
@NotBlank private String description; @NotBlank
private String description;
} }
@@ -23,6 +23,9 @@ import lombok.Data;
*/ */
@Data @Data
public class SystemUpdateUserPasswordArgs { public class SystemUpdateUserPasswordArgs {
@ApiModelProperty(value = "旧密码") private String oldPass;
@ApiModelProperty(value = "新密码") private String newPass; @ApiModelProperty(value = "旧密码")
private String oldPass;
@ApiModelProperty(value = "新密码")
private String newPass;
} }
@@ -25,6 +25,7 @@ import lombok.EqualsAndHashCode;
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class SystemUserInfoVo extends KitObject { public class SystemUserInfoVo extends KitObject {
private SystemSimpleUserVo user; private SystemSimpleUserVo user;
private List<Long> dataScopes; private List<Long> dataScopes;
private List<SystemRoleCodeVo> authorities; private List<SystemRoleCodeVo> authorities;
@@ -28,9 +28,13 @@ import org.springframework.security.core.userdetails.UserDetails;
@Getter @Getter
@AllArgsConstructor @AllArgsConstructor
public class SystemUserJwtVo implements UserDetails { public class SystemUserJwtVo implements UserDetails {
@ApiModelProperty(value = "用户") private final SystemUserTb user;
@ApiModelProperty(value = "数据权限") private final List<Long> dataScopes; @ApiModelProperty(value = "用户")
@ApiModelProperty(value = "角色") private final List<SystemRoleCodeVo> authorities; private final SystemUserTb user;
@ApiModelProperty(value = "数据权限")
private final List<Long> dataScopes;
@ApiModelProperty(value = "角色")
private final List<SystemRoleCodeVo> authorities;
public Set<String> getRoles() { public Set<String> getRoles() {
return authorities.stream().map(SystemRoleCodeVo::getAuthority).collect(Collectors.toSet()); return authorities.stream().map(SystemRoleCodeVo::getAuthority).collect(Collectors.toSet());
@@ -23,8 +23,15 @@ import lombok.Setter;
@Getter @Getter
@Setter @Setter
public class SystemUserLoginArgs { public class SystemUserLoginArgs {
@NotBlank @ApiModelProperty(value = "用户名") private String username;
@NotBlank @ApiModelProperty(value = "密码") private String password; @NotBlank
@ApiModelProperty(value = "验证码") private String code; @ApiModelProperty(value = "用户名")
@ApiModelProperty(value = "验证码的key") private String uuid = ""; private String username;
@NotBlank
@ApiModelProperty(value = "密码")
private String password;
@ApiModelProperty(value = "验证码")
private String code;
@ApiModelProperty(value = "验证码的key")
private String uuid = "";
} }
@@ -24,13 +24,23 @@ import lombok.Data;
*/ */
@Data @Data
public class SystemUserOnlineVo { public class SystemUserOnlineVo {
@ApiModelProperty(value = "Token编号") private String uid;
@ApiModelProperty(value = "用户名") private String userName; @ApiModelProperty(value = "Token编号")
@ApiModelProperty(value = "昵称") private String nickName; private String uid;
@ApiModelProperty(value = "岗位") private String dept; @ApiModelProperty(value = "用户名")
@ApiModelProperty(value = "浏览器") private String browser; private String userName;
@ApiModelProperty(value = "IP") private String ip; @ApiModelProperty(value = "昵称")
@ApiModelProperty(value = "地址") private String address; private String nickName;
@ApiModelProperty(value = "token") private String key; @ApiModelProperty(value = "岗位")
@ApiModelProperty(value = "登录时间") private Date loginTime; private String dept;
@ApiModelProperty(value = "浏览器")
private String browser;
@ApiModelProperty(value = "IP")
private String ip;
@ApiModelProperty(value = "地址")
private String address;
@ApiModelProperty(value = "token")
private String key;
@ApiModelProperty(value = "登录时间")
private Date loginTime;
} }
@@ -11,6 +11,9 @@ import lombok.Setter;
@Getter @Getter
@Setter @Setter
public class SystemUserVo extends SystemUserTb { public class SystemUserVo extends SystemUserTb {
@ApiModelProperty(value = "用户角色") private Set<SystemRoleTb> roles;
@ApiModelProperty(value = "用户岗位") private Set<SystemJobTb> jobs; @ApiModelProperty(value = "用户角色")
private Set<SystemRoleTb> roles;
@ApiModelProperty(value = "用户岗位")
private Set<SystemJobTb> jobs;
} }
@@ -32,16 +32,19 @@ import org.apache.ibatis.annotations.Mapper;
*/ */
@Mapper @Mapper
public interface SystemDeptMapper extends BaseMapper<SystemDeptTb> { public interface SystemDeptMapper extends BaseMapper<SystemDeptTb> {
default List<SystemDeptTb> selectDeptByPidIsNull() { default List<SystemDeptTb> selectDeptByPidIsNull() {
LambdaQueryWrapper<SystemDeptTb> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SystemDeptTb> wrapper = new LambdaQueryWrapper<>();
wrapper.isNull(SystemDeptTb::getPid); wrapper.isNull(SystemDeptTb::getPid);
return selectList(wrapper); return selectList(wrapper);
} }
default long countDeptByPid(Long pid) { default long countDeptByPid(Long pid) {
LambdaQueryWrapper<SystemDeptTb> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SystemDeptTb> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SystemDeptTb::getPid, pid); wrapper.eq(SystemDeptTb::getPid, pid);
return selectCount(wrapper); return selectCount(wrapper);
} }
default List<SystemDeptTb> queryDeptByArgs(SystemQueryDeptArgs criteria) { default List<SystemDeptTb> queryDeptByArgs(SystemQueryDeptArgs criteria) {
LambdaQueryWrapper<SystemDeptTb> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SystemDeptTb> wrapper = new LambdaQueryWrapper<>();
if (criteria != null) { if (criteria != null) {
@@ -58,16 +61,19 @@ public interface SystemDeptMapper extends BaseMapper<SystemDeptTb> {
wrapper.orderByAsc(SystemDeptTb::getDeptSort); wrapper.orderByAsc(SystemDeptTb::getDeptSort);
return selectList(wrapper); return selectList(wrapper);
} }
default List<SystemDeptTb> selectEnabledDepts() { default List<SystemDeptTb> selectEnabledDepts() {
LambdaQueryWrapper<SystemDeptTb> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SystemDeptTb> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SystemDeptTb::getEnabled, 1); wrapper.eq(SystemDeptTb::getEnabled, 1);
return selectList(wrapper); return selectList(wrapper);
} }
default List<SystemDeptTb> selectDeptByPid(long pid) { default List<SystemDeptTb> selectDeptByPid(long pid) {
LambdaQueryWrapper<SystemDeptTb> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SystemDeptTb> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SystemDeptTb::getPid, pid); wrapper.eq(SystemDeptTb::getPid, pid);
return selectList(wrapper); return selectList(wrapper);
} }
default void updateDeptSubCountById(long count, Long deptId) { default void updateDeptSubCountById(long count, Long deptId) {
LambdaUpdateWrapper<SystemDeptTb> wrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<SystemDeptTb> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(SystemDeptTb::getId, deptId); wrapper.eq(SystemDeptTb::getId, deptId);
@@ -31,11 +31,13 @@ import org.apache.ibatis.annotations.Mapper;
*/ */
@Mapper @Mapper
public interface SystemDictDetailMapper extends BaseMapper<SystemDictDetailTb> { public interface SystemDictDetailMapper extends BaseMapper<SystemDictDetailTb> {
default List<SystemDictDetailTb> selectByDictId(Long dictId) { default List<SystemDictDetailTb> selectByDictId(Long dictId) {
LambdaQueryWrapper<SystemDictDetailTb> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SystemDictDetailTb> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SystemDictDetailTb::getDictId, dictId); wrapper.eq(SystemDictDetailTb::getDictId, dictId);
return selectList(wrapper); return selectList(wrapper);
} }
default IPage<SystemDictDetailTb> selectDictDetailByArgs(List<Long> dictIds, Page<SystemDictDetailTb> page) { default IPage<SystemDictDetailTb> selectDictDetailByArgs(List<Long> dictIds, Page<SystemDictDetailTb> page) {
LambdaQueryWrapper<SystemDictDetailTb> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SystemDictDetailTb> wrapper = new LambdaQueryWrapper<>();
wrapper.in(CollUtil.isNotEmpty(dictIds), SystemDictDetailTb::getDictId, dictIds); wrapper.in(CollUtil.isNotEmpty(dictIds), SystemDictDetailTb::getDictId, dictIds);
@@ -31,22 +31,26 @@ import org.apache.ibatis.annotations.Mapper;
*/ */
@Mapper @Mapper
public interface SystemDictMapper extends BaseMapper<SystemDictTb> { public interface SystemDictMapper extends BaseMapper<SystemDictTb> {
default void injectQueryParams(SystemQueryDictArgs args, LambdaQueryWrapper<SystemDictTb> wrapper) { default void injectQueryParams(SystemQueryDictArgs args, LambdaQueryWrapper<SystemDictTb> wrapper) {
if (args != null) { if (args != null) {
wrapper.and(StrUtil.isNotBlank(args.getBlurry()), c -> c.like(SystemDictTb::getName, args.getBlurry()).or() wrapper.and(StrUtil.isNotBlank(args.getBlurry()), c -> c.like(SystemDictTb::getName, args.getBlurry()).or()
.like(SystemDictTb::getDescription, args.getBlurry())); .like(SystemDictTb::getDescription, args.getBlurry()));
} }
} }
default List<SystemDictTb> selectDictByArgs(SystemQueryDictArgs args) { default List<SystemDictTb> selectDictByArgs(SystemQueryDictArgs args) {
LambdaQueryWrapper<SystemDictTb> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SystemDictTb> wrapper = new LambdaQueryWrapper<>();
injectQueryParams(args, wrapper); injectQueryParams(args, wrapper);
return selectList(wrapper); return selectList(wrapper);
} }
default List<SystemDictTb> selectDictByArgs(SystemQueryDictArgs args, Page<SystemDictTb> page) { default List<SystemDictTb> selectDictByArgs(SystemQueryDictArgs args, Page<SystemDictTb> page) {
LambdaQueryWrapper<SystemDictTb> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SystemDictTb> wrapper = new LambdaQueryWrapper<>();
injectQueryParams(args, wrapper); injectQueryParams(args, wrapper);
return selectList(page, wrapper); return selectList(page, wrapper);
} }
default SystemDictTb getByName(String name) { default SystemDictTb getByName(String name) {
LambdaQueryWrapper<SystemDictTb> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SystemDictTb> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SystemDictTb::getName, name); wrapper.eq(SystemDictTb::getName, name);
@@ -25,4 +25,6 @@ import org.apache.ibatis.annotations.Mapper;
* @author odboy * @author odboy
*/ */
@Mapper @Mapper
public interface SystemEmailConfigMapper extends BaseMapper<SystemEmailConfigTb> {} public interface SystemEmailConfigMapper extends BaseMapper<SystemEmailConfigTb> {
}
@@ -33,11 +33,13 @@ import org.apache.ibatis.annotations.Mapper;
*/ */
@Mapper @Mapper
public interface SystemJobMapper extends BaseMapper<SystemJobTb> { public interface SystemJobMapper extends BaseMapper<SystemJobTb> {
default SystemJobTb getJobByName(String name) { default SystemJobTb getJobByName(String name) {
LambdaQueryWrapper<SystemJobTb> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SystemJobTb> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SystemJobTb::getName, name); wrapper.eq(SystemJobTb::getName, name);
return selectOne(wrapper); return selectOne(wrapper);
} }
default void injectQueryParams(SystemQueryJobArgs criteria, LambdaQueryWrapper<SystemJobTb> wrapper) { default void injectQueryParams(SystemQueryJobArgs criteria, LambdaQueryWrapper<SystemJobTb> wrapper) {
if (criteria != null) { if (criteria != null) {
wrapper.like(StrUtil.isNotBlank(criteria.getName()), SystemJobTb::getName, criteria.getName()); wrapper.like(StrUtil.isNotBlank(criteria.getName()), SystemJobTb::getName, criteria.getName());
@@ -33,6 +33,7 @@ import org.apache.ibatis.annotations.Mapper;
*/ */
@Mapper @Mapper
public interface SystemLocalStorageMapper extends BaseMapper<SystemLocalStorageTb> { public interface SystemLocalStorageMapper extends BaseMapper<SystemLocalStorageTb> {
default void injectQueryParams(SystemQueryStorageArgs criteria, LambdaQueryWrapper<SystemLocalStorageTb> wrapper) { default void injectQueryParams(SystemQueryStorageArgs criteria, LambdaQueryWrapper<SystemLocalStorageTb> wrapper) {
if (criteria != null) { if (criteria != null) {
wrapper.and(StrUtil.isNotBlank(criteria.getBlurry()), wrapper.and(StrUtil.isNotBlank(criteria.getBlurry()),
@@ -32,6 +32,7 @@ import org.apache.ibatis.annotations.Mapper;
*/ */
@Mapper @Mapper
public interface SystemMenuMapper extends BaseMapper<SystemMenuTb> { public interface SystemMenuMapper extends BaseMapper<SystemMenuTb> {
default void updateMenuSubCntByMenuId(Long count, Long menuId) { default void updateMenuSubCntByMenuId(Long count, Long menuId) {
if (count != null) { if (count != null) {
LambdaUpdateWrapper<SystemMenuTb> wrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<SystemMenuTb> wrapper = new LambdaUpdateWrapper<>();
@@ -40,6 +41,7 @@ public interface SystemMenuMapper extends BaseMapper<SystemMenuTb> {
update(wrapper); update(wrapper);
} }
} }
default SystemMenuTb getMenuByComponentName(String componentName) { default SystemMenuTb getMenuByComponentName(String componentName) {
LambdaQueryWrapper<SystemMenuTb> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SystemMenuTb> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SystemMenuTb::getComponentName, componentName); wrapper.eq(SystemMenuTb::getComponentName, componentName);
@@ -20,4 +20,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@Mapper @Mapper
public interface SystemOperationLogMapper extends BaseMapper<SystemOperationLogTb> {} public interface SystemOperationLogMapper extends BaseMapper<SystemOperationLogTb> {
}
@@ -28,4 +28,6 @@ import org.apache.ibatis.annotations.Mapper;
* @since 2025-07-15 * @since 2025-07-15
*/ */
@Mapper @Mapper
public interface SystemOssStorageMapper extends BaseMapper<SystemOssStorageTb> {} public interface SystemOssStorageMapper extends BaseMapper<SystemOssStorageTb> {
}
@@ -25,4 +25,6 @@ import org.apache.ibatis.annotations.Mapper;
* @author odboy * @author odboy
*/ */
@Mapper @Mapper
public interface SystemQuartzJobMapper extends BaseMapper<SystemQuartzJobTb> {} public interface SystemQuartzJobMapper extends BaseMapper<SystemQuartzJobTb> {
}
@@ -25,4 +25,6 @@ import org.apache.ibatis.annotations.Mapper;
* @author odboy * @author odboy
*/ */
@Mapper @Mapper
public interface SystemQuartzLogMapper extends BaseMapper<SystemQuartzLogTb> {} public interface SystemQuartzLogMapper extends BaseMapper<SystemQuartzLogTb> {
}
@@ -25,4 +25,6 @@ import org.apache.ibatis.annotations.Mapper;
* @author odboy * @author odboy
*/ */
@Mapper @Mapper
public interface SystemRoleDeptMapper extends BaseMapper<SystemRoleDeptTb> {} public interface SystemRoleDeptMapper extends BaseMapper<SystemRoleDeptTb> {
}
@@ -34,6 +34,7 @@ import org.apache.ibatis.annotations.Param;
*/ */
@Mapper @Mapper
public interface SystemRoleMapper extends BaseMapper<SystemRoleTb> { public interface SystemRoleMapper extends BaseMapper<SystemRoleTb> {
default Long countRoleByArgs(SystemQueryRoleArgs criteria) { default Long countRoleByArgs(SystemQueryRoleArgs criteria) {
LambdaQueryWrapper<SystemRoleTb> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SystemRoleTb> wrapper = new LambdaQueryWrapper<>();
if (criteria != null) { if (criteria != null) {
@@ -47,9 +48,14 @@ public interface SystemRoleMapper extends BaseMapper<SystemRoleTb> {
} }
return selectCount(wrapper); return selectCount(wrapper);
} }
List<SystemRoleVo> selectRoleByArgs(@Param("criteria") SystemQueryRoleArgs criteria); List<SystemRoleVo> selectRoleByArgs(@Param("criteria") SystemQueryRoleArgs criteria);
List<SystemRoleVo> selectRoleByUserId(@Param("userId") Long userId); List<SystemRoleVo> selectRoleByUserId(@Param("userId") Long userId);
List<SystemRoleVo> selectRoleByMenuId(@Param("menuId") Long menuId); List<SystemRoleVo> selectRoleByMenuId(@Param("menuId") Long menuId);
SystemRoleVo getRoleById(@Param("roleId") Long roleId); SystemRoleVo getRoleById(@Param("roleId") Long roleId);
Integer countRoleByDeptIds(@Param("deptIds") Set<Long> deptIds); Integer countRoleByDeptIds(@Param("deptIds") Set<Long> deptIds);
} }
@@ -25,4 +25,6 @@ import org.apache.ibatis.annotations.Mapper;
* @author odboy * @author odboy
*/ */
@Mapper @Mapper
public interface SystemRoleMenuMapper extends BaseMapper<SystemRoleMenuTb> {} public interface SystemRoleMenuMapper extends BaseMapper<SystemRoleMenuTb> {
}
@@ -25,4 +25,6 @@ import org.apache.ibatis.annotations.Mapper;
* @author odboy * @author odboy
*/ */
@Mapper @Mapper
public interface SystemUserJobMapper extends BaseMapper<SystemUserJobTb> {} public interface SystemUserJobMapper extends BaseMapper<SystemUserJobTb> {
}
@@ -30,43 +30,57 @@ import org.apache.ibatis.annotations.Param;
@Mapper @Mapper
public interface SystemUserMapper extends BaseMapper<SystemUserTb> { public interface SystemUserMapper extends BaseMapper<SystemUserTb> {
List<SystemUserVo> selectUserByArgs(@Param("criteria") SystemQueryUserArgs criteria); List<SystemUserVo> selectUserByArgs(@Param("criteria") SystemQueryUserArgs criteria);
IPage<SystemUserVo> selectUserByArgs(@Param("criteria") SystemQueryUserArgs criteria, Page<SystemUserTb> page); IPage<SystemUserVo> selectUserByArgs(@Param("criteria") SystemQueryUserArgs criteria, Page<SystemUserTb> page);
List<SystemUserVo> selectUserByRoleId(@Param("roleId") Long roleId); List<SystemUserVo> selectUserByRoleId(@Param("roleId") Long roleId);
List<SystemUserVo> selectUserByDeptId(@Param("deptId") Long deptId); List<SystemUserVo> selectUserByDeptId(@Param("deptId") Long deptId);
List<SystemUserVo> selectUserByMenuId(@Param("menuId") Long menuId); List<SystemUserVo> selectUserByMenuId(@Param("menuId") Long menuId);
Long countUserByJobIds(@Param("jobIds") Set<Long> jobIds); Long countUserByJobIds(@Param("jobIds") Set<Long> jobIds);
Long countUserByRoleIds(@Param("roleIds") Set<Long> roleIds); Long countUserByRoleIds(@Param("roleIds") Set<Long> roleIds);
SystemUserVo getUserByUsername(@Param("username") String username); SystemUserVo getUserByUsername(@Param("username") String username);
default long countUserByDeptIds(Set<Long> deptIds) { default long countUserByDeptIds(Set<Long> deptIds) {
LambdaQueryWrapper<SystemUserTb> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SystemUserTb> wrapper = new LambdaQueryWrapper<>();
wrapper.in(SystemUserTb::getDeptId, deptIds); wrapper.in(SystemUserTb::getDeptId, deptIds);
return selectCount(wrapper); return selectCount(wrapper);
} }
default SystemUserTb getUserByEmail(String email) { default SystemUserTb getUserByEmail(String email) {
LambdaQueryWrapper<SystemUserTb> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SystemUserTb> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SystemUserTb::getEmail, email); wrapper.eq(SystemUserTb::getEmail, email);
wrapper.eq(SystemUserTb::getEnabled, 1); wrapper.eq(SystemUserTb::getEnabled, 1);
return selectOne(wrapper); return selectOne(wrapper);
} }
default SystemUserTb getUserByPhone(String phone) { default SystemUserTb getUserByPhone(String phone) {
LambdaQueryWrapper<SystemUserTb> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SystemUserTb> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SystemUserTb::getPhone, phone); wrapper.eq(SystemUserTb::getPhone, phone);
wrapper.eq(SystemUserTb::getEnabled, 1); wrapper.eq(SystemUserTb::getEnabled, 1);
return selectOne(wrapper); return selectOne(wrapper);
} }
default void updateUserPasswordByUsername(String username, String password) { default void updateUserPasswordByUsername(String username, String password) {
LambdaUpdateWrapper<SystemUserTb> wrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<SystemUserTb> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(SystemUserTb::getUsername, username); wrapper.eq(SystemUserTb::getUsername, username);
wrapper.set(SystemUserTb::getPassword, password); wrapper.set(SystemUserTb::getPassword, password);
update(null, wrapper); update(null, wrapper);
} }
default void updateUserEmailByUsername(String username, String email) { default void updateUserEmailByUsername(String username, String email) {
LambdaUpdateWrapper<SystemUserTb> wrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<SystemUserTb> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(SystemUserTb::getUsername, username); wrapper.eq(SystemUserTb::getUsername, username);
wrapper.set(SystemUserTb::getEmail, email); wrapper.set(SystemUserTb::getEmail, email);
update(null, wrapper); update(null, wrapper);
} }
default void updateUserPasswordByUserIds(String password, Set<Long> userIds) { default void updateUserPasswordByUserIds(String password, Set<Long> userIds) {
LambdaUpdateWrapper<SystemUserTb> wrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<SystemUserTb> wrapper = new LambdaUpdateWrapper<>();
wrapper.in(SystemUserTb::getId, userIds); wrapper.in(SystemUserTb::getId, userIds);
@@ -20,4 +20,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@Mapper @Mapper
public interface SystemUserRoleMapper extends BaseMapper<SystemUserRoleTb> {} public interface SystemUserRoleMapper extends BaseMapper<SystemUserRoleTb> {
}
@@ -19,6 +19,7 @@ package cn.odboy.system.dal.redis;
* 关于缓存的Key集合 * 关于缓存的Key集合
*/ */
public interface SystemCacheKey { public interface SystemCacheKey {
/** /**
* 用户 * 用户
*/ */
@@ -4,6 +4,7 @@ package cn.odboy.system.dal.redis;
* 关于缓存的Key集合 * 关于缓存的Key集合
*/ */
public interface SystemRedisKey { public interface SystemRedisKey {
/** /**
* 用户 * 用户
*/ */
@@ -13,7 +13,9 @@ import org.springframework.stereotype.Component;
*/ */
@Component @Component
public class SystemUserInfoDAO { public class SystemUserInfoDAO {
@Autowired private KitRedisHelper redisHelper;
@Autowired
private KitRedisHelper redisHelper;
/** /**
* 添加缓存到Redis * 添加缓存到Redis
@@ -13,8 +13,6 @@ import cn.odboy.util.KitFileUtil;
import cn.odboy.util.KitIPUtil; import cn.odboy.util.KitIPUtil;
import cn.odboy.util.KitPageUtil; import cn.odboy.util.KitPageUtil;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
@@ -23,6 +21,8 @@ import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -31,6 +31,7 @@ import org.springframework.stereotype.Component;
@Component @Component
@AllArgsConstructor @AllArgsConstructor
public class SystemUserOnlineInfoDAO { public class SystemUserOnlineInfoDAO {
private final AppProperties properties; private final AppProperties properties;
private final TokenProvider tokenProvider; private final TokenProvider tokenProvider;
private final KitRedisHelper redisHelper; private final KitRedisHelper redisHelper;
@@ -35,9 +35,13 @@ import org.springframework.stereotype.Service;
*/ */
@Service @Service
public class SystemDataService { public class SystemDataService {
@Autowired private SystemRoleService systemRoleService;
@Autowired private SystemDeptService systemDeptService; @Autowired
@Autowired private SystemRoleDeptService systemRoleDeptService; private SystemRoleService systemRoleService;
@Autowired
private SystemDeptService systemDeptService;
@Autowired
private SystemRoleDeptService systemRoleDeptService;
/** /**
* 获取数据权限 * 获取数据权限
@@ -34,7 +34,6 @@ import cn.odboy.system.dal.mysql.SystemUserMapper;
import cn.odboy.system.framework.permission.core.KitSecurityHelper; import cn.odboy.system.framework.permission.core.KitSecurityHelper;
import cn.odboy.util.KitClassUtil; import cn.odboy.util.KitClassUtil;
import cn.odboy.util.KitFileUtil; import cn.odboy.util.KitFileUtil;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.ArrayList; import java.util.ArrayList;
@@ -48,15 +47,20 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@Service @Service
public class SystemDeptService { public class SystemDeptService {
@Autowired private SystemDeptMapper systemDeptMapper;
@Autowired private SystemUserMapper systemUserMapper; @Autowired
@Autowired private SystemRoleMapper systemRoleMapper; private SystemDeptMapper systemDeptMapper;
@Autowired
private SystemUserMapper systemUserMapper;
@Autowired
private SystemRoleMapper systemRoleMapper;
/** /**
* 创建 * 创建
@@ -41,8 +41,11 @@ import org.springframework.transaction.annotation.Transactional;
@Service @Service
public class SystemDictDetailService { public class SystemDictDetailService {
@Autowired private SystemDictDetailMapper systemDictDetailMapper;
@Autowired private SystemDictMapper systemDictMapper; @Autowired
private SystemDictDetailMapper systemDictDetailMapper;
@Autowired
private SystemDictMapper systemDictMapper;
/** /**
* 创建 * 创建
@@ -27,22 +27,25 @@ import cn.odboy.system.dal.mysql.SystemDictMapper;
import cn.odboy.util.KitFileUtil; import cn.odboy.util.KitFileUtil;
import cn.odboy.util.KitPageUtil; import cn.odboy.util.KitPageUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@Service @Service
public class SystemDictService { public class SystemDictService {
@Autowired private SystemDictMapper systemDictMapper;
@Autowired
private SystemDictMapper systemDictMapper;
// @Autowired private SystemDictDetailMapper systemDictDetailMapper; // @Autowired private SystemDictDetailMapper systemDictDetailMapper;
@Autowired private SystemDictDetailService systemDictDetailService; @Autowired
private SystemDictDetailService systemDictDetailService;
/** /**
* 创建 * 创建
@@ -38,10 +38,15 @@ import org.springframework.transaction.annotation.Transactional;
@Slf4j @Slf4j
@Service @Service
public class SystemEmailService { public class SystemEmailService {
@Autowired private SystemEmailConfigMapper systemEmailConfigMapper;
@Autowired private KitRedisHelper redisHelper; @Autowired
@Autowired private AppProperties properties; private SystemEmailConfigMapper systemEmailConfigMapper;
@Value("${spring.application.title}") private String applicationTitle; @Autowired
private KitRedisHelper redisHelper;
@Autowired
private AppProperties properties;
@Value("${spring.application.title}")
private String applicationTitle;
/** /**
* 更新邮件配置 * 更新邮件配置
@@ -26,21 +26,24 @@ import cn.odboy.system.dal.mysql.SystemUserMapper;
import cn.odboy.util.KitFileUtil; import cn.odboy.util.KitFileUtil;
import cn.odboy.util.KitPageUtil; import cn.odboy.util.KitPageUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@Service @Service
public class SystemJobService { public class SystemJobService {
@Autowired private SystemJobMapper systemJobMapper;
@Autowired private SystemUserMapper systemUserMapper; @Autowired
private SystemJobMapper systemJobMapper;
@Autowired
private SystemUserMapper systemUserMapper;
/** /**
* 创建 * 创建
@@ -29,7 +29,6 @@ import cn.odboy.system.dal.mysql.SystemLocalStorageMapper;
import cn.odboy.util.KitFileUtil; import cn.odboy.util.KitFileUtil;
import cn.odboy.util.KitPageUtil; import cn.odboy.util.KitPageUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jakarta.servlet.http.HttpServletResponse;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
@@ -37,6 +36,7 @@ import java.util.Date;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@@ -44,9 +44,13 @@ import org.springframework.web.multipart.MultipartFile;
@Service @Service
public class SystemLocalStorageService { public class SystemLocalStorageService {
@Autowired private SystemLocalStorageMapper systemLocalStorageMapper;
@Autowired private KitFileLocalUploadHelper fileUploadPathHelper; @Autowired
@Autowired private AppProperties properties; private SystemLocalStorageMapper systemLocalStorageMapper;
@Autowired
private KitFileLocalUploadHelper fileUploadPathHelper;
@Autowired
private AppProperties properties;
/** /**
* 上传 * 上传
@@ -34,7 +34,6 @@ import cn.odboy.system.dal.mysql.SystemRoleMenuMapper;
import cn.odboy.util.KitClassUtil; import cn.odboy.util.KitClassUtil;
import cn.odboy.util.KitFileUtil; import cn.odboy.util.KitFileUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.ArrayList; import java.util.ArrayList;
@@ -46,18 +45,24 @@ import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@Service @Service
public class SystemMenuService { public class SystemMenuService {
private static final String YES_STR = "是"; private static final String YES_STR = "是";
private static final String NO_STR = "否"; private static final String NO_STR = "否";
@Autowired private SystemMenuMapper systemMenuMapper; @Autowired
@Autowired private SystemRoleMenuMapper systemRoleMenuMapper; private SystemMenuMapper systemMenuMapper;
@Autowired private SystemRoleService systemRoleService; @Autowired
@Autowired private SystemRoleMenuService systemRoleMenuService; private SystemRoleMenuMapper systemRoleMenuMapper;
@Autowired
private SystemRoleService systemRoleService;
@Autowired
private SystemRoleMenuService systemRoleMenuService;
/** /**
* 创建 * 创建
@@ -43,6 +43,7 @@ import oshi.util.Util;
@Slf4j @Slf4j
@Service @Service
public class SystemMonitorService { public class SystemMonitorService {
private final DecimalFormat df = new DecimalFormat("0.00"); private final DecimalFormat df = new DecimalFormat("0.00");
/** /**
@@ -100,7 +101,7 @@ public class SystemMonitorService {
diskInfo.put("available", KitFileUtil.getSize(available)); diskInfo.put("available", KitFileUtil.getSize(available));
diskInfo.put("used", KitFileUtil.getSize(used)); diskInfo.put("used", KitFileUtil.getSize(used));
if (total != 0) { if (total != 0) {
diskInfo.put("usageRate", df.format(used / (double)total * 100)); diskInfo.put("usageRate", df.format(used / (double) total * 100));
} else { } else {
diskInfo.put("usageRate", 0); diskInfo.put("usageRate", 0);
} }
@@ -124,7 +125,7 @@ public class SystemMonitorService {
if (used == 0) { if (used == 0) {
swapInfo.put("usageRate", 0); swapInfo.put("usageRate", 0);
} else { } else {
swapInfo.put("usageRate", df.format(used / (double)total * 100)); swapInfo.put("usageRate", df.format(used / (double) total * 100));
} }
return swapInfo; return swapInfo;
} }
@@ -141,7 +142,7 @@ public class SystemMonitorService {
memoryInfo.put("available", FormatUtil.formatBytes(memory.getAvailable())); memoryInfo.put("available", FormatUtil.formatBytes(memory.getAvailable()));
memoryInfo.put("used", FormatUtil.formatBytes(memory.getTotal() - memory.getAvailable())); memoryInfo.put("used", FormatUtil.formatBytes(memory.getTotal() - memory.getAvailable()));
memoryInfo.put("usageRate", memoryInfo.put("usageRate",
df.format((memory.getTotal() - memory.getAvailable()) / (double)memory.getTotal() * 100)); df.format((memory.getTotal() - memory.getAvailable()) / (double) memory.getTotal() * 100));
return memoryInfo; return memoryInfo;
} }
@@ -21,9 +21,9 @@ import cn.odboy.system.dal.model.SystemOssStorageVo;
import cn.odboy.system.dal.model.SystemQueryStorageArgs; import cn.odboy.system.dal.model.SystemQueryStorageArgs;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
/** /**
@@ -35,9 +35,14 @@ import org.springframework.web.multipart.MultipartFile;
* @since 2025-07-15 * @since 2025-07-15
*/ */
public interface SystemOssStorageService extends IService<SystemOssStorageTb> { public interface SystemOssStorageService extends IService<SystemOssStorageTb> {
KitPageResult<SystemOssStorageVo> queryOssStorage(SystemQueryStorageArgs criteria, Page<SystemOssStorageTb> page); KitPageResult<SystemOssStorageVo> queryOssStorage(SystemQueryStorageArgs criteria, Page<SystemOssStorageTb> page);
List<SystemOssStorageVo> queryOssStorage(SystemQueryStorageArgs criteria); List<SystemOssStorageVo> queryOssStorage(SystemQueryStorageArgs criteria);
void exportOssStorageExcel(List<SystemOssStorageVo> list, HttpServletResponse response) throws IOException; void exportOssStorageExcel(List<SystemOssStorageVo> list, HttpServletResponse response) throws IOException;
String uploadFile(MultipartFile file); String uploadFile(MultipartFile file);
void removeFileByIds(Long[] ids); void removeFileByIds(Long[] ids);
} }
@@ -33,7 +33,6 @@ import cn.odboy.util.KitFileUtil;
import cn.odboy.util.KitPageUtil; import cn.odboy.util.KitPageUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@@ -41,6 +40,7 @@ import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import jakarta.servlet.http.HttpServletResponse;
import org.quartz.CronExpression; import org.quartz.CronExpression;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -48,10 +48,15 @@ import org.springframework.transaction.annotation.Transactional;
@Service @Service
public class SystemQuartzJobService { public class SystemQuartzJobService {
@Autowired private SystemQuartzJobMapper systemQuartzJobMapper;
@Autowired private SystemQuartzLogMapper systemQuartzLogMapper; @Autowired
@Autowired private QuartzManage quartzManage; private SystemQuartzJobMapper systemQuartzJobMapper;
@Autowired private KitRedisHelper redisHelper; @Autowired
private SystemQuartzLogMapper systemQuartzLogMapper;
@Autowired
private QuartzManage quartzManage;
@Autowired
private KitRedisHelper redisHelper;
/** /**
* 创建 * 创建
@@ -31,8 +31,11 @@ import org.springframework.transaction.annotation.Transactional;
@Service @Service
public class SystemRoleDeptService { public class SystemRoleDeptService {
@Autowired private SystemRoleDeptMapper systemRoleDeptMapper;
@Autowired private SystemDeptMapper systemDeptMapper; @Autowired
private SystemRoleDeptMapper systemRoleDeptMapper;
@Autowired
private SystemDeptMapper systemDeptMapper;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void batchDeleteRoleDept(Set<Long> roleIds) { public void batchDeleteRoleDept(Set<Long> roleIds) {
@@ -32,8 +32,11 @@ import org.springframework.transaction.annotation.Transactional;
@Service @Service
public class SystemRoleMenuService { public class SystemRoleMenuService {
@Autowired private SystemRoleMenuMapper systemRoleMenuMapper;
@Autowired private SystemMenuMapper systemMenuMapper; @Autowired
private SystemRoleMenuMapper systemRoleMenuMapper;
@Autowired
private SystemMenuMapper systemMenuMapper;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void deleteRoleMenuByRoleId(Long roleId) { public void deleteRoleMenuByRoleId(Long roleId) {
@@ -34,7 +34,6 @@ import cn.odboy.util.KitFileUtil;
import cn.odboy.util.KitPageUtil; import cn.odboy.util.KitPageUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
@@ -44,16 +43,22 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@Service @Service
public class SystemRoleService { public class SystemRoleService {
@Autowired private SystemRoleMapper systemRoleMapper;
@Autowired private SystemRoleMenuService systemRoleMenuService; @Autowired
@Autowired private SystemUserMapper systemUserMapper; private SystemRoleMapper systemRoleMapper;
@Autowired private SystemRoleDeptService systemRoleDeptService; @Autowired
private SystemRoleMenuService systemRoleMenuService;
@Autowired
private SystemUserMapper systemUserMapper;
@Autowired
private SystemRoleDeptService systemRoleDeptService;
/** /**
* 创建 * 创建

Some files were not shown because too many files have changed in this diff Show More