Compare commits

...

11 Commits

Author SHA1 Message Date
sk 2512994ee8 fix facebook账号删除 2025-02-06 14:38:38 +08:00
sk e94c653ae1 add facebook账号删除 2025-02-06 14:20:28 +08:00
sk 9d8c4d5d69 add facebook账号删除 2025-02-06 14:16:46 +08:00
sk 0b8225b25c Merge branch 'develop' of git.pogorockgames.com:mango-games/server/game into develop 2025-02-06 13:43:18 +08:00
by f6da9d8aa8 年兽活动时区修改 2025-02-06 12:26:12 +07:00
sk 985d3a065d add facebook账号删除 2025-02-06 13:25:52 +08:00
by 768dd92e2d 年兽活动时区修改 2025-02-06 11:19:50 +08:00
by 7aee41e78a 年兽活动时区修改 2025-02-06 11:17:35 +08:00
by cab256396e 年兽活动时区修改 2025-02-06 11:14:01 +08:00
sk 1e0d1f6c8f update go.mod 2025-01-21 11:54:33 +08:00
sk 86f2dc4f14 modify 机器人允许维护状态登录 2025-01-21 09:38:21 +08:00
16 changed files with 695 additions and 173 deletions

94
dao/account_log.go Normal file
View File

@ -0,0 +1,94 @@
package dao
import (
"context"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
"mongo.games.com/goserver/core/logger"
"mongo.games.com/goserver/core/mongox"
"mongo.games.com/game/dao/internal"
modelpkg "mongo.games.com/game/model"
)
var (
_ = context.Background()
_ = logger.Logger
_ = bson.M{}
_ = mongo.Database{}
)
type AccountLogColumns = internal.AccountLogColumns
type AccountLog struct {
*internal.AccountLog
}
func GetAccountLog(key string) (*AccountLog, error) {
return mongox.GetDao(key, NewAccountLog)
}
func NewAccountLog(db *mongo.Database, c *mongo.Collection) (*AccountLog, any) {
if db == nil || c == nil {
return &AccountLog{}, &modelpkg.AccountLog{}
}
v := internal.NewAccountLog()
v.Database = db
v.Collection = c
c.Indexes().CreateMany(context.Background(), []mongo.IndexModel{
{
Keys: bson.D{{"platform", 1}}, // 1 表示升序,-1 表示降序
Options: options.Index().SetBackground(true).SetSparse(true), // 后台创建索引,稀疏索引
},
{
Keys: bson.D{{"snid", 1}}, // 1 表示升序,-1 表示降序
Options: options.Index().SetBackground(true).SetSparse(true), // 后台创建索引,稀疏索引
},
{
Keys: bson.D{{"faceBookId", 1}}, // 1 表示升序,-1 表示降序
Options: options.Index().SetBackground(true).SetSparse(true), // 后台创建索引,稀疏索引
},
})
return &AccountLog{AccountLog: v}, &modelpkg.AccountLog{}
}
func (a *AccountLog) GetByFaceBookId(id string) (*modelpkg.AccountLog, error) {
ret, err := a.FindOne(context.Background(), func(cols *internal.AccountLogColumns) interface{} {
return bson.M{cols.FaceBookId: id}
})
if err != nil {
return nil, err
}
return ret, nil
}
func (a *AccountLog) Save(log *modelpkg.AccountLog) error {
old, err := a.FindOne(context.Background(), func(cols *internal.AccountLogColumns) interface{} {
return bson.M{cols.SnId: log.SnId}
})
if err != nil {
return err
}
if old != nil {
// 更新
log.ID = old.ID
_, err = a.UpdateOne(context.Background(), func(cols *internal.AccountLogColumns) interface{} {
return bson.M{cols.SnId: log.SnId}
}, func(cols *internal.AccountLogColumns) interface{} {
return bson.M{"$set": log}
})
if err != nil {
return err
}
return nil
}
// 插入
_, err = a.InsertOne(context.Background(), log)
return err
}

279
dao/internal/account_log.go Normal file
View File

