Model_logic_u9tools.php 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483
  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_logic_ding","logic_ding");
  12. }
  13. //获取u9的料号
  14. public function getU9bm(array $list,$sku_name){
  15. if(empty($list)){
  16. return [];
  17. }
  18. $tcjm = []; $typeclass = [];
  19. $classid = $this->classid->sku();
  20. $tcall = $this->typeclass->find_all();
  21. foreach ($tcall as $v)
  22. {
  23. //$tcjm[$v['id']] = array($v['jm'],$v['classid']);
  24. $typeclass[$v['id']] = array('zh'=>$v['zh'],'classid'=>$v['classid'],'bm'=>$v['bm'],'title'=>$v['title'],'jm'=>$v['jm']);
  25. }
  26. foreach($list as $k=>$v){
  27. $r = $this->getOneU9bm($v[$sku_name],$classid,$typeclass);
  28. $list[$k]['jm'] = $r['jm'];
  29. $list[$k]['zh'] = $r['zh'];
  30. $list[$k]['bm'] = $r['bm'];
  31. }
  32. return $list;
  33. }
  34. public function getOneU9bm($sku,$classid,$typeclass){
  35. $bm = '03';
  36. $ret_arr = [
  37. 'jm'=>"",//料号,SKU
  38. 'zh'=>"",//产品名称
  39. 'bm'=>"",//主分类下的编码
  40. ];
  41. if(stripos($sku,'-131-') !== false)
  42. {
  43. return $ret_arr;
  44. }
  45. $pm = $classid;
  46. $jm = $classid;
  47. $ch_bmpx = $bmpx = array(13=>'',16=>'',18=>'',25=>'',26=>'',41=>'');
  48. $features = str_replace(array('-163-','-164-','-165-','-166-'),'-',$sku);
  49. $features = explode("-",trim($sku,'-'));
  50. //先执行一边检测是否含有等级 如果没写等级 就默认为9A 这样可以避免传输u9报错
  51. foreach($features as $k=>$v){
  52. if(isset($typeclass[$v]) && isset($bmpx[$typeclass[$v]['classid']]))
  53. {
  54. if($typeclass[$v]['bm'] != '')
  55. {
  56. $ch_bmpx[$typeclass[$v]['classid']] = $typeclass[$v]['bm'];
  57. }
  58. }
  59. }
  60. if(empty($ch_bmpx[13])){
  61. //让原来的规格码 添加上9A这个规格
  62. $features[] = 80;
  63. }
  64. foreach($features as $k=>$v)
  65. {
  66. if(isset($typeclass[$v]) && isset($bmpx[$typeclass[$v]['classid']]))
  67. {
  68. if($typeclass[$v]['bm'] != '')
  69. {
  70. $bmpx[$typeclass[$v]['classid']] = $typeclass[$v]['bm'];
  71. }
  72. }
  73. if($v != 0)
  74. {
  75. // if(!isset($typeclass[$v])){
  76. // $this->logic_ding->sendToDing("u9工具同步监听异常数据".json_encode($sku));
  77. // $this->logic_ding->sendToDing("u9工具同步监听异常数据".json_encode($typeclass));
  78. // $this->logic_ding->sendToDing("u9工具同步监听异常数据".json_encode($classid));
  79. // $this->logic_ding->sendToDing("u9工具同步监听异常数据".json_encode($v));
  80. // }
  81. if(isset($pm[$typeclass[$v]['classid']]))
  82. {
  83. if($typeclass[$v]['title'] == '9A')
  84. {
  85. $pm[$typeclass[$v]['classid']] = '9A';
  86. }
  87. else if($typeclass[$v]['title'] == '10A')
  88. {
  89. $pm[$typeclass[$v]['classid']] = '10A';
  90. }
  91. else
  92. {
  93. $clzh = $typeclass[$v]['zh'];
  94. if(stripos($typeclass[$v]['zh'],'|') !== false)
  95. {
  96. $clzh = explode('|',rtrim($typeclass[$v]['zh'],'|'));
  97. $clzh = $clzh[0];
  98. }
  99. $pm[$typeclass[$v]['classid']] = $clzh;
  100. }
  101. }
  102. if(isset($jm[$typeclass[$v]['classid']]))
  103. {
  104. if($typeclass[$v]['jm'])
  105. {
  106. $jm[$typeclass[$v]['classid']] = $typeclass[$v]['jm'];
  107. }
  108. }
  109. }
  110. }
  111. $jm = array_filter($jm);//去除空值
  112. $jm = implode("-",$jm);
  113. $pm = array_filter($pm);//去除空值
  114. $zh = implode(" ",$pm);
  115. $zh = preg_replace("/\r\n|\r|\n/",'',trim($zh,' '));
  116. return [
  117. 'jm'=>$jm,//料号,SKU
  118. 'zh'=>$zh,//产品名称
  119. 'bm'=>$bm.implode("",$bmpx),//主分类下的编码
  120. ];
  121. }
  122. public function getOneU9bmHasGift($sku,$classid,$typeclass){
  123. $bm = '03';
  124. $pm = $classid;
  125. $jm = $classid;
  126. $bmpx = array(13=>'',16=>'',18=>'',25=>'',26=>'',41=>'');
  127. $features = str_replace(array('-163-','-164-','-165-','-166-'),'-',$sku);
  128. $features = explode("-",trim($sku,'-'));
  129. foreach($features as $k=>$v)
  130. {
  131. if(isset($typeclass[$v])){
  132. if(isset($typeclass[$v]) && isset($bmpx[$typeclass[$v]['classid']]))
  133. {
  134. if($typeclass[$v]['bm'] != '')
  135. {
  136. $bmpx[$typeclass[$v]['classid']] = $typeclass[$v]['bm'];
  137. }
  138. }
  139. if($v != 0)
  140. {
  141. if(isset($pm[$typeclass[$v]['classid']]))
  142. {
  143. if($typeclass[$v]['title'] == '9A')
  144. {
  145. $pm[$typeclass[$v]['classid']] = '9A';
  146. }
  147. else if($typeclass[$v]['title'] == '10A')
  148. {
  149. $pm[$typeclass[$v]['classid']] = '10A';
  150. }
  151. else
  152. {
  153. $clzh = $typeclass[$v]['zh'];
  154. if(stripos($typeclass[$v]['zh'],'|') !== false)
  155. {
  156. $clzh = explode('|',rtrim($typeclass[$v]['zh'],'|'));
  157. $clzh = $clzh[0];
  158. }
  159. $pm[$typeclass[$v]['classid']] = $clzh;
  160. }
  161. }
  162. if(isset($jm[$typeclass[$v]['classid']]))
  163. {
  164. if($typeclass[$v]['jm'])
  165. {
  166. $jm[$typeclass[$v]['classid']] = $typeclass[$v]['jm'];
  167. }
  168. }
  169. }
  170. }
  171. }
  172. $jm = array_filter($jm);//去除空值
  173. $jm = implode("-",$jm);
  174. $pm = array_filter($pm);//去除空值
  175. $zh = implode(" ",$pm);
  176. $zh = preg_replace("/\r\n|\r|\n/",'',trim($zh,' '));
  177. return [
  178. 'jm'=>$jm,//料号,SKU
  179. 'zh'=>$zh,//产品名称
  180. 'bm'=>$bm.implode("",$bmpx),//主分类下的编码
  181. ];
  182. }
  183. /**
  184. * 通过erp的组合出来的sku反推出erp的sku的id组合和u9的编码以及中文名和料品 这种仅限于满足老代码排序的那种 要是不满足 再重新开一个方法吧
  185. */
  186. public function getGoodInfoByErpSku($category,$sku,$typeclass,$typeclassid,$classid){
  187. $sku_arr = explode("-",trim($sku,"-"));
  188. $sku_list = [];
  189. $flag = false;
  190. $err_msg = "";
  191. foreach($sku_arr as $v){
  192. if(!isset($typeclass[$v])){
  193. $err_msg="u9组合的[".$v."]不存在,请核对";
  194. $flag = true;
  195. }else{
  196. $sku_list[$typeclass[$v]['classid']] = $typeclass[$v];
  197. }
  198. }
  199. if($flag){
  200. return $this->logic_tools->ret_arr(-1,$err_msg."异常行的料号为【".$sku."】");
  201. }
  202. if($category == "发条"){
  203. $cate = 126;
  204. }elseif($category == "发块前头"){
  205. $cate = 127;
  206. }elseif($category == "头套"){
  207. $cate = 128;
  208. }elseif($category == "接发"){
  209. $cate = 130;
  210. }elseif($category == "礼物"){
  211. $cate = 131;
  212. }
  213. elseif($category == "配件"){
  214. $cate = 133;
  215. }
  216. elseif($category == "化纤头套"){
  217. $cate = 1297;
  218. }
  219. elseif($category == "化纤其它"){
  220. $cate = 1702;
  221. }
  222. else{
  223. return $this->logic_tools->ret_arr(-1,"分类异常请手动输入"."异常行的料号为【".$sku."】");
  224. }
  225. $list['category'] = $cate; //类目
  226. if(isset($sku_list[22])){
  227. $list['hairtype'] = $sku_list[22]['id']; //真人发类型
  228. }
  229. if(isset($sku_list[13])){
  230. $list['grade'] = $sku_list[13]['id'];//等级
  231. }
  232. if(isset($sku_list[14])){
  233. $list['size'] = $sku_list[14]['id'];//长度
  234. }
  235. if(isset($sku_list[43])){
  236. $list['hairnumber'] = $sku_list[43]['id'];//人发头套编号
  237. }
  238. if(isset($sku_list[33])){
  239. $list['extension'] = $sku_list[33]['id'];//Extension类型
  240. }
  241. if( $cate == 1297)
  242. {
  243. if(isset($sku_list[40])){
  244. $list['sywignumber'] = $sku_list[40]['id'];//化纤头套编号
  245. }
  246. }
  247. if( $cate == 1702)
  248. {
  249. if(isset($sku_list[47])){
  250. $list['syhairnumber'] = $sku_list[47]['id'];//化纤发编号
  251. }
  252. if(isset($sku_list[46])){
  253. $list['syother'] = $sku_list[46]['id'];//化纤其它分类
  254. }
  255. }
  256. if($cate == 133)
  257. {
  258. if(isset($sku_list[35])){
  259. $list['fittype'] = $sku_list[35]['id'];//配件类型
  260. }
  261. if(isset($sku_list[45])){
  262. $list['acother'] = $sku_list[45]['id'];//配件其他
  263. }
  264. }
  265. if(isset($sku_list[8])){
  266. $list['color'] = $sku_list[8]['id'];//头发颜色
  267. }
  268. if(isset($sku_list[15])){
  269. $list['lowe'] = $sku_list[15]['id'];//曲 度
  270. }
  271. if($cate == 127)
  272. {
  273. if(isset($sku_list[27])){
  274. $list['type'] = $sku_list[27]['id']; //类 型
  275. }
  276. if(isset($sku_list[12])){
  277. $list['headroad'] = $sku_list[12]['id']; //头路设计
  278. }
  279. if(isset($sku_list[10])){
  280. $list['density'] = $sku_list[10]['id']; //密 度
  281. }
  282. if($list['type'] == 195 || $list['type'] == 197 || $list['type'] == 199)
  283. {
  284. //蕾丝尺寸
  285. if(isset($sku_list[25])){
  286. $list['lacesize'] = $sku_list[25]['id'];
  287. }
  288. if(isset($sku_list[26])){
  289. $list['lacesize'] = $sku_list[26]['id'];
  290. }
  291. }
  292. if(isset($sku_list[9])){
  293. $list['lacecolor'] = $sku_list[9]['id'];//蕾丝颜色
  294. }
  295. if(isset($sku_list[44])){
  296. $list['lacetypes'] = $sku_list[44]['id'];//蕾丝类型
  297. }
  298. }
  299. if($cate == 128)
  300. {
  301. if(isset($sku_list[18])){
  302. $list['lacetype'] = $sku_list[18]['id'];//头套种类
  303. }
  304. if(isset($sku_list[6])){
  305. $list['haircap'] = $sku_list[6]['id'];//发帽大小
  306. }
  307. if(isset($sku_list[10])){
  308. $list['density'] = $sku_list[10]['id'];//密 度
  309. }
  310. if(isset($sku_list[9])){
  311. $list['lacecolor'] = $sku_list[9]['id'];//蕾丝颜色
  312. }
  313. if(isset($sku_list[44])){
  314. $list['lacetypes'] = $sku_list[44]['id'];//蕾丝类型
  315. }
  316. if(isset($sku_list[39])){
  317. $list['wigother'] = $sku_list[39]['id'];//头套其它
  318. }
  319. if(isset($sku_list[50])){
  320. $list['wigother1'] = $sku_list[50]['id'];//头套其它
  321. }
  322. if(isset($sku_list[51])){
  323. $list['wigother2'] = $sku_list[51]['id'];//头套其它2
  324. }
  325. }
  326. //现在没有129这个分类了
  327. // if($category == 129)
  328. // {
  329. // if(isset($sku_list[50])){
  330. // $list['wide'] = $sku_list[50]['id'];
  331. // }
  332. // }
  333. if($cate == 131)
  334. {
  335. if(isset($sku_list[34])){
  336. $list['gifttype'] = $sku_list[34]['id'];//Gift类型
  337. }
  338. if(isset($sku_list[49])){
  339. $list['giftother'] = $sku_list[49]['id'];//Gift其它
  340. }
  341. }
  342. //没有134这一项了
  343. // if($category == 134)
  344. // {
  345. // if(isset($sku_list[49])){
  346. // $list['giftother'] = $sku_list[49]['id'];
  347. // }
  348. // $list['pieceweight'] = $this->input->post('pieceweight',true);
  349. // }
  350. if($cate == 1297)
  351. {
  352. if(isset($sku_list[41])){
  353. $list['synthetictype'] = $sku_list[41]['id'];//头套类型
  354. }
  355. if(isset($sku_list[42])){
  356. $list['sywigother'] = $sku_list[42]['id'];//化纤头套其它
  357. }
  358. }
  359. if($cate == 130 || $cate == 133 || $cate == 1702)
  360. {
  361. if(isset($sku_list[38])){
  362. $list['items'] = $sku_list[38]['id'];//单包片数
  363. }
  364. if(isset($sku_list[7])){
  365. $list['weight'] = $sku_list[7]['id'];//重 量
  366. }
  367. }
  368. if($cate == 1702)
  369. {
  370. if(isset($sku_list[48])){
  371. $list['syhairther'] = $sku_list[48]['id'];//化纤发其它
  372. }
  373. }
  374. $pm = $classid;
  375. $jm = $classid;
  376. $sku = [];
  377. $title = '';$features = '';$cs = array();
  378. $bmpx = array(13=>'',16=>'',18=>'',25=>'',26=>'',41=>'');
  379. foreach($list as $k=>$v)
  380. {
  381. if(isset($typeclassid[$v]) && isset($bmpx[$typeclassid[$v]['classid']]))
  382. {
  383. if($typeclassid[$v]['bm'] != '')
  384. {
  385. $bmpx[$typeclassid[$v]['classid']] = $typeclassid[$v]['bm'];
  386. }
  387. }
  388. if($v != 0)
  389. {
  390. if($k != 'size')
  391. {
  392. $title .= $typeclassid[$v]['title']." ";
  393. }
  394. $features .=$v.'-';
  395. $sku[$typeclassid[$v]['classid']] = empty($typeclassid[$v]['bqsku'])?"":$typeclassid[$v]['bqsku'];
  396. if(isset($pm[$typeclassid[$v]['classid']]))
  397. {
  398. if($typeclassid[$v]['title'] == '9A')
  399. {
  400. $pm[$typeclassid[$v]['classid']] = '9A';
  401. }
  402. else if($typeclassid[$v]['title'] == '10A')
  403. {
  404. $pm[$typeclassid[$v]['classid']] = '10A';
  405. }
  406. else
  407. {
  408. $clzh = $typeclassid[$v]['zh'];
  409. if(stripos($typeclassid[$v]['zh'],'|') !== false)
  410. {
  411. $clzh = explode('|',rtrim($typeclassid[$v]['zh'],'|'));
  412. $clzh = $clzh[0];
  413. }
  414. $pm[$typeclassid[$v]['classid']] = $clzh;
  415. }
  416. }
  417. if(isset($jm[$typeclassid[$v]['classid']]))
  418. {
  419. if($typeclassid[$v]['jm'])
  420. {
  421. $jm[$typeclassid[$v]['classid']] = $typeclassid[$v]['jm'];
  422. }
  423. }
  424. }
  425. }
  426. $jm = array_filter($jm);//去除空值
  427. $jm = implode("-",$jm);
  428. $sku = array_filter($sku);//去除空值
  429. $sku = implode("-",$sku);
  430. $pm = array_filter($pm);//去除空值
  431. $pm = implode(" ",$pm);
  432. $pm = preg_replace("/\r\n|\r|\n/",'',trim($pm,' '));
  433. if($list['size'])
  434. {
  435. $typeclass = $this->typeclass->read($list['size']);
  436. $title .= $typeclass['title'];
  437. }
  438. $title = trim($title,' ');
  439. $post['num'] = $this->input->post('num',true);
  440. $ztime = $this->input->post('ztime',true);
  441. $post['ztime'] = strtotime($ztime);
  442. $post['bm'] = '03'.implode("",$bmpx);
  443. $post['jm'] = $jm;
  444. $post['sku'] = $sku;
  445. $post['pm'] = $pm;
  446. $post['title'] = $title;
  447. $post['features'] = '-'.$features;
  448. $post['number'] = date('YmdHis',time()).rand(100,999);
  449. if(!$post['num'])
  450. {
  451. $post['number'] = date("YmdHis").rand(100,999);
  452. }
  453. $time = time();
  454. $post['time'] = $time;//操作时间
  455. $post['printnum'] = $time;
  456. $post['type'] = 0;
  457. return $this->logic_tools->ret_arr(1,"ok",$post);
  458. }
  459. }