This commit is contained in:
苏尹岚
2021-02-22 16:52:14 +08:00
parent a3a86a3d16
commit 1f7a272aff

View File

@@ -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
}