refactor(system): 优化系统模块接口命名和参数校验

- 重构了多个控制器的查询接口,统一命名规范
- 新增参数校验,提高接口健壮性
- 更新了前端 API调用,以适应后端接口变更
- 优化了部分前端组件的错误提示文案
This commit is contained in:
2025-06-25 20:25:36 +08:00
parent 620e076b86
commit 5350029f7e
19 changed files with 70 additions and 40 deletions
-7
View File
@@ -1,12 +1,5 @@
import request from '@/utils/request' import request from '@/utils/request'
// export function getDicts() {
// return request({
// url: 'api/dict/queryAllDict',
// method: 'post'
// })
// }
export function add(data) { export function add(data) {
return request({ return request({
url: 'api/dict/saveDict', url: 'api/dict/saveDict',
+1 -1
View File
@@ -9,7 +9,7 @@ export function get(dictName) {
} }
} }
return request({ return request({
url: 'api/dictDetail', url: 'api/dictDetail/queryDictDetailByArgs',
method: 'post', method: 'post',
data: params data: params
}) })
+2 -2
View File
@@ -1,8 +1,8 @@
import request from '@/utils/request' import request from '@/utils/request'
export function queryEmailConfig() { export function getLastEmailConfig() {
return request({ return request({
url: 'api/email/queryEmailConfig', url: 'api/email/getLastEmailConfig',
method: 'post' method: 'post'
}) })
} }
+2 -2
View File
@@ -1,6 +1,6 @@
import request from '@/utils/request' import request from '@/utils/request'
export function getAllJob() { export function queryAllEnableJob() {
const params = { const params = {
page: 1, page: 1,
size: 999999, size: 999999,
@@ -9,7 +9,7 @@ export function getAllJob() {
} }
} }
return request({ return request({
url: 'api/job', url: 'api/job/queryAllEnableJob',
method: 'post', method: 'post',
data: params data: params
}) })
+3 -3
View File
@@ -7,9 +7,9 @@ export function queryMenuListByPid(pid) {
}) })
} }
export function getMenus(params) { export function queryMenuByArgs(params) {
return request({ return request({
url: 'api/menus', url: 'api/menus/queryMenuByArgs',
method: 'post', method: 'post',
data: params data: params
}) })
@@ -62,4 +62,4 @@ export function edit(data) {
}) })
} }
export default { add, edit, del, queryMenuListByPid, queryMenuSuperior, getMenus, queryChildMenuSet } export default { add, edit, del, queryMenuListByPid, queryMenuSuperior, queryMenuByArgs, queryChildMenuSet }
+2 -2
View File
@@ -31,8 +31,8 @@ export function sync() {
export function del(ids) { export function del(ids) {
return request({ return request({
url: 'api/qiNiuContent', url: 'api/qiNiuContent/removeFileByIds',
method: 'delete', method: 'post',
data: ids data: ids
}) })
} }
+2 -2
View File
@@ -10,8 +10,8 @@ export function add(data) {
export function del(ids) { export function del(ids) {
return request({ return request({
url: 'api/quartzJob', url: 'api/quartzJob/removeJobByIds',
method: 'delete', method: 'post',
data: ids data: ids
}) })
} }
@@ -27,7 +27,7 @@
</template> </template>
<script> <script>
import { queryEmailConfig, modifyEmailConfig } from '@/api/system/email' import { getLastEmailConfig, modifyEmailConfig } from '@/api/system/email'
export default { export default {
name: 'Config', name: 'Config',
data() { data() {
@@ -58,7 +58,7 @@ export default {
}, },
methods: { methods: {
init() { init() {
queryEmailConfig().then(res => { getLastEmailConfig().then(res => {
this.form = res this.form = res
}) })
}, },
@@ -93,7 +93,7 @@
ref="table" ref="table"
v-loading="crud.loading" v-loading="crud.loading"
lazy lazy
:load="getMenus" :load="queryMenuByArgs"
:data="crud.data" :data="crud.data"
:tree-props="{children: 'children', hasChildren: 'hasChildren'}" :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
row-key="id" row-key="id"
@@ -199,14 +199,14 @@ export default {
this.menus.push({ id: 0, label: '顶级类目', children: null }) this.menus.push({ id: 0, label: '顶级类目', children: null })
} }
}, },
getMenus(tree, treeNode, resolve) { queryMenuByArgs(tree, treeNode, resolve) {
const params = { const params = {
page: 1, page: 1,
size: 999999, size: 999999,
args: { pid: tree.id } args: { pid: tree.id }
} }
setTimeout(() => { setTimeout(() => {
crudMenu.getMenus(params).then(res => { crudMenu.queryMenuByArgs(params).then(res => {
resolve(res.content) resolve(res.content)
}) })
}, 100) }, 100)
@@ -148,7 +148,7 @@ export default {
isLt2M = file.size / 1024 / 1024 < 100 isLt2M = file.size / 1024 / 1024 < 100
if (!isLt2M) { if (!isLt2M) {
this.loading = false this.loading = false
this.$message.error('上传文件大小不能超过 100MB!') this.$message.error('上传文件大小不能超过 100MB')
} }
this.form.name = file.name this.form.name = file.name
return isLt2M return isLt2M
@@ -185,7 +185,7 @@ import crudUser from '@/api/system/user'
import { isvalidPhone } from '@/utils/validate' import { isvalidPhone } from '@/utils/validate'
import { queryDeptList, queryDeptSuperiorTree } from '@/api/system/dept' import { queryDeptList, queryDeptSuperiorTree } from '@/api/system/dept'
import { queryRoleList, getLevel } from '@/api/system/role' import { queryRoleList, getLevel } from '@/api/system/role'
import { getAllJob } from '@/api/system/job' import { queryAllEnableJob } from '@/api/system/job'
import CRUD, { presenter, header, form, crud } from '@crud/crud' import CRUD, { presenter, header, form, crud } from '@crud/crud'
import rrOperation from '@crud/RR.operation' import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation' import crudOperation from '@crud/CRUD.operation'
@@ -450,7 +450,7 @@ export default {
}, },
// 获取弹窗内岗位数据 // 获取弹窗内岗位数据
getJobs() { getJobs() {
getAllJob().then(res => { queryAllEnableJob().then(res => {
this.jobs = res.content this.jobs = res.content
}).catch(() => { }) }).catch(() => { })
}, },
@@ -1,16 +1,15 @@
package cn.odboy.core.controller; package cn.odboy.core.controller;
import cn.odboy.core.constant.SystemCaptchaBizEnum; import cn.odboy.core.constant.SystemCaptchaBizEnum;
import cn.odboy.core.dal.model.SystemCheckEmailCaptchaArgs;
import cn.odboy.core.service.SystemEmailService; import cn.odboy.core.service.SystemEmailService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@RequiredArgsConstructor @RequiredArgsConstructor
@@ -35,9 +34,9 @@ public class SystemCaptchaController {
@ApiOperation("验证码验证") @ApiOperation("验证码验证")
@PostMapping(value = "/checkEmailCaptcha") @PostMapping(value = "/checkEmailCaptcha")
public ResponseEntity<Void> checkEmailCaptcha(@RequestParam String email, @RequestParam String code, @RequestParam String codeBi) { public ResponseEntity<Void> checkEmailCaptcha(@Validated @RequestBody SystemCheckEmailCaptchaArgs args) {
SystemCaptchaBizEnum biEnum = SystemCaptchaBizEnum.getByBizCode(codeBi); SystemCaptchaBizEnum biEnum = SystemCaptchaBizEnum.getByBizCode(args.getBizCode());
systemEmailService.checkEmailCaptcha(biEnum, email, code); systemEmailService.checkEmailCaptcha(biEnum, args.getEmail(), args.getCode());
return new ResponseEntity<>(HttpStatus.OK); return new ResponseEntity<>(HttpStatus.OK);
} }
} }
@@ -29,6 +29,12 @@ public class SystemDictDetailController {
@ApiOperation("查询字典详情") @ApiOperation("查询字典详情")
@PostMapping @PostMapping
public ResponseEntity<CsResultVo<List<SystemDictDetailTb>>> queryDictDetailByCrud(@Validated @RequestBody CsPageArgs<QuerySystemDictDetailArgs> args) {
return queryDictDetailByArgs(args);
}
@ApiOperation("查询字典详情")
@PostMapping(value = "/queryDictDetailByArgs")
public ResponseEntity<CsResultVo<List<SystemDictDetailTb>>> queryDictDetailByArgs(@Validated @RequestBody CsPageArgs<QuerySystemDictDetailArgs> args) { public ResponseEntity<CsResultVo<List<SystemDictDetailTb>>> queryDictDetailByArgs(@Validated @RequestBody CsPageArgs<QuerySystemDictDetailArgs> args) {
QuerySystemDictDetailArgs criteria = args.getArgs(); QuerySystemDictDetailArgs criteria = args.getArgs();
Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize()); Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
@@ -25,8 +25,8 @@ public class SystemEmailController {
private final SystemEmailService systemEmailService; private final SystemEmailService systemEmailService;
@ApiOperation("查询配置") @ApiOperation("查询配置")
@PostMapping(value = "/queryEmailConfig") @PostMapping(value = "/getLastEmailConfig")
public ResponseEntity<SystemEmailConfigTb> queryEmailConfig() { public ResponseEntity<SystemEmailConfigTb> getLastEmailConfig() {
return new ResponseEntity<>(systemEmailService.getLastEmailConfig(), HttpStatus.OK); return new ResponseEntity<>(systemEmailService.getLastEmailConfig(), HttpStatus.OK);
} }
@@ -37,7 +37,7 @@ public class SystemJobController {
} }
@ApiOperation("查询岗位") @ApiOperation("查询岗位")
@PostMapping @PostMapping(value = "/queryAllEnableJob")
@PreAuthorize("@el.check('job:list','user:list')") @PreAuthorize("@el.check('job:list','user:list')")
public ResponseEntity<CsResultVo<List<SystemJobTb>>> queryJobByArgs(@Validated @RequestBody CsPageArgs<QuerySystemJobArgs> args) { public ResponseEntity<CsResultVo<List<SystemJobTb>>> queryJobByArgs(@Validated @RequestBody CsPageArgs<QuerySystemJobArgs> args) {
QuerySystemJobArgs criteria = args.getArgs(); QuerySystemJobArgs criteria = args.getArgs();
@@ -45,6 +45,13 @@ public class SystemJobController {
return new ResponseEntity<>(systemJobService.queryJobByArgs(criteria, page), HttpStatus.OK); return new ResponseEntity<>(systemJobService.queryJobByArgs(criteria, page), HttpStatus.OK);
} }
@ApiOperation("查询岗位")
@PostMapping
@PreAuthorize("@el.check('job:list','user:list')")
public ResponseEntity<CsResultVo<List<SystemJobTb>>> queryJobByCrud(@Validated @RequestBody CsPageArgs<QuerySystemJobArgs> args) {
return queryJobByArgs(args);
}
@ApiOperation("新增岗位") @ApiOperation("新增岗位")
@PostMapping(value = "/saveJob") @PostMapping(value = "/saveJob")
@PreAuthorize("@el.check('job:add')") @PreAuthorize("@el.check('job:add')")
@@ -68,6 +68,13 @@ public class SystemMenuController {
@PostMapping @PostMapping
@ApiOperation("查询菜单") @ApiOperation("查询菜单")
@PreAuthorize("@el.check('menu:list')") @PreAuthorize("@el.check('menu:list')")
public ResponseEntity<CsResultVo<List<SystemMenuTb>>> queryAllMenuByCrud(@Validated @RequestBody CsPageArgs<QuerySystemMenuArgs> args) throws Exception {
return queryAllMenu(args);
}
@PostMapping(value = "/queryMenuByArgs")
@ApiOperation("查询菜单")
@PreAuthorize("@el.check('menu:list')")
public ResponseEntity<CsResultVo<List<SystemMenuTb>>> queryAllMenu(@Validated @RequestBody CsPageArgs<QuerySystemMenuArgs> args) throws Exception { public ResponseEntity<CsResultVo<List<SystemMenuTb>>> queryAllMenu(@Validated @RequestBody CsPageArgs<QuerySystemMenuArgs> args) throws Exception {
QuerySystemMenuArgs criteria = args.getArgs(); QuerySystemMenuArgs criteria = args.getArgs();
List<SystemMenuTb> menuList = systemMenuService.queryAllMenu(criteria, true); List<SystemMenuTb> menuList = systemMenuService.queryAllMenu(criteria, true);
@@ -98,8 +98,8 @@ public class SystemQiniuController {
} }
@ApiOperation("删除多张图片") @ApiOperation("删除多张图片")
@DeleteMapping @PostMapping(value = "/removeFileByIds")
public ResponseEntity<Void> deleteAllQiNiu(@RequestBody Long[] ids) { public ResponseEntity<Void> removeFileByIds(@RequestBody Long[] ids) {
qiniuContentService.removeFileByIds(ids); qiniuContentService.removeFileByIds(ids);
return new ResponseEntity<>(HttpStatus.OK); return new ResponseEntity<>(HttpStatus.OK);
} }
@@ -105,7 +105,7 @@ public class SystemQuartzJobController {
} }
@ApiOperation("删除定时任务") @ApiOperation("删除定时任务")
@DeleteMapping @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) {
systemQuartzJobService.removeJobByIds(ids); systemQuartzJobService.removeJobByIds(ids);
@@ -0,0 +1,18 @@
package cn.odboy.core.dal.model;
import cn.odboy.base.CsSerializeObject;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
@Getter
@Setter
public class SystemCheckEmailCaptchaArgs extends CsSerializeObject {
@NotBlank(message = "邮箱不能为空")
private String email;
@NotBlank(message = "验证码不能为空")
private String code;
@NotBlank(message = "验证码业务标识不能为空")
private String bizCode;
}