|
@@ -145,6 +145,33 @@ func (s *SyncData) EveryDaySyncTaskData() {
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+func (s *SyncData) CurrDaySyncTaskData() {
|
|
|
|
|
+ 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
|
|
|
|
|
+ }
|
|
|
|
|
+ date := time.Now()
|
|
|
|
|
+ var gameTargetCompletes []*task.GameTargetComplete
|
|
|
|
|
+ for _, gameTask := range apiList {
|
|
|
|
|
+ if !errors.Is(global.GVA_DB.Where("task_id = ?", gameTask.TaskId).Where("create_date = ?", date).First(&task.GameTargetComplete{}).Error, gorm.ErrRecordNotFound) {
|
|
|
|
|
+ continue
|
|
|
|
|
+ }
|
|
|
|
|
+ gameTargetComplete := s.GameTask.CreateGameTargetCompleteModel(gameTask, date)
|
|
|
|
|
+ gameTargetCompletes = append(gameTargetCompletes, gameTargetComplete)
|
|
|
|
|
+ }
|
|
|
|
|
+ err = global.GVA_DB.Model(&task.GameTargetComplete{}).Omit("update_time", "game_rate", "is_complete").Create(gameTargetCompletes).Error
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ global.GVA_LOG.Error("create GameTargetComplete fail", zap.Error(err))
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ return
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
// 定时同步机房群控、小绵羊数据
|
|
// 定时同步机房群控、小绵羊数据
|
|
|
func (s *SyncData) SyncTaskData() {
|
|
func (s *SyncData) SyncTaskData() {
|
|
|
db := global.GVA_DB.Model(&task.GameTask{})
|
|
db := global.GVA_DB.Model(&task.GameTask{})
|
|
@@ -176,7 +203,10 @@ func (s *SyncData) SyncTaskData() {
|
|
|
// global.GVA_LOG.Error("SyncWslGameData get wsl data fail", zap.Error(err))
|
|
// global.GVA_LOG.Error("SyncWslGameData get wsl data fail", zap.Error(err))
|
|
|
// //return
|
|
// //return
|
|
|
//}
|
|
//}
|
|
|
|
|
+ paymentRatio := make(map[string]string)
|
|
|
for _, gameTask := range apiList {
|
|
for _, gameTask := range apiList {
|
|
|
|
|
+ //var gameTargetComplete task.GameTargetComplete
|
|
|
|
|
+ //global.GVA_DB.Where("task_id = ?", gameTask.TaskId).Where("create_date = ?", date).First(&gameTargetComplete)
|
|
|
var gameTarget task.GameTargetComplete
|
|
var gameTarget task.GameTargetComplete
|
|
|
roomData, _ := s.SyncRoomData(date, gameTask.TaskId)
|
|
roomData, _ := s.SyncRoomData(date, gameTask.TaskId)
|
|
|
|
|
|
|
@@ -200,7 +230,8 @@ func (s *SyncData) SyncTaskData() {
|
|
|
payErrAddNumKey := fmt.Sprintf(PayErrAddNumKey, date, gameTask.TaskId)
|
|
payErrAddNumKey := fmt.Sprintf(PayErrAddNumKey, date, gameTask.TaskId)
|
|
|
diffNum := gameTarget.PayTarget - completeTaskData[gameTask.TaskId].PayTarget
|
|
diffNum := gameTarget.PayTarget - completeTaskData[gameTask.TaskId].PayTarget
|
|
|
s.common.SaveGameAddFee(diffNum, gameTarget.PayTarget, gameTask.TaskName)
|
|
s.common.SaveGameAddFee(diffNum, gameTarget.PayTarget, gameTask.TaskName)
|
|
|
- go s.common.FreeSendMsg(diffNum, gameTarget.PayTarget, gameTask.TaskId, gameTask.TaskName, gameTask.User)
|
|
|
|
|
|
|
+ go s.common.FreeSendMsg(diffNum, gameTarget.PayTarget, gameTask.TaskId, gameTask.TaskName, gameTask.User, gameTarget.PayComplete)
|
|
|
|
|
+ paymentRatio = s.DetectionPaymentRatio(gameTask.TaskName, gameTask.TaskId, gameTask.User, gameTarget.PayTarget, roomData.RetainedTarget, paymentRatio)
|
|
|
// 如果当前付费目标完成,加入一下逻辑
|
|
// 如果当前付费目标完成,加入一下逻辑
|
|
|
if completeTaskData[gameTask.TaskId].PayTarget <= completeTaskData[gameTask.TaskId].PayComplete {
|
|
if completeTaskData[gameTask.TaskId].PayTarget <= completeTaskData[gameTask.TaskId].PayComplete {
|
|
|
lastPayCompletedUpdateTimeKey := fmt.Sprintf(LastPayCompletedUpdateTimeKey, date, gameTask.TaskId)
|
|
lastPayCompletedUpdateTimeKey := fmt.Sprintf(LastPayCompletedUpdateTimeKey, date, gameTask.TaskId)
|
|
@@ -223,7 +254,7 @@ func (s *SyncData) SyncTaskData() {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
gameTarget.GameRate = roomData.GameRate
|
|
gameTarget.GameRate = roomData.GameRate
|
|
|
- if (gameTask.GamePortId == 5 && gameTask.LoginMethod == 2) || gameTask.LoginMethod == 7 {
|
|
|
|
|
|
|
+ if (gameTask.GamePortId == 5 && gameTask.LoginMethod == 2) || gameTask.LoginMethod == 7 || gameTask.LoginMethod == 9 {
|
|
|
// 魅族游戏id处理
|
|
// 魅族游戏id处理
|
|
|
GameId := gameTask.MzGameId + "-" + gameTask.MzChannel
|
|
GameId := gameTask.MzGameId + "-" + gameTask.MzChannel
|
|
|
// 青雀账号游戏id处理
|
|
// 青雀账号游戏id处理
|
|
@@ -232,6 +263,12 @@ func (s *SyncData) SyncTaskData() {
|
|
|
GameId = "rose-" + taskId
|
|
GameId = "rose-" + taskId
|
|
|
gameTarget.PayComplete = roomData.PayComplete
|
|
gameTarget.PayComplete = roomData.PayComplete
|
|
|
}
|
|
}
|
|
|
|
|
+ // 酷云账号游戏id处理
|
|
|
|
|
+ if gameTask.LoginMethod == 9 {
|
|
|
|
|
+ taskId := strconv.Itoa(gameTask.TaskId)
|
|
|
|
|
+ GameId = "coolyun-" + taskId
|
|
|
|
|
+ gameTarget.PayComplete = roomData.PayComplete
|
|
|
|
|
+ }
|
|
|
b, sheepPay := s.SelectSheepPay(date, GameId)
|
|
b, sheepPay := s.SelectSheepPay(date, GameId)
|
|
|
if b {
|
|
if b {
|
|
|
gameTarget.PayTarget = sheepPay.Money
|
|
gameTarget.PayTarget = sheepPay.Money
|
|
@@ -244,7 +281,8 @@ func (s *SyncData) SyncTaskData() {
|
|
|
payErrAddNumKey := fmt.Sprintf(PayErrAddNumKey, date, gameTask.TaskId)
|
|
payErrAddNumKey := fmt.Sprintf(PayErrAddNumKey, date, gameTask.TaskId)
|
|
|
diffNum := gameTarget.PayTarget - completeTaskData[gameTask.TaskId].PayTarget
|
|
diffNum := gameTarget.PayTarget - completeTaskData[gameTask.TaskId].PayTarget
|
|
|
s.common.SaveGameAddFee(diffNum, gameTarget.PayTarget, gameTask.TaskName)
|
|
s.common.SaveGameAddFee(diffNum, gameTarget.PayTarget, gameTask.TaskName)
|
|
|
- go s.common.FreeSendMsg(diffNum, gameTarget.PayTarget, gameTask.TaskId, gameTask.TaskName, gameTask.User)
|
|
|
|
|
|
|
+ go s.common.FreeSendMsg(diffNum, gameTarget.PayTarget, gameTask.TaskId, gameTask.TaskName, gameTask.User, gameTarget.PayComplete)
|
|
|
|
|
+ paymentRatio = s.DetectionPaymentRatio(gameTask.TaskName, gameTask.TaskId, gameTask.User, gameTarget.PayTarget, roomData.RetainedTarget, paymentRatio)
|
|
|
// 如果当前付费目标完成,加入一下逻辑
|
|
// 如果当前付费目标完成,加入一下逻辑
|
|
|
if completeTaskData[gameTask.TaskId].PayTarget <= completeTaskData[gameTask.TaskId].PayComplete {
|
|
if completeTaskData[gameTask.TaskId].PayTarget <= completeTaskData[gameTask.TaskId].PayComplete {
|
|
|
lastPayCompletedUpdateTimeKey := fmt.Sprintf(LastPayCompletedUpdateTimeKey, date, gameTask.TaskId)
|
|
lastPayCompletedUpdateTimeKey := fmt.Sprintf(LastPayCompletedUpdateTimeKey, date, gameTask.TaskId)
|
|
@@ -261,11 +299,37 @@ func (s *SyncData) SyncTaskData() {
|
|
|
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 {
|
|
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
|
|
gameTarget.IsComplete = 1
|
|
|
}
|
|
}
|
|
|
|
|
+ //if completeTaskData[gameTask.TaskId].RetainedTarget == 0 || completeTaskData[gameTask.TaskId].RetainedTarget == 1 {
|
|
|
|
|
+ // gameTarget.RetainedTarget = roomData.RetainedTarget
|
|
|
|
|
+ //}
|
|
|
global.GVA_DB.Model(&task.GameTargetComplete{}).Where("task_id = ?", gameTask.TaskId).Where("create_date = ?", date).Omit("create_date", "update_time", "task_id").Updates(gameTarget)
|
|
global.GVA_DB.Model(&task.GameTargetComplete{}).Where("task_id = ?", gameTask.TaskId).Where("create_date = ?", date).Omit("create_date", "update_time", "task_id").Updates(gameTarget)
|
|
|
}
|
|
}
|
|
|
|
|
+ go s.common.PaymentRatioErrSendMsg(paymentRatio)
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+// 检测付费比例
|
|
|
|
|
+func (s *SyncData) DetectionPaymentRatio(taskName string, taskId int, user string, payTarget, retainedTarget int, paymentRatio map[string]string) map[string]string {
|
|
|
|
|
+ var tConf task.TaskConf
|
|
|
|
|
+ taskConf, err := tConf.GetTaskConfByTaskId(taskId)
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ global.GVA_LOG.Error("DetectionPaymentRatio获取任务配置失败"+user, zap.Error(err))
|
|
|
|
|
+ return paymentRatio
|
|
|
|
|
+ }
|
|
|
|
|
+ if taskConf.PushPayRatio != 1 {
|
|
|
|
|
+ return paymentRatio
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ ratio := float64(payTarget) / float64(retainedTarget) * 100
|
|
|
|
|
+
|
|
|
|
|
+ global.GVA_LOG.Warn(fmt.Sprintf("%s付费率%2f,payTarget%d,retainedTarget%d", taskName, ratio, payTarget, paymentRatio))
|
|
|
|
|
+ if ratio >= 20 {
|
|
|
|
|
+ paymentRatio[user] += fmt.Sprintf("<font color=\"warning\"> %s</font>", taskName)
|
|
|
|
|
+ paymentRatio[user] += "\n"
|
|
|
|
|
+ }
|
|
|
|
|
+ return paymentRatio
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
func (s *SyncData) SelectSheepPay(date string, gameId string) (b bool, sheepPay task.SheepPay) {
|
|
func (s *SyncData) SelectSheepPay(date string, gameId string) (b bool, sheepPay task.SheepPay) {
|
|
|
b = false
|
|
b = false
|
|
|
global.GVA_DB.Model(&task.SheepPay{}).Where("pay_date = ?", date).Where("game_id = ?", gameId).Order("id desc").Find(&sheepPay)
|
|
global.GVA_DB.Model(&task.SheepPay{}).Where("pay_date = ?", date).Where("game_id = ?", gameId).Order("id desc").Find(&sheepPay)
|
|
@@ -1577,3 +1641,29 @@ func (s *SyncData) RemindSendOne() {
|
|
|
mobile := []string{global.GVA_CONFIG.SendUrl.TxSendMobile}
|
|
mobile := []string{global.GVA_CONFIG.SendUrl.TxSendMobile}
|
|
|
s.common.RemindSend(url, content, mobile)
|
|
s.common.RemindSend(url, content, mobile)
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+func (s *SyncData) GameTaskTargetInfoPush() {
|
|
|
|
|
+ date := time.Now().Add(-time.Hour * 24).Format("2006-01-02")
|
|
|
|
|
+ s.GameTask.PushTaskToYl(date)
|
|
|
|
|
+ return
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (s *SyncData) RequestControlBackend(requestData []request2.GetGameTargetCompleteInfo) (d string, err error) {
|
|
|
|
|
+ //url := global.GVA_CONFIG.ExtranetDomain.Control + CreateTaskUrl
|
|
|
|
|
+ url := global.GVA_CONFIG.ExtranetDomain.YlControl + "/bpm_api/data_optimize"
|
|
|
|
|
+ requestMap := map[string]interface{}{
|
|
|
|
|
+ "jsonData": requestData,
|
|
|
|
|
+ }
|
|
|
|
|
+ data, code, err := utils.HttpPostReplyCode2(url, requestMap)
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ global.GVA_LOG.Error("RequestControlBackend fail", zap.Error(err))
|
|
|
|
|
+ }
|
|
|
|
|
+ if code != 200 {
|
|
|
|
|
+ msg := fmt.Sprintf("status:%d,data:%s", code, string(data))
|
|
|
|
|
+ global.GVA_LOG.Warn(msg)
|
|
|
|
|
+ return string(data), errors.New(string(data))
|
|
|
|
|
+ }
|
|
|
|
|
+ msg := fmt.Sprintf("status:%d,data:%s", code, string(data))
|
|
|
|
|
+ global.GVA_LOG.Warn(msg)
|
|
|
|
|
+ return
|
|
|
|
|
+}
|