From 00cb1b2af44986220fcdfa2f2c3c8ea288a91039 Mon Sep 17 00:00:00 2001 From: hujiebin Date: Wed, 16 Aug 2023 14:32:32 +0800 Subject: [PATCH] 1 --- script/Makefile | 2 + script/fruit_day_award.go | 111 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 113 insertions(+) create mode 100644 script/fruit_day_award.go diff --git a/script/Makefile b/script/Makefile index d90abe0..aabd622 100644 --- a/script/Makefile +++ b/script/Makefile @@ -20,4 +20,6 @@ h5_game_yellow: CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o h5_game_yellow h5_game_yellow.go fruit_fix: CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o fruit_fix fruit_fix.go +fruit_day_award: + CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o fruit_day_award fruit_day_award.go diff --git a/script/fruit_day_award.go b/script/fruit_day_award.go new file mode 100644 index 0000000..45e4660 --- /dev/null +++ b/script/fruit_day_award.go @@ -0,0 +1,111 @@ +package main + +import ( + "encoding/json" + "fmt" + "git.hilo.cn/hilo-common/script/mysql" + "github.com/tealeg/xlsx" + "io/ioutil" + "net/http" +) + +type FruitDayAward struct { + Code int `json:"code"` + Message string `json:"message"` + Data struct { + Total int `json:"total"` + Data []struct { + Rank int `json:"rank"` + UserCode string `json:"userCode"` + Country string `json:"country"` + Stake int `json:"stake"` + Award int `json:"award"` + ProfitLoss int `json:"profitLoss"` + ChargeMoney float64 `json:"chargeMoney"` + } `json:"data"` + } `json:"data"` +} + +type ResCountry struct { + Name string + Area int +} + +type UserSvip2 struct { + Code string + Level int +} + +func ats32(a interface{}) string { + return fmt.Sprintf("%v", a) +} + +func main() { + url := "https://apiv2.faceline.live/v1/fruitMachine/rank/award?lang=zh-cn&pageIndex=1&pageSize=50000&beginDate=2023-08-15&endDate=2023-08-15&userCode=&timezone=1" + method := "GET" + + client := &http.Client{} + req, err := http.NewRequest(method, url, nil) + + if err != nil { + fmt.Println(err) + return + } + req.Header.Add("nonce", "hilo") + req.Header.Add("token", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VySWQiOjI1MSwiRXh0ZXJuYWxJZCI6IiIsImV4cCI6MTY5MzIwNjcxOH0.V-5CfVUGbQDtn04vy85rjb2TtrfntZCuv209tUKFcgU") + + res, err := client.Do(req) + if err != nil { + fmt.Println(err) + return + } + defer res.Body.Close() + + body, err := ioutil.ReadAll(res.Body) + if err != nil { + panic(err) + } + var response = new(FruitDayAward) + err = json.Unmarshal(body, &response) + if err != nil { + panic(err) + } + var countryArea = make(map[string]string) + // get from db + var countries []ResCountry + if err := mysql.ProdReadOnlyDB.Model(ResCountry{}).Find(&countries).Error; err != nil { + panic(err) + } + for _, v := range countries { + area := "阿语" + if v.Area == 2 { + area = "非阿语" + } + countryArea[v.Name] = area + } + var svipMap = make(map[string]int) + var codes []string + for _, v := range response.Data.Data { + codes = append(codes, v.UserCode) + } + var svips []UserSvip2 + if err := mysql.ProdReadOnlyDB.Table("user_svip s").Joins("INNER JOIN user u ON u.id = s.user_id").Select("u.code,s.level").Where("u.code in ?", codes).Find(&svips).Error; err != nil { + panic(err) + } + for _, v := range svips { + svipMap[v.Code] = v.Level + } + excelFileName := fmt.Sprintf("./0815水果机中奖榜.xlsx") + xlFile := xlsx.NewFile() + sheet, _ := xlFile.AddSheet("charge") + row := sheet.AddRow() + c1, c2, c3, c4, c5, c6, c7, c8, c9 := row.AddCell(), row.AddCell(), row.AddCell(), row.AddCell(), row.AddCell(), row.AddCell(), row.AddCell(), row.AddCell(), row.AddCell() + c1.Value, c2.Value, c3.Value, c4.Value, c5.Value, c6.Value, c7.Value, c8.Value, c9.Value = "排名", "用户ID", "区域", "国家", "SVIP等级", "投注钻石数", "中奖钻石数", "盈亏(中奖-投注)", "充值金额$" + for _, d := range response.Data.Data { + row := sheet.AddRow() + c1, c2, c3, c4, c5, c6, c7, c8, c9 := row.AddCell(), row.AddCell(), row.AddCell(), row.AddCell(), row.AddCell(), row.AddCell(), row.AddCell(), row.AddCell(), row.AddCell() + c1.Value, c2.Value, c3.Value, c4.Value, c5.Value, c6.Value, c7.Value, c8.Value, c9.Value = + ats32(d.Rank), ats32(d.UserCode), countryArea[d.Country], ats32(d.Country), ats32(svipMap[d.UserCode]), ats32(d.Stake), ats32(d.Award), ats32(d.ProfitLoss), ats32(d.ChargeMoney) + } + _ = xlFile.Save(excelFileName) +} -- 2.22.0