This commit is contained in:
苏尹岚
2020-11-05 11:44:35 +08:00
parent 85b4b9a1a9
commit 1e2fc44cf0

View File

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