使用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); }
本章完结~