|
@@ -125,9 +125,12 @@ func (s *GameTask) CreateGameTargetCompleteModel(oldA task.GameTask, date time.T
|
|
|
retainedTargetRate := rand.Float64()
|
|
retainedTargetRate := rand.Float64()
|
|
|
if oldA.RetainedTarget < 100 {
|
|
if oldA.RetainedTarget < 100 {
|
|
|
retainedTarget = oldA.RetainedTarget
|
|
retainedTarget = oldA.RetainedTarget
|
|
|
|
|
+ } else if oldA.RetainedTarget > 1000 {
|
|
|
|
|
+ retainedTarget = 1000
|
|
|
} else {
|
|
} else {
|
|
|
retainedTarget = 200
|
|
retainedTarget = 200
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
targetComplete := new(task.GameTargetComplete)
|
|
targetComplete := new(task.GameTargetComplete)
|
|
|
targetComplete.TaskId = oldA.TaskId
|
|
targetComplete.TaskId = oldA.TaskId
|
|
|
targetComplete.NewTarget = oldA.NewTarget + int(math.Ceil(newTargetRate*float64(newTarget)))
|
|
targetComplete.NewTarget = oldA.NewTarget + int(math.Ceil(newTargetRate*float64(newTarget)))
|
|
@@ -135,6 +138,9 @@ func (s *GameTask) CreateGameTargetCompleteModel(oldA task.GameTask, date time.T
|
|
|
targetComplete.NewTarget = 0
|
|
targetComplete.NewTarget = 0
|
|
|
}
|
|
}
|
|
|
targetComplete.RetainedTarget = oldA.RetainedTarget + int(math.Ceil(retainedTargetRate*float64(retainedTarget)))
|
|
targetComplete.RetainedTarget = oldA.RetainedTarget + int(math.Ceil(retainedTargetRate*float64(retainedTarget)))
|
|
|
|
|
+ if oldA.RetainedTarget == 1 {
|
|
|
|
|
+ targetComplete.RetainedTarget = 1
|
|
|
|
|
+ }
|
|
|
targetComplete.PayTarget = 0
|
|
targetComplete.PayTarget = 0
|
|
|
targetComplete.CreateDate = date
|
|
targetComplete.CreateDate = date
|
|
|
targetComplete.RetainedComplete = 0
|
|
targetComplete.RetainedComplete = 0
|
|
@@ -372,6 +378,8 @@ func (s *GameTask) UpdateGameTaskStatus(c request.UpdateGameTaskStatusRequest) (
|
|
|
if c.Status == -1 {
|
|
if c.Status == -1 {
|
|
|
status = 0
|
|
status = 0
|
|
|
update["stop_time"] = time.Now().Format("2006-01-02 15:04:05")
|
|
update["stop_time"] = time.Now().Format("2006-01-02 15:04:05")
|
|
|
|
|
+ date := time.Now().Add(+time.Hour * 24)
|
|
|
|
|
+ tx.Where("task_id = ?", c.TaskId).Where("create_date = ?", date.Format("2006-01-02")).Delete(&task.GameTargetComplete{})
|
|
|
} else {
|
|
} else {
|
|
|
date := time.Now()
|
|
date := time.Now()
|
|
|
if !errors.Is(tx.Where("task_id = ?", c.TaskId).Where("create_date = ?", date.Format("2006-01-02")).First(&task.GameTargetComplete{}).Error, gorm.ErrRecordNotFound) {
|
|
if !errors.Is(tx.Where("task_id = ?", c.TaskId).Where("create_date = ?", date.Format("2006-01-02")).First(&task.GameTargetComplete{}).Error, gorm.ErrRecordNotFound) {
|
|
@@ -401,6 +409,11 @@ func (s *GameTask) UpdateGameTask(requestData request.GameTaskRequest) (err erro
|
|
|
if errors.Is(global.GVA_DB.Where("task_id = ?", requestData.TaskId).First(&task.GameTask{}).Error, gorm.ErrRecordNotFound) {
|
|
if errors.Is(global.GVA_DB.Where("task_id = ?", requestData.TaskId).First(&task.GameTask{}).Error, gorm.ErrRecordNotFound) {
|
|
|
return errors.New("不存在的任务")
|
|
return errors.New("不存在的任务")
|
|
|
}
|
|
}
|
|
|
|
|
+ d, err := s.GetControlTaskId(requestData.TaskId)
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ global.GVA_LOG.Error("请求群控数据报错: ", zap.Error(err))
|
|
|
|
|
+ return errors.New("请求群控数据报错")
|
|
|
|
|
+ }
|
|
|
gameTask := new(task.GameTask)
|
|
gameTask := new(task.GameTask)
|
|
|
global.GVA_DB.Where("task_id = ?", requestData.TaskId).First(&gameTask)
|
|
global.GVA_DB.Where("task_id = ?", requestData.TaskId).First(&gameTask)
|
|
|
gameTask.TaskId = requestData.TaskId
|
|
gameTask.TaskId = requestData.TaskId
|
|
@@ -428,7 +441,7 @@ func (s *GameTask) UpdateGameTask(requestData request.GameTaskRequest) (err erro
|
|
|
global.GVA_LOG.Error("更新任务数据失败: ", zap.Error(err))
|
|
global.GVA_LOG.Error("更新任务数据失败: ", zap.Error(err))
|
|
|
return err
|
|
return err
|
|
|
}
|
|
}
|
|
|
- _, err := s.UpdateTaskRequestControl(taskRequestData, gameTask.ControlTaskId)
|
|
|
|
|
|
|
+ _, err := s.UpdateTaskRequestControl(taskRequestData, d.IdDong)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
global.GVA_LOG.Error("更新任务数据请求群控失败: ", zap.Error(err))
|
|
global.GVA_LOG.Error("更新任务数据请求群控失败: ", zap.Error(err))
|
|
|
}
|
|
}
|
|
@@ -460,21 +473,23 @@ func (s *GameTask) DeleteGameTask(api request.GameTaskRequest) (err error) {
|
|
|
if errors.Is(err, gorm.ErrRecordNotFound) {
|
|
if errors.Is(err, gorm.ErrRecordNotFound) {
|
|
|
return err
|
|
return err
|
|
|
}
|
|
}
|
|
|
- gameTask := new(task.GameTask)
|
|
|
|
|
- global.GVA_DB.Where("task_id = ?", api.TaskId).First(&gameTask)
|
|
|
|
|
- controlTaskId := gameTask.ControlTaskId
|
|
|
|
|
//update := map[string]interface{}{
|
|
//update := map[string]interface{}{
|
|
|
// "is_del": 1,
|
|
// "is_del": 1,
|
|
|
// "status": -1,
|
|
// "status": -1,
|
|
|
// "stop_time": time.Now(),
|
|
// "stop_time": time.Now(),
|
|
|
// "delete_time": time.Now(),
|
|
// "delete_time": time.Now(),
|
|
|
//}
|
|
//}
|
|
|
|
|
+ d, err := s.GetControlTaskId(api.TaskId)
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ global.GVA_LOG.Error("请求群控数据报错: ", zap.Error(err))
|
|
|
|
|
+ return errors.New("请求群控数据报错")
|
|
|
|
|
+ }
|
|
|
err = global.GVA_DB.Transaction(func(tx *gorm.DB) error {
|
|
err = global.GVA_DB.Transaction(func(tx *gorm.DB) error {
|
|
|
err := tx.Where("task_id", api.TaskId).Delete(&task.GameTask{}).Error
|
|
err := tx.Where("task_id", api.TaskId).Delete(&task.GameTask{}).Error
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
return err
|
|
return err
|
|
|
}
|
|
}
|
|
|
- _, err = s.DelTaskRequestControl(controlTaskId)
|
|
|
|
|
|
|
+ _, err = s.DelTaskRequestControl(d.IdDong)
|
|
|
return err
|
|
return err
|
|
|
})
|
|
})
|
|
|
return
|
|
return
|
|
@@ -484,7 +499,7 @@ func (s *GameTask) DeleteGameTask(api request.GameTaskRequest) (err error) {
|
|
|
//@description: 分页获取数据,
|
|
//@description: 分页获取数据,
|
|
|
//@param: card card.Card, info request.PageInfo, order string, desc bool
|
|
//@param: card card.Card, info request.PageInfo, order string, desc bool
|
|
|
//@return: list interface{}, total int64, err error
|
|
//@return: list interface{}, total int64, err error
|
|
|
-func (apiService *GameTask) GetGameTaskTargetInfoList(api request.GameTargetCompleteRequest, info request.PageInfo, order string, desc bool) (list interface{}, total int64, err error) {
|
|
|
|
|
|
|
+func (apiService *GameTask) GetGameTaskTargetInfoList(api request.GameTargetCompleteRequest, info request.PageInfo, order string, desc bool, isTx bool) (list interface{}, total int64, err error) {
|
|
|
limit := info.PageSize
|
|
limit := info.PageSize
|
|
|
offset := info.PageSize * (info.Page - 1)
|
|
offset := info.PageSize * (info.Page - 1)
|
|
|
if api.CreateDate == "" {
|
|
if api.CreateDate == "" {
|
|
@@ -503,6 +518,9 @@ func (apiService *GameTask) GetGameTaskTargetInfoList(api request.GameTargetComp
|
|
|
if api.User != "" {
|
|
if api.User != "" {
|
|
|
db = db.Where("gt.user LIKE ?", "%"+api.User+"%")
|
|
db = db.Where("gt.user LIKE ?", "%"+api.User+"%")
|
|
|
}
|
|
}
|
|
|
|
|
+ if isTx {
|
|
|
|
|
+ db = db.Where("gt.game_port_id = ?", 1)
|
|
|
|
|
+ }
|
|
|
if api.TaskId != 0 {
|
|
if api.TaskId != 0 {
|
|
|
db = db.Where("gtc.task_id = ?", api.TaskId)
|
|
db = db.Where("gtc.task_id = ?", api.TaskId)
|
|
|
}
|
|
}
|
|
@@ -639,7 +657,7 @@ func (s *GameTask) UpdateGameTaskTarget(requestData request.UpdateGameTaskTarget
|
|
|
//}
|
|
//}
|
|
|
updateData := map[string]interface{}{
|
|
updateData := map[string]interface{}{
|
|
|
"new_target": requestData.NewTarget,
|
|
"new_target": requestData.NewTarget,
|
|
|
- "pay_complete": requestData.PayTarget,
|
|
|
|
|
|
|
+ "pay_target": requestData.PayTarget,
|
|
|
"retained_target": requestData.RetainedTarget,
|
|
"retained_target": requestData.RetainedTarget,
|
|
|
"hand_new_complete": requestData.HandNewComplete + gameTask.HandNewComplete,
|
|
"hand_new_complete": requestData.HandNewComplete + gameTask.HandNewComplete,
|
|
|
"hand_retained_complete": requestData.HandRetainedComplete + gameTask.HandRetainedComplete,
|
|
"hand_retained_complete": requestData.HandRetainedComplete + gameTask.HandRetainedComplete,
|
|
@@ -761,3 +779,126 @@ func (s *GameTask) TargetStatistics(date string) (apiList []control.TargetStatis
|
|
|
}
|
|
}
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+func (s *GameTask) DayStatisticsData(request request.GameTaskStatisticsRequest) (gameTargetDates []response.GameTargetStatistics, err error) {
|
|
|
|
|
+ createDate := time.Now().Format("2006-01-02")
|
|
|
|
|
+ if request.Date == "" || request.Date == createDate {
|
|
|
|
|
+ request.Date = time.Now().Format("2006-01-02")
|
|
|
|
|
+ gameTargets, err := s.EveryDayTargetData(request.Date, request)
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ return gameTargetDates, err
|
|
|
|
|
+ }
|
|
|
|
|
+ for _, gameTarget := range gameTargets {
|
|
|
|
|
+ var gameTargetDate response.GameTargetStatistics
|
|
|
|
|
+ gameTargetDate.PayTarget = gameTarget.PayTarget
|
|
|
|
|
+ gameTargetDate.NewTarget = gameTarget.NewTarget
|
|
|
|
|
+ gameTargetDate.RetainedTarget = gameTarget.RetainedTarget
|
|
|
|
|
+ gameTargetDate.PayComplete = gameTarget.PayComplete + gameTarget.HandPayComplete
|
|
|
|
|
+ gameTargetDate.NewComplete = gameTarget.NewComplete + gameTarget.HandNewComplete
|
|
|
|
|
+ gameTargetDate.RetainedComplete = gameTarget.RetainedComplete + gameTarget.HandRetainedComplete
|
|
|
|
|
+ gameTargetDate.Amount = gameTarget.Amount + gameTarget.HandAmountTotal
|
|
|
|
|
+ gameTargetDate.GamePort = GamePort[gameTarget.GamePortId]
|
|
|
|
|
+ gameTargetDate.User = gameTarget.User
|
|
|
|
|
+ gameTargetDate.TaskDate = gameTarget.CreateDate.Format("2006-01-02")
|
|
|
|
|
+ gameTargetDates = append(gameTargetDates, gameTargetDate)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ } else {
|
|
|
|
|
+ gameTargets, err := s.PastDayTargetData(request.Date, request)
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ return gameTargetDates, err
|
|
|
|
|
+ }
|
|
|
|
|
+ for _, gameTarget := range gameTargets {
|
|
|
|
|
+ var gameTargetDate response.GameTargetStatistics
|
|
|
|
|
+ gameTargetDate.PayTarget = gameTarget.PayTarget
|
|
|
|
|
+ gameTargetDate.NewTarget = gameTarget.NewTarget
|
|
|
|
|
+ gameTargetDate.RetainedTarget = gameTarget.RetainedTarget
|
|
|
|
|
+ gameTargetDate.PayComplete = gameTarget.PayComplete
|
|
|
|
|
+ gameTargetDate.NewComplete = gameTarget.NewComplete
|
|
|
|
|
+ gameTargetDate.RetainedComplete = gameTarget.RetainedComplete
|
|
|
|
|
+ gameTargetDate.Amount = gameTarget.Amount
|
|
|
|
|
+ gameTargetDate.TaskDate = gameTarget.TaskDate.Format("2006-01-02")
|
|
|
|
|
+ gameTargetDate.GamePort = GamePort[gameTarget.GamePortId]
|
|
|
|
|
+ gameTargetDate.User = gameTarget.User
|
|
|
|
|
+ gameTargetDates = append(gameTargetDates, gameTargetDate)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ return
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (s *GameTask) EveryDayTargetData(date string, request request.GameTaskStatisticsRequest) (gameTarget []response.GameTargetCompleteReply, err error) {
|
|
|
|
|
+ db := global.GVA_DB.Table("game_target_complete gtc")
|
|
|
|
|
+ db = db.Select("gtc.create_date,SUM(gtc.new_complete) new_complete,SUM(gtc.pay_complete) pay_complete,SUM(gtc.retained_complete) retained_complete,SUM(gtc.new_target) new_target,SUM(gtc.pay_target) pay_target,SUM(gtc.retained_target) retained_target,SUM(gtc.amount) amount,SUM(gtc.hand_pay_complete) hand_pay_complete,SUM(gtc.hand_new_complete) hand_new_complete,SUM(gtc.hand_retained_complete) hand_retained_complete,SUM(gtc.hand_amount_total) hand_amount_total," +
|
|
|
|
|
+ "gt.user,gt.game_port_id")
|
|
|
|
|
+ db = db.Joins("left join game_task gt on gt.task_id = gtc.task_id")
|
|
|
|
|
+ db = db.Where("gtc.create_date = ?", date)
|
|
|
|
|
+ if request.GroupKey != "" {
|
|
|
|
|
+ group := "gt." + request.GroupKey
|
|
|
|
|
+ db = db.Group(group)
|
|
|
|
|
+ }
|
|
|
|
|
+ err = db.Find(&gameTarget).Error
|
|
|
|
|
+ return
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (s *GameTask) PastDayTargetData(date string, request request.GameTaskStatisticsRequest) (gameTarget []task.GameTargetStatistics, err error) {
|
|
|
|
|
+ db := global.GVA_DB.Table("game_target_statistics")
|
|
|
|
|
+ db = db.Where("task_date = ?", date)
|
|
|
|
|
+ if request.GroupKey != "" {
|
|
|
|
|
+ group := request.GroupKey
|
|
|
|
|
+ db = db.Group(group)
|
|
|
|
|
+ }
|
|
|
|
|
+ err = db.Find(&gameTarget).Error
|
|
|
|
|
+ return
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (s *GameTask) MonthStatisticsData() (gameTarget []task.GameTargetStatistics, err error) {
|
|
|
|
|
+ year, _, _ := time.Now().Date()
|
|
|
|
|
+ db := global.GVA_DB.Table("game_target_statistics")
|
|
|
|
|
+ db = db.Select("task_year,task_month,SUM(new_complete) new_complete,SUM(pay_complete) pay_complete,SUM(retained_complete) retained_complete,SUM(new_target) new_target,SUM(pay_target) pay_target,SUM(retained_target) retained_target,SUM(amount) amount")
|
|
|
|
|
+ db = db.Where("task_year = ?", year)
|
|
|
|
|
+ db = db.Group("task_month")
|
|
|
|
|
+ err = db.Find(&gameTarget).Error
|
|
|
|
|
+ return
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (s *GameTask) GameStatisticsData(date string) (gameTarget []response.GameStatisticsDataReply, err error) {
|
|
|
|
|
+ if date == "" {
|
|
|
|
|
+ date = time.Now().Format("2006-01-02")
|
|
|
|
|
+ }
|
|
|
|
|
+ db := global.GVA_DB.Table("game_target_complete gtc")
|
|
|
|
|
+ db = db.Select("gt.user,gt.game_port_id,COUNT(DISTINCT(gtc.task_id)) total,gtc.create_date")
|
|
|
|
|
+ db = db.Joins("left join game_task gt on gt.task_id = gtc.task_id")
|
|
|
|
|
+ db = db.Where("gtc.create_date = ?", date)
|
|
|
|
|
+ db = db.Group("gt.user,gt.game_port_id")
|
|
|
|
|
+ err = db.Find(&gameTarget).Error
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ return nil, err
|
|
|
|
|
+ }
|
|
|
|
|
+ for i, target := range gameTarget {
|
|
|
|
|
+ gameTarget[i].GamePort = GamePort[target.GamePortId]
|
|
|
|
|
+ gameTarget[i].CreateDate = date
|
|
|
|
|
+ }
|
|
|
|
|
+ return
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (s *GameTask) GameStatisticsList(rq request.GameListRequest) (gameTarget []response.GameStatisticsListReply, err error) {
|
|
|
|
|
+ if rq.Date == "" {
|
|
|
|
|
+ rq.Date = time.Now().Format("2006-01-02")
|
|
|
|
|
+ }
|
|
|
|
|
+ db := global.GVA_DB.Table("game_target_complete gtc")
|
|
|
|
|
+ db = db.Select("gt.game_port_id,gt.game_name")
|
|
|
|
|
+ db = db.Joins("left join game_task gt on gt.task_id = gtc.task_id")
|
|
|
|
|
+ db = db.Where("gtc.create_date = ?", rq.Date)
|
|
|
|
|
+ db = db.Where("gt.user = ?", rq.User)
|
|
|
|
|
+ db = db.Where("gt.game_port_id = ?", rq.GamePortId)
|
|
|
|
|
+ err = db.Find(&gameTarget).Error
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ return nil, err
|
|
|
|
|
+ }
|
|
|
|
|
+ for i, target := range gameTarget {
|
|
|
|
|
+ gameTarget[i].GamePort = GamePort[target.GamePortId]
|
|
|
|
|
+ gameTarget[i].CreateDate = rq.Date
|
|
|
|
|
+ }
|
|
|
|
|
+ return
|
|
|
|
|
+}
|