Xingyu Xian преди 19 часа
родител
ревизия
4ee5a5d79a
променени са 4 файла, в които са добавени 61 реда и са изтрити 24 реда
  1. 0 1
      db/s_t_cooperate.go
  2. 2 1
      model/http_model/history_data_list.go
  3. 21 18
      model/http_model/talent_list.go
  4. 38 4
      service/s_t_cooperate.go

+ 0 - 1
db/s_t_cooperate.go

@@ -87,6 +87,5 @@ func GetSTCooperateInfo(ctx context.Context, supplierId int, taskType int, platf
 		logrus.WithContext(ctx).Errorf("[GetCooperateInfoByIds] error query mysql total, err:%+v", err)
 		return nil, 0, err
 	}
-
 	return cooperateInfo, total, nil
 }

+ 2 - 1
model/http_model/history_data_list.go

@@ -10,7 +10,8 @@ type HistoryDataListData struct {
 }
 
 type HistoryDataList struct {
-	MainPhotoUrl string `json:"main_photo_url"` // 主图ID
+	MainPhotoUrl string `json:"main_photo_url"` // 主图URL
+	Name         string `json:"name"`           // 作品名称
 	CreatedAt    string `json:"created_at"`     // 创建时间
 	LikeCount    int    `json:"like_count"`     // 点赞
 	CollectCount int    `json:"collect_count"`  // 收藏

+ 21 - 18
model/http_model/talent_list.go

@@ -1,12 +1,14 @@
 package http_model
 
 type TalentListRequest struct {
-	PageSize   int64  `json:"page_size"`
-	PageNum    int64  `json:"page"`
-	SupplierId int    `json:"supplier_id"` // 服务商ID
-	Platform   int    `json:"platform"`    // 平台,1-7分别代表小红书、抖音、微博、快手、b站、大众点评、知乎
-	Type       int    `json:"type"`        // 达人库达人类型,1种草,2本地
-	Nickname   string `json:"nickname"`    // 昵称
+	PageSize   int64    `json:"page_size"`
+	PageNum    int64    `json:"page"`
+	SupplierId int      `json:"supplier_id"` // 服务商ID
+	Platform   int      `json:"platform"`    // 平台,1-7分别代表小红书、抖音、微博、快手、b站、大众点评、知乎
+	Type       int      `json:"type"`        // 达人库达人类型,1种草,2本地
+	Nickname   string   `json:"nickname"`    // 昵称
+	OrderBy    []string `json:"order_by"`    // 排序条件,fans,like_num,commit_num,collect_num,cooperate_num
+	OrderDesc  []int    `json:"order_desc"`  // 是否降序 1是,2否
 }
 
 type TalentListData struct {
@@ -15,18 +17,19 @@ type TalentListData struct {
 }
 
 type SupplierTalentCooperateData struct {
-	CooperateID    int    `json:"cooperate_id"`     // 合作主键ID
-	Platform       int    `json:"platform"`         // 平台,1-7分别代表小红书、抖音、微博、快手、b站、大众点评、知乎
-	CooperateNum   int    `json:"cooperate_num"`    // 合作次数
-	PlatformUserId int    `json:"platform_user_id"` // 第三方平台ID
-	SupplierId     int    `json:"supplier_id"`      // 服务商ID
-	City           string `json:"city"`             // 用户城市所在地
-	Nickname       string `json:"nickname"`         // 昵称
-	HeadUrl        string `json:"head_url"`         // 头像
-	Fans           string `json:"fans"`             // 粉丝数
-	LikeNum        int    `json:"like_num"`         // 点赞数
-	CommitNum      int    `json:"commit_num"`       // 评论数
-	CollectNum     int    `json:"collect_num"`      // 收藏数
+	CooperateID       int    `json:"cooperate_id"`        // 合作主键ID
+	Platform          int    `json:"platform"`            // 平台,1-7分别代表小红书、抖音、微博、快手、b站、大众点评、知乎
+	CooperateNum      int    `json:"cooperate_num"`       // 合作次数
+	PlatformUserId    int    `json:"platform_user_id"`    // 第三方平台ID
+	PlatformAccountId string `json:"platform_account_id"` // 第三方平台账号ID
+	SupplierId        int    `json:"supplier_id"`         // 服务商ID
+	City              string `json:"city"`                // 用户城市所在地
+	Nickname          string `json:"nickname"`            // 昵称
+	HeadUrl           string `json:"head_url"`            // 头像
+	Fans              string `json:"fans"`                // 粉丝数
+	LikeNum           int    `json:"like_num"`            // 点赞数
+	CommitNum         int    `json:"commit_num"`          // 评论数
+	CollectNum        int    `json:"collect_num"`         // 收藏数
 }
 
 func NewTalentListRequest() *TalentListRequest {

+ 38 - 4
service/s_t_cooperate.go

@@ -2,6 +2,7 @@ package service
 
 import (
 	"context"
+	"sort"
 	"time"
 	"youngee_b_api/db"
 	"youngee_b_api/model/gorm_model"
@@ -119,7 +120,7 @@ func (*stcooperate) GetTalentListInfo(ctx context.Context, request *http_model.T
 	talentListData = &http_model.TalentListData{}
 
 	// 1. 查找信息
-	talentListInfo, total, talentListInfoErr := db.GetSTCooperateInfo(ctx, request.SupplierId, request.Type, request.Platform, request.Nickname, request.PageSize, request.PageNum)
+	talentListInfo, total, talentListInfoErr := db.GetSTCooperateInfo(ctx, request.SupplierId, request.Type, request.Platform, request.Nickname, request.PageSize, request.PageNum-1)
 	if talentListInfoErr != nil {
 		return nil, talentListInfoErr
 	}
@@ -148,10 +149,41 @@ func (*stcooperate) GetTalentListInfo(ctx context.Context, request *http_model.T
 				cooperateData.CommitNum = 0
 				cooperateData.CollectNum = 0
 			}
-
 			talentListData.TalentListInfo = append(talentListData.TalentListInfo, cooperateData)
 		}
-
+		talentList := talentListData.TalentListInfo
+		// 执行排序
+		if len(request.OrderBy) > 0 && len(request.OrderBy) == len(request.OrderDesc) {
+			sort.Slice(talentList, func(i, j int) bool {
+				for k, field := range request.OrderBy {
+					desc := request.OrderDesc[k] == 1
+					switch field {
+					case "fans":
+						if talentList[i].Fans != talentList[j].Fans {
+							return (talentList[i].Fans > talentList[j].Fans) == desc
+						}
+					case "like_num":
+						if talentList[i].LikeNum != talentList[j].LikeNum {
+							return (talentList[i].LikeNum > talentList[j].LikeNum) == desc
+						}
+					case "commit_num":
+						if talentList[i].CommitNum != talentList[j].CommitNum {
+							return (talentList[i].CommitNum > talentList[j].CommitNum) == desc
+						}
+					case "collect_num":
+						if talentList[i].CollectNum != talentList[j].CollectNum {
+							return (talentList[i].CollectNum > talentList[j].CollectNum) == desc
+						}
+					case "cooperate_num":
+						if talentList[i].CooperateNum != talentList[j].CooperateNum {
+							return (talentList[i].CooperateNum > talentList[j].CooperateNum) == desc
+						}
+					}
+				}
+				return false
+			})
+		}
+		talentListData.TalentListInfo = talentList
 	}
 	return talentListData, nil
 }
@@ -212,7 +244,7 @@ func (*stcooperate) GetTalentProjectList(ctx context.Context, request *http_mode
 	}
 	if platformUserInfo != nil {
 		// 2. 查询种草子任务信息
-		projectTaskInfo, total, projectTaskInfoErr := db.GetTaskListByOpenId(ctx, platformUserInfo.OpenId, request.OrderBy, request.OrderDesc, request.PageNum, request.PageSize)
+		projectTaskInfo, total, projectTaskInfoErr := db.GetTaskListByOpenId(ctx, platformUserInfo.OpenId, request.OrderBy, request.OrderDesc, request.PageNum-1, request.PageSize)
 		if projectTaskInfoErr != nil {
 			projectTasks.Total = 0
 			return nil, projectTaskInfoErr
@@ -287,6 +319,8 @@ func (*stcooperate) GetHistoryDataList(ctx context.Context, request *http_model.
 	if platformUserInfo != nil {
 		// 2. 查找平台历史作品列表
 		if platformUserInfo.PlatformId == 1 {
+			// 取出主页链接中的uid
+
 			historyList, historyErr := GetRedBookHistoryList(ctx, "65686ae60000000020033a92")
 			if historyErr != nil {
 				return nil, historyErr