task.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package main
  2. import (
  3. "fmt"
  4. "github.com/bxcodec/faker/v3"
  5. "github.com/mhaya/game/game_cluster/internal/mdb/eventmodels"
  6. "gorm.io/gorm"
  7. )
  8. func getTaskFakeData(users []*eventmodels.UserBasic) []*eventmodels.TaskFinishEventContent {
  9. datas := make([]*eventmodels.TaskFinishEventContent, 0, 8)
  10. for i := 0; i < count; i++ {
  11. userBasic := getUserBasic(users)
  12. eventBasic := getEventBasic()
  13. datas = append(datas, &eventmodels.TaskFinishEventContent{
  14. UserBasic: *userBasic,
  15. EventBasic: *eventBasic,
  16. TaskId: faker.TimeString(),
  17. TaskCondition: faker.AmountWithCurrency(),
  18. TaskType: faker.Name(),
  19. TaskName: faker.Name(),
  20. })
  21. }
  22. return datas
  23. }
  24. func distinctTask(db *gorm.DB, users []*eventmodels.UserBasic) {
  25. for _, nameObj := range users {
  26. taskIds := make([]*eventmodels.TaskFinishEventContent, 0, 8)
  27. where := &eventmodels.TaskFinishEventContent{
  28. UserBasic: eventmodels.UserBasic{
  29. UserId: nameObj.UserId,
  30. },
  31. }
  32. err := db.Model(&eventmodels.TaskFinishEventContent{}).Distinct("task_id").Where(where).Find(&taskIds).Error
  33. if err != nil {
  34. fmt.Printf("Distinct error:%v", err)
  35. return
  36. }
  37. fmt.Printf("taskIds:%#v", taskIds)
  38. for _, v := range taskIds {
  39. taskInfo := &eventmodels.TaskFinishEventContent{}
  40. where.TaskId = v.TaskId
  41. err = db.Model(&eventmodels.TaskFinishEventContent{}).Where(where).Order("create_at desc").First(&taskInfo).Error
  42. if err != nil {
  43. fmt.Printf("First error:%v", err)
  44. return
  45. }
  46. fmt.Printf("taskInfo:%#v", taskInfo)
  47. }
  48. }
  49. }