Browse Source

修改PrintTerminal

ajun 4 years ago
parent
commit
41ad5d0e5e

+ 2 - 2
app/Http/Controllers/PrintController.php

@@ -24,9 +24,9 @@ class PrintController extends Controller
         return ['success' => true,'data' => $result];
     }
 
-    public function uploadPrintDataApi(Request $request,PrintService  $service)
+    public function uploadPrintDataApi(Request $request,DeliveryService  $service): array
     {
-        return $service->processingPrintData($request['printData']);
+        return $service->customProcessing($request['printData']);
     }
 
 

+ 7 - 2
app/Http/Controllers/PrintTemplateController.php

@@ -22,7 +22,12 @@ class PrintTemplateController extends Controller
         }])->get();
         $owners = Owner::query()->get();
         $logistics = Logistic::query()->get();
-        return view('/maintenance/expressPrinting/template/index', compact('templates','owners','logistics'));
+
+        $delivery_interface = OwnerLogisticPrintTemplate::$enums['delivery_interface'];
+        $delivery_interfaces = array_chunk($delivery_interface,count($delivery_interface) / 2)  ;
+        $delivery_interfaces = array_values($delivery_interfaces[1]);
+
+        return view('/maintenance/expressPrinting/template/index', compact('templates','owners','logistics','delivery_interfaces'));
     }
 
     public function create(PrintTemplateService $service)
@@ -69,7 +74,7 @@ class PrintTemplateController extends Controller
     public function saveRelationApi(Request $request,PrintTemplateService $service): array
     {
         $saveRelation = $request['data'];
-        $relations = OwnerLogisticPrintTemplate::query()->where('print_template_id',$request['id'])->groupBy('owner_id')->get();
+        $relations = OwnerLogisticPrintTemplate::query()->where('print_template_id',$request['id'])->get();
         $service->saveRelation($saveRelation,$relations,$request['id']);
         $printTemplate = PrintTemplate::query()->with(['ownerLogisticPrintTemplate' => function($query){
             $query->with(['owner', 'logistic']);

+ 8 - 0
app/Http/Controllers/TerminalController.php

@@ -4,6 +4,7 @@ namespace App\Http\Controllers;
 
 use App\Components\AsyncResponse;
 use App\Http\Requests\Printer\TerminalRequest;
+use App\Http\Requests\Request;
 use App\Terminal;
 use Illuminate\Support\Facades\Gate;
 
@@ -61,4 +62,11 @@ class TerminalController extends Controller
         if (!$terminal)return ['success' => false,'message' => 'was没有记录该ip下的打印机'];
         return ['success' => true,'data' => $terminal];
     }
+
+    public function getTerminalByIPApi(Request $request): array
+    {
+        $clientIp = $request->getClientIp();
+        $terminal = Terminal::query()->with('printers')->where('ip')->first();
+        return ['success' => true, 'data' => $terminal];
+    }
 }

+ 3 - 3
app/Services/PDDDeliveryService.php

@@ -24,11 +24,11 @@ class PDDDeliveryService implements DeliveryInterface
         return $items->map(function($item) {
             return [
                 // TODO 需要动态获取面单获取的组件 TYPE
-                'type' => 'CAINIAO',
-                'task_id' => Str::uuid(),
+                'type' => 'PDD',
+                'task_id' => $item['trackingno'],
                 'is_process' => false,
                 'data' => $item['userdefine1'],
-                'component_type' => 'CAINIAO',
+                'component_type' => 'PDD',
                 'owner_code' => $item->docOrderHeader->customerid ?? '',
                 'logistic_code' => $item->docOrderHeader->userdefine1 ?? '',
                 'logistic_number' => $item['trackingno'],

+ 43 - 19
app/Services/PrintTemplateService.php

@@ -12,32 +12,56 @@ class PrintTemplateService
 
     protected $modelClass = PrintTemplate::class;
 
-    public function saveRelation($saveRelation,$relation,$printTemplateId){
-        $relations = $relation->groupBy(['owner_id','logistic_id'])->toArray();
-        foreach ($saveRelation as $owner_id => $obj){
-            if ($obj['isActivation'] === false){
-                unset($saveRelation[$owner_id]);
+    public function saveRelation($saveRelation, $relations, $printTemplateId)
+    {
+        $relation_arr = [];
+        foreach ($relations as $relation) {
+            $owner_id = $relation['owner_id'];
+            $logistic_id = $relation['logistic_id'];
+            if(!array_key_exists($owner_id,$relation_arr)) $relation_arr[$owner_id] = [];
+            $relation_arr[$owner_id][$logistic_id] = ['name' => $relation->logistic->name];
+        }
+        $delete_items = [
+            'owner_id' => [],
+            'items' => [],
+        ];
+        $params = [];
+        foreach ($saveRelation as $owner_id => $data) {
+            if(array_key_exists($owner_id,$relation_arr) && $data['isActivation'] == false){
+                $delete_items['owner_id'][] = $owner_id;
                 continue;
             }
-            $res = $relations[$owner_id];
-            foreach ($obj['logistics'] as $logistic_id=>$item) {
-                if ($item['isActivation'] === false ||  array_key_exists($logistic_id,$res)){
-                    unset($saveRelation[$owner_id]['logistics'][$logistic_id]);
-                    continue;
+            $logistic_relation = $relation_arr[$owner_id] ?? [];
+            foreach ($data['logistics'] as $logistic_id => $logistic) {
+                if ($logistic['isActivation'] == false){
+                    // 未激活
+                    if(array_key_exists($logistic_id,$logistic_relation)){
+                        $delete_items['items'][] = [
+                            'owner_id' => $owner_id,
+                            'logistic_id' => $logistic_id
+                        ];
+                    }
+                } else if($logistic['isActivation'] == true){
+                    // 激活
+                    if (!array_key_exists($logistic_id,$logistic_relation)){
+                        $params[] = [
+                            'owner_name'=>$data['name'],
+                            'logistic_name'=>$logistic['name'],
+                            'owner_id' => $owner_id,
+                            'logistic_id' => $logistic_id,
+                            'print_template_id' => $printTemplateId,
+                        ];
+                    }
                 }
             }
         }
-        $params = [];
-        foreach ($saveRelation as  $owner_id => $obj) {
-            foreach ($obj['logistics'] as $logistic_id=>$item) {
-                $params[] = [
-                    'owner_id' => $owner_id,
-                    'logistic_id' => $logistic_id,
-                    'print_template_id' => $printTemplateId,
-                ];
+        if ($delete_items['owner_id']) OwnerLogisticPrintTemplate::query()->whereIn('owner_id', $delete_items['owner_id'])->where('print_template_id', $printTemplateId)->delete();
+        if ($delete_items['items']) {
+            foreach ($delete_items['items'] as $item) {
+                OwnerLogisticPrintTemplate::query()->where('owner_id', $item['owner_id'])->where('logistic_id', $item['logistic_id'])->delete();
             }
         }
-        if (!$params) return ;
+        if (!$params) return;
         OwnerLogisticPrintTemplate::query()->insert($params);
     }
 

+ 24 - 26
bootstrap/cache/services.php

@@ -32,19 +32,18 @@
     28 => 'Laravel\\Tinker\\TinkerServiceProvider',
     29 => 'Laravel\\Ui\\UiServiceProvider',
     30 => 'Maatwebsite\\Excel\\ExcelServiceProvider',
-    31 => 'Milon\\Barcode\\BarcodeServiceProvider',
-    32 => 'Carbon\\Laravel\\ServiceProvider',
-    33 => 'NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider',
-    34 => 'Oursdreams\\Export\\ExportServiceProvider',
-    35 => 'Overtrue\\LaravelPinyin\\ServiceProvider',
-    36 => 'Te7aHoudini\\LaravelTrix\\LaravelTrixServiceProvider',
-    37 => 'Yajra\\Oci8\\Oci8ServiceProvider',
-    38 => 'App\\Providers\\AppServiceProvider',
-    39 => 'App\\Providers\\AuthServiceProvider',
-    40 => 'App\\Providers\\BroadcastServiceProvider',
-    41 => 'App\\Providers\\EventServiceProvider',
-    42 => 'App\\Providers\\HorizonServiceProvider',
-    43 => 'App\\Providers\\RouteServiceProvider',
+    31 => 'Carbon\\Laravel\\ServiceProvider',
+    32 => 'NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider',
+    33 => 'Oursdreams\\Export\\ExportServiceProvider',
+    34 => 'Overtrue\\LaravelPinyin\\ServiceProvider',
+    35 => 'Te7aHoudini\\LaravelTrix\\LaravelTrixServiceProvider',
+    36 => 'Yajra\\Oci8\\Oci8ServiceProvider',
+    37 => 'App\\Providers\\AppServiceProvider',
+    38 => 'App\\Providers\\AuthServiceProvider',
+    39 => 'App\\Providers\\BroadcastServiceProvider',
+    40 => 'App\\Providers\\EventServiceProvider',
+    41 => 'App\\Providers\\HorizonServiceProvider',
+    42 => 'App\\Providers\\RouteServiceProvider',
   ),
   'eager' => 
   array (
@@ -66,19 +65,18 @@
     15 => 'Laravel\\Horizon\\HorizonServiceProvider',
     16 => 'Laravel\\Ui\\UiServiceProvider',
     17 => 'Maatwebsite\\Excel\\ExcelServiceProvider',
-    18 => 'Milon\\Barcode\\BarcodeServiceProvider',
-    19 => 'Carbon\\Laravel\\ServiceProvider',
-    20 => 'NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider',
-    21 => 'Oursdreams\\Export\\ExportServiceProvider',
-    22 => 'Overtrue\\LaravelPinyin\\ServiceProvider',
-    23 => 'Te7aHoudini\\LaravelTrix\\LaravelTrixServiceProvider',
-    24 => 'Yajra\\Oci8\\Oci8ServiceProvider',
-    25 => 'App\\Providers\\AppServiceProvider',
-    26 => 'App\\Providers\\AuthServiceProvider',
-    27 => 'App\\Providers\\BroadcastServiceProvider',
-    28 => 'App\\Providers\\EventServiceProvider',
-    29 => 'App\\Providers\\HorizonServiceProvider',
-    30 => 'App\\Providers\\RouteServiceProvider',
+    18 => 'Carbon\\Laravel\\ServiceProvider',
+    19 => 'NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider',
+    20 => 'Oursdreams\\Export\\ExportServiceProvider',
+    21 => 'Overtrue\\LaravelPinyin\\ServiceProvider',
+    22 => 'Te7aHoudini\\LaravelTrix\\LaravelTrixServiceProvider',
+    23 => 'Yajra\\Oci8\\Oci8ServiceProvider',
+    24 => 'App\\Providers\\AppServiceProvider',
+    25 => 'App\\Providers\\AuthServiceProvider',
+    26 => 'App\\Providers\\BroadcastServiceProvider',
+    27 => 'App\\Providers\\EventServiceProvider',
+    28 => 'App\\Providers\\HorizonServiceProvider',
+    29 => 'App\\Providers\\RouteServiceProvider',
   ),
   'deferred' => 
   array (