|  |  | 
 |  |  | import com.moral.api.service.GroupService; | 
 |  |  | import com.moral.api.service.MenuService; | 
 |  |  | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | 
 |  |  | import com.moral.api.util.CompareFieldUtils; | 
 |  |  | import com.moral.api.util.LogUtils; | 
 |  |  | import com.moral.constant.Constants; | 
 |  |  | import com.moral.constant.ResponseCodeEnum; | 
 |  |  | import com.sun.corba.se.spi.presentation.rmi.IDLNameTranslator; | 
 |  |  | import com.moral.pojo.CompareFieldResult; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | import org.springframework.stereotype.Service; | 
 |  |  | import org.springframework.transaction.annotation.Transactional; | 
 |  |  | 
 |  |  |     GroupService groupService; | 
 |  |  |     @Autowired | 
 |  |  |     GroupMenuMapper groupMenuMapper; | 
 |  |  |     @Autowired | 
 |  |  |     LogUtils logUtils; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  | 
 |  |  |             dto.setMsg(ResponseCodeEnum.MENU_IS_EXIST.getMsg()); | 
 |  |  |             return dto; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         //执行插入逻辑 | 
 |  |  |         menuMapper.insert(menu); | 
 |  |  |         //插入日志 | 
 |  |  |         insertLog(menu); | 
 |  |  |         //封装返回对象 | 
 |  |  |         dto.setMenu(menu); | 
 |  |  |         dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); | 
 |  |  | 
 |  |  |         deleteGroupMenuWrapper.in("menu_id", allMenuIds); | 
 |  |  |         deleteGroupMenuWrapper.set("is_delete", Constants.DELETE); | 
 |  |  |         groupMenuMapper.update(null, deleteGroupMenuWrapper); | 
 |  |  |         //插入日志 | 
 |  |  |         StringBuilder content = new StringBuilder(); | 
 |  |  |         if (existMenu.getParentId().equals(0)) | 
 |  |  |             content.append("删除了父菜单:" + existMenu.getName() + ";"); | 
 |  |  |         else | 
 |  |  |             content.append("删除了子菜单:" + existMenu.getName() + ";"); | 
 |  |  |         if (!ObjectUtils.isEmpty(childrenIds)) { | 
 |  |  |             for (Integer childrenId : childrenIds) { | 
 |  |  |                 content.append("及其子菜单:" + menuMapper.selectById(childrenId).getName() + ";"); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         logUtils.saveOperationForManage(content.toString(), Constants.DELETE_OPERATE_TYPE); | 
 |  |  |         //封装返回对象 | 
 |  |  |         dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); | 
 |  |  |         dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); | 
 |  |  | 
 |  |  |         menuMapper.updateById(menu); | 
 |  |  |         //获取更新后的对象 | 
 |  |  |         menu = menuMapper.selectById(menu.getId()); | 
 |  |  |         //插入日志 | 
 |  |  |         updateLog(oldMenu, menu); | 
 |  |  |         //封装返回对象 | 
 |  |  |         dto.setMenu(menu); | 
 |  |  |         dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); | 
 |  |  | 
 |  |  |      * @Author: 陈凯裕 | 
 |  |  |      * @Date: 2021/5/13 | 
 |  |  |      */ | 
 |  |  |     public void combinationParentChildrenMenus(List<Menu> menus) { | 
 |  |  |     private void combinationParentChildrenMenus(List<Menu> menus) { | 
 |  |  |         //组合menu父子结构 | 
 |  |  |         Map<Integer, Menu> menuMap = new HashMap<>(); | 
 |  |  |         for (Menu menu : menus) { | 
 |  |  | 
 |  |  |         }); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * @Description: 更新操作插入日志 | 
 |  |  |      * @Param: [oldMenu, newMenu] | 
 |  |  |      * @return: void | 
 |  |  |      * @Author: 陈凯裕 | 
 |  |  |      * @Date: 2021/8/24 | 
 |  |  |      */ | 
 |  |  |     private void updateLog(Menu oldMenu, Menu newMenu) { | 
 |  |  |         List<CompareFieldResult> compareResult = CompareFieldUtils.compare(Menu.class, oldMenu, newMenu); | 
 |  |  |         for (CompareFieldResult result : compareResult) { | 
 |  |  |             //parentId做特殊处理 | 
 |  |  |             if (result.getFieldName().equals("parentId")) { | 
 |  |  |                 //父菜单id转为菜单名称 | 
 |  |  |                 String oldData = result.getOldData(); | 
 |  |  |                 String newData = result.getNewData(); | 
 |  |  |  | 
 |  |  |                 if (!oldData.equals("0")) | 
 |  |  |                     oldData = menuMapper.selectById(Integer.parseInt(oldData)).getName(); | 
 |  |  |                 else | 
 |  |  |                     oldData = "null"; | 
 |  |  |  | 
 |  |  |                 if (!newData.equals("0")) | 
 |  |  |                     newData = menuMapper.selectById(Integer.parseInt(newData)).getName(); | 
 |  |  |                 else | 
 |  |  |                     newData = "null"; | 
 |  |  |  | 
 |  |  |                 result.setNewData(newData); | 
 |  |  |                 result.setOldData(oldData); | 
 |  |  |                 result.setFieldAnnoName("父菜单"); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         String content = CompareFieldUtils.resultsConvertContent(compareResult, "修改了前台菜单"); | 
 |  |  |         logUtils.saveOperationForManage(content, Constants.UPDATE_OPERATE_TYPE); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * @Description: 插入操作插入日志 | 
 |  |  |      * @Param: [menu] | 
 |  |  |      * @return: void | 
 |  |  |      * @Author: 陈凯裕 | 
 |  |  |      * @Date: 2021/8/24 | 
 |  |  |      */ | 
 |  |  |     private void insertLog(Menu menu) { | 
 |  |  |         StringBuilder content = new StringBuilder(); | 
 |  |  |         //判断插入的是子菜单还是父菜单 | 
 |  |  |         if (menu.getParentId() == null) { | 
 |  |  |             content.append("添加了前台父菜单;"); | 
 |  |  |         } else { | 
 |  |  |             content.append("添加了前台子菜单;"); | 
 |  |  |             //根据父菜单id查询菜单名称 | 
 |  |  |             Menu parentMenu = menuMapper.selectById(menu.getParentId()); | 
 |  |  |             content.append("父菜单:" + parentMenu.getName() + ";"); | 
 |  |  |         } | 
 |  |  |         content.append("名称:" + menu.getName() + ";"); | 
 |  |  |         if (menu.getUrl() != null) | 
 |  |  |             content.append("url:" + menu.getUrl() + ";"); | 
 |  |  |         content.append("顺序:" + menu.getOrder() + ";"); | 
 |  |  |         logUtils.saveOperationForManage(content.toString(), Constants.INSERT_OPERATE_TYPE); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | } | 
 |  |  |  |