1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- package main
- import (
- "fmt"
- "math/rand"
- "github.com/bxcodec/faker/v3"
- "github.com/mhaya/game/game_cluster/internal/mdb/eventmodels"
- "gorm.io/gorm"
- )
- func getTaskFakeData(users []*eventmodels.UserBasic) []*eventmodels.TaskFinishEventContent {
- datas := make([]*eventmodels.TaskFinishEventContent, 0, 8)
- for i := 0; i < count; i++ {
- userBasic := getUserBasic(users)
- eventBasic := getEventBasic()
- rewards := make([]eventmodels.ItemReward, 0, 8)
- rewards = append(rewards, eventmodels.ItemReward{
- ItemBaseType: rand.Intn(5) + 1,
- ItemID: rand.Intn(7) + 1,
- Amount: rand.Intn(100) + 1,
- })
- bytes, err := json.Marshal(rewards)
- if err != nil {
- panic(err)
- }
- eventBasic.Reward = string(bytes)
- datas = append(datas, &eventmodels.TaskFinishEventContent{
- UserBasic: *userBasic,
- EventBasic: *eventBasic,
- TaskId: faker.TimeString(),
- TaskName: faker.Name(),
- TaskCondition: faker.AmountWithCurrency(),
- TaskType: faker.Name(),
- TaskProgress: 50,
- })
- }
- return datas
- }
- func distinctTask(db *gorm.DB, users []*eventmodels.UserBasic) {
- for _, nameObj := range users {
- taskIds := make([]*eventmodels.TaskFinishEventContent, 0, 8)
- where := &eventmodels.TaskFinishEventContent{
- UserBasic: eventmodels.UserBasic{
- UserId: nameObj.UserId,
- },
- }
- err := db.Model(&eventmodels.TaskFinishEventContent{}).Distinct("task_id").Where(where).Find(&taskIds).Error
- if err != nil {
- fmt.Printf("Distinct error:%v", err)
- return
- }
- fmt.Printf("taskIds:%#v", taskIds)
- for _, v := range taskIds {
- taskInfo := &eventmodels.TaskFinishEventContent{}
- where.TaskId = v.TaskId
- err = db.Model(&eventmodels.TaskFinishEventContent{}).Where(where).Order("create_at desc").First(&taskInfo).Error
- if err != nil {
- fmt.Printf("First error:%v", err)
- return
- }
- fmt.Printf("taskInfo:%#v", taskInfo)
- }
- }
- }
|