return
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user