Commit a7523428 authored by liuyuzhen's avatar liuyuzhen

购买过的店铺

parent b6e9bb74
...@@ -548,9 +548,12 @@ class StoreServiceModel extends \Business\AbstractModel{ ...@@ -548,9 +548,12 @@ class StoreServiceModel extends \Business\AbstractModel{
} }
$memberStoreIds = null; $memberStoreIds = null;
if($memberId){ if($memberId){
$storeMemberDao = \DAO\StoreMemberModel::getInstance(); $favoritesStoreDao = \DAO\FavoritesStoreModel::getInstance();
$memberStoreIds = \Our\RedisHelper::cachedFunction(\Redis\Db0\StoreMemberRedisModel::getInstance(), array(&$storeMemberDao, 'getList'), array(array('member_id'=>$memberId,'type'=>\Our\ApiConst::storeQrcodeMember),'distinct(store_id) as store_id'), \Our\ApiConst::oneHour,array($memberId)); $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));
//$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){
$memberStoreIds = array_column($memberStoreIds,'store_id');
}
} }
...@@ -573,6 +576,9 @@ class StoreServiceModel extends \Business\AbstractModel{ ...@@ -573,6 +576,9 @@ class StoreServiceModel extends \Business\AbstractModel{
$returnStores = array(); $returnStores = array();
$returnStores['gcName'] = $goodsClass['gcName']; $returnStores['gcName'] = $goodsClass['gcName'];
$existStoreIds = null; $existStoreIds = null;
$returnStores['stores'] = null;
$exitStore = 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']]; $existStoreIds = $signStores[$goodsClass['gcId']];
...@@ -583,30 +589,31 @@ class StoreServiceModel extends \Business\AbstractModel{ ...@@ -583,30 +589,31 @@ class StoreServiceModel extends \Business\AbstractModel{
$exitStore = $allStores[$expressStores[$goodsClass['gcId']]]; $exitStore = $allStores[$expressStores[$goodsClass['gcId']]];
$existStoreIds = $expressStores[$goodsClass['gcId']]; $existStoreIds = $expressStores[$goodsClass['gcId']];
} }
if(isset($exitStore)&&$exitStore){
$returnStores['stores'][] =$exitStore;
}
if($memberStoreIds){ if($memberStoreIds){
$existSignStores = array_intersect($signStores,$memberStoreIds); $existSignStores = array_intersect($signStores,$memberStoreIds);
$existServiceStores = array_intersect($serviceStores,$memberStoreIds); $existServiceStores = array_intersect($serviceStores,$memberStoreIds);
$existExpressStores = array_intersect($expressStores,$memberStoreIds); $existExpressStores = array_intersect($expressStores,$memberStoreIds);
$purchasedStore = null;
if($existSignStores&&in_array($goodsClass['gcId'],array_keys($existSignStores))&&$existSignStores[$goodsClass['gcId']]!=$existStoreIds){ if($existSignStores&&in_array($goodsClass['gcId'],array_keys($existSignStores))&&$existSignStores[$goodsClass['gcId']]!=$existStoreIds){
$purchasedStore = $allStores[$existSignStores[$goodsClass['gcId']]]; $purchasedStore = $allStores[$existSignStores[$goodsClass['gcId']]];
$returnStores['stores'][] = $allStores[$existSignStores[$goodsClass['gcId']]];
}else if($existServiceStores&&in_array($goodsClass['gcId'],array_keys($existServiceStores))&&$existServiceStores[$goodsClass['gcId']]!=$existStoreIds){ }else if($existServiceStores&&in_array($goodsClass['gcId'],array_keys($existServiceStores))&&$existServiceStores[$goodsClass['gcId']]!=$existStoreIds){
$purchasedStore = $allStores[$existServiceStores[$goodsClass['gcId']]]; $purchasedStore = $allStores[$existServiceStores[$goodsClass['gcId']]];
$returnStores['stores'][] = $allStores[$existServiceStores[$goodsClass['gcId']]];
}else if($existExpressStores&&in_array($goodsClass['gcId'],array_keys($existExpressStores))&&$existExpressStores[$goodsClass['gcId']]!=$existStoreIds){ }else if($existExpressStores&&in_array($goodsClass['gcId'],array_keys($existExpressStores))&&$existExpressStores[$goodsClass['gcId']]!=$existStoreIds){
$purchasedStore = $allStores[$existExpressStores[$goodsClass['gcId']]]; $purchasedStore = $allStores[$existExpressStores[$goodsClass['gcId']]];
$returnStores['stores'][] = $allStores[$existExpressStores[$goodsClass['gcId']]];
} }
if($purchasedStore){ if($purchasedStore){
$purchasedStore['isPurchased'] = \Our\ApiConst::one; $purchasedStore['isPurchased'] = \Our\ApiConst::one;
}
}
if($exitStore&&$purchasedStore&&$exitStore['storeId']==$purchasedStore['storeId']){
$returnStores['stores'][] = $purchasedStore; $returnStores['stores'][] = $purchasedStore;
}else{
if(isset($exitStore)&&$exitStore){
$returnStores['stores'][] =$exitStore;
}
if(isset($purchasedStore)&&$purchasedStore){
$returnStores['stores'][] =$purchasedStore;
} }
} }
if($returnStores['stores']){ if($returnStores['stores']){
$return[] = $returnStores; $return[] = $returnStores;
} }
......
...@@ -27,6 +27,7 @@ class FavoritesStoreModel extends \DAO\AbstractModel { ...@@ -27,6 +27,7 @@ class FavoritesStoreModel extends \DAO\AbstractModel {
public function init(){ public function init(){
} }
public function getList($where,$field,$pageIndex,$pageSize,$memberId){ public function getList($where,$field,$pageIndex,$pageSize,$memberId){
$this->setDb($this->dbName); $this->setDb($this->dbName);
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();
...@@ -47,15 +48,30 @@ class FavoritesStoreModel extends \DAO\AbstractModel { ...@@ -47,15 +48,30 @@ class FavoritesStoreModel extends \DAO\AbstractModel {
public function insert($param){ public function insert($param){
$this->setDb(\Our\DbNameConst::masterDBConnectName); $this->setDb(\Our\DbNameConst::masterDBConnectName);
return $this->db->insert($this->_tableName)->rows($param)->execute(); $result = $this->db->insert($this->_tableName)->rows($param)->execute();
if($result){
if($param&&(isset($param['member_id'])&&$param['member_id'])){
\Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(), array(&$this, 'selectList'), array() ,array($param['member_id']));
}
}
return $result;
} }
public function update($param,$where,$del = false,$memberId = null){ public function update($param,$where,$del = false,$memberId = null){
$this->setDb(\Our\DbNameConst::masterDBConnectName); $this->setDb(\Our\DbNameConst::masterDBConnectName);
if($del){ if($del){
return $this->db->update($this->_tableName)->rows($param)->where(array('member_id'=>$memberId))->where($where)->execute(); $result = $this->db->update($this->_tableName)->rows($param)->where(array('member_id'=>$memberId))->where($where)->execute();
if($result){
\Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(), array(&$this, 'selectList'), array() ,array($memberId));
}
return $result;
} }
return $this->db->update($this->_tableName)->rows($param)->where($where)->execute(); $result = $this->db->update($this->_tableName)->rows($param)->where($where)->execute();
if($result){
$temp = $this->getOne('member_id',$param);
\Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(), array(&$this, 'selectList'), array() ,array($temp['member_id']));
}
return $result;
} }
public function getFavoritesStoreCount($where){ public function getFavoritesStoreCount($where){
$this->setDb($this->dbName); $this->setDb($this->dbName);
...@@ -84,7 +100,13 @@ class FavoritesStoreModel extends \DAO\AbstractModel { ...@@ -84,7 +100,13 @@ class FavoritesStoreModel extends \DAO\AbstractModel {
$this->setDb(\Our\DbNameConst::masterDBConnectName); $this->setDb(\Our\DbNameConst::masterDBConnectName);
$baseSql = "insert into {$this->_tableName}(member_id,store_id,fav_type,fav_time) values({0},{1},1,{2}) ON DUPLICATE KEY UPDATE fav_type=1,fav_time=VALUES (fav_time)"; $baseSql = "insert into {$this->_tableName}(member_id,store_id,fav_type,fav_time) values({0},{1},1,{2}) ON DUPLICATE KEY UPDATE fav_type=1,fav_time=VALUES (fav_time)";
$sql = \Our\Common::format($baseSql, $data['member_id'], $data['store_id'],$data['fav_time']); $sql = \Our\Common::format($baseSql, $data['member_id'], $data['store_id'],$data['fav_time']);
return $this->db->insert($this->_tableName)->query($sql); $result = $this->db->insert($this->_tableName)->query($sql);
if($result){
if($data&&(isset($data['member_id'])&&$data['member_id'])){
\Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(), array(&$this, 'selectList'), array() ,array($data['member_id']));
}
}
return $result;
} }
public function insertAll($datas){ public function insertAll($datas){
...@@ -94,6 +116,7 @@ class FavoritesStoreModel extends \DAO\AbstractModel { ...@@ -94,6 +116,7 @@ class FavoritesStoreModel extends \DAO\AbstractModel {
$insertAllSql = $baseSql; $insertAllSql = $baseSql;
for ($i = 0; $i < count($datas); $i++) { for ($i = 0; $i < count($datas); $i++) {
$addSql = \Our\Common::format("('{0}','{1}','{2}','{3}'),", $datas[$i]['member_id'], $datas[$i]['store_id'], $datas[$i]['fav_from'],TIMESTAMP); $addSql = \Our\Common::format("('{0}','{1}','{2}','{3}'),", $datas[$i]['member_id'], $datas[$i]['store_id'], $datas[$i]['fav_from'],TIMESTAMP);
\Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(), array(&$this, 'selectList'), array() ,array($datas[$i]['member_id']));
$insertAllSql .= $addSql; $insertAllSql .= $addSql;
if ($i % 1000 == 0 && $i != 0) { if ($i % 1000 == 0 && $i != 0) {
$insertAllSql = rtrim($insertAllSql, ','); $insertAllSql = rtrim($insertAllSql, ',');
...@@ -130,6 +153,7 @@ class FavoritesStoreModel extends \DAO\AbstractModel { ...@@ -130,6 +153,7 @@ class FavoritesStoreModel extends \DAO\AbstractModel {
$sql = "INSERT INTO {$this->_tableName} ( store_id,member_id,fav_from,fav_time) values"; $sql = "INSERT INTO {$this->_tableName} ( store_id,member_id,fav_from,fav_time) values";
foreach($datas as $key => $data){ foreach($datas as $key => $data){
$sql .=\Our\Common::format(" (store_id={0} and member_id = {1} and fav_from={2} ),",$data['storeId'],$data['memberId'],$data['type']); $sql .=\Our\Common::format(" (store_id={0} and member_id = {1} and fav_from={2} ),",$data['storeId'],$data['memberId'],$data['type']);
\Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(), array(&$this, 'selectList'), array() ,array($data['memberId']));
} }
$sql = trim($sql,','); $sql = trim($sql,',');
$sql .= ";"; $sql .= ";";
...@@ -164,6 +188,7 @@ class FavoritesStoreModel extends \DAO\AbstractModel { ...@@ -164,6 +188,7 @@ class FavoritesStoreModel extends \DAO\AbstractModel {
$insertAllSql = $baseSql; $insertAllSql = $baseSql;
for ($i = 0; $i < count($datas); $i++) { for ($i = 0; $i < count($datas); $i++) {
$addSql = \Our\Common::format("('{0}','{1}','{2}','{3}'),", $datas[$i]['member_id'], $datas[$i]['store_id'], $datas[$i]['fav_time'], $datas[$i]['fav_from']); $addSql = \Our\Common::format("('{0}','{1}','{2}','{3}'),", $datas[$i]['member_id'], $datas[$i]['store_id'], $datas[$i]['fav_time'], $datas[$i]['fav_from']);
\Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(), array(&$this, 'selectList'), array() ,array($datas[$i]['member_id']));
$insertAllSql .= $addSql; $insertAllSql .= $addSql;
if ($i % 1000 == 0 && $i != 0) { if ($i % 1000 == 0 && $i != 0) {
$insertAllSql = rtrim($insertAllSql, ','); $insertAllSql = rtrim($insertAllSql, ',');
......
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