task.go 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. package controller
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "log"
  5. "one-api/common"
  6. "one-api/constant"
  7. "one-api/model"
  8. "strconv"
  9. "time"
  10. )
  11. func UpdateTaskBulk() {
  12. //revocer
  13. //imageModel := "midjourney"
  14. for {
  15. time.Sleep(time.Duration(15) * time.Second)
  16. common.SysLog("任务进度轮询开始")
  17. allTasks := model.GetAllUnFinishSyncTasks(500)
  18. platformTask := make(map[constant.TaskPlatform][]*model.Task)
  19. for _, t := range allTasks {
  20. platformTask[t.Platform] = append(platformTask[t.Platform], t)
  21. }
  22. for platform, tasks := range platformTask {
  23. UpdateTaskByPlatform(platform, tasks)
  24. }
  25. common.SysLog("任务进度轮询完成")
  26. }
  27. }
  28. func GetAllMidjourney(c *gin.Context) {
  29. p, _ := strconv.Atoi(c.Query("p"))
  30. if p < 0 {
  31. p = 0
  32. }
  33. // 解析其他查询参数
  34. queryParams := model.TaskQueryParams{
  35. ChannelID: c.Query("channel_id"),
  36. MjID: c.Query("mj_id"),
  37. StartTimestamp: c.Query("start_timestamp"),
  38. EndTimestamp: c.Query("end_timestamp"),
  39. }
  40. logs := model.GetAllTasks(p*common.ItemsPerPage, common.ItemsPerPage, queryParams)
  41. if logs == nil {
  42. logs = make([]*model.Midjourney, 0)
  43. }
  44. if constant.MjForwardUrlEnabled {
  45. for i, midjourney := range logs {
  46. midjourney.ImageUrl = constant.ServerAddress + "/mj/image/" + midjourney.MjId
  47. logs[i] = midjourney
  48. }
  49. }
  50. c.JSON(200, gin.H{
  51. "success": true,
  52. "message": "",
  53. "data": logs,
  54. })
  55. }
  56. func GetUserMidjourney(c *gin.Context) {
  57. p, _ := strconv.Atoi(c.Query("p"))
  58. if p < 0 {
  59. p = 0
  60. }
  61. userId := c.GetInt("id")
  62. log.Printf("userId = %d \n", userId)
  63. queryParams := model.TaskQueryParams{
  64. MjID: c.Query("mj_id"),
  65. StartTimestamp: c.Query("start_timestamp"),
  66. EndTimestamp: c.Query("end_timestamp"),
  67. }
  68. logs := model.GetAllUserTask(userId, p*common.ItemsPerPage, common.ItemsPerPage, queryParams)
  69. if logs == nil {
  70. logs = make([]*model.Midjourney, 0)
  71. }
  72. if constant.MjForwardUrlEnabled {
  73. for i, midjourney := range logs {
  74. midjourney.ImageUrl = constant.ServerAddress + "/mj/image/" + midjourney.MjId
  75. logs[i] = midjourney
  76. }
  77. }
  78. c.JSON(200, gin.H{
  79. "success": true,
  80. "message": "",
  81. "data": logs,
  82. })
  83. }