Jelajahi Sumber

完善创建项目功能

Ohio-HYF 3 tahun lalu
induk
melakukan
acaf5e24a0

+ 1 - 1
handler/code_login.go

@@ -49,7 +49,7 @@ func (h *CodeLoginHandler) run() {
 	}
 	data := http_model.CodeLoginData{}
 	data.Token = token
-	h.resp.Message = "登陆成功"
+	// h.resp.Message = "登陆成功"
 	h.resp.Data = data
 }
 func (h *CodeLoginHandler) checkParam() error {

+ 1 - 1
handler/product_findAll.go

@@ -51,7 +51,7 @@ func (h *FindAllProductHandler) run() {
 		log.Info("FindAllProduct fail,req:%+v", h.req)
 		return
 	}
-	h.resp.Message = "查询成功"
+	// h.resp.Message = "查询成功"
 	h.resp.Data = res
 }
 func (h *FindAllProductHandler) checkParam() error {

+ 6 - 5
model/gorm_model/product_photo.go

@@ -6,11 +6,12 @@ import (
 )
 
 type YounggeeProductPhoto struct {
-	ProductPhotoID int64       `gorm:"column:product_photo_id;primary_key"` // 商品图片id
-	PhotoUrl       string    `gorm:"column:photo_url"`                    // 图片或视频url
-	Symbol         int64       `gorm:"column:symbol"`                       // 图片为主图或详情图标志位,1为主图,2为详情图,3为视频
-	ProductID      int64       `gorm:"column:product_id"`                   // 所属商品id
-	CreatedAt      time.Time `gorm:"column:created_at"`                   // 创建时间
+	ProductPhotoID int64       `gorm:"column:product_photo_id;primary_key;AUTO_INCREMENT"` // 商品图片id
+	PhotoUrl       string    `gorm:"column:photo_url"`                                   // 图片或视频url
+	PhotoUid       string    `gorm:"column:photo_uid"`
+	Symbol         int64       `gorm:"column:symbol"`     // 图片为主图或详情图标志位,1为主图,2为详情图,3为视频
+	ProductID      int64       `gorm:"column:product_id"` // 所属商品id
+	CreatedAt      time.Time `gorm:"column:created_at"` // 创建时间
 }
 
 func (m *YounggeeProductPhoto) TableName() string {

+ 1 - 1
model/gorm_model/project.go

@@ -12,7 +12,7 @@ type ProjectInfo struct {
 	ProjectType     int64       `gorm:"column:project_type"`           // 项目类型,1代表全流程项目,2代表专项项目
 	ProjectPlatform int64       `gorm:"column:project_platform"`       // 项目平台,1-7分别代表小红书、抖音、微博、快手、b站、大众点评、知乎
 	ProjectForm     int64       `gorm:"column:project_form"`           // 项目形式,1-4分别代表实体商品寄拍、虚拟产品测评、线下探店打卡、素材微原创
-	TalentType      int64       `gorm:"column:talent_type"`            // 达人类型
+	TalentType      string       `gorm:"column:talent_type"`            // 达人类型
 	RecruitDdl      time.Time `gorm:"column:recruit_ddl"`            // 招募截止时间
 	ContentType     int64       `gorm:"column:content_type"`           // 内容形式,1代表图文,2代表视频
 	ProjectDetail   string    `gorm:"column:project_detail"`         // 项目详情

+ 5 - 4
model/gorm_model/project_photo.go

@@ -6,10 +6,11 @@ import (
 )
 
 type ProjectPhoto struct {
-	ProjectPhotoID int64       `gorm:"column:project_photo_id;primary_key"` // 项目图片id
-	PhotoUrl       string    `gorm:"column:photo_url"`                    // 图片url
-	ProjectID      int64       `gorm:"column:project_id"`                   // 所属项目id
-	CreatedAt      time.Time `gorm:"column:created_at"`                   // 创建时间
+	ProjectPhotoID int64       `gorm:"column:project_photo_id;primary_key;AUTO_INCREMENT"` // 项目图片id
+	PhotoUrl       string    `gorm:"column:photo_url"`                                   // 图片url
+	PhotoUid       string    `gorm:"column:photo_uid"`
+	ProjectID      int64       `gorm:"column:project_id"` // 所属项目id
+	CreatedAt      time.Time `gorm:"column:created_at"` // 创建时间
 }
 
 func (m *ProjectPhoto) TableName() string {

+ 2 - 1
model/http_model/product_create.go

@@ -2,7 +2,8 @@ package http_model
 
 type CreateProductPhoto struct {
 	PhotoUrl string `json:"photo_url"` // 图片或视频url
-	Symbol   int64  `json:"symbol"`    // 图片为主图或详情图标志位,1为主图,2为详情图,3为视频
+	PhotoUid string `json:"photo_uid"`
+	Symbol   int64  `json:"symbol"` // 图片为主图或详情图标志位,1为主图,2为详情图,3为视频
 }
 
 type CreateProductRequest struct {

+ 2 - 1
model/http_model/product_find.go

@@ -6,7 +6,8 @@ type FindProductRequest struct {
 
 type ProductPhoto struct {
 	PhotoUrl string `json:"photo_url"` // 图片或视频url
-	Symbol   int64  `json:"symbol"`    // 图片为主图或详情图标志位,1为主图,2为详情图,3为视频
+	PhotoUid string `json:"photo_uid"`
+	Symbol   int64  `json:"symbol"` // 图片为主图或详情图标志位,1为主图,2为详情图,3为视频
 }
 
 type FindProductData struct {

+ 3 - 2
model/http_model/project_create.go

@@ -4,10 +4,11 @@ import "time"
 
 type CreateProjectPhoto struct {
 	PhotoUrl string `json:"photo_url"` // 图片url
+	PhotoUid string `json:"photo_uid"`
 }
 
 type CreateRecruitStrategy struct {
-	FeeForm       int64 `json:"fee_form"`       // 稿费形式,1-3分别代表产品置换、固定稿费、自报价
+	FeeForm       int64 `json:"fee_form"`       // 稿费形式,1-3分别代表自报价、固定稿费、产品置换
 	StrategyID    int64 `json:"strategy_id"`    // 策略id
 	FollowersLow  int64 `json:"followers_low"`  // 达人粉丝数下限
 	FollowersUp   int64 `json:"followers_up"`   // 达人粉丝数上限
@@ -21,7 +22,7 @@ type CreateProjectRequest struct {
 	ProjectType      int64                   `json:"project_type"`      // 项目类型,1代表全流程项目,2代表专项项目
 	ProjectPlatform  int64                   `json:"project_platform"`  // 项目平台,1-7分别代表小红书、抖音、微博、快手、b站、大众点评、知乎
 	ProjectForm      int64                   `json:"project_form"`      // 项目形式,1-4分别代表实体商品寄拍、虚拟产品测评、线下探店打卡、素材微原创
-	TalentType       int64                   `json:"talent_type"`       // 达人类型
+	TalentType       string                  `json:"talent_type"`       // 达人类型
 	RecruitDdl       time.Time               `json:"recruit_ddl"`       // 招募截止时间
 	ContentType      int64                   `json:"content_type"`      // 内容形式,1代表图文,2代表视频
 	ProjectDetail    string                  `json:"project_detail"`    // 项目详情

+ 20 - 14
service/product.go

@@ -26,17 +26,19 @@ func (*product) Create(ctx context.Context, newProduct http_model.CreateProductR
 	productID, err := db.CreateProduct(ctx, product)
 	if err != nil {
 		return nil, err
-	} else {
+	}
+	if newProduct.ProductPhotos != nil {
 		productPhotos := []gorm_model.YounggeeProductPhoto{}
 		for _, photo := range newProduct.ProductPhotos {
 			productPhoto := gorm_model.YounggeeProductPhoto{
 				PhotoUrl:  photo.PhotoUrl,
+				PhotoUid:  photo.PhotoUid,
 				Symbol:    photo.Symbol,
 				ProductID: *productID,
 			}
 			productPhotos = append(productPhotos, productPhoto)
 		}
-		err := db.CreateProductPhoto(ctx, productPhotos)
+		err = db.CreateProductPhoto(ctx, productPhotos)
 		if err != nil {
 			return nil, err
 		}
@@ -68,19 +70,22 @@ func (*product) Update(ctx context.Context, newProduct http_model.CreateProductR
 	if err != nil {
 		return nil, err
 	}
-	// 新增图片
-	productPhotos := []gorm_model.YounggeeProductPhoto{}
-	for _, photo := range newProduct.ProductPhotos {
-		productPhoto := gorm_model.YounggeeProductPhoto{
-			PhotoUrl:  photo.PhotoUrl,
-			Symbol:    photo.Symbol,
-			ProductID: *productID,
+	if newProduct.ProductPhotos != nil {
+		// 新增图片
+		productPhotos := []gorm_model.YounggeeProductPhoto{}
+		for _, photo := range newProduct.ProductPhotos {
+			productPhoto := gorm_model.YounggeeProductPhoto{
+				PhotoUrl:  photo.PhotoUrl,
+				PhotoUid:  photo.PhotoUid,
+				Symbol:    photo.Symbol,
+				ProductID: *productID,
+			}
+			productPhotos = append(productPhotos, productPhoto)
+		}
+		err = db.CreateProductPhoto(ctx, productPhotos)
+		if err != nil {
+			return nil, err
 		}
-		productPhotos = append(productPhotos, productPhoto)
-	}
-	err = db.CreateProductPhoto(ctx, productPhotos)
-	if err != nil {
-		return nil, err
 	}
 	res := &http_model.CreateProductData{
 		ProductID: *productID,
@@ -129,6 +134,7 @@ func (*product) FindByID(ctx context.Context, productID int64) (*http_model.Find
 	for _, photo := range productPhotos {
 		productPhoto := http_model.ProductPhoto{
 			PhotoUrl: photo.PhotoUrl,
+			PhotoUid: photo.PhotoUid,
 			Symbol:   photo.Symbol,
 		}
 		findProductData.ProductPhotos = append(findProductData.ProductPhotos, productPhoto)

+ 30 - 22
service/project.go

@@ -15,8 +15,15 @@ type project struct {
 
 func (*project) Create(ctx context.Context, newProject http_model.CreateProjectRequest, enterpriseID int64) (*http_model.CreateProjectData, error) {
 	// build gorm_model.ProjectInfo
+	// 查询关联商品信息
+	product, err := db.GetProductByID(ctx, newProject.ProductID)
+	if err != nil {
+		return nil, err
+	}
+	// 按照品牌名-商品名对项目进行命名
+	projectName := product.BrandName + "-" + product.ProductName
 	projectInfo := gorm_model.ProjectInfo{
-		ProjectName:     newProject.ProjectName,
+		ProjectName:     projectName,
 		ProjectStatus:   1,
 		ProjectType:     newProject.ProjectType,
 		TalentType:      newProject.TalentType,
@@ -32,41 +39,42 @@ func (*project) Create(ctx context.Context, newProject http_model.CreateProjectR
 	projectID, err := db.CreateProject(ctx, projectInfo)
 	if err != nil {
 		return nil, err
-	} else {
+	}
+	if newProject.ProjectPhotos != nil {
 		// build []gorm_model.ProjectPhoto
 		projectPhotos := []gorm_model.ProjectPhoto{}
 		for _, photo := range newProject.ProjectPhotos {
 			projectPhoto := gorm_model.ProjectPhoto{
 				PhotoUrl:  photo.PhotoUrl,
+				PhotoUid:  photo.PhotoUid,
 				ProjectID: *projectID,
 			}
 			projectPhotos = append(projectPhotos, projectPhoto)
 		}
 		// db create ProjectPhoto
-		err := db.CreateProjectPhoto(ctx, projectPhotos)
+		err = db.CreateProjectPhoto(ctx, projectPhotos)
 		if err != nil {
 			return nil, err
-		} else {
-			// build
-			recruitStrategys := []gorm_model.RecruitStrategy{}
-			for _, strategy := range newProject.RecruitStrategys {
-				recruitStrategy := gorm_model.RecruitStrategy{
-					FeeForm:       strategy.FeeForm,
-					StrategyID:    strategy.StrategyID,
-					FollowersLow:  strategy.FollowersLow,
-					FollowersUp:   strategy.FollowersUp,
-					RecruitNumber: strategy.RecruitNumber,
-					Offer:         strategy.Offer,
-					ProjectID:     *projectID,
-				}
-				recruitStrategys = append(recruitStrategys, recruitStrategy)
-			}
-			err := db.CreateRecruitStrategy(ctx, recruitStrategys)
-			if err != nil {
-				return nil, err
-			}
 		}
 	}
+	// build
+	recruitStrategys := []gorm_model.RecruitStrategy{}
+	for _, strategy := range newProject.RecruitStrategys {
+		recruitStrategy := gorm_model.RecruitStrategy{
+			FeeForm:       strategy.FeeForm,
+			StrategyID:    strategy.StrategyID,
+			FollowersLow:  strategy.FollowersLow,
+			FollowersUp:   strategy.FollowersUp,
+			RecruitNumber: strategy.RecruitNumber,
+			Offer:         strategy.Offer,
+			ProjectID:     *projectID,
+		}
+		recruitStrategys = append(recruitStrategys, recruitStrategy)
+	}
+	err = db.CreateRecruitStrategy(ctx, recruitStrategys)
+	if err != nil {
+		return nil, err
+	}
 	res := &http_model.CreateProjectData{
 		ProjectID: *projectID,
 	}