一个余额
This commit is contained in:
@@ -67,7 +67,7 @@ func PublishJob(ctx *jxcontext.Context, job *model.Job) (err error) {
|
|||||||
return fmt.Errorf("未查询到该用户的账单!")
|
return fmt.Errorf("未查询到该用户的账单!")
|
||||||
}
|
}
|
||||||
job.TotalPrice = job.Count * job.AvgPrice
|
job.TotalPrice = job.Count * job.AvgPrice
|
||||||
if userBill.DepositBalance < job.TotalPrice {
|
if userBill.AccountBalance < job.TotalPrice {
|
||||||
job.Status = model.JobStatusFailed
|
job.Status = model.JobStatusFailed
|
||||||
} else {
|
} else {
|
||||||
job.Status = model.JobStatusDoing
|
job.Status = model.JobStatusDoing
|
||||||
@@ -116,12 +116,12 @@ func PublishJob(ctx *jxcontext.Context, job *model.Job) (err error) {
|
|||||||
//发布任务要扣除任务总额的保证金,不够扣就要进行充值
|
//发布任务要扣除任务总额的保证金,不够扣就要进行充值
|
||||||
if err == nil && job.Status != model.JobStatusFailed {
|
if err == nil && job.Status != model.JobStatusFailed {
|
||||||
//1、账户支出增加一条记录
|
//1、账户支出增加一条记录
|
||||||
if err = financial.AddBillExpend(db, userBill.BillID, model.OrderTypeDeposit, job.TotalPrice); err != nil {
|
if err = financial.AddBillExpend(db, userBill.BillID, model.BillTypeDeposit, job.TotalPrice); err != nil {
|
||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
}
|
}
|
||||||
//2、账户表保证金总额减少相应值
|
//2、账户表余额减少相应值
|
||||||
userBill.DepositBalance -= job.TotalPrice
|
userBill.AccountBalance -= job.TotalPrice
|
||||||
if _, err = dao.UpdateEntity(db, userBill, "DepositBalance"); err != nil {
|
if _, err = dao.UpdateEntity(db, userBill, "AccountBalance"); err != nil {
|
||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -151,13 +151,13 @@ func CancelPublishJob(ctx *jxcontext.Context, jobID int) (err error) {
|
|||||||
panic(r)
|
panic(r)
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
//1、根据任务剩余数量退钱到任务保证金余额中
|
//1、根据任务剩余数量退钱到账户余额中
|
||||||
userBill.DepositBalance += job.SurplusCount * job.AvgPrice
|
userBill.AccountBalance += job.SurplusCount * job.AvgPrice
|
||||||
if _, err = dao.UpdateEntity(db, userBill, "DepositBalance"); err != nil {
|
if _, err = dao.UpdateEntity(db, userBill, "AccountBalance"); err != nil {
|
||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
}
|
}
|
||||||
//2、账户收入增加一条记录
|
//2、账户收入增加一条记录
|
||||||
if err = financial.AddBillIncome(db, userBill.BillID, model.OrderTypeDeposit, job.SurplusCount*job.AvgPrice); err != nil {
|
if err = financial.AddBillIncome(db, userBill.BillID, model.BillTypeJobCancelOverdue, job.SurplusCount*job.AvgPrice); err != nil {
|
||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
}
|
}
|
||||||
//3、任务状态被取消
|
//3、任务状态被取消
|
||||||
@@ -274,12 +274,12 @@ func CancelAcceptJob(ctx *jxcontext.Context, jobID int, jobOrderID int64) (err e
|
|||||||
}
|
}
|
||||||
//如果状态不正常(取消或者过期)就要把这一笔退回去
|
//如果状态不正常(取消或者过期)就要把这一笔退回去
|
||||||
//1、根据任务剩余数量退钱到任务保证金余额中
|
//1、根据任务剩余数量退钱到任务保证金余额中
|
||||||
userBill.DepositBalance += job.AvgPrice
|
userBill.AccountBalance += job.AvgPrice
|
||||||
if _, err = dao.UpdateEntity(db, userBill, "DepositBalance"); err != nil {
|
if _, err = dao.UpdateEntity(db, userBill, "AccountBalance"); err != nil {
|
||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
}
|
}
|
||||||
//2、账户收入增加一条记录
|
//2、账户收入增加一条记录
|
||||||
if err = financial.AddBillIncome(db, userBill.BillID, model.OrderTypeDeposit, job.AvgPrice); err != nil {
|
if err = financial.AddBillIncome(db, userBill.BillID, model.BillTypeJobCancelOverdue, job.AvgPrice); err != nil {
|
||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
}
|
}
|
||||||
//3、任务订单状态被取消
|
//3、任务订单状态被取消
|
||||||
@@ -399,19 +399,19 @@ func AuditJob(ctx *jxcontext.Context, jobOrderID, status int, comment string) (e
|
|||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
}
|
}
|
||||||
//接收人账户收入增加一条
|
//接收人账户收入增加一条
|
||||||
if err = financial.AddBillIncome(db, userBillJobOrder.BillID, model.OrderTypeJob, job.AvgPrice); err != nil {
|
if err = financial.AddBillIncome(db, userBillJobOrder.BillID, model.BillTypeJob, job.AvgPrice); err != nil {
|
||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if job.Status < 0 {
|
if job.Status < 0 {
|
||||||
userBill, err := dao.GetUserBill(db, job.UserID, "")
|
userBill, err := dao.GetUserBill(db, job.UserID, "")
|
||||||
//1、根据任务剩余数量退钱到任务保证金余额中
|
//1、根据任务剩余数量退钱到任务保证金余额中
|
||||||
userBill.DepositBalance += job.AvgPrice
|
userBill.AccountBalance += job.AvgPrice
|
||||||
if _, err = dao.UpdateEntity(db, userBill, "DepositBalance"); err != nil {
|
if _, err = dao.UpdateEntity(db, userBill, "AccountBalance"); err != nil {
|
||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
}
|
}
|
||||||
//2、账户收入增加一条记录
|
//2、账户收入增加一条记录
|
||||||
if err = financial.AddBillIncome(db, userBill.BillID, model.OrderTypeDeposit, job.AvgPrice); err != nil {
|
if err = financial.AddBillIncome(db, userBill.BillID, model.BillTypeJobAuditUnPassWithCancelOverdue, job.AvgPrice); err != nil {
|
||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -43,15 +43,15 @@ func OnPayFinished(order *model.Order) (err error) {
|
|||||||
}
|
}
|
||||||
//根据订单类型来操作账户
|
//根据订单类型来操作账户
|
||||||
switch order.Type {
|
switch order.Type {
|
||||||
case model.OrderTypeDeposit:
|
case model.OrderTypeAccount:
|
||||||
//如果是发布任务的保证金
|
//如果是账户充值(发布任务等)
|
||||||
//1、账户收入表增加一条保证金记录
|
//1、账户收入表增加一条保证金记录
|
||||||
if err = AddBillIncome(db, billID, order.Type, order.PayPrice); err != nil {
|
if err = AddBillIncome(db, billID, order.Type, order.PayPrice); err != nil {
|
||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
}
|
}
|
||||||
//2、账户表保证金总额增加相应值
|
//2、账户表保证金总额增加相应值
|
||||||
userBill.DepositBalance += order.PayPrice
|
userBill.AccountBalance += order.PayPrice
|
||||||
if _, err = dao.UpdateEntity(db, userBill, "DepositBalance"); err != nil {
|
if _, err = dao.UpdateEntity(db, userBill, "AccountBalance"); err != nil {
|
||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -1,5 +1,13 @@
|
|||||||
package model
|
package model
|
||||||
|
|
||||||
|
const (
|
||||||
|
BillTypeDeposit = 1 //发布任务
|
||||||
|
BillTypeJob = 2 //做任务实得
|
||||||
|
BillTypeMember = 3 //开通会员
|
||||||
|
BillTypeJobCancelOverdue = 4 //任务过期或取消
|
||||||
|
BillTypeJobAuditUnPassWithCancelOverdue = 5 //任务不通过时,任务已取消或过期
|
||||||
|
)
|
||||||
|
|
||||||
//账单收入表
|
//账单收入表
|
||||||
type BillIncome struct {
|
type BillIncome struct {
|
||||||
ModelIDCUL
|
ModelIDCUL
|
||||||
@@ -39,7 +47,6 @@ type UserBill struct {
|
|||||||
BillID int64 `orm:"column(bill_id)" json:"billID"` //账单ID
|
BillID int64 `orm:"column(bill_id)" json:"billID"` //账单ID
|
||||||
UserID string `orm:"column(user_id)" json:"userID"` //用户ID
|
UserID string `orm:"column(user_id)" json:"userID"` //用户ID
|
||||||
AccountBalance int `json:"accountBalance"` //账户余额
|
AccountBalance int `json:"accountBalance"` //账户余额
|
||||||
DepositBalance int `json:"depositBalance"` //保证金余额
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *UserBill) TableUnique() [][]string {
|
func (v *UserBill) TableUnique() [][]string {
|
||||||
|
|||||||
@@ -33,8 +33,8 @@ const (
|
|||||||
OrderTypeSupplyGoods = 2 //进货订单
|
OrderTypeSupplyGoods = 2 //进货订单
|
||||||
OrderTypeDefendPrice = 3 //守价订单
|
OrderTypeDefendPrice = 3 //守价订单
|
||||||
|
|
||||||
OrderTypeDeposit = 1 //保证金
|
OrderTypeAccount = 1 //任务保证金
|
||||||
OrderTypeJob = 2 //任务金
|
OrderTypeMember = 2 //开通会员
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|||||||
Reference in New Issue
Block a user