From f3b91a2aefcf7b947ca1f4fe91eb0af8888a8d42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=98=E7=BB=AA=E5=A3=AE?= <2235602974@qq.com> Date: Sat, 26 Mar 2022 16:57:16 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E7=94=A8=E6=88=B7=E5=B2=97?= =?UTF-8?q?=E4=BD=8D=E5=85=B3=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/2pigxx.sql | 16 ++++++ .../pig4cloud/pigx/admin/api/dto/UserDTO.java | 5 ++ .../pigx/admin/api/entity/SysUserPost.java | 49 +++++++++++++++++ .../pig4cloud/pigx/admin/api/vo/UserVO.java | 6 +++ .../admin/controller/SysPostController.java | 9 ++++ .../pigx/admin/mapper/SysPostMapper.java | 9 ++++ .../pigx/admin/mapper/SysUserPostMapper.java | 34 ++++++++++++ .../service/impl/SysUserServiceImpl.java | 17 ++++++ .../main/resources/mapper/SysPostMapper.xml | 53 +++++++++++++++++++ .../main/resources/mapper/SysUserMapper.xml | 3 ++ 10 files changed, 201 insertions(+) create mode 100644 pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysUserPost.java create mode 100644 pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/mapper/SysUserPostMapper.java create mode 100644 pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysPostMapper.xml diff --git a/db/2pigxx.sql b/db/2pigxx.sql index f2662034e..63a0b309a 100644 --- a/db/2pigxx.sql +++ b/db/2pigxx.sql @@ -100,6 +100,22 @@ INSERT INTO `sys_post` VALUES (1, 'CTO', 'CTO', 0, 'CTO', '0', '2022-03-26 13:48 INSERT INTO `sys_post` VALUES (2, 'CEO', 'CEO', 1, 'CEO', '0', '2022-03-26 13:48:27', '', '2022-03-26 13:48:38', '', 1); COMMIT; +-- ---------------------------- +-- Table structure for sys_user_post +-- ---------------------------- +DROP TABLE IF EXISTS `sys_user_post`; +CREATE TABLE `sys_user_post` ( + `user_id` bigint(0) NOT NULL COMMENT '用户ID', + `post_id` bigint(0) NOT NULL COMMENT '岗位ID', + PRIMARY KEY (`user_id`, `post_id`) USING BTREE +) ENGINE = InnoDB DEFAULT CHARACTER = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户与岗位关联表'; + +-- ---------------------------- +-- Records of sys_user_post +-- ---------------------------- +BEGIN; +INSERT INTO `sys_user_post` VALUES (1, 1); +COMMIT; -- ---------------------------- -- Table structure for sys_dict diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/dto/UserDTO.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/dto/UserDTO.java index ad89c754a..d1467fceb 100644 --- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/dto/UserDTO.java +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/dto/UserDTO.java @@ -48,6 +48,11 @@ public class UserDTO extends SysUser { @ApiModelProperty(value = "部门id") private Long deptId; + /** + * 岗位ID + */ + private List post; + /** * 新密码 */ diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysUserPost.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysUserPost.java new file mode 100644 index 000000000..a83dce85e --- /dev/null +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysUserPost.java @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2020 pig4cloud Authors. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.pig4cloud.pigx.admin.api.entity; + +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * 用户岗位表 + *

+ * + * @author fxz + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class SysUserPost extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 用户ID + */ + @ApiModelProperty(value = "用户id") + private Long userId; + + /** + * 岗位ID + */ + @ApiModelProperty(value = "岗位id") + private Long postId; + +} diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/vo/UserVO.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/vo/UserVO.java index fabdfa96a..6d6574395 100644 --- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/vo/UserVO.java +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/vo/UserVO.java @@ -19,6 +19,7 @@ package com.pig4cloud.pigx.admin.api.vo; +import com.pig4cloud.pigx.admin.api.entity.SysPost; import com.pig4cloud.pigx.admin.api.entity.SysRole; import com.pig4cloud.pigx.common.core.sensitive.Sensitive; import com.pig4cloud.pigx.common.core.sensitive.SensitiveTypeEnum; @@ -137,6 +138,11 @@ public class UserVO implements Serializable { @ApiModelProperty(value = "拥有的角色列表") private List roleList; + /** + * 岗位列表 + */ + private List postList; + /** * 昵称 */ diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysPostController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysPostController.java index e953bcb3a..61d20916b 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysPostController.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysPostController.java @@ -49,6 +49,15 @@ public class SysPostController { private final SysPostService sysPostService; + /** + * 获取岗位列表 + * @return 岗位列表 + */ + @GetMapping("/list") + public R> listPosts() { + return R.ok(sysPostService.list(Wrappers.emptyWrapper())); + } + /** * 分页查询 * @param page 分页对象 diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/mapper/SysPostMapper.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/mapper/SysPostMapper.java index b81edcd61..bd289ea09 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/mapper/SysPostMapper.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/mapper/SysPostMapper.java @@ -21,6 +21,8 @@ import com.pig4cloud.pigx.admin.api.entity.SysPost; import com.pig4cloud.pigx.common.data.datascope.PigxBaseMapper; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 岗位信息表 * @@ -30,4 +32,11 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface SysPostMapper extends PigxBaseMapper { + /** + * 通过用户ID,查询岗位信息 + * @param userId 用户id + * @return 岗位信息 + */ + List listPostsByUserId(Long userId); + } diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/mapper/SysUserPostMapper.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/mapper/SysUserPostMapper.java new file mode 100644 index 000000000..5fa646250 --- /dev/null +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/mapper/SysUserPostMapper.java @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2020 pig4cloud Authors. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.pig4cloud.pigx.admin.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.pig4cloud.pigx.admin.api.entity.SysUserPost; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * 用户岗位 Mapper 接口 + *

+ * + * @author fxz + * @since 2022/3/19 + */ +@Mapper +public interface SysUserPostMapper extends BaseMapper { + +} diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysUserServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysUserServiceImpl.java index 7fe0fe1bd..229e8dcd9 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysUserServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysUserServiceImpl.java @@ -32,6 +32,7 @@ import com.pig4cloud.pigx.admin.api.entity.*; import com.pig4cloud.pigx.admin.api.vo.UserExcelVO; import com.pig4cloud.pigx.admin.api.vo.UserVO; import com.pig4cloud.pigx.admin.mapper.SysUserMapper; +import com.pig4cloud.pigx.admin.mapper.SysUserPostMapper; import com.pig4cloud.pigx.admin.service.*; import com.pig4cloud.pigx.common.core.constant.CacheConstants; import com.pig4cloud.pigx.common.core.constant.CommonConstants; @@ -74,6 +75,8 @@ public class SysUserServiceImpl extends ServiceImpl impl private final SysUserRoleService sysUserRoleService; + private final SysUserPostMapper sysUserPostMapper; + /** * 保存用户信息 * @param userDto DTO 对象 @@ -87,6 +90,13 @@ public class SysUserServiceImpl extends ServiceImpl impl sysUser.setDelFlag(CommonConstants.STATUS_NORMAL); sysUser.setPassword(ENCODER.encode(userDto.getPassword())); baseMapper.insert(sysUser); + // 保存用户岗位信息 + userDto.getPost().stream().map(postId -> { + SysUserPost userPost = new SysUserPost(); + userPost.setUserId(sysUser.getUserId()); + userPost.setPostId(postId); + return userPost; + }).forEach(sysUserPostMapper::insert); List userRoleList = userDto.getRole().stream().map(roleId -> { SysUserRole userRole = new SysUserRole(); userRole.setUserId(sysUser.getUserId()); @@ -199,6 +209,13 @@ public class SysUserServiceImpl extends ServiceImpl impl userRole.setRoleId(roleId); userRole.insert(); }); + sysUserPostMapper.delete(Wrappers.lambdaQuery().eq(SysUserPost::getUserId, userDto.getUserId())); + userDto.getPost().forEach(postId -> { + SysUserPost userPost = new SysUserPost(); + userPost.setUserId(sysUser.getUserId()); + userPost.setPostId(postId); + userPost.insert(); + }); return Boolean.TRUE; } diff --git a/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysPostMapper.xml b/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysPostMapper.xml new file mode 100644 index 000000000..690de24e9 --- /dev/null +++ b/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysPostMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysUserMapper.xml b/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysUserMapper.xml index 3ad50fda0..18233698b 100644 --- a/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysUserMapper.xml +++ b/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysUserMapper.xml @@ -43,6 +43,9 @@ + +