123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- <?php
- namespace App\Custom;
- use App\Models\Goods;
- use App\Models\GoodsSku;
- use App\Models\GoodsSkuPrice;
- use App\Models\GoodsSpec;
- use Illuminate\Database\Eloquent\Model;
- class Goodsinfo extends Model
- {
- /*根据商品规格id 获取商品规格信息*/
- public function getGoodsSku($id){
- $path=GoodsSku::find($id)->sku_path;
- $arr=explode('/',$path);
- $goodsSku=[];
- foreach($arr as $k=>$v){
- $upSpec=GoodsSpec::where('id',$v)->first();
- if($upSpec){
- $upSpec['uptitle']=GoodsSpec::where('id',$upSpec->pid)->value('title');
- $goodsSku[$upSpec['uptitle']]=$upSpec->title;
- }
- }
- return $goodsSku;
- }
- /*获取商品规格*/
- public function getGoodsSpec($goodsId){
- $goodsSpec=GoodsSpec::where('goods_id',$goodsId)->where('is_show',1)->get();
- $spec=[];
- if($goodsSpec){
- foreach($goodsSpec as $key =>$val){
- $n=0;
- if($val->pid==0){
- foreach($goodsSpec as $k =>$v) {
- if($v->pid<>0 && $val->id==$v->pid){
- $spec[$val->title][$n]=$v->title;
- $n++;
- }
- }
- }
- }
- }
- return $spec;
- }
- /*获取商品价格组合*/
- public function getGoodsSkuPrice($goodsId){
- $goodsSkuPrice=GoodsSkuPrice::select('goods_id','sku_id')->where('goods_id',$goodsId)->groupBy('goods_id','sku_id')->get();
- $goodsSku=[];
- foreach($goodsSkuPrice as $key =>$val){
- $price=GoodsSkuPrice::where('goods_id',$goodsId)->where('sku_id',$val->sku_id)->pluck('price','user_level')->toArray();
- $path=GoodsSku::where('id',$val->sku_id)->where('is_show',1)->value('sku_path');
- $arr=explode('/',$path);
- $goodsSku[$key]=[];
- foreach($arr as $k=>$v){
- $upSpec=GoodsSpec::where('id',$v)->first();
- if($upSpec){
- $upSpec['uptitle']=GoodsSpec::where('id',$upSpec->pid)->value('title');
- $goodsSku[$key][$upSpec['uptitle']]=$upSpec->title;
- }
- }
- $goodsSku[$key]['price']=$price;
- }
- return $goodsSku;
- }
- /*添加商品基本信息*/
- public function createGoodsInfo($request){
- $data['name']=$request['name'];
- $data['title']=$request['desc'];
- $data['type']=$request['type'];
- $data['tjprice']=$request['tjPrice'];
- $data['djprice']=$request['djPrice'];
- $data['hgprice']=$request['hgPrice'];
- $data['status']='0';
- $data['is_specifica']='1';
- $data['total']=$request['total'];
- $data['banner_url']=json_encode($request['banner_url']);
- $data['img_url']=$request['img_url'];
- $data['contents']=$request['content'];
- $res=Goods::create($data);//添加商品信息
- return $res->id;
- }
- /*修改商品基本信息*/
- public function updateGoodsInfo($request){
- $data['name']=$request['name'];
- $data['title']=$request['desc'];
- $data['type']=$request['type'];
- $data['tjprice']=$request['tjPrice'];
- $data['djprice']=$request['djPrice'];
- $data['hgprice']=$request['hgPrice'];
- $data['status']='0';
- $data['total']=$request['total'];
- $data['banner_url']=json_encode($request['banner_url']);
- $data['img_url']=$request['img_url'];
- $data['contents']=$request['content'];
- $res=Goods::where('id',$request['id'])->update($data);//添加商品信息
- }
- /*添加商品规格信息*/
- public function createGoodsSpecInfo($tagList,$goodsId){
- foreach($tagList as $key =>$val){
- $data['pid']=0;
- $data['goods_id']=$goodsId;
- $data['title']=$key;
- $data['is_show']=1;
- $data['name']=$goodsId.'|0|'.$key;
- $spec=GoodsSpec::create($data);//添加商品规格(父级)
- foreach($val as $v){
- $da_zi['pid']=$spec->id;
- $da_zi['goods_id']=$goodsId;
- $da_zi['title']=$v;
- $da_zi['is_show']='1';//1
- $da_zi['name']=$goodsId.'|'.$key.'|'.$v;
- GoodsSpec::create($da_zi);//添加商品规格标签(子元素)
- }
- }
- return true;
- }
- /*添加商品规格组合价格信息*/
- public function createGoodsSkuInfo($goodsSku,$goodsId){
- foreach($goodsSku as $keys =>$value){
- $path='';
- $price_arr=[];
- $price_arr['tj']=$value['tjPrice'];
- $price_arr['dj']=$value['djPrice'];
- $price_arr['hg']=$value['hgPrice'];
- array_splice($value,-3,3);
- foreach($value as $key =>$val){
- $name=$goodsId.'|'.$key.'|'.$val;
- $skuId=GoodsSpec::where('name',$name)->value('id');
- if(empty($path)){
- $path=$skuId;
- }else{
- $path=$path.'/'.$skuId;
- }
- }
- $da['goods_id']=$goodsId;
- $da['sku_path']=$path;
- $da['is_show']=1;
- $res_sku=GoodsSku::create($da);//添加商品sku组合
- foreach($price_arr as $key =>$val){
- $d['goods_id']=$goodsId;
- $d['sku_id']=$res_sku->id;
- switch($key){
- case 'hg':
- $d['user_level']=1;
- break;
- case 'dj':
- $d['user_level']=2;
- break;
- case 'tj':
- $d['user_level']=3;
- break;
- }
- $d['price']=$val;
- GoodsSkuPrice::create($d);//添加商品sku组合价格
- }
- }
- }
- }
|