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/utils" "strings" "time" //"time" ) type ServiceWeChatScannerApi struct { } 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") //浪潮=============================================================== lc := s.GetLangchaoInfo() 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 := s.GetHaimaInfo() //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, _ := simplejson.NewJson(hm) //global.GVA_LOG.Info("2:" + dataHm) code, _ = dataHm.Get("code").Int() 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 return } // getLangchaoInfo 获取浪潮 func (s *ServiceWeChatScannerApi) GetLangchaoInfo() (result []byte) { jfUrl := "http://202.189.7.240:8082/api/userInfo" jfParams := map[string]string{ "username": "513022", "password": "kfzsygdl", } result, _ = utils.HttpGet(jfUrl, jfParams) return } // getHaimaInfo 获取海马 func (s *ServiceWeChatScannerApi) GetHaimaInfo() (result []byte) { jfUrl := "https://api.yundiani.com/api/openav/checkUserBalance" jfParams := map[string]string{ "uname": "513022", "password": "b52fca684535d924fb0147b9afbff681", } result, _ = utils.HttpGet(jfUrl, jfParams) return }