From 616dca8f5bbb17f0b3a124340965c0232fdae894 Mon Sep 17 00:00:00 2001 From: kaiyu <404897439@qq.com> Date: Sun, 25 Apr 2021 10:32:01 +0800 Subject: [PATCH] Merge branch 'dev' of http://blit.7drlb.com:8888/r/moral into dev --- screen-manage/src/main/java/com/moral/api/service/impl/ManageRoleMenuServiceImpl.java | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 106 insertions(+), 9 deletions(-) diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/ManageRoleMenuServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/ManageRoleMenuServiceImpl.java index b4dc1f0..b09e4b8 100644 --- a/screen-manage/src/main/java/com/moral/api/service/impl/ManageRoleMenuServiceImpl.java +++ b/screen-manage/src/main/java/com/moral/api/service/impl/ManageRoleMenuServiceImpl.java @@ -2,15 +2,25 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.moral.api.entity.ManageMenu; +import com.moral.api.entity.ManageRole; import com.moral.api.entity.ManageRoleMenu; +import com.moral.api.mapper.ManageMenuMapper; +import com.moral.api.mapper.ManageRoleMapper; import com.moral.api.mapper.ManageRoleMenuMapper; import com.moral.api.service.ManageRoleMenuService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.moral.api.util.LogUtils; +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.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -29,21 +39,108 @@ @Autowired(required = false) private ManageRoleMenuMapper manageRoleMenuMapper; + @Autowired(required = false) + private ManageMenuMapper manageMenuMapper; + + @Autowired(required = false) + private ManageRoleMapper manageRoleMapper; + + @Autowired + LogUtils logUtils; + @Override @Transactional public Map<String, Object> updateRoleMenu(List list, int id) { Map<String,Object> resultMap = new HashMap<>(); - if (list.size()==0){ - resultMap.put("code",ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode()); - resultMap.put("msg",ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); - return resultMap; - } + List<ManageMenu> manageMenusOld = manageMenuMapper.getManageMenuByRoleId(id); QueryWrapper<ManageRoleMenu> wrapper = new QueryWrapper(); wrapper.eq("role_id",id); - System.out.println(manageRoleMenuMapper.selectCount(wrapper)); - if (manageRoleMenuMapper.selectCount(wrapper)==0){ - + wrapper.eq("is_delete",0); + List<Map> result = new ArrayList<>(); + if (list.size()==0){ + result = result; + }else { + result = manageRoleMenuMapper.getDataByMenuIds(list,id); } - return null; + List<Map> result1 = manageRoleMenuMapper.getDataByRoleId(id); + if ((manageRoleMenuMapper.selectCount(wrapper)==0 || result.size()==0)&&list.size()!=0){ + List<Map> insertList = new ArrayList<>(); + for (Object temp:list) { + Map<String,Object> map = new HashMap<>(); + map.put("role_id",id); + map.put("menu_id",Integer.parseInt(temp.toString())); + insertList.add(map); + } + if (insertList.size()!=0){ + manageRoleMenuMapper.insertBatch(insertList); + } + }else { + List updateList = new ArrayList(); + for (Map manageRoleMenu:result1) { + int have = 1; + for (Object temp:list){ + if (manageRoleMenu.get("menu_id").equals(Integer.parseInt(temp.toString()))){ + have = 2; + continue; + } + } + if (have == 2){ + continue; + } + updateList.add(manageRoleMenu.get("menu_id")); + } + List insertList = new ArrayList(); + for (Object temp:list) { + int have = 1; + for (Map manageRoleMenu:result1){ + if (manageRoleMenu.get("menu_id").equals(Integer.parseInt(temp.toString()))){ + have = 2; + continue; + } + } + if (have == 2){ + continue; + } + insertList.add(temp); + } + if (updateList.size()>0){ + manageRoleMenuMapper.updateDeleteStateByRoleIdMenuIds(updateList,id); + } + if (insertList.size()>0){ + List mapList = new ArrayList(); + for (Object temp:insertList) { + Map<String,Integer> insertMap = new HashMap<>(); + insertMap.put("role_id",id); + insertMap.put("menu_id",Integer.parseInt(temp.toString())); + mapList.add(insertMap); + } + manageRoleMenuMapper.insertBatch(mapList); + } + } + List<ManageMenu> manageMenusNew = manageMenuMapper.getManageMenuByRoleId(id); + List manageMenuOldList = new ArrayList(); + List manageMenuNewList = new ArrayList(); + for (ManageMenu manageMenu:manageMenusOld) { + manageMenuOldList.add(manageMenu.getName()); + } + for (ManageMenu manageMenu:manageMenusNew) { + manageMenuNewList.add(manageMenu.getName()); + } + //������������������ + ManageRole manageRole = manageRoleMapper.selectById(id); + //������������������ + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String content = "���������������:"+manageRole.getName()+";"; + if (manageMenuOldList.size()==0){ + manageMenuOldList.add("���"); + } + if (manageMenuNewList.size()==0){ + manageMenuNewList.add("���"); + } + content = content+"������:"+manageMenuOldList+"->"+manageMenuNewList+";"; + logUtils.saveOperationForManage(request,content,Constants.UPDATE_OPERATE_TYPE); + resultMap.put("code",ResponseCodeEnum.SUCCESS.getCode()); + resultMap.put("msg",ResponseCodeEnum.SUCCESS.getMsg()); + return resultMap; } } -- Gitblit v1.8.0