Commit 8ff95974 authored by liuyuzhen's avatar liuyuzhen

测试数据

parent c3ef29a3
...@@ -546,13 +546,13 @@ class StoreServiceModel extends \Business\AbstractModel{ ...@@ -546,13 +546,13 @@ class StoreServiceModel extends \Business\AbstractModel{
foreach($allStores as &$store){ foreach($allStores as &$store){
$store['isPurchased'] = \Our\ApiConst::zero; $store['isPurchased'] = \Our\ApiConst::zero;
} }
$memberStoreIds = null; $memberStores = null;
if($memberId){ if($memberId){
$favoritesStoreDao = \DAO\FavoritesStoreModel::getInstance(); $favoritesStoreDao = \DAO\FavoritesStoreModel::getInstance();
$memberStoreIds = \Our\RedisHelper::cachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(), array(&$favoritesStoreDao, 'selectList'), array(array('member_id'=>$memberId,'fav_from'=>\Our\ApiConst::scanFavor),'distinct(store_id) as store_id'), \Our\ApiConst::oneHour,array($memberId)); $memberStoreList = \Our\RedisHelper::cachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(), array(&$favoritesStoreDao, 'selectList'), array(array('member_id'=>$memberId,'fav_from'=>\Our\ApiConst::scanFavor),'store_id,fav_time'), \Our\ApiConst::oneHour,array($memberId));
//$storeMemberDao->getList(array('member_id'=>$memberId,'type'=>\Our\ApiConst::storeQrcodeMember),'distinct(store_id) as store_id') //$storeMemberDao->getList(array('member_id'=>$memberId,'type'=>\Our\ApiConst::storeQrcodeMember),'distinct(store_id) as store_id')
if($memberStoreIds){ if($memberStoreList){
$memberStoreIds = array_column($memberStoreIds,'store_id'); $memberStores = $this->getPurchasedStoreClass($memberStoreList,$gcId);
} }
} }
...@@ -581,24 +581,14 @@ class StoreServiceModel extends \Business\AbstractModel{ ...@@ -581,24 +581,14 @@ class StoreServiceModel extends \Business\AbstractModel{
$purchasedStore = array(); $purchasedStore = array();
if($signStores&&in_array($goodsClass['gcId'],array_keys($signStores))){//如果当前分类存在对应签约店铺 if($signStores&&in_array($goodsClass['gcId'],array_keys($signStores))){//如果当前分类存在对应签约店铺
$exitStore = $allStores[$signStores[$goodsClass['gcId']]]; $exitStore = $allStores[$signStores[$goodsClass['gcId']]];
$existStoreIds = $signStores[$goodsClass['gcId']];
}else if($serviceStores&&in_array($goodsClass['gcId'],array_keys($serviceStores))){ }else if($serviceStores&&in_array($goodsClass['gcId'],array_keys($serviceStores))){
$exitStore = $allStores[$serviceStores[$goodsClass['gcId']]]; $exitStore = $allStores[$serviceStores[$goodsClass['gcId']]];
$existStoreIds = $serviceStores[$goodsClass['gcId']];
}else if($expressStores&&in_array($goodsClass['gcId'],array_keys($expressStores))){ }else if($expressStores&&in_array($goodsClass['gcId'],array_keys($expressStores))){
$exitStore = $allStores[$expressStores[$goodsClass['gcId']]]; $exitStore = $allStores[$expressStores[$goodsClass['gcId']]];
$existStoreIds = $expressStores[$goodsClass['gcId']]; }
} if($memberStores){
if($memberStoreIds){ if($memberStores&&in_array($goodsClass['gcId'],array_keys($memberStores))){
$existSignStores = array_intersect($signStores,$memberStoreIds); $purchasedStore = $allStores[$memberStores[$goodsClass['gcId']]];
$existServiceStores = array_intersect($serviceStores,$memberStoreIds);
$existExpressStores = array_intersect($expressStores,$memberStoreIds);
if($existSignStores&&in_array($goodsClass['gcId'],array_keys($existSignStores))&&$existSignStores[$goodsClass['gcId']]!=$existStoreIds){
$purchasedStore = $allStores[$existSignStores[$goodsClass['gcId']]];
}else if($existServiceStores&&in_array($goodsClass['gcId'],array_keys($existServiceStores))&&$existServiceStores[$goodsClass['gcId']]!=$existStoreIds){
$purchasedStore = $allStores[$existServiceStores[$goodsClass['gcId']]];
}else if($existExpressStores&&in_array($goodsClass['gcId'],array_keys($existExpressStores))&&$existExpressStores[$goodsClass['gcId']]!=$existStoreIds){
$purchasedStore = $allStores[$existExpressStores[$goodsClass['gcId']]];
} }
if($purchasedStore){ if($purchasedStore){
$purchasedStore['isPurchased'] = \Our\ApiConst::one; $purchasedStore['isPurchased'] = \Our\ApiConst::one;
...@@ -626,6 +616,35 @@ class StoreServiceModel extends \Business\AbstractModel{ ...@@ -626,6 +616,35 @@ class StoreServiceModel extends \Business\AbstractModel{
} }
public function getPurchasedStoreClass($memberStoreList,$gcId){
$memberStoreIds = array_column($memberStoreList,'store_id');
$signStoreClassSql = ' store_id in ('.implode(',',$memberStoreIds).') and is_charged=1 and gc_parent_id ='.$gcId;
$qmStoreClassDao = \DAO\QmStoreClassModel::getInstance();
$signClassStores = $qmStoreClassDao->selectByWhere($signStoreClassSql,'store_id,gc_id');
if($signClassStores){
$return = array();
foreach($memberStoreList as $tempStore){
$storeFlag = false;
foreach($signClassStores as $signClass){
if($tempStore['store_id']==$signClass['store_id']){
if($storeFlag){
break;
}
if(isset($return[$signClass['gc_id']])&&$return[$signClass['gc_id']]){
continue;
}
$return[$signClass['gc_id']] = $signClass['store_id'];
$storeFlag = true;
}
}
}
return $return;
}
return false;
}
/** /**
* 获取一级分类在签约店铺中的签约分类 * 获取一级分类在签约店铺中的签约分类
* @param $gcId 一级分类对应gcId * @param $gcId 一级分类对应gcId
...@@ -639,7 +658,7 @@ class StoreServiceModel extends \Business\AbstractModel{ ...@@ -639,7 +658,7 @@ class StoreServiceModel extends \Business\AbstractModel{
$signStoreIds = $storeRedis->find($signStoreKey, \Our\ApiConst::oneHour); $signStoreIds = $storeRedis->find($signStoreKey, \Our\ApiConst::oneHour);
//签约店铺存在 //签约店铺存在
if($signStoreIds){ if($signStoreIds){
$return = $this->getStoreClassesByStoreIds($signStoreIds,$gcId); $return = $this->getSignStoreClassesByStoreIds($signStoreIds,$gcId,$position);
return $return; return $return;
} }
return false; return false;
...@@ -656,11 +675,11 @@ class StoreServiceModel extends \Business\AbstractModel{ ...@@ -656,11 +675,11 @@ class StoreServiceModel extends \Business\AbstractModel{
$storeRedis = \Redis\Db6\StoreRedisModel::getInstance(); $storeRedis = \Redis\Db6\StoreRedisModel::getInstance();
$signStoreKey = \Our\NameConst::signStoreIdsPrefix.crc32(serialize($position)); $signStoreKey = \Our\NameConst::signStoreIdsPrefix.crc32(serialize($position));
$serviceStoreKey = \Our\NameConst::serviceStoreIdsPrefix.crc32(serialize($position)); $serviceStoreKey = \Our\NameConst::serviceStoreIdsPrefix.crc32(serialize($position));
$signStoreIds = $storeRedis->find($signStoreKey, \Our\ApiConst::oneHour); //$signStoreIds = $storeRedis->find($signStoreKey, \Our\ApiConst::oneHour);
$serviceStoreIds = $storeRedis->find($serviceStoreKey, \Our\ApiConst::oneHour); $serviceStoreIds = $storeRedis->find($serviceStoreKey, \Our\ApiConst::oneHour);
if($signStoreIds&&$serviceStoreIds){ /*if($signStoreIds&&$serviceStoreIds){
$serviceStoreIds = array_diff($serviceStoreIds,$signStoreIds); $serviceStoreIds = array_diff($serviceStoreIds,$signStoreIds);
} }*/
//签约店铺存在 //签约店铺存在
if($serviceStoreIds){ if($serviceStoreIds){
$return = $this->getStoreClassesByStoreIds($serviceStoreIds,$gcId); $return = $this->getStoreClassesByStoreIds($serviceStoreIds,$gcId);
...@@ -672,20 +691,20 @@ class StoreServiceModel extends \Business\AbstractModel{ ...@@ -672,20 +691,20 @@ class StoreServiceModel extends \Business\AbstractModel{
public function getExpressStores($gcId,$position){ public function getExpressStores($gcId,$position){
ksort($position); ksort($position);
$storeDao = \DAO\StoreModel::getInstance(); $storeDao = \DAO\StoreModel::getInstance();
$storeRedis = \Redis\Db6\StoreRedisModel::getInstance(); /*$storeRedis = \Redis\Db6\StoreRedisModel::getInstance();
$signStoreKey = \Our\NameConst::signStoreIdsPrefix.crc32(serialize($position)); $signStoreKey = \Our\NameConst::signStoreIdsPrefix.crc32(serialize($position));
$serviceStoreKey = \Our\NameConst::serviceStoreIdsPrefix.crc32(serialize($position)); $serviceStoreKey = \Our\NameConst::serviceStoreIdsPrefix.crc32(serialize($position));
$signStoreIds = $storeRedis->find($signStoreKey, \Our\ApiConst::oneHour); $signStoreIds = $storeRedis->find($signStoreKey, \Our\ApiConst::oneHour);
$serviceStoreIds = $storeRedis->find($serviceStoreKey, \Our\ApiConst::oneHour); $serviceStoreIds = $storeRedis->find($serviceStoreKey, \Our\ApiConst::oneHour);*/
$expressStores = $storeDao->getExpressStores('store_id'); $expressStores = $storeDao->getExpressStores('store_id');
if($expressStores){ if($expressStores){
$expressStoreIds = array_column($expressStores,'store_id'); $expressStoreIds = array_column($expressStores,'store_id');
if($signStoreIds){ /*if($signStoreIds){
$expressStoreIds = array_diff($expressStoreIds,$signStoreIds); $expressStoreIds = array_diff($expressStoreIds,$signStoreIds);
} }
if($serviceStoreIds){ if($serviceStoreIds){
$expressStoreIds = array_diff($expressStoreIds,$serviceStoreIds); $expressStoreIds = array_diff($expressStoreIds,$serviceStoreIds);
} }*/
if($expressStoreIds){ if($expressStoreIds){
$return = $this->getStoreClassesByStoreIds($expressStoreIds,$gcId); $return = $this->getStoreClassesByStoreIds($expressStoreIds,$gcId);
return $return; return $return;
...@@ -694,16 +713,58 @@ class StoreServiceModel extends \Business\AbstractModel{ ...@@ -694,16 +713,58 @@ class StoreServiceModel extends \Business\AbstractModel{
return false; return false;
} }
/**
* 获取签约店铺的签约分类
* @param $signStoreIds
* @param $gcId
* @return array|bool
*/
public function getSignStoreClassesByStoreIds($signStoreIds,$gcId,$position){
$signStoreClassSql = ' store_id in ('.implode(',',$signStoreIds).') and is_charged=1 and class_style = 2 and gc_parent_id ='.$gcId;
$qmStoreClassDao = \DAO\QmStoreClassModel::getInstance();
$signClassStores = $qmStoreClassDao->selectByWhere($signStoreClassSql,'store_id,gc_id,sign_rang,longitude,latitude');
//$signClassStores = $storeGoodsClassDao->selectByWhere($signStoreClassSql,'store_id,gc_id');
if($signClassStores){
$return = array();
foreach($signClassStores as $signClass){
$storeDistance = \Our\CommonExtension::getDistance($position['lat'],$position['lng'],$signClass['latitude'],$signClass['longitude']);
if($storeDistance <= $signClass['sign_rang']){
if($return[$signClass['gc_id']]){
continue;
}
$return[$signClass['gc_id']] = $signClass['store_id'];
}
}
return $return;
}
return false;
}
public function getStoreClassesByStoreIds($storeIds,$gcId){ public function getStoreClassesByStoreIds($storeIds,$gcId){
$signStoreClassSql = ' store_id in ('.implode(',',$storeIds).') and is_charged=1 and gc_parent_id ='.$gcId; $signStoreClassSql = ' store_id in ('.implode(',',$storeIds).') and is_charged=1 and gc_parent_id ='.$gcId;
$qmStoreClassDao = \DAO\QmStoreClassModel::getInstance(); $qmStoreClassDao = \DAO\QmStoreClassModel::getInstance();
$signClassStores = $qmStoreClassDao->selectByWhere($signStoreClassSql,'store_id,gc_id'); $signClassStores = $qmStoreClassDao->selectByWhere($signStoreClassSql,'store_id,gc_id');
//$signClassStores = $storeGoodsClassDao->selectByWhere($signStoreClassSql,'store_id,gc_id'); //$signClassStores = $storeGoodsClassDao->selectByWhere($signStoreClassSql,'store_id,gc_id');
if($signClassStores){ if($signClassStores){
$return = array(); $return = array();
shuffle($signClassStores);
$gcIds = array_unique(array_column($signClassStores,'gc_id'));
foreach($gcIds as $tempGcId){
if($return[$tempGcId]){
break;
}
foreach($signClassStores as $signClass){ foreach($signClassStores as $signClass){
if($tempGcId==$signClass['gc_id']){
if($return[$signClass['gc_id']]){
break;
}
$return[$signClass['gc_id']] = $signClass['store_id']; $return[$signClass['gc_id']] = $signClass['store_id'];
} }
}
}
return $return; return $return;
} }
return false; return false;
......
...@@ -33,12 +33,16 @@ class FavoritesStoreModel extends \DAO\AbstractModel { ...@@ -33,12 +33,16 @@ class FavoritesStoreModel extends \DAO\AbstractModel {
return $this->db->select($field)->from($this->_tableName)->join('han_store',"han_favorites_store.store_id = han_store.store_id",'inner')->join('han_store_score_statistics',"han_favorites_store.store_id = han_store_score_statistics.store_id",'left')->where(['han_favorites_store.member_id'=>$memberId,'fav_type'=>1])->where($where)->page($pageIndex,$pageSize)->order('fav_time','DESC')->fetchAll(); return $this->db->select($field)->from($this->_tableName)->join('han_store',"han_favorites_store.store_id = han_store.store_id",'inner')->join('han_store_score_statistics',"han_favorites_store.store_id = han_store_score_statistics.store_id",'left')->where(['han_favorites_store.member_id'=>$memberId,'fav_type'=>1])->where($where)->page($pageIndex,$pageSize)->order('fav_time','DESC')->fetchAll();
} }
public function selectList($where,$field = \Our\NameConst::allField){ public function selectList($where,$field = \Our\NameConst::allField,$order=array('fav_time'=>'desc')){
$this->setDb($this->dbName); $this->setDb($this->dbName);
if(is_array($where)){ if(is_array($where)){
$where = $this->db->getSqlWhereByArray($where); $where = $this->db->getSqlWhereByArray($where);
} }
return $this->db->select($field)->from($this->_tableName)->where($where)->fetchAll(); $this->db->select($field)->from($this->_tableName)->where($where);
foreach($order as $key=>$val){
$this->db->order($key,$val);
}
return $this->db->fetchAll();
} }
public function getOne($field,$where){ public function getOne($field,$where){
......
...@@ -277,7 +277,7 @@ resources.database.params.hostname = "127.0.0.1" ...@@ -277,7 +277,7 @@ resources.database.params.hostname = "127.0.0.1"
resources.database.params.port = 3306 resources.database.params.port = 3306
resources.database.params.database = "qmcs" resources.database.params.database = "qmcs"
resources.database.params.username = "root" resources.database.params.username = "root"
resources.database.params.password = "root" resources.database.params.password = "123456"
resources.database.params.charset = "UTF8" resources.database.params.charset = "UTF8"
resources.database.params.driver_options.1002 = "SET NAMES utf8" resources.database.params.driver_options.1002 = "SET NAMES utf8"
...@@ -287,7 +287,7 @@ resources.database.slave.params.hostname = "127.0.0.1" ...@@ -287,7 +287,7 @@ resources.database.slave.params.hostname = "127.0.0.1"
resources.database.slave.params.port = 3306 resources.database.slave.params.port = 3306
resources.database.slave.params.database = "qmcs" resources.database.slave.params.database = "qmcs"
resources.database.slave.params.username = "root" resources.database.slave.params.username = "root"
resources.database.slave.params.password = "root" resources.database.slave.params.password = "123456"
resources.database.slave.params.charset = "UTF8" resources.database.slave.params.charset = "UTF8"
resources.database.slave.params.driver_options.1002 = "SET NAMES utf8" resources.database.slave.params.driver_options.1002 = "SET NAMES utf8"
......
...@@ -3,11 +3,11 @@ date_default_timezone_set("Asia/Shanghai"); ...@@ -3,11 +3,11 @@ date_default_timezone_set("Asia/Shanghai");
mb_internal_encoding("UTF-8"); mb_internal_encoding("UTF-8");
define("TIMESTAMP",time()); define("TIMESTAMP",time());
define("APPLICATION_PATH", realpath(dirname(__FILE__) . '/../')); define("APPLICATION_PATH", realpath(dirname(__FILE__) . '/../'));
define("APP_ENV",ini_get('yaf.environ')); define("APP_ENV",'ccw');
if(APP_ENV=='develop'){ if(APP_ENV=='develop'){
error_reporting(E_ALL); error_reporting(E_ALL);
} }
if(APP_ENV=='test' || APP_ENV=='pre' ||APP_ENV=='ccwdevelop'){ if(APP_ENV=='test' || APP_ENV=='pre' ||APP_ENV=='ccwdevelop'|| APP_ENV=='ccw'){
if(isset($_POST['data']['debug'])&&!empty($_POST['data']['debug'])){ if(isset($_POST['data']['debug'])&&!empty($_POST['data']['debug'])){
// define("DEBUG",1); // define("DEBUG",1);
error_reporting(E_ALL); error_reporting(E_ALL);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment