| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 |
- package dataStatistics
- import (
- "context"
- "github.com/bitly/go-simplejson"
- _ "github.com/bitly/go-simplejson"
- "go.uber.org/zap"
- "log-server/global"
- "log-server/model/dataStatistics"
- "log-server/model/dataStatistics/request"
- "log-server/model/dataStatistics/response"
- "log-server/service/system"
- "log-server/utils"
- "strconv"
- "strings"
- "time"
- //"time"
- )
- type ServiceWeChatScannerApi struct {
- }
- var robotService = new(system.RobotService)
- func (s *ServiceWeChatScannerApi) WeChatScannerApiList(ctx context.Context, api dataStatistics.WeChatScannerApi, info request.PageInfo, order string, desc bool) (interface{}, int64, error) {
- db := global.GVA_DB.Model(&dataStatistics.WeChatScannerApi{})
- //global.GVA_LOG.Info(api.NewDate)
- if api.Name != "" {
- db = db.Where("name = ?", api.Name)
- }
- if api.NewDate != "" {
- db = db.Where("new_date = ?", api.NewDate)
- }
- var total int64
- err := db.Count(&total).Error
- //if err != nil {
- // return nil, 0, err
- //}
- limit := info.PageSize
- offset := info.PageSize * (info.Page - 1)
- //var statisticsLogs []*log.LogComputer
- var apiList []dataStatistics.WeChatScannerApi
- db = db.Limit(limit).Offset(offset)
- if order != "" {
- var OrderStr string
- // 设置有效排序key 防止sql注入
- // 感谢 Tom4t0 提交漏洞信息
- orderMap := make(map[string]bool, 3)
- orderMap["id"] = true
- //orderMap["game_id"] = true
- //orderMap["operator"] = true
- if orderMap[order] {
- if desc {
- OrderStr = order + " desc"
- } else {
- OrderStr = order + " desc"
- }
- } else { // didn't matched any order key in `orderMap`
- global.GVA_LOG.Error("获取失败!", zap.Error(err))
- return apiList, total, err
- }
- err = db.Order(OrderStr).Find(&apiList).Error
- } else {
- err = db.Order("id").Find(&apiList).Error
- }
- if err != nil {
- return nil, 0, err
- }
- var arrayResponse []*response.WeChatScannerApiResponse
- for _, e := range apiList {
- oneResponse := new(response.WeChatScannerApiResponse)
- oneResponse.Id = e.Id
- oneResponse.UpdateTime = e.UpdateTime
- oneResponse.CreateTime = e.CreateTime
- oneResponse.Name = e.Name
- oneResponse.Balance = e.Balance
- oneResponse.NewDate = e.NewDate
- arrayResponse = append(arrayResponse, oneResponse)
- }
- return arrayResponse, total, err
- }
- // SyncGetWeChatScannerBalance 定时获取扫码平台余额
- func (s *ServiceWeChatScannerApi) SyncGetWeChatScannerBalance() {
- const (
- ZWNBSP = '\uFEFF'
- empty = ""
- )
- newDate := time.Now().Format("2006-01-02")
- content := ">#### **【扫码平台】预警** (" + time.Now().Format("2006-01-02 15:04:05") + "):\n"
- var keyWord string
- //浪潮===============================================================
- //lc, err := s.GetLangchaoInfo()
- //if err != nil {
- // global.GVA_LOG.Error("获取浪潮扫码余额失败,平台可能异常,请注意排查!!!")
- // //keyWord = "获取浪潮扫码余额失败,平台可能异常,请注意排查!!!,错误信息:" + err.Error() + "\n"
- //}
- //dataLc, _ := simplejson.NewJson(lc)
- //code, _ := dataLc.Get("code").Int()
- //balanceLc := "0"
- //if code == 20000 {
- // balanceLc, _ = dataLc.Get("data").Get("balance").String()
- //}
- ////global.GVA_LOG.Info("浪潮扫码平台余额:" + balanceLc)
- //one := new(dataStatistics.WeChatScannerApi)
- //one.Name = "浪潮"
- //one.UpdateTime = time.Now().Format("2006-01-02 15:04:05")
- //one.CreateTime = time.Now().Format("2006-01-02 15:04:05")
- //one.Balance = balanceLc
- //one.NewDate = newDate
- //_ = global.GVA_DB.Create(&one).Error
- //==========================================================================
- //海马==========================================================================
- hm, err := s.GetHaimaInfo()
- if err != nil {
- global.GVA_LOG.Error("获取海马扫码余额失败,平台可能异常,请注意排查!!!")
- keyWord = "获取海马扫码余额失败,平台可能异常,请注意排查!!!,错误信息:" + err.Error() + "\n"
- content += keyWord
- url := global.GVA_CONFIG.SendUrl.KeyWordSendUrl
- _, _ = robotService.PostRobotToEnterpriseWeChatByMarkdown(url, content)
- return
- }
- //global.GVA_LOG.Info("1:" + string(hm))
- //hm2 := strings.Trim(string(hm), "")
- hm2 := strings.Replace(string(hm), string(ZWNBSP), empty, -1)
- hm = []byte(hm2)
- dataHm, err := simplejson.NewJson(hm)
- if err != nil {
- global.GVA_LOG.Error("NewJson,请注意排查!!!")
- return
- }
- code, err := dataHm.Get("code").Int()
- if err != nil {
- global.GVA_LOG.Error("Int,请注意排查!!!")
- return
- }
- balanceHm := "0"
- if code == 1 {
- balanceHm, _ = dataHm.Get("data").String()
- }
- //global.GVA_LOG.Info("海马扫码平台余额:" + balanceHm)
- one := new(dataStatistics.WeChatScannerApi)
- one.Name = "海马"
- one.Balance = balanceHm
- one.NewDate = newDate
- one.UpdateTime = time.Now().Format("2006-01-02 15:04:05")
- one.CreateTime = time.Now().Format("2006-01-02 15:04:05")
- _ = global.GVA_DB.Create(&one).Error
- //余额不足报警
- //==============================================================================
- //floatBalanceLc, _ := strconv.ParseFloat(balanceLc, 64)
- floatBalanceHm, _ := strconv.ParseFloat(balanceHm, 64)
- //浪潮余额少于10元报警
- //if floatBalanceLc <= 10 {
- // keyWord += "浪潮扫码平台余额不足,当前余额:" + balanceLc + "元,请及时充值!!!\n"
- //}
- //海马余额少于100元报警
- if floatBalanceHm <= 100 {
- keyWord += "海马扫码平台余额不足,当前余额:" + balanceHm + "元,请及时充值!!!\n"
- keyWord += "[海马网页充值](http://www.yundiani.com/h5/) [海马卡密购买](https://www.fakazhu.cn/links/B7EC925C)"
- }
- if keyWord != "" {
- content += keyWord
- url := global.GVA_CONFIG.SendUrl.KeyWordSendUrl
- _, _ = robotService.PostRobotToEnterpriseWeChatByMarkdown(url, content)
- }
- return
- }
- // GetLangchaoInfo 获取浪潮
- func (s *ServiceWeChatScannerApi) GetLangchaoInfo() (result []byte, err error) {
- jfUrl := "http://202.189.7.240:8082/api/userInfo"
- jfParams := map[string]string{
- "username": "513022",
- "password": "kfzsygdl",
- }
- result, err = utils.HttpGet(jfUrl, jfParams)
- return
- }
- // GetHaimaInfo 获取海马
- func (s *ServiceWeChatScannerApi) GetHaimaInfo() (result []byte, err error) {
- jfUrl := "https://api.yundiani.com/api/openav/checkUserBalance"
- jfParams := map[string]string{
- "uname": "513022",
- "password": "b52fca684535d924fb0147b9afbff681",
- }
- result, err = utils.HttpGet(jfUrl, jfParams)
- return
- }
|