Merge branch 'dev' of http://gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss into dev
正在显示
12 个修改的文件
包含
762 行增加
和
45 行删除
@@ -723,6 +723,24 @@ | @@ -723,6 +723,24 @@ | ||
723 | ] | 723 | ] |
724 | } | 724 | } |
725 | }, | 725 | }, |
726 | + "v1/mini/show/home_page": { | ||
727 | + "get": { | ||
728 | + "summary": "小程序首页数据展示", | ||
729 | + "operationId": "MiniShowHomePage", | ||
730 | + "responses": { | ||
731 | + "200": { | ||
732 | + "description": "A successful response.", | ||
733 | + "schema": { | ||
734 | + "$ref": "#/definitions/MiniHomePageRespose" | ||
735 | + } | ||
736 | + } | ||
737 | + }, | ||
738 | + "requestBody": {}, | ||
739 | + "tags": [ | ||
740 | + "article" | ||
741 | + ] | ||
742 | + } | ||
743 | + }, | ||
726 | "v1/mini/user/apply-join-company": { | 744 | "v1/mini/user/apply-join-company": { |
727 | "post": { | 745 | "post": { |
728 | "summary": "用户申请加入公司", | 746 | "summary": "用户申请加入公司", |
@@ -1361,6 +1379,34 @@ | @@ -1361,6 +1379,34 @@ | ||
1361 | ] | 1379 | ] |
1362 | } | 1380 | } |
1363 | }, | 1381 | }, |
1382 | + "v1/system/article_comment/search": { | ||
1383 | + "post": { | ||
1384 | + "summary": "管理后台文章评论列表", | ||
1385 | + "operationId": "SystemArticleCommentSearch", | ||
1386 | + "responses": { | ||
1387 | + "200": { | ||
1388 | + "description": "A successful response.", | ||
1389 | + "schema": { | ||
1390 | + "$ref": "#/definitions/SystemArticleCommentSearchResponse" | ||
1391 | + } | ||
1392 | + } | ||
1393 | + }, | ||
1394 | + "parameters": [ | ||
1395 | + { | ||
1396 | + "name": "body", | ||
1397 | + "in": "body", | ||
1398 | + "required": true, | ||
1399 | + "schema": { | ||
1400 | + "$ref": "#/definitions/SystemArticleCommentSearchRequest" | ||
1401 | + } | ||
1402 | + } | ||
1403 | + ], | ||
1404 | + "requestBody": {}, | ||
1405 | + "tags": [ | ||
1406 | + "comment" | ||
1407 | + ] | ||
1408 | + } | ||
1409 | + }, | ||
1364 | "v1/system/article_comment/search/me": { | 1410 | "v1/system/article_comment/search/me": { |
1365 | "post": { | 1411 | "post": { |
1366 | "summary": "小程序获取回复@人可选列表", | 1412 | "summary": "小程序获取回复@人可选列表", |
@@ -1443,6 +1489,24 @@ | @@ -1443,6 +1489,24 @@ | ||
1443 | ] | 1489 | ] |
1444 | } | 1490 | } |
1445 | }, | 1491 | }, |
1492 | + "v1/system/article_tag/options": { | ||
1493 | + "get": { | ||
1494 | + "summary": "后台标签下拉列表", | ||
1495 | + "operationId": "Options", | ||
1496 | + "responses": { | ||
1497 | + "200": { | ||
1498 | + "description": "A successful response.", | ||
1499 | + "schema": { | ||
1500 | + "$ref": "#/definitions/TagOptionsResponse" | ||
1501 | + } | ||
1502 | + } | ||
1503 | + }, | ||
1504 | + "requestBody": {}, | ||
1505 | + "tags": [ | ||
1506 | + "tags" | ||
1507 | + ] | ||
1508 | + } | ||
1509 | + }, | ||
1446 | "v1/system/article_tag/search": { | 1510 | "v1/system/article_tag/search": { |
1447 | "post": { | 1511 | "post": { |
1448 | "summary": "后台搜索标签", | 1512 | "summary": "后台搜索标签", |
@@ -2308,6 +2372,52 @@ | @@ -2308,6 +2372,52 @@ | ||
2308 | "totalComment" | 2372 | "totalComment" |
2309 | ] | 2373 | ] |
2310 | }, | 2374 | }, |
2375 | + "ArticleTagCount": { | ||
2376 | + "type": "object", | ||
2377 | + "properties": { | ||
2378 | + "tagGroup": { | ||
2379 | + "type": "string", | ||
2380 | + "description": " 标签分组" | ||
2381 | + }, | ||
2382 | + "tagId": { | ||
2383 | + "type": "integer", | ||
2384 | + "format": "int64", | ||
2385 | + "description": " 标签id" | ||
2386 | + }, | ||
2387 | + "tagImage": { | ||
2388 | + "type": "string", | ||
2389 | + "description": " 对应的图标" | ||
2390 | + }, | ||
2391 | + "tagName": { | ||
2392 | + "type": "string", | ||
2393 | + "description": " 标签名称" | ||
2394 | + }, | ||
2395 | + "tagRemark": { | ||
2396 | + "type": "string", | ||
2397 | + "description": " 标签备注" | ||
2398 | + }, | ||
2399 | + "totalArticle": { | ||
2400 | + "type": "integer", | ||
2401 | + "format": "int32", | ||
2402 | + "description": " 总的文章数量" | ||
2403 | + }, | ||
2404 | + "readArticle": { | ||
2405 | + "type": "integer", | ||
2406 | + "format": "int32", | ||
2407 | + "description": " 已读的标签数量" | ||
2408 | + } | ||
2409 | + }, | ||
2410 | + "title": "ArticleTagCount", | ||
2411 | + "required": [ | ||
2412 | + "tagGroup", | ||
2413 | + "tagId", | ||
2414 | + "tagImage", | ||
2415 | + "tagName", | ||
2416 | + "tagRemark", | ||
2417 | + "totalArticle", | ||
2418 | + "readArticle" | ||
2419 | + ] | ||
2420 | + }, | ||
2311 | "ArticleTagGroup": { | 2421 | "ArticleTagGroup": { |
2312 | "type": "object", | 2422 | "type": "object", |
2313 | "properties": { | 2423 | "properties": { |
@@ -4033,6 +4143,35 @@ | @@ -4033,6 +4143,35 @@ | ||
4033 | }, | 4143 | }, |
4034 | "title": "MiniGetArticleCommentResponse" | 4144 | "title": "MiniGetArticleCommentResponse" |
4035 | }, | 4145 | }, |
4146 | + "MiniHomePageRequest": { | ||
4147 | + "type": "object", | ||
4148 | + "properties": { | ||
4149 | + "": { | ||
4150 | + "type": "integer", | ||
4151 | + "format": "int64" | ||
4152 | + }, | ||
4153 | + "": { | ||
4154 | + "type": "integer", | ||
4155 | + "format": "int64" | ||
4156 | + } | ||
4157 | + }, | ||
4158 | + "title": "MiniHomePageRequest" | ||
4159 | + }, | ||
4160 | + "MiniHomePageRespose": { | ||
4161 | + "type": "object", | ||
4162 | + "properties": { | ||
4163 | + "tags": { | ||
4164 | + "type": "array", | ||
4165 | + "items": { | ||
4166 | + "$ref": "#/definitions/ArticleTagCount" | ||
4167 | + } | ||
4168 | + } | ||
4169 | + }, | ||
4170 | + "title": "MiniHomePageRespose", | ||
4171 | + "required": [ | ||
4172 | + "tags" | ||
4173 | + ] | ||
4174 | + }, | ||
4036 | "MiniListArticleCommentRequest": { | 4175 | "MiniListArticleCommentRequest": { |
4037 | "type": "object", | 4176 | "type": "object", |
4038 | "properties": { | 4177 | "properties": { |
@@ -4330,21 +4469,6 @@ | @@ -4330,21 +4469,6 @@ | ||
4330 | "$ref": "#/definitions/UserItem", | 4469 | "$ref": "#/definitions/UserItem", |
4331 | "description": " 用户信息" | 4470 | "description": " 用户信息" |
4332 | }, | 4471 | }, |
4333 | - "totalArticle": { | ||
4334 | - "type": "integer", | ||
4335 | - "format": "int64", | ||
4336 | - "description": " 累计信息发布" | ||
4337 | - }, | ||
4338 | - "totalLoved": { | ||
4339 | - "type": "integer", | ||
4340 | - "format": "int64", | ||
4341 | - "description": " 累计收到的赞" | ||
4342 | - }, | ||
4343 | - "totalAccepted": { | ||
4344 | - "type": "integer", | ||
4345 | - "format": "int64", | ||
4346 | - "description": " 累计被采纳" | ||
4347 | - }, | ||
4348 | "accounts": { | 4472 | "accounts": { |
4349 | "type": "array", | 4473 | "type": "array", |
4350 | "items": { | 4474 | "items": { |
@@ -4363,9 +4487,6 @@ | @@ -4363,9 +4487,6 @@ | ||
4363 | "title": "MiniUserInfoResponse", | 4487 | "title": "MiniUserInfoResponse", |
4364 | "required": [ | 4488 | "required": [ |
4365 | "user", | 4489 | "user", |
4366 | - "totalArticle", | ||
4367 | - "totalLoved", | ||
4368 | - "totalAccepted", | ||
4369 | "accounts", | 4490 | "accounts", |
4370 | "auths" | 4491 | "auths" |
4371 | ] | 4492 | ] |
@@ -4891,6 +5012,87 @@ | @@ -4891,6 +5012,87 @@ | ||
4891 | "value" | 5012 | "value" |
4892 | ] | 5013 | ] |
4893 | }, | 5014 | }, |
5015 | + "SystemArticleCommentSearchItem": { | ||
5016 | + "type": "object", | ||
5017 | + "properties": { | ||
5018 | + "id": { | ||
5019 | + "type": "integer", | ||
5020 | + "format": "int64" | ||
5021 | + }, | ||
5022 | + "pid": { | ||
5023 | + "type": "integer", | ||
5024 | + "format": "int64" | ||
5025 | + }, | ||
5026 | + "topId": { | ||
5027 | + "type": "integer", | ||
5028 | + "format": "int64" | ||
5029 | + }, | ||
5030 | + "articleId": { | ||
5031 | + "type": "integer", | ||
5032 | + "format": "int64", | ||
5033 | + "description": " 文章id" | ||
5034 | + }, | ||
5035 | + "sectionId": { | ||
5036 | + "type": "integer", | ||
5037 | + "format": "int64", | ||
5038 | + "description": " 段落id" | ||
5039 | + }, | ||
5040 | + "fromUserId": { | ||
5041 | + "type": "integer", | ||
5042 | + "format": "int64", | ||
5043 | + "description": " 填写评论的人" | ||
5044 | + }, | ||
5045 | + "fromUser": { | ||
5046 | + "$ref": "#/definitions/CommentAuthor", | ||
5047 | + "description": " 填写评论的人" | ||
5048 | + }, | ||
5049 | + "countReply": { | ||
5050 | + "type": "integer", | ||
5051 | + "format": "int32", | ||
5052 | + "description": " 回复数量" | ||
5053 | + }, | ||
5054 | + "countUserLove": { | ||
5055 | + "type": "integer", | ||
5056 | + "format": "int32", | ||
5057 | + "description": " 用户点赞数量" | ||
5058 | + }, | ||
5059 | + "countAdminLove": { | ||
5060 | + "type": "integer", | ||
5061 | + "format": "int32", | ||
5062 | + "description": " 运营点赞数量" | ||
5063 | + }, | ||
5064 | + "createdAt": { | ||
5065 | + "type": "integer", | ||
5066 | + "format": "int64", | ||
5067 | + "description": " 评论时间" | ||
5068 | + }, | ||
5069 | + "content": { | ||
5070 | + "type": "string", | ||
5071 | + "description": " 评论的内容" | ||
5072 | + }, | ||
5073 | + "show": { | ||
5074 | + "type": "integer", | ||
5075 | + "format": "int32", | ||
5076 | + "description": " 显示状态" | ||
5077 | + } | ||
5078 | + }, | ||
5079 | + "title": "SystemArticleCommentSearchItem", | ||
5080 | + "required": [ | ||
5081 | + "id", | ||
5082 | + "pid", | ||
5083 | + "topId", | ||
5084 | + "articleId", | ||
5085 | + "sectionId", | ||
5086 | + "fromUserId", | ||
5087 | + "fromUser", | ||
5088 | + "countReply", | ||
5089 | + "countUserLove", | ||
5090 | + "countAdminLove", | ||
5091 | + "createdAt", | ||
5092 | + "content", | ||
5093 | + "show" | ||
5094 | + ] | ||
5095 | + }, | ||
4894 | "SystemArticleCommentSearchMeRequest": { | 5096 | "SystemArticleCommentSearchMeRequest": { |
4895 | "type": "object", | 5097 | "type": "object", |
4896 | "properties": { | 5098 | "properties": { |
@@ -4945,6 +5147,76 @@ | @@ -4945,6 +5147,76 @@ | ||
4945 | "total" | 5147 | "total" |
4946 | ] | 5148 | ] |
4947 | }, | 5149 | }, |
5150 | + "SystemArticleCommentSearchRequest": { | ||
5151 | + "type": "object", | ||
5152 | + "properties": { | ||
5153 | + "page": { | ||
5154 | + "type": "integer", | ||
5155 | + "format": "int32" | ||
5156 | + }, | ||
5157 | + "size": { | ||
5158 | + "type": "integer", | ||
5159 | + "format": "int32" | ||
5160 | + }, | ||
5161 | + "articleId": { | ||
5162 | + "type": "integer", | ||
5163 | + "format": "int64", | ||
5164 | + "description": " 文章ID" | ||
5165 | + }, | ||
5166 | + "topId": { | ||
5167 | + "type": "integer", | ||
5168 | + "format": "int64", | ||
5169 | + "description": " 文章顶层ID" | ||
5170 | + }, | ||
5171 | + "authorId": { | ||
5172 | + "type": "integer", | ||
5173 | + "format": "int64", | ||
5174 | + "description": " 用户" | ||
5175 | + }, | ||
5176 | + "show": { | ||
5177 | + "type": "integer", | ||
5178 | + "format": "int32", | ||
5179 | + "description": " 显示状态" | ||
5180 | + }, | ||
5181 | + "beginTime": { | ||
5182 | + "type": "integer", | ||
5183 | + "format": "int64", | ||
5184 | + "description": " 开始时间" | ||
5185 | + }, | ||
5186 | + "endTime": { | ||
5187 | + "type": "integer", | ||
5188 | + "format": "int64", | ||
5189 | + "description": " 结束时间" | ||
5190 | + } | ||
5191 | + }, | ||
5192 | + "title": "SystemArticleCommentSearchRequest", | ||
5193 | + "required": [ | ||
5194 | + "page", | ||
5195 | + "size", | ||
5196 | + "articleId", | ||
5197 | + "topId" | ||
5198 | + ] | ||
5199 | + }, | ||
5200 | + "SystemArticleCommentSearchResponse": { | ||
5201 | + "type": "object", | ||
5202 | + "properties": { | ||
5203 | + "total": { | ||
5204 | + "type": "integer", | ||
5205 | + "format": "int64" | ||
5206 | + }, | ||
5207 | + "list": { | ||
5208 | + "type": "array", | ||
5209 | + "items": { | ||
5210 | + "$ref": "#/definitions/SystemArticleCommentSearchItem" | ||
5211 | + } | ||
5212 | + } | ||
5213 | + }, | ||
5214 | + "title": "SystemArticleCommentSearchResponse", | ||
5215 | + "required": [ | ||
5216 | + "total", | ||
5217 | + "list" | ||
5218 | + ] | ||
5219 | + }, | ||
4948 | "SystemArticleGetHistoryRequest": { | 5220 | "SystemArticleGetHistoryRequest": { |
4949 | "type": "object", | 5221 | "type": "object", |
4950 | "properties": { | 5222 | "properties": { |
@@ -5578,14 +5850,10 @@ | @@ -5578,14 +5850,10 @@ | ||
5578 | }, | 5850 | }, |
5579 | "description": " 评论人" | 5851 | "description": " 评论人" |
5580 | }, | 5852 | }, |
5581 | - "location": { | ||
5582 | - "$ref": "#/definitions/Location", | ||
5583 | - "description": " 坐标" | ||
5584 | - }, | ||
5585 | "targetUser": { | 5853 | "targetUser": { |
5586 | "type": "integer", | 5854 | "type": "integer", |
5587 | "format": "int32", | 5855 | "format": "int32", |
5588 | - "description": "分发方式 [0分发给所有人、1分发给指定的人]" | 5856 | + "description": " 分发方式 [0分发给所有人、1分发给指定的人]" |
5589 | }, | 5857 | }, |
5590 | "tags": { | 5858 | "tags": { |
5591 | "type": "array", | 5859 | "type": "array", |
@@ -5594,6 +5862,10 @@ | @@ -5594,6 +5862,10 @@ | ||
5594 | "format": "int64" | 5862 | "format": "int64" |
5595 | }, | 5863 | }, |
5596 | "description": " 标签" | 5864 | "description": " 标签" |
5865 | + }, | ||
5866 | + "AccessToken": { | ||
5867 | + "type": "string", | ||
5868 | + "description": " 授权token" | ||
5597 | } | 5869 | } |
5598 | }, | 5870 | }, |
5599 | "title": "SystemArticleUpdateRequest", | 5871 | "title": "SystemArticleUpdateRequest", |
@@ -5605,9 +5877,9 @@ | @@ -5605,9 +5877,9 @@ | ||
5605 | "images", | 5877 | "images", |
5606 | "whoRead", | 5878 | "whoRead", |
5607 | "whoReview", | 5879 | "whoReview", |
5608 | - "location", | ||
5609 | "targetUser", | 5880 | "targetUser", |
5610 | - "tags" | 5881 | + "tags", |
5882 | + "x-mmm-accesstoken" | ||
5611 | ] | 5883 | ] |
5612 | }, | 5884 | }, |
5613 | "SystemArticleUpdateResponse": { | 5885 | "SystemArticleUpdateResponse": { |
@@ -5643,7 +5915,7 @@ | @@ -5643,7 +5915,7 @@ | ||
5643 | "format": "int32", | 5915 | "format": "int32", |
5644 | "description": "点赞数量" | 5916 | "description": "点赞数量" |
5645 | }, | 5917 | }, |
5646 | - "CountComment": { | 5918 | + "countComment": { |
5647 | "type": "integer", | 5919 | "type": "integer", |
5648 | "format": "int32", | 5920 | "format": "int32", |
5649 | "description": "评论数量" | 5921 | "description": "评论数量" |
@@ -5675,7 +5947,7 @@ | @@ -5675,7 +5947,7 @@ | ||
5675 | "images", | 5947 | "images", |
5676 | "createdAt", | 5948 | "createdAt", |
5677 | "countLove", | 5949 | "countLove", |
5678 | - "CountComment", | 5950 | + "countComment", |
5679 | "show", | 5951 | "show", |
5680 | "tags", | 5952 | "tags", |
5681 | "targetUser" | 5953 | "targetUser" |
@@ -6368,6 +6640,71 @@ | @@ -6368,6 +6640,71 @@ | ||
6368 | "list" | 6640 | "list" |
6369 | ] | 6641 | ] |
6370 | }, | 6642 | }, |
6643 | + "TagOptionValue": { | ||
6644 | + "type": "object", | ||
6645 | + "properties": { | ||
6646 | + "label": { | ||
6647 | + "type": "string", | ||
6648 | + "description": " 名称" | ||
6649 | + }, | ||
6650 | + "value": { | ||
6651 | + "type": "integer", | ||
6652 | + "format": "int64", | ||
6653 | + "description": " 标签ID" | ||
6654 | + } | ||
6655 | + }, | ||
6656 | + "title": "TagOptionValue", | ||
6657 | + "required": [ | ||
6658 | + "label", | ||
6659 | + "value" | ||
6660 | + ] | ||
6661 | + }, | ||
6662 | + "TagOptions": { | ||
6663 | + "type": "object", | ||
6664 | + "properties": { | ||
6665 | + "label": { | ||
6666 | + "type": "string", | ||
6667 | + "description": " 分组名称" | ||
6668 | + }, | ||
6669 | + "options": { | ||
6670 | + "type": "array", | ||
6671 | + "items": { | ||
6672 | + "$ref": "#/definitions/TagOptionValue" | ||
6673 | + } | ||
6674 | + } | ||
6675 | + }, | ||
6676 | + "title": "TagOptions", | ||
6677 | + "required": [ | ||
6678 | + "label", | ||
6679 | + "options" | ||
6680 | + ] | ||
6681 | + }, | ||
6682 | + "TagOptionsRequest": { | ||
6683 | + "type": "object", | ||
6684 | + "properties": { | ||
6685 | + "": { | ||
6686 | + "type": "integer", | ||
6687 | + "format": "int64", | ||
6688 | + "description": " 公司ID" | ||
6689 | + } | ||
6690 | + }, | ||
6691 | + "title": "TagOptionsRequest" | ||
6692 | + }, | ||
6693 | + "TagOptionsResponse": { | ||
6694 | + "type": "object", | ||
6695 | + "properties": { | ||
6696 | + "options": { | ||
6697 | + "type": "array", | ||
6698 | + "items": { | ||
6699 | + "$ref": "#/definitions/TagOptions" | ||
6700 | + } | ||
6701 | + } | ||
6702 | + }, | ||
6703 | + "title": "TagOptionsResponse", | ||
6704 | + "required": [ | ||
6705 | + "options" | ||
6706 | + ] | ||
6707 | + }, | ||
6371 | "UserFollowItem": { | 6708 | "UserFollowItem": { |
6372 | "type": "object", | 6709 | "type": "object", |
6373 | "properties": { | 6710 | "properties": { |
@@ -32,7 +32,11 @@ service Core { | @@ -32,7 +32,11 @@ service Core { | ||
32 | 32 | ||
33 | @doc "后台搜索标签" | 33 | @doc "后台搜索标签" |
34 | @handler SearchTag | 34 | @handler SearchTag |
35 | - post/article_tag/search (TagListRequest) returns (TagListResponse) | 35 | + post /article_tag/search (TagListRequest) returns (TagListResponse) |
36 | + | ||
37 | + @doc "后台标签下拉列表" | ||
38 | + @handler Options | ||
39 | + get /article_tag/options (TagOptionsRequest) returns (TagOptionsResponse) | ||
36 | } | 40 | } |
37 | 41 | ||
38 | // 创建标签 | 42 | // 创建标签 |
@@ -118,3 +122,21 @@ type ( | @@ -118,3 +122,21 @@ type ( | ||
118 | Id int64 `json:"id"` | 122 | Id int64 `json:"id"` |
119 | } | 123 | } |
120 | ) | 124 | ) |
125 | + | ||
126 | +//标签下拉列表 | ||
127 | +type ( | ||
128 | + TagOptionsRequest { | ||
129 | + CompanyId int64 `path:",optional"` // 公司ID | ||
130 | + } | ||
131 | + TagOptionsResponse { | ||
132 | + Options []TagOptions `json:"options"` | ||
133 | + } | ||
134 | + TagOptions { | ||
135 | + Label string `json:"label"` // 分组名称 | ||
136 | + Options []TagOptionValue `json:"options"` | ||
137 | + } | ||
138 | + TagOptionValue { | ||
139 | + Label string `json:"label"` // 名称 | ||
140 | + Value int64 `json:"value"` // 标签ID | ||
141 | + } | ||
142 | +) |
@@ -388,6 +388,9 @@ type ( | @@ -388,6 +388,9 @@ type ( | ||
388 | Tags []string `json:"tags"` //标签 | 388 | Tags []string `json:"tags"` //标签 |
389 | TargetUser int `json:"targetUser"` //分发方式 [0分发给所有人、1分发给指定的人] | 389 | TargetUser int `json:"targetUser"` //分发方式 [0分发给所有人、1分发给指定的人] |
390 | } | 390 | } |
391 | +) | ||
392 | +// 管理后台编辑文章 | ||
393 | +type ( | ||
391 | //编辑 | 394 | //编辑 |
392 | SystemArticleUpdateRequest { | 395 | SystemArticleUpdateRequest { |
393 | Id int64 `json:"id"` | 396 | Id int64 `json:"id"` |
@@ -398,7 +401,6 @@ type ( | @@ -398,7 +401,6 @@ type ( | ||
398 | Images []string `json:"images"` // 图片 | 401 | Images []string `json:"images"` // 图片 |
399 | WhoRead []int64 `json:"whoRead"` // 谁可以看 | 402 | WhoRead []int64 `json:"whoRead"` // 谁可以看 |
400 | WhoReview []int64 `json:"whoReview"` // 评论人 | 403 | WhoReview []int64 `json:"whoReview"` // 评论人 |
401 | - Location Location `json:"location"` // 坐标 | ||
402 | TargetUser int `json:"targetUser"` // 分发方式 [0分发给所有人、1分发给指定的人] | 404 | TargetUser int `json:"targetUser"` // 分发方式 [0分发给所有人、1分发给指定的人] |
403 | Tags []int64 `json:"tags"` // 标签 | 405 | Tags []int64 `json:"tags"` // 标签 |
404 | AccessToken string `header:"x-mmm-accesstoken"` // 授权token | 406 | AccessToken string `header:"x-mmm-accesstoken"` // 授权token |
@@ -415,6 +417,9 @@ type ( | @@ -415,6 +417,9 @@ type ( | ||
415 | Tags []int64 `json:"tags"` //标签 | 417 | Tags []int64 `json:"tags"` //标签 |
416 | TargetUser int `json:"targetUser"` //分发方式 [0分发给所有人、1分发给指定的人] | 418 | TargetUser int `json:"targetUser"` //分发方式 [0分发给所有人、1分发给指定的人] |
417 | } | 419 | } |
420 | +) | ||
421 | +// 管理后台编辑历史列表 | ||
422 | +type ( | ||
418 | //历史 | 423 | //历史 |
419 | SystemArticleHistoryRequest { | 424 | SystemArticleHistoryRequest { |
420 | ArticleId int64 `json:"articleId"` //文章ID | 425 | ArticleId int64 `json:"articleId"` //文章ID |
@@ -434,6 +439,9 @@ type ( | @@ -434,6 +439,9 @@ type ( | ||
434 | Action string `json:"action"` //编辑类型 | 439 | Action string `json:"action"` //编辑类型 |
435 | UpdatedAt int64 `json:"updatedAt"` //编辑时间 | 440 | UpdatedAt int64 `json:"updatedAt"` //编辑时间 |
436 | } | 441 | } |
442 | +) | ||
443 | +// 管理后台历史记录详情 | ||
444 | +type ( | ||
437 | SystemArticleGetHistoryRequest { | 445 | SystemArticleGetHistoryRequest { |
438 | Id int64 `path:"id"` //id | 446 | Id int64 `path:"id"` //id |
439 | CompanyId int64 `path:",optional"` | 447 | CompanyId int64 `path:",optional"` |
@@ -453,6 +461,9 @@ type ( | @@ -453,6 +461,9 @@ type ( | ||
453 | TargetUser int `json:"targetUser"` // 分发方式 [0分发给所有人、1分发给指定的人] | 461 | TargetUser int `json:"targetUser"` // 分发方式 [0分发给所有人、1分发给指定的人] |
454 | Tags []int64 `json:"tags"` // 标签 | 462 | Tags []int64 `json:"tags"` // 标签 |
455 | } | 463 | } |
464 | +) | ||
465 | +// 管理后台文章恢复 | ||
466 | +type ( | ||
456 | SystemArticleRestoreRequest { | 467 | SystemArticleRestoreRequest { |
457 | Id int64 `json:"id"` //ID | 468 | Id int64 `json:"id"` //ID |
458 | AccessToken string `header:"x-mmm-accesstoken"` // 授权token | 469 | AccessToken string `header:"x-mmm-accesstoken"` // 授权token |
@@ -15,7 +15,6 @@ info( | @@ -15,7 +15,6 @@ info( | ||
15 | jwt: MiniAuth | 15 | jwt: MiniAuth |
16 | ) | 16 | ) |
17 | service Core { | 17 | service Core { |
18 | - | ||
19 | @doc "小程序填写文章的评论" | 18 | @doc "小程序填写文章的评论" |
20 | @handler MiniCreateArticleComment | 19 | @handler MiniCreateArticleComment |
21 | post /article_comment (MiniCreateArticleCommentRequest) returns (MiniCreateArticleCommentResponse) | 20 | post /article_comment (MiniCreateArticleCommentRequest) returns (MiniCreateArticleCommentResponse) |
@@ -52,6 +51,11 @@ service Core { | @@ -52,6 +51,11 @@ service Core { | ||
52 | @doc "小程序获取回复@人可选列表" | 51 | @doc "小程序获取回复@人可选列表" |
53 | @handler SystemArticleCommentSearchMe | 52 | @handler SystemArticleCommentSearchMe |
54 | post /article_comment/search/me (SystemArticleCommentSearchMeRequest) returns (SystemArticleCommentSearchMeResponse) | 53 | post /article_comment/search/me (SystemArticleCommentSearchMeRequest) returns (SystemArticleCommentSearchMeResponse) |
54 | + | ||
55 | + @doc "管理后台文章评论列表" | ||
56 | + @handler SystemArticleCommentSearch | ||
57 | + post /article_comment/search (SystemArticleCommentSearchRequest) returns (SystemArticleCommentSearchResponse) | ||
58 | + | ||
55 | } | 59 | } |
56 | 60 | ||
57 | //评论的填写人 | 61 | //评论的填写人 |
@@ -204,3 +208,35 @@ type ( | @@ -204,3 +208,35 @@ type ( | ||
204 | Total int64 `json:"total"` | 208 | Total int64 `json:"total"` |
205 | } | 209 | } |
206 | ) | 210 | ) |
211 | +// 文章里的评论列表 | ||
212 | +type ( | ||
213 | + SystemArticleCommentSearchRequest { | ||
214 | + Page int `json:"page"` | ||
215 | + Size int `json:"size"` | ||
216 | + ArticleId int64 `json:"articleId"` // 文章ID | ||
217 | + TopId int64 `json:"topId"` // 文章顶层ID | ||
218 | + AuthorId int64 `json:"authorId,optional"` // 用户 | ||
219 | + Show int `json:"show,optional"` // 显示状态 | ||
220 | + BeginTime int64 `json:"beginTime,optional"` // 开始时间 | ||
221 | + EndTime int64 `json:"endTime,optional"` // 结束时间 | ||
222 | + } | ||
223 | + SystemArticleCommentSearchResponse { | ||
224 | + Total int64 `json:"total"` | ||
225 | + List []SystemArticleCommentSearchItem `json:"list"` | ||
226 | + } | ||
227 | + SystemArticleCommentSearchItem { | ||
228 | + Id int64 `json:"id"` | ||
229 | + Pid int64 `json:"pid"` | ||
230 | + TopId int64 `json:"topId"` | ||
231 | + ArtitcleId int64 `json:"articleId"` // 文章id | ||
232 | + SectionId int64 `json:"sectionId"` // 段落id | ||
233 | + FromUserId int64 `json:"fromUserId"` // 填写评论的人 | ||
234 | + FromUser CommentAuthor `json:"fromUser"` // 填写评论的人 | ||
235 | + CountReply int `json:"countReply"` // 回复数量 | ||
236 | + CountUserLove int `json:"countUserLove"` // 用户点赞数量 | ||
237 | + CountAdminLove int `json:"countAdminLove"` // 运营点赞数量 | ||
238 | + CreatedAt int64 `json:"createdAt"` // 评论时间 | ||
239 | + Content string `json:"content"` // 评论的内容 | ||
240 | + Show int `json:"show"` // 显示状态 | ||
241 | + } | ||
242 | +) |
1 | +package comment | ||
2 | + | ||
3 | +import ( | ||
4 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/result" | ||
5 | + "net/http" | ||
6 | + | ||
7 | + "github.com/zeromicro/go-zero/rest/httpx" | ||
8 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/logic/comment" | ||
9 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc" | ||
10 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types" | ||
11 | +) | ||
12 | + | ||
13 | +func SystemArticleCommentSearchHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { | ||
14 | + return func(w http.ResponseWriter, r *http.Request) { | ||
15 | + var req types.SystemArticleCommentSearchRequest | ||
16 | + if err := httpx.Parse(r, &req); err != nil { | ||
17 | + httpx.ErrorCtx(r.Context(), w, err) | ||
18 | + return | ||
19 | + } | ||
20 | + | ||
21 | + l := comment.NewSystemArticleCommentSearchLogic(r.Context(), svcCtx) | ||
22 | + resp, err := l.SystemArticleCommentSearch(&req) | ||
23 | + result.HttpResult(r, w, resp, err) | ||
24 | + } | ||
25 | +} |
@@ -64,6 +64,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { | @@ -64,6 +64,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { | ||
64 | Path: "/article_comment/search/me", | 64 | Path: "/article_comment/search/me", |
65 | Handler: comment.SystemArticleCommentSearchMeHandler(serverCtx), | 65 | Handler: comment.SystemArticleCommentSearchMeHandler(serverCtx), |
66 | }, | 66 | }, |
67 | + { | ||
68 | + Method: http.MethodPost, | ||
69 | + Path: "/article_comment/search", | ||
70 | + Handler: comment.SystemArticleCommentSearchHandler(serverCtx), | ||
71 | + }, | ||
67 | }..., | 72 | }..., |
68 | ), | 73 | ), |
69 | rest.WithJwt(serverCtx.Config.SystemAuth.AccessSecret), | 74 | rest.WithJwt(serverCtx.Config.SystemAuth.AccessSecret), |
@@ -114,6 +119,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { | @@ -114,6 +119,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { | ||
114 | Path: "/article_tag/search", | 119 | Path: "/article_tag/search", |
115 | Handler: tags.SearchTagHandler(serverCtx), | 120 | Handler: tags.SearchTagHandler(serverCtx), |
116 | }, | 121 | }, |
122 | + { | ||
123 | + Method: http.MethodGet, | ||
124 | + Path: "/article_tag/options", | ||
125 | + Handler: tags.OptionsHandler(serverCtx), | ||
126 | + }, | ||
117 | }, | 127 | }, |
118 | rest.WithJwt(serverCtx.Config.SystemAuth.AccessSecret), | 128 | rest.WithJwt(serverCtx.Config.SystemAuth.AccessSecret), |
119 | rest.WithPrefix("/v1/system"), | 129 | rest.WithPrefix("/v1/system"), |
1 | +package tags | ||
2 | + | ||
3 | +import ( | ||
4 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/contextdata" | ||
5 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/result" | ||
6 | + "net/http" | ||
7 | + | ||
8 | + "github.com/zeromicro/go-zero/rest/httpx" | ||
9 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/logic/tags" | ||
10 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc" | ||
11 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types" | ||
12 | +) | ||
13 | + | ||
14 | +func OptionsHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { | ||
15 | + return func(w http.ResponseWriter, r *http.Request) { | ||
16 | + var req types.TagOptionsRequest | ||
17 | + if err := httpx.Parse(r, &req); err != nil { | ||
18 | + httpx.ErrorCtx(r.Context(), w, err) | ||
19 | + return | ||
20 | + } | ||
21 | + | ||
22 | + l := tags.NewOptionsLogic(r.Context(), svcCtx) | ||
23 | + token := contextdata.GetUserTokenFromCtx(r.Context()) | ||
24 | + req.CompanyId = token.CompanyId | ||
25 | + resp, err := l.Options(&req) | ||
26 | + result.HttpResult(r, w, resp, err) | ||
27 | + } | ||
28 | +} |
@@ -11,6 +11,7 @@ import ( | @@ -11,6 +11,7 @@ import ( | ||
11 | "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/contextdata" | 11 | "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/contextdata" |
12 | "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/tool/oss" | 12 | "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/tool/oss" |
13 | "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/xerr" | 13 | "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/xerr" |
14 | + "strings" | ||
14 | 15 | ||
15 | "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc" | 16 | "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc" |
16 | "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types" | 17 | "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types" |
@@ -51,29 +52,98 @@ func (l *SystemUpdateArticleLogic) SystemUpdateArticle(req *types.SystemArticleU | @@ -51,29 +52,98 @@ func (l *SystemUpdateArticleLogic) SystemUpdateArticle(req *types.SystemArticleU | ||
51 | Height: h, | 52 | Height: h, |
52 | }) | 53 | }) |
53 | } | 54 | } |
55 | + //检查文章可被哪些人查看 | ||
56 | + whoRead := []int64{} | ||
57 | + if len(req.WhoRead) > 0 { | ||
58 | + whoRead = lo.Uniq(req.WhoRead) | ||
59 | + var u *domain.User | ||
60 | + for _, val := range whoRead { | ||
61 | + u, err = l.svcCtx.UserRepository.FindOne(l.ctx, conn, val) | ||
62 | + if err != nil { | ||
63 | + return nil, xerr.NewErrMsgErr("文章可查看人设置错误", err) | ||
64 | + } | ||
65 | + if u.CompanyId != article.CompanyId { | ||
66 | + return nil, xerr.NewErrMsg("文章可查看人设置错误") | ||
67 | + } | ||
68 | + } | ||
69 | + } | ||
70 | + //检查文章可被哪些人评论 | ||
71 | + whoReview := []int64{} | ||
72 | + if len(req.WhoReview) > 0 { | ||
73 | + whoReview = lo.Uniq(req.WhoReview) | ||
74 | + } | ||
75 | + //有指定可查看人的情况 | ||
76 | + if len(whoRead) > 0 { | ||
77 | + if len(whoReview) > 0 { | ||
78 | + // 检查 whoRead 是否 完全包含 whoReview | ||
79 | + ok := lo.Every(whoRead, whoReview) | ||
80 | + if !ok { | ||
81 | + return nil, xerr.NewErrMsg("文章可评论人设置错误") | ||
82 | + } | ||
83 | + } | ||
84 | + if len(whoReview) == 0 { | ||
85 | + //有指定可查看人 ,但未指定可评论人 | ||
86 | + return nil, xerr.NewErrMsg("文章可评论人设置错误") | ||
87 | + } | ||
88 | + } | ||
89 | + //没有指定可查看人的情况 | ||
90 | + if len(whoRead) == 0 { | ||
91 | + if len(whoReview) > 0 { | ||
92 | + // 未指定可查看人(全员可看),有指定可评论人, | ||
93 | + var u *domain.User | ||
94 | + for _, val := range whoReview { | ||
95 | + u, err = l.svcCtx.UserRepository.FindOne(l.ctx, conn, val) | ||
96 | + if err != nil { | ||
97 | + return nil, xerr.NewErrMsgErr("文章可评论人设置错误", err) | ||
98 | + } | ||
99 | + if u.CompanyId != article.CompanyId { | ||
100 | + return nil, xerr.NewErrMsg("文章可评论人设置错误") | ||
101 | + } | ||
102 | + } | ||
103 | + } | ||
104 | + } | ||
105 | + //验证tag | ||
106 | + if len(req.Tags) > 0 { | ||
107 | + req.Tags = lo.Uniq(req.Tags) | ||
108 | + for _, value := range req.Tags { | ||
109 | + t, err := l.svcCtx.ArticleTagRepository.FindOne(l.ctx, conn, value) | ||
110 | + if err != nil { | ||
111 | + return nil, xerr.NewErrMsgErr("文章标签设置错误", err) | ||
112 | + } | ||
113 | + if t.CompanyId != article.CompanyId { | ||
114 | + return nil, xerr.NewErrMsgErr("文章标签设置错误", err) | ||
115 | + } | ||
116 | + } | ||
117 | + } | ||
54 | article.Title = req.Title | 118 | article.Title = req.Title |
55 | article.Version = article.Version + 1 | 119 | article.Version = article.Version + 1 |
56 | article.Images = images | 120 | article.Images = images |
57 | - article.WhoRead = req.WhoRead | ||
58 | - article.WhoReview = req.WhoReview | 121 | + article.WhoRead = whoRead |
122 | + article.WhoReview = whoReview | ||
59 | article.TargetUser = domain.ArticleTarget(req.TargetUser) | 123 | article.TargetUser = domain.ArticleTarget(req.TargetUser) |
60 | - article.Location = domain.Location{ | ||
61 | - Longitude: req.Location.Longitude, | ||
62 | - Latitude: req.Location.Latitude, | ||
63 | - Descript: req.Location.Descript, | ||
64 | - } | ||
65 | article.Tags = req.Tags | 124 | article.Tags = req.Tags |
66 | //文章内容 | 125 | //文章内容 |
67 | articleSections := []domain.ArticleSection{} | 126 | articleSections := []domain.ArticleSection{} |
127 | + sortBy := 1 | ||
68 | lo.ForEach(req.Section, func(item types.ArticleSection, index int) { | 128 | lo.ForEach(req.Section, func(item types.ArticleSection, index int) { |
69 | - articleSections = append(articleSections, domain.ArticleSection{ | ||
70 | - Id: item.Id, | 129 | + strList := strings.Split(item.Content, "\n") |
130 | + for key, value := range strList { | ||
131 | + if value == "" { | ||
132 | + continue | ||
133 | + } | ||
134 | + section := domain.ArticleSection{ | ||
71 | CompanyId: article.CompanyId, | 135 | CompanyId: article.CompanyId, |
72 | Version: article.Version, | 136 | Version: article.Version, |
73 | ArticleId: article.Id, | 137 | ArticleId: article.Id, |
74 | - Content: item.Content, | ||
75 | - SortBy: index + 1, | ||
76 | - }) | 138 | + Content: value, |
139 | + SortBy: sortBy, | ||
140 | + } | ||
141 | + if key == 0 { | ||
142 | + section.Id = item.Id | ||
143 | + } | ||
144 | + articleSections = append(articleSections, section) | ||
145 | + sortBy++ | ||
146 | + } | ||
77 | }) | 147 | }) |
78 | //设置内容概要 | 148 | //设置内容概要 |
79 | if len(req.Section) > 0 { | 149 | if len(req.Section) > 0 { |
1 | +package comment | ||
2 | + | ||
3 | +import ( | ||
4 | + "context" | ||
5 | + "github.com/samber/lo" | ||
6 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/interanl/pkg/domain" | ||
7 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/xerr" | ||
8 | + | ||
9 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc" | ||
10 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types" | ||
11 | + | ||
12 | + "github.com/zeromicro/go-zero/core/logx" | ||
13 | +) | ||
14 | + | ||
15 | +type SystemArticleCommentSearchLogic struct { | ||
16 | + logx.Logger | ||
17 | + ctx context.Context | ||
18 | + svcCtx *svc.ServiceContext | ||
19 | +} | ||
20 | + | ||
21 | +func NewSystemArticleCommentSearchLogic(ctx context.Context, svcCtx *svc.ServiceContext) *SystemArticleCommentSearchLogic { | ||
22 | + return &SystemArticleCommentSearchLogic{ | ||
23 | + Logger: logx.WithContext(ctx), | ||
24 | + ctx: ctx, | ||
25 | + svcCtx: svcCtx, | ||
26 | + } | ||
27 | +} | ||
28 | + | ||
29 | +func (l *SystemArticleCommentSearchLogic) SystemArticleCommentSearch(req *types.SystemArticleCommentSearchRequest) (resp *types.SystemArticleCommentSearchResponse, err error) { | ||
30 | + var conn = l.svcCtx.DefaultDBConn() | ||
31 | + queryOptions := domain.NewQueryOptions(). | ||
32 | + WithOffsetLimit(req.Page, req.Size). | ||
33 | + WithKV("articleId", req.ArticleId). | ||
34 | + WithKV("topId", req.TopId). | ||
35 | + WithKV("fromUserId", req.AuthorId). | ||
36 | + WithKV("beginCreatedAt", req.BeginTime). | ||
37 | + WithKV("endCreatedAt", req.EndTime) | ||
38 | + total, comments, err := l.svcCtx.ArticleCommentRepository.Find(l.ctx, conn, queryOptions) | ||
39 | + if err != nil { | ||
40 | + return nil, xerr.NewErrMsgErr("获取文章评论失败", err) | ||
41 | + } | ||
42 | + resp = &types.SystemArticleCommentSearchResponse{ | ||
43 | + Total: total, | ||
44 | + List: make([]types.SystemArticleCommentSearchItem, 0), | ||
45 | + } | ||
46 | + lo.ForEach(comments, func(item *domain.ArticleComment, index int) { | ||
47 | + resp.List = append(resp.List, types.SystemArticleCommentSearchItem{ | ||
48 | + Id: item.Id, | ||
49 | + Pid: item.Pid, | ||
50 | + TopId: item.TopId, | ||
51 | + ArtitcleId: item.ArticleId, | ||
52 | + SectionId: item.SectionId, | ||
53 | + FromUserId: item.FromUserId, | ||
54 | + FromUser: types.CommentAuthor{ | ||
55 | + Id: item.FromUser.Id, | ||
56 | + Name: item.FromUser.Name, | ||
57 | + Avatar: item.FromUser.Avatar, | ||
58 | + Company: item.FromUser.Company, | ||
59 | + Position: item.FromUser.Position, | ||
60 | + }, | ||
61 | + CountReply: item.CountReply, | ||
62 | + CountUserLove: item.CountUserLove, | ||
63 | + CountAdminLove: item.CountAdminLove, | ||
64 | + CreatedAt: item.CreatedAt, | ||
65 | + Content: item.Content, | ||
66 | + Show: int(item.Show), | ||
67 | + }) | ||
68 | + }) | ||
69 | + return | ||
70 | +} |
1 | +package tags | ||
2 | + | ||
3 | +import ( | ||
4 | + "context" | ||
5 | + "github.com/samber/lo" | ||
6 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/interanl/pkg/domain" | ||
7 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/xerr" | ||
8 | + | ||
9 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc" | ||
10 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types" | ||
11 | + | ||
12 | + "github.com/zeromicro/go-zero/core/logx" | ||
13 | +) | ||
14 | + | ||
15 | +type OptionsLogic struct { | ||
16 | + logx.Logger | ||
17 | + ctx context.Context | ||
18 | + svcCtx *svc.ServiceContext | ||
19 | +} | ||
20 | + | ||
21 | +func NewOptionsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *OptionsLogic { | ||
22 | + return &OptionsLogic{ | ||
23 | + Logger: logx.WithContext(ctx), | ||
24 | + ctx: ctx, | ||
25 | + svcCtx: svcCtx, | ||
26 | + } | ||
27 | +} | ||
28 | + | ||
29 | +func (l *OptionsLogic) Options(req *types.TagOptionsRequest) (resp *types.TagOptionsResponse, err error) { | ||
30 | + var conn = l.svcCtx.DefaultDBConn() | ||
31 | + queryOption := domain.NewQueryOptions().WithFindOnly() | ||
32 | + _, tagList, err := l.svcCtx.ArticleTagRepository.Find(l.ctx, conn, req.CompanyId, queryOption) | ||
33 | + if err != nil { | ||
34 | + return nil, xerr.NewErrMsgErr("获取标签列表失败", err) | ||
35 | + } | ||
36 | + var group []string | ||
37 | + options := make(map[string][]types.TagOptionValue) | ||
38 | + lo.ForEach(tagList, func(tag *domain.ArticleTag, index int) { | ||
39 | + if _, ok := options[tag.Category]; !ok { | ||
40 | + options[tag.Category] = make([]types.TagOptionValue, 0) | ||
41 | + group = append(group, tag.Category) | ||
42 | + } | ||
43 | + options[tag.Category] = append(options[tag.Category], types.TagOptionValue{ | ||
44 | + Label: tag.Name, | ||
45 | + Value: tag.Id, | ||
46 | + }) | ||
47 | + }) | ||
48 | + resp = &types.TagOptionsResponse{Options: []types.TagOptions{}} | ||
49 | + for _, value := range group { | ||
50 | + ops := []types.TagOptionValue{} | ||
51 | + if _, ok := options[value]; ok { | ||
52 | + ops = options[value] | ||
53 | + } | ||
54 | + resp.Options = append(resp.Options, types.TagOptions{ | ||
55 | + Label: value, | ||
56 | + Options: ops, | ||
57 | + }) | ||
58 | + } | ||
59 | + return | ||
60 | +} |
@@ -136,6 +136,38 @@ type SystemArticleCommentSearchMeResponse struct { | @@ -136,6 +136,38 @@ type SystemArticleCommentSearchMeResponse struct { | ||
136 | Total int64 `json:"total"` | 136 | Total int64 `json:"total"` |
137 | } | 137 | } |
138 | 138 | ||
139 | +type SystemArticleCommentSearchRequest struct { | ||
140 | + Page int `json:"page"` | ||
141 | + Size int `json:"size"` | ||
142 | + ArticleId int64 `json:"articleId"` // 文章ID | ||
143 | + TopId int64 `json:"topId"` // 文章顶层ID | ||
144 | + AuthorId int64 `json:"authorId,optional"` // 用户 | ||
145 | + Show int `json:"show,optional"` // 显示状态 | ||
146 | + BeginTime int64 `json:"beginTime,optional"` // 开始时间 | ||
147 | + EndTime int64 `json:"endTime,optional"` // 结束时间 | ||
148 | +} | ||
149 | + | ||
150 | +type SystemArticleCommentSearchResponse struct { | ||
151 | + Total int64 `json:"total"` | ||
152 | + List []SystemArticleCommentSearchItem `json:"list"` | ||
153 | +} | ||
154 | + | ||
155 | +type SystemArticleCommentSearchItem struct { | ||
156 | + Id int64 `json:"id"` | ||
157 | + Pid int64 `json:"pid"` | ||
158 | + TopId int64 `json:"topId"` | ||
159 | + ArtitcleId int64 `json:"articleId"` // 文章id | ||
160 | + SectionId int64 `json:"sectionId"` // 段落id | ||
161 | + FromUserId int64 `json:"fromUserId"` // 填写评论的人 | ||
162 | + FromUser CommentAuthor `json:"fromUser"` // 填写评论的人 | ||
163 | + CountReply int `json:"countReply"` // 回复数量 | ||
164 | + CountUserLove int `json:"countUserLove"` // 用户点赞数量 | ||
165 | + CountAdminLove int `json:"countAdminLove"` // 运营点赞数量 | ||
166 | + CreatedAt int64 `json:"createdAt"` // 评论时间 | ||
167 | + Content string `json:"content"` // 评论的内容 | ||
168 | + Show int `json:"show"` // 显示状态 | ||
169 | +} | ||
170 | + | ||
139 | type MessageSystemRequest struct { | 171 | type MessageSystemRequest struct { |
140 | Page int `json:"page"` | 172 | Page int `json:"page"` |
141 | Size int `json:"size"` | 173 | Size int `json:"size"` |
@@ -274,6 +306,24 @@ type TagDeleteResponse struct { | @@ -274,6 +306,24 @@ type TagDeleteResponse struct { | ||
274 | Id int64 `json:"id"` | 306 | Id int64 `json:"id"` |
275 | } | 307 | } |
276 | 308 | ||
309 | +type TagOptionsRequest struct { | ||
310 | + CompanyId int64 `path:",optional"` // 公司ID | ||
311 | +} | ||
312 | + | ||
313 | +type TagOptionsResponse struct { | ||
314 | + Options []TagOptions `json:"options"` | ||
315 | +} | ||
316 | + | ||
317 | +type TagOptions struct { | ||
318 | + Label string `json:"label"` // 分组名称 | ||
319 | + Options []TagOptionValue `json:"options"` | ||
320 | +} | ||
321 | + | ||
322 | +type TagOptionValue struct { | ||
323 | + Label string `json:"label"` // 名称 | ||
324 | + Value int64 `json:"value"` // 标签ID | ||
325 | +} | ||
326 | + | ||
277 | type MiniUserLoginRequest struct { | 327 | type MiniUserLoginRequest struct { |
278 | LoginType string `json:"loginType"` // 登录类型 wechat-login whchat-phone-login phone-password-login phone-smscode-login | 328 | LoginType string `json:"loginType"` // 登录类型 wechat-login whchat-phone-login phone-password-login phone-smscode-login |
279 | WechatAuthCode string `json:"wechatAuthcode,optional"` // 微信登录 授权码 | 329 | WechatAuthCode string `json:"wechatAuthcode,optional"` // 微信登录 授权码 |
@@ -935,7 +985,6 @@ type SystemArticleUpdateRequest struct { | @@ -935,7 +985,6 @@ type SystemArticleUpdateRequest struct { | ||
935 | Images []string `json:"images"` // 图片 | 985 | Images []string `json:"images"` // 图片 |
936 | WhoRead []int64 `json:"whoRead"` // 谁可以看 | 986 | WhoRead []int64 `json:"whoRead"` // 谁可以看 |
937 | WhoReview []int64 `json:"whoReview"` // 评论人 | 987 | WhoReview []int64 `json:"whoReview"` // 评论人 |
938 | - Location Location `json:"location"` // 坐标 | ||
939 | TargetUser int `json:"targetUser"` // 分发方式 [0分发给所有人、1分发给指定的人] | 988 | TargetUser int `json:"targetUser"` // 分发方式 [0分发给所有人、1分发给指定的人] |
940 | Tags []int64 `json:"tags"` // 标签 | 989 | Tags []int64 `json:"tags"` // 标签 |
941 | AccessToken string `header:"x-mmm-accesstoken"` // 授权token | 990 | AccessToken string `header:"x-mmm-accesstoken"` // 授权token |
@@ -96,7 +96,6 @@ func (repository *ArticleSectionRepository) DeleteBy(ctx context.Context, conn t | @@ -96,7 +96,6 @@ func (repository *ArticleSectionRepository) DeleteBy(ctx context.Context, conn t | ||
96 | m = &models.ArticleSection{} | 96 | m = &models.ArticleSection{} |
97 | ) | 97 | ) |
98 | queryFunc := func() (interface{}, error) { | 98 | queryFunc := func() (interface{}, error) { |
99 | - tx = tx.Where("id = ?", m.Id) | ||
100 | if v, ok := queryOptions["articleId"]; ok { | 99 | if v, ok := queryOptions["articleId"]; ok { |
101 | tx = tx.Where("article_id = ?", v) | 100 | tx = tx.Where("article_id = ?", v) |
102 | } | 101 | } |
@@ -141,7 +140,7 @@ func (repository *ArticleSectionRepository) Find(ctx context.Context, conn trans | @@ -141,7 +140,7 @@ func (repository *ArticleSectionRepository) Find(ctx context.Context, conn trans | ||
141 | total int64 | 140 | total int64 |
142 | ) | 141 | ) |
143 | queryFunc := func() (interface{}, error) { | 142 | queryFunc := func() (interface{}, error) { |
144 | - tx = tx.Model(&ms).Order("id desc") | 143 | + tx = tx.Model(&ms).Order("sort_by") |
145 | 144 | ||
146 | if v, ok := queryOptions["articleId"]; ok { | 145 | if v, ok := queryOptions["articleId"]; ok { |
147 | tx = tx.Where("article_id = ?", v) | 146 | tx = tx.Where("article_id = ?", v) |
-
请 注册 或 登录 后发表评论