作者 tangxvhui

保存模型

1 import "core/comment.api" 1 import "core/comment.api"
2 -import "core/message.api"  
  2 +import "core/message.api"
  3 +import "core/article_tag.api"
  1 +syntax = "v1"
  2 +
  3 +info(
  4 + title: "文章内容处理"
  5 + desc: "编辑处理文章内容"
  6 + author: "author"
  7 + email: "email"
  8 + version: "v1"
  9 +)
  10 +
  11 +// 坐标地点描述
  12 +type Location {
  13 + Longitude float64 `json:"longitude"` //经度
  14 + Latitude float64 `json:"latitude"` //纬度
  15 + Descript string `json:"descript"` //地点描述
  16 +}
  17 +
  18 +// 人员的简单展示信息
  19 +type Author {
  20 + Id int64 `json:"id"` // 人员id
  21 + Name string `json:"name"` // 人员的名字
  22 + Avatar string `json:"avatar"` // 人员头像URL
  23 + Group string `json:"group"` // 人员的分组
  24 + Position string `json:"position"` // 职位
  25 +}
  26 +
  27 +// 创建发布文章
  28 +type (
  29 + ArticleCreateRequest {
  30 + Title string `json:"title"` //标题
  31 + Section []string `json:"section"` //文章的文本内容
  32 + AuthorId int `json:"authorId"` //发布人id
  33 + Images []string `json:"images"` //图片
  34 + WhoRead []int `json:"whoRead"` //谁可查看
  35 + WhoReview []int `json:"whoReview"` //谁可评论
  36 + Location Location `json:"location"` //定位坐标
  37 + }
  38 + ArticleCreateResponse {
  39 + Id int64 `json:"id"`
  40 + }
  41 +)
  42 +
  43 +// 查看文章的详情
  44 +type (
  45 + ArticleGetRequest {
  46 + Id int64 `json:"id"` //id
  47 + }
  48 + ArticleGetResponse {
  49 + Title string `json:"title"` //标题
  50 + AuthorId int `json:"authorId"` //发布人id
  51 + Author Author `json:"author"` //发布人
  52 + CreatedAt int64 `json:"createdAt"` //文章的发布时间
  53 + Section []string `json:"section"` //文章的文本内容
  54 + Images []string `json:"images"` //图片
  55 + WhoRead []int `json:"whoRead"` //谁可查看
  56 + WhoReview []int `json:"whoReview"` //谁可评论
  57 + Location Location `json:"location"` //定位坐标
  58 + CountLove int `json:"countLove"` // 点赞数量
  59 + CountComment int `json:"countComment"` // 评论数量
  60 + Show int `json:"showState"` // 评论的展示状态(0显示、1不显示)
  61 + }
  62 +)
  63 +
  64 +// 小程序接口
  65 +@server(
  66 + prefix: v1/mini
  67 + group: article
  68 + jwt: MiniAuth
  69 +)
  70 +service Core {
  71 + @doc "小程序创建发布内容"
  72 + @handler CreateArticle
  73 + post /article (ArticleCreateRequest) returns (ArticleCreateResponse)
  74 + @doc "小程序获取文章内容详情"
  75 + @handler GetArticle
  76 + get /article/:id (ArticleGetRequest) returns (ArticleGetResponse)
  77 +}
  1 +syntax = "v1"
  2 +
  3 +info(
  4 + title: "后台编辑标签"
  5 + desc: "编辑处理标签信息"
  6 + author: "author"
  7 + email: "email"
  8 + version: "v1"
  9 +)
  10 +
  11 +// 创建标签
  12 +type (
  13 + TagCreateRequest {
  14 + CompanyId int64 `json:"companyId"`
  15 + Image string `json:"image"`
  16 + Name string `json:"name"` // 标签名称
  17 + Group string `json:"group"` // 标签分类
  18 + Remark string `json:"remark"` // 备注
  19 + }
  20 +
  21 + TagCreateResponse {
  22 + Id int64 `json:"id"`
  23 + }
  24 +)
  25 +
  26 +// 编辑标签
  27 +type (
  28 + TagEditRequest {
  29 + Id int64 `json:"id"`
  30 + CompanyId int64 `json:"companyId"`
  31 + Image string `json:"image"`
  32 + Name string `json:"name"` // 标签名称
  33 + Group string `json:"group"` // 标签分类
  34 + Remark string `json:"remark"` // 备注
  35 + }
  36 +
  37 + TagEditResponse {
  38 + Id int64 `json:"id"`
  39 + }
  40 +)
  41 +
  42 +// 获取标签详情
  43 +type (
  44 + TagGetRequest {
  45 + Id int64 `json:"id"`
  46 + }
  47 + TagGetResponse {
  48 + Id int64 `json:"id"`
  49 + Image string `json:"image"`
  50 + Name string `json:"name"` // 标签名称
  51 + Group string `json:"group"` // 标签分类
  52 + Remark string `json:"remark"` // 备注
  53 + }
  54 +)
  55 +
  56 +//标签列表
  57 +type (
  58 + TagListRequest {
  59 + Page int `json:"page"`
  60 + Size int `json:"size"`
  61 + }
  62 + TagListResponse {
  63 + Total int `json:"total"`
  64 + List []TagItem `json:"list"`
  65 + }
  66 + TagItem {
  67 + Id int64 `json:"id"`
  68 + Image string `json:"image"`
  69 + Name string `json:"name"` // 标签名称
  70 + Group string `json:"group"` // 标签分类
  71 + Remark string `json:"remark"` // 备注
  72 + CreatedAt int64 `json:"createdAt"`
  73 + }
  74 +)
  75 +
  76 +//删除标签
  77 +type (
  78 + TagDeleteRequest {
  79 + Id int64 `json:"id"`
  80 + }
  81 + TagDeleteResponse {
  82 + Id int64 `json:"id"`
  83 + }
  84 +)
  85 +
  86 +@server(
  87 + prefix: v1/mini
  88 + group: tags
  89 + jwt: MiniAuth
  90 +)
  91 +service Core {
  92 + @doc "后台创建文章标签"
  93 + @handler CreateTag
  94 + post /article_tag (TagCreateRequest) returns (TagCreateResponse)
  95 + @doc "后台编辑文章标签"
  96 + @handler EditTag
  97 + put /article_tag (TagEditRequest) returns (TagEditResponse)
  98 + @doc "后台获取文章标签"
  99 + @handler GetTag
  100 + get /article_tag/:id (TagGetRequest) returns (TagGetResponse)
  101 + @doc "后台删除文章标签"
  102 + @handler DeleteTag
  103 + delete /article_tag (TagDeleteRequest) returns (TagDeleteResponse)
  104 +}
@@ -36,6 +36,7 @@ type ServiceContext struct { @@ -36,6 +36,7 @@ type ServiceContext struct {
36 func NewServiceContext(c config.Config) *ServiceContext { 36 func NewServiceContext(c config.Config) *ServiceContext {
37 37
38 db := database.OpenGormPGDB(c.DB.DataSource, c.Log.Mode) 38 db := database.OpenGormPGDB(c.DB.DataSource, c.Log.Mode)
  39 +
39 mlCache := cache.NewMultiLevelCache([]string{c.Redis.Host}, c.Redis.Pass) 40 mlCache := cache.NewMultiLevelCache([]string{c.Redis.Host}, c.Redis.Pass)
40 redis, _ := redis.NewRedis(redis.RedisConf{Host: c.Redis.Host, Pass: c.Redis.Pass, Type: "node"}) 41 redis, _ := redis.NewRedis(redis.RedisConf{Host: c.Redis.Host, Pass: c.Redis.Pass, Type: "node"})
41 42
@@ -27,7 +27,6 @@ type Article struct { @@ -27,7 +27,6 @@ type Article struct {
27 TargetUser int // 分发方式 0 分发给所有人 1 分发给指定的人 27 TargetUser int // 分发方式 0 分发给所有人 1 分发给指定的人
28 CountLove int // 点赞数量 28 CountLove int // 点赞数量
29 CountComment int // 评论数量 29 CountComment int // 评论数量
30 - Tags []int `gorm:"type:jsonb;serializer:json"` // 标签  
31 Show int // 评论的展示状态(0显示、1不显示) 30 Show int // 评论的展示状态(0显示、1不显示)
32 } 31 }
33 32
@@ -158,7 +158,6 @@ func (repository *ArticleRepository) ModelToDomainModel(from *models.Article) (* @@ -158,7 +158,6 @@ func (repository *ArticleRepository) ModelToDomainModel(from *models.Article) (*
158 TargetUser: domain.ArticleTarget(from.TargetUser), 158 TargetUser: domain.ArticleTarget(from.TargetUser),
159 CountLove: from.CountLove, 159 CountLove: from.CountLove,
160 CountComment: from.CountComment, 160 CountComment: from.CountComment,
161 - Tags: from.Tags,  
162 Show: domain.ArticleShow(from.Show), 161 Show: domain.ArticleShow(from.Show),
163 } 162 }
164 return to, nil 163 return to, nil
@@ -182,7 +181,6 @@ func (repository *ArticleRepository) DomainModelToModel(from *domain.Article) (* @@ -182,7 +181,6 @@ func (repository *ArticleRepository) DomainModelToModel(from *domain.Article) (*
182 TargetUser: int(from.TargetUser), 181 TargetUser: int(from.TargetUser),
183 CountLove: from.CountLove, 182 CountLove: from.CountLove,
184 CountComment: from.CountComment, 183 CountComment: from.CountComment,
185 - Tags: from.Tags,  
186 Show: int(from.Show), 184 Show: int(from.Show),
187 } 185 }
188 // err := copier.Copy(to, from) 186 // err := copier.Copy(to, from)
@@ -24,7 +24,6 @@ type Article struct { @@ -24,7 +24,6 @@ type Article struct {
24 TargetUser ArticleTarget `json:"targetUser"` // 分发方式 0 分发给所有人 1 分发给指定的人 24 TargetUser ArticleTarget `json:"targetUser"` // 分发方式 0 分发给所有人 1 分发给指定的人
25 CountLove int `json:"countLove"` // 点赞数量 25 CountLove int `json:"countLove"` // 点赞数量
26 CountComment int `json:"countComment"` // 评论数量 26 CountComment int `json:"countComment"` // 评论数量
27 - Tags []int `json:"tags"` // 标签  
28 Show ArticleShow `json:"showState"` // 评论的展示状态(0显示、1不显示) 27 Show ArticleShow `json:"showState"` // 评论的展示状态(0显示、1不显示)
29 // ...more 28 // ...more
30 } 29 }