Xingyu Xian преди 3 месеца
родител
ревизия
6e3ae7fa61
променени са 5 файла, в които са добавени 43 реда и са изтрити 35 реда
  1. 4 4
      model/gorm_model/s_project.go
  2. 5 10
      model/http_model/add_to_list.go
  3. 5 5
      model/http_model/s_project_list.go
  4. 4 4
      model/http_model/show_s_project.go
  5. 25 12
      service/s_project.go

+ 4 - 4
model/gorm_model/s_project.go

@@ -8,10 +8,10 @@ type SProjectInfo struct {
 	ProjectType         int        `gorm:"column:project_type"`                            // 种草任务类型,1为公开,2为定向
 	ProductId           int64      `gorm:"column:product_id;"`                             // 商品ID
 	ProjectName         string     `gorm:"column:project_name"`                            // 种草任务名称
-	ProjectStatus       int        `gorm:"column:project_status"`                          // 种草任务状态
-	ProjectPlatform     int        `gorm:"column:project_platform"`                        // 种草任务平台,1-7分别代表小红书、抖音、微博、快手、b站、大众点评、知乎
-	ProjectForm         int        `gorm:"column:project_form"`                            // 任务形式,1-3分别代表商品寄拍、素材分发、虚拟产品测评
-	ContentType         int        `gorm:"column:content_type"`                            // 内容形式,1代表图文,2代表视频
+	ProjectStatus       int64      `gorm:"column:project_status"`                          // 种草任务状态
+	ProjectPlatform     int64      `gorm:"column:project_platform"`                        // 种草任务平台,1-7分别代表小红书、抖音、微博、快手、b站、大众点评、知乎
+	ProjectForm         int64      `gorm:"column:project_form"`                            // 任务形式,1-3分别代表商品寄拍、素材分发、虚拟产品测评
+	ContentType         int64      `gorm:"column:content_type"`                            // 内容形式,1代表图文,2代表视频
 	ShareCode           string     `gorm:"column:share_code"`                              // 分享码URL
 	ApplyNum            int        `gorm:"column:apply_num;default:0;NOT NULL"`            // 报名人数
 	RecruitNum          int        `gorm:"column:recruit_num;default:0;NOT NULL"`          // 已招募人数

+ 5 - 10
model/http_model/add_to_list.go

@@ -1,16 +1,11 @@
 package http_model
 
 type AddToListRequest struct {
-	ProjectId       string `json:"project_id"`       // 待加入商单的种草任务ID
-	ProjectType     int    `json:"project_type"`     // 种草任务类型,1为公开,2为定向
-	ProjectName     string `json:"project_name"`     // 种草任务名称
-	ProjectPlatform int    `json:"project_platform"` // 种草任务平台,1-7分别代表小红书、抖音、微博、快手、b站、大众点评、知乎
-	ProjectForm     int    `json:"project_form"`     // 任务形式,1-3分别代表商品寄拍、素材分发、虚拟产品测评
-	ContentType     int    `json:"content_type"`     // 内容形式,1代表图文,2代表视频
-	EnterpriseId    string `json:"enterprise_id"`    // 商家ID
-	SupplierId      int    `json:"supplier_id"`      // 服务商ID
-	SubAccountId    int    `json:"sub_account_id"`   // 子账号ID
-	OperatorType    int    `json:"operator_type"`    // 账号类型,1为主账号,2为子账号
+	ProjectId    string `json:"project_id"`     // 待加入商单的种草任务ID
+	EnterpriseId string `json:"enterprise_id"`  // 商家ID
+	SupplierId   int    `json:"supplier_id"`    // 服务商ID
+	SubAccountId int    `json:"sub_account_id"` // 子账号ID
+	OperatorType int    `json:"operator_type"`  // 账号类型,1为主账号,2为子账号
 }
 
 func NewAddToListRequest() *AddToListRequest {

+ 5 - 5
model/http_model/s_project_list.go

@@ -17,12 +17,12 @@ type SProjectListRequest struct {
 type SProjectListReview struct {
 	SProjectId          int     `json:"s_project_id"`          // 服务商加入商单后的种草任务ID
 	ProjectId           string  `json:"project_id"`            // 被服务商加入商单的原种草任务ID
-	ProjectType         int     `json:"project_type"`          // 种草任务类型,1为公开,2为定向
+	ProjectType         int64   `json:"project_type"`          // 种草任务类型,1为公开,2为定向
 	ProjectName         string  `json:"project_name"`          // 种草任务名称
-	ProjectPlatform     int     `json:"project_platform"`      // 种草任务平台,1-7分别代表小红书、抖音、微博、快手、b站、大众点评、知乎
-	ProjectForm         int     `json:"project_form"`          // 任务形式,1-3分别代表商品寄拍、素材分发、虚拟产品测评
-	ContentType         int     `json:"content_type"`          // 内容形式,1代表图文,2代表视频
-	ProjectStatus       int     `json:"project_status"`        // 种草任务状态
+	ProjectPlatform     int64   `json:"project_platform"`      // 种草任务平台,1-7分别代表小红书、抖音、微博、快手、b站、大众点评、知乎
+	ProjectForm         int64   `json:"project_form"`          // 任务形式,1-3分别代表商品寄拍、素材分发、虚拟产品测评
+	ContentType         int64   `json:"content_type"`          // 内容形式,1代表图文,2代表视频
+	ProjectStatus       int64   `json:"project_status"`        // 种草任务状态
 	ShareCode           string  `json:"share_code"`            // 分享码URL
 	ApplyNum            int     `json:"apply_num"`             // 报名人数
 	RecruitNum          int     `json:"recruit_num"`           // 已招募人数

+ 4 - 4
model/http_model/show_s_project.go

@@ -5,13 +5,13 @@ import "time"
 type ShowSProjectData struct {
 	SProjectId        int                    `json:"s_project_id"`       // 服务商种草任务ID
 	ProjectName       string                 `json:"project_name"`       // 项目名称
-	ProjectStatus     int                    `json:"project_status"`     // 项目状态,1-7分别代表创建中、待审核、招募中、待支付、失效、执行中、已结案
+	ProjectStatus     int64                  `json:"project_status"`     // 项目状态,1-7分别代表创建中、待审核、招募中、待支付、失效、执行中、已结案
 	ProjectType       int                    `json:"project_type"`       // 项目类型,1代表全流程项目,2代表专项项目
-	ProjectPlatform   int                    `json:"project_platform"`   // 项目平台,1-7分别代表红book、抖音、微博、快手、b站、大众点评、知乎
-	ProjectForm       int                    `json:"project_form"`       // 项目形式,1-4分别代表实体商品寄拍、虚拟产品测评、线下探店打卡、素材微原创
+	ProjectPlatform   int64                  `json:"project_platform"`   // 项目平台,1-7分别代表红book、抖音、微博、快手、b站、大众点评、知乎
+	ProjectForm       int64                  `json:"project_form"`       // 项目形式,1-4分别代表实体商品寄拍、虚拟产品测评、线下探店打卡、素材微原创
 	TalentType        string                 `json:"talent_type"`        // 达人类型
 	RecruitDdl        time.Time              `json:"recruit_ddl"`        // 招募截止时间
-	ContentType       int                    `json:"content_type"`       // 内容形式,1代表图文,2代表视频
+	ContentType       int64                  `json:"content_type"`       // 内容形式,1代表图文,2代表视频
 	ProjectDetail     string                 `json:"project_detail"`     // 项目详情
 	SRecruitStrategys []ShowSRecruitStrategy `json:"recruit_strategys"`  // 招募策略
 	ProjectPhotos     []ShowProjectPhoto     `json:"project_photos"`     // 项目图片

+ 25 - 12
service/s_project.go

@@ -5,6 +5,7 @@ import (
 	"fmt"
 	"github.com/issue9/conv"
 	log "github.com/sirupsen/logrus"
+	"time"
 	"youngee_b_api/db"
 	"youngee_b_api/model/common_model"
 	"youngee_b_api/model/gorm_model"
@@ -20,19 +21,31 @@ type sProject struct {
 func (*sProject) CreateSProject(ctx context.Context, request http_model.AddToListRequest) error {
 
 	// 1. 建立SProject信息
+	// 1.1. 根据传入的ProjectId去Project表查找信息补全SProject
 	newSProject := gorm_model.SProjectInfo{
-		EnterpriseId:    request.EnterpriseId,
-		SupplierId:      request.SupplierId,
-		ProjectId:       request.ProjectId,
-		SubAccountId:    request.SubAccountId,
-		ProjectType:     request.ProjectType,
-		ProjectName:     request.ProjectName,
-		ProjectPlatform: request.ProjectPlatform,
-		ProjectForm:     request.ProjectForm,
-		ContentType:     request.ContentType,
-		OperatorType:    request.OperatorType,
-		SProjectStatus:  2,
-		StrategyStatus:  1,
+		EnterpriseId:   request.EnterpriseId,
+		SupplierId:     request.SupplierId,
+		ProjectId:      request.ProjectId,
+		SubAccountId:   request.SubAccountId,
+		OperatorType:   request.OperatorType,
+		SProjectStatus: 2,
+		StrategyStatus: 1,
+	}
+	projectInfo, projectErr := db.GetProjectDetail(ctx, request.ProjectId)
+	if projectErr != nil {
+		return projectErr
+	}
+	if projectInfo != nil {
+		var currentTime time.Time
+		currentTime = time.Now()
+		newSProject.ProjectStatus = projectInfo.ProjectStatus
+		newSProject.ProjectForm = projectInfo.ProjectForm
+		newSProject.ContentType = projectInfo.ContentType
+		newSProject.ProjectPlatform = projectInfo.ProjectPlatform
+		newSProject.CreateTime = &currentTime
+		newSProject.ProjectType = 1
+		newSProject.ProductId = projectInfo.ProductID
+		newSProject.ProjectName = projectInfo.ProjectName
 	}
 	sProjectId, err := db.CreateSProject(ctx, newSProject)
 	if err != nil {