2025-06-26 09:28:42 +08:00
|
|
|
package services
|
|
|
|
|
|
2025-11-24 18:44:06 +08:00
|
|
|
import (
|
|
|
|
|
m "platform/web/models"
|
2026-03-26 14:39:19 +08:00
|
|
|
q "platform/web/queries"
|
2025-11-24 18:44:06 +08:00
|
|
|
)
|
|
|
|
|
|
2025-06-26 09:28:42 +08:00
|
|
|
var Bill = &billService{}
|
|
|
|
|
|
|
|
|
|
type billService struct{}
|
|
|
|
|
|
2026-04-11 14:10:44 +08:00
|
|
|
func (s *billService) CreateForBalance(q *q.Query, uid, tradeId int32, detail *TradeDetail) (*m.Bill, error) {
|
|
|
|
|
bill := &m.Bill{
|
2025-11-24 18:44:06 +08:00
|
|
|
UserID: uid,
|
2026-03-26 14:39:19 +08:00
|
|
|
BillNo: ID.GenReadable("bil"),
|
|
|
|
|
TradeID: &tradeId,
|
2025-11-24 18:44:06 +08:00
|
|
|
Type: m.BillTypeRecharge,
|
2026-03-26 14:39:19 +08:00
|
|
|
Info: &detail.Subject,
|
|
|
|
|
Amount: detail.Amount,
|
|
|
|
|
Actual: detail.Actual,
|
2026-04-11 14:10:44 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
err := q.Bill.Create(bill)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return bill, nil
|
2025-11-24 18:44:06 +08:00
|
|
|
}
|
|
|
|
|
|
2026-04-11 14:10:44 +08:00
|
|
|
func (s *billService) CreateForResource(q *q.Query, uid, resourceId int32, tradeId *int32, detail *TradeDetail) (*m.Bill, error) {
|
|
|
|
|
bill := &m.Bill{
|
2026-04-09 14:58:20 +08:00
|
|
|
UserID: uid,
|
|
|
|
|
BillNo: ID.GenReadable("bil"),
|
|
|
|
|
ResourceID: &resourceId,
|
|
|
|
|
TradeID: tradeId,
|
|
|
|
|
CouponUserID: detail.CouponUserId,
|
|
|
|
|
Type: m.BillTypeConsume,
|
|
|
|
|
Info: &detail.Subject,
|
|
|
|
|
Amount: detail.Amount,
|
|
|
|
|
Actual: detail.Actual,
|
2026-04-11 14:10:44 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
err := q.Bill.Create(bill)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return bill, nil
|
2026-03-26 14:39:19 +08:00
|
|
|
}
|