import com.alibaba.fastjson2.JSON; import com.baomidou.dynamic.datasource.DynamicRoutingDataSource; import com.ruoyi.common.core.utils.SpringUtils; import com.ruoyi.common.sort.utils.JDBCUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.MapUtils; import org.springframework.stereotype.Component; import javax.sql.DataSource; import java.io.Serializable; import java.sql.*; import java.util.*; /** * 引入sort插件,实现自动上下排序 * * @author 刘琪 * @date 2024-04-26 */ @Slf4j @Component public class SortPlugin { /** * 针对当前表结构实现排序 * * @param datasourceName 数据源名称 * @param tableName 需要操作的表名 * @param id 查询主键ID * @param tableHasParentId true: 表格有parent_id字段, false: 表格没有parent_id字段 * @param isUp true: 上移, false: 下移 * @return */ public void sort(String datasourceName, String tableName, Serializable id, Boolean tableHasParentId, Boolean isUp) { DataSource dataSource = SpringUtils.getBean(DataSource.class); DynamicRoutingDataSource dynamicRoutingDataSource = (DynamicRoutingDataSource) dataSource; DataSource ds = dynamicRoutingDataSource.getDataSources().get(datasourceName); this.sort(ds, tableName, id, tableHasParentId, isUp, null); } /** * 针对当前表结构实现排序 * * @param datasourceName 数据源名称 * @param tableName 需要操作的表名 * @param id 查询主键ID * @param tableHasParentId true: 表格有parent_id字段, false: 表格没有parent_id字段 * @param isUp true: 上移, false: 下移 * @param sortNum 手动输入指定排序号 * @return */ public void sort(String datasourceName, String tableName, Serializable id, Boolean tableHasParentId, Boolean isUp, Integer sortNum) { DataSource dataSource = SpringUtils.getBean(DataSource.class); DynamicRoutingDataSource dynamicRoutingDataSource = (DynamicRoutingDataSource) dataSource; DataSource ds = dynamicRoutingDataSource.getDataSources().get(datasourceName); this.sort(ds, tableName, id, tableHasParentId, isUp, sortNum); } /** * 针对当前表结构实现排序 * * @param ds 数据源 * @param tableName 需要操作的表名 * @param id 查询主键ID * @param sortNum 手动输入指定排序号 * @return */ public void sort(DataSource ds, String tableName, Serializable id, Boolean tableHasParentId, Integer sortNum) { this.sort(ds, tableName, id, tableHasParentId, null, sortNum); } /** * 针对当前表结构实现排序 * * @param ds 数据源 * @param tableName 需要操作的表名 * @param id 查询主键ID * @param isUp true: 上移, false: 下移 * @return */ public void sort(DataSource ds, String tableName, Serializable id, Boolean tableHasParentId, Boolean isUp) { this.sort(ds, tableName, id, tableHasParentId, isUp, null); } /** * 获取当前对象Map信息 * * @param ds 数据源 * @param tableName 需要操作的表名 * @param id 查询主键ID * @param tableHasParentId true: 表格有parent_id字段, false: 表格没有parent_id字段 * @param isUp true: 上移, false: 下移 * @param sortNum 手动输入指定排序号 * @return */ private void sort(DataSource ds, String tableName, Serializable id, Boolean tableHasParentId, Boolean isUp, Integer sortNum) { log.info("调用排序功能参数:tableName->{},id->{},isUp
动态设置表格的排序功能
最新推荐文章于 2024-05-21 14:39:26 发布
该博客介绍了一个名为`SortPlugin`的组件,用于动态设置表格的排序功能。通过使用`SpringUtils`获取数据源,根据传入的参数执行SQL查询和更新操作,实现了根据主键ID、是否有parent_id字段、上移/下移标志以及手动输入的排序号来调整记录的排序。主要涉及数据源切换、SQL执行和事务管理。
摘要由CSDN通过智能技术生成