diff --git a/business/jxstore/cms/job.go b/business/jxstore/cms/job.go index 21fcd35d1..66aa684e9 100644 --- a/business/jxstore/cms/job.go +++ b/business/jxstore/cms/job.go @@ -63,7 +63,7 @@ func init() { JobTimers.s = new(sync.RWMutex) } -func PublishJob(ctx *jxcontext.Context, jobExt *model.JobExt) (errCode string, err error) { +func PublishJob(ctx *jxcontext.Context, jobExt *model.JobExt) (jobID int, errCode string, err error) { var ( db = dao.GetDB() job = &model.Job{} @@ -78,21 +78,21 @@ func PublishJob(ctx *jxcontext.Context, jobExt *model.JobExt) (errCode string, e // 需根据任务类型做一些参数判断,比如门店商品链接,地址 if job.JobCategoryID != model.JobCategoryIDUnion { if job.AvgPrice == 0 { - return errCode, fmt.Errorf("请输入单个任务奖励(保证)金额!") + return 0, errCode, fmt.Errorf("请输入单个任务奖励(保证)金额!") } } switch job.JobCategoryID { case model.JobCategoryIDwmtg: if job.Address == "" { - return errCode, fmt.Errorf("外卖推广任务请输入门店地址!") + return 0, errCode, fmt.Errorf("外卖推广任务请输入门店地址!") } case model.JobCategoryIDOther: case model.JobCategoryIDDropShipping: if job.DropShippingAt == 0 { - return errCode, fmt.Errorf("一件代发任务请输入承诺x天内发货!") + return 0, errCode, fmt.Errorf("一件代发任务请输入承诺x天内发货!") } if job.DropShippingSkuPrice == 0 { - return errCode, fmt.Errorf("一件代发任务请输入商品价格!") + return 0, errCode, fmt.Errorf("一件代发任务请输入商品价格!") } job.CashbackType = model.JobCashbackPrice job.LimitCountType = model.JobLimitCountTypeNoLimit @@ -100,27 +100,27 @@ func PublishJob(ctx *jxcontext.Context, jobExt *model.JobExt) (errCode string, e job.AuditLimitAt = 0 case model.JobCategoryIDUnion: if job.UnionImg == "" || job.UnionQrcodePosition == "" { - return errCode, fmt.Errorf("联盟任务发布请输入分享的背景图和二维码图方位!") + return 0, errCode, fmt.Errorf("联盟任务发布请输入分享的背景图和二维码图方位!") } default: - return errCode, fmt.Errorf("暂不支持的任务类型! %v", job.JobCategoryID) + return 0, errCode, fmt.Errorf("暂不支持的任务类型! %v", job.JobCategoryID) } // 需根据返现类型做一些参数判断 switch job.CashbackType { case model.JobCashbackPercentage: if job.Percentage <= 0 || job.Percentage > 100 { - return errCode, fmt.Errorf("返现比例请输入1-100之间的比例!") + return 0, errCode, fmt.Errorf("返现比例请输入1-100之间的比例!") } case model.JobCashbackPrice: default: - return errCode, fmt.Errorf("暂不支持的返现类型! %v", job.CashbackType) + return 0, errCode, fmt.Errorf("暂不支持的返现类型! %v", job.CashbackType) } if job.Count <= 0 { - return errCode, fmt.Errorf("任务数量不能为0!") + return 0, errCode, fmt.Errorf("任务数量不能为0!") } job.SurplusCount = job.Count if job.UserID == "" { - return errCode, fmt.Errorf("任务发起人不能为空!") + return 0, errCode, fmt.Errorf("任务发起人不能为空!") } var ( userBill *model.UserBill @@ -128,45 +128,45 @@ func PublishJob(ctx *jxcontext.Context, jobExt *model.JobExt) (errCode string, e if ctx.GetToken() != jxcontext.RsmDefultToken { if ctx.GetUserID() != job.UserID { - return errCode, fmt.Errorf("用户信息已过期,请重新登录!") + return 0, errCode, fmt.Errorf("用户信息已过期,请重新登录!") } //验证微信绑定 if err = auth2.CheckWeixinminiAuthBind(ctx.GetUserID()); err != nil { - return "", err + return 0, "", err } //发布任务要扣除任务总额的保证金,不够扣就要进行充值 userBill, _ = dao.GetUserBill(db, job.UserID, "") if userBill == nil { - return errCode, fmt.Errorf("未查询到该用户的账单!") + return 0, errCode, fmt.Errorf("未查询到该用户的账单!") } job.TotalPrice = job.Count * job.AvgPrice if userBill.AccountBalance < job.TotalPrice { - return model.ErrCodeAccountBalanceNotEnough, fmt.Errorf("用户余额不足!") + return 0, model.ErrCodeAccountBalanceNotEnough, fmt.Errorf("用户余额不足!") } jobs, _ := dao.GetJobsNoPage(db, []string{job.UserID}, nil, nil, nil, DayTimeBegin, DayTimeEnd, 0, false) if len(jobs) > 0 { members, err := dao.GetUserMember(db, job.UserID, model.MemberTypeNormal) if err != nil { - return errCode, err + return 0, errCode, err } if len(members) <= 0 { - return errCode, fmt.Errorf("非会员一天只能发布一起任务,请确认!") + return 0, errCode, fmt.Errorf("非会员一天只能发布一起任务,请确认!") } } if job.Address != "" && (job.Lng == 0 || job.Lat == 0) { lng, lat, _ := api.AutonaviAPI.GetCoordinateFromAddressByPage(job.Address, job.JobCityCode) if lng == 0 || lat == 0 { - return errCode, fmt.Errorf("请填写完整且正确的门店地址!") + return 0, errCode, fmt.Errorf("请填写完整且正确的门店地址!") } job.Lng = jxutils.StandardCoordinate2Int(lng) job.Lat = jxutils.StandardCoordinate2Int(lat) } } if job.FinishedAt.Sub(time.Now()) <= 0 { - return errCode, fmt.Errorf("任务截止日期必须大于今天!") + return 0, errCode, fmt.Errorf("任务截止日期必须大于今天!") } if job2, _ := dao.GetJobWithTitle(db, job.Title); job2 != nil { - return errCode, fmt.Errorf("任务标题重复,请重新输入!") + return 0, errCode, fmt.Errorf("任务标题重复,请重新输入!") } if job.JobCityCode != model.JobCountrywideCode { _, _, job.JobCityCode, err = getAddressInfoFromCoord(db, job.JobLng, job.JobLat) @@ -215,7 +215,7 @@ func PublishJob(ctx *jxcontext.Context, jobExt *model.JobExt) (errCode string, e content.WriteString("元") event.SendSysMessageSimple(content.String(), job.UserID) } - return errCode, err + return job.ID, errCode, err } func CancelPublishJob(ctx *jxcontext.Context, jobID int) (err error) { diff --git a/controllers/job_controller.go b/controllers/job_controller.go index 5c8cd9b7e..8c57e6c2d 100644 --- a/controllers/job_controller.go +++ b/controllers/job_controller.go @@ -29,7 +29,7 @@ func (c *JobController) PublishJob() { c.callPublishJob(func(params *tJobPublishJobParams) (retVal interface{}, errCode string, err error) { var job *model.JobExt if err = utils.UnmarshalUseNumber([]byte(params.Payload), &job); err == nil { - errCode, err = cms.PublishJob(params.Ctx, job) + _, errCode, err = cms.PublishJob(params.Ctx, job) } return retVal, errCode, err })