Browse Source

rank,set先行服openid

master
linquan 2 months ago
parent
commit
dcc2255b6e
  1. 2
      api/v1/game/advertisement.go
  2. 3
      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 {
g.Meta `path:"/attributionHA" tags:"ad" method:"get" summary:"广告投放"`
g.Meta `path:"/conversionHA" tags:"ad" method:"get" summary:"广告投放"`
EventType string `p:"event_type"`
Platform string `p:"platform"`
Id string `p:"id"`

3
api/v1/game/order.go

@ -251,7 +251,8 @@ type AddRechargeSignRes 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 {

13
api/v1/game/rank.go

@ -93,10 +93,21 @@ type AddRankGroupRes struct {
type GetRankGroupReq struct {
g.Meta `path:"/rank/getGroup" tags:"排行榜" method:"post" summary:"获取排行榜组"`
name string `p:"name"`
Name string `p:"name"`
}
type GetRankGroupRes struct {
g.Meta `mime:"application/json"`
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)
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`)
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 != "" {
//start := time.Unix(req.LowTime, 0).Format(consts.TIME_FORMAT)
rechargeSql += fmt.Sprintf(` and rr.create_time>"%s"`, req.LowTime)
shopLogSql += fmt.Sprintf(` and s.c_date>"%s"`, req.LowTime)
}
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)
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)
}
log.Printf("SetOpenId: json:%s data: %s", gjson.MustEncodeString(user), gjson.MustEncodeString(data))
_ = rdbTop.HMSet(ctx, "openId", data)
log.Printf("SetOpenId: flieName:%s ", gjson.MustEncodeString(user))
_ = HMSetOpenId(ctx, data)
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) {
rdbTop := RedisDbList[0]
rdbTop.Do(ctx, "select", 0)

23
internal/serviceGame/internal/rank.go

@ -2,10 +2,13 @@ package internal
import (
"context"
"errors"
"fmt"
"github.com/gogf/gf/v2/encoding/gjson"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gtime"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
"log"
"strconv"
"tyj_admin/api/v1/game"
@ -200,3 +203,23 @@ func GetRankGroup(ctx context.Context, req *game.AddRankGroupReq) (res *game.Add
res = new(game.AddRankGroupRes)
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/serviceGame/internal"
"tyj_admin/library/libUtils"
"tyj_admin/library/liberr"
"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) {
user := service.Context().GetLoginUser(ctx)
fulluser, err1 := service.User().GetUserByUsername(ctx, user.UserName)
if err != nil {
liberr.ErrIsNil(ctx, err1)
return
if err1 != nil {
return nil, err1
}
password := libUtils.EncryptPassword(req.Password, fulluser.UserSalt)
log.Printf("密码错误! fulluser: %v, pwd: %s", fulluser, password)
if fulluser.UserPassword != password {
liberr.ErrIsNil(ctx, errors.New("密码错误! pwd:"+fulluser.UserPassword+", req.pwd:"+password))
return
log.Printf("密码错误! fulluser: %v, pwd: %s", gjson.MustEncodeString(fulluser), password)
return nil, errors.New("密码错误!")
}
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/service"
"tyj_admin/internal/serviceGame/internal"
"tyj_admin/library/libUtils"
)
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) {
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 {
return res, errors.New("账号为空")
}
@ -537,16 +548,30 @@ func (o gameOrderImpl) CheckRechargeSign(ctx context.Context, req *game.CheckRec
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) {
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("参数为空")
}
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)
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()
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) {
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()
if err != nil {
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/frame/g"
"log"
"strings"
"time"
"tyj_admin/api/v1/game"
"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)
} else if req.InitUnit == 1 {
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
}

8
internal/serviceGame/rank.go

@ -17,6 +17,7 @@ type IGameRank interface {
UpdateAward(ctx context.Context, req *game.UpdateRankAwardReq) (res *game.UpdateRankAwardRes, 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)
GetGameRank(ctx context.Context, req *game.GetGameRankReq) (res *game.GetGameRankRes, err error)
}
type gameRankImpl struct {
@ -84,3 +85,10 @@ func (g *gameRankImpl) AddRankGroup(ctx context.Context, req *game.AddRankGroupR
log.Print("InsertRank", err)
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