package com.whyc.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.whyc.dto.PermitGroupDto; import com.whyc.dto.Response; import com.whyc.mapper.GroupMapper; import com.whyc.mapper.PermitGroupMapper; import com.whyc.mapper.UserGroupMapper; import com.whyc.pojo.Group; import com.whyc.pojo.PermitGroup; import com.whyc.pojo.UserGroup; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; @Service public class GroupService { @Autowired(required = false) private GroupMapper mapper; @Autowired(required = false) private PermitGroupMapper permitGroupMapper; @Autowired(required = false) private UserGroupMapper userGroupMapper; //查询所有的权限组 public Response getAllGroup() { List list=mapper.getAllGroup(); return new Response().setII(1,list.size()>0,list,"权限组信息"); } //添加权限组 public Response addGroup(String groupName) { //查看权限组名是否存在 QueryWrapper wrapper=new QueryWrapper(); wrapper.eq("group_name",groupName); List list=mapper.selectList(wrapper); if(list!=null&&list.size()>0){ return new Response().set(1,false,"权限组存在"); }else{ //查询最大的权限组id int groupIdMax=mapper.selectGroupIdMax(); Group group=new Group(); group.setGroupId(String.valueOf(groupIdMax+1)); group.setGroupName(groupName); int flag=mapper.insert(group); return new Response().set(1,flag>0,"返回"); } } //删除权限组 @Transactional public Response delGroup(String groupId) { UpdateWrapper wrapper=new UpdateWrapper(); wrapper.eq("group_id",groupId); //删除权限组要先删除权限组管理的权限 int flagP=permitGroupMapper.delete(wrapper); //删除权限组要先删除权限组管理的ren int flagU=userGroupMapper.delete(wrapper); //删除权限组 int flag=mapper.delete(wrapper); return new Response().set(1,flag>0,"返回"); } //编辑权限组名 public Response updateGroup(String groupId,String groupName) { //查看权限组名是否存在 QueryWrapper wrapperQ=new QueryWrapper(); wrapperQ.eq("group_name",groupName); List list=mapper.selectList(wrapperQ); if(list!=null&&list.size()>0){ return new Response().set(1,false,"权限组存在"); }else{ UpdateWrapper wrapperU=new UpdateWrapper(); wrapperU.eq("group_id",groupId); wrapperU.set("group_name",groupName); int flag=mapper.update(null,wrapperU); return new Response().set(1,flag>0,"返回"); } } //权限组下加用户 @Transactional public Response addUserToGroup(List users) { int flag=userGroupMapper.insertBatchSomeColumn(users); return new Response().set(1,flag>0,"返回"); } //权限组下移除用户 @Transactional public Response delUserToGroup(List users) { UpdateWrapper wrapper=new UpdateWrapper(); int flag=0; for (UserGroup userGroup: users) { wrapper.eq("uname",userGroup.getUname()); wrapper.eq("group_id",userGroup.getGroupId()); flag+=userGroupMapper.delete(wrapper); } return new Response().set(1,flag>0,"返回"); } //(组合操作)权限组下加用户和移除用户 @Transactional public Response opreateUserToGroup(PermitGroupDto permitGroupDto) { int addflag=0; int delflag=0; if(permitGroupDto.getAddusers()!=null&&permitGroupDto.getAddusers().size()>0){ addflag=userGroupMapper.insertBatchSomeColumn(permitGroupDto.getAddusers()); }else{ addflag=1; } if(permitGroupDto.getDelusers()!=null&&permitGroupDto.getDelusers().size()>0){ for (UserGroup userGroup: permitGroupDto.getDelusers()) { UpdateWrapper wrapper=new UpdateWrapper(); wrapper.eq("uname",userGroup.getUname()); wrapper.eq("group_id",userGroup.getGroupId()); delflag+=userGroupMapper.delete(wrapper); } }else{ delflag=1; } return new Response().set(1,addflag>0&&delflag>0,"返回{addflag:"+addflag+",delflag:"+delflag+"}"); } //权限组下加权限 @Transactional public Response addPermitToGroup(List permits) { int flag=permitGroupMapper.insertBatchSomeColumn(permits); return new Response().set(1,flag>0,"返回"); } //权限组下移除权限 @Transactional public Response delPermitToGroup(List permits) { UpdateWrapper wrapper=new UpdateWrapper(); int flag=0; for (PermitGroup permitGroup: permits) { wrapper.eq("permit_id",permitGroup.getPermitId()); wrapper.eq("group_id",permitGroup.getGroupId()); flag+=permitGroupMapper.delete(wrapper); } return new Response().set(1,flag>0,"返回"); } //(组合操作)权限组下加权限和移除权限 @Transactional public Response opreatePermitToGroup(PermitGroupDto permitGroupDto) { int addflag=0; int delflag=0; if(permitGroupDto.getAddpermits()!=null&&permitGroupDto.getAddpermits().size()>0){ addflag=permitGroupMapper.insertBatchSomeColumn(permitGroupDto.getAddpermits()); }else{ addflag=1; } if(permitGroupDto.getDelpermits()!=null&&permitGroupDto.getDelpermits().size()>0){ for (PermitGroup permitGroup: permitGroupDto.getDelpermits()) { UpdateWrapper wrapper=new UpdateWrapper(); wrapper.eq("permit_id",permitGroup.getPermitId()); wrapper.eq("group_id",permitGroup.getGroupId()); delflag+=permitGroupMapper.delete(wrapper); } }else{ delflag=1; } return new Response().set(1,addflag>0&&delflag>0,"返回"); } }