Bläddra i källkod

任务同步更新

wangbin 3 år sedan
förälder
incheckning
3778acb49f

+ 23 - 24
api/v1/log/loging.go

@@ -12,7 +12,6 @@ import (
 	loging2 "log-server/service/log/loging"
 	"log-server/utils"
 	"strconv"
-	"time"
 )
 
 type ApiLoging struct {
@@ -194,29 +193,29 @@ func (s *ApiLoging) GetStatisticsLogList(c *gin.Context) {
 // @Param data body request.GetById true "根据id重置统计log"
 // @Success 200 {object} response.Response{data=interface{}} "重置统计log"
 // @Router /loging/resetStatisticsLog [post]
-func (s *ApiLoging) ResetStatisticsLog(c *gin.Context) {
-	var paramsInfo request.GetById
-	_ = c.ShouldBindJSON(&paramsInfo)
-	if err := utils.Verify(paramsInfo, utils.IdVerify); err != nil {
-		response.FailWithMessage(err.Error(), c)
-		return
-	}
-	current := time.Now().Format("2006-01-02")
-	key := current + ":" + strconv.Itoa(paramsInfo.ID) + ":reset"
-	i, err := global.GVA_REDIS.Exists(c, key).Result()
-	if err != nil {
-		global.GVA_LOG.Error("重置统计数据检测key失败", zap.Error(err))
-		response.FailWithMessage("重置失败", c)
-		return
-	}
-	if i != 0 {
-		global.GVA_LOG.Info("还在重置中", zap.Error(err))
-		response.FailWithMessage("在重置中", c)
-		return
-	}
-	go ServiceStatisticsLog.ResetStatisticsLog(c, paramsInfo.ID, current)
-	response.OkWithMessage("后台重置中", c)
-}
+//func (s *ApiLoging) ResetStatisticsLog(c *gin.Context) {
+//	var paramsInfo request.GetById
+//	_ = c.ShouldBindJSON(&paramsInfo)
+//	if err := utils.Verify(paramsInfo, utils.IdVerify); err != nil {
+//		response.FailWithMessage(err.Error(), c)
+//		return
+//	}
+//	current := time.Now().Format("2006-01-02")
+//	key := current + ":" + strconv.Itoa(paramsInfo.ID) + ":reset"
+//	i, err := global.GVA_REDIS.Exists(c, key).Result()
+//	if err != nil {
+//		global.GVA_LOG.Error("重置统计数据检测key失败", zap.Error(err))
+//		response.FailWithMessage("重置失败", c)
+//		return
+//	}
+//	if i != 0 {
+//		global.GVA_LOG.Info("还在重置中", zap.Error(err))
+//		response.FailWithMessage("在重置中", c)
+//		return
+//	}
+//	go ServiceStatisticsLog.ResetStatisticsLog(c, paramsInfo.ID, current)
+//	response.OkWithMessage("后台重置中", c)
+//}
 
 // @Tags loging
 // @Summary 获取统计电脑

+ 9 - 11
api/v1/task/game_task.go

@@ -30,10 +30,9 @@ func (s *GameTaskApi) CreateGameTask(c *gin.Context) {
 		response.FailWithMessage(err.Error(), c)
 		return
 	}
-
 	if err := taskService.CreateGameTask(api); err != nil {
 		global.GVA_LOG.Error("创建失败!", zap.Error(err))
-		response.FailWithMessage("创建失败", c)
+		response.FailWithMessage("创建失败 "+err.Error(), c)
 	} else {
 		response.OkWithMessage("创建成功", c)
 	}
@@ -56,7 +55,7 @@ func (s *GameTaskApi) GetGameTaskList(c *gin.Context) {
 	}
 	if list, option, total, err := taskService.GetGameTaskInfoList(paramsInfo.GameTask, paramsInfo.PageInfo, paramsInfo.OrderKey, paramsInfo.Desc); err != nil {
 		global.GVA_LOG.Error("获取失败!", zap.Error(err))
-		response.FailWithMessage("获取失败", c)
+		response.FailWithMessage("获取失败"+err.Error(), c)
 	} else {
 		response.OkWithDetailed(taskResponse.GameTaskPageResult{
 			List:       list,
@@ -86,7 +85,7 @@ func (s *GameTaskApi) GetGameTaskById(c *gin.Context) {
 	api, err := taskService.GetGameTaskById(idInfo.ID)
 	if err != nil {
 		global.GVA_LOG.Error("获取失败!", zap.Error(err))
-		response.FailWithMessage("获取失败", c)
+		response.FailWithMessage("获取失败 "+err.Error(), c)
 	} else {
 		response.OkWithDetailed(api, "获取成功", c)
 	}
@@ -137,7 +136,7 @@ func (s *GameTaskApi) UpdateGameTask(c *gin.Context) {
 
 	if err := taskService.UpdateGameTask(api); err != nil {
 		global.GVA_LOG.Error("更新失败!", zap.Error(err))
-		response.FailWithMessage("更新失败", c)
+		response.FailWithMessage("更新失败 "+err.Error(), c)
 	} else {
 		response.OkWithMessage("更新成功", c)
 	}
@@ -160,7 +159,7 @@ func (s *GameTaskApi) DeleteGameTask(c *gin.Context) {
 	}
 	if err := taskService.DeleteGameTask(api); err != nil {
 		global.GVA_LOG.Error("删除失败!", zap.Error(err))
-		response.FailWithMessage("删除失败", c)
+		response.FailWithMessage("删除失败 "+err.Error(), c)
 	} else {
 		response.OkWithMessage("删除成功", c)
 	}
@@ -183,7 +182,7 @@ func (s *GameTaskApi) GetGameTaskTargetList(c *gin.Context) {
 	}
 	if list, total, err := taskService.GetGameTaskTargetInfoList(paramsInfo.GameTargetCompleteRequest, paramsInfo.PageInfo, paramsInfo.OrderKey, paramsInfo.Desc); err != nil {
 		global.GVA_LOG.Error("获取失败!", zap.Error(err))
-		response.FailWithMessage("获取失败", c)
+		response.FailWithMessage("获取失败 "+err.Error(), c)
 	} else {
 		response.OkWithDetailed(response.PageResult{
 			List:     list,
@@ -217,7 +216,7 @@ func (s *GameTaskApi) GetGameTaskTargetById(c *gin.Context) {
 	api, err := taskService.GetGameTaskTargetById(idInfo.ID, date)
 	if err != nil {
 		global.GVA_LOG.Error("获取失败!", zap.Error(err))
-		response.FailWithMessage("获取失败", c)
+		response.FailWithMessage("获取失败 "+err.Error(), c)
 	} else {
 		response.OkWithDetailed(api, "获取成功", c)
 	}
@@ -238,10 +237,9 @@ func (s *GameTaskApi) UpdateGameTaskTarget(c *gin.Context) {
 		response.FailWithMessage(err.Error(), c)
 		return
 	}
-
 	if err := taskService.UpdateGameTaskTarget(api); err != nil {
 		global.GVA_LOG.Error("更新失败!", zap.Error(err))
-		response.FailWithMessage("更新失败", c)
+		response.FailWithMessage("更新失败 "+err.Error(), c)
 	} else {
 		response.OkWithMessage("更新成功", c)
 	}
@@ -263,7 +261,7 @@ func (s *GameTaskApi) TargetStatistics(c *gin.Context) {
 	}
 	if list, err := taskService.TargetStatistics(date); err != nil {
 		global.GVA_LOG.Error("获取失败!", zap.Error(err))
-		response.FailWithMessage("获取失败", c)
+		response.FailWithMessage("获取失败 "+err.Error(), c)
 	} else {
 		c.JSON(http.StatusOK, response.ControlResult{
 			Data:    list,

+ 1 - 5
initialize/timer.go

@@ -31,10 +31,6 @@ func Timer() {
 		}
 	}
 
-	//_, err := global.GVA_Timer.AddTaskByFunc("everyDayResetStatisticsCache","2 8 3 * * * ", serviceStatisticsLog.EveryDayResetStatisticsCache)
-	//if err != nil {
-	//	fmt.Println("everyDayResetStatisticsCache timer error:", err)
-	//}
 	// 定时更新前一天的统计数据
 	_, err := global.GVA_Timer.AddTaskByFunc("StatisticsLog", "2 8 5 * * * ", serviceStatisticsLog.CreateStatisticsLog)
 	if err != nil {
@@ -76,7 +72,7 @@ func Timer() {
 	//	fmt.Println("add RegularDelCheckData timer error:", err)
 	//}
 	////定时添加任务
-	//_, err = global.GVA_Timer.AddTaskByFunc("EveryDaySyncTaskData", "30 36 11 * * *", syncData.EveryDaySyncTaskData)
+	//_, err = global.GVA_Timer.AddTaskByFunc("EveryDaySyncTaskData", "30 29 10 * * *", syncData.EveryDaySyncTaskData)
 	//if err != nil {
 	//	fmt.Println("add EveryDaySyncTaskData timer error:", err)
 	//}

+ 23 - 19
model/task/control/response.go

@@ -68,23 +68,27 @@ type ResponseTargetInfo struct {
 }
 
 type GetTargetStatisticsReply struct {
-	Id               uint   `json:"id"`
-	TaskId           string `json:"task_id"`
-	TaskName         string `json:"task_name"`
-	User             string `json:"user"`
-	LoginMethod      int    `json:"login_method"`
-	NewComplete      int    `json:"new_complete"`
-	PayComplete      int    `json:"pay_complete"`
-	RetainedComplete int    `json:"retained_complete"`
-	NewTarget        int    `json:"new_target"`
-	PayTarget        int    `json:"pay_target"`
-	RetainedTarget   int    `json:"retained_target"`
-	TxChannel        string `json:"tx_channel"`
-	TxGameId         string `json:"tx_game_id"`
-	MzChannel        string `json:"mz_channel"`
-	MzGameId         string `json:"mz_game_id"`
-	GameIdXmy        string `json:"game_id_xmy"`
-	GamePortId       int    `json:"game_port_id"`
-	GameName         string `json:"game_name"`
-	GameId           string `json:"game_id"`
+	Id                   uint   `json:"id"`
+	TaskId               string `json:"task_id"`
+	TaskName             string `json:"task_name"`
+	User                 string `json:"user"`
+	LoginMethod          int    `json:"login_method"`
+	NewComplete          int    `json:"new_complete"`
+	PayComplete          int    `json:"pay_complete"`
+	RetainedComplete     int    `json:"retained_complete"`
+	NewTarget            int    `json:"new_target"`
+	PayTarget            int    `json:"pay_target"`
+	RetainedTarget       int    `json:"retained_target"`
+	TxChannel            string `json:"tx_channel"`
+	TxGameId             string `json:"tx_game_id"`
+	MzChannel            string `json:"mz_channel"`
+	MzGameId             string `json:"mz_game_id"`
+	GameIdXmy            string `json:"game_id_xmy"`
+	GamePortId           int    `json:"game_port_id"`
+	GameName             string `json:"game_name"`
+	GameId               string `json:"game_id"`
+	HandNewComplete      int    `json:"hand_new_complete"`
+	HandRetainedComplete int    `json:"hand_retained_complete"`
+	HandPayComplete      int    `json:"hand_pay_complete"`
+	HandAmountTotal      int    `json:"hand_amount_total"`
 }

+ 16 - 0
model/task/game_hand_card_log.go

@@ -0,0 +1,16 @@
+package task
+
+import "time"
+
+type GameHandCardLog struct {
+	Id         uint      `json:"id"`
+	TaskId     int       `json:"task_id"`
+	HandId     uint      `json:"hand_id"`
+	CreateTime time.Time `json:"create_time"` // 更新时间
+	Card       string    `json:"card"`
+	Amount     int       `json:"amount"`
+}
+
+func (GameHandCardLog) TableName() string {
+	return "game_hand_card_log"
+}

+ 22 - 0
model/task/game_hand_complete.go

@@ -0,0 +1,22 @@
+package task
+
+import "time"
+
+type GameHandComplete struct {
+	Id                   uint      `json:"id"`
+	TaskId               int       `json:"task_id"`
+	CreateDate           time.Time `json:"create_date"`
+	CreateTime           time.Time `json:"create_time"` // 更新时间
+	HandNewComplete      int       `json:"hand_new_complete"`
+	HandRetainedComplete int       `json:"hand_retained_complete"`
+	HandPayComplete      int       `json:"hand_pay_complete"`
+	HandAmountTotal      int       `json:"hand_amount_total"`
+	IsFree               int       `json:"is_free"`
+	FreeMethod           int       `json:"free_method"`
+	IsUploadWt           int       `json:"is_upload_wt"`
+	IsUploadXjf          int       `json:"is_upload_xjf"`
+}
+
+func (GameHandComplete) TableName() string {
+	return "game_hand_complete"
+}

+ 17 - 13
model/task/game_target_complete.go

@@ -3,19 +3,23 @@ package task
 import "time"
 
 type GameTargetComplete struct {
-	Id               uint      `json:"id"`
-	TaskId           int       `json:"task_id"`
-	NewComplete      int       `json:"new_complete"`
-	PayComplete      int       `json:"pay_complete"`
-	RetainedComplete int       `json:"retained_complete"`
-	NewTarget        int       `json:"new_target"`
-	PayTarget        int       `json:"pay_target"`
-	RetainedTarget   int       `json:"retained_target"`
-	Amount           int       `json:"amount"`
-	CreateDate       time.Time `json:"create_date"`
-	UpdateTime       time.Time `json:"update_time"` // 更新时间
-	GameRate         string    `json:"game_rate"`
-	IsComplete       int       `json:"is_complete"`
+	Id                   uint      `json:"id"`
+	TaskId               int       `json:"task_id"`
+	NewComplete          int       `json:"new_complete"`
+	PayComplete          int       `json:"pay_complete"`
+	RetainedComplete     int       `json:"retained_complete"`
+	NewTarget            int       `json:"new_target"`
+	PayTarget            int       `json:"pay_target"`
+	RetainedTarget       int       `json:"retained_target"`
+	Amount               int       `json:"amount"`
+	CreateDate           time.Time `json:"create_date"`
+	UpdateTime           time.Time `json:"update_time"` // 更新时间
+	GameRate             string    `json:"game_rate"`
+	IsComplete           int       `json:"is_complete"`
+	HandNewComplete      int       `json:"hand_new_complete"`
+	HandRetainedComplete int       `json:"hand_retained_complete"`
+	HandPayComplete      int       `json:"hand_pay_complete"`
+	HandAmountTotal      int       `json:"hand_amount_total"`
 }
 
 func (GameTargetComplete) TableName() string {

+ 19 - 5
model/task/request/game_task.go

@@ -68,9 +68,23 @@ type GetGameTaskTargetByIdRequest struct {
 }
 
 type UpdateGameTaskTargetRequest struct {
-	TaskId         int    `json:"task_id"`
-	NewTarget      int    `json:"new_target"`
-	PayTarget      int    `json:"pay_target"`
-	RetainedTarget int    `json:"retained_target"`
-	CreateDate     string `json:"create_date"`
+	TaskId               int        `json:"task_id"`
+	NewTarget            int        `json:"new_target"`
+	PayTarget            int        `json:"pay_target"`
+	RetainedTarget       int        `json:"retained_target"`
+	CreateDate           string     `json:"create_date"`
+	CardList             []CardInfo `json:"card_list"`
+	HandNewComplete      int        `json:"hand_new_complete"`
+	HandRetainedComplete int        `json:"hand_retained_complete"`
+	HandPayComplete      int        `json:"hand_pay_complete"`
+	HandAmountTotal      int        `json:"hand_amount_total"`
+	IsFree               int        `json:"is_free"`
+	FreeMethod           int        `json:"free_method"`
+	IsUploadWt           int        `json:"is_upload_wt"`
+	IsUploadXjf          int        `json:"is_upload_xjf"`
+}
+
+type CardInfo struct {
+	Card   string `json:"card"`
+	Amount int    `json:"amount"`
 }

+ 20 - 16
model/task/response/game_task.go

@@ -20,20 +20,24 @@ type GetGameTaskListReply struct {
 }
 
 type GetGameTargetComplete struct {
-	Id               uint   `json:"id"`
-	TaskId           int    `json:"task_id"`
-	TaskName         string `json:"task_name"`
-	User             string `json:"user"`
-	LoginMethod      string `json:"login_method"`
-	NewComplete      int    `json:"new_complete"`
-	PayComplete      int    `json:"pay_complete"`
-	RetainedComplete int    `json:"retained_complete"`
-	NewTarget        int    `json:"new_target"`
-	PayTarget        int    `json:"pay_target"`
-	RetainedTarget   int    `json:"retained_target"`
-	Amount           int    `json:"amount"`
-	CreateDate       string `json:"create_date"`
-	UpdateTime       string `json:"update_time"` // 更新时间
-	GameRate         string `json:"game_rate"`
-	IsComplete       int    `json:"is_complete"`
+	Id                   uint   `json:"id"`
+	TaskId               int    `json:"task_id"`
+	TaskName             string `json:"task_name"`
+	User                 string `json:"user"`
+	LoginMethod          string `json:"login_method"`
+	NewComplete          int    `json:"new_complete"`
+	PayComplete          int    `json:"pay_complete"`
+	RetainedComplete     int    `json:"retained_complete"`
+	NewTarget            int    `json:"new_target"`
+	PayTarget            int    `json:"pay_target"`
+	RetainedTarget       int    `json:"retained_target"`
+	Amount               int    `json:"amount"`
+	CreateDate           string `json:"create_date"`
+	UpdateTime           string `json:"update_time"` // 更新时间
+	GameRate             string `json:"game_rate"`
+	IsComplete           int    `json:"is_complete"`
+	HandNewComplete      int    `json:"hand_new_complete"`
+	HandRetainedComplete int    `json:"hand_retained_complete"`
+	HandPayComplete      int    `json:"hand_pay_complete"`
+	HandAmountTotal      int    `json:"hand_amount_total"`
 }

+ 91 - 91
service/log/log_statistics.go

@@ -15,8 +15,8 @@ import (
 	"log-server/model/log/response"
 	loging2 "log-server/service/log/loging"
 	"log-server/utils"
-	"math"
 	"strconv"
+	"strings"
 	"time"
 )
 
@@ -397,97 +397,97 @@ func (s *ServiceStatisticsLog) StatisticsNodeLogList(ctx context.Context, api lo
 	return statisticsLogs, total, err
 }
 
-func (s *ServiceStatisticsLog) ResetStatisticsLog(ctx context.Context, gameId int, date string) {
-	var total int64
-	key := date + ":" + strconv.Itoa(gameId) + ":reset"
-	global.GVA_REDIS.Set(ctx, key, 1, time.Minute*15)
-	db := global.GVA_DB.Table("loging")
-	db = db.Where("game_id = ?", gameId)
-	err := db.Count(&total).Error
-	if err != nil {
-		global.GVA_LOG.Error("重置统计数据总数报错", zap.Error(err))
-		return
-	}
-	limit := 100
-	num := int(math.Ceil(float64(total) / float64(limit)))
-	offset := 0
-	err = s.LogicalLog.DelStatisticsNumCache(ctx, date, gameId)
-	if err != nil {
-		global.GVA_LOG.Error("重置统计数据删除缓存报错", zap.Error(err))
-		return
-	}
-	err = s.LogicalLog.DelUuidCodeCache(ctx, date, gameId)
-	if err != nil {
-		global.GVA_LOG.Error("重置统计数据删除缓存报错2", zap.Error(err))
-		return
-	}
-	global.GVA_LOG.Info("num = " + strconv.Itoa(num))
-	for i := 0; i < num; i++ {
-		global.GVA_LOG.Info("offset = " + strconv.Itoa(offset))
-		var statisticsLogs []request.AddLogRequest
-		db2 := global.GVA_DB.Table("loging")
-		db2 = db2.Where("create_date = ?", date)
-		db2 = db2.Where("game_id = ?", gameId)
-		db2 = db2.Limit(limit).Offset(offset)
-		err = db2.Order("id").Find(&statisticsLogs).Error
-		for _, statisticsLog := range statisticsLogs {
-
-			s.ResetStatisticsCache(ctx, statisticsLog, date)
-		}
-		offset += limit
-	}
-	global.GVA_LOG.Info("重置统计数据完成")
-}
-
-func (s *ServiceStatisticsLog) ResetStatisticsCache(c context.Context, api request.AddLogRequest, date string) {
-	coding := strconv.Itoa(api.Coding)
-	nodeCoding := coding[:3]
-	status := coding[5:]
-	noLogStatus := coding[3:5]
-	var logical ServiceResetLoging
-	switch nodeCoding {
-	case "410":
-		logical = new(loging2.ResetLog)
-		break
-	case "430":
-		logical = new(loging2.ResetLog)
-		break
-	default:
-		logical = new(loging2.ResetOtherLog)
-		break
-	}
-	var err error
-	if status == "99" {
-		err = logical.SuccessLog(c, api, date)
-	} else if noLogStatus == "99" {
-		err = logical.NoLogStatusData(c, api, date)
-	} else {
-		err = logical.FailLog(c, api, date)
-	}
-	if err != nil {
-		global.GVA_LOG.Error("创建失败!", zap.Error(err))
-	}
-}
+//func (s *ServiceStatisticsLog) ResetStatisticsLog(ctx context.Context, gameId int, date string) {
+//	var total int64
+//	key := date + ":" + strconv.Itoa(gameId) + ":reset"
+//	global.GVA_REDIS.Set(ctx, key, 1, time.Minute*15)
+//	db := global.GVA_DB.Table("loging")
+//	db = db.Where("game_id = ?", gameId)
+//	err := db.Count(&total).Error
+//	if err != nil {
+//		global.GVA_LOG.Error("重置统计数据总数报错", zap.Error(err))
+//		return
+//	}
+//	limit := 100
+//	num := int(math.Ceil(float64(total) / float64(limit)))
+//	offset := 0
+//	err = s.LogicalLog.DelStatisticsNumCache(ctx, date, gameId)
+//	if err != nil {
+//		global.GVA_LOG.Error("重置统计数据删除缓存报错", zap.Error(err))
+//		return
+//	}
+//	err = s.LogicalLog.DelUuidCodeCache(ctx, date, gameId)
+//	if err != nil {
+//		global.GVA_LOG.Error("重置统计数据删除缓存报错2", zap.Error(err))
+//		return
+//	}
+//	global.GVA_LOG.Info("num = " + strconv.Itoa(num))
+//	for i := 0; i < num; i++ {
+//		global.GVA_LOG.Info("offset = " + strconv.Itoa(offset))
+//		var statisticsLogs []request.AddLogRequest
+//		db2 := global.GVA_DB.Table("loging")
+//		db2 = db2.Where("create_date = ?", date)
+//		db2 = db2.Where("game_id = ?", gameId)
+//		db2 = db2.Limit(limit).Offset(offset)
+//		err = db2.Order("id").Find(&statisticsLogs).Error
+//		for _, statisticsLog := range statisticsLogs {
+//
+//			s.ResetStatisticsCache(ctx, statisticsLog, date)
+//		}
+//		offset += limit
+//	}
+//	global.GVA_LOG.Info("重置统计数据完成")
+//}
+//
+//func (s *ServiceStatisticsLog) ResetStatisticsCache(c context.Context, api request.AddLogRequest, date string) {
+//	coding := strconv.Itoa(api.Coding)
+//	nodeCoding := coding[:3]
+//	status := coding[5:]
+//	noLogStatus := coding[3:5]
+//	var logical ServiceResetLoging
+//	switch nodeCoding {
+//	case "410":
+//		logical = new(loging2.ResetLog)
+//		break
+//	case "430":
+//		logical = new(loging2.ResetLog)
+//		break
+//	default:
+//		logical = new(loging2.ResetOtherLog)
+//		break
+//	}
+//	var err error
+//	if status == "99" {
+//		err = logical.SuccessLog(c, api, date)
+//	} else if noLogStatus == "99" {
+//		err = logical.NoLogStatusData(c, api, date)
+//	} else {
+//		err = logical.FailLog(c, api, date)
+//	}
+//	if err != nil {
+//		global.GVA_LOG.Error("创建失败!", zap.Error(err))
+//	}
+//}
 
 // 每天凌晨reset统计数据
-func (s *ServiceStatisticsLog) EveryDayResetStatisticsCache() {
-	date := s.YesterdayDate()
-	ctx := context.Background()
-	gameMps, err := s.LogicalLog.GetGameCache(ctx, date)
-	if err != nil {
-		global.GVA_LOG.Error("获取redis game list失败!", zap.Error(err))
-		return
-	}
-	if len(gameMps) == 0 {
-		global.GVA_LOG.Info("获取redis game list没有数据!")
-		return
-	}
-	for gameId, _ := range gameMps {
-		id, _ := strconv.Atoi(gameId)
-		s.ResetStatisticsLog(ctx, id, date)
-	}
-	global.GVA_LOG.Info("游戏重置缓存完成!")
-}
+//func (s *ServiceStatisticsLog) EveryDayResetStatisticsCache() {
+//	date := s.YesterdayDate()
+//	ctx := context.Background()
+//	gameMps, err := s.LogicalLog.GetGameCache(ctx, date)
+//	if err != nil {
+//		global.GVA_LOG.Error("获取redis game list失败!", zap.Error(err))
+//		return
+//	}
+//	if len(gameMps) == 0 {
+//		global.GVA_LOG.Info("获取redis game list没有数据!")
+//		return
+//	}
+//	for gameId, _ := range gameMps {
+//		id, _ := strconv.Atoi(gameId)
+//		s.ResetStatisticsLog(ctx, id, date)
+//	}
+//	global.GVA_LOG.Info("游戏重置缓存完成!")
+//}
 
 // 添加和更新电脑指标数据
 func (s *ServiceStatisticsLog) CreateComputerStatisticsData() {
@@ -1029,7 +1029,7 @@ func (s *ServiceStatisticsLog) RegularCheckPc() {
 	var noReportingPc []string
 	for pc, name := range computers {
 		computersF[pc] = name
-		if name == "备用" {
+		if strings.Contains(name, "备用") {
 			delete(computers, pc)
 			continue
 		}

+ 153 - 15
service/task/game_task.go

@@ -378,7 +378,7 @@ func (s *GameTask) UpdateGameTaskStatus(c request.UpdateGameTaskStatusRequest) (
 				global.GVA_LOG.Info("当天的任务目标已存在")
 			} else {
 				targetComplete := s.CreateGameTargetCompleteModel(oldA, date)
-				err := tx.Omit("update_time").Create(&targetComplete).Error
+				err := tx.Omit("update_time,is_complete,hand_new_complete,hand_retained_complete,hand_pay_complete,hand_amount_total").Create(&targetComplete).Error
 				if err != nil {
 					global.GVA_LOG.Error("创建任务目标数据失败", zap.Error(err))
 					return err
@@ -463,14 +463,14 @@ func (s *GameTask) DeleteGameTask(api request.GameTaskRequest) (err error) {
 	gameTask := new(task.GameTask)
 	global.GVA_DB.Where("task_id = ?", api.TaskId).First(&gameTask)
 	controlTaskId := gameTask.ControlTaskId
-	update := map[string]interface{}{
-		"is_del":      1,
-		"status":      -1,
-		"stop_time":   time.Now(),
-		"delete_time": time.Now(),
-	}
+	//update := map[string]interface{}{
+	//	"is_del":      1,
+	//	"status":      -1,
+	//	"stop_time":   time.Now(),
+	//	"delete_time": time.Now(),
+	//}
 	err = global.GVA_DB.Transaction(func(tx *gorm.DB) error {
-		err := tx.Table("game_task").Where("task_id", api.TaskId).Updates(update).Error
+		err := tx.Where("task_id", api.TaskId).Delete(&task.GameTask{}).Error
 		if err != nil {
 			return err
 		}
@@ -492,7 +492,8 @@ 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,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.hand_new_complete," +
+		"gtc.hand_retained_complete,gtc.hand_pay_complete,gtc.hand_amount_total")
 	db = db.Joins("left join game_task gt on gt.task_id = gtc.task_id")
 	db = db.Where("gtc.create_date = ?", api.CreateDate)
 	var apiList []response.GetGameTargetComplete
@@ -540,11 +541,72 @@ func (apiService *GameTask) GetGameTaskTargetInfoList(api request.GameTargetComp
 			loginMethod, _ := strconv.Atoi(api.LoginMethod)
 			apiList[i].LoginMethod = LoginMethod[loginMethod]
 			apiList[i].CreateDate = date[0]
+			apiList[i].RetainedComplete = api.RetainedComplete + api.HandRetainedComplete + api.HandNewComplete
+			apiList[i].PayComplete = api.PayComplete + api.HandPayComplete
+			apiList[i].NewComplete = api.NewComplete + api.HandNewComplete
+			apiList[i].Amount = api.Amount + api.HandAmountTotal
 		}
 	}
 	return apiList, total, err
 }
 
+func (s *GameTask) FreeUploadWt(gameId, channelId string, date string, money int, path string) (err error) {
+	url := "https://sy.nkfzs.com/v2/data_collect/" + path
+	requestData := map[string]string{
+		"channel_id": channelId,
+		"game_id":    gameId,
+		"type":       "3",
+		"account":    "hand_" + date,
+		"money":      strconv.Itoa(money),
+	}
+	data, code, err := utils.HttpGetReplyCode(url, requestData)
+	if err != nil {
+		return err
+	}
+	fmt.Println(code)
+	if code != 200 {
+		return errors.New(string(data))
+	}
+	return
+}
+
+func (s *GameTask) FreeUploadXjf(gameId, action, account, actionResult, actionState string) (err error) {
+	url := global.GVA_CONFIG.ExtranetDomain.Control + "/v1/device/setAccountLog"
+	requestData := map[string]string{
+		"action":        action,
+		"game_id":       gameId,
+		"action_result": actionResult,
+		"account":       account,
+		"actionState":   actionState,
+	}
+	data, code, err := utils.HttpGetReplyCode(url, requestData)
+	if err != nil {
+		return err
+	}
+	fmt.Println(code)
+	if code != 200 {
+		return errors.New(string(data))
+	}
+	return
+}
+
+func (s *GameTask) QQCardUsedLogUploadXjf(gameId int, account string, money int) (err error) {
+	url := global.GVA_CONFIG.ExtranetDomain.Control + "/v1/device/qq_card_hand"
+	requestData := map[string]string{
+		"game_id":     strconv.Itoa(gameId),
+		"card_number": account,
+		"money":       strconv.Itoa(money),
+	}
+	data, code, err := utils.HttpGetReplyCode(url, requestData)
+	if err != nil {
+		return err
+	}
+	if code != 200 {
+		return errors.New(string(data))
+	}
+	return
+}
+
 //@function: GetGameTaskTargetById
 //@description: 根据id获取GameTargetComplete
 //@param: id uint
@@ -567,19 +629,94 @@ func (s *GameTask) UpdateGameTaskTarget(requestData request.UpdateGameTaskTarget
 	}
 	gameTask := new(task.GameTargetComplete)
 	global.GVA_DB.Where("task_id = ?", requestData.TaskId).Where("create_date = ?", requestData.CreateDate).First(&gameTask)
+	var taskData task.GameTask
+	err = global.GVA_DB.Where("task_id = ?", requestData.TaskId).First(&taskData).Error
+	if err != nil {
+		return
+	}
 	//if gameTask.NewTarget > requestData.NewTarget && gameTask.RetainedTarget > requestData.RetainedTarget {
 	//	return errors.New("任务目标不能小于当前目标")
 	//}
 	updateData := map[string]interface{}{
-		"new_target":      requestData.NewTarget,
-		"retained_target": requestData.RetainedTarget,
+		"new_target":             requestData.NewTarget,
+		"pay_complete":           requestData.PayTarget,
+		"retained_target":        requestData.RetainedTarget,
+		"hand_new_complete":      requestData.HandNewComplete + gameTask.HandNewComplete,
+		"hand_retained_complete": requestData.HandRetainedComplete + gameTask.HandRetainedComplete,
+		"hand_pay_complete":      requestData.HandPayComplete + gameTask.HandPayComplete,
+		"hand_amount_total":      requestData.HandAmountTotal + gameTask.HandAmountTotal,
 	}
 	err = global.GVA_DB.Transaction(func(tx *gorm.DB) error {
+		if requestData.IsFree == 1 {
+			handComplete := new(task.GameHandComplete)
+			handComplete.TaskId = requestData.TaskId
+			handComplete.IsFree = requestData.IsFree
+			handComplete.HandAmountTotal = requestData.HandAmountTotal
+			handComplete.HandPayComplete = requestData.HandPayComplete
+			handComplete.HandRetainedComplete = requestData.HandRetainedComplete
+			handComplete.HandNewComplete = requestData.HandNewComplete
+			handComplete.FreeMethod = requestData.FreeMethod
+			handComplete.CreateDate = gameTask.CreateDate
+			handComplete.IsUploadWt = requestData.IsUploadWt
+			handComplete.IsUploadXjf = requestData.IsUploadXjf
+			err := tx.Omit("create_time").Create(&handComplete).Error
+			if err != nil {
+				return err
+			}
+			if len(requestData.CardList) > 0 {
+				var cards []task.GameHandCardLog
+				for _, card := range requestData.CardList {
+					var handCardLog task.GameHandCardLog
+					handCardLog.TaskId = requestData.TaskId
+					handCardLog.Card = card.Card
+					handCardLog.Amount = card.Amount
+					handCardLog.HandId = handComplete.Id
+					cards = append(cards, handCardLog)
+				}
+				err := tx.Omit("create_time").Create(&cards).Error
+				if err != nil {
+					return err
+				}
+			}
+		}
 		err = tx.Model(&task.GameTargetComplete{}).Where("task_id = ?", requestData.TaskId).Where("create_date = ?", requestData.CreateDate).Updates(updateData).Error
 		if err != nil {
 			global.GVA_LOG.Error("更新任务数据失败: ", zap.Error(err))
 			return err
 		}
+		if requestData.IsUploadXjf == 1 || requestData.IsUploadWt == 1 {
+			if requestData.HandAmountTotal <= 0 {
+				return err
+			}
+			createDate := gameTask.CreateDate.Format("2006-01-02")
+			if requestData.IsUploadWt == 1 {
+				if taskData.GamePortId == 5 {
+					err = s.FreeUploadWt(taskData.MzGameId, taskData.MzChannel, createDate, requestData.HandAmountTotal, "game_task_report_meizu")
+				} else if taskData.GamePortId == 1 {
+					err = s.FreeUploadWt(taskData.TxGameId, taskData.TxChannel, createDate, requestData.HandAmountTotal, "game_task_report")
+				}
+				if err != nil {
+					global.GVA_LOG.Error("上传wt财务数据失败gameId = "+taskData.TxGameId+"date = "+createDate, zap.Error(err))
+				}
+			}
+			if requestData.IsUploadXjf == 1 {
+				for i := 0; i < requestData.HandPayComplete; i++ {
+					account := "hand_" + strconv.Itoa(i) + "_" + createDate
+					err = s.FreeUploadXjf(strconv.Itoa(taskData.TaskId), "付费充值", account, "付费成功", "")
+					if err != nil {
+						global.GVA_LOG.Error("上传xjf数据失败taskId = "+strconv.Itoa(taskData.TaskId)+"date = "+createDate, zap.Error(err))
+					}
+				}
+				if requestData.FreeMethod == 1 && len(requestData.CardList) > 0 {
+					for _, card := range requestData.CardList {
+						err = s.QQCardUsedLogUploadXjf(taskData.TaskId, card.Card, card.Amount)
+						if err != nil {
+							global.GVA_LOG.Error("上传qq卡数据失败taskId = "+strconv.Itoa(taskData.TaskId)+"date = "+createDate, zap.Error(err))
+						}
+					}
+				}
+			}
+		}
 		return err
 	})
 	return
@@ -589,7 +726,8 @@ func (s *GameTask) TargetStatistics(date string) (apiList []control.TargetStatis
 	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,gt.tx_channel,gt.tx_game_id,gt.mz_channel," +
-		"gt.game_id_xmy,gt.mz_game_id,gt.game_port_id,gt.game_id,gt.game_name")
+		"gt.game_id_xmy,gt.mz_game_id,gt.game_port_id,gt.game_id,gt.game_name," +
+		"gtc.hand_new_complete,gtc.hand_retained_complete,gtc.hand_pay_complete,gtc.hand_amount_total")
 	db = db.Joins("left join game_task gt on gt.task_id = gtc.task_id")
 	db = db.Where("gt.is_del = ?", -1)
 	db = db.Where("gt.status = ?", 1)
@@ -605,9 +743,9 @@ func (s *GameTask) TargetStatistics(date string) (apiList []control.TargetStatis
 			targetStatistics.TargetActive = target.RetainedTarget
 			targetStatistics.TargetPay = target.PayTarget
 			targetStatistics.TargetNew = target.NewTarget
-			targetStatistics.CompleteNew = target.NewComplete
-			targetStatistics.CompleteActive = target.RetainedComplete
-			targetStatistics.CompletePay = target.PayComplete
+			targetStatistics.CompleteNew = target.NewComplete + target.HandNewComplete
+			targetStatistics.CompleteActive = target.RetainedComplete + target.HandRetainedComplete
+			targetStatistics.CompletePay = target.PayComplete + target.HandPayComplete
 			targetStatistics.XmyId = target.GameIdXmy
 			targetStatistics.QqId = target.TxGameId
 			targetStatistics.QqChannel = target.TxChannel

+ 5 - 1
service/task/sync_data.go

@@ -144,6 +144,10 @@ func (s *SyncData) SyncTaskData() {
 		global.GVA_LOG.Error("EveryDaySyncTaskData fail", zap.Error(err))
 		return
 	}
+	if len(apiList) == 0 {
+		global.GVA_LOG.Info("没有任务数据")
+		return
+	}
 	date := time.Now().Format("2006-01-02")
 	xmyGameData, err := s.SyncXmyGameData(date)
 	if err != nil {
@@ -192,7 +196,7 @@ func (s *SyncData) SyncTaskData() {
 			}
 		}
 		gameTarget.IsComplete = -1
-		if gameTarget.RetainedComplete >= completeTaskData[gameTask.TaskId].RetainedTarget && gameTarget.PayComplete >= completeTaskData[gameTask.TaskId].PayTarget && gameTarget.NewComplete >= completeTaskData[gameTask.TaskId].NewTarget {
+		if gameTarget.RetainedComplete+completeTaskData[gameTask.TaskId].HandRetainedComplete >= completeTaskData[gameTask.TaskId].RetainedTarget && gameTarget.PayComplete+completeTaskData[gameTask.TaskId].HandPayComplete >= 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)