This commit is contained in:
苏尹岚
2021-04-20 09:33:30 +08:00
parent 14f7fc7828
commit a75ed0f33c
18 changed files with 473 additions and 459 deletions

View File

@@ -162,15 +162,15 @@ func PublishJob(ctx *jxcontext.Context, jobExt *model.JobExt) (errCode string, e
job.Lat = jxutils.StandardCoordinate2Int(lat)
}
dao.WrapAddIDCULDEntity(job, ctx.GetUserName())
dao.Begin(db)
txDB, _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
if err = dao.CreateEntity(db, job); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return
}
for _, v := range jobExt.JobSteps {
@@ -184,17 +184,17 @@ func PublishJob(ctx *jxcontext.Context, jobExt *model.JobExt) (errCode string, e
err = dao.CreateEntity(db, v)
}
if err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return
}
//发布任务要扣除任务总额的保证金,不够扣就要进行充值
if err == nil && job.Status != model.JobStatusFailed {
if err = financial.AddExpendUpdateAccount(db, userBill, model.BillTypeDeposit, job.TotalPrice, job.ID); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return
}
}
dao.Commit(db)
dao.Commit(db, txDB)
content := new(strings.Builder)
content.WriteString("您的任务:")
content.WriteString(job.Title)
@@ -220,10 +220,10 @@ func CancelPublishJob(ctx *jxcontext.Context, jobID int) (err error) {
if userBill == nil {
return fmt.Errorf("未查询到该用户的账单!")
}
dao.Begin(db)
txDB, _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
@@ -241,17 +241,17 @@ func CancelPublishJob(ctx *jxcontext.Context, jobID int) (err error) {
price = job.TotalPrice - price
}
if err = financial.AddIncomeUpdateAccount(db, userBill, model.BillTypeJobCancelOverdue, price, jobID); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return
}
//3、任务状态被取消
job.Status = model.JobStatusFailed
// job.DeletedAt = time.Now()
if _, err = dao.UpdateEntity(db, job, "Status"); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return
}
dao.Commit(db)
dao.Commit(db, txDB)
content := new(strings.Builder)
content.WriteString("您的任务:")
content.WriteString(job.Title)
@@ -398,44 +398,44 @@ func AcceptJob(ctx *jxcontext.Context, jobID, dropShippingDeliveryID, dropShippi
} else if job.JobCategoryID == model.JobCategoryIDUnion {
jobOrder.Status = model.JobOrderStatusSpec
}
dao.Begin(db)
txDB, _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
dao.WrapAddIDCULEntity(jobOrder, ctx.GetUserName())
if err = dao.CreateEntity(db, jobOrder); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return
}
//用户接受任务,任务剩余次数-1
job.SurplusCount -= 1
if _, err = dao.UpdateEntity(db, job, "SurplusCount"); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return
}
dao.Commit(db)
dao.Commit(db, txDB)
if job.JobCategoryID == model.JobCategoryIDDropShipping {
dao.Begin(db)
txDB, _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
if err = financial.AddExpendUpdateAccount(db, userBill, model.BillTypeDropShipping, jobOrder.UserActualPrice, job.ID); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return
}
//一件代发
if err = SubmitJob(ctx, jobOrder); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return
}
dao.Commit(db)
dao.Commit(db, txDB)
} else {
//任务限时完成
timer := checkLimitJobOrders(db, job, jobOrder, model.JobTimerTypeAccept)
@@ -468,10 +468,10 @@ func CancelAcceptJob(ctx *jxcontext.Context, jobID int, jobOrderID int64) (err e
} else {
content.WriteString(",已被取消。")
}
dao.Begin(db)
txDB, _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
@@ -479,7 +479,7 @@ func CancelAcceptJob(ctx *jxcontext.Context, jobID int, jobOrderID int64) (err e
if job.Status >= 0 {
job.SurplusCount += 1
if _, err = dao.UpdateEntity(db, job, "SurplusCount"); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return
}
} else {
@@ -492,7 +492,7 @@ func CancelAcceptJob(ctx *jxcontext.Context, jobID int, jobOrderID int64) (err e
//是固定返现才会退一笔任务单价
if job.CashbackType == model.JobCashbackPrice {
if err = financial.AddIncomeUpdateAccount(db, userBill, model.BillTypeJobCancelOverdue, job.AvgPrice, jobID); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return err
}
}
@@ -504,17 +504,17 @@ func CancelAcceptJob(ctx *jxcontext.Context, jobID int, jobOrderID int64) (err e
return fmt.Errorf("未查询到该用户的账单!")
}
if err = financial.AddIncomeUpdateAccount(db, userBill, model.BillTypeJobCancelOverdue, jobOrder.UserActualPrice, jobID); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return err
}
}
//3、任务订单状态被取消
jobOrder.Status = model.JobOrderStatusCancel
if _, err = dao.UpdateEntity(db, jobOrder, "Status"); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return err
}
dao.Commit(db)
dao.Commit(db, txDB)
event.SendSysMessageSimple(content.String(), jobOrder.UserID)
return err
}
@@ -607,18 +607,18 @@ func UpdateDropShippingJobOrders(db *dao.DaoDB, timer *time.Timer, jobID int, jo
//如果限时内还没发货
if jobOrder.Status < model.JobOrderStatusFinish {
userBill, err := dao.GetUserBill(db, jobOrder.UserID, "")
dao.Begin(db)
txDB, _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
if err = financial.AddIncomeUpdateAccount(db, userBill, model.BillTypeDropShippingDeposit, job.AvgPrice, job.ID); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return
}
dao.Commit(db)
dao.Commit(db, txDB)
}
}
}
@@ -736,15 +736,15 @@ func AuditJob(ctx *jxcontext.Context, jobOrderID, status int, comment, vendorWay
} else {
content.WriteString(",商家已经审核")
}
dao.Begin(db)
txDB, _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
if _, err = dao.UpdateEntity(db, jobOrder, "Status", "Comment", "AuditAt", "LastOperator"); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return
}
if status == model.JobOrderStatusAuditPass {
@@ -769,19 +769,19 @@ func AuditJob(ctx *jxcontext.Context, jobOrderID, status int, comment, vendorWay
if messageGroupsResult[0].DividePercentage != 0 {
if userBillGroupMaster, err := dao.GetUserBill(db, messageGroupsResult[0].UserID, ""); err == nil {
if err = financial.AddIncomeUpdateAccount(db, userBillGroupMaster, model.BillTypeDivide, price*messageGroupsResult[0].DividePercentage/100, job.ID); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return err
}
}
//接收人账户收入
if err = financial.AddIncomeUpdateAccount(db, userBillJobOrder, model.BillTypeJobDivide, price*(100-messageGroupsResult[0].DividePercentage)/100, job.ID); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return err
}
} else {
//接收人账户收入
if err = financial.AddIncomeUpdateAccount(db, userBillJobOrder, model.BillTypeJob, price, job.ID); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return err
}
}
@@ -790,14 +790,14 @@ func AuditJob(ctx *jxcontext.Context, jobOrderID, status int, comment, vendorWay
} else if len(messageGroupMembers) == 0 { //若没有在某个群组,则得到全部
//接收人账户收入
if err = financial.AddIncomeUpdateAccount(db, userBillJobOrder, model.BillTypeJob, price, job.ID); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return err
}
}
}
jobOrder.Status = model.JobOrderStatusFinish
if _, err = dao.UpdateEntity(db, jobOrder, "Status"); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return err
}
content.WriteString(utils.Float64ToStr(jxutils.IntPrice2Standard(int64(price))))
@@ -807,12 +807,12 @@ func AuditJob(ctx *jxcontext.Context, jobOrderID, status int, comment, vendorWay
jobOrder.VendorWaybillID = vendorWaybillID
jobOrder.Status = model.JobOrderStatusFinish
if _, err = dao.UpdateEntity(db, jobOrder, "Status", "VendorWaybillID"); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return err
}
userBill, err := dao.GetUserBill(db, job.UserID, "")
if err = financial.AddIncomeUpdateAccount(db, userBill, model.BillTypeDropShippingDeposit, job.AvgPrice, job.ID); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return err
}
}
@@ -826,7 +826,7 @@ func AuditJob(ctx *jxcontext.Context, jobOrderID, status int, comment, vendorWay
if job.CashbackType == model.JobCashbackPrice {
userBill, err := dao.GetUserBill(db, job.UserID, "")
if err = financial.AddIncomeUpdateAccount(db, userBill, model.BillTypeJobAuditUnPassWithCancelOverdue, job.AvgPrice, job.ID); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return err
}
}
@@ -834,7 +834,7 @@ func AuditJob(ctx *jxcontext.Context, jobOrderID, status int, comment, vendorWay
//审核不通过的话,要重新变成待上传,再重新开个定时器
jobOrder.Status = model.JobOrderStatusAccept
if _, err = dao.UpdateEntity(db, jobOrder, "Status"); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return
}
//之前的定时表删了?
@@ -843,7 +843,7 @@ func AuditJob(ctx *jxcontext.Context, jobOrderID, status int, comment, vendorWay
JobOrderID: jobOrder.JobOrderID,
}
if _, err = dao.DeleteEntity(db, jobTimer, "JobID", "JobOrderID"); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return
}
//任务限时完成
@@ -854,7 +854,7 @@ func AuditJob(ctx *jxcontext.Context, jobOrderID, status int, comment, vendorWay
}
event.SendSysMessageSimple(content2.String(), jobOrder.UserID)
}
dao.Commit(db)
dao.Commit(db, txDB)
//任务定时器停止
JobTimers.s.RLock()
if JobTimers.JobAuditTimerMap[int64(jobOrderID)] != nil {
@@ -896,10 +896,10 @@ func RefreshJobStatus(ctx *jxcontext.Context) (err error) {
if userBill == nil {
return fmt.Errorf("未查询到该用户的账单!")
}
dao.Begin(db)
txDB, _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
@@ -917,7 +917,7 @@ func RefreshJobStatus(ctx *jxcontext.Context) (err error) {
price = job.TotalPrice - price
}
if err = financial.AddIncomeUpdateAccount(db, userBill, model.BillTypeJobCancelOverdue, price, job.ID); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return err
}
//3、任务状态被取消
@@ -928,11 +928,11 @@ func RefreshJobStatus(ctx *jxcontext.Context) (err error) {
job2.Status = model.JobStatusOverdue
// job.DeletedAt = time.Now()
if _, err = dao.UpdateEntity(db, job2, "Status"); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return err
}
}
dao.Commit(db)
dao.Commit(db, txDB)
}
}
globals.SugarLogger.Debugf("RefreshJobStatus end...")
@@ -964,10 +964,10 @@ func RechargeMtMembers(ctx *jxcontext.Context, phone int) (errCode string, err e
db2 = dao.GetDB()
userID = ctx.GetUserID()
)
dao.Begin(db)
txDB, _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
@@ -979,12 +979,12 @@ func RechargeMtMembers(ctx *jxcontext.Context, phone int) (errCode string, err e
})
}
if err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return errCode, err
}
//验证微信绑定
if err = auth2.CheckWeixinminiAuthBind(userID); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return "", err
}
//特殊任务,如美团会员,是直接要支付
@@ -997,15 +997,15 @@ func RechargeMtMembers(ctx *jxcontext.Context, phone int) (errCode string, err e
}
//账户支出
if err = financial.AddExpendUpdateAccount(db, userBill, model.BillTypeSpJob, mtwmMemberPrice, 1); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return errCode, err
}
dao.Commit(db)
dao.Commit(db, txDB)
for {
dao.Begin(db2)
txDB, _ := dao.Begin(db2)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db2)
dao.Rollback(db2, txDB)
panic(r)
}
}()
@@ -1016,7 +1016,7 @@ func RechargeMtMembers(ctx *jxcontext.Context, phone int) (errCode string, err e
err = api.MtMemberAPI.RechargeExchange(phone, mtMember.ShortLink)
mtMember.DeletedAt = time.Now()
dao.UpdateEntity(db2, mtMember, "DeletedAt")
dao.Commit(db2)
dao.Commit(db2, txDB)
if err == nil {
job, err := dao.GetJob(db2, nil, nil, nil, []int{model.JobTypeMtMember}, utils.ZeroTimeValue, utils.ZeroTimeValue, false)
_, errCode, err = AcceptJob(ctx, job.ID, 0, 0)
@@ -1117,16 +1117,16 @@ func SendJdDelivery(ctx *jxcontext.Context, dOrder *model.DeliveryOrder) (errCod
}
dOrder.Status = model.OrderStatusNew
dOrder.UserID = ctx.GetUserID()
dao.Begin(db)
txDB, _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
//账户支出明细
if err = financial.AddExpendUpdateAccount(db, userBill, model.BillTypeSpJob, dOrder.PayPrice, 2); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return
}
dOrder.SendName = sendDelivery.ConsigneeName
@@ -1146,10 +1146,10 @@ func SendJdDelivery(ctx *jxcontext.Context, dOrder *model.DeliveryOrder) (errCod
dOrder.ReceiveLng = receiveDelivery.Lng
dOrder.ReceiveLat = receiveDelivery.Lat
if err = dao.CreateEntity(db, dOrder); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return
}
dao.Commit(db)
dao.Commit(db, txDB)
utils.CallFuncAsync(func() {
job, _ := dao.GetJob(db, nil, nil, nil, []int{model.JobTypeJdDelivery}, utils.ZeroTimeValue, utils.ZeroTimeValue, false)
if jobOrderID, _, err := AcceptJob(ctx, job.ID, 0, 0); err == nil {
@@ -1192,25 +1192,25 @@ func CancelJdDelivery(ctx *jxcontext.Context, vendorWaybillID, reason string) (e
dOrder.Status = model.OrderStatusCanceled
dOrder.OrderFinishedAt = time.Now()
dOrder.Comment = reason
dao.Begin(db)
txDB, _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
if _, err = dao.UpdateEntity(db, dOrder, "Status", "OrderFinishedAt", "Comment"); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return
}
if err = financial.AddIncomeUpdateAccount(db, userBill, model.BillTypeSpJob, dOrder.PayPrice, 2); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return
}
if err = CancelAcceptJob(ctx, 2, utils.Str2Int64(dOrder.JobOrderID)); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
}
dao.Commit(db)
dao.Commit(db, txDB)
return err
}
@@ -1531,10 +1531,10 @@ func ConfirmDropShippingJob(ctx *jxcontext.Context, jobOrderID int) (err error)
if ctx.GetUserID() != jobOrder.UserID && ctx.GetUserName() != "jxadmin" {
return fmt.Errorf("只有任务接取人才能确认收货!")
}
dao.Begin(db)
txDB, _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
@@ -1543,15 +1543,15 @@ func ConfirmDropShippingJob(ctx *jxcontext.Context, jobOrderID int) (err error)
jobOrder.DropShippingConfirmUser = ctx.GetUserName()
jobOrder.Status = model.OrderStatusConfirm
if _, err = dao.UpdateEntity(db, jobOrder, "DropShippingConfirmTime", "DropShippingConfirmUser", "Status"); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return
}
userBill, err := dao.GetUserBill(db, job.UserID, "")
if err = financial.AddIncomeUpdateAccount(db, userBill, model.BillTypeDropShipping, jobOrder.UserActualPrice, job.ID); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return
}
dao.Commit(db)
dao.Commit(db, txDB)
return err
}
@@ -1628,15 +1628,15 @@ func UpdateJob(ctx *jxcontext.Context, payload map[string]interface{}) (err erro
dao.GetEntity(db, job2)
valid := dao.StrictMakeMapByStructObject(payload, job2, ctx.GetUserName())
if len(valid) > 0 {
dao.Begin(db)
txDB, _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
if _, err = dao.UpdateEntityByKV(db, job2, valid, nil); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return err
}
if len(jobExt.JobSteps) > 0 {
@@ -1663,7 +1663,7 @@ func UpdateJob(ctx *jxcontext.Context, payload map[string]interface{}) (err erro
dao.CreateEntity(db, v)
}
}
dao.Commit(db)
dao.Commit(db, txDB)
}
return err
}
@@ -1762,163 +1762,163 @@ type Store struct {
}
func TempJob() (err error) {
var (
db = dao.GetDB()
ctx = jxcontext.AdminCtx
storesJD []*Store
storesMT []*Store
)
db.Db.Using("c4")
sql := `
SELECT a.*, b.vendor_store_id
FROM store a
JOIN store_map b ON a.id = b.store_id AND b.vendor_id = 0 AND b.deleted_at = ? AND b.vendor_store_id <> ''
WHERE a.deleted_at = ?
AND a.id <> 667281
AND a.id <> 667278
AND a.status IN (1,0)
`
sqlParams := []interface{}{utils.DefaultTimeValue, utils.DefaultTimeValue}
if err = dao.GetRows(db, &storesJD, sql, sqlParams); err != nil {
return err
}
sql2 := `
SELECT a.*, b.vendor_store_id
FROM store a
JOIN store_map b ON a.id = b.store_id AND b.vendor_id = 1 AND b.deleted_at = ? AND b.vendor_store_id <> ''
WHERE a.deleted_at = ?
AND a.id <> 667281
AND a.id <> 667278
AND a.status IN (1,0)
`
sqlParams2 := []interface{}{utils.DefaultTimeValue, utils.DefaultTimeValue}
if err = dao.GetRows(db, &storesMT, sql2, sqlParams2); err != nil {
return err
}
db.Db.Using("default")
task := tasksch.NewParallelTask("TempJob", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(true), ctx,
func(task2 *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
step := batchItemList[0].(int)
switch step {
case 0:
task := tasksch.NewParallelTask("TempJob1", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(true), ctx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
store := batchItemList[0].(*Store)
job := &model.Job{
UserID: "906380C7390E11EB8831525400C36BDA",
JobCategoryID: 3,
Title: "京东(" + store.Name + ")",
Content: "领取任务后,需要尽快去完成,并提交截图。如超时未完成,任务会被取消",
Count: 1000,
AvgPrice: 300,
TotalPrice: 300000,
Status: 0,
Address: store.Address,
StoreURL: store.VendorStoreID,
SurplusCount: 1000,
JobLimitAt: 72,
AuditLimitAt: 168,
LimitCountType: 3,
VendorID: 0,
CashbackType: 1,
JobLat: jxutils.IntCoordinate2Standard(store.Lat),
JobLng: jxutils.IntCoordinate2Standard(store.Lng),
Lng: store.Lng,
Lat: store.Lat,
JobCityCode: store.CityCode,
}
finishAt := utils.Str2Time("2021-12-31 00:00:00")
job.FinishedAt = &finishAt
dao.WrapAddIDCULDEntity(job, ctx.GetUserName())
if err = dao.CreateEntity(db, job); err == nil {
jobsteps, _ := dao.GetJobSteps(db, 171)
for _, v := range jobsteps {
jobStep := &model.JobStep{
JobID: job.ID,
StepCount: v.StepCount,
Content: v.Content,
Img: v.Img,
Type: v.Type,
}
dao.WrapAddIDCULDEntity(jobStep, ctx.GetUserName())
err = dao.CreateEntity(db, jobStep)
}
jobImgs, _ := dao.GetJobImgs(db, 171)
for _, v := range jobImgs {
jobImg := &model.JobImg{
JobID: job.ID,
Img: v.Img,
}
dao.WrapAddIDCULEntity(jobImg, ctx.GetUserName())
err = dao.CreateEntity(db, jobImg)
}
}
return retVal, err
}, storesJD)
tasksch.HandleTask(task, task2, true).Run()
task.GetResult(0)
case 1:
task := tasksch.NewParallelTask("TempJob2", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(true), ctx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
store := batchItemList[0].(*Store)
job := &model.Job{
UserID: "906380C7390E11EB8831525400C36BDA",
JobCategoryID: 3,
Title: "美团(" + store.Name + ")",
Content: "领取任务后,需要尽快去完成,并提交截图。如超时未完成,任务会被取消",
Count: 1000,
AvgPrice: 300,
TotalPrice: 300000,
Status: 0,
Address: store.Address,
StoreURL: store.VendorStoreID,
SurplusCount: 1000,
JobLimitAt: 72,
AuditLimitAt: 168,
LimitCountType: 3,
VendorID: 1,
CashbackType: 1,
JobLat: jxutils.IntCoordinate2Standard(store.Lat),
JobLng: jxutils.IntCoordinate2Standard(store.Lng),
Lng: store.Lng,
Lat: store.Lat,
JobCityCode: store.CityCode,
}
finishAt := utils.Str2Time("2021-12-31 00:00:00")
job.FinishedAt = &finishAt
dao.WrapAddIDCULDEntity(job, ctx.GetUserName())
if err = dao.CreateEntity(db, job); err == nil {
jobsteps, _ := dao.GetJobSteps(db, 173)
for _, v := range jobsteps {
jobStep := &model.JobStep{
JobID: job.ID,
StepCount: v.StepCount,
Content: v.Content,
Img: v.Img,
Type: v.Type,
}
dao.WrapAddIDCULDEntity(jobStep, ctx.GetUserName())
err = dao.CreateEntity(db, jobStep)
}
jobImgs, _ := dao.GetJobImgs(db, 173)
for _, v := range jobImgs {
jobImg := &model.JobImg{
JobID: job.ID,
Img: v.Img,
}
dao.WrapAddIDCULEntity(jobImg, ctx.GetUserName())
err = dao.CreateEntity(db, jobImg)
}
}
return retVal, err
}, storesMT)
tasksch.HandleTask(task, task2, true).Run()
task.GetResult(0)
}
return retVal, err
}, []int{0, 1})
tasksch.HandleTask(task, nil, true).Run()
task.GetID()
//var (
// db = dao.GetDB()
// ctx = jxcontext.AdminCtx
// storesJD []*Store
// storesMT []*Store
//)
//db.Db.Using("c4")
//sql := `
// SELECT a.*, b.vendor_store_id
// FROM store a
// JOIN store_map b ON a.id = b.store_id AND b.vendor_id = 0 AND b.deleted_at = ? AND b.vendor_store_id <> ''
// WHERE a.deleted_at = ?
// AND a.id <> 667281
// AND a.id <> 667278
// AND a.status IN (1,0)
//`
//sqlParams := []interface{}{utils.DefaultTimeValue, utils.DefaultTimeValue}
//if err = dao.GetRows(db, &storesJD, sql, sqlParams); err != nil {
// return err
//}
//sql2 := `
// SELECT a.*, b.vendor_store_id
// FROM store a
// JOIN store_map b ON a.id = b.store_id AND b.vendor_id = 1 AND b.deleted_at = ? AND b.vendor_store_id <> ''
// WHERE a.deleted_at = ?
// AND a.id <> 667281
// AND a.id <> 667278
// AND a.status IN (1,0)
//`
//sqlParams2 := []interface{}{utils.DefaultTimeValue, utils.DefaultTimeValue}
//if err = dao.GetRows(db, &storesMT, sql2, sqlParams2); err != nil {
// return err
//}
//db.Db.Using("default")
//task := tasksch.NewParallelTask("TempJob", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(true), ctx,
// func(task2 *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
// step := batchItemList[0].(int)
// switch step {
// case 0:
// task := tasksch.NewParallelTask("TempJob1", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(true), ctx,
// func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
// store := batchItemList[0].(*Store)
// job := &model.Job{
// UserID: "906380C7390E11EB8831525400C36BDA",
// JobCategoryID: 3,
// Title: "京东(" + store.Name + ")",
// Content: "领取任务后,需要尽快去完成,并提交截图。如超时未完成,任务会被取消",
// Count: 1000,
// AvgPrice: 300,
// TotalPrice: 300000,
// Status: 0,
// Address: store.Address,
// StoreURL: store.VendorStoreID,
// SurplusCount: 1000,
// JobLimitAt: 72,
// AuditLimitAt: 168,
// LimitCountType: 3,
// VendorID: 0,
// CashbackType: 1,
// JobLat: jxutils.IntCoordinate2Standard(store.Lat),
// JobLng: jxutils.IntCoordinate2Standard(store.Lng),
// Lng: store.Lng,
// Lat: store.Lat,
// JobCityCode: store.CityCode,
// }
// finishAt := utils.Str2Time("2021-12-31 00:00:00")
// job.FinishedAt = &finishAt
// dao.WrapAddIDCULDEntity(job, ctx.GetUserName())
// if err = dao.CreateEntity(db, job); err == nil {
// jobsteps, _ := dao.GetJobSteps(db, 171)
// for _, v := range jobsteps {
// jobStep := &model.JobStep{
// JobID: job.ID,
// StepCount: v.StepCount,
// Content: v.Content,
// Img: v.Img,
// Type: v.Type,
// }
// dao.WrapAddIDCULDEntity(jobStep, ctx.GetUserName())
// err = dao.CreateEntity(db, jobStep)
// }
// jobImgs, _ := dao.GetJobImgs(db, 171)
// for _, v := range jobImgs {
// jobImg := &model.JobImg{
// JobID: job.ID,
// Img: v.Img,
// }
// dao.WrapAddIDCULEntity(jobImg, ctx.GetUserName())
// err = dao.CreateEntity(db, jobImg)
// }
// }
// return retVal, err
// }, storesJD)
// tasksch.HandleTask(task, task2, true).Run()
// task.GetResult(0)
// case 1:
// task := tasksch.NewParallelTask("TempJob2", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(true), ctx,
// func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
// store := batchItemList[0].(*Store)
// job := &model.Job{
// UserID: "906380C7390E11EB8831525400C36BDA",
// JobCategoryID: 3,
// Title: "美团(" + store.Name + ")",
// Content: "领取任务后,需要尽快去完成,并提交截图。如超时未完成,任务会被取消",
// Count: 1000,
// AvgPrice: 300,
// TotalPrice: 300000,
// Status: 0,
// Address: store.Address,
// StoreURL: store.VendorStoreID,
// SurplusCount: 1000,
// JobLimitAt: 72,
// AuditLimitAt: 168,
// LimitCountType: 3,
// VendorID: 1,
// CashbackType: 1,
// JobLat: jxutils.IntCoordinate2Standard(store.Lat),
// JobLng: jxutils.IntCoordinate2Standard(store.Lng),
// Lng: store.Lng,
// Lat: store.Lat,
// JobCityCode: store.CityCode,
// }
// finishAt := utils.Str2Time("2021-12-31 00:00:00")
// job.FinishedAt = &finishAt
// dao.WrapAddIDCULDEntity(job, ctx.GetUserName())
// if err = dao.CreateEntity(db, job); err == nil {
// jobsteps, _ := dao.GetJobSteps(db, 173)
// for _, v := range jobsteps {
// jobStep := &model.JobStep{
// JobID: job.ID,
// StepCount: v.StepCount,
// Content: v.Content,
// Img: v.Img,
// Type: v.Type,
// }
// dao.WrapAddIDCULDEntity(jobStep, ctx.GetUserName())
// err = dao.CreateEntity(db, jobStep)
// }
// jobImgs, _ := dao.GetJobImgs(db, 173)
// for _, v := range jobImgs {
// jobImg := &model.JobImg{
// JobID: job.ID,
// Img: v.Img,
// }
// dao.WrapAddIDCULEntity(jobImg, ctx.GetUserName())
// err = dao.CreateEntity(db, jobImg)
// }
// }
// return retVal, err
// }, storesMT)
// tasksch.HandleTask(task, task2, true).Run()
// task.GetResult(0)
// }
// return retVal, err
// }, []int{0, 1})
//tasksch.HandleTask(task, nil, true).Run()
//task.GetID()
return err
}
@@ -1929,6 +1929,18 @@ func GetUnionActList(ctx *jxcontext.Context, vendorID, actType int) (actList []*
return actList, err
}
func ShareUnionLink(ctx *jxcontext.Context, vendorID, linkType int) (link string, err error) {
return partner.GetHandler(vendorID).ShareUnionLink(ctx, linkType)
func ShareUnionLink(ctx *jxcontext.Context, jobID, linkType int) (link string, err error) {
var (
db = dao.GetDB()
job = &model.Job{}
)
job.ID = jobID
err = dao.GetEntity(db, job)
if err != nil {
return link, err
}
if handler := partner.GetHandler(job.VendorID); handler != nil {
handler.ShareUnionLink(ctx, linkType)
}
return link, err
}