GoodsController.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\Goods;
  4. use App\Models\GoodSpec;
  5. use App\Models\GoodSku;
  6. use App\Models\User;
  7. use App\Models\GoodSkuTotal;
  8. use Illuminate\Http\Request;
  9. use Illuminate\Support\Facades\Auth;
  10. use Illuminate\Support\Facades\Log;
  11. class GoodsController extends Controller{
  12. /*
  13. * 商品控制器
  14. * */
  15. public function goods_list(){
  16. $user=Auth::user();
  17. $goods=Goods::where('status',1)->get();
  18. if ($goods->isEmpty()){
  19. return $this->error(300);
  20. }
  21. foreach ($goods as $k=>$v){
  22. if ($user->level==1){
  23. $data[$k]['price']=$v->tjprice;
  24. }elseif($user->level==2){
  25. $data[$k]['price']=$v->djprice;
  26. }elseif ($user->level==3){
  27. $data[$k]['price']=$v->hgprice;
  28. }
  29. $goodspec_id=GoodSpec::where('goods_id',$v->id)->where('title','=','type')->value('id');
  30. $goodspec=GoodSpec::where('pid',$goodspec_id)->get();
  31. foreach ($goodspec as $key=>$value){
  32. $type_name[$key]=$value->title;
  33. $type_id[$key]=$value->id;
  34. }
  35. $data[$k]['storage']=GoodSkuTotal::where('user_id',$user->id)->where('goods_id',$v->goods_id)->sum('total');
  36. $data[$k]['img']=$v->img_url;
  37. $data[$k]['id']=$v->id;
  38. $data[$k]['type']=$type_name;
  39. $data[$k]['type_id']=$type_id;
  40. $data[$k]['name']=$v->name;
  41. $data[$k]['banner_url']=json_decode($v->banner_url);
  42. }
  43. Log::error('{----------------}'.json_encode($data));
  44. return $this->success_list($data);
  45. }
  46. /*
  47. * 商品详情
  48. * */
  49. public function goods_detail(Request $request){
  50. $level=Auth::user()->level;
  51. $goods=Goods::find($request->id);
  52. Log::error('{------------------}'.$request->id);
  53. $goodspec_id=GoodSpec::where('goods_id',$request->id)->where('title','=','type')->value('id');
  54. $goodspec=GoodSpec::where('pid',$goodspec_id)->get();
  55. foreach ($goodspec as $k=>$v){
  56. $data[$k]['name']=$v->title;
  57. $data[$k]['type_id']=$v->id;
  58. $res=$this->get_good($request->id,$v->id);
  59. $data[$k]['size']=$res['size'];
  60. $data[$k]['size_id']=$res['size_id'];
  61. }
  62. $re['id']=$goods->id;
  63. if ($level==3){
  64. $re['price']=$goods->tjprice;
  65. }elseif($level==2){
  66. $re['price']=$goods->djprice;
  67. }elseif ($level==1){
  68. $re['price']=$goods->hgprice;
  69. }else{
  70. Log::error('{------这是位于GoodsController的goods_list方法----------出现了用户level不正确的情况------}');
  71. return $this->error(400);
  72. }
  73. $re['name']=$goods->name;
  74. $re['img']=$goods->img_url;
  75. $re['imgList']=json_decode($goods->banner_url);
  76. $re['typeList']=$data;
  77. return $this->success($re);
  78. }
  79. /*---获取款式的规格(size)-----*/
  80. public function get_good($id,$spec_id){
  81. $data=GoodSku::where('goods_id',$id)->where('sku_path','like','%'.$spec_id.'%')->get();
  82. $size=[];
  83. $sizeid=[];
  84. $totals=0;
  85. $total=[];
  86. foreach ($data as $k=>$v){
  87. $re=$this->typeList($v->sku_path);
  88. $size[$k]=$re['size'];
  89. $sizeid[$k]=$v->id;
  90. $num=GoodSkuTotal::where('goods_id',$id)->where('sku_id',$v->id)->where('user_id',Auth::user()->id)->value('total');
  91. if ($totals){
  92. $total[$k]=$num;
  93. }else{
  94. $total[$k]=0;
  95. }
  96. $totals=$num+$totals;
  97. }
  98. return ['size'=>$size,'size_id'=>$sizeid,'total'=>$total,'totals'=>$totals];
  99. }
  100. /*-----处理goods_sku的sku_path数据----*/
  101. public function typeList($data){
  102. $datas=explode('/',$data);
  103. $data=$datas[0];
  104. $spec=GoodSpec::find($data);
  105. $size=$spec->title;
  106. return ['size_id'=>$data,'size'=>$size];
  107. }
  108. }