\u6d4b\u8bd5\u6d4b\u8bd5\u6d4b\u8bd5\u6d4b\u8bd5<\/p>","tagList":{"size":["S","M","L","XL","XXL","XXXL"]},"goodsSku":[{"size":"S","tjPrice":"123","djPrice":"123","hgPrice":"23"},{"size":"M","tjPrice":"123","djPrice":"123","hgPrice":"23"},{"size":"L","tjPrice":"123","djPrice":"123","hgPrice":"23"},{"size":"XL","tjPrice":"123","djPrice":"123","hgPrice":"23"},{"size":"XXL","tjPrice":"123","djPrice":"123","hgPrice":"23"},{"size":"XXXL","tjPrice":"123","djPrice":"123","hgPrice":"23"}],"hgPrice":"23","djPrice":"123","tjPrice":"123","unit":"\u5957","type":2,"total":null}'; dump(json_decode($ad)); $data = json_decode($ad); dump($data->tagList->size); } /* * 获取用户信息 * */ public function getgoodsinfo(Request $request){ $user=User::where('mobile',$request->mobile)->first(); if (!$user){ return $this->error(40013,'查无此人'); } if ($user->level!=3){ return $this->error(40013,'当前用户不是代理公司'); } $good=Goodtest::where('is_deleted',0)->whereIn('is_show',[2,3])->get(); $data['good']=$good; $data['user']=$user; return $this->success($data); } /* * 获取商品类型 */ public function getGoodsAttr(){ $list=Goodtest::groupBy('main_attr')->pluck('main_attr'); return $this->success($list); } /* * 商品列表 * */ public function good_list(Request $request){ $page_index=$request->page_index; $page_size=$request->page_size; $num = ($page_index - 1) * $page_size; // $search_name=$input['search_name']; $where=[]; $where1=[]; if ($request->status==1){ $where=function ($query){ $query->whereIn('is_show',[2,3]); }; }elseif($request->status==-1){ $where=[]; }elseif($request->status==0){ $where['is_show']=1; }elseif($request->status==2){ $where['is_show']=4; } if(!empty($request->search_name)){ $where1['main_attr']=$request->search_name; } $count=Goodtest::where($where)->where($where1)->where('is_deleted',0)->count(); $good=Goodtest::where($where)->where($where1)->where('is_deleted',0) ->orderBy('is_deleted')->orderBy('sort')->orderBy('id') ->skip($num)->take($page_size)->get(); $re=[]; foreach ($good as $k=>$v){ $re[$k]['name']=$v->name; $re[$k]['img_url']=$v->main_img; $re[$k]['type']=$v->main_attr; $re[$k]['hgprice']=$v->money; $re[$k]['is_show']=$v->is_show; $re[$k]['is_deleted']=$v->is_deleted==1?true:false; $re[$k]['created_at']=$v->created_at->toDateTimeString(); $re[$k]['updated_at']=$v->updated_at->toDateTimeString(); $re[$k]['start']=$v->show_time==null?'':$v->show_time; $re[$k]['end']=$v->off_time==null?'':$v->off_time; $re[$k]['num']=$v->storage; $re[$k]['id']=$v->id; $re[$k]['tag']=$v->size; $re[$k]['unit']=$v->unit; $re[$k]['content']=$v->content; $re[$k]['sold_num']=$v->sold_num; } return $this->success_list($re,'',$count); } /* * 商品属性 * */ public function good_attr(){ $amin_attr=Goodattr::where('pid',0)->get(); $re=[]; foreach ($amin_attr as $k=>$v){ $re[$k]['label']=$v->name; $re[$k]['value']=$v->id; $res=[]; $ad=Goodattr::where('pid',$v->id)->get(); foreach ($ad as $ke=>$va){ $res[$ke]['label']=$va->name; $res[$ke]['value']=$va->id; } $re[$k]['children']=$res; } return $this->success_list($re,'success'); } /* * 新增商品属性 * */ public function add_good_attr(Request $request){ $rule=[ 'pid'=>'required', 'name'=>'required' ]; $message=[ 'pid.required'=>'父节点ID是必填项', 'name.required'=>'商品属性名称是必填项' ]; $vali=Validator::make($request->all(),$rule,$message); if ($vali->fails()){ return $this->error(40013,$vali->errors()->first()); } Log::error(json_encode($request->all())); DB::beginTransaction(); try{ $good_attr=new Goodattr(); $good_attr->pid=$request->pid; $good_attr->name=$request->name; if (!$good_attr->save()){ throw new \Exception('1'); } DB::commit(); return $this->success([]); }catch (\Exception $exception){ DB::rollBack(); return $this->error(40014,'添加商品属性出错'); } } /* *商品详情 */ public function good_detail(Request $request){ $rules=[ 'id'=>'required' ]; $message=[ 'id.required'=>'商品ID是必填项' ]; $vali=Validator::make($request->all(),$rules,$message); if ($vali->fails()){ return $this->error('400013',$vali->errors()->first()); } $good=Goodtest::find($request->id); $size=Goodtest::where('name',$good->name)->where('is_deleted',0)->select('size','storage','id')->get()->toArray(); $sizes=array_column($size,'size'); $storage=array_column($size,'storage'); $id=array_column($size,'id'); $data['name']=$good->name; $data['main_img']=$good->main_img; $data['banner_url']=json_decode($good->banner_img); $data['hgPrice']=$good->money; $data['unit']=$good->unit; $data['size']=$good->size; $data['storage']=$good->storage; $data['desc']=$good->summary==null?'':$good->summary; $data['is_show']=$good->is_show; $goodattr=Goodattr::find($good->attr_id); $data['type']=[$goodattr->pid,$good->attr_id]; $data['content']=$good->content; // $data=$good; $data['tagList']['size']=$sizes; $data['tagList']['num']=$storage; // $data['storage_all']=$storage; $data['id']=$id; return $this->success($data); } /* 上传商品图片 */ public function uploadGoodsImage(Request $request){ $file= $request->file('file'); $path_url='goods/goods'; $upload= new UploadFilesHandler(); $result= $upload->save($file, $path_url, null, 'image'); if($result){ return $this->success($result['path']); } return $this->error(); } /* * 添加商品 * **/ public function add_good(Request $request){ Log::error(json_encode($request->all())); $rule=[ 'name'=>'required', 'desc'=>'required', // 'goods_num'=>'required|array', 'hgPrice'=>'required', 'img_url'=>'required', 'unit'=>'required', 'tagList'=>'required|array', 'is_show'=>'required', 'type'=>'required', 'banner_url'=>'array', ]; $input=$request->all(); DB::beginTransaction(); try{ $good_sec_attr=Goodattr::find($input['type']); $good_main_attr=Goodattr::find($good_sec_attr->pid); if ($request->is_show){ $is_show=1; }else{ $is_show=0; } foreach ($input['tagList']['size'] as $k=>$v){ $good=new Goodtest(); $good->name=$input['name']; $good->summary=$input['desc']; $good->size=$v; $good->storage=$input['tagList']['num'][$k]; // $good->goods_num=$input['goods_num'][$k]; $good->money=$input['hgPrice']; $good->main_img=$input['img_url']; $good->unit=$input['unit']; $good->is_show=$is_show; $good->attr_id=$input['type']; $good->content=$input['content']; $good->main_attr=$good_main_attr->name; $good->sec_attr=$good_sec_attr->name; $good->banner_img=json_encode($input['banner_url']); // $good->save(); if (!$good->save()){ throw new \Exception('1'); } } DB::commit(); return $this->success([]); }catch (\Exception $exception){ DB::rollBack(); return $this->error(40013,'商品添加失败'); } } /* * 商品上下架 * */ public function shelvedGoods(Request $request){ $rules=[ 'id'=>'requreid', ]; $message=[ 'id.reuqired'=>'商品id是必填项', ]; $vali=Validator::make($rules,$message); if ($vali->fails()){ return $this->error('400013',$vali->errors()->first()); } DB::beginTransaction(); try{ $good=Goodtest::find($request->id); if ($request->has('start')){ $now=Carbon::now()->timestamp; if ($now<$request->start){ $good->is_show=1; $good->show_time=date('Y-m-d H:i:s',$request->start); $good->off_time=date('Y-m-d H:i:s',$request->end); }elseif ($now>$request->end){ $good->is_show=4; }elseif ($now>$request->start&&$request->end>$now){ $good->is_show=3; $good->show_time=date('Y-m-d H:i:s',$request->start); $good->off_time=date('Y-m-d H:i:s',$request->end); } }else{ if ($good->is_show==0||$good->is_show==1||$good->is_show==4){ $good->is_show=2; $good->show_time=null; $good->off_time=null; }elseif($good->is_show==2||$good->is_show==3){ $good->is_show=4; $good->show_time=null; $good->off_time=null; } } if(!$good->save()){ throw new \Exception('1'); } DB::commit(); return $this->success([]); }catch (\Exception $exception){ DB::rollBack(); return $this->error(40013,'操作失败'); } // return $this->success([]); } /* * 批量上下架 * */ public function goods_up(Request $request){ $status=$request->action; if ($status==0){ $is_show=4; }else{ $is_show=2; } foreach ($request->list as $k=>$v){ $good=Goodtest::find($v); $good->is_show=$is_show; $good->show_time=null; $good->off_time=null; $good->save(); } return $this->success([]); } /* * 商品 * */ public function destoryGoods(Request $request){ $rules=[ 'id'=>'requreid', ]; $message=[ 'id.reuqired'=>'商品id是必填项', ]; $vali=Validator::make($rules,$message); if ($vali->fails()){ return $this->error('400013',$vali->errors()->first()); } DB::beginTransaction(); try{ $good=Goodtest::find($request->id); if ($good->is_show!=4){ return $this->error(40013,'该商品不是下架商品,不能删除!!'); } $good->is_deleted=1; if(!$good->save()){ throw new \Exception('1'); } DB::commit(); return $this->success([]); }catch (\Exception $exception){ DB::rollBack(); return $this->error(40013,'操作失败'); } // return $this->success([]); } /* * 修改商品 * */ public function update_good(Request $request){ $input=$request->all(); DB::beginTransaction(); try{ Log::error('{----数据-------}'.json_encode($request->all())); foreach ($input['tagList']['size'] as $k=>$v){ $good=Goodtest::where('size',$v)->whereIn('id',$input['id'])->where('is_deleted',0)->first(); if ($good->storage!=$input['tagList']['num'][$k]){ $goodlog=new GoodsLog(); $goodlog->name=Auth::user()->name; $goodlog->text=Auth::user()->name.'修改了商品'.$good->naame.'尺码'.$good->size.'的库存数量,数量为'.$input['tagList']['num'][$k].',原库存数量为'.$good->storage; if (!$goodlog->save()){ throw new \Exception('1'); } } $good->storage=$input['tagList']['num'][$k]; $good->main_img=$request->img_url; $good->money=$request->hgPrice; $good->summary=$request->desc; $good->unit=$request->unit; $good->content=$input['content']; $good->banner_img=json_encode($input['banner_url']); $good->name=$request->name; if (!$good->save()){ throw new \Exception('1'); } } DB::commit(); return $this->success([]); }catch (\Exception $exception){ DB::rollBack(); Log::error('商品修改失败'.$exception); return $this->error(40013,'商品修改失败'); } } /* * 增加尺寸 * */ public function add_size(Request $request){ DB::beginTransaction(); try{ $re=Goodtest::where('attr_id',$request->attr_id)->where('size',$request->size)->where('is_deleted',0)->count(); if ($re){ return $this->error(40013,'当前尺寸已存在'); } $goods=Goodtest::where('attr_id',$request->attr_id)->where('is_deleted',0)->first(); $good=new Goodtest(); $good->name=$goods->name; $good->summary=$goods->summary; $good->main_attr=$goods->main_attr; $good->sec_attr=$goods->sec_attr; $good->money=$goods->money; $good->storage=100; $good->main_img=$goods->main_img; $good->banner_img=$goods->banner_img; $good->unit=$goods->unit; $good->size=$request->size; $good->attr_id=$request->attr_id; if (!$good->save()){ throw new \Exception('1'); } $goodlog=new GoodsLog(); $goodlog->name=Auth::user()->name; $goodlog->text=Auth::user()->name.'添加了商品'.$good->name.'的'.$request->size.'尺码,数量为100'; if (!$goodlog->save()){ throw new \Exception('1'); } DB::commit(); return $this->success(['id'=>$good->id]); }catch (\Exception $exception){ DB::rollBack(); return $this->error(40013,'添加尺寸失败'); } } /* * 删除尺寸 * */ public function destory_size(Request $request){ DB::beginTransaction(); try{ $re=Goodtest::where('attr_id',$request->attr_id)->where('size',$request->size)->where('is_deleted',0)->count(); if (!$re){ return $this->error(40013,'当前尺寸不存在'); } $good=Goodtest::where('attr_id',$request->attr_id)->where('size',$request->size)->where('is_deleted',0)->first(); $good->is_deleted=1; if (!$good->save()){ throw new \Exception('1'); } $goodlog=new GoodsLog(); $goodlog->name=Auth::user()->name; $goodlog->text=Auth::user()->name.'删除了商品'.$good->name.'的'.$request->size.'尺码'; if (!$goodlog->save()){ throw new \Exception('1'); } DB::commit(); return $this->success([]); }catch (\Exception $exception){ DB::rollBack(); return $this->error(40013,'删除商品失败'); } } /* * 清除定时 * */ public function destory_time(Request $request){ DB::beginTransaction(); try{ $good=Goodtest::find($request->id); if ($good->is_show==1||$good->is_show==0){ $good->show_time=null; $good->off_time=null; $good->is_show=0; }elseif ($good->is_show==3){ $good->show_time=null; $good->off_time=null; $good->is_show=2; } if (!$good->save()){ throw new \Exception('1'); } DB::commit(); return $this->success([]); }catch (\Exception $exception){ DB::rollBack(); return $this->error(40013,'清除定时时间失败'); } } /* * 批量定时上下架 * */ public function good_timing(Request $request){ DB::beginTransaction(); try{ foreach ($request->id as $k=>$v){ $good=Goodtest::find($v); if ($request->has('start')){ $now=Carbon::now()->timestamp; if ($now<$request->start){ $good->is_show=1; $good->show_time=date('Y-m-d H:i:s',$request->start); $good->off_time=date('Y-m-d H:i:s',$request->end); }elseif ($now>$request->end){ $good->is_show=4; }elseif ($now>$request->start&&$request->end>$now){ $good->is_show=3; $good->show_time=date('Y-m-d H:i:s',$request->start); $good->off_time=date('Y-m-d H:i:s',$request->end); } }else{ if ($good->is_show==1||$good->is_show==0){ $good->show_time=null; $good->off_time=null; $good->is_show=0; }elseif ($good->is_show==3){ $good->show_time=null; $good->off_time=null; $good->is_show=2; } } if(!$good->save()){ throw new \Exception('1'); } } DB::commit(); return $this->success([]); }catch (\Exception $exception){ DB::rollBack(); Log::error('批量定时上架失败-------------------错误信息为:'.$exception); return $this->error(40013,'操作失败'); } } public function get_good_attr(){ $data=Goodtest::where('is_deleted',0)->orderBy('sort')->orderBy('id')->groupBy('attr_id')->get(); // foreach ($data as $k=>$v){ // $re[$k]['attr_id']=$v->attr_id; // $re[$k]['goods_name']=$v->goods_name; // $re[$k]['main_img']=$v->main_img; // } return $this->success_list($data); } /* * 排序 * */ public function good_sort(Request $request){ Log::error(json_encode($request->all())); foreach ($request->attr_id as $k=>$v){ Log::error('1='.$k); $re=Goodtest::where('attr_id',$v)->where('is_deleted',0)->update(['sort'=>$k]); Log::error($re); Log::error('2='.$k); } Log::error('jiesu'); return $this->success([]); } public function GetStorageGood(){ $re=Goodtest::where('is_deleted',0)->whereIn('is_show',[2,3])->where('storage','<=',1000)->get(); return $this->success($re); } }