正在显示
30 个修改的文件
包含
801 行增加
和
166 行删除
@@ -731,7 +731,7 @@ | @@ -731,7 +731,7 @@ | ||
731 | "200": { | 731 | "200": { |
732 | "description": "A successful response.", | 732 | "description": "A successful response.", |
733 | "schema": { | 733 | "schema": { |
734 | - "$ref": "#/definitions/MiniHomePageRespose" | 734 | + "$ref": "#/definitions/MiniHomePageResponse" |
735 | } | 735 | } |
736 | } | 736 | } |
737 | }, | 737 | }, |
@@ -741,7 +741,35 @@ | @@ -741,7 +741,35 @@ | ||
741 | ] | 741 | ] |
742 | } | 742 | } |
743 | }, | 743 | }, |
744 | - "v1/mini/user/apply-join-company": { | 744 | + "v1/mini/show/search_article": { |
745 | + "post": { | ||
746 | + "summary": "小程序首页搜索文章", | ||
747 | + "operationId": "MiniSearchArticlePage", | ||
748 | + "responses": { | ||
749 | + "200": { | ||
750 | + "description": "A successful response.", | ||
751 | + "schema": { | ||
752 | + "$ref": "#/definitions/MiniSearchArticleResponse" | ||
753 | + } | ||
754 | + } | ||
755 | + }, | ||
756 | + "parameters": [ | ||
757 | + { | ||
758 | + "name": "body", | ||
759 | + "in": "body", | ||
760 | + "required": true, | ||
761 | + "schema": { | ||
762 | + "$ref": "#/definitions/MiniSearchArticleRequest" | ||
763 | + } | ||
764 | + } | ||
765 | + ], | ||
766 | + "requestBody": {}, | ||
767 | + "tags": [ | ||
768 | + "article" | ||
769 | + ] | ||
770 | + } | ||
771 | + }, | ||
772 | + "v1/mini/user/apply_join_company": { | ||
745 | "post": { | 773 | "post": { |
746 | "summary": "用户申请加入公司", | 774 | "summary": "用户申请加入公司", |
747 | "operationId": "miniUserApplyJoinCompany", | 775 | "operationId": "miniUserApplyJoinCompany", |
@@ -795,7 +823,7 @@ | @@ -795,7 +823,7 @@ | ||
795 | ] | 823 | ] |
796 | } | 824 | } |
797 | }, | 825 | }, |
798 | - "v1/mini/user/audit-list": { | 826 | + "v1/mini/user/audit_list": { |
799 | "post": { | 827 | "post": { |
800 | "summary": "用户审核列表", | 828 | "summary": "用户审核列表", |
801 | "operationId": "miniUserAuditList", | 829 | "operationId": "miniUserAuditList", |
@@ -823,16 +851,14 @@ | @@ -823,16 +851,14 @@ | ||
823 | ] | 851 | ] |
824 | } | 852 | } |
825 | }, | 853 | }, |
826 | - "v1/mini/user/department-users": { | 854 | + "v1/mini/user/department_users": { |
827 | "post": { | 855 | "post": { |
828 | "summary": "部门用户列表", | 856 | "summary": "部门用户列表", |
829 | "operationId": "miniUserDepartmentUsers", | 857 | "operationId": "miniUserDepartmentUsers", |
830 | "responses": { | 858 | "responses": { |
831 | "200": { | 859 | "200": { |
832 | "description": "A successful response.", | 860 | "description": "A successful response.", |
833 | - "schema": { | ||
834 | - "$ref": "#/definitions/MiniUserInfoResponse" | ||
835 | - } | 861 | + "schema": {} |
836 | } | 862 | } |
837 | }, | 863 | }, |
838 | "parameters": [ | 864 | "parameters": [ |
@@ -933,6 +959,60 @@ | @@ -933,6 +959,60 @@ | ||
933 | ] | 959 | ] |
934 | } | 960 | } |
935 | }, | 961 | }, |
962 | + "v1/mini/user/following/latest_unread_list": { | ||
963 | + "post": { | ||
964 | + "summary": "我关注的人-最新未读列表(未读标红)", | ||
965 | + "operationId": "miniUserFollowingLatestUnreadList", | ||
966 | + "responses": { | ||
967 | + "200": { | ||
968 | + "description": "A successful response.", | ||
969 | + "schema": { | ||
970 | + "$ref": "#/definitions/MiniUserFollowedSearchResponse" | ||
971 | + } | ||
972 | + } | ||
973 | + }, | ||
974 | + "parameters": [ | ||
975 | + { | ||
976 | + "name": "body", | ||
977 | + "in": "body", | ||
978 | + "required": true, | ||
979 | + "schema": { | ||
980 | + "$ref": "#/definitions/MiniUserFollowedSearchRequest" | ||
981 | + } | ||
982 | + } | ||
983 | + ], | ||
984 | + "requestBody": {}, | ||
985 | + "tags": [ | ||
986 | + "user" | ||
987 | + ] | ||
988 | + } | ||
989 | + }, | ||
990 | + "v1/mini/user/following/mark_read": { | ||
991 | + "post": { | ||
992 | + "summary": "我关注的人-标记已读", | ||
993 | + "operationId": "miniUserFollowingMarkRead", | ||
994 | + "responses": { | ||
995 | + "200": { | ||
996 | + "description": "A successful response.", | ||
997 | + "schema": {} | ||
998 | + } | ||
999 | + }, | ||
1000 | + "parameters": [ | ||
1001 | + { | ||
1002 | + "name": "body", | ||
1003 | + "in": "body", | ||
1004 | + "required": true, | ||
1005 | + "schema": { | ||
1006 | + "$ref": "#/definitions/MiniUserFollowingMarkReadRequest" | ||
1007 | + } | ||
1008 | + } | ||
1009 | + ], | ||
1010 | + "requestBody": {}, | ||
1011 | + "tags": [ | ||
1012 | + "user" | ||
1013 | + ] | ||
1014 | + } | ||
1015 | + }, | ||
936 | "v1/mini/user/info": { | 1016 | "v1/mini/user/info": { |
937 | "post": { | 1017 | "post": { |
938 | "summary": "用户信息", | 1018 | "summary": "用户信息", |
@@ -989,7 +1069,63 @@ | @@ -989,7 +1069,63 @@ | ||
989 | ] | 1069 | ] |
990 | } | 1070 | } |
991 | }, | 1071 | }, |
992 | - "v1/mini/user/switch-account": { | 1072 | + "v1/mini/user/news": { |
1073 | + "post": { | ||
1074 | + "summary": "用户快讯", | ||
1075 | + "operationId": "miniUserNews", | ||
1076 | + "responses": { | ||
1077 | + "200": { | ||
1078 | + "description": "A successful response.", | ||
1079 | + "schema": { | ||
1080 | + "$ref": "#/definitions/MiniUserNewsResposne" | ||
1081 | + } | ||
1082 | + } | ||
1083 | + }, | ||
1084 | + "parameters": [ | ||
1085 | + { | ||
1086 | + "name": "body", | ||
1087 | + "in": "body", | ||
1088 | + "required": true, | ||
1089 | + "schema": { | ||
1090 | + "$ref": "#/definitions/MiniUserNewsRequest" | ||
1091 | + } | ||
1092 | + } | ||
1093 | + ], | ||
1094 | + "requestBody": {}, | ||
1095 | + "tags": [ | ||
1096 | + "user" | ||
1097 | + ] | ||
1098 | + } | ||
1099 | + }, | ||
1100 | + "v1/mini/user/statistics": { | ||
1101 | + "post": { | ||
1102 | + "summary": "用户统计", | ||
1103 | + "operationId": "miniUserStatistics", | ||
1104 | + "responses": { | ||
1105 | + "200": { | ||
1106 | + "description": "A successful response.", | ||
1107 | + "schema": { | ||
1108 | + "$ref": "#/definitions/UserStatisticsResponse" | ||
1109 | + } | ||
1110 | + } | ||
1111 | + }, | ||
1112 | + "parameters": [ | ||
1113 | + { | ||
1114 | + "name": "body", | ||
1115 | + "in": "body", | ||
1116 | + "required": true, | ||
1117 | + "schema": { | ||
1118 | + "$ref": "#/definitions/UserStatisticsRequest" | ||
1119 | + } | ||
1120 | + } | ||
1121 | + ], | ||
1122 | + "requestBody": {}, | ||
1123 | + "tags": [ | ||
1124 | + "user" | ||
1125 | + ] | ||
1126 | + } | ||
1127 | + }, | ||
1128 | + "v1/mini/user/switch_account": { | ||
993 | "post": { | 1129 | "post": { |
994 | "summary": "切换账号", | 1130 | "summary": "切换账号", |
995 | "operationId": "miniUserSwitchAccount", | 1131 | "operationId": "miniUserSwitchAccount", |
@@ -1043,6 +1179,32 @@ | @@ -1043,6 +1179,32 @@ | ||
1043 | ] | 1179 | ] |
1044 | } | 1180 | } |
1045 | }, | 1181 | }, |
1182 | + "v1/mini/user/user_list": { | ||
1183 | + "post": { | ||
1184 | + "summary": "用户列表", | ||
1185 | + "operationId": "miniUsersList", | ||
1186 | + "responses": { | ||
1187 | + "200": { | ||
1188 | + "description": "A successful response.", | ||
1189 | + "schema": {} | ||
1190 | + } | ||
1191 | + }, | ||
1192 | + "parameters": [ | ||
1193 | + { | ||
1194 | + "name": "body", | ||
1195 | + "in": "body", | ||
1196 | + "required": true, | ||
1197 | + "schema": { | ||
1198 | + "$ref": "#/definitions/MiniUsersListRequest" | ||
1199 | + } | ||
1200 | + } | ||
1201 | + ], | ||
1202 | + "requestBody": {}, | ||
1203 | + "tags": [ | ||
1204 | + "user" | ||
1205 | + ] | ||
1206 | + } | ||
1207 | + }, | ||
1046 | "v1/system/account": { | 1208 | "v1/system/account": { |
1047 | "post": { | 1209 | "post": { |
1048 | "summary": "系统新增账号", | 1210 | "summary": "系统新增账号", |
@@ -1997,6 +2159,32 @@ | @@ -1997,6 +2159,32 @@ | ||
1997 | ] | 2159 | ] |
1998 | } | 2160 | } |
1999 | }, | 2161 | }, |
2162 | + "v1/system/user/user_list": { | ||
2163 | + "post": { | ||
2164 | + "summary": "用户列表", | ||
2165 | + "operationId": "systemUsersList", | ||
2166 | + "responses": { | ||
2167 | + "200": { | ||
2168 | + "description": "A successful response.", | ||
2169 | + "schema": {} | ||
2170 | + } | ||
2171 | + }, | ||
2172 | + "parameters": [ | ||
2173 | + { | ||
2174 | + "name": "body", | ||
2175 | + "in": "body", | ||
2176 | + "required": true, | ||
2177 | + "schema": { | ||
2178 | + "$ref": "#/definitions/MiniUsersListRequest" | ||
2179 | + } | ||
2180 | + } | ||
2181 | + ], | ||
2182 | + "requestBody": {}, | ||
2183 | + "tags": [ | ||
2184 | + "user" | ||
2185 | + ] | ||
2186 | + } | ||
2187 | + }, | ||
2000 | "v1/system/user/{id}": { | 2188 | "v1/system/user/{id}": { |
2001 | "get": { | 2189 | "get": { |
2002 | "summary": "用户详情", | 2190 | "summary": "用户详情", |
@@ -2375,7 +2563,7 @@ | @@ -2375,7 +2563,7 @@ | ||
2375 | "ArticleTagCount": { | 2563 | "ArticleTagCount": { |
2376 | "type": "object", | 2564 | "type": "object", |
2377 | "properties": { | 2565 | "properties": { |
2378 | - "tagGroup": { | 2566 | + "tagCategory": { |
2379 | "type": "string", | 2567 | "type": "string", |
2380 | "description": " 标签分组" | 2568 | "description": " 标签分组" |
2381 | }, | 2569 | }, |
@@ -2409,7 +2597,7 @@ | @@ -2409,7 +2597,7 @@ | ||
2409 | }, | 2597 | }, |
2410 | "title": "ArticleTagCount", | 2598 | "title": "ArticleTagCount", |
2411 | "required": [ | 2599 | "required": [ |
2412 | - "tagGroup", | 2600 | + "tagCategory", |
2413 | "tagId", | 2601 | "tagId", |
2414 | "tagImage", | 2602 | "tagImage", |
2415 | "tagName", | 2603 | "tagName", |
@@ -2421,7 +2609,7 @@ | @@ -2421,7 +2609,7 @@ | ||
2421 | "ArticleTagGroup": { | 2609 | "ArticleTagGroup": { |
2422 | "type": "object", | 2610 | "type": "object", |
2423 | "properties": { | 2611 | "properties": { |
2424 | - "group": { | 2612 | + "category": { |
2425 | "type": "string" | 2613 | "type": "string" |
2426 | }, | 2614 | }, |
2427 | "tags": { | 2615 | "tags": { |
@@ -2433,7 +2621,7 @@ | @@ -2433,7 +2621,7 @@ | ||
2433 | }, | 2621 | }, |
2434 | "title": "ArticleTagGroup", | 2622 | "title": "ArticleTagGroup", |
2435 | "required": [ | 2623 | "required": [ |
2436 | - "group", | 2624 | + "category", |
2437 | "tags" | 2625 | "tags" |
2438 | ] | 2626 | ] |
2439 | }, | 2627 | }, |
@@ -2444,7 +2632,7 @@ | @@ -2444,7 +2632,7 @@ | ||
2444 | "type": "integer", | 2632 | "type": "integer", |
2445 | "format": "int64" | 2633 | "format": "int64" |
2446 | }, | 2634 | }, |
2447 | - "group": { | 2635 | + "category": { |
2448 | "type": "string" | 2636 | "type": "string" |
2449 | }, | 2637 | }, |
2450 | "name": { | 2638 | "name": { |
@@ -2457,7 +2645,7 @@ | @@ -2457,7 +2645,7 @@ | ||
2457 | "title": "ArticleTagItem", | 2645 | "title": "ArticleTagItem", |
2458 | "required": [ | 2646 | "required": [ |
2459 | "id", | 2647 | "id", |
2460 | - "group", | 2648 | + "category", |
2461 | "name", | 2649 | "name", |
2462 | "image" | 2650 | "image" |
2463 | ] | 2651 | ] |
@@ -3698,7 +3886,7 @@ | @@ -3698,7 +3886,7 @@ | ||
3698 | "show": { | 3886 | "show": { |
3699 | "type": "integer", | 3887 | "type": "integer", |
3700 | "format": "int32", | 3888 | "format": "int32", |
3701 | - "description": " 评论的展示状态(0显示、1不显示)" | 3889 | + "description": " 评论的展示状态(1显示、2不显示)" |
3702 | }, | 3890 | }, |
3703 | "edit": { | 3891 | "edit": { |
3704 | "type": "integer", | 3892 | "type": "integer", |
@@ -3709,6 +3897,13 @@ | @@ -3709,6 +3897,13 @@ | ||
3709 | "type": "integer", | 3897 | "type": "integer", |
3710 | "format": "int32", | 3898 | "format": "int32", |
3711 | "description": " 当前人员对文章的点赞标识 (0 没有点赞 1有点赞)" | 3899 | "description": " 当前人员对文章的点赞标识 (0 没有点赞 1有点赞)" |
3900 | + }, | ||
3901 | + "tags": { | ||
3902 | + "type": "array", | ||
3903 | + "items": { | ||
3904 | + "type": "string" | ||
3905 | + }, | ||
3906 | + "description": "文章的标签" | ||
3712 | } | 3907 | } |
3713 | }, | 3908 | }, |
3714 | "title": "MiniArticleGetResponse", | 3909 | "title": "MiniArticleGetResponse", |
@@ -3728,7 +3923,8 @@ | @@ -3728,7 +3923,8 @@ | ||
3728 | "countRead", | 3923 | "countRead", |
3729 | "show", | 3924 | "show", |
3730 | "edit", | 3925 | "edit", |
3731 | - "meLoveFlag" | 3926 | + "meLoveFlag", |
3927 | + "tags" | ||
3732 | ] | 3928 | ] |
3733 | }, | 3929 | }, |
3734 | "MiniArticleMarkItem": { | 3930 | "MiniArticleMarkItem": { |
@@ -4157,9 +4353,15 @@ | @@ -4157,9 +4353,15 @@ | ||
4157 | }, | 4353 | }, |
4158 | "title": "MiniHomePageRequest" | 4354 | "title": "MiniHomePageRequest" |
4159 | }, | 4355 | }, |
4160 | - "MiniHomePageRespose": { | 4356 | + "MiniHomePageResponse": { |
4161 | "type": "object", | 4357 | "type": "object", |
4162 | "properties": { | 4358 | "properties": { |
4359 | + "tagCategory": { | ||
4360 | + "type": "array", | ||
4361 | + "items": { | ||
4362 | + "type": "string" | ||
4363 | + } | ||
4364 | + }, | ||
4163 | "tags": { | 4365 | "tags": { |
4164 | "type": "array", | 4366 | "type": "array", |
4165 | "items": { | 4367 | "items": { |
@@ -4167,8 +4369,9 @@ | @@ -4167,8 +4369,9 @@ | ||
4167 | } | 4369 | } |
4168 | } | 4370 | } |
4169 | }, | 4371 | }, |
4170 | - "title": "MiniHomePageRespose", | 4372 | + "title": "MiniHomePageResponse", |
4171 | "required": [ | 4373 | "required": [ |
4374 | + "tagCategory", | ||
4172 | "tags" | 4375 | "tags" |
4173 | ] | 4376 | ] |
4174 | }, | 4377 | }, |
@@ -4265,6 +4468,115 @@ | @@ -4265,6 +4468,115 @@ | ||
4265 | "total" | 4468 | "total" |
4266 | ] | 4469 | ] |
4267 | }, | 4470 | }, |
4471 | + "MiniSearchArticleItem": { | ||
4472 | + "type": "object", | ||
4473 | + "properties": { | ||
4474 | + "articleId": { | ||
4475 | + "type": "integer", | ||
4476 | + "format": "int64" | ||
4477 | + }, | ||
4478 | + "title": { | ||
4479 | + "type": "string" | ||
4480 | + }, | ||
4481 | + "author": { | ||
4482 | + "type": "string", | ||
4483 | + "description": " 发布人" | ||
4484 | + }, | ||
4485 | + "images": { | ||
4486 | + "type": "array", | ||
4487 | + "items": { | ||
4488 | + "type": "string" | ||
4489 | + } | ||
4490 | + }, | ||
4491 | + "createdAt": { | ||
4492 | + "type": "integer", | ||
4493 | + "format": "int64" | ||
4494 | + }, | ||
4495 | + "meReadFlag": { | ||
4496 | + "type": "integer", | ||
4497 | + "format": "int32", | ||
4498 | + "description": "已读标识 [0:未读] [1:已读]" | ||
4499 | + } | ||
4500 | + }, | ||
4501 | + "title": "MiniSearchArticleItem", | ||
4502 | + "required": [ | ||
4503 | + "articleId", | ||
4504 | + "title", | ||
4505 | + "author", | ||
4506 | + "images", | ||
4507 | + "createdAt", | ||
4508 | + "meReadFlag" | ||
4509 | + ] | ||
4510 | + }, | ||
4511 | + "MiniSearchArticleRequest": { | ||
4512 | + "type": "object", | ||
4513 | + "properties": { | ||
4514 | + "page": { | ||
4515 | + "type": "integer", | ||
4516 | + "format": "int32" | ||
4517 | + }, | ||
4518 | + "size": { | ||
4519 | + "type": "integer", | ||
4520 | + "format": "int32" | ||
4521 | + }, | ||
4522 | + "": { | ||
4523 | + "type": "integer", | ||
4524 | + "format": "int64" | ||
4525 | + }, | ||
4526 | + "": { | ||
4527 | + "type": "integer", | ||
4528 | + "format": "int64" | ||
4529 | + }, | ||
4530 | + "tagCategory": { | ||
4531 | + "type": "string" | ||
4532 | + }, | ||
4533 | + "tagId": { | ||
4534 | + "type": "integer", | ||
4535 | + "format": "int64" | ||
4536 | + }, | ||
4537 | + "beginTime": { | ||
4538 | + "type": "integer", | ||
4539 | + "format": "int64" | ||
4540 | + }, | ||
4541 | + "endTime": { | ||
4542 | + "type": "integer", | ||
4543 | + "format": "int64" | ||
4544 | + }, | ||
4545 | + "searchWord": { | ||
4546 | + "type": "string" | ||
4547 | + } | ||
4548 | + }, | ||
4549 | + "title": "MiniSearchArticleRequest", | ||
4550 | + "required": [ | ||
4551 | + "page", | ||
4552 | + "size", | ||
4553 | + "tagCategory", | ||
4554 | + "tagId", | ||
4555 | + "beginTime", | ||
4556 | + "endTime", | ||
4557 | + "searchWord" | ||
4558 | + ] | ||
4559 | + }, | ||
4560 | + "MiniSearchArticleResponse": { | ||
4561 | + "type": "object", | ||
4562 | + "properties": { | ||
4563 | + "total": { | ||
4564 | + "type": "integer", | ||
4565 | + "format": "int32" | ||
4566 | + }, | ||
4567 | + "list": { | ||
4568 | + "type": "array", | ||
4569 | + "items": { | ||
4570 | + "$ref": "#/definitions/MiniSearchArticleItem" | ||
4571 | + } | ||
4572 | + } | ||
4573 | + }, | ||
4574 | + "title": "MiniSearchArticleResponse", | ||
4575 | + "required": [ | ||
4576 | + "total", | ||
4577 | + "list" | ||
4578 | + ] | ||
4579 | + }, | ||
4268 | "MiniSetUserLikeRequset": { | 4580 | "MiniSetUserLikeRequset": { |
4269 | "type": "object", | 4581 | "type": "object", |
4270 | "properties": { | 4582 | "properties": { |
@@ -4458,6 +4770,19 @@ | @@ -4458,6 +4770,19 @@ | ||
4458 | "total" | 4770 | "total" |
4459 | ] | 4771 | ] |
4460 | }, | 4772 | }, |
4773 | + "MiniUserFollowingMarkReadRequest": { | ||
4774 | + "type": "object", | ||
4775 | + "properties": { | ||
4776 | + "userId": { | ||
4777 | + "type": "integer", | ||
4778 | + "format": "int64" | ||
4779 | + } | ||
4780 | + }, | ||
4781 | + "title": "MiniUserFollowingMarkReadRequest", | ||
4782 | + "required": [ | ||
4783 | + "userId" | ||
4784 | + ] | ||
4785 | + }, | ||
4461 | "MiniUserInfoRequest": { | 4786 | "MiniUserInfoRequest": { |
4462 | "type": "object", | 4787 | "type": "object", |
4463 | "title": "MiniUserInfoRequest" | 4788 | "title": "MiniUserInfoRequest" |
@@ -4610,6 +4935,51 @@ | @@ -4610,6 +4935,51 @@ | ||
4610 | "success" | 4935 | "success" |
4611 | ] | 4936 | ] |
4612 | }, | 4937 | }, |
4938 | + "MiniUserNewsRequest": { | ||
4939 | + "type": "object", | ||
4940 | + "properties": { | ||
4941 | + "authorId": { | ||
4942 | + "type": "integer", | ||
4943 | + "format": "int64", | ||
4944 | + "description": " 特定作者ID" | ||
4945 | + }, | ||
4946 | + "lastArticleId": { | ||
4947 | + "type": "integer", | ||
4948 | + "format": "int64", | ||
4949 | + "description": " 最后文章ID" | ||
4950 | + }, | ||
4951 | + "size": { | ||
4952 | + "type": "integer", | ||
4953 | + "format": "int32", | ||
4954 | + "description": " 数量" | ||
4955 | + } | ||
4956 | + }, | ||
4957 | + "title": "MiniUserNewsRequest", | ||
4958 | + "required": [ | ||
4959 | + "size" | ||
4960 | + ] | ||
4961 | + }, | ||
4962 | + "MiniUserNewsResposne": { | ||
4963 | + "type": "object", | ||
4964 | + "properties": { | ||
4965 | + "list": { | ||
4966 | + "type": "array", | ||
4967 | + "items": { | ||
4968 | + "$ref": "#/definitions/UserNewsItem" | ||
4969 | + } | ||
4970 | + }, | ||
4971 | + "lastArticleId": { | ||
4972 | + "type": "integer", | ||
4973 | + "format": "int64", | ||
4974 | + "description": " 最后文章ID" | ||
4975 | + } | ||
4976 | + }, | ||
4977 | + "title": "MiniUserNewsResposne", | ||
4978 | + "required": [ | ||
4979 | + "list", | ||
4980 | + "lastArticleId" | ||
4981 | + ] | ||
4982 | + }, | ||
4613 | "MiniUserSwitchAccountRequest": { | 4983 | "MiniUserSwitchAccountRequest": { |
4614 | "type": "object", | 4984 | "type": "object", |
4615 | "properties": { | 4985 | "properties": { |
@@ -4623,6 +4993,22 @@ | @@ -4623,6 +4993,22 @@ | ||
4623 | "companyId" | 4993 | "companyId" |
4624 | ] | 4994 | ] |
4625 | }, | 4995 | }, |
4996 | + "MiniUsersListRequest": { | ||
4997 | + "type": "object", | ||
4998 | + "properties": { | ||
4999 | + "articleId": { | ||
5000 | + "type": "integer", | ||
5001 | + "format": "int64", | ||
5002 | + "description": " 按文章ID(返回文章可见的用户)" | ||
5003 | + }, | ||
5004 | + "roleId": { | ||
5005 | + "type": "integer", | ||
5006 | + "format": "int64", | ||
5007 | + "description": " 按角色角色关联的用户" | ||
5008 | + } | ||
5009 | + }, | ||
5010 | + "title": "MiniUsersListRequest" | ||
5011 | + }, | ||
4626 | "MyLikeItem": { | 5012 | "MyLikeItem": { |
4627 | "type": "object", | 5013 | "type": "object", |
4628 | "properties": { | 5014 | "properties": { |
@@ -6738,6 +7124,11 @@ | @@ -6738,6 +7124,11 @@ | ||
6738 | "type": "boolean", | 7124 | "type": "boolean", |
6739 | "format": "boolean", | 7125 | "format": "boolean", |
6740 | "description": " 互相关注标识" | 7126 | "description": " 互相关注标识" |
7127 | + }, | ||
7128 | + "readFlag": { | ||
7129 | + "type": "boolean", | ||
7130 | + "format": "boolean", | ||
7131 | + "description": " 已读标识 true:已读 false:未读(小红点)" | ||
6741 | } | 7132 | } |
6742 | }, | 7133 | }, |
6743 | "title": "UserFollowItem", | 7134 | "title": "UserFollowItem", |
@@ -6748,7 +7139,8 @@ | @@ -6748,7 +7139,8 @@ | ||
6748 | "avatar", | 7139 | "avatar", |
6749 | "position", | 7140 | "position", |
6750 | "followed", | 7141 | "followed", |
6751 | - "mutualFollowed" | 7142 | + "mutualFollowed", |
7143 | + "readFlag" | ||
6752 | ] | 7144 | ] |
6753 | }, | 7145 | }, |
6754 | "UserItem": { | 7146 | "UserItem": { |
@@ -6768,6 +7160,10 @@ | @@ -6768,6 +7160,10 @@ | ||
6768 | "type": "string", | 7160 | "type": "string", |
6769 | "description": " 公司名称" | 7161 | "description": " 公司名称" |
6770 | }, | 7162 | }, |
7163 | + "companyCode": { | ||
7164 | + "type": "string", | ||
7165 | + "description": " 公司编码(邀请码)" | ||
7166 | + }, | ||
6771 | "flag": { | 7167 | "flag": { |
6772 | "type": "integer", | 7168 | "type": "integer", |
6773 | "format": "int32", | 7169 | "format": "int32", |
@@ -6832,6 +7228,7 @@ | @@ -6832,6 +7228,7 @@ | ||
6832 | "id", | 7228 | "id", |
6833 | "companyId", | 7229 | "companyId", |
6834 | "companyName", | 7230 | "companyName", |
7231 | + "companyCode", | ||
6835 | "flag", | 7232 | "flag", |
6836 | "name", | 7233 | "name", |
6837 | "avatar", | 7234 | "avatar", |
@@ -6845,6 +7242,47 @@ | @@ -6845,6 +7242,47 @@ | ||
6845 | "accountFrom" | 7242 | "accountFrom" |
6846 | ] | 7243 | ] |
6847 | }, | 7244 | }, |
7245 | + "UserNewsItem": { | ||
7246 | + "type": "object", | ||
7247 | + "properties": { | ||
7248 | + "newsId": { | ||
7249 | + "type": "integer", | ||
7250 | + "format": "int64", | ||
7251 | + "description": " 快讯ID" | ||
7252 | + }, | ||
7253 | + "type": { | ||
7254 | + "type": "string", | ||
7255 | + "description": " 快讯类型 文章:Article 讨论:Discuss ..." | ||
7256 | + }, | ||
7257 | + "title": { | ||
7258 | + "type": "string", | ||
7259 | + "description": " 标题" | ||
7260 | + }, | ||
7261 | + "summary": { | ||
7262 | + "type": "string", | ||
7263 | + "description": " 快讯概要" | ||
7264 | + }, | ||
7265 | + "time": { | ||
7266 | + "type": "integer", | ||
7267 | + "format": "int64", | ||
7268 | + "description": " 时间" | ||
7269 | + }, | ||
7270 | + "readFlag": { | ||
7271 | + "type": "boolean", | ||
7272 | + "format": "boolean", | ||
7273 | + "description": " 已读标识 true:已读 false:未读" | ||
7274 | + } | ||
7275 | + }, | ||
7276 | + "title": "UserNewsItem", | ||
7277 | + "required": [ | ||
7278 | + "newsId", | ||
7279 | + "type", | ||
7280 | + "title", | ||
7281 | + "summary", | ||
7282 | + "time", | ||
7283 | + "readFlag" | ||
7284 | + ] | ||
7285 | + }, | ||
6848 | "UserSearchRequest": { | 7286 | "UserSearchRequest": { |
6849 | "type": "object", | 7287 | "type": "object", |
6850 | "properties": { | 7288 | "properties": { |
@@ -11,6 +11,7 @@ info( | @@ -11,6 +11,7 @@ info( | ||
11 | @server( | 11 | @server( |
12 | prefix: v1/system | 12 | prefix: v1/system |
13 | group: tags | 13 | group: tags |
14 | + middleware: LoginStatusCheck | ||
14 | jwt: SystemAuth | 15 | jwt: SystemAuth |
15 | ) | 16 | ) |
16 | service Core { | 17 | service Core { |
@@ -47,7 +48,7 @@ type ( | @@ -47,7 +48,7 @@ type ( | ||
47 | Name string `json:"name"` // 标签名称 | 48 | Name string `json:"name"` // 标签名称 |
48 | Category string `json:"category"` // 标签分类 | 49 | Category string `json:"category"` // 标签分类 |
49 | Remark string `json:"remark,optional"` // 备注 | 50 | Remark string `json:"remark,optional"` // 备注 |
50 | - Other string `json:"other"` | 51 | + Other string `json:"other,optional"` |
51 | } | 52 | } |
52 | 53 | ||
53 | TagCreateResponse { | 54 | TagCreateResponse { |
@@ -64,7 +65,7 @@ type ( | @@ -64,7 +65,7 @@ type ( | ||
64 | Name string `json:"name"` // 标签名称 | 65 | Name string `json:"name"` // 标签名称 |
65 | Category string `json:"category"` // 标签分类 | 66 | Category string `json:"category"` // 标签分类 |
66 | Remark string `json:"remark,optional"` // 备注 | 67 | Remark string `json:"remark,optional"` // 备注 |
67 | - Other string `json:"other"` | 68 | + Other string `json:"other,optional"` |
68 | } | 69 | } |
69 | 70 | ||
70 | 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( |
@@ -131,7 +131,7 @@ type( | @@ -131,7 +131,7 @@ type( | ||
131 | } | 131 | } |
132 | MiniUserNewsResposne{ | 132 | MiniUserNewsResposne{ |
133 | List []UserNewsItem `json:"list"` | 133 | List []UserNewsItem `json:"list"` |
134 | - Total int64 `json:"total"` | 134 | + LastArticleId int64 `json:"lastArticleId"`// 最后文章ID |
135 | } | 135 | } |
136 | UserNewsItem{ | 136 | UserNewsItem{ |
137 | NewsId int64 `json:"newsId"` // 快讯ID | 137 | NewsId int64 `json:"newsId"` // 快讯ID |
@@ -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"` |
1 | Name: discuss | 1 | Name: discuss |
2 | Host: 0.0.0.0 | 2 | Host: 0.0.0.0 |
3 | Port: 8081 | 3 | Port: 8081 |
4 | -Verbose: false | 4 | +Verbose: true |
5 | Migrate: false | 5 | Migrate: false |
6 | Timeout: 30000 | 6 | Timeout: 30000 |
7 | +# CertFile: ./key/fjmaimaimai.com_bundle.crt | ||
8 | +# KeyFile: ./key/fjmaimaimai.com.key | ||
7 | Log: | 9 | Log: |
8 | #Mode: file | 10 | #Mode: file |
9 | Encoding: plain | 11 | Encoding: plain |
@@ -113,38 +113,41 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { | @@ -113,38 +113,41 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { | ||
113 | ) | 113 | ) |
114 | 114 | ||
115 | server.AddRoutes( | 115 | server.AddRoutes( |
116 | - []rest.Route{ | ||
117 | - { | ||
118 | - Method: http.MethodPost, | ||
119 | - Path: "/article_tag", | ||
120 | - Handler: tags.CreateTagHandler(serverCtx), | ||
121 | - }, | ||
122 | - { | ||
123 | - Method: http.MethodPut, | ||
124 | - Path: "/article_tag", | ||
125 | - Handler: tags.EditTagHandler(serverCtx), | ||
126 | - }, | ||
127 | - { | ||
128 | - Method: http.MethodGet, | ||
129 | - Path: "/article_tag/:id", | ||
130 | - Handler: tags.GetTagHandler(serverCtx), | ||
131 | - }, | ||
132 | - { | ||
133 | - Method: http.MethodDelete, | ||
134 | - Path: "/article_tag/:id", | ||
135 | - Handler: tags.DeleteTagHandler(serverCtx), | ||
136 | - }, | ||
137 | - { | ||
138 | - Method: http.MethodPost, | ||
139 | - Path: "/article_tag/search", | ||
140 | - Handler: tags.SearchTagHandler(serverCtx), | ||
141 | - }, | ||
142 | - { | ||
143 | - Method: http.MethodGet, | ||
144 | - Path: "/article_tag/options", | ||
145 | - Handler: tags.OptionsHandler(serverCtx), | ||
146 | - }, | ||
147 | - }, | 116 | + rest.WithMiddlewares( |
117 | + []rest.Middleware{serverCtx.LoginStatusCheck}, | ||
118 | + []rest.Route{ | ||
119 | + { | ||
120 | + Method: http.MethodPost, | ||
121 | + Path: "/article_tag", | ||
122 | + Handler: tags.CreateTagHandler(serverCtx), | ||
123 | + }, | ||
124 | + { | ||
125 | + Method: http.MethodPut, | ||
126 | + Path: "/article_tag", | ||
127 | + Handler: tags.EditTagHandler(serverCtx), | ||
128 | + }, | ||
129 | + { | ||
130 | + Method: http.MethodGet, | ||
131 | + Path: "/article_tag/:id", | ||
132 | + Handler: tags.GetTagHandler(serverCtx), | ||
133 | + }, | ||
134 | + { | ||
135 | + Method: http.MethodDelete, | ||
136 | + Path: "/article_tag/:id", | ||
137 | + Handler: tags.DeleteTagHandler(serverCtx), | ||
138 | + }, | ||
139 | + { | ||
140 | + Method: http.MethodPost, | ||
141 | + Path: "/article_tag/search", | ||
142 | + Handler: tags.SearchTagHandler(serverCtx), | ||
143 | + }, | ||
144 | + { | ||
145 | + Method: http.MethodGet, | ||
146 | + Path: "/article_tag/options", | ||
147 | + Handler: tags.OptionsHandler(serverCtx), | ||
148 | + }, | ||
149 | + }..., | ||
150 | + ), | ||
148 | rest.WithJwt(serverCtx.Config.SystemAuth.AccessSecret), | 151 | rest.WithJwt(serverCtx.Config.SystemAuth.AccessSecret), |
149 | rest.WithPrefix("/v1/system"), | 152 | rest.WithPrefix("/v1/system"), |
150 | ) | 153 | ) |
@@ -239,7 +242,7 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { | @@ -239,7 +242,7 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { | ||
239 | }, | 242 | }, |
240 | { | 243 | { |
241 | Method: http.MethodPost, | 244 | Method: http.MethodPost, |
242 | - Path: "/user/mylike", | 245 | + Path: "/mini/user/mylike", |
243 | Handler: user.MiniMyLikeHandler(serverCtx), | 246 | Handler: user.MiniMyLikeHandler(serverCtx), |
244 | }, | 247 | }, |
245 | }, | 248 | }, |
@@ -336,13 +339,16 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { | @@ -336,13 +339,16 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { | ||
336 | ) | 339 | ) |
337 | 340 | ||
338 | server.AddRoutes( | 341 | server.AddRoutes( |
339 | - []rest.Route{ | ||
340 | - { | ||
341 | - Method: http.MethodPost, | ||
342 | - Path: "/system/company/search", | ||
343 | - Handler: company.SystemCompanySearchHandler(serverCtx), | ||
344 | - }, | ||
345 | - }, | 342 | + rest.WithMiddlewares( |
343 | + []rest.Middleware{serverCtx.LoginStatusCheck}, | ||
344 | + []rest.Route{ | ||
345 | + { | ||
346 | + Method: http.MethodPost, | ||
347 | + Path: "/system/company/search", | ||
348 | + Handler: company.SystemCompanySearchHandler(serverCtx), | ||
349 | + }, | ||
350 | + }..., | ||
351 | + ), | ||
346 | rest.WithJwt(serverCtx.Config.SystemAuth.AccessSecret), | 352 | rest.WithJwt(serverCtx.Config.SystemAuth.AccessSecret), |
347 | rest.WithPrefix("/v1"), | 353 | rest.WithPrefix("/v1"), |
348 | ) | 354 | ) |
@@ -440,43 +446,46 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { | @@ -440,43 +446,46 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { | ||
440 | ) | 446 | ) |
441 | 447 | ||
442 | server.AddRoutes( | 448 | server.AddRoutes( |
443 | - []rest.Route{ | ||
444 | - { | ||
445 | - Method: http.MethodGet, | ||
446 | - Path: "/article/:id", | ||
447 | - Handler: article.SystemGetArticleHandler(serverCtx), | ||
448 | - }, | ||
449 | - { | ||
450 | - Method: http.MethodPost, | ||
451 | - Path: "/article/search", | ||
452 | - Handler: article.SystemSearchArticleHandler(serverCtx), | ||
453 | - }, | ||
454 | - { | ||
455 | - Method: http.MethodPut, | ||
456 | - Path: "/article", | ||
457 | - Handler: article.SystemUpdateArticleHandler(serverCtx), | ||
458 | - }, | ||
459 | - { | ||
460 | - Method: http.MethodPost, | ||
461 | - Path: "/article/history", | ||
462 | - Handler: article.SystemHistoryArticleHandler(serverCtx), | ||
463 | - }, | ||
464 | - { | ||
465 | - Method: http.MethodGet, | ||
466 | - Path: "/article/history/:id", | ||
467 | - Handler: article.SystemArticleGetHistoryHandler(serverCtx), | ||
468 | - }, | ||
469 | - { | ||
470 | - Method: http.MethodPost, | ||
471 | - Path: "/article/search/me", | ||
472 | - Handler: article.SystemArticleSearchMeHandler(serverCtx), | ||
473 | - }, | ||
474 | - { | ||
475 | - Method: http.MethodPost, | ||
476 | - Path: "/article/restore", | ||
477 | - Handler: article.SystemArticleRestoreHandler(serverCtx), | ||
478 | - }, | ||
479 | - }, | 449 | + rest.WithMiddlewares( |
450 | + []rest.Middleware{serverCtx.LoginStatusCheck}, | ||
451 | + []rest.Route{ | ||
452 | + { | ||
453 | + Method: http.MethodGet, | ||
454 | + Path: "/article/:id", | ||
455 | + Handler: article.SystemGetArticleHandler(serverCtx), | ||
456 | + }, | ||
457 | + { | ||
458 | + Method: http.MethodPost, | ||
459 | + Path: "/article/search", | ||
460 | + Handler: article.SystemSearchArticleHandler(serverCtx), | ||
461 | + }, | ||
462 | + { | ||
463 | + Method: http.MethodPut, | ||
464 | + Path: "/article", | ||
465 | + Handler: article.SystemUpdateArticleHandler(serverCtx), | ||
466 | + }, | ||
467 | + { | ||
468 | + Method: http.MethodPost, | ||
469 | + Path: "/article/history", | ||
470 | + Handler: article.SystemHistoryArticleHandler(serverCtx), | ||
471 | + }, | ||
472 | + { | ||
473 | + Method: http.MethodGet, | ||
474 | + Path: "/article/history/:id", | ||
475 | + Handler: article.SystemArticleGetHistoryHandler(serverCtx), | ||
476 | + }, | ||
477 | + { | ||
478 | + Method: http.MethodPost, | ||
479 | + Path: "/article/search/me", | ||
480 | + Handler: article.SystemArticleSearchMeHandler(serverCtx), | ||
481 | + }, | ||
482 | + { | ||
483 | + Method: http.MethodPost, | ||
484 | + Path: "/article/restore", | ||
485 | + Handler: article.SystemArticleRestoreHandler(serverCtx), | ||
486 | + }, | ||
487 | + }..., | ||
488 | + ), | ||
480 | rest.WithJwt(serverCtx.Config.SystemAuth.AccessSecret), | 489 | rest.WithJwt(serverCtx.Config.SystemAuth.AccessSecret), |
481 | rest.WithPrefix("/v1/system"), | 490 | rest.WithPrefix("/v1/system"), |
482 | ) | 491 | ) |
@@ -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 { |
@@ -49,6 +49,9 @@ func (l *MiniUserLoginLogic) MiniUserLogin(req *types.MiniUserLoginRequest) (res | @@ -49,6 +49,9 @@ func (l *MiniUserLoginLogic) MiniUserLogin(req *types.MiniUserLoginRequest) (res | ||
49 | if err != nil { | 49 | if err != nil { |
50 | return | 50 | return |
51 | } | 51 | } |
52 | + if loginInfo.User == nil { | ||
53 | + return nil, xerr.NewErrMsgErr("用户不存在", err) | ||
54 | + } | ||
52 | var userJwtToken = tool.UserToken{} | 55 | var userJwtToken = tool.UserToken{} |
53 | if loginInfo.User != nil { | 56 | if loginInfo.User != nil { |
54 | userJwtToken.UserId = loginInfo.User.Id | 57 | userJwtToken.UserId = loginInfo.User.Id |
@@ -2,6 +2,10 @@ package user | @@ -2,6 +2,10 @@ package user | ||
2 | 2 | ||
3 | import ( | 3 | import ( |
4 | "context" | 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/contextdata" | ||
8 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/xerr" | ||
5 | 9 | ||
6 | "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc" | 10 | "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc" |
7 | "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types" | 11 | "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types" |
@@ -24,7 +28,51 @@ func NewMiniUserNewsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Mini | @@ -24,7 +28,51 @@ func NewMiniUserNewsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Mini | ||
24 | } | 28 | } |
25 | 29 | ||
26 | func (l *MiniUserNewsLogic) MiniUserNews(req *types.MiniUserNewsRequest) (resp *types.MiniUserNewsResposne, err error) { | 30 | func (l *MiniUserNewsLogic) MiniUserNews(req *types.MiniUserNewsRequest) (resp *types.MiniUserNewsResposne, err error) { |
27 | - // todo: add your logic here and delete this line | ||
28 | - | 31 | + var ( |
32 | + conn = l.svcCtx.DefaultDBConn() | ||
33 | + user *domain.User | ||
34 | + userToken = contextdata.GetUserTokenFromCtx(l.ctx) | ||
35 | + articles []*domain.Article | ||
36 | + readedArticles = make([]*domain.UserReadArticle, 0) | ||
37 | + ) | ||
38 | + if user, err = l.svcCtx.UserRepository.FindOne(l.ctx, conn, userToken.UserId); err != nil { | ||
39 | + return nil, xerr.NewErrMsgErr("用户不存在", err) | ||
40 | + } | ||
41 | + var ( | ||
42 | + users = user.Following | ||
43 | + ) | ||
44 | + if req.AuthorId > 0 { | ||
45 | + users = []int64{req.AuthorId} | ||
46 | + } | ||
47 | + if _, articles, err = l.svcCtx.ArticleRepository.FindAuthorsLatestArticle(l.ctx, conn, user.CompanyId, users, user.Id, req.LastArticleId, req.Size); err != nil { | ||
48 | + return nil, xerr.NewErrMsgErr("获取快讯异常", err) | ||
49 | + } | ||
50 | + resp = &types.MiniUserNewsResposne{ | ||
51 | + List: make([]types.UserNewsItem, 0), | ||
52 | + } | ||
53 | + articleIds := domain.Values(articles, func(item *domain.Article) int64 { | ||
54 | + return item.Id | ||
55 | + }) | ||
56 | + if len(articleIds) > 0 { | ||
57 | + resp.LastArticleId = articleIds[len(articleIds)-1] | ||
58 | + _, readedArticles, _ = l.svcCtx.UserReadArticleRepository.Find(l.ctx, conn, domain.IndexCompanyId(userToken.CompanyId)().WithKV("articleIds", articleIds)) | ||
59 | + } | ||
60 | + readArticlesMap := lo.KeyBy(readedArticles, func(item *domain.UserReadArticle) int64 { | ||
61 | + return item.ArticleId | ||
62 | + }) | ||
63 | + lo.ForEach(articles, func(item *domain.Article, index int) { | ||
64 | + newsItem := types.UserNewsItem{ | ||
65 | + NewsId: item.Id, | ||
66 | + Type: "article", | ||
67 | + Title: item.Title, | ||
68 | + Summary: item.Summary, | ||
69 | + Time: item.CreatedAt, | ||
70 | + ReadFlag: false, | ||
71 | + } | ||
72 | + if _, ok := readArticlesMap[item.Id]; ok { | ||
73 | + newsItem.ReadFlag = true | ||
74 | + } | ||
75 | + resp.List = append(resp.List, newsItem) | ||
76 | + }) | ||
29 | return | 77 | return |
30 | } | 78 | } |
@@ -93,12 +93,70 @@ func (l *SystemUserInfoLogic) SystemUserInfo(req *types.SystemUserInfoRequest) ( | @@ -93,12 +93,70 @@ func (l *SystemUserInfoLogic) SystemUserInfo(req *types.SystemUserInfoRequest) ( | ||
93 | } | 93 | } |
94 | } | 94 | } |
95 | } | 95 | } |
96 | + err = l.initSystemData(companyId) | ||
97 | + if err != nil { | ||
98 | + return nil, err | ||
99 | + } | ||
96 | return | 100 | return |
97 | } | 101 | } |
98 | 102 | ||
99 | -// 后台登录时 ,检查/设置公司的初始数据 | 103 | +// 后台登录时检查/设置公司的初始数据 |
100 | func (l *SystemUserInfoLogic) initSystemData(companyId int64) error { | 104 | func (l *SystemUserInfoLogic) initSystemData(companyId int64) error { |
101 | - // TODO 初始设置文章标签 | 105 | + // 初始设置文章标签 |
106 | + queryOption := domain.NewQueryOptions().WithCountOnly() | ||
107 | + conn := l.svcCtx.DefaultDBConn() | ||
108 | + cnt, _, err := l.svcCtx.ArticleTagRepository.Find(l.ctx, conn, companyId, queryOption) | ||
109 | + if err != nil { | ||
110 | + return xerr.NewErrMsgErr("初始话公司数据失败", err) | ||
111 | + } | ||
112 | + if cnt == 0 { | ||
113 | + articleTags := []*domain.ArticleTag{ | ||
114 | + { | ||
115 | + Id: 0, CompanyId: companyId, Image: domain.Image{Url: "", Width: 0, Height: 0}, | ||
116 | + Name: "紧急重要", Category: "紧急重要", Remark: "优先解决", SortBy: 1, | ||
117 | + }, | ||
118 | + { | ||
119 | + Id: 0, CompanyId: companyId, Image: domain.Image{Url: "", Width: 0, Height: 0}, | ||
120 | + Name: "不紧急不重要", Category: "紧急重要", Remark: "给别人做", SortBy: 2, | ||
121 | + }, | ||
122 | + { | ||
123 | + Id: 0, CompanyId: companyId, Image: domain.Image{Url: "", Width: 0, Height: 0}, | ||
124 | + Name: "紧急不重要", Category: "紧急重要", Remark: "有空再做", SortBy: 3, | ||
125 | + }, | ||
126 | + { | ||
127 | + Id: 0, CompanyId: companyId, Image: domain.Image{Url: "", Width: 0, Height: 0}, | ||
128 | + Name: "不紧急重要", Category: "紧急重要", Remark: "制定计划去做", SortBy: 4, | ||
129 | + }, | ||
130 | + { | ||
131 | + Id: 0, CompanyId: companyId, Image: domain.Image{Url: "", Width: 0, Height: 0}, | ||
132 | + Name: "大机会高风险", Category: "机会风险", Remark: "谨慎考虑专项讨论", SortBy: 5, | ||
133 | + }, | ||
134 | + { | ||
135 | + Id: 0, CompanyId: companyId, Image: domain.Image{Url: "", Width: 0, Height: 0}, | ||
136 | + Name: "大机会中风险", Category: "机会风险", Remark: "加大关注值得尝试", SortBy: 6, | ||
137 | + }, | ||
138 | + { | ||
139 | + Id: 0, CompanyId: companyId, Image: domain.Image{Url: "", Width: 0, Height: 0}, | ||
140 | + Name: "大机会低风险", Category: "机会风险", Remark: "全员投入抓紧落实", SortBy: 7, | ||
141 | + }, | ||
142 | + { | ||
143 | + Id: 0, CompanyId: companyId, Image: domain.Image{Url: "", Width: 0, Height: 0}, | ||
144 | + Name: "中机会高风险", Category: "机会风险", Remark: "专人跟踪成立项目", SortBy: 8, | ||
145 | + }, | ||
146 | + { | ||
147 | + Id: 0, CompanyId: companyId, Image: domain.Image{Url: "", Width: 0, Height: 0}, | ||
148 | + Name: "中机会中风险", Category: "机会风险", Remark: "讨论落实", SortBy: 9, | ||
149 | + }, | ||
150 | + { | ||
151 | + Id: 0, CompanyId: companyId, Image: domain.Image{Url: "", Width: 0, Height: 0}, | ||
152 | + Name: "中机会低风险", Category: "机会风险", Remark: "解决问题多手准备", SortBy: 10, | ||
153 | + }, | ||
154 | + } | ||
155 | + err = l.svcCtx.ArticleTagRepository.CreateInBatches(l.ctx, conn, articleTags) | ||
156 | + if err != nil { | ||
157 | + return xerr.NewErrMsgErr("初始话公司数据失败", err) | ||
158 | + } | ||
159 | + } | ||
102 | 160 | ||
103 | return nil | 161 | return nil |
104 | } | 162 | } |
@@ -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 { |
@@ -464,8 +464,8 @@ type MiniUserNewsRequest struct { | @@ -464,8 +464,8 @@ type MiniUserNewsRequest struct { | ||
464 | } | 464 | } |
465 | 465 | ||
466 | type MiniUserNewsResposne struct { | 466 | type MiniUserNewsResposne struct { |
467 | - List []UserNewsItem `json:"list"` | ||
468 | - Total int64 `json:"total"` | 467 | + List []UserNewsItem `json:"list"` |
468 | + LastArticleId int64 `json:"lastArticleId"` // 最后文章ID | ||
469 | } | 469 | } |
470 | 470 | ||
471 | type UserNewsItem struct { | 471 | type UserNewsItem 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 | } |
@@ -168,12 +170,14 @@ func (repository *ArticleRepository) FindAuthorsLatestArticle(ctx context.Contex | @@ -168,12 +170,14 @@ func (repository *ArticleRepository) FindAuthorsLatestArticle(ctx context.Contex | ||
168 | ) | 170 | ) |
169 | queryFunc := func() (interface{}, error) { | 171 | queryFunc := func() (interface{}, error) { |
170 | tx = tx.Model(&ms). | 172 | tx = tx.Model(&ms). |
171 | - Where("id < ?", lastId). | ||
172 | Where("company_id=?", companyId). | 173 | Where("company_id=?", companyId). |
173 | Where("author_id in (?)", authors). | 174 | Where("author_id in (?)", authors). |
174 | - Where("target_user=0 or who_read @>'[?]'", whoRead). | ||
175 | - Where("show = 1"). | ||
176 | - Order("id desc") | 175 | + Where(fmt.Sprintf("target_user=0 or who_read @>'[%d]'", whoRead)). |
176 | + Where("show = 1") | ||
177 | + if lastId > 0 { | ||
178 | + tx.Where("id < ?", lastId) | ||
179 | + } | ||
180 | + tx.Order("id desc") | ||
177 | if limit > 0 { | 181 | if limit > 0 { |
178 | tx.Limit(limit) | 182 | tx.Limit(limit) |
179 | } | 183 | } |
@@ -33,7 +33,28 @@ func (repository *ArticleTagRepository) Insert(ctx context.Context, conn transac | @@ -33,7 +33,28 @@ func (repository *ArticleTagRepository) Insert(ctx context.Context, conn transac | ||
33 | 33 | ||
34 | } | 34 | } |
35 | 35 | ||
36 | -// func (repository *ArticleTagRepository) CreateInBatches | 36 | +func (repository *ArticleTagRepository) CreateInBatches(ctx context.Context, conn transaction.Conn, dm []*domain.ArticleTag) error { |
37 | + | ||
38 | + var ( | ||
39 | + ms = []*models.ArticleTag{} | ||
40 | + tx = conn.DB() | ||
41 | + ) | ||
42 | + | ||
43 | + for _, val := range dm { | ||
44 | + m, err := repository.DomainModelToModel(val) | ||
45 | + if err != nil { | ||
46 | + return err | ||
47 | + } | ||
48 | + ms = append(ms, m) | ||
49 | + } | ||
50 | + if tx = tx.CreateInBatches(ms, 100); tx.Error != nil { | ||
51 | + return tx.Error | ||
52 | + } | ||
53 | + for i, val := range ms { | ||
54 | + dm[i].Id = val.Id | ||
55 | + } | ||
56 | + return nil | ||
57 | +} | ||
37 | 58 | ||
38 | func (repository *ArticleTagRepository) Update(ctx context.Context, conn transaction.Conn, dm *domain.ArticleTag) (*domain.ArticleTag, error) { | 59 | func (repository *ArticleTagRepository) Update(ctx context.Context, conn transaction.Conn, dm *domain.ArticleTag) (*domain.ArticleTag, error) { |
39 | var ( | 60 | var ( |
@@ -134,7 +155,9 @@ func (repository *ArticleTagRepository) Find(ctx context.Context, conn transacti | @@ -134,7 +155,9 @@ func (repository *ArticleTagRepository) Find(ctx context.Context, conn transacti | ||
134 | if v, ok := queryOptions["ids"]; ok { | 155 | if v, ok := queryOptions["ids"]; ok { |
135 | tx = tx.Where("id in (?)", v) | 156 | tx = tx.Where("id in (?)", v) |
136 | } | 157 | } |
137 | - | 158 | + if v, ok := queryOptions["remark"]; ok { |
159 | + tx = tx.Where("remark like ?", v) | ||
160 | + } | ||
138 | 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 { |
139 | return dms, tx.Error | 162 | return dms, tx.Error |
140 | } | 163 | } |
@@ -40,6 +40,7 @@ type ArticleRepository interface { | @@ -40,6 +40,7 @@ type ArticleRepository interface { | ||
40 | Find(ctx context.Context, conn transaction.Conn, companyId int64, queryOptions map[string]interface{}) (int64, []*Article, error) | 40 | Find(ctx context.Context, conn transaction.Conn, companyId int64, queryOptions map[string]interface{}) (int64, []*Article, error) |
41 | FindAuthorsLatestFirstArticle(ctx context.Context, conn transaction.Conn, companyId int64, authors []int64, whoRead int64, limit int) (int64, []*Article, error) | 41 | FindAuthorsLatestFirstArticle(ctx context.Context, conn transaction.Conn, companyId int64, authors []int64, whoRead int64, limit int) (int64, []*Article, error) |
42 | FindAuthorsLatestFirstUnreadArticle(ctx context.Context, conn transaction.Conn, companyId int64, authors []int64, whoRead int64, limit int) (int64, []*Article, error) | 42 | FindAuthorsLatestFirstUnreadArticle(ctx context.Context, conn transaction.Conn, companyId int64, authors []int64, whoRead int64, limit int) (int64, []*Article, error) |
43 | + FindAuthorsLatestArticle(ctx context.Context, conn transaction.Conn, companyId int64, authors []int64, whoRead int64, lastId int64, limit int) (int64, []*Article, error) | ||
43 | IncreaseCountLove(ctx context.Context, conn transaction.Conn, incr int, articleId int64) error //点赞数量变动 | 44 | IncreaseCountLove(ctx context.Context, conn transaction.Conn, incr int, articleId int64) error //点赞数量变动 |
44 | IncreaseCountComment(ctx context.Context, conn transaction.Conn, incr int, articleId int64) error //评论数量变动 | 45 | IncreaseCountComment(ctx context.Context, conn transaction.Conn, incr int, articleId int64) error //评论数量变动 |
45 | IncreaseCountRead(ctx context.Context, conn transaction.Conn, incr int, articleId int64) error //浏览数量变动 | 46 | IncreaseCountRead(ctx context.Context, conn transaction.Conn, incr int, articleId int64) error //浏览数量变动 |
@@ -24,6 +24,7 @@ type ArticleTag struct { | @@ -24,6 +24,7 @@ type ArticleTag struct { | ||
24 | } | 24 | } |
25 | type ArticleTagRepository interface { | 25 | type ArticleTagRepository interface { |
26 | Insert(ctx context.Context, conn transaction.Conn, dm *ArticleTag) (*ArticleTag, error) | 26 | Insert(ctx context.Context, conn transaction.Conn, dm *ArticleTag) (*ArticleTag, error) |
27 | + CreateInBatches(ctx context.Context, conn transaction.Conn, dm []*ArticleTag) error | ||
27 | Update(ctx context.Context, conn transaction.Conn, dm *ArticleTag) (*ArticleTag, error) | 28 | Update(ctx context.Context, conn transaction.Conn, dm *ArticleTag) (*ArticleTag, error) |
28 | Delete(ctx context.Context, conn transaction.Conn, dm *ArticleTag) (*ArticleTag, error) | 29 | Delete(ctx context.Context, conn transaction.Conn, dm *ArticleTag) (*ArticleTag, error) |
29 | UpdateWithVersion(ctx context.Context, conn transaction.Conn, dm *ArticleTag) (*ArticleTag, error) | 30 | UpdateWithVersion(ctx context.Context, conn transaction.Conn, dm *ArticleTag) (*ArticleTag, error) |
@@ -10,7 +10,7 @@ type Auth struct { | @@ -10,7 +10,7 @@ type Auth struct { | ||
10 | } | 10 | } |
11 | type Config struct { | 11 | type Config struct { |
12 | DB struct { | 12 | DB struct { |
13 | - DataSource string | 13 | + DataSource string `json:",env=DataSource"` |
14 | } `json:",optional"` | 14 | } `json:",optional"` |
15 | Cache cache.CacheConf `json:",optional"` | 15 | Cache cache.CacheConf `json:",optional"` |
16 | DTM DTM `json:",optional"` | 16 | DTM DTM `json:",optional"` |
-
请 注册 或 登录 后发表评论