From a1f3770996086ab526bd90961c7e132c2023f357 Mon Sep 17 00:00:00 2001 From: hujiebin Date: Thu, 6 Apr 2023 16:32:55 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=90=8C=E6=AD=A5=E6=B0=B4=E6=9E=9C?= =?UTF-8?q?=E6=9C=BA=E6=97=A5=E6=A6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- script/sync_fruit_rank.go | 58 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 script/sync_fruit_rank.go diff --git a/script/sync_fruit_rank.go b/script/sync_fruit_rank.go new file mode 100644 index 0000000..eef04a0 --- /dev/null +++ b/script/sync_fruit_rank.go @@ -0,0 +1,58 @@ +package main + +import ( + "git.hilo.cn/hilo-common/script/mysql" + "time" +) + +type FruitDayRank struct { + Period string + UserId uint64 + Stake int64 + Award int64 +} + +type FruitMachineStake struct { + Date string + UserId uint64 + Stake int64 +} + +type FruitMachineAward struct { + Date string + UserId uint64 + Award int64 +} + +func main() { + start := time.Date(2023, time.January, 1, 0, 0, 0, 0, time.Local) + for start.Before(time.Now()) { + var rows []FruitMachineStake + if err := mysql.ProdReadOnlyDB.Table("fruit_machine_stake").Where("`date` = ?", start.Format("2006-01-02")). + Select("`date`,user_id,SUM(stake) stake").Group("`date`,user_id").Find(&rows).Error; err != nil { + panic(err) + } + for _, row := range rows { + if err := mysql.ProdWriteDB.Create(FruitDayRank{ + Period: row.Date, + UserId: row.UserId, + Stake: row.Stake, + Award: 0, + }).Error; err != nil { + panic(err) + } + } + var rows2 []FruitMachineAward + if err := mysql.ProdReadOnlyDB.Table("fruit_machine_player").Where("`date` = ?", start.Format("2006-01-02")). + Select("`date`,user_id,SUM(award) award").Group("`date`,user_id").Find(&rows2).Error; err != nil { + panic(err) + } + for _, row := range rows2 { + if err := mysql.ProdWriteDB.Table("fruit_day_rank").Where("period = ? AND user_id = ?", start.Format("2006-01-02"), row.UserId). + Update("award", row.Award).Error; err != nil { + panic(err) + } + } + start = start.AddDate(0, 0, 1) + } +} -- 2.22.0