package schedule // //import ( // "github.com/robfig/cron/v3" // "log" // "strings" // "time" // "youngee_m_api/app/dao" // "youngee_m_api/app/entity" // "youngee_m_api/app/service/review_service" //) // //func AutoTaskReview() error { // // 新建一个定时任务对象 // crontab := cron.New(cron.WithSeconds()) // 精确到秒 // spec := "0 */1 * * * ?" //cron表达式,每5分钟一次 // // "0 0 12 * * ?" 每天中午12点执行 // // // 添加定时任务 // // 定时任务1 品牌种草API自动审核 // _, err1 := crontab.AddFunc(spec, AutoProjectReviewTask) // if err1 != nil { // return err1 // } // // 定时任务2 电商带货API自动审核 // _, err2 := crontab.AddFunc(spec, AutoSelectionReviewTask) // if err2 != nil { // return err2 // } // // 定时任务3 本地生活API自动审核 // _, err3 := crontab.AddFunc(spec, AutoLocalLifeReviewTask) // if err3 != nil { // return err3 // } // // // 启动定时器 // crontab.Start() // // 定时任务是另起协程执行的,这里使用 select 简单阻塞.需要根据实际情况进行控制 // //select {} //阻塞主线程停止 // return nil //} // //// 定时任务1 品牌种草API自动审核 //func AutoProjectReviewTask() { // log.Println("AutoProjectReviewTask running Start, Time :", time.Now()) // // var reviewProjects []*entity.ReviewProject // reviewProjects, _ = dao.ProjectReviewDao{}.GetProjectReviewByStatus(1) // reviewService := review_service.GetConfig() // for _, reviewProject := range reviewProjects { // // if reviewProject.TaskName != "" { // var suggestion *string // var reviewErr error // i := 3 // for { // suggestion, reviewErr = reviewService.CheckContent(reviewProject.TaskName) // if reviewErr == nil || i == 0 { // break // } // i -= 1 // } // if reviewErr != nil || "pass" != *suggestion { // // 交给人工审核 // _ = dao.ProjectReviewDao{}.UpdateProjectReview(&entity.ReviewProject{ID: reviewProject.ID, Status: 3}) // continue // } // } // // if reviewProject.TaskDetail != "" { // var suggestion *string // var reviewErr error // i := 3 // for { // suggestion, reviewErr = reviewService.CheckContent(reviewProject.TaskDetail) // if reviewErr == nil || i == 0 { // break // } // i -= 1 // } // if reviewErr != nil || "pass" != *suggestion { // // 交给人工审核 // _ = dao.ProjectReviewDao{}.UpdateProjectReview(&entity.ReviewProject{ID: reviewProject.ID, Status: 3}) // continue // } // } // // if reviewProject.ProductName != "" { // var suggestion *string // var reviewErr error // i := 3 // for { // suggestion, reviewErr = reviewService.CheckContent(reviewProject.ProductName) // if reviewErr == nil || i == 0 { // break // } // i -= 1 // } // if reviewErr != nil || "pass" != *suggestion { // // 交给人工审核 // _ = dao.ProjectReviewDao{}.UpdateProjectReview(&entity.ReviewProject{ID: reviewProject.ID, Status: 3}) // continue // } // } // // if reviewProject.ProductDetail != "" { // var suggestion *string // var reviewErr error // i := 3 // for { // suggestion, reviewErr = reviewService.CheckContent(reviewProject.ProductDetail) // if reviewErr == nil || i == 0 { // break // } // i -= 1 // } // if reviewErr != nil || "pass" != *suggestion { // // 交给人工审核 // dao.ProjectReviewDao{}.UpdateProjectReview(&entity.ReviewProject{ID: reviewProject.ID, Status: 3}) // continue // } // } // // if reviewProject.MainPhoto != "" { // var suggestion *string // var reviewErr error // i := 3 // for { // suggestion, reviewErr = reviewService.CheckImage(reviewProject.MainPhoto) // if reviewErr == nil || i == 0 { // break // } // i -= 1 // } // if reviewErr != nil || "pass" != *suggestion { // // 交给人工审核 // _ = dao.ProjectReviewDao{}.UpdateProjectReview(&entity.ReviewProject{ID: reviewProject.ID, Status: 3}) // continue // } // } // // images := strings.Split(reviewProject.Images, ",") // imageFlag := false // for _, image := range images { // if image != "" { // var suggestion *string // var reviewErr error // i := 3 // for { // suggestion, reviewErr = reviewService.CheckImage(image) // if reviewErr == nil || i == 0 { // break // } // i -= 1 // } // if reviewErr != nil || "pass" != *suggestion { // imageFlag = true // break // } // } // } // if imageFlag { // // 交给人工审核 // _ = dao.ProjectReviewDao{}.UpdateProjectReview(&entity.ReviewProject{ID: reviewProject.ID, Status: 3}) // continue // } // // documentJobIds := strings.Split(reviewProject.DocumentJobIds, ",") // documentFlag := 0 // 0通过 1未通过 2正在运行 // for _, documentJobId := range documentJobIds { // if documentJobId != "" { // var status *string // var suggestion *string // var reviewErr error // i := 3 // for { // status, suggestion, reviewErr = reviewService.CheckDocumentInfo(documentJobId) // if reviewErr == nil || i == 0 { // break // } // i -= 1 // } // if reviewErr == nil && "running" == *status { // documentFlag = 2 // break // } // if reviewErr != nil || "failed" == *status || "pass" != *suggestion { // documentFlag = 1 // break // } // } // } // if documentFlag == 2 { // continue // } else if documentFlag == 1 { // // 交给人工审核 // _ = dao.ProjectReviewDao{}.UpdateProjectReview(&entity.ReviewProject{ID: reviewProject.ID, Status: 3}) // continue // } // // videoJobIds := strings.Split(reviewProject.VideoJobIds, ",") // videoFlag := 0 // 0通过 1未通过 2正在运行 // for _, videoJobId := range videoJobIds { // if videoJobId != "" { // var status *string // var suggestion *string // var reviewErr error // i := 3 // for { // status, suggestion, reviewErr = reviewService.CheckVideoInfo(videoJobId) // if reviewErr == nil || i == 0 { // break // } // i -= 1 // } // if reviewErr == nil && "running" == *status { // videoFlag = 2 // break // } // if reviewErr != nil || "failed" == *status || "pass" != *suggestion { // videoFlag = 1 // break // } // } // } // if videoFlag == 2 { // continue // } else if videoFlag == 1 { // // 交给人工审核 // _ = dao.ProjectReviewDao{}.UpdateProjectReview(&entity.ReviewProject{ID: reviewProject.ID, Status: 3}) // continue // } // // // 审核通过 // _ = dao.ProjectReviewDao{}.UpdateProjectReview(&entity.ReviewProject{ID: reviewProject.ID, Status: 2}) // _ = dao.ProjectDAO{}.UpdateProject(entity.Project{ProjectId: reviewProject.ProjectID, ProjectStatus: 4}) // } // // log.Println("AutoProjectReviewTask running End, Time :", time.Now()) //} // //// 定时任务2 电商带货API自动审核 //func AutoSelectionReviewTask() { // log.Println("AutoSelectionInvalidTask running Start, Time :", time.Now()) // // var reviewSelections []*entity.ReviewSelection // reviewSelections, _ = dao.SelectionReviewDao{}.GetSelectionReviewByStatus(1) // reviewService := review_service.GetConfig() // for _, reviewSelection := range reviewSelections { // // if reviewSelection.TaskName != "" { // var suggestion *string // var reviewErr error // i := 3 // for { // suggestion, reviewErr = reviewService.CheckContent(reviewSelection.TaskName) // if reviewErr == nil || i == 0 { // break // } // i -= 1 // } // if reviewErr != nil || "pass" != *suggestion { // // 交给人工审核 // _ = dao.SelectionReviewDao{}.UpdateSelectionReview(&entity.ReviewSelection{ID: reviewSelection.ID, Status: 3}) // continue // } // } // // if reviewSelection.ProductName != "" { // var suggestion *string // var reviewErr error // i := 3 // for { // suggestion, reviewErr = reviewService.CheckContent(reviewSelection.ProductName) // if reviewErr == nil || i == 0 { // break // } // i -= 1 // } // if reviewErr != nil || "pass" != *suggestion { // // 交给人工审核 // _ = dao.SelectionReviewDao{}.UpdateSelectionReview(&entity.ReviewSelection{ID: reviewSelection.ID, Status: 3}) // continue // } // } // // if reviewSelection.ProductDetail != "" { // var suggestion *string // var reviewErr error // i := 3 // for { // suggestion, reviewErr = reviewService.CheckContent(reviewSelection.ProductDetail) // if reviewErr == nil || i == 0 { // break // } // i -= 1 // } // if reviewErr != nil || "pass" != *suggestion { // // 交给人工审核 // dao.SelectionReviewDao{}.UpdateSelectionReview(&entity.ReviewSelection{ID: reviewSelection.ID, Status: 3}) // continue // } // } // // if reviewSelection.MainPhoto != "" { // var suggestion *string // var reviewErr error // i := 3 // for { // suggestion, reviewErr = reviewService.CheckImage(reviewSelection.MainPhoto) // if reviewErr == nil || i == 0 { // break // } // i -= 1 // } // if reviewErr != nil || "pass" != *suggestion { // // 交给人工审核 // _ = dao.SelectionReviewDao{}.UpdateSelectionReview(&entity.ReviewSelection{ID: reviewSelection.ID, Status: 3}) // continue // } // } // // images := strings.Split(reviewSelection.Images, ",") // imageFlag := false // for _, image := range images { // if image != "" { // var suggestion *string // var reviewErr error // i := 3 // for { // suggestion, reviewErr = reviewService.CheckImage(image) // if reviewErr == nil || i == 0 { // break // } // i -= 1 // } // if reviewErr != nil || "pass" != *suggestion { // imageFlag = true // break // } // } // } // if imageFlag { // // 交给人工审核 // _ = dao.SelectionReviewDao{}.UpdateSelectionReview(&entity.ReviewSelection{ID: reviewSelection.ID, Status: 3}) // continue // } // // documentJobIds := strings.Split(reviewSelection.DocumentJobIds, ",") // documentFlag := 0 // 0通过 1未通过 2正在运行 // for _, documentJobId := range documentJobIds { // if documentJobId != "" { // var status *string // var suggestion *string // var reviewErr error // i := 3 // for { // status, suggestion, reviewErr = reviewService.CheckDocumentInfo(documentJobId) // if reviewErr == nil || i == 0 { // break // } // i -= 1 // } // if reviewErr == nil && "running" == *status { // documentFlag = 2 // break // } // if reviewErr != nil || "failed" == *status || "pass" != *suggestion { // documentFlag = 1 // break // } // } // } // if documentFlag == 2 { // continue // } else if documentFlag == 1 { // // 交给人工审核 // _ = dao.SelectionReviewDao{}.UpdateSelectionReview(&entity.ReviewSelection{ID: reviewSelection.ID, Status: 3}) // continue // } // // videoJobIds := strings.Split(reviewSelection.VideoJobIds, ",") // videoFlag := 0 // 0通过 1未通过 2正在运行 // for _, videoJobId := range videoJobIds { // if videoJobId != "" { // var status *string // var suggestion *string // var reviewErr error // i := 3 // for { // status, suggestion, reviewErr = reviewService.CheckVideoInfo(videoJobId) // if reviewErr == nil || i == 0 { // break // } // i -= 1 // } // if reviewErr == nil && "running" == *status { // videoFlag = 2 // break // } // if reviewErr != nil || "failed" == *status || "pass" != *suggestion { // videoFlag = 1 // break // } // } // } // if videoFlag == 2 { // continue // } else if videoFlag == 1 { // // 交给人工审核 // _ = dao.SelectionReviewDao{}.UpdateSelectionReview(&entity.ReviewSelection{ID: reviewSelection.ID, Status: 3}) // continue // } // // // 审核通过 // _ = dao.SelectionReviewDao{}.UpdateSelectionReview(&entity.ReviewSelection{ID: reviewSelection.ID, Status: 2}) // _ = dao.SelectionInfoDAO{}.UpdateSelectionInfo(entity.SelectionInfo{SelectionID: reviewSelection.SelectionID, SelectionStatus: 4}) // } // // log.Println("AutoSelectionInvalidTask running End, Time :", time.Now()) //} // //// 定时任务3 本地生活API自动审核 //func AutoLocalLifeReviewTask() { // log.Println("AutoLocalLifeInvalidTask running Start, Time :", time.Now()) // // var reviewLocalLifes []*entity.ReviewLocalLife // reviewLocalLifes, _ = dao.LocalLifeReviewDao{}.GetLocalReviewByStatus(1) // reviewService := review_service.GetConfig() // for _, reviewLocalLife := range reviewLocalLifes { // // if reviewLocalLife.TaskName != "" { // var suggestion *string // var reviewErr error // i := 3 // for { // suggestion, reviewErr = reviewService.CheckContent(reviewLocalLife.TaskName) // if reviewErr == nil || i == 0 { // break // } // i -= 1 // } // if reviewErr != nil || "pass" != *suggestion { // // 交给人工审核 // _ = dao.LocalLifeReviewDao{}.UpdateLocalReview(&entity.ReviewLocalLife{ID: reviewLocalLife.ID, Status: 3}) // continue // } // } // // if reviewLocalLife.TaskDetail != "" { // var suggestion *string // var reviewErr error // i := 3 // for { // suggestion, reviewErr = reviewService.CheckContent(reviewLocalLife.TaskDetail) // if reviewErr == nil || i == 0 { // break // } // i -= 1 // } // if reviewErr != nil || "pass" != *suggestion { // // 交给人工审核 // _ = dao.LocalLifeReviewDao{}.UpdateLocalReview(&entity.ReviewLocalLife{ID: reviewLocalLife.ID, Status: 3}) // continue // } // } // // if reviewLocalLife.StoreName != "" { // var suggestion *string // var reviewErr error // i := 3 // for { // suggestion, reviewErr = reviewService.CheckContent(reviewLocalLife.StoreName) // if reviewErr == nil || i == 0 { // break // } // i -= 1 // } // if reviewErr != nil || "pass" != *suggestion { // // 交给人工审核 // _ = dao.LocalLifeReviewDao{}.UpdateLocalReview(&entity.ReviewLocalLife{ID: reviewLocalLife.ID, Status: 3}) // continue // } // } // if reviewLocalLife.StoreDetail != "" { // var suggestion *string // var reviewErr error // i := 3 // for { // suggestion, reviewErr = reviewService.CheckContent(reviewLocalLife.StoreDetail) // if reviewErr == nil || i == 0 { // break // } // i -= 1 // } // if reviewErr != nil || "pass" != *suggestion { // // 交给人工审核 // dao.LocalLifeReviewDao{}.UpdateLocalReview(&entity.ReviewLocalLife{ID: reviewLocalLife.ID, Status: 3}) // continue // } // } // if reviewLocalLife.StoreMainPhoto != "" { // var suggestion *string // var reviewErr error // i := 3 // for { // suggestion, reviewErr = reviewService.CheckImage(reviewLocalLife.StoreMainPhoto) // if reviewErr == nil || i == 0 { // break // } // i -= 1 // } // if reviewErr != nil || "pass" != *suggestion { // // 交给人工审核 // _ = dao.LocalLifeReviewDao{}.UpdateLocalReview(&entity.ReviewLocalLife{ID: reviewLocalLife.ID, Status: 3}) // continue // } // } // // if reviewLocalLife.TeamBuyingName != "" { // var suggestion *string // var reviewErr error // i := 3 // for { // suggestion, reviewErr = reviewService.CheckContent(reviewLocalLife.TeamBuyingName) // if reviewErr == nil || i == 0 { // break // } // i -= 1 // } // if reviewErr != nil || "pass" != *suggestion { // // 交给人工审核 // _ = dao.LocalLifeReviewDao{}.UpdateLocalReview(&entity.ReviewLocalLife{ID: reviewLocalLife.ID, Status: 3}) // continue // } // } // if reviewLocalLife.TeamBuyingDetail != "" { // var suggestion *string // var reviewErr error // i := 3 // for { // suggestion, reviewErr = reviewService.CheckContent(reviewLocalLife.TeamBuyingDetail) // if reviewErr == nil || i == 0 { // break // } // i -= 1 // } // if reviewErr != nil || "pass" != *suggestion { // // 交给人工审核 // dao.LocalLifeReviewDao{}.UpdateLocalReview(&entity.ReviewLocalLife{ID: reviewLocalLife.ID, Status: 3}) // continue // } // } // if reviewLocalLife.TeamBuyingMainPhoto != "" { // var suggestion *string // var reviewErr error // i := 3 // for { // suggestion, reviewErr = reviewService.CheckImage(reviewLocalLife.TeamBuyingMainPhoto) // if reviewErr == nil || i == 0 { // break // } // i -= 1 // } // if reviewErr != nil || "pass" != *suggestion { // // 交给人工审核 // _ = dao.LocalLifeReviewDao{}.UpdateLocalReview(&entity.ReviewLocalLife{ID: reviewLocalLife.ID, Status: 3}) // continue // } // } // // images := strings.Split(reviewLocalLife.Images, ",") // imageFlag := false // for _, image := range images { // if image != "" { // var suggestion *string // var reviewErr error // i := 3 // for { // suggestion, reviewErr = reviewService.CheckImage(image) // if reviewErr == nil || i == 0 { // break // } // i -= 1 // } // if reviewErr != nil || "pass" != *suggestion { // imageFlag = true // break // } // } // } // if imageFlag { // // 交给人工审核 // _ = dao.LocalLifeReviewDao{}.UpdateLocalReview(&entity.ReviewLocalLife{ID: reviewLocalLife.ID, Status: 3}) // continue // } // // documentJobIds := strings.Split(reviewLocalLife.DocumentJobIds, ",") // documentFlag := 0 // 0通过 1未通过 2正在运行 // for _, documentJobId := range documentJobIds { // if documentJobId != "" { // var status *string // var suggestion *string // var reviewErr error // i := 3 // for { // status, suggestion, reviewErr = reviewService.CheckDocumentInfo(documentJobId) // if reviewErr == nil || i == 0 { // break // } // i -= 1 // } // if reviewErr == nil && "running" == *status { // documentFlag = 2 // break // } // if reviewErr != nil || "failed" == *status || "pass" != *suggestion { // documentFlag = 1 // break // } // } // } // if documentFlag == 2 { // continue // } else if documentFlag == 1 { // // 交给人工审核 // _ = dao.LocalLifeReviewDao{}.UpdateLocalReview(&entity.ReviewLocalLife{ID: reviewLocalLife.ID, Status: 3}) // continue // } // // videoJobIds := strings.Split(reviewLocalLife.VideoJobIds, ",") // videoFlag := 0 // 0通过 1未通过 2正在运行 // for _, videoJobId := range videoJobIds { // if videoJobId != "" { // var status *string // var suggestion *string // var reviewErr error // i := 3 // for { // status, suggestion, reviewErr = reviewService.CheckVideoInfo(videoJobId) // if reviewErr == nil || i == 0 { // break // } // i -= 1 // } // if reviewErr == nil && "running" == *status { // videoFlag = 2 // break // } // if reviewErr != nil || "failed" == *status || "pass" != *suggestion { // videoFlag = 1 // break // } // } // } // if videoFlag == 2 { // continue // } else if videoFlag == 1 { // // 交给人工审核 // _ = dao.LocalLifeReviewDao{}.UpdateLocalReview(&entity.ReviewLocalLife{ID: reviewLocalLife.ID, Status: 3}) // continue // } // // // 审核通过 // _ = dao.LocalLifeReviewDao{}.UpdateLocalReview(&entity.ReviewLocalLife{ID: reviewLocalLife.ID, Status: 2}) // _ = dao.LocalLifeDao{}.UpdateLocal(entity.LocalLifeInfo{LocalID: reviewLocalLife.LocalID, TaskStatus: 4}) // } // // log.Println("AutoLocalLifeInvalidTask running End, Time :", time.Now()) //}