From dc1829de5a8557b4835910b7e532e1f80749fc9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 3 Nov 2020 11:57:06 +0800 Subject: [PATCH] job --- business/jxstore/cms/job.go | 4 ++-- business/model/dao/dao_job.go | 13 +++++++++++-- controllers/job_controller.go | 2 +- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/business/jxstore/cms/job.go b/business/jxstore/cms/job.go index cf3038670..8dbaad85b 100644 --- a/business/jxstore/cms/job.go +++ b/business/jxstore/cms/job.go @@ -192,8 +192,8 @@ func CancelPublishJob(ctx *jxcontext.Context, jobID int) (err error) { return err } -func GetJobs(ctx *jxcontext.Context, userIDs []string, categoryIDs, statuss, vendorIDs []int, includeStep bool, fromTime, toTime string, pageSize, offset int) (pagedInfo *model.PagedInfo, err error) { - return dao.GetJobs(dao.GetDB(), userIDs, categoryIDs, statuss, vendorIDs, []int{model.JobTypeNormal}, includeStep, utils.Str2Time(fromTime), utils.Str2Time(toTime), pageSize, offset) +func GetJobs(ctx *jxcontext.Context, userIDs []string, categoryIDs, statuss, vendorIDs []int, includeStep bool, fromTime, toTime string, lng, lat float64, sortType, pageSize, offset int) (pagedInfo *model.PagedInfo, err error) { + return dao.GetJobs(dao.GetDB(), userIDs, categoryIDs, statuss, vendorIDs, []int{model.JobTypeNormal}, includeStep, utils.Str2Time(fromTime), utils.Str2Time(toTime), lng, lat, sortType, pageSize, offset) } func GetJobDetail(ctx *jxcontext.Context, jobID int, lng, lat float64) (job *dao.GetJobsResult, err error) { diff --git a/business/model/dao/dao_job.go b/business/model/dao/dao_job.go index 98d65b74b..5ac2d7bd7 100644 --- a/business/model/dao/dao_job.go +++ b/business/model/dao/dao_job.go @@ -30,7 +30,7 @@ type GetJobsResult struct { Distance float64 `json:"distance"` //距用户距离 } -func GetJobs(db *DaoDB, userIDs []string, categoryIDs, statuss, vendorIDs, types []int, includeStep bool, fromTime, toTime time.Time, pageSize, offset int) (pagedInfo *model.PagedInfo, err error) { +func GetJobs(db *DaoDB, userIDs []string, categoryIDs, statuss, vendorIDs, types []int, includeStep bool, fromTime, toTime time.Time, lng, lat float64, sortType, pageSize, offset int) (pagedInfo *model.PagedInfo, err error) { var jobs []*GetJobsResult sql := ` SELECT SQL_CALC_FOUND_ROWS a.*, b.name @@ -92,7 +92,10 @@ func GetJobs(db *DaoDB, userIDs []string, categoryIDs, statuss, vendorIDs, types } } for _, v := range jobs { - var jobImgs []*model.JobImg + var ( + jobImgs []*model.JobImg + distance float64 + ) sql3 := ` SELECT * FROM job_img @@ -104,6 +107,12 @@ func GetJobs(db *DaoDB, userIDs []string, categoryIDs, statuss, vendorIDs, types v.JobImgs = jobImgs v.IndexImg = jobImgs[0].Img } + if v.Lng != 0 && v.Lat != 0 { + distance = jxutils.EarthDistance(lng, lat, jxutils.IntCoordinate2Standard(v.Lng), jxutils.IntCoordinate2Standard(v.Lat)) + } else { + distance = 0 + } + v.Distance = distance } pagedInfo.Data = jobs } diff --git a/controllers/job_controller.go b/controllers/job_controller.go index e97754dfb..5c5fdb1f5 100644 --- a/controllers/job_controller.go +++ b/controllers/job_controller.go @@ -83,7 +83,7 @@ func (c *JobController) GetJobs() { categoryIDs, statuss, vendorIDs []int ) if err = jxutils.Strings2Objs(params.UserIDs, &userIDs, params.CategoryIDs, &categoryIDs, params.Statuss, &statuss, params.VendorIDs, vendorIDs); err == nil { - retVal, err = cms.GetJobs(params.Ctx, userIDs, categoryIDs, statuss, vendorIDs, params.IncludeStep, params.FromTime, params.ToTime, params.PageSize, params.Offset) + retVal, err = cms.GetJobs(params.Ctx, userIDs, categoryIDs, statuss, vendorIDs, params.IncludeStep, params.FromTime, params.ToTime, params.Lng, params.Lat, params.SortType, params.PageSize, params.Offset) } return retVal, "", err })