| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275 | <?phpnamespace app\common\model;use think\Db;class WxGoods extends Base{    public function updates(){        $data = request()->post();        $data['org_id'] = cur_org_id();        $result = validate('WxGoods')->check($data,[],'');        if(true !== $result){            $this->error = validate('WxGoods')->getError();            return false;        }        if(!empty($data['imgs'])){            $data['imgs']=implode(',',$data['imgs']);;        }        $cateInfo = Db::name('wx_goods_cate')            ->where('id',$data['cate_id'])            ->find();        if($cateInfo['is_water']==1){            if(empty($data['barrel_id'])){                $this->error = '请选择空桶';                return false;            }        }else{            $data['barrel_id'] = 0;        }        $id = $data['id'];        unset($data['id']);        if($id > 0){            $data['update_time'] = date('Y-m-d H:i:s');            $ret = $this->allowField(true)->save($data,['id'=>$id]);        }else{            $data['create_time'] = date('Y-m-d H:i:s');            $ret = $this->allowField(true)->save($data);        }        if(!$ret){            $this->error = '操作失败';            return false;        }        return true;    }    public function cateGoodsList($userId,$orgId,$cateId,$title,$desc_name='sale',$desc='desc'){        $map[] = ['org_id','=',$orgId];        $map[] = ['enable','=',1];        $map[] = ['del','=',0];        $cateInfo = [];        if($cateId > 0){            $map[] = ['cate_id','=',$cateId];            $cateInfo = Db::name('wx_goods_cate')                ->field('id,title,is_water,path')                ->where(['id'=>$cateId])->find();        }        if($title != ''){            $map[] = ['title','like','%'.$title.'%'];        }        $ret=Db::name('wx_goods')            ->field('id,title,price,img,price,label,dec')            ->where($map)            ->order([$desc_name=>$desc,'sort'=>'asc','id'=>'desc',])            ->select();        foreach ($ret as $k=>$v){                $ret[$k]['label_name']=$v['label'] >0?Db::name('wx_goods_label')                ->where('id',$v['label'])                ->value('title'):'';                $cart =  Db::name('wx_goods_cart')                    ->where('user_id',$userId)                    ->where('goods_id',$v['id'])                    ->find();            $ret[$k]['cart_num'] = $cart?$cart['nums']:0;            $ret[$k]['cartId'] = $cart?$cart['id']:0;        }        $data =[            'list'=>$ret,            'cateInfo'=>$cateInfo,        ];        return $data;    }    public function details($id,$userId){        $ret=Db::name('wx_goods')            ->field('id,title,price,img,imgs,sale,content,label')            ->where('id',$id)            ->where('del',0)            ->where('enable',1)            ->find();        if($ret){            $ret['isFav'] = 0;            $ret['imgs']=$ret['imgs']?explode(',',$ret['imgs']):[];            $ret['label_name']=$ret['label'] >0?Db::name('wx_goods_label')                ->where('id',$ret['label'])                ->value('title'):'';            $checkFav = Db::name('wx_goods_fav')                ->where('user_id',$userId)                ->where('goods_id',$ret['id'])                ->find();            if($checkFav){                $ret['isFav'] = 1;            }        }        return $ret;    }    public function getTjGoods($orgId){        $list = Db::name('wx_goods')            ->field('id,title,img,price,label')            ->where('del',0)            ->where('org_id',$orgId)            ->where('enable',1)            ->where('is_tj',1)            ->order(['sort'=>'asc','id'=>'desc'])            ->limit(3)            ->select();        foreach ($list  as $k=>$v){            $list[$k]['label_name'] = $v['label']>0?Db::name('wx_goods_label')                ->where('id',$v['label'])                ->value('title'):"";        }        return $list?$list:[];    }    public function getTjGoodsList($orgId,$page,$size){        $list = Db::name('wx_goods')            ->field('id,title,img,price,label,sale')            ->where('del',0)            ->where('org_id',$orgId)            ->where('enable',1)            ->where('is_tj',1)            ->order(['sort'=>'asc','id'=>'desc'])            ->page($page,$size)            ->select();        foreach ($list  as $k=>$v){            $list[$k]['label_name'] = $v['label']>0?Db::name('wx_goods_label')                ->where('id',$v['label'])                ->value('title'):"";        }        return $list?$list:[];    }    public function getIndexGoods($orgId){        $list = Db::name('wx_goods')            ->field('id,title,img,price,label,sale')            ->where('del',0)            ->where('org_id',$orgId)            ->where('enable',1)           // ->where('is_tj',0)            ->order(['sort'=>'asc','id'=>'desc'])            ->limit(10)            ->select();        foreach ($list  as $k=>$v){            $list[$k]['label_name'] = $v['label']>0?Db::name('wx_goods_label')                ->where('id',$v['label'])                ->value('title'):"";        }        return $list?$list:[];    }    public function getIndexGoodsList($orgId,$page,$size,$type,$desc_name='sale',$desc='desc',$kw=''){        $map = [];        if($kw!=''){            $map[] = ['title','like','%'.$kw.'%'];        }        if($type ==0){            $order= [$desc_name=>$desc,'sort'=>'asc','id'=>'desc'];        }else{            $order= ['sort'=>'asc','id'=>'desc'];        }        if($type ==1){            $map[] = ['label','=',1];        }elseif ($type==2){            $map[] = ['barrel_id','>',0];        }elseif ($type==3){            $map[] = ['is_tj','=',1];        }        $list = Db::name('wx_goods')            ->field('id,title,img,price,label,sale,dec')            ->where('del',0)            ->where('org_id',$orgId)            ->where('enable',1)            ->where($map)            ->order($order)            ->page($page,$size)            ->select();        foreach ($list  as $k=>$v){            $list[$k]['label_name'] = $v['label']>0?Db::name('wx_goods_label')                ->where('id',$v['label'])                ->value('title'):"";        }        return $list?$list:[];    }    public function favGoodsList($userId,$orgId,$page,$size){            $ids = Db::name('wx_goods_fav')                ->where('user_id',$userId)                ->group('goods_id')                ->column('goods_id');            if(empty($ids)){                $map[] = ['id','=',-1];            }else{                $map[] = ['id','in',$ids];            }            $list = Db::name('wx_goods')            ->field('id,title,img,price,label,sale,dec')            ->where('del',0)            ->where('org_id',$orgId)            ->where('enable',1)            ->where($map)            ->order(['sort'=>'asc','id'=>'desc'])            ->page($page,$size)            ->select();        foreach ($list  as $k=>$v){            $list[$k]['label_name'] = $v['label']>0?Db::name('wx_goods_label')                ->where('id',$v['label'])                ->value('title'):"";        }        return $list?$list:[];    }    public function barrelList($orgId,$page,$size){        $map[] = ['org_id','=',$orgId];        $map[] = ['del','=',0];        $map[] = ['enable','=',1];        $list = Db::name('wx_barrel')            ->field('id,title,cash_price,path')            ->where($map)            ->order(['sort'=>'asc','id'=>'desc'])            ->page($page,$size)            ->select();        return $list?$list:[];    }    public function myBarrelList($orgId,$userId,$page,$size){        $map[] = ['a.org_id','=',$orgId];        $map[] = ['a.del','=',0];        $map[] = ['a.user_id','=',$userId];        $list = Db::name('wx_cash')            ->alias('a')            ->join('wx_barrel b','a.barrel_id=b.id')            ->field('a.id,b.title,b.cash_price,b.path,a.num,a.amount')            ->where($map)            ->order(['a.id'=>'desc'])            ->page($page,$size)            ->select();        return $list?$list:[];    }    public function myRefundBarrelList($orgId,$userId,$page,$size){        $map[] = ['a.org_id','=',$orgId];        $map[] = ['a.del','=',0];        $map[] = ['a.user_id','=',$userId];        $list = Db::name('wx_cash_refund')            ->alias('a')            ->join('wx_barrel b','a.barrel_id=b.id')            ->field('a.id,b.title,b.cash_price,b.path,a.num,a.amount,a.status,a.create_time,a.remark')            ->where($map)            ->order(['a.id'=>'desc'])            ->page($page,$size)            ->select();        foreach ($list as $k=>$v){            $list[$k]['status_name'] =isset(model('WxCash')->status[$v['status']])?model('WxCash')->status[$v['status']]:'';            $list[$k]['remark'] = $v['remark']?$v['remark']:"";        }        return $list?$list:[];    }}
 |