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;
|
|
/**
|
* <p>
|
* 用户自定义角色表 服务实现类
|
* </p>
|
*
|
* @author moral
|
* @since 2021-03-09
|
*/
|
@Service
|
public class GroupServiceImpl extends ServiceImpl<GroupMapper, Group> implements GroupService {
|
|
@Autowired
|
GroupMapper groupMapper;
|
@Autowired
|
GroupMenuMapper groupMenuMapper;
|
|
@Override
|
public Group queryAdminGroupByOrganizationId(Integer OrganizationId) {
|
QueryWrapper<Group> 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<Integer> 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;
|
}
|
}
|