wechat_scanner_ledger.go 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package dataStatistics
  2. import (
  3. "context"
  4. _ "github.com/bitly/go-simplejson"
  5. "go.uber.org/zap"
  6. "log-server/global"
  7. "log-server/model/dataStatistics"
  8. "log-server/model/dataStatistics/request"
  9. "log-server/model/dataStatistics/response"
  10. //"time"
  11. )
  12. type ServiceWeChatScannerLedger struct {
  13. }
  14. //type WeChatGameInfo struct {
  15. // GameName string
  16. // LcPriceNew float64
  17. // LcPriceRetained float64
  18. // HmPriceNew float64
  19. // HmPriceRetained float64
  20. //}
  21. func (s *ServiceWeChatScannerLedger) WeChatScannerLedgerList(ctx context.Context, api dataStatistics.WeChatScannerLedger, info request.PageInfo, order string, desc bool) (interface{}, int64, error) {
  22. db := global.GVA_DB.Model(&dataStatistics.WeChatScannerLedger{})
  23. //global.GVA_LOG.Info(api.NewDate)
  24. if api.NewDate != "" {
  25. db = db.Where("new_date = ?", api.NewDate)
  26. }
  27. if api.Platform != "" {
  28. db = db.Where("platform = ?", api.Platform)
  29. }
  30. var total int64
  31. err := db.Count(&total).Error
  32. //if err != nil {
  33. // return nil, 0, err
  34. //}
  35. limit := info.PageSize
  36. offset := info.PageSize * (info.Page - 1)
  37. //var statisticsLogs []*log.LogComputer
  38. var apiList []dataStatistics.WeChatScannerLedger
  39. db = db.Limit(limit).Offset(offset)
  40. if order != "" {
  41. var OrderStr string
  42. // 设置有效排序key 防止sql注入
  43. // 感谢 Tom4t0 提交漏洞信息
  44. orderMap := make(map[string]bool, 3)
  45. orderMap["task_name"] = true
  46. //orderMap["game_id"] = true
  47. //orderMap["operator"] = true
  48. if orderMap[order] {
  49. if desc {
  50. OrderStr = order + " desc"
  51. } else {
  52. OrderStr = order + " desc"
  53. }
  54. } else { // didn't matched any order key in `orderMap`
  55. global.GVA_LOG.Error("获取失败!", zap.Error(err))
  56. return apiList, total, err
  57. }
  58. err = db.Order(OrderStr).Find(&apiList).Error
  59. } else {
  60. err = db.Order("task_name").Find(&apiList).Error
  61. }
  62. if err != nil {
  63. return nil, 0, err
  64. }
  65. var arrayResponse []*response.WeChatScannerLedgerResponse
  66. for _, e := range apiList {
  67. oneResponse := new(response.WeChatScannerLedgerResponse)
  68. oneResponse.Id = e.Id
  69. oneResponse.NewDate = e.NewDate
  70. oneResponse.Platform = e.Platform
  71. oneResponse.TaskId = e.TaskId
  72. oneResponse.TaskName = e.TaskName
  73. oneResponse.Ledger = e.Ledger
  74. oneResponse.LedgerNew = e.LedgerNew
  75. oneResponse.LedgerRetained = e.LedgerRetained
  76. arrayResponse = append(arrayResponse, oneResponse)
  77. }
  78. return arrayResponse, total, err
  79. }