Procházet zdrojové kódy

优化结算数据插入逻辑

ANG YU před 4 roky
rodič
revize
e8059ab91a

+ 20 - 0
app/Http/Controllers/TestController.php

@@ -16,6 +16,7 @@ use App\DeliveryAppointment;
 use App\DeliveryAppointmentDetail;
 use App\Events\BroadcastToStation;
 use App\Events\SendEmailEvent;
+use App\Events\SettlementBillCreateEvent;
 use App\Exceptions\ErrorException;
 use App\Exceptions\Exception;
 use App\Feature;
@@ -50,6 +51,7 @@ use App\OrderPackage;
 use App\Owner;
 use App\OwnerAreaReport;
 use App\OwnerFeeDetail;
+use App\OwnerLogisticFeeDetail;
 use App\OwnerMaterial;
 use App\OwnerPriceOperation;
 use App\Package;
@@ -1357,4 +1359,22 @@ TEXT;
     {
         dd(md5( date("Y-m-d H:i:s")));
     }
+
+    public function settlement_bill_create_event_test()
+    {
+        $arr = [
+            'owner_fee_detail_id'=>2313213, //
+            'logistic_bill'=>'14546465',//快递单号
+            'initial_weight'=>'1',//首重
+            'initial_weight_price'=>'2',//首重价格
+            'additional_weight'=>'3',//续重
+            'additional_price'=>'5',//续重价格
+            'logistic_id'=>'7',//承运商
+            'owner_id'=>'1',//货主
+            'additional_weigh_weight'=>'11',//续重重量
+            'tax_fee'=>'11',//税费
+            'fee'=>'11111'//费用
+        ];
+        event(new SettlementBillCreateEvent($arr,OwnerLogisticFeeDetail::class));
+    }
 }

+ 23 - 2
app/Listeners/SettlementBillCreateListener.php

@@ -3,6 +3,10 @@
 namespace App\Listeners;
 
 use App\Events\SettlementBillCreateEvent;
+use App\OwnerLogisticFeeDetail;
+use App\OwnerStoreFeeDetail;
+use App\OwnerStoreOutFeeDetail;
+use App\OwnerWayBillFeeDetail;
 use Illuminate\Contracts\Queue\ShouldQueue;
 use Illuminate\Database\Eloquent\Model;
 use Illuminate\Queue\InteractsWithQueue;
@@ -31,7 +35,24 @@ class SettlementBillCreateListener implements ShouldQueue
         $createData = $event->createData;
         /** @var Model $modelName */
         $modelName = $event->modelName;
-        $modelName::uDelete($createData);
-        $modelName::query()->updateOrCreate($createData);
+        $selectData = [];
+        switch ($modelName) {
+            case OwnerLogisticFeeDetail::class:
+                $selectData = OwnerLogisticFeeDetail::buildSelectData($createData);
+                break;
+            case OwnerStoreFeeDetail::class:
+                $selectData = OwnerStoreFeeDetail::buildSelectData($createData);
+
+                break;
+            case OwnerStoreOutFeeDetail::class:
+                $selectData = OwnerStoreOutFeeDetail::buildSelectData($createData);
+
+                break;
+            case OwnerWayBillFeeDetail::class:
+                $selectData = OwnerWayBillFeeDetail::buildSelectData($createData);
+                break;
+            default:
+        }
+        $modelName::query()->updateOrCreate($selectData,$createData);
     }
 }

+ 12 - 11
app/OwnerLogisticFeeDetail.php

@@ -43,19 +43,20 @@ class OwnerLogisticFeeDetail extends Model
     }
 
     /**
-     * 根据参数条件删除
+     * 根据插入数组构建查询数组
      * @param $data
+     * @return array
      */
-    public static function uDelete($data)
+    public static function buildSelectData($data): array
     {
-        self::query()
-            ->where('owner_fee_detail_id', $data['owner_fee_detail_id'])
-            ->where('logistic_bill', $data['logistic_bill'])
-            ->where('initial_weight', $data['initial_weight'])
-            ->where('additional_weight', $data['additional_weight'])
-            ->where('logistic_id', $data['logistic_id'])
-            ->where('owner_id', $data['owner_id'])
-            ->where('additional_weigh_weight', $data['additional_weigh_weight'])
-            ->delete();
+        return [
+            'owner_fee_detail_id' => $data['owner_fee_detail_id'] ?? '',
+            'logistic_bill' => $data['logistic_bill'] ?? '',
+            'initial_weight' => $data['initial_weight'] ?? '',
+            'additional_weight' => $data['additional_weight'] ?? '',
+            'logistic_id' => $data['logistic_id'] ?? '',
+            'owner_id' => $data['owner_id'] ?? '',
+            'additional_weigh_weight' => $data['additional_weigh_weight'] ?? ''
+        ];
     }
 }

+ 13 - 13
app/OwnerStoreFeeDetail.php

@@ -53,22 +53,22 @@ class OwnerStoreFeeDetail extends Model
         return $this->belongsTo(Commodity::class);
     }
 
-
     /**
-     * 根据参数条件删除
+     * 根据插入数组构建查询数组
      * @param $data
+     * @return array
      */
-    public static function uDelete($data)
+    public static function buildSelectData($data): array
     {
-        self::query()
-            ->where('owner_fee_detail_id', $data['owner_fee_detail_id'])
-            ->where('unit_id', $data['unit_id'])
-            ->where('owner_id', $data['owner_id'])
-            ->where('commodity_id', $data['commodity_id'])
-            ->where('sku', $data['sku'])
-            ->where('barcode', $data['barcode'])
-            ->where('work_name', $data['work_name'])
-            ->where('asn_code', $data['asn_code'])
-            ->delete();
+        return [
+            'owner_fee_detail_id' => $data['owner_fee_detail_id'] ?? '',
+            'unit_id' => $data['unit_id'] ?? '',
+            'owner_id' => $data['owner_id'] ?? '',
+            'commodity_id' => $data['commodity_id'] ?? '',
+            'sku' => $data['sku'] ?? '',
+            'barcode' => $data['barcode'] ?? '',
+            'work_name' => $data['work_name'] ?? '',
+            'asn_code' => $data['asn_code'] ?? '',
+        ];
     }
 }

+ 14 - 12
app/OwnerStoreOutFeeDetail.php

@@ -50,20 +50,22 @@ class OwnerStoreOutFeeDetail extends Model
     }
 
     /**
-     * 根据参数条件删除
+     * 根据插入数组构建查询数组
      * @param $data
+     * @return array
      */
-    public static function uDelete($data)
+    public static function buildSelectData($data): array
     {
-        self::query()
-            ->where('owner_fee_detail_id',$data['owner_fee_detail_id'])
-            ->where('commodity_id',$data['commodity_id'])
-            ->where('owner_id',$data['owner_id'])
-            ->where('source_bill',$data['source_bill'])
-            ->where('unit_id',$data['unit_id'])
-            ->where('sku',$data['sku'])
-            ->where('barcode',$data['barcode'])
-            ->where('work_name',$data['work_name'])
-            ->delete();
+        return [
+            'owner_fee_detail_id' => $data['owner_fee_detail_id'] ?? '',
+            'commodity_id' => $data['commodity_id'] ?? '',
+            'owner_id' => $data['owner_id'] ?? '',
+            'source_bill' => $data['source_bill'] ?? '',
+            'unit_id' => $data['unit_id'] ?? '',
+            'sku' => $data['sku'] ?? '',
+            'barcode' => $data['barcode'] ?? '',
+            'work_name' => $data['work_name'] ?? '',
+
+        ];
     }
 }

+ 4 - 3
app/OwnerWayBillFeeDetail.php

@@ -39,11 +39,12 @@ class OwnerWayBillFeeDetail extends Model
     }
 
     /**
-     * 根据参数条件删除
+     * 根据插入数组构建查询数组
      * @param $data
+     * @return array
      */
-    public static function uDelete($data)
+    public static function buildSelectData($data): array
     {
-
+        return [];
     }
 }