diff --git a/script/group_activity_award.go b/script/group_activity_award.go new file mode 100644 index 0000000000000000000000000000000000000000..07fbdbb500ac665f4d87fbe30021ab3d8433927f --- /dev/null +++ b/script/group_activity_award.go @@ -0,0 +1,108 @@ +package main + +import ( + "encoding/json" + "fmt" + "git.hilo.cn/hilo-common/script/model" + "git.hilo.cn/hilo-common/script/mysql" + "github.com/tealeg/xlsx" +) + +type GroupActivityAwardLog struct { + GroupActId uint64 // 活动id + UserId uint64 // 用户id + ImGroupId string // imGroupId + Award string + CreatedTime string +} + +type Award struct { + ResGiftId uint64 + Num int +} + +type GroupActivityData struct { + Country string // 国家 + Area string // 区域 + OwnerCode string // 房主靓号 + GroupCode string // 群组靓号 + AwardGift3111Num int // 3111礼物id数量 + AwardGift3101Num int // 3101礼物id数量 + AwardGift3091Num int // 3091礼物id数量 + AwardPrice int // 总的礼物价值 + AwardTime string // 奖励时间 +} + +func ats3(a int) string { + return fmt.Sprintf("%d", a) +} + +func main() { + var awardLogs []GroupActivityAwardLog + if err := mysql.ProdReadOnlyDB.Model(GroupActivityAwardLog{}).Where("created_time < ?", "2023-03-17 12:15:18").Find(&awardLogs).Error; err != nil { + panic(err) + } + var countrys []model.ResCountry + if err := mysql.ProdReadOnlyDB.Model(model.ResCountry{}).Find(&countrys).Error; err != nil { + panic(err) + } + cm := make(map[string]int) + for _, c := range countrys { + cm[c.Name] = c.Area + } + var data []GroupActivityData + for _, log := range awardLogs { + var user = new(model.User) + if err := mysql.ProdReadOnlyDB.Table("user").Where("id = ?", log.UserId).First(user).Error; err != nil { + panic(err) + } + var group = new(model.GroupInfo) + if err := mysql.ProdReadOnlyDB.Table("group_info").Where("im_group_id = ?", log.ImGroupId).First(group).Error; err != nil { + panic(err) + } + area := "阿语" + if cm[user.Country] == 2 { + area = "非阿语" + } + var awards []Award + if err := json.Unmarshal([]byte(log.Award), &awards); err != nil { + panic(err) + } + var num3111, num3101, num3091 int + for _, a := range awards { + if a.ResGiftId == 3111 { + num3111 = a.Num + } + if a.ResGiftId == 3101 { + num3101 = a.Num + } + if a.ResGiftId == 3091 { + num3091 = a.Num + } + } + data = append(data, GroupActivityData{ + Country: user.Country, + Area: area, + OwnerCode: user.Code, + GroupCode: group.Code, + AwardGift3111Num: num3111, + AwardGift3101Num: num3101, + AwardGift3091Num: num3091, + AwardPrice: num3111*10000 + num3101*3000 + num3091*1000, + AwardTime: log.CreatedTime, + }) + } + excelFileName := fmt.Sprintf("./群组扶持数据.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 = "国家", "区域", "房主靓号", "群组靓号", "3111礼物数量", "3101礼物数量", "3091礼物数量", "总的礼物价值", "奖励时间" + for _, d := range 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 = + d.Country, d.Area, d.OwnerCode, d.GroupCode, ats3(d.AwardGift3111Num), ats3(d.AwardGift3101Num), ats3(d.AwardGift3091Num), ats3(d.AwardPrice), d.AwardTime + } + _ = xlFile.Save(excelFileName) +} diff --git a/script/model/res.go b/script/model/res.go new file mode 100644 index 0000000000000000000000000000000000000000..cd1fa2178d9be1dda684230efa497d21f2c9c4e8 --- /dev/null +++ b/script/model/res.go @@ -0,0 +1,6 @@ +package model + +type ResCountry struct { + Name string + Area int +}