article_section.go 2.3 KB
package domain

import (
	"context"

	"gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/interanl/pkg/db/transaction"
)

// 文章段落内容
type ArticleSection struct {
	Id                int64     `json:"id,omitempty"`
	CompanyId         int64     `json:"companyId,omitempty"`
	CreatedAt         int64     `json:"createdAt,omitempty"`
	UpdatedAt         int64     `json:"updatedAt,omitempty"`
	DeletedAt         int64     `json:"deletedAt,omitempty"`
	Version           int       `json:"version,omitempty"`
	ArticleId         int64     `json:"articleId,omitempty"`         // 文章id
	Content           string    `json:"content,omitempty"`           // 文本内容
	SortBy            int       `json:"sortBy,omitempty"`            // 排序
	TotalComment      int       `json:"totalComment,omitempty"`      // 评论的数量
	Images            []string  `json:"images,omitempty"`            // 照片列表
	ParagraphType     int       `json:"paragraphType,omitempty"`     // 段落类型 1:文本 2:图片
	ParagraphTemplate Paragraph `json:"paragraphTemplate,omitempty"` // 段落模板
}

type ArticleSectionRepository interface {
	Insert(ctx context.Context, conn transaction.Conn, dm *ArticleSection) (*ArticleSection, error)
	Update(ctx context.Context, conn transaction.Conn, dm *ArticleSection) (*ArticleSection, error)
	UpdateWithVersion(ctx context.Context, conn transaction.Conn, dm *ArticleSection) (*ArticleSection, error)
	Delete(ctx context.Context, conn transaction.Conn, dm *ArticleSection) (*ArticleSection, error)
	DeleteBy(ctx context.Context, conn transaction.Conn, queryOptions map[string]interface{}) error
	FindOne(ctx context.Context, conn transaction.Conn, id int64) (*ArticleSection, error)
	Find(ctx context.Context, conn transaction.Conn, queryOptions map[string]interface{}) (int64, []*ArticleSection, error)
	IncreaseCountComment(ctx context.Context, conn transaction.Conn, incr int, sectionId int64) error //评论数量变动
}

// 排序文章分段列表
type SortArticleSection []*ArticleSection

func (a SortArticleSection) Len() int           { return len(a) }
func (a SortArticleSection) Swap(i, j int)      { a[i], a[j] = a[j], a[i] }
func (a SortArticleSection) Less(i, j int) bool { return a[i].SortBy < a[j].SortBy }

const (
	ParagraphTypeNone   = 0
	ParagraphTypeText   = 1
	ParagraphTypeImages = 2
)