|
|
@@ -16,6 +16,7 @@ func (r *PaymentRepository) Create(record *dao.PaymentRecord) error {
|
|
|
type PaymentListQuery struct {
|
|
|
PlateNumber string `form:"plate_number"`
|
|
|
PaymentMethod string `form:"payment_method"`
|
|
|
+ ParkingLotID uint `form:"parking_lot_id"`
|
|
|
StartDate string `form:"start_date"`
|
|
|
EndDate string `form:"end_date"`
|
|
|
Page int `form:"page"`
|
|
|
@@ -33,6 +34,7 @@ type PaymentListResult struct {
|
|
|
ChangeAmount float64 `json:"change_amount"`
|
|
|
OperatorID uint `json:"operator_id"`
|
|
|
OperatorName string `json:"operator_name"`
|
|
|
+ ParkingLot string `json:"parking_lot"`
|
|
|
PaidAt string `json:"paid_at"`
|
|
|
EntryTime string `json:"entry_time"`
|
|
|
ExitTime string `json:"exit_time"`
|
|
|
@@ -44,16 +46,20 @@ func (r *PaymentRepository) List(q PaymentListQuery) ([]PaymentListResult, int64
|
|
|
db := global.GVA_DB.Table("payment_record").
|
|
|
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, sys_user.nick_name as operator_name, payment_record.paid_at,
|
|
|
+ payment_record.operator_id, sys_user.nick_name as operator_name, vehicle_record.parking_lot_id, parking_lot.lot_name as parking_lot, 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 ON vehicle.plate_number = vehicle_record.plate_number").
|
|
|
Joins("LEFT JOIN vehicle_type ON vehicle_type.id = vehicle.vehicle_type_id").
|
|
|
- Joins("LEFT JOIN sys_user ON sys_user.id = payment_record.operator_id")
|
|
|
+ Joins("LEFT JOIN sys_user ON sys_user.id = payment_record.operator_id").
|
|
|
+ Joins("LEFT JOIN parking_lot ON parking_lot.id = vehicle_record.parking_lot_id")
|
|
|
|
|
|
if q.PlateNumber != "" {
|
|
|
db = db.Where("vehicle_record.plate_number LIKE ?", "%"+q.PlateNumber+"%")
|
|
|
}
|
|
|
+ if q.ParkingLotID > 0 {
|
|
|
+ db = db.Where("vehicle_record.parking_lot_id = ?", q.ParkingLotID)
|
|
|
+ }
|
|
|
if q.PaymentMethod != "" {
|
|
|
db = db.Where("payment_record.payment_method = ?", q.PaymentMethod)
|
|
|
}
|