Commit d9fdb9c7 authored by christ's avatar christ

Merge branch 'master_dev' of git.shenbd.com:qm-develop/shenbd into ccw

parents 9345ca48 1f211c82
...@@ -13,9 +13,21 @@ class StoreController extends \Our\Controller_AbstractIndex { ...@@ -13,9 +13,21 @@ class StoreController extends \Our\Controller_AbstractIndex {
* 获取店铺首页头部 * 获取店铺首页头部
*/ */
public function getStoreInfoAction(){ public function getStoreInfoAction(){
$address = \Business\User\AddressServiceModel::getInstance()->getMyAddress($this->req[\Our\NameConst::data],$this->memberId,false);
$storeInfo = $this->storeService->getStoreInfo($this->req[\Our\NameConst::data],$this->memberId, $address); //获取地址相关信息
$storeInfo['share'] = \Business\Common\CommonServiceModel::getInstance()->getShareInfo(\Our\ApiConst::shareStore,$this->req[\Our\NameConst::data]['storeId']); $data = $this->req[\Our\NameConst::data];
$addressService = \Business\User\AddressServiceModel::getInstance();
$memberId=$this->sess->get('member_id');
$currentAddress =$addressService->setAddress($data,$memberId);
if(!isset($currentAddress['addresses'])){
$currentAddress['addresses'] = array();
}
//$returnData['currentAddress'] = $currentAddress;
$address = $addressService->getMyAddress($data,$this->memberId,false);
$storeInfo = $this->storeService->getStoreInfo($data,$this->memberId, $address);
$storeInfo['share'] = \Business\Common\CommonServiceModel::getInstance()->getShareInfo(\Our\ApiConst::shareStore,$data['storeId']);
$storeInfo['currentAddress'] = $currentAddress;
$this->success($storeInfo); $this->success($storeInfo);
} }
/** /**
......
...@@ -48,7 +48,12 @@ class StoreServiceModel extends \Business\AbstractModel{ ...@@ -48,7 +48,12 @@ class StoreServiceModel extends \Business\AbstractModel{
$storeMember['fav_type'] = \Our\ApiConst::one; $storeMember['fav_type'] = \Our\ApiConst::one;
$storeMembers[] = $storeMember; $storeMembers[] = $storeMember;
$favoritesStoreDao = \DAO\FavoritesStoreModel::getInstance(); $favoritesStoreDao = \DAO\FavoritesStoreModel::getInstance();
$one = $favoritesStoreDao->selectList(array('store_id'=>$storeId,'member_id'=>$memberId,'fav_type'=>0),'store_id');
$one && $storeIds = array($one['store_id']);
$result = $favoritesStoreDao->insertAll($storeMembers); $result = $favoritesStoreDao->insertAll($storeMembers);
if($result) {
$favoritesStoreDao->updateStoreCollecitonsCache($storeIds,$memberId,2);
}
$favoritesDao = \DAO\FavoritesStoreModel::getInstance(); $favoritesDao = \DAO\FavoritesStoreModel::getInstance();
\Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(),array(&$favoritesDao, 'getOne'),array(),array($memberId)); \Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(),array(&$favoritesDao, 'getOne'),array(),array($memberId));
}else{ }else{
...@@ -361,16 +366,14 @@ class StoreServiceModel extends \Business\AbstractModel{ ...@@ -361,16 +366,14 @@ class StoreServiceModel extends \Business\AbstractModel{
} }
$FavoritesStoreInstance = \DAO\FavoritesStoreModel::getInstance(); $FavoritesStoreInstance = \DAO\FavoritesStoreModel::getInstance();
$return = $FavoritesStoreInstance->insertOrUpdate(array('member_id'=>$memberId,'store_id'=>$storeId,'fav_time'=>time())); $one = $FavoritesStoreInstance->getOne('store_id',array('store_id'=>$storeId,'member_id'=>$memberId,'fav_type'=>1));
if($one) {
return true;
}
$return = $FavoritesStoreInstance->insertOrUpdate(array('member_id'=>$memberId,'store_id'=>$storeId,'fav_time'=>time(),'fav_type'=>1,'fav_from'=>1));
if((int)$return > 0){ if((int)$return > 0){
//更新店铺收藏数 $FavoritesStoreInstance->updateStoreCollecitonsCache(array($storeId),$memberId,2);
$FavoritesStoreInstance->getFavoritesStoreCountByStoreId($storeId, 1);
//删除缓存
\Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(),array(&$FavoritesStoreInstance, 'getOne'),array('*',array('store_id'=>$storeId,'member_id'=>$memberId)),array($memberId));
\Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(),array(&$FavoritesStoreInstance, 'getList'),array(),array($memberId));
//更新个人中心首页数量
\DAO\MemberModel::getInstance()->_changeNum(\Our\NameConst::storeCollection,$memberId);
return true; return true;
} }
} }
......
...@@ -58,7 +58,7 @@ class MemberCenterServiceModel extends \Business\AbstractModel ...@@ -58,7 +58,7 @@ class MemberCenterServiceModel extends \Business\AbstractModel
public function getMessageSet($memberId){ public function getMessageSet($memberId){
$memberInfo = \DAO\MemberModel::getInstance()->getInfo($memberId); $memberInfo = \DAO\MemberModel::getInstance()->getInfo($memberId);
// $pushSet=array(); // $pushSet=array();
if(!empty($memberInfo['pushSet'])){ if(!empty($memberInfo['pushSet'])){
$pushSet=unserialize($memberInfo['pushSet']); $pushSet=unserialize($memberInfo['pushSet']);
$pushSet=array( $pushSet=array(
...@@ -101,38 +101,39 @@ class MemberCenterServiceModel extends \Business\AbstractModel ...@@ -101,38 +101,39 @@ class MemberCenterServiceModel extends \Business\AbstractModel
$memberCenter[NameConst::goodsCollection] = \DAO\FavoritesModel::getInstance()->getFavoritesCountWithCommon(null, $memberId); $memberCenter[NameConst::goodsCollection] = \DAO\FavoritesModel::getInstance()->getFavoritesCountWithCommon(null, $memberId);
//足迹数量 //足迹数量
$memberCenter[NameConst::footprint] = \DAO\GoodsBrowseModel::getInstance()->getBrowseCount(array('member_id'=>$memberId)); $memberCenter[NameConst::footprint] = \DAO\GoodsBrowseModel::getInstance()->getBrowseCount(array('member_id'=>$memberId));
$memebrCenterDb1Redis->tableHMSet($memberId,$memberCenter); $memebrCenterDb1Redis->tableHMSet($memberId,$memberCenter,\Our\ApiConst::sevenDaySecond);
}else{ }else{
if($memebrCenterDb1Redis->tableHExists($memberId,NameConst::footprint) === false){ if($memebrCenterDb1Redis->tableHExists($memberId,NameConst::footprint) === false){
$memberCenter[NameConst::footprint] = \DAO\GoodsBrowseModel::getInstance()->getBrowseCount(array('member_id'=>$memberId)); $memberCenter[NameConst::footprint] = \DAO\GoodsBrowseModel::getInstance()->getBrowseCount(array('member_id'=>$memberId));
$memebrCenterDb1Redis->tableHSet($memberId,NameConst::footprint,$memberCenter[NameConst::footprint]); $memebrCenterDb1Redis->tableHSet($memberId,NameConst::footprint,$memberCenter[NameConst::footprint],\Our\ApiConst::sevenDaySecond);
} }
if($memebrCenterDb1Redis->tableHExists($memberId,NameConst::goodsCollection) === false){ if($memebrCenterDb1Redis->tableHExists($memberId,NameConst::goodsCollection) === false){
$memberCenter[NameConst::goodsCollection] = \DAO\FavoritesModel::getInstance()->getFavoritesCountWithCommon(null, $memberId); $memberCenter[NameConst::goodsCollection] = \DAO\FavoritesModel::getInstance()->getFavoritesCountWithCommon(null, $memberId);
$memebrCenterDb1Redis->tableHSet($memberId,NameConst::goodsCollection,$memberCenter[NameConst::goodsCollection]); $memebrCenterDb1Redis->tableHSet($memberId,NameConst::goodsCollection,$memberCenter[NameConst::goodsCollection],\Our\ApiConst::sevenDaySecond);
} }
if($memebrCenterDb1Redis->tableHExists($memberId,NameConst::waitPay) === false){ if($memebrCenterDb1Redis->tableHExists($memberId,NameConst::waitPay) === false){
$memberCenter[NameConst::waitPay] = \DAO\Order\OrderModel::getInstance()->getCount(array('order_state'=>ApiConst::orderStateWaitPay,'buyer_id'=>$memberId)); $memberCenter[NameConst::waitPay] = \DAO\Order\OrderModel::getInstance()->getCount(array('order_state'=>ApiConst::orderStateWaitPay,'buyer_id'=>$memberId));
$memebrCenterDb1Redis->tableHSet($memberId,NameConst::waitPay,$memberCenter[NameConst::waitPay]); $memebrCenterDb1Redis->tableHSet($memberId,NameConst::waitPay,$memberCenter[NameConst::waitPay],\Our\ApiConst::sevenDaySecond);
} }
if($memebrCenterDb1Redis->tableHExists($memberId,NameConst::waitShipments) === false){ if($memebrCenterDb1Redis->tableHExists($memberId,NameConst::waitShipments) === false){
$memberCenter[NameConst::waitShipments] = \DAO\Order\OrderModel::getInstance()->getCount(array('order_state'=>ApiConst::orderStateWaitSend,'buyer_id'=>$memberId)); $memberCenter[NameConst::waitShipments] = \DAO\Order\OrderModel::getInstance()->getCount(array('order_state'=>ApiConst::orderStateWaitSend,'buyer_id'=>$memberId));
$memebrCenterDb1Redis->tableHSet($memberId,NameConst::waitShipments,$memberCenter[NameConst::waitShipments]); $memebrCenterDb1Redis->tableHSet($memberId,NameConst::waitShipments,$memberCenter[NameConst::waitShipments],\Our\ApiConst::sevenDaySecond);
} }
if($memebrCenterDb1Redis->tableHExists($memberId,NameConst::waitReceiving) === false){ if($memebrCenterDb1Redis->tableHExists($memberId,NameConst::waitReceiving) === false){
$memberCenter[NameConst::waitReceiving] = \DAO\Order\OrderModel::getInstance()->getCount(array('order_state'=>ApiConst::orderStateWaitRecieve,'buyer_id'=>$memberId)); $memberCenter[NameConst::waitReceiving] = \DAO\Order\OrderModel::getInstance()->getCount(array('order_state'=>ApiConst::orderStateWaitRecieve,'buyer_id'=>$memberId));
$memebrCenterDb1Redis->tableHSet($memberId,NameConst::waitReceiving,$memberCenter[NameConst::waitReceiving]); $memebrCenterDb1Redis->tableHSet($memberId,NameConst::waitReceiving,$memberCenter[NameConst::waitReceiving],\Our\ApiConst::sevenDaySecond);
} }
if($memebrCenterDb1Redis->tableHExists($memberId,NameConst::waitSelfLifting) === false){ if($memebrCenterDb1Redis->tableHExists($memberId,NameConst::waitSelfLifting) === false){
$memberCenter[NameConst::waitSelfLifting] = \DAO\Order\OrderModel::getInstance()->getCount(array('order_state'=>ApiConst::orderStateComplete,'buyer_id'=>$memberId,'evaluation_state'=>ApiConst::waitEvaluation)); $memberCenter[NameConst::waitSelfLifting] = \DAO\Order\OrderModel::getInstance()->getCount(array('order_state'=>ApiConst::orderStateComplete,'buyer_id'=>$memberId,'evaluation_state'=>ApiConst::waitEvaluation));
$memebrCenterDb1Redis->tableHSet($memberId,NameConst::waitSelfLifting,$memberCenter[NameConst::waitSelfLifting]); $memebrCenterDb1Redis->tableHSet($memberId,NameConst::waitSelfLifting,$memberCenter[NameConst::waitSelfLifting],\Our\ApiConst::sevenDaySecond);
} }
if($memebrCenterDb1Redis->tableHExists($memberId,NameConst::waitEvaluate) === false){ if($memebrCenterDb1Redis->tableHExists($memberId,NameConst::waitEvaluate) === false){
$memberCenter[NameConst::waitEvaluate] = \DAO\Order\OrderModel::getInstance()->getCount(array('order_state'=>ApiConst::orderStateComplete,'buyer_id'=>$memberId,'evaluation_state'=>ApiConst::waitEvaluation)); $memberCenter[NameConst::waitEvaluate] = \DAO\Order\OrderModel::getInstance()->getCount(array('order_state'=>ApiConst::orderStateComplete,'buyer_id'=>$memberId,'evaluation_state'=>ApiConst::waitEvaluation));
$memebrCenterDb1Redis->tableHSet($memberId,NameConst::waitEvaluate,$memberCenter[NameConst::waitEvaluate]); $memebrCenterDb1Redis->tableHSet($memberId,NameConst::waitEvaluate,$memberCenter[NameConst::waitEvaluate],\Our\ApiConst::sevenDaySecond);
} }
if($memebrCenterDb1Redis->tableHExists($memberId,NameConst::refund) === false){ if($memebrCenterDb1Redis->tableHExists($memberId,NameConst::refund) === false){
$memberCenter[NameConst::refund] = \DAO\Order\RefundReturnModel::getInstance()->getCount('refund_state != '.ApiConst::refundStateComplete.' AND buyer_id = '.$memberId); $memberCenter[NameConst::refund] = \DAO\Order\RefundReturnModel::getInstance()->getCount('refund_state != '.ApiConst::refundStateComplete.' AND buyer_id = '.$memberId);
$memebrCenterDb1Redis->tableHSet($memberId,NameConst::refund,$memberCenter[NameConst::refund],\Our\ApiConst::sevenDaySecond);
} }
foreach ($memberCenter as &$v){ foreach ($memberCenter as &$v){
$v = (int)$v; $v = (int)$v;
...@@ -150,30 +151,46 @@ class MemberCenterServiceModel extends \Business\AbstractModel ...@@ -150,30 +151,46 @@ class MemberCenterServiceModel extends \Business\AbstractModel
* @throws \Our\Exception * @throws \Our\Exception
*/ */
public function getStores($param,$memberId){ public function getStores($param,$memberId){
$pageSize = intval($param['pageSize']); // $pageSize = intval($param['pageSize']);
$pageIndex = intval($param['pageIndex']); // $pageIndex = intval($param['pageIndex']);
if($pageSize === 0){ // if($pageSize === 0){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::commonError); // \Error\ErrorModel::throwException(\Error\CodeConfigModel::commonError);
} // }
$pageIndex=$pageIndex+\Our\ApiConst::one; // $pageIndex=$pageIndex+\Our\ApiConst::one;
$keyword = trim($param['keyword']); // $keyword = trim($param['keyword']);
$memberCenter = $this->getStatistics($memberId); // $memberCenter = $this->getStatistics($memberId);
$totalCount = (int)$memberCenter['storeCollection']; // $totalCount = (int)$memberCenter['storeCollection'];
//
$field = 'evaluation_score,evaluation_number,han_store_score_statistics.store_collect,store_name,store_label,han_store.store_id,favid'; // $field = 'evaluation_score,evaluation_number,han_store_score_statistics.store_collect,store_name,store_label,han_store.store_id,favid';
$param['keyword'] && $where = "store_name like '%{$param['keyword']}%'"; // $param['keyword'] && $where = "store_name like '%{$param['keyword']}%'";
//$list = \DAO\FavoritesStoreModel::getInstance()->getList($where,$field,$pageIndex,$pageSize,$memberId); //$list = \DAO\FavoritesStoreModel::getInstance()->getList($where,$field,$pageIndex,$pageSize,$memberId);
$favoritesInstance = \DAO\FavoritesStoreModel::getInstance(); $favoritesInstance = \DAO\FavoritesStoreModel::getInstance();
$list = \Our\RedisHelper::cachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(),array(&$favoritesInstance, 'getList'),array($where,$field,$pageIndex,$pageSize,$memberId),\Our\ApiConst::oneDaySecond,array($memberId));
$stores = array(); $list = $favoritesInstance->getFavoritesStores(array('member_id'=>$memberId,'fav_type'=>1),'fav_from,store_id,favid');
if(is_array($list) && !empty($list)){ $brandsAround = [];
foreach ($list as $v){ $concernedShops = [];
$v['evaluation_score'] ? $grade = number_format(($v['evaluation_score']/3/$v['evaluation_number']),1,'.',''):$grade = '5.0'; $returnStores = [];
$stores[] = array('favid'=>$v['favid'],'storeId'=>$v['store_id'],'storeLabel'=>\DAO\StoreModel::getInstance()->getStoreLabelSrc($v['store_label'],\Our\ImageConst::storeCollectionImg),'storeName'=>$v['store_name'],'grade'=>$grade,'collectCount'=>$favoritesInstance->getFavoritesStoreCountByStoreId($v['store_id'])); if($list) {
$storeIds = array_column($list,'store_id');
$storeIds = implode(',',$storeIds);
$where =\Our\Common::format(" store_id in({0})",$storeIds);
$storeScores = \DAO\StoreScoreStatisticsModel::getInstance()->getStoreScoreStatistics($where,'store_id,evaluation_score,evaluation_number');
$list = \Our\Common::intergrateOneToOne($list, $storeScores, 'store_id', 'store_id');
$stores = \DAO\StoreModel::getInstance()->getStores($where,'store_id,store_label,store_name');
$list = \Our\Common::intergrateOneToOne($list, $stores, 'store_id', 'store_id');
foreach ($list as $v) {
$grade = isset($v['evaluation_score']) ? number_format(($v['evaluation_score']/3/$v['evaluation_number']),1,'.',''):'5.0';
$tempStore = array('favId'=>$v['favid'],'storeId'=>$v['store_id'],'storeLabel'=>\DAO\StoreModel::getInstance()->getStoreLabelSrc($v['store_label'],\Our\ImageConst::storeCollectionImg),'storeName'=>$v['store_name'],'grade'=>$grade,'collectCount'=>$favoritesInstance->getFavoritesStoreCountByStoreId($v['store_id']));
if($v['fav_from'] == 1) {
$concernedShops[] = $tempStore;
}elseif($v['fav_from'] == 3){
$brandsAround[] = $tempStore;
}
$returnStores[] = $tempStore;
} }
} }
return array('stores'=>$stores,'totalCount'=>$totalCount); return array('concernedShop'=>$concernedShops,'brandsAround'=>$brandsAround,'stores'=>$returnStores,'totalCount'=>count($stores));
} }
/** /**
...@@ -197,7 +214,7 @@ class MemberCenterServiceModel extends \Business\AbstractModel ...@@ -197,7 +214,7 @@ class MemberCenterServiceModel extends \Business\AbstractModel
$list = $FavoritesStoreInstance->selectList(array('store_id'=>array('in',$ids),'member_id'=>$memberId,'fav_type'=>1),'store_id'); $list = $FavoritesStoreInstance->selectList(array('store_id'=>array('in',$ids),'member_id'=>$memberId,'fav_type'=>1),'store_id');
if($list) { if($list) {
$storeIds = array_column($list, 'store_id'); $storeIds = array_column($list, 'store_id');
$return = $FavoritesStoreInstance->update(array('fav_type'=>0),'store_id in ('.implode(',',$ids).')',true,$memberId); $return = $FavoritesStoreInstance->update(array('fav_type'=>0,'fav_from'=>0),'store_id in ('.implode(',',$ids).')',true,$memberId);
} }
}else{ }else{
if(strpos($ids,']') !== false ) { if(strpos($ids,']') !== false ) {
...@@ -205,14 +222,14 @@ class MemberCenterServiceModel extends \Business\AbstractModel ...@@ -205,14 +222,14 @@ class MemberCenterServiceModel extends \Business\AbstractModel
$list = $FavoritesStoreInstance->selectList(array('store_id'=>array('in',$ids),'member_id'=>$memberId,'fav_type'=>1),'store_id'); $list = $FavoritesStoreInstance->selectList(array('store_id'=>array('in',$ids),'member_id'=>$memberId,'fav_type'=>1),'store_id');
if($list) { if($list) {
$storeIds = array_column($list, 'store_id'); $storeIds = array_column($list, 'store_id');
$return = $FavoritesStoreInstance->update(array('fav_type'=>0),'store_id in ('.implode(',',$ids).')',true,$memberId); $return = $FavoritesStoreInstance->update(array('fav_type'=>0,'fav_from'=>0),'store_id in ('.implode(',',$ids).')',true,$memberId);
} }
}else{ }else{
$ids = intval($ids); $ids = intval($ids);
$one = $FavoritesStoreInstance->getOne('store_id',array('store_id'=>$ids,'member_id'=>$memberId,'fav_type'=>1)); $one = $FavoritesStoreInstance->getOne('store_id',array('store_id'=>$ids,'member_id'=>$memberId,'fav_type'=>1));
if($one) { if($one) {
$storeIds = array($one['store_id']); $storeIds = array($one['store_id']);
$return = $FavoritesStoreInstance->update(array('fav_type'=>0),array('store_id'=>$ids,'member_id'=>$memberId)); $return = $FavoritesStoreInstance->update(array('fav_type'=>0,'fav_from'=>0),array('store_id'=>$ids,'member_id'=>$memberId));
} }
} }
...@@ -220,26 +237,8 @@ class MemberCenterServiceModel extends \Business\AbstractModel ...@@ -220,26 +237,8 @@ class MemberCenterServiceModel extends \Business\AbstractModel
if($return === false) { if($return === false) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::commonError); \Error\ErrorModel::throwException(\Error\CodeConfigModel::commonError);
} }
if(($return = (int)$return) > 0){ $FavoritesStoreInstance->updateStoreCollecitonsCache($storeIds, $memberId);
//删除缓存 return true;
foreach ($storeIds as $storeId) {
//更新店铺收藏数
$FavoritesStoreInstance->getFavoritesStoreCountByStoreId($storeId, -1);
}
if(is_array($ids) && count($ids) <= 20){
foreach ($ids as $v){
\Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(),array(&$FavoritesStoreInstance, 'getOne'),array('*',array('store_id'=>$v,'member_id'=>$memberId)),array($memberId));
}
}elseif (!is_array($ids)){
\Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(),array(&$FavoritesStoreInstance, 'getOne'),array('*',array('store_id'=>$ids,'member_id'=>$memberId)),array($memberId));
}else{
\Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(),array(&$FavoritesStoreInstance, 'getOne'),array(),array($memberId));
}
\Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(),array(&$FavoritesStoreInstance, 'getList'),array(),array($memberId));
//更新个人中心首页数量
\DAO\MemberModel::getInstance()->_changeNum(\Our\NameConst::storeCollection,$memberId,-$return);
return true;
}
} }
/** /**
...@@ -271,8 +270,8 @@ class MemberCenterServiceModel extends \Business\AbstractModel ...@@ -271,8 +270,8 @@ class MemberCenterServiceModel extends \Business\AbstractModel
if(is_array($list) && !empty($list)){ if(is_array($list) && !empty($list)){
foreach ($list as $v){ foreach ($list as $v){
//if($stores['store_id'] && $stores['store_id']['open_flag'] == 1 && $stores['store_id']['store_state'] == 1) { //if($stores['store_id'] && $stores['store_id']['open_flag'] == 1 && $stores['store_id']['store_state'] == 1) {
$goods[] = array('favid'=>$v['favid'],'goodsCommonId'=>$v['goods_commonid'],'goodsImage'=>\Our\ImageUtil::getGoodsImgUrl($v['goods_image'],\Our\ImageConst::goodsCollectionImgSize),'goodsName'=>$v['goods_name'],'goodsPrice'=>$v['goods_price'],'goodsId'=>$v['goods_id']); $goods[] = array('favid'=>$v['favid'],'goodsCommonId'=>$v['goods_commonid'],'goodsImage'=>\Our\ImageUtil::getGoodsImgUrl($v['goods_image'],\Our\ImageConst::goodsCollectionImgSize),'goodsName'=>$v['goods_name'],'goodsPrice'=>$v['goods_price'],'goodsId'=>$v['goods_id']);
// } // }
} }
if($where) { if($where) {
$totalCount = $favoritesInstance->getFavoritesCountWithCommon($where, $memberId); $totalCount = $favoritesInstance->getFavoritesCountWithCommon($where, $memberId);
......
...@@ -356,11 +356,15 @@ class MemberServiceModel extends \Business\AbstractModel ...@@ -356,11 +356,15 @@ class MemberServiceModel extends \Business\AbstractModel
/*$storeMemberDao = \DAO\StoreMemberModel::getInstance(\Our\DbNameConst::masterDBConnectName); /*$storeMemberDao = \DAO\StoreMemberModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$result = $storeMemberDao->addBatch($storeMember);*/ $result = $storeMemberDao->addBatch($storeMember);*/
$favoritesStoreDao = \DAO\FavoritesStoreModel::getInstance(); $favoritesStoreDao = \DAO\FavoritesStoreModel::getInstance();
$storeIds = array_column($scan_store_ids,'store_id');
$list = $favoritesStoreDao->selectList(array('store_id'=>array('in',$storeIds),'member_id'=>$memberId,'fav_type'=>0),'store_id');
$list && $storeIds = array_column($list, 'store_id');
$result = $favoritesStoreDao->insertAll($storeMembers); $result = $favoritesStoreDao->insertAll($storeMembers);
if(!$result){ if(!$result){
\Our\Log::getInstance()->write(json_encode($storeMembers).'扫码数据写入失败'); \Our\Log::getInstance()->write(json_encode($storeMembers).'扫码数据写入失败');
return false; return false;
} }
$favoritesStoreDao->updateStoreCollecitonsCache($storeIds,$memberId,2);
$favoritesDao = \DAO\FavoritesStoreModel::getInstance(); $favoritesDao = \DAO\FavoritesStoreModel::getInstance();
\Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(),array(&$favoritesDao, 'getOne'),array(),array($memberId)); \Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(),array(&$favoritesDao, 'getOne'),array(),array($memberId));
} }
......
...@@ -27,7 +27,10 @@ class FavoritesStoreModel extends \DAO\AbstractModel { ...@@ -27,7 +27,10 @@ class FavoritesStoreModel extends \DAO\AbstractModel {
public function init(){ public function init(){
} }
public function getFavoritesStores($where,$field) {
$this->setDb($this->dbName);
return $this->db->select($field)->where($where)->from($this->_tableName)->order('fav_time','DESC')->fetchAll();
}
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();
...@@ -108,8 +111,8 @@ class FavoritesStoreModel extends \DAO\AbstractModel { ...@@ -108,8 +111,8 @@ class FavoritesStoreModel extends \DAO\AbstractModel {
public function insertOrUpdate($data){ public function insertOrUpdate($data){
$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,fav_from) values({0},{1},{2},{3},{4}) ON DUPLICATE KEY UPDATE fav_type=VALUES (fav_type),fav_time=VALUES (fav_time),fav_from = VALUES (fav_from)";
$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_type'],$data['fav_time'],$data['fav_from']);
$result = $this->db->insert($this->_tableName)->query($sql); $result = $this->db->insert($this->_tableName)->query($sql);
if($result){ if($result){
if($data&&(isset($data['member_id'])&&$data['member_id'])){ if($data&&(isset($data['member_id'])&&$data['member_id'])){
...@@ -176,7 +179,36 @@ class FavoritesStoreModel extends \DAO\AbstractModel { ...@@ -176,7 +179,36 @@ class FavoritesStoreModel extends \DAO\AbstractModel {
$res = $this->db->insert($this->_tableName)->query($sql); $res = $this->db->insert($this->_tableName)->query($sql);
return $res; return $res;
} }
/**
* @param $storeIds
* @param $memberId
* @param int $type 取消关注:1 关注:2
* @return bool
* @throws \Our\Exception
*/
public function updateStoreCollecitonsCache(array $storeIds, $memberId, $type = 1) {
if(!$storeIds) {
return true;
}
//删除缓存
foreach ($storeIds as $storeId) {
//更新店铺收藏数
$this->getFavoritesStoreCountByStoreId($storeId, $type == 1 ? -1 : 1);
}
if(is_array($storeIds) && count($storeIds) <= 20){
foreach ($storeIds as $v){
\Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(),array(&$this, 'getOne'),array('*',array('store_id'=>$v,'member_id'=>$memberId)),array($memberId));
}
// }elseif (!is_array($storeIds)){
// \Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(),array(&$this, 'getOne'),array('*',array('store_id'=>$storeIds,'member_id'=>$memberId)),array($memberId));
}else{
\Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(),array(&$this, 'getOne'),array(),array($memberId));
}
\Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(),array(&$this, 'getFavoritesStores'),array(),array($memberId));
//更新个人中心首页数量
\DAO\MemberModel::getInstance()->_changeNum(\Our\NameConst::storeCollection,$memberId,$type == 1 ? -(count($storeIds)) : count($storeIds));
return true;
}
public function getFavoritesStoreCountByStoreId($storeId, $num = 0) { public function getFavoritesStoreCountByStoreId($storeId, $num = 0) {
$statisticsDb6Redis = \Redis\Db6\StatisticsRedisModel::getInstance(); $statisticsDb6Redis = \Redis\Db6\StatisticsRedisModel::getInstance();
$collectCount = $statisticsDb6Redis->tableCacheGet('storeCollectCount:'.$storeId); $collectCount = $statisticsDb6Redis->tableCacheGet('storeCollectCount:'.$storeId);
......
...@@ -28,6 +28,10 @@ class StoreScoreStatisticsModel extends \DAO\AbstractModel { ...@@ -28,6 +28,10 @@ class StoreScoreStatisticsModel extends \DAO\AbstractModel {
$this->setDb(); $this->setDb();
return $this->db->select($field)->from($this->_tableName)->where($where)->fetchOne(); return $this->db->select($field)->from($this->_tableName)->where($where)->fetchOne();
} }
public function getStoreScoreStatistics($where, $field) {
$this->setDb();
return $this->db->select($field)->from($this->_tableName)->where($where)->fetchAll();
}
public function insertOrUpdate($data){ public function insertOrUpdate($data){
$this->setDb(\Our\DbNameConst::masterDBConnectName); $this->setDb(\Our\DbNameConst::masterDBConnectName);
$baseSql = "insert into {$this->_tableName}(store_id,evaluation_score,evaluation_number) values({0},{1},{2}) ON DUPLICATE KEY UPDATE evaluation_number = VALUES(evaluation_number),evaluation_score=VALUES(evaluation_score)"; $baseSql = "insert into {$this->_tableName}(store_id,evaluation_score,evaluation_number) values({0},{1},{2}) ON DUPLICATE KEY UPDATE evaluation_number = VALUES(evaluation_number),evaluation_score=VALUES(evaluation_score)";
......
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