asset.go 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package main
  2. import (
  3. "fmt"
  4. "math/rand"
  5. "github.com/mhaya/game/game_cluster/internal/constant"
  6. "github.com/mhaya/game/game_cluster/internal/mdb/eventmodels"
  7. "gorm.io/gorm"
  8. )
  9. func getAssetFakeData(users []*eventmodels.UserBasic) []*eventmodels.AssetsEventContent {
  10. datas := make([]*eventmodels.AssetsEventContent, 0, 8)
  11. for i := 0; i < count; i++ {
  12. userBasic := getUserBasic(users)
  13. eventBasic := getEventBasic()
  14. operation_type := func() string {
  15. if rand.Intn(2) == 1 {
  16. return string(constant.IncreaseOp)
  17. }
  18. return string(constant.DecreaseOp)
  19. }
  20. currency := func() string {
  21. index := rand.Intn(3)
  22. if index == 1 {
  23. return string(constant.PointsCurrency)
  24. }
  25. if index == 2 {
  26. return string(constant.TonCurrency)
  27. }
  28. return string(constant.UsdtCurrency)
  29. }
  30. reason := func() string {
  31. if rand.Intn(2) == 1 {
  32. return "reason"
  33. }
  34. return ""
  35. }
  36. var before_balance int64
  37. var amount int64
  38. var after_balance int64
  39. before_balance = rand.Int63n(100000)
  40. amount = rand.Int63n(1000)
  41. after_balance = before_balance + amount
  42. datas = append(datas, &eventmodels.AssetsEventContent{
  43. UserBasic: *userBasic,
  44. EventBasic: *eventBasic,
  45. OperationType: operation_type(),
  46. Currency: currency(),
  47. Reason: reason(),
  48. BeforeBalance: before_balance,
  49. Amount: amount,
  50. AfterBalance: after_balance,
  51. })
  52. }
  53. return datas
  54. }
  55. func sumData(db *gorm.DB, users []*eventmodels.UserBasic) {
  56. // sqlStr := `select SUM(amount) as total_amount from assets_event_contents where user_id = ? and currency = ?`
  57. var total_amount int64
  58. for _, nameObj := range users {
  59. // err := db.Raw(sqlStr, name, "USDT").Pluck("SUM(amount) as total_amount", &total_amount).Error
  60. // if err != nil {
  61. // fmt.Printf("Pluck error:%v", err)
  62. // return
  63. // }
  64. where := &eventmodels.AssetsEventContent{
  65. UserBasic: eventmodels.UserBasic{
  66. UserId: nameObj.UserId,
  67. // UserId: "1", // 不存在的用户
  68. },
  69. EventBasic: eventmodels.EventBasic{
  70. ServerId: server_id,
  71. },
  72. Currency: "USDT",
  73. }
  74. err := db.Model(&eventmodels.AssetsEventContent{}).Where(where).Pluck("SUM(amount) as total_amount", &total_amount).Error
  75. if err != nil {
  76. fmt.Printf("Pluck error:%v", err)
  77. return
  78. }
  79. fmt.Printf("User_id:%s total_amount:%v", nameObj.UserId, total_amount)
  80. }
  81. }