|
|
@@ -25,6 +25,7 @@ type PaymentListQuery struct {
|
|
|
type PaymentListResult struct {
|
|
|
ID uint `json:"id"`
|
|
|
PlateNumber string `json:"plate_number"`
|
|
|
+ VehicleType string `json:"vehicle_type"`
|
|
|
PaymentMethod string `json:"payment_method"`
|
|
|
Amount float64 `json:"amount"`
|
|
|
PaidAmount float64 `json:"paid_amount"`
|
|
|
@@ -36,14 +37,16 @@ type PaymentListResult struct {
|
|
|
StayTime int64 `json:"stay_time"`
|
|
|
}
|
|
|
|
|
|
-// List 查询收费记录列表(关联 vehicle_record 获取车牌/进出时间)
|
|
|
+// List 查询收费记录列表(关联 vehicle_record + vehicle + vehicle_type)
|
|
|
func (r *PaymentRepository) List(q PaymentListQuery) ([]PaymentListResult, int64, error) {
|
|
|
db := global.GVA_DB.Table("payment_record").
|
|
|
- Select(`payment_record.id, vehicle_record.plate_number, payment_record.payment_method,
|
|
|
+ Select(`payment_record.id, vehicle_record.plate_number, vehicle_type.name as vehicle_type, payment_record.payment_method,
|
|
|
payment_record.amount, payment_record.paid_amount, payment_record.change_amount,
|
|
|
payment_record.operator_id, payment_record.paid_at,
|
|
|
vehicle_record.entry_time, vehicle_record.exit_time, vehicle_record.stay_time`).
|
|
|
- Joins("LEFT JOIN vehicle_record ON vehicle_record.id = payment_record.record_id")
|
|
|
+ Joins("LEFT JOIN vehicle_record ON vehicle_record.id = payment_record.record_id").
|
|
|
+ Joins("LEFT JOIN vehicle ON vehicle.plate_number = vehicle_record.plate_number").
|
|
|
+ Joins("LEFT JOIN vehicle_type ON vehicle_type.id = vehicle.vehicle_type_id")
|
|
|
|
|
|
if q.PlateNumber != "" {
|
|
|
db = db.Where("vehicle_record.plate_number LIKE ?", "%"+q.PlateNumber+"%")
|