Просмотр исходного кода

feat: 收费记录列表增加车辆类型列——关联vehicle+vehicle_type表

lq 1 месяц назад
Родитель
Сommit
2200a96da7

+ 1 - 0
frontend/src/view/report/paymentRecord.vue

@@ -21,6 +21,7 @@
 
     <el-table :data="list" height="605" border>
       <el-table-column :label="$t.value.licensePlate" prop="plate_number" align="center" width="120" />
+      <el-table-column :label="$t.value.VehicleType" prop="vehicle_type" align="center" width="100" />
       <el-table-column :label="$t.value.paymentMethod" align="center" width="100">
         <template #default="{ row }">
           <el-tag :type="row.payment_method === 'cash' ? '' : 'success'">{{ row.payment_method === 'cash' ? '现金' : '免密' }}</el-tag>

+ 6 - 3
internal/modules/payment/repository/repo.go

@@ -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+"%")