package com.moral.api.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.moral.api.entity.Group; import com.moral.api.entity.GroupMenu; import com.moral.api.mapper.GroupMapper; import com.moral.api.mapper.GroupMenuMapper; import com.moral.api.pojo.dto.group.GroupDTO; import com.moral.api.pojo.form.group.AdminGroupUpdateMenuForm; import com.moral.api.service.GroupService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.moral.constant.Constants; import com.moral.constant.ResponseCodeEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import java.util.List; /** *

* 用户自定义角色表 服务实现类 *

* * @author moral * @since 2021-03-09 */ @Service public class GroupServiceImpl extends ServiceImpl implements GroupService { @Autowired GroupMapper groupMapper; @Autowired GroupMenuMapper groupMenuMapper; @Override public Group queryAdminGroupByOrganizationId(Integer OrganizationId) { QueryWrapper queryGroupWrapper = new QueryWrapper<>(); Group groupConditon = new Group(); groupConditon.setOrganizationId(OrganizationId); groupConditon.setGroupName("admin"); groupConditon.setIsDelete(Constants.NOT_DELETE); queryGroupWrapper.setEntity(groupConditon); return groupMapper.selectOne(queryGroupWrapper); } @Override @Transactional public GroupDTO updateAdminGroupMenu(AdminGroupUpdateMenuForm form) { //创建返回对象 GroupDTO dto = new GroupDTO(); //取参 Integer orgId = form.getOrganizationId(); String channelKey = form.getChannelKey(); List insertMenuIds = form.getMenuIds(); //根据orgId查询组织admin角色id Group group = queryAdminGroupByOrganizationId(orgId); if (ObjectUtils.isEmpty(group)) {//如果没有角色则证明组织还没有账号 dto.setCode(ResponseCodeEnum.ORGANIZATION_USER_NOT_EXIST.getCode()); dto.setMsg(ResponseCodeEnum.ORGANIZATION_USER_NOT_EXIST.getMsg()); return dto; } //删除角色当前所有的菜单 UpdateWrapper deleteWrapper = new UpdateWrapper(); deleteWrapper.set("is_delete", Constants.DELETE); deleteWrapper.eq("group_id", group.getId()); groupMenuMapper.update(null, deleteWrapper); //重新添加 for (Integer menuId : insertMenuIds) { GroupMenu groupMenu = new GroupMenu(); groupMenu.setChannelKey(channelKey); groupMenu.setGroupId(group.getId()); groupMenu.setMenuId(menuId); groupMenu.setOrganizationId(orgId); groupMenuMapper.insert(groupMenu); } //封装返回对象 dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); return dto; } }