增加拖动改变文章顺序

This commit is contained in:
暮光:城中城
2019-06-10 21:15:56 +08:00
parent 605c97347d
commit f9d53da7fe
8 changed files with 71 additions and 11 deletions

View File

@@ -12,7 +12,7 @@ import java.util.Date;
* </p>
*
* @author 暮光:城中城
* @since 2019-06-05
* @since 2019-06-06
*/
public class WikiPage implements Serializable {
@@ -94,6 +94,11 @@ public class WikiPage implements Serializable {
*/
private Integer viewNum;
/**
* 顺序
*/
private Integer seqNo;
public Long getId() {
return id;
}
@@ -199,6 +204,13 @@ public class WikiPage implements Serializable {
public void setViewNum(Integer viewNum) {
this.viewNum = viewNum;
}
public Integer getSeqNo() {
return seqNo;
}
public void setSeqNo(Integer seqNo) {
this.seqNo = seqNo;
}
@Override
public String toString() {
@@ -218,6 +230,7 @@ public class WikiPage implements Serializable {
", updateTime=" + updateTime +
", delFlag=" + delFlag +
", viewNum=" + viewNum +
", seqNo=" + seqNo +
"}";
}
}

View File

@@ -3,6 +3,7 @@ package com.zyplayer.doc.data.repository.manage.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zyplayer.doc.data.repository.manage.entity.WikiPage;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
/**
@@ -17,4 +18,10 @@ public interface WikiPageMapper extends BaseMapper<WikiPage> {
@Update("update wiki_page set zan_num=zan_num + #{numAdd} where id=#{id}")
void updateZanNum(@Param("id") Long id, @Param("numAdd") Integer numAdd);
@Update("update wiki_page set seq_no=seq_no + 1 where parent_id=#{parentId} and seq_no >= #{afterSeq} and del_flag=0")
void updateAfterSeq(@Param("parentId") Long parentId, @Param("afterSeq") Integer afterSeq);
@Select("select max(seq_no) from wiki_page where parent_id=#{parentId} and del_flag=0")
Integer getLastSeq(@Param("parentId") Long parentId);
}

View File

@@ -13,4 +13,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface WikiPageService extends IService<WikiPage> {
void changeParent(WikiPage wikiPage, Integer beforeSeq, Integer afterSeq);
}

View File

@@ -1,11 +1,14 @@
package com.zyplayer.doc.data.service.manage.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zyplayer.doc.data.repository.manage.entity.WikiPage;
import com.zyplayer.doc.data.repository.manage.mapper.WikiPageMapper;
import com.zyplayer.doc.data.service.manage.WikiPageService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Optional;
/**
* <p>
* 服务实现类
@@ -16,5 +19,26 @@ import org.springframework.stereotype.Service;
*/
@Service
public class WikiPageServiceImpl extends ServiceImpl<WikiPageMapper, WikiPage> implements WikiPageService {
@Resource
WikiPageMapper wikiPageMapper;
@Override
public void changeParent(WikiPage wikiPage, Integer beforeSeq, Integer afterSeq) {
if (beforeSeq != null && beforeSeq >= 0) {
// 在此seq之前
wikiPageMapper.updateAfterSeq(wikiPage.getParentId(), beforeSeq);
wikiPage.setSeqNo(beforeSeq);
} else if (afterSeq != null && afterSeq >= 0) {
// 在此seq之后
wikiPageMapper.updateAfterSeq(wikiPage.getParentId(), afterSeq + 1);
wikiPage.setSeqNo(afterSeq + 1);
} else {
// 放在末尾
Integer lastSeq = wikiPageMapper.getLastSeq(wikiPage.getParentId());
lastSeq = Optional.ofNullable(lastSeq).orElse(0);
wikiPage.setSeqNo(lastSeq + 1);
}
this.updateById(wikiPage);
}
}

View File

@@ -32,7 +32,7 @@ public class CacheUtil {
}
}, 0, 1000);
}
// 现在是内存缓存不支持分布式部署后期考虑放到redis但感觉也没必要。。
private static Map<String, Object> cacheMap = new ConcurrentHashMap<>();
private static Map<String, CacheTime> cacheTimeMap = new ConcurrentHashMap<>();