Model_logic_zhlp.php 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453
  1. <?php
  2. /**
  3. * 此类就是为了针对erp的料品组合,以后都用这个类进行组合排序 将来后边需要转化erp的sku相关信息的时候 都调用这个类 到时间方便统一管理
  4. * 前边已有的代码都不动了 稳定压倒一切!!!
  5. * 目前erp有两种排序的方案 1 按照名称排序 2 按照规格的classid
  6. * 此类仅用于排序 后续的u9编写等 请到logic_u9tools中找对应的方法
  7. * 其实如果真要搞成erp的那种插入长度排序的话 就记住 长度跟在等级后边
  8. */
  9. class Model_logic_zhlp extends Lin_Model {
  10. function __construct(){
  11. parent::__construct();
  12. }
  13. public function sortByName($arr){
  14. return $this->doAction(1,$arr);
  15. }
  16. public function sortByClass($arr){
  17. return $this->doAction(2,$arr);
  18. }
  19. //只有id 然后转化为字段名 + 值
  20. public function sortByColume($arr){
  21. return $this->doAction(3,$arr);
  22. }
  23. //根据已有的规格id 获取到对应主类id 转化为需要的规格序列
  24. public function transferSku($arr){
  25. $sku_list = $this->db->select('id,classid,classtitle,title')->from('typeclass')->where_in('id ',$arr)->get()->result_array();
  26. $ret_final_list = [];
  27. foreach ($sku_list as $k => $v){
  28. $ret_final_list[$v['classid']] = $v['id'];
  29. }
  30. return $ret_final_list;
  31. }
  32. //几种处理 排序的各种要求
  33. private function doAction($type,$arr){
  34. //1 除去真人发类型中的
  35. if($type == 1){
  36. if(isset($arr['hairtype']) && in_array($arr['hairtype'],[163,164,165,166])){
  37. $arr['hairtype'] = 0;
  38. }
  39. }elseif($type == 3){
  40. if(isset($arr[22]) && in_array($arr[22],[163,164,165,166])){
  41. $arr[22] = 0;
  42. }
  43. }else{
  44. if(isset($arr[22]) && in_array($arr[22],[163,164,165,166])){
  45. $arr[22] = 0;
  46. }
  47. }
  48. $ret_list = $this->chooseCate($type,$arr);
  49. if(empty($ret_list)){
  50. return [
  51. 'code'=>-1,
  52. "msg"=>'没有找到对应的料品分类,请通知技术设置',
  53. ];
  54. }
  55. $final_list = [];
  56. foreach ($ret_list as $k => $v){
  57. if(empty($v)){
  58. continue;
  59. }
  60. $final_list[$k] = $v;
  61. }
  62. return [
  63. 'code'=>1,
  64. "msg"=>'ok',
  65. 'data'=>$final_list
  66. ];
  67. }
  68. private function chooseCate($type,$arr){
  69. if($type == 1){
  70. $cate = $arr['category'];
  71. }elseif($type == 3){
  72. $cate = $arr[16];
  73. }else{
  74. $cate = $arr[16];
  75. }
  76. //发条
  77. if($cate == 126){
  78. return $this->fatiao($type,$arr);
  79. }
  80. //发块前头
  81. if($cate == 127){
  82. return $this->fakuai($type,$arr);
  83. }
  84. //头套
  85. if($cate == 128){
  86. return $this->toutao($type,$arr);
  87. }
  88. //Hair Extension - 接发
  89. if($cate == 130){
  90. return $this->jiefa($type,$arr);
  91. }
  92. //Gift - 礼物
  93. if($cate == 131){
  94. return $this->liwu($type,$arr);
  95. }
  96. //Accessories - 配件
  97. if($cate == 133){
  98. return $this->peijian($type,$arr);
  99. }
  100. //Synthetic Wig - 化纤头套
  101. if($cate == 1297){
  102. return $this->huaqiantoutao($type,$arr);
  103. }
  104. //Synthetic Hair - 化纤其它
  105. if($cate == 1702){
  106. return $this->huaqianqita($type,$arr);
  107. }
  108. return [];
  109. }
  110. /*******************$type 1 代表名称 2 代表classid**************************/
  111. //发条
  112. private function fatiao($type,$arr){
  113. if($type == 1){
  114. return [
  115. "category"=>empty($arr['category'])?0:$arr['category'],
  116. "hairtype"=>empty($arr['hairtype'])?0:$arr['hairtype'],
  117. "grade"=>empty($arr['grade'])?0:$arr['grade'],
  118. "color"=>empty($arr['color'])?0:$arr['color'],
  119. "lowe"=>empty($arr['lowe'])?0:$arr['lowe'],
  120. "size"=>empty($arr['size'])?0:$arr['size'],
  121. ];
  122. }elseif($type == 3){
  123. return [
  124. "category"=>empty($arr[16])?0:$arr[16],//类目
  125. "hairtype"=>empty($arr[22])?0:$arr[22],//真人发类型
  126. "grade"=>empty($arr[13])?0:$arr[13],//等 级
  127. "color"=>empty($arr[8])?0:$arr[8],//头发颜色
  128. "lowe"=>empty($arr[15])?0:$arr[15],//曲 度
  129. "size"=>empty($arr[14])?0:$arr[14],//长 度
  130. ];
  131. }else{
  132. return [
  133. 16=>empty($arr[16])?0:$arr[16],//类目
  134. 22=>empty($arr[22])?0:$arr[22],//真人发类型
  135. 13=>empty($arr[13])?0:$arr[13],//等 级
  136. 8=>empty($arr[8])?0:$arr[8],//头发颜色
  137. 15=>empty($arr[15])?0:$arr[15],//曲 度
  138. 14=>empty($arr[14])?0:$arr[14],//长 度
  139. ];
  140. }
  141. }
  142. //发块
  143. private function fakuai($type,$arr){
  144. //类型27 如果是195 Lace Closure - 发块 则类似尺寸 需要对应25 如果是197 Lace Frontal - 蕾丝前头 需要对应26
  145. //都对应25 26 到时间过滤空
  146. if($type == 1){
  147. return [
  148. "category"=>empty($arr['category'])?0:$arr['category'],
  149. "hairtype"=>empty($arr['hairtype'])?0:$arr['hairtype'],
  150. "grade"=>empty($arr['grade'])?0:$arr['grade'],
  151. "color"=>empty($arr['color'])?0:$arr['color'],
  152. "lowe"=>empty($arr['lowe'])?0:$arr['lowe'],
  153. "type"=>empty($arr['type'])?0:$arr['type'],
  154. "headroad"=>empty($arr['headroad'])?0:$arr['headroad'],
  155. "density"=>empty($arr['density'])?0:$arr['density'],
  156. 'lacesize'=>empty($arr['lacesize'])?0:$arr['lacesize'],
  157. 'lacecolor'=>empty($arr['lacecolor'])?0:$arr['lacecolor'],
  158. "lacetypes"=>empty($arr['lacetypes'])?0:$arr['lacetypes'],
  159. "size"=>empty($arr['size'])?0:$arr['size'],
  160. ];
  161. }elseif($type == 3){
  162. $lacesize = 0;
  163. if(!empty($arr[25])){
  164. $lacesize = $arr[25];
  165. }
  166. if(!empty($arr[26])){
  167. $lacesize = $arr[26];
  168. }
  169. return [
  170. "category"=>empty($arr[16])?0:$arr[16],//类目
  171. "hairtype"=>empty($arr[22])?0:$arr[22],//真人发类型
  172. "grade"=>empty($arr[13])?0:$arr[13],//等 级
  173. "color"=>empty($arr[8])?0:$arr[8],//头发颜色
  174. "lowe"=>empty($arr[15])?0:$arr[15],//曲 度
  175. "type"=>empty($arr[27])?0:$arr[27],//类 型
  176. "headroad"=>empty($arr[12])?0:$arr[12],//头路设计
  177. "density"=>empty($arr[10])?0:$arr[10],//密 度
  178. //到时间会去重处理
  179. 'lacesize'=> $lacesize,
  180. 'lacecolor'=>empty($arr[9])?0:$arr[9],//蕾丝颜色
  181. "lacetypes"=>empty($arr[44])?0:$arr[44],//蕾丝类型
  182. "size"=>empty($arr[14])?0:$arr[14],//长 度
  183. ];
  184. }else{
  185. return [
  186. 16=>empty($arr[16])?0:$arr[16],//类目
  187. 22=>empty($arr[22])?0:$arr[22],//真人发类型
  188. 13=>empty($arr[13])?0:$arr[13],//等 级
  189. 8=>empty($arr[8])?0:$arr[8],//头发颜色
  190. 15=>empty($arr[15])?0:$arr[15],//曲 度
  191. 27=>empty($arr[27])?0:$arr[27],//类 型
  192. 12=>empty($arr[12])?0:$arr[12],//头路设计
  193. 10=>empty($arr[10])?0:$arr[10],//密 度
  194. //到时间会去重处理
  195. 25=>empty($arr[25])?0:$arr[25],//蕾丝尺寸
  196. 26=>empty($arr[26])?0:$arr[26],//蕾丝尺寸
  197. 9=>empty($arr[9])?0:$arr[9],//蕾丝颜色
  198. 44=>empty($arr[44])?0:$arr[44],//蕾丝类型
  199. 14=>empty($arr[14])?0:$arr[14],//长 度
  200. ];
  201. }
  202. }
  203. //头套
  204. private function toutao($type,$arr){
  205. if($type == 1){
  206. return [
  207. "category"=>empty($arr['category'])?0:$arr['category'],
  208. "hairtype"=>empty($arr['hairtype'])?0:$arr['hairtype'],
  209. "grade"=>empty($arr['grade'])?0:$arr['grade'],
  210. "hairnumber"=>empty($arr['hairnumber'])?0:$arr['hairnumber'],
  211. "color"=>empty($arr['color'])?0:$arr['color'],
  212. "lowe"=>empty($arr['lowe'])?0:$arr['lowe'],
  213. "lacetype"=>empty($arr['lacetype'])?0:$arr['lacetype'],
  214. "haircap"=>empty($arr['haircap'])?0:$arr['haircap'],
  215. "density"=>empty($arr['density'])?0:$arr['density'],
  216. "lacecolor"=>empty($arr['lacecolor'])?0:$arr['lacecolor'],
  217. "lacetypes"=>empty($arr['lacetypes'])?0:$arr['lacetypes'],
  218. "wigother"=>empty($arr['wigother'])?0:$arr['wigother'],
  219. "wigother1"=>empty($arr['wigother1'])?0:$arr['wigother1'],
  220. "wigother2"=>empty($arr['wigother2'])?0:$arr['wigother2'],
  221. "size"=>empty($arr['size'])?0:$arr['size'],
  222. ];
  223. }elseif($type == 3){
  224. return [
  225. "category"=>empty($arr[16])?0:$arr[16],//类目
  226. "hairtype"=>empty($arr[22])?0:$arr[22],//真人发类型
  227. "grade"=>empty($arr[13])?0:$arr[13],//等 级
  228. "hairnumber"=>empty($arr[43])?0:$arr[43],//人发头套编号
  229. "color"=>empty($arr[8])?0:$arr[8],//头发颜色
  230. "lowe"=>empty($arr[15])?0:$arr[15],//曲 度
  231. "lacetype"=>empty($arr[18])?0:$arr[18],//头套种类
  232. "haircap"=>empty($arr[6])?0:$arr[6],//发帽大小
  233. "density"=>empty($arr[10])?0:$arr[10],//密 度
  234. "lacecolor"=>empty($arr[9])?0:$arr[9],//蕾丝颜色
  235. "lacetypes"=>empty($arr[44])?0:$arr[44],//蕾丝类型
  236. "wigother"=>empty($arr[39])?0:$arr[39],//分缝及刘海
  237. "wigother1"=>empty($arr[50])?0:$arr[50],//头套其它1
  238. "wigother2"=>empty($arr[51])?0:$arr[51],//头套其它2
  239. "size"=>empty($arr[14])?0:$arr[14],//长 度
  240. ];
  241. }else{
  242. return [
  243. 16=>empty($arr[16])?0:$arr[16],//类目
  244. 22=>empty($arr[22])?0:$arr[22],//真人发类型
  245. 13=>empty($arr[13])?0:$arr[13],//等 级
  246. 43=>empty($arr[43])?0:$arr[43],//人发头套编号
  247. 8=>empty($arr[8])?0:$arr[8],//头发颜色
  248. 15=>empty($arr[15])?0:$arr[15],//曲 度
  249. 18=>empty($arr[18])?0:$arr[18],//头套种类
  250. 6=>empty($arr[6])?0:$arr[6],//发帽大小
  251. 10=>empty($arr[10])?0:$arr[10],//密 度
  252. 9=>empty($arr[9])?0:$arr[9],//蕾丝颜色
  253. 44=>empty($arr[44])?0:$arr[44],//蕾丝类型
  254. 39=>empty($arr[39])?0:$arr[39],//分缝及刘海
  255. 50=>empty($arr[50])?0:$arr[50],//头套其它1
  256. 51=>empty($arr[51])?0:$arr[51],//头套其它2
  257. 14=>empty($arr[14])?0:$arr[14],//长 度
  258. ];
  259. }
  260. }
  261. //接发
  262. private function jiefa($type,$arr){
  263. if($type == 1){
  264. return [
  265. "category"=>empty($arr['category'])?0:$arr['category'],
  266. "hairtype"=>empty($arr['hairtype'])?0:$arr['hairtype'],
  267. "grade"=>empty($arr['grade'])?0:$arr['grade'],
  268. "extension"=>empty($arr['extension'])?0:$arr['extension'],
  269. "color"=>empty($arr['color'])?0:$arr['color'],
  270. "lowe"=>empty($arr['lowe'])?0:$arr['lowe'],
  271. "items"=>empty($arr['items'])?0:$arr['items'],
  272. "weight"=>empty($arr['weight'])?0:$arr['weight'],
  273. "size"=>empty($arr['size'])?0:$arr['size'],
  274. ];
  275. }elseif($type == 3){
  276. return [
  277. "category"=>empty($arr[16])?0:$arr[16],//类目
  278. "hairtype"=>empty($arr[22])?0:$arr[22],//真人发类型
  279. "grade"=>empty($arr[13])?0:$arr[13],//等 级
  280. "extension"=>empty($arr[33])?0:$arr[33],//Extension类型
  281. "color"=>empty($arr[8])?0:$arr[8],//头发颜色
  282. "lowe"=>empty($arr[15])?0:$arr[15],//曲 度
  283. "items"=>empty($arr[38])?0:$arr[38],//单片片数
  284. "weight"=>empty($arr[7])?0:$arr[7],//重量
  285. "size"=>empty($arr[14])?0:$arr[14],//长 度
  286. ];
  287. }else{
  288. return [
  289. 16=>empty($arr[16])?0:$arr[16],//类目
  290. 22=>empty($arr[22])?0:$arr[22],//真人发类型
  291. 13=>empty($arr[13])?0:$arr[13],//等 级
  292. 33=>empty($arr[33])?0:$arr[33],//Extension类型
  293. 8=>empty($arr[8])?0:$arr[8],//头发颜色
  294. 15=>empty($arr[15])?0:$arr[15],//曲 度
  295. 38=>empty($arr[38])?0:$arr[38],//单片片数
  296. 7=>empty($arr[7])?0:$arr[7],//重量
  297. 14=>empty($arr[14])?0:$arr[14],//长 度
  298. ];
  299. }
  300. }
  301. //礼物
  302. private function liwu($type,$arr){
  303. if($type == 1){
  304. return [
  305. "category"=>empty($arr['category'])?0:$arr['category'],
  306. "gifttype"=>empty($arr['gifttype'])?0:$arr['gifttype'],
  307. "giftother"=>empty($arr['giftother'])?0:$arr['giftother'],
  308. ];
  309. }elseif($type == 3){
  310. return [
  311. "category"=>empty($arr[16])?0:$arr[16],//类目
  312. "gifttype"=>empty($arr[34])?0:$arr[34],//礼物类型
  313. "giftother"=>empty($arr[49])?0:$arr[49],//礼物其它
  314. ];
  315. }else{
  316. return [
  317. 16=>empty($arr[16])?0:$arr[16],//类目
  318. 34=>empty($arr[34])?0:$arr[34],//礼物类型
  319. 49=>empty($arr[49])?0:$arr[49],//礼物其它
  320. ];
  321. }
  322. }
  323. //配件
  324. private function peijian($type,$arr){
  325. if($type == 1){
  326. return [
  327. "category"=>empty($arr['category'])?0:$arr['category'],
  328. "grade"=>empty($arr['grade'])?0:$arr['grade'],
  329. "fittype"=>empty($arr['fittype'])?0:$arr['fittype'],
  330. "acother"=>empty($arr['acother'])?0:$arr['acother'],
  331. "color"=>empty($arr['color'])?0:$arr['color'],
  332. "lowe"=>empty($arr['lowe'])?0:$arr['lowe'],
  333. "items"=>empty($arr['items'])?0:$arr['items'],
  334. "weight"=>empty($arr['weight'])?0:$arr['weight'],
  335. 'size'=>empty($arr['size'])?0:$arr['size'],
  336. ];
  337. }elseif($type == 3){
  338. return [
  339. "category"=>empty($arr[16])?0:$arr[16],//类目
  340. "grade"=>empty($arr[13])?0:$arr[13],//等 级
  341. "fittype"=>empty($arr[35])?0:$arr[35],//配件类型
  342. "acother"=>empty($arr[45])?0:$arr[45],//配件其它
  343. "color"=>empty($arr[8])?0:$arr[8],//头发颜色
  344. "lowe"=>empty($arr[15])?0:$arr[15],//曲 度
  345. "items"=>empty($arr[38])?0:$arr[38],//单片片数
  346. "weight"=>empty($arr[7])?0:$arr[7],//重量
  347. 'size'=>empty($arr[14])?0:$arr[14],//长 度
  348. ];
  349. }else{
  350. return [
  351. 16=>empty($arr[16])?0:$arr[16],//类目
  352. 13=>empty($arr[13])?0:$arr[13],//等 级
  353. 35=>empty($arr[35])?0:$arr[35],//配件类型
  354. 45=>empty($arr[45])?0:$arr[45],//配件其它
  355. 8=>empty($arr[8])?0:$arr[8],//头发颜色
  356. 15=>empty($arr[15])?0:$arr[15],//曲 度
  357. 38=>empty($arr[38])?0:$arr[38],//单片片数
  358. 7=>empty($arr[7])?0:$arr[7],//重量
  359. 14=>empty($arr[14])?0:$arr[14],//长 度
  360. ];
  361. }
  362. }
  363. //化纤头套
  364. private function huaqiantoutao($type,$arr){
  365. if($type == 1){
  366. return [
  367. "category"=>empty($arr['category'])?0:$arr['category'],
  368. "grade"=>empty($arr['grade'])?0:$arr['grade'],
  369. "sywignumber"=>empty($arr['sywignumber'])?0:$arr['sywignumber'],
  370. "color"=>empty($arr['color'])?0:$arr['color'],
  371. "lowe"=>empty($arr['lowe'])?0:$arr['lowe'],
  372. "synthetictype"=>empty($arr['synthetictype'])?0:$arr['synthetictype'],
  373. "sywigother"=>empty($arr['sywigother'])?0:$arr['sywigother'],
  374. "size"=>empty($arr['size'])?0:$arr['size'],
  375. ];
  376. }elseif($type == 3){
  377. return [
  378. "category"=>empty($arr[16])?0:$arr[16],//类目
  379. "grade"=>empty($arr[13])?0:$arr[13],//等 级
  380. "sywignumber"=>empty($arr[40])?0:$arr[40],//化纤头套编号
  381. "color"=>empty($arr[8])?0:$arr[8],//头发颜色
  382. "lowe"=>empty($arr[15])?0:$arr[15],//曲 度
  383. "synthetictype"=>empty($arr[41])?0:$arr[41],//化纤头套类型
  384. "sywigother"=>empty($arr[42])?0:$arr[42],//化纤头套其它
  385. "size"=>empty($arr[14])?0:$arr[14],//长 度
  386. ];
  387. }else{
  388. return [
  389. 16=>empty($arr[16])?0:$arr[16],//类目
  390. 13=>empty($arr[13])?0:$arr[13],//等 级
  391. 40=>empty($arr[40])?0:$arr[40],//化纤头套编号
  392. 8=>empty($arr[8])?0:$arr[8],//头发颜色
  393. 15=>empty($arr[15])?0:$arr[15],//曲 度
  394. 41=>empty($arr[41])?0:$arr[41],//化纤头套类型
  395. 42=>empty($arr[42])?0:$arr[42],//化纤头套其它
  396. 14=>empty($arr[14])?0:$arr[14],//长 度
  397. ];
  398. }
  399. }
  400. //化纤其它
  401. private function huaqianqita($type,$arr){
  402. if($type == 1){
  403. return [
  404. "category"=>empty($arr['category'])?0:$arr['category'],
  405. "grade"=>empty($arr['grade'])?0:$arr['grade'],
  406. "sywignumber"=>empty($arr['sywignumber'])?0:$arr['sywignumber'],
  407. "syother"=>empty($arr['syother'])?0:$arr['syother'],
  408. "color"=>empty($arr['color'])?0:$arr['color'],
  409. "lowe"=>empty($arr['lowe'])?0:$arr['lowe'],
  410. "items"=>empty($arr['items'])?0:$arr['items'],
  411. "syother"=>empty($arr['syother'])?0:$arr['syother'],
  412. "size"=>empty($arr['size'])?0:$arr['size'],
  413. ];
  414. }elseif($type == 3){
  415. return [
  416. "category"=>empty($arr[16])?0:$arr[16],//类目
  417. "grade"=>empty($arr[13])?0:$arr[13],//等 级
  418. "sywignumber"=>empty($arr[47])?0:$arr[47],//化纤发编号
  419. "syother"=>empty($arr[46])?0:$arr[46],//化纤其它分类
  420. "color"=>empty($arr[8])?0:$arr[8],//头发颜色
  421. "lowe"=>empty($arr[15])?0:$arr[15],//曲 度
  422. "items"=>empty($arr[38])?0:$arr[38],//单包片数
  423. "syother"=>empty($arr[48])?0:$arr[48],//化纤发其它
  424. "size"=>empty($arr[14])?0:$arr[14],//长 度
  425. ];
  426. }else{
  427. return [
  428. 16=>empty($arr[16])?0:$arr[16],//类目
  429. 13=>empty($arr[13])?0:$arr[13],//等 级
  430. 47=>empty($arr[47])?0:$arr[47],//化纤发编号
  431. 46=>empty($arr[46])?0:$arr[46],//化纤其它分类
  432. 8=>empty($arr[8])?0:$arr[8],//头发颜色
  433. 15=>empty($arr[15])?0:$arr[15],//曲 度
  434. 38=>empty($arr[38])?0:$arr[38],//单包片数
  435. 48=>empty($arr[48])?0:$arr[48],//化纤发其它
  436. 14=>empty($arr[14])?0:$arr[14],//长 度
  437. ];
  438. }
  439. }
  440. }