From e912a6468f2a376d2f79fdf835484a80a71bfe5b Mon Sep 17 00:00:00 2001 From: linquan <349589071@qq.com> Date: Mon, 24 Nov 2025 09:18:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E6=99=AF=EF=BC=8C=20=E6=94=B9?= =?UTF-8?q?=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/v1/game/basicinfo.go | 11 ++ api/v1/game/pub.go | 33 +++- internal/cmd/cmd.go | 1 + internal/controller/baseinfo_role.go | 5 + internal/controller/game_manage.go | 5 + internal/controller/game_server.go | 10 ++ internal/router/router.go | 66 +++++++- internal/serviceGame/game_role.go | 6 + .../serviceGame/internal/advertisement.go | 6 +- internal/serviceGame/internal/basicinfo.go | 84 ++++++++++ internal/serviceGame/internal/manage.go | 157 +++++++++++++++++- internal/serviceGame/manage.go | 18 ++ 12 files changed, 395 insertions(+), 7 deletions(-) diff --git a/api/v1/game/basicinfo.go b/api/v1/game/basicinfo.go index fa761d7..4f1dd06 100644 --- a/api/v1/game/basicinfo.go +++ b/api/v1/game/basicinfo.go @@ -240,3 +240,14 @@ type UserDelRes struct { g.Meta `mime:"application/json"` Data int `p:"data"` } + +type GameChangeNameReq struct { + g.Meta `path:"/changeName" tags:"game" method:"get" summary:"修改名称"` + Uid int64 `p:"uid"` + Server int `p:"server"` + Name string `p:"name"` +} + +type GameChangeNameRes struct { + g.Meta `mime:"application/json"` +} diff --git a/api/v1/game/pub.go b/api/v1/game/pub.go index b9abdc0..c5d0ea6 100644 --- a/api/v1/game/pub.go +++ b/api/v1/game/pub.go @@ -198,7 +198,7 @@ type UserLogRes struct { } type ReviewStateReq struct { - g.Meta `path:"/reviewState" tags:"账号" method:"get" summary:"审核状态"` + g.Meta `path:"/reviewState" tags:"小景" method:"get" summary:"审核状态"` ServerId int32 `p:"serverId" ` State int32 `p:"state" ` } @@ -230,7 +230,7 @@ type ReviewStateRes struct { } type SetReviewStateReq struct { - g.Meta `path:"/setReviewState" tags:"账号" method:"get" summary:"审核状态"` + g.Meta `path:"/setReviewState" tags:"小景" method:"get" summary:"审核状态"` ServerId int32 `p:"serverId" ` ArtID int64 `p:"ArtID" ` State int32 `p:"State" ` @@ -241,3 +241,32 @@ type SetReviewStateRes struct { ServerId int32 `json:"serverId"` Result int32 `json:"result"` } + +type GetOfficialViewReq struct { + g.Meta `path:"/getOfficialView" tags:"小景" method:"post" summary:"获取官服小景"` +} + +type GetOfficialViewRes struct { + g.Meta `mime:"application/json"` + JsonData string `json:"jsonData"` +} + +type SetOfficialViewReq struct { + g.Meta `path:"/setOfficialView" tags:"小景" method:"post" summary:"获取官服小景"` + JsonData string `json:"jsonData"` +} + +type SetOfficialViewRes struct { + g.Meta `mime:"application/json"` + IsSuccess int32 `json:"isSuccess"` +} + +type SendOfficialViewReq struct { + g.Meta `path:"/sendOfficialView" tags:"小景" method:"get" summary:"获取官服小景"` + SeverId int32 `json:"serverId"` +} + +type SendOfficialViewRes struct { + g.Meta `mime:"application/json"` + Message string `json:"message"` +} diff --git a/internal/cmd/cmd.go b/internal/cmd/cmd.go index db1fa95..7093630 100644 --- a/internal/cmd/cmd.go +++ b/internal/cmd/cmd.go @@ -21,6 +21,7 @@ var ( s.Group("/", func(group *ghttp.RouterGroup) { router.BindController(group) router.BindAnotherController(group) + router.BindServerCodeController(group) }) s.BindHandler("/pub_upload/*", func(r *ghttp.Request) { diff --git a/internal/controller/baseinfo_role.go b/internal/controller/baseinfo_role.go index dc68dd8..20419a1 100644 --- a/internal/controller/baseinfo_role.go +++ b/internal/controller/baseinfo_role.go @@ -76,3 +76,8 @@ func (c *gameRoleController) GetLoginOutGm(ctx context.Context, req *game.GetLog res, err = serviceGame.GameRole().GetLoginOutGm(ctx, req) return res, err } + +func (c *gameRoleController) GameChangeName(ctx context.Context, req *game.GameChangeNameReq) (res *game.GameChangeNameRes, err error) { + res, err = serviceGame.GameRole().GameChangeName(ctx, req) + return res, err +} diff --git a/internal/controller/game_manage.go b/internal/controller/game_manage.go index e3cbca3..9e55fa5 100644 --- a/internal/controller/game_manage.go +++ b/internal/controller/game_manage.go @@ -66,3 +66,8 @@ func (c *manageController) GetOperLog(ctx context.Context, req *game.GetOperLogR res, err = serviceGame.GameManage().GetOperLog(ctx, req) return res, err } + +func (c *manageController) SendOfficialView(ctx context.Context, req *game.SendOfficialViewReq) (res *game.SendOfficialViewRes, err error) { + res, err = serviceGame.GameManage().SendOfficialView(ctx, req) + return +} diff --git a/internal/controller/game_server.go b/internal/controller/game_server.go index 83ad103..9f1e8d7 100644 --- a/internal/controller/game_server.go +++ b/internal/controller/game_server.go @@ -142,3 +142,13 @@ func (c *serverController) SetReviewState(ctx context.Context, req *game.SetRevi res, err = serviceGame.GameManage().SetReviewState(ctx, req) return } + +func (c *serverController) GetOfficialView(ctx context.Context, req *game.GetOfficialViewReq) (res *game.GetOfficialViewRes, err error) { + res, err = serviceGame.GameManage().GetOfficialView(ctx, req) + return +} + +func (c *serverController) SetOfficialView(ctx context.Context, req *game.SetOfficialViewReq) (res *game.SetOfficialViewRes, err error) { + res, err = serviceGame.GameManage().SetOfficialView(ctx, req) + return +} diff --git a/internal/router/router.go b/internal/router/router.go index 5c60b7a..12a5174 100644 --- a/internal/router/router.go +++ b/internal/router/router.go @@ -36,7 +36,6 @@ func BindAnotherController(group *ghttp.RouterGroup) { group.Group("/frontApi", func(group *ghttp.RouterGroup) { group.Middleware(MiddlewareHandlerResponse) GameBindFrontController(group) - }) } @@ -87,7 +86,6 @@ func MiddlewareHandlerResponse(r *ghttp.Request) { //fmt.Println("WriteJson ", err, msg, gjson.MustEncodeString(res)) r.Response.WriteJson(res) } - func CommonBindController(group *ghttp.RouterGroup) { group.Group("/pub", func(group *ghttp.RouterGroup) { group.Middleware(service.Middleware().MiddlewareCORS) @@ -191,3 +189,67 @@ func GameBindFrontController(group *ghttp.RouterGroup) { ) }) } + +func BindServerCodeController(group *ghttp.RouterGroup) { + group.Group("/serverApi", func(group *ghttp.RouterGroup) { + group.Middleware(MiddlewareHandlerErrorCodeResponse) + GameBindCodeController(group) + }) +} + +func MiddlewareHandlerErrorCodeResponse(r *ghttp.Request) { + r.Middleware.Next() + + // There's custom buffer content, it then exits current handler. + if r.Response.BufferLength() > 0 { + return + } + + var ( + msg string + err = r.GetError() + res = r.GetHandlerResponse() + code = gerror.Code(err) + ) + if err != nil { + if code == gcode.CodeNil { + code = gcode.CodeInternalError + } + msg = err.Error() + } else { + if r.Response.Status > 0 && r.Response.Status != http.StatusOK { + msg = http.StatusText(r.Response.Status) + switch r.Response.Status { + case http.StatusNotFound: + code = gcode.CodeNotFound + case http.StatusForbidden: + code = gcode.CodeNotAuthorized + default: + code = gcode.CodeUnknown + } + // It creates error as it can be retrieved by other middlewares. + err = gerror.NewCode(code, msg) + r.SetError(err) + } else { + code = gcode.CodeOK + } + } + if msg != "" { + res = msg + r.Response.Status = http.StatusInternalServerError + } + + if res == nil { + res = "" + } + //fmt.Println("WriteJson ", err, msg, gjson.MustEncodeString(res)) + r.Response.WriteJson(res) +} + +func GameBindCodeController(group *ghttp.RouterGroup) { + group.Group("/game", func(group *ghttp.RouterGroup) { + group.Bind( + controller.GameServer, + ) + }) +} diff --git a/internal/serviceGame/game_role.go b/internal/serviceGame/game_role.go index 69b07f9..9514f11 100644 --- a/internal/serviceGame/game_role.go +++ b/internal/serviceGame/game_role.go @@ -24,6 +24,7 @@ type IGameRole interface { GetItemLogTwo(ctx context.Context, req *game.GetItemLogTwoReq) (res *game.GetItemLogTwoRes, err error) GameUserDel(ctx context.Context, req *game.UserDelReq) (res *game.UserDelRes, err error) GetLoginOutGm(ctx context.Context, req *game.GetLoginOutGmReq) (res *game.GetLoginOutGmRes, err error) + GameChangeName(ctx context.Context, req *game.GameChangeNameReq) (res *game.GameChangeNameRes, err error) } type gameRoleImpl struct { @@ -143,3 +144,8 @@ func (s *gameRoleImpl) GetLoginOutGm(ctx context.Context, req *game.GetLoginOutG res, err = internal.GetLoginOutGm(ctx, req) return } + +func (s *gameRoleImpl) GameChangeName(ctx context.Context, req *game.GameChangeNameReq) (res *game.GameChangeNameRes, err error) { + res, err = internal.GameChangeName(ctx, req) + return +} diff --git a/internal/serviceGame/internal/advertisement.go b/internal/serviceGame/internal/advertisement.go index 5ba8abe..ccb9847 100644 --- a/internal/serviceGame/internal/advertisement.go +++ b/internal/serviceGame/internal/advertisement.go @@ -109,7 +109,7 @@ func sendMsgHugeAmount(ctx context.Context, url string, data map[string]interfac } func AttributionHugeAmount(ctx context.Context, req *game.ATHAReq) (res *game.ATHARes, err error) { - //log.Printf("AttributionHugeAmount: %s", gjson.MustEncodeString(req)) + log.Printf("AttributionHugeAmount: %s", gjson.MustEncodeString(req)) data := map[string]interface{}{ "platform": req.Platform, // ios或android "package_name": req.PackageName, @@ -349,7 +349,9 @@ func HugeAmount(ctx context.Context, req *game.AdvertiseHAReq) { req.Caid = decryptedByte } } - + if req.Caid != "" { + log.Printf("HugeAmount: req: %s", gjson.MustEncodeString(req)) + } req2 := game.CSHAReq{ Platform: req.Platform, Id: req.Id, diff --git a/internal/serviceGame/internal/basicinfo.go b/internal/serviceGame/internal/basicinfo.go index 7fe8421..3956eb0 100644 --- a/internal/serviceGame/internal/basicinfo.go +++ b/internal/serviceGame/internal/basicinfo.go @@ -1240,3 +1240,87 @@ func GetLoginOutGm(ctx context.Context, req *game.GetLoginOutGmReq) (res *game.G }) return } + +func GameChangeName(ctx context.Context, req *game.GameChangeNameReq) (res *game.GameChangeNameRes, err error) { + res = new(game.GameChangeNameRes) + g.Try(ctx, func(ctx context.Context) { + req1 := new(game.UnitChangeNameReq) + if req.Uid != 0 { + uid, _ := GetIdToUid(ctx, req.Uid) + if uid == 0 { + err = gerror.New("获取账号失败!") + return + } + req1.Uid = uid + req1.Server = req.Server + req1.Name = req.Name + } + if req.Name == "" { + err = gerror.New("名称未填写!") + return + } + + _, err = GameUnitChangeName(ctx, req1) + if err != nil { + return + } + go sendMsgToClient(ctx, req.Server, req1.Uid, req.Name) + return + }) + return +} + +func sendMsgToClient(ctx context.Context, serverId int, uid int64, name string) { + ip := ServerConfig[fmt.Sprint(serverId)] + url := "http://" + ip + "/updateName?unitId=" + fmt.Sprint(uid) + "&name=" + name + bytes := g.Client().GetBytes(ctx, url) + src := string(bytes) + if g.IsEmpty(src) { + g.Log().Printf(ctx, "%d updateName: 空回调,发送失败", serverId) + return + } + + srcCharset := "UTF-8" + tmp, _ := gcharset.ToUTF8(srcCharset, src) + json, err := gjson.DecodeToJson(tmp) + if err != nil { + g.Log().Printf(ctx, "%d updateName err: %s", serverId, err) + return + } + fmt.Println("GetOnlineList - json: ", tmp, gjson.MustEncodeString(json)) + if json.Get("Error").Int() == 200 { + filter := bson.M{"_id": uid} + data := bson.M{} + resData := []map[string]interface{}{} + mongo, ok := MongoDatabaseList[fmt.Sprint(serverId)] + if !ok { + return + } + + err = mongo.Collection("Unit").Find(ctx, filter).All(&resData) + for _, v := range resData { + if _, ok := v["C"]; ok { + c1 := v["C"].(primitive.A) + for k, c2 := range c1 { + c22 := c2.(map[string]interface{}) + if c22["_t"] == "ValleyComponent" { + data = bson.M{"C." + fmt.Sprint(k) + ".Name": name} + break + } + } + } + } + if len(data) == 0 { + g.Log().Printf(ctx, "%d updateName err: 修改失败, %d", serverId, len(resData)) + return + } + + err = mongo.Collection("Unit").UpdateOne(ctx, filter, bson.M{"$set": data}) + g.Log().Printf(ctx, "%d updateName %s err: %s", serverId, gjson.MustEncodeString(data), err) + } else { + g.Log().Printf(ctx, "%d updateName err: 获取失败", serverId) + return + } + + return +} diff --git a/internal/serviceGame/internal/manage.go b/internal/serviceGame/internal/manage.go index 64f5eb7..0722777 100644 --- a/internal/serviceGame/internal/manage.go +++ b/internal/serviceGame/internal/manage.go @@ -10,6 +10,7 @@ import ( "github.com/gogf/gf/v2/frame/g" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/bson/primitive" + "log" "os" "strconv" "time" @@ -17,6 +18,8 @@ import ( "tyj_admin/internal/consts" "tyj_admin/internal/dao" "tyj_admin/internal/model/entity" + "tyj_admin/library/libUtils" + "tyj_admin/utils" ) func SearchGm(ctx context.Context, req *game.SearchGmReq) (gm int32, err error) { @@ -424,25 +427,177 @@ func ReviewState(ctx context.Context, req *game.ReviewStateReq) (res *game.Revie return } res.SmallLayoutBlueprint = stores + return } func SetReviewState(ctx context.Context, req *game.SetReviewStateReq) (res *game.SetReviewStateRes, err error) { + ip := libUtils.GetClientIp(ctx) + data := []entity.GameRouter{} + err = dao.GameRouter.Ctx(ctx).Where("router_ip=?", ip).Scan(&data) + //log.Printf("data: %s", gjson.MustEncodeString(data)) + if len(data) == 0 { + whiteIps, _ := GetWhiteList(ctx) + if !utils.ContainsWhiteList(whiteIps, ip) { + return nil, gerror.New("ip白名单!") + } + } res = new(game.SetReviewStateRes) res.ServerId = req.ServerId mongodb, ok := MongoDatabaseList[fmt.Sprint(req.ServerId)] if !ok { g.Log().Info(ctx, "err== db is nil") + err = errors.New("db is nil") return } filter := bson.M{"ArtID": req.ArtID} - update := bson.M{"State": req.State} + update := bson.M{"State": req.State, "ArtID": req.ArtID} err = mongodb.Collection("SmallLayoutBlueprint").UpdateOne(ctx, filter, bson.M{"$set": update}) if err != nil { g.Log().Info(ctx, "err== ", err) return } + _, _ = mongodb.Collection("SmallLayoutAuditState").UpsertId(ctx, req.ArtID, update) + //g.Log().Info(ctx, "SmallLayoutAuditState == ", result) + //g.Log().Info(ctx, "err== ", err) res.Result = 1 return } + +func GetOfficialView(ctx context.Context, req *game.GetOfficialViewReq) (res *game.GetOfficialViewRes, err error) { + res = new(game.GetOfficialViewRes) + mongodb, ok := MongoDatabaseList["0"] + if !ok { + g.Log().Info(ctx, "err== db is nil") + return + } + + stores := []map[string]interface{}{} + err = mongodb.Collection("SmallLayoutBlueprint").Find(ctx, bson.M{}).All(&stores) + if err != nil { + g.Log().Info(ctx, "err== ", err) + return + } + if len(stores) <= 0 { + data := map[string]interface{}{"_id": 0, "data": ""} + stores = append(stores, data) + mongodb.Collection("SmallLayoutBlueprint").InsertOne(ctx, data) + } + + res.JsonData = fmt.Sprint(stores[0]["data"]) + return +} + +func SetOfficialView(ctx context.Context, req *game.SetOfficialViewReq) (res *game.SetOfficialViewRes, err error) { + + res = new(game.SetOfficialViewRes) + //s := "{ \"_t\" : \"System.Collections.Generic.List`1[[PeachValley.OfficialSmallLayoutInfo, Model]]\", \"_v\" : [{ \"BaseInfo\" : { \"ArtID\" : 100013, \"OwnerId\" : 1000000867, \"CreateTime\" : 1760951195, \"LikeInfos\" : [1000000921, 1000000929], \"SubscribeInfos\" : [1000000929], \"ReportInfos\" : [{ \"UnitId\" : 1000000929, \"ReportReason\" : 1 }], \"Name\" : \"富饶之地\", \"State\" : 1, \"SmallLayoutInfos\" : [{ \"GameUnitType\" : 1, \"ConfigId\" : 2, \"Pos\" : { \"x\" : 15, \"y\" : 14 }, \"IsFlip\" : false, \"SkinId\" : 0 }, { \"GameUnitType\" : 1, \"ConfigId\" : 41, \"Pos\" : { \"x\" : 18, \"y\" : 0 }, \"IsFlip\" : false, \"SkinId\" : 0 }, { \"GameUnitType\" : 1, \"ConfigId\" : 21, \"Pos\" : { \"x\" : 0, \"y\" : 15 }, \"IsFlip\" : false, \"SkinId\" : 0 }, { \"GameUnitType\" : 1, \"ConfigId\" : 21, \"Pos\" : { \"x\" : 0, \"y\" : 0 }, \"IsFlip\" : false, \"SkinId\" : 0 }] }, \"Description\" : null }, { \"BaseInfo\" : { \"ArtID\" : 100014, \"OwnerId\" : 1000000867, \"CreateTime\" : 1760951195, \"LikeInfos\" : [1000000921, 1000000929], \"SubscribeInfos\" : [1000000929], \"ReportInfos\" : [{ \"UnitId\" : 1000000929, \"ReportReason\" : 1 }], \"Name\" : \"富饶之地\", \"State\" : 1, \"SmallLayoutInfos\" : [{ \"GameUnitType\" : 1, \"ConfigId\" : 41, \"Pos\" : { \"x\" : 6, \"y\" : 6 }, \"IsFlip\" : false, \"SkinId\" : 0 }] }, \"Description\" : null }, { \"BaseInfo\" : { \"ArtID\" : 100064, \"OwnerId\" : 1000000847, \"CreateTime\" : 1761213434, \"LikeInfos\" : [], \"SubscribeInfos\" : [1000000929], \"ReportInfos\" : [{ \"UnitId\" : 1000000929, \"ReportReason\" : 2 }], \"Name\" : \"圣诞节\", \"State\" : 1, \"SmallLayoutInfos\" : [{ \"GameUnitType\" : 1, \"ConfigId\" : 20, \"Pos\" : { \"x\" : 6, \"y\" : 6 }, \"IsFlip\" : false, \"SkinId\" : 0 }, { \"GameUnitType\" : 1, \"ConfigId\" : 21, \"Pos\" : { \"x\" : 0, \"y\" : 13 }, \"IsFlip\" : false, \"SkinId\" : 0 }, { \"GameUnitType\" : 1, \"ConfigId\" : 30, \"Pos\" : { \"x\" : 0, \"y\" : 0 }, \"IsFlip\" : false, \"SkinId\" : 0 }] }, \"Description\" : null }] }" + //req.JsonData = s + //data1 := map[string]interface{}{} + //_ = json.Unmarshal([]byte(s), &data1) + fmt.Println("SetOfficialView: ", req.JsonData) + if len(req.JsonData) == 0 { + return res, errors.New("空数据") + } + + ip := libUtils.GetClientIp(ctx) + data := []entity.GameRouter{} + err = dao.GameRouter.Ctx(ctx).Where("router_ip=?", ip).Scan(&data) + if len(data) == 0 { + whiteIps, _ := GetWhiteList(ctx) + if !utils.ContainsWhiteList(whiteIps, ip) { + return nil, gerror.New("ip白名单!") + } + } + + mongodb, ok := MongoDatabaseList["0"] + if !ok { + g.Log().Info(ctx, "err== db is nil") + return + } + + filter := bson.M{"_id": 0} + update := bson.M{"data": req.JsonData} + err = mongodb.Collection("SmallLayoutBlueprint").UpdateOne(ctx, filter, bson.M{"$set": update}) + if err != nil { + g.Log().Info(ctx, "err== ", err) + return + } + + res.IsSuccess = 1 + return +} + +func SendOfficialView(ctx context.Context, req *game.SendOfficialViewReq) (res *game.SendOfficialViewRes, err error) { + //ip := libUtils.GetClientIp(ctx) + //data := []entity.GameRouter{} + //err = dao.GameRouter.Ctx(ctx).Where("router_ip=?", ip).Scan(&data) + //if len(data) == 0 { + // whiteIps, _ := GetWhiteList(ctx) + // if !utils.ContainsWhiteList(whiteIps, ip) { + // return nil, gerror.New("ip白名单!") + // } + //} + res = new(game.SendOfficialViewRes) + mongodb, ok := MongoDatabaseList["0"] + if !ok { + g.Log().Info(ctx, "err== db is nil") + res.Message = "数据库错误!" + return + } + + stores := []map[string]interface{}{} + err = mongodb.Collection("SmallLayoutBlueprint").Find(ctx, bson.M{}).All(&stores) + if err != nil { + g.Log().Info(ctx, "err== ", err) + res.Message = "查询数据错误!" + return + } + if len(stores) <= 0 { + res.Message = "空数据!" + return + } + + if req.SeverId == 0 { + sendMsgToAll(ctx, fmt.Sprint(stores[0]["data"])) + } else { + res.Message = sendMsgToServer(ctx, fmt.Sprint(stores[0]["data"]), fmt.Sprint(req.SeverId), ServerConfig[fmt.Sprint(req.SeverId)]) + } + return +} + +func sendMsgToAll(ctx context.Context, jsonData string) { + for k, v := range ServerConfig { + sendMsgToServer(ctx, jsonData, k, v) + } +} + +func sendMsgToServer(ctx context.Context, jsonData, k, v string) string { + url1 := "http://" + v + "/UpdateSmallLayout" + g.Client().SetHeader("Content-Type", "application/json;charset=UTF-8") + g.Log().Info(ctx, "sendMsgToServer - req: ", url1, jsonData) + body := map[string]interface{}{"jsonData": jsonData} + bytes := g.Client().PostBytes(ctx, url1, gjson.MustEncodeString(body)) + src := string(bytes) + if g.IsEmpty(src) { + //err = v + "空回调,发送失败" + log.Printf("[%s]%s:空回调,发送失败", k, v) + return fmt.Sprintf("[%s]%s:空回调,发送失败", k, v) + } + log.Printf("[%s]%s 回调正常: %s", k, v, src) + + srcCharset := "UTF-8" + tmp, _ := gcharset.ToUTF8(srcCharset, src) + json, err := gjson.DecodeToJson(tmp) + if err != nil { + g.Log().Info(ctx, " sendMsgToServer === DecodeToJson err ", v, err.Error()) + return fmt.Sprintf("[%s]%s err.Error(): %s", k, v, err.Error()) + } + g.Log().Info(ctx, " sendMsgToServer === ", v, json) + if json.Get("Error").Int() != 200 { + return fmt.Sprintf("[%s]%s Error: %s", k, v, json.Get("Error")) + } + + return "success" +} diff --git a/internal/serviceGame/manage.go b/internal/serviceGame/manage.go index 5dc3b96..34dfa6e 100644 --- a/internal/serviceGame/manage.go +++ b/internal/serviceGame/manage.go @@ -37,6 +37,9 @@ type IGameManage interface { LogAccount(ctx context.Context, req *game.LogAccountReq) (res *game.LogAccountRes, err error) ReviewState(ctx context.Context, req *game.ReviewStateReq) (res *game.ReviewStateRes, err error) SetReviewState(ctx context.Context, req *game.SetReviewStateReq) (res *game.SetReviewStateRes, err error) + GetOfficialView(ctx context.Context, req *game.GetOfficialViewReq) (res *game.GetOfficialViewRes, err error) + SetOfficialView(ctx context.Context, req *game.SetOfficialViewReq) (res *game.SetOfficialViewRes, err error) + SendOfficialView(ctx context.Context, req *game.SendOfficialViewReq) (res *game.SendOfficialViewRes, err error) } type gameManageImpl struct { @@ -381,3 +384,18 @@ func (ga *gameManageImpl) SetReviewState(ctx context.Context, req *game.SetRevie res, err = internal.SetReviewState(ctx, req) return } + +func (ga *gameManageImpl) GetOfficialView(ctx context.Context, req *game.GetOfficialViewReq) (res *game.GetOfficialViewRes, err error) { + res, err = internal.GetOfficialView(ctx, req) + return +} + +func (ga *gameManageImpl) SetOfficialView(ctx context.Context, req *game.SetOfficialViewReq) (res *game.SetOfficialViewRes, err error) { + res, err = internal.SetOfficialView(ctx, req) + return +} + +func (ga *gameManageImpl) SendOfficialView(ctx context.Context, req *game.SendOfficialViewReq) (res *game.SendOfficialViewRes, err error) { + res, err = internal.SendOfficialView(ctx, req) + return +}