message.api 4.7 KB
syntax = "v1"

info(
    title: "消息中心"
    desc: "消息中心"
    author: "zz"
    email: "email"
    version: "v1"
)

@server(
    prefix: v1
    group: message
    middleware: LogRequest
    jwt: MiniAuth
)
service Core {
    @doc "系统消息"
    @handler miniSystem
    post /mini/message/system (MessageRequest) returns (MessageSystemResponse)

    @doc "评论消息"
    @handler miniComment
    post /mini/message/comment (MessageRequest) returns (MessageBusinessResponse)

    @doc "点赞消息"
    @handler miniLike
    post /mini/message/like (MessageRequest) returns (MessageBusinessResponse)

    @doc "增加订阅消息次数"
    @handler miniMessageSubscribeAdd
    post /mini/message/subscribe/add (MessageSubscribeAddRequest) returns (MessageSubscribeAddResponse)

    @doc "获取订阅消息次数"
    @handler miniMessageSubscribeList
    post /mini/message/subscribe/list (MessageSubscribeListRequest) returns (MessageSubscribeListResponse)
}

type (
    MessageRequest  {
        Page int `json:"page"`
        Size int `json:"size"`
    }
    MessageSystemResponse {
        List []MessageSystemItem `json:"list"`
        Total int64 `json:"total"`
    }
    MessageSystemItem  {
        Id             int64   `json:"id"`              // ID
        Type           int     `json:"type"`            // 系统分类
        Title          string  `json:"title"`           // 标题
        Content        string  `json:"content"`         // 内容
        CreatedAt      int64   `json:"createdAt"`       // 创建时间
    }

    MessageBusinessResponse {
        List []MessageBusinessItem `json:"list"`
        Total int64 `json:"total"`
    }
    MessageBusinessItem  {
        Id                  int64                 `json:"id"`
        Type                int                   `json:"type"`                // 分类   (1回复 2点赞 3被采纳)
        OptType             int                   `json:"optType"`             // 操作类型(1针对文章或段落、2针对评论、3针对圆桌)
        CompanyId           int64                 `json:"companyId"`           // 操作人公司ID
        UserId              int64                 `json:"userId"`              // 操作人用户ID
        RecipientId         int64                 `json:"recipientId"`         // 接收者ID
        ArticleId           int64                 `json:"articleId"`           // 文章ID
//        CommentId           int64                 `json:"commentId"`           // 评论ID
//        DiscussionId        int64                 `json:"discussionId"`        // 圆桌ID
//        DiscussionOpinionId int64                 `json:"discussionOpinionId"` // 观点ID
//        Content             string                `json:"content"`             // 消息内容
        CreatedAt           int64                 `json:"createdAt"`           // 创建时间
        User                *SimpleUser           `json:"user"`                // 操作人
        Article             *SimpleArticle        `json:"article"`             // 文章
        Comment             *SimpleComment        `json:"comment"`             // 评论
        CommentParent       *SimpleComment        `json:"commentParent"`       // 被回复的评论
    }

    SimpleUser {
        Id           int64   `json:"id"`
        CompanyId    int64   `json:"companyId,omitempty"`    // 公司ID
        CompanyName  string  `json:"companyName,omitempty"`  // 公司名称
        Name         string  `json:"name"`         // 名称
        Avatar       string  `json:"avatar"`       // 头像
        Position     string  `json:"position"`     // 职位
    }


    SimpleArticle {
        Id           int64   `json:"id"`
        Title        string  `json:"title"`                  // 文章标题
        Summary      string  `json:"summary"`                // 文章概要
        CountLove    int     `json:"countLove"`              // 点赞数量
        CountComment int     `json:"countComment"`           // 评论数量
        Show         int     `json:"show"`                   // 文章的展示状态(0显示、1不显示)
    }

    // 增加消息订阅次数
    MessageSubscribeAddRequest {
        Types []int `json:"types"` // 订阅消息类型
    }
    MessageSubscribeAddResponse {
        Items []MessageSubscribeItem `json:"items"`
    }
    MessageSubscribeItem {
        Type        int     `json:"type"`       // 订阅消息类型
        Count       int     `json:"count"`      // 订阅次数
        UserId      int64   `json:"userId"`     // 用户ID
        CompanyId   int64   `json:"companyId"`  // 公司ID
    }
    //订阅消息次数详情
    MessageSubscribeListRequest {

    }
    MessageSubscribeListResponse {
        Items []MessageSubscribeItem `json:"items"`
    }
)