Przeglądaj źródła

websocket 额外服务

wfz 2 lat temu
rodzic
commit
53868bfe9f
7 zmienionych plików z 1183 dodań i 59 usunięć
  1. 601 57
      api/ai/ai.pb.go
  2. 89 0
      api/ai/ai.proto
  3. 228 0
      api/ai/ai_grpc.pb.go
  4. 172 0
      api/ai/ai_http.pb.go
  5. 3 1
      errors/ai.go
  6. 21 1
      js/api/ai/ai_http_pb.ts
  7. 69 0
      js/api/ai/ai_pb.ts

Plik diff jest za duży
+ 601 - 57
api/ai/ai.pb.go


+ 89 - 0
api/ai/ai.proto

@@ -67,6 +67,89 @@ service Ai {
       body:"*"
     };
   };
+  // 查询额外服务列表
+  rpc FindAdditionalServiceTemplateList (google.protobuf.Empty) returns (FindAdditionalServiceTemplateListReply){
+    option (google.api.http) = {
+      post: "/api/ai/service/list",
+      body:"*"
+    };
+  };
+  // 获取额外服务
+  rpc GetAdditionalService (GetAdditionalServiceRequest) returns (GetAdditionalServiceReply){
+    option (google.api.http) = {
+      post: "/api/ai/service/get",
+      body:"*"
+    };
+  };
+  // 创建额外服务
+  rpc CreateAdditionalService (CreateAdditionalServiceRequest) returns (CreateAdditionalServiceReply){
+    option (google.api.http) = {
+      post: "/api/ai/service/create",
+      body:"*"
+    };
+  };
+  // 更新额外服务
+  rpc UpdateAdditionalService (UpdateAdditionalServiceRequest) returns (google.protobuf.Empty){
+    option (google.api.http) = {
+      post: "/api/ai/service/update",
+      body:"*"
+    };
+  };
+  // 定时执行服务
+  rpc CronAdditionalService (google.protobuf.Empty) returns (google.protobuf.Empty){};
+  // 用户已读
+  rpc GetIsRead (GetIsReadRequest) returns (google.protobuf.Empty){};
+}
+
+message GetIsReadRequest{
+  string userId = 1;
+  int64 robotId = 2;
+}
+
+message UpdateAdditionalServiceRequest{
+  int64 id = 1;
+  string word = 3;// 关键词
+  bool isOpen = 4;// 是否开启
+  repeated int64 day = 5;// 定时的天
+  int64 hour = 6;// 定时小时
+}
+
+message CreateAdditionalServiceRequest{
+  int64 robotId = 2;// 机器人ID
+  string word = 3;// 关键词
+  bool isOpen = 4;// 是否开启
+  repeated int64 day = 5;// 定时的天
+  int64 hour = 6;// 定时小时
+  int64 templateId = 7;
+}
+
+message CreateAdditionalServiceReply{
+  int64 id = 1;
+}
+
+message GetAdditionalServiceRequest{
+  int64 templateId = 1;// 对应列表的ID
+  int64 robotId = 2;// 机器人ID
+}
+
+message GetAdditionalServiceReply{
+  int64 id = 1;
+  int64 robotId = 2;// 机器人ID
+  string word = 3;// 关键词
+  bool isOpen = 4;// 是否开启
+  repeated int64 day = 5;// 定时的天
+  int64 hour = 6;// 定时小时
+  int64 templateId = 7;
+}
+
+message FindAdditionalServiceTemplateListReply{
+  repeated AdditionalServiceTemplate List = 1;
+}
+
+message AdditionalServiceTemplate{
+  int64 id = 1;// id
+  string title = 2;// 名称
+  string pictureUrl = 3;// 图片链接
 }
 
 message AIRobotIDReply{
@@ -97,6 +180,7 @@ message SendAIChatRequest{
   int64 id = 1;
   string message = 2;// 消息
   string messageType = 3;// 消息类型
+  string websocketTag = 4;
 }
 
 message FindAIChatRecordListRequest{
@@ -160,6 +244,7 @@ message AITemplateInfo{
   string description = 7;// ai描述
   string constellation = 8;// ai星座
   repeated Relation relationList = 9;// ai关系列表
+  string introduceVoice = 10; // 介绍语音
 }
 
 message Relation{
@@ -173,4 +258,8 @@ message CreateAIRobotRequest{
   string aiName = 2;// 自定义ai名称
   string userName = 3;// ai对我的称呼
   int64 relationId = 4;// 关系ID
+}
+
+message SendNextNeedPayMessage{
+  int64 robotId = 2;// 机器人ID
 }

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

@@ -35,6 +35,18 @@ type AiClient interface {
 	FindAIChatRecordList(ctx context.Context, in *FindAIChatRecordListRequest, opts ...grpc.CallOption) (*AIRecordListReply, error)
 	// 发送消息给ai
 	SendAIChat(ctx context.Context, in *SendAIChatRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// 查询额外服务列表
+	FindAdditionalServiceTemplateList(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*FindAdditionalServiceTemplateListReply, error)
+	// 获取额外服务
+	GetAdditionalService(ctx context.Context, in *GetAdditionalServiceRequest, opts ...grpc.CallOption) (*GetAdditionalServiceReply, error)
+	// 创建额外服务
+	CreateAdditionalService(ctx context.Context, in *CreateAdditionalServiceRequest, opts ...grpc.CallOption) (*CreateAdditionalServiceReply, error)
+	// 更新额外服务
+	UpdateAdditionalService(ctx context.Context, in *UpdateAdditionalServiceRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// 定时执行服务
+	CronAdditionalService(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// 用户已读
+	GetIsRead(ctx context.Context, in *GetIsReadRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
 }
 
 type aiClient struct {
@@ -117,6 +129,60 @@ func (c *aiClient) SendAIChat(ctx context.Context, in *SendAIChatRequest, opts .
 	return out, nil
 }
 
+func (c *aiClient) FindAdditionalServiceTemplateList(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*FindAdditionalServiceTemplateListReply, error) {
+	out := new(FindAdditionalServiceTemplateListReply)
+	err := c.cc.Invoke(ctx, "/api.ai.Ai/FindAdditionalServiceTemplateList", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *aiClient) GetAdditionalService(ctx context.Context, in *GetAdditionalServiceRequest, opts ...grpc.CallOption) (*GetAdditionalServiceReply, error) {
+	out := new(GetAdditionalServiceReply)
+	err := c.cc.Invoke(ctx, "/api.ai.Ai/GetAdditionalService", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *aiClient) CreateAdditionalService(ctx context.Context, in *CreateAdditionalServiceRequest, opts ...grpc.CallOption) (*CreateAdditionalServiceReply, error) {
+	out := new(CreateAdditionalServiceReply)
+	err := c.cc.Invoke(ctx, "/api.ai.Ai/CreateAdditionalService", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *aiClient) UpdateAdditionalService(ctx context.Context, in *UpdateAdditionalServiceRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, "/api.ai.Ai/UpdateAdditionalService", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *aiClient) CronAdditionalService(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, "/api.ai.Ai/CronAdditionalService", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *aiClient) GetIsRead(ctx context.Context, in *GetIsReadRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, "/api.ai.Ai/GetIsRead", 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
@@ -137,6 +203,18 @@ type AiServer interface {
 	FindAIChatRecordList(context.Context, *FindAIChatRecordListRequest) (*AIRecordListReply, error)
 	// 发送消息给ai
 	SendAIChat(context.Context, *SendAIChatRequest) (*emptypb.Empty, error)
+	// 查询额外服务列表
+	FindAdditionalServiceTemplateList(context.Context, *emptypb.Empty) (*FindAdditionalServiceTemplateListReply, error)
+	// 获取额外服务
+	GetAdditionalService(context.Context, *GetAdditionalServiceRequest) (*GetAdditionalServiceReply, error)
+	// 创建额外服务
+	CreateAdditionalService(context.Context, *CreateAdditionalServiceRequest) (*CreateAdditionalServiceReply, error)
+	// 更新额外服务
+	UpdateAdditionalService(context.Context, *UpdateAdditionalServiceRequest) (*emptypb.Empty, error)
+	// 定时执行服务
+	CronAdditionalService(context.Context, *emptypb.Empty) (*emptypb.Empty, error)
+	// 用户已读
+	GetIsRead(context.Context, *GetIsReadRequest) (*emptypb.Empty, error)
 	mustEmbedUnimplementedAiServer()
 }
 
@@ -168,6 +246,24 @@ func (UnimplementedAiServer) FindAIChatRecordList(context.Context, *FindAIChatRe
 func (UnimplementedAiServer) SendAIChat(context.Context, *SendAIChatRequest) (*emptypb.Empty, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method SendAIChat not implemented")
 }
+func (UnimplementedAiServer) FindAdditionalServiceTemplateList(context.Context, *emptypb.Empty) (*FindAdditionalServiceTemplateListReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method FindAdditionalServiceTemplateList not implemented")
+}
+func (UnimplementedAiServer) GetAdditionalService(context.Context, *GetAdditionalServiceRequest) (*GetAdditionalServiceReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GetAdditionalService not implemented")
+}
+func (UnimplementedAiServer) CreateAdditionalService(context.Context, *CreateAdditionalServiceRequest) (*CreateAdditionalServiceReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method CreateAdditionalService not implemented")
+}
+func (UnimplementedAiServer) UpdateAdditionalService(context.Context, *UpdateAdditionalServiceRequest) (*emptypb.Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UpdateAdditionalService not implemented")
+}
+func (UnimplementedAiServer) CronAdditionalService(context.Context, *emptypb.Empty) (*emptypb.Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method CronAdditionalService not implemented")
+}
+func (UnimplementedAiServer) GetIsRead(context.Context, *GetIsReadRequest) (*emptypb.Empty, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GetIsRead not implemented")
+}
 func (UnimplementedAiServer) mustEmbedUnimplementedAiServer() {}
 
 // UnsafeAiServer may be embedded to opt out of forward compatibility for this service.
@@ -325,6 +421,114 @@ func _Ai_SendAIChat_Handler(srv interface{}, ctx context.Context, dec func(inter
 	return interceptor(ctx, in, info, handler)
 }
 
+func _Ai_FindAdditionalServiceTemplateList_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).FindAdditionalServiceTemplateList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/api.ai.Ai/FindAdditionalServiceTemplateList",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AiServer).FindAdditionalServiceTemplateList(ctx, req.(*emptypb.Empty))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Ai_GetAdditionalService_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GetAdditionalServiceRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AiServer).GetAdditionalService(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/api.ai.Ai/GetAdditionalService",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AiServer).GetAdditionalService(ctx, req.(*GetAdditionalServiceRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Ai_CreateAdditionalService_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(CreateAdditionalServiceRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AiServer).CreateAdditionalService(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/api.ai.Ai/CreateAdditionalService",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AiServer).CreateAdditionalService(ctx, req.(*CreateAdditionalServiceRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Ai_UpdateAdditionalService_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UpdateAdditionalServiceRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AiServer).UpdateAdditionalService(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/api.ai.Ai/UpdateAdditionalService",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AiServer).UpdateAdditionalService(ctx, req.(*UpdateAdditionalServiceRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Ai_CronAdditionalService_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).CronAdditionalService(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/api.ai.Ai/CronAdditionalService",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AiServer).CronAdditionalService(ctx, req.(*emptypb.Empty))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Ai_GetIsRead_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GetIsReadRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AiServer).GetIsRead(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/api.ai.Ai/GetIsRead",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AiServer).GetIsRead(ctx, req.(*GetIsReadRequest))
+	}
+	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)
@@ -364,6 +568,30 @@ var Ai_ServiceDesc = grpc.ServiceDesc{
 			MethodName: "SendAIChat",
 			Handler:    _Ai_SendAIChat_Handler,
 		},
+		{
+			MethodName: "FindAdditionalServiceTemplateList",
+			Handler:    _Ai_FindAdditionalServiceTemplateList_Handler,
+		},
+		{
+			MethodName: "GetAdditionalService",
+			Handler:    _Ai_GetAdditionalService_Handler,
+		},
+		{
+			MethodName: "CreateAdditionalService",
+			Handler:    _Ai_CreateAdditionalService_Handler,
+		},
+		{
+			MethodName: "UpdateAdditionalService",
+			Handler:    _Ai_UpdateAdditionalService_Handler,
+		},
+		{
+			MethodName: "CronAdditionalService",
+			Handler:    _Ai_CronAdditionalService_Handler,
+		},
+		{
+			MethodName: "GetIsRead",
+			Handler:    _Ai_GetIsRead_Handler,
+		},
 	},
 	Streams:  []grpc.StreamDesc{},
 	Metadata: "ai.proto",

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

@@ -28,13 +28,17 @@ const _ = http.SupportPackageIsVersion1
 
 type AiHTTPServer interface {
 	CreateAIRobot(context.Context, *CreateAIRobotRequest) (*AIRobotIDReply, error)
+	CreateAdditionalService(context.Context, *CreateAdditionalServiceRequest) (*CreateAdditionalServiceReply, error)
 	DeleteAIRobot(context.Context, *AIRobotIDRequest) (*emptypb.Empty, error)
 	FindAIChatRecordList(context.Context, *FindAIChatRecordListRequest) (*AIRecordListReply, error)
 	FindAIRobotList(context.Context, *FindAIRobotListRequest) (*AIRobotList, error)
 	FindAITemplate(context.Context, *FindAITemplateRequest) (*FindAITemplateReply, error)
+	FindAdditionalServiceTemplateList(context.Context, *emptypb.Empty) (*FindAdditionalServiceTemplateListReply, error)
 	GetAIRobot(context.Context, *AIRobotIDRequest) (*AIRobotInfo, error)
+	GetAdditionalService(context.Context, *GetAdditionalServiceRequest) (*GetAdditionalServiceReply, error)
 	SendAIChat(context.Context, *SendAIChatRequest) (*emptypb.Empty, error)
 	UpdateAIRobot(context.Context, *UpdateAIRobotRequest) (*AIRobotIDReply, error)
+	UpdateAdditionalService(context.Context, *UpdateAdditionalServiceRequest) (*emptypb.Empty, error)
 }
 
 func RegisterAiHTTPServer(s *http.Server, srv AiHTTPServer) {
@@ -47,6 +51,10 @@ func RegisterAiHTTPServer(s *http.Server, srv AiHTTPServer) {
 	r.POST("/api/ai/find/info", _Ai_GetAIRobot0_HTTP_Handler(srv))
 	r.POST("/api/ai/chat/record", _Ai_FindAIChatRecordList0_HTTP_Handler(srv))
 	r.POST("/api/ai/send", _Ai_SendAIChat0_HTTP_Handler(srv))
+	r.POST("/api/ai/service/list", _Ai_FindAdditionalServiceTemplateList0_HTTP_Handler(srv))
+	r.POST("/api/ai/service/get", _Ai_GetAdditionalService0_HTTP_Handler(srv))
+	r.POST("/api/ai/service/create", _Ai_CreateAdditionalService0_HTTP_Handler(srv))
+	r.POST("/api/ai/service/update", _Ai_UpdateAdditionalService0_HTTP_Handler(srv))
 }
 
 func _Ai_FindAITemplate0_HTTP_Handler(srv AiHTTPServer) func(ctx http.Context) error {
@@ -265,15 +273,127 @@ func _Ai_SendAIChat0_HTTP_Handler(srv AiHTTPServer) func(ctx http.Context) error
 	}
 }
 
+func _Ai_FindAdditionalServiceTemplateList0_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/FindAdditionalServiceTemplateList")
+		h := ctx.Middleware(func(ctx context.Context, req interface{}) (interface{}, error) {
+			return srv.FindAdditionalServiceTemplateList(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)
+	}
+}
+
+func _Ai_GetAdditionalService0_HTTP_Handler(srv AiHTTPServer) func(ctx http.Context) error {
+	return func(ctx http.Context) error {
+		var in GetAdditionalServiceRequest
+		if err := ctx.Bind(&in); err != nil {
+			return err
+		}
+		if err := ctx.BindQuery(&in); err != nil {
+			return err
+		}
+		http.SetOperation(ctx, "/api.ai.Ai/GetAdditionalService")
+		h := ctx.Middleware(func(ctx context.Context, req interface{}) (interface{}, error) {
+			return srv.GetAdditionalService(ctx, req.(*GetAdditionalServiceRequest))
+		})
+		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)
+	}
+}
+
+func _Ai_CreateAdditionalService0_HTTP_Handler(srv AiHTTPServer) func(ctx http.Context) error {
+	return func(ctx http.Context) error {
+		var in CreateAdditionalServiceRequest
+		if err := ctx.Bind(&in); err != nil {
+			return err
+		}
+		if err := ctx.BindQuery(&in); err != nil {
+			return err
+		}
+		http.SetOperation(ctx, "/api.ai.Ai/CreateAdditionalService")
+		h := ctx.Middleware(func(ctx context.Context, req interface{}) (interface{}, error) {
+			return srv.CreateAdditionalService(ctx, req.(*CreateAdditionalServiceRequest))
+		})
+		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)
+	}
+}
+
+func _Ai_UpdateAdditionalService0_HTTP_Handler(srv AiHTTPServer) func(ctx http.Context) error {
+	return func(ctx http.Context) error {
+		var in UpdateAdditionalServiceRequest
+		if err := ctx.Bind(&in); err != nil {
+			return err
+		}
+		if err := ctx.BindQuery(&in); err != nil {
+			return err
+		}
+		http.SetOperation(ctx, "/api.ai.Ai/UpdateAdditionalService")
+		h := ctx.Middleware(func(ctx context.Context, req interface{}) (interface{}, error) {
+			return srv.UpdateAdditionalService(ctx, req.(*UpdateAdditionalServiceRequest))
+		})
+		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)
+	CreateAdditionalService(ctx context.Context, req *CreateAdditionalServiceRequest, opts ...http.CallOption) (rsp *CreateAdditionalServiceReply, err error)
 	DeleteAIRobot(ctx context.Context, req *AIRobotIDRequest, opts ...http.CallOption) (rsp *emptypb.Empty, err error)
 	FindAIChatRecordList(ctx context.Context, req *FindAIChatRecordListRequest, opts ...http.CallOption) (rsp *AIRecordListReply, err error)
 	FindAIRobotList(ctx context.Context, req *FindAIRobotListRequest, opts ...http.CallOption) (rsp *AIRobotList, err error)
 	FindAITemplate(ctx context.Context, req *FindAITemplateRequest, opts ...http.CallOption) (rsp *FindAITemplateReply, err error)
+	FindAdditionalServiceTemplateList(ctx context.Context, req *emptypb.Empty, opts ...http.CallOption) (rsp *FindAdditionalServiceTemplateListReply, err error)
 	GetAIRobot(ctx context.Context, req *AIRobotIDRequest, opts ...http.CallOption) (rsp *AIRobotInfo, err error)
+	GetAdditionalService(ctx context.Context, req *GetAdditionalServiceRequest, opts ...http.CallOption) (rsp *GetAdditionalServiceReply, err error)
 	SendAIChat(ctx context.Context, req *SendAIChatRequest, opts ...http.CallOption) (rsp *emptypb.Empty, err error)
 	UpdateAIRobot(ctx context.Context, req *UpdateAIRobotRequest, opts ...http.CallOption) (rsp *AIRobotIDReply, err error)
+	UpdateAdditionalService(ctx context.Context, req *UpdateAdditionalServiceRequest, opts ...http.CallOption) (rsp *emptypb.Empty, err error)
 }
 
 type AiHTTPClientImpl struct {
@@ -297,6 +417,19 @@ func (c *AiHTTPClientImpl) CreateAIRobot(ctx context.Context, in *CreateAIRobotR
 	return &out, err
 }
 
+func (c *AiHTTPClientImpl) CreateAdditionalService(ctx context.Context, in *CreateAdditionalServiceRequest, opts ...http.CallOption) (*CreateAdditionalServiceReply, error) {
+	var out CreateAdditionalServiceReply
+	pattern := "/api/ai/service/create"
+	path := binding.EncodeURL(pattern, in, false)
+	opts = append(opts, http.Operation("/api.ai.Ai/CreateAdditionalService"))
+	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) DeleteAIRobot(ctx context.Context, in *AIRobotIDRequest, opts ...http.CallOption) (*emptypb.Empty, error) {
 	var out emptypb.Empty
 	pattern := "/api/ai/delete"
@@ -349,6 +482,19 @@ func (c *AiHTTPClientImpl) FindAITemplate(ctx context.Context, in *FindAITemplat
 	return &out, err
 }
 
+func (c *AiHTTPClientImpl) FindAdditionalServiceTemplateList(ctx context.Context, in *emptypb.Empty, opts ...http.CallOption) (*FindAdditionalServiceTemplateListReply, error) {
+	var out FindAdditionalServiceTemplateListReply
+	pattern := "/api/ai/service/list"
+	path := binding.EncodeURL(pattern, in, false)
+	opts = append(opts, http.Operation("/api.ai.Ai/FindAdditionalServiceTemplateList"))
+	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) GetAIRobot(ctx context.Context, in *AIRobotIDRequest, opts ...http.CallOption) (*AIRobotInfo, error) {
 	var out AIRobotInfo
 	pattern := "/api/ai/find/info"
@@ -362,6 +508,19 @@ func (c *AiHTTPClientImpl) GetAIRobot(ctx context.Context, in *AIRobotIDRequest,
 	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"
+	path := binding.EncodeURL(pattern, in, false)
+	opts = append(opts, http.Operation("/api.ai.Ai/GetAdditionalService"))
+	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) SendAIChat(ctx context.Context, in *SendAIChatRequest, opts ...http.CallOption) (*emptypb.Empty, error) {
 	var out emptypb.Empty
 	pattern := "/api/ai/send"
@@ -387,3 +546,16 @@ func (c *AiHTTPClientImpl) UpdateAIRobot(ctx context.Context, in *UpdateAIRobotR
 	}
 	return &out, err
 }
+
+func (c *AiHTTPClientImpl) UpdateAdditionalService(ctx context.Context, in *UpdateAdditionalServiceRequest, opts ...http.CallOption) (*emptypb.Empty, error) {
+	var out emptypb.Empty
+	pattern := "/api/ai/service/update"
+	path := binding.EncodeURL(pattern, in, false)
+	opts = append(opts, http.Operation("/api.ai.Ai/UpdateAdditionalService"))
+	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
+}

+ 3 - 1
errors/ai.go

@@ -3,5 +3,7 @@ package errors
 import "git.ikuban.com/server/kratos-utils/codes"
 
 var (
-	ErrorRobotNotExist = codes.Error(60001, "ai机器人不存在")
+	ErrorRobotNotExist         = codes.Error(60001, "ai机器人不存在")
+	ErrorRobotRelationNotExist = codes.Error(60002, "ai机器人对应的关系不存在")
+	ErrorServiceIsExist        = codes.Error(60003, "ai机器人对应的任务已存在")
 )

+ 21 - 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} from "./ai_pb";
+import {FindAITemplateRequest,FindAITemplateReply,CreateAIRobotRequest,AIRobotIDReply,AIRobotIDRequest,UpdateAIRobotRequest,FindAIRobotListRequest,AIRobotList,AIRobotInfo,FindAIChatRecordListRequest,AIRecordListReply,SendAIChatRequest,FindAdditionalServiceTemplateListReply,GetAdditionalServiceRequest,GetAdditionalServiceReply,CreateAdditionalServiceRequest,CreateAdditionalServiceReply,UpdateAdditionalServiceRequest,GetIsReadRequest} from "./ai_pb";
 
 const AiService = {
   /**  查询AI模板 */
@@ -43,6 +43,26 @@ const AiService = {
 	const res = await request.post('/api/ai/send', req);
     return res.data.data;
   },
+  /**  查询额外服务列表 */
+  FindAdditionalServiceTemplateList: async (req?: undefined) => {
+	const res = await request.post<{ data: FindAdditionalServiceTemplateListReply, code: string, message: string }>('/api/ai/service/list', req);
+    return res.data.data;
+  },
+  /**  获取额外服务 */
+  GetAdditionalService: async (req?: GetAdditionalServiceRequest) => {
+	const res = await request.post<{ data: GetAdditionalServiceReply, code: string, message: string }>('/api/ai/service/get', req);
+    return res.data.data;
+  },
+  /**  创建额外服务 */
+  CreateAdditionalService: async (req?: CreateAdditionalServiceRequest) => {
+	const res = await request.post<{ data: CreateAdditionalServiceReply, code: string, message: string }>('/api/ai/service/create', req);
+    return res.data.data;
+  },
+  /**  更新额外服务 */
+  UpdateAdditionalService: async (req?: UpdateAdditionalServiceRequest) => {
+	const res = await request.post('/api/ai/service/update', req);
+    return res.data.data;
+  },
 
 };
 

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

@@ -1,3 +1,65 @@
+export interface GetIsReadRequest{
+    userId?:string;
+    robotId?:number;
+}
+export interface UpdateAdditionalServiceRequest{
+    id?:number;
+    /**  关键词 */
+    word?:string;
+    /**  是否开启 */
+    isOpen?:boolean;
+    /**  定时的天 */
+    day?:Array<number>;
+    /**  定时小时 */
+    hour?:number;
+}
+export interface CreateAdditionalServiceRequest{
+    /**  机器人ID */
+    robotId?:number;
+    /**  关键词 */
+    word?:string;
+    /**  是否开启 */
+    isOpen?:boolean;
+    /**  定时的天 */
+    day?:Array<number>;
+    /**  定时小时 */
+    hour?:number;
+    templateId?:number;
+}
+export interface CreateAdditionalServiceReply{
+    id?:number;
+}
+export interface GetAdditionalServiceRequest{
+    /**  对应列表的ID */
+    templateId?:number;
+    /**  机器人ID */
+    robotId?:number;
+}
+export interface GetAdditionalServiceReply{
+    id?:number;
+    /**  机器人ID */
+    robotId?:number;
+    /**  关键词 */
+    word?:string;
+    /**  是否开启 */
+    isOpen?:boolean;
+    /**  定时的天 */
+    day?:Array<number>;
+    /**  定时小时 */
+    hour?:number;
+    templateId?:number;
+}
+export interface FindAdditionalServiceTemplateListReply{
+    List?:Array<AdditionalServiceTemplate>;
+}
+export interface AdditionalServiceTemplate{
+    /**  id */
+    id?:number;
+    /**  名称 */
+    title?:string;
+    /**  图片链接 */
+    pictureUrl?:string;
+}
 export interface AIRobotIDReply{
     id?:number;
 }
@@ -33,6 +95,7 @@ export interface SendAIChatRequest{
     message?:string;
     /**  消息类型 */
     messageType?:string;
+    websocketTag?:string;
 }
 export interface FindAIChatRecordListRequest{
     nextId?:number;
@@ -109,6 +172,8 @@ export interface AITemplateInfo{
     constellation?:string;
     /**  ai关系列表 */
     relationList?:Array<Relation>;
+    /**  介绍语音 */
+    introduceVoice?:string;
 }
 export interface Relation{
     /**  关系ID */
@@ -128,4 +193,8 @@ export interface CreateAIRobotRequest{
     /**  关系ID */
     relationId?:number;
 }
+export interface SendNextNeedPayMessage{
+    /**  机器人ID */
+    robotId?:number;
+}
 

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików