一个余额

This commit is contained in:
苏尹岚
2020-10-19 10:38:39 +08:00
parent 793669a976
commit 5a95250bcd
4 changed files with 30 additions and 23 deletions

View File

@@ -67,7 +67,7 @@ func PublishJob(ctx *jxcontext.Context, job *model.Job) (err error) {
return fmt.Errorf("未查询到该用户的账单!")
}
job.TotalPrice = job.Count * job.AvgPrice
if userBill.DepositBalance < job.TotalPrice {
if userBill.AccountBalance < job.TotalPrice {
job.Status = model.JobStatusFailed
} else {
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 {
//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)
}
//2、账户表保证金总额减少相应值
userBill.DepositBalance -= job.TotalPrice
if _, err = dao.UpdateEntity(db, userBill, "DepositBalance"); err != nil {
//2、账户表额减少相应值
userBill.AccountBalance -= job.TotalPrice
if _, err = dao.UpdateEntity(db, userBill, "AccountBalance"); err != nil {
dao.Rollback(db)
}
}
@@ -151,13 +151,13 @@ func CancelPublishJob(ctx *jxcontext.Context, jobID int) (err error) {
panic(r)
}
}()
//1、根据任务剩余数量退钱到任务保证金余额中
userBill.DepositBalance += job.SurplusCount * job.AvgPrice
if _, err = dao.UpdateEntity(db, userBill, "DepositBalance"); err != nil {
//1、根据任务剩余数量退钱到账户余额中
userBill.AccountBalance += job.SurplusCount * job.AvgPrice
if _, err = dao.UpdateEntity(db, userBill, "AccountBalance"); err != nil {
dao.Rollback(db)
}
//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)
}
//3、任务状态被取消
@@ -274,12 +274,12 @@ func CancelAcceptJob(ctx *jxcontext.Context, jobID int, jobOrderID int64) (err e
}
//如果状态不正常(取消或者过期)就要把这一笔退回去
//1、根据任务剩余数量退钱到任务保证金余额中
userBill.DepositBalance += job.AvgPrice
if _, err = dao.UpdateEntity(db, userBill, "DepositBalance"); err != nil {
userBill.AccountBalance += job.AvgPrice
if _, err = dao.UpdateEntity(db, userBill, "AccountBalance"); err != nil {
dao.Rollback(db)
}
//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)
}
//3、任务订单状态被取消
@@ -399,19 +399,19 @@ func AuditJob(ctx *jxcontext.Context, jobOrderID, status int, comment string) (e
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)
}
} 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 {
userBill.AccountBalance += job.AvgPrice
if _, err = dao.UpdateEntity(db, userBill, "AccountBalance"); err != nil {
dao.Rollback(db)
}
//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)
}
} else {

View File

@@ -43,15 +43,15 @@ func OnPayFinished(order *model.Order) (err error) {
}
//根据订单类型来操作账户
switch order.Type {
case model.OrderTypeDeposit:
//如果是发布任务的保证金
case model.OrderTypeAccount:
//如果是账户充值(发布任务等)
//1、账户收入表增加一条保证金记录
if err = AddBillIncome(db, billID, order.Type, order.PayPrice); err != nil {
dao.Rollback(db)
}
//2、账户表保证金总额增加相应值
userBill.DepositBalance += order.PayPrice
if _, err = dao.UpdateEntity(db, userBill, "DepositBalance"); err != nil {
userBill.AccountBalance += order.PayPrice
if _, err = dao.UpdateEntity(db, userBill, "AccountBalance"); err != nil {
dao.Rollback(db)
}
default:

View File

@@ -1,5 +1,13 @@
package model
const (
BillTypeDeposit = 1 //发布任务
BillTypeJob = 2 //做任务实得
BillTypeMember = 3 //开通会员
BillTypeJobCancelOverdue = 4 //任务过期或取消
BillTypeJobAuditUnPassWithCancelOverdue = 5 //任务不通过时,任务已取消或过期
)
//账单收入表
type BillIncome struct {
ModelIDCUL
@@ -39,7 +47,6 @@ type UserBill struct {
BillID int64 `orm:"column(bill_id)" json:"billID"` //账单ID
UserID string `orm:"column(user_id)" json:"userID"` //用户ID
AccountBalance int `json:"accountBalance"` //账户余额
DepositBalance int `json:"depositBalance"` //保证金余额
}
func (v *UserBill) TableUnique() [][]string {

View File

@@ -33,8 +33,8 @@ const (
OrderTypeSupplyGoods = 2 //进货订单
OrderTypeDefendPrice = 3 //守价订单
OrderTypeDeposit = 1 //保证金
OrderTypeJob = 2 //任务金
OrderTypeAccount = 1 //任务保证金
OrderTypeMember = 2 //开通会员
)
var (