From 1e2fc44cf06fee11952bfc53631c670ae895f04b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 5 Nov 2020 11:44:35 +0800 Subject: [PATCH] return --- business/jxstore/cms/job.go | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/business/jxstore/cms/job.go b/business/jxstore/cms/job.go index bae27cc46..9ae7b0e31 100644 --- a/business/jxstore/cms/job.go +++ b/business/jxstore/cms/job.go @@ -134,7 +134,10 @@ func PublishJob(ctx *jxcontext.Context, jobExt *model.JobExt) (errCode string, e panic(r) } }() - err = dao.CreateEntity(db, job) + if err = dao.CreateEntity(db, job); err != nil { + dao.Rollback(db) + return + } for _, v := range job.JobSteps { dao.WrapAddIDCULDEntity(v, ctx.GetUserName()) v.JobID = job.ID @@ -147,11 +150,13 @@ func PublishJob(ctx *jxcontext.Context, jobExt *model.JobExt) (errCode string, e } if err != nil { dao.Rollback(db) + return } //发布任务要扣除任务总额的保证金,不够扣就要进行充值 if err == nil && job.Status != model.JobStatusFailed { if err = financial.AddExpendUpdateAccount(db, userBill, model.BillTypeDeposit, job.TotalPrice); err != nil { dao.Rollback(db) + return } } dao.Commit(db) @@ -182,11 +187,13 @@ func CancelPublishJob(ctx *jxcontext.Context, jobID int) (err error) { }() if err = financial.AddIncomeUpdateAccount(db, userBill, model.BillTypeJobCancelOverdue, job.SurplusCount*job.AvgPrice); err != nil { dao.Rollback(db) + return } //3、任务状态被取消 job.Status = model.JobStatusFailed if _, err = dao.UpdateEntity(db, job, "Status"); err != nil { dao.Rollback(db) + return } dao.Commit(db) return err @@ -281,7 +288,6 @@ func AcceptJob(ctx *jxcontext.Context, jobID int) (errCode string, err error) { dao.Rollback(db) return } - dao.Commit(db) //任务限时完成 timer := checkLimitJobOrders(db, job, jobOrder, model.JobTimerTypeAccept) JobTimerMap[jobOrder.JobOrderID] = timer @@ -294,19 +300,13 @@ func AcceptJob(ctx *jxcontext.Context, jobID int) (errCode string, err error) { if userBill.AccountBalance < job.AvgPrice { return model.ErrCodeAccountBalanceNotEnough, fmt.Errorf("用户余额不足,请充值!") } - dao.Begin(db) - defer func() { - if r := recover(); r != nil { - dao.Rollback(db) - panic(r) - } - }() //账户支出 if err = financial.AddExpendUpdateAccount(db, userBill, model.BillTypeSpJob, job.AvgPrice); err != nil { dao.Rollback(db) + return errCode, err } - dao.Commit(db) } + dao.Commit(db) return errCode, err } @@ -332,6 +332,7 @@ func CancelAcceptJob(ctx *jxcontext.Context, jobID int, jobOrderID int64) (err e job.SurplusCount += 1 if _, err = dao.UpdateEntity(db, job, "SurplusCount"); err != nil { dao.Rollback(db) + return } } else { userBill, err := dao.GetUserBill(db, job.UserID, "") @@ -342,11 +343,13 @@ func CancelAcceptJob(ctx *jxcontext.Context, jobID int, jobOrderID int64) (err e //2、账户收入 if err = financial.AddIncomeUpdateAccount(db, userBill, model.BillTypeJobCancelOverdue, job.AvgPrice); err != nil { dao.Rollback(db) + return err } //3、任务订单状态被取消 jobOrder.Status = model.JobOrderStatusCancel if _, err = dao.UpdateEntity(db, jobOrder, "Status"); err != nil { dao.Rollback(db) + return err } } dao.Commit(db) @@ -491,23 +494,27 @@ func AuditJob(ctx *jxcontext.Context, jobOrderID, status int, comment string) (e }() if _, err = dao.UpdateEntity(db, jobOrder, "Status", "Comment", "AuditAt", "LastOperator"); err != nil { dao.Rollback(db) + return } if status == model.JobOrderStatusAuditPass { //接收人账户收入 userBillJobOrder, err := dao.GetUserBill(db, jobOrder.UserID, "") if err = financial.AddIncomeUpdateAccount(db, userBillJobOrder, model.BillTypeJob, job.AvgPrice); err != nil { dao.Rollback(db) + return err } } else { if job.Status < 0 { userBill, err := dao.GetUserBill(db, job.UserID, "") if err = financial.AddIncomeUpdateAccount(db, userBill, model.BillTypeJobAuditUnPassWithCancelOverdue, job.AvgPrice); err != nil { dao.Rollback(db) + return err } } else { job.SurplusCount += 1 if _, err = dao.UpdateEntity(db, job, "SurplusCount"); err != nil { dao.Rollback(db) + return } } }