Commit 04feb57ed8a6915a1cc15be32b0cf98078b739e9
1 parent
6edd4d7e
初始化 dept 部门模块
Showing
12 changed files
with
157 additions
and
81 deletions
ruoyi-ui/src/api/system/dept.js
| ... | ... | @@ -26,6 +26,7 @@ export function getDept(deptId) { |
| 26 | 26 | } |
| 27 | 27 | |
| 28 | 28 | // 查询部门下拉树结构 |
| 29 | +// TODO 准备删除 | |
| 29 | 30 | export function treeselect() { |
| 30 | 31 | return request({ |
| 31 | 32 | url: '/system/dept/treeselect', |
| ... | ... | @@ -34,6 +35,7 @@ export function treeselect() { |
| 34 | 35 | } |
| 35 | 36 | |
| 36 | 37 | // 根据角色ID查询部门树结构 |
| 38 | +// TODO 准备删除 | |
| 37 | 39 | export function roleDeptTreeselect(roleId) { |
| 38 | 40 | return request({ |
| 39 | 41 | url: '/system/dept/roleDeptTreeselect/' + roleId, |
| ... | ... | @@ -41,6 +43,14 @@ export function roleDeptTreeselect(roleId) { |
| 41 | 43 | }) |
| 42 | 44 | } |
| 43 | 45 | |
| 46 | +// 获取部门精简信息列表 | |
| 47 | +export function listSimpleDepts() { | |
| 48 | + return request({ | |
| 49 | + url: '/system/dept/list-all-simple', | |
| 50 | + method: 'get' | |
| 51 | + }) | |
| 52 | +} | |
| 53 | + | |
| 44 | 54 | // 新增部门 |
| 45 | 55 | export function addDept(data) { |
| 46 | 56 | return request({ |
| ... | ... | @@ -65,4 +75,4 @@ export function delDept(deptId) { |
| 65 | 75 | url: '/system/dept/' + deptId, |
| 66 | 76 | method: 'delete' |
| 67 | 77 | }) |
| 68 | -} | |
| 69 | 78 | \ No newline at end of file |
| 79 | +} | ... | ... |
ruoyi-ui/src/utils/constants.js
| ... | ... | @@ -24,7 +24,18 @@ export const SysMenuTypeEnum = { |
| 24 | 24 | /** |
| 25 | 25 | * 角色的类型枚举 |
| 26 | 26 | */ |
| 27 | -export const RoleTypeEnum = { | |
| 27 | +export const SysRoleTypeEnum = { | |
| 28 | 28 | SYSTEM: 1, // 内置角色 |
| 29 | 29 | CUSTOM: 2 // 自定义角色 |
| 30 | 30 | } |
| 31 | + | |
| 32 | +/** | |
| 33 | + * 数据权限的泛微枚举 | |
| 34 | + */ | |
| 35 | +export const SysDataScopeEnum = { | |
| 36 | + ALL: 1, // 全部数据权限 | |
| 37 | + DEPT_CUSTOM: 2, // 指定部门数据权限 | |
| 38 | + DEPT_ONLY: 3, // 部门数据权限 | |
| 39 | + DEPT_AND_CHILD: 4, // 部门及以下数据权限 | |
| 40 | + DEPT_SELF: 5 // 仅本人数据权限 | |
| 41 | +} | ... | ... |
ruoyi-ui/src/utils/dict.js
ruoyi-ui/src/views/system/role/index.vue
| ... | ... | @@ -163,7 +163,7 @@ |
| 163 | 163 | </el-dialog> |
| 164 | 164 | |
| 165 | 165 | <!-- 分配角色的数据权限对话框 --> |
| 166 | - <el-dialog :title="title" :visible.sync="openDataScope" width="500px" append-to-body> | |
| 166 | + <el-dialog title="分配数据权限" :visible.sync="openDataScope" width="500px" append-to-body> | |
| 167 | 167 | <el-form :model="form" label-width="80px"> |
| 168 | 168 | <el-form-item label="角色名称"> |
| 169 | 169 | <el-input v-model="form.name" :disabled="true" /> |
| ... | ... | @@ -174,15 +174,15 @@ |
| 174 | 174 | <el-form-item label="权限范围"> |
| 175 | 175 | <el-select v-model="form.dataScope"> |
| 176 | 176 | <el-option |
| 177 | - v-for="item in dataScopeOptions" | |
| 178 | - :key="item.value" | |
| 177 | + v-for="item in dataScopeDictDatas" | |
| 178 | + :key="parseInt(item.value)" | |
| 179 | 179 | :label="item.label" |
| 180 | - :value="item.value" | |
| 180 | + :value="parseInt(item.value)" | |
| 181 | 181 | ></el-option> |
| 182 | 182 | </el-select> |
| 183 | 183 | </el-form-item> |
| 184 | - <el-form-item label="数据权限" v-show="form.dataScope == 2"> | |
| 185 | - <el-checkbox v-model="form.deptCheckStrictly" @change="handleCheckedTreeConnect($event, 'dept')">父子联动</el-checkbox> | |
| 184 | + <el-form-item label="数据权限" v-show="form.dataScope === SysDataScopeEnum.DEPT_CUSTOM"> | |
| 185 | + <el-checkbox v-model="!form.deptCheckStrictly" @change="handleCheckedTreeConnect($event, 'dept')">父子联动(选中父节点,自动选择子节点)</el-checkbox> | |
| 186 | 186 | <el-checkbox v-model="deptExpand" @change="handleCheckedTreeExpand($event, 'dept')">展开/折叠</el-checkbox> |
| 187 | 187 | <el-checkbox v-model="deptNodeAll" @change="handleCheckedTreeNodeAll($event, 'dept')">全选/全不选</el-checkbox> |
| 188 | 188 | <el-tree |
| ... | ... | @@ -237,11 +237,20 @@ |
| 237 | 237 | </template> |
| 238 | 238 | |
| 239 | 239 | <script> |
| 240 | -import { listRole, getRole, delRole, addRole, updateRole, exportRole, dataScope, changeRoleStatus } from "@/api/system/role"; | |
| 241 | -import { listSimpleMenus } from "@/api/system/menu"; | |
| 242 | -import { listRoleMenus, assignRoleMenu } from "@/api/system/permission"; | |
| 243 | -import { treeselect as deptTreeselect, roleDeptTreeselect } from "@/api/system/dept"; | |
| 244 | -import {SysCommonStatusEnum, SysMenuTypeEnum} from "@/utils/constants"; | |
| 240 | +import { | |
| 241 | + addRole, | |
| 242 | + changeRoleStatus, | |
| 243 | + dataScope, | |
| 244 | + delRole, | |
| 245 | + exportRole, | |
| 246 | + getRole, | |
| 247 | + listRole, | |
| 248 | + updateRole | |
| 249 | +} from "@/api/system/role"; | |
| 250 | +import {listSimpleMenus} from "@/api/system/menu"; | |
| 251 | +import {assignRoleMenu, listRoleMenus} from "@/api/system/permission"; | |
| 252 | +import {listSimpleDepts, treeselect as deptTreeselect} from "@/api/system/dept"; | |
| 253 | +import {SysCommonStatusEnum, SysDataScopeEnum} from "@/utils/constants"; | |
| 245 | 254 | import {DICT_TYPE, getDictDataLabel, getDictDatas} from "@/utils/dict"; |
| 246 | 255 | |
| 247 | 256 | export default { |
| ... | ... | @@ -264,38 +273,12 @@ export default { |
| 264 | 273 | openDataScope: false, |
| 265 | 274 | // 是否显示弹出层(菜单权限) |
| 266 | 275 | openMenu: false, |
| 267 | - // TODO 需要简化下 | |
| 268 | 276 | menuExpand: false, |
| 269 | 277 | menuNodeAll: false, |
| 270 | 278 | deptExpand: true, |
| 271 | 279 | deptNodeAll: false, |
| 272 | 280 | // 日期范围 |
| 273 | 281 | dateRange: [], |
| 274 | - // 状态数据字典 | |
| 275 | - statusOptions: [], | |
| 276 | - // 数据范围选项 | |
| 277 | - dataScopeOptions: [ | |
| 278 | - { | |
| 279 | - value: "1", | |
| 280 | - label: "全部数据权限" | |
| 281 | - }, | |
| 282 | - { | |
| 283 | - value: "2", | |
| 284 | - label: "自定数据权限" | |
| 285 | - }, | |
| 286 | - { | |
| 287 | - value: "3", | |
| 288 | - label: "本部门数据权限" | |
| 289 | - }, | |
| 290 | - { | |
| 291 | - value: "4", | |
| 292 | - label: "本部门及以下数据权限" | |
| 293 | - }, | |
| 294 | - { | |
| 295 | - value: "5", | |
| 296 | - label: "仅本人数据权限" | |
| 297 | - } | |
| 298 | - ], | |
| 299 | 282 | // 菜单列表 |
| 300 | 283 | menuOptions: [], |
| 301 | 284 | // 部门列表 |
| ... | ... | @@ -328,10 +311,12 @@ export default { |
| 328 | 311 | }, |
| 329 | 312 | |
| 330 | 313 | // 枚举 |
| 331 | - CommonStatusEnum: SysCommonStatusEnum, | |
| 314 | + SysCommonStatusEnum: SysCommonStatusEnum, | |
| 315 | + SysDataScopeEnum: SysDataScopeEnum, | |
| 332 | 316 | // 数据字典 |
| 333 | 317 | roleTypeDictDatas: getDictDatas(DICT_TYPE.SYS_ROLE_TYPE), |
| 334 | - statusDictDatas: getDictDatas(DICT_TYPE.SYS_COMMON_STATUS) | |
| 318 | + statusDictDatas: getDictDatas(DICT_TYPE.SYS_COMMON_STATUS), | |
| 319 | + dataScopeDictDatas: getDictDatas(DICT_TYPE.SYS_DATA_SCOPE) | |
| 335 | 320 | }; |
| 336 | 321 | }, |
| 337 | 322 | created() { |
| ... | ... | @@ -349,28 +334,6 @@ export default { |
| 349 | 334 | } |
| 350 | 335 | ); |
| 351 | 336 | }, |
| 352 | - /** 查询部门树结构 */ | |
| 353 | - getDeptTreeselect() { | |
| 354 | - deptTreeselect().then(response => { | |
| 355 | - this.deptOptions = response.data; | |
| 356 | - }); | |
| 357 | - }, | |
| 358 | - // 所有部门节点数据 | |
| 359 | - getDeptAllCheckedKeys() { | |
| 360 | - // 目前被选中的部门节点 | |
| 361 | - let checkedKeys = this.$refs.dept.getCheckedKeys(); | |
| 362 | - // 半选中的部门节点 | |
| 363 | - let halfCheckedKeys = this.$refs.dept.getHalfCheckedKeys(); | |
| 364 | - checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys); | |
| 365 | - return checkedKeys; | |
| 366 | - }, | |
| 367 | - /** 根据角色ID查询部门树结构 */ | |
| 368 | - getRoleDeptTreeselect(id) { | |
| 369 | - return roleDeptTreeselect(id).then(response => { | |
| 370 | - this.deptOptions = response.depts; | |
| 371 | - return response; | |
| 372 | - }); | |
| 373 | - }, | |
| 374 | 337 | // 角色状态修改 |
| 375 | 338 | handleStatusChange(row) { |
| 376 | 339 | // 此时,row 已经变成目标状态了,所以可以直接提交请求和提示 |
| ... | ... | @@ -511,16 +474,22 @@ export default { |
| 511 | 474 | /** 分配数据权限操作 */ |
| 512 | 475 | handleDataScope(row) { |
| 513 | 476 | this.reset(); |
| 514 | - const roleDeptTreeselect = this.getRoleDeptTreeselect(row.id); | |
| 477 | + // 处理了 form 的角色 name 和 code 的展示 | |
| 478 | + this.form.id = row.id; | |
| 479 | + this.form.name = row.name; | |
| 480 | + this.form.code = row.code; | |
| 481 | + // 打开弹窗 | |
| 482 | + this.openDataScope = true; | |
| 483 | + // 获得部门列表 | |
| 484 | + listSimpleDepts().then(response => { | |
| 485 | + // 处理 menuOptions 参数 | |
| 486 | + this.deptOptions = []; | |
| 487 | + this.deptOptions.push(...this.handleTree(response.data, "id")); | |
| 488 | + }); | |
| 489 | + // 获得角色拥有的数据权限 | |
| 515 | 490 | getRole(row.id).then(response => { |
| 516 | - this.form = response.data; | |
| 517 | - this.openDataScope = true; | |
| 518 | - this.$nextTick(() => { | |
| 519 | - roleDeptTreeselect.then(res => { | |
| 520 | - this.$refs.dept.setCheckedKeys(res.checkedKeys); | |
| 521 | - }); | |
| 522 | - }); | |
| 523 | - this.title = "分配数据权限"; | |
| 491 | + // TODO 搞一搞 | |
| 492 | + // this.$refs.dept.setCheckedKeys(res.checkedKeys); | |
| 524 | 493 | }); |
| 525 | 494 | }, |
| 526 | 495 | /** 提交按钮 */ |
| ... | ... | @@ -546,8 +515,13 @@ export default { |
| 546 | 515 | /** 提交按钮(数据权限) */ |
| 547 | 516 | submitDataScope: function() { |
| 548 | 517 | if (this.form.id !== undefined) { |
| 549 | - this.form.deptIds = this.getDeptAllCheckedKeys(); | |
| 550 | - dataScope(this.form).then(response => { | |
| 518 | + // this.form.deptIds = this.getDeptAllCheckedKeys(); | |
| 519 | + debugger | |
| 520 | + dataScope({ | |
| 521 | + roleId: this.form.id, | |
| 522 | + deptIds: this.form.dataScope !== SysDataScopeEnum.DEPT_CUSTOM ? [] : | |
| 523 | + this.$refs.dept.getCheckedKeys(false) | |
| 524 | + }).then(response => { | |
| 551 | 525 | this.msgSuccess("修改成功"); |
| 552 | 526 | this.openDataScope = false; |
| 553 | 527 | this.getList(); |
| ... | ... | @@ -556,7 +530,6 @@ export default { |
| 556 | 530 | }, |
| 557 | 531 | /** 提交按钮(菜单权限) */ |
| 558 | 532 | submitMenu: function() { |
| 559 | - // TODO 需要改动下 | |
| 560 | 533 | if (this.form.id !== undefined) { |
| 561 | 534 | assignRoleMenu({ |
| 562 | 535 | roleId: this.form.id, | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/controller/dept/SysDeptController.java
| 1 | 1 | package cn.iocoder.dashboard.modules.system.controller.dept; |
| 2 | 2 | |
| 3 | +import cn.iocoder.dashboard.common.enums.CommonStatusEnum; | |
| 4 | +import cn.iocoder.dashboard.common.pojo.CommonResult; | |
| 5 | +import cn.iocoder.dashboard.modules.system.controller.dept.vo.dept.SysDeptListReqVO; | |
| 6 | +import cn.iocoder.dashboard.modules.system.controller.dept.vo.dept.SysDeptRespVO; | |
| 7 | +import cn.iocoder.dashboard.modules.system.controller.dept.vo.dept.SysDeptSimpleRespVO; | |
| 8 | +import cn.iocoder.dashboard.modules.system.convert.dept.SysDeptConvert; | |
| 9 | +import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.dept.SysDeptDO; | |
| 10 | +import cn.iocoder.dashboard.modules.system.service.dept.SysDeptService; | |
| 3 | 11 | import io.swagger.annotations.Api; |
| 12 | +import io.swagger.annotations.ApiOperation; | |
| 13 | +import org.springframework.web.bind.annotation.GetMapping; | |
| 4 | 14 | import org.springframework.web.bind.annotation.RequestMapping; |
| 5 | 15 | import org.springframework.web.bind.annotation.RestController; |
| 6 | 16 | |
| 17 | +import javax.annotation.Resource; | |
| 18 | +import java.util.Comparator; | |
| 19 | +import java.util.List; | |
| 20 | + | |
| 21 | +import static cn.iocoder.dashboard.common.pojo.CommonResult.success; | |
| 22 | + | |
| 7 | 23 | @Api(tags = "部门 API") |
| 8 | 24 | @RestController |
| 9 | 25 | @RequestMapping("/system/dept") |
| 10 | 26 | public class SysDeptController { |
| 11 | 27 | |
| 28 | + @Resource | |
| 29 | + private SysDeptService sysDeptService; | |
| 30 | + | |
| 31 | + @ApiOperation("获取部门列表") | |
| 32 | +// @PreAuthorize("@ss.hasPermi('system:dept:list')") | |
| 33 | + @GetMapping("/list") | |
| 34 | + public CommonResult<List<SysDeptRespVO>> listDepts(SysDeptListReqVO reqVO) { | |
| 35 | + List<SysDeptDO> list = sysDeptService.listDepts(reqVO); | |
| 36 | + list.sort(Comparator.comparing(SysDeptDO::getSort)); | |
| 37 | + return success(SysDeptConvert.INSTANCE.convertList(list)); | |
| 38 | + } | |
| 12 | 39 | |
| 40 | + @ApiOperation(value = "获取部门精简信息列表", notes = "只包含被开启的部门,主要用于前端的下拉选项") | |
| 41 | + @GetMapping("/list-all-simple") | |
| 42 | + public CommonResult<List<SysDeptSimpleRespVO>> listSimpleDepts() { | |
| 43 | + // 获得部门列表,只要开启状态的 | |
| 44 | + SysDeptListReqVO reqVO = new SysDeptListReqVO(); | |
| 45 | + reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); | |
| 46 | + List<SysDeptDO> list = sysDeptService.listDepts(reqVO); | |
| 47 | + // 排序后,返回个诶前端 | |
| 48 | + list.sort(Comparator.comparing(SysDeptDO::getSort)); | |
| 49 | + return success(SysDeptConvert.INSTANCE.convertList02(list)); | |
| 50 | + } | |
| 13 | 51 | |
| 14 | 52 | } | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/controller/permission/vo/role/SysRoleBaseVO.java
| ... | ... | @@ -27,7 +27,7 @@ public class SysRoleBaseVO { |
| 27 | 27 | @NotBlank(message = "显示顺序不能为空") |
| 28 | 28 | private String sort; |
| 29 | 29 | |
| 30 | - @ApiModelProperty(value = "角色类型", required = true, example = "1", notes = "见 RoleTypeEnum 枚举") | |
| 30 | + @ApiModelProperty(value = "角色类型", required = true, example = "1", notes = "见 SysRoleTypeEnum 枚举") | |
| 31 | 31 | private Integer type; |
| 32 | 32 | |
| 33 | 33 | @ApiModelProperty(value = "备注", example = "我是一个角色") | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/controller/permission/vo/role/SysRoleRespVO.java
| ... | ... | @@ -25,7 +25,7 @@ public class SysRoleRespVO extends SysRoleBaseVO { |
| 25 | 25 | @ApiModelProperty(value = "状态", required = true, example = "1", notes = "参见 SysCommonStatusEnum 枚举类") |
| 26 | 26 | private Integer status; |
| 27 | 27 | |
| 28 | - @ApiModelProperty(value = "角色类型", required = true, example = "1", notes = "参见 RoleTypeEnum 枚举类") | |
| 28 | + @ApiModelProperty(value = "角色类型", required = true, example = "1", notes = "参见 SysRoleTypeEnum 枚举类") | |
| 29 | 29 | private Integer type; |
| 30 | 30 | |
| 31 | 31 | @ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式") | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/controller/permission/vo/role/SysRoleUpdateStatusReqVO.java
| ... | ... | @@ -14,9 +14,9 @@ public class SysRoleUpdateStatusReqVO { |
| 14 | 14 | @NotNull(message = "角色编号不能为空") |
| 15 | 15 | private Long id; |
| 16 | 16 | |
| 17 | - @ApiModelProperty(value = "状态", required = true, example = "1", notes = "见 CommonStatusEnum 枚举") | |
| 17 | + @ApiModelProperty(value = "状态", required = true, example = "1", notes = "见 SysCommonStatusEnum 枚举") | |
| 18 | 18 | @NotNull(message = "状态不能为空") |
| 19 | -// @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}") | |
| 19 | +// @InEnum(value = SysCommonStatusEnum.class, message = "修改状态必须是 {value}") | |
| 20 | 20 | private Integer status; |
| 21 | 21 | |
| 22 | 22 | } | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/convert/dept/SysDeptConvert.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.system.convert.dept; | |
| 2 | + | |
| 3 | +import cn.iocoder.dashboard.modules.system.controller.dept.vo.dept.SysDeptRespVO; | |
| 4 | +import cn.iocoder.dashboard.modules.system.controller.dept.vo.dept.SysDeptSimpleRespVO; | |
| 5 | +import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.dept.SysDeptDO; | |
| 6 | +import org.mapstruct.Mapper; | |
| 7 | +import org.mapstruct.factory.Mappers; | |
| 8 | + | |
| 9 | +import java.util.List; | |
| 10 | + | |
| 11 | +@Mapper | |
| 12 | +public interface SysDeptConvert { | |
| 13 | + | |
| 14 | + SysDeptConvert INSTANCE = Mappers.getMapper(SysDeptConvert.class); | |
| 15 | + | |
| 16 | + List<SysDeptRespVO> convertList(List<SysDeptDO> list); | |
| 17 | + | |
| 18 | + List<SysDeptSimpleRespVO> convertList02(List<SysDeptDO> list); | |
| 19 | + | |
| 20 | +} | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dao/dept/SysDeptMapper.java
| 1 | 1 | package cn.iocoder.dashboard.modules.system.dal.mysql.dao.dept; |
| 2 | 2 | |
| 3 | +import cn.iocoder.dashboard.framework.mybatis.core.query.QueryWrapperX; | |
| 4 | +import cn.iocoder.dashboard.modules.system.controller.dept.vo.dept.SysDeptListReqVO; | |
| 3 | 5 | import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.dept.SysDeptDO; |
| 6 | +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | |
| 4 | 7 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| 5 | 8 | import org.apache.ibatis.annotations.Mapper; |
| 6 | 9 | |
| ... | ... | @@ -10,7 +13,12 @@ import java.util.List; |
| 10 | 13 | public interface SysDeptMapper extends BaseMapper<SysDeptDO> { |
| 11 | 14 | |
| 12 | 15 | default List<SysDeptDO> selectList() { |
| 13 | - return selectList(null); | |
| 16 | + return selectList(new QueryWrapper<>()); | |
| 17 | + } | |
| 18 | + | |
| 19 | + default List<SysDeptDO> selectList(SysDeptListReqVO reqVO) { | |
| 20 | + return selectList(new QueryWrapperX<SysDeptDO>().likeIfPresent("name", reqVO.getName()) | |
| 21 | + .eqIfPresent("status", reqVO.getStatus())); | |
| 14 | 22 | } |
| 15 | 23 | |
| 16 | 24 | } | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/service/dept/SysDeptService.java
| 1 | 1 | package cn.iocoder.dashboard.modules.system.service.dept; |
| 2 | 2 | |
| 3 | +import cn.iocoder.dashboard.modules.system.controller.dept.vo.dept.SysDeptListReqVO; | |
| 3 | 4 | import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.dept.SysDeptDO; |
| 4 | 5 | |
| 5 | 6 | import java.util.List; |
| ... | ... | @@ -14,8 +15,16 @@ public interface SysDeptService { |
| 14 | 15 | /** |
| 15 | 16 | * 获得所有部门列表 |
| 16 | 17 | * |
| 17 | - * @return 菜单列表 | |
| 18 | + * @return 部门列表 | |
| 18 | 19 | */ |
| 19 | 20 | List<SysDeptDO> listDepts(); |
| 20 | 21 | |
| 22 | + /** | |
| 23 | + * 筛选部门列表 | |
| 24 | + * | |
| 25 | + * @param reqVO 筛选条件请求 VO | |
| 26 | + * @return 部门列表 | |
| 27 | + */ | |
| 28 | + List<SysDeptDO> listDepts(SysDeptListReqVO reqVO); | |
| 29 | + | |
| 21 | 30 | } | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/service/dept/impl/SysDeptServiceImpl.java
| 1 | 1 | package cn.iocoder.dashboard.modules.system.service.dept.impl; |
| 2 | 2 | |
| 3 | +import cn.iocoder.dashboard.modules.system.controller.dept.vo.dept.SysDeptListReqVO; | |
| 3 | 4 | import cn.iocoder.dashboard.modules.system.dal.mysql.dao.dept.SysDeptMapper; |
| 4 | 5 | import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.dept.SysDeptDO; |
| 5 | 6 | import cn.iocoder.dashboard.modules.system.service.dept.SysDeptService; |
| ... | ... | @@ -24,4 +25,9 @@ public class SysDeptServiceImpl implements SysDeptService { |
| 24 | 25 | return deptMapper.selectList(); |
| 25 | 26 | } |
| 26 | 27 | |
| 28 | + @Override | |
| 29 | + public List<SysDeptDO> listDepts(SysDeptListReqVO reqVO) { | |
| 30 | + return deptMapper.selectList(reqVO); | |
| 31 | + } | |
| 32 | + | |
| 27 | 33 | } | ... | ... |