Browse Source

rank,set先行服openid

master
linquan 2 months ago
parent
commit
dcc2255b6e
  1. 2
      api/v1/game/advertisement.go
  2. 1
      api/v1/game/order.go
  3. 13
      api/v1/game/rank.go
  4. 5
      internal/controller/game_rank.go
  5. 2
      internal/serviceGame/internal/basicinfo.go
  6. 12
      internal/serviceGame/internal/out.go
  7. 23
      internal/serviceGame/internal/rank.go
  8. 11
      internal/serviceGame/manage.go
  9. 41
      internal/serviceGame/order.go
  10. 8
      internal/serviceGame/pub.go
  11. 8
      internal/serviceGame/rank.go

2
api/v1/game/advertisement.go

@ -85,7 +85,7 @@ type ATHARes struct {
} }
type CSHAReq struct { type CSHAReq struct {
g.Meta `path:"/attributionHA" tags:"ad" method:"get" summary:"广告投放"` g.Meta `path:"/conversionHA" tags:"ad" method:"get" summary:"广告投放"`
EventType string `p:"event_type"` EventType string `p:"event_type"`
Platform string `p:"platform"` Platform string `p:"platform"`
Id string `p:"id"` Id string `p:"id"`

1
api/v1/game/order.go

@ -252,6 +252,7 @@ type AddRechargeSignRes struct {
// 重置充值情况 // 重置充值情况
type ResetRechargeSignReq struct { type ResetRechargeSignReq struct {
g.Meta `path:"/order/resetSign" tags:"订单" method:"get" summary:"重置充值情况"` g.Meta `path:"/order/resetSign" tags:"订单" method:"get" summary:"重置充值情况"`
Password string `p:"password"`
} }
type ResetRechargeSignRes struct { type ResetRechargeSignRes struct {

13
api/v1/game/rank.go

@ -93,10 +93,21 @@ type AddRankGroupRes struct {
type GetRankGroupReq struct { type GetRankGroupReq struct {
g.Meta `path:"/rank/getGroup" tags:"排行榜" method:"post" summary:"获取排行榜组"` g.Meta `path:"/rank/getGroup" tags:"排行榜" method:"post" summary:"获取排行榜组"`
name string `p:"name"` Name string `p:"name"`
} }
type GetRankGroupRes struct { type GetRankGroupRes struct {
g.Meta `mime:"application/json"` g.Meta `mime:"application/json"`
Groups map[string]interface{} `p:"groups"` Groups map[string]interface{} `p:"groups"`
} }
type GetGameRankReq struct {
g.Meta `path:"/rank/getGameRank" tags:"排行榜" method:"get" summary:"获取游戏排行榜"`
Name string `p:"name"`
ServerId int `p:"serverId" v:"required|min:1#服务器ID不能为空"`
}
type GetGameRankRes struct {
g.Meta `mime:"application/json"`
Groups []map[string]interface{} `json:"list"`
}

5
internal/controller/game_rank.go

@ -51,3 +51,8 @@ func (c *rankController) CheckRank(ctx context.Context, req *game.CheckRankReq)
res, err = serviceGame.GameRank().Check(ctx, req) res, err = serviceGame.GameRank().Check(ctx, req)
return return
} }
func (c *rankController) GetGameRank(ctx context.Context, req *game.GetGameRankReq) (res *game.GetGameRankRes, err error) {
res, err = serviceGame.GameRank().GetGameRank(ctx, req)
return
}

2
internal/serviceGame/internal/basicinfo.go

@ -992,12 +992,10 @@ func GetShopItemLog(ctx context.Context, req *game.GetShopItemLogReq) (res *game
shopLogSql := fmt.Sprintf(`select u.account,s.itemId,s.num,s.price,s.config_type from game_shop_log s inner join game_unit u on s.uid=u.uid and s.serverId=u.server where 1=1`) shopLogSql := fmt.Sprintf(`select u.account,s.itemId,s.num,s.price,s.config_type from game_shop_log s inner join game_unit u on s.uid=u.uid and s.serverId=u.server where 1=1`)
rechargeSql := fmt.Sprintf(`select DISTINCT u.account from game_recharge r inner join game_unit u on r.unitId=u.uid inner join game_register rr on rr.account=u.account where r.status=2`) rechargeSql := fmt.Sprintf(`select DISTINCT u.account from game_recharge r inner join game_unit u on r.unitId=u.uid inner join game_register rr on rr.account=u.account where r.status=2`)
if req.LowTime != "" { if req.LowTime != "" {
//start := time.Unix(req.LowTime, 0).Format(consts.TIME_FORMAT)
rechargeSql += fmt.Sprintf(` and rr.create_time>"%s"`, req.LowTime) rechargeSql += fmt.Sprintf(` and rr.create_time>"%s"`, req.LowTime)
shopLogSql += fmt.Sprintf(` and s.c_date>"%s"`, req.LowTime) shopLogSql += fmt.Sprintf(` and s.c_date>"%s"`, req.LowTime)
} }
if req.Uptime != "" { if req.Uptime != "" {
//end := time.Unix(req.Uptime, 0).Format(consts.TIME_FORMAT)
rechargeSql = fmt.Sprintf(`%s and rr.create_time<"%s"`, rechargeSql, req.Uptime) rechargeSql = fmt.Sprintf(`%s and rr.create_time<"%s"`, rechargeSql, req.Uptime)
shopLogSql = fmt.Sprintf(`%s and s.c_date<"%s"`, shopLogSql, req.Uptime) shopLogSql = fmt.Sprintf(`%s and s.c_date<"%s"`, shopLogSql, req.Uptime)
} }

12
internal/serviceGame/internal/out.go

@ -113,11 +113,19 @@ func SetOpenId(ctx context.Context, req *game.SetOpenIdReq) (res *game.SetOpenId
data = append(data, v, 1) data = append(data, v, 1)
} }
log.Printf("SetOpenId: json:%s data: %s", gjson.MustEncodeString(user), gjson.MustEncodeString(data)) log.Printf("SetOpenId: flieName:%s ", gjson.MustEncodeString(user))
_ = rdbTop.HMSet(ctx, "openId", data) _ = HMSetOpenId(ctx, data)
return return
} }
func HMSetOpenId(ctx context.Context, data []interface{}) error {
rdbTop := RedisDbList[0]
rdbTop.Do(ctx, "select", 0)
log.Printf("SetOpenId: data: %s", gjson.MustEncodeString(data))
err := rdbTop.HMSet(ctx, "openId", data)
return err.Err()
}
func GetOpenId(ctx context.Context, req *game.GetOpenIdReq) (data int, err error) { func GetOpenId(ctx context.Context, req *game.GetOpenIdReq) (data int, err error) {
rdbTop := RedisDbList[0] rdbTop := RedisDbList[0]
rdbTop.Do(ctx, "select", 0) rdbTop.Do(ctx, "select", 0)

23
internal/serviceGame/internal/rank.go

@ -2,10 +2,13 @@ package internal
import ( import (
"context" "context"
"errors"
"fmt" "fmt"
"github.com/gogf/gf/v2/encoding/gjson"
"github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gtime" "github.com/gogf/gf/v2/os/gtime"
"go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
"log" "log"
"strconv" "strconv"
"tyj_admin/api/v1/game" "tyj_admin/api/v1/game"
@ -200,3 +203,23 @@ func GetRankGroup(ctx context.Context, req *game.AddRankGroupReq) (res *game.Add
res = new(game.AddRankGroupRes) res = new(game.AddRankGroupRes)
return res, err return res, err
} }
func GetGameRank(ctx context.Context, req *game.GetGameRankReq) (res *game.GetGameRankRes, err error) {
log.Printf("GetGameRank: %s", gjson.MustEncodeString(req))
res = new(game.GetGameRankRes)
mongo, ok := MongoDatabaseList[fmt.Sprint(req.ServerId)]
if !ok {
return res, errors.New("数据库为空!")
}
err = mongo.Collection(req.Name).Find(ctx, bson.M{}).All(&res.Groups)
chillren := res.Groups[0]["Children"].(primitive.A)
for _, v := range chillren {
v1 := v.(map[string]interface{})
if v1["UnitId"] != nil {
v1["StringId"] = fmt.Sprint(v1["UnitId"])
v1["uid"], _ = GetStringIdToUid(ctx, fmt.Sprint(v1["UnitId"]))
}
}
return res, err
}

11
internal/serviceGame/manage.go

@ -16,7 +16,6 @@ import (
"tyj_admin/internal/service" "tyj_admin/internal/service"
"tyj_admin/internal/serviceGame/internal" "tyj_admin/internal/serviceGame/internal"
"tyj_admin/library/libUtils" "tyj_admin/library/libUtils"
"tyj_admin/library/liberr"
"tyj_admin/utils" "tyj_admin/utils"
) )
@ -280,15 +279,13 @@ func (ga *gameManageImpl) UpdateUnit(ctx context.Context, req *game.UpdateUnitRe
func (ga *gameManageImpl) DelAccount(ctx context.Context, req *game.DelAccountReq) (res *game.DelAccountRes, err error) { func (ga *gameManageImpl) DelAccount(ctx context.Context, req *game.DelAccountReq) (res *game.DelAccountRes, err error) {
user := service.Context().GetLoginUser(ctx) user := service.Context().GetLoginUser(ctx)
fulluser, err1 := service.User().GetUserByUsername(ctx, user.UserName) fulluser, err1 := service.User().GetUserByUsername(ctx, user.UserName)
if err != nil { if err1 != nil {
liberr.ErrIsNil(ctx, err1) return nil, err1
return
} }
password := libUtils.EncryptPassword(req.Password, fulluser.UserSalt) password := libUtils.EncryptPassword(req.Password, fulluser.UserSalt)
log.Printf("密码错误! fulluser: %v, pwd: %s", fulluser, password)
if fulluser.UserPassword != password { if fulluser.UserPassword != password {
liberr.ErrIsNil(ctx, errors.New("密码错误! pwd:"+fulluser.UserPassword+", req.pwd:"+password)) log.Printf("密码错误! fulluser: %v, pwd: %s", gjson.MustEncodeString(fulluser), password)
return return nil, errors.New("密码错误!")
} }
uid, err := internal.GetAccountUid2(ctx, req.SrcName, fmt.Sprint(req.ServerId)) uid, err := internal.GetAccountUid2(ctx, req.SrcName, fmt.Sprint(req.ServerId))

41
internal/serviceGame/order.go

@ -19,6 +19,7 @@ import (
"tyj_admin/internal/model/entity" "tyj_admin/internal/model/entity"
"tyj_admin/internal/service" "tyj_admin/internal/service"
"tyj_admin/internal/serviceGame/internal" "tyj_admin/internal/serviceGame/internal"
"tyj_admin/library/libUtils"
) )
type IGameOrder interface { type IGameOrder interface {
@ -522,6 +523,16 @@ func (o gameOrderImpl) GetGMOrderList(ctx context.Context, req *game.GetGMOrderL
func (o gameOrderImpl) CheckRechargeSign(ctx context.Context, req *game.CheckRechargeSignReq) (res *game.CheckRechargeSignRes, err error) { func (o gameOrderImpl) CheckRechargeSign(ctx context.Context, req *game.CheckRechargeSignReq) (res *game.CheckRechargeSignRes, err error) {
res = new(game.CheckRechargeSignRes) res = new(game.CheckRechargeSignRes)
if req.ServerId == 0 {
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 {
return nil, err
}
req.ServerId = int32(data[0].Id)
}
if req.Id == 0 || req.ServerId == 0 { if req.Id == 0 || req.ServerId == 0 {
return res, errors.New("账号为空") return res, errors.New("账号为空")
} }
@ -537,16 +548,30 @@ func (o gameOrderImpl) CheckRechargeSign(ctx context.Context, req *game.CheckRec
return return
} }
// http://192.168.2.100:4111/frontApi/game/setOrderLevel?unitId=1&server=1001&time=250726&token // http://192.168.2.100:4111/frontApi/game/setOrderLevel?unitId=1&server=&time=250726&token&config=101
func (o gameOrderImpl) AddRechargeSign(ctx context.Context, req *game.AddRechargeSignReq) (res *game.AddRechargeSignRes, err error) { func (o gameOrderImpl) AddRechargeSign(ctx context.Context, req *game.AddRechargeSignReq) (res *game.AddRechargeSignRes, err error) {
if req.Id == 0 || req.ServerId == 0 || req.Config == 0 || req.Time == 0 { serverId := req.ServerId
if serverId == 0 {
ip := libUtils.GetClientIp(ctx)
data := []entity.GameRouter{}
err := dao.GameRouter.Ctx(ctx).Where("router_ip=?", ip).Scan(&data)
//log.Printf("AddRechargeSign data: %s", gjson.MustEncodeString(data))
if len(data) == 0 {
log.Printf("AddRechargeSign err : %s", err.Error())
return nil, err
}
serverId = int32(data[0].Id)
}
if req.Id == 0 || serverId == 0 || req.Config == 0 || req.Time == 0 {
return nil, errors.New("参数为空") return nil, errors.New("参数为空")
} }
token := fmt.Sprintf("%x", md5.Sum([]byte("#colony"+fmt.Sprint(req.Id)+fmt.Sprint(req.ServerId)+fmt.Sprint(req.Config)+fmt.Sprint(req.Time)+"$"))) token := fmt.Sprintf("%x", md5.Sum([]byte("#colony"+fmt.Sprint(req.Id)+fmt.Sprint(req.ServerId)+fmt.Sprint(req.Config)+fmt.Sprint(req.Time)+"$")))
if req.Time != 250726 && req.Token != token { if req.Token != token {
log.Printf("[%s]AddRechargeSign failed, token error, md5: %s", gjson.MustEncodeString(req), token) log.Printf("[%s]AddRechargeSign failed, token error, md5: %s", gjson.MustEncodeString(req), token)
return nil, errors.New("token err") return nil, errors.New("token err")
} }
req.ServerId = serverId
count, err := dao.GameRechargeLevel.Ctx(ctx).Where("unitId=?", req.Id).Where("server=?", req.ServerId).Where("config=?", req.Config).Count() count, err := dao.GameRechargeLevel.Ctx(ctx).Where("unitId=?", req.Id).Where("server=?", req.ServerId).Where("config=?", req.Config).Count()
if err != nil { if err != nil {
@ -567,6 +592,16 @@ func (o gameOrderImpl) AddRechargeSign(ctx context.Context, req *game.AddRecharg
} }
func (o gameOrderImpl) ResetRechargeSign(ctx context.Context, req *game.ResetRechargeSignReq) (res *game.ResetRechargeSignRes, err error) { func (o gameOrderImpl) ResetRechargeSign(ctx context.Context, req *game.ResetRechargeSignReq) (res *game.ResetRechargeSignRes, err error) {
user := service.Context().GetLoginUser(ctx)
fulluser, err1 := service.User().GetUserByUsername(ctx, user.UserName)
if err1 != nil {
return nil, err1
}
password := libUtils.EncryptPassword(req.Password, fulluser.UserSalt)
if fulluser.UserPassword != password {
log.Printf("ResetRechargeSign 密码错误! fulluser: %v, pwd: %s", gjson.MustEncodeString(fulluser), password)
return nil, errors.New("密码错误!")
}
result, err := dao.GameRechargeLevel.Ctx(ctx).Where("1=1").Delete() result, err := dao.GameRechargeLevel.Ctx(ctx).Where("1=1").Delete()
if err != nil { if err != nil {
log.Printf("ResetRechargeSign: %v", err) log.Printf("ResetRechargeSign: %v", err)

8
internal/serviceGame/pub.go

@ -5,6 +5,7 @@ import (
"github.com/gogf/gf/v2/encoding/gjson" "github.com/gogf/gf/v2/encoding/gjson"
"github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/frame/g"
"log" "log"
"strings"
"time" "time"
"tyj_admin/api/v1/game" "tyj_admin/api/v1/game"
"tyj_admin/internal/dao" "tyj_admin/internal/dao"
@ -93,6 +94,13 @@ func (c *gamePubImpl) SetOpenId(ctx context.Context, req *game.SetOpenIdReq) (re
res, err = internal.SetOpenId(ctx, req) res, err = internal.SetOpenId(ctx, req)
} else if req.InitUnit == 1 { } else if req.InitUnit == 1 {
internal.SetUid(ctx) internal.SetUid(ctx)
} else if req.InitUnit == 3 {
list := strings.Split(req.OpenId, ";")
data := []interface{}{}
for _, v := range list {
data = append(data, v, 1)
}
err = internal.HMSetOpenId(ctx, data)
} }
return return
} }

8
internal/serviceGame/rank.go

@ -17,6 +17,7 @@ type IGameRank interface {
UpdateAward(ctx context.Context, req *game.UpdateRankAwardReq) (res *game.UpdateRankAwardRes, err error) UpdateAward(ctx context.Context, req *game.UpdateRankAwardReq) (res *game.UpdateRankAwardRes, err error)
InsertAward(ctx context.Context, req *game.InsertRankAwardReq) (res *game.InsertRankAwardRes, err error) InsertAward(ctx context.Context, req *game.InsertRankAwardReq) (res *game.InsertRankAwardRes, err error)
AddRankGroup(ctx context.Context, req *game.AddRankGroupReq) (res *game.AddRankGroupRes, err error) AddRankGroup(ctx context.Context, req *game.AddRankGroupReq) (res *game.AddRankGroupRes, err error)
GetGameRank(ctx context.Context, req *game.GetGameRankReq) (res *game.GetGameRankRes, err error)
} }
type gameRankImpl struct { type gameRankImpl struct {
@ -84,3 +85,10 @@ func (g *gameRankImpl) AddRankGroup(ctx context.Context, req *game.AddRankGroupR
log.Print("InsertRank", err) log.Print("InsertRank", err)
return return
} }
func (g *gameRankImpl) GetGameRank(ctx context.Context, req *game.GetGameRankReq) (res *game.GetGameRankRes, err error) {
res = new(game.GetGameRankRes)
res, err = internal.GetGameRank(ctx, req)
log.Print("GetGameRank", err)
return
}

Loading…
Cancel
Save