Commit ba6c879ee1c9a7f4b37c959bed1d63c0b1c68ca1
1 parent
e4fd022c
完成岗位的迁移
Showing
18 changed files
with
317 additions
and
361 deletions
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java deleted
| 1 | -package com.ruoyi.web.controller.system; | |
| 2 | - | |
| 3 | -import java.util.List; | |
| 4 | -import org.springframework.beans.factory.annotation.Autowired; | |
| 5 | -import org.springframework.security.access.prepost.PreAuthorize; | |
| 6 | -import org.springframework.validation.annotation.Validated; | |
| 7 | -import org.springframework.web.bind.annotation.DeleteMapping; | |
| 8 | -import org.springframework.web.bind.annotation.GetMapping; | |
| 9 | -import org.springframework.web.bind.annotation.PathVariable; | |
| 10 | -import org.springframework.web.bind.annotation.PostMapping; | |
| 11 | -import org.springframework.web.bind.annotation.PutMapping; | |
| 12 | -import org.springframework.web.bind.annotation.RequestBody; | |
| 13 | -import org.springframework.web.bind.annotation.RequestMapping; | |
| 14 | -import org.springframework.web.bind.annotation.RestController; | |
| 15 | -import com.ruoyi.common.annotation.Log; | |
| 16 | -import com.ruoyi.common.constant.UserConstants; | |
| 17 | -import com.ruoyi.common.core.controller.BaseController; | |
| 18 | -import com.ruoyi.common.core.domain.AjaxResult; | |
| 19 | -import com.ruoyi.common.core.page.TableDataInfo; | |
| 20 | -import com.ruoyi.common.enums.BusinessType; | |
| 21 | -import com.ruoyi.common.utils.SecurityUtils; | |
| 22 | -import com.ruoyi.common.utils.poi.ExcelUtil; | |
| 23 | -import com.ruoyi.system.domain.SysPost; | |
| 24 | -import com.ruoyi.system.service.ISysPostService; | |
| 25 | - | |
| 26 | -/** | |
| 27 | - * 岗位信息操作处理 | |
| 28 | - * | |
| 29 | - * @author ruoyi | |
| 30 | - */ | |
| 31 | -@RestController | |
| 32 | -@RequestMapping("/system/post") | |
| 33 | -public class SysPostController extends BaseController | |
| 34 | -{ | |
| 35 | - @Autowired | |
| 36 | - private ISysPostService postService; | |
| 37 | - | |
| 38 | - /** | |
| 39 | - * 获取岗位列表 | |
| 40 | - */ | |
| 41 | - @PreAuthorize("@ss.hasPermi('system:post:list')") | |
| 42 | - @GetMapping("/list") | |
| 43 | - public TableDataInfo list(SysPost post) | |
| 44 | - { | |
| 45 | - startPage(); | |
| 46 | - List<SysPost> list = postService.selectPostList(post); | |
| 47 | - return getDataTable(list); | |
| 48 | - } | |
| 49 | - | |
| 50 | - @Log(title = "岗位管理", businessType = BusinessType.EXPORT) | |
| 51 | - @PreAuthorize("@ss.hasPermi('system:post:export')") | |
| 52 | - @GetMapping("/export") | |
| 53 | - public AjaxResult export(SysPost post) | |
| 54 | - { | |
| 55 | - List<SysPost> list = postService.selectPostList(post); | |
| 56 | - ExcelUtil<SysPost> util = new ExcelUtil<SysPost>(SysPost.class); | |
| 57 | - return util.exportExcel(list, "岗位数据"); | |
| 58 | - } | |
| 59 | - | |
| 60 | - /** | |
| 61 | - * 根据岗位编号获取详细信息 | |
| 62 | - */ | |
| 63 | - @PreAuthorize("@ss.hasPermi('system:post:query')") | |
| 64 | - @GetMapping(value = "/{postId}") | |
| 65 | - public AjaxResult getInfo(@PathVariable Long postId) | |
| 66 | - { | |
| 67 | - return AjaxResult.success(postService.selectPostById(postId)); | |
| 68 | - } | |
| 69 | - | |
| 70 | - /** | |
| 71 | - * 新增岗位 | |
| 72 | - */ | |
| 73 | - @PreAuthorize("@ss.hasPermi('system:post:add')") | |
| 74 | - @Log(title = "岗位管理", businessType = BusinessType.INSERT) | |
| 75 | - @PostMapping | |
| 76 | - public AjaxResult add(@Validated @RequestBody SysPost post) | |
| 77 | - { | |
| 78 | - if (UserConstants.NOT_UNIQUE.equals(postService.checkPostNameUnique(post))) | |
| 79 | - { | |
| 80 | - return AjaxResult.error("新增岗位'" + post.getPostName() + "'失败,岗位名称已存在"); | |
| 81 | - } | |
| 82 | - else if (UserConstants.NOT_UNIQUE.equals(postService.checkPostCodeUnique(post))) | |
| 83 | - { | |
| 84 | - return AjaxResult.error("新增岗位'" + post.getPostName() + "'失败,岗位编码已存在"); | |
| 85 | - } | |
| 86 | - post.setCreateBy(SecurityUtils.getUsername()); | |
| 87 | - return toAjax(postService.insertPost(post)); | |
| 88 | - } | |
| 89 | - | |
| 90 | - /** | |
| 91 | - * 修改岗位 | |
| 92 | - */ | |
| 93 | - @PreAuthorize("@ss.hasPermi('system:post:edit')") | |
| 94 | - @Log(title = "岗位管理", businessType = BusinessType.UPDATE) | |
| 95 | - @PutMapping | |
| 96 | - public AjaxResult edit(@Validated @RequestBody SysPost post) | |
| 97 | - { | |
| 98 | - if (UserConstants.NOT_UNIQUE.equals(postService.checkPostNameUnique(post))) | |
| 99 | - { | |
| 100 | - return AjaxResult.error("修改岗位'" + post.getPostName() + "'失败,岗位名称已存在"); | |
| 101 | - } | |
| 102 | - else if (UserConstants.NOT_UNIQUE.equals(postService.checkPostCodeUnique(post))) | |
| 103 | - { | |
| 104 | - return AjaxResult.error("修改岗位'" + post.getPostName() + "'失败,岗位编码已存在"); | |
| 105 | - } | |
| 106 | - post.setUpdateBy(SecurityUtils.getUsername()); | |
| 107 | - return toAjax(postService.updatePost(post)); | |
| 108 | - } | |
| 109 | - | |
| 110 | - /** | |
| 111 | - * 删除岗位 | |
| 112 | - */ | |
| 113 | - @PreAuthorize("@ss.hasPermi('system:post:remove')") | |
| 114 | - @Log(title = "岗位管理", businessType = BusinessType.DELETE) | |
| 115 | - @DeleteMapping("/{postIds}") | |
| 116 | - public AjaxResult remove(@PathVariable Long[] postIds) | |
| 117 | - { | |
| 118 | - return toAjax(postService.deletePostByIds(postIds)); | |
| 119 | - } | |
| 120 | - | |
| 121 | - /** | |
| 122 | - * 获取岗位选择框列表 | |
| 123 | - */ | |
| 124 | - @GetMapping("/optionselect") | |
| 125 | - public AjaxResult optionselect() | |
| 126 | - { | |
| 127 | - List<SysPost> posts = postService.selectPostAll(); | |
| 128 | - return AjaxResult.success(posts); | |
| 129 | - } | |
| 130 | -} |
ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java deleted
| 1 | -package com.ruoyi.common.constant; | |
| 2 | - | |
| 3 | -/** | |
| 4 | - * 用户常量信息 | |
| 5 | - * | |
| 6 | - * @author ruoyi | |
| 7 | - */ | |
| 8 | -public class UserConstants | |
| 9 | -{ | |
| 10 | - /** | |
| 11 | - * 平台内系统用户的唯一标志 | |
| 12 | - */ | |
| 13 | - public static final String SYS_USER = "SYS_USER"; | |
| 14 | - | |
| 15 | - /** 正常状态 */ | |
| 16 | - public static final String NORMAL = "0"; | |
| 17 | - | |
| 18 | - /** 异常状态 */ | |
| 19 | - public static final String EXCEPTION = "1"; | |
| 20 | - | |
| 21 | - /** 用户封禁状态 */ | |
| 22 | - public static final String USER_DISABLE = "1"; | |
| 23 | - | |
| 24 | - /** 角色封禁状态 */ | |
| 25 | - public static final String ROLE_DISABLE = "1"; | |
| 26 | - | |
| 27 | - /** 部门正常状态 */ | |
| 28 | - public static final String DEPT_NORMAL = "0"; | |
| 29 | - | |
| 30 | - /** 部门停用状态 */ | |
| 31 | - public static final String DEPT_DISABLE = "1"; | |
| 32 | - | |
| 33 | - /** 字典正常状态 */ | |
| 34 | - public static final String DICT_NORMAL = "0"; | |
| 35 | - | |
| 36 | - /** 是否为系统默认(是) */ | |
| 37 | - public static final String YES = "Y"; | |
| 38 | - | |
| 39 | - /** 是否菜单外链(是) */ | |
| 40 | - public static final String YES_FRAME = "0"; | |
| 41 | - | |
| 42 | - /** 是否菜单外链(否) */ | |
| 43 | - public static final String NO_FRAME = "1"; | |
| 44 | - | |
| 45 | - /** Layout组件标识 */ | |
| 46 | - public final static String LAYOUT = "Layout"; | |
| 47 | - | |
| 48 | - /** ParentView组件标识 */ | |
| 49 | - public final static String PARENT_VIEW = "ParentView"; | |
| 50 | - | |
| 51 | - /** 校验返回结果码 */ | |
| 52 | - public final static String UNIQUE = "0"; | |
| 53 | - public final static String NOT_UNIQUE = "1"; | |
| 54 | -} |
ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java deleted
| 1 | -package com.ruoyi.common.core.controller; | |
| 2 | - | |
| 3 | -import java.beans.PropertyEditorSupport; | |
| 4 | -import java.util.Date; | |
| 5 | -import java.util.List; | |
| 6 | - | |
| 7 | -import org.slf4j.Logger; | |
| 8 | -import org.slf4j.LoggerFactory; | |
| 9 | -import org.springframework.web.bind.WebDataBinder; | |
| 10 | -import org.springframework.web.bind.annotation.InitBinder; | |
| 11 | -import com.github.pagehelper.PageHelper; | |
| 12 | -import com.github.pagehelper.PageInfo; | |
| 13 | -import com.ruoyi.common.constant.HttpStatus; | |
| 14 | -import com.ruoyi.common.core.domain.AjaxResult; | |
| 15 | -import com.ruoyi.common.core.page.PageDomain; | |
| 16 | -import com.ruoyi.common.core.page.TableDataInfo; | |
| 17 | -import com.ruoyi.common.core.page.TableSupport; | |
| 18 | -import com.ruoyi.common.utils.DateUtils; | |
| 19 | -import com.ruoyi.common.utils.StringUtils; | |
| 20 | -import com.ruoyi.common.utils.sql.SqlUtil; | |
| 21 | - | |
| 22 | -/** | |
| 23 | - * web层通用数据处理 | |
| 24 | - * | |
| 25 | - * @author ruoyi | |
| 26 | - */ | |
| 27 | -public class BaseController { | |
| 28 | - protected final Logger logger = LoggerFactory.getLogger(BaseController.class); | |
| 29 | - | |
| 30 | - /** | |
| 31 | - * 将前台传递过来的日期格式的字符串,自动转化为Date类型 | |
| 32 | - */ | |
| 33 | - @InitBinder | |
| 34 | - public void initBinder(WebDataBinder binder) { | |
| 35 | - // Date 类型转换 | |
| 36 | - binder.registerCustomEditor(Date.class, new PropertyEditorSupport() { | |
| 37 | - @Override | |
| 38 | - public void setAsText(String text) { | |
| 39 | - setValue(DateUtils.parseDate(text)); | |
| 40 | - } | |
| 41 | - }); | |
| 42 | - } | |
| 43 | - | |
| 44 | -} |
ruoyi-common/src/main/java/com/ruoyi/common/enums/HttpMethod.java deleted
| 1 | -package com.ruoyi.common.enums; | |
| 2 | - | |
| 3 | -import java.util.HashMap; | |
| 4 | -import java.util.Map; | |
| 5 | -import org.springframework.lang.Nullable; | |
| 6 | - | |
| 7 | -/** | |
| 8 | - * 请求方式 | |
| 9 | - * | |
| 10 | - * @author ruoyi | |
| 11 | - */ | |
| 12 | -public enum HttpMethod | |
| 13 | -{ | |
| 14 | - GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE; | |
| 15 | - | |
| 16 | - private static final Map<String, HttpMethod> mappings = new HashMap<>(16); | |
| 17 | - | |
| 18 | - static | |
| 19 | - { | |
| 20 | - for (HttpMethod httpMethod : values()) | |
| 21 | - { | |
| 22 | - mappings.put(httpMethod.name(), httpMethod); | |
| 23 | - } | |
| 24 | - } | |
| 25 | - | |
| 26 | - @Nullable | |
| 27 | - public static HttpMethod resolve(@Nullable String method) | |
| 28 | - { | |
| 29 | - return (method != null ? mappings.get(method) : null); | |
| 30 | - } | |
| 31 | - | |
| 32 | - public boolean matches(String method) | |
| 33 | - { | |
| 34 | - return (this == resolve(method)); | |
| 35 | - } | |
| 36 | -} |
ruoyi-ui/src/api/system/post.js
| ... | ... | @@ -3,7 +3,7 @@ import request from '@/utils/request' |
| 3 | 3 | // 查询岗位列表 |
| 4 | 4 | export function listPost(query) { |
| 5 | 5 | return request({ |
| 6 | - url: '/system/post/list', | |
| 6 | + url: '/system/post/page', | |
| 7 | 7 | method: 'get', |
| 8 | 8 | params: query |
| 9 | 9 | }) |
| ... | ... | @@ -20,7 +20,7 @@ export function listSimplePosts() { |
| 20 | 20 | // 查询岗位详细 |
| 21 | 21 | export function getPost(postId) { |
| 22 | 22 | return request({ |
| 23 | - url: '/system/post/' + postId, | |
| 23 | + url: '/system/post/get?id=' + postId, | |
| 24 | 24 | method: 'get' |
| 25 | 25 | }) |
| 26 | 26 | } |
| ... | ... | @@ -28,7 +28,7 @@ export function getPost(postId) { |
| 28 | 28 | // 新增岗位 |
| 29 | 29 | export function addPost(data) { |
| 30 | 30 | return request({ |
| 31 | - url: '/system/post', | |
| 31 | + url: '/system/post/create', | |
| 32 | 32 | method: 'post', |
| 33 | 33 | data: data |
| 34 | 34 | }) |
| ... | ... | @@ -37,8 +37,8 @@ export function addPost(data) { |
| 37 | 37 | // 修改岗位 |
| 38 | 38 | export function updatePost(data) { |
| 39 | 39 | return request({ |
| 40 | - url: '/system/post', | |
| 41 | - method: 'put', | |
| 40 | + url: '/system/post/update', | |
| 41 | + method: 'post', | |
| 42 | 42 | data: data |
| 43 | 43 | }) |
| 44 | 44 | } |
| ... | ... | @@ -46,8 +46,8 @@ export function updatePost(data) { |
| 46 | 46 | // 删除岗位 |
| 47 | 47 | export function delPost(postId) { |
| 48 | 48 | return request({ |
| 49 | - url: '/system/post/' + postId, | |
| 50 | - method: 'delete' | |
| 49 | + url: '/system/post/delete?id=' + postId, | |
| 50 | + method: 'post' | |
| 51 | 51 | }) |
| 52 | 52 | } |
| 53 | 53 | ... | ... |
ruoyi-ui/src/views/system/dept/index.vue
| ... | ... | @@ -142,7 +142,7 @@ import { listDept, getDept, delDept, addDept, updateDept } from "@/api/system/de |
| 142 | 142 | import Treeselect from "@riophae/vue-treeselect"; |
| 143 | 143 | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; |
| 144 | 144 | |
| 145 | -import {SysCommonStatusEnum, SysMenuTypeEnum} from '@/utils/constants' | |
| 145 | +import {SysCommonStatusEnum} from '@/utils/constants' | |
| 146 | 146 | import { getDictDataLabel, getDictDatas, DICT_TYPE } from '@/utils/dict' |
| 147 | 147 | |
| 148 | 148 | export default { |
| ... | ... | @@ -249,7 +249,7 @@ export default { |
| 249 | 249 | leader: undefined, |
| 250 | 250 | phone: undefined, |
| 251 | 251 | email: undefined, |
| 252 | - status: "0" | |
| 252 | + status: SysCommonStatusEnum.ENABLE, | |
| 253 | 253 | }; |
| 254 | 254 | this.resetForm("form"); |
| 255 | 255 | }, | ... | ... |
ruoyi-ui/src/views/system/post/index.vue
| 1 | 1 | <template> |
| 2 | 2 | <div class="app-container"> |
| 3 | 3 | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| 4 | - <el-form-item label="岗位编码" prop="postCode"> | |
| 4 | + <el-form-item label="岗位编码" prop="code"> | |
| 5 | 5 | <el-input |
| 6 | - v-model="queryParams.postCode" | |
| 6 | + v-model="queryParams.code" | |
| 7 | 7 | placeholder="请输入岗位编码" |
| 8 | 8 | clearable |
| 9 | 9 | size="small" |
| 10 | 10 | @keyup.enter.native="handleQuery" |
| 11 | 11 | /> |
| 12 | 12 | </el-form-item> |
| 13 | - <el-form-item label="岗位名称" prop="postName"> | |
| 13 | + <el-form-item label="岗位名称" prop="name"> | |
| 14 | 14 | <el-input |
| 15 | - v-model="queryParams.postName" | |
| 15 | + v-model="queryParams.name" | |
| 16 | 16 | placeholder="请输入岗位名称" |
| 17 | 17 | clearable |
| 18 | 18 | size="small" |
| ... | ... | @@ -22,10 +22,10 @@ |
| 22 | 22 | <el-form-item label="状态" prop="status"> |
| 23 | 23 | <el-select v-model="queryParams.status" placeholder="岗位状态" clearable size="small"> |
| 24 | 24 | <el-option |
| 25 | - v-for="dict in statusOptions" | |
| 26 | - :key="dict.dictValue" | |
| 27 | - :label="dict.dictLabel" | |
| 28 | - :value="dict.dictValue" | |
| 25 | + v-for="dict in statusDictDatas" | |
| 26 | + :key="parseInt(dict.value)" | |
| 27 | + :label="dict.label" | |
| 28 | + :value="parseInt(dict.value)" | |
| 29 | 29 | /> |
| 30 | 30 | </el-select> |
| 31 | 31 | </el-form-item> |
| ... | ... | @@ -47,26 +47,6 @@ |
| 47 | 47 | </el-col> |
| 48 | 48 | <el-col :span="1.5"> |
| 49 | 49 | <el-button |
| 50 | - type="success" | |
| 51 | - icon="el-icon-edit" | |
| 52 | - size="mini" | |
| 53 | - :disabled="single" | |
| 54 | - @click="handleUpdate" | |
| 55 | - v-hasPermi="['system:post:edit']" | |
| 56 | - >修改</el-button> | |
| 57 | - </el-col> | |
| 58 | - <el-col :span="1.5"> | |
| 59 | - <el-button | |
| 60 | - type="danger" | |
| 61 | - icon="el-icon-delete" | |
| 62 | - size="mini" | |
| 63 | - :disabled="multiple" | |
| 64 | - @click="handleDelete" | |
| 65 | - v-hasPermi="['system:post:remove']" | |
| 66 | - >删除</el-button> | |
| 67 | - </el-col> | |
| 68 | - <el-col :span="1.5"> | |
| 69 | - <el-button | |
| 70 | 50 | type="warning" |
| 71 | 51 | icon="el-icon-download" |
| 72 | 52 | size="mini" |
| ... | ... | @@ -77,12 +57,11 @@ |
| 77 | 57 | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| 78 | 58 | </el-row> |
| 79 | 59 | |
| 80 | - <el-table v-loading="loading" :data="postList" @selection-change="handleSelectionChange"> | |
| 81 | - <el-table-column type="selection" width="55" align="center" /> | |
| 82 | - <el-table-column label="岗位编号" align="center" prop="postId" /> | |
| 83 | - <el-table-column label="岗位编码" align="center" prop="postCode" /> | |
| 84 | - <el-table-column label="岗位名称" align="center" prop="postName" /> | |
| 85 | - <el-table-column label="岗位排序" align="center" prop="postSort" /> | |
| 60 | + <el-table v-loading="loading" :data="postList"> | |
| 61 | + <el-table-column label="岗位编号" align="center" prop="id" /> | |
| 62 | + <el-table-column label="岗位编码" align="center" prop="code" /> | |
| 63 | + <el-table-column label="岗位名称" align="center" prop="name" /> | |
| 64 | + <el-table-column label="岗位排序" align="center" prop="sort" /> | |
| 86 | 65 | <el-table-column label="状态" align="center" prop="status" :formatter="statusFormat" /> |
| 87 | 66 | <el-table-column label="创建时间" align="center" prop="createTime" width="180"> |
| 88 | 67 | <template slot-scope="scope"> |
| ... | ... | @@ -108,11 +87,11 @@ |
| 108 | 87 | </template> |
| 109 | 88 | </el-table-column> |
| 110 | 89 | </el-table> |
| 111 | - | |
| 90 | + | |
| 112 | 91 | <pagination |
| 113 | 92 | v-show="total>0" |
| 114 | 93 | :total="total" |
| 115 | - :page.sync="queryParams.pageNum" | |
| 94 | + :page.sync="queryParams.pageNo" | |
| 116 | 95 | :limit.sync="queryParams.pageSize" |
| 117 | 96 | @pagination="getList" |
| 118 | 97 | /> |
| ... | ... | @@ -120,22 +99,22 @@ |
| 120 | 99 | <!-- 添加或修改岗位对话框 --> |
| 121 | 100 | <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> |
| 122 | 101 | <el-form ref="form" :model="form" :rules="rules" label-width="80px"> |
| 123 | - <el-form-item label="岗位名称" prop="postName"> | |
| 124 | - <el-input v-model="form.postName" placeholder="请输入岗位名称" /> | |
| 102 | + <el-form-item label="岗位名称" prop="name"> | |
| 103 | + <el-input v-model="form.name" placeholder="请输入岗位名称" /> | |
| 125 | 104 | </el-form-item> |
| 126 | - <el-form-item label="岗位编码" prop="postCode"> | |
| 127 | - <el-input v-model="form.postCode" placeholder="请输入编码名称" /> | |
| 105 | + <el-form-item label="岗位编码" prop="code"> | |
| 106 | + <el-input v-model="form.code" placeholder="请输入编码名称" /> | |
| 128 | 107 | </el-form-item> |
| 129 | - <el-form-item label="岗位顺序" prop="postSort"> | |
| 130 | - <el-input-number v-model="form.postSort" controls-position="right" :min="0" /> | |
| 108 | + <el-form-item label="岗位顺序" prop="sort"> | |
| 109 | + <el-input-number v-model="form.sort" controls-position="right" :min="0" /> | |
| 131 | 110 | </el-form-item> |
| 132 | 111 | <el-form-item label="岗位状态" prop="status"> |
| 133 | 112 | <el-radio-group v-model="form.status"> |
| 134 | 113 | <el-radio |
| 135 | - v-for="dict in statusOptions" | |
| 136 | - :key="dict.dictValue" | |
| 137 | - :label="dict.dictValue" | |
| 138 | - >{{dict.dictLabel}}</el-radio> | |
| 114 | + v-for="dict in statusDictDatas" | |
| 115 | + :key="parseInt(dict.value)" | |
| 116 | + :label="parseInt(dict.value)" | |
| 117 | + >{{dict.label}}</el-radio> | |
| 139 | 118 | </el-radio-group> |
| 140 | 119 | </el-form-item> |
| 141 | 120 | <el-form-item label="备注" prop="remark"> |
| ... | ... | @@ -153,6 +132,9 @@ |
| 153 | 132 | <script> |
| 154 | 133 | import { listPost, getPost, delPost, addPost, updatePost, exportPost } from "@/api/system/post"; |
| 155 | 134 | |
| 135 | +import {SysCommonStatusEnum} from '@/utils/constants' | |
| 136 | +import { getDictDataLabel, getDictDatas, DICT_TYPE } from '@/utils/dict' | |
| 137 | + | |
| 156 | 138 | export default { |
| 157 | 139 | name: "Post", |
| 158 | 140 | data() { |
| ... | ... | @@ -179,47 +161,49 @@ export default { |
| 179 | 161 | statusOptions: [], |
| 180 | 162 | // 查询参数 |
| 181 | 163 | queryParams: { |
| 182 | - pageNum: 1, | |
| 164 | + pageNo: 1, | |
| 183 | 165 | pageSize: 10, |
| 184 | - postCode: undefined, | |
| 185 | - postName: undefined, | |
| 166 | + code: undefined, | |
| 167 | + name: undefined, | |
| 186 | 168 | status: undefined |
| 187 | 169 | }, |
| 188 | 170 | // 表单参数 |
| 189 | 171 | form: {}, |
| 190 | 172 | // 表单校验 |
| 191 | 173 | rules: { |
| 192 | - postName: [ | |
| 174 | + name: [ | |
| 193 | 175 | { required: true, message: "岗位名称不能为空", trigger: "blur" } |
| 194 | 176 | ], |
| 195 | - postCode: [ | |
| 177 | + code: [ | |
| 196 | 178 | { required: true, message: "岗位编码不能为空", trigger: "blur" } |
| 197 | 179 | ], |
| 198 | - postSort: [ | |
| 180 | + sort: [ | |
| 199 | 181 | { required: true, message: "岗位顺序不能为空", trigger: "blur" } |
| 200 | 182 | ] |
| 201 | - } | |
| 183 | + }, | |
| 184 | + | |
| 185 | + // 枚举 | |
| 186 | + CommonStatusEnum: SysCommonStatusEnum, | |
| 187 | + // 数据字典 | |
| 188 | + statusDictDatas: getDictDatas(DICT_TYPE.SYS_COMMON_STATUS) | |
| 202 | 189 | }; |
| 203 | 190 | }, |
| 204 | 191 | created() { |
| 205 | 192 | this.getList(); |
| 206 | - this.getDicts("sys_normal_disable").then(response => { | |
| 207 | - this.statusOptions = response.data; | |
| 208 | - }); | |
| 209 | 193 | }, |
| 210 | 194 | methods: { |
| 211 | 195 | /** 查询岗位列表 */ |
| 212 | 196 | getList() { |
| 213 | 197 | this.loading = true; |
| 214 | 198 | listPost(this.queryParams).then(response => { |
| 215 | - this.postList = response.rows; | |
| 216 | - this.total = response.total; | |
| 199 | + this.postList = response.data.list; | |
| 200 | + this.total = response.data.total; | |
| 217 | 201 | this.loading = false; |
| 218 | 202 | }); |
| 219 | 203 | }, |
| 220 | 204 | // 岗位状态字典翻译 |
| 221 | 205 | statusFormat(row, column) { |
| 222 | - return this.selectDictLabel(this.statusOptions, row.status); | |
| 206 | + return getDictDataLabel(DICT_TYPE.SYS_COMMON_STATUS, row.status) | |
| 223 | 207 | }, |
| 224 | 208 | // 取消按钮 |
| 225 | 209 | cancel() { |
| ... | ... | @@ -229,18 +213,18 @@ export default { |
| 229 | 213 | // 表单重置 |
| 230 | 214 | reset() { |
| 231 | 215 | this.form = { |
| 232 | - postId: undefined, | |
| 233 | - postCode: undefined, | |
| 234 | - postName: undefined, | |
| 235 | - postSort: 0, | |
| 236 | - status: "0", | |
| 216 | + id: undefined, | |
| 217 | + code: undefined, | |
| 218 | + name: undefined, | |
| 219 | + sort: 0, | |
| 220 | + status: SysCommonStatusEnum.ENABLE, | |
| 237 | 221 | remark: undefined |
| 238 | 222 | }; |
| 239 | 223 | this.resetForm("form"); |
| 240 | 224 | }, |
| 241 | 225 | /** 搜索按钮操作 */ |
| 242 | 226 | handleQuery() { |
| 243 | - this.queryParams.pageNum = 1; | |
| 227 | + this.queryParams.pageNo = 1; | |
| 244 | 228 | this.getList(); |
| 245 | 229 | }, |
| 246 | 230 | /** 重置按钮操作 */ |
| ... | ... | @@ -248,12 +232,6 @@ export default { |
| 248 | 232 | this.resetForm("queryForm"); |
| 249 | 233 | this.handleQuery(); |
| 250 | 234 | }, |
| 251 | - // 多选框选中数据 | |
| 252 | - handleSelectionChange(selection) { | |
| 253 | - this.ids = selection.map(item => item.postId) | |
| 254 | - this.single = selection.length!=1 | |
| 255 | - this.multiple = !selection.length | |
| 256 | - }, | |
| 257 | 235 | /** 新增按钮操作 */ |
| 258 | 236 | handleAdd() { |
| 259 | 237 | this.reset(); |
| ... | ... | @@ -263,8 +241,8 @@ export default { |
| 263 | 241 | /** 修改按钮操作 */ |
| 264 | 242 | handleUpdate(row) { |
| 265 | 243 | this.reset(); |
| 266 | - const postId = row.postId || this.ids | |
| 267 | - getPost(postId).then(response => { | |
| 244 | + const id = row.id | |
| 245 | + getPost(id).then(response => { | |
| 268 | 246 | this.form = response.data; |
| 269 | 247 | this.open = true; |
| 270 | 248 | this.title = "修改岗位"; |
| ... | ... | @@ -274,7 +252,7 @@ export default { |
| 274 | 252 | submitForm: function() { |
| 275 | 253 | this.$refs["form"].validate(valid => { |
| 276 | 254 | if (valid) { |
| 277 | - if (this.form.postId != undefined) { | |
| 255 | + if (this.form.id !== undefined) { | |
| 278 | 256 | updatePost(this.form).then(response => { |
| 279 | 257 | this.msgSuccess("修改成功"); |
| 280 | 258 | this.open = false; |
| ... | ... | @@ -292,13 +270,13 @@ export default { |
| 292 | 270 | }, |
| 293 | 271 | /** 删除按钮操作 */ |
| 294 | 272 | handleDelete(row) { |
| 295 | - const postIds = row.postId || this.ids; | |
| 296 | - this.$confirm('是否确认删除岗位编号为"' + postIds + '"的数据项?', "警告", { | |
| 273 | + const ids = row.id; | |
| 274 | + this.$confirm('是否确认删除岗位编号为"' + ids + '"的数据项?', "警告", { | |
| 297 | 275 | confirmButtonText: "确定", |
| 298 | 276 | cancelButtonText: "取消", |
| 299 | 277 | type: "warning" |
| 300 | 278 | }).then(function() { |
| 301 | - return delPost(postIds); | |
| 279 | + return delPost(ids); | |
| 302 | 280 | }).then(() => { |
| 303 | 281 | this.getList(); |
| 304 | 282 | this.msgSuccess("删除成功"); |
| ... | ... | @@ -319,4 +297,4 @@ export default { |
| 319 | 297 | } |
| 320 | 298 | } |
| 321 | 299 | }; |
| 322 | -</script> | |
| 323 | 300 | \ No newline at end of file |
| 301 | +</script> | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/controller/dept/SysPostController.java
| ... | ... | @@ -2,15 +2,16 @@ package cn.iocoder.dashboard.modules.system.controller.dept; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.dashboard.common.enums.CommonStatusEnum; |
| 4 | 4 | import cn.iocoder.dashboard.common.pojo.CommonResult; |
| 5 | -import cn.iocoder.dashboard.modules.system.controller.dept.vo.post.SysPostSimpleRespVO; | |
| 5 | +import cn.iocoder.dashboard.common.pojo.PageResult; | |
| 6 | +import cn.iocoder.dashboard.modules.system.controller.dept.vo.post.*; | |
| 6 | 7 | import cn.iocoder.dashboard.modules.system.convert.dept.SysPostConvert; |
| 7 | 8 | import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.dept.SysPostDO; |
| 8 | 9 | import cn.iocoder.dashboard.modules.system.service.dept.SysPostService; |
| 9 | 10 | import io.swagger.annotations.Api; |
| 11 | +import io.swagger.annotations.ApiImplicitParam; | |
| 10 | 12 | import io.swagger.annotations.ApiOperation; |
| 11 | -import org.springframework.web.bind.annotation.GetMapping; | |
| 12 | -import org.springframework.web.bind.annotation.RequestMapping; | |
| 13 | -import org.springframework.web.bind.annotation.RestController; | |
| 13 | +import org.springframework.validation.annotation.Validated; | |
| 14 | +import org.springframework.web.bind.annotation.*; | |
| 14 | 15 | |
| 15 | 16 | import javax.annotation.Resource; |
| 16 | 17 | import java.util.Collections; |
| ... | ... | @@ -37,4 +38,54 @@ public class SysPostController { |
| 37 | 38 | return success(SysPostConvert.INSTANCE.convertList02(list)); |
| 38 | 39 | } |
| 39 | 40 | |
| 41 | + @ApiOperation("获得岗位分页列表") | |
| 42 | + @GetMapping("/page") | |
| 43 | +// @PreAuthorize("@ss.hasPermi('system:post:list')") | |
| 44 | + public CommonResult<PageResult<SysPostRespVO>> pagePosts(@Validated SysPostPageReqVO reqVO) { | |
| 45 | + return success(SysPostConvert.INSTANCE.convertPage(postService.pagePosts(reqVO))); | |
| 46 | + } | |
| 47 | + | |
| 48 | + @ApiOperation("新增岗位") | |
| 49 | + @PostMapping("/create") | |
| 50 | +// @PreAuthorize("@ss.hasPermi('system:post:add')") | |
| 51 | +// @Log(title = "岗位管理", businessType = BusinessType.INSERT) | |
| 52 | + public CommonResult<Long> createPost(@Validated @RequestBody SysPostCreateReqVO reqVO) { | |
| 53 | + Long postId = postService.createPost(reqVO); | |
| 54 | + return success(postId); | |
| 55 | + } | |
| 56 | + | |
| 57 | + @ApiOperation("修改岗位") | |
| 58 | + @PostMapping("/update") | |
| 59 | +// @PreAuthorize("@ss.hasPermi('system:post:edit')") | |
| 60 | +// @Log(title = "岗位管理", businessType = BusinessType.UPDATE) | |
| 61 | + public CommonResult<Boolean> updatePost(@Validated @RequestBody SysPostUpdateReqVO reqVO) { | |
| 62 | + postService.updatePost(reqVO); | |
| 63 | + return success(true); | |
| 64 | + } | |
| 65 | + | |
| 66 | + @ApiOperation("删除岗位") | |
| 67 | + @PostMapping("/delete") | |
| 68 | +// @PreAuthorize("@ss.hasPermi('system:post:remove')") | |
| 69 | +// @Log(title = "岗位管理", businessType = BusinessType.DELETE) | |
| 70 | + public CommonResult<Boolean> deletePost(@RequestParam("id") Long id) { | |
| 71 | + postService.deletePost(id); | |
| 72 | + return success(true); | |
| 73 | + } | |
| 74 | + | |
| 75 | + @ApiOperation("获得岗位信息") | |
| 76 | + @ApiImplicitParam(name = "id", value = "岗位编号", readOnly = true, example = "1024") | |
| 77 | +// @PreAuthorize("@ss.hasPermi('system:post:query')") | |
| 78 | + @GetMapping(value = "/get") | |
| 79 | + public CommonResult<SysPostRespVO> getPost(@RequestParam("id") Long id) { | |
| 80 | + return success(SysPostConvert.INSTANCE.convert(postService.getPost(id))); | |
| 81 | + } | |
| 82 | + | |
| 83 | +// @Log(title = "岗位管理", businessType = BusinessType.EXPORT) | |
| 84 | +// @PreAuthorize("@ss.hasPermi('system:post:export')") | |
| 85 | +// @GetMapping("/export") | |
| 86 | +// public AjaxResult export(SysPost post) { | |
| 87 | +// List<SysPost> list = postService.selectPostList(post); | |
| 88 | +// ExcelUtil<SysPost> util = new ExcelUtil<SysPost>(SysPost.class); | |
| 89 | +// return util.exportExcel(list, "岗位数据"); | |
| 90 | +// } | |
| 40 | 91 | } | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/controller/dept/vo/post/SysPostBaseVO.java
| ... | ... | @@ -27,6 +27,9 @@ public class SysPostBaseVO { |
| 27 | 27 | @NotBlank(message = "显示顺序不能为空") |
| 28 | 28 | private String sort; |
| 29 | 29 | |
| 30 | + @ApiModelProperty(value = "状态", required = true, example = "1", notes = "参见 SysCommonStatusEnum 枚举类") | |
| 31 | + private Integer status; | |
| 32 | + | |
| 30 | 33 | @ApiModelProperty(value = "备注", example = "快乐的备注") |
| 31 | 34 | private String remark; |
| 32 | 35 | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/controller/dept/vo/post/SysPostPageReqVO.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.system.controller.dept.vo.post; | |
| 2 | + | |
| 3 | +import cn.iocoder.dashboard.common.pojo.PageParam; | |
| 4 | +import io.swagger.annotations.ApiModel; | |
| 5 | +import io.swagger.annotations.ApiModelProperty; | |
| 6 | +import lombok.Data; | |
| 7 | +import lombok.EqualsAndHashCode; | |
| 8 | + | |
| 9 | +@ApiModel("岗位分页 Request VO") | |
| 10 | +@Data | |
| 11 | +@EqualsAndHashCode(callSuper = true) | |
| 12 | +public class SysPostPageReqVO extends PageParam { | |
| 13 | + | |
| 14 | + @ApiModelProperty(value = "岗位名称", example = "芋道", notes = "模糊匹配") | |
| 15 | + private String name; | |
| 16 | + | |
| 17 | + @ApiModelProperty(value = "展示状态", example = "1", notes = "参见 SysCommonStatusEnum 枚举类") | |
| 18 | + private Integer status; | |
| 19 | + | |
| 20 | +} | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/controller/dept/vo/post/SysPostRespVO.java
| ... | ... | @@ -15,9 +15,6 @@ public class SysPostRespVO extends SysPostBaseVO { |
| 15 | 15 | @ApiModelProperty(value = "岗位序号", required = true, example = "1024") |
| 16 | 16 | private Integer id; |
| 17 | 17 | |
| 18 | - @ApiModelProperty(value = "状态", required = true, example = "1", notes = "参见 SysCommonStatusEnum 枚举类") | |
| 19 | - private Integer status; | |
| 20 | - | |
| 21 | 18 | @ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式") |
| 22 | 19 | private Date createTime; |
| 23 | 20 | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/controller/dept/vo/post/SysPostUpdateReqVO.java
src/main/java/cn/iocoder/dashboard/modules/system/convert/dept/SysPostConvert.java
| 1 | 1 | package cn.iocoder.dashboard.modules.system.convert.dept; |
| 2 | 2 | |
| 3 | +import cn.iocoder.dashboard.common.pojo.PageResult; | |
| 4 | +import cn.iocoder.dashboard.modules.system.controller.dept.vo.post.SysPostCreateReqVO; | |
| 5 | +import cn.iocoder.dashboard.modules.system.controller.dept.vo.post.SysPostRespVO; | |
| 3 | 6 | import cn.iocoder.dashboard.modules.system.controller.dept.vo.post.SysPostSimpleRespVO; |
| 7 | +import cn.iocoder.dashboard.modules.system.controller.dept.vo.post.SysPostUpdateReqVO; | |
| 4 | 8 | import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.dept.SysPostDO; |
| 9 | +import com.baomidou.mybatisplus.core.metadata.IPage; | |
| 5 | 10 | import org.mapstruct.Mapper; |
| 11 | +import org.mapstruct.Mapping; | |
| 6 | 12 | import org.mapstruct.factory.Mappers; |
| 7 | 13 | |
| 8 | 14 | import java.util.List; |
| ... | ... | @@ -14,4 +20,15 @@ public interface SysPostConvert { |
| 14 | 20 | |
| 15 | 21 | List<SysPostSimpleRespVO> convertList02(List<SysPostDO> list); |
| 16 | 22 | |
| 23 | + PageResult<SysPostRespVO> convertPage(PageResult<SysPostDO> page); | |
| 24 | + | |
| 25 | + SysPostRespVO convert(SysPostDO id); | |
| 26 | + | |
| 27 | + @Mapping(source = "records", target = "list") | |
| 28 | + PageResult<SysPostDO> convertPage02(IPage<SysPostDO> page); | |
| 29 | + | |
| 30 | + SysPostDO convert(SysPostCreateReqVO bean); | |
| 31 | + | |
| 32 | + SysPostDO convert(SysPostUpdateReqVO reqVO); | |
| 33 | + | |
| 17 | 34 | } | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dao/dept/SysPostMapper.java
| 1 | 1 | package cn.iocoder.dashboard.modules.system.dal.mysql.dao.dept; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.dashboard.framework.mybatis.core.query.QueryWrapperX; |
| 4 | +import cn.iocoder.dashboard.framework.mybatis.core.util.MyBatisUtils; | |
| 5 | +import cn.iocoder.dashboard.modules.system.controller.dept.vo.post.SysPostPageReqVO; | |
| 4 | 6 | import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.dept.SysPostDO; |
| 7 | +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | |
| 5 | 8 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| 9 | +import com.baomidou.mybatisplus.core.metadata.IPage; | |
| 6 | 10 | import org.apache.ibatis.annotations.Mapper; |
| 7 | 11 | |
| 8 | 12 | import java.util.Collection; |
| ... | ... | @@ -16,4 +20,18 @@ public interface SysPostMapper extends BaseMapper<SysPostDO> { |
| 16 | 20 | .inIfPresent("status", statuses)); |
| 17 | 21 | } |
| 18 | 22 | |
| 23 | + default IPage<SysPostDO> selectList(SysPostPageReqVO reqVO) { | |
| 24 | + return selectPage(MyBatisUtils.buildPage(reqVO), | |
| 25 | + new QueryWrapperX<SysPostDO>().likeIfPresent("name", reqVO.getName()) | |
| 26 | + .eqIfPresent("status", reqVO.getStatus())); | |
| 27 | + } | |
| 28 | + | |
| 29 | + default SysPostDO selectByName(String name) { | |
| 30 | + return selectOne(new QueryWrapper<SysPostDO>().eq("name", name)); | |
| 31 | + } | |
| 32 | + | |
| 33 | + default SysPostDO selectByCode(String code) { | |
| 34 | + return selectOne(new QueryWrapper<SysPostDO>().eq("code", code)); | |
| 35 | + } | |
| 36 | + | |
| 19 | 37 | } | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/enums/SysErrorCodeConstants.java
| ... | ... | @@ -51,5 +51,7 @@ public interface SysErrorCodeConstants { |
| 51 | 51 | // ========== 岗位模块 1002005000 ========== |
| 52 | 52 | ErrorCode POST_NOT_FOUND = new ErrorCode(1002005001, "当前岗位不存在"); |
| 53 | 53 | ErrorCode POST_NOT_ENABLE = new ErrorCode(1002005002, "岗位({}) 不处于开启状态,不允许选择"); |
| 54 | + ErrorCode POST_NAME_DUPLICATE = new ErrorCode(1002004001, "已经存在该名字的岗位"); | |
| 55 | + ErrorCode POST_CODE_DUPLICATE = new ErrorCode(1002004001, "已经存在该标识的岗位"); | |
| 54 | 56 | |
| 55 | 57 | } | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/service/dept/SysPostService.java
| 1 | 1 | package cn.iocoder.dashboard.modules.system.service.dept; |
| 2 | 2 | |
| 3 | +import cn.iocoder.dashboard.common.pojo.PageResult; | |
| 4 | +import cn.iocoder.dashboard.modules.system.controller.dept.vo.post.SysPostCreateReqVO; | |
| 5 | +import cn.iocoder.dashboard.modules.system.controller.dept.vo.post.SysPostPageReqVO; | |
| 6 | +import cn.iocoder.dashboard.modules.system.controller.dept.vo.post.SysPostUpdateReqVO; | |
| 3 | 7 | import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.dept.SysPostDO; |
| 4 | 8 | |
| 5 | 9 | import javax.annotation.Nullable; |
| ... | ... | @@ -22,4 +26,42 @@ public interface SysPostService { |
| 22 | 26 | */ |
| 23 | 27 | List<SysPostDO> listPosts(@Nullable Collection<Long> ids, @Nullable Collection<Integer> statuses); |
| 24 | 28 | |
| 29 | + /** | |
| 30 | + * 获得岗位分页列表 | |
| 31 | + * | |
| 32 | + * @param reqVO 分页条件 | |
| 33 | + * @return 部门分页列表 | |
| 34 | + */ | |
| 35 | + PageResult<SysPostDO> pagePosts(SysPostPageReqVO reqVO); | |
| 36 | + | |
| 37 | + /** | |
| 38 | + * 获得岗位信息 | |
| 39 | + * | |
| 40 | + * @param id 岗位编号 | |
| 41 | + * @return 岗位信息 | |
| 42 | + */ | |
| 43 | + SysPostDO getPost(Long id); | |
| 44 | + | |
| 45 | + /** | |
| 46 | + * 创建岗位 | |
| 47 | + * | |
| 48 | + * @param reqVO 岗位信息 | |
| 49 | + * @return 岗位编号 | |
| 50 | + */ | |
| 51 | + Long createPost(SysPostCreateReqVO reqVO); | |
| 52 | + | |
| 53 | + /** | |
| 54 | + * 更新岗位 | |
| 55 | + * | |
| 56 | + * @param reqVO 岗位信息 | |
| 57 | + */ | |
| 58 | + void updatePost(SysPostUpdateReqVO reqVO); | |
| 59 | + | |
| 60 | + /** | |
| 61 | + * 删除岗位信息 | |
| 62 | + * | |
| 63 | + * @param id 岗位编号 | |
| 64 | + */ | |
| 65 | + void deletePost(Long id); | |
| 66 | + | |
| 25 | 67 | } | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/service/dept/impl/SysDeptServiceImpl.java
| ... | ... | @@ -175,7 +175,7 @@ public class SysDeptServiceImpl implements SysDeptService { |
| 175 | 175 | if (parentId.equals(id)) { |
| 176 | 176 | throw ServiceExceptionUtil.exception(DEPT_PARENT_ERROR); |
| 177 | 177 | } |
| 178 | - // 父菜单不存在 | |
| 178 | + // 父岗位不存在 | |
| 179 | 179 | SysDeptDO dept = deptMapper.selectById(parentId); |
| 180 | 180 | if (dept == null) { |
| 181 | 181 | throw ServiceExceptionUtil.exception(DEPT_PARENT_NOT_EXITS); |
| ... | ... | @@ -206,7 +206,7 @@ public class SysDeptServiceImpl implements SysDeptService { |
| 206 | 206 | if (menu == null) { |
| 207 | 207 | return; |
| 208 | 208 | } |
| 209 | - // 如果 id 为空,说明不用比较是否为相同 id 的菜单 | |
| 209 | + // 如果 id 为空,说明不用比较是否为相同 id 的岗位 | |
| 210 | 210 | if (id == null) { |
| 211 | 211 | throw ServiceExceptionUtil.exception(DEPT_NAME_DUPLICATE); |
| 212 | 212 | } | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/service/dept/impl/SysPostServiceImpl.java
| 1 | 1 | package cn.iocoder.dashboard.modules.system.service.dept.impl; |
| 2 | 2 | |
| 3 | +import cn.iocoder.dashboard.common.exception.util.ServiceExceptionUtil; | |
| 4 | +import cn.iocoder.dashboard.common.pojo.PageResult; | |
| 5 | +import cn.iocoder.dashboard.modules.system.controller.dept.vo.post.SysPostCreateReqVO; | |
| 6 | +import cn.iocoder.dashboard.modules.system.controller.dept.vo.post.SysPostPageReqVO; | |
| 7 | +import cn.iocoder.dashboard.modules.system.controller.dept.vo.post.SysPostUpdateReqVO; | |
| 8 | +import cn.iocoder.dashboard.modules.system.convert.dept.SysPostConvert; | |
| 3 | 9 | import cn.iocoder.dashboard.modules.system.dal.mysql.dao.dept.SysPostMapper; |
| 4 | 10 | import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.dept.SysPostDO; |
| 5 | 11 | import cn.iocoder.dashboard.modules.system.service.dept.SysPostService; |
| ... | ... | @@ -9,6 +15,8 @@ import javax.annotation.Resource; |
| 9 | 15 | import java.util.Collection; |
| 10 | 16 | import java.util.List; |
| 11 | 17 | |
| 18 | +import static cn.iocoder.dashboard.modules.system.enums.SysErrorCodeConstants.*; | |
| 19 | + | |
| 12 | 20 | /** |
| 13 | 21 | * 岗位 Service 实现类 |
| 14 | 22 | * |
| ... | ... | @@ -25,4 +33,88 @@ public class SysPostServiceImpl implements SysPostService { |
| 25 | 33 | return postMapper.selectList(ids, statuses); |
| 26 | 34 | } |
| 27 | 35 | |
| 36 | + @Override | |
| 37 | + public PageResult<SysPostDO> pagePosts(SysPostPageReqVO reqVO) { | |
| 38 | + return SysPostConvert.INSTANCE.convertPage02(postMapper.selectList(reqVO)); | |
| 39 | + } | |
| 40 | + | |
| 41 | + @Override | |
| 42 | + public SysPostDO getPost(Long id) { | |
| 43 | + return postMapper.selectById(id); | |
| 44 | + } | |
| 45 | + | |
| 46 | + @Override | |
| 47 | + public Long createPost(SysPostCreateReqVO reqVO) { | |
| 48 | + // 校验正确性 | |
| 49 | + this.checkCreateOrUpdate(null, reqVO.getName(), reqVO.getCode()); | |
| 50 | + // 插入岗位 | |
| 51 | + SysPostDO post = SysPostConvert.INSTANCE.convert(reqVO); | |
| 52 | + postMapper.insert(post); | |
| 53 | + return post.getId(); | |
| 54 | + } | |
| 55 | + | |
| 56 | + @Override | |
| 57 | + public void updatePost(SysPostUpdateReqVO reqVO) { | |
| 58 | + // 校验正确性 | |
| 59 | + this.checkCreateOrUpdate(reqVO.getId(), reqVO.getName(), reqVO.getCode()); | |
| 60 | + // 更新岗位 | |
| 61 | + SysPostDO updateObj = SysPostConvert.INSTANCE.convert(reqVO); | |
| 62 | + postMapper.updateById(updateObj); | |
| 63 | + } | |
| 64 | + | |
| 65 | + private void checkCreateOrUpdate(Long id, String name, String code) { | |
| 66 | + // 校验自己存在 | |
| 67 | + checkPostExists(id); | |
| 68 | + // 校验岗位名的唯一性 | |
| 69 | + checkPostNameUnique(id, name); | |
| 70 | + // 校验岗位编码的唯一性 | |
| 71 | + checkPostCodeUnique(id, code); | |
| 72 | + } | |
| 73 | + | |
| 74 | + private void checkPostNameUnique(Long id, String name) { | |
| 75 | + SysPostDO post = postMapper.selectByName(name); | |
| 76 | + if (post == null) { | |
| 77 | + return; | |
| 78 | + } | |
| 79 | + // 如果 id 为空,说明不用比较是否为相同 id 的岗位 | |
| 80 | + if (id == null) { | |
| 81 | + throw ServiceExceptionUtil.exception(POST_NAME_DUPLICATE); | |
| 82 | + } | |
| 83 | + if (!post.getId().equals(id)) { | |
| 84 | + throw ServiceExceptionUtil.exception(POST_NAME_DUPLICATE); | |
| 85 | + } | |
| 86 | + } | |
| 87 | + | |
| 88 | + private void checkPostCodeUnique(Long id, String code) { | |
| 89 | + SysPostDO post = postMapper.selectByCode(code); | |
| 90 | + if (post == null) { | |
| 91 | + return; | |
| 92 | + } | |
| 93 | + // 如果 id 为空,说明不用比较是否为相同 id 的岗位 | |
| 94 | + if (id == null) { | |
| 95 | + throw ServiceExceptionUtil.exception(POST_CODE_DUPLICATE); | |
| 96 | + } | |
| 97 | + if (!post.getId().equals(id)) { | |
| 98 | + throw ServiceExceptionUtil.exception(POST_CODE_DUPLICATE); | |
| 99 | + } | |
| 100 | + } | |
| 101 | + | |
| 102 | + @Override | |
| 103 | + public void deletePost(Long id) { | |
| 104 | + // 校验是否存在 | |
| 105 | + this.checkPostExists(id); | |
| 106 | + // 删除部门 | |
| 107 | + postMapper.deleteById(id); | |
| 108 | + } | |
| 109 | + | |
| 110 | + private void checkPostExists(Long id) { | |
| 111 | + if (id == null) { | |
| 112 | + return; | |
| 113 | + } | |
| 114 | + SysPostDO post = postMapper.selectById(id); | |
| 115 | + if (post == null) { | |
| 116 | + throw ServiceExceptionUtil.exception(POST_NOT_FOUND); | |
| 117 | + } | |
| 118 | + } | |
| 119 | + | |
| 28 | 120 | } | ... | ... |