getjobs
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
package dao
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
)
|
||||
|
||||
@@ -17,3 +20,122 @@ func GetJobCategories(db *DaoDB, name string) (jobCategories []*model.JobCategor
|
||||
err = GetRows(db, &jobCategories, sql, sqlParams)
|
||||
return jobCategories, err
|
||||
}
|
||||
|
||||
type GetJobsResult struct {
|
||||
model.Job
|
||||
CategoryName string `json:"CategoryName"` //分类名
|
||||
}
|
||||
|
||||
func GetJobs(db *DaoDB, userIDs []string, categoryIDs []int, includeStep bool, fromTime, toTime time.Time, pageSize, offset int) (pagedInfo *model.PagedInfo, err error) {
|
||||
var jobs []*GetJobsResult
|
||||
sql := `
|
||||
SELECT SQL_CALC_FOUND_ROWS a.*, b.name
|
||||
FROM job a
|
||||
JOIN job_category b ON b.id = a.job_category_id AND b.deleted_at = ?
|
||||
WHERE 1 = 1
|
||||
`
|
||||
sqlParams := []interface{}{utils.DefaultTimeValue}
|
||||
if len(userIDs) > 0 {
|
||||
sql += ` AND a.user_id IN (` + GenQuestionMarks(len(userIDs)) + `)`
|
||||
sqlParams = append(sqlParams, userIDs)
|
||||
}
|
||||
if len(categoryIDs) > 0 {
|
||||
sql += ` AND a.job_category_id IN (` + GenQuestionMarks(len(categoryIDs)) + `)`
|
||||
sqlParams = append(sqlParams, categoryIDs)
|
||||
}
|
||||
if fromTime != utils.ZeroTimeValue {
|
||||
sql += ` AND a.created_at >= ?`
|
||||
sqlParams = append(sqlParams, fromTime)
|
||||
}
|
||||
if toTime != utils.ZeroTimeValue {
|
||||
sql += ` AND a.created_at <= ?`
|
||||
sqlParams = append(sqlParams, toTime)
|
||||
}
|
||||
sql += " LIMIT ? OFFSET ?"
|
||||
pageSize = jxutils.FormalizePageSize(pageSize)
|
||||
sqlParams = append(sqlParams, pageSize, offset)
|
||||
Begin(db)
|
||||
defer Commit(db)
|
||||
if err = GetRows(db, &jobs, sql, sqlParams...); err == nil {
|
||||
pagedInfo = &model.PagedInfo{
|
||||
TotalCount: GetLastTotalRowCount(db),
|
||||
// Data: jobs,
|
||||
}
|
||||
if includeStep {
|
||||
for _, v := range jobs {
|
||||
var jobSteps []*model.JobStep
|
||||
sql2 := `
|
||||
SELECT *
|
||||
FROM job_step
|
||||
WHERE job_id = ?
|
||||
AND deleted_at = ?
|
||||
`
|
||||
sqlParams2 := []interface{}{v.ID, utils.DefaultTimeValue}
|
||||
err = GetRows(db, &jobSteps, sql2, sqlParams2)
|
||||
v.JobSteps = jobSteps
|
||||
}
|
||||
}
|
||||
pagedInfo.Data = jobs
|
||||
}
|
||||
return pagedInfo, err
|
||||
}
|
||||
|
||||
func GetJobsNoPage(db *DaoDB, userIDs []string, categoryIDs []int, includeStep bool) (jobs []*GetJobsResult, err error) {
|
||||
sql := `
|
||||
SELECT a.*, b.name
|
||||
FROM job a
|
||||
JOIN job_category b ON b.id = a.job_category_id AND b.deleted_at = ?
|
||||
WHERE 1 = 1
|
||||
`
|
||||
sqlParams := []interface{}{utils.DefaultTimeValue}
|
||||
if len(userIDs) > 0 {
|
||||
sql += ` AND a.user_id IN (` + GenQuestionMarks(len(userIDs)) + `)`
|
||||
sqlParams = append(sqlParams, userIDs)
|
||||
}
|
||||
if len(categoryIDs) > 0 {
|
||||
sql += ` AND a.job_category_id IN (` + GenQuestionMarks(len(categoryIDs)) + `)`
|
||||
sqlParams = append(sqlParams, categoryIDs)
|
||||
}
|
||||
err = GetRows(db, &jobs, sql, sqlParams...)
|
||||
if includeStep {
|
||||
for _, v := range jobs {
|
||||
var jobSteps []*model.JobStep
|
||||
sql2 := `
|
||||
SELECT *
|
||||
FROM job_step
|
||||
WHERE job_id = ?
|
||||
AND deleted_at = ?
|
||||
`
|
||||
sqlParams2 := []interface{}{v.ID, utils.DefaultTimeValue}
|
||||
err = GetRows(db, &jobSteps, sql2, sqlParams2)
|
||||
v.JobSteps = jobSteps
|
||||
}
|
||||
}
|
||||
return jobs, err
|
||||
}
|
||||
|
||||
func GetJobDetail(db *DaoDB, jobID int) (job *GetJobsResult, err error) {
|
||||
var jobSteps []*model.JobStep
|
||||
sql := `
|
||||
SELECT a.*, b.name
|
||||
FROM job a
|
||||
JOIN job_category b ON b.id = a.job_category_id AND b.deleted_at = ?
|
||||
WHERE 1 = 1
|
||||
`
|
||||
sqlParams := []interface{}{utils.DefaultTimeValue}
|
||||
if jobID != 0 {
|
||||
sql += ` AND a.id = ?`
|
||||
sqlParams = append(sqlParams, jobID)
|
||||
}
|
||||
err = GetRow(db, &job, sql, sqlParams...)
|
||||
sql2 := `
|
||||
SELECT *
|
||||
FROM job_step
|
||||
WHERE job_id = ?
|
||||
AND deleted_at = ?
|
||||
`
|
||||
sqlParams2 := []interface{}{job.ID, utils.DefaultTimeValue}
|
||||
err = GetRows(db, &jobSteps, sql2, sqlParams2)
|
||||
job.JobSteps = jobSteps
|
||||
return job, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user