123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- package service
- import (
- "context"
- "github.com/issue9/conv"
- "github.com/sirupsen/logrus"
- "time"
- "youngee_b_api/db"
- "youngee_b_api/model/common_model"
- "youngee_b_api/model/gorm_model"
- "youngee_b_api/model/http_model"
- "youngee_b_api/pack"
- )
- 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
- }
- func (*project) GetFullProjectList(ctx context.Context, enterpriseID int64, pageSize, pageNum int32, condition *common_model.ProjectCondition) (*http_model.FullProjectListData, error) {
- fullProjects, total, err := db.GetFullProjectList(ctx, enterpriseID, pageSize, pageNum, condition)
- if err != nil {
- logrus.WithContext(ctx).Errorf("[project service] call GetFullProjectList error,err:%+v", err)
- return nil, err
- }
- fullProjectListData := new(http_model.FullProjectListData)
- fullProjectListData.FullProjectPreview = pack.MGormFullProjectToHttpFullProjectPreview(fullProjects)
- fullProjectListData.Total = conv.MustString(total)
- return fullProjectListData, nil
- }
|