package db import ( "context" "fmt" "github.com/caixw/lib.go/conv" "youngee_m_api/model/gorm_model" "youngee_m_api/model/http_model" ) func CreateJob(ctx context.Context, req *http_model.CreateJobRequest) (*http_model.CreateJobResponse, error) { db := GetReadDB(ctx) job := gorm_model.YounggeeJob{ JobName: req.JobName, JobDetail: req.JobDetail, WorkshopPermission: req.WorkspacePermission, TaskcenterPermission: req.TaskcenterPermission, SectaskPermisson: req.SectaskPermission, FinancialPermission: req.FinancialPermission, UsercenterPermission: req.UsercenterPermission, OperatePermission: req.OperatePermission, AccountId: req.AccountID, } if err := db.Create(&job).Error; err != nil { return nil, err } // 返回更新后的结果 res := &http_model.CreateJobResponse{ JobName: job.JobName, JobID: job.JobId, } return res, nil } func UpdateJobInfo(ctx context.Context, req *http_model.UpdateJobInfoRequest) (*http_model.UpdateJobInfoResponse, error) { db := GetReadDB(ctx) JobInfo := gorm_model.YounggeeJob{} wherecondition := gorm_model.YounggeeJob{JobId: req.JobID} result := db.Where(&wherecondition).First(&JobInfo) if result.Error != nil { fmt.Println("result err:", result.Error) return nil, result.Error } updateData := gorm_model.YounggeeJob{ JobName: req.JobName, JobDetail: req.JobDetail, WorkshopPermission: req.WorkspacePermission, TaskcenterPermission: req.TaskcenterPermission, SectaskPermisson: req.SectaskPermission, FinancialPermission: req.FinancialPermission, UsercenterPermission: req.UsercenterPermission, OperatePermission: req.OperatePermission, AccountId: req.AccountID, } updateResult := db.Model(&JobInfo).Where("job_id = ?", req.JobID).Updates(updateData) if updateResult.Error != nil { fmt.Println("result err:", updateResult.Error) return nil, updateResult.Error } res := &http_model.UpdateJobInfoResponse{ JobID: JobInfo.JobId, JobName: JobInfo.JobName, } return res, nil } func DeleteJob(ctx context.Context, req *http_model.DeleteJobRequest) error { db := GetReadDB(ctx) job := gorm_model.YounggeeJob{ JobId: req.JobId, } result := db.Where("job_id = ?", req.JobId).Delete(job) if result.Error != nil { return result.Error } return nil } func GetJobDetail(ctx context.Context, req *http_model.JobDetailRequest) (*http_model.JobData, error) { db := GetReadDB(ctx) // 获取分页参数 page := req.PageNum pageSize := req.PageSize if page < 1 { page = 1 } if pageSize < 1 { pageSize = 10 // 设置默认每页记录数为 10 } // 构建查询条件 query := db.Model(&gorm_model.YounggeeJob{}) // 查询总数 var total int64 countQuery := query.Count(&total) if countQuery.Error != nil { return nil, countQuery.Error } // 计算偏移量 offset := (page - 1) * pageSize jobInfo := []gorm_model.YounggeeJob{} result := query.Limit(pageSize).Offset(offset).Find(&jobInfo) if result.Error != nil { return nil, result.Error } var jobInfoPointers []*http_model.JobDetailResponse for i := range jobInfo { userInfo := gorm_model.YounggeeUser{} userResult := db.Where(gorm_model.YounggeeUser{ID: jobInfo[i].AccountId}).First(&userInfo) if userResult.Error != nil { return nil, userResult.Error } response := &http_model.JobDetailResponse{ JobInfo: jobInfo[i], Creater: userInfo.Username, } jobInfoPointers = append(jobInfoPointers, response) } // 构造返回结果 subaccountInfolist := &http_model.JobData{ Job: jobInfoPointers, Total: conv.MustString(total, ""), } return subaccountInfolist, nil }