diff --git a/README.md b/README.md index 2ca7b20..c1b0f45 100644 --- a/README.md +++ b/README.md @@ -29,8 +29,8 @@ 2. 玩家下注、每秒更新投注区域信息。(已实现,待测试) 8. 机器人实现。(未开始) -4. 编写大厅lobby服 (未开始) - 1. 玩家上线时通知玩家他所在的玩法。方便玩家重连进入该玩法服。 +4. 编写大厅lobby服 + 1. 玩家上线时通知玩家他所在的玩法。方便玩家重连进入该玩法服。(已实现,待测试) 5. 编写match服 1. 初步实现框架,并转发匹配消息。(已实现,待测试) diff --git a/common/model/user/logGameRecord.go b/common/model/user/logGameRecord.go new file mode 100644 index 0000000..3ac8a2e --- /dev/null +++ b/common/model/user/logGameRecord.go @@ -0,0 +1,43 @@ +package user + +import ( + "gorm.io/datatypes" + "time" +) + +type UserLog struct { + ID int64 `json:"id"` + Nickname string `json:"nickname"` // 昵称 + AvatarUrl string `json:"avatar_url"` // 头像 + AvatarFrame string `json:"avatar_frame"` // 头像框 + Gold int32 `json:"gold"` // 金币 +} + +type GameRecordLog struct { + GameNo string `gorm:"primaryKey;type:String" json:"game_no"` + GameId int32 `gorm:"type:Int32;default:0" json:"game_id"` + RoomId int32 `gorm:"type:Int32;default:0" json:"room_id"` + RoomType int32 `gorm:"type:Int32;default:0" json:"room_type"` + StartTime time.Time `gorm:"type:DateTime;default:now()" json:"start_time"` // 开始时间 + EndTime time.Time `gorm:"type:DateTime;default:now()" json:"end_time"` // 结束时间 + Users datatypes.JSONType[[]UserLog] `json:"users"` + UserTotalBet int64 `gorm:"type:Int64;default:0" json:"user_total_bet"` // 所有玩家总投注额 + UserTotalNetWin int64 `gorm:"type:Int64;default:0" json:"user_total_net_win"` // 所有玩家总净胜分 + TotalTax int64 `gorm:"type:Int64;default:0" json:"total_tax"` // 税 + GameData string `gorm:"type:String" json:"game_data"` // 游戏数据(JSON格式) +} + +func (u GameRecordLog) GetId() int64 { + return 0 +} + +func (u GameRecordLog) TableName() string { + return "game_record_log" +} + +func (u GameRecordLog) TableOptions() string { + return `ENGINE=MergeTree() + ORDER BY (game_no, game_id, room_type) + PARTITION BY toYYYYMM(start_time) + ` +} diff --git a/common/model/user/logUserRecord.go b/common/model/user/logUserRecord.go new file mode 100644 index 0000000..62846bd --- /dev/null +++ b/common/model/user/logUserRecord.go @@ -0,0 +1,35 @@ +package user + +import ( + "gorm.io/datatypes" + "time" +) + +type UserRecordLog struct { + GameNo string `gorm:"primaryKey;type:String" json:"game_no"` + GameId int32 `gorm:"type:Int32;default:0" json:"game_id"` + RoomId int32 `gorm:"type:Int32;default:0" json:"room_id"` + RoomType int32 `gorm:"type:Int32;default:0" json:"room_type"` + StartTime time.Time `gorm:"type:DateTime;default:now()" json:"start_time"` // 开始时间 + EndTime time.Time `gorm:"type:DateTime;default:now()" json:"end_time"` // 结束时间 + Users datatypes.JSONType[UserLog] `json:"user"` + TotalBet int64 `gorm:"type:Int64;default:0" json:"total_bet"` // 玩家总投注额 + TotalNetWin int64 `gorm:"type:Int64;default:0" json:"total_net_win"` // 玩家总净胜分 + Tax int64 `gorm:"type:Int64;default:0" json:"tax"` // 税 + GameData string `gorm:"type:String" json:"game_data"` // 游戏数据(JSON格式) +} + +func (u UserRecordLog) GetId() int64 { + return 0 +} + +func (u UserRecordLog) TableName() string { + return "game_record_log" +} + +func (u UserRecordLog) TableOptions() string { + return `ENGINE=MergeTree() + ORDER BY (game_no, game_id, room_type) + PARTITION BY toYYYYMM(start_time) + ` +} diff --git a/common/model/user/userAccount.go b/common/model/user/userAccount.go index 803884b..6490d2c 100644 --- a/common/model/user/userAccount.go +++ b/common/model/user/userAccount.go @@ -35,19 +35,28 @@ func (u UserAccount) TableName() string { // 玩家登录记录表 type UserLoginLog struct { - ID int64 `gorm:"primarykey;autoIncrement" json:"id"` - AccountID int64 `gorm:"index" json:"account_id"` // 关联帐号ID - LoginIP string `gorm:"type:varchar(45);not null" json:"login_ip"` // 登录IP - LoginTime time.Time `gorm:"type:TIMESTAMP;default:CURRENT_TIMESTAMP" json:"login_time"` // 登录时间 - DeviceInfo string `gorm:"type:varchar(255)" json:"device_info"` // 设备信息(JSON格式) - LoginResult bool `json:"login_result"` // 登录结果 true-成功 false-失败 - FailReason string `gorm:"type:varchar(100)" json:"fail_reason"` // 失败原因 + AccountID int64 `gorm:"type:Int64;index" json:"account_id"` // 关联帐号ID + LoginIP string `gorm:"type:String;not null" json:"login_ip"` // 登录IP + LoginTime time.Time `gorm:"type:DateTime;default:now()" json:"login_time"` // 登录或登出时间 + IsLogin bool `gorm:"type:Int8" json:"is_login"` // 登录或登出 true-登录 false-登出 + DeviceInfo string `gorm:"type:String" json:"device_info"` // 设备信息(JSON格式) + LoginResult bool `gorm:"type:Int8" json:"login_result"` // 登录结果 true-成功 false-失败 + FailReason string `gorm:"type:String" json:"fail_reason"` // 失败原因 } func (u UserLoginLog) GetId() int64 { - return u.ID + return 0 } func (u UserLoginLog) TableName() string { return "user_login_log" } + +func (u UserLoginLog) TableOptions() string { + // "ENGINE=MergeTree() ORDER BY tuple()" + return `ENGINE=MergeTree() + ORDER BY (account_id, login_time) + PARTITION BY toYYYYMM(login_time) + TTL LoginTime + INTERVAL 6 MONTH + ` +} diff --git a/common/proto/pb/code.pb.go b/common/proto/pb/code.pb.go index 382b4ea..b40c91b 100644 --- a/common/proto/pb/code.pb.go +++ b/common/proto/pb/code.pb.go @@ -34,7 +34,7 @@ const ( ErrCode_RegisterUserExist ErrCode = 110 // 已有该帐号,无法注册 ErrCode_VersionTooLow ErrCode = 115 // 版本太低,无法登陆 ErrCode_Maintain ErrCode = 120 // 系统维护 - ErrCode_GoldNotEnough ErrCode = 125 // 金币不足 + ErrCode_GoldNotEnough ErrCode = 125 // 金币或其它资源不足 ErrCode_NotBetCount ErrCode = 126 // 数场不投注被踢出 ErrCode_NotLeaveRoom ErrCode = 127 // 无法离开房间(有下注) // color game diff --git a/common/proto/pb/colorgame.pb.go b/common/proto/pb/colorgame.pb.go index 3741ae3..920866d 100644 --- a/common/proto/pb/colorgame.pb.go +++ b/common/proto/pb/colorgame.pb.go @@ -1373,7 +1373,7 @@ type NtfColorSettle struct { state protoimpl.MessageState `protogen:"open.v1"` UserAreaWin []*NtfColorSettle_UserBetAreaMul `protobuf:"bytes,1,rep,name=userAreaWin,proto3" json:"userAreaWin,omitempty"` // 每个投注区域的下注及输赢 ThreeDice []ColorType `protobuf:"varint,2,rep,packed,name=threeDice,proto3,enum=pb.ColorType" json:"threeDice,omitempty"` // 骰子开出颜色 - TotalWin int64 `protobuf:"varint,3,opt,name=totalWin,proto3" json:"totalWin,omitempty"` // 总输赢 + TotalWin int64 `protobuf:"varint,3,opt,name=totalWin,proto3" json:"totalWin,omitempty"` // 总输赢,税后包含本金 TotalBet int64 `protobuf:"varint,4,opt,name=totalBet,proto3" json:"totalBet,omitempty"` // 总投注 TotalWinBaseBet int64 `protobuf:"varint,6,opt,name=totalWinBaseBet,proto3" json:"totalWinBaseBet,omitempty"` // 赢钱区域的总投注 Tax int64 `protobuf:"varint,5,opt,name=tax,proto3" json:"tax,omitempty"` // 税 diff --git a/common/proto/pb/common.pb.go b/common/proto/pb/common.pb.go index 00c0e93..fdedd66 100644 --- a/common/proto/pb/common.pb.go +++ b/common/proto/pb/common.pb.go @@ -251,7 +251,6 @@ func (x *RspLeaveRoom) GetCode() ErrCode { type NtfPayoutFail struct { state protoimpl.MessageState `protogen:"open.v1"` Code ErrCode `protobuf:"varint,1,opt,name=code,proto3,enum=pb.ErrCode" json:"code,omitempty"` - UserId int64 `protobuf:"varint,2,opt,name=userId,proto3" json:"userId,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -293,13 +292,6 @@ func (x *NtfPayoutFail) GetCode() ErrCode { return ErrCode_OK } -func (x *NtfPayoutFail) GetUserId() int64 { - if x != nil { - return x.UserId - } - return 0 -} - var File_common_proto protoreflect.FileDescriptor const file_common_proto_rawDesc = "" + @@ -315,10 +307,9 @@ const file_common_proto_rawDesc = "" + "\broomType\x18\x03 \x01(\x05R\broomType\"\x0e\n" + "\fReqLeaveRoom\"/\n" + "\fRspLeaveRoom\x12\x1f\n" + - "\x04code\x18\x01 \x01(\x0e2\v.pb.ErrCodeR\x04code\"H\n" + + "\x04code\x18\x01 \x01(\x0e2\v.pb.ErrCodeR\x04code\"0\n" + "\rNtfPayoutFail\x12\x1f\n" + - "\x04code\x18\x01 \x01(\x0e2\v.pb.ErrCodeR\x04code\x12\x16\n" + - "\x06userId\x18\x02 \x01(\x03R\x06userIdB\x11Z\x0fcommon/proto/pbb\x06proto3" + "\x04code\x18\x01 \x01(\x0e2\v.pb.ErrCodeR\x04codeB\x11Z\x0fcommon/proto/pbb\x06proto3" var ( file_common_proto_rawDescOnce sync.Once diff --git a/go.mod b/go.mod index 8b692d2..bef62aa 100644 --- a/go.mod +++ b/go.mod @@ -14,14 +14,16 @@ require ( require ( github.com/golang/protobuf v1.5.4 - github.com/mitchellh/mapstructure v1.5.0 + github.com/google/uuid v1.6.0 github.com/nats-io/nats.go v1.42.0 golang.org/x/crypto v0.38.0 google.golang.org/protobuf v1.33.0 + gorm.io/datatypes v1.2.5 gorm.io/gorm v1.30.0 ) require ( + filippo.io/edwards25519 v1.1.0 // indirect github.com/ClickHouse/ch-go v0.66.0 // indirect github.com/ClickHouse/clickhouse-go/v2 v2.36.0 // indirect github.com/andybalholm/brotli v1.1.1 // indirect @@ -29,11 +31,12 @@ require ( github.com/coreos/go-semver v0.3.0 // indirect github.com/coreos/go-systemd/v22 v22.3.2 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect + github.com/dromara/carbon/v2 v2.6.5 // indirect github.com/go-faster/city v1.0.1 // indirect github.com/go-faster/errors v0.7.1 // indirect - github.com/go-sql-driver/mysql v1.7.0 // indirect + github.com/go-sql-driver/mysql v1.8.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/google/uuid v1.6.0 // indirect + github.com/golang-module/carbon/v2 v2.6.5 // indirect github.com/gorilla/websocket v1.5.3 // indirect github.com/hashicorp/go-version v1.7.0 // indirect github.com/jinzhu/inflection v1.0.0 // indirect diff --git a/go.sum b/go.sum index 4223525..1989ddf 100644 --- a/go.sum +++ b/go.sum @@ -1,12 +1,9 @@ +filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= +filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= -github.com/ClickHouse/ch-go v0.65.1 h1:SLuxmLl5Mjj44/XbINsK2HFvzqup0s6rwKLFH347ZhU= -github.com/ClickHouse/ch-go v0.65.1/go.mod h1:bsodgURwmrkvkBe5jw1qnGDgyITsYErfONKAHn05nv4= github.com/ClickHouse/ch-go v0.66.0 h1:hLslxxAVb2PHpbHr4n0d6aP8CEIpUYGMVT1Yj/Q5Img= github.com/ClickHouse/ch-go v0.66.0/go.mod h1:noiHWyLMJAZ5wYuq3R/K0TcRhrNA8h7o1AqHX0klEhM= -github.com/ClickHouse/clickhouse-go v1.5.4 h1:cKjXeYLNWVJIx2J1K6H2CqyRmfwVJVY1OV1coaaFcI0= -github.com/ClickHouse/clickhouse-go/v2 v2.34.0 h1:Y4rqkdrRHgExvC4o/NTbLdY5LFQ3LHS77/RNFxFX3Co= -github.com/ClickHouse/clickhouse-go/v2 v2.34.0/go.mod h1:yioSINoRLVZkLyDzdMXPLRIqhDvel8iLBlwh6Iefso8= github.com/ClickHouse/clickhouse-go/v2 v2.36.0 h1:FJ03h8VdmBUhvR9nQEu5jRLdfG0c/HSxUjiNdOxRQww= github.com/ClickHouse/clickhouse-go/v2 v2.36.0/go.mod h1:aijX64fKD1hAWu/zqWEmiGk7wRE8ZnpN0M3UvjsZG3I= github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= @@ -22,6 +19,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= +github.com/dromara/carbon/v2 v2.6.5 h1:OC1k8zGBpSnRoPjezlWeajx+3nCMq7xhZqAS4WWrKmE= +github.com/dromara/carbon/v2 v2.6.5/go.mod h1:7GXqCUplwN1s1b4whGk2zX4+g4CMCoDIZzmjlyt0vLY= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/go-faster/city v1.0.1 h1:4WAxSZ3V2Ws4QRDrscLEDcibJY8uf41H6AhXDrNDcGw= @@ -30,11 +29,18 @@ github.com/go-faster/errors v0.7.1 h1:MkJTnDoEdi9pDabt1dpWf7AA8/BaSYZqibYyhZ20AY github.com/go-faster/errors v0.7.1/go.mod h1:5ySTjWFiphBs07IKuiL69nxdfd5+fzh1u7FPGZP2quo= github.com/go-redis/redis/v8 v8.11.5 h1:AcZZR7igkdvfVmQTPnu9WE37LRrO/YrBH5zWyjDC0oI= github.com/go-redis/redis/v8 v8.11.5/go.mod h1:gREzHqY1hg6oD9ngVRbLStwAWKhA0FEgq8Jd4h5lpwo= -github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= +github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= +github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang-module/carbon/v2 v2.6.5 h1:C3YpydJZmo77AyMsgQ1QpVDQeLJ0itOa5sQB4Y/jk4I= +github.com/golang-module/carbon/v2 v2.6.5/go.mod h1:JvSYEoe3+OcMnSQyRvUNQFpg0T/4xCq7moHu1S8ESXQ= +github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= +github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= +github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= +github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= @@ -49,6 +55,14 @@ github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aN github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= +github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= +github.com/jackc/pgservicefile v0.0.0-20231201235250-de7065d80cb9 h1:L0QtFUgDarD7Fpv9jeVMgy/+Ec0mtnmYuImjTz6dtDA= +github.com/jackc/pgservicefile v0.0.0-20231201235250-de7065d80cb9/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= +github.com/jackc/pgx/v5 v5.5.5 h1:amBjrZVmksIdNjxGW/IiIMzxMKZFelXbUoPNb+8sjQw= +github.com/jackc/pgx/v5 v5.5.5/go.mod h1:ez9gk+OAat140fv9ErkZDYFWmXLfV+++K0uAOiwgm1A= +github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo= +github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= @@ -64,8 +78,10 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= -github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mattn/go-sqlite3 v1.14.15 h1:vfoHhTN1af61xCRSWzFIWzx2YskyMTwHLrExkBOjvxI= +github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= +github.com/microsoft/go-mssqldb v1.7.2 h1:CHkFJiObW7ItKTJfHo1QX7QBBD1iV+mn1eOyRP3b/PA= +github.com/microsoft/go-mssqldb v1.7.2/go.mod h1:kOvZKUdrhhFQmxLZqbwUV0rHkNkZpthMITIb2Ko1IoA= github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/natefinch/lumberjack v2.0.0+incompatible h1:4QJd3OLAMgj7ph+yZTuX13Ld4UpgHp07nNdFX7mqFfM= github.com/natefinch/lumberjack v2.0.0+incompatible/go.mod h1:Wi9p2TTF5DG5oU+6YfsmYQpsTIOm0B1VNzQg9Mw6nPk= @@ -117,12 +133,8 @@ go.etcd.io/etcd/client/pkg/v3 v3.5.19/go.mod h1:qaOi1k4ZA9lVLejXNvyPABrVEe7VymMF go.etcd.io/etcd/client/v3 v3.5.19 h1:+4byIz6ti3QC28W0zB0cEZWwhpVHXdrKovyycJh1KNo= go.etcd.io/etcd/client/v3 v3.5.19/go.mod h1:FNzyinmMIl0oVsty1zA3hFeUrxXI/JpEnz4sG+POzjU= go.mongodb.org/mongo-driver v1.11.4/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g= -go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ= -go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y= go.opentelemetry.io/otel v1.36.0 h1:UumtzIklRBY6cI/lllNZlALOF5nNIzJVb16APdvgTXg= go.opentelemetry.io/otel v1.36.0/go.mod h1:/TcFMXYjyRNh8khOAO9ybYkqaDBb/70aVwkNML4pP8E= -go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs= -go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc= go.opentelemetry.io/otel/trace v1.36.0 h1:ahxWNuqZjpdiFAyrIoQ4GIiAIhxAunQR6MUoKrsNd4w= go.opentelemetry.io/otel/trace v1.36.0/go.mod h1:gQ+OnDZzrybY4k4seLzPAWNwVBBVlF2szhehOBB/tGA= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= @@ -150,6 +162,8 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8= +golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -163,8 +177,6 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= -golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M= golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -197,12 +209,18 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gorm.io/datatypes v1.2.5 h1:9UogU3jkydFVW1bIVVeoYsTpLRgwDVW3rHfJG6/Ek9I= +gorm.io/datatypes v1.2.5/go.mod h1:I5FUdlKpLb5PMqeMQhm30CQ6jXP8Rj89xkTeCSAaAD4= gorm.io/driver/clickhouse v0.7.0 h1:BCrqvgONayvZRgtuA6hdya+eAW5P2QVagV3OlEp1vtA= gorm.io/driver/clickhouse v0.7.0/go.mod h1:TmNo0wcVTsD4BBObiRnCahUgHJHjBIwuRejHwYt3JRs= gorm.io/driver/mysql v1.5.7 h1:MndhOPYOfEp2rHKgkZIhJ16eVUIRf2HmzgoPmh7FCWo= gorm.io/driver/mysql v1.5.7/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM= +gorm.io/driver/postgres v1.5.0 h1:u2FXTy14l45qc3UeCJ7QaAXZmZfDDv0YrthvmRq1l0U= +gorm.io/driver/postgres v1.5.0/go.mod h1:FUZXzO+5Uqg5zzwzv4KK49R8lvGIyscBOqYrtI1Ce9A= +gorm.io/driver/sqlite v1.4.3 h1:HBBcZSDnWi5BW3B3rwvVTc510KGkBkexlOg0QrmLUuU= +gorm.io/driver/sqlite v1.4.3/go.mod h1:0Aq3iPO+v9ZKbcdiz8gLWRw5VOPcBOPUQJFLq5e2ecI= +gorm.io/driver/sqlserver v1.5.4 h1:xA+Y1KDNspv79q43bPyjDMUgHoYHLhXYmdFcYPobg8g= +gorm.io/driver/sqlserver v1.5.4/go.mod h1:+frZ/qYmuna11zHPlh5oc2O6ZA/lS88Keb0XSH1Zh/g= gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= -gorm.io/gorm v1.26.1 h1:ghB2gUI9FkS46luZtn6DLZ0f6ooBJ5IbVej2ENFDjRw= -gorm.io/gorm v1.26.1/go.mod h1:8Z33v652h4//uMA76KjeDH8mJXPm1QNCYrMeatR0DOE= gorm.io/gorm v1.30.0 h1:qbT5aPv1UH8gI99OsRlvDToLxW5zR7FzS9acZDOZcgs= gorm.io/gorm v1.30.0/go.mod h1:8Z33v652h4//uMA76KjeDH8mJXPm1QNCYrMeatR0DOE= diff --git a/server/db/operation/db.go b/server/db/operation/db.go index 3e09865..efbf5e2 100644 --- a/server/db/operation/db.go +++ b/server/db/operation/db.go @@ -46,7 +46,7 @@ func InitDb() { return } cfgClickhouse := &config.Cfg.LogDb - LogDB, err = db.InitMysql(cfgClickhouse.Username, cfgClickhouse.Password, cfgClickhouse.Host, cfgClickhouse.Port, cfgClickhouse.DbName) + LogDB, err = db.InitClickHouse(cfgClickhouse.Username, cfgClickhouse.Password, cfgClickhouse.Host, cfgClickhouse.Port, cfgClickhouse.DbName) if err != nil { log.Fatal(err.Error()) return @@ -62,9 +62,11 @@ func InitDb() { return } // 自动迁移game_log库表结构 - err = LogDB.AutoMigrate( - &user.UserLoginLog{}, - ) + loginLog := &user.UserLoginLog{} + if err1 := db.AutoMigrateClickHouse(LogDB, loginLog.TableOptions(), loginLog); err1 != nil { + err = err1 + } + if err != nil { log.Fatal(err.Error()) return