|
|
@@ -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"=>[],
|
|
|
+ ];
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
}
|