@ -0,0 +1,279 @@
// --------------------------------------------------------------------------------------------
// The following code is automatically generated by the mongo-dao-generator tool.
// Please do not modify this code manually to avoid being overwritten in the next generation.
// For more tool details, please click the link to view https://github.com/dobyte/mongo-dao-generator
// --------------------------------------------------------------------------------------------
package internal
import (
"context"
"errors"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
modelpkg "mongo.games.com/game/model"
)
type AccountLogFilterFunc func(cols *AccountLogColumns) interface{}
type AccountLogUpdateFunc func(cols *AccountLogColumns) interface{}
type AccountLogPipelineFunc func(cols *AccountLogColumns) interface{}
type AccountLogCountOptionsFunc func(cols *AccountLogColumns) *options.CountOptions
type AccountLogAggregateOptionsFunc func(cols *AccountLogColumns) *options.AggregateOptions
type AccountLogFindOneOptionsFunc func(cols *AccountLogColumns) *options.FindOneOptions
type AccountLogFindManyOptionsFunc func(cols *AccountLogColumns) *options.FindOptions
type AccountLogUpdateOptionsFunc func(cols *AccountLogColumns) *options.UpdateOptions
type AccountLogDeleteOptionsFunc func(cols *AccountLogColumns) *options.DeleteOptions
type AccountLogInsertOneOptionsFunc func(cols *AccountLogColumns) *options.InsertOneOptions
type AccountLogInsertManyOptionsFunc func(cols *AccountLogColumns) *options.InsertManyOptions
type AccountLog struct {
Columns *AccountLogColumns
Database *mongo.Database
Collection *mongo.Collection
}
type AccountLogColumns struct {
ID string
Platform string
SnId string
AccountType string
FaceBookId string
}
var accountLogColumns = &AccountLogColumns{
ID: "_id",
Platform: "platform",
SnId: "snid",
AccountType: "accounttype",
FaceBookId: "facebookid",
}
func NewAccountLog() *AccountLog {
return &AccountLog{
Columns: accountLogColumns,
}
}
// Count returns the number of documents in the collection.
func (dao *AccountLog) Count(ctx context.Context, filterFunc AccountLogFilterFunc, optionsFunc ...AccountLogCountOptionsFunc) (int64, error) {
var (
opts *options.CountOptions
filter = filterFunc(dao.Columns)
)
if len(optionsFunc) > 0 {
opts = optionsFunc[0](dao.Columns)
}
return dao.Collection.CountDocuments(ctx, filter, opts)
}
// Aggregate executes an aggregate command against the collection and returns a cursor over the resulting documents.
func (dao *AccountLog) Aggregate(ctx context.Context, pipelineFunc AccountLogPipelineFunc, optionsFunc ...AccountLogAggregateOptionsFunc) (*mongo.Cursor, error) {
var (
opts *options.AggregateOptions
pipeline = pipelineFunc(dao.Columns)
)
if len(optionsFunc) > 0 {
opts = optionsFunc[0](dao.Columns)
}
return dao.Collection.Aggregate(ctx, pipeline, opts)
}
// InsertOne executes an insert command to insert a single document into the collection.
func (dao *AccountLog) InsertOne(ctx context.Context, model *modelpkg.AccountLog, optionsFunc ...AccountLogInsertOneOptionsFunc) (*mongo.InsertOneResult, error) {
if model == nil {
return nil, errors.New("model is nil")
}
if err := dao.autofill(ctx, model); err != nil {
return nil, err
}
var opts *options.InsertOneOptions
if len(optionsFunc) > 0 {
opts = optionsFunc[0](dao.Columns)
}
return dao.Collection.InsertOne(ctx, model, opts)
}
// InsertMany executes an insert command to insert multiple documents into the collection.
func (dao *AccountLog) InsertMany(ctx context.Context, models []*modelpkg.AccountLog, optionsFunc ...AccountLogInsertManyOptionsFunc) (*mongo.InsertManyResult, error) {
if len(models) == 0 {
return nil, errors.New("models is empty")
}
documents := make([]interface{}, 0, len(models))
for i := range models {
model := models[i]
if err := dao.autofill(ctx, model); err != nil {
return nil, err
}
documents = append(documents, model)
}
var opts *options.InsertManyOptions
if len(optionsFunc) > 0 {
opts = optionsFunc[0](dao.Columns)
}
return dao.Collection.InsertMany(ctx, documents, opts)
}
// UpdateOne executes an update command to update at most one document in the collection.
func (dao *AccountLog) UpdateOne(ctx context.Context, filterFunc AccountLogFilterFunc, updateFunc AccountLogUpdateFunc, optionsFunc ...AccountLogUpdateOptionsFunc) (*mongo.UpdateResult, error) {
var (
opts *options.UpdateOptions
filter = filterFunc(dao.Columns)
update = updateFunc(dao.Columns)
)
if len(optionsFunc) > 0 {
opts = optionsFunc[0](dao.Columns)
}
return dao.Collection.UpdateOne(ctx, filter, update, opts)
}
// UpdateOneByID executes an update command to update at most one document in the collection.
func (dao *AccountLog) UpdateOneByID(ctx context.Context, id string, updateFunc AccountLogUpdateFunc, optionsFunc ...AccountLogUpdateOptionsFunc) (*mongo.UpdateResult, error) {
objectID, err := primitive.ObjectIDFromHex(id)
if err != nil {
return nil, err
}
return dao.UpdateOne(ctx, func(cols *AccountLogColumns) interface{} {
return bson.M{"_id": objectID}
}, updateFunc, optionsFunc...)
}
// UpdateMany executes an update command to update documents in the collection.
func (dao *AccountLog) UpdateMany(ctx context.Context, filterFunc AccountLogFilterFunc, updateFunc AccountLogUpdateFunc, optionsFunc ...AccountLogUpdateOptionsFunc) (*mongo.UpdateResult, error) {
var (
opts *options.UpdateOptions
filter = filterFunc(dao.Columns)
update = updateFunc(dao.Columns)
)
if len(optionsFunc) > 0 {
opts = optionsFunc[0](dao.Columns)
}
return dao.Collection.UpdateMany(ctx, filter, update, opts)
}
// FindOne executes a find command and returns a model for one document in the collection.
func (dao *AccountLog) FindOne(ctx context.Context, filterFunc AccountLogFilterFunc, optionsFunc ...AccountLogFindOneOptionsFunc) (*modelpkg.AccountLog, error) {
var (
opts *options.FindOneOptions
model = &modelpkg.AccountLog{}
filter = filterFunc(dao.Columns)
)
if len(optionsFunc) > 0 {
opts = optionsFunc[0](dao.Columns)
}
err := dao.Collection.FindOne(ctx, filter, opts).Decode(model)
if err != nil {
if err == mongo.ErrNoDocuments {
return nil, nil
}
return nil, err
}
return model, nil
}
// FindOneByID executes a find command and returns a model for one document in the collection.
func (dao *AccountLog) FindOneByID(ctx context.Context, id string, optionsFunc ...AccountLogFindOneOptionsFunc) (*modelpkg.AccountLog, error) {
objectID, err := primitive.ObjectIDFromHex(id)
if err != nil {
return nil, err
}
return dao.FindOne(ctx, func(cols *AccountLogColumns) interface{} {
return bson.M{"_id": objectID}
}, optionsFunc...)
}
// FindMany executes a find command and returns many models the matching documents in the collection.
func (dao *AccountLog) FindMany(ctx context.Context, filterFunc AccountLogFilterFunc, optionsFunc ...AccountLogFindManyOptionsFunc) ([]*modelpkg.AccountLog, error) {
var (
opts *options.FindOptions
filter = filterFunc(dao.Columns)
)
if len(optionsFunc) > 0 {
opts = optionsFunc[0](dao.Columns)
}
cur, err := dao.Collection.Find(ctx, filter, opts)
if err != nil {
return nil, err
}
models := make([]*modelpkg.AccountLog, 0)
if err = cur.All(ctx, &models); err != nil {
return nil, err
}
return models, nil
}
// DeleteOne executes a delete command to delete at most one document from the collection.
func (dao *AccountLog) DeleteOne(ctx context.Context, filterFunc AccountLogFilterFunc, optionsFunc ...AccountLogDeleteOptionsFunc) (*mongo.DeleteResult, error) {
var (
opts *options.DeleteOptions
filter = filterFunc(dao.Columns)
)
if len(optionsFunc) > 0 {
opts = optionsFunc[0](dao.Columns)
}
return dao.Collection.DeleteOne(ctx, filter, opts)
}
// DeleteOneByID executes a delete command to delete at most one document from the collection.
func (dao *AccountLog) DeleteOneByID(ctx context.Context, id string, optionsFunc ...AccountLogDeleteOptionsFunc) (*mongo.DeleteResult, error) {
objectID, err := primitive.ObjectIDFromHex(id)
if err != nil {
return nil, err
}
return dao.DeleteOne(ctx, func(cols *AccountLogColumns) interface{} {
return bson.M{"_id": objectID}
}, optionsFunc...)
}
// DeleteMany executes a delete command to delete documents from the collection.
func (dao *AccountLog) DeleteMany(ctx context.Context, filterFunc AccountLogFilterFunc, optionsFunc ...AccountLogDeleteOptionsFunc) (*mongo.DeleteResult, error) {
var (
opts *options.DeleteOptions
filter = filterFunc(dao.Columns)
)
if len(optionsFunc) > 0 {
opts = optionsFunc[0](dao.Columns)
}
return dao.Collection.DeleteMany(ctx, filter, opts)
}
// autofill when inserting data
func (dao *AccountLog) autofill(ctx context.Context, model *modelpkg.AccountLog) error {
if model.ID.IsZero() {
model.ID = primitive.NewObjectID()
}
return nil
}

View File

@ -0,0 +1,34 @@
package mq
import (
"mongo.games.com/goserver/core/logger"
"mongo.games.com/goserver/core/mongox"
"mongo.games.com/game/dao"
"mongo.games.com/game/model"
"mongo.games.com/game/mq"
)
func init() {
mq.RegisterHandler(&mq.RegisterHandlerParam{
Name: mq.DBAccountLog,
Data: model.AccountLog{},
Handler: func(data interface{}) (err error) {
log, ok := data.(*model.AccountLog)
if !ok {
return nil
}
c, err := dao.GetAccountLog(mongox.Global)
if err != nil {
logger.Logger.Errorf("GetAccountLog error: %v", err)
return err
}
err = c.Save(log)
if err != nil {
logger.Logger.Errorf("Save error: %v", err)
return err
}
return nil
},
})
}

View File

@ -0,0 +1,33 @@
package svc
import (
"mongo.games.com/game/dao"
"mongo.games.com/game/model"
"mongo.games.com/goserver/core/logger"
"mongo.games.com/goserver/core/mongox"
"net/rpc"
)
type AccountLogSvc struct {
}
func (a *AccountLogSvc) GetByFaceBookId(req *string, res *model.AccountLog) error {
c, err := dao.GetAccountLog(mongox.Global)
if err != nil {
logger.Logger.Errorf("GetAccountLog error: %v", err)
return err
}
log, err := c.GetByFaceBookId(*req)
if err != nil {
logger.Logger.Errorf("GetByFaceBookId error: %v", err)
return err
}
*res = *log
return nil
}
var AccountLogSvcInst = new(AccountLogSvc)
func init() {
rpc.Register(AccountLogSvcInst)
}

41
go.mod
View File

@ -22,7 +22,7 @@ require (
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826
github.com/mojocn/base64Captcha v1.3.6
github.com/mozillazg/go-pinyin v0.20.0
github.com/spf13/cast v1.7.0
github.com/spf13/cast v1.7.1
github.com/spf13/viper v1.19.0
github.com/tealeg/xlsx v1.0.5
github.com/tomas-qstarrs/boost v1.0.3
@ -31,10 +31,10 @@ require (
github.com/xuri/excelize/v2 v2.9.0
github.com/zegoim/zego_server_assistant/token/go/src v0.0.0-20231013093807-4e80bab42ec3
github.com/zeromicro/go-zero v1.7.3
go.etcd.io/etcd/client/v3 v3.5.16
go.mongodb.org/mongo-driver v1.17.1
go.etcd.io/etcd/client/v3 v3.5.17
go.mongodb.org/mongo-driver v1.17.2
golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8
google.golang.org/protobuf v1.36.2
google.golang.org/protobuf v1.36.3
gorm.io/gorm v1.25.12
mongo.games.com/goserver v0.0.0-00010101000000-000000000000
)
@ -48,7 +48,7 @@ require (
github.com/davidminor/uint128 v0.0.0-20141227063632-5745f1bf8041 // indirect
github.com/dlclark/regexp2 v1.10.0 // indirect
github.com/fatih/color v1.18.0 // indirect
github.com/fsnotify/fsnotify v1.7.0 // indirect
github.com/fsnotify/fsnotify v1.8.0 // indirect
github.com/go-sql-driver/mysql v1.8.1 // indirect
github.com/gocarina/gocsv v0.0.0-20221105105431-c8ef78125b99 // indirect
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect
@ -59,27 +59,27 @@ require (
github.com/hashicorp/hcl v1.0.0 // indirect
github.com/innopals/sls-logrus-hook v0.0.0-20190808032145-2fe1d6f7ce00 // indirect
github.com/jinzhu/inflection v1.0.0 // indirect
github.com/klauspost/compress v1.17.9 // indirect
github.com/klauspost/compress v1.17.11 // indirect
github.com/klauspost/cpuid/v2 v2.2.9 // indirect
github.com/klauspost/reedsolomon v1.12.4 // indirect
github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible // indirect
github.com/lestrrat-go/strftime v1.1.0 // indirect
github.com/magiconair/properties v1.8.7 // indirect
github.com/magiconair/properties v1.8.9 // indirect
github.com/mattn/go-colorable v0.1.14 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mitchellh/mapstructure v1.5.0 // indirect
github.com/montanaflynn/stats v0.7.1 // indirect
github.com/pelletier/go-toml/v2 v2.2.2 // indirect
github.com/pelletier/go-toml/v2 v2.2.3 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/richardlehane/mscfb v1.0.4 // indirect
github.com/richardlehane/msoleps v1.0.4 // indirect
github.com/sagikazarmark/locafero v0.4.0 // indirect
github.com/sagikazarmark/locafero v0.7.0 // indirect
github.com/sagikazarmark/slog-shim v0.1.0 // indirect
github.com/shopspring/decimal v1.3.1 // indirect
github.com/sirupsen/logrus v1.9.3 // indirect
github.com/sourcegraph/conc v0.3.0 // indirect
github.com/spaolacci/murmur3 v1.1.0 // indirect
github.com/spf13/afero v1.11.0 // indirect
github.com/spf13/afero v1.12.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/stathat/consistent v1.0.0 // indirect
github.com/streadway/amqp v1.1.0 // indirect
@ -98,24 +98,23 @@ require (
github.com/xuri/efp v0.0.0-20241211021726-c4e992084aa6 // indirect
github.com/xuri/nfp v0.0.0-20240318013403-ab9948c2c4a7 // indirect
github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 // indirect
go.etcd.io/etcd/api/v3 v3.5.16 // indirect
go.etcd.io/etcd/client/pkg/v3 v3.5.16 // indirect
go.opentelemetry.io/otel v1.24.0 // indirect
go.opentelemetry.io/otel/trace v1.24.0 // indirect
go.uber.org/atomic v1.10.0 // indirect
go.etcd.io/etcd/api/v3 v3.5.17 // indirect
go.etcd.io/etcd/client/pkg/v3 v3.5.17 // indirect
go.opentelemetry.io/otel v1.31.0 // indirect
go.opentelemetry.io/otel/trace v1.31.0 // indirect
go.uber.org/automaxprocs v1.6.0 // indirect
go.uber.org/multierr v1.9.0 // indirect
go.uber.org/zap v1.24.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
golang.org/x/crypto v0.32.0 // indirect
golang.org/x/image v0.18.0 // indirect
golang.org/x/net v0.34.0 // indirect
golang.org/x/sync v0.10.0 // indirect
golang.org/x/sys v0.29.0 // indirect
golang.org/x/text v0.21.0 // indirect
golang.org/x/time v0.7.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect
google.golang.org/grpc v1.67.1 // indirect
golang.org/x/time v0.9.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f // indirect
google.golang.org/grpc v1.69.4 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect

106
go.sum
View File

@ -18,8 +18,6 @@ github.com/astaxie/beego v1.12.3 h1:SAQkdD2ePye+v8Gn1r4X6IKZM1wd28EyUOVQ3PDSOOQ=
github.com/astaxie/beego v1.12.3/go.mod h1:p3qIm0Ryx7zeBHLljmd7omloyca1s4yu1a8kM1FkpIA=
github.com/beego/goyaml2 v0.0.0-20130207012346-5545475820dd/go.mod h1:1b+Y/CofkYwXMUU0OhQqGvsY2Bvgr4j6jfT699wyZKQ=
github.com/beego/x2j v0.0.0-20131220205130-a0352aadc542/go.mod h1:kSeGC/p1AbBiEp5kat81+DSQrZenVBZXklMLaELspWU=
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
@ -76,8 +74,8 @@ github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHk
github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M=
github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/glendc/gopher-json v0.0.0-20170414221815-dc4743023d0c/go.mod h1:Gja1A+xZ9BoviGJNA2E9vFkPjjsl+CoJxSXiQM1UXtw=
github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8 h1:DujepqpGd1hyOd7aW59XpK7Qymp8iy83xq74fLr21is=
@ -177,8 +175,8 @@ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7V
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA=
github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc=
github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0=
github.com/klauspost/cpuid/v2 v2.2.9 h1:66ze0taIn2H33fBvCkXuv9BmCwDfafmiIVpKV9kKGuY=
github.com/klauspost/cpuid/v2 v2.2.9/go.mod h1:rqkxqrZ1EhYM9G+hXH7YdowN5R5RGN6NK4QwQ3WMXF8=
github.com/klauspost/reedsolomon v1.12.4 h1:5aDr3ZGoJbgu/8+j45KtUJxzYm8k08JGtB9Wx1VQ4OA=
@ -201,8 +199,8 @@ github.com/lestrrat-go/strftime v1.1.0 h1:gMESpZy44/4pXLO/m+sL0yBd1W6LjgjrrD4a68
github.com/lestrrat-go/strftime v1.1.0/go.mod h1:uzeIB52CeUJenCo1syghlugshMysrqUT51HlxphXVeI=
github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
github.com/magiconair/properties v1.8.9 h1:nWcCbLq1N2v/cpNsy5WvQ37Fb+YElfq20WJ/a8RkpQM=
github.com/magiconair/properties v1.8.9/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
@ -245,8 +243,8 @@ github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1y
github.com/pelletier/go-toml v1.0.1/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE=
github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM=
github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M=
github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc=
github.com/peterh/liner v1.0.1-0.20171122030339-3681c2a91233/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@ -284,8 +282,8 @@ github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6So
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ=
github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4=
github.com/sagikazarmark/locafero v0.7.0 h1:5MqpDsTGNDhY8sGp0Aowyf0qKsPrhewaLSsFaodPcyo=
github.com/sagikazarmark/locafero v0.7.0/go.mod h1:2za3Cg5rMaTMoG/2Ulr9AwtFaIppKXTRYnozin4aB5k=
github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE=
github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ=
github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644/go.mod h1:nkxAfR/5quYxwPZhyDxgasBMnRtBZd0FCEpawpjMUFg=
@ -308,12 +306,12 @@ github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0b
github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8=
github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY=
github.com/spf13/afero v1.12.0 h1:UcOPyRBYczmFn6yvphxkn9ZEOY65cpwGKb5mL36mrqs=
github.com/spf13/afero v1.12.0/go.mod h1:ZTlWwG4/ahT8W7T0WQ5uYmjI9duaLQGy3Q2OAl4sk/4=
github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w=
github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y=
github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g=
github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
@ -330,8 +328,6 @@ github.com/streadway/amqp v1.1.0 h1:py12iX8XSyI7aN/3dUT8DFIDJazNJsVJdxNVEpnQTZM=
github.com/streadway/amqp v1.1.0/go.mod h1:WYSrTEYHOXHd0nwFeUXAe2G2hRnQT+deZJJf88uS9Bg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
@ -339,11 +335,8 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8=
github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
@ -402,35 +395,35 @@ github.com/zegoim/zego_server_assistant/token/go/src v0.0.0-20231013093807-4e80b
github.com/zeromicro/go-zero v1.7.3 h1:yDUQF2DXDhUHc77/NZF6mzsoRPMBfldjPmG2O/ZSzss=
github.com/zeromicro/go-zero v1.7.3/go.mod h1:9JIW3gHBGuc9LzvjZnNwINIq9QdiKu3AigajLtkJamQ=
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
go.etcd.io/etcd/api/v3 v3.5.16 h1:WvmyJVbjWqK4R1E+B12RRHz3bRGy9XVfh++MgbN+6n0=
go.etcd.io/etcd/api/v3 v3.5.16/go.mod h1:1P4SlIP/VwkDmGo3OlOD7faPeP8KDIFhqvciH5EfN28=
go.etcd.io/etcd/client/pkg/v3 v3.5.16 h1:ZgY48uH6UvB+/7R9Yf4x574uCO3jIx0TRDyetSfId3Q=
go.etcd.io/etcd/client/pkg/v3 v3.5.16/go.mod h1:V8acl8pcEK0Y2g19YlOV9m9ssUe6MgiDSobSoaBAM0E=
go.etcd.io/etcd/client/v3 v3.5.16 h1:sSmVYOAHeC9doqi0gv7v86oY/BTld0SEFGaxsU9eRhE=
go.etcd.io/etcd/client/v3 v3.5.16/go.mod h1:X+rExSGkyqxvu276cr2OwPLBaeqFu1cIl4vmRjAD/50=
go.mongodb.org/mongo-driver v1.17.1 h1:Wic5cJIwJgSpBhe3lx3+/RybR5PiYRMpVFgO7cOHyIM=
go.mongodb.org/mongo-driver v1.17.1/go.mod h1:wwWm/+BuOddhcq3n68LKRmgk2wXzmF6s0SFOa0GINL4=
go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo=
go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo=
go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI=
go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco=
go.opentelemetry.io/otel/sdk v1.24.0 h1:YMPPDNymmQN3ZgczicBY3B6sf9n62Dlj9pWD3ucgoDw=
go.opentelemetry.io/otel/sdk v1.24.0/go.mod h1:KVrIYw6tEubO9E96HQpcmpTKDVn9gdv35HoYiQWGDFg=
go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI=
go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU=
go.etcd.io/etcd/api/v3 v3.5.17 h1:cQB8eb8bxwuxOilBpMJAEo8fAONyrdXTHUNcMd8yT1w=
go.etcd.io/etcd/api/v3 v3.5.17/go.mod h1:d1hvkRuXkts6PmaYk2Vrgqbv7H4ADfAKhyJqHNLJCB4=
go.etcd.io/etcd/client/pkg/v3 v3.5.17 h1:XxnDXAWq2pnxqx76ljWwiQ9jylbpC4rvkAeRVOUKKVw=
go.etcd.io/etcd/client/pkg/v3 v3.5.17/go.mod h1:4DqK1TKacp/86nJk4FLQqo6Mn2vvQFBmruW3pP14H/w=
go.etcd.io/etcd/client/v3 v3.5.17 h1:o48sINNeWz5+pjy/Z0+HKpj/xSnBkuVhVvXkjEXbqZY=
go.etcd.io/etcd/client/v3 v3.5.17/go.mod h1:j2d4eXTHWkT2ClBgnnEPm/Wuu7jsqku41v9DZ3OtjQo=
go.mongodb.org/mongo-driver v1.17.2 h1:gvZyk8352qSfzyZ2UMWcpDpMSGEr1eqE4T793SqyhzM=
go.mongodb.org/mongo-driver v1.17.2/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ=
go.opentelemetry.io/otel v1.31.0 h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY=
go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE=
go.opentelemetry.io/otel/metric v1.31.0 h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE=
go.opentelemetry.io/otel/metric v1.31.0/go.mod h1:C3dEloVbLuYoX41KpmAhOqNriGbA+qqH6PQ5E5mUfnY=
go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk=
go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0=
go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc=
go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8=
go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys=
go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A=
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs=
go.uber.org/automaxprocs v1.6.0/go.mod h1:ifeIMSnPZuznNm6jmdzmU3/bfk01Fe2fotchwEFJ8r8=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
go.uber.org/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI=
go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60=
go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg=
go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
@ -529,8 +522,8 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ=
golang.org/x/time v0.7.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY=
golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@ -546,32 +539,31 @@ golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk=
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 h1:wKguEg1hsxI2/L3hUYrpo1RVi48K+uTyzKqprwLXsb8=
google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142/go.mod h1:d6be+8HhtEtucleCbxpPW9PA9XwISACu8nvpPqF0BVo=
google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 h1:e7S5W7MGGLaSu8j3YjdezkZ+m1/Nm0uRVRMEMGk26Xs=
google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU=
google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f h1:gap6+3Gk41EItBuyi4XX/bp4oqJ3UwuIMl25yGinuAA=
google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:Ic02D47M+zbarjYYUlK57y316f2MoN0gjAwI3f2S95o=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f h1:OxYkA3wjPsZyBylwymxSHa7ViiW1Sml4ToBrncvFehI=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:+2Yz8+CLJbIfL9z73EW45avw8Lmge3xVElCP9zEKi50=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E=
google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA=
google.golang.org/grpc v1.69.4 h1:MF5TftSMkd8GLw/m0KM6V8CMOCY6NZ1NQDPGFgbTt4A=
google.golang.org/grpc v1.69.4/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.36.2 h1:R8FeyR1/eLmkutZOM5CWghmo5itiG9z0ktFlTVLuTmU=
google.golang.org/protobuf v1.36.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
google.golang.org/protobuf v1.36.3 h1:82DV7MYdb8anAVi3qge1wSnMDrnKK7ebr+I0hHRN1BU=
google.golang.org/protobuf v1.36.3/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

47
model/accountlog.go Normal file
View File

@ -0,0 +1,47 @@
package model
import (
"errors"
"go.mongodb.org/mongo-driver/bson/primitive"
"mongo.games.com/goserver/core/logger"
"time"
)
// AccountLog 账号日志
// 根据facebookId查询账号信息
//go:generate mongoctl -model-dir=. -model-names=AccountLog -dao-dir=../dao/
type AccountLog struct {
ID primitive.ObjectID `bson:"_id" gen:"autoFill"`
Platform string `bson:"platform"`
SnId int32 `bson:"snid"`
AccountType int32 `bson:"accounttype"`
FaceBookId string `bson:"facebookid"`
}
func (a *AccountLog) DatabaseName() string {
return "log"
}
func (a *AccountLog) CollectionName() string {
return "log_account"
}
func GetByFaceBookId(faceBookId string) (*AccountLog, error) {
if rpcCli == nil {
return nil, errors.New("rpc client is nil")
}
if faceBookId == "" {
return nil, nil
}
accountLog := &AccountLog{}
err := rpcCli.CallWithTimeout("AccountLogSvc.GetByFaceBookId", &faceBookId, accountLog, time.Second*30)
if err != nil {
logger.Logger.Errorf("GetByFaceBookId err:%v", err)
return nil, err
}
return accountLog, nil
}

View File

@ -50,6 +50,7 @@ const (
DBLotteryCode = "db_lotterycode" // 玩家抽奖码
DBLotteryLog = "db_lotterylog" // 中奖记录
DBRedPacket = "db_redpackethistory" // 红包记录
DBAccountLog = "db_accountlog" // 账号日志
)
// ranksrv 消息

View File

@ -8486,8 +8486,9 @@ type ASPlayerDelete struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Platform string `protobuf:"bytes,1,opt,name=platform,proto3" json:"platform,omitempty"` // 平台id
Snid int32 `protobuf:"varint,2,opt,name=Snid,proto3" json:"Snid,omitempty"` // 玩家id
Platform string `protobuf:"bytes,1,opt,name=platform,proto3" json:"platform,omitempty"` // 平台id
Snid int32 `protobuf:"varint,2,opt,name=Snid,proto3" json:"Snid,omitempty"` // 玩家id
FaceBookId string `protobuf:"bytes,3,opt,name=FaceBookId,proto3" json:"FaceBookId,omitempty"` // facebook id
}
func (x *ASPlayerDelete) Reset() {
@ -8536,6 +8537,13 @@ func (x *ASPlayerDelete) GetSnid() int32 {
return 0
}
func (x *ASPlayerDelete) GetFaceBookId() string {
if x != nil {
return x.FaceBookId
}
return ""
}
type SAPlayerDelete struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@ -11441,11 +11449,13 @@ var file_protocol_webapi_webapi_proto_rawDesc = []byte{
0x65, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x49, 0x6d, 0x61,
0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03,
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73,
0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x40, 0x0a, 0x0e,
0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x60, 0x0a, 0x0e,
0x41, 0x53, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1a,
0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e,
0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x22, 0x45,
0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x1e,
0x0a, 0x0a, 0x46, 0x61, 0x63, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0a, 0x46, 0x61, 0x63, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x22, 0x45,
0x0a, 0x0e, 0x53, 0x41, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
0x12, 0x21, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e,
0x77, 0x65, 0x62, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x61, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x03,

View File

@ -909,6 +909,7 @@ message SAGetImgVerify{
message ASPlayerDelete{
string platform = 1; // id
int32 Snid = 2; // id
string FaceBookId = 3; // facebook id
}
message SAPlayerDelete{
TagCode Tag = 1; //

View File

@ -148,7 +148,7 @@ func (this *CSLoginHandler) Process(s *netlib.Session, packetid int, data interf
}
// 是否正在维护
if model.GameParamData.SrvMaintain && common.SrvIsMaintaining {
if model.GameParamData.SrvMaintain && common.SrvIsMaintaining && csl.GetPlatform() != common.Platform_Rob {
inWhiteList := false
for i := 0; i < len(model.GMACData.WhiteList); i++ {
if model.GMACData.WhiteList[i] == csl.GetUsername() {

View File

@ -37,12 +37,8 @@ func CSNianData(s *netlib.Session, packetid int, data interface{}, sid int64) er
}
startTime := pool.List[0].ActivityStart
endTime := pool.List[0].ActivityEnd
start, _ := time.Parse(time.DateTime, startTime)
// 转换为时间戳(以秒为单位)
timestamp := start.Unix()
end, _ := time.Parse(time.DateTime, endTime)
endTimestamp := end.Unix()
timestamp := common.StrTimeToTs(startTime)
endTimestamp := common.StrTimeToTs(endTime)
if p.WelfData.NianData != nil && (p.WelfData.NianData.ActivityStartTime != timestamp || p.WelfData.NianData.ActivityEndTime != endTimestamp) {
logger.Logger.Infof("CSNianData 年兽活动时间变更 清除之前数据 snid= %d", p.SnId)
WelfareMgrSington.ClearActivityNianData(p)
@ -228,11 +224,8 @@ func CSNianAttack(s *netlib.Session, packetid int, data interface{}, sid int64)
//判断活动时间
startTime := pool.List[0].ActivityStart
endTime := pool.List[0].ActivityEnd
t, _ := time.Parse(time.DateTime, startTime)
// 转换为时间戳(以秒为单位)
timestamp := t.Unix()
end, _ := time.Parse(time.DateTime, endTime)
endTimestamp := end.Unix()
timestamp := common.StrTimeToTs(startTime)
endTimestamp := common.StrTimeToTs(endTime)
nowTime := time.Now().Unix()
if nowTime < timestamp || nowTime > endTimestamp {
return nil
@ -612,6 +605,7 @@ func CSNianBuff(s *netlib.Session, packetid int, data interface{}, sid int64) er
if p.WelfData.NianData == nil {
p.WelfData.NianData = &model.NianData{}
}
if p.WelfData.NianData.BuffStatus {
pack := &activity.SCNianBuff{
OpRetCode: activity.OpResultCode_Nian_OPRC_Error_Nian,
@ -627,6 +621,16 @@ func CSNianBuff(s *netlib.Session, packetid int, data interface{}, sid int64) er
logger.Logger.Trace("CSNianSignAward 活动关闭!")
return nil
}
//判断活动时间
startTime := pool.List[0].ActivityStart
endTime := pool.List[0].ActivityEnd
timestamp := common.StrTimeToTs(startTime)
endTimestamp := common.StrTimeToTs(endTime)
nowTime := time.Now().Unix()
if nowTime < timestamp || nowTime > endTimestamp {
return nil
}
StartTs := common.IntToTime(int(pool.List[0].BuffStartTime)).Unix()
EndTs := common.IntToTime(int(pool.List[0].BuffEndTime)).Unix()
//判断领取时间
@ -677,11 +681,8 @@ func CSNianSignAward(s *netlib.Session, packetid int, data interface{}, sid int6
//判断活动时间
startTime := pool.List[0].ActivityStart
endTime := pool.List[0].ActivityEnd
t, _ := time.Parse(time.DateTime, startTime)
// 转换为时间戳(以秒为单位)
timestamp := t.Unix()
end, _ := time.Parse(time.DateTime, endTime)
endTimestamp := end.Unix()
timestamp := common.StrTimeToTs(startTime)
endTimestamp := common.StrTimeToTs(endTime)
nowTime := time.Now().Unix()
if nowTime < timestamp || nowTime > endTimestamp {
return nil
@ -701,6 +702,7 @@ func CSNianSignAward(s *netlib.Session, packetid int, data interface{}, sid int6
pack.SignAwardTime = p.WelfData.NianData.SignAwardTime
var items []*model.Item
for _, info := range pool.List[0].SignReward {
items = append(items, &model.Item{
ItemId: info.ItemId,
ItemNum: info.ItemNum,
@ -792,11 +794,8 @@ func CSNianChange(s *netlib.Session, packetid int, data interface{}, sid int64)
//判断活动时间
startTime := pool.List[0].ActivityStart
endTime := pool.List[0].ActivityEnd
t, _ := time.Parse(time.DateTime, startTime)
// 转换为时间戳(以秒为单位)
timestamp := t.Unix()
end, _ := time.Parse(time.DateTime, endTime)
endTimestamp := end.Unix()
timestamp := common.StrTimeToTs(startTime)
endTimestamp := common.StrTimeToTs(endTime)
nowTime := time.Now().Unix()
if nowTime < timestamp || nowTime > endTimestamp {
return nil

View File

@ -952,11 +952,8 @@ func (r *RankMatchMgr) NianRankAward() {
}
startTime := pool.List[0].ActivityStart
endTime := pool.List[0].ActivityEnd
t, _ := time.Parse(time.DateTime, startTime)
// 转换为时间戳(以秒为单位)
timestamp := t.Unix()
end, _ := time.Parse(time.DateTime, endTime)
endTimestamp := end.Unix()
timestamp := common.StrTimeToTs(startTime)
endTimestamp := common.StrTimeToTs(endTime)
nowTime := time.Now().Unix()
if nowTime < timestamp || nowTime-86400 > endTimestamp {
return
@ -1054,7 +1051,8 @@ func (r *RankMatchMgr) NianRankAward() {
})).StartByExecutor("NianLuck_Award")
} else if info.TypeId == 2 {
yesterday := time.Unix(time.Now().Unix()-86400, 0)
if yesterday.Day() != end.Day() {
endDay := time.Unix(endTimestamp, 0)
if yesterday.Day() != endDay.Day() {
return
}
rankAward := info.RankInfo

View File

@ -10,6 +10,7 @@ import (
"time"
"github.com/globalsign/mgo/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
"mongo.games.com/goserver/core/basic"
"mongo.games.com/goserver/core/logger"
"mongo.games.com/goserver/core/netlib"
@ -427,6 +428,16 @@ func SCLogin(s *netlib.Session, sid int64, csLogin *login_proto.CSLogin, acc *mo
ct, cr := PlatformMgrSingleton.GetCurrencyByPackageTag(csLogin.PlatformTag)
sclogin.CurrencyType = ct
sclogin.CurrencyRatio = cr
// facebook账号信息
if acc.AccountType == common.AccountTypeFacebook {
mq.Write(&model.AccountLog{
ID: primitive.NewObjectID(),
Platform: acc.Platform,
SnId: acc.SnId,
AccountType: acc.AccountType,
FaceBookId: strings.TrimPrefix(acc.UserName, "facebook_"),
}, mq.DBAccountLog)
}
}
}
}

View File

@ -209,10 +209,12 @@ func (t *TaskHandle) AllTask(id int, data any) {
}
startTime := pool.List[0].ActivityStart
endTime := pool.List[0].ActivityEnd
start, _ := time.Parse(time.DateTime, startTime)
timestamp := start.Unix()
end, _ := time.Parse(time.DateTime, endTime)
endTimestamp := end.Unix()
/* start, _ := time.Parse(time.DateTime, startTime)
timestamp := start.Unix()
end, _ := time.Parse(time.DateTime, endTime)
endTimestamp := end.Unix()*/
timestamp := common.StrTimeToTs(startTime)
endTimestamp := common.StrTimeToTs(endTime)
if now.Unix() < timestamp || now.Unix() > endTimestamp {
continue
}
@ -349,10 +351,8 @@ func IsTaskReward(p *Player, id int32) bool {
}
startTime := pool.List[0].ActivityStart
endTime := pool.List[0].ActivityEnd
start, _ := time.Parse(time.DateTime, startTime)
timestamp := start.Unix()
end, _ := time.Parse(time.DateTime, endTime)
endTimestamp := end.Unix()
timestamp := common.StrTimeToTs(startTime)
endTimestamp := common.StrTimeToTs(endTime)
if timestamp > 0 {
return data.Ts >= timestamp && data.Ts < endTimestamp
}

View File

@ -2428,61 +2428,24 @@ func init() {
var err error
err = proto.Unmarshal(params, msg)
if err != nil || msg.Snid <= 0 {
if err != nil {
pack.Tag = webapiproto.TagCode_FAILED
pack.Msg = "参数错误"
return common.ResponseTag_ParamError, pack
}
logger.Logger.Tracef("/api/player/delete %v", msg)
// 踢掉玩家
p := PlayerMgrSington.GetPlayerBySnId(msg.GetSnid())
if p != nil {
ls := LoginStateMgrSington.GetLoginStateBySid(p.sid)
if ls != nil {
if ls.als != nil && ls.als.acc != nil {
ls.als.acc.State = time.Now().AddDate(0, 0, 1).Unix()
}
}
p.Kick(common.KickReason_Freeze)
PlayerMgrSington.DelPlayer(p.SnId)
LoginStateMgrSington.DelAccountByAccid(p.AccountId)
}
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
pd, _ := model.GetPlayerDataBySnId(msg.Platform, msg.Snid, false, false)
if pd == nil || pd.SnId == 0 {
err = errors.New("player not found")
return nil
}
// 冻结
err = model.FreezeAccount(pd.Platform, pd.AccountId, 24*60)
if err != nil {
return nil
}
// 备份账号
var account *model.Account
account, err = model.GetAccount(pd.Platform, pd.AccountId)
if err != nil {
return nil
}
err = model.SaveToDelBackupAccount(account)
if err != nil {
return nil
}
//if !model.SaveDelBackupPlayerData(pd) {
// err = errors.New("SaveDelBackupPlayerData failed")
// return nil
//}
// 删除账号
err = model.RemoveAccount(pd.Platform, pd.AccountId)
if err != nil {
return nil
}
err = model.ResetPlayer(pd.Platform, pd.SnId)
if err != nil {
return nil
if msg.GetFaceBookId() != "" {
fb, err := model.GetByFaceBookId(msg.GetFaceBookId())
if err != nil {
return err
}
if fb == nil {
return nil
}
msg.Platform = fb.Platform
msg.Snid = fb.SnId
}
return nil
}), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) {
@ -2490,14 +2453,75 @@ func init() {
logger.Logger.Errorf("player delete %v err: %v", msg, err)
pack.Tag = webapiproto.TagCode_FAILED
pack.Msg = "删除失败"
} else {
pack.Tag = webapiproto.TagCode_SUCCESS
pack.Msg = "删除成功"
tNode.TransRep.RetFiels = pack
tNode.Resume()
logger.Logger.Tracef("player delete %v ret: %v", msg.GetSnid(), pack)
return
}
tNode.TransRep.RetFiels = pack
tNode.Resume()
logger.Logger.Tracef("player delete %v ret: %v", msg.GetSnid(), pack)
})).StartByExecutor(fmt.Sprint(msg.GetSnid()))
// 踢掉玩家
p := PlayerMgrSington.GetPlayerBySnId(msg.GetSnid())
if p != nil {
ls := LoginStateMgrSington.GetLoginStateBySid(p.sid)
if ls != nil {
if ls.als != nil && ls.als.acc != nil {
ls.als.acc.State = time.Now().AddDate(0, 0, 1).Unix()
}
}
p.Kick(common.KickReason_Freeze)
PlayerMgrSington.DelPlayer(p.SnId)
LoginStateMgrSington.DelAccountByAccid(p.AccountId)
}
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
pd, _ := model.GetPlayerDataBySnId(msg.Platform, msg.Snid, false, false)
if pd == nil || pd.SnId == 0 {
err = errors.New("player not found")
return nil
}
// 冻结
err = model.FreezeAccount(pd.Platform, pd.AccountId, 24*60)
if err != nil {
return nil
}
// 备份账号
var account *model.Account
account, err = model.GetAccount(pd.Platform, pd.AccountId)
if err != nil {
return nil
}
err = model.SaveToDelBackupAccount(account)
if err != nil {
return nil
}
//if !model.SaveDelBackupPlayerData(pd) {
// err = errors.New("SaveDelBackupPlayerData failed")
// return nil
//}
// 删除账号
err = model.RemoveAccount(pd.Platform, pd.AccountId)
if err != nil {
return nil
}
err = model.ResetPlayer(pd.Platform, pd.SnId)
if err != nil {
return nil
}
return nil
}), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) {
if err != nil {
logger.Logger.Errorf("player delete %v err: %v", msg, err)
pack.Tag = webapiproto.TagCode_FAILED
pack.Msg = "删除失败"
} else {
pack.Tag = webapiproto.TagCode_SUCCESS
pack.Msg = "删除成功"
}
tNode.TransRep.RetFiels = pack
tNode.Resume()
logger.Logger.Tracef("player delete %v ret: %v", msg.GetSnid(), pack)
}), "player_delete").StartByExecutor(fmt.Sprint(msg.GetSnid()))
}), "player_delete").StartByExecutor(fmt.Sprint(msg.GetSnid()))
return common.ResponseTag_TransactYield, pack
}))