diff --git a/business/jxstore/cms/job.go b/business/jxstore/cms/job.go index b40e568e9..1fd588f72 100644 --- a/business/jxstore/cms/job.go +++ b/business/jxstore/cms/job.go @@ -1666,5 +1666,128 @@ func UpdateJob(ctx *jxcontext.Context, payload map[string]interface{}) (err erro } func TempJob() (err error) { + var ( + db = dao.GetDB() + ctx = jxcontext.AdminCtx + ) + db.Db.Using("c4") + sql := ` + SELECT * + FROM + ` + for _, v := range stores { + job := &model.Job{ + UserID: "906380C7390E11EB8831525400C36BDA", + JobCategoryID: 3, + } + } + + finishedAt = utils.Str2Time(jobExt.FinishedAtStr) + job.FinishedAt = &finishedAt + // 需根据任务类型做一些参数判断,比如门店商品链接,地址 + if job.AvgPrice == 0 { + return errCode, fmt.Errorf("请输入单个任务奖励(保证)金额!") + } + switch job.JobCategoryID { + case model.JobCategoryIDwmtg: + if job.Address == "" { + return errCode, fmt.Errorf("外卖推广任务请输入门店地址!") + } + case model.JobCategoryIDOther: + case model.JobCategoryIDDropShipping: + if job.DropShippingAt == 0 { + return errCode, fmt.Errorf("一件代发任务请输入承诺x天内发货!") + } + if job.DropShippingSkuPrice == 0 { + return errCode, fmt.Errorf("一件代发任务请输入商品价格!") + } + job.CashbackType = model.JobCashbackPrice + job.LimitCountType = model.JobLimitCountTypeNoLimit + job.JobLimitAt = 0 + job.AuditLimitAt = 0 + default: + return 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之间的比例!") + } + case model.JobCashbackPrice: + default: + return errCode, fmt.Errorf("暂不支持的返现类型! %v", job.CashbackType) + } + if job.UserID == "" { + return errCode, fmt.Errorf("参数有误!") + } + if ctx.GetUserID() != job.UserID { + return errCode, fmt.Errorf("用户信息已过期,请重新登录!") + } + if job.FinishedAt.Sub(time.Now()) <= 0 { + return errCode, fmt.Errorf("任务截止日期必须大于今天!") + } + if job2, _ := dao.GetJobWithTitle(db, job.Title); job2 != nil { + return errCode, fmt.Errorf("任务标题重复,请重新输入!") + } + if job.JobCityCode != model.JobCountrywideCode { + _, _, job.JobCityCode, err = getAddressInfoFromCoord(db, job.JobLng, job.JobLat) + } + //验证微信绑定 + if err = auth2.CheckWeixinminiAuthBind(ctx.GetUserID()); err != nil { + return "", err + } + //发布任务要扣除任务总额的保证金,不够扣就要进行充值 + userBill, err := dao.GetUserBill(db, job.UserID, "") + if userBill == nil { + return errCode, fmt.Errorf("未查询到该用户的账单!") + } + job.TotalPrice = job.Count * job.AvgPrice + if userBill.AccountBalance < job.TotalPrice { + return model.ErrCodeAccountBalanceNotEnough, fmt.Errorf("用户余额不足!") + } + if job.Count <= 0 { + return errCode, fmt.Errorf("任务数量不能为0!") + } + job.SurplusCount = job.Count + if job.UserID == "" { + return 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("请填写完整且正确的门店地址!") + } + job.Lng = jxutils.StandardCoordinate2Int(lng) + job.Lat = jxutils.StandardCoordinate2Int(lat) + } + dao.WrapAddIDCULDEntity(job, ctx.GetUserName()) + dao.Begin(db) + defer func() { + if r := recover(); r != nil { + dao.Rollback(db) + panic(r) + } + }() + if err = dao.CreateEntity(db, job); err != nil { + dao.Rollback(db) + return + } + for _, v := range jobExt.JobSteps { + dao.WrapAddIDCULDEntity(v, ctx.GetUserName()) + v.JobID = job.ID + err = dao.CreateEntity(db, v) + } + for _, v := range jobExt.JobImgs { + dao.WrapAddIDCULEntity(v, ctx.GetUserName()) + v.JobID = job.ID + err = dao.CreateEntity(db, v) + } + if err != nil { + dao.Rollback(db) + return + } + dao.Commit(db) return err }