You've already forked qlg.tsgz.moe
							
							
		
			
				
	
	
		
			119 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			119 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| <?php
 | |
| namespace wstmart\common\model;
 | |
| use think\Db;
 | |
| use wstmart\common\model\Shops;
 | |
| /**
 | |
|  * ============================================================================
 | |
|  * 收藏类
 | |
|  */
 | |
| class Favorites extends Base{
 | |
| 	/**
 | |
| 	 * 关注的商品列表
 | |
| 	 */
 | |
| 	public function listGoodsQuery(){
 | |
| 		$pagesize = input("param.pagesize/d");
 | |
| 		$userId = (int)session('WST_USER.userId');
 | |
| 		$page = Db::name("favorites")->alias('f')
 | |
|     	->join('__GOODS__ g','g.goodsId = f.targetId','left')
 | |
|     	->join('__SHOPS__ s','s.shopId = g.shopId','left')
 | |
|     	->field('f.favoriteId,f.targetId,g.goodsId,g.goodsName,g.goodsImg,g.shopPrice,g.marketPrice,g.saleNum,g.appraiseNum,s.shopId,s.shopName')
 | |
|     	->where(['f.userId'=> $userId,'favoriteType'=> 0])
 | |
|     	->order('f.favoriteId desc')
 | |
|     	->paginate($pagesize)->toArray();
 | |
| 		foreach ($page['Rows'] as $key =>$v){
 | |
| 			//认证
 | |
| 			$shop = new Shops();
 | |
| 			$accreds = $shop->shopAccreds($v["shopId"]);
 | |
| 			$page['Rows'][$key]['accreds'] = $accreds;
 | |
| 		}
 | |
| 		return $page;
 | |
| 	}
 | |
| 	/**
 | |
| 	 * 关注的店铺列表
 | |
| 	 */
 | |
| 	public function listShopQuery(){
 | |
| 		$pagesize = input("param.pagesize/d");
 | |
| 		$userId = (int)session('WST_USER.userId');
 | |
| 		$page = Db::name("favorites")->alias('f')
 | |
| 		->join('__SHOPS__ s','s.shopId = f.targetId','left')
 | |
| 		->field('f.favoriteId,f.targetId,s.shopId,s.shopName,s.shopImg')
 | |
| 		->where(['f.userId'=> $userId,'favoriteType'=> 1])
 | |
| 		->order('f.favoriteId desc')
 | |
| 		->paginate($pagesize)->toArray();
 | |
| 		foreach ($page['Rows'] as $key =>$v){
 | |
| 			//商品列表
 | |
| 			$goods = db('goods')->where(['dataFlag'=> 1,'isSale'=>1,'goodsStatus'=> 1,'shopId'=> $v["shopId"]])->field('goodsId,goodsName,shopPrice,goodsImg')
 | |
| 			->limit(10)->order('saleTime desc')->select();
 | |
| 			$page['Rows'][$key]['goods'] = $goods;
 | |
| 		}
 | |
| 		return $page;
 | |
| 	}
 | |
| 	/**
 | |
| 	 * 取消关注
 | |
| 	 */
 | |
| 	public function del(){
 | |
| 		$id = input("param.id");
 | |
| 		$type = input("param.type/d");
 | |
| 		$userId = (int)session('WST_USER.userId');
 | |
| 		$ids = explode(',',$id);
 | |
| 		
 | |
| 		if(empty($ids))return WSTReturn("取消失败", -1);
 | |
| 		$rs = $this->where(['favoriteId'=> ['in',$ids],'favoriteType'=> $type,'userId'=>$userId])->delete();
 | |
| 		if(false !== $rs){
 | |
| 			return WSTReturn("取消成功", 1);
 | |
| 		}else{
 | |
| 			return WSTReturn($this->getError(),-1);
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	
 | |
| 	/**
 | |
| 	 * 新增关注
 | |
| 	 */
 | |
| 	public function add(){
 | |
| 	    $id = input("param.id/d");
 | |
| 		$type = input("param.type/d");
 | |
| 		$userId = (int)session('WST_USER.userId');
 | |
| 		if($userId==0)return WSTReturn('关注失败,请先登录');
 | |
| 		//判断记录是否存在
 | |
| 		$isFind = false;
 | |
| 		if($type==0){
 | |
| 			$c = Db::name('goods')->where(['goodsStatus'=>1,'dataFlag'=>1,'goodsId'=>$id])->count();
 | |
| 			$isFind = ($c>0);
 | |
| 		}else{
 | |
| 			$c = Db::name('shops')->where(['shopStatus'=>1,'dataFlag'=>1,'shopId'=>$id])->count();
 | |
| 			$isFind = ($c>0);
 | |
| 		}
 | |
| 		if(!$isFind)return WSTReturn("关注失败,无效的关注对象", -1);
 | |
| 		$data = [];
 | |
| 		$data['userId'] = $userId;
 | |
| 		$data['favoriteType'] = $type;
 | |
| 		$data['targetId'] = $id;
 | |
| 		//判断是否已关注
 | |
| 		$rc = $this->where($data)->count();
 | |
| 		if($rc>0)return WSTReturn("关注成功", 1);
 | |
| 		$data['createTime'] = date('Y-m-d H:i:s');
 | |
| 		$rs = $this->save($data);
 | |
| 		if(false !== $rs){
 | |
| 			return WSTReturn("关注成功", 1,['fId'=>$this->favoriteId]);
 | |
| 		}else{
 | |
| 			return WSTReturn($this->getError(),-1);
 | |
| 		}
 | |
| 	}
 | |
| 	/**
 | |
| 	 * 判断是否已关注
 | |
| 	 */
 | |
| 	public function checkFavorite($id,$type,$uId=0){
 | |
| 		$userId = ($uId==0)?(int)session('WST_USER.userId'):$uId;
 | |
| 		$rs = $this->where(['userId'=>$userId,'favoriteType'=>$type,'targetId'=>$id])->find();
 | |
| 		return empty($rs)?0:$rs['favoriteId'];
 | |
| 	}
 | |
| 	/**
 | |
| 	 * 关注数
 | |
| 	 */
 | |
| 	public function followNum($id,$type){
 | |
| 		$rs = $this->where(['favoriteType'=>$type,'targetId'=>$id])->count();
 | |
| 		return $rs;
 | |
| 	}
 | |
| }
 |