log_message.go 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. package youngee_talent_service
  2. import (
  3. "log"
  4. "youngmini_server/app/dao"
  5. "youngmini_server/app/model"
  6. "youngmini_server/app/model/youngee_talent_model"
  7. "youngmini_server/app/utils"
  8. "github.com/gogf/gf/frame/g"
  9. "github.com/gogf/gf/net/ghttp"
  10. )
  11. // 获取任务日志
  12. func GetTaskLog(r *ghttp.Request) *TalentHttpResult {
  13. taskId := r.GetQueryInt("task_id", -1)
  14. var taskLog []*model.YounggeeTaskLog
  15. err := g.Model(dao.YounggeeTaskLog.Table).Where("task_id = ?", taskId).Order("log_at").Scan(&taskLog)
  16. if err != nil {
  17. log.Println("GetTaskLog error:", err)
  18. return &TalentHttpResult{Code: -1, Msg: "Get task log failed"}
  19. }
  20. return &TalentHttpResult{Code: 0, Msg: "success", Data: taskLog}
  21. }
  22. // 获取消息通知
  23. func GetMessage(r *ghttp.Request) *TalentHttpResult {
  24. tid, err := utils.SessionTalentInfo.GetTalentIdFromSession(r)
  25. if err != nil {
  26. return &TalentHttpResult{Code: -1, Msg: "Get talent info failed"}
  27. }
  28. var taskMessage []*model.YounggeeMessageInfo
  29. err = g.Model(dao.YounggeeMessageInfo.Table).Where("talent_id = ? and is_deleted = 0", tid).Order("created_at desc").Scan(&taskMessage)
  30. if err != nil {
  31. log.Println("GetMessage error:", err)
  32. return &TalentHttpResult{Code: -2, Msg: "Get task message failed"}
  33. }
  34. return &TalentHttpResult{Code: 0, Msg: "success", Data: taskMessage}
  35. }
  36. // 获取消息通知列表
  37. // GetMessageList 获取消息通知列表,按类型分类
  38. func GetMessageList(r *ghttp.Request) *TalentHttpResult {
  39. // 获取 Talent ID
  40. tid, err := utils.SessionTalentInfo.GetTalentIdFromSession(r)
  41. if err != nil {
  42. return &TalentHttpResult{Code: -1, Msg: "Get talent info failed"}
  43. }
  44. // 定义不同类型的消息列表
  45. var MessList []youngee_talent_model.YounggeeMutilMessInfo
  46. err = g.Model("message_multi_info").Where("talent_id = ? and is_deleted = 0", tid).Order("created_at desc").Scan(&MessList)
  47. if err != nil {
  48. log.Println("GetMessage error:", err)
  49. return &TalentHttpResult{Code: -2, Msg: "Get task message failed"}
  50. }
  51. // 使用 map 来按 mess_type 分类
  52. messageMap := make(map[int][]youngee_talent_model.YounggeeMutilMessInfo)
  53. // 遍历消息列表,将消息按类型添加到 map 中
  54. for _, message := range MessList {
  55. messageMap[message.MessType] = append(messageMap[message.MessType], message)
  56. }
  57. // 返回按类型分类的消息列表
  58. return &TalentHttpResult{
  59. Code: 0,
  60. Msg: "success",
  61. Data: messageMap,
  62. }
  63. }
  64. // 获取消息通知详情页
  65. func GetMessageDetail(r *ghttp.Request) *TalentHttpResult {
  66. tid, err := utils.SessionTalentInfo.GetTalentIdFromSession(r)
  67. if err != nil {
  68. return &TalentHttpResult{Code: -1, Msg: "Get talent info failed"}
  69. }
  70. var taskMessage []*model.YounggeeMessageInfo
  71. err = g.Model(dao.YounggeeMessageInfo.Table).Where("talent_id = ? and is_deleted = 0", tid).Order("created_at desc").Scan(&taskMessage)
  72. if err != nil {
  73. log.Println("GetMessage error:", err)
  74. return &TalentHttpResult{Code: -2, Msg: "Get task message failed"}
  75. }
  76. return &TalentHttpResult{Code: 0, Msg: "success", Data: taskMessage}
  77. }
  78. // 设置消息已读
  79. func SetMessageRead(r *ghttp.Request) *TalentHttpResult {
  80. tid, err := utils.SessionTalentInfo.GetTalentIdFromSession(r)
  81. if err != nil {
  82. return &TalentHttpResult{Code: -1, Msg: "Get talent info failed"}
  83. }
  84. _, err = g.Model(dao.YounggeeMessageInfo.Table).Where("talent_id = ?", tid).Update(g.Map{"is_readed": 1})
  85. if err != nil {
  86. log.Println("UpdateMessage error:", err)
  87. return &TalentHttpResult{Code: -2, Msg: "Update task message failed"}
  88. }
  89. return &TalentHttpResult{Code: 0, Msg: "success"}
  90. }
  91. // 删除消息
  92. func DeleteMessage(r *ghttp.Request) *TalentHttpResult {
  93. var deleteMessageReq *youngee_talent_model.DeleteMessageReq
  94. err := r.ParseForm(&deleteMessageReq)
  95. if err != nil {
  96. return &TalentHttpResult{Code: -1, Msg: "params error"}
  97. }
  98. _, err = g.Model(dao.YounggeeMessageInfo.Table).Where("id = ?", deleteMessageReq.MessageId).Update(g.Map{"is_deleted": 1})
  99. if err != nil {
  100. log.Println("UpdateMessage error:", err)
  101. return &TalentHttpResult{Code: -2, Msg: "Update task message failed"}
  102. }
  103. return &TalentHttpResult{Code: 0, Msg: "success"}
  104. }
  105. // 获取消息通知
  106. func HasUnReadMessage(r *ghttp.Request) *TalentHttpResult {
  107. tid, err := utils.SessionTalentInfo.GetTalentIdFromSession(r)
  108. if err != nil {
  109. return &TalentHttpResult{Code: -1, Msg: "Get talent info failed"}
  110. }
  111. UnReadMessageNum, err := g.Model(dao.YounggeeMessageInfo.Table).Where("talent_id = ? and is_readed = 0", tid).Count()
  112. if err != nil {
  113. log.Println("GetMessage error:", err)
  114. return &TalentHttpResult{Code: -2, Msg: "Get task message failed"}
  115. }
  116. return &TalentHttpResult{Code: 0, Msg: "success", Data: UnReadMessageNum}
  117. }