where('status',1)->field('status,stock_total,id')->select(); foreach ($data as &$v){ if($v['stock_total']<=0){ ShopGoods::mk()->where('id',$v['id'])->save(['status'=>2]); } } } /** * @Title ("商品分类") * @return void * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public function getCate() { $data = ShopGoodsCate::treeData(); foreach ($data as &$v){ if(!isset($v['sub'])){ $v['sub']=[]; } } $this->success('获取分类成功',$data ); } /** * @Title ("我的商品数据") * @Param ("name",desc="商品名称") * @Param ("status",desc="1售卖中 0已下架 2已售罄 传空全部") * @Param ("cateids",desc="分类id 1,2") * @return void * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public function goods_list(){ $admin_id = $this->uuid(); $count = ['全部','售卖中','已下架','已售罄']; foreach ($count as &$v){ switch ($v){ case '全部': $where =[]; break; case '售卖中': $where['status']=1; break; case '已下架': $where['status']=0; break; case '已售罄': $where['status']=2; } $v=ShopGoods::mk()->where('admin_id',$admin_id->id)->where('deleted',0)->where($where)->count(); } $cateids = input('cateids'); $ids =[]; if(!empty($cateids)){ $ids[]= ['cateids','find in set' ,$cateids]; } $query = ShopGoods::mQuery()->like('name')->equal('code,status'); $result = $query->where('admin_id',$admin_id->id)->where($ids)->where('deleted',0)->order('id desc')->page(true, false, false, 10); foreach ($result['list'] as &$v){ if($v['stock_total'] == 0){ ShopGoods::mk()->where('id',$v['id'])->save(['status'=>2]); } } $data['count'] =$count; $data['list']=$result; $this->success('我的商品列表',$data); } /** * @Title ("添加商品") * @Param ("name",desc="商品名称") * @Param ("cateids",desc="商品分类") * @Param ("cover",desc="商品封面图") * @Param ("slider",desc="商品轮播图") * @Param ("content",desc="商品详情") * @Param ("stock_total",desc="商品库存") * @Param ("price_selling",desc="商品销售价") * @Param ("status",desc="1在售 0下架") * @Param ("spec",desc="规格 [{name:默认分组,list:[{name:默认规格,check:true,show:true,group:默认分组}]}]") * @Param ("items",desc="商品规格信息 [ goods_spec 规格名 颜色::红色;;大小::1','stock_total 库存','price_selling 售价','sku_image 图片''status 1在售 2 下架']") */ public function goods_add(){ $admin_id = $this->uuid(); $data = $this->_vali( [ 'name.require'=>'商品名称不能为空', 'cateids.require'=>'商品分类不能不选', 'cover.require'=>'商品封面不能为空', 'slider.require'=>'商品轮播图不能为空', 'content.require'=>'商品详情不能为空', 'stock_total.require'=>'商品库存不能为空', 'price_selling.require'=>'商品销售价格不能为空', 'spec.require'=>'商品规格参数', 'items.require'=>'商品规格不能为空', 'status.require'=>'商品状态不能为空', ] ); $goods_data= [ 'name'=>$data['name'], 'cateids'=>$data['cateids'], 'cover'=>$data['cover'], 'slider'=>$data['slider'], 'content'=>$data['content'], 'stock_total'=>$data['stock_total'], 'price_selling'=>$data['price_selling'], 'price_market'=>$data['price_selling'], 'code'=>CodeExtend::uniqidNumber(20, 'G'), 'data_specs'=>$data['spec'], 'data_items'=>$data['items'], 'status'=>$data['status'], 'create_at'=>date('Y-m-d H:i:s'), 'admin_id'=>$admin_id->id, ]; Db::startTrans(); try { ShopGoods::mk()->insertGetId($goods_data); $data['items']=json_decode($data['items'],true); foreach ($data['items'] as &$v){ $item_data = [ 'goods_sku'=>CodeExtend::uniqidNumber(12, 'S'), 'goods_code'=>$goods_data['code'], 'goods_spec'=>$v['goods_spec'], 'stock_total'=>$v['stock_total'], 'price_selling'=>$v['price_selling'], 'price_market'=>$v['price_selling'], 'show_image'=>$v['sku_image'] ? $v['sku_image'] : $data['cover'], 'create_at'=>date('Y-m-d H:i:s'), 'status'=>$v['status'], 'admin_id'=>$admin_id->id ]; ShopGoodsItem::mk()->insertGetId($item_data); } Db::commit(); $this->success('商品数据入库成功!'); }catch (ErrorException $e){ Db::rollback(); $this->error('商品数据入库失败!'); } } /** * @Title ("商品修改") * @Param ("goods_id",desc="商品id") * @Param ("name",desc="商品名称") * @Param ("cateids",desc="商品分类") * @Param ("cover",desc="商品封面图") * @Param ("slider",desc="商品轮播图") * @Param ("content",desc="商品详情") * @Param ("stock_total",desc="商品库存") * @Param ("price_selling",desc="商品销售价") * @Param ("status",desc="商品状态 1上架 0下架") * @Param ("items",desc="商品规格信息 ['id sku的id' , goods_spec 规格名 颜色::红色;;大小::1','stock_total 库存','price_selling 售价','sku_image 图片''status 1在售 2 下架']") * @return void * */ public function goods_edit(){ $goods_id = input('goods_id'); $goods = ShopGoods::mk()->where('id',$goods_id)->find(); if($goods['examine'] == 0)$this->error('商品审核中暂不支持编辑'); $data = $this->_vali( [ 'name.require'=>'商品名称不能为空', 'cateids.require'=>'商品分类不能不选', 'cover.require'=>'商品封面不能为空', 'slider.require'=>'商品轮播图不能为空', 'content.require'=>'商品详情不能为空', 'stock_total.require'=>'商品库存不能为空', 'price_selling.require'=>'商品销售价格不能为空', 'items.require'=>'商品规格不能为空', 'status.require'=>'商品状态不能为空' ] ); $goods_data= [ 'name'=>$data['name'], 'cateids'=>$data['cateids'], 'cover'=>$data['cover'], 'slider'=>$data['slider'], 'content'=>$data['content'], 'stock_total'=>$data['stock_total'], 'price_selling'=>$data['price_selling'], 'data_items'=>$data['items'], 'status'=>$data['status'], 'create_at'=>date('Y-m-d H:i:s'), 'examine'=>0, ]; Db::startTrans(); try { ShopGoods::mk()->where('id',$goods_id)->save($goods_data); $data['items']=json_decode($data['items'],true); foreach ($data['items']as &$v){ $item_data = [ 'goods_spec'=>$v['goods_spec'], 'stock_total'=>$v['stock_total'], 'price_selling'=>$v['price_selling'], 'price_market'=>$v['price_selling'], 'show_image'=>$v['sku_image'], 'status'=>$v['status'], 'create_at'=>date('Y-m-d H:i:s'), ]; ShopGoodsItem::mk()->where('id',$v['id'])->save($item_data); } Db::commit(); $this->success('商品数据编辑成功!'); }catch (ErrorException $e){ Db::rollback(); $this->success('商品数据编辑失败!'.$e); } } /** * @Title ("删除商品") * @Method ("post") * @Param ("goods_id",desc="商品id") * @return void */ public function del_goods(){ $admin = $this->uuid(); $goods_id=input('goods_id'); ShopGoods::mk()->where('admin_id',$admin->id)->where('id',$goods_id)->save(['deleted'=>1]); $this->success('商品已删除'); } /** * @Title ("商品详情") * @Method ("post") * @Param ("goods_id",desc="商品id") */ public function goods_details(){ $goods_id = input('goods_id'); $details = ShopGoods::mk()->alias('goods') ->where('goods.id',$goods_id) ->find(); $details['item']=ShopGoodsItem::mk()->where('goods_code', $details['code'])->select(); $details['cate_name']=ShopGoodsCate::mk()->whereIn('id',$details['cateids'])->field('name')->select(); $this->success('商品详情',$details); } /** * @Title ("商品下架") * @Method ("post") * @Param ("goods_id",desc="商品id") * @return void */ public function lower(){ $admin = $this->uuid(); $data = $this->_vali(['goods_id.require'=>'请选择要处理的商品']); ShopGoods::mk()->where('admin_id',$admin->id)->whereIn('id',$data['goods_id'])->save(['status'=>0]); $this->success('商品已下架成功'); } /** * @Title ("商品上架") * @Method ("post") * @Param ("goods_id",desc="商品id") * @return void */ public function shelves(){ $admin = $this->uuid(); $data = $this->_vali(['goods_id.require'=>'请选择要处理的商品']); ShopGoods::mk()->where('admin_id',$admin->id)->whereIn('id',$data['goods_id'])->save(['status'=>1]); $this->success('商品已上架成功'); } public function uuid(){ $purchase_model = new Common($this->app); $uuid = $purchase_model->uuid(); return $uuid; } }