Files
platform/web/services/bill.go
2026-04-16 14:24:59 +08:00

51 lines
1.0 KiB
Go

package services
import (
m "platform/web/models"
q "platform/web/queries"
)
var Bill = &billService{}
type billService struct{}
func (s *billService) CreateForBalance(q *q.Query, uid, tradeId int32, detail *TradeDetail) (*m.Bill, error) {
bill := &m.Bill{
UserID: uid,
BillNo: ID.GenReadable("bil"),
TradeID: &tradeId,
Type: m.BillTypeRecharge,
Info: &detail.Subject,
Amount: detail.Discounted,
Actual: detail.Actual,
}
err := q.Bill.Create(bill)
if err != nil {
return nil, err
}
return bill, nil
}
func (s *billService) CreateForResource(q *q.Query, uid, resourceId int32, tradeId *int32, detail *TradeDetail) (*m.Bill, error) {
bill := &m.Bill{
UserID: uid,
BillNo: ID.GenReadable("bil"),
ResourceID: &resourceId,
TradeID: tradeId,
CouponUserID: detail.CouponUserId,
Type: m.BillTypeConsume,
Info: &detail.Subject,
Amount: detail.Discounted,
Actual: detail.Actual,
}
err := q.Bill.Create(bill)
if err != nil {
return nil, err
}
return bill, nil
}