article_template.api 7.0 KB
@server(
    prefix: v1/system
    group: template
    middleware: LoginStatusCheck,LogRequest
    jwt: SystemAuth
)
service Core {
    @doc  "模板管理-详情"
    @handler systemArticleTemplateGet
    get /article_template/:id (ArticleTemplateGetRequest) returns (ArticleTemplateGetResponse)
    @doc  "模板管理-保存"
    @handler systemArticleTemplateSave
    post /article_template (ArticleTemplateSaveRequest) returns (ArticleTemplateSaveResponse)
    @doc  "模板管理-删除"
    @handler systemArticleTemplateDelete
    delete /article_template/:id (ArticleTemplateDeleteRequest) returns (ArticleTemplateDeleteResponse)
    @doc  "模板管理-批量删除"
    @handler systemArticleTemplateBatchDelete
    delete /article_template/batch_delete (ArticleTemplateBatchDeleteRequest) returns (ArticleTemplateBatchResponse)
    @doc  "模板管理-更新"
    @handler systemArticleTemplateUpdate
    put /article_template/:id (ArticleTemplateUpdateRequest) returns (ArticleTemplateUpdateResponse)
    @doc  "模板管理-搜索"
    @handler systemArticleTemplateSearch
    post /article_template/search (ArticleTemplateSearchRequest) returns (ArticleTemplateSearchResponse)
    @doc  "模板管理-分类搜索"
    @handler systemArticleTemplateClassSearch
    post /article_template_class/search (ArticleTemplateClassSearchRequest) returns (ArticleTemplateClassSearchResponse)
}

@server(
    prefix: v1/mini
    group: template
    middleware: LogRequest
    jwt: MiniAuth
)
service Core {
    @doc  "模板搜索"
    @handler miniArticleTemplateSearch
    post /article_template/search (ArticleTemplateSearchRequest) returns (ArticleTemplateSearchResponse)
    @doc  "我的模板搜索"
    @handler miniArticleTemplateSearchMine
    post /article_template/search-mine (ArticleTemplateSearchRequest) returns (ArticleTemplateSearchResponse)
    @doc  "模板分类搜索"
    @handler miniArticleTemplateClassSearch
    post /article_template_class/search (ArticleTemplateClassSearchRequest) returns (ArticleTemplateClassSearchResponse)
    @doc  "模板管理-保存"
    @handler miniArticleTemplateSave
    post /article_template (ArticleTemplateSaveRequest) returns (ArticleTemplateSaveResponse)
    @doc  "模板管理-删除"
    @handler miniArticleTemplateDelete
    delete /article_template/:id (ArticleTemplateDeleteRequest) returns (ArticleTemplateDeleteResponse)
    @doc  "模板管理-更新"
    @handler miniArticleTemplateUpdate
    put /article_template/:id (ArticleTemplateUpdateRequest) returns (ArticleTemplateUpdateResponse)
}

type (
    ArticleTemplateGetRequest {
        Id int64 `path:"id"`
    }
    ArticleTemplateGetResponse struct{
        ArticleTemplate ArticleTemplateItem `json:"item"`
    }

    ArticleTemplateSaveRequest struct{
        AccessToken     string       `header:"x-mmm-accesstoken"` // 授权token
        ArticleTemplate ArticleTemplateItem `json:"item"`
        BelongTo        int     `json:"belongTo,optional,default=2"` // 模板属于: 1:企业 、2:个人
    }
    ArticleTemplateSaveResponse struct{}

    ArticleTemplateDeleteRequest struct{
        Id int64 `path:"id"`
    }
    ArticleTemplateDeleteResponse struct{}

    ArticleTemplateBatchDeleteRequest struct{
        Ids []int64 `json:"ids"`
    }
    ArticleTemplateBatchResponse struct{

    }

    ArticleTemplateUpdateRequest struct{
        Id int64 `path:"id"`
        ArticleTemplate ArticleTemplateItem `json:"item"`
    }
    ArticleTemplateUpdateResponse struct{}

    ArticleTemplateSearchRequest struct{
        Page            int    `json:"page,optional"`
        Size            int    `json:"size,optional"`
        Name            string `json:"name,optional"`          // 模板名称
        TemplateClass   string `json:"templateClass,optional"` // 模板分类
        Target          *int   `json:"target,optional"`        // 目标 0 全员 1 指定人
//        BelongTos       []int  `json:"belongTos,optional"`      // 归属
        CompanyId       int64  `json:",optional"` // 属于企业时有值
        UserId          int64  `json:",optional"` // 属于个人时有值
    }
    ArticleTemplateSearchResponse{
        List []ArticleTemplateItem  `json:"list"`
        Total int64 `json:"total"`
    }
    ArticleTemplateClassSearchRequest struct{
        Page            int    `json:"page,optional"`
        Size            int    `json:"size,optional"`
        Name            string `json:"name,optional"`          // 模板名称
        CompanyId       int64  `json:",optional"` // 属于企业时有值
        UserId          int64  `json:",optional"` // 属于个人时有值
    }
    ArticleTemplateClassSearchResponse{
        List []ArticleTemplateClassItem  `json:"list"`
        Total int64 `json:"total"`
    }
    ArticleTemplateClassItem struct{
        Name  string `json:"name"` // 名称
    }
    ArticleTemplateItem struct{
        Id              int64                 `json:"id,optional"` // 唯一标识
        //CompanyId       int64                 `json:",optional"` // 属于企业时有值
        //UserId          int64                 `json:",optional"` // 属于个人时有值
        //BelongTo        int                   `json:"belongTo,optional"` // 模板属于: 1:企业 、2:个人
        Name            string                `json:"name"` // 模板名称
        TemplateClass   string                `json:"templateClass"` // 模板分类
        Paragraphs      []Paragraph           `json:"paragraphs"` // 段落列表
        Icon            string                `json:"icon,optional"` // 图标地址
        TargetWhoRead   int                   `json:"targetWhoRead,optional"` // 分发方式 0 分发给所有人 1 分发给指定的人
        TargetWhoReview int                   `json:"targetWhoReview,optional"` // 分发方式 0 分发给所有人 1 分发给指定的人
        WhoRead         []int64               `json:"whoRead,optional"` // 谁可以看
        WhoReview       []int64               `json:"whoReview,optional"` // 查看、评论人
        WhoReadInfo     []TargetUser          `json:"whoReadInfo,optional"`   // 谁可查看
        WhoReviewInfo   []TargetUser          `json:"whoReviewInfo,optional"` // 谁可评论
        Operator        string                `json:"operator,omitempty,optional"`    // 操作人
        UpdatedAt       int64                 `json:"updatedAt,omitempty,optional"`    // 更新时间戳
    }
    Paragraph struct {
        ID       string `json:"id,optional"`       // 唯一标识
        Title    string `json:"title,optional"`    // 标题
        Prompt   string `json:"prompt,optional"`   // 文本提示
        Required bool   `json:"required,optional"` // 必填
        Type     int    `json:"type,optional"`     // 段落类型 1:文本 2:图片

        Text        string   `json:"text,optional,omitempty"`   // 文本内容
        Images      []string `json:"images,optional,omitempty"` // 图片地址列表
    }
    TargetUser struct{
        Id   int64   `json:"id"`
        Name string  `json:"name"`
    }
)