|
@@ -3,7 +3,9 @@ package db
|
|
|
import (
|
|
|
"context"
|
|
|
"github.com/sirupsen/logrus"
|
|
|
+ "youngee_b_api/consts"
|
|
|
"youngee_b_api/model/gorm_model"
|
|
|
+ "youngee_b_api/model/http_model"
|
|
|
|
|
|
"gorm.io/gorm"
|
|
|
)
|
|
@@ -97,3 +99,78 @@ func GetProductPhotoInfoBySelectionId(ctx context.Context, selectionId string) (
|
|
|
}
|
|
|
return productPhotoInfo, nil
|
|
|
}
|
|
|
+
|
|
|
+func GetAllProduct(ctx context.Context, req *http_model.GetAllProductRequest, enterpriseID string) ([]*http_model.ProjectBriefInfo, int64, error) {
|
|
|
+ var ProjectBriefInfos []*http_model.ProjectBriefInfo
|
|
|
+ db := GetReadDB(ctx)
|
|
|
+ var projectInfos []*gorm_model.ProjectInfo
|
|
|
+ db = db.Debug().Model(gorm_model.ProjectInfo{}).Where("enterprise_id = ?", enterpriseID)
|
|
|
+ if req.Platform != 0 {
|
|
|
+ db = db.Model(gorm_model.ProjectInfo{}).Where("project_platform = ?", req.Platform)
|
|
|
+ }
|
|
|
+ if req.FeeForm != 0 {
|
|
|
+ db = db.Model(gorm_model.ProjectInfo{}).Where("fee_form = ?", req.FeeForm)
|
|
|
+ }
|
|
|
+ if req.ProjectForm != 0 {
|
|
|
+ db = db.Model(gorm_model.ProjectInfo{}).Where("project_form = ?", req.ProjectForm)
|
|
|
+ }
|
|
|
+ // 查询总数
|
|
|
+ var total int64
|
|
|
+ if err := db.Count(&total).Error; err != nil {
|
|
|
+ logrus.WithContext(ctx).Errorf("[GetAllProduct] error query mysql total, err:%+v", err)
|
|
|
+ return nil, 0, err
|
|
|
+ }
|
|
|
+ // 查询该页数据
|
|
|
+ limit := req.PageSize
|
|
|
+ offset := req.PageSize * req.PageNum // assert pageNum start with 0
|
|
|
+ err := db.Order("submit_at desc").Limit(int(limit)).Offset(int(offset)).Find(&projectInfos).Error
|
|
|
+ if err != nil {
|
|
|
+ logrus.WithContext(ctx).Errorf("[GetSelectionList] error query mysql total, err:%+v", err)
|
|
|
+ return nil, 0, err
|
|
|
+ }
|
|
|
+ projectIdToRecruitStrategy := make(map[string][]*gorm_model.RecruitStrategy)
|
|
|
+ platformToPlatformIcon := make(map[int64]string)
|
|
|
+ projectIdToSignNum := make(map[string]int64)
|
|
|
+ for _, projectInfo := range projectInfos {
|
|
|
+ var RecruitStrategys []*gorm_model.RecruitStrategy
|
|
|
+ db1 := GetReadDB(ctx)
|
|
|
+ err := db1.Debug().Model(gorm_model.RecruitStrategy{}).Where("project_id = ?", projectInfo.ProjectID).Find(&RecruitStrategys).Error
|
|
|
+ if err != nil {
|
|
|
+ logrus.WithContext(ctx).Errorf("[GetAllProduct] error query RecruitStrategys, err:%+v", err)
|
|
|
+ return nil, 0, err
|
|
|
+ }
|
|
|
+ projectIdToRecruitStrategy[projectInfo.ProjectID] = RecruitStrategys
|
|
|
+ }
|
|
|
+ for _, projectInfo := range projectInfos {
|
|
|
+ PlatformIcon := ""
|
|
|
+ db1 := GetReadDB(ctx)
|
|
|
+ err := db1.Debug().Model(gorm_model.InfoThirdPlatform{}).Select("platform_icon").Where("platform_id = ?", projectInfo.ProjectPlatform).Find(&PlatformIcon).Error
|
|
|
+ if err != nil {
|
|
|
+ logrus.WithContext(ctx).Errorf("[GetAllProduct] error query PlatformIcon, err:%+v", err)
|
|
|
+ return nil, 0, err
|
|
|
+ }
|
|
|
+ platformToPlatformIcon[projectInfo.ProjectPlatform] = PlatformIcon
|
|
|
+ }
|
|
|
+ for _, projectInfo := range projectInfos {
|
|
|
+ var SignNum int64
|
|
|
+ db1 := GetReadDB(ctx)
|
|
|
+ err := db1.Debug().Model(gorm_model.YoungeeTaskInfo{}).Where("project_id = ?", projectInfo.ProjectID).Count(&SignNum).Error
|
|
|
+ if err != nil {
|
|
|
+ logrus.WithContext(ctx).Errorf("[GetAllProduct] error query SignNum, err:%+v", err)
|
|
|
+ return nil, 0, err
|
|
|
+ }
|
|
|
+ projectIdToSignNum[projectInfo.ProjectID] = SignNum
|
|
|
+ }
|
|
|
+ for _, projectInfo := range projectInfos {
|
|
|
+ ProjectBriefInfo := new(http_model.ProjectBriefInfo)
|
|
|
+ ProjectBriefInfo.ProjectName = projectInfo.ProjectName
|
|
|
+ ProjectBriefInfo.ProductSnap = projectInfo.ProductSnap
|
|
|
+ ProjectBriefInfo.ProductPhotoSnap = projectInfo.ProductPhotoSnap
|
|
|
+ ProjectBriefInfo.Platform = consts.GetProjectPlatform(projectInfo.ProjectPlatform)
|
|
|
+ ProjectBriefInfo.PlatformIcon = platformToPlatformIcon[projectInfo.ProjectPlatform]
|
|
|
+ ProjectBriefInfo.RecruitStrategys = projectIdToRecruitStrategy[projectInfo.ProjectID]
|
|
|
+ ProjectBriefInfo.SignNum = projectIdToSignNum[projectInfo.ProjectID]
|
|
|
+ ProjectBriefInfos = append(ProjectBriefInfos, ProjectBriefInfo)
|
|
|
+ }
|
|
|
+ return ProjectBriefInfos, total, nil
|
|
|
+}
|