task_book.go 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. package youngee_task_service
  2. import (
  3. "github.com/gogf/gf/frame/g"
  4. "github.com/gogf/gf/net/ghttp"
  5. "github.com/gogf/gf/os/gtime"
  6. "strings"
  7. "youngmini_server/app/model/youngee_talent_model"
  8. )
  9. // 提交探店时间
  10. func AddLocalTaskBook(r *ghttp.Request) *TalentHttpResult {
  11. var bookInfoReq *youngee_talent_model.AddLocalTaskBookRequest
  12. //解析添加初稿的图文
  13. err := r.ParseForm(&bookInfoReq)
  14. if err != nil {
  15. return &TalentHttpResult{Code: -1, Msg: err.Error()}
  16. }
  17. taskbookInfo := []youngee_talent_model.LocalTaskBookInfo{}
  18. err = g.DB().Model("younggee_book_info").Where("task_id = ? ", bookInfoReq.TaskId).OrderDesc("create_at").Scan(&taskbookInfo)
  19. if err != nil {
  20. return &TalentHttpResult{Code: -2, Msg: "YounggeeSketchInfo find failed"}
  21. }
  22. //上传过但是被拒了
  23. var condition1 bool = len(taskbookInfo) != 0 && taskbookInfo[0].IsReview == 1 && taskbookInfo[0].IsOk == 0
  24. //没有上传过初稿
  25. var condition2 bool = len(taskbookInfo) == 0
  26. bookInfo := youngee_talent_model.LocalTaskBookInfo{
  27. TaskId: bookInfoReq.TaskId,
  28. Day: bookInfoReq.Day,
  29. Time: bookInfoReq.Time,
  30. CreateAt: gtime.Now(),
  31. IsReview: 0,
  32. IsSubmit: 0, //忽略
  33. IsOk: 0,
  34. }
  35. //只有这两种情况才能上传探店时间
  36. if condition1 || condition2 {
  37. //插入新数据
  38. _, err := g.DB().Model("younggee_book_info").Data(bookInfo).InsertAndGetId()
  39. if err != nil {
  40. return &TalentHttpResult{Code: -3, Msg: "YounggeeSketchInfo insert failed"}
  41. }
  42. }
  43. //修改task表中的字段待添加变成已添加,待修改变成已修改
  44. bookStatus, err := g.DB().Model("youngee_local_task_info").Fields("book_status").Where("task_id = ?", bookInfoReq.TaskId).Value()
  45. if err != nil {
  46. return &TalentHttpResult{Code: -5, Msg: "Get task info failed"}
  47. }
  48. if bookStatus.Int64() == 1 {
  49. _, err = g.Model("youngee_local_task_info").Where("task_id = ?", bookInfoReq.TaskId).Update(g.Map{"book_status": 2})
  50. if err != nil {
  51. return &TalentHttpResult{Code: -6, Msg: "YoungeeTaskInfo update failed"}
  52. }
  53. } else if bookStatus.Int64() == 3 {
  54. _, err = g.Model("youngee_local_task_info").Where("task_id = ?", bookInfoReq.TaskId).Update(g.Map{"book_status": 4})
  55. if err != nil {
  56. return &TalentHttpResult{Code: -6, Msg: "YoungeeTaskInfo update failed"}
  57. }
  58. }
  59. //task设置为预约确认中
  60. _, err = g.DB().Model("youngee_local_task_info").Data(g.Map{"task_stage": "5"}).Where("task_id = ?", bookInfoReq.TaskId).Update()
  61. //修改reserve_time
  62. bookTime, err := gtime.StrToTime(bookInfoReq.Day + " " + bookInfoReq.Time)
  63. if err != nil {
  64. return &TalentHttpResult{Code: -7, Msg: "Convert time failed"}
  65. }
  66. _, err = g.DB().Model("youngee_local_task_info").Data(g.Map{"reserve_time": bookTime}).Where("task_id = ?", bookInfoReq.TaskId).Update()
  67. if err != nil {
  68. return &TalentHttpResult{Code: -8, Msg: err.Error()}
  69. }
  70. return &TalentHttpResult{Code: 0, Msg: "success"}
  71. }
  72. // // 预约探店审核历史
  73. func GetLocalTaskBook(r *ghttp.Request) *TalentHttpResult {
  74. taskId := r.Get("task_id")
  75. res, err := g.DB().Model("younggee_book_info").Where("is_review = 1 and task_id = ?", taskId).OrderDesc("create_at").All()
  76. if err != nil {
  77. return &TalentHttpResult{Code: -1, Msg: err.Error()}
  78. }
  79. return &TalentHttpResult{Code: 0, Msg: "success", Data: res}
  80. }
  81. // 提交探店图片
  82. func AddLocalTaskPhoto(r *ghttp.Request) *TalentHttpResult {
  83. var bookInfoReq *youngee_talent_model.AddLocalTaskPhotoRequest
  84. //解析添加初稿的图文
  85. err := r.ParseForm(&bookInfoReq)
  86. if err != nil {
  87. return &TalentHttpResult{Code: -1, Msg: err.Error()}
  88. }
  89. photoUrl := strings.Split(bookInfoReq.PhotoUrl, ",")
  90. //插入新图片
  91. for _, v := range photoUrl {
  92. _, err := g.DB().Model("younggee_book_photo").Data(g.Map{"task_id": bookInfoReq.TaskId, "photo_url": v, "create_at": gtime.Now()}).Insert()
  93. if err != nil {
  94. return &TalentHttpResult{Code: -3, Msg: err.Error()}
  95. }
  96. }
  97. if err != nil {
  98. return &TalentHttpResult{Code: -5, Msg: "Get task info failed", Data: err.Error()}
  99. }
  100. //task_stage设置成待传初稿
  101. _, err = g.DB().Model("youngee_local_task_info").Where("task_id = ?", bookInfoReq.TaskId).Data(g.Map{"task_stage": 9}).Update()
  102. //设置成已经探店
  103. _, err = g.DB().Model("youngee_local_task_info").Where("task_id = ?", bookInfoReq.TaskId).Data(g.Map{"book_status": 6}).Update()
  104. // 更新task表中finish_explore_time
  105. _, err = g.DB().Model("youngee_local_task_info").Where("task_id = ?", bookInfoReq.TaskId).Data(g.Map{"finish_explore_time": gtime.Now()}).Update()
  106. if err != nil {
  107. return &TalentHttpResult{Code: -5, Msg: err.Error()}
  108. }
  109. return &TalentHttpResult{Code: 0, Msg: "success"}
  110. }
  111. // 还未被审核过的探店时间,如果有的话,返回,没有
  112. func GetUnSubmitLocalTaskBook(r *ghttp.Request) *TalentHttpResult {
  113. taskId := r.Get("task_id")
  114. var unSubmitSketch []*youngee_talent_model.LocalTaskBookInfo
  115. // 获取当前任务的最新,未审核的初稿
  116. err := g.DB().Model("younggee_book_info").Where("task_id = ?", taskId).OrderDesc("create_at").Scan(&unSubmitSketch)
  117. if err != nil {
  118. return &TalentHttpResult{Code: -1, Msg: err.Error()}
  119. }
  120. if len(unSubmitSketch) == 0 {
  121. return &TalentHttpResult{Code: 0, Msg: "从未提交过初稿", Data: nil}
  122. } else {
  123. // 如果是初稿已提交,且被驳回,则可以编辑
  124. if unSubmitSketch[0].IsReview == 1 && unSubmitSketch[0].IsOk == 0 { //最新一条是提交但被驳回
  125. unSubmitSketch[0].ISEditable = 1
  126. } else {
  127. unSubmitSketch[0].ISEditable = 0
  128. }
  129. return &TalentHttpResult{Code: 0, Msg: "返回最新一条初稿,", Data: unSubmitSketch[0]}
  130. }
  131. }