12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- package service
- import (
- "context"
- "time"
- "youngee_b_api/db"
- "youngee_b_api/model/gorm_model"
- "youngee_b_api/model/http_model"
- )
- var Project *project
- 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: projectName,
- ProjectStatus: 1,
- ProjectType: newProject.ProjectType,
- TalentType: newProject.TalentType,
- ProjectPlatform: newProject.ProjectPlatform,
- ProjectForm: newProject.ProjectForm,
- RecruitDdl: time.Now().UTC().Local(),
- ProjectDetail: newProject.ProjectDetail,
- ContentType: newProject.ContentType,
- EnterpriseID: enterpriseID,
- ProductID: newProject.ProductID,
- }
- // db create ProjectInfo
- projectID, err := db.CreateProject(ctx, projectInfo)
- if err != nil {
- return nil, err
- }
- 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)
- 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,
- }
- return res, nil
- }
|