From 95333d5a08e91c6d603f5ccc96b376bdb5cab8c0 Mon Sep 17 00:00:00 2001 From: sunzheng Date: Fri, 2 Aug 2024 14:37:36 +0800 Subject: [PATCH] =?UTF-8?q?add:=E6=96=B0=E5=A2=9E=E5=88=86=E7=BB=84?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/20240802新增sql.sql | 21 +++ .../system/controller/SysUserController.java | 3 +- .../modules/system/mapper/SysUserMapper.java | 3 +- .../system/mapper/xml/SysUserMapper.xml | 4 + .../system/service/ISysUserService.java | 2 +- .../service/impl/SysUserServiceImpl.java | 4 +- .../sys/controller/SysGroupController.java | 110 +++++++++++++++ .../com/jero/modules/sys/entity/SysGroup.java | 76 ++++++++++ .../jero/modules/sys/entity/SysUserGroup.java | 42 ++++++ .../modules/sys/mapper/SysGroupMapper.java | 21 +++ .../sys/mapper/SysUserGroupMapper.java | 17 +++ .../modules/sys/mapper/xml/SysGroupMapper.xml | 53 +++++++ .../sys/mapper/xml/SysUserGroupMapper.xml | 5 + .../modules/sys/service/ISysGroupService.java | 28 ++++ .../sys/service/ISysUserGroupService.java | 17 +++ .../sys/service/impl/SysGroupServiceImpl.java | 131 ++++++++++++++++++ .../service/impl/SysUserGroupServiceImpl.java | 20 +++ 17 files changed, 552 insertions(+), 5 deletions(-) create mode 100644 db/20240802新增sql.sql create mode 100644 laws-modules/src/main/java/com/jero/modules/sys/controller/SysGroupController.java create mode 100644 laws-modules/src/main/java/com/jero/modules/sys/entity/SysGroup.java create mode 100644 laws-modules/src/main/java/com/jero/modules/sys/entity/SysUserGroup.java create mode 100644 laws-modules/src/main/java/com/jero/modules/sys/mapper/SysGroupMapper.java create mode 100644 laws-modules/src/main/java/com/jero/modules/sys/mapper/SysUserGroupMapper.java create mode 100644 laws-modules/src/main/java/com/jero/modules/sys/mapper/xml/SysGroupMapper.xml create mode 100644 laws-modules/src/main/java/com/jero/modules/sys/mapper/xml/SysUserGroupMapper.xml create mode 100644 laws-modules/src/main/java/com/jero/modules/sys/service/ISysGroupService.java create mode 100644 laws-modules/src/main/java/com/jero/modules/sys/service/ISysUserGroupService.java create mode 100644 laws-modules/src/main/java/com/jero/modules/sys/service/impl/SysGroupServiceImpl.java create mode 100644 laws-modules/src/main/java/com/jero/modules/sys/service/impl/SysUserGroupServiceImpl.java diff --git a/db/20240802新增sql.sql b/db/20240802新增sql.sql new file mode 100644 index 00000000..48b57472 --- /dev/null +++ b/db/20240802新增sql.sql @@ -0,0 +1,21 @@ +DROP TABLE IF EXISTS `sys_group`; +CREATE TABLE `sys_group` ( + `id` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主键ID', + `group_name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '分组名称', + `create_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '分组表' ROW_FORMAT = DYNAMIC; + + +DROP TABLE IF EXISTS `sys_user_group`; +CREATE TABLE `sys_user_group` ( + `id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主键id', + `user_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户id', + `group_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '分组id', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户分组表' ROW_FORMAT = DYNAMIC; + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/laws-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java b/laws-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java index 502c5e47..15c7569e 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java @@ -137,6 +137,7 @@ public class SysUserController { // 处理手机号和邮箱,进行对应加密 Map parameterMap = req.getParameterMap(); + String groupId = req.getParameter("groupId"); this.sysUserService.encryptReqMapData(parameterMap); user.setEmail(this.sysUserService.proceedEmailEncrypt(user.getEmail())); user.setPhone(this.sysUserService.proceedPhoneEncrypt(user.getPhone())); @@ -155,7 +156,7 @@ public class SysUserController { queryWrapper.ne("username", "admin"); IPage pageList; try { - pageList = sysUserService.queryPage(page, subDepIds, roleId, queryWrapper); + pageList = sysUserService.queryPage(page, subDepIds, roleId, groupId, queryWrapper); }catch (Exception e){ return Result.error(MessageUtils.getMessage(ResultCommon.ERROR)); } diff --git a/laws-module-system/src/main/java/com/jero/modules/system/mapper/SysUserMapper.java b/laws-module-system/src/main/java/com/jero/modules/system/mapper/SysUserMapper.java index c167de11..6f1c57ec 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/mapper/SysUserMapper.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/mapper/SysUserMapper.java @@ -30,7 +30,8 @@ public interface SysUserMapper extends BaseMapper { * 分页查询用户,可支持组织机构检索 * @return */ - IPage queryPage(Page page, @Param("departIds") List subDepIds , @Param("roleId") String roleId , @Param(Constants.WRAPPER) Wrapper wrapper); + IPage queryPage(Page page, @Param("departIds") List subDepIds , @Param("roleId") String roleId , + @Param("groupId") String groupId, @Param(Constants.WRAPPER) Wrapper wrapper); /** * 通过用户账号查询用户信息 diff --git a/laws-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysUserMapper.xml b/laws-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysUserMapper.xml index be751dfd..e4b37c10 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysUserMapper.xml +++ b/laws-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysUserMapper.xml @@ -12,6 +12,10 @@ ) + + and id in (select user_id from sys_user_group where group_id = #{groupId} + ) + and id in (select user_id from sys_user_role where role_id = #{roleId} ) diff --git a/laws-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java b/laws-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java index c2115533..2451e04b 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java @@ -36,7 +36,7 @@ public interface ISysUserService extends IService { * @param queryWrapper * @return */ - IPage queryPage(Page page, List subDepIds, String roleId, QueryWrapper queryWrapper); + IPage queryPage(Page page, List subDepIds, String roleId, String groupId, QueryWrapper queryWrapper); /** * 重置密码 diff --git a/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java index 3bd8ac9f..c596bf15 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java @@ -79,8 +79,8 @@ public class SysUserServiceImpl extends ServiceImpl impl private ISysUserService sysUserService; @Override - public IPage queryPage(Page page, List subDepIds, String roleId, QueryWrapper queryWrapper){ - IPage sysUserIPage = this.userMapper.queryPage(page, subDepIds, roleId, queryWrapper); + public IPage queryPage(Page page, List subDepIds, String roleId, String groupId, QueryWrapper queryWrapper){ + IPage sysUserIPage = this.userMapper.queryPage(page, subDepIds, roleId, groupId, queryWrapper); sysUserIPage.getRecords().forEach(user -> { // 对手机号、邮箱进行解密处理 proceedUserInfoDecrypt(user); diff --git a/laws-modules/src/main/java/com/jero/modules/sys/controller/SysGroupController.java b/laws-modules/src/main/java/com/jero/modules/sys/controller/SysGroupController.java new file mode 100644 index 00000000..98238cd3 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/sys/controller/SysGroupController.java @@ -0,0 +1,110 @@ +package com.jero.modules.sys.controller; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.jero.common.api.vo.Result; +import com.jero.common.system.vo.LoginUser; +import com.jero.modules.sys.entity.SysGroup; +import com.jero.modules.sys.service.ISysGroupService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.List; + + +/** + *

+ * 用户分组表 前端控制器 + *

+ * @author sz + */ +@Api(tags = "分组管理") +@RestController +@RequestMapping("/sys/group") +@Slf4j +public class SysGroupController { + + @Resource + private ISysGroupService sysGroupService; + + @RequiresPermissions("sys:groupManage:search") + @ApiOperation(value = "分组管理-分页列表查询", notes = "分组管理-分页列表查询") + @GetMapping(value = "/page") + public Result queryPageList(SysGroup sysGroup, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { + IPage pageList = sysGroupService.queryPageList(sysGroup, pageNo, pageSize, req); + return Result.OK(pageList); + } + + /** + * 分组管理-添加 + * @param sysGroup + * @return + */ + @RequiresPermissions("sys:groupManage:add") + @ApiOperation(value = "分组管理-添加", notes = "分组管理-添加") + @PostMapping("/add") + public Result add(@RequestBody SysGroup sysGroup) { + return sysGroupService.add(sysGroup); + } + + /** + * 分组管理-编辑 + * @param sysGroup + * @return + */ + @RequiresPermissions("sys:groupManage:edit") + @PostMapping("/edit") + @ApiOperation(value = "分组管理-编辑", notes = "分组管理-编辑") + public Result edit(@RequestBody SysGroup sysGroup) { + return sysGroupService.edit(sysGroup); + } + + /** + * 分组管理-根据id查询分组 + * @param id + * @return + */ + @GetMapping("/queryOne") + @ApiOperation(value = "分组管理-根据id查询分组", notes = "分组管理-根据id查询分组") + public Result queryOne(@RequestParam(name="id") String id) { + if (StringUtils.isBlank(id)) { + return Result.error("分组的id不能为空"); + } + SysGroup sysGroup = sysGroupService.queryOne(id); + return Result.OK(sysGroup); + } + + /** + * 分组管理-删除 + * @param jsonObject + * @return + */ + @RequiresPermissions("sys:groupManage:delete") + @PostMapping("/delete") + @ApiOperation(value = "分组管理-删除", notes = "分组管理-删除") + public Result delete(@RequestBody JSONObject jsonObject) { + String id = jsonObject.getString("id"); + return sysGroupService.delete(id); + } + + @GetMapping("/list") + @ApiOperation(value = "分组管理-列表查询", notes = "分组管理-列表查询") + public Result list() { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + lambdaQueryWrapper.eq(SysGroup::getCreateBy, loginUser.getUsername()); + List list = sysGroupService.list(lambdaQueryWrapper); + return Result.OK(list); + } + +} diff --git a/laws-modules/src/main/java/com/jero/modules/sys/entity/SysGroup.java b/laws-modules/src/main/java/com/jero/modules/sys/entity/SysGroup.java new file mode 100644 index 00000000..7073a2fc --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/sys/entity/SysGroup.java @@ -0,0 +1,76 @@ +package com.jero.modules.sys.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 用户分组表 + *

+ * + * @author sz + * @since 2024-07-18 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("sys_group") +@ApiModel(value="SysGroup对象", description="用户分组表") +public class SysGroup implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键ID") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private String id; + + @ApiModelProperty(value = "分组名称") + private String groupName; + + @ApiModelProperty(value = "创建人") + private String createBy; + + @ApiModelProperty(value = "创建时间") + private Date createTime; + + @ApiModelProperty(value = "更新人") + private String updateBy; + + @ApiModelProperty(value = "更新时间") + private Date updateTime; + + @TableField(exist = false) + @ApiModelProperty(value = "人数") + private String count; + + @TableField(exist = false) + @ApiModelProperty(value = "多个用户id") + private String ids; + + @TableField(exist = false) + @ApiModelProperty("用户名或工号") + private String userNameOrWorkId; + + @TableField(exist = false) + @ApiModelProperty("多个用户名") + private String userNames; + + @TableField(exist = false) + @ApiModelProperty("当前登录用户的用户名") + private String currentUserName; + + @TableField(exist = false) + @ApiModelProperty("是否拥有管理员身份 0-否 1-是") + private String isAdmin; + +} diff --git a/laws-modules/src/main/java/com/jero/modules/sys/entity/SysUserGroup.java b/laws-modules/src/main/java/com/jero/modules/sys/entity/SysUserGroup.java new file mode 100644 index 00000000..6577da90 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/sys/entity/SysUserGroup.java @@ -0,0 +1,42 @@ +package com.jero.modules.sys.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author sz + * @since 2024-07-18 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("sys_user_group") +@ApiModel(value="SysUserGroup对象", description="") +public class SysUserGroup implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键id") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private String id; + + @ApiModelProperty(value = "用户id") + private String userId; + + @ApiModelProperty(value = "分组id") + private String groupId; + + +} diff --git a/laws-modules/src/main/java/com/jero/modules/sys/mapper/SysGroupMapper.java b/laws-modules/src/main/java/com/jero/modules/sys/mapper/SysGroupMapper.java new file mode 100644 index 00000000..5c40a4c8 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/sys/mapper/SysGroupMapper.java @@ -0,0 +1,21 @@ +package com.jero.modules.sys.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jero.modules.sys.entity.SysGroup; + +/** + *

+ * 用户分组表 Mapper 接口 + *

+ * + * @author sz + * @since 2024-07-18 + */ +public interface SysGroupMapper extends BaseMapper { + + IPage queryPageList(Page page, SysGroup sysGroup); + + SysGroup queryOne(String id); +} diff --git a/laws-modules/src/main/java/com/jero/modules/sys/mapper/SysUserGroupMapper.java b/laws-modules/src/main/java/com/jero/modules/sys/mapper/SysUserGroupMapper.java new file mode 100644 index 00000000..c355c12c --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/sys/mapper/SysUserGroupMapper.java @@ -0,0 +1,17 @@ +package com.jero.modules.sys.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jero.modules.sys.entity.SysUserGroup; + +/** + *

+ * Mapper 接口 + *

+ * + * @author sz + * @since 2024-07-18 + */ +public interface SysUserGroupMapper extends BaseMapper { + +} diff --git a/laws-modules/src/main/java/com/jero/modules/sys/mapper/xml/SysGroupMapper.xml b/laws-modules/src/main/java/com/jero/modules/sys/mapper/xml/SysGroupMapper.xml new file mode 100644 index 00000000..17fe0902 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/sys/mapper/xml/SysGroupMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + diff --git a/laws-modules/src/main/java/com/jero/modules/sys/mapper/xml/SysUserGroupMapper.xml b/laws-modules/src/main/java/com/jero/modules/sys/mapper/xml/SysUserGroupMapper.xml new file mode 100644 index 00000000..cc4604eb --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/sys/mapper/xml/SysUserGroupMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/laws-modules/src/main/java/com/jero/modules/sys/service/ISysGroupService.java b/laws-modules/src/main/java/com/jero/modules/sys/service/ISysGroupService.java new file mode 100644 index 00000000..3311596b --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/sys/service/ISysGroupService.java @@ -0,0 +1,28 @@ +package com.jero.modules.sys.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.common.api.vo.Result; +import com.jero.modules.sys.entity.SysGroup; +import javax.servlet.http.HttpServletRequest; + +/** + *

+ * 用户分组表 服务类 + *

+ * + * @author sz + * @since 2024-07-18 + */ +public interface ISysGroupService extends IService { + + Result add(SysGroup sysGroup); + + Result edit(SysGroup sysGroup); + + Result delete(String id); + + IPage queryPageList(SysGroup sysGroup, Integer pageNo, Integer pageSize, HttpServletRequest req); + + SysGroup queryOne(String id); +} diff --git a/laws-modules/src/main/java/com/jero/modules/sys/service/ISysUserGroupService.java b/laws-modules/src/main/java/com/jero/modules/sys/service/ISysUserGroupService.java new file mode 100644 index 00000000..a31b1ad3 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/sys/service/ISysUserGroupService.java @@ -0,0 +1,17 @@ +package com.jero.modules.sys.service; + + +import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.modules.sys.entity.SysUserGroup; + +/** + *

+ * 服务类 + *

+ * + * @author sz + * @since 2024-07-18 + */ +public interface ISysUserGroupService extends IService { + +} diff --git a/laws-modules/src/main/java/com/jero/modules/sys/service/impl/SysGroupServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/sys/service/impl/SysGroupServiceImpl.java new file mode 100644 index 00000000..8c01452b --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/sys/service/impl/SysGroupServiceImpl.java @@ -0,0 +1,131 @@ +package com.jero.modules.sys.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.common.api.vo.Result; +import com.jero.common.exception.JeroBootException; +import com.jero.common.system.vo.LoginUser; +import com.jero.modules.sys.entity.SysGroup; +import com.jero.modules.sys.entity.SysUserGroup; +import com.jero.modules.sys.mapper.SysGroupMapper; +import com.jero.modules.sys.service.ISysGroupService; +import com.jero.modules.sys.service.ISysUserGroupService; +import org.apache.shiro.SecurityUtils; +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; + +/** + *

+ * 用户分组表 服务实现类 + *

+ * + * @author sz + * @since 2024-07-18 + */ +@Service +public class SysGroupServiceImpl extends ServiceImpl implements ISysGroupService { + + @Resource + private ISysUserGroupService sysUserGroupService; + @Resource + private SysGroupMapper sysGroupMapper; + + + @Override + public IPage queryPageList(SysGroup sysGroup, Integer pageNo, Integer pageSize, HttpServletRequest req) { + Page page = new Page(pageNo, pageSize); + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (loginUser.getRoleIds().contains("admin")){ + sysGroup.setIsAdmin("1"); + }else { + sysGroup.setIsAdmin("0"); + } + sysGroup.setCurrentUserName(loginUser.getUsername()); + return sysGroupMapper.queryPageList(page, sysGroup); + } + + + @Override + public Result add(SysGroup sysGroup) { + if (Objects.isNull(sysGroup) || StringUtils.isBlank(sysGroup.getGroupName())) { + return Result.error("分组名称不能为空"); + } + this.save(sysGroup); + String groupId = sysGroup.getId(); // 新建分组的id + String userIds = sysGroup.getIds(); // 要加入分组的用户ids + if (StringUtils.isNotBlank(userIds)) { + List ids = Arrays.asList(userIds.split(",")); + // 将用户id和分组id的对应关系插入到关联表中 + for (String userId : ids) { + SysUserGroup sysUserGroup = new SysUserGroup(); + sysUserGroup.setUserId(userId); + sysUserGroup.setGroupId(groupId); + sysUserGroupService.save(sysUserGroup); + } + } + return Result.OK("操作成功"); + } + + @Override + public SysGroup queryOne(String id) { + SysGroup sysGroup = this.getById(id); + if (Objects.isNull(sysGroup)) { + throw new JeroBootException("该分组不存在"); + } + return sysGroupMapper.queryOne(id); + } + + @Override + public Result edit(SysGroup sysGroup) { + String groupId = sysGroup.getId(); + String userIds = sysGroup.getIds(); + if (Objects.isNull(sysGroup) || StringUtils.isBlank(groupId)) { + return Result.error("分组的id不能为空"); + } + LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); + lambdaUpdateWrapper.eq(SysGroup::getId,sysGroup.getId()); + String groupName = sysGroup.getGroupName(); + if (StringUtils.isNotBlank(groupName)) { + lambdaUpdateWrapper.set(SysGroup::getGroupName,groupName); + } + this.update(lambdaUpdateWrapper); + // 删除掉关联表下该组下的所有用户 + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(SysUserGroup::getGroupId,groupId); + sysUserGroupService.remove(lambdaQueryWrapper); + if (StringUtils.isNotBlank(userIds)) { + List ids = Arrays.asList(userIds.split(",")); + // 在将新的用户ids添加 + for (String userId : ids) { + SysUserGroup sysUserGroup = new SysUserGroup(); + sysUserGroup.setUserId(userId); + sysUserGroup.setGroupId(groupId); + sysUserGroupService.save(sysUserGroup); + } + } + return Result.OK("修改成功"); + } + + @Override + public Result delete(String id) { + if (StringUtils.isBlank(id)) { + return Result.error("分组的id不能为空"); + } + // 删除掉关联表下该组下的所有用户 + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(SysUserGroup::getGroupId,id); + sysUserGroupService.remove(lambdaQueryWrapper); + // 删除掉分组表中的数据 + this.removeById(id); + return Result.OK("操作成功"); + } + +} diff --git a/laws-modules/src/main/java/com/jero/modules/sys/service/impl/SysUserGroupServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/sys/service/impl/SysUserGroupServiceImpl.java new file mode 100644 index 00000000..0d8226e8 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/sys/service/impl/SysUserGroupServiceImpl.java @@ -0,0 +1,20 @@ +package com.jero.modules.sys.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.modules.sys.entity.SysUserGroup; +import com.jero.modules.sys.mapper.SysUserGroupMapper; +import com.jero.modules.sys.service.ISysUserGroupService; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author sz + * @since 2024-07-18 + */ +@Service +public class SysUserGroupServiceImpl extends ServiceImpl implements ISysUserGroupService { + +}