|
|
@@ -265,6 +265,126 @@ func (s *SyncData) SyncTaskData() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+// 定时同步机房群控、小绵羊数据
|
|
|
+func (s *SyncData) YesterdaySyncTaskData() {
|
|
|
+ db := global.GVA_DB.Model(&task.GameTask{})
|
|
|
+ var apiList []task.GameTask
|
|
|
+ db = db.Where("is_del = ?", -1)
|
|
|
+ db = db.Where("status = ?", 1)
|
|
|
+ err := db.Order("id desc").Find(&apiList).Error
|
|
|
+ if err != nil {
|
|
|
+ global.GVA_LOG.Error("EveryDaySyncTaskData fail", zap.Error(err))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(apiList) == 0 {
|
|
|
+ global.GVA_LOG.Info("没有任务数据")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ date := time.Now().Add(-time.Hour * 24).Format("2006-01-02")
|
|
|
+ xmyGameData, err := s.SyncXmyGameData(date)
|
|
|
+ if err != nil {
|
|
|
+ global.GVA_LOG.Error("SyncTaskData get xmy data fail", zap.Error(err))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ completeTaskData, err := s.CompleteTaskData(date)
|
|
|
+ if err != nil {
|
|
|
+ global.GVA_LOG.Error("CompleteTaskData get data fail", zap.Error(err))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ wslData, err := s.SyncWslGameData(date)
|
|
|
+ if err != nil {
|
|
|
+ global.GVA_LOG.Error("SyncWslGameData get wsl data fail", zap.Error(err))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, gameTask := range apiList {
|
|
|
+ var gameTarget task.GameTargetComplete
|
|
|
+ roomData, _ := s.SyncRoomData(date, gameTask.TaskId)
|
|
|
+
|
|
|
+ if gameTask.GameIdXmy != "" {
|
|
|
+ gameIdXmy, _ := strconv.Atoi(gameTask.GameIdXmy)
|
|
|
+ xmyGameInfo := xmyGameData[gameIdXmy]
|
|
|
+ gameTarget.NewComplete, _ = strconv.Atoi(xmyGameInfo.UserNum)
|
|
|
+ gameTarget.PayComplete, _ = strconv.Atoi(xmyGameInfo.Cnt)
|
|
|
+ gameTarget.RetainedComplete, _ = strconv.Atoi(xmyGameInfo.ActiveUserNum)
|
|
|
+ f, _ := strconv.ParseFloat(xmyGameInfo.Amount, 64)
|
|
|
+ gameTarget.Amount = int(f)
|
|
|
+ num, _ := s.SyncXmyFreeData(date, gameIdXmy)
|
|
|
+ if num != 0 {
|
|
|
+ gameTarget.PayTarget = num
|
|
|
+ if gameTarget.PayTarget > completeTaskData[gameTask.TaskId].PayTarget {
|
|
|
+ lastPayAddUpdateTimeKey := fmt.Sprintf(LastPayAddUpdateTimeKey, date, gameTask.TaskId)
|
|
|
+ _ = s.cache.SetCacheStr(context.Background(), lastPayAddUpdateTimeKey, time.Now().Unix())
|
|
|
+ // 本次加付费目标数据
|
|
|
+ lastPayAddNumKey := fmt.Sprintf(LastPayAddNumKey, date, gameTask.TaskId)
|
|
|
+ _ = s.cache.SetCacheStr(context.Background(), lastPayAddNumKey, gameTarget.PayTarget-completeTaskData[gameTask.TaskId].PayTarget)
|
|
|
+ payErrAddNumKey := fmt.Sprintf(PayErrAddNumKey, date, gameTask.TaskId)
|
|
|
+ diffNum := gameTarget.PayTarget - completeTaskData[gameTask.TaskId].PayTarget
|
|
|
+ s.common.SaveGameAddFee(diffNum, gameTarget.PayTarget, gameTask.TaskName)
|
|
|
+ //go s.common.FreeSendMsg(diffNum, gameTarget.PayTarget, gameTask.TaskId, gameTask.TaskName, gameTask.User)
|
|
|
+ // 如果当前付费目标完成,加入一下逻辑
|
|
|
+ if completeTaskData[gameTask.TaskId].PayTarget <= completeTaskData[gameTask.TaskId].PayComplete {
|
|
|
+ lastPayCompletedUpdateTimeKey := fmt.Sprintf(LastPayCompletedUpdateTimeKey, date, gameTask.TaskId)
|
|
|
+ _ = s.cache.SetCacheStr(context.Background(), lastPayCompletedUpdateTimeKey, time.Now().Unix())
|
|
|
+ _ = s.cache.SetCacheStr(context.Background(), payErrAddNumKey, gameTarget.PayTarget-completeTaskData[gameTask.TaskId].PayTarget)
|
|
|
+ } else {
|
|
|
+ n, _ := s.cache.GetCacheNum(context.Background(), payErrAddNumKey)
|
|
|
+ _ = s.cache.SetCacheStr(context.Background(), payErrAddNumKey, gameTarget.PayTarget-completeTaskData[gameTask.TaskId].PayTarget+n)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ gameTarget.NewComplete = roomData.NewCompleteLocal
|
|
|
+ gameTarget.PayComplete = roomData.PayCompleteLocal
|
|
|
+ gameTarget.RetainedComplete = roomData.NewCompleteLocal + roomData.RetainedCompleteLocal
|
|
|
+ gameTarget.Amount = gameTask.PayPrice * roomData.PayCompleteLocal
|
|
|
+ if gameTarget.RetainedComplete < roomData.RetainedComplete {
|
|
|
+ gameTarget.RetainedComplete = roomData.RetainedComplete
|
|
|
+ }
|
|
|
+ }
|
|
|
+ gameTarget.GameRate = roomData.GameRate
|
|
|
+ if (gameTask.GamePortId == 5 && gameTask.LoginMethod == 2) || gameTask.LoginMethod == 7 {
|
|
|
+ // 魅族游戏id处理
|
|
|
+ GameId := gameTask.MzGameId + "-" + gameTask.MzChannel
|
|
|
+ // 青雀账号游戏id处理
|
|
|
+ if gameTask.LoginMethod == 7 {
|
|
|
+ taskId := strconv.Itoa(gameTask.TaskId)
|
|
|
+ GameId = "rose-" + taskId
|
|
|
+ gameTarget.PayComplete = roomData.PayComplete
|
|
|
+ }
|
|
|
+ if _, ok := wslData[GameId]; ok {
|
|
|
+ gameTarget.PayTarget = wslData[GameId]
|
|
|
+ if gameTarget.PayTarget > completeTaskData[gameTask.TaskId].PayTarget {
|
|
|
+ lastPayAddUpdateTimeKey := fmt.Sprintf(LastPayAddUpdateTimeKey, date, gameTask.TaskId)
|
|
|
+ _ = s.cache.SetCacheStr(context.Background(), lastPayAddUpdateTimeKey, time.Now().Unix())
|
|
|
+ // 本次加付费目标数据
|
|
|
+ lastPayAddNumKey := fmt.Sprintf(LastPayAddNumKey, date, gameTask.TaskId)
|
|
|
+ _ = s.cache.SetCacheStr(context.Background(), lastPayAddNumKey, gameTarget.PayTarget-completeTaskData[gameTask.TaskId].PayTarget)
|
|
|
+ payErrAddNumKey := fmt.Sprintf(PayErrAddNumKey, date, gameTask.TaskId)
|
|
|
+ diffNum := gameTarget.PayTarget - completeTaskData[gameTask.TaskId].PayTarget
|
|
|
+ s.common.SaveGameAddFee(diffNum, gameTarget.PayTarget, gameTask.TaskName)
|
|
|
+ //go s.common.FreeSendMsg(diffNum, gameTarget.PayTarget, gameTask.TaskId, gameTask.TaskName, gameTask.User)
|
|
|
+ // 如果当前付费目标完成,加入一下逻辑
|
|
|
+ if completeTaskData[gameTask.TaskId].PayTarget <= completeTaskData[gameTask.TaskId].PayComplete {
|
|
|
+ lastPayCompletedUpdateTimeKey := fmt.Sprintf(LastPayCompletedUpdateTimeKey, date, gameTask.TaskId)
|
|
|
+ _ = s.cache.SetCacheStr(context.Background(), lastPayCompletedUpdateTimeKey, time.Now().Unix())
|
|
|
+ _ = s.cache.SetCacheStr(context.Background(), payErrAddNumKey, gameTarget.PayTarget-completeTaskData[gameTask.TaskId].PayTarget)
|
|
|
+ } else {
|
|
|
+ n, _ := s.cache.GetCacheNum(context.Background(), payErrAddNumKey)
|
|
|
+ _ = s.cache.SetCacheStr(context.Background(), payErrAddNumKey, gameTarget.PayTarget-completeTaskData[gameTask.TaskId].PayTarget+n)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ gameTarget.IsComplete = -1
|
|
|
+ if gameTarget.RetainedComplete+completeTaskData[gameTask.TaskId].HandRetainedComplete >= completeTaskData[gameTask.TaskId].RetainedTarget && gameTarget.PayComplete >= completeTaskData[gameTask.TaskId].PayTarget && gameTarget.NewComplete+completeTaskData[gameTask.TaskId].HandNewComplete >= completeTaskData[gameTask.TaskId].NewTarget {
|
|
|
+ gameTarget.IsComplete = 1
|
|
|
+ }
|
|
|
+ global.GVA_DB.Model(&task.GameTargetComplete{}).Where("task_id = ?", gameTask.TaskId).Where("create_date = ?", date).Omit("create_date", "update_time", "task_id").Updates(gameTarget)
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
func (s *SyncData) DayTargetDataStatistics() {
|
|
|
date := time.Now().Add(-time.Hour * 24).Format("2006-01-02")
|
|
|
request1 := request2.GameTaskStatisticsRequest{
|