|
@@ -44,30 +44,44 @@ func AutoTaskInvalid() error {
|
|
|
func AutoProjectInvalidTask() {
|
|
|
log.Println("AutoProjectInvalidTask running Start, Time :", time.Now())
|
|
|
var projectInfos []*entity.Project
|
|
|
- projectInfos, _ = dao.ProjectDAO{}.GetProjectList(6, "project_status")
|
|
|
+ _ = dao.Db.Model(entity.Project{}).Where("project_status <= ?", 6).Select("project_id,project_status,recruit_ddl,auto_task_id,auto_fail_at").Find(&projectInfos).Error
|
|
|
// 对于所有未支付的品牌种草项目进行处理
|
|
|
for _, projectInfo := range projectInfos {
|
|
|
projectId := projectInfo.ProjectId
|
|
|
+ if time.Now().After(projectInfo.RecruitDdl) && projectInfo.ProjectStatus < 4 {
|
|
|
+ // 变成失效
|
|
|
+ _ = dao.ProjectDAO{}.UpdateProject(entity.Project{
|
|
|
+ ProjectId: projectId,
|
|
|
+ ProjectStatus: 9,
|
|
|
+ })
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ if time.Now().After(projectInfo.RecruitDdl) && projectInfo.ProjectStatus == 4 {
|
|
|
+ // 变成待支付
|
|
|
+ _ = dao.ProjectDAO{}.UpdateProject(entity.Project{
|
|
|
+ ProjectId: projectId,
|
|
|
+ ProjectStatus: 6,
|
|
|
+ })
|
|
|
+ continue
|
|
|
+ }
|
|
|
autoTaskId := projectInfo.AutoTaskID
|
|
|
autoTaskInfo := dao.InfoAutoTaskDao{}.GetValueByIdFieldName(autoTaskId, "invalid")
|
|
|
dd, _ := time.ParseDuration(conv.MustString(autoTaskInfo.Invalid, "") + "h")
|
|
|
// 失效时间计算:任务截止时间 + 设置的失效自动执行时间
|
|
|
- timeInvalid := projectInfo.RecruitDdl.Add(dd)
|
|
|
if projectInfo.AutoFailAt.IsZero() {
|
|
|
+ timeInvalid := projectInfo.RecruitDdl.Add(dd)
|
|
|
dao.Db.Model(&entity.Project{}).Where("project_id = ?", projectId).Updates(&entity.Project{AutoFailAt: timeInvalid})
|
|
|
+ projectInfo.AutoFailAt = timeInvalid
|
|
|
}
|
|
|
- projectNeedMod := entity.Project{}
|
|
|
- dao.Db.Where("project_id = ?", projectId).First(&projectNeedMod)
|
|
|
- //fmt.Println(fmt.Sprintf("品牌种草项目 %s 失效自动处理时间为:%s", projectId, projectNeedMod.AutoFailAt))
|
|
|
- // 如果失效自动处理的时间不为空
|
|
|
- if !projectNeedMod.AutoFailAt.IsZero() {
|
|
|
- timeNow := time.Now()
|
|
|
- // 如果 未失效 && 已经过了失效自动处理的时间
|
|
|
- if projectNeedMod.ProjectStatus < 9 && projectNeedMod.AutoFailAt.Sub(time.Now()) <= 0 {
|
|
|
- dao.Db.Model(entity.Project{}).Where("project_id = ?", projectId).Updates(&entity.Project{ProjectStatus: 9, FinishAt: timeInvalid, FailReason: 1})
|
|
|
- fmt.Println(fmt.Sprintf("已更新品牌种草项目 %s 状态为超时未支付的失效状态", projectId))
|
|
|
- dao.Db.Model(entity.ProjectTaskInfo{}).Where("project_id = ?", projectId).Updates(entity.ProjectTaskInfo{TaskStage: 3, CompleteStatus: 3, CompleteDate: timeNow})
|
|
|
- }
|
|
|
+ // 超时未支付则变为失效
|
|
|
+ if time.Now().After(projectInfo.AutoFailAt) && projectInfo.ProjectStatus == 6 {
|
|
|
+ _ = dao.ProjectDAO{}.UpdateProject(entity.Project{
|
|
|
+ ProjectId: projectId,
|
|
|
+ ProjectStatus: 9,
|
|
|
+ FailReason: 1,
|
|
|
+ })
|
|
|
+ fmt.Println(fmt.Sprintf("已更新品牌种草项目 %s 状态为超时未支付的失效状态", projectId))
|
|
|
+ dao.Db.Model(entity.ProjectTaskInfo{}).Where("project_id = ?", projectId).Updates(entity.ProjectTaskInfo{TaskStage: 3, CompleteStatus: 3, CompleteDate: time.Now()})
|
|
|
}
|
|
|
}
|
|
|
log.Println("AutoProjectInvalidTask running End, Time :", time.Now())
|
|
@@ -84,23 +98,20 @@ func AutoSelectionInvalidTask() {
|
|
|
autoTaskId := selectionInfo.AutoTaskID
|
|
|
autoTaskInfo := dao.InfoAutoTaskDao{}.GetValueByIdFieldName(autoTaskId, "selection_invalid")
|
|
|
dd, _ := time.ParseDuration(conv.MustString(autoTaskInfo.SelectionInvalid, "") + "h")
|
|
|
- // 失效时间计算:任务截止时间 + 设置的失效自动执行时间
|
|
|
- timeInvalid := selectionInfo.PassAt.Add(dd)
|
|
|
if selectionInfo.AutoFailAt.IsZero() {
|
|
|
+ timeInvalid := selectionInfo.PassAt.Add(dd)
|
|
|
dao.Db.Model(&entity.SelectionInfo{}).Where("selection_id = ?", selectionId).Updates(&entity.SelectionInfo{AutoFailAt: timeInvalid})
|
|
|
+ selectionInfo.AutoFailAt = timeInvalid
|
|
|
}
|
|
|
- selectionInfoNeedMod := entity.SelectionInfo{}
|
|
|
- dao.Db.Where("selection_id = ?", selectionId).First(&selectionInfoNeedMod)
|
|
|
- //fmt.Println(fmt.Sprintf("电商带货项目 %s 失效自动处理时间为:%s", selectionId, selectionInfoNeedMod.AutoFailAt))
|
|
|
- // 如果失效自动处理的时间不为空
|
|
|
- if !selectionInfoNeedMod.AutoFailAt.IsZero() {
|
|
|
- timeNow := time.Now()
|
|
|
- // 如果 未失效 && 已经过了失效自动处理的时间
|
|
|
- if selectionInfoNeedMod.SelectionStatus < 5 && selectionInfoNeedMod.AutoFailAt.Sub(time.Now()) <= 0 {
|
|
|
- dao.Db.Model(entity.SelectionInfo{}).Where("selection_id = ?", selectionId).Updates(&entity.SelectionInfo{SelectionStatus: 7, FinishAt: timeInvalid, FailReason: 1})
|
|
|
- fmt.Println(fmt.Sprintf("已更新电商带货项目 %s 状态为超时未支付的失效状态", selectionId))
|
|
|
- dao.Db.Model(entity.SelectionInfo{}).Where("selection_id = ?", selectionId).Updates(entity.SelectionTaskInfo{TaskStage: 3, CompleteStatus: 3, CompleteDate: timeNow})
|
|
|
- }
|
|
|
+ // 超时未支付则变为失效
|
|
|
+ if time.Now().After(selectionInfo.AutoFailAt) && selectionInfo.SelectionStatus == 4 {
|
|
|
+ _ = dao.SelectionInfoDAO{}.UpdateSelectionInfo(entity.SelectionInfo{
|
|
|
+ SelectionID: selectionId,
|
|
|
+ SelectionStatus: 7,
|
|
|
+ FailReason: 1,
|
|
|
+ })
|
|
|
+ fmt.Println(fmt.Sprintf("已更新电商带货项目 %s 状态为超时未支付的失效状态", selectionId))
|
|
|
+ dao.Db.Model(entity.SelectionInfo{}).Where("selection_id = ?", selectionId).Updates(entity.SelectionTaskInfo{TaskStage: 3, CompleteStatus: 3, CompleteDate: time.Now()})
|
|
|
}
|
|
|
}
|
|
|
log.Println("AutoSelectionInvalidTask running End, Time :", time.Now())
|
|
@@ -110,30 +121,44 @@ func AutoSelectionInvalidTask() {
|
|
|
func AutoLocalLifeInvalidTask() {
|
|
|
log.Println("AutoLocalLifeInvalidTask running Start, Time :", time.Now())
|
|
|
var localLifeInfos []*entity.LocalLifeInfo
|
|
|
- localLifeInfos, _ = dao.LocalLifeDao{}.GetLocalLifeList(6, "task_status")
|
|
|
+ _ = dao.Db.Model(entity.LocalLifeInfo{}).Where("task_status <= ?", 6).Select("local_id,task_status,recruit_ddl,auto_task_id,auto_fail_at").Find(&localLifeInfos).Error
|
|
|
// 对于所有未支付的本地生活项目进行处理
|
|
|
for _, localLifeInfo := range localLifeInfos {
|
|
|
localId := localLifeInfo.LocalID
|
|
|
+ if time.Now().After(localLifeInfo.RecruitDdl) && localLifeInfo.TaskStatus < 4 {
|
|
|
+ // 变成失效
|
|
|
+ _ = dao.LocalLifeDao{}.UpdateLocal(entity.LocalLifeInfo{
|
|
|
+ LocalID: localId,
|
|
|
+ TaskStatus: 9,
|
|
|
+ })
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ if time.Now().After(localLifeInfo.RecruitDdl) && localLifeInfo.TaskStatus == 4 {
|
|
|
+ // 变成待支付
|
|
|
+ _ = dao.LocalLifeDao{}.UpdateLocal(entity.LocalLifeInfo{
|
|
|
+ LocalID: localId,
|
|
|
+ TaskStatus: 6,
|
|
|
+ })
|
|
|
+ continue
|
|
|
+ }
|
|
|
autoTaskId := localLifeInfo.AutoTaskID
|
|
|
autoTaskInfo := dao.InfoAutoTaskDao{}.GetValueByIdFieldName(autoTaskId, "invalid")
|
|
|
dd, _ := time.ParseDuration(conv.MustString(autoTaskInfo.Invalid, "") + "h")
|
|
|
// 失效时间计算:任务截止时间 + 设置的失效自动执行时间
|
|
|
- timeInvalid := localLifeInfo.RecruitDdl.Add(dd)
|
|
|
if localLifeInfo.AutoFailAt.IsZero() {
|
|
|
+ timeInvalid := localLifeInfo.RecruitDdl.Add(dd)
|
|
|
dao.Db.Model(&entity.LocalLifeInfo{}).Where("local_id = ?", localId).Updates(&entity.LocalLifeInfo{AutoFailAt: timeInvalid})
|
|
|
+ localLifeInfo.AutoFailAt = timeInvalid
|
|
|
}
|
|
|
- localLifeNeedMod := entity.LocalLifeInfo{}
|
|
|
- dao.Db.Where("local_id = ?", localId).First(&localLifeNeedMod)
|
|
|
- //fmt.Println(fmt.Sprintf("本地生活项目 %s 失效自动处理时间为:%s", localId, localLifeNeedMod.AutoFailAt))
|
|
|
- // 如果失效自动处理的时间不为空
|
|
|
- if !localLifeNeedMod.AutoFailAt.IsZero() {
|
|
|
- timeNow := time.Now()
|
|
|
- // 如果 未失效 && 已经过了失效自动处理的时间
|
|
|
- if localLifeNeedMod.TaskStatus < 9 && localLifeNeedMod.AutoFailAt.Sub(time.Now()) <= 0 {
|
|
|
- dao.Db.Model(entity.LocalLifeInfo{}).Where("local_id = ?", localId).Updates(&entity.LocalLifeInfo{TaskStatus: 9, FinishAt: timeInvalid, FailReason: 1})
|
|
|
- fmt.Println(fmt.Sprintf("已更新本地生活项目 %s 状态为超时未支付的失效状态", localId))
|
|
|
- dao.Db.Model(entity.LocalLifeTaskInfo{}).Where("local_id = ?", localId).Updates(entity.LocalLifeTaskInfo{TaskStage: 3, CompleteStatus: 3, CompleteDate: timeNow})
|
|
|
- }
|
|
|
+ // 超时未支付则变为失效
|
|
|
+ if time.Now().After(localLifeInfo.AutoFailAt) && localLifeInfo.TaskStatus == 6 {
|
|
|
+ _ = dao.LocalLifeDao{}.UpdateLocal(entity.LocalLifeInfo{
|
|
|
+ LocalID: localId,
|
|
|
+ TaskStatus: 9,
|
|
|
+ FailReason: 1,
|
|
|
+ })
|
|
|
+ fmt.Println(fmt.Sprintf("已更新本地生活项目 %s 状态为超时未支付的失效状态", localId))
|
|
|
+ dao.Db.Model(entity.LocalLifeTaskInfo{}).Where("local_id = ?", localId).Updates(entity.LocalLifeTaskInfo{TaskStage: 3, CompleteStatus: 3, CompleteDate: time.Now()})
|
|
|
}
|
|
|
}
|
|
|
log.Println("AutoLocalLifeInvalidTask running End, Time :", time.Now())
|