sketch.go 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524
  1. package db
  2. import (
  3. "context"
  4. "fmt"
  5. "reflect"
  6. "strconv"
  7. "strings"
  8. "time"
  9. "youngee_b_api/model/common_model"
  10. "youngee_b_api/model/gorm_model"
  11. "youngee_b_api/model/http_model"
  12. "youngee_b_api/pack"
  13. "youngee_b_api/util"
  14. "github.com/issue9/conv"
  15. "github.com/sirupsen/logrus"
  16. )
  17. // GetTaskSketchList 查询上传初稿的task list
  18. func GetTaskSketchList(ctx context.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) ([]*http_model.TaskSketchInfo, int64, error) {
  19. db := GetReadDB(ctx)
  20. // 查询Task表信息
  21. db = db.Debug().Model(gorm_model.YoungeeTaskInfo{}).Where("task_status = 2")
  22. // 根据Project条件过滤
  23. conditionType := reflect.TypeOf(conditions).Elem()
  24. conditionValue := reflect.ValueOf(conditions).Elem()
  25. var platform_nickname string = ""
  26. for i := 0; i < conditionType.NumField(); i++ {
  27. field := conditionType.Field(i)
  28. tag := field.Tag.Get("condition")
  29. value := conditionValue.FieldByName(field.Name)
  30. if tag == "sketch_status" {
  31. fmt.Printf("sketch %+v", value.Interface() == int64(0))
  32. if value.Interface() == int64(0) {
  33. db = db.Where("task_stage = 10")
  34. } else {
  35. db = db.Where("task_stage > 10 and task_stage <> 16")
  36. }
  37. continue
  38. } else if !util.IsBlank(value) {
  39. if tag == "platform_nickname" {
  40. platform_nickname = fmt.Sprintf("%v", value.Interface())
  41. continue
  42. } else if tag == "project_id" || tag == "strategy_id" {
  43. db = db.Where(fmt.Sprintf("%s = ?", tag), value.Interface())
  44. }
  45. }
  46. }
  47. var taskInfos []gorm_model.YoungeeTaskInfo
  48. db = db.Model(gorm_model.YoungeeTaskInfo{})
  49. // 查询总数
  50. var totalTask int64
  51. if err := db.Count(&totalTask).Error; err != nil {
  52. logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
  53. return nil, 0, err
  54. }
  55. db.Order("task_id").Find(&taskInfos)
  56. // 查询任务id
  57. var taskIds []string
  58. taskMap := make(map[string]gorm_model.YoungeeTaskInfo)
  59. for _, taskInfo := range taskInfos {
  60. taskIds = append(taskIds, taskInfo.TaskID)
  61. taskMap[taskInfo.TaskID] = taskInfo
  62. }
  63. db1 := GetReadDB(ctx)
  64. db1 = db1.Debug().Model(gorm_model.YounggeeSketchInfo{})
  65. var SketchInfos []gorm_model.YounggeeSketchInfo
  66. db1 = db1.Model(gorm_model.YounggeeSketchInfo{}).Where("task_id IN ? AND is_submit=? ", taskIds, 1)
  67. if conditions.SketchStatus == int64(0) {
  68. db1 = db1.Where("is_review = 0").Find(&SketchInfos)
  69. } else {
  70. db1 = db1.Where("is_ok = 1").Find(&SketchInfos)
  71. }
  72. fmt.Printf("初稿查询:%+v", SketchInfos)
  73. SketchMap := make(map[string]gorm_model.YounggeeSketchInfo)
  74. for _, SketchInfo := range SketchInfos {
  75. SketchMap[SketchInfo.TaskID] = SketchInfo
  76. }
  77. // 查询总数
  78. var totalSketch int64
  79. if err := db1.Count(&totalSketch).Error; err != nil {
  80. logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
  81. return nil, 0, err
  82. }
  83. var misNum int64
  84. if totalSketch > totalTask {
  85. misNum = totalSketch - totalTask
  86. } else {
  87. misNum = totalTask - totalSketch
  88. }
  89. logrus.Println("totalSketch,totalTalent,misNum:", totalSketch, totalTask, misNum)
  90. // 查询该页数据
  91. limit := pageSize + misNum
  92. offset := pageSize * pageNum // assert pageNum start with 0
  93. //fmt.Printf("limit %+v offset %+v \n", limit, offset)
  94. err := db.Order("task_id").Limit(int(limit)).Offset(int(offset)).Error
  95. if err != nil {
  96. logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
  97. return nil, 0, err
  98. }
  99. var TaskSketches []*http_model.TaskSketch
  100. var taskSketches []*http_model.TaskSketchInfo
  101. var newTaskSketches []*http_model.TaskSketchInfo
  102. for _, taskId := range taskIds {
  103. TaskSketch := new(http_model.TaskSketch)
  104. TaskSketch.Talent = taskMap[taskId]
  105. TaskSketch.Sketch = SketchMap[taskId]
  106. TaskSketches = append(TaskSketches, TaskSketch)
  107. }
  108. taskSketches = pack.TaskSketchToTaskInfo(TaskSketches)
  109. for _, v := range taskSketches {
  110. if platform_nickname == "" {
  111. newTaskSketches = append(newTaskSketches, v)
  112. } else if strings.Contains(v.PlatformNickname, platform_nickname) {
  113. newTaskSketches = append(newTaskSketches, v)
  114. } else if strings.Contains(conv.MustString(v.TaskID), platform_nickname) {
  115. newTaskSketches = append(newTaskSketches, v)
  116. } else {
  117. totalTask--
  118. }
  119. }
  120. return newTaskSketches, totalTask, nil
  121. }
  122. // SketchOption 提交意见
  123. func SketchOption(ctx context.Context, TaskID string, ReviseOpinion string, operatorid string, operatetype int, projectid string) error {
  124. db := GetReadDB(ctx)
  125. fmt.Printf("初稿意见 %d %+v", TaskID, ReviseOpinion)
  126. err := db.Model(gorm_model.YounggeeSketchInfo{}).Where("task_id = ? and is_review = 0", TaskID).Updates(map[string]interface{}{"revise_opinion": ReviseOpinion, "reject_at": time.Now(), "is_review": 1, "b_operator": operatorid, "b_operator_type": operatetype}).Error
  127. if err != nil {
  128. logrus.WithContext(ctx).Errorf("[Sketch db] call RevisieOption error,err:%+v", err)
  129. return err
  130. }
  131. var project gorm_model.ProjectInfo
  132. err = db.Model(gorm_model.ProjectInfo{}).Where("project_id = ?", projectid).Find(&project).Error
  133. if err != nil {
  134. logrus.WithContext(ctx).Errorf("[Sketch db] Find ProjectInfo error,err:%+v", err)
  135. return err
  136. }
  137. var draft_default gorm_model.InfoAutoTask
  138. err = db.Model(gorm_model.InfoAutoTask{}).Where("auto_task_id = ?", project.AutoTaskID).Find(&draft_default).Error
  139. if err != nil {
  140. return err
  141. }
  142. duration := time.Duration(draft_default.DraftDefault) * time.Hour
  143. err = db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id = ?", TaskID).Updates(gorm_model.YoungeeTaskInfo{SketchStatus: 3, CurBreakAt: time.Now().Add(duration)}).Error
  144. if err != nil {
  145. logrus.WithContext(ctx).Errorf("[Sketch db] Update YoungeeTaskInfo error,err:%+v", err)
  146. return err
  147. }
  148. err = db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id = ?", TaskID).Updates(gorm_model.YoungeeTaskInfo{TaskStage: 9}).Error
  149. if err != nil {
  150. logrus.WithContext(ctx).Errorf("[Sketch db] Update YoungeeTaskInfo error,err:%+v", err)
  151. return err
  152. }
  153. return nil
  154. }
  155. // SketchOption 提交意见
  156. func LocalSketchOption(ctx context.Context, TaskID string, ReviseOpinion string, operatorid string, operatetype int, projectid string) error {
  157. db := GetReadDB(ctx)
  158. fmt.Printf("初稿意见 %d %+v", TaskID, ReviseOpinion)
  159. err := db.Model(gorm_model.YounggeeSketchInfo{}).Where("task_id = ? and is_review = 0", TaskID).Updates(map[string]interface{}{"revise_opinion": ReviseOpinion, "reject_at": time.Now(), "is_review": 1, "b_operator": operatorid, "b_operator_type": operatetype}).Error
  160. if err != nil {
  161. logrus.WithContext(ctx).Errorf("[Sketch db] call RevisieOption error,err:%+v", err)
  162. return err
  163. }
  164. var project gorm_model.YounggeeLocalLifeInfo
  165. err = db.Model(gorm_model.YounggeeLocalLifeInfo{}).Where("local_id = ?", projectid).Find(&project).Error
  166. if err != nil {
  167. logrus.WithContext(ctx).Errorf("[Sketch db] Find ProjectInfo error,err:%+v", err)
  168. return err
  169. }
  170. var draft_default gorm_model.InfoAutoTask
  171. err = db.Model(gorm_model.InfoAutoTask{}).Where("auto_task_id = ?", project.AutoTaskId).Find(&draft_default).Error
  172. if err != nil {
  173. return err
  174. }
  175. duration := time.Duration(draft_default.DraftDefault) * time.Hour
  176. err = db.Model(gorm_model.YoungeeLocalTaskInfo{}).Where("task_id = ?", TaskID).Updates(gorm_model.YoungeeLocalTaskInfo{SketchStatus: 3, CurBreakAt: time.Now().Add(duration)}).Error
  177. if err != nil {
  178. logrus.WithContext(ctx).Errorf("[Sketch db] Update YoungeeTaskInfo error,err:%+v", err)
  179. return err
  180. }
  181. err = db.Model(gorm_model.YoungeeLocalTaskInfo{}).Where("task_id = ?", TaskID).Updates(gorm_model.YoungeeLocalTaskInfo{TaskStage: 9}).Error
  182. if err != nil {
  183. logrus.WithContext(ctx).Errorf("[Sketch db] Update YoungeeTaskInfo error,err:%+v", err)
  184. return err
  185. }
  186. return nil
  187. }
  188. // AcceptSketch 同意初稿
  189. func AcceptSketch(ctx context.Context, TaskIDs []string, operatorid string, operatetype int, projectid string, isspecial int) error {
  190. db := GetReadDB(ctx)
  191. err := db.Model(gorm_model.YounggeeSketchInfo{}).Where("task_id in ? and is_review = 0", TaskIDs).Updates(map[string]interface{}{"is_ok": 1, "is_review": 1, "agree_at": time.Now(), "b_operator": operatorid, "b_operator_type": operatetype}).Error
  192. if err != nil {
  193. logrus.WithContext(ctx).Errorf("[Sketch db] Update YounggeeSketchInfo error,err:%+v", err)
  194. return err
  195. }
  196. var project gorm_model.ProjectInfo
  197. err = db.Model(gorm_model.ProjectInfo{}).Where("project_id = ?", projectid).Find(&project).Error
  198. if err != nil {
  199. logrus.WithContext(ctx).Errorf("[Sketch db] Find ProjectInfo error,err:%+v", err)
  200. return err
  201. }
  202. taskstages := 11
  203. nextstage := [6]int{0, 0, 0, 0, 0, 0} // 数组长度为6,表示6种工具 4,9,11,13
  204. if isspecial == 1 {
  205. toolList := strings.Split(project.Tools, ",")
  206. for _, tool := range toolList {
  207. // 将 tool 转换为整数
  208. if t, err := strconv.Atoi(tool); err == nil && t >= 0 && t <= len(nextstage) {
  209. nextstage[t-1] = 1
  210. }
  211. }
  212. for i := 3; i < len(nextstage); i++ { // 从位置1开始
  213. if nextstage[i] == 1 {
  214. switch i {
  215. case 3:
  216. taskstages = 11
  217. case 4:
  218. taskstages = 13
  219. case 5:
  220. taskstages = 15
  221. }
  222. break
  223. }
  224. }
  225. }
  226. var link_default gorm_model.InfoAutoTask
  227. err = db.Model(gorm_model.InfoAutoTask{}).Where("auto_task_id = ?", project.AutoTaskID).Find(&link_default).Error
  228. if err != nil {
  229. return err
  230. }
  231. duration := time.Duration(link_default.LinkBreach) * time.Hour
  232. err = db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id in ?", TaskIDs).Updates(gorm_model.YoungeeTaskInfo{SketchStatus: 5, CurBreakAt: time.Now().Add(duration)}).Error
  233. if err != nil {
  234. logrus.WithContext(ctx).Errorf("[Sketch db] Update YoungeeTaskInfo error,err:%+v", err)
  235. return err
  236. }
  237. err = db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id in ?", TaskIDs).Updates(gorm_model.YoungeeTaskInfo{TaskStage: taskstages}).Error
  238. if err != nil {
  239. logrus.WithContext(ctx).Errorf("[Sketch db] Update YoungeeTaskInfo error,err:%+v", err)
  240. return err
  241. }
  242. return nil
  243. }
  244. // AcceptSketch 同意初稿
  245. func LocalAcceptSketch(ctx context.Context, TaskIDs []string, operatorid string, operatetype int, projectid string, isspecial int) error {
  246. db := GetReadDB(ctx)
  247. err := db.Model(gorm_model.YounggeeSketchInfo{}).Where("task_id in ? and is_review = 0", TaskIDs).Updates(map[string]interface{}{"is_ok": 1, "is_review": 1, "agree_at": time.Now(), "b_operator": operatorid, "b_operator_type": operatetype}).Error
  248. if err != nil {
  249. logrus.WithContext(ctx).Errorf("[Sketch db] Update YounggeeSketchInfo error,err:%+v", err)
  250. return err
  251. }
  252. var project gorm_model.YounggeeLocalLifeInfo
  253. err = db.Model(gorm_model.YounggeeLocalLifeInfo{}).Where("LocalId = ?", projectid).Find(&project).Error
  254. if err != nil {
  255. logrus.WithContext(ctx).Errorf("[Sketch db] Find ProjectInfo error,err:%+v", err)
  256. return err
  257. }
  258. taskstages := 11
  259. nextstage := [6]int{0, 0, 0, 0, 0, 0} // 数组长度为6,表示6种工具 4,9,11,13
  260. if isspecial == 1 {
  261. toolList := strings.Split(project.Tools, ",")
  262. for _, tool := range toolList {
  263. // 将 tool 转换为整数
  264. if t, err := strconv.Atoi(tool); err == nil && t >= 0 && t <= len(nextstage) {
  265. nextstage[t-1] = 1
  266. }
  267. }
  268. for i := 3; i < len(nextstage); i++ { // 从位置1开始
  269. if nextstage[i] == 1 {
  270. switch i {
  271. case 3:
  272. taskstages = 11
  273. case 4:
  274. taskstages = 13
  275. case 5:
  276. taskstages = 15
  277. }
  278. break
  279. }
  280. }
  281. }
  282. var link_default gorm_model.InfoAutoTask
  283. err = db.Model(gorm_model.InfoAutoTask{}).Where("auto_task_id = ?", project.AutoTaskId).Find(&link_default).Error //待确认
  284. if err != nil {
  285. return err
  286. }
  287. duration := time.Duration(link_default.LinkBreach) * time.Hour
  288. err = db.Model(gorm_model.YoungeeLocalTaskInfo{}).Where("task_id in ?", TaskIDs).Updates(gorm_model.YoungeeLocalTaskInfo{SketchStatus: 5, CurBreakAt: time.Now().Add(duration)}).Error
  289. if err != nil {
  290. logrus.WithContext(ctx).Errorf("[Sketch db] Update YoungeeTaskInfo error,err:%+v", err)
  291. return err
  292. }
  293. err = db.Model(gorm_model.YoungeeLocalTaskInfo{}).Where("task_id in ?", TaskIDs).Updates(gorm_model.YoungeeLocalTaskInfo{TaskStage: taskstages}).Error
  294. if err != nil {
  295. logrus.WithContext(ctx).Errorf("[Sketch db] Update YoungeeTaskInfo error,err:%+v", err)
  296. return err
  297. }
  298. return nil
  299. }
  300. // RejectSketch 不同意初稿
  301. func RejectSketch(ctx context.Context, TaskIDs []string, operatorid string, operatetype int, projectid string) error {
  302. db := GetReadDB(ctx)
  303. err := db.Model(gorm_model.YounggeeSketchInfo{}).Where("task_id in ? and is_review = 0", TaskIDs).Updates(map[string]interface{}{"is_ok": 0, "is_review": 1, "reject_at": time.Now(), "b_operator": operatorid, "b_operator_type": operatetype}).Error
  304. if err != nil {
  305. logrus.WithContext(ctx).Errorf("[Sketch db] Update YounggeeSketchInfo error,err:%+v", err)
  306. return err
  307. }
  308. var project gorm_model.ProjectInfo
  309. err = db.Model(gorm_model.ProjectInfo{}).Where("project_id = ?", projectid).Find(&project).Error
  310. if err != nil {
  311. logrus.WithContext(ctx).Errorf("[Sketch db] Update YoungeeTaskInfo error,err:%+v", err)
  312. return err
  313. }
  314. var draft_default gorm_model.InfoAutoTask
  315. err = db.Model(gorm_model.InfoAutoTask{}).Where("auto_task_id = ?", project.AutoTaskID).Find(&draft_default).Error
  316. if err != nil {
  317. return err
  318. }
  319. duration := time.Duration(draft_default.DraftDefault) * time.Hour
  320. err = db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id in ?", TaskIDs).Updates(gorm_model.YoungeeTaskInfo{SketchStatus: 3, CurBreakAt: time.Now().Add(duration)}).Error
  321. if err != nil {
  322. logrus.WithContext(ctx).Errorf("[Sketch db] Update YoungeeTaskInfo error,err:%+v", err)
  323. return err
  324. }
  325. err = db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id in ?", TaskIDs).Updates(gorm_model.YoungeeTaskInfo{TaskStage: 9}).Error
  326. if err != nil {
  327. logrus.WithContext(ctx).Errorf("[Sketch db] Update YoungeeTaskInfo error,err:%+v", err)
  328. return err
  329. }
  330. return nil
  331. }
  332. // RejectSketch 不同意初稿
  333. func LocalRejectSketch(ctx context.Context, TaskIDs []string, operatorid string, operatetype int, projectid string) error {
  334. db := GetReadDB(ctx)
  335. err := db.Model(gorm_model.YounggeeSketchInfo{}).Where("task_id in ? and is_review = 0", TaskIDs).Updates(map[string]interface{}{"is_ok": 0, "is_review": 1, "reject_at": time.Now(), "b_operator": operatorid, "b_operator_type": operatetype}).Error
  336. if err != nil {
  337. logrus.WithContext(ctx).Errorf("[Sketch db] Update YounggeeSketchInfo error,err:%+v", err)
  338. return err
  339. }
  340. var project gorm_model.YounggeeLocalLifeInfo
  341. err = db.Model(gorm_model.YounggeeLocalLifeInfo{}).Where("LocalId = ?", projectid).Find(&project).Error
  342. if err != nil {
  343. logrus.WithContext(ctx).Errorf("[Sketch db] Update YounggeeLocalLifeInfo error,err:%+v", err)
  344. return err
  345. }
  346. var draft_default gorm_model.InfoAutoTask
  347. err = db.Model(gorm_model.InfoAutoTask{}).Where("auto_task_id = ?", project.AutoTaskId).Find(&draft_default).Error
  348. if err != nil {
  349. return err
  350. }
  351. duration := time.Duration(draft_default.DraftDefault) * time.Hour
  352. err = db.Model(gorm_model.YoungeeLocalTaskInfo{}).Where("task_id in ?", TaskIDs).Updates(gorm_model.YoungeeLocalTaskInfo{SketchStatus: 3, CurBreakAt: time.Now().Add(duration)}).Error
  353. if err != nil {
  354. logrus.WithContext(ctx).Errorf("[Sketch db] Update YounggeeLocalLifeInfo error,err:%+v", err)
  355. return err
  356. }
  357. err = db.Model(gorm_model.YoungeeLocalTaskInfo{}).Where("task_id in ?", TaskIDs).Updates(gorm_model.YoungeeLocalTaskInfo{TaskStage: 9}).Error
  358. if err != nil {
  359. logrus.WithContext(ctx).Errorf("[Sketch db] Update YounggeeLocalLifeInfo error,err:%+v", err)
  360. return err
  361. }
  362. return nil
  363. }
  364. // FindPhoto
  365. func FindSketchInfo(ctx context.Context, TaskID string) (*gorm_model.YounggeeSketchInfo, error) {
  366. db := GetReadDB(ctx)
  367. var SketchInfo gorm_model.YounggeeSketchInfo
  368. err := db.Model(gorm_model.YounggeeSketchInfo{}).Where("task_id = ? and is_ok = 1", TaskID).Find(&SketchInfo).Error
  369. if err != nil {
  370. return nil, err
  371. }
  372. return &SketchInfo, nil
  373. }
  374. // FindPhoto
  375. func FindPhoto(ctx context.Context, SketchID int64) ([]gorm_model.YounggeeSketchPhoto, error) {
  376. db := GetReadDB(ctx)
  377. var SketchPhotos []gorm_model.YounggeeSketchPhoto
  378. err := db.Model(gorm_model.YounggeeSketchPhoto{}).Where("sketch_id=?", SketchID).Find(&SketchPhotos).Error
  379. if err != nil {
  380. return nil, err
  381. }
  382. return SketchPhotos, nil
  383. }
  384. // GetSpecialTaskSketchList 专项任务-查询上传初稿的task list
  385. func GetSpecialTaskSketchList(ctx context.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TalentConditions) ([]*http_model.SpecialTaskSketchInfo, int64, error) {
  386. db := GetReadDB(ctx)
  387. // 查询Task表信息
  388. db = db.Debug().Model(gorm_model.YoungeeTaskInfo{}).Where("task_status = 2")
  389. // 根据Project条件过滤
  390. conditionType := reflect.TypeOf(conditions).Elem()
  391. conditionValue := reflect.ValueOf(conditions).Elem()
  392. var platform_nickname string = ""
  393. for i := 0; i < conditionType.NumField(); i++ {
  394. field := conditionType.Field(i)
  395. tag := field.Tag.Get("condition")
  396. value := conditionValue.FieldByName(field.Name)
  397. if tag == "sketch_status" {
  398. fmt.Printf("sketch %+v", value.Interface() == int64(0))
  399. if value.Interface() == int64(0) {
  400. db = db.Where("task_stage = 10")
  401. } else {
  402. db = db.Where("task_stage > 10 and task_stage <> 16")
  403. }
  404. continue
  405. } else if !util.IsBlank(value) {
  406. if tag == "platform_nickname" {
  407. platform_nickname = fmt.Sprintf("%v", value.Interface())
  408. continue
  409. } else if tag == "project_id" {
  410. db = db.Where(fmt.Sprintf("%s = ?", tag), value.Interface())
  411. }
  412. }
  413. }
  414. var taskInfos []gorm_model.YoungeeTaskInfo
  415. db = db.Model(gorm_model.YoungeeTaskInfo{})
  416. // 查询总数
  417. var totalTask int64
  418. if err := db.Count(&totalTask).Error; err != nil {
  419. logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
  420. return nil, 0, err
  421. }
  422. db.Order("task_id").Find(&taskInfos)
  423. // 查询任务id
  424. var taskIds []string
  425. taskMap := make(map[string]gorm_model.YoungeeTaskInfo)
  426. for _, taskInfo := range taskInfos {
  427. taskIds = append(taskIds, taskInfo.TaskID)
  428. taskMap[taskInfo.TaskID] = taskInfo
  429. }
  430. db1 := GetReadDB(ctx)
  431. db1 = db1.Debug().Model(gorm_model.YounggeeSketchInfo{})
  432. var SketchInfos []gorm_model.YounggeeSketchInfo
  433. db1 = db1.Model(gorm_model.YounggeeSketchInfo{}).Where("task_id IN ? AND is_submit=? ", taskIds, 1)
  434. if conditions.SketchStatus == int64(0) {
  435. db1 = db1.Where("is_review = 0").Find(&SketchInfos)
  436. } else {
  437. db1 = db1.Where("is_ok = 1").Find(&SketchInfos)
  438. }
  439. //fmt.Printf("初稿查询:%+v", SketchInfos)
  440. SketchMap := make(map[string]gorm_model.YounggeeSketchInfo)
  441. for _, SketchInfo := range SketchInfos {
  442. SketchMap[SketchInfo.TaskID] = SketchInfo
  443. }
  444. // 查询总数
  445. var totalSketch int64
  446. if err := db1.Count(&totalSketch).Error; err != nil {
  447. logrus.WithContext(ctx).Errorf("[GetProjectTalentList] error query mysql total, err:%+v", err)
  448. return nil, 0, err
  449. }
  450. //// 查询该页数据
  451. //limit := pageSize
  452. //offset := pageSize * pageNum // assert pageNum start with 0
  453. //err := db.Order("task_id").Limit(int(limit)).Offset(int(offset)).Error
  454. //
  455. //if err != nil {
  456. // logrus.WithContext(ctx).Errorf("[GetProjectTaskList] error query mysql total, err:%+v", err)
  457. // return nil, 0, err
  458. //}
  459. var TaskSketches []*http_model.SpecialTaskSketch
  460. var taskSketches []*http_model.SpecialTaskSketchInfo
  461. var newTaskSketches []*http_model.SpecialTaskSketchInfo
  462. for _, taskId := range taskIds {
  463. TaskSketch := new(http_model.SpecialTaskSketch)
  464. TaskSketch.Talent = taskMap[taskId]
  465. TaskSketch.Sketch = SketchMap[taskId]
  466. TaskSketches = append(TaskSketches, TaskSketch)
  467. }
  468. taskSketches = pack.SpecialTaskSketchToTaskInfo(TaskSketches)
  469. for _, v := range taskSketches {
  470. if platform_nickname == "" {
  471. newTaskSketches = append(newTaskSketches, v)
  472. } else if strings.Contains(v.PlatformNickname, platform_nickname) {
  473. newTaskSketches = append(newTaskSketches, v)
  474. } else if strings.Contains(conv.MustString(v.TaskID), platform_nickname) {
  475. newTaskSketches = append(newTaskSketches, v)
  476. } else {
  477. totalTask--
  478. }
  479. }
  480. return newTaskSketches, totalTask, nil
  481. }