Model_logic_u9tools.php 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842
  1. <?php
  2. /**
  3. * 封装一些转化为u9数据的操作
  4. */
  5. class Model_logic_u9tools extends Lin_Model {
  6. function __construct(){
  7. parent::__construct();
  8. $this->load->_model('Model_classid','classid');
  9. $this->load->_model('Model_typeclass','typeclass');
  10. $this->load->_model("Model_logic_tools",'logic_tools');
  11. $this->load->_model("Model_apiyyv1","apiyyv1");
  12. $this->load->_model("Model_settingtest","settingtest");
  13. // $this->load->_model("Model_logic_ding","logic_ding");
  14. }
  15. //获取u9的料号
  16. public function getU9bm(array $list,$sku_name){
  17. if(empty($list)){
  18. return [];
  19. }
  20. $tcjm = []; $typeclass = [];
  21. $classid = $this->classid->sku();
  22. $tcall = $this->typeclass->find_all();
  23. foreach ($tcall as $v)
  24. {
  25. //$tcjm[$v['id']] = array($v['jm'],$v['classid']);
  26. $typeclass[$v['id']] = array('zh'=>$v['zh'],'classid'=>$v['classid'],'bm'=>$v['bm'],'title'=>$v['title'],'jm'=>$v['jm']);
  27. }
  28. foreach($list as $k=>$v){
  29. $r = $this->getOneU9bm($v[$sku_name],$classid,$typeclass);
  30. $list[$k]['jm'] = $r['jm'];
  31. $list[$k]['zh'] = $r['zh'];
  32. $list[$k]['bm'] = $r['bm'];
  33. }
  34. return $list;
  35. }
  36. public function getOneU9bm($sku,$classid,$typeclass){
  37. $bm = '03';
  38. $ret_arr = [
  39. 'jm'=>"",//料号,SKU
  40. 'zh'=>"",//产品名称
  41. 'bm'=>"",//主分类下的编码
  42. ];
  43. if(stripos($sku,'-131-') !== false)
  44. {
  45. return $ret_arr;
  46. }
  47. $pm = $classid;
  48. $jm = $classid;
  49. $ch_bmpx = $bmpx = array(13=>'',16=>'',18=>'',25=>'',26=>'',41=>'');
  50. $features = str_replace(array('-163-','-164-','-165-','-166-'),'-',$sku);
  51. $features = explode("-",trim($sku,'-'));
  52. //先执行一边检测是否含有等级 如果没写等级 就默认为9A 这样可以避免传输u9报错 先不用这个是错误的
  53. // foreach($features as $k=>$v){
  54. // if(isset($typeclass[$v]) && isset($bmpx[$typeclass[$v]['classid']]))
  55. // {
  56. // if($typeclass[$v]['bm'] != '')
  57. // {
  58. // $ch_bmpx[$typeclass[$v]['classid']] = $typeclass[$v]['bm'];
  59. // }
  60. // }
  61. // }
  62. // if(empty($ch_bmpx[13])){
  63. // //让原来的规格码 添加上9A这个规格
  64. // $features[] = 80;
  65. // }
  66. foreach($features as $k=>$v)
  67. {
  68. if(isset($typeclass[$v]) && isset($bmpx[$typeclass[$v]['classid']]))
  69. {
  70. if($typeclass[$v]['bm'] != '')
  71. {
  72. $bmpx[$typeclass[$v]['classid']] = $typeclass[$v]['bm'];
  73. }
  74. }
  75. if($v != 0)
  76. {
  77. // if(!isset($typeclass[$v])){
  78. // $this->logic_ding->sendToDing("u9工具同步监听异常数据".json_encode($sku));
  79. // $this->logic_ding->sendToDing("u9工具同步监听异常数据".json_encode($typeclass));
  80. // $this->logic_ding->sendToDing("u9工具同步监听异常数据".json_encode($classid));
  81. // $this->logic_ding->sendToDing("u9工具同步监听异常数据".json_encode($v));
  82. // }
  83. if(isset($typeclass[$v]) &&isset($pm[$typeclass[$v]['classid']]))
  84. {
  85. if($typeclass[$v]['title'] == '9A')
  86. {
  87. $pm[$typeclass[$v]['classid']] = '9A';
  88. }
  89. else if($typeclass[$v]['title'] == '10A')
  90. {
  91. $pm[$typeclass[$v]['classid']] = '10A';
  92. }
  93. else
  94. {
  95. $clzh = $typeclass[$v]['zh'];
  96. if(stripos($typeclass[$v]['zh'],'|') !== false)
  97. {
  98. $clzh = explode('|',rtrim($typeclass[$v]['zh'],'|'));
  99. $clzh = $clzh[0];
  100. }
  101. $pm[$typeclass[$v]['classid']] = $clzh;
  102. }
  103. }
  104. if( isset($typeclass[$v]) && isset($jm[$typeclass[$v]['classid']]))
  105. {
  106. if($typeclass[$v]['jm'])
  107. {
  108. $jm[$typeclass[$v]['classid']] = $typeclass[$v]['jm'];
  109. }
  110. }
  111. }
  112. }
  113. $all_jm = $jm;
  114. $jm = array_filter($jm);//去除空值
  115. $jm = implode("-",$jm);
  116. $pm = array_filter($pm);//去除空值
  117. $zh = implode(" ",$pm);
  118. $zh = preg_replace("/\r\n|\r|\n/",'',trim($zh,' '));
  119. $tmp_all_jm = [];
  120. foreach($all_jm as $k_tmp=>$tmp_v){
  121. $tmp_all_jm[] = [
  122. "classid"=>$k_tmp,
  123. "title"=>$tmp_v
  124. ];
  125. }
  126. $tmp_arr = explode("-",trim($sku,"-"));
  127. $cate = $tmp_arr[0];
  128. return [
  129. 'jm'=>$jm,//料号,SKU
  130. 'zh'=>$zh,//产品名称
  131. 'bm'=>$bm.implode("",$bmpx),//主分类下的编码
  132. 'all_jm'=> $tmp_all_jm,
  133. 'cate'=>$cate
  134. ];
  135. }
  136. public function getOneU9bmHasGift($sku,$classid,$typeclass){
  137. $bm = '03';
  138. $pm = $classid;
  139. $jm = $classid;
  140. $bmpx = array(13=>'',16=>'',18=>'',25=>'',26=>'',41=>'');
  141. $features = str_replace(array('-163-','-164-','-165-','-166-'),'-',$sku);
  142. $features = explode("-",trim($sku,'-'));
  143. foreach($features as $k=>$v)
  144. {
  145. if(isset($typeclass[$v])){
  146. if(isset($typeclass[$v]) && isset($bmpx[$typeclass[$v]['classid']]))
  147. {
  148. if($typeclass[$v]['bm'] != '')
  149. {
  150. $bmpx[$typeclass[$v]['classid']] = $typeclass[$v]['bm'];
  151. }
  152. }
  153. if($v != 0)
  154. {
  155. if(isset($pm[$typeclass[$v]['classid']]))
  156. {
  157. if($typeclass[$v]['title'] == '9A')
  158. {
  159. $pm[$typeclass[$v]['classid']] = '9A';
  160. }
  161. else if($typeclass[$v]['title'] == '10A')
  162. {
  163. $pm[$typeclass[$v]['classid']] = '10A';
  164. }
  165. else
  166. {
  167. $clzh = $typeclass[$v]['zh'];
  168. if(stripos($typeclass[$v]['zh'],'|') !== false)
  169. {
  170. $clzh = explode('|',rtrim($typeclass[$v]['zh'],'|'));
  171. $clzh = $clzh[0];
  172. }
  173. $pm[$typeclass[$v]['classid']] = $clzh;
  174. }
  175. }
  176. if(isset($jm[$typeclass[$v]['classid']]))
  177. {
  178. if($typeclass[$v]['jm'])
  179. {
  180. $jm[$typeclass[$v]['classid']] = $typeclass[$v]['jm'];
  181. }
  182. }
  183. }
  184. }
  185. }
  186. $tmp_all_jm = $jm;
  187. $jm = array_filter($jm);//去除空值
  188. $jm = implode("-",$jm);
  189. $pm = array_filter($pm);//去除空值
  190. $zh = implode(" ",$pm);
  191. $zh = preg_replace("/\r\n|\r|\n/",'',trim($zh,' '));
  192. $tmp_arr = explode("-",trim($sku,"-"));
  193. $cate = $tmp_arr[0];
  194. return [
  195. 'jm'=>$jm,//料号,SKU
  196. 'zh'=>$zh,//产品名称
  197. 'bm'=>$bm.implode("",$bmpx),//主分类下的编码
  198. 'all_jm'=> $tmp_all_jm,
  199. 'cate'=>$cate
  200. ];
  201. }
  202. /**
  203. * 通过erp的组合出来的sku反推出erp的sku的id组合和u9的编码以及中文名和料品 这种仅限于满足老代码排序的那种 要是不满足 再重新开一个方法吧
  204. */
  205. public function getGoodInfoByErpSku($category,$sku,$typeclass,$typeclassid,$classid){
  206. $sku_arr = explode("-",trim($sku,"-"));
  207. $sku_list = [];
  208. $flag = false;
  209. $err_msg = "";
  210. foreach($sku_arr as $v){
  211. if(!isset($typeclass[$v])){
  212. $err_msg="u9组合的[".$v."]不存在,请核对";
  213. $flag = true;
  214. }else{
  215. $sku_list[$typeclass[$v]['classid']] = $typeclass[$v];
  216. }
  217. }
  218. if($flag){
  219. return $this->logic_tools->ret_arr(-1,$err_msg."异常行的料号为【".$sku."】");
  220. }
  221. if($category == "发条"){
  222. $cate = 126;
  223. }elseif($category == "发块前头"){
  224. $cate = 127;
  225. }elseif($category == "头套"){
  226. $cate = 128;
  227. }elseif($category == "接发"){
  228. $cate = 130;
  229. }elseif($category == "礼物"){
  230. $cate = 131;
  231. }
  232. elseif($category == "配件"){
  233. $cate = 133;
  234. }
  235. elseif($category == "化纤头套"){
  236. $cate = 1297;
  237. }
  238. elseif($category == "化纤其它"){
  239. $cate = 1702;
  240. }
  241. else{
  242. return $this->logic_tools->ret_arr(-1,"分类异常请手动输入"."异常行的料号为【".$sku."】");
  243. }
  244. $list['category'] = $cate; //类目
  245. if(isset($sku_list[22])){
  246. $list['hairtype'] = $sku_list[22]['id']; //真人发类型
  247. }
  248. if(isset($sku_list[13])){
  249. $list['grade'] = $sku_list[13]['id'];//等级
  250. }
  251. if(isset($sku_list[14])){
  252. $list['size'] = $sku_list[14]['id'];//长度
  253. }
  254. if(isset($sku_list[43])){
  255. $list['hairnumber'] = $sku_list[43]['id'];//人发头套编号
  256. }
  257. if(isset($sku_list[33])){
  258. $list['extension'] = $sku_list[33]['id'];//Extension类型
  259. }
  260. if( $cate == 1297)
  261. {
  262. if(isset($sku_list[40])){
  263. $list['sywignumber'] = $sku_list[40]['id'];//化纤头套编号
  264. }
  265. }
  266. if( $cate == 1702)
  267. {
  268. if(isset($sku_list[47])){
  269. $list['syhairnumber'] = $sku_list[47]['id'];//化纤发编号
  270. }
  271. if(isset($sku_list[46])){
  272. $list['syother'] = $sku_list[46]['id'];//化纤其它分类
  273. }
  274. }
  275. if($cate == 133)
  276. {
  277. if(isset($sku_list[35])){
  278. $list['fittype'] = $sku_list[35]['id'];//配件类型
  279. }
  280. if(isset($sku_list[45])){
  281. $list['acother'] = $sku_list[45]['id'];//配件其他
  282. }
  283. }
  284. if(isset($sku_list[8])){
  285. $list['color'] = $sku_list[8]['id'];//头发颜色
  286. }
  287. if(isset($sku_list[15])){
  288. $list['lowe'] = $sku_list[15]['id'];//曲 度
  289. }
  290. if($cate == 127)
  291. {
  292. // 发块前头类型删除
  293. // if(isset($sku_list[27])){
  294. // $list['type'] = $sku_list[27]['id']; //类 型
  295. // }
  296. if(isset($sku_list[12])){
  297. $list['headroad'] = $sku_list[12]['id']; //头路设计
  298. }
  299. if(isset($sku_list[10])){
  300. $list['density'] = $sku_list[10]['id']; //密 度
  301. }
  302. $list['lacesize'] = $sku_list[25]['id'];
  303. // if($list['type'] == 195 || $list['type'] == 197 || $list['type'] == 199)
  304. // {
  305. // //蕾丝尺寸
  306. // if(isset($sku_list[25])){
  307. // $list['lacesize'] = $sku_list[25]['id'];
  308. // }
  309. // if(isset($sku_list[26])){
  310. // $list['lacesize'] = $sku_list[26]['id'];
  311. // }
  312. // }
  313. if(isset($sku_list[9])){
  314. $list['lacecolor'] = $sku_list[9]['id'];//蕾丝颜色
  315. }
  316. if(isset($sku_list[44])){
  317. $list['lacetypes'] = $sku_list[44]['id'];//蕾丝网材
  318. }
  319. if(isset($sku_list[54])){
  320. $list['lacetypestwo'] = $sku_list[54]['id'];//蕾丝格式
  321. }
  322. }
  323. if($cate == 128)
  324. {
  325. if(isset($sku_list[18])){
  326. $list['lacetype'] = $sku_list[18]['id'];//头套种类
  327. }
  328. if(isset($sku_list[6])){
  329. $list['haircap'] = $sku_list[6]['id'];//发帽大小
  330. }
  331. if(isset($sku_list[10])){
  332. $list['density'] = $sku_list[10]['id'];//密 度
  333. }
  334. if(isset($sku_list[9])){
  335. $list['lacecolor'] = $sku_list[9]['id'];//蕾丝颜色
  336. }
  337. if(isset($sku_list[44])){
  338. $list['lacetypes'] = $sku_list[44]['id'];//蕾丝类型
  339. }
  340. if(isset($sku_list[39])){
  341. $list['wigother'] = $sku_list[39]['id'];//头套其它
  342. }
  343. if(isset($sku_list[50])){
  344. $list['wigother1'] = $sku_list[50]['id'];//头套其它
  345. }
  346. if(isset($sku_list[51])){
  347. $list['wigother2'] = $sku_list[51]['id'];//头套其它2
  348. }
  349. if(isset($sku_list[53])){
  350. $list['product_related'] = $sku_list[53]['id'];//生产配比
  351. }
  352. }
  353. //现在没有129这个分类了
  354. // if($category == 129)
  355. // {
  356. // if(isset($sku_list[50])){
  357. // $list['wide'] = $sku_list[50]['id'];
  358. // }
  359. // }
  360. if($cate == 131)
  361. {
  362. if(isset($sku_list[34])){
  363. $list['gifttype'] = $sku_list[34]['id'];//Gift类型
  364. }
  365. if(isset($sku_list[49])){
  366. $list['giftother'] = $sku_list[49]['id'];//Gift其它
  367. }
  368. }
  369. //没有134这一项了
  370. // if($category == 134)
  371. // {
  372. // if(isset($sku_list[49])){
  373. // $list['giftother'] = $sku_list[49]['id'];
  374. // }
  375. // $list['pieceweight'] = $this->input->post('pieceweight',true);
  376. // }
  377. if($cate == 1297)
  378. {
  379. if(isset($sku_list[41])){
  380. $list['synthetictype'] = $sku_list[41]['id'];//头套类型
  381. }
  382. if(isset($sku_list[42])){
  383. $list['sywigother'] = $sku_list[42]['id'];//化纤头套其它
  384. }
  385. }
  386. if($cate == 130 || $cate == 133 || $cate == 1702)
  387. {
  388. if(isset($sku_list[38])){
  389. $list['items'] = $sku_list[38]['id'];//单包片数
  390. }
  391. if(isset($sku_list[7])){
  392. $list['weight'] = $sku_list[7]['id'];//重 量
  393. }
  394. }
  395. if($cate == 130){
  396. $list['jfother'] = $sku_list[52]['id'];
  397. }
  398. if($cate == 1702)
  399. {
  400. if(isset($sku_list[48])){
  401. $list['syhairther'] = $sku_list[48]['id'];//化纤发其它
  402. }
  403. }
  404. $pm = $classid;
  405. $jm = $classid;
  406. $scsku = $classid;
  407. $title = '';$features = '';$cs = array();
  408. $bmpx = array(13=>'',16=>'',18=>'',25=>'',26=>'',41=>'');
  409. foreach($list as $k=>$v)
  410. {
  411. if(isset($typeclassid[$v]) && isset($bmpx[$typeclassid[$v]['classid']]))
  412. {
  413. if($typeclassid[$v]['bm'] != '')
  414. {
  415. $bmpx[$typeclassid[$v]['classid']] = $typeclassid[$v]['bm'];
  416. }
  417. }
  418. if($v != 0)
  419. {
  420. if($k != 'size')
  421. {
  422. $title .= $typeclassid[$v]['title']." ";
  423. }
  424. $features .=$v.'-';
  425. if($k == 'hairtype'){
  426. if(!in_array($v,[163,164,165,166])){
  427. $scsku[$typeclassid[$v]['classid']] = empty($typeclassid[$v]['bqsku'])?"":$typeclassid[$v]['bqsku'];
  428. }
  429. }else{
  430. $scsku[$typeclassid[$v]['classid']] = empty($typeclassid[$v]['bqsku'])?"":$typeclassid[$v]['bqsku'];
  431. }
  432. if(isset($pm[$typeclassid[$v]['classid']]))
  433. {
  434. if($typeclassid[$v]['title'] == '9A')
  435. {
  436. $pm[$typeclassid[$v]['classid']] = '9A';
  437. }
  438. else if($typeclassid[$v]['title'] == '10A')
  439. {
  440. $pm[$typeclassid[$v]['classid']] = '10A';
  441. }
  442. else
  443. {
  444. $clzh = $typeclassid[$v]['zh'];
  445. if(stripos($typeclassid[$v]['zh'],'|') !== false)
  446. {
  447. $clzh = explode('|',rtrim($typeclassid[$v]['zh'],'|'));
  448. $clzh = $clzh[0];
  449. }
  450. if($k == 'hairtype'){
  451. if(!in_array($v,[163,164,165,166])){
  452. $pm[$typeclassid[$v]['classid']] = $clzh;
  453. }
  454. }else{
  455. $pm[$typeclassid[$v]['classid']] = $clzh;
  456. }
  457. }
  458. }
  459. if(isset($jm[$typeclassid[$v]['classid']]))
  460. {
  461. if($typeclassid[$v]['jm'])
  462. {
  463. if($k == 'hairtype'){
  464. if(!in_array($v,[163,164,165,166])){
  465. $jm[$typeclassid[$v]['classid']] = $typeclassid[$v]['jm'];
  466. }
  467. }else{
  468. $jm[$typeclassid[$v]['classid']] = $typeclassid[$v]['jm'];
  469. }
  470. }
  471. }
  472. }
  473. }
  474. $jm = array_filter($jm);//去除空值
  475. $jm = implode("-",$jm);
  476. $scsku = implode("-", $scsku);
  477. $scsku = str_replace('- ', '-', trim($scsku, '-'));
  478. $scsku = str_replace(array('--------', '-------', '------', '-----', '----', '---', '--'), '-', $scsku);
  479. $pm = array_filter($pm);//去除空值
  480. $pm = implode(" ",$pm);
  481. $pm = preg_replace("/\r\n|\r|\n/",'',trim($pm,' '));
  482. if($list['size'])
  483. {
  484. $typeclass = $this->typeclass->read($list['size']);
  485. $title .= $typeclass['title'];
  486. }
  487. $title = trim($title,' ');
  488. $post['num'] = $this->input->post('num',true);
  489. $ztime = $this->input->post('ztime',true);
  490. $post['ztime'] = strtotime($ztime);
  491. $post['bm'] = '03'.implode("",$bmpx);
  492. $post['jm'] = $jm;
  493. $post['sku'] = $scsku;
  494. $post['pm'] = $pm;
  495. $post['title'] = $title;
  496. $post['features'] = '-'.$features;
  497. $post['number'] = date('YmdHis',time()).rand(100,999);
  498. if(!$post['num'])
  499. {
  500. $post['number'] = date("YmdHis").rand(100,999);
  501. }
  502. $time = time();
  503. $post['time'] = $time;//操作时间
  504. $post['printnum'] = $time;
  505. $post['type'] = 0;
  506. return $this->logic_tools->ret_arr(1,"ok",$post);
  507. }
  508. //获取erp转化u9需要classid和typeclassid
  509. public function getClass(){
  510. $this->load->driver('cache');
  511. $cache_key = "get_erpclass_20261021";
  512. $cached = $this->cache->get($cache_key);
  513. if ($cached !== FALSE) {
  514. return json_decode($cached,true);
  515. }
  516. $classid = $this->classid->sku();
  517. $json_encode_str = json_encode($classid);
  518. $this->cache->save($cache_key, $json_encode_str, 3600); // 缓存1小时
  519. return $classid;
  520. }
  521. public function getTypeClass(){
  522. $this->load->driver('cache');
  523. $cache_key = "get_erptypeclass_20261021";
  524. $cached = $this->cache->get($cache_key);
  525. if ($cached !== FALSE) {
  526. return json_decode($cached,true);
  527. }
  528. $typeclass = [];
  529. $tcall = $this->typeclass->find_all();
  530. foreach ($tcall as $v)
  531. {
  532. //$tcjm[$v['id']] = array($v['jm'],$v['classid']);
  533. $typeclass[$v['id']] = array('id'=>$v['id'],'zh'=>$v['zh'],'classid'=>$v['classid'],'bm'=>$v['bm'],'title'=>$v['title'],'jm'=>$v['jm']);
  534. }
  535. $json_encode_str = json_encode($typeclass);
  536. $this->cache->save($cache_key, $json_encode_str, 3600); // 缓存1小时
  537. return $typeclass;
  538. }
  539. //只针对创建u9料号 不牵扯到erp的sku组合
  540. public function getU9Lp(){
  541. }
  542. //判断长度 需要插到第几位
  543. public function checkLengthLocal($value){
  544. if(strpos($value,'-2090-') !== false){
  545. //网红
  546. return 3;
  547. }
  548. if(strpos($value,'-2469-') !== false){
  549. //本当
  550. return 3;
  551. }
  552. if(strpos($value,'-1620-') !== false){
  553. //清仓
  554. return 3;
  555. }
  556. if(strpos($value,'-2480-') !== false){
  557. //T2
  558. return 3;
  559. }
  560. if(strpos($value,'-2526-') !== false){
  561. //AMZ
  562. return 3;
  563. }
  564. if(strpos($value,'-2964-') !== false){
  565. //越南发
  566. return 3;
  567. }
  568. return 2;
  569. }
  570. //转化fpdata的信息
  571. public function transferFpdata($fpdata_str){
  572. $ret_arr = [];
  573. $fpdata = explode(';',rtrim($fpdata_str,';'));
  574. foreach ($fpdata as $k=>$v)
  575. {
  576. $ret_arr[] = $this->getGoodFeatures($v);
  577. }
  578. return $ret_arr;
  579. }
  580. public function getGoodFeatures($str){
  581. $tmp_arr = explode('|',trim($str,'|'));
  582. if(strpos($tmp_arr[0],',') !== false){
  583. $tmp_arr_one = explode(',',trim($tmp_arr[0],','));
  584. $tmp_arr_two = explode('-',trim($tmp_arr_one[1],'-'));
  585. $len_local = $this->checkLengthLocal($tmp_arr[0]);
  586. $f_arr = [];
  587. foreach($tmp_arr_two as $kk=>$vv){
  588. if($kk == 1){
  589. if($len_local == 3){
  590. $f_arr[] = $vv;
  591. }else{
  592. $f_arr[] = $vv.'-'.$tmp_arr_one[0];
  593. }
  594. }else if($kk == 2){
  595. if($len_local == 3){
  596. $f_arr[] = $vv.'-'.$tmp_arr_one[0];
  597. }else{
  598. $f_arr[] = $vv;
  599. }
  600. }else{
  601. $f_arr[] = $vv;
  602. }
  603. }
  604. $tmp_arr[0] = "-".implode('-',$f_arr)."-";
  605. }
  606. return $tmp_arr;
  607. }
  608. public function getGoodFeatureAlone($str){
  609. $str = str_replace(array('-163-','-164-','-165-','-166-'),'-',$str);
  610. if(strpos($str,',') !== false){
  611. $tmp_arr_one = explode(',',trim($str,','));
  612. $tmp_arr_two = explode('-',trim($tmp_arr_one[1],'-'));
  613. $len_local = $this->checkLengthLocal($str);
  614. $f_arr = [];
  615. foreach($tmp_arr_two as $kk=>$vv){
  616. if($kk == 1){
  617. if($len_local == 3){
  618. $f_arr[] = $vv;
  619. }else{
  620. $f_arr[] = $vv.'-'.$tmp_arr_one[0];
  621. }
  622. }else if($kk == 2){
  623. if($len_local == 3){
  624. $f_arr[] = $vv.'-'.$tmp_arr_one[0];
  625. }else{
  626. $f_arr[] = $vv;
  627. }
  628. }else{
  629. $f_arr[] = $vv;
  630. }
  631. }
  632. return "-".implode('-',$f_arr)."-";
  633. }else{
  634. return $str;
  635. }
  636. }
  637. //通过U9料号 获取ERP的sku
  638. public function getErpSkuByU9Lp($lp){
  639. $u9_list = $this->typeclass->find_all(" classid != 36 AND jm IS NOT NULL AND jm != '' ");
  640. $token = $this->settingtest->get_yytoken_130();
  641. $r = $this->apiyyv1->cxLpByJm($lp,$token);
  642. if(empty($r['Data'])){
  643. return [
  644. "code"=>-1,
  645. "msg"=>"U9查询不到此料号-1",
  646. "data"=>""
  647. ];
  648. }
  649. if(empty($r['Data'][0])){
  650. return [
  651. "code"=>-1,
  652. "msg"=>"U9查询不到此料号-2",
  653. "data"=>""
  654. ];
  655. }
  656. if(empty($r['Data'][0]['m_stockCategory'])){
  657. return [
  658. "code"=>-1,
  659. "msg"=>"U9查询不到此料号-3",
  660. "data"=>""
  661. ];
  662. }
  663. if(empty($r['Data'][0]['m_stockCategory']['m_code'])){
  664. return [
  665. "code"=>-1,
  666. "msg"=>"U9查询不到此料号-4",
  667. "data"=>""
  668. ];
  669. }
  670. $cate_code = $r['Data'][0]['m_stockCategory']['m_code'];
  671. $r = $this->transferU9Cate($cate_code);
  672. if($r['code'] == -1){
  673. return $r;
  674. }
  675. $fianl_list = [];
  676. foreach($u9_list as $k=>$v){
  677. $tmp_jm = strtolower($v['jm']);
  678. $fianl_list[$tmp_jm] = $v;
  679. }
  680. $lp = strtolower($lp);
  681. $lp_arr = explode('-',trim($lp,'-'));
  682. $ff_arr = [];
  683. $ff_arr[] = $this->typeclass->read($r["cate"]);
  684. foreach($lp_arr as $k=>$v){
  685. if(isset($fianl_list[$v])){
  686. $ff_arr[] = $fianl_list[$v];
  687. }
  688. }
  689. $tmp_arr = array_column($ff_arr,'id');
  690. return [
  691. "code"=>1,
  692. "msg"=>"success",
  693. "data"=>"-".implode('-',$tmp_arr)."-"
  694. ];
  695. }
  696. public function transferU9Cate($cate_code){
  697. $one_str = substr($cate_code,0,2);
  698. $two_str = substr($cate_code,2,2);
  699. $three_str = substr($cate_code,4,2);
  700. $four_str = substr($cate_code,6,2);
  701. if($one_str != '03'){
  702. return [
  703. "code"=>-1,
  704. "msg"=>"此方法只支持u9成品分类"
  705. ];
  706. }
  707. if(!in_array($two_str,['01','02','03','04','05','06','07','08','09','10','11','12'])){
  708. return [
  709. "code"=>-1,
  710. "msg"=>$cate_code."的分类不在配置中,请联系技术"
  711. ];
  712. }
  713. if($three_str == '01'){
  714. //真人发
  715. if($four_str == '01'){
  716. //发条
  717. return [
  718. "code"=>1,
  719. "msg"=>"success",
  720. "cate"=>"126",
  721. 'title'=>"发条"
  722. ];
  723. }elseif($four_str == '02'){
  724. //发块
  725. return [
  726. "code"=>1,
  727. "msg"=>"success",
  728. "cate"=>"127",
  729. "title"=>"发块"
  730. ];
  731. }elseif($four_str == '03'){
  732. //头套
  733. return [
  734. "code"=>1,
  735. "msg"=>"success",
  736. "cate"=>"128",
  737. "title"=>"头套"
  738. ];
  739. }elseif($four_str == '04'){
  740. //接发
  741. return [
  742. "code"=>1,
  743. "msg"=>"success",
  744. "cate"=>"130",
  745. "title"=>"接发"
  746. ];
  747. }else{
  748. //配件
  749. return [
  750. "code"=>1,
  751. "msg"=>"success",
  752. "cate"=>"133",
  753. "title"=>"配件"
  754. ];
  755. }
  756. }else if($three_str == '02'){
  757. //化纤发
  758. if($four_str == '01'){
  759. return [
  760. "code"=>1,
  761. "msg"=>"success",
  762. 'cate'=>'1297',
  763. "title"=>"化纤头套"
  764. ];
  765. }else{
  766. return [
  767. "code"=>1,
  768. "msg"=>"success",
  769. 'cate'=>'1702',
  770. "title"=>"化纤其它"
  771. ];
  772. }
  773. }
  774. return [
  775. "code"=>-1,
  776. "msg"=>"数据异常,联系技术"
  777. ];
  778. }
  779. }