package com.moral.api.service.impl; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Objects; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.moral.api.entity.GroupMenu; import com.moral.api.mapper.GroupMapper; import com.moral.api.mapper.GroupMenuMapper; import com.moral.api.mapper.MenuMapper; import com.moral.api.service.GroupMenuService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.moral.api.utils.OperationLogUtils; import com.moral.constant.Constants; import com.moral.util.TokenUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; /** *

* 用户角色菜单表 服务实现类 *

* * @author moral * @since 2021-03-09 */ @Service public class GroupMenuServiceImpl extends ServiceImpl implements GroupMenuService { @Autowired private GroupMenuMapper groupMenuMapper; @Autowired private GroupMapper groupMapper; @Autowired private MenuMapper menuMapper; @Override @Transactional public void allotMenus(Map parameters) { HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); String token = request.getHeader("token"); Integer groupId = Integer.parseInt(parameters.get("groupId").toString()); List menuIds = (ArrayList) parameters.get("menuIds"); Map currentUserInfo = (Map) TokenUtils.getUserInfoByToken(token); Map orgInfo = (Map) currentUserInfo.get("organization"); UpdateWrapper deleteWrapper = new UpdateWrapper<>(); deleteWrapper.eq("group_id", groupId).eq("channel", Constants.WEB_CHANNEL); groupMenuMapper.delete(deleteWrapper); List menus = new ArrayList<>(); if (menuIds != null && !menuIds.isEmpty()) { menuIds.forEach(menuId -> { menus.add(menuMapper.selectById(menuId).getName()); GroupMenu groupMenu = new GroupMenu(); groupMenu.setGroupId(groupId); groupMenu.setMenuId(menuId); groupMenu.setChannel(Constants.WEB_CHANNEL); groupMenu.setOrganizationId((Integer) orgInfo.get("id")); groupMenuMapper.insert(groupMenu); }); } //日志 String groupName = groupMapper.selectById((Integer) parameters.get("groupId")).getGroupName(); String content = "给组:" + groupName + "分配了菜单:" + menus.toString(); OperationLogUtils.insertLog(request, content, Constants.UPDATE_OPERATE_TYPE); } @Override public List getMenusIds(Integer groupId) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("group_id", groupId).eq("is_delete", Constants.NOT_DELETE); List groupMenus = groupMenuMapper.selectList(queryWrapper); List menuIds = new ArrayList<>(); groupMenus.forEach(groupMenu -> menuIds.add(groupMenu.getMenuId())); return menuIds; } }