comment.api 14.2 KB
syntax = "v1"

info(
	title: "评论相关"
	desc: "编辑处理文章的评论"
	author: "author"
	email: "email"
	version: "v1"
)

// 小程序接口
@server(
	prefix: v1/mini
	group: comment
	middleware: LogRequest
	jwt: MiniAuth
)
service Core {
	@doc "小程序填写文章的评论"
	@handler MiniCreateArticleComment
	post /article_comment (MiniCreateArticleCommentRequest) returns (MiniCreateArticleCommentResponse)

	@doc "小程序展示文章的评论列表"
	@handler MiniListArticleComment
	post /article_comment/list (MiniListArticleCommentRequest) returns (MiniListArticleCommentResponse)

	@doc "小程序展示评论对应的一级回复列表"
	@handler MiniListReplyArticleComment
	post /article_comment/list_reply (MiniListReplyArticleCommentRequest) returns (MiniListReplyArticleCommentResponse)

	@doc "小程序展示文章的评论列表TOP5"
	@handler MiniTop5ArticleComment
	post /article_comment/top5 (MiniTop5ArticleCommentRequest) returns (MiniTop5ArticleCommentResponse)

	@doc "小程序展示单个文章的评论"
	@handler MiniGetArticleComment
	get /article_comment/:id (MiniGetArticleCommentRequest) returns (MiniGetArticleCommentResponse)

	@doc "小程序展示删除文章评论"
	@handler MiniDeleteArticleComment
	delete /article_comment/:id (MiniDeleteArticleCommentRequest) returns (MiniDeleteArticleCommentResponse)

	@doc "小程序展示评论时@人可选列表"
	@handler MiniArticleCommentAtWho
	post /article_comment/at_who/list (MiniArticleCommentAtWhoRequest) returns (MiniArticleCommentAtWhoResponse)
}

// 后台接口
@server(
	prefix: v1/system
	group: comment
	middleware: LoginStatusCheck,LogRequest
	jwt: SystemAuth
)
service Core {
	@doc "小程序获取回复@人可选列表"
	@handler SystemArticleCommentSearchMe
	post /article_comment/search/me (SystemArticleCommentSearchMeRequest) returns (SystemArticleCommentSearchMeResponse)

	@doc "管理后台文章评论列表"
	@handler SystemArticleCommentSearch
	post /article_comment/search (SystemArticleCommentSearchRequest) returns (SystemArticleCommentSearchResponse)

	@doc "管理后台查看所有的评论"
	@handler SystemListAticleComment
	post /article_comment/list (SystemListCommentRequest)returns (SystemListCommentResponse)

	@doc "管理后台评论的详情"
	@handler SystemGetAticleComment
	get /article_comment/:id (SystemGetCommentRequest)returns (SystemGetCommentResponse)

	@doc "管理后台变更评论的显示状态"
	@handler SystemEditAticleCommentShow
	post /article_comment/edit_show (SystemEditCommentShowRequest)returns (SystemEditCommentShowResponse)

	@doc "管理后台变更评论"
	@handler SystemEditAticleComment
	post /article_comment/edit (SystemEditCommentRequest)returns (SystemEditCommentResponse)
}

//评论的填写人
type CommentAuthor {
	Id       int64  `json:"id"`                // 人员id
	Name     string `json:"name"`              // 人员的名字
	Avatar   string `json:"avatar,optional"`   // 人员头像URL
	Position string `json:"position,optional"` // 职位
	Company  string `json:"company,optional"`  // 公司
}

// 小程序填写文章的评论
type (
	MiniCreateArticleCommentRequest {
		ArtitcleId int64             `json:"articleId"`         // 文章id
		SectionId  int64             `json:"sectionId"`         // 段落id
		FromUserId int64             `json:",optional"`         // 填写文章的人,服务端自动获取
		CompanyId  int64             `json:",optional"`         // 服务端自动获取
		Pid        int64             `json:"pid,optional"`      // 回复那个评论的id
		Content    string            `json:"content"`           // 评论的内容
		AtWho      []CommentAtWho    `json:"atWho,optional"`    // 填写评论时@的人
		MatchUrl   map[string]string `json:"matchUrl,optional"` // 评论内容中的url文本
	}

	CommentAtWho {
		Id          int64  `json:"id"`
		Name        string `json:"name,optional"`
		FirstLetter string `json:"firstLetter,optional"`
	}
	MiniCreateArticleCommentResponse {
		Id             int64             `json:"id"`
		Pid            int64             `json:"pid"`
		TopId          int64             `json:"topId"`
		ArtitcleId     int64             `json:"articleId"`      // 文章id
		SectionId      int64             `json:"sectionId"`      // 段落id
		FromUserId     int64             `json:"fromUserId"`     // 填写评论的人
		FromUser       CommentAuthor     `json:"fromUser"`       // 填写评论的人
		ToUserId       int64             `json:"toUserId"`       // 回复哪个人
		ToUser         CommentAuthor     `json:"toUser"`         // 回复哪个人
		SectionContent string            `json:"sectionContent"` // 引用的文章内容文本
		CountReply     int               `json:"countReply"`     // 回复数量
		CountUserLove  int               `json:"countUserLove"`  // 用户点赞数量
		CountAdminLove int               `json:"countAdminLove"` // 运营点赞数量
		AtWho          []CommentAtWho    `json:"atWho"`          // 填写评论时@的人
		MatchUrl       map[string]string `json:"matchUrl"`       // 评论内容中的url文本
		CreatedAt      int64             `json:"createdAt"`      //
	}
)

// 小程序获取文章的评论列表
type (
	MiniListArticleCommentRequest {
		Page      int   `json:"page"`
		Size      int   `json:"size"`
		CompanyId int64 `json:",optional"`
		UserId    int64 `json:",optional"`
		ArticleId int64 `json:"articleId"`
		SectionId int64 `json:"sectionId,optional"`
	}
	MiniListArticleCommentResponse {
		Total int64                    `json:"total"`
		List  []ArticleCommentAndReply `json:"list"`
	}

	ArticleCommentAndReply {
		Comment    ArticleCommentItem   `json:"comment"`    //评论
		Reply      []ArticleCommentItem `json:"reply"`      //回复的评论
		TotalReply int64                `json:"totalReply"` //回复的评论数量
	}

	ArticleCommentItem {
		Id             int64             `json:"id"`
		Pid            int64             `json:"pid"`
		TopId          int64             `json:"topId"`
		ArtitcleId     int64             `json:"articleId"`      // 文章id
		SectionId      int64             `json:"sectionId"`      // 段落id
		FromUserId     int64             `json:"fromUserId"`     // 填写评论的人
		FromUser       CommentAuthor     `json:"fromUser"`       // 填写评论的人
		ToUserId       int64             `json:"toUserId"`       // 回复哪个人
		ToUser         CommentAuthor     `json:"toUser"`         // 回复哪个人
		SectionContent string            `json:"sectionContent"` // 引用的文章内容文本
		CountReply     int               `json:"countReply"`     // 回复数量
		CountUserLove  int               `json:"countUserLove"`  // 用户点赞数量
		CountAdminLove int               `json:"countAdminLove"` // 运营点赞数量
		AtWho          []CommentAtWho    `json:"atWho"`          // 填写评论时@的人
		MatchUrl       map[string]string `json:"matchUrl"`       // 评论内容中的url文本
		CreatedAt      int64             `json:"createdAt"`      //
		MeLoveFlag     int               `json:"meLoveFlag"`     // 当前人员对评论的点赞标识 (0 没有点赞 1有点赞)
		Content        string            `json:"content"`        // 评论的内容
	}
)

// 小程序获取单个文章的评论
type (
	MiniGetArticleCommentRequest {
		CommentId int64 `path:"id"`
		CompanyId int64 `path:",optional"`
		UserId    int64 `path:",optional"`
	}
	MiniGetArticleCommentResponse {
		ArticleCommentAndReply
	}
)

// 小程序删除单个文章的评论
type (
	MiniDeleteArticleCommentRequest {
		CommentId int64 `path:"id"`
		UserId    int64 `path:",optional"`
		CompanyId int64 `path:",optional"`
	}
	MiniDeleteArticleCommentResponse {
		Id int64 `json:"id"`
	}
)

// 热门前5的评论列表
type (
	MiniTop5ArticleCommentRequest {
		CompanyId int64 `json:",optional"`
		UserId    int64 `json:",optional"`
		ArticleId int64 `json:"articleId"`
	}

	MiniTop5ArticleCommentResponse {
		List []ArticleCommentItem `json:"list"`
	}
)

// 填写评论时选择@人
type (
	MiniArticleCommentAtWhoRequest {
		CompanyId int64 `json:",optional"`
		UserId    int64 `json:",optional"`
		ArticleId int64 `json:"articleId"`
	}

	MiniArticleCommentAtWhoResponse {
		List []CommentAtWho `json:"list"`
	}
)

// 获取评论的回复,只返回一级
type (
	MiniListReplyArticleCommentRequest {
		CommentId int64 `json:"commentId"`
		UserId    int64 `json:",optional"`
		CompanyId int64 `json:",optional"`
		Page      int   `json:"page"`
		Size      int   `json:"size"`
	}

	MiniListReplyArticleCommentResponse {
		Total int64                `json:"total"`
		List  []ArticleCommentItem `json:"list"`
	}
)

type (
	SystemArticleCommentSearchMeRequest {
		Page      int   `json:"page"`
		Size      int   `json:"size"`
		AuthorId  int64 `json:"authorId"`           // 用户
		BeginTime int64 `json:"beginTime,optional"` // 开始时间
		EndTime   int64 `json:"endTime,optional"`   // 结束时间
	}
	SystemArticleCommentSearchMeResponse {
		List  []ArticleCommentItem `json:"list"`
		Total int64                `json:"total"`
	}
)
// 文章里的评论列表
type (
	SystemArticleCommentSearchRequest {
		Page      int    `json:"page"`
		Size      int    `json:"size"`
		ArticleId int64  `json:"articleId"`          // 文章ID
		TopId     int64  `json:"topId,optional"`     // 文章顶层ID
		Author    string `json:"author,optional"`    // 用户
		Show      int    `json:"show,optional"`      // 显示状态
		BeginTime int64  `json:"beginTime,optional"` // 开始时间
		EndTime   int64  `json:"endTime,optional"`   // 结束时间
	}
	SystemArticleCommentSearchResponse {
		Total int64                            `json:"total"`
		List  []SystemArticleCommentSearchItem `json:"list"`
	}
	SystemArticleCommentSearchItem {
		Id             int64             `json:"id"`
		Pid            int64             `json:"pid"`
		TopId          int64             `json:"topId"`
		ArtitcleId     int64             `json:"articleId"`      // 文章id
		SectionId      int64             `json:"sectionId"`      // 段落id
		FromUserId     int64             `json:"fromUserId"`     // 填写评论的人
		FromUser       CommentAuthor     `json:"fromUser"`       // 填写评论的人
		CountReply     int               `json:"countReply"`     // 回复数量
		CountUserLove  int               `json:"countUserLove"`  // 用户点赞数量
		CountAdminLove int               `json:"countAdminLove"` // 运营点赞数量
		CreatedAt      int64             `json:"createdAt"`      // 评论时间
		Content        string            `json:"content"`        // 评论的内容
		AtWho          []CommentAtWho    `json:"atWho"`          // 填写评论时@的人
		MatchUrl       map[string]string `json:"matchUrl"`       // 评论内容中的url文本
		Show           int               `json:"show"`           // 显示状态
	}
)

// 管理后台 评论管理列表
type (
	SystemListCommentRequest {
		Page         int    `json:"page"`
		Size         int    `json:"size"`
		CompanyId    int64  `json:",optional"`             //
		TopId        int64  `json:"topId,optional"`        // 评论的顶层ID
		FromUser     string `json:"fromUser,optional"`     // 用户
		Show         int    `json:"show,optional"`         // 显示状态
		BeginTime    int64  `json:"beginTime,optional"`    // 填写评论的开始时间
		EndTime      int64  `json:"endTime,optional"`      // 填写评论的结束时间
		ArticleTitle string `json:"articleTitle,optional"` //
		Content      string `json:"content,optional"`      //
	}
	SystemListCommentResponse {
		Total int                 `json:"total"`
		List  []SystemCommentItem `json:"list"`
	}
	SystemCommentItem {
		Id             int64         `json:"id"`             //评论id
		Pid            int64         `json:"pid"`            //
		TopId          int64         `json:"topId"`          //
		ArticleId      int64         `json:"articleId"`      //对应的文章id
		ArticleTitle   string        `json:"articleTitle"`   //文章标题
		FromUserId     int64         `json:"fromUserId"`     //填写评论的人
		FromUser       CommentAuthor `json:"fromUser"`       //填写评论的人
		CreatedAt      int64         `json:"createdAt"`      //评论的填写时间
		Content        string        `json:"content"`        //评论的内容
		Show           int           `json:"show"`           //是否展示 [1显示] [2不显示]
		CountReply     int           `json:"countReplay"`    //回复数量
		CountUserLove  int           `json:"countUserLove"`  //用户点赞数量
		CountAdminLove int           `json:"countAdminLove"` //运营点赞数量
	}
)

// 管理后台获取评论详情
type (
	SystemGetCommentRequest {
		CompanyId int64 `path:",optional"`
		Id        int64 `path:"id"`
	}

	SystemGetCommentResponse {
		Id             int64         `json:"id"`             //评论id
		Pid            int64         `json:"pid"`            //
		TopId          int64         `json:"topId"`          //
		ArticleId      int64         `json:"articleId"`      //对应的文章id
		ArticleTitle   string        `json:"articleTitle"`   //文章标题
		FromUserId     int64         `json:"fromUserId"`     //填写评论的人
		FromUser       CommentAuthor `json:"fromUser"`       //填写评论的人
		CreatedAt      int64         `json:"createdAt"`      //评论的填写时间
		SectionContent string        `json:"sectionContent"` //引用的段落内容
		Content        string        `json:"content"`        // 评论的内容
		Show           int           `json:"show"`           //是否展示 [1显示] [2不显示]
		CountReply     int           `json:"countReplay"`    //回复数量
		CountUserLove  int           `json:"countUserLove"`  //用户点赞数量
		CountAdminLove int           `json:"countAdminLove"` //运营点赞数量
	}
)

// 管理后台单独设置评论显示隐藏状态
type (
	SystemEditCommentShowRequest {
		CompanyId int64   `json:",optional"`
		Id        []int64 `json:"id"`
		Show      int     `json:"show"` //[1 显示评论] [2: 隐藏评论]
	}

	SystemEditCommentShowResponse {
		Id []int64 `json:"id"`
	}
)

// 管理后台变更评论
type (
	SystemEditCommentRequest {
		CompanyId      int64 `json:",optional"`
		Id             int64 `json:"id"`
		Show           int   `json:"show"` //[1 显示评论] [2: 隐藏评论]
		CountAdminLove int   `json:"countAdminLove,optional"`
	}

	SystemEditCommentResponse {
		Id int64 `json:"id"`
	}
)