diff --git a/laws-module-system/src/main/java/com/jero/modules/system/controller/SysGroupController.java b/laws-module-system/src/main/java/com/jero/modules/system/controller/SysGroupController.java new file mode 100644 index 00000000..a836a008 --- /dev/null +++ b/laws-module-system/src/main/java/com/jero/modules/system/controller/SysGroupController.java @@ -0,0 +1,95 @@ +package com.jero.modules.system.controller; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.jero.common.api.vo.Result; +import com.jero.modules.system.entity.SysGroup; +import com.jero.modules.system.service.ISysGroupService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; + + +/** + *

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

+ * @author sz + */ +@Api(tags = "分组管理") +@RestController +@RequestMapping("/sys/group") +@Slf4j +public class SysGroupController { + + @Resource + private ISysGroupService sysGroupService; + +// @RequiresPermissions("sys:group:list") + @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:group:add") + @ApiOperation(value = "分组管理-添加", notes = "分组管理-添加") + @PostMapping("/add") + public Result add(@RequestBody SysGroup sysGroup) { + return sysGroupService.add(sysGroup); + } + + /** + * 分组管理-编辑 + * @param sysGroup + * @return + */ +// @RequiresPermissions("sys:group:edit") + @PostMapping("/edit") + @ApiOperation(value = "分组管理-编辑", notes = "分组管理-编辑") + public Result edit(@RequestBody SysGroup sysGroup) { + return sysGroupService.edit(sysGroup); + } + + /** + * 分组管理-根据id查询分组 + * @param id + * @return + */ +// @RequiresPermissions("sys:group:queryOne") + @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 id + * @return + */ +// @RequiresPermissions("sys:group:edit") + @GetMapping("/delete") + @ApiOperation(value = "分组管理-删除", notes = "分组管理-删除") + public Result delete(@RequestParam(name="id") String id) { + return sysGroupService.delete(id); + } + +} diff --git a/laws-module-system/src/main/java/com/jero/modules/system/entity/SysGroup.java b/laws-module-system/src/main/java/com/jero/modules/system/entity/SysGroup.java new file mode 100644 index 00000000..d45a6807 --- /dev/null +++ b/laws-module-system/src/main/java/com/jero/modules/system/entity/SysGroup.java @@ -0,0 +1,67 @@ +package com.jero.modules.system.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.io.Serializable; +import java.util.Date; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + *

+ * 用户分组表 + *

+ * + * @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; + +} diff --git a/laws-module-system/src/main/java/com/jero/modules/system/entity/SysUserGroup.java b/laws-module-system/src/main/java/com/jero/modules/system/entity/SysUserGroup.java new file mode 100644 index 00000000..32028d3e --- /dev/null +++ b/laws-module-system/src/main/java/com/jero/modules/system/entity/SysUserGroup.java @@ -0,0 +1,41 @@ +package com.jero.modules.system.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + *

+ * + *

+ * + * @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-module-system/src/main/java/com/jero/modules/system/mapper/SysGroupMapper.java b/laws-module-system/src/main/java/com/jero/modules/system/mapper/SysGroupMapper.java new file mode 100644 index 00000000..e896e459 --- /dev/null +++ b/laws-module-system/src/main/java/com/jero/modules/system/mapper/SysGroupMapper.java @@ -0,0 +1,21 @@ +package com.jero.modules.system.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.system.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-module-system/src/main/java/com/jero/modules/system/mapper/SysUserGroupMapper.java b/laws-module-system/src/main/java/com/jero/modules/system/mapper/SysUserGroupMapper.java new file mode 100644 index 00000000..9a20a40b --- /dev/null +++ b/laws-module-system/src/main/java/com/jero/modules/system/mapper/SysUserGroupMapper.java @@ -0,0 +1,17 @@ +package com.jero.modules.system.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jero.modules.system.entity.SysUserGroup; + +/** + *

+ * Mapper 接口 + *

+ * + * @author sz + * @since 2024-07-18 + */ +public interface SysUserGroupMapper extends BaseMapper { + +} diff --git a/laws-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysGroupMapper.xml b/laws-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysGroupMapper.xml new file mode 100644 index 00000000..622ecd89 --- /dev/null +++ b/laws-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysGroupMapper.xml @@ -0,0 +1,50 @@ + + + + + + + + diff --git a/laws-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysUserGroupMapper.xml b/laws-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysUserGroupMapper.xml new file mode 100644 index 00000000..51516d0d --- /dev/null +++ b/laws-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysUserGroupMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/laws-module-system/src/main/java/com/jero/modules/system/service/ISysGroupService.java b/laws-module-system/src/main/java/com/jero/modules/system/service/ISysGroupService.java new file mode 100644 index 00000000..aa869adb --- /dev/null +++ b/laws-module-system/src/main/java/com/jero/modules/system/service/ISysGroupService.java @@ -0,0 +1,29 @@ +package com.jero.modules.system.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.system.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-module-system/src/main/java/com/jero/modules/system/service/ISysUserGroupService.java b/laws-module-system/src/main/java/com/jero/modules/system/service/ISysUserGroupService.java new file mode 100644 index 00000000..c1f1bc27 --- /dev/null +++ b/laws-module-system/src/main/java/com/jero/modules/system/service/ISysUserGroupService.java @@ -0,0 +1,17 @@ +package com.jero.modules.system.service; + + +import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.modules.system.entity.SysUserGroup; + +/** + *

+ * 服务类 + *

+ * + * @author sz + * @since 2024-07-18 + */ +public interface ISysUserGroupService extends IService { + +} diff --git a/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysGroupServiceImpl.java b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysGroupServiceImpl.java new file mode 100644 index 00000000..bc7637b6 --- /dev/null +++ b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysGroupServiceImpl.java @@ -0,0 +1,120 @@ +package com.jero.modules.system.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.modules.system.entity.SysGroup; +import com.jero.modules.system.entity.SysUserGroup; +import com.jero.modules.system.mapper.SysGroupMapper; +import com.jero.modules.system.service.ISysGroupService; +import com.jero.modules.system.service.ISysUserGroupService; +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); + 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-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserGroupServiceImpl.java b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserGroupServiceImpl.java new file mode 100644 index 00000000..32926044 --- /dev/null +++ b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserGroupServiceImpl.java @@ -0,0 +1,20 @@ +package com.jero.modules.system.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.modules.system.entity.SysUserGroup; +import com.jero.modules.system.mapper.SysUserGroupMapper; +import com.jero.modules.system.service.ISysUserGroupService; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

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