123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- package dao
- import (
- "errors"
- "gorm.io/gorm"
- "time"
- "youngee_b_api/app/entity"
- "youngee_b_api/app/vo"
- )
- type ProjectDAO struct{}
- func (d ProjectDAO) GetProjectById(ProjectId string) (*entity.Project, error) {
- var Project entity.Project
- err := Db.Where("project_id = ?", ProjectId).First(&Project).Error
- if err != nil {
- if errors.Is(err, gorm.ErrRecordNotFound) {
- return nil, nil
- } else {
- return nil, err
- }
- }
- return &Project, err
- }
- // 根据enterpriseId查询指定某天的所有带货数据
- func (d ProjectDAO) GetProjectListOfDay(enterpriseId string, date time.Time) ([]entity.Project, error) {
- var Projects []entity.Project
- // 构建查询
- query := Db.Model(&entity.Project{})
- if enterpriseId != "" {
- query = query.Where("enterprise_id = ?", enterpriseId)
- }
- // 将日期部分提取出来进行匹配
- query = query.Where("DATE(created_at) = ?", date.Format("2006-01-02"))
- err := query.Find(&Projects).Error
- return Projects, err
- }
- // 创建种草任务
- func (d ProjectDAO) CreateProject(project entity.Project) error {
- err := Db.Omit("recruit_ddl", "auto_fail_at", "auto_script_break_at", "auto_sketch_break_at", "pay_at", "pass_at", "finish_at", "submit_at").Create(&project).Error
- if err != nil {
- return err
- }
- return nil
- }
- // 更新种草任务
- func (d ProjectDAO) UpdateProject(project entity.Project) error {
- err := Db.Model(&entity.Project{}).Where("project_id = ?", project.ProjectId).Updates(project).Error
- if err != nil {
- return err
- }
- return nil
- }
- // 获取种草任务列表
- func (d ProjectDAO) GetProjectPreviews(param *vo.ProjectSearchParam) ([]vo.ReProjectTaskPreview, int64, error) {
- var reProjectTaskPreviews []vo.ReProjectTaskPreview
- var projects []entity.Project
- var total int64
- query := Db.Model(&entity.Project{})
- // 动态添加查询条件
- if param.SubAccountId == 0 {
- if param.EnterpriseId == "" {
- return reProjectTaskPreviews, 0, errors.New("enterpriseId is empty")
- }
- query = query.Where("enterprise_id = ?", param.EnterpriseId)
- } else {
- query = query.Where("sub_account_id = ?", param.SubAccountId)
- }
- if param.ProjectType != 0 {
- query = query.Where("project_type = ?", param.ProjectType)
- }
- if param.ProjectPlatform != 0 {
- query = query.Where("project_platform = ?", param.ProjectPlatform)
- }
- if param.ProjectStatus != 0 {
- query = query.Where("project_status = ?", param.ProjectStatus)
- }
- if param.ProjectForm != 0 {
- query = query.Where("project_form = ?", param.ProjectForm)
- }
- if param.ContentType != 0 {
- query = query.Where("content_type = ?", param.ContentType)
- }
- query.Count(&total)
- query = query.Select("enterprise_id, sub_account_id, project_id, project_platform, project_status, estimated_cost, project_form, content_type, need_review, need_quality, need_calculate, product_id")
- offset := (param.Page - 1) * param.PageSize
- if err := query.Order("created_at asc").Offset(offset).Limit(param.PageSize).Find(&projects).Error; err != nil {
- return nil, 0, err
- }
- for _, project := range projects {
- reProjectTaskPreview := vo.ReProjectTaskPreview{
- EnterpriseId: project.EnterpriseID,
- SubAccountId: project.SubAccountId,
- ProjectId: project.ProjectId,
- ProjectPlatform: project.ProjectPlatform,
- ProjectStatus: project.ProjectStatus,
- EstimatedCost: project.EstimatedCost,
- ProjectForm: project.ProjectForm,
- ContentType: project.ContentType,
- NeedReview: project.NeedReview,
- NeedQuality: project.NeedQuality,
- NeedCalculate: project.NeedCalculate,
- ProductId: project.ProductID,
- }
- reProjectTaskPreviews = append(reProjectTaskPreviews, reProjectTaskPreview)
- }
- return reProjectTaskPreviews, total, nil
- }
- // 删除种草任务
- func (d ProjectDAO) DeleteProject(projectId string) (*string, error) {
- if projectId == "" {
- return &projectId, nil
- }
- err := Db.Where("project_id = ?", projectId).Delete(&entity.Project{}).Error
- if err != nil {
- return nil, err
- }
- return &projectId, nil
- }
|