jobid
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user