Browse Source

talent_s_project_list

Xingyu Xian 2 weeks ago
parent
commit
06f50fef8e

+ 61 - 7
db/task.go

@@ -468,13 +468,67 @@ func CountTaskNumByTaskStage(ctx context.Context, taskStage int, supplierStatus
 }
 
 // GetTaskListByOpenId 根据OpenId查询达人全部种草子任务
-func GetTaskListByOpenId(ctx context.Context, openId string, nickName string, orderBy []string, orderDesc []int, pageNum int64, pageSize int64) ([]gorm_model.YoungeeTaskInfo, error) {
-	db := GetReadDB(ctx)
-	tasks := []gorm_model.YoungeeTaskInfo{}
+func GetTaskListByOpenId(ctx context.Context, openId string, orderBy []string, orderDesc []string, pageNum int64, pageSize int64) ([]gorm_model.YoungeeTaskInfo, int64, error) {
+	db := GetReadDB(ctx).Model(&gorm_model.YoungeeTaskInfo{})
+
+	// 基础查询条件
+	db = db.Where("open_id = ? and task_status = 2 and task_stage = 15", openId)
+
+	// 动态排序逻辑
+	if len(orderBy) > 0 && len(orderDesc) > 0 && len(orderBy) == len(orderDesc) {
+		for i := 0; i < len(orderBy); i++ {
+			orderField := orderBy[i]
+			isDesc := strings.ToLower(orderDesc[i]) == "desc" // 不区分大小写判断
+
+			switch orderField {
+			case "view_avg":
+				if isDesc {
+					db = db.Order("view_avg desc")
+				} else {
+					db = db.Order("view_avg asc")
+				}
+			case "vote_avg":
+				if isDesc {
+					db = db.Order("vote_avg desc")
+				} else {
+					db = db.Order("vote_avg asc")
+				}
+			case "commit_avg":
+				if isDesc {
+					db = db.Order("commit_avg desc")
+				} else {
+					db = db.Order("commit_avg asc")
+				}
+			case "collect_avg":
+				if isDesc {
+					db = db.Order("collect_avg desc")
+				} else {
+					db = db.Order("collect_avg asc")
+				}
+			}
+		}
+	} else {
+		// 默认排序
+		db = db.Order("task_id desc")
+	}
 
-	err := db.Where("open_id=? and task_status = 2", openId).Find(&tasks).Error
-	if err != nil {
-		return nil, err
+	// 查询总数
+	var total int64
+	if err := db.Count(&total).Error; err != nil {
+		logrus.WithContext(ctx).Errorf("[GetTaskListByOpenId] count error, err:%+v", err)
+		return nil, 0, err
 	}
-	return tasks, nil
+
+	// 分页查询
+	var tasks []gorm_model.YoungeeTaskInfo
+	if pageSize > 0 {
+		offset := pageSize * (pageNum - 1) // 假设pageNum从1开始
+		db = db.Limit(int(pageSize)).Offset(int(offset))
+	}
+
+	if err := db.Find(&tasks).Error; err != nil {
+		logrus.WithContext(ctx).Errorf("[GetTaskListByOpenId] query error, err:%+v", err)
+		return nil, 0, err
+	}
+	return tasks, total, nil
 }

+ 12 - 17
handler/create_contact_info.go

@@ -2,12 +2,7 @@ package handler
 
 import (
 	"github.com/gin-gonic/gin"
-	"github.com/sirupsen/logrus"
-	log "github.com/sirupsen/logrus"
-	"youngee_b_api/consts"
 	"youngee_b_api/model/http_model"
-	"youngee_b_api/service"
-	"youngee_b_api/util"
 )
 
 func WrapCreateContactInfoHandler(ctx *gin.Context) {
@@ -39,18 +34,18 @@ func (h *CreateContactInfoHandler) getResponse() interface{} {
 	return h.resp
 }
 func (h *CreateContactInfoHandler) run() {
-	data, err := service.Supplier.GetSupplierContactInfo(h.ctx, h.req)
-	if err != nil {
-		logrus.Errorf("[FindSubAccountByEnterpriseId] call SetSession err:%+v\n", err)
-		util.HandlerPackErrorResp(h.resp, consts.ErrorInternal, err.Error())
-		log.Info("FindSubAccountByEnterpriseId fail,req:%+v", h.req)
-		h.resp.Message = err.Error()
-		h.resp.Status = 40000
-		return
-	}
-	h.resp.Data = data
-	h.resp.Status = 20000
-	h.resp.Message = "ok"
+	//data, err := service.Supplier.GetSupplierContactInfo(h.ctx, h.req)
+	//if err != nil {
+	//	logrus.Errorf("[FindSubAccountByEnterpriseId] call SetSession err:%+v\n", err)
+	//	util.HandlerPackErrorResp(h.resp, consts.ErrorInternal, err.Error())
+	//	log.Info("FindSubAccountByEnterpriseId fail,req:%+v", h.req)
+	//	h.resp.Message = err.Error()
+	//	h.resp.Status = 40000
+	//	return
+	//}
+	//h.resp.Data = data
+	//h.resp.Status = 20000
+	//h.resp.Message = "ok"
 }
 
 func (h *CreateContactInfoHandler) checkParam() error {

+ 12 - 17
handler/update_contact_info.go

@@ -2,12 +2,7 @@ package handler
 
 import (
 	"github.com/gin-gonic/gin"
-	"github.com/sirupsen/logrus"
-	log "github.com/sirupsen/logrus"
-	"youngee_b_api/consts"
 	"youngee_b_api/model/http_model"
-	"youngee_b_api/service"
-	"youngee_b_api/util"
 )
 
 func WrapUpdateContactInfoHandler(ctx *gin.Context) {
@@ -39,18 +34,18 @@ func (h *UpdateContactInfoHandler) getResponse() interface{} {
 	return h.resp
 }
 func (h *UpdateContactInfoHandler) run() {
-	data, err := service.Supplier.GetSupplierContactInfo(h.ctx, h.req)
-	if err != nil {
-		logrus.Errorf("[FindSubAccountByEnterpriseId] call SetSession err:%+v\n", err)
-		util.HandlerPackErrorResp(h.resp, consts.ErrorInternal, err.Error())
-		log.Info("FindSubAccountByEnterpriseId fail,req:%+v", h.req)
-		h.resp.Message = err.Error()
-		h.resp.Status = 40000
-		return
-	}
-	h.resp.Data = data
-	h.resp.Status = 20000
-	h.resp.Message = "ok"
+	//data, err := service.Supplier.GetSupplierContactInfo(h.ctx, h.req)
+	//if err != nil {
+	//	logrus.Errorf("[FindSubAccountByEnterpriseId] call SetSession err:%+v\n", err)
+	//	util.HandlerPackErrorResp(h.resp, consts.ErrorInternal, err.Error())
+	//	log.Info("FindSubAccountByEnterpriseId fail,req:%+v", h.req)
+	//	h.resp.Message = err.Error()
+	//	h.resp.Status = 40000
+	//	return
+	//}
+	//h.resp.Data = data
+	//h.resp.Status = 20000
+	//h.resp.Message = "ok"
 }
 
 func (h *UpdateContactInfoHandler) checkParam() error {

+ 1 - 0
model/gorm_model/project_task.go

@@ -46,6 +46,7 @@ type YoungeeTaskInfo struct {
 	SupplierStatus         int       `gorm:"column:supplier_status;default:0"`            // 服务商任务状态 0表示达人来源非服务商 1待选 2已选 3落选
 	DraftFee               float64   `gorm:"column:draft_fee"`                            // 达人稿费
 	SignedTime             time.Time `gorm:"column:signed_time"`                          // 签收时间
+	ViewAvg                int       `gorm:"column:view_avg"`                             // 浏览量
 	FansNum                int       `gorm:"column:fans_num"`                             // 粉丝数
 	VoteAvg                int       `gorm:"column:vote_avg"`                             // 点赞数
 	CommitAvg              int       `gorm:"column:commit_avg"`                           // 评论数

+ 3 - 3
model/http_model/talent_project_list.go

@@ -4,9 +4,9 @@ type TalentProjectListRequest struct {
 	PageSize       int64    `json:"page_size"`
 	PageNum        int64    `json:"page_num"`
 	PlatformUserId int      `json:"platform_user_id"` // 平台用户ID
-	Nickname       string   `json:"nickname"`         // 昵称
-	OrderBy        []string `json:"order_by"`         // 排序条件 fans_num,vote_avg,commit_avg,collect_avg
-	OrderDesc      []int    `json:"order_desc"`       // 是否降序 1是,2否
+	ProjectName    string   `json:"nickname"`         // 任务标题
+	OrderBy        []string `json:"order_by"`         // 排序条件 view_avg,vote_avg,commit_avg,collect_avg
+	OrderDesc      []string `json:"order_desc"`       // 是否降序 1是,2否
 }
 
 type TalentProjectListData struct {

+ 44 - 5
service/s_t_cooperate.go

@@ -204,28 +204,67 @@ func (*stcooperate) CountTalentTaskNum(ctx context.Context, request *http_model.
 func (*stcooperate) GetTalentProjectList(ctx context.Context, request *http_model.TalentProjectListRequest) (*http_model.TalentProjectListData, error) {
 
 	// 1. 查询openId
+	var projectTasks *http_model.TalentProjectListData
+	projectTasks = &http_model.TalentProjectListData{}
 	platformUserInfo, platformUserErr := db.FindUserInfoById(ctx, request.PlatformUserId)
 	if platformUserErr != nil {
 		return nil, platformUserErr
 	}
 	if platformUserInfo != nil {
 		// 2. 查询种草子任务信息
-		var projectTasks *http_model.TalentProjectListData
-		projectTasks = &http_model.TalentProjectListData{}
-		projectTaskInfo, projectTaskInfoErr := db.GetTaskListByOpenId(ctx, platformUserInfo.OpenId, request.Nickname, request.OrderBy, request.OrderDesc, request.PageNum, request.PageSize)
+		projectTaskInfo, total, projectTaskInfoErr := db.GetTaskListByOpenId(ctx, platformUserInfo.OpenId, request.OrderBy, request.OrderDesc, request.PageNum, request.PageSize)
 		if projectTaskInfoErr != nil {
+			projectTasks.Total = 0
 			return nil, projectTaskInfoErr
 		}
 		if projectTaskInfo != nil {
+			projectTasks.Total = total
 			for _, task := range projectTaskInfo {
 				var projectTask *http_model.TalentProjectData
 				projectTask = &http_model.TalentProjectData{}
+				projectTask.ReadNum = task.ViewAvg
+				projectTask.VoteNum = task.VoteAvg
+				projectTask.CollectNum = task.CommitAvg
+				projectTask.CommitNum = task.CommitAvg
 
-			}
+				// 种草任务信息
+				projectInfo, projectInfoErr := db.GetProjectDetail(ctx, task.ProjectID)
+				if projectInfoErr != nil {
+					return nil, projectInfoErr
+				}
+				if projectInfo != nil {
+					projectTask.ProjectName = projectInfo.ProjectName
+
+					// 商品信息
+					productInfo, productInfoErr := db.GetProductByID(ctx, projectInfo.ProductID)
+					if productInfoErr != nil {
+						return nil, productInfoErr
+					}
+					if productInfo != nil {
+						projectTask.ProductPrice = productInfo.ProductPrice
+					}
 
+					// 商品图片
+					productPhotoInfo, productPhotoErr := db.GetProductPhotoByProductID(ctx, projectInfo.ProductID)
+					if productPhotoErr != nil {
+						return nil, productPhotoErr
+					}
+					if productPhotoInfo != nil {
+						for _, photo := range productPhotoInfo {
+							// fmt.Println(photo)
+							if photo.Symbol == 1 {
+								projectTask.ProductPhotoSymbol = 1
+								projectTask.ProductPhotoUrl = photo.PhotoUrl
+								projectTask.ProductPhotoUid = photo.PhotoUid
+							}
+						}
+					}
+				}
+				projectTasks.TalentProjectDataListInfo = append(projectTasks.TalentProjectDataListInfo, projectTask)
+			}
 		}
 	}
-	return nil, nil
+	return projectTasks, nil
 }
 
 // GetTalentLocalList 达人本地表现