<?php
namespace wstmart\app\model;
use wstmart\common\model\Favorites as CFavorites;
/**
 * ============================================================================
 *
 * ============================================================================
 * 收藏类
 */
class Favorites extends CFavorites{
	/**
	* 获取会员关注商品数和关注商家数
	*/ 
	function getFavoritesNum($userId){
		$data['goodsFavoritesNum'] = $this->where(['userId'=>$userId,'favoriteType'=>0])->count();
		$data['shopFavoritesNum'] = $this->where(['userId'=>$userId,'favoriteType'=>1])->count();
	    return $data;
	}
	/**
	* 获取关注商家数
	*/ 
	function getFavoritesShopsNum($shopId=0){
		$shopId=$shopId==0?(int)input('shopId'):$shopId;
		return $this->where(['targetId'=>$shopId,'favoriteType'=>1])->cache('true',3600)->count();
	}
	/**
	 * 获取商品是否关注
	 */
	function isGetFavorites($goodsId,$userId){
		$goodsId=$goodsId==0?(int)input('goodsId'):$goodsId;
		$userId=$userId==0?(int)input('userId'):$userId;
		return $this->where(['userId'=>$userId,'favoriteType'=>0,'targetId'=>$goodsId])->find();
	}
	/**
	 * 上新的店铺列表
	 */
	public function listShopQuery(){
		$pagesize = input("param.pagesize/d",5);
		$goodsSize = input("param.goodsSize/d",6);
		$userId = 0;//(int)session('WST_USER.userId');0就是显示所有商铺
		if($userId){
			$page = db("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])//'s.shopId'=>['in','1,2,3,6,20']])			
			->order('f.favoriteId desc')
			->paginate($pagesize)->toArray();
			
		}else{
			$page = db("shops s")
				->join('__GOODS__ g','s.shopId = g.shopId','left')
				->field('s.shopId,count(goodsId) as goodsNum,s.shopName,s.shopImg')
				->where(['g.isSale'=>1, 'g.goodsStatus'=>1,'g.dataFlag'=>1])
				->group('g.shopId')
				->order('saleTime DESC')
				->cache(true,7200)
				->paginate($pagesize)
				->toArray();
		}
		foreach ($page['Rows'] as  &$v){
			$field = 'goodsId,goodsImg,saleTime';//goodsName,shopPrice,
			$goods = db('goods')
				->where(['dataFlag'=> 1,'isSale'=>1,'goodsStatus'=> 1,'shopId'=> $v["shopId"]])
				->field($field)
				->cache(true,7200)
				->limit($goodsSize)
				->order('saleTime desc')
				->select();
			if($goods){
				$v['newTime'] = $goods['0']['saleTime'];			
			}else{
				$v['newTime'] = date('Y-m-d');
			}
			$v['goods'] = $goods;			
		}
		return $page;
	}
}