作者 yangfu
1 -测试环境服务端域名 http://sumifcc-discuss-test.sumifcc.com/  
  1 +# 说明
  2 +
  3 +### 测试环境
  4 +服务端域名 http://sumifcc-discuss-test.sumifcc.com/
  5 +
  6 +### 可设置环境变量
  7 +- DataSource
  8 + 数据库连接,样例
  9 + ``` code
  10 + host=数据库IP地址 user=用户名 password=密码 dbname=数据库名 port=31543 sslmode=disable TimeZone=Asia/Shanghai
  11 + ```
  12 +
@@ -48,7 +48,7 @@ type ( @@ -48,7 +48,7 @@ type (
48 Name string `json:"name"` // 标签名称 48 Name string `json:"name"` // 标签名称
49 Category string `json:"category"` // 标签分类 49 Category string `json:"category"` // 标签分类
50 Remark string `json:"remark,optional"` // 备注 50 Remark string `json:"remark,optional"` // 备注
51 - Other string `json:"other"` 51 + Other string `json:"other,optional"`
52 } 52 }
53 53
54 TagCreateResponse { 54 TagCreateResponse {
@@ -65,7 +65,7 @@ type ( @@ -65,7 +65,7 @@ type (
65 Name string `json:"name"` // 标签名称 65 Name string `json:"name"` // 标签名称
66 Category string `json:"category"` // 标签分类 66 Category string `json:"category"` // 标签分类
67 Remark string `json:"remark,optional"` // 备注 67 Remark string `json:"remark,optional"` // 备注
68 - Other string `json:"other"` 68 + Other string `json:"other,optional"`
69 } 69 }
70 70
71 TagEditResponse { 71 TagEditResponse {
@@ -248,7 +248,7 @@ type ( @@ -248,7 +248,7 @@ type (
248 MiniArticleDraftGetMeResponse { 248 MiniArticleDraftGetMeResponse {
249 Id int64 `json:"id"` // 249 Id int64 `json:"id"` //
250 Template int `json:"template"` // 使用哪个模板进行编辑 0、无 1、演绎式 2、归纳式 250 Template int `json:"template"` // 使用哪个模板进行编辑 0、无 1、演绎式 2、归纳式
251 - Section []string `json:"Section"` // 填写的内容 251 + Section []string `json:"section"` // 填写的内容
252 Title string `json:"title"` // 标题 252 Title string `json:"title"` // 标题
253 Images []string `json:"images"` // 图片 253 Images []string `json:"images"` // 图片
254 WhoRead []int64 `json:"whoRead"` // 谁可以看 254 WhoRead []int64 `json:"whoRead"` // 谁可以看
@@ -356,6 +356,7 @@ type ( @@ -356,6 +356,7 @@ type (
356 CountRead int `json:"countRead"` // 浏览数量 356 CountRead int `json:"countRead"` // 浏览数量
357 Show int `json:"show"` // 评论的展示状态(0显示、1不显示) 357 Show int `json:"show"` // 评论的展示状态(0显示、1不显示)
358 Tags []ArticleTagItem `json:"tags"` //标签 358 Tags []ArticleTagItem `json:"tags"` //标签
  359 + TargetUser int `json:"targetUser"` //分发方式 [0分发给所有人、1分发给指定的人]
359 } 360 }
360 ) 361 )
361 362
@@ -229,7 +229,7 @@ type ( @@ -229,7 +229,7 @@ type (
229 Page int `json:"page"` 229 Page int `json:"page"`
230 Size int `json:"size"` 230 Size int `json:"size"`
231 ArticleId int64 `json:"articleId"` // 文章ID 231 ArticleId int64 `json:"articleId"` // 文章ID
232 - TopId int64 `json:"topId"` // 文章顶层ID 232 + TopId int64 `json:"topId,optional"` // 文章顶层ID
233 AuthorId int64 `json:"authorId,optional"` // 用户 233 AuthorId int64 `json:"authorId,optional"` // 用户
234 Show int `json:"show,optional"` // 显示状态 234 Show int `json:"show,optional"` // 显示状态
235 BeginTime int64 `json:"beginTime,optional"` // 开始时间 235 BeginTime int64 `json:"beginTime,optional"` // 开始时间
@@ -71,9 +71,9 @@ type ( @@ -71,9 +71,9 @@ type (
71 Id int64 `json:"id"` 71 Id int64 `json:"id"`
72 CompanyId int64 `json:"companyId,omitempty"` // 公司ID 72 CompanyId int64 `json:"companyId,omitempty"` // 公司ID
73 CompanyName string `json:"companyName,omitempty"` // 公司名称 73 CompanyName string `json:"companyName,omitempty"` // 公司名称
74 - Name string `json:"name,omitempty"` // 名称  
75 - Avatar string `json:"avatar,omitempty"` // 头像  
76 - Position string `json:"position,omitempty"` // 职位 74 + Name string `json:"name"` // 名称
  75 + Avatar string `json:"avatar"` // 头像
  76 + Position string `json:"position"` // 职位
77 } 77 }
78 78
79 79
@@ -71,7 +71,7 @@ service Core { @@ -71,7 +71,7 @@ service Core {
71 post /mini/user/unfollow (FollowRequest) 71 post /mini/user/unfollow (FollowRequest)
72 @doc "我点赞的文章或评论" 72 @doc "我点赞的文章或评论"
73 @handler miniMyLike 73 @handler miniMyLike
74 - post /user/mylike (MiniMyLikeRequest)returns (MiniMyLikeResponse) 74 + post /mini/user/mylike (MiniMyLikeRequest)returns (MiniMyLikeResponse)
75 } 75 }
76 76
77 type( 77 type(
@@ -183,9 +183,10 @@ type( @@ -183,9 +183,10 @@ type(
183 } 183 }
184 Department struct { 184 Department struct {
185 Id int64 `json:"id,omitempty"` // 部门ID 185 Id int64 `json:"id,omitempty"` // 部门ID
186 - CompanyId int64 `json:"companyId,omitempty"` // 公司ID  
187 - ParentId int64 `json:"parentId,omitempty"` // 父级ID  
188 - Name string `json:"name,omitempty"` // 部门名称 186 + CompanyId int64 `json:"companyId"` // 公司ID
  187 + ParentId int64 `json:"parentId"` // 父级ID
  188 + Name string `json:"name"` // 部门名称
  189 + UserIds []int64 `json:"userIds"` // 部门下的用户
189 } 190 }
190 UserSearchRequest{ 191 UserSearchRequest{
191 Page int `json:"page,optional"` 192 Page int `json:"page,optional"`
@@ -242,7 +242,7 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { @@ -242,7 +242,7 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
242 }, 242 },
243 { 243 {
244 Method: http.MethodPost, 244 Method: http.MethodPost,
245 - Path: "/user/mylike", 245 + Path: "/mini/user/mylike",
246 Handler: user.MiniMyLikeHandler(serverCtx), 246 Handler: user.MiniMyLikeHandler(serverCtx),
247 }, 247 },
248 }, 248 },
@@ -51,6 +51,8 @@ func (l *MiniArticleMarkUserReadLogic) MiniArticleMarkUserRead(req *types.MiniAr @@ -51,6 +51,8 @@ func (l *MiniArticleMarkUserReadLogic) MiniArticleMarkUserRead(req *types.MiniAr
51 return nil, xerr.NewErrMsgErr("标记浏览记录失败", err) 51 return nil, xerr.NewErrMsgErr("标记浏览记录失败", err)
52 } 52 }
53 if len(markRecord) > 0 { 53 if len(markRecord) > 0 {
  54 + markRecord[0].Author = articleData.Author
  55 + markRecord[0].Title = articleData.Title
54 _, err = l.svcCtx.UserReadArticleRepository.Update(l.ctx, conn, markRecord[0]) 56 _, err = l.svcCtx.UserReadArticleRepository.Update(l.ctx, conn, markRecord[0])
55 if err != nil { 57 if err != nil {
56 return nil, xerr.NewErrMsgErr("标记浏览记录失败", err) 58 return nil, xerr.NewErrMsgErr("标记浏览记录失败", err)
@@ -170,11 +170,11 @@ func (l *MiniCreateArticleLogic) MiniCreateArticle(req *types.MiniArticleCreateR @@ -170,11 +170,11 @@ func (l *MiniCreateArticleLogic) MiniCreateArticle(req *types.MiniArticleCreateR
170 } 170 }
171 //设置内容概要 171 //设置内容概要
172 if len(sectionList) > 0 { 172 if len(sectionList) > 0 {
173 - // 截取内容 30个字 173 + // 截取内容 50个字
174 runeNumber := 0 //字数 174 runeNumber := 0 //字数
175 stringIndex := 0 //字符串长度 175 stringIndex := 0 //字符串长度
176 for i := range sectionList[0].Content { 176 for i := range sectionList[0].Content {
177 - if runeNumber > 30 { 177 + if runeNumber > 50 {
178 break 178 break
179 } 179 }
180 runeNumber += 1 180 runeNumber += 1
@@ -47,11 +47,12 @@ func (l *MiniSearchArticleDraftMeLogic) MiniSearchArticleDraftMe(req *types.Mini @@ -47,11 +47,12 @@ func (l *MiniSearchArticleDraftMeLogic) MiniSearchArticleDraftMe(req *types.Mini
47 images = append(images, val.Url) 47 images = append(images, val.Url)
48 } 48 }
49 resp.List[i] = types.MiniArticleDraftItem{ 49 resp.List[i] = types.MiniArticleDraftItem{
50 - Id: draftList[i].Id,  
51 - Template: draftList[i].Template,  
52 - Section: draftList[i].Content,  
53 - Title: draftList[i].Title,  
54 - Images: images, 50 + Id: draftList[i].Id,
  51 + Template: draftList[i].Template,
  52 + Section: draftList[i].Content,
  53 + Title: draftList[i].Title,
  54 + Images: images,
  55 + CreatedAt: draftList[i].CreatedAt,
55 } 56 }
56 } 57 }
57 return resp, nil 58 return resp, nil
@@ -65,6 +65,7 @@ func (l *SystemGetArticleLogic) SystemGetArticle(req *types.SystemArticleGetRequ @@ -65,6 +65,7 @@ func (l *SystemGetArticleLogic) SystemGetArticle(req *types.SystemArticleGetRequ
65 CountRead: article.CountRead, 65 CountRead: article.CountRead,
66 Show: int(article.Show), 66 Show: int(article.Show),
67 Tags: make([]types.ArticleTagItem, 0), 67 Tags: make([]types.ArticleTagItem, 0),
  68 + TargetUser: int(article.TargetUser),
68 } 69 }
69 //标签 70 //标签
70 if len(article.Tags) > 0 { 71 if len(article.Tags) > 0 {
@@ -4,6 +4,8 @@ import ( @@ -4,6 +4,8 @@ import (
4 "context" 4 "context"
5 "strconv" 5 "strconv"
6 6
  7 + "strings"
  8 +
7 "github.com/samber/lo" 9 "github.com/samber/lo"
8 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/interanl/pkg/db/transaction" 10 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/interanl/pkg/db/transaction"
9 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/interanl/pkg/domain" 11 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/interanl/pkg/domain"
@@ -11,7 +13,6 @@ import ( @@ -11,7 +13,6 @@ import (
11 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/contextdata" 13 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/contextdata"
12 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/tool/oss" 14 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/tool/oss"
13 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/xerr" 15 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/xerr"
14 - "strings"  
15 16
16 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc" 17 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc"
17 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types" 18 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types"
@@ -147,11 +148,11 @@ func (l *SystemUpdateArticleLogic) SystemUpdateArticle(req *types.SystemArticleU @@ -147,11 +148,11 @@ func (l *SystemUpdateArticleLogic) SystemUpdateArticle(req *types.SystemArticleU
147 }) 148 })
148 //设置内容概要 149 //设置内容概要
149 if len(req.Section) > 0 { 150 if len(req.Section) > 0 {
150 - // 截取内容 30个字 151 + // 截取内容 50个字
151 runeNumber := 0 //字数 152 runeNumber := 0 //字数
152 stringIndex := 0 //字符串长度 153 stringIndex := 0 //字符串长度
153 for i := range req.Section[0].Content { 154 for i := range req.Section[0].Content {
154 - if runeNumber > 30 { 155 + if runeNumber > 50 {
155 break 156 break
156 } 157 }
157 runeNumber += 1 158 runeNumber += 1
@@ -57,6 +57,7 @@ func (l *SystemAddLogic) SystemAdd(req *types.DepartmentAddRequest) (resp *types @@ -57,6 +57,7 @@ func (l *SystemAddLogic) SystemAdd(req *types.DepartmentAddRequest) (resp *types
57 if len(req.Ids) > 0 { 57 if len(req.Ids) > 0 {
58 _, users, err := l.svcCtx.UserRepository.Find(l.ctx, conn, domain.NewQueryOptions(). 58 _, users, err := l.svcCtx.UserRepository.Find(l.ctx, conn, domain.NewQueryOptions().
59 WithOffsetLimit(1, len(req.Ids)).WithFindOnly(). 59 WithOffsetLimit(1, len(req.Ids)).WithFindOnly().
  60 + WithKV("ids", req.Ids).
60 WithKV("companyId", userToken.CompanyId)) 61 WithKV("companyId", userToken.CompanyId))
61 if err != nil { 62 if err != nil {
62 return err 63 return err
@@ -4,6 +4,8 @@ import ( @@ -4,6 +4,8 @@ import (
4 "context" 4 "context"
5 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc" 5 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc"
6 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types" 6 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types"
  7 + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/interanl/pkg/domain"
  8 + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/contextdata"
7 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/xerr" 9 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/xerr"
8 10
9 "github.com/zeromicro/go-zero/core/logx" 11 "github.com/zeromicro/go-zero/core/logx"
@@ -24,17 +26,32 @@ func NewSystemGetLogic(ctx context.Context, svcCtx *svc.ServiceContext) *SystemG @@ -24,17 +26,32 @@ func NewSystemGetLogic(ctx context.Context, svcCtx *svc.ServiceContext) *SystemG
24 } 26 }
25 27
26 func (l *SystemGetLogic) SystemGet(req *types.DepartmentGetRequest) (resp *types.DepartmentGetResponse, err error) { 28 func (l *SystemGetLogic) SystemGet(req *types.DepartmentGetRequest) (resp *types.DepartmentGetResponse, err error) {
  29 + var userToken = contextdata.GetUserTokenFromCtx(l.ctx)
27 var conn = l.svcCtx.DefaultDBConn() 30 var conn = l.svcCtx.DefaultDBConn()
28 department, err := l.svcCtx.DepartmentRepository.FindOne(l.ctx, conn, req.Id) 31 department, err := l.svcCtx.DepartmentRepository.FindOne(l.ctx, conn, req.Id)
29 if err != nil { 32 if err != nil {
30 return nil, xerr.NewErrMsg("数据不存在") 33 return nil, xerr.NewErrMsg("数据不存在")
31 } 34 }
  35 +
  36 + // 部门下的用户
  37 + _, users, err := l.svcCtx.UserRepository.Find(l.ctx, conn, domain.NewQueryOptions().WithFindOnly().
  38 + WithKV("companyId", userToken.CompanyId).
  39 + WithKV("auditStatus", domain.UserAuditStatusPassed).
  40 + WithKV("departmentId", department.Id))
  41 + if err != nil {
  42 + return nil, err
  43 + }
  44 + ids := make([]int64, 0)
  45 + for i := range users {
  46 + ids = append(ids, users[i].Id)
  47 + }
32 resp = &types.DepartmentGetResponse{ 48 resp = &types.DepartmentGetResponse{
33 Department: types.Department{ 49 Department: types.Department{
34 Id: department.Id, 50 Id: department.Id,
35 CompanyId: department.CompanyId, 51 CompanyId: department.CompanyId,
36 ParentId: department.ParentId, 52 ParentId: department.ParentId,
37 Name: department.Name, 53 Name: department.Name,
  54 + UserIds: ids,
38 }, 55 },
39 } 56 }
40 return resp, nil 57 return resp, nil
@@ -43,10 +43,7 @@ func (l *CreateTagLogic) CreateTag(req *types.TagCreateRequest) (resp *types.Tag @@ -43,10 +43,7 @@ func (l *CreateTagLogic) CreateTag(req *types.TagCreateRequest) (resp *types.Tag
43 if cnt > 0 { 43 if cnt > 0 {
44 return nil, xerr.NewErrMsg(fmt.Sprintf("已存在标签 分类[%s]名称[%s]", req.Category, req.Name)) 44 return nil, xerr.NewErrMsg(fmt.Sprintf("已存在标签 分类[%s]名称[%s]", req.Category, req.Name))
45 } 45 }
46 - //获取图片的尺寸大小  
47 - fInfo, _ := oss.GetImageInfo(req.Image)  
48 - w, _ := strconv.Atoi(fInfo.ImageWidth.Value)  
49 - h, _ := strconv.Atoi(fInfo.ImageHeight.Value) 46 +
50 newTag := &domain.ArticleTag{ 47 newTag := &domain.ArticleTag{
51 Id: 0, 48 Id: 0,
52 CompanyId: req.CompanyId, 49 CompanyId: req.CompanyId,
@@ -54,17 +51,23 @@ func (l *CreateTagLogic) CreateTag(req *types.TagCreateRequest) (resp *types.Tag @@ -54,17 +51,23 @@ func (l *CreateTagLogic) CreateTag(req *types.TagCreateRequest) (resp *types.Tag
54 UpdatedAt: 0, 51 UpdatedAt: 0,
55 DeletedAt: 0, 52 DeletedAt: 0,
56 Version: 0, 53 Version: 0,
57 - Image: domain.Image{ 54 + Image: domain.Image{},
  55 + Name: req.Name,
  56 + Category: req.Category,
  57 + Remark: req.Remark,
  58 + Other: req.Other,
  59 + }
  60 + if len(req.Image) > 0 {
  61 + //获取图片的尺寸大小
  62 + fInfo, _ := oss.GetImageInfo(req.Image)
  63 + w, _ := strconv.Atoi(fInfo.ImageWidth.Value)
  64 + h, _ := strconv.Atoi(fInfo.ImageHeight.Value)
  65 + newTag.Image = domain.Image{
58 Url: req.Image, 66 Url: req.Image,
59 Width: w, 67 Width: w,
60 Height: h, 68 Height: h,
61 - },  
62 - Name: req.Name,  
63 - Category: req.Category,  
64 - Remark: req.Remark,  
65 - Other: req.Other, 69 + }
66 } 70 }
67 -  
68 newTag, err = l.svcCtx.ArticleTagRepository.Insert(l.ctx, conn, newTag) 71 newTag, err = l.svcCtx.ArticleTagRepository.Insert(l.ctx, conn, newTag)
69 if err != nil { 72 if err != nil {
70 return nil, xerr.NewErrMsgErr("添加标签失败", err) 73 return nil, xerr.NewErrMsgErr("添加标签失败", err)
@@ -54,16 +54,19 @@ func (l *EditTagLogic) EditTag(req *types.TagEditRequest) (resp *types.TagEditRe @@ -54,16 +54,19 @@ func (l *EditTagLogic) EditTag(req *types.TagEditRequest) (resp *types.TagEditRe
54 if oldTag.CompanyId != req.CompanyId { 54 if oldTag.CompanyId != req.CompanyId {
55 return nil, xerr.NewErrMsg("修改标签失败") 55 return nil, xerr.NewErrMsg("修改标签失败")
56 } 56 }
57 - //获取图片的尺寸大小  
58 - fInfo, _ := oss.GetImageInfo(req.Image)  
59 - w, _ := strconv.Atoi(fInfo.ImageWidth.Value)  
60 - h, _ := strconv.Atoi(fInfo.ImageHeight.Value)  
61 - oldTag.Category = req.Category  
62 - oldTag.Image = domain.Image{  
63 - Url: req.Image,  
64 - Width: w,  
65 - Height: h, 57 + oldTag.Image = domain.Image{}
  58 + if len(req.Image) > 0 {
  59 + // 获取图片的尺寸大小
  60 + fInfo, _ := oss.GetImageInfo(req.Image)
  61 + w, _ := strconv.Atoi(fInfo.ImageWidth.Value)
  62 + h, _ := strconv.Atoi(fInfo.ImageHeight.Value)
  63 + oldTag.Image = domain.Image{
  64 + Url: req.Image,
  65 + Width: w,
  66 + Height: h,
  67 + }
66 } 68 }
  69 + oldTag.Category = req.Category
67 oldTag.Name = req.Name 70 oldTag.Name = req.Name
68 oldTag.Remark = req.Remark 71 oldTag.Remark = req.Remark
69 oldTag.Other = req.Other 72 oldTag.Other = req.Other
@@ -28,10 +28,10 @@ func (l *SearchTagLogic) SearchTag(req *types.TagListRequest) (resp *types.TagLi @@ -28,10 +28,10 @@ func (l *SearchTagLogic) SearchTag(req *types.TagListRequest) (resp *types.TagLi
28 queryOptions := domain.NewQueryOptions().WithOffsetLimit(req.Page, req.Size) 28 queryOptions := domain.NewQueryOptions().WithOffsetLimit(req.Page, req.Size)
29 29
30 if len(req.Category) > 0 { 30 if len(req.Category) > 0 {
31 - queryOptions = queryOptions.MustWithKV("group", req.Category) 31 + queryOptions = queryOptions.MustWithKV("group", "%"+req.Category+"%")
32 } 32 }
33 if len(req.TagName) > 0 { 33 if len(req.TagName) > 0 {
34 - queryOptions = queryOptions.MustWithKV("name", req.TagName) 34 + queryOptions = queryOptions.MustWithKV("name", "%"+req.TagName+"%")
35 } 35 }
36 36
37 if len(req.Remark) > 0 { 37 if len(req.Remark) > 0 {
@@ -140,7 +140,7 @@ type SystemArticleCommentSearchRequest struct { @@ -140,7 +140,7 @@ type SystemArticleCommentSearchRequest struct {
140 Page int `json:"page"` 140 Page int `json:"page"`
141 Size int `json:"size"` 141 Size int `json:"size"`
142 ArticleId int64 `json:"articleId"` // 文章ID 142 ArticleId int64 `json:"articleId"` // 文章ID
143 - TopId int64 `json:"topId"` // 文章顶层ID 143 + TopId int64 `json:"topId,optional"` // 文章顶层ID
144 AuthorId int64 `json:"authorId,optional"` // 用户 144 AuthorId int64 `json:"authorId,optional"` // 用户
145 Show int `json:"show,optional"` // 显示状态 145 Show int `json:"show,optional"` // 显示状态
146 BeginTime int64 `json:"beginTime,optional"` // 开始时间 146 BeginTime int64 `json:"beginTime,optional"` // 开始时间
@@ -296,9 +296,9 @@ type SimpleUser struct { @@ -296,9 +296,9 @@ type SimpleUser struct {
296 Id int64 `json:"id"` 296 Id int64 `json:"id"`
297 CompanyId int64 `json:"companyId,omitempty"` // 公司ID 297 CompanyId int64 `json:"companyId,omitempty"` // 公司ID
298 CompanyName string `json:"companyName,omitempty"` // 公司名称 298 CompanyName string `json:"companyName,omitempty"` // 公司名称
299 - Name string `json:"name,omitempty"` // 名称  
300 - Avatar string `json:"avatar,omitempty"` // 头像  
301 - Position string `json:"position,omitempty"` // 职位 299 + Name string `json:"name"` // 名称
  300 + Avatar string `json:"avatar"` // 头像
  301 + Position string `json:"position"` // 职位
302 } 302 }
303 303
304 type SimpleArticle struct { 304 type SimpleArticle struct {
@@ -316,7 +316,7 @@ type TagCreateRequest struct { @@ -316,7 +316,7 @@ type TagCreateRequest struct {
316 Name string `json:"name"` // 标签名称 316 Name string `json:"name"` // 标签名称
317 Category string `json:"category"` // 标签分类 317 Category string `json:"category"` // 标签分类
318 Remark string `json:"remark,optional"` // 备注 318 Remark string `json:"remark,optional"` // 备注
319 - Other string `json:"other"` 319 + Other string `json:"other,optional"`
320 } 320 }
321 321
322 type TagCreateResponse struct { 322 type TagCreateResponse struct {
@@ -330,7 +330,7 @@ type TagEditRequest struct { @@ -330,7 +330,7 @@ type TagEditRequest struct {
330 Name string `json:"name"` // 标签名称 330 Name string `json:"name"` // 标签名称
331 Category string `json:"category"` // 标签分类 331 Category string `json:"category"` // 标签分类
332 Remark string `json:"remark,optional"` // 备注 332 Remark string `json:"remark,optional"` // 备注
333 - Other string `json:"other"` 333 + Other string `json:"other,optional"`
334 } 334 }
335 335
336 type TagEditResponse struct { 336 type TagEditResponse struct {
@@ -519,10 +519,11 @@ type Account struct { @@ -519,10 +519,11 @@ type Account struct {
519 } 519 }
520 520
521 type Department struct { 521 type Department struct {
522 - Id int64 `json:"id,omitempty"` // 部门ID  
523 - CompanyId int64 `json:"companyId,omitempty"` // 公司ID  
524 - ParentId int64 `json:"parentId,omitempty"` // 父级ID  
525 - Name string `json:"name,omitempty"` // 部门名称 522 + Id int64 `json:"id,omitempty"` // 部门ID
  523 + CompanyId int64 `json:"companyId"` // 公司ID
  524 + ParentId int64 `json:"parentId"` // 父级ID
  525 + Name string `json:"name"` // 部门名称
  526 + UserIds []int64 `json:"userIds"` // 部门下的用户
526 } 527 }
527 528
528 type UserSearchRequest struct { 529 type UserSearchRequest struct {
@@ -949,7 +950,7 @@ type MiniArticleDraftGetMeRequest struct { @@ -949,7 +950,7 @@ type MiniArticleDraftGetMeRequest struct {
949 type MiniArticleDraftGetMeResponse struct { 950 type MiniArticleDraftGetMeResponse struct {
950 Id int64 `json:"id"` // 951 Id int64 `json:"id"` //
951 Template int `json:"template"` // 使用哪个模板进行编辑 0、无 1、演绎式 2、归纳式 952 Template int `json:"template"` // 使用哪个模板进行编辑 0、无 1、演绎式 2、归纳式
952 - Section []string `json:"Section"` // 填写的内容 953 + Section []string `json:"section"` // 填写的内容
953 Title string `json:"title"` // 标题 954 Title string `json:"title"` // 标题
954 Images []string `json:"images"` // 图片 955 Images []string `json:"images"` // 图片
955 WhoRead []int64 `json:"whoRead"` // 谁可以看 956 WhoRead []int64 `json:"whoRead"` // 谁可以看
@@ -1047,6 +1048,7 @@ type SystemArticleGetResponse struct { @@ -1047,6 +1048,7 @@ type SystemArticleGetResponse struct {
1047 CountRead int `json:"countRead"` // 浏览数量 1048 CountRead int `json:"countRead"` // 浏览数量
1048 Show int `json:"show"` // 评论的展示状态(0显示、1不显示) 1049 Show int `json:"show"` // 评论的展示状态(0显示、1不显示)
1049 Tags []ArticleTagItem `json:"tags"` //标签 1050 Tags []ArticleTagItem `json:"tags"` //标签
  1051 + TargetUser int `json:"targetUser"` //分发方式 [0分发给所有人、1分发给指定的人]
1050 } 1052 }
1051 1053
1052 type SystemArticleSearchRequest struct { 1054 type SystemArticleSearchRequest struct {
@@ -136,7 +136,9 @@ func (repository *ArticleRepository) Find(ctx context.Context, conn transaction. @@ -136,7 +136,9 @@ func (repository *ArticleRepository) Find(ctx context.Context, conn transaction.
136 if v, ok := queryOptions["endCreatedAt"]; ok { 136 if v, ok := queryOptions["endCreatedAt"]; ok {
137 tx = tx.Where("created_at < ?", v) 137 tx = tx.Where("created_at < ?", v)
138 } 138 }
139 - 139 + if v, ok := queryOptions["authorId"]; ok {
  140 + tx = tx.Where("author_id=?", v)
  141 + }
140 if total, tx = transaction.PaginationAndCount(ctx, tx, queryOptions, &ms); tx.Error != nil { 142 if total, tx = transaction.PaginationAndCount(ctx, tx, queryOptions, &ms); tx.Error != nil {
141 return dms, tx.Error 143 return dms, tx.Error
142 } 144 }
@@ -155,7 +155,9 @@ func (repository *ArticleTagRepository) Find(ctx context.Context, conn transacti @@ -155,7 +155,9 @@ func (repository *ArticleTagRepository) Find(ctx context.Context, conn transacti
155 if v, ok := queryOptions["ids"]; ok { 155 if v, ok := queryOptions["ids"]; ok {
156 tx = tx.Where("id in (?)", v) 156 tx = tx.Where("id in (?)", v)
157 } 157 }
158 - 158 + if v, ok := queryOptions["remark"]; ok {
  159 + tx = tx.Where("remark like ?", v)
  160 + }
159 if total, tx = transaction.PaginationAndCount(ctx, tx, queryOptions, &ms); tx.Error != nil { 161 if total, tx = transaction.PaginationAndCount(ctx, tx, queryOptions, &ms); tx.Error != nil {
160 return dms, tx.Error 162 return dms, tx.Error
161 } 163 }