audit job

This commit is contained in:
苏尹岚
2020-10-16 15:03:16 +08:00
parent 1c1784943e
commit 4737c354e4
5 changed files with 102 additions and 3 deletions

View File

@@ -157,7 +157,7 @@ func CancelPublishJob(ctx *jxcontext.Context, jobID int) (err error) {
dao.Rollback(db)
}
//2、账户收入增加一条记录
if err = financial.AddBillIncome(db, userBill.BillID, model.OrderTypeDeposit, userBill.DepositBalance); err != nil {
if err = financial.AddBillIncome(db, userBill.BillID, model.OrderTypeDeposit, job.SurplusCount*job.AvgPrice); err != nil {
dao.Rollback(db)
}
//3、任务状态被取消
@@ -279,7 +279,7 @@ func CancelAcceptJob(ctx *jxcontext.Context, jobID int, jobOrderID int64) (err e
dao.Rollback(db)
}
//2、账户收入增加一条记录
if err = financial.AddBillIncome(db, userBill.BillID, model.OrderTypeDeposit, userBill.DepositBalance); err != nil {
if err = financial.AddBillIncome(db, userBill.BillID, model.OrderTypeDeposit, job.AvgPrice); err != nil {
dao.Rollback(db)
}
//3、任务订单状态被取消
@@ -322,6 +322,9 @@ func SubmitJob(ctx *jxcontext.Context, jobOrder *model.JobOrder) (err error) {
if jobOrder.JobID == 0 || jobOrder.JobOrderID == 0 {
return fmt.Errorf("传入数据有误!")
}
job := &model.Job{}
job.ID = jobOrder.JobID
err = dao.GetEntity(db, &job)
jobOrder2 := &model.JobOrder{}
jobOrder2.JobOrderID = jobOrder.JobOrderID
err = dao.GetEntity(db, &jobOrder2, "JobOrderID")
@@ -331,10 +334,79 @@ func SubmitJob(ctx *jxcontext.Context, jobOrder *model.JobOrder) (err error) {
if jobOrder2.Status >= model.JobOrderStatusWaitAudit {
return fmt.Errorf("任务订单状态有误!")
}
if ctx.GetUserID() != jobOrder2.UserID {
return fmt.Errorf("任务订单接收人有误!")
}
jobOrder2.Img = jobOrder.Img
jobOrder2.Content = jobOrder.Content
jobOrder2.SubmitAuditAt = time.Now()
jobOrder2.Status = model.JobOrderStatusWaitAudit
dao.UpdateEntity(db, jobOrder2, "Img", "Content", "SubmitAuditAt", "Status")
if _, err = dao.UpdateEntity(db, jobOrder2, "Img", "Content", "SubmitAuditAt", "Status"); err == nil {
//审核定时
}
return err
}
func AuditJob(ctx *jxcontext.Context, jobOrderID, status int, comment string) (err error) {
var (
db = dao.GetDB()
)
jobOrder := &model.JobOrder{}
jobOrder.JobOrderID = int64(jobOrderID)
err = dao.GetEntity(db, &jobOrder, "JobOrderID")
job := &model.Job{}
job.ID = jobOrder.JobID
err = dao.GetEntity(db, &job)
if ctx.GetUserID() != job.UserID {
return fmt.Errorf("任务发起人才能审核!")
}
//审核时,若此任务已过期或者已取消,不通过则应将此任务保证金退还给发起人,通过则应将单次任务保证金给接受人
//若此任务未过期,不通过则此任务剩余数量将+1通过则应将单次任务保证金给接受人
jobOrder.Status = status
jobOrder.Comment = comment
jobOrder.AuditAt = time.Now()
jobOrder.LastOperator = ctx.GetUserName()
dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
panic(r)
}
}()
if _, err = dao.UpdateEntity(db, jobOrder, "Status", "Comment", "AuditAt", "LastOperator"); err != nil {
dao.Rollback(db)
}
if status == model.JobOrderStatusAuditPass {
//接收人账户增加任务单次
userBillJobOrder, err := dao.GetUserBill(db, jobOrder.UserID, "")
userBillJobOrder.AccountBalance += job.AvgPrice
if _, err = dao.UpdateEntity(db, userBillJobOrder, "AccountBalance"); err != nil {
dao.Rollback(db)
}
//接收人账户收入增加一条
if err = financial.AddBillIncome(db, userBillJobOrder.BillID, model.OrderTypeJob, job.AvgPrice); err != nil {
dao.Rollback(db)
}
} else {
if job.Status < 0 {
userBill, err := dao.GetUserBill(db, job.UserID, "")
//1、根据任务剩余数量退钱到任务保证金余额中
userBill.DepositBalance += job.AvgPrice
if _, err = dao.UpdateEntity(db, userBill, "DepositBalance"); err != nil {
dao.Rollback(db)
}
//2、账户收入增加一条记录
if err = financial.AddBillIncome(db, userBill.BillID, model.OrderTypeDeposit, job.AvgPrice); err != nil {
dao.Rollback(db)
}
} else {
job.SurplusCount += 1
if _, err = dao.UpdateEntity(db, job, "SurplusCount"); err != nil {
dao.Rollback(db)
}
}
}
dao.Commit(db)
return err
}

View File

@@ -94,6 +94,7 @@ type JobOrder struct {
AuditAt time.Time `json:"auditAt"` //审核日期
Content string `josn:"content"` //任务审核内容
Img string `json:"img"` //任务审核图片
Comment string `json:"comment"` //审核理由
}
func (v *JobOrder) TableIndex() [][]string {

View File

@@ -34,6 +34,7 @@ const (
OrderTypeDefendPrice = 3 //守价订单
OrderTypeDeposit = 1 //保证金
OrderTypeJob = 2 //任务金
)
var (

View File

@@ -170,3 +170,19 @@ func (c *JobController) SubmitJob() {
return retVal, "", err
})
}
// @Title 审核任务
// @Description 审核任务
// @Param token header string true "认证token"
// @Param jobOrderID formData int true "jobOrderID"
// @Param status formData int true "审核标志15 是通过20是不通过"
// @Param comment formData string true "审核理由"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /AuditJob [post]
func (c *JobController) AuditJob() {
c.callAuditJob(func(params *tJobAuditJobParams) (retVal interface{}, errCode string, err error) {
err = cms.AuditJob(params.Ctx, params.JobOrderID, params.Status, params.Comment)
return retVal, "", err
})
}

View File

@@ -160,6 +160,15 @@ func init() {
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.ControllerComments{
Method: "AuditJob",
Router: `/AuditJob`,
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.ControllerComments{
Method: "CancelAcceptJob",