mobile)->first(); if (!$user){ return $this->error(40013,'查无此人'); } if ($user->level!=3){ return $this->error(40013,'当前用户不是代理公司'); } $good=StudioGood::where('is_deleted',0)->get(); $data['good']=$good; $data['user']=$user; return $this->success($data); } /* * 获取商品类型 */ public function getGoodsAttr(){ $list=StudioGood::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; if ($request->search_name){ $count=StudioGood::where('main_attr',$request->search_name)->where('is_deleted',0)->count(); $good=StudioGood::where('main_attr',$request->search_name)->where('is_deleted',0) ->orderBy('is_deleted')->orderBy('sort')->orderBy('id') ->skip($num)->take($page_size)->get(); }else{ $good=StudioGood::where('is_deleted',0) ->orderBy('is_deleted')->orderBy('sort')->orderBy('id') ->skip($num)->take($page_size)->get(); $count=StudioGood::where('is_deleted',0)->count(); } $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_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=StudioGood::find($request->id); $size=StudioGood::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 add_good(Request $request){ $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 StudioGood(); $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=StudioGood::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,'操作失败'); } } /* * 商品 * */ 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=StudioGood::find($request->id); $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,'操作失败'); } } /* * 修改商品 * */ 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=StudioGood::where('size',$v)->whereIn('id',$input['id'])->where('is_deleted',0)->first(); if ($good->storage!=$input['tagList']['num'][$k]){ $goodlog=new StudioGoodLog(); $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=StudioGood::where('attr_id',$request->attr_id)->where('size',$request->size)->where('is_deleted',0)->count(); if ($re){ return $this->error(40013,'当前尺寸已存在'); } $goods=StudioGood::where('attr_id',$request->attr_id)->where('is_deleted',0)->first(); $good=new StudioGood(); $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 StudioGoodLog(); $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=StudioGood::where('attr_id',$request->attr_id)->where('size',$request->size)->where('is_deleted',0)->count(); if (!$re){ return $this->error(40013,'当前尺寸不存在'); } $good=StudioGood::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 StudioGoodLog(); $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 get_good_attr(){ $data=StudioGood::where('is_deleted',0)->orderBy('sort')->orderBy('id')->groupBy('attr_id')->get(); return $this->success_list($data); } /* * 排序 * */ public function good_sort(Request $request){ 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 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 uploadGoodsImage(Request $request) { $file = $request->file('file'); $path_url = 'goods/studio_goods'; $upload = new UploadFilesHandler(); $result = $upload->save($file, $path_url, null, 'image'); if ($result) { return $this->success($result['path']); } return $this->error(); } }