gogs 1 год назад
Родитель
Сommit
00b5c01f28
1 измененных файлов с 117 добавлено и 0 удалено
  1. 117 0
      app/Http/Controllers/Api/DwyController.php

+ 117 - 0
app/Http/Controllers/Api/DwyController.php

@@ -0,0 +1,117 @@
+<?php
+
+namespace App\Http\Controllers\Api;
+
+
+use App\Service\EmployeeService;
+use App\Service\SysMenuService;
+use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Redis;
+
+
+class DwyController extends BaseController
+{
+    public function openCommand(Request $request){
+        $data = $request->all();
+        $device_id = $data['device_code'];
+        $box_code = $data['box_code'];
+        $key = $device_id.'_'.$box_code;
+
+        Redis::set($key,1);
+
+        return ['status'=>200];
+
+    }
+
+
+    public function getOpenCommand(Request $request){
+        $data = $request->all();
+        $device_id = $data['device_code'];
+        $box_code = explode(',',$data['box_code']);
+        $key = $device_id.'_'.$box_code[0];
+        $return = 201;
+        $status = Redis::get($key);
+        if($status) {
+            $return = 200;
+            Redis::del($key);
+        }
+
+        return ['status'=>$return];
+    }
+
+    public function setLb(Request $request){
+        $param = $request->all();
+//        $param = [
+//            'token'=>'Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIyNzM2OTUyNTA3NTI5NTQzNzMiLCJhdXRoIjoiUk9MRV9JTk5FUl9VU0VSLFJPTEVfQlJBTkRfQVJSRVNULFJPTEVfQURNSU4iLCJ0b2tlbklkIjoiOTUwIiwiZXhwIjoxNzA3OTcxMTcxfQ.2VQ9Wqmk4rvKAcTsQPw59llBbeXjalKDGIZA4kesnuOJ0POmPVOVlRLbTtUDxl0XiFdPDUrKzuEFl2DXSgQdJg',
+//            'list'=>[
+//                [
+//                    'title'=>'优选A7家具板ENF小标',
+//                    'num'=>'20',
+//                ],[
+//                    'title'=>'植萃除醛圆标',
+//                    'num'=>'10',
+//                ],
+//            ],
+//        ];
+//        dd(json_encode($param));
+        $token = $param['token'];
+        $list = $param['list'];
+        $url = 'http://121.36.131.68:7774/jbl/api/module-data/brand_in_stock/brand_in_stock/diy/box_inventory';
+        $header = [
+            'Content-Type:application/json',
+            'Authorization:'.$token,
+        ];
+        $data = $this->post_helper($url,'{"device_code":"DV00001"}',$header);
+//        var_dump($data);
+        $data = json_decode($data,true);
+        $a = 4;
+        foreach ($data as $k=>&$v){
+            if($v['box_code_show'] == '设备仓') {
+                unset($data[$k]);
+                continue;
+            }
+            if($v['qty'] <= 0) {
+                unset($data[$k]);
+                continue;
+            }
+            if(!isset($v['send_qty'])) $v['send_qty'] = 0;
+            foreach ($list as $kk=>$vv ){
+                if($vv['num'] == 0) continue;
+                if($v['material_code_show'] === $vv['title']){
+
+                    if(($v['qty']-$v['send_qty'])>$vv['num']) {
+                        $list[$kk]['num'] -= $vv['num'];
+                        $v['send_qty'] += $vv['num'];
+                    } else{
+                        $list[$kk]['num'] -= ($v['qty']-$v['send_qty']);
+                        $v['send_qty'] += ($v['qty']-$v['send_qty']);
+                    }
+                }
+            }
+
+            //测试用
+            if($v['box_code'] == 'CK00012'){
+                $v['send_qty'] = $a;
+            }
+            $a++;
+        }
+        sort($data);
+        return ['status'=>200,'data'=>$data];
+    }
+
+    public function post_helper($url, $data,$header){
+        $ch = curl_init();
+
+        curl_setopt($ch, CURLOPT_POST, 1);
+        curl_setopt($ch, CURLOPT_URL, $url);
+        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
+        curl_setopt($ch,  CURLOPT_RETURNTRANSFER, true);
+        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+        curl_setopt($ch, CURLOPT_TIMEOUT, 30);
+        if(!is_null($data)) curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
+        $r = curl_exec($ch);
+        curl_close($ch);
+        return $r;
+
+    }
+}