Browse Source

v0.0.1开发:apibff开发

#Suyghur 3 years ago
parent
commit
cc84082542

+ 14 - 6
bff/apibff/api/desc/apibff.api

@@ -1,8 +1,8 @@
 syntax = "v1"
 
 info(
-	title: "API聚合服务"
-	desc: "API聚合服务"
+	title: "api前端服务"
+	desc: "api前端服务 "
 	author: "#Suyghur"
 	version: "v1"
 )
@@ -19,7 +19,7 @@ import (
 service apibff {
 	@doc "玩家登录"
 	@handler playerLogin
-	post /player/login (PlayerInfo) returns (CommResp)
+	post /player/login (PlayerLoginInfo) returns (CommResp)
 }
 
 @server(
@@ -28,11 +28,19 @@ service apibff {
 	jwt: Auth
 )
 service apibff {
+	@doc "玩家连接客服(vip)"
+	@handler playerConnect
+	post /player/connect (PlayerConnectReq) returns (CommResp)
+	
 	@doc "玩家发送信息"
 	@handler playerSend
 	post /player/send (SendReq) returns (CommResp)
 	
-	@doc "玩家登出(断开连接)"
+	@doc "玩家断开连接"
+	@handler playerDisconnect
+	post /player/disconnect (PlayerDisconnectReq) returns (CommResp)
+	
+	@doc "玩家登出"
 	@handler playerLogout
 	post /player/logout returns (CommResp)
 }
@@ -59,7 +67,7 @@ service apibff {
 	
 	@doc "客服连接玩家"
 	@handler csConnect
-	post /cs/connect (PlayerInfo) returns (CommResp)
+	post /cs/connect (CsConnectReq) returns (CommResp)
 	
 	@doc "客服发送信息"
 	@handler csSend
@@ -67,7 +75,7 @@ service apibff {
 	
 	@doc "客服断开连接"
 	@handler csDisconnect
-	post /cs/disconnect returns (CommResp)
+	post /cs/disconnect (CsDisconnectReq) returns (CommResp)
 	
 	@doc "客服登出"
 	@handler csLogout

+ 13 - 2
bff/apibff/api/desc/cmd/cmd.api

@@ -12,13 +12,24 @@ type (
         CsId string `json:"cs_id"`
     }
 
+    PlayerDisconnectReq {
+        CsId string `json:"cs_id"`
+        ChatId string `json:"chat_id"`
+    }
+
     CsConnectReq {
         PlayerId string `json:"palyer_id"`
         GameId string `json:"game_id"`
     }
 
+    CsDisconnectReq {
+        PlayerId string `json:"player_id"`
+        ChatId string `json:"chat_id"`
+    }
+
     SendReq {
-        chat_id string `json:"chat_id"`
-        msg string `json:"msg"`
+        ChatId string `form:"chat_id"`
+        Msg string `form:"msg"`
+        Pic string `form:"pic,optional"`
     }
 )

+ 1 - 1
bff/apibff/api/desc/comm/comm.api

@@ -7,7 +7,7 @@ info(
 )
 
 type (
-    PlayerInfo {
+    PlayerLoginInfo {
         PlayerId string `json:"player_id"`
         GameId string `json:"game_id"`
     }

+ 1 - 1
bff/apibff/api/internal/handler/cs/cmd/csconnecthandler.go

@@ -11,7 +11,7 @@ import (
 
 func CsConnectHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
 	return func(w http.ResponseWriter, r *http.Request) {
-		var req types.PlayerInfo
+		var req types.CsConnectReq
 		if err := httpx.Parse(r, &req); err != nil {
 			httpx.Error(w, err)
 			return

+ 8 - 1
bff/apibff/api/internal/handler/cs/cmd/csdisconnecthandler.go

@@ -6,12 +6,19 @@ import (
 	"github.com/zeromicro/go-zero/rest/httpx"
 	"ylink/bff/apibff/api/internal/logic/cs/cmd"
 	"ylink/bff/apibff/api/internal/svc"
+	"ylink/bff/apibff/api/internal/types"
 )
 
 func CsDisconnectHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
 	return func(w http.ResponseWriter, r *http.Request) {
+		var req types.CsDisconnectReq
+		if err := httpx.Parse(r, &req); err != nil {
+			httpx.Error(w, err)
+			return
+		}
+
 		l := cmd.NewCsDisconnectLogic(r.Context(), svcCtx)
-		resp, err := l.CsDisconnect()
+		resp, err := l.CsDisconnect(&req)
 		if err != nil {
 			httpx.Error(w, err)
 		} else {

+ 28 - 0
bff/apibff/api/internal/handler/player/cmd/playerconnecthandler.go

@@ -0,0 +1,28 @@
+package cmd
+
+import (
+	"net/http"
+
+	"github.com/zeromicro/go-zero/rest/httpx"
+	"ylink/bff/apibff/api/internal/logic/player/cmd"
+	"ylink/bff/apibff/api/internal/svc"
+	"ylink/bff/apibff/api/internal/types"
+)
+
+func PlayerConnectHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
+	return func(w http.ResponseWriter, r *http.Request) {
+		var req types.PlayerConnectReq
+		if err := httpx.Parse(r, &req); err != nil {
+			httpx.Error(w, err)
+			return
+		}
+
+		l := cmd.NewPlayerConnectLogic(r.Context(), svcCtx)
+		resp, err := l.PlayerConnect(&req)
+		if err != nil {
+			httpx.Error(w, err)
+		} else {
+			httpx.OkJson(w, resp)
+		}
+	}
+}

+ 28 - 0
bff/apibff/api/internal/handler/player/cmd/playerdisconnecthandler.go

@@ -0,0 +1,28 @@
+package cmd
+
+import (
+	"net/http"
+
+	"github.com/zeromicro/go-zero/rest/httpx"
+	"ylink/bff/apibff/api/internal/logic/player/cmd"
+	"ylink/bff/apibff/api/internal/svc"
+	"ylink/bff/apibff/api/internal/types"
+)
+
+func PlayerDisconnectHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
+	return func(w http.ResponseWriter, r *http.Request) {
+		var req types.PlayerDisconnectReq
+		if err := httpx.Parse(r, &req); err != nil {
+			httpx.Error(w, err)
+			return
+		}
+
+		l := cmd.NewPlayerDisconnectLogic(r.Context(), svcCtx)
+		resp, err := l.PlayerDisconnect(&req)
+		if err != nil {
+			httpx.Error(w, err)
+		} else {
+			httpx.OkJson(w, resp)
+		}
+	}
+}

+ 1 - 1
bff/apibff/api/internal/handler/player/login/playerloginhandler.go

@@ -11,7 +11,7 @@ import (
 
 func PlayerLoginHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
 	return func(w http.ResponseWriter, r *http.Request) {
-		var req types.PlayerInfo
+		var req types.PlayerLoginInfo
 		if err := httpx.Parse(r, &req); err != nil {
 			httpx.Error(w, err)
 			return

+ 10 - 0
bff/apibff/api/internal/handler/routes.go

@@ -27,11 +27,21 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
 
 	server.AddRoutes(
 		[]rest.Route{
+			{
+				Method:  http.MethodPost,
+				Path:    "/player/connect",
+				Handler: playercmd.PlayerConnectHandler(serverCtx),
+			},
 			{
 				Method:  http.MethodPost,
 				Path:    "/player/send",
 				Handler: playercmd.PlayerSendHandler(serverCtx),
 			},
+			{
+				Method:  http.MethodPost,
+				Path:    "/player/disconnect",
+				Handler: playercmd.PlayerDisconnectHandler(serverCtx),
+			},
 			{
 				Method:  http.MethodPost,
 				Path:    "/player/logout",

+ 1 - 1
bff/apibff/api/internal/logic/cs/cmd/csconnectlogic.go

@@ -23,7 +23,7 @@ func NewCsConnectLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CsConne
 	}
 }
 
-func (l *CsConnectLogic) CsConnect(req *types.PlayerInfo) (resp *types.CommResp, err error) {
+func (l *CsConnectLogic) CsConnect(req *types.CsConnectReq) (resp *types.CommResp, err error) {
 	// todo: add your logic here and delete this line
 
 	return

+ 1 - 1
bff/apibff/api/internal/logic/cs/cmd/csdisconnectlogic.go

@@ -23,7 +23,7 @@ func NewCsDisconnectLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CsDi
 	}
 }
 
-func (l *CsDisconnectLogic) CsDisconnect() (resp *types.CommResp, err error) {
+func (l *CsDisconnectLogic) CsDisconnect(req *types.CsDisconnectReq) (resp *types.CommResp, err error) {
 	// todo: add your logic here and delete this line
 
 	return

+ 30 - 0
bff/apibff/api/internal/logic/player/cmd/playerconnectlogic.go

@@ -0,0 +1,30 @@
+package cmd
+
+import (
+	"context"
+
+	"ylink/bff/apibff/api/internal/svc"
+	"ylink/bff/apibff/api/internal/types"
+
+	"github.com/zeromicro/go-zero/core/logx"
+)
+
+type PlayerConnectLogic struct {
+	logx.Logger
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+}
+
+func NewPlayerConnectLogic(ctx context.Context, svcCtx *svc.ServiceContext) *PlayerConnectLogic {
+	return &PlayerConnectLogic{
+		Logger: logx.WithContext(ctx),
+		ctx:    ctx,
+		svcCtx: svcCtx,
+	}
+}
+
+func (l *PlayerConnectLogic) PlayerConnect(req *types.PlayerConnectReq) (resp *types.CommResp, err error) {
+	// todo: add your logic here and delete this line
+
+	return
+}

+ 30 - 0
bff/apibff/api/internal/logic/player/cmd/playerdisconnectlogic.go

@@ -0,0 +1,30 @@
+package cmd
+
+import (
+	"context"
+
+	"ylink/bff/apibff/api/internal/svc"
+	"ylink/bff/apibff/api/internal/types"
+
+	"github.com/zeromicro/go-zero/core/logx"
+)
+
+type PlayerDisconnectLogic struct {
+	logx.Logger
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+}
+
+func NewPlayerDisconnectLogic(ctx context.Context, svcCtx *svc.ServiceContext) *PlayerDisconnectLogic {
+	return &PlayerDisconnectLogic{
+		Logger: logx.WithContext(ctx),
+		ctx:    ctx,
+		svcCtx: svcCtx,
+	}
+}
+
+func (l *PlayerDisconnectLogic) PlayerDisconnect(req *types.PlayerDisconnectReq) (resp *types.CommResp, err error) {
+	// todo: add your logic here and delete this line
+
+	return
+}

+ 1 - 1
bff/apibff/api/internal/logic/player/login/playerloginlogic.go

@@ -23,7 +23,7 @@ func NewPlayerLoginLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Playe
 	}
 }
 
-func (l *PlayerLoginLogic) PlayerLogin(req *types.PlayerInfo) (resp *types.CommResp, err error) {
+func (l *PlayerLoginLogic) PlayerLogin(req *types.PlayerLoginInfo) (resp *types.CommResp, err error) {
 	// todo: add your logic here and delete this line
 
 	return

+ 25 - 4
bff/apibff/api/internal/types/types.go

@@ -1,9 +1,9 @@
 // Code generated by goctl. DO NOT EDIT.
 package types
 
-type PlayerInfo struct {
-	Uid    string `json:"uid"`
-	GameId string `json:"game_id"`
+type PlayerLoginInfo struct {
+	PlayerId string `json:"player_id"`
+	GameId   string `json:"game_id"`
 }
 
 type CsLoginInfo struct {
@@ -23,6 +23,27 @@ type JwtToken struct {
 	RefreshAfter int64  `json:"refresh_after,omitempty"`
 }
 
+type PlayerConnectReq struct {
+	CsId string `json:"cs_id"`
+}
+
+type PlayerDisconnectReq struct {
+	CsId   string `json:"cs_id"`
+	ChatId string `json:"chat_id"`
+}
+
+type CsConnectReq struct {
+	PlayerId string `json:"palyer_id"`
+	GameId   string `json:"game_id"`
+}
+
+type CsDisconnectReq struct {
+	PlayerId string `json:"player_id"`
+	ChatId   string `json:"chat_id"`
+}
+
 type SendReq struct {
-	Msg string `json:"msg"`
+	ChatId string `form:"chat_id"`
+	Msg    string `form:"msg"`
+	Pic    string `form:"pic,optional"`
 }

+ 19 - 0
bff/rpcbff/pb/rpcbff.proto

@@ -0,0 +1,19 @@
+syntax = "proto3";
+
+
+option go_package = "./pb";
+
+package pb;
+
+message ChatReq {
+  string chat_id = 1;
+}
+
+message ChatResp {
+  string msg = 1;
+  string pic = 2;
+}
+
+service rpcbff {
+  rpc receiverChat(ChatReq) returns (stream ChatResp);
+}