Kaynağa Gözat

消息推送更新

wangbin 3 yıl önce
ebeveyn
işleme
c4772dbb57

+ 9 - 0
model/task/task_conf.go

@@ -1,5 +1,9 @@
 package task
 
+import (
+	"log-server/global"
+)
+
 type TaskConf struct {
 	Id           int    `json:"id"`
 	TaskId       int    `json:"task_id"`
@@ -10,3 +14,8 @@ type TaskConf struct {
 func (TaskConf) TableName() string {
 	return "task_conf"
 }
+
+func (m *TaskConf) GetTaskConfByTaskId(taskId int) (taskConf TaskConf, err error) {
+	err = global.GVA_DB.Table("task_conf").Where("task_id = ?", taskId).Find(&taskConf).Error
+	return
+}

+ 54 - 0
service/task/common.go

@@ -1,13 +1,18 @@
 package task
 
 import (
+	"fmt"
+	"go.uber.org/zap"
 	"log-server/global"
 	"log-server/model/task"
+	"log-server/model/typeManage"
 	"log-server/utils"
 	"time"
 )
 
 type Common struct {
+	Person typeManage.ResponsiblePerson
+	TConf  task.TaskConf
 }
 
 type SendMsg struct {
@@ -24,6 +29,22 @@ type SendTextMsg struct {
 	} `json:"text"`
 }
 
+type SendTextContent struct {
+	MsgType string `json:"msgtype"`
+	Text    struct {
+		Content             string   `json:"content"`
+		MentionedMobileList []string `json:"mentioned_mobile_list"`
+	} `json:"text"`
+}
+
+func (s *Common) RemindSend(url, content string, mobile []string) {
+	var sendTextData SendTextContent
+	sendTextData.MsgType = "text"
+	sendTextData.Text.MentionedMobileList = mobile
+	sendTextData.Text.Content = content
+	s.SendMsgData(url, sendTextData)
+}
+
 func (s *Common) SendMsgData(url string, params interface{}) {
 	_, _ = utils.HttpPost(url, params)
 	return
@@ -38,3 +59,36 @@ func (s *Common) SaveGameAddFee(num, target int, taskName string) {
 	global.GVA_DB.Omit("create_time").Create(&fee)
 	return
 }
+
+// 加付费通知
+func (s *Common) FreeSendMsg(num, target, taskId int, taskName, director string) {
+	taskConf, err := s.TConf.GetTaskConfByTaskId(taskId)
+	if err != nil {
+		global.GVA_LOG.Error("FreeSendMsg获取任务配置失败"+director, zap.Error(err))
+		return
+	}
+	if taskConf.AddFeeNotice == 0 {
+		taskConf.AddFeeNotice = 10
+	}
+	hour := time.Now().Hour()
+	if hour < 8 || num < taskConf.AddFeeNotice {
+		return
+	}
+	person, err := s.Person.GetUserInfoByName(director)
+	if err != nil {
+		global.GVA_LOG.Error("FreeSendMsg获取用户数据失败"+director, zap.Error(err))
+	}
+	if person.PushStatus != 1 {
+		return
+	}
+	personMsg := "# 加付费"
+	personMsg += fmt.Sprintf("<font color=\"warning\">%s</font>", time.Now().Format("2006-01-02 15:04:05"))
+	personMsg += "\n"
+	personMsg += taskName
+	personMsg += fmt.Sprintf("<font color=\"warning\"> 加付费 %d, 当前付费目标 %d</font>", num, target)
+	url := person.Url
+	var sendData SendMsg
+	sendData.MsgType = "markdown"
+	sendData.Markdown.Content = personMsg
+	s.SendMsgData(url, sendData)
+}

+ 7 - 3
service/task/game_task.go

@@ -621,7 +621,7 @@ func (apiService *GameTask) GetGameTaskTargetInfoList(api request.GameTargetComp
 	db := global.GVA_DB.Table("game_target_complete gtc")
 	db = db.Select("gtc.id,gtc.task_id,gt.task_name,gt.game_id_xmy,gtc.new_target,gt.login_method,gt.user,gtc.pay_target,gtc.retained_target," +
 		"gtc.new_complete,gtc.pay_complete,gtc.retained_complete,gtc.create_date,gtc.amount,gtc.game_rate,gtc.is_complete,gtc.hand_new_complete," +
-		"gtc.hand_retained_complete,gtc.hand_pay_complete,gtc.hand_amount_total")
+		"gtc.hand_retained_complete,gtc.hand_pay_complete,gtc.hand_amount_total,gtc.aupr, gtc.total_amount")
 	db = db.Joins("left join game_task gt on gt.task_id = gtc.task_id")
 	//db = db.Where("gtc.create_date = ?", api.CreateDate)
 	db = db.Where("create_date >= ? and create_date <= ?", startDate, endDate)
@@ -750,7 +750,7 @@ func (s *GameTask) QQCardUsedLogUploadXjf(gameId int, account string, money int)
 func (c *GameTask) GetGameTaskTargetById(id int, date string) (api response.GetGameTargetComplete, err error) {
 	db := global.GVA_DB.Table("game_target_complete gtc")
 	db = db.Select("gtc.task_id,gt.task_name,gtc.new_target,gt.login_method,gt.user,gtc.pay_target,gtc.retained_target," +
-		"gtc.new_complete,gtc.pay_complete,gtc.retained_complete,gtc.create_date,gtc.amount,gtc.game_rate,gtc.is_complete")
+		"gtc.new_complete,gtc.pay_complete,gtc.retained_complete,gtc.create_date,gtc.amount,gtc.game_rate,gtc.is_complete,gtc.aupr,gtc.total_amount")
 	db = db.Joins("left join game_task gt on gt.task_id = gtc.task_id")
 	db = db.Where("gtc.task_id = ?", id)
 	db = db.Where("gtc.create_date = ?", date)
@@ -781,6 +781,8 @@ func (s *GameTask) UpdateGameTaskTarget(requestData request.UpdateGameTaskTarget
 		"hand_retained_complete": requestData.HandRetainedComplete + gameTask.HandRetainedComplete,
 		"hand_pay_complete":      requestData.HandPayComplete + gameTask.HandPayComplete,
 		"hand_amount_total":      requestData.HandAmountTotal + gameTask.HandAmountTotal,
+		"aupr":                   requestData.Aupr,
+		"total_amount":           requestData.TotalAmount,
 	}
 	date := time.Now().Format("2006-01-02")
 	err = global.GVA_DB.Transaction(func(tx *gorm.DB) error {
@@ -875,12 +877,14 @@ func (s *GameTask) UpdateGameTaskTarget(requestData request.UpdateGameTaskTarget
 				n, _ := s.cache.GetCacheNum(context.Background(), payErrAddNumKey)
 				_ = s.cache.SetCacheStr(context.Background(), payErrAddNumKey, requestData.PayTarget-gameTask.PayTarget+n)
 			}
+			go s.common.FreeSendMsg(requestData.PayTarget-gameTask.PayTarget, requestData.PayTarget, taskData.TaskId, taskData.TaskName, taskData.User)
 			msg := "# 监控报警 " + time.Now().Format("2006-01-02 15:04:05")
 			msg += "\n"
 			msg += "**" + taskData.User + "**"
 			msg += "\n"
 			msg += taskData.TaskName + ", 付费目标改为" + strconv.Itoa(requestData.PayTarget)
-			url := "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=5ccfb180-c062-48b5-ae18-0c96f7c19f0b"
+			//url := "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=5ccfb180-c062-48b5-ae18-0c96f7c19f0b"
+			url := global.GVA_CONFIG.SendUrl.SendUrlOne
 			var sendData SendMsg
 			sendData.MsgType = "markdown"
 			sendData.Markdown.Content = msg

+ 80 - 23
service/task/sync_data.go

@@ -17,6 +17,7 @@ import (
 	"log-server/service/cache"
 	"log-server/utils"
 	"strconv"
+	"strings"
 	"time"
 )
 
@@ -199,7 +200,7 @@ func (s *SyncData) SyncTaskData() {
 					payErrAddNumKey := fmt.Sprintf(PayErrAddNumKey, date, gameTask.TaskId)
 					diffNum := gameTarget.PayTarget - completeTaskData[gameTask.TaskId].PayTarget
 					s.common.SaveGameAddFee(diffNum, gameTarget.PayTarget, gameTask.TaskName)
-					go s.FreeSendMsg(diffNum, gameTarget.PayTarget, gameTask.TaskName, gameTask.User)
+					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)
@@ -235,7 +236,7 @@ func (s *SyncData) SyncTaskData() {
 					payErrAddNumKey := fmt.Sprintf(PayErrAddNumKey, date, gameTask.TaskId)
 					diffNum := gameTarget.PayTarget - completeTaskData[gameTask.TaskId].PayTarget
 					s.common.SaveGameAddFee(diffNum, gameTarget.PayTarget, gameTask.TaskName)
-					go s.FreeSendMsg(diffNum, gameTarget.PayTarget, gameTask.TaskName, gameTask.User)
+					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)
@@ -1357,27 +1358,83 @@ func (s *SyncData) TaskMsgSendFreeDataUpdate(ctx context.Context, completesInfo
 	return
 }
 
-// 加付费通知
-func (s *SyncData) FreeSendMsg(num, target int, taskName, director string) {
-	hour := time.Now().Hour()
-	if hour < 8 || num < 20 {
-		return
-	}
-	person, err := s.Person.GetUserInfoByName(director)
+// 加付费通知 common
+//func (s *SyncData) FreeSendMsg(num, target int, taskName, director string) {
+//	hour := time.Now().Hour()
+//	if hour < 8 || num < 20 {
+//		return
+//	}
+//	person, err := s.Person.GetUserInfoByName(director)
+//	if err != nil {
+//		global.GVA_LOG.Error("FreeSendMsg获取用户数据失败"+director, zap.Error(err))
+//	}
+//	if person.PushStatus != 1 {
+//		return
+//	}
+//	personMsg := "# 加付费"
+//	personMsg += fmt.Sprintf("<font color=\"warning\">%s</font>", time.Now().Format("2006-01-02 15:04:05"))
+//	personMsg += "\n"
+//	personMsg += taskName
+//	personMsg += fmt.Sprintf("<font color=\"warning\"> 加付费 %d, 当前付费目标 %d</font>", num, target)
+//	url := person.Url
+//	var sendData SendMsg
+//	sendData.MsgType = "markdown"
+//	sendData.Markdown.Content = personMsg
+//	s.SendMsgData(url, sendData)
+//}
+
+type TaskIdXmy struct {
+	TaskId    int    `json:"task_id"`
+	GameIdXmy string `json:"game_id_xmy"`
+}
+
+func (s *SyncData) getTaskData() []TaskIdXmy {
+	db := global.GVA_DB.Table("game_task").Where("status=?", 1)
+	var count int64
+	db.Count(&count)
+	var data = make([]TaskIdXmy, count)
+	db.Find(&data)
+	return data
+}
+
+type ArpuInfo struct {
+	Arpu        string `json:"arpu"`
+	GameId      string `json:"game_id"`
+	GameName    string `json:"game_name"`
+	SheepGameId string `json:"sheep_game_id"`
+}
+
+func (s *SyncData) SyncArpu() {
+	url := global.GVA_CONFIG.SendUrl.GetUrlArpu
+	jfparams := map[string]string{}
+	jfbyteData, err := utils.HttpGet(url, jfparams)
 	if err != nil {
-		global.GVA_LOG.Error("FreeSendMsg获取用户数据失败"+director, zap.Error(err))
-	}
-	if person.PushStatus != 1 {
-		return
+		global.GVA_LOG.Error("SyncArpu获取arpu值失败", zap.Error(err))
+	}
+	var arpuInfo []ArpuInfo
+	_ = json.Unmarshal(jfbyteData, &arpuInfo)
+	mps := make(map[string]int, len(arpuInfo))
+	for _, data := range arpuInfo {
+		s := strings.Split(data.Arpu, ".")
+		arpu, _ := strconv.Atoi(s[0])
+		mps[data.SheepGameId] = arpu
+	}
+	data := s.getTaskData()
+	for _, taskInfo := range data {
+		if taskInfo.GameIdXmy != "" {
+			if _, ok := mps[taskInfo.GameIdXmy]; ok {
+				err := global.GVA_DB.Table("game_target_complete").Where("task_id = ?", taskInfo.TaskId).Where("create_date = ?", time.Now().Format("2006-01-02")).Update("aupr", mps[taskInfo.GameIdXmy]).Error
+				if err != nil {
+					global.GVA_LOG.Error("SyncArpu更新game_target_complete失败", zap.Error(err))
+				}
+			}
+		}
 	}
-	personMsg := "# 加付费"
-	personMsg += fmt.Sprintf("<font color=\"warning\">%s</font>", time.Now().Format("2006-01-02 15:04:05"))
-	personMsg += "\n"
-	personMsg += taskName
-	personMsg += fmt.Sprintf("<font color=\"warning\"> 加付费 %d, 当前付费目标 %d</font>", num, target)
-	url := person.Url
-	var sendData SendMsg
-	sendData.MsgType = "markdown"
-	sendData.Markdown.Content = personMsg
-	s.SendMsgData(url, sendData)
+}
+
+func (s *SyncData) RemindSendOne() {
+	url := "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=89460a48-e1a1-4181-86c0-533bad342628"
+	content := "请修改腾讯付费目标"
+	mobile := []string{"18874128185"}
+	s.common.RemindSend(url, content, mobile)
 }