GoodsInfo.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. <?php
  2. namespace App\Custom;
  3. use App\Models\Goods;
  4. use App\Models\GoodsSku;
  5. use App\Models\GoodsSkuPrice;
  6. use App\Models\GoodsSpec;
  7. use Illuminate\Database\Eloquent\Model;
  8. class Goodsinfo extends Model
  9. {
  10. /*根据商品规格id 获取商品规格信息*/
  11. public function getGoodsSku($id){
  12. $path=GoodsSku::find($id)->sku_path;
  13. $arr=explode('/',$path);
  14. $goodsSku=[];
  15. foreach($arr as $k=>$v){
  16. $upSpec=GoodsSpec::where('id',$v)->first();
  17. if($upSpec){
  18. $upSpec['uptitle']=GoodsSpec::where('id',$upSpec->pid)->value('title');
  19. $goodsSku[$upSpec['uptitle']]=$upSpec->title;
  20. }
  21. }
  22. return $goodsSku;
  23. }
  24. /*获取商品规格*/
  25. public function getGoodsSpec($goodsId){
  26. $goodsSpec=GoodsSpec::where('goods_id',$goodsId)->where('is_show',1)->get();
  27. $spec=[];
  28. if($goodsSpec){
  29. foreach($goodsSpec as $key =>$val){
  30. $n=0;
  31. if($val->pid==0){
  32. foreach($goodsSpec as $k =>$v) {
  33. if($v->pid<>0 && $val->id==$v->pid){
  34. $spec[$val->title][$n]=$v->title;
  35. $n++;
  36. }
  37. }
  38. }
  39. }
  40. }
  41. return $spec;
  42. }
  43. /*获取商品价格组合*/
  44. public function getGoodsSkuPrice($goodsId){
  45. $goodsSkuPrice=GoodsSkuPrice::select('goods_id','sku_id')->where('goods_id',$goodsId)->groupBy('goods_id','sku_id')->get();
  46. $goodsSku=[];
  47. foreach($goodsSkuPrice as $key =>$val){
  48. $price=GoodsSkuPrice::where('goods_id',$goodsId)->where('sku_id',$val->sku_id)->pluck('price','user_level')->toArray();
  49. $path=GoodsSku::where('id',$val->sku_id)->where('is_show',1)->value('sku_path');
  50. $arr=explode('/',$path);
  51. $goodsSku[$key]=[];
  52. foreach($arr as $k=>$v){
  53. $upSpec=GoodsSpec::where('id',$v)->first();
  54. if($upSpec){
  55. $upSpec['uptitle']=GoodsSpec::where('id',$upSpec->pid)->value('title');
  56. $goodsSku[$key][$upSpec['uptitle']]=$upSpec->title;
  57. }
  58. }
  59. $goodsSku[$key]['price']=$price;
  60. }
  61. return $goodsSku;
  62. }
  63. /*添加商品基本信息*/
  64. public function createGoodsInfo($request){
  65. $data['name']=$request['name'];
  66. $data['title']=$request['desc'];
  67. $data['type']=$request['type'];
  68. $data['tjprice']=$request['tjPrice'];
  69. $data['djprice']=$request['djPrice'];
  70. $data['hgprice']=$request['hgPrice'];
  71. $data['status']='0';
  72. $data['is_specifica']='1';
  73. $data['total']=$request['total'];
  74. $data['banner_url']=json_encode($request['banner_url']);
  75. $data['img_url']=$request['img_url'];
  76. $data['contents']=$request['content'];
  77. $res=Goods::create($data);//添加商品信息
  78. return $res->id;
  79. }
  80. /*修改商品基本信息*/
  81. public function updateGoodsInfo($request){
  82. $data['name']=$request['name'];
  83. $data['title']=$request['desc'];
  84. $data['type']=$request['type'];
  85. $data['tjprice']=$request['tjPrice'];
  86. $data['djprice']=$request['djPrice'];
  87. $data['hgprice']=$request['hgPrice'];
  88. $data['status']='0';
  89. $data['total']=$request['total'];
  90. $data['banner_url']=json_encode($request['banner_url']);
  91. $data['img_url']=$request['img_url'];
  92. $data['contents']=$request['content'];
  93. $res=Goods::where('id',$request['id'])->update($data);//添加商品信息
  94. }
  95. /*添加商品规格信息*/
  96. public function createGoodsSpecInfo($tagList,$goodsId){
  97. foreach($tagList as $key =>$val){
  98. $data['pid']=0;
  99. $data['goods_id']=$goodsId;
  100. $data['title']=$key;
  101. $data['is_show']=1;
  102. $data['name']=$goodsId.'|0|'.$key;
  103. $spec=GoodsSpec::create($data);//添加商品规格(父级)
  104. foreach($val as $v){
  105. $da_zi['pid']=$spec->id;
  106. $da_zi['goods_id']=$goodsId;
  107. $da_zi['title']=$v;
  108. $da_zi['is_show']='1';//1
  109. $da_zi['name']=$goodsId.'|'.$key.'|'.$v;
  110. GoodsSpec::create($da_zi);//添加商品规格标签(子元素)
  111. }
  112. }
  113. return true;
  114. }
  115. /*添加商品规格组合价格信息*/
  116. public function createGoodsSkuInfo($goodsSku,$goodsId){
  117. foreach($goodsSku as $keys =>$value){
  118. $path='';
  119. $price_arr=[];
  120. $price_arr['tj']=$value['tjPrice'];
  121. $price_arr['dj']=$value['djPrice'];
  122. $price_arr['hg']=$value['hgPrice'];
  123. array_splice($value,-3,3);
  124. foreach($value as $key =>$val){
  125. $name=$goodsId.'|'.$key.'|'.$val;
  126. $skuId=GoodsSpec::where('name',$name)->value('id');
  127. if(empty($path)){
  128. $path=$skuId;
  129. }else{
  130. $path=$path.'/'.$skuId;
  131. }
  132. }
  133. $da['goods_id']=$goodsId;
  134. $da['sku_path']=$path;
  135. $da['is_show']=1;
  136. $res_sku=GoodsSku::create($da);//添加商品sku组合
  137. foreach($price_arr as $key =>$val){
  138. $d['goods_id']=$goodsId;
  139. $d['sku_id']=$res_sku->id;
  140. switch($key){
  141. case 'hg':
  142. $d['user_level']=1;
  143. break;
  144. case 'dj':
  145. $d['user_level']=2;
  146. break;
  147. case 'tj':
  148. $d['user_level']=3;
  149. break;
  150. }
  151. $d['price']=$val;
  152. GoodsSkuPrice::create($d);//添加商品sku组合价格
  153. }
  154. }
  155. }
  156. }