From 31d4a34ebbf95ea8cbec79a427926afbf3988f3e Mon Sep 17 00:00:00 2001 From: marsal Date: Mon, 13 Jul 2026 09:38:03 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E6=B8=A0=E9=81=93?= =?UTF-8?q?=E8=BA=AB=E4=BB=BD=E8=8F=9C=E5=8D=95=E3=80=81=E4=BC=9A=E8=AF=9D?= =?UTF-8?q?=E6=88=90=E5=91=98/=E6=A0=87=E7=AD=BE=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=E3=80=81=E4=BF=AE=E5=A4=8D=E7=BE=A4=E8=81=8A=E6=88=90=E5=91=98?= =?UTF-8?q?=20person=5Ftype=20=E5=8F=8A=E9=87=8D=E5=A4=8D=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin-web/src/api/channel.ts | 16 +++ admin-web/src/components/Layout.vue | 1 + admin-web/src/router/index.ts | 2 + admin-web/src/views/ChannelIdentity.vue | 112 ++++++++++++++++++ admin-web/src/views/Conversation.vue | 91 ++++++++++++++ admin-web/tsconfig.app.tsbuildinfo | 2 +- .../wecom/sync/RealWeComSyncClient.java | 1 + .../wecom/sync/WeComConversationMember.java | 1 + .../controller/ChannelIdentityController.java | 82 +++++++++++++ .../controller/ConversationController.java | 16 +++ .../channel/dto/ChannelIdentityResponse.java | 19 +++ .../dto/ConversationParticipantResponse.java | 19 +++ .../com/sino/mci/channel/dto/TagResponse.java | 16 +++ .../ConversationParticipantMapper.java | 4 + .../channel/service/ConversationService.java | 107 +++++++++++++++++ .../channel/service/SyncDataPersister.java | 18 ++- 16 files changed, 502 insertions(+), 5 deletions(-) create mode 100644 admin-web/src/views/ChannelIdentity.vue create mode 100644 backend/mci-server/src/main/java/com/sino/mci/channel/controller/ChannelIdentityController.java create mode 100644 backend/mci-server/src/main/java/com/sino/mci/channel/dto/ChannelIdentityResponse.java create mode 100644 backend/mci-server/src/main/java/com/sino/mci/channel/dto/ConversationParticipantResponse.java create mode 100644 backend/mci-server/src/main/java/com/sino/mci/channel/dto/TagResponse.java diff --git a/admin-web/src/api/channel.ts b/admin-web/src/api/channel.ts index 066edf2..36f357e 100644 --- a/admin-web/src/api/channel.ts +++ b/admin-web/src/api/channel.ts @@ -2,6 +2,10 @@ import client from './client' export * from './channelSubject' export * from './channelAccount' +export interface ChannelIdentityQuery { + keyword?: string +} + export function createConversation(data: any) { return client.post('/api/v1/conversation', data) } @@ -25,3 +29,15 @@ export function bindConversationAccount(conversationId: number, data: any) { export function bindConversationTags(conversationId: number, data: any) { return client.post(`/api/v1/conversation/${conversationId}/bind-tags`, data) } + +export function listChannelIdentities(params?: ChannelIdentityQuery) { + return client.get('/api/v1/channel-identity/list', { params }) +} + +export function listConversationParticipants(conversationId: number) { + return client.get(`/api/v1/conversation/${conversationId}/participants`) +} + +export function listConversationTags(conversationId: number) { + return client.get(`/api/v1/conversation/${conversationId}/tags`) +} diff --git a/admin-web/src/components/Layout.vue b/admin-web/src/components/Layout.vue index 9ae9152..8d2aa0a 100644 --- a/admin-web/src/components/Layout.vue +++ b/admin-web/src/components/Layout.vue @@ -27,6 +27,7 @@ 渠道主体 渠道应用 渠道账号 + 渠道身份 diff --git a/admin-web/src/router/index.ts b/admin-web/src/router/index.ts index 528791c..2d72397 100644 --- a/admin-web/src/router/index.ts +++ b/admin-web/src/router/index.ts @@ -4,6 +4,7 @@ import Dashboard from '../views/Dashboard.vue' import ChannelSubject from '../views/ChannelSubject.vue' import ChannelApp from '../views/ChannelApp.vue' import ChannelAccount from '../views/ChannelAccount.vue' +import ChannelIdentity from '../views/ChannelIdentity.vue' import Person from '../views/Person.vue' import Conversation from '../views/Conversation.vue' import Tag from '../views/Tag.vue' @@ -30,6 +31,7 @@ const routes = [ { path: 'channel/subject', component: ChannelSubject, meta: { title: '渠道主体' } }, { path: 'channel/app', component: ChannelApp, meta: { title: '渠道应用' } }, { path: 'channel/account', component: ChannelAccount, meta: { title: '渠道账号' } }, + { path: 'channel/identity', component: ChannelIdentity, meta: { title: '渠道身份' } }, { path: 'customer/person', component: Person, meta: { title: '联系人' } }, { path: 'customer/group', component: Conversation, meta: { title: '群聊' } }, { path: 'customer/tag', component: Tag, meta: { title: '标签体系' } }, diff --git a/admin-web/src/views/ChannelIdentity.vue b/admin-web/src/views/ChannelIdentity.vue new file mode 100644 index 0000000..7b42345 --- /dev/null +++ b/admin-web/src/views/ChannelIdentity.vue @@ -0,0 +1,112 @@ + + + diff --git a/admin-web/src/views/Conversation.vue b/admin-web/src/views/Conversation.vue index b577b3a..bd81609 100644 --- a/admin-web/src/views/Conversation.vue +++ b/admin-web/src/views/Conversation.vue @@ -151,6 +151,38 @@ + + +
+
群成员
+ + + + + + + + + + +
+ + + +
+
已绑定标签
+
+ + {{ t.tagName }} + +
+ +
+