resj
This commit is contained in:
@@ -631,7 +631,43 @@ func RefreshJobStatus(ctx *jxcontext.Context) (err error) {
|
|||||||
}
|
}
|
||||||
for _, job := range jobs {
|
for _, job := range jobs {
|
||||||
if time.Now().Sub(*job.FinishedAt) >= 0 {
|
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...")
|
globals.SugarLogger.Debugf("RefreshJobStatus end...")
|
||||||
|
|||||||
@@ -382,3 +382,16 @@ func (c *JobController) UserRefundEjy() {
|
|||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @Title 刷新任务状态
|
||||||
|
// @Description 刷新任务状态
|
||||||
|
// @Param token header string true "认证token"
|
||||||
|
// @Success 200 {object} controllers.CallResult
|
||||||
|
// @Failure 200 {object} controllers.CallResult
|
||||||
|
// @router /RefreshJobStatus [post]
|
||||||
|
func (c *JobController) RefreshJobStatus() {
|
||||||
|
c.callRefreshJobStatus(func(params *tJobRefreshJobStatusParams) (retVal interface{}, errCode string, err error) {
|
||||||
|
err = cms.RefreshJobStatus(params.Ctx)
|
||||||
|
return retVal, "", err
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -484,6 +484,15 @@ func init() {
|
|||||||
Filters: nil,
|
Filters: nil,
|
||||||
Params: nil})
|
Params: nil})
|
||||||
|
|
||||||
|
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JobController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JobController"],
|
||||||
|
beego.ControllerComments{
|
||||||
|
Method: "RefreshJobStatus",
|
||||||
|
Router: `/RefreshJobStatus`,
|
||||||
|
AllowHTTPMethods: []string{"post"},
|
||||||
|
MethodParams: param.Make(),
|
||||||
|
Filters: nil,
|
||||||
|
Params: nil})
|
||||||
|
|
||||||
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JobController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JobController"],
|
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JobController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JobController"],
|
||||||
beego.ControllerComments{
|
beego.ControllerComments{
|
||||||
Method: "SendJdDelivery",
|
Method: "SendJdDelivery",
|
||||||
|
|||||||
Reference in New Issue
Block a user