add:分组模块
This commit is contained in:
+95
@@ -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;
|
||||
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 用户分组表 前端控制器
|
||||
* </p>
|
||||
* @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<SysGroup> 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<Object> add(@RequestBody SysGroup sysGroup) {
|
||||
return sysGroupService.add(sysGroup);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分组管理-编辑
|
||||
* @param sysGroup
|
||||
* @return
|
||||
*/
|
||||
// @RequiresPermissions("sys:group:edit")
|
||||
@PostMapping("/edit")
|
||||
@ApiOperation(value = "分组管理-编辑", notes = "分组管理-编辑")
|
||||
public Result<Object> 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<Object> 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<Object> delete(@RequestParam(name="id") String id) {
|
||||
return sysGroupService.delete(id);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 用户分组表
|
||||
* </p>
|
||||
*
|
||||
* @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;
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* @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;
|
||||
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 用户分组表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author sz
|
||||
* @since 2024-07-18
|
||||
*/
|
||||
public interface SysGroupMapper extends BaseMapper<SysGroup> {
|
||||
|
||||
IPage<SysGroup> queryPageList(Page<SysGroup> page,SysGroup sysGroup);
|
||||
|
||||
SysGroup queryOne(String id);
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package com.jero.modules.system.mapper;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.jero.modules.system.entity.SysUserGroup;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author sz
|
||||
* @since 2024-07-18
|
||||
*/
|
||||
public interface SysUserGroupMapper extends BaseMapper<SysUserGroup> {
|
||||
|
||||
}
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jero.modules.system.mapper.SysGroupMapper">
|
||||
|
||||
<select id="queryPageList" resultType="com.jero.modules.system.entity.SysGroup">
|
||||
select
|
||||
sg.id,
|
||||
sg.group_name,
|
||||
sg.create_by,
|
||||
sg.create_time,
|
||||
count(sug.id) as count,
|
||||
GROUP_CONCAT(sug.user_id) as ids,
|
||||
GROUP_CONCAT(CONCAT(su.realname, '(', su.username, ')')) as userNames
|
||||
from sys_group sg
|
||||
LEFT JOIN sys_user_group sug on sg.id = sug.group_id
|
||||
LEFT JOIN sys_user su on sug.user_id = su.id
|
||||
<where>
|
||||
<if test="sysGroup.groupName != null and sysGroup.groupName != ''">
|
||||
AND sg.group_name LIKE CONCAT('%',CONCAT(#{sysGroup.groupName},'%'))
|
||||
</if>
|
||||
<if test="sysGroup.userNameOrWorkId != null and sysGroup.userNameOrWorkId != ''">
|
||||
AND sg.id IN (
|
||||
SELECT sg.id
|
||||
FROM sys_group sg
|
||||
LEFT JOIN sys_user_group sug on sg.id = sug.group_id
|
||||
LEFT JOIN sys_user su on sug.user_id = su.id
|
||||
WHERE su.realname LIKE CONCAT('%',CONCAT(#{sysGroup.userNameOrWorkId},'%'))
|
||||
OR su.username LIKE CONCAT('%',CONCAT(#{sysGroup.userNameOrWorkId},'%'))
|
||||
)
|
||||
</if>
|
||||
</where>
|
||||
group by sg.id,sg.group_name
|
||||
order by sg.create_time desc
|
||||
</select>
|
||||
|
||||
<select id="queryOne" resultType="com.jero.modules.system.entity.SysGroup">
|
||||
select
|
||||
sg.id,
|
||||
sg.group_name,
|
||||
sg.create_by,
|
||||
sg.create_time,
|
||||
count(sug.id) as count,
|
||||
GROUP_CONCAT(sug.user_id) as ids,
|
||||
GROUP_CONCAT(CONCAT(su.realname, '(', su.username, ')')) as userNames
|
||||
from sys_group sg
|
||||
LEFT JOIN sys_user_group sug on sg.id = sug.group_id
|
||||
LEFT JOIN sys_user su on sug.user_id = su.id
|
||||
where sg.id = #{id}
|
||||
</select>
|
||||
</mapper>
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jero.modules.system.mapper.SysUserGroupMapper">
|
||||
|
||||
</mapper>
|
||||
+29
@@ -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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 用户分组表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author sz
|
||||
* @since 2024-07-18
|
||||
*/
|
||||
public interface ISysGroupService extends IService<SysGroup> {
|
||||
|
||||
Result<Object> add(SysGroup sysGroup);
|
||||
|
||||
Result<Object> edit(SysGroup sysGroup);
|
||||
|
||||
Result<Object> delete(String id);
|
||||
|
||||
IPage<SysGroup> queryPageList(SysGroup sysGroup, Integer pageNo, Integer pageSize, HttpServletRequest req);
|
||||
|
||||
SysGroup queryOne(String id);
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package com.jero.modules.system.service;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.jero.modules.system.entity.SysUserGroup;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author sz
|
||||
* @since 2024-07-18
|
||||
*/
|
||||
public interface ISysUserGroupService extends IService<SysUserGroup> {
|
||||
|
||||
}
|
||||
+120
@@ -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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 用户分组表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author sz
|
||||
* @since 2024-07-18
|
||||
*/
|
||||
@Service
|
||||
public class SysGroupServiceImpl extends ServiceImpl<SysGroupMapper, SysGroup> implements ISysGroupService {
|
||||
|
||||
@Resource
|
||||
private ISysUserGroupService sysUserGroupService;
|
||||
@Resource
|
||||
private SysGroupMapper sysGroupMapper;
|
||||
|
||||
@Override
|
||||
public IPage<SysGroup> queryPageList(SysGroup sysGroup, Integer pageNo, Integer pageSize, HttpServletRequest req) {
|
||||
Page<SysGroup> page = new Page(pageNo, pageSize);
|
||||
return sysGroupMapper.queryPageList(page, sysGroup);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result<Object> 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<String> 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<Object> edit(SysGroup sysGroup) {
|
||||
String groupId = sysGroup.getId();
|
||||
String userIds = sysGroup.getIds();
|
||||
if (Objects.isNull(sysGroup) || StringUtils.isBlank(groupId)) {
|
||||
return Result.error("分组的id不能为空");
|
||||
}
|
||||
LambdaUpdateWrapper<SysGroup> 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<SysUserGroup> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(SysUserGroup::getGroupId,groupId);
|
||||
sysUserGroupService.remove(lambdaQueryWrapper);
|
||||
if (StringUtils.isNotBlank(userIds)) {
|
||||
List<String> 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<Object> delete(String id) {
|
||||
if (StringUtils.isBlank(id)) {
|
||||
return Result.error("分组的id不能为空");
|
||||
}
|
||||
// 删除掉关联表下该组下的所有用户
|
||||
LambdaQueryWrapper<SysUserGroup> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(SysUserGroup::getGroupId,id);
|
||||
sysUserGroupService.remove(lambdaQueryWrapper);
|
||||
// 删除掉分组表中的数据
|
||||
this.removeById(id);
|
||||
return Result.OK("操作成功");
|
||||
}
|
||||
|
||||
}
|
||||
+20
@@ -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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author sz
|
||||
* @since 2024-07-18
|
||||
*/
|
||||
@Service
|
||||
public class SysUserGroupServiceImpl extends ServiceImpl<SysUserGroupMapper, SysUserGroup> implements ISysUserGroupService {
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user