package db import ( "context" "github.com/caixw/lib.go/conv" "time" "youngee_m_api/model/gorm_model" "github.com/sirupsen/logrus" ) func GetTaskList(ctx context.Context, projectID int64) ([]gorm_model.YoungeeTaskInfo, error) { db := GetReadDB(ctx) tasks := []gorm_model.YoungeeTaskInfo{} err := db.Where("project_id=?", projectID).Find(&tasks).Error if err != nil { return nil, err } return tasks, nil } func UpdateLogisticsStatus(ctx context.Context, taskID int64, status int64) error { db := GetReadDB(ctx) err := db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id = ?", taskID).Update("logistics_status", status).Error if err != nil { logrus.WithContext(ctx).Errorf("[task db] call UpdateLogisticsStatus error,err:%+v", err) return err } return nil } func UpdateLogisticsDate(ctx context.Context, taskID int64) error { db := GetReadDB(ctx) err := db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id = ?", taskID).Update("delivery_date", time.Now()).Error if err != nil { logrus.WithContext(ctx).Errorf("[task db] call UpdateLogisticsDate error,err:%+v", err) return err } return nil } func GetProjectIdByTaskId(ctx context.Context, taskID int64) (*int, error) { db := GetReadDB(ctx) task := &gorm_model.YoungeeTaskInfo{} err := db.Model(gorm_model.YoungeeTaskInfo{}).Where("task_id = ?", taskID).Scan(task).Error if err != nil { logrus.WithContext(ctx).Errorf("[task db] call UpdateLogisticsStatus error,err:%+v", err) return nil, err } return &task.ProjectId, nil } func ChangeTaskStatus(ctx context.Context, taskIds []string, taskStatus string) ([]int64, error) { db := GetReadDB(ctx) taskSta := conv.MustInt(taskStatus, 0) if err := db.Debug().Model(&gorm_model.YoungeeTaskInfo{}).Where("task_id IN ?", taskIds). Updates(gorm_model.YoungeeTaskInfo{TaskStatus: taskSta}).Error; err != nil { logrus.WithContext(ctx).Errorf("[ChangeTaskStatus]2 error query mysql total, err:%+v", err) return nil, err } var taskInfos []gorm_model.YoungeeTaskInfo err := db.Debug().Model(&gorm_model.YoungeeTaskInfo{}).Where("task_id IN ?", taskIds).Find(&taskInfos).Error if err != nil { logrus.WithContext(ctx).Errorf("[ChangeTaskStatus]3 error query mysql total, err:%+v", err) return nil, err } var recruitStrategysIDs []int64 recruitStrategys := gorm_model.RecruitStrategy{} for _, taskInfo := range taskInfos { err2 := db.Debug().Model(gorm_model.RecruitStrategy{}).Where("project_id=? AND strategy_id=?", taskInfo.ProjectId, taskInfo.StrategyId).Scan(&recruitStrategys).Error if err2 != nil { logrus.WithContext(ctx).Errorf("[ChangeTaskStatus]4 error query mysql total, err:%+v", err2) return nil, err2 } recruitStrategysIDs = append(recruitStrategysIDs, recruitStrategys.RecruitStrategyID) } return recruitStrategysIDs, nil } func UpdateTaskStage(ctx context.Context, projectID int64, taskStatus int64, taskStage int64) error { db := GetReadDB(ctx) err := db.Model(gorm_model.YoungeeTaskInfo{}).Where("project_id=? and task_status = ?", projectID, taskStatus).Update("task_stage", taskStage).Error if err != nil { logrus.WithContext(ctx).Errorf("[UpdateTaskStatusPaying]2 error query mysql total, err:%+v", err) return err } return nil } func UpdateTaskSelectAtByProjectId(ctx context.Context, projectID int64, taskStatus int64) error { db := GetReadDB(ctx) err := db.Model(gorm_model.YoungeeTaskInfo{}).Where("project_id=? and task_status = ?", projectID, taskStatus).Update("select_date", time.Now()).Error if err != nil { logrus.WithContext(ctx).Errorf("[UpdateTaskStage]2 error query mysql total, err:%+v", err) return err } return nil } func UpdateTaskStageByProjectId(ctx context.Context, projectID int64, taskStatus int64, taskStage int64) error { db := GetReadDB(ctx) err := db.Model(gorm_model.YoungeeTaskInfo{}).Where("project_id=? and task_status = ?", projectID, taskStatus).Update("task_stage", taskStage).Error if err != nil { logrus.WithContext(ctx).Errorf("[UpdateTaskStage]2 error query mysql total, err:%+v", err) return err } return nil }