123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- <?php
- namespace App\Http\Controllers;
- use App\Models\Goods;
- use App\Models\GoodSpec;
- use App\Models\GoodSku;
- use App\Models\User;
- use App\Models\GoodSkuTotal;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Auth;
- use Illuminate\Support\Facades\Log;
- class GoodsController extends Controller{
- /*
- * 商品控制器
- * */
- public function goods_list(){
- $user=Auth::user();
- $goods=Goods::where('status',1)->get();
- if ($goods->isEmpty()){
- return $this->error(300);
- }
- foreach ($goods as $k=>$v){
- if ($user->level==1){
- $data[$k]['price']=$v->tjprice;
- }elseif($user->level==2){
- $data[$k]['price']=$v->djprice;
- }elseif ($user->level==3){
- $data[$k]['price']=$v->hgprice;
- }
- $goodspec_id=GoodSpec::where('goods_id',$v->id)->where('title','=','type')->value('id');
- $goodspec=GoodSpec::where('pid',$goodspec_id)->get();
- foreach ($goodspec as $key=>$value){
- $type_name[$key]=$value->title;
- $type_id[$key]=$value->id;
- }
- $data[$k]['storage']=GoodSkuTotal::where('user_id',$user->id)->where('goods_id',$v->goods_id)->sum('total');
- $data[$k]['img']=$v->img_url;
- $data[$k]['id']=$v->id;
- $data[$k]['type']=$type_name;
- $data[$k]['type_id']=$type_id;
- $data[$k]['name']=$v->name;
- $data[$k]['banner_url']=json_decode($v->banner_url);
- }
- Log::error('{----------------}'.json_encode($data));
- return $this->success_list($data);
- }
- /*
- * 商品详情
- * */
- public function goods_detail(Request $request){
- $level=Auth::user()->level;
- $goods=Goods::find($request->id);
- Log::error('{------------------}'.$request->id);
- $goodspec_id=GoodSpec::where('goods_id',$request->id)->where('title','=','type')->value('id');
- $goodspec=GoodSpec::where('pid',$goodspec_id)->get();
- foreach ($goodspec as $k=>$v){
- $data[$k]['name']=$v->title;
- $data[$k]['type_id']=$v->id;
- $res=$this->get_good($request->id,$v->id);
- $data[$k]['size']=$res['size'];
- $data[$k]['size_id']=$res['size_id'];
- }
- $re['id']=$goods->id;
- if ($level==3){
- $re['price']=$goods->tjprice;
- }elseif($level==2){
- $re['price']=$goods->djprice;
- }elseif ($level==1){
- $re['price']=$goods->hgprice;
- }else{
- Log::error('{------这是位于GoodsController的goods_list方法----------出现了用户level不正确的情况------}');
- return $this->error(400);
- }
- $re['name']=$goods->name;
- $re['img']=$goods->img_url;
- $re['imgList']=json_decode($goods->banner_url);
- $re['typeList']=$data;
- return $this->success($re);
- }
- /*---获取款式的规格(size)-----*/
- public function get_good($id,$spec_id){
- $data=GoodSku::where('goods_id',$id)->where('sku_path','like','%'.$spec_id.'%')->get();
- $size=[];
- $sizeid=[];
- $totals=0;
- $total=[];
- foreach ($data as $k=>$v){
- $re=$this->typeList($v->sku_path);
- $size[$k]=$re['size'];
- $sizeid[$k]=$v->id;
- $num=GoodSkuTotal::where('goods_id',$id)->where('sku_id',$v->id)->where('user_id',Auth::user()->id)->value('total');
- if ($totals){
- $total[$k]=$num;
- }else{
- $total[$k]=0;
- }
- $totals=$num+$totals;
- }
- return ['size'=>$size,'size_id'=>$sizeid,'total'=>$total,'totals'=>$totals];
- }
- /*-----处理goods_sku的sku_path数据----*/
- public function typeList($data){
- $datas=explode('/',$data);
- $data=$datas[0];
- $spec=GoodSpec::find($data);
- $size=$spec->title;
- return ['size_id'=>$data,'size'=>$size];
- }
- }
|