wechat_scanner_api.go 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  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/service/system"
  12. "log-server/utils"
  13. "strconv"
  14. "strings"
  15. "time"
  16. //"time"
  17. )
  18. type ServiceWeChatScannerApi struct {
  19. }
  20. var robotService = new(system.RobotService)
  21. func (s *ServiceWeChatScannerApi) WeChatScannerApiList(ctx context.Context, api dataStatistics.WeChatScannerApi, info request.PageInfo, order string, desc bool) (interface{}, int64, error) {
  22. db := global.GVA_DB.Model(&dataStatistics.WeChatScannerApi{})
  23. //global.GVA_LOG.Info(api.NewDate)
  24. if api.Name != "" {
  25. db = db.Where("name = ?", api.Name)
  26. }
  27. if api.NewDate != "" {
  28. db = db.Where("new_date = ?", api.NewDate)
  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.WeChatScannerApi
  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["id"] = 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("id").Find(&apiList).Error
  61. }
  62. if err != nil {
  63. return nil, 0, err
  64. }
  65. var arrayResponse []*response.WeChatScannerApiResponse
  66. for _, e := range apiList {
  67. oneResponse := new(response.WeChatScannerApiResponse)
  68. oneResponse.Id = e.Id
  69. oneResponse.UpdateTime = e.UpdateTime
  70. oneResponse.CreateTime = e.CreateTime
  71. oneResponse.Name = e.Name
  72. oneResponse.Balance = e.Balance
  73. oneResponse.NewDate = e.NewDate
  74. arrayResponse = append(arrayResponse, oneResponse)
  75. }
  76. return arrayResponse, total, err
  77. }
  78. // SyncGetWeChatScannerBalance 定时获取扫码平台余额
  79. func (s *ServiceWeChatScannerApi) SyncGetWeChatScannerBalance() {
  80. const (
  81. ZWNBSP = '\uFEFF'
  82. empty = ""
  83. )
  84. newDate := time.Now().Format("2006-01-02")
  85. content := ">#### **【扫码平台】预警** (" + time.Now().Format("2006-01-02 15:04:05") + "):\n"
  86. var keyWord string
  87. //浪潮===============================================================
  88. //lc, err := s.GetLangchaoInfo()
  89. //if err != nil {
  90. // global.GVA_LOG.Error("获取浪潮扫码余额失败,平台可能异常,请注意排查!!!")
  91. // //keyWord = "获取浪潮扫码余额失败,平台可能异常,请注意排查!!!,错误信息:" + err.Error() + "\n"
  92. //}
  93. //dataLc, _ := simplejson.NewJson(lc)
  94. //code, _ := dataLc.Get("code").Int()
  95. //balanceLc := "0"
  96. //if code == 20000 {
  97. // balanceLc, _ = dataLc.Get("data").Get("balance").String()
  98. //}
  99. ////global.GVA_LOG.Info("浪潮扫码平台余额:" + balanceLc)
  100. //one := new(dataStatistics.WeChatScannerApi)
  101. //one.Name = "浪潮"
  102. //one.UpdateTime = time.Now().Format("2006-01-02 15:04:05")
  103. //one.CreateTime = time.Now().Format("2006-01-02 15:04:05")
  104. //one.Balance = balanceLc
  105. //one.NewDate = newDate
  106. //_ = global.GVA_DB.Create(&one).Error
  107. //==========================================================================
  108. //海马==========================================================================
  109. hm, err := s.GetHaimaInfo()
  110. if err != nil {
  111. global.GVA_LOG.Error("获取海马扫码余额失败,平台可能异常,请注意排查!!!")
  112. keyWord = "获取海马扫码余额失败,平台可能异常,请注意排查!!!,错误信息:" + err.Error() + "\n"
  113. content += keyWord
  114. url := global.GVA_CONFIG.SendUrl.KeyWordSendUrl
  115. _, _ = robotService.PostRobotToEnterpriseWeChatByMarkdown(url, content)
  116. return
  117. }
  118. //global.GVA_LOG.Info("1:" + string(hm))
  119. //hm2 := strings.Trim(string(hm), "")
  120. hm2 := strings.Replace(string(hm), string(ZWNBSP), empty, -1)
  121. hm = []byte(hm2)
  122. dataHm, err := simplejson.NewJson(hm)
  123. if err != nil {
  124. global.GVA_LOG.Error("NewJson,请注意排查!!!")
  125. return
  126. }
  127. code, err := dataHm.Get("code").Int()
  128. if err != nil {
  129. global.GVA_LOG.Error("Int,请注意排查!!!")
  130. return
  131. }
  132. balanceHm := "0"
  133. if code == 1 {
  134. balanceHm, _ = dataHm.Get("data").String()
  135. }
  136. //global.GVA_LOG.Info("海马扫码平台余额:" + balanceHm)
  137. one := new(dataStatistics.WeChatScannerApi)
  138. one.Name = "海马"
  139. one.Balance = balanceHm
  140. one.NewDate = newDate
  141. one.UpdateTime = time.Now().Format("2006-01-02 15:04:05")
  142. one.CreateTime = time.Now().Format("2006-01-02 15:04:05")
  143. _ = global.GVA_DB.Create(&one).Error
  144. //余额不足报警
  145. //==============================================================================
  146. //floatBalanceLc, _ := strconv.ParseFloat(balanceLc, 64)
  147. floatBalanceHm, _ := strconv.ParseFloat(balanceHm, 64)
  148. //浪潮余额少于10元报警
  149. //if floatBalanceLc <= 10 {
  150. // keyWord += "浪潮扫码平台余额不足,当前余额:" + balanceLc + "元,请及时充值!!!\n"
  151. //}
  152. //海马余额少于100元报警
  153. if floatBalanceHm <= 100 {
  154. keyWord += "海马扫码平台余额不足,当前余额:" + balanceHm + "元,请及时充值!!!\n"
  155. keyWord += "[海马网页充值](http://www.yundiani.com/h5/) [海马卡密购买](https://www.fakazhu.cn/links/B7EC925C)"
  156. }
  157. if keyWord != "" {
  158. content += keyWord
  159. url := global.GVA_CONFIG.SendUrl.KeyWordSendUrl
  160. _, _ = robotService.PostRobotToEnterpriseWeChatByMarkdown(url, content)
  161. }
  162. return
  163. }
  164. // GetLangchaoInfo 获取浪潮
  165. func (s *ServiceWeChatScannerApi) GetLangchaoInfo() (result []byte, err error) {
  166. jfUrl := "http://202.189.7.240:8082/api/userInfo"
  167. jfParams := map[string]string{
  168. "username": "513022",
  169. "password": "kfzsygdl",
  170. }
  171. result, err = utils.HttpGet(jfUrl, jfParams)
  172. return
  173. }
  174. // GetHaimaInfo 获取海马
  175. func (s *ServiceWeChatScannerApi) GetHaimaInfo() (result []byte, err error) {
  176. jfUrl := "https://api.yundiani.com/api/openav/checkUserBalance"
  177. jfParams := map[string]string{
  178. "uname": "513022",
  179. "password": "b52fca684535d924fb0147b9afbff681",
  180. }
  181. result, err = utils.HttpGet(jfUrl, jfParams)
  182. return
  183. }