auto_task_review.go 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679
  1. package schedule
  2. import (
  3. "github.com/robfig/cron/v3"
  4. "log"
  5. "strings"
  6. "time"
  7. "youngee_b_api/app/dao"
  8. "youngee_b_api/app/entity"
  9. "youngee_b_api/app/service/review_service"
  10. )
  11. func AutoTaskReview() error {
  12. // 新建一个定时任务对象
  13. crontab := cron.New(cron.WithSeconds()) // 精确到秒
  14. spec := "0 */1 * * * ?" //cron表达式,每1分钟一次
  15. // "0 0 12 * * ?" 每天中午12点执行
  16. // 添加定时任务
  17. // 定时任务1 品牌种草API自动审核
  18. _, err1 := crontab.AddFunc(spec, AutoProjectReviewTask)
  19. if err1 != nil {
  20. return err1
  21. }
  22. // 定时任务2 电商带货API自动审核
  23. _, err2 := crontab.AddFunc(spec, AutoSelectionReviewTask)
  24. if err2 != nil {
  25. return err2
  26. }
  27. // 定时任务3 本地生活API自动审核
  28. _, err3 := crontab.AddFunc(spec, AutoLocalLifeReviewTask)
  29. if err3 != nil {
  30. return err3
  31. }
  32. // 启动定时器
  33. crontab.Start()
  34. // 定时任务是另起协程执行的,这里使用 select 简单阻塞.需要根据实际情况进行控制
  35. //select {} //阻塞主线程停止
  36. return nil
  37. }
  38. // 定时任务1 品牌种草API自动审核
  39. func AutoProjectReviewTask() {
  40. log.Println("AutoProjectReviewTask running Start, Time :", time.Now())
  41. var reviewProjects []*entity.ReviewProject
  42. reviewProjects, _ = dao.ProjectReviewDao{}.GetProjectReviewByStatus(1)
  43. reviewService := review_service.GetConfig()
  44. for _, reviewProject := range reviewProjects {
  45. if reviewProject.TaskName != "" {
  46. var suggestion *string
  47. var reviewErr error
  48. i := 3
  49. for {
  50. suggestion, reviewErr = reviewService.CheckContent(reviewProject.TaskName)
  51. if reviewErr == nil || i == 0 {
  52. break
  53. }
  54. i -= 1
  55. }
  56. if reviewErr != nil || "pass" != *suggestion {
  57. // 交给人工审核
  58. _ = dao.ProjectReviewDao{}.UpdateProjectReview(&entity.ReviewProject{ID: reviewProject.ID, Status: 3})
  59. continue
  60. }
  61. }
  62. if reviewProject.TaskDetail != "" {
  63. var suggestion *string
  64. var reviewErr error
  65. i := 3
  66. for {
  67. suggestion, reviewErr = reviewService.CheckContent(reviewProject.TaskDetail)
  68. if reviewErr == nil || i == 0 {
  69. break
  70. }
  71. i -= 1
  72. }
  73. if reviewErr != nil || "pass" != *suggestion {
  74. // 交给人工审核
  75. _ = dao.ProjectReviewDao{}.UpdateProjectReview(&entity.ReviewProject{ID: reviewProject.ID, Status: 3})
  76. continue
  77. }
  78. }
  79. if reviewProject.ProductName != "" {
  80. var suggestion *string
  81. var reviewErr error
  82. i := 3
  83. for {
  84. suggestion, reviewErr = reviewService.CheckContent(reviewProject.ProductName)
  85. if reviewErr == nil || i == 0 {
  86. break
  87. }
  88. i -= 1
  89. }
  90. if reviewErr != nil || "pass" != *suggestion {
  91. // 交给人工审核
  92. _ = dao.ProjectReviewDao{}.UpdateProjectReview(&entity.ReviewProject{ID: reviewProject.ID, Status: 3})
  93. continue
  94. }
  95. }
  96. if reviewProject.ProductDetail != "" {
  97. var suggestion *string
  98. var reviewErr error
  99. i := 3
  100. for {
  101. suggestion, reviewErr = reviewService.CheckContent(reviewProject.ProductDetail)
  102. if reviewErr == nil || i == 0 {
  103. break
  104. }
  105. i -= 1
  106. }
  107. if reviewErr != nil || "pass" != *suggestion {
  108. // 交给人工审核
  109. dao.ProjectReviewDao{}.UpdateProjectReview(&entity.ReviewProject{ID: reviewProject.ID, Status: 3})
  110. continue
  111. }
  112. }
  113. if reviewProject.MainPhoto != "" {
  114. var suggestion *string
  115. var reviewErr error
  116. i := 3
  117. for {
  118. suggestion, reviewErr = reviewService.CheckImage(reviewProject.MainPhoto)
  119. if reviewErr == nil || i == 0 {
  120. break
  121. }
  122. i -= 1
  123. }
  124. if reviewErr != nil || "pass" != *suggestion {
  125. // 交给人工审核
  126. _ = dao.ProjectReviewDao{}.UpdateProjectReview(&entity.ReviewProject{ID: reviewProject.ID, Status: 3})
  127. continue
  128. }
  129. }
  130. images := strings.Split(reviewProject.Images, ",")
  131. imageFlag := false
  132. for _, image := range images {
  133. if image != "" {
  134. var suggestion *string
  135. var reviewErr error
  136. i := 3
  137. for {
  138. suggestion, reviewErr = reviewService.CheckImage(image)
  139. if reviewErr == nil || i == 0 {
  140. break
  141. }
  142. i -= 1
  143. }
  144. if reviewErr != nil || "pass" != *suggestion {
  145. imageFlag = true
  146. break
  147. }
  148. }
  149. }
  150. if imageFlag {
  151. // 交给人工审核
  152. _ = dao.ProjectReviewDao{}.UpdateProjectReview(&entity.ReviewProject{ID: reviewProject.ID, Status: 3})
  153. continue
  154. }
  155. documentJobIds := strings.Split(reviewProject.DocumentJobIds, ",")
  156. documentFlag := 0 // 0通过 1未通过 2正在运行
  157. for _, documentJobId := range documentJobIds {
  158. if documentJobId != "" {
  159. var status *string
  160. var suggestion *string
  161. var reviewErr error
  162. i := 3
  163. for {
  164. status, suggestion, reviewErr = reviewService.CheckDocumentInfo(documentJobId)
  165. if reviewErr == nil || i == 0 {
  166. break
  167. }
  168. i -= 1
  169. }
  170. if reviewErr == nil && "running" == *status {
  171. documentFlag = 2
  172. break
  173. }
  174. if reviewErr != nil || "failed" == *status || "pass" != *suggestion {
  175. documentFlag = 1
  176. break
  177. }
  178. }
  179. }
  180. if documentFlag == 2 {
  181. continue
  182. } else if documentFlag == 1 {
  183. // 交给人工审核
  184. _ = dao.ProjectReviewDao{}.UpdateProjectReview(&entity.ReviewProject{ID: reviewProject.ID, Status: 3})
  185. continue
  186. }
  187. videoJobIds := strings.Split(reviewProject.VideoJobIds, ",")
  188. videoFlag := 0 // 0通过 1未通过 2正在运行
  189. for _, videoJobId := range videoJobIds {
  190. if videoJobId != "" {
  191. var status *string
  192. var suggestion *string
  193. var reviewErr error
  194. i := 3
  195. for {
  196. status, suggestion, reviewErr = reviewService.CheckVideoInfo(videoJobId)
  197. if reviewErr == nil || i == 0 {
  198. break
  199. }
  200. i -= 1
  201. }
  202. if reviewErr == nil && "running" == *status {
  203. videoFlag = 2
  204. break
  205. }
  206. if reviewErr != nil || "failed" == *status || "pass" != *suggestion {
  207. videoFlag = 1
  208. break
  209. }
  210. }
  211. }
  212. if videoFlag == 2 {
  213. continue
  214. } else if videoFlag == 1 {
  215. // 交给人工审核
  216. _ = dao.ProjectReviewDao{}.UpdateProjectReview(&entity.ReviewProject{ID: reviewProject.ID, Status: 3})
  217. continue
  218. }
  219. // 审核通过
  220. t := time.Now()
  221. _ = dao.ProjectReviewDao{}.UpdateProjectReview(&entity.ReviewProject{ID: reviewProject.ID, Status: 2})
  222. _ = dao.ProjectDAO{}.UpdateProject(entity.Project{ProjectId: reviewProject.ProjectID, ProjectStatus: 4, PassAt: t})
  223. }
  224. log.Println("AutoProjectReviewTask running End, Time :", time.Now())
  225. }
  226. // 定时任务2 电商带货API自动审核
  227. func AutoSelectionReviewTask() {
  228. log.Println("AutoSelectionInvalidTask running Start, Time :", time.Now())
  229. var reviewSelections []*entity.ReviewSelection
  230. reviewSelections, _ = dao.SelectionReviewDao{}.GetSelectionReviewByStatus(1)
  231. reviewService := review_service.GetConfig()
  232. for _, reviewSelection := range reviewSelections {
  233. if reviewSelection.TaskName != "" {
  234. var suggestion *string
  235. var reviewErr error
  236. i := 3
  237. for {
  238. suggestion, reviewErr = reviewService.CheckContent(reviewSelection.TaskName)
  239. if reviewErr == nil || i == 0 {
  240. break
  241. }
  242. i -= 1
  243. }
  244. if reviewErr != nil || "pass" != *suggestion {
  245. // 交给人工审核
  246. _ = dao.SelectionReviewDao{}.UpdateSelectionReview(&entity.ReviewSelection{ID: reviewSelection.ID, Status: 3})
  247. continue
  248. }
  249. }
  250. if reviewSelection.ProductName != "" {
  251. var suggestion *string
  252. var reviewErr error
  253. i := 3
  254. for {
  255. suggestion, reviewErr = reviewService.CheckContent(reviewSelection.ProductName)
  256. if reviewErr == nil || i == 0 {
  257. break
  258. }
  259. i -= 1
  260. }
  261. if reviewErr != nil || "pass" != *suggestion {
  262. // 交给人工审核
  263. _ = dao.SelectionReviewDao{}.UpdateSelectionReview(&entity.ReviewSelection{ID: reviewSelection.ID, Status: 3})
  264. continue
  265. }
  266. }
  267. if reviewSelection.ProductDetail != "" {
  268. var suggestion *string
  269. var reviewErr error
  270. i := 3
  271. for {
  272. suggestion, reviewErr = reviewService.CheckContent(reviewSelection.ProductDetail)
  273. if reviewErr == nil || i == 0 {
  274. break
  275. }
  276. i -= 1
  277. }
  278. if reviewErr != nil || "pass" != *suggestion {
  279. // 交给人工审核
  280. dao.SelectionReviewDao{}.UpdateSelectionReview(&entity.ReviewSelection{ID: reviewSelection.ID, Status: 3})
  281. continue
  282. }
  283. }
  284. if reviewSelection.MainPhoto != "" {
  285. var suggestion *string
  286. var reviewErr error
  287. i := 3
  288. for {
  289. suggestion, reviewErr = reviewService.CheckImage(reviewSelection.MainPhoto)
  290. if reviewErr == nil || i == 0 {
  291. break
  292. }
  293. i -= 1
  294. }
  295. if reviewErr != nil || "pass" != *suggestion {
  296. // 交给人工审核
  297. _ = dao.SelectionReviewDao{}.UpdateSelectionReview(&entity.ReviewSelection{ID: reviewSelection.ID, Status: 3})
  298. continue
  299. }
  300. }
  301. images := strings.Split(reviewSelection.Images, ",")
  302. imageFlag := false
  303. for _, image := range images {
  304. if image != "" {
  305. var suggestion *string
  306. var reviewErr error
  307. i := 3
  308. for {
  309. suggestion, reviewErr = reviewService.CheckImage(image)
  310. if reviewErr == nil || i == 0 {
  311. break
  312. }
  313. i -= 1
  314. }
  315. if reviewErr != nil || "pass" != *suggestion {
  316. imageFlag = true
  317. break
  318. }
  319. }
  320. }
  321. if imageFlag {
  322. // 交给人工审核
  323. _ = dao.SelectionReviewDao{}.UpdateSelectionReview(&entity.ReviewSelection{ID: reviewSelection.ID, Status: 3})
  324. continue
  325. }
  326. documentJobIds := strings.Split(reviewSelection.DocumentJobIds, ",")
  327. documentFlag := 0 // 0通过 1未通过 2正在运行
  328. for _, documentJobId := range documentJobIds {
  329. if documentJobId != "" {
  330. var status *string
  331. var suggestion *string
  332. var reviewErr error
  333. i := 3
  334. for {
  335. status, suggestion, reviewErr = reviewService.CheckDocumentInfo(documentJobId)
  336. if reviewErr == nil || i == 0 {
  337. break
  338. }
  339. i -= 1
  340. }
  341. if reviewErr == nil && "running" == *status {
  342. documentFlag = 2
  343. break
  344. }
  345. if reviewErr != nil || "failed" == *status || "pass" != *suggestion {
  346. documentFlag = 1
  347. break
  348. }
  349. }
  350. }
  351. if documentFlag == 2 {
  352. continue
  353. } else if documentFlag == 1 {
  354. // 交给人工审核
  355. _ = dao.SelectionReviewDao{}.UpdateSelectionReview(&entity.ReviewSelection{ID: reviewSelection.ID, Status: 3})
  356. continue
  357. }
  358. videoJobIds := strings.Split(reviewSelection.VideoJobIds, ",")
  359. videoFlag := 0 // 0通过 1未通过 2正在运行
  360. for _, videoJobId := range videoJobIds {
  361. if videoJobId != "" {
  362. var status *string
  363. var suggestion *string
  364. var reviewErr error
  365. i := 3
  366. for {
  367. status, suggestion, reviewErr = reviewService.CheckVideoInfo(videoJobId)
  368. if reviewErr == nil || i == 0 {
  369. break
  370. }
  371. i -= 1
  372. }
  373. if reviewErr == nil && "running" == *status {
  374. videoFlag = 2
  375. break
  376. }
  377. if reviewErr != nil || "failed" == *status || "pass" != *suggestion {
  378. videoFlag = 1
  379. break
  380. }
  381. }
  382. }
  383. if videoFlag == 2 {
  384. continue
  385. } else if videoFlag == 1 {
  386. // 交给人工审核
  387. _ = dao.SelectionReviewDao{}.UpdateSelectionReview(&entity.ReviewSelection{ID: reviewSelection.ID, Status: 3})
  388. continue
  389. }
  390. // 审核通过
  391. t := time.Now()
  392. _ = dao.SelectionReviewDao{}.UpdateSelectionReview(&entity.ReviewSelection{ID: reviewSelection.ID, Status: 2})
  393. // 非悬赏任务审核通过直接变为执行中
  394. selection, _ := dao.SelectionInfoDAO{}.GetSelectionInfoById(reviewSelection.SelectionID)
  395. if selection != nil && selection.TaskMode == 2 {
  396. _ = dao.SelectionInfoDAO{}.UpdateSelectionInfo(entity.SelectionInfo{SelectionID: reviewSelection.SelectionID, SelectionStatus: 6, PassAt: t})
  397. } else {
  398. _ = dao.SelectionInfoDAO{}.UpdateSelectionInfo(entity.SelectionInfo{SelectionID: reviewSelection.SelectionID, SelectionStatus: 4, PassAt: t})
  399. }
  400. }
  401. log.Println("AutoSelectionInvalidTask running End, Time :", time.Now())
  402. }
  403. // 定时任务3 本地生活API自动审核
  404. func AutoLocalLifeReviewTask() {
  405. log.Println("AutoLocalLifeInvalidTask running Start, Time :", time.Now())
  406. var reviewLocalLifes []*entity.ReviewLocalLife
  407. reviewLocalLifes, _ = dao.LocalLifeReviewDao{}.GetLocalReviewByStatus(1)
  408. reviewService := review_service.GetConfig()
  409. for _, reviewLocalLife := range reviewLocalLifes {
  410. if reviewLocalLife.TaskName != "" {
  411. var suggestion *string
  412. var reviewErr error
  413. i := 3
  414. for {
  415. suggestion, reviewErr = reviewService.CheckContent(reviewLocalLife.TaskName)
  416. if reviewErr == nil || i == 0 {
  417. break
  418. }
  419. i -= 1
  420. }
  421. if reviewErr != nil || "pass" != *suggestion {
  422. // 交给人工审核
  423. _ = dao.LocalLifeReviewDao{}.UpdateLocalReview(&entity.ReviewLocalLife{ID: reviewLocalLife.ID, Status: 3})
  424. continue
  425. }
  426. }
  427. if reviewLocalLife.TaskDetail != "" {
  428. var suggestion *string
  429. var reviewErr error
  430. i := 3
  431. for {
  432. suggestion, reviewErr = reviewService.CheckContent(reviewLocalLife.TaskDetail)
  433. if reviewErr == nil || i == 0 {
  434. break
  435. }
  436. i -= 1
  437. }
  438. if reviewErr != nil || "pass" != *suggestion {
  439. // 交给人工审核
  440. _ = dao.LocalLifeReviewDao{}.UpdateLocalReview(&entity.ReviewLocalLife{ID: reviewLocalLife.ID, Status: 3})
  441. continue
  442. }
  443. }
  444. if reviewLocalLife.StoreName != "" {
  445. var suggestion *string
  446. var reviewErr error
  447. i := 3
  448. for {
  449. suggestion, reviewErr = reviewService.CheckContent(reviewLocalLife.StoreName)
  450. if reviewErr == nil || i == 0 {
  451. break
  452. }
  453. i -= 1
  454. }
  455. if reviewErr != nil || "pass" != *suggestion {
  456. // 交给人工审核
  457. _ = dao.LocalLifeReviewDao{}.UpdateLocalReview(&entity.ReviewLocalLife{ID: reviewLocalLife.ID, Status: 3})
  458. continue
  459. }
  460. }
  461. if reviewLocalLife.StoreDetail != "" {
  462. var suggestion *string
  463. var reviewErr error
  464. i := 3
  465. for {
  466. suggestion, reviewErr = reviewService.CheckContent(reviewLocalLife.StoreDetail)
  467. if reviewErr == nil || i == 0 {
  468. break
  469. }
  470. i -= 1
  471. }
  472. if reviewErr != nil || "pass" != *suggestion {
  473. // 交给人工审核
  474. dao.LocalLifeReviewDao{}.UpdateLocalReview(&entity.ReviewLocalLife{ID: reviewLocalLife.ID, Status: 3})
  475. continue
  476. }
  477. }
  478. if reviewLocalLife.StoreMainPhoto != "" {
  479. var suggestion *string
  480. var reviewErr error
  481. i := 3
  482. for {
  483. suggestion, reviewErr = reviewService.CheckImage(reviewLocalLife.StoreMainPhoto)
  484. if reviewErr == nil || i == 0 {
  485. break
  486. }
  487. i -= 1
  488. }
  489. if reviewErr != nil || "pass" != *suggestion {
  490. // 交给人工审核
  491. _ = dao.LocalLifeReviewDao{}.UpdateLocalReview(&entity.ReviewLocalLife{ID: reviewLocalLife.ID, Status: 3})
  492. continue
  493. }
  494. }
  495. if reviewLocalLife.TeamBuyingName != "" {
  496. var suggestion *string
  497. var reviewErr error
  498. i := 3
  499. for {
  500. suggestion, reviewErr = reviewService.CheckContent(reviewLocalLife.TeamBuyingName)
  501. if reviewErr == nil || i == 0 {
  502. break
  503. }
  504. i -= 1
  505. }
  506. if reviewErr != nil || "pass" != *suggestion {
  507. // 交给人工审核
  508. _ = dao.LocalLifeReviewDao{}.UpdateLocalReview(&entity.ReviewLocalLife{ID: reviewLocalLife.ID, Status: 3})
  509. continue
  510. }
  511. }
  512. if reviewLocalLife.TeamBuyingDetail != "" {
  513. var suggestion *string
  514. var reviewErr error
  515. i := 3
  516. for {
  517. suggestion, reviewErr = reviewService.CheckContent(reviewLocalLife.TeamBuyingDetail)
  518. if reviewErr == nil || i == 0 {
  519. break
  520. }
  521. i -= 1
  522. }
  523. if reviewErr != nil || "pass" != *suggestion {
  524. // 交给人工审核
  525. dao.LocalLifeReviewDao{}.UpdateLocalReview(&entity.ReviewLocalLife{ID: reviewLocalLife.ID, Status: 3})
  526. continue
  527. }
  528. }
  529. if reviewLocalLife.TeamBuyingMainPhoto != "" {
  530. var suggestion *string
  531. var reviewErr error
  532. i := 3
  533. for {
  534. suggestion, reviewErr = reviewService.CheckImage(reviewLocalLife.TeamBuyingMainPhoto)
  535. if reviewErr == nil || i == 0 {
  536. break
  537. }
  538. i -= 1
  539. }
  540. if reviewErr != nil || "pass" != *suggestion {
  541. // 交给人工审核
  542. _ = dao.LocalLifeReviewDao{}.UpdateLocalReview(&entity.ReviewLocalLife{ID: reviewLocalLife.ID, Status: 3})
  543. continue
  544. }
  545. }
  546. images := strings.Split(reviewLocalLife.Images, ",")
  547. imageFlag := false
  548. for _, image := range images {
  549. if image != "" {
  550. var suggestion *string
  551. var reviewErr error
  552. i := 3
  553. for {
  554. suggestion, reviewErr = reviewService.CheckImage(image)
  555. if reviewErr == nil || i == 0 {
  556. break
  557. }
  558. i -= 1
  559. }
  560. if reviewErr != nil || "pass" != *suggestion {
  561. imageFlag = true
  562. break
  563. }
  564. }
  565. }
  566. if imageFlag {
  567. // 交给人工审核
  568. _ = dao.LocalLifeReviewDao{}.UpdateLocalReview(&entity.ReviewLocalLife{ID: reviewLocalLife.ID, Status: 3})
  569. continue
  570. }
  571. documentJobIds := strings.Split(reviewLocalLife.DocumentJobIds, ",")
  572. documentFlag := 0 // 0通过 1未通过 2正在运行
  573. for _, documentJobId := range documentJobIds {
  574. if documentJobId != "" {
  575. var status *string
  576. var suggestion *string
  577. var reviewErr error
  578. i := 3
  579. for {
  580. status, suggestion, reviewErr = reviewService.CheckDocumentInfo(documentJobId)
  581. if reviewErr == nil || i == 0 {
  582. break
  583. }
  584. i -= 1
  585. }
  586. if reviewErr == nil && "running" == *status {
  587. documentFlag = 2
  588. break
  589. }
  590. if reviewErr != nil || "failed" == *status || "pass" != *suggestion {
  591. documentFlag = 1
  592. break
  593. }
  594. }
  595. }
  596. if documentFlag == 2 {
  597. continue
  598. } else if documentFlag == 1 {
  599. // 交给人工审核
  600. _ = dao.LocalLifeReviewDao{}.UpdateLocalReview(&entity.ReviewLocalLife{ID: reviewLocalLife.ID, Status: 3})
  601. continue
  602. }
  603. videoJobIds := strings.Split(reviewLocalLife.VideoJobIds, ",")
  604. videoFlag := 0 // 0通过 1未通过 2正在运行
  605. for _, videoJobId := range videoJobIds {
  606. if videoJobId != "" {
  607. var status *string
  608. var suggestion *string
  609. var reviewErr error
  610. i := 3
  611. for {
  612. status, suggestion, reviewErr = reviewService.CheckVideoInfo(videoJobId)
  613. if reviewErr == nil || i == 0 {
  614. break
  615. }
  616. i -= 1
  617. }
  618. if reviewErr == nil && "running" == *status {
  619. videoFlag = 2
  620. break
  621. }
  622. if reviewErr != nil || "failed" == *status || "pass" != *suggestion {
  623. videoFlag = 1
  624. break
  625. }
  626. }
  627. }
  628. if videoFlag == 2 {
  629. continue
  630. } else if videoFlag == 1 {
  631. // 交给人工审核
  632. _ = dao.LocalLifeReviewDao{}.UpdateLocalReview(&entity.ReviewLocalLife{ID: reviewLocalLife.ID, Status: 3})
  633. continue
  634. }
  635. // 审核通过
  636. t := time.Now()
  637. _ = dao.LocalLifeReviewDao{}.UpdateLocalReview(&entity.ReviewLocalLife{ID: reviewLocalLife.ID, Status: 2})
  638. _ = dao.LocalLifeDao{}.UpdateLocal(entity.LocalLifeInfo{LocalID: reviewLocalLife.LocalID, TaskStatus: 4, PassAt: t})
  639. }
  640. log.Println("AutoLocalLifeInvalidTask running End, Time :", time.Now())
  641. }