lvhao hace 10 horas
padre
commit
74204af3ce
Se han modificado 1 ficheros con 137 adiciones y 113 borrados
  1. 137 113
      core/CoreApp/controllers/Lyerpapi/v2/Skutoysjm.php

+ 137 - 113
core/CoreApp/controllers/Lyerpapi/v2/Skutoysjm.php

@@ -43,9 +43,10 @@ class Skutoysjm extends Lyapi_Controller
         $jiemi_key = isset($jiemi_arr[0])?$jiemi_arr[0]:"";
         $jiemi_time = isset($jiemi_arr[1])?$jiemi_arr[1]:"";
         
-        // if( $now_time - $jiemi_time > 2){
-        //     $this->_json_error("请求已超时",404 ,$data = []);
-        // }
+        if( $now_time - $jiemi_time > 3){
+            $this->_json_error("请求已超时".date("Y-m-d H:i:s",$now_time)."--------".date("Y-m-d H:i:s",$jiemi_time),404 ,$data = []);
+        }
+        
 
         if($jiemi_key != $this->salt_str){
             $this->_json_error("凭证不正确",404 ,$data = []);
@@ -56,124 +57,147 @@ class Skutoysjm extends Lyapi_Controller
         }
 
         $len = count($data['sku_list']);
-        if($len > 1){
-             $this->_json_error("每次转换不允许超过1个",400 ,$data = []);
+        if($len > 20){
+             $this->_json_error("每次转换不允许超过20个",400 ,$data = []);
         }
 
-        $sku = implode(",",$data['sku_list']);
+        
 
         $dictionaries = $this->typeclass->find_all('spare!= "" and classid != 1 and classid != 2 and classid != 3 and classid != 4 and classid != 5 and classid != 11 and classid != 16 and classid != 17 and classid != 20 and classid != 21 and classid != 23 and classid != 24 and classid != 29 and classid != 30 and classid != 31 and classid != 32');
-			$dtc = array();
-			foreach ($dictionaries as $v) {
-				if (stripos($v['spare'], '|') !== false) //如果有多个值
-				{
-					$v['spare'] = explode('|', $v['spare']);
-					foreach ($v['spare'] as $k => $vs) {
-						if (stripos($v['zh'], '|') !== false) {
-							$vzh = explode('|', $v['zh']);
-							$dtc[strtolower($vs)] = array('classid' => $v['classid'], 'zh' => $vzh[$k], 'id' => $v['id'], 'jm' => $v['jm'], 'spare' => $vs);
-						} else {
-							$dtc[strtolower($vs)] = array('classid' => $v['classid'], 'zh' => $v['zh'], 'id' => $v['id'], 'jm' => $v['jm'], 'spare' => $vs);
-						}
-					}
-				} else {
-					$dtc[strtolower($v['spare'])] = array('classid' => $v['classid'], 'zh' => $v['zh'], 'id' => $v['id'], 'jm' => $v['jm'], 'spare' => $v['spare']);
-				}
-			}
-
-            $dtctitle = [];
-			$dictionaries2 = $this->typeclass->find_all();
-			foreach ($dictionaries2 as $v) {
-				$dtctitle[$v['id']] = $v['title'];
-			}
-			/*  匹配结束  */
-			/*  价格加入  */
-			$money = array();
-			$productdescribe = $this->productdescribe->find_all('1=1');
-			foreach ($productdescribe as $v) {
-				$money[$v['number']] = array();
-			}
-			/*  价格加入  */
-			/*  匹配ID加入  */
-			$int = array();
-			$intdata = $this->typeclass->find_all('classid=14', 'id,spare');
-			foreach ($intdata as $v) {
-				$v['spare'] = explode('|', $v['spare']);
-				$int[$v['id']] = $v['spare'][0];
-			}
-			/*  匹配ID加入  */
-			$zjsku = array();
-			$shopsku = $this->shopsku->find_all();
-			foreach ($shopsku as $val) {
-				$ss = explode(',', trim($val['shop'], ','));
-				foreach ($ss as $v) {
-					if (isset($zjsku[$v])) {
-						$zjsku[$v] .= ',' . trim($val['sku'], ',');
-					} else {
-						$zjsku[$v] = trim($val['sku'], ',');
-					}
-				}
-			}
-			/*  匹配ID结束  */
-			$q = '';
-			$quantity = explode(',', trim($sku, ','));
-			foreach ($quantity as $v) {
-				$q .= '1;';
-			}
-			$shop = $this->shop->read(19);
-			if (isset($zjsku[$shop['id']])) //判断是否找到店铺SKU
-			{
-				$sku = rtrim($sku, ',') . ',' . $zjsku[$shop['id']];
-			}
-			$r = $this->api->matching(trim($q, ';'), $sku, $dtc, $money, $int, $dtctitle, $shop);
-            $p = '';
-			$product = explode(';', trim($r['product'], ';'));
-			if ($r['title'] != '' && $product) {
-				foreach ($product as $v) {
-					$vc = explode('|', $v);
-					if(isset($vc[1])){
-						$p .= $vc[1] . '<br>';
-					}
-					
-				}
-				$tmp_str = $r['product']; 
-				
-				$tmp_arr = explode(";",$tmp_str);
-				$list = [];
-				foreach($tmp_arr as $k=>$v){
-					$tmp_str1 = str_replace(array('-163-','-164-','-165-','-166-'),'-',$v);
-					$tmp_arr1 = explode('|',trim($tmp_str1,'|'));
-					if(stripos($tmp_arr1[0],',') !== false){
-						$ft = explode(',',$tmp_arr1[0]);
-						$features = explode('-',trim($ft[1],'-'));
-						$features[] = $ft[0];
-					}else{
-						$features = explode('-',trim($tmp_arr1[0],'-'));
-					}
-					$sku = implode("-",$features);
-					if(!empty($sku)){
-						$list[] = [
-							'sku2'=>$sku,
-						];
-					}
-					
-				}
-               
-				$u9_data = $this->logic_u9tools->getU9bm($list,'sku2');
-                foreach($u9_data as $k => $v){
-                    unset($u9_data[$k]['sku2']);
+        $dtc = array();
+        foreach ($dictionaries as $v) {
+            if (stripos($v['spare'], '|') !== false) //如果有多个值
+            {
+                $v['spare'] = explode('|', $v['spare']);
+                foreach ($v['spare'] as $k => $vs) {
+                    if (stripos($v['zh'], '|') !== false) {
+                        $vzh = explode('|', $v['zh']);
+                        $dtc[strtolower($vs)] = array('classid' => $v['classid'], 'zh' => $vzh[$k], 'id' => $v['id'], 'jm' => $v['jm'], 'spare' => $vs);
+                    } else {
+                        $dtc[strtolower($vs)] = array('classid' => $v['classid'], 'zh' => $v['zh'], 'id' => $v['id'], 'jm' => $v['jm'], 'spare' => $vs);
+                    }
+                }
+            } else {
+                $dtc[strtolower($v['spare'])] = array('classid' => $v['classid'], 'zh' => $v['zh'], 'id' => $v['id'], 'jm' => $v['jm'], 'spare' => $v['spare']);
+            }
+        }
+
+        $dtctitle = [];
+        $dictionaries2 = $this->typeclass->find_all();
+        foreach ($dictionaries2 as $v) {
+            $dtctitle[$v['id']] = $v['title'];
+        }
+        /*  匹配结束  */
+        /*  价格加入  */
+        $money = array();
+        $productdescribe = $this->productdescribe->find_all('1=1');
+        foreach ($productdescribe as $v) {
+            $money[$v['number']] = array();
+        }
+        /*  价格加入  */
+        /*  匹配ID加入  */
+        $int = array();
+        $intdata = $this->typeclass->find_all('classid=14', 'id,spare');
+        foreach ($intdata as $v) {
+            $v['spare'] = explode('|', $v['spare']);
+            $int[$v['id']] = $v['spare'][0];
+        }
+        /*  匹配ID加入  */
+        $zjsku = array();
+        $shopsku = $this->shopsku->find_all();
+        foreach ($shopsku as $val) {
+            $ss = explode(',', trim($val['shop'], ','));
+            foreach ($ss as $v) {
+                if (isset($zjsku[$v])) {
+                    $zjsku[$v] .= ',' . trim($val['sku'], ',');
+                } else {
+                    $zjsku[$v] = trim($val['sku'], ',');
                 }
+            }
+        }
+        $shop = $this->shop->read(19);
+        $final_all = [];
+
+        $typeclass = [];
+        $classid = $this->classid->sku();
+       
+        $tcall = $this->typeclass->find_all();
+        foreach ($tcall as $v)
+        {
+            //$tcjm[$v['id']] = array($v['jm'],$v['classid']);
+            $typeclass[$v['id']] = array('zh'=>$v['zh'],'classid'=>$v['classid'],'bm'=>$v['bm'],'title'=>$v['title'],'jm'=>$v['jm']);
+        }
+
+        foreach($data['sku_list'] as $k => $v){
+            $q = '1;';
+            $org_sku = $sku = $v;
+            if (isset($zjsku[$shop['id']])) //判断是否找到店铺SKU
+            {
+                $sku = rtrim($v, ',') . ',' . $zjsku[$shop['id']];
+               
+            }
+
+            $ret = $this->getU9Lh($q,$sku,$dtc,$money,$int,$dtctitle, $shop,$classid,$typeclass,$org_sku);
+
+            $final_all[] = $ret;
+        }
+
 
+        
+        $this->_json_error("获取成功",200 ,$final_all);
+
+    }
+
+
+
+    protected function getU9Lh($q,$sku,$dtc,$money,$int,$dtctitle, $shop,$classid,$typeclass,$org_sku){
+        $r = $this->api->matching(trim($q, ';'), $sku, $dtc, $money, $int, $dtctitle, $shop);
+        $p = '';
+        $product = explode(';', trim($r['product'], ';'));
+        if ($r['title'] != '' && $product) {
+            foreach ($product as $v) {
+                $vc = explode('|', $v);
+                if(isset($vc[1])){
+                    $p .= $vc[1] . '<br>';
+                }
                 
-				$this->_json_error("获取成功",200 ,$data = [
-                    "sku"=>$data['sku_list'][0],
-                    "goods_list"=>$u9_data
-                ]);
-			} else {
-				 $this->_json_error("数据异常,请联系技术",400 ,$data = []);
-			}
+            }
+            $tmp_str = $r['product']; 
             
+            $tmp_arr = explode(";",$tmp_str);
+            $tmp_list = [];
+            foreach($tmp_arr as $k=>$v){
+                if(empty($v)){
+                    continue;
+                }
+                $tmp_str1 = str_replace(array('-163-','-164-','-165-','-166-'),'-',$v);
+                $tmp_arr1 = explode('|',trim($tmp_str1,'|'));
+                if(stripos($tmp_arr1[0],',') !== false){
+                    $ft = explode(',',$tmp_arr1[0]);
+                    $features = explode('-',trim($ft[1],'-'));
+                    $features[] = $ft[0];
+                }else{
+                    $features = explode('-',trim($tmp_arr1[0],'-'));
+                }
+                $sku = implode("-",$features);
+                $u9_data = $this->logic_u9tools->getOneU9bm($sku,$classid,$typeclass);
+                $tmp_list[] = $u9_data;
+            }
+            
+            
+        
 
-
+            
+           return [
+              "sku"=>$org_sku,
+              "list"=> $tmp_list,
+           ];
+        } else {
+           return [
+              "sku"=>$org_sku,
+              "list"=>[],
+           ];
+        }
+            
     }
 }