使用Java语言,利用索引的方式实现需求中的上下移动排序功能,类似这种…
像实现这个把排在第八位的数据放到第一位,第一位以下的全部往下移一位,原先第8位后面的不动
java代码实现移动的上下排序,通过索引实现功能
//数据库查询数据当前排序数据
List<VodSectionSequenc> list = query().eq(VodSectionSequenc::getSectionId, vodSectionInfo.getId()).orderByAsc(VodSectionSequenc::getSequenc).list();
//过滤掉符合传参的数据集合的视频数据
List<VodSectionSequenc> collect = list.stream().filter(v -> !v.getVodId().equals(vodSectionInfo.getVodId())).collect(Collectors.toList());
//创建关系实体类
VodSectionSequenc vodSectionSequenc = new VodSectionSequenc();
vodSectionSequenc.setSectionId(vodSectionInfo.getId());
vodSectionSequenc.setVodId(vodSectionInfo.getVodId());
//按照操作者想要放的排序位置放入list索引位
collect.add(vodSectionInfo.getSequenc() - 1,vodSectionSequenc);
for (int i = 0; i < collect.size(); i++) {
//获取索引位的元素后,把排序按照索引位+1 重置为正常的 1、2、3的排序
VodSectionSequenc vodSectionSequenc1 = collect.get(i);
vodSectionSequenc1.setSequenc(i + 1);
vodSectionSequencMapper.editVodSequenc(vodSectionSequenc1);
}
本章完结~