Java树形目录上下移动
387 字
2 分钟
Java树形目录上下移动
1、Controller层
@PostMapping("/menuUpOrDown") @ApiOperation(value = "菜单上下平移") @ApiImplicitParam(name = "json", value = "{\"menuId\":\"菜单ID\",\"direct\":\"1-上移,2-下移\"}") public ApiResult menuUpOrDown(@RequestBody String json) { try { CheckToolClass.assertIsJsonLegal(json,"请求参数不能为空!"); Long menuId = Long.valueOf(JSONObject.parseObject(json).get("menuId").toString()); Integer direct = Integer.valueOf(JSONObject.parseObject(json).get("menuId").toString()); return sysMenuService.menuUpOrDown(menuId,direct); } catch (Exception e) { log.error(e.getMessage(), e); return ApiResult.error(ResultStatus.error.getCode(), MsgConstant.INQUIRE_FAILURE.getMsg()); } }2、interface层
/** * 菜单同级上下平移 * @param menuId 菜单id * @param direct 方向 * @return 移动成功 */ ApiResult menuUpOrDown(Long menuId, Integer direct);3、实现层
@Override public ApiResult menuUpOrDown(Long menuId, Integer direct) { if (direct == NumberConstants.ONE){ return moveUp(menuId); }else { return moveDown(menuId); } }
//菜单上移 private ApiResult moveUp(Long menuId) { //获取上移的那条数据的信息 SysMenu upSysMenu = sysMenuMapper.selectById(menuId); Integer temp = upSysMenu.getOrderNum(); //查询上一条记录 SysMenu downSysMenu = sysMenuMapper.moveUp(temp,upSysMenu.getMenuId()); //SysMenu ltMenu = sysMenuMapper.selectOne(Wrappers.lambdaQuery(SysMenu.class) //.lt(SysMenu::getOrderNum, orderNum) //.eq(SysMenu::getParentId, upSysMenu.getParentId()).orderByDesc(SysMenu::getOrderNum).last("limit 1")); //如果上面已经没有记录了,返回 if (downSysMenu == null) { return ApiResult.fail("已经平移至最上方,无法移动!"); } upSysMenu.setOrderNum(downSysMenu.getOrderNum()); downSysMenu.setOrderNum(temp); sysMenuMapper.updateById(upSysMenu); sysMenuMapper.updateById(downSysMenu); return ApiResult.success(); }
//菜单下移 private ApiResult moveDown(Long menuId) { SysMenu downSysMenu = sysMenuMapper.selectById(menuId); Integer temp = downSysMenu.getOrderNum(); //查询下一条记录 SysMenu upSysMenu = sysMenuMapper.moveDown(temp,downSysMenu.getMenuId()); //SysMenu gtMenu = sysMenuMapper.selectOne(Wrappers.lambdaQuery(SysMenu.class) //.gt(SysMenu::getOrderNum, orderNum) //.eq(SysMenu::getParentId, downSysMenu.getParentId()).orderByAsc(SysMenu::getOrderNum).last("limit 1")); if (upSysMenu == null) { return ApiResult.fail("已经平移至最下方,无法移动!"); } downSysMenu.setOrderNum(upSysMenu.getOrderNum()); upSysMenu.setOrderNum(temp); sysMenuMapper.updateById(upSysMenu); sysMenuMapper.updateById(downSysMenu); return ApiResult.success(); }4、Mapper
/** * 查询上一条记录 * @param orderNum 排序字段 * @param menuId 菜单id * @return 菜单对象 */ SysMenu moveUp(@Param("orderNum") Integer orderNum, @Param("menuId") Long menuId);
/** * 查询下一条记录 * @param orderNum 排序字段 * @param menuId 菜单id * @return 菜单对象 */ SysMenu moveDown(@Param("orderNum") Integer orderNum, @Param("menuId") Long menuId);5、.XML
<select id="moveUp" resultType="com.luban.system.entity.SysMenu"> select <include refid="AllColumnlist"></include> from sys_menu a WHERE a.order_num < #{orderNum} and menu_id < #{menuId} order by a.order_num desc limit 1</select><select id="moveDown" resultType="com.luban.system.entity.SysMenu"> select <include refid="AllColumnlist"></include> from sys_menu a WHERE a.order_num > #{orderNum} and menu_id > #{menuId} order by a.order_num asc limit 1</select>支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
相关文章 智能推荐
1
Java列表分页方法
开发笔记 1、PageHelper 2、IPage
2
Java对Excel的相关操作
开发笔记 Excel相关 1、全自定义单元格格式导出excel 创建相关的excel文件:XSSFWorkbook workbook = new XSSFWorkbook ; sheet名称设置 可多个sheet :Sheet sheet = workbook.createSheet ;
3
SpringBoot文件上传工具类
开发笔记 SpringBoot文件上传工具类 Spring File Storage工具几乎整合了市面上所有的OSS对象存储平台,包括本地、FTP、SFTP、WebDAV、阿里云OSS、华为云OBS、七牛云Kodo、腾讯云COS、百度云 BOS、又拍云USS、MinIO、京东云 OSS、网
4
Springboot中使用kafka
开发笔记 1、Kafka的定义 Message Queue MQ ,消息队列中间件; Kafka是一个分布式、支持分区的 partition 、多副本的 replica ,基于zookeeper协调的分布式消息系统,因其可水平扩展和高吞吐率而被广泛使用 2、在SpringBoot中使用Ka
5
JDK在Linux环境下安装
运维部署 JDK安装 方式一:gz安装包解压安装 1、准备JDK安装包 我这里下载的是 jdk 8u161 linux x64.tar.gz 安装包,并将其直接放在了 root 目录下 2、卸载已有的OPENJDK 如果有 如果系统自带有 OpenJDK ,可以按照如下步骤提前卸载之。 首
随机文章 随机推荐