同步闭源版本部分代码,修复页面顺序问题
This commit is contained in:
@@ -36,23 +36,25 @@ public class WikiPageServiceImpl extends ServiceImpl<WikiPageMapper, WikiPage> i
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void changeParent(WikiPage wikiPage, Integer beforeSeq, Integer afterSeq) {
|
public void changeParent(WikiPage wikiPage, Integer beforeSeq, Integer afterSeq) {
|
||||||
|
WikiPage wikiPageSel = this.getById(wikiPage.getId());
|
||||||
if (beforeSeq != null && beforeSeq >= 0) {
|
if (beforeSeq != null && beforeSeq >= 0) {
|
||||||
// 在此seq之前
|
// 在此seq之前
|
||||||
wikiPageMapper.updateAfterSeq(wikiPage.getParentId(), beforeSeq);
|
wikiPageMapper.updateAfterSeq(wikiPageSel.getSpaceId(), wikiPage.getParentId(), beforeSeq);
|
||||||
wikiPage.setSeqNo(beforeSeq);
|
wikiPage.setSeqNo(beforeSeq);
|
||||||
} else if (afterSeq != null && afterSeq >= 0) {
|
} else if (afterSeq != null && afterSeq >= 0) {
|
||||||
// 在此seq之后
|
// 在此seq之后
|
||||||
wikiPageMapper.updateAfterSeq(wikiPage.getParentId(), afterSeq + 1);
|
wikiPageMapper.updateAfterSeq(wikiPageSel.getSpaceId(), wikiPage.getParentId(), afterSeq + 1);
|
||||||
wikiPage.setSeqNo(afterSeq + 1);
|
wikiPage.setSeqNo(afterSeq + 1);
|
||||||
} else {
|
} else {
|
||||||
// 放在末尾
|
// 放在末尾
|
||||||
Integer lastSeq = wikiPageMapper.getLastSeq(wikiPage.getParentId());
|
Integer lastSeq = wikiPageMapper.getLastSeq(wikiPageSel.getSpaceId(), wikiPage.getParentId());
|
||||||
lastSeq = Optional.ofNullable(lastSeq).orElse(0);
|
lastSeq = Optional.ofNullable(lastSeq).orElse(0);
|
||||||
wikiPage.setSeqNo(lastSeq + 1);
|
wikiPage.setSeqNo(lastSeq + 1);
|
||||||
}
|
}
|
||||||
this.updateById(wikiPage);
|
this.updateById(wikiPage);
|
||||||
|
// 重置当前分支的所有节点seq值
|
||||||
|
wikiPageMapper.updateChildrenSeq(wikiPageSel.getSpaceId(), wikiPage.getParentId());
|
||||||
// 给相关人发送消息
|
// 给相关人发送消息
|
||||||
WikiPage wikiPageSel = this.getById(wikiPage.getId());
|
|
||||||
DocUserDetails currentUser = DocUserUtil.getCurrentUser();
|
DocUserDetails currentUser = DocUserUtil.getCurrentUser();
|
||||||
UserMessage userMessage = userMessageService.createUserMessage(currentUser, wikiPageSel.getId(), wikiPageSel.getName(), DocSysType.WIKI, UserMsgType.WIKI_PAGE_PARENT);
|
UserMessage userMessage = userMessageService.createUserMessage(currentUser, wikiPageSel.getId(), wikiPageSel.getName(), DocSysType.WIKI, UserMsgType.WIKI_PAGE_PARENT);
|
||||||
userMessage.setAffectUserId(wikiPageSel.getCreateUserId());
|
userMessage.setAffectUserId(wikiPageSel.getCreateUserId());
|
||||||
|
|||||||
@@ -18,11 +18,8 @@
|
|||||||
and a.space_id in
|
and a.space_id in
|
||||||
<foreach collection="spaceIds" open="(" close=")" item="item" separator=",">#{item}</foreach>
|
<foreach collection="spaceIds" open="(" close=")" item="item" separator=",">#{item}</foreach>
|
||||||
</if>
|
</if>
|
||||||
<if test="newsType == 1">order by a.update_time desc</if>
|
order by a.update_time desc
|
||||||
<if test="newsType == 2">order by a.create_time desc</if>
|
limit 15
|
||||||
<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>
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -1,5 +1,15 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?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">
|
<!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">
|
<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>
|
</mapper>
|
||||||
|
|||||||
Reference in New Issue
Block a user