wfz 2 år sedan
förälder
incheckning
4d6f52883f

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 524 - 453
api/ai/ai.pb.go


+ 12 - 0
api/ai/ai.proto

@@ -137,6 +137,18 @@ service Ai {
       body:"*"
     };
   };
+  // 获取ai订阅消息模板
+  rpc GetAISubscribeMessage (google.protobuf.Empty) returns (GetAISubscribeMessageReply){
+    option (google.api.http) = {
+      post: "/api/ai/subscribe/id",
+      body:"*"
+    };
+  };
+}
+
+message GetAISubscribeMessageReply{
+  repeated string linkSubscribeTemplateIds = 2;// 点击【提交链接】按钮收集
+  repeated string shareSubscribeTemplateIds = 3;// 点击【立即邀请】按钮收集
 }
 
 message GetMiniProgramConfReply{

+ 38 - 0
api/ai/ai_grpc.pb.go

@@ -59,6 +59,8 @@ type AiClient interface {
 	ShareUserInto(ctx context.Context, in *ShareUserIntoRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
 	// vip直接升级
 	GetMiniProgramConf(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetMiniProgramConfReply, error)
+	// 获取ai订阅消息模板
+	GetAISubscribeMessage(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetAISubscribeMessageReply, error)
 }
 
 type aiClient struct {
@@ -249,6 +251,15 @@ func (c *aiClient) GetMiniProgramConf(ctx context.Context, in *emptypb.Empty, op
 	return out, nil
 }
 
+func (c *aiClient) GetAISubscribeMessage(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetAISubscribeMessageReply, error) {
+	out := new(GetAISubscribeMessageReply)
+	err := c.cc.Invoke(ctx, "/api.ai.Ai/GetAISubscribeMessage", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 // AiServer is the server API for Ai service.
 // All implementations must embed UnimplementedAiServer
 // for forward compatibility
@@ -293,6 +304,8 @@ type AiServer interface {
 	ShareUserInto(context.Context, *ShareUserIntoRequest) (*emptypb.Empty, error)
 	// vip直接升级
 	GetMiniProgramConf(context.Context, *emptypb.Empty) (*GetMiniProgramConfReply, error)
+	// 获取ai订阅消息模板
+	GetAISubscribeMessage(context.Context, *emptypb.Empty) (*GetAISubscribeMessageReply, error)
 	mustEmbedUnimplementedAiServer()
 }
 
@@ -360,6 +373,9 @@ func (UnimplementedAiServer) ShareUserInto(context.Context, *ShareUserIntoReques
 func (UnimplementedAiServer) GetMiniProgramConf(context.Context, *emptypb.Empty) (*GetMiniProgramConfReply, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetMiniProgramConf not implemented")
 }
+func (UnimplementedAiServer) GetAISubscribeMessage(context.Context, *emptypb.Empty) (*GetAISubscribeMessageReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GetAISubscribeMessage not implemented")
+}
 func (UnimplementedAiServer) mustEmbedUnimplementedAiServer() {}
 
 // UnsafeAiServer may be embedded to opt out of forward compatibility for this service.
@@ -733,6 +749,24 @@ func _Ai_GetMiniProgramConf_Handler(srv interface{}, ctx context.Context, dec fu
 	return interceptor(ctx, in, info, handler)
 }
 
+func _Ai_GetAISubscribeMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(emptypb.Empty)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AiServer).GetAISubscribeMessage(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/api.ai.Ai/GetAISubscribeMessage",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AiServer).GetAISubscribeMessage(ctx, req.(*emptypb.Empty))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 // Ai_ServiceDesc is the grpc.ServiceDesc for Ai service.
 // It's only intended for direct use with grpc.RegisterService,
 // and not to be introspected or modified (even as a copy)
@@ -820,6 +854,10 @@ var Ai_ServiceDesc = grpc.ServiceDesc{
 			MethodName: "GetMiniProgramConf",
 			Handler:    _Ai_GetMiniProgramConf_Handler,
 		},
+		{
+			MethodName: "GetAISubscribeMessage",
+			Handler:    _Ai_GetAISubscribeMessage_Handler,
+		},
 	},
 	Streams:  []grpc.StreamDesc{},
 	Metadata: "ai.proto",

+ 43 - 0
api/ai/ai_http.pb.go

@@ -36,6 +36,7 @@ type AiHTTPServer interface {
 	FindUserAIMessage(context.Context, *emptypb.Empty) (*FindUserAIMessageReply, error)
 	GetAIRobot(context.Context, *AIRobotIDRequest) (*AIRobotInfo, error)
 	GetAIShareMessage(context.Context, *GetAIShareMessageRequest) (*GetAIShareMessageReply, error)
+	GetAISubscribeMessage(context.Context, *emptypb.Empty) (*GetAISubscribeMessageReply, error)
 	GetAdditionalService(context.Context, *GetAdditionalServiceRequest) (*GetAdditionalServiceReply, error)
 	GetMiniProgramConf(context.Context, *emptypb.Empty) (*GetMiniProgramConfReply, error)
 	GetShareQrcode(context.Context, *GetAIShareMessageRequest) (*GetShareQrcodeReply, error)
@@ -65,6 +66,7 @@ func RegisterAiHTTPServer(s *http.Server, srv AiHTTPServer) {
 	r.POST("/api/share/ai/link", _Ai_SetVideoLink0_HTTP_Handler(srv))
 	r.POST("/api/share/ai/vip", _Ai_VipUpAI0_HTTP_Handler(srv))
 	r.POST("/api/ai/share/conf", _Ai_GetMiniProgramConf0_HTTP_Handler(srv))
+	r.POST("/api/ai/subscribe/id", _Ai_GetAISubscribeMessage0_HTTP_Handler(srv))
 }
 
 func _Ai_FindAITemplate0_HTTP_Handler(srv AiHTTPServer) func(ctx http.Context) error {
@@ -526,6 +528,33 @@ func _Ai_GetMiniProgramConf0_HTTP_Handler(srv AiHTTPServer) func(ctx http.Contex
 	}
 }
 
+func _Ai_GetAISubscribeMessage0_HTTP_Handler(srv AiHTTPServer) func(ctx http.Context) error {
+	return func(ctx http.Context) error {
+		var in emptypb.Empty
+		if err := ctx.Bind(&in); err != nil {
+			return err
+		}
+		if err := ctx.BindQuery(&in); err != nil {
+			return err
+		}
+		http.SetOperation(ctx, "/api.ai.Ai/GetAISubscribeMessage")
+		h := ctx.Middleware(func(ctx context.Context, req interface{}) (interface{}, error) {
+			return srv.GetAISubscribeMessage(ctx, req.(*emptypb.Empty))
+		})
+		out, err := h(ctx, &in)
+		if err != nil {
+			return err
+		}
+		success := &reply.SuccessReply{
+			Code: 0,
+		}
+		if out != nil {
+			success.Data = out
+		}
+		return ctx.Result(200, success)
+	}
+}
+
 type AiHTTPClient interface {
 	CreateAIRobot(ctx context.Context, req *CreateAIRobotRequest, opts ...http.CallOption) (rsp *AIRobotIDReply, err error)
 	DeleteAIRobot(ctx context.Context, req *AIRobotIDRequest, opts ...http.CallOption) (rsp *emptypb.Empty, err error)
@@ -536,6 +565,7 @@ type AiHTTPClient interface {
 	FindUserAIMessage(ctx context.Context, req *emptypb.Empty, opts ...http.CallOption) (rsp *FindUserAIMessageReply, err error)
 	GetAIRobot(ctx context.Context, req *AIRobotIDRequest, opts ...http.CallOption) (rsp *AIRobotInfo, err error)
 	GetAIShareMessage(ctx context.Context, req *GetAIShareMessageRequest, opts ...http.CallOption) (rsp *GetAIShareMessageReply, err error)
+	GetAISubscribeMessage(ctx context.Context, req *emptypb.Empty, opts ...http.CallOption) (rsp *GetAISubscribeMessageReply, err error)
 	GetAdditionalService(ctx context.Context, req *GetAdditionalServiceRequest, opts ...http.CallOption) (rsp *GetAdditionalServiceReply, err error)
 	GetMiniProgramConf(ctx context.Context, req *emptypb.Empty, opts ...http.CallOption) (rsp *GetMiniProgramConfReply, err error)
 	GetShareQrcode(ctx context.Context, req *GetAIShareMessageRequest, opts ...http.CallOption) (rsp *GetShareQrcodeReply, err error)
@@ -671,6 +701,19 @@ func (c *AiHTTPClientImpl) GetAIShareMessage(ctx context.Context, in *GetAIShare
 	return &out, err
 }
 
+func (c *AiHTTPClientImpl) GetAISubscribeMessage(ctx context.Context, in *emptypb.Empty, opts ...http.CallOption) (*GetAISubscribeMessageReply, error) {
+	var out GetAISubscribeMessageReply
+	pattern := "/api/ai/subscribe/id"
+	path := binding.EncodeURL(pattern, in, false)
+	opts = append(opts, http.Operation("/api.ai.Ai/GetAISubscribeMessage"))
+	opts = append(opts, http.PathTemplate(pattern))
+	err := c.cc.Invoke(ctx, "POST", path, in, &out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return &out, err
+}
+
 func (c *AiHTTPClientImpl) GetAdditionalService(ctx context.Context, in *GetAdditionalServiceRequest, opts ...http.CallOption) (*GetAdditionalServiceReply, error) {
 	var out GetAdditionalServiceReply
 	pattern := "/api/ai/service/get"

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 380 - 306
api/statistics/statistics.pb.go


+ 12 - 0
api/statistics/statistics.proto

@@ -43,6 +43,13 @@ service Statistics {
       body:"*"
     };
   };
+  // 统计订阅消息
+  rpc StatisticsAISubscribeMessage (StatisticsAISubscribeMessageRequest) returns (google.protobuf.Empty){
+    option (google.api.http) = {
+      post: "/api/common/ai/subscribe/statistic",
+      body:"*"
+    };
+  };
   // 减少订阅消息
   rpc ReduceSubscribeMessage (ReduceSubscribeMessageRequest) returns (google.protobuf.Empty){};
   // 获取订阅了签到的人
@@ -60,6 +67,11 @@ message StatisticsSubscribeMessageRequest{
   repeated string idList = 1;
 }
 
+message StatisticsAISubscribeMessageRequest{
+  repeated string idList = 1;
+  string userId = 2;
+}
+
 message GetPartnerReplyMsgReply{
   double fiveMinuteReplyRate = 1;// 五分钟回复率
   int64 chatNum = 2;// 聊天数

+ 38 - 0
api/statistics/statistics_grpc.pb.go

@@ -46,6 +46,8 @@ type StatisticsClient interface {
 	GetIsLike(ctx context.Context, in *PersonMessage, opts ...grpc.CallOption) (*common.IsLike, error)
 	// 统计订阅消息
 	StatisticsSubscribeMessage(ctx context.Context, in *StatisticsSubscribeMessageRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// 统计订阅消息
+	StatisticsAISubscribeMessage(ctx context.Context, in *StatisticsAISubscribeMessageRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
 	// 减少订阅消息
 	ReduceSubscribeMessage(ctx context.Context, in *ReduceSubscribeMessageRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
 	// 获取订阅了签到的人
@@ -179,6 +181,15 @@ func (c *statisticsClient) StatisticsSubscribeMessage(ctx context.Context, in *S
 	return out, nil
 }
 
+func (c *statisticsClient) StatisticsAISubscribeMessage(ctx context.Context, in *StatisticsAISubscribeMessageRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, "/api.statistics.Statistics/StatisticsAISubscribeMessage", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 func (c *statisticsClient) ReduceSubscribeMessage(ctx context.Context, in *ReduceSubscribeMessageRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
 	out := new(emptypb.Empty)
 	err := c.cc.Invoke(ctx, "/api.statistics.Statistics/ReduceSubscribeMessage", in, out, opts...)
@@ -236,6 +247,8 @@ type StatisticsServer interface {
 	GetIsLike(context.Context, *PersonMessage) (*common.IsLike, error)
 	// 统计订阅消息
 	StatisticsSubscribeMessage(context.Context, *StatisticsSubscribeMessageRequest) (*emptypb.Empty, error)
+	// 统计订阅消息
+	StatisticsAISubscribeMessage(context.Context, *StatisticsAISubscribeMessageRequest) (*emptypb.Empty, error)
 	// 减少订阅消息
 	ReduceSubscribeMessage(context.Context, *ReduceSubscribeMessageRequest) (*emptypb.Empty, error)
 	// 获取订阅了签到的人
@@ -288,6 +301,9 @@ func (UnimplementedStatisticsServer) GetIsLike(context.Context, *PersonMessage)
 func (UnimplementedStatisticsServer) StatisticsSubscribeMessage(context.Context, *StatisticsSubscribeMessageRequest) (*emptypb.Empty, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method StatisticsSubscribeMessage not implemented")
 }
+func (UnimplementedStatisticsServer) StatisticsAISubscribeMessage(context.Context, *StatisticsAISubscribeMessageRequest) (*emptypb.Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method StatisticsAISubscribeMessage not implemented")
+}
 func (UnimplementedStatisticsServer) ReduceSubscribeMessage(context.Context, *ReduceSubscribeMessageRequest) (*emptypb.Empty, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method ReduceSubscribeMessage not implemented")
 }
@@ -544,6 +560,24 @@ func _Statistics_StatisticsSubscribeMessage_Handler(srv interface{}, ctx context
 	return interceptor(ctx, in, info, handler)
 }
 
+func _Statistics_StatisticsAISubscribeMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(StatisticsAISubscribeMessageRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(StatisticsServer).StatisticsAISubscribeMessage(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/api.statistics.Statistics/StatisticsAISubscribeMessage",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(StatisticsServer).StatisticsAISubscribeMessage(ctx, req.(*StatisticsAISubscribeMessageRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 func _Statistics_ReduceSubscribeMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(ReduceSubscribeMessageRequest)
 	if err := dec(in); err != nil {
@@ -657,6 +691,10 @@ var Statistics_ServiceDesc = grpc.ServiceDesc{
 			MethodName: "StatisticsSubscribeMessage",
 			Handler:    _Statistics_StatisticsSubscribeMessage_Handler,
 		},
+		{
+			MethodName: "StatisticsAISubscribeMessage",
+			Handler:    _Statistics_StatisticsAISubscribeMessage_Handler,
+		},
 		{
 			MethodName: "ReduceSubscribeMessage",
 			Handler:    _Statistics_ReduceSubscribeMessage_Handler,

+ 43 - 0
api/statistics/statistics_http.pb.go

@@ -27,12 +27,14 @@ var _ = new(base.Html)
 const _ = http.SupportPackageIsVersion1
 
 type StatisticsHTTPServer interface {
+	StatisticsAISubscribeMessage(context.Context, *StatisticsAISubscribeMessageRequest) (*emptypb.Empty, error)
 	StatisticsSubscribeMessage(context.Context, *StatisticsSubscribeMessageRequest) (*emptypb.Empty, error)
 }
 
 func RegisterStatisticsHTTPServer(s *http.Server, srv StatisticsHTTPServer) {
 	r := s.Route("/")
 	r.POST("/api/common/subscribe/statistic", _Statistics_StatisticsSubscribeMessage0_HTTP_Handler(srv))
+	r.POST("/api/common/ai/subscribe/statistic", _Statistics_StatisticsAISubscribeMessage0_HTTP_Handler(srv))
 }
 
 func _Statistics_StatisticsSubscribeMessage0_HTTP_Handler(srv StatisticsHTTPServer) func(ctx http.Context) error {
@@ -62,7 +64,35 @@ func _Statistics_StatisticsSubscribeMessage0_HTTP_Handler(srv StatisticsHTTPServ
 	}
 }
 
+func _Statistics_StatisticsAISubscribeMessage0_HTTP_Handler(srv StatisticsHTTPServer) func(ctx http.Context) error {
+	return func(ctx http.Context) error {
+		var in StatisticsAISubscribeMessageRequest
+		if err := ctx.Bind(&in); err != nil {
+			return err
+		}
+		if err := ctx.BindQuery(&in); err != nil {
+			return err
+		}
+		http.SetOperation(ctx, "/api.statistics.Statistics/StatisticsAISubscribeMessage")
+		h := ctx.Middleware(func(ctx context.Context, req interface{}) (interface{}, error) {
+			return srv.StatisticsAISubscribeMessage(ctx, req.(*StatisticsAISubscribeMessageRequest))
+		})
+		out, err := h(ctx, &in)
+		if err != nil {
+			return err
+		}
+		success := &reply.SuccessReply{
+			Code: 0,
+		}
+		if out != nil {
+			success.Data = out
+		}
+		return ctx.Result(200, success)
+	}
+}
+
 type StatisticsHTTPClient interface {
+	StatisticsAISubscribeMessage(ctx context.Context, req *StatisticsAISubscribeMessageRequest, opts ...http.CallOption) (rsp *emptypb.Empty, err error)
 	StatisticsSubscribeMessage(ctx context.Context, req *StatisticsSubscribeMessageRequest, opts ...http.CallOption) (rsp *emptypb.Empty, err error)
 }
 
@@ -74,6 +104,19 @@ func NewStatisticsHTTPClient(client *http.Client) StatisticsHTTPClient {
 	return &StatisticsHTTPClientImpl{client}
 }
 
+func (c *StatisticsHTTPClientImpl) StatisticsAISubscribeMessage(ctx context.Context, in *StatisticsAISubscribeMessageRequest, opts ...http.CallOption) (*emptypb.Empty, error) {
+	var out emptypb.Empty
+	pattern := "/api/common/ai/subscribe/statistic"
+	path := binding.EncodeURL(pattern, in, false)
+	opts = append(opts, http.Operation("/api.statistics.Statistics/StatisticsAISubscribeMessage"))
+	opts = append(opts, http.PathTemplate(pattern))
+	err := c.cc.Invoke(ctx, "POST", path, in, &out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return &out, err
+}
+
 func (c *StatisticsHTTPClientImpl) StatisticsSubscribeMessage(ctx context.Context, in *StatisticsSubscribeMessageRequest, opts ...http.CallOption) (*emptypb.Empty, error) {
 	var out emptypb.Empty
 	pattern := "/api/common/subscribe/statistic"

+ 6 - 1
js/api/ai/ai_http_pb.ts

@@ -1,6 +1,6 @@
 // @ts-ignore
 import request from '@/libs/request';
-import {FindAITemplateRequest,FindAITemplateReply,CreateAIRobotRequest,AIRobotIDReply,AIRobotIDRequest,UpdateAIRobotRequest,FindAIRobotListRequest,AIRobotList,AIRobotInfo,FindAIChatRecordListRequest,AIRecordListReply,SendAIChatRequest,FindAdditionalServiceTemplateListReply,GetAdditionalServiceRequest,GetAdditionalServiceReply,UpdateAdditionalServiceRequest,FindUserAIMessageReply,GetIsReadRequest,GetAIShareMessageRequest,GetAIShareMessageReply,GetShareQrcodeReply,SetVideoLinkRequest,ShareUserIntoRequest,GetMiniProgramConfReply} from "./ai_pb";
+import {FindAITemplateRequest,FindAITemplateReply,CreateAIRobotRequest,AIRobotIDReply,AIRobotIDRequest,UpdateAIRobotRequest,FindAIRobotListRequest,AIRobotList,AIRobotInfo,FindAIChatRecordListRequest,AIRecordListReply,SendAIChatRequest,FindAdditionalServiceTemplateListReply,GetAdditionalServiceRequest,GetAdditionalServiceReply,UpdateAdditionalServiceRequest,FindUserAIMessageReply,GetIsReadRequest,GetAIShareMessageRequest,GetAIShareMessageReply,GetShareQrcodeReply,SetVideoLinkRequest,ShareUserIntoRequest,GetMiniProgramConfReply,GetAISubscribeMessageReply} from "./ai_pb";
 
 const AiService = {
   /**  查询AI模板 */
@@ -88,6 +88,11 @@ const AiService = {
 	const res = await request.post<{ data: GetMiniProgramConfReply, code: string, message: string }>('/api/ai/share/conf', req);
     return res.data.data;
   },
+  /**  获取ai订阅消息模板 */
+  GetAISubscribeMessage: async (req?: undefined) => {
+	const res = await request.post<{ data: GetAISubscribeMessageReply, code: string, message: string }>('/api/ai/subscribe/id', req);
+    return res.data.data;
+  },
 
 };
 

+ 6 - 0
js/api/ai/ai_pb.ts

@@ -1,3 +1,9 @@
+export interface GetAISubscribeMessageReply{
+    /**  点击【提交链接】按钮收集 */
+    linkSubscribeTemplateIds?:Array<string>;
+    /**  点击【立即邀请】按钮收集 */
+    shareSubscribeTemplateIds?:Array<string>;
+}
 export interface GetMiniProgramConfReply{
     appid?:string;
     path?:string;

+ 6 - 1
js/api/statistics/statistics_http_pb.ts

@@ -1,6 +1,6 @@
 // @ts-ignore
 import request from '@/libs/request';
-import {PersonMessage,GetLookAndLikeStatisticsMessageRequest,LookAndLikeMessageReply,LookMessageReply,UnlockLookRecordRequest,GetLookAndLikeListRequest,LookAndLikeListReply,StatisticsSubscribeMessageRequest,ReduceSubscribeMessageRequest} from "./statistics_pb";
+import {PersonMessage,GetLookAndLikeStatisticsMessageRequest,LookAndLikeMessageReply,LookMessageReply,UnlockLookRecordRequest,GetLookAndLikeListRequest,LookAndLikeListReply,StatisticsSubscribeMessageRequest,StatisticsAISubscribeMessageRequest,ReduceSubscribeMessageRequest} from "./statistics_pb";
 import {PersonParam,IsLike,PersonIDList} from "../common/common_pb";
 
 const StatisticsService = {
@@ -9,6 +9,11 @@ const StatisticsService = {
 	const res = await request.post('/api/common/subscribe/statistic', req);
     return res.data.data;
   },
+  /**  统计订阅消息 */
+  StatisticsAISubscribeMessage: async (req?: StatisticsAISubscribeMessageRequest) => {
+	const res = await request.post('/api/common/ai/subscribe/statistic', req);
+    return res.data.data;
+  },
 
 };
 

+ 4 - 0
js/api/statistics/statistics_pb.ts

@@ -5,6 +5,10 @@ export interface ReduceSubscribeMessageRequest{
 export interface StatisticsSubscribeMessageRequest{
     idList?:Array<string>;
 }
+export interface StatisticsAISubscribeMessageRequest{
+    idList?:Array<string>;
+    userId?:string;
+}
 export interface GetPartnerReplyMsgReply{
     /**  五分钟回复率 */
     fiveMinuteReplyRate?:number;

Vissa filer visades inte eftersom för många filer har ändrats