Переглянути джерело

跟踪件导出 导出后提货日期排列乱

ajun 5 роки тому
батько
коміт
3bcbd0db5f

+ 55 - 2
app/Http/Controllers/OrderTrackingController.php

@@ -8,10 +8,13 @@ use App\OrderTracking;
 use App\Services\LogService;
 use App\Services\OrderTrackingService;
 use App\Services\OwnerService;
+use App\UploadFile;
 use Exception;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Gate;
 use Illuminate\Support\Facades\Http;
+use Intervention\Image\Facades\Image;
+use Ramsey\Uuid\Uuid;
 
 class OrderTrackingController extends Controller
 {
@@ -20,8 +23,8 @@ class OrderTrackingController extends Controller
     {
         if (!Gate::allows('订单管理-跟踪'))
             return redirect(url('/'));
-
         $owners =  app(OwnerService::class)->getAuthorizedOwners();
+        /** @var OrderTrackingService $service */
         $service = app('OrderTrackingService');
         $trackOrders = $service->paginate($request->input());
         $logistics = Logistic::all();
@@ -75,6 +78,57 @@ class OrderTrackingController extends Controller
 
     }
 
+    public function upload(Request $request)
+    {
+        if (!Gate::allows('订单管理-跟踪-仓库编辑'))
+            return ['success'=>false,'fail_info'=>'没有对应权限'];
+        $file=$request->file('file');
+        /** @var OrderTracking $orderTracking */
+        $orderTracking = OrderTracking::query()->find($request['id']);
+        if(!$orderTracking){
+            return ['success'=>false,'error'=>'未找到该追踪件'];
+        }
+        if($orderTracking->uploadFile()){
+            return ['success'=>false,'error'=>'该运单已存在照片!'];
+        }
+        if(!$file){
+            return ['success'=>false,'error'=>'照片不能为空!'];
+        }
+        if(!$file->isValid()){
+            return ['success'=>false,'error'=>'找不到照片'];
+        }
+        $tmpFile = $file->getRealPath();
+        if(!is_uploaded_file($tmpFile)){
+            return ['success'=>false,'error'=>'文件错误'];
+        }
+        $fileExtension=$file->getClientOriginalExtension();
+        $fileName=date('ymd').'-'.Uuid::uuid1(); // 文件名生成
+        $thumbnailName=storage_path('app/public/files/'.$fileName.'-thumbnail.'.$fileExtension);
+        $commonName=storage_path('app/public/files/'.$fileName.'-common.'.$fileExtension);
+        $bulkyName=storage_path('app/public/files/'.$fileName.'-bulky.'.$fileExtension);
+        $result=move_uploaded_file($tmpFile,$bulkyName);
+        if($result){
+            $img=Image::make($bulkyName);
+            if($img->height()>$img->width()){
+                $img->heighten(250)->save($commonName);
+            }else {
+                $img->widen(250)->save($commonName);
+            }
+            $img->heighten(28)->save($thumbnailName);
+            $uploadFile=new UploadFile([
+                "table_name"=>'orderTrackings',
+                'table_id'=>$orderTracking->id,
+                'url'=>'/files/'.$fileName,
+                'type'=>$fileExtension
+            ]);
+            if($uploadFile->save())
+                LogService::log(__METHOD__,'追踪件 图片上传'.__FUNCTION__,json_encode($request));
+            $uploadFile->url=assert('/storage'.$uploadFile->url);
+            return ['success'=>true,'data'=>$uploadFile];
+        }
+        return ['success'=>false,'error'=>'图片保存失败'];
+    }
+
     public function export(Request $request)
     {
         if (!Gate::allows('订单管理-跟踪'))
@@ -147,7 +201,6 @@ class OrderTrackingController extends Controller
                 $orderTracking->remark,
             ];
         }
-//        dd($mergeRow,$list );
         $post=Http::post(config('go.export.url'),['type'=>'base','data'=>json_encode(['row'=>$row,'list'=>$list,'mergeColumn'=>$mergeColumn,'mergeRow'=>$mergeRow],JSON_UNESCAPED_UNICODE),
             'createFormat'=>'merge']);
 

+ 3 - 2
app/Services/OrderTrackingService.php

@@ -103,7 +103,7 @@ class OrderTrackingService
     public function paginate($params)
     {
         return $this->getConditionQuery($params)
-            ->orderByDesc('order_trackings.created_at')
+            ->orderByDesc('order_trackings.pick_up_at')
             ->orderBy('order_trackings.order_client_code')
             ->paginate($params['paginate'] ?? 50);
     }
@@ -141,7 +141,8 @@ class OrderTrackingService
         if($params['data'] ?? false){
             $params['ids'] = $params['data'];
         }
-        return  $this->getConditionQuery($params)->get();
+        return  $this->getConditionQuery($params)
+            ->orderByDesc('order_trackings.pick_up_at')->orderBy('order_trackings.order_client_code')->get();
     }
 
     /**