Browse Source

level, debug

master
linquan 2 months ago
parent
commit
849fbc97c2
  1. 30
      api/v1/game/basicinfo.go
  2. 6
      api/v1/game/ccd.go
  3. 25
      api/v1/game/manage.go
  4. 56
      api/v1/game/order.go
  5. 4
      internal/consts/consts.go
  6. 5
      internal/controller/game_manage.go
  7. 10
      internal/controller/game_order.go
  8. 10
      internal/controller/game_pub.go
  9. 27
      internal/dao/game_recharge_level.go
  10. 27
      internal/dao/game_recharge_sign.go
  11. 79
      internal/dao/internal/game_recharge_level.go
  12. 79
      internal/dao/internal/game_recharge_sign.go
  13. 18
      internal/model/do/game_recharge_level.go
  14. 18
      internal/model/do/game_recharge_sign.go
  15. 13
      internal/model/entity/game_recharge_level.go
  16. 13
      internal/model/entity/game_recharge_sign.go
  17. 2
      internal/router/router.go
  18. 28
      internal/serviceGame/client_bug.go
  19. 38
      internal/serviceGame/internal/basicinfo.go
  20. 29
      internal/serviceGame/internal/manage.go
  21. 27
      internal/serviceGame/loginUrl.go
  22. 55
      internal/serviceGame/manage.go
  23. 110
      internal/serviceGame/order.go

30
api/v1/game/basicinfo.go

@ -78,14 +78,14 @@ type AccountReq struct {
Account string `p:"account"`
Ident string `p:"ident"`
Name string `p:"name"`
PageSize int64 `p:"pageSize"`
PageNum int64 `p:"pageNum"`
GmState string `p:"gmState"`
ServerId int `p:"serverId" `
common.Page64Req
}
type AccountRes struct {
g.Meta `mime:"application/json"`
Accounts []map[string]interface{} `json:"list"`
Total int64 `json:"total"`
common.List64Res
}
type GetLoginOutReq struct {
@ -106,7 +106,8 @@ type GetLoginOutRes struct {
type GetLoginOutLogReq struct {
g.Meta `path:"/loginOutLog/get" tags:"获取登录登出记录" method:"get" summary:"获取登录登出记录"`
Uid string `p:"id"`
Uid string `p:"uid"`
Id string `p:"id"`
Account string `p:"account"`
State int32 `p:"state"`
PageNum int `p:"pageNum"`
@ -123,6 +124,7 @@ type GetLoginOutLogRes struct {
type GetItemLogReq struct {
g.Meta `path:"/itemRecord/get" tags:"获取物品记录" method:"get" summary:"获取物品记录"`
Uid string `p:"uid"`
Id string `p:"id"`
Account string `p:"account"`
ItemId int `p:"ItemId"`
PageNum int `p:"pageNum"`
@ -145,17 +147,17 @@ type GetShopItemLogReq struct {
Channel string `p:"channel" `
common.PageReq
}
type ShopItemLog struct {
ItemId int `json:"itemId" description:"物品Id"`
Num int `json:"num" description:"数量"`
ConfigType int `json:"config_type" description:"消耗途径"`
}
type GetShopItemLogRes struct {
g.Meta `mime:"application/json"`
Logs []ShopItemLog `json:"logs"`
RechargeTotal int `json:"rechargeTotal"`
common.ListRes
}
type ShopItemLog struct {
ItemId int `json:"itemId" description:"物品Id"`
Num int `json:"num" description:"数量"`
ConfigType int `json:"config_type" description:"消耗途径"`
}
type GetShopItemListReq struct {
g.Meta `path:"/order/shopList" tags:"获取物品记录" method:"get" summary:"获取商店物品记录"`
@ -253,3 +255,13 @@ type UserDelRes struct {
g.Meta `mime:"application/json"`
Data int `p:"data"`
}
type DelAccountReq struct {
g.Meta `path:"/mange/delAccount" tags:"账号" method:"get" summary:"删除账号"`
SrcName string `p:"SrcName"`
ServerId int `p:"serverId"`
Password string `p:"password"`
}
type DelAccountRes struct {
}

6
api/v1/game/ccd.go

@ -72,9 +72,9 @@ type AddLoginUrlReq struct {
Id int `p:"id"`
Host string `p:"host"`
Port int `p:"port"`
State int `p:"state"`
Recommend int `p:"recommend"`
IsNew int `p:"isNew"`
State string `p:"state"`
Recommend string `p:"recommend"`
IsNew string `p:"isNew"`
}
type AddLoginUrlRes struct {

25
api/v1/game/manage.go

@ -2,7 +2,6 @@ package game
import (
"github.com/gogf/gf/v2/frame/g"
"tyj_admin/api/v1/common"
"tyj_admin/internal/model/entity"
)
@ -32,19 +31,6 @@ type SearchGmRes struct {
Gm int32 `json:"gm"`
}
type ListGmReq struct {
g.Meta `path:"/mange/listgm" tags:"账号" method:"get" summary:"列出GM权限"`
ServerId int `p:"serverId"`
ChangeValue int `p:"gmState"` //0正常,1-黑名单,3-gm
common.Page64Req
}
type ListGmRes struct {
g.Meta `mime:"application/json"`
Uids []string `json:"uids"`
common.List64Res
}
type SetGmToClientReq struct {
g.Meta `path:"/mange/setclientgm" tags:"账号" method:"get" summary:"开GM权限"`
ServerId int `p:"serverId"`
@ -59,8 +45,8 @@ type SetGmToClientRes struct {
type ResetPwdReq struct {
g.Meta `path:"/mange/resetpwd" tags:"账号" method:"post" summary:"修改登录密码"`
Account string `p:"account"`
Pwd string `p:"pwd"`
ServerId int `p:"serverId" v:"required|min:1#服务器ID不能为空"`
Pwd string `p:"pwd"`
}
type ResetPwdRes struct {
@ -210,15 +196,6 @@ type UpdateUnitReq struct {
type UpdateUnitRes struct {
}
type DelAccountReq struct {
g.Meta `path:"/mange/delAccount" tags:"账号" method:"get" summary:"删除账号"`
SrcName string `p:"SrcName"`
ServerId int `p:"serverId"`
}
type DelAccountRes struct {
}
type SearchAccountReq struct {
g.Meta `path:"/mange/searchAccount" tags:"账号" method:"get" summary:"搜索账号"`
//Day int `p:"day"`

56
api/v1/game/order.go

@ -58,6 +58,7 @@ type AmountTotal struct {
CreateTime string `json:"createTime" description:""`
Config int `json:"config" description:""`
TotalAmount int `json:"totalAmount" description:""`
Platform int `json:"platform" description:""`
}
type AccountTotal struct {
@ -80,6 +81,25 @@ type OrderLogRes struct {
RechargeAccountTotal []AccountTotal `json:"rechargeAccountTotal"`
}
type OrderLogPlatformReq struct {
g.Meta `path:"/order/logPlatform" tags:"订单" method:"get" summary:"订单列表记录"`
Channel string `p:"channel"`
StartTime int64 `p:"startTime"`
EndTime int64 `p:"endTime"`
CompareType int `p:"compareType"`
CompareType1 int `p:"compareType1"`
RechargeMin int `p:"rechargeMin"`
RechargeTotal int `p:"rechargeTotal"`
ServerId int `p:"server"`
}
type OrderLogPlatformRes struct {
g.Meta `mime:"application/json"`
AccountTotal []AccountTotal `json:"accountTotal"`
AmountTotal []AmountTotal `json:"amountTotal"`
RechargeAccountTotal []AccountTotal `json:"rechargeAccountTotal"`
}
type OrderBehaviorReq struct {
g.Meta `path:"/order/behavior" tags:"订单" method:"get" summary:"订单记录"`
StartTime string `p:"startTime"`
@ -202,3 +222,39 @@ type GetGMOrderListRes struct {
List []entity.GameRechargeLog `json:"list"`
common.ListRes
}
// 查询充值情况
type CheckRechargeSignReq struct {
g.Meta `path:"/getOrderLevel" tags:"订单" method:"get" summary:"查询充值情况"`
Id int64 `p:"unitId"`
ServerId int32 `p:"server"`
}
type CheckRechargeSignRes struct {
g.Meta `mime:"application/json"`
List []int `json:"list"`
}
// 插入充值情况
type AddRechargeSignReq struct {
g.Meta `path:"/setOrderLevel" tags:"订单" method:"get" summary:"插入充值情况"`
Id int64 `p:"unitId"`
ServerId int32 `p:"server"`
Config int32 `p:"config"`
Time int32 `p:"time"`
Token string `p:"token"`
}
type AddRechargeSignRes struct {
g.Meta `mime:"application/json"`
List []int `json:"list"`
}
// 重置充值情况
type ResetRechargeSignReq struct {
g.Meta `path:"/order/resetSign" tags:"订单" method:"get" summary:"重置充值情况"`
}
type ResetRechargeSignRes struct {
g.Meta `mime:"application/json"`
}

4
internal/consts/consts.go

@ -41,8 +41,10 @@ const (
const (
Notice_Type_Pop = 1
Notice_Type_Normal = 2
Notice_Type_Login = 2
Notice_Type_Maintenance = 3
Notice_Type_Customer = 4
Notice_Type_Preview = 5
)
const (

5
internal/controller/game_manage.go

@ -22,11 +22,6 @@ func (c *manageController) SearchGmAuthority(ctx context.Context, req *game.Sear
return
}
func (c *manageController) ListGmAuthority(ctx context.Context, req *game.ListGmReq) (res *game.ListGmRes, err error) {
res, err = serviceGame.GameManage().ListGm(ctx, req)
return
}
func (c *manageController) SetGmToClient(ctx context.Context, req *game.SetGmToClientReq) (res *game.SetGmToClientRes, err error) {
res, err = serviceGame.GameManage().SetGmToClient(ctx, req)
return

10
internal/controller/game_order.go

@ -46,6 +46,11 @@ func (c *orderController) GetOrderLog(ctx context.Context, req *game.OrderLogReq
return res, err
}
func (c *orderController) GetOrderLogPlatform(ctx context.Context, req *game.OrderLogPlatformReq) (res *game.OrderLogPlatformRes, err error) {
res, err = serviceGame.GameOrder().GetOrderLogPlatform(ctx, req)
return res, err
}
func (c *orderController) GetOrderBehavior(ctx context.Context, req *game.OrderBehaviorReq) (res *game.OrderBehaviorRes, err error) {
res, err = serviceGame.GameOrder().GetOrderBehavior(ctx, req)
return res, err
@ -80,3 +85,8 @@ func (c *orderController) GetGMOrderList(ctx context.Context, req *game.GetGMOrd
res, err = serviceGame.GameOrder().GetGMOrderList(ctx, req)
return res, err
}
func (c *orderController) ResetRechargeSign(ctx context.Context, req *game.ResetRechargeSignReq) (res *game.ResetRechargeSignRes, err error) {
res, err = serviceGame.GameOrder().ResetRechargeSign(ctx, req)
return
}

10
internal/controller/game_pub.go

@ -205,3 +205,13 @@ func (c *pubController) CheckSecondRebate(ctx context.Context, req *game.CheckSe
res, err = serviceGame.GamePub().CheckSecondRebate(ctx, req)
return
}
func (c *pubController) CheckRechargeSign(ctx context.Context, req *game.CheckRechargeSignReq) (res *game.CheckRechargeSignRes, err error) {
res, err = serviceGame.GameOrder().CheckRechargeSign(ctx, req)
return
}
func (c *pubController) AddRechargeSign(ctx context.Context, req *game.AddRechargeSignReq) (res *game.AddRechargeSignRes, err error) {
res, err = serviceGame.GameOrder().AddRechargeSign(ctx, req)
return
}

27
internal/dao/game_recharge_level.go

@ -0,0 +1,27 @@
// =================================================================================
// This is auto-generated by GoFrame CLI tool only once. Fill this file as you wish.
// =================================================================================
package dao
import (
"tyj_admin/internal/dao/internal"
)
// internalGameRechargeLevelDao is internal type for wrapping internal DAO implements.
type internalGameRechargeLevelDao = *internal.GameRechargeLevelDao
// gameRechargeLevelDao is the data access object for table game_recharge_level.
// You can define custom methods on it to extend its functionality as you wish.
type gameRechargeLevelDao struct {
internalGameRechargeLevelDao
}
var (
// GameRechargeLevel is globally public accessible object for table game_recharge_level operations.
GameRechargeLevel = gameRechargeLevelDao{
internal.NewGameRechargeLevelDao(),
}
)
// Fill with you ideas below.

27
internal/dao/game_recharge_sign.go

@ -0,0 +1,27 @@
// =================================================================================
// This is auto-generated by GoFrame CLI tool only once. Fill this file as you wish.
// =================================================================================
package dao
import (
"tyj_admin/internal/dao/internal"
)
// internalGameRechargeSignDao is internal type for wrapping internal DAO implements.
type internalGameRechargeSignDao = *internal.GameRechargeSignDao
// gameRechargeSignDao is the data access object for table game_recharge_sign.
// You can define custom methods on it to extend its functionality as you wish.
type gameRechargeSignDao struct {
internalGameRechargeSignDao
}
var (
// GameRechargeSign is globally public accessible object for table game_recharge_sign operations.
GameRechargeSign = gameRechargeSignDao{
internal.NewGameRechargeSignDao(),
}
)
// Fill with you ideas below.

79
internal/dao/internal/game_recharge_level.go

@ -0,0 +1,79 @@
// ==========================================================================
// Code generated by GoFrame CLI tool. DO NOT EDIT.
// ==========================================================================
package internal
import (
"context"
"github.com/gogf/gf/v2/database/gdb"
"github.com/gogf/gf/v2/frame/g"
)
// GameRechargeLevelDao is the data access object for table game_recharge_level.
type GameRechargeLevelDao struct {
table string // table is the underlying table name of the DAO.
group string // group is the database configuration group name of current DAO.
columns GameRechargeLevelColumns // columns contains all the column names of Table for convenient usage.
}
// GameRechargeLevelColumns defines and stores column names for table game_recharge_level.
type GameRechargeLevelColumns struct {
Id string //
UnitId string // 账号Id
Server string // 区服
Config string // 配置Id
}
// gameRechargeLevelColumns holds the columns for table game_recharge_level.
var gameRechargeLevelColumns = GameRechargeLevelColumns{
Id: "id",
UnitId: "unitId",
Server: "server",
Config: "config",
}
// NewGameRechargeLevelDao creates and returns a new DAO object for table data access.
func NewGameRechargeLevelDao() *GameRechargeLevelDao {
return &GameRechargeLevelDao{
group: "default",
table: "game_recharge_level",
columns: gameRechargeLevelColumns,
}
}
// DB retrieves and returns the underlying raw database management object of current DAO.
func (dao *GameRechargeLevelDao) DB() gdb.DB {
return g.DB(dao.group)
}
// Table returns the table name of current dao.
func (dao *GameRechargeLevelDao) Table() string {
return dao.table
}
// Columns returns all column names of current dao.
func (dao *GameRechargeLevelDao) Columns() GameRechargeLevelColumns {
return dao.columns
}
// Group returns the configuration group name of database of current dao.
func (dao *GameRechargeLevelDao) Group() string {
return dao.group
}
// Ctx creates and returns the Model for current DAO, It automatically sets the context for current operation.
func (dao *GameRechargeLevelDao) Ctx(ctx context.Context) *gdb.Model {
return dao.DB().Model(dao.table).Safe().Ctx(ctx)
}
// Transaction wraps the transaction logic using function f.
// It rollbacks the transaction and returns the error from function f if it returns non-nil error.
// It commits the transaction and returns nil if function f returns nil.
//
// Note that, you should not Commit or Rollback the transaction in function f
// as it is automatically handled by this function.
func (dao *GameRechargeLevelDao) Transaction(ctx context.Context, f func(ctx context.Context, tx *gdb.TX) error) (err error) {
return dao.Ctx(ctx).Transaction(ctx, f)
}

79
internal/dao/internal/game_recharge_sign.go

@ -0,0 +1,79 @@
// ==========================================================================
// Code generated by GoFrame CLI tool. DO NOT EDIT.
// ==========================================================================
package internal
import (
"context"
"github.com/gogf/gf/v2/database/gdb"
"github.com/gogf/gf/v2/frame/g"
)
// GameRechargeSignDao is the data access object for table game_recharge_sign.
type GameRechargeSignDao struct {
table string // table is the underlying table name of the DAO.
group string // group is the database configuration group name of current DAO.
columns GameRechargeSignColumns // columns contains all the column names of Table for convenient usage.
}
// GameRechargeSignColumns defines and stores column names for table game_recharge_sign.
type GameRechargeSignColumns struct {
Id string //
Unitid string // 账号Id
Server string // 区服
Config string // 配置Id
}
// gameRechargeSignColumns holds the columns for table game_recharge_sign.
var gameRechargeSignColumns = GameRechargeSignColumns{
Id: "id",
Unitid: "unitid",
Server: "server",
Config: "config",
}
// NewGameRechargeSignDao creates and returns a new DAO object for table data access.
func NewGameRechargeSignDao() *GameRechargeSignDao {
return &GameRechargeSignDao{
group: "default",
table: "game_recharge_sign",
columns: gameRechargeSignColumns,
}
}
// DB retrieves and returns the underlying raw database management object of current DAO.
func (dao *GameRechargeSignDao) DB() gdb.DB {
return g.DB(dao.group)
}
// Table returns the table name of current dao.
func (dao *GameRechargeSignDao) Table() string {
return dao.table
}
// Columns returns all column names of current dao.
func (dao *GameRechargeSignDao) Columns() GameRechargeSignColumns {
return dao.columns
}
// Group returns the configuration group name of database of current dao.
func (dao *GameRechargeSignDao) Group() string {
return dao.group
}
// Ctx creates and returns the Model for current DAO, It automatically sets the context for current operation.
func (dao *GameRechargeSignDao) Ctx(ctx context.Context) *gdb.Model {
return dao.DB().Model(dao.table).Safe().Ctx(ctx)
}
// Transaction wraps the transaction logic using function f.
// It rollbacks the transaction and returns the error from function f if it returns non-nil error.
// It commits the transaction and returns nil if function f returns nil.
//
// Note that, you should not Commit or Rollback the transaction in function f
// as it is automatically handled by this function.
func (dao *GameRechargeSignDao) Transaction(ctx context.Context, f func(ctx context.Context, tx *gdb.TX) error) (err error) {
return dao.Ctx(ctx).Transaction(ctx, f)
}

18
internal/model/do/game_recharge_level.go

@ -0,0 +1,18 @@
// =================================================================================
// Code generated by GoFrame CLI tool. DO NOT EDIT.
// =================================================================================
package do
import (
"github.com/gogf/gf/v2/frame/g"
)
// GameRechargeLevel is the golang structure of table game_recharge_level for DAO operations like Where/Data.
type GameRechargeLevel struct {
g.Meta `orm:"table:game_recharge_level, do:true"`
Id interface{} //
UnitId interface{} // 账号Id
Server interface{} // 区服
Config interface{} // 配置Id
}

18
internal/model/do/game_recharge_sign.go

@ -0,0 +1,18 @@
// =================================================================================
// Code generated by GoFrame CLI tool. DO NOT EDIT.
// =================================================================================
package do
import (
"github.com/gogf/gf/v2/frame/g"
)
// GameRechargeSign is the golang structure of table game_recharge_sign for DAO operations like Where/Data.
type GameRechargeSign struct {
g.Meta `orm:"table:game_recharge_sign, do:true"`
Id interface{} //
Unitid interface{} // 账号Id
Server interface{} // 区服
Config interface{} // 配置Id
}

13
internal/model/entity/game_recharge_level.go

@ -0,0 +1,13 @@
// =================================================================================
// Code generated by GoFrame CLI tool. DO NOT EDIT.
// =================================================================================
package entity
// GameRechargeLevel is the golang structure for table game_recharge_level.
type GameRechargeLevel struct {
Id int64 `json:"id" description:""`
UnitId int64 `json:"unitId" description:"账号Id"`
Server int `json:"server" description:"区服"`
Config int `json:"config" description:"配置Id"`
}

13
internal/model/entity/game_recharge_sign.go

@ -0,0 +1,13 @@
// =================================================================================
// Code generated by GoFrame CLI tool. DO NOT EDIT.
// =================================================================================
package entity
// GameRechargeSign is the golang structure for table game_recharge_sign.
type GameRechargeSign struct {
Id int64 `json:"id" description:""`
Unitid int64 `json:"unitid" description:"账号Id"`
Server int `json:"server" description:"区服"`
Config int `json:"config" description:"配置Id"`
}

2
internal/router/router.go

@ -81,10 +81,10 @@ func MiddlewareHandlerResponse(r *ghttp.Request) {
res = msg
}
//fmt.Println("WriteJson ", err, msg, fmt.Sprintf("%j", res))
if res == nil {
res = ""
}
//fmt.Println("WriteJson ", err, msg, gjson.MustEncodeString(res))
r.Response.WriteJson(res)
}

28
internal/serviceGame/client_bug.go

@ -73,23 +73,19 @@ func (c gameClientBugImpl) List(ctx context.Context, req *game.ClientBugListReq)
}
func (c gameClientBugImpl) Add(ctx context.Context, req *game.ClientBugAddReq) (res *game.ClientBugAddRes, err error) {
err = g.DB().Transaction(ctx, func(ctx context.Context, tx *gdb.TX) error {
err = g.Try(ctx, func(ctx context.Context) {
_, err = dao.GameBugClient.Ctx(ctx).TX(tx).InsertAndGetId(do.GameBugClient{
Uid: req.Uid,
Bug: req.Bug,
LogType: req.LogType,
StackTrace: req.StackTrace,
Channel: req.Channel,
SubChannel: req.SubChannel,
DeviceModel: req.DeviceModel,
DeviceType: req.DeviceType,
OperationSystem: req.OperationSystem,
SystemMemorySize: req.SystemMemorySize,
})
err = g.Try(ctx, func(ctx context.Context) {
_, err = dao.GameBugClient.Ctx(ctx).Insert(do.GameBugClient{
Uid: req.Uid,
Bug: req.Bug,
LogType: req.LogType,
StackTrace: req.StackTrace,
Channel: req.Channel,
SubChannel: req.SubChannel,
DeviceModel: req.DeviceModel,
DeviceType: req.DeviceType,
OperationSystem: req.OperationSystem,
SystemMemorySize: req.SystemMemorySize,
})
return err
})
return
}

38
internal/serviceGame/internal/basicinfo.go

@ -339,6 +339,10 @@ func GetAccount(ctx context.Context, req *game.AccountReq) (res *game.AccountRes
if req.Name != "" {
query["RealName"] = req.Name
}
if req.GmState != "" {
gm, _ := strconv.Atoi(req.GmState)
query["AccountType"] = gm
}
mongo, ok := MongoDatabaseList[server]
if !ok {
return nil, errors.New("不存在数据库!")
@ -635,15 +639,29 @@ func GetLoginOutLog(ctx context.Context, req *game.GetLoginOutLogReq) (res *game
if req.Account != "" {
uid, _ := GetAccountUid2(ctx, req.Account, fmt.Sprint(req.ServerId))
if uid == 0 {
//g.Log().Debugf(ctx, "LoginOut -> "+fmt.Sprint(uid))
err = gerror.New("获取账号失败!")
return
}
model = model.Where("uid=? ", uid)
} else if req.Id != "" {
uid, _ := strconv.ParseInt(req.Id, 10, 64)
if uid == 0 {
err = gerror.New("获取账号失败!")
return
}
model = model.Where("uid=? ", uid)
} else if req.Uid != "" {
uid, _ := strconv.ParseInt(req.Uid, 10, 64)
srcId, err1 := GetStringIdToUid(ctx, req.Uid)
if err1 != nil {
g.Log().Error(ctx, "GetUnit 获取账号ID err : ", err1, req.Uid)
return
}
if g.IsEmpty(srcId) {
g.Log().Error(ctx, "GetUnit 账号ID不存在 : ", srcId)
return
}
uid, _ := strconv.ParseInt(srcId, 10, 64)
if uid == 0 {
//g.Log().Debugf(ctx, "LoginOut -> "+fmt.Sprint(uid))
err = gerror.New("获取账号失败!")
return
}
@ -667,19 +685,28 @@ func GetItemLog(ctx context.Context, req *game.GetItemLogReq) (res *game.GetItem
if req.Account != "" {
uid, _ := GetAccountUid2(ctx, req.Account, fmt.Sprint(req.ServerId))
if uid == 0 {
//g.Log().Debugf(ctx, "LoginOut -> "+fmt.Sprint(uid))
err = gerror.New("获取账号失败!")
return
}
model = model.Where("uid=? ", uid)
model = model.Where("server=? ", req.ServerId)
} else if req.Uid != "" {
uid, _ := strconv.ParseInt(req.Uid, 10, 64)
if uid == 0 {
//g.Log().Debugf(ctx, "LoginOut -> "+fmt.Sprint(uid))
err = gerror.New("获取账号失败!")
return
}
model = model.Where("uid=? ", uid)
model = model.Where("server=? ", req.ServerId)
} else if req.Id != "" {
uid, _ := strconv.ParseInt(req.Id, 10, 64)
if uid == 0 {
err = gerror.New("获取账号失败!")
return
}
model = model.Where("uid=? ", uid)
model = model.Where("server=? ", req.ServerId)
}
if req.ItemId != 0 {
model = model.Where("item_id=? ", req.ItemId)
@ -1049,6 +1076,7 @@ func GameUserDel(ctx context.Context, req *game.UserDelReq) (res *game.UserDelRe
liberr.ErrIsNil(ctx, errors.New("密码错误! pwd:"+fulluser.UserPassword+", req.pwd:"+password))
return
}
units := []entity.GameUnit{}
err = dao.GameUnit.Ctx(ctx).Where("account=?", req.Account).Scan(&units)
data, _ := json.Marshal(units)

29
internal/serviceGame/internal/manage.go

@ -56,31 +56,6 @@ func SearchGm(ctx context.Context, req *game.SearchGmReq) (gm int32, err error)
return gm, err
}
func ListGm(ctx context.Context, req *game.ListGmReq) (res *game.ListGmRes, err error) {
res = new(game.ListGmRes)
filter := bson.M{"AccountType": req.ChangeValue}
server := fmt.Sprint(req.ServerId)
if MongoDatabaseList[server] == nil {
return nil, errors.New("数据库不存在,请联系管理员")
}
res.Total, err = MongoDatabaseList[server].Collection("Account").Find(ctx, filter).Count()
all1 := make([]map[string]interface{}, req.PageSize)
err = MongoDatabaseList[server].Collection("Account").Find(ctx, filter).Skip((req.PageNum - 1) * req.PageSize).Limit(req.PageSize).All(&all1)
if err != nil {
return nil, err
}
if len(all1) == 0 {
return nil, gerror.New("获取失败")
}
for _, v := range all1 {
id, _ := GetStringIdToUid(ctx, fmt.Sprint(v["_id"]))
res.Uids = append(res.Uids, id)
}
return
}
func SetGmToClient(ctx context.Context, req *game.SetGmToClientReq) (res *game.SetGmToClientRes, err error) {
res = new(game.SetGmToClientRes)
srcCharset := "UTF-8"
@ -200,8 +175,8 @@ func GetKeepAlive(ctx context.Context, req *game.GetKeepAliveReq) (res *game.Get
sql := fmt.Sprintf(`SELECT cd,COUNT(account) as num from (SELECT b.account, FROM_UNIXTIME( a.c_date, "%%Y-%%m-%%d" ) AS cd FROM login_out_log a
INNER JOIN game_unit b ON ( a.uid = b.uid )
inner join game_register c on (b.account=c.account)
WHERE ( a.e_date - a.c_date > 0 ) AND ( STR_TO_DATE( c.create_time, "%%Y-%%m-%%d" )= '%s') AND ( a.c_date < %d )`,
req.CreateTime, t.AddDate(0, 0, 30).Unix())
WHERE ( a.e_date - a.c_date > 0 ) AND ( STR_TO_DATE( c.create_time, "%%Y-%%m-%%d" )= '%s') AND ( a.c_date < %d ) AND ( a.c_date >= %d )`,
req.CreateTime, t.AddDate(0, 0, 30).Unix(), t.Unix())
if req.Server != 0 {
sql += fmt.Sprintf(` And a.server=%d`, req.Server)
}

27
internal/serviceGame/loginUrl.go

@ -94,14 +94,25 @@ func (c *gameLoginUrlImpl) AddLoginUrl(ctx context.Context, req *game.AddLoginUr
model := dao.GameLoginUrl.Ctx(ctx)
model.WherePri(req.Id).Scan(&server)
if len(server) > 0 {
_, err = model.WherePri(req.Id).Update(g.Map{
dao.GameLoginUrl.Columns().Id: req.Id,
dao.GameLoginUrl.Columns().Host: req.Host,
dao.GameLoginUrl.Columns().Port: req.Port,
dao.GameLoginUrl.Columns().State: req.State,
dao.GameLoginUrl.Columns().Recommend: req.Recommend,
dao.GameLoginUrl.Columns().IsNew: req.IsNew,
})
data := g.Map{
dao.GameLoginUrl.Columns().Id: req.Id,
}
if req.IsNew != "" {
data[dao.GameLoginUrl.Columns().IsNew] = req.IsNew
}
if req.Recommend != "" {
data[dao.GameLoginUrl.Columns().Recommend] = req.Recommend
}
if req.State != "" {
data[dao.GameLoginUrl.Columns().State] = req.State
}
if req.Host != "" {
data[dao.GameLoginUrl.Columns().Host] = req.Host
}
if req.Port != 0 {
data[dao.GameLoginUrl.Columns().Port] = req.Port
}
_, err = model.WherePri(req.Id).Update(data)
}
})
return

55
internal/serviceGame/manage.go

@ -13,7 +13,10 @@ import (
"time"
"tyj_admin/api/v1/game"
"tyj_admin/internal/model/entity"
"tyj_admin/internal/service"
"tyj_admin/internal/serviceGame/internal"
"tyj_admin/library/libUtils"
"tyj_admin/library/liberr"
"tyj_admin/utils"
)
@ -21,7 +24,6 @@ type IGameManage interface {
ChangeGm(ctx context.Context, req *game.ChangeGmReq) (res *game.ChangeGmRes, err error)
ChangePwd(ctx context.Context, req *game.ResetPwdReq) (res *game.ResetPwdRes, err error)
SearchGm(ctx context.Context, req *game.SearchGmReq) (res *game.SearchGmRes, err error)
ListGm(ctx context.Context, req *game.ListGmReq) (res *game.ListGmRes, err error)
SetGmToClient(ctx context.Context, req *game.SetGmToClientReq) (res *game.SetGmToClientRes, err error)
CopyUnit(ctx context.Context, req *game.CopyUnitReq) (res *game.CopyUnitRes, err error)
UpdateUnit(ctx context.Context, req *game.UpdateUnitReq) (res *game.UpdateUnitRes, err error)
@ -55,12 +57,6 @@ func (ga *gameManageImpl) SearchGm(ctx context.Context, req *game.SearchGmReq) (
return
}
func (ga *gameManageImpl) ListGm(ctx context.Context, req *game.ListGmReq) (res *game.ListGmRes, err error) {
res = new(game.ListGmRes)
res, err = internal.ListGm(ctx, req)
return
}
func (ga *gameManageImpl) SetGmToClient(ctx context.Context, req *game.SetGmToClientReq) (res *game.SetGmToClientRes, err error) {
res = new(game.SetGmToClientRes)
res, err = internal.SetGmToClient(ctx, req)
@ -282,28 +278,41 @@ 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
}
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
}
uid, err := internal.GetAccountUid2(ctx, req.SrcName, fmt.Sprint(req.ServerId))
if err != nil {
fmt.Println("DelAccount GetAccount err", err)
return nil, err
}
fmt.Println("DelAccount DelRole", uid)
_, err2 := internal.DelRole(ctx, uid, fmt.Sprint(req.ServerId))
if err2 != nil {
fmt.Println("DelAccount err2: ", err2)
return nil, err2
}
fmt.Printf("DelAccount uid: %d, server: %d", uid, req.ServerId)
//_, err2 := internal.DelRole(ctx, uid, fmt.Sprint(req.ServerId))
//if err2 != nil {
// fmt.Println("DelAccount err2: ", err2)
// return nil, err2
//}
_, err3 := internal.DelAccount(ctx, uid, fmt.Sprint(req.ServerId))
if err3 != nil {
fmt.Println("DelAccount err3: ", err3)
return nil, err3
}
_, err4 := internal.DelBaseInfo(ctx, uid, fmt.Sprint(req.ServerId))
fmt.Println("DelAccount err4: ", err4)
_, err6 := internal.DelBazaar(ctx, uid, fmt.Sprint(req.ServerId))
fmt.Println("DelAccount err6: ", err6)
_, err5 := internal.DelFriendUnit(ctx, uid, fmt.Sprint(req.ServerId))
fmt.Println("DelAccount err5: ", err5)
//_, err4 := internal.DelBaseInfo(ctx, uid, fmt.Sprint(req.ServerId))
//fmt.Println("DelAccount err4: ", err4)
//_, err6 := internal.DelBazaar(ctx, uid, fmt.Sprint(req.ServerId))
//fmt.Println("DelAccount err6: ", err6)
//_, err5 := internal.DelFriendUnit(ctx, uid, fmt.Sprint(req.ServerId))
//fmt.Println("DelAccount err5: ", err5)
return
}
@ -317,9 +326,11 @@ func (ga *gameManageImpl) SearchAccount(ctx context.Context, req *game.SearchAcc
return res, err
}
/*
**留存
**/
/* *
**
** 留存
**
* */
func (ga *gameManageImpl) GetKeepAlive(ctx context.Context, req *game.GetKeepAliveReq) (res *game.GetKeepAliveRes, err error) {
res, err = internal.GetKeepAlive(ctx, req)
return

110
internal/serviceGame/order.go

@ -27,6 +27,7 @@ type IGameOrder interface {
ChangeCoin(ctx context.Context, req *game.AddCoinReq) (res *game.AddCoinRes, err error)
Deposit(ctx context.Context, req *game.OrderDepositReq) (res *game.OrderDepositRes, err error)
GetOrderLog(ctx context.Context, req *game.OrderLogReq) (res *game.OrderLogRes, err error)
GetOrderLogPlatform(ctx context.Context, req *game.OrderLogPlatformReq) (res *game.OrderLogPlatformRes, err error)
GetOrderBehavior(ctx context.Context, req *game.OrderBehaviorReq) (res *game.OrderBehaviorRes, err error)
GetRechargePer(ctx context.Context, req *game.RechargePerReq) (res *game.RechargePerRes, err error)
GameRechargeControl(ctx context.Context, req *game.RechargeControlReq) (res *game.RechargeControlRes, err error)
@ -35,6 +36,9 @@ type IGameOrder interface {
DeleteRechargeControl(ctx context.Context, req *game.DeleteRechargeControlReq) (res *game.DeleteRechargeControlRes, err error)
ChangeOrderState(ctx context.Context, req *game.ChangeOrderStateReq) (res *game.ChangeOrderStateRes, err error)
GetGMOrderList(ctx context.Context, req *game.GetGMOrderListReq) (res *game.GetGMOrderListRes, err error)
CheckRechargeSign(ctx context.Context, req *game.CheckRechargeSignReq) (res *game.CheckRechargeSignRes, err error)
AddRechargeSign(ctx context.Context, req *game.AddRechargeSignReq) (res *game.AddRechargeSignRes, err error)
ResetRechargeSign(ctx context.Context, req *game.ResetRechargeSignReq) (res *game.ResetRechargeSignRes, err error)
}
type gameOrderImpl struct {
@ -289,8 +293,7 @@ func (o gameOrderImpl) GetOrderCount(ctx context.Context, req *game.OrderCountRe
}
res.Orders[k].Uid = int32(uid)
}
data, _ := json.Marshal(res.Orders)
log.Println("GetOrderCount 4 : ", string(data))
log.Println("GetOrderCount 4 : ", gjson.MustEncodeString(res.Orders))
return
}
@ -329,7 +332,7 @@ func (o gameOrderImpl) GetOrderLog(ctx context.Context, req *game.OrderLogReq) (
sql += fmt.Sprintf(` and r.server=%d`, req.ServerId)
}
}
sql += fmt.Sprint(" group by u.account")
sql += fmt.Sprint(" group by u.account,r.channel")
amountSql := fmt.Sprintf(`select max(a.channel) as channel, sum(a.amount) as totalAmount from (%s) as a WHERE 1=1 `, sql)
if req.RechargeMin > 0 {
@ -345,7 +348,41 @@ func (o gameOrderImpl) GetOrderLog(ctx context.Context, req *game.OrderLogReq) (
accountSql += " group by a.channel"
g.Model().Raw(accountSql).Scan(&res.RechargeAccountTotal)
log.Printf("GetOrderLog: %v, %v, %v", res.AmountTotal, res.AccountTotal, res.RechargeAccountTotal)
log.Printf("GetOrderLog: %v, %v, %v", gjson.MustEncodeString(res.AmountTotal), gjson.MustEncodeString(res.AccountTotal), gjson.MustEncodeString(res.RechargeAccountTotal))
})
return
}
func (o gameOrderImpl) GetOrderLogPlatform(ctx context.Context, req *game.OrderLogPlatformReq) (res *game.OrderLogPlatformRes, err error) {
res = new(game.OrderLogPlatformRes)
g.Try(ctx, func(ctx context.Context) {
var sql = fmt.Sprintf("select r.channel, sum(r.amount) as amount,u.account, r.platform from game_recharge as r inner join game_unit as u on u.uid=r.unitId where r.status=2 and r.tradeNo NOT LIKE 'GM%%' ")
if req.StartTime != 0 {
sql += fmt.Sprintf(` and UNIX_TIMESTAMP(r.createTime)>%d`, req.StartTime/1000)
}
if req.EndTime != 0 {
sql += fmt.Sprintf(` and UNIX_TIMESTAMP(r.createTime)<%d`, req.EndTime/1000)
}
if req.RechargeTotal > 0 {
sql = internal.CompareSqlType(sql, req.RechargeTotal, "r.amount", req.CompareType1)
}
if req.Channel != "" {
sql += fmt.Sprintf(` and r.channel="%s"`, req.Channel)
if req.ServerId != 0 {
sql += fmt.Sprintf(` and r.server=%d`, req.ServerId)
}
}
sql += fmt.Sprint(" group by u.account,r.channel,r.platform")
amountSql := fmt.Sprintf(`select a.channel, sum(a.amount) as totalAmount, a.platform from (%s) as a WHERE 1=1 `, sql)
if req.RechargeMin > 0 {
amountSql = internal.CompareSqlType(amountSql, req.RechargeMin, "a.amount", req.CompareType)
}
amountSql += " group by a.channel,a.platform"
g.Model().Raw(amountSql).Scan(&res.AmountTotal)
log.Printf("GetOrderLog: %v, %v, %v", gjson.MustEncodeString(res.AmountTotal), gjson.MustEncodeString(res.AccountTotal), gjson.MustEncodeString(res.RechargeAccountTotal))
})
return
}
@ -373,7 +410,7 @@ FROM game_recharge AS r INNER JOIN (%s) AS c ON c.uid = r.unitId WHERE r.STATUS
GROUP BY a.channel,a.createTime`, sql)
g.Model().Raw(accountSql).Scan(&res.RechargeAccount)
log.Printf("GetOrderBehavior: %v, %v, %v", res.Account, res.RechargeAccount, res.AmountList)
log.Printf("GetOrderBehavior: %v, %v, %v", gjson.MustEncodeString(res.Account), gjson.MustEncodeString(res.AmountList), gjson.MustEncodeString(res.RechargeAccount))
})
return
}
@ -394,7 +431,7 @@ func (o gameOrderImpl) GetRechargePer(ctx context.Context, req *game.RechargePer
from game_recharge as r inner join (%s) as c on c.uid=r.unitId where status=2 and tradeNo NOT LIKE 'GM%%' group by r.channel,c.createTime`, sql)
g.Model().Raw(accountSql).Scan(&res.RechargeAccount)
log.Printf("GetOrderBehavior: %v, %v", res.Account, res.RechargeAccount)
log.Printf("GetOrderBehavior: %v, %v", gjson.MustEncodeString(res.Account), gjson.MustEncodeString(res.RechargeAccount))
})
return
}
@ -481,3 +518,64 @@ func (o gameOrderImpl) GetGMOrderList(ctx context.Context, req *game.GetGMOrderL
err = model.Page(req.PageNum, req.PageSize).Scan(&res.List)
return
}
func (o gameOrderImpl) CheckRechargeSign(ctx context.Context, req *game.CheckRechargeSignReq) (res *game.CheckRechargeSignRes, err error) {
res = new(game.CheckRechargeSignRes)
if req.Id == 0 || req.ServerId == 0 {
return res, errors.New("账号为空")
}
list := []entity.GameRechargeLevel{}
err = dao.GameRechargeLevel.Ctx(ctx).Where("unitId=?", req.Id).Where("server=?", req.ServerId).Scan(&list)
if err != nil {
log.Printf("CheckRechargeSign: %v, %v", gjson.MustEncodeString(res), err)
return res, err
}
for _, v := range list {
res.List = append(res.List, v.Config)
}
return
}
// http://192.168.2.100:4111/frontApi/game/setOrderLevel?unitId=1&server=1001&time=250726&token
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 {
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 {
log.Printf("[%s]AddRechargeSign failed, token error, md5: %s", gjson.MustEncodeString(req), token)
return nil, errors.New("token err")
}
count, err := dao.GameRechargeLevel.Ctx(ctx).Where("unitId=?", req.Id).Where("server=?", req.ServerId).Where("config=?", req.Config).Count()
if err != nil {
log.Printf("req: %s, AddRechargeSign: err: %v", gjson.MustEncodeString(req), err)
return nil, err
}
if count > 0 {
log.Printf("req: %s, AddRechargeSign: count:%v", gjson.MustEncodeString(req), count)
return nil, errors.New("ok")
}
_, err = dao.GameRechargeLevel.Ctx(ctx).Insert(do.GameRechargeLevel{UnitId: req.Id, Server: req.ServerId, Config: req.Config})
if err != nil {
log.Printf("req: %s, AddRechargeSign: %v, err: %v", gjson.MustEncodeString(req), gjson.MustEncodeString(res), err)
return nil, err
}
return nil, errors.New("ok")
}
func (o gameOrderImpl) ResetRechargeSign(ctx context.Context, req *game.ResetRechargeSignReq) (res *game.ResetRechargeSignRes, err error) {
result, err := dao.GameRechargeLevel.Ctx(ctx).Where("1=1").Delete()
if err != nil {
log.Printf("ResetRechargeSign: %v", err)
return nil, err
}
rows, err := result.RowsAffected()
if err != nil {
log.Printf("ResetRechargeSign: %v", err)
return nil, err
}
log.Printf("ResetRechargeSign: %v", rows)
return
}

Loading…
Cancel
Save