Commit 326b892b authored by liqin's avatar liqin 💬

bug fixed

parent 07159043
......@@ -296,5 +296,91 @@ public class LearningContentController extends BaseController {
return getResult(learningContent);
}
/**
* 通用排序方法(拖拽排序/所有排序完成后点击保存)
*
* @param sourceId 源实体ID
* @param targetId 目标实体ID
* @return Void
*/
@PutMapping("/sort")
public Map<String,Object> updateSortorder(String sourceId, String targetId) {
String moveType;
LearningContent theSource = this.learningContentService.getById(sourceId);
LearningContent theTarget = this.learningContentService.getById(targetId);
if(theSource.getSortorder() > theTarget.getSortorder()) {
moveType = "down";
} else {
moveType = "up";
}
Integer sourceSortorder = theSource.getSortorder();
Integer targetSortorder = theTarget.getSortorder();
boolean flag = false;
//默认sortorder为降序排序,向上移动
if ("up".equalsIgnoreCase(moveType) && sourceSortorder < targetSortorder) {
flag = true;
QueryWrapper<LearningContent> wrapper = new QueryWrapper<>();
wrapper.between("sortorder", sourceSortorder, targetSortorder);
wrapper.select("id", "sortorder");
List<LearningContent> list = this.learningContentService.list(wrapper);
for (LearningContent entity : list) {
if (!entity.getId().equals(sourceId)) {
entity.setSortorder(entity.getSortorder() - 1);
this.learningContentService.updateById(entity);
}
}
}
//默认sortorder为降序排序,向下移动
else if ("down".equalsIgnoreCase(moveType) && sourceSortorder > targetSortorder) {
flag = true;
QueryWrapper<LearningContent> wrapper = new QueryWrapper<>();
wrapper.between("sortorder", targetSortorder, sourceSortorder);
wrapper.select("id", "sortorder");
List<LearningContent> slideList = this.learningContentService.list(wrapper);
for (LearningContent entity : slideList) {
if (!entity.getId().equals(sourceId)) {
entity.setSortorder(entity.getSortorder() + 1);
this.learningContentService.updateById(entity);
}
}
}
//默认sortorder为正序排序,向下移动
else if ("down".equalsIgnoreCase(moveType) && sourceSortorder < targetSortorder) {
flag = true;
QueryWrapper<LearningContent> wrapper = new QueryWrapper<>();
wrapper.between("sortorder", sourceSortorder, targetSortorder);
wrapper.select("id", "sortorder");
List<LearningContent> slideList = this.learningContentService.list(wrapper);
for (LearningContent slide : slideList) {
if (!slide.getId().equals(sourceId)) {
slide.setSortorder(slide.getSortorder() - 1);
this.learningContentService.updateById(slide);
}
}
}
//默认sortorder为正序排序,向上移动
else if ("up".equalsIgnoreCase(moveType) && sourceSortorder > targetSortorder) {
flag = true;
QueryWrapper<LearningContent> wrapper = new QueryWrapper<>();
wrapper.between("sortorder", targetSortorder, sourceSortorder);
wrapper.select("id", "sortorder");
List<LearningContent> slideList = this.learningContentService.list(wrapper);
for (LearningContent slide : slideList) {
if (!slide.getId().equals(sourceId)) {
slide.setSortorder(slide.getSortorder() + 1);
this.learningContentService.updateById(slide);
}
}
}
if (flag) {
theSource.setSortorder(targetSortorder);
this.learningContentService.updateById(theSource);
return getSuccessResult();
}
return getFailResult();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment