mirror of
https://github.com/usememos/memos.git
synced 2025-03-04 01:04:38 +08:00
chore: update list memo relations
This commit is contained in:
parent
be046cae8e
commit
fd395e5661
2 changed files with 22 additions and 18 deletions
|
@ -102,13 +102,11 @@ func (d *Driver) ListMemos(ctx context.Context, find *store.FindMemo) ([]*store.
|
|||
GROUP_CONCAT(resource.id) AS resource_id_list,
|
||||
(
|
||||
SELECT
|
||||
GROUP_CONCAT(related_memo_id,':',type)
|
||||
GROUP_CONCAT(memo_id,':',related_memo_id,':',type)
|
||||
FROM
|
||||
memo_relation
|
||||
WHERE
|
||||
memo_relation.memo_id = memo.id
|
||||
GROUP BY
|
||||
memo_relation.memo_id
|
||||
memo_relation.memo_id = memo.id OR memo_relation.related_memo_id = memo.id
|
||||
) AS relation_list
|
||||
FROM
|
||||
memo
|
||||
|
@ -169,21 +167,25 @@ func (d *Driver) ListMemos(ctx context.Context, find *store.FindMemo) ([]*store.
|
|||
relatedMemoTypeList := strings.Split(memoRelationList.String, ",")
|
||||
for _, relatedMemoType := range relatedMemoTypeList {
|
||||
relatedMemoTypeList := strings.Split(relatedMemoType, ":")
|
||||
if len(relatedMemoTypeList) != 2 {
|
||||
if len(relatedMemoTypeList) != 3 {
|
||||
return nil, errors.Errorf("invalid relation format")
|
||||
}
|
||||
relatedMemoID, err := util.ConvertStringToInt32(relatedMemoTypeList[0])
|
||||
memoID, err := util.ConvertStringToInt32(relatedMemoTypeList[0])
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
relationType := store.MemoRelationType(relatedMemoTypeList[1])
|
||||
relatedMemoID, err := util.ConvertStringToInt32(relatedMemoTypeList[1])
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
relationType := store.MemoRelationType(relatedMemoTypeList[2])
|
||||
memo.RelationList = append(memo.RelationList, &store.MemoRelation{
|
||||
MemoID: memo.ID,
|
||||
MemoID: memoID,
|
||||
RelatedMemoID: relatedMemoID,
|
||||
Type: relationType,
|
||||
})
|
||||
// Set the first parent ID if relation type is comment.
|
||||
if memo.ParentID == nil && relationType == store.MemoRelationComment {
|
||||
if memo.ParentID == nil && memoID == memo.ID && relationType == store.MemoRelationComment {
|
||||
memo.ParentID = &relatedMemoID
|
||||
}
|
||||
}
|
||||
|
|
|
@ -102,13 +102,11 @@ func (d *Driver) ListMemos(ctx context.Context, find *store.FindMemo) ([]*store.
|
|||
GROUP_CONCAT(resource.id) AS resource_id_list,
|
||||
(
|
||||
SELECT
|
||||
GROUP_CONCAT(related_memo_id || ':' || type)
|
||||
GROUP_CONCAT(memo_id || ':' || related_memo_id || ':' || type)
|
||||
FROM
|
||||
memo_relation
|
||||
WHERE
|
||||
memo_relation.memo_id = memo.id
|
||||
GROUP BY
|
||||
memo_relation.memo_id
|
||||
memo_relation.memo_id = memo.id OR memo_relation.related_memo_id = memo.id
|
||||
) AS relation_list
|
||||
FROM
|
||||
memo
|
||||
|
@ -169,21 +167,25 @@ func (d *Driver) ListMemos(ctx context.Context, find *store.FindMemo) ([]*store.
|
|||
relatedMemoTypeList := strings.Split(memoRelationList.String, ",")
|
||||
for _, relatedMemoType := range relatedMemoTypeList {
|
||||
relatedMemoTypeList := strings.Split(relatedMemoType, ":")
|
||||
if len(relatedMemoTypeList) != 2 {
|
||||
if len(relatedMemoTypeList) != 3 {
|
||||
return nil, errors.New("invalid relation format")
|
||||
}
|
||||
relatedMemoID, err := util.ConvertStringToInt32(relatedMemoTypeList[0])
|
||||
memoID, err := util.ConvertStringToInt32(relatedMemoTypeList[0])
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
relationType := store.MemoRelationType(relatedMemoTypeList[1])
|
||||
relatedMemoID, err := util.ConvertStringToInt32(relatedMemoTypeList[1])
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
relationType := store.MemoRelationType(relatedMemoTypeList[2])
|
||||
memo.RelationList = append(memo.RelationList, &store.MemoRelation{
|
||||
MemoID: memo.ID,
|
||||
MemoID: memoID,
|
||||
RelatedMemoID: relatedMemoID,
|
||||
Type: relationType,
|
||||
})
|
||||
// Set the first parent ID if relation type is comment.
|
||||
if memo.ParentID == nil && relationType == store.MemoRelationComment {
|
||||
if memo.ParentID == nil && memoID == memo.ID && relationType == store.MemoRelationComment {
|
||||
memo.ParentID = &relatedMemoID
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue