This commit is contained in:
苏尹岚
2020-12-17 09:12:56 +08:00
parent ee27ffdeef
commit e150bf5f59
3 changed files with 59 additions and 1 deletions

View File

@@ -631,7 +631,43 @@ func RefreshJobStatus(ctx *jxcontext.Context) (err error) {
}
for _, job := range jobs {
if time.Now().Sub(*job.FinishedAt) >= 0 {
CancelPublishJob(ctx, job.ID)
//取消已发布的任务
userBill, err := dao.GetUserBill(db, job.UserID, "")
if userBill == nil {
return fmt.Errorf("未查询到该用户的账单!")
}
dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
panic(r)
}
}()
//如果是固定返现,退给任务发起人剩余数量*单价
//如果是比例返现,推给任务发起人任务总价-接取这个任务的用户实际返现的价格之和
var price int
if job.CashbackType == model.JobCashbackPrice {
price = job.SurplusCount * job.AvgPrice
} else {
if billIncomes, err := dao.GetBillIncome(db, job.ID); err == nil {
for _, v := range billIncomes {
price += v.IncomePrice
}
}
price = job.TotalPrice - price
}
if err = financial.AddIncomeUpdateAccount(db, userBill, model.BillTypeJobCancelOverdue, price, job.ID); err != nil {
dao.Rollback(db)
return err
}
//3、任务状态被取消
job.Status = model.JobStatusOverdue
// job.DeletedAt = time.Now()
if _, err = dao.UpdateEntity(db, job, "Status"); err != nil {
dao.Rollback(db)
return err
}
dao.Commit(db)
}
}
globals.SugarLogger.Debugf("RefreshJobStatus end...")