|
|
@@ -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,
|
|
|
})
|
|
|
}
|