同步闭源版本部分代码,修复页面顺序问题
This commit is contained in:
@@ -36,23 +36,25 @@ public class WikiPageServiceImpl extends ServiceImpl<WikiPageMapper, WikiPage> i
|
||||
|
||||
@Override
|
||||
public void changeParent(WikiPage wikiPage, Integer beforeSeq, Integer afterSeq) {
|
||||
WikiPage wikiPageSel = this.getById(wikiPage.getId());
|
||||
if (beforeSeq != null && beforeSeq >= 0) {
|
||||
// 在此seq之前
|
||||
wikiPageMapper.updateAfterSeq(wikiPage.getParentId(), beforeSeq);
|
||||
wikiPageMapper.updateAfterSeq(wikiPageSel.getSpaceId(), wikiPage.getParentId(), beforeSeq);
|
||||
wikiPage.setSeqNo(beforeSeq);
|
||||
} else if (afterSeq != null && afterSeq >= 0) {
|
||||
// 在此seq之后
|
||||
wikiPageMapper.updateAfterSeq(wikiPage.getParentId(), afterSeq + 1);
|
||||
wikiPageMapper.updateAfterSeq(wikiPageSel.getSpaceId(), wikiPage.getParentId(), afterSeq + 1);
|
||||
wikiPage.setSeqNo(afterSeq + 1);
|
||||
} else {
|
||||
// 放在末尾
|
||||
Integer lastSeq = wikiPageMapper.getLastSeq(wikiPage.getParentId());
|
||||
Integer lastSeq = wikiPageMapper.getLastSeq(wikiPageSel.getSpaceId(), wikiPage.getParentId());
|
||||
lastSeq = Optional.ofNullable(lastSeq).orElse(0);
|
||||
wikiPage.setSeqNo(lastSeq + 1);
|
||||
}
|
||||
this.updateById(wikiPage);
|
||||
// 重置当前分支的所有节点seq值
|
||||
wikiPageMapper.updateChildrenSeq(wikiPageSel.getSpaceId(), wikiPage.getParentId());
|
||||
// 给相关人发送消息
|
||||
WikiPage wikiPageSel = this.getById(wikiPage.getId());
|
||||
DocUserDetails currentUser = DocUserUtil.getCurrentUser();
|
||||
UserMessage userMessage = userMessageService.createUserMessage(currentUser, wikiPageSel.getId(), wikiPageSel.getName(), DocSysType.WIKI, UserMsgType.WIKI_PAGE_PARENT);
|
||||
userMessage.setAffectUserId(wikiPageSel.getCreateUserId());
|
||||
|
||||
@@ -18,11 +18,8 @@
|
||||
and a.space_id in
|
||||
<foreach collection="spaceIds" open="(" close=")" item="item" separator=",">#{item}</foreach>
|
||||
</if>
|
||||
<if test="newsType == 1">order by a.update_time desc</if>
|
||||
<if test="newsType == 2">order by a.create_time desc</if>
|
||||
<if test="newsType == 3">order by a.view_num desc</if>
|
||||
<if test="newsType == 4">order by a.zan_num desc</if>
|
||||
<if test="newsType == 5">order by a.view_num+a.zan_num desc</if>
|
||||
order by a.update_time desc
|
||||
limit 15
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.zyplayer.doc.data.repository.manage.mapper.WikiPageMapper">
|
||||
|
||||
<update id="updateChildrenSeq">
|
||||
update wiki_page a
|
||||
join (
|
||||
SELECT id, @rownum := @rownum + 1 AS rownum
|
||||
FROM (SELECT @rownum := 0) t, wiki_page
|
||||
where parent_id = #{parentId} and space_id = #{spaceId}
|
||||
ORDER BY seq_no ASC, update_time DESC
|
||||
) b on a.id = b.id
|
||||
set seq_no = b.rownum
|
||||
where a.parent_id = #{parentId} and a.space_id = #{spaceId};
|
||||
</update>
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user