urbanu il y a 1 mois
Parent
commit
4347c8cea3
1 fichiers modifiés avec 67 ajouts et 2 suppressions
  1. 67 2
      apis/daytask/home.go

+ 67 - 2
apis/daytask/home.go

@@ -5,9 +5,18 @@ import (
 	"app/commons/services"
 	"fmt"
 	"strings"
+
 	"github.com/gin-gonic/gin"
 )
 
+// TaskWithCategory 带分类信息的任务响应结构
+type TaskWithCategory struct {
+	entity.DtTask
+	CategoryName string `json:"categoryName"`
+	CategoryIcon string `json:"categoryIcon"`
+	Platform     string `json:"platform"`
+}
+
 // HomeIndex 首页数据
 func (s *Server) HomeIndex(c *gin.Context) {
 	ctx := s.FromContext(c)
@@ -122,10 +131,38 @@ func (s *Server) HomeHall(c *gin.Context) {
 		}
 	}
 
+	// 获取所有分类信息并构建映射
+	categoryMap := make(map[int64]*entity.DtTaskCategory)
+	if len(tasks) > 0 {
+		categoryIds := make([]int64, 0)
+		for _, task := range tasks {
+			categoryIds = append(categoryIds, task.CategoryId)
+		}
+		categories := make([]*entity.DtTaskCategory, 0)
+		db.Where("id IN ?", categoryIds).Find(&categories)
+		for _, cat := range categories {
+			categoryMap[cat.Id] = cat
+		}
+	}
+
+	// 构建带分类信息的任务列表
+	tasksWithCategory := make([]*TaskWithCategory, 0, len(tasks))
+	for _, task := range tasks {
+		twc := &TaskWithCategory{
+			DtTask: *task,
+		}
+		if cat, ok := categoryMap[task.CategoryId]; ok {
+			twc.CategoryName = cat.Name
+			twc.CategoryIcon = cat.Icon
+			twc.Platform = cat.Platform
+		}
+		tasksWithCategory = append(tasksWithCategory, twc)
+	}
+
 	ctx.OK(gin.H{
 		"totalReward":    totalReward,
 		"completedCount": completedCount,
-		"tasks":          tasks,
+		"tasks":          tasksWithCategory,
 		"paging":         paging,
 	})
 }
@@ -192,8 +229,36 @@ func (s *Server) TaskList(c *gin.Context) {
 		}
 	}
 
+	// 获取所有分类信息并构建映射
+	categoryMap := make(map[int64]*entity.DtTaskCategory)
+	if len(tasks) > 0 {
+		categoryIds := make([]int64, 0)
+		for _, task := range tasks {
+			categoryIds = append(categoryIds, task.CategoryId)
+		}
+		categories := make([]*entity.DtTaskCategory, 0)
+		db.Where("id IN ?", categoryIds).Find(&categories)
+		for _, cat := range categories {
+			categoryMap[cat.Id] = cat
+		}
+	}
+
+	// 构建带分类信息的任务列表
+	tasksWithCategory := make([]*TaskWithCategory, 0, len(tasks))
+	for _, task := range tasks {
+		twc := &TaskWithCategory{
+			DtTask: *task,
+		}
+		if cat, ok := categoryMap[task.CategoryId]; ok {
+			twc.CategoryName = cat.Name
+			twc.CategoryIcon = cat.Icon
+			twc.Platform = cat.Platform
+		}
+		tasksWithCategory = append(tasksWithCategory, twc)
+	}
+
 	ctx.OK(gin.H{
-		"list":   tasks,
+		"list":   tasksWithCategory,
 		"paging": paging,
 	})
 }