wechat_scanner_api.go 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. package dataStatistics
  2. import (
  3. "context"
  4. "github.com/bitly/go-simplejson"
  5. _ "github.com/bitly/go-simplejson"
  6. "go.uber.org/zap"
  7. "log-server/global"
  8. "log-server/model/dataStatistics"
  9. "log-server/model/dataStatistics/request"
  10. "log-server/model/dataStatistics/response"
  11. "log-server/utils"
  12. "strings"
  13. "time"
  14. //"time"
  15. )
  16. type ServiceWeChatScannerApi struct {
  17. }
  18. func (s *ServiceWeChatScannerApi) WeChatScannerApiList(ctx context.Context, api dataStatistics.WeChatScannerApi, info request.PageInfo, order string, desc bool) (interface{}, int64, error) {
  19. db := global.GVA_DB.Model(&dataStatistics.WeChatScannerApi{})
  20. //global.GVA_LOG.Info(api.NewDate)
  21. if api.Name != "" {
  22. db = db.Where("name = ?", api.Name)
  23. }
  24. if api.NewDate != "" {
  25. db = db.Where("new_date = ?", api.NewDate)
  26. }
  27. var total int64
  28. err := db.Count(&total).Error
  29. //if err != nil {
  30. // return nil, 0, err
  31. //}
  32. limit := info.PageSize
  33. offset := info.PageSize * (info.Page - 1)
  34. //var statisticsLogs []*log.LogComputer
  35. var apiList []dataStatistics.WeChatScannerApi
  36. db = db.Limit(limit).Offset(offset)
  37. if order != "" {
  38. var OrderStr string
  39. // 设置有效排序key 防止sql注入
  40. // 感谢 Tom4t0 提交漏洞信息
  41. orderMap := make(map[string]bool, 3)
  42. orderMap["id"] = true
  43. //orderMap["game_id"] = true
  44. //orderMap["operator"] = true
  45. if orderMap[order] {
  46. if desc {
  47. OrderStr = order + " desc"
  48. } else {
  49. OrderStr = order + " desc"
  50. }
  51. } else { // didn't matched any order key in `orderMap`
  52. global.GVA_LOG.Error("获取失败!", zap.Error(err))
  53. return apiList, total, err
  54. }
  55. err = db.Order(OrderStr).Find(&apiList).Error
  56. } else {
  57. err = db.Order("id").Find(&apiList).Error
  58. }
  59. if err != nil {
  60. return nil, 0, err
  61. }
  62. var arrayResponse []*response.WeChatScannerApiResponse
  63. for _, e := range apiList {
  64. oneResponse := new(response.WeChatScannerApiResponse)
  65. oneResponse.Id = e.Id
  66. oneResponse.UpdateTime = e.UpdateTime
  67. oneResponse.CreateTime = e.CreateTime
  68. oneResponse.Name = e.Name
  69. oneResponse.Balance = e.Balance
  70. oneResponse.NewDate = e.NewDate
  71. arrayResponse = append(arrayResponse, oneResponse)
  72. }
  73. return arrayResponse, total, err
  74. }
  75. // SyncGetWeChatScannerBalance 定时获取扫码平台余额
  76. func (s *ServiceWeChatScannerApi) SyncGetWeChatScannerBalance() {
  77. const (
  78. ZWNBSP = '\uFEFF'
  79. empty = ""
  80. )
  81. newDate := time.Now().Format("2006-01-02")
  82. //浪潮===============================================================
  83. lc := s.GetLangchaoInfo()
  84. dataLc, _ := simplejson.NewJson(lc)
  85. code, _ := dataLc.Get("code").Int()
  86. balanceLc := "0"
  87. if code == 20000 {
  88. balanceLc, _ = dataLc.Get("data").Get("balance").String()
  89. }
  90. //global.GVA_LOG.Info("浪潮扫码平台余额:" + balanceLc)
  91. one := new(dataStatistics.WeChatScannerApi)
  92. one.Name = "浪潮"
  93. one.UpdateTime = time.Now().Format("2006-01-02 15:04:05")
  94. one.CreateTime = time.Now().Format("2006-01-02 15:04:05")
  95. one.Balance = balanceLc
  96. one.NewDate = newDate
  97. _ = global.GVA_DB.Create(&one).Error
  98. //海马==========================================================================
  99. hm := s.GetHaimaInfo()
  100. //global.GVA_LOG.Info("1:" + string(hm))
  101. //hm2 := strings.Trim(string(hm), "")
  102. hm2 := strings.Replace(string(hm), string(ZWNBSP), empty, -1)
  103. hm = []byte(hm2)
  104. dataHm, _ := simplejson.NewJson(hm)
  105. //global.GVA_LOG.Info("2:" + dataHm)
  106. code, _ = dataHm.Get("code").Int()
  107. balanceHm := "0"
  108. if code == 1 {
  109. balanceHm, _ = dataHm.Get("data").String()
  110. }
  111. //global.GVA_LOG.Info("海马扫码平台余额:" + balanceHm)
  112. one = new(dataStatistics.WeChatScannerApi)
  113. one.Name = "海马"
  114. one.Balance = balanceHm
  115. one.NewDate = newDate
  116. one.UpdateTime = time.Now().Format("2006-01-02 15:04:05")
  117. one.CreateTime = time.Now().Format("2006-01-02 15:04:05")
  118. _ = global.GVA_DB.Create(&one).Error
  119. return
  120. }
  121. // getLangchaoInfo 获取浪潮
  122. func (s *ServiceWeChatScannerApi) GetLangchaoInfo() (result []byte) {
  123. jfUrl := "http://202.189.7.240:8082/api/userInfo"
  124. jfParams := map[string]string{
  125. "username": "513022",
  126. "password": "kfzsygdl",
  127. }
  128. result, _ = utils.HttpGet(jfUrl, jfParams)
  129. return
  130. }
  131. // getHaimaInfo 获取海马
  132. func (s *ServiceWeChatScannerApi) GetHaimaInfo() (result []byte) {
  133. jfUrl := "https://api.yundiani.com/api/openav/checkUserBalance"
  134. jfParams := map[string]string{
  135. "uname": "513022",
  136. "password": "b52fca684535d924fb0147b9afbff681",
  137. }
  138. result, _ = utils.HttpGet(jfUrl, jfParams)
  139. return
  140. }