Commit 9304cf1a authored by chenchuanwen's avatar chenchuanwen

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

parents eba7e1bd 8843d629
......@@ -52,8 +52,8 @@ class IndexController extends \Our\Controller_Abstract {
}
public function indexAction() {
$clientPush=\JPush\ClientPush::getInstance();
$clientPush->pushAll();
// $clientPush=\JPush\ClientPush::getInstance();
// $clientPush->pushAll();
echo 'success';
exit;
\Our\Log::getInstance()->write('testLog|||||testLog');
......
......@@ -43,6 +43,8 @@ class OrderConfirmUtil {
private $cartCacheDeleteFlag = false;
private $pushMessageOrders = array();
public function addOrder($data,$memberId,$currentAddress){
$storeCartData = $this->checkPostData($data,$memberId,$currentAddress);
//return $storeCartData;
......@@ -349,6 +351,7 @@ class OrderConfirmUtil {
$orderLogList = array();
$needPayFlag = \Our\ApiConst::zero;
$giftCoupons = array();
$this->pushMessageOrders = array();
foreach($storeCartData['cartList'] as $storeId=>$storeCarts){
$order= array();
$order['order_sn'] = $this->makeOrderSn($orderPayResult);
......@@ -391,6 +394,13 @@ class OrderConfirmUtil {
$orderModel->db->doRollback();
\Error\ErrorModel::throwException(\Error\CodeConfigModel::saveOrderPayFailed);
}
if($order['order_state'] == \Our\ApiConst::orderStateWaitConfirm){
$tempPushOrder = array();
$tempPushOrder['orderId'] = $orderId;
$tempPushOrder['orderSn'] = $order['order_sn'];
$tempPushOrder['storeId'] = $storeId;
$this->pushMessageOrders[] = $tempPushOrder;
}
$orderLog = array();
$orderLog['order_id'] = $orderId;
$orderLog['log_msg'] = \Our\DescribeConst::addOrderLog;
......@@ -512,9 +522,18 @@ class OrderConfirmUtil {
}
$orderModel->db->doCommit();
$this->opCacheInfo();
$this->pushMessage();
return array('needPayFlag'=>$needPayFlag,'paySn'=>$paySn);
}
public function pushMessage(){
if($this->pushMessageOrders){
$orderService=\Business\Order\OrderServiceModel::getInstance();
foreach($this->pushMessageOrders as $tempOrder){
$orderService->pushRecieveOrder($tempOrder);
}
}
}
public function opCacheInfo(){
if($this->cartCacheDeleteFlag){
$this->delCartCache();
......@@ -921,7 +940,7 @@ class OrderConfirmUtil {
}
$orderCon = array('pay_sn'=>$paySn,'order_state'=>\Our\ApiConst::orderStateWaitPay);
$orderList = $orderModel->getListByCon($orderCon,'order_id,coupon_id,buyer_id');
$orderList = $orderModel->getListByCon($orderCon,'order_id,coupon_id,buyer_id,store_id,order_sn');
if(!$orderList){
$errorCode = \Error\CodeConfigModel::noOrderListForPay;
return array('flag'=>\Our\ApiConst::zero,'errorCode'=>$errorCode,'data'=>$data);
......@@ -941,12 +960,18 @@ class OrderConfirmUtil {
}
//更新订单支付状态
$couponIds = array();
$this->pushMessageOrders = array();
foreach($orderList as $tempOrder){
if($tempOrder['coupon_id']>\Our\ApiConst::zero){
$couponIds[$tempOrder['order_id']] = $tempOrder['coupon_id'];
}
$orderModel->deleteOrderCache($tempOrder['buyer_id'],$tempOrder['order_id'],$tempOrder['store_id'],true,true);
\Our\RedisHelper::memberTotalFromStateToState($tempOrder['buyer_id'],ApiConst::orderStateWaitPay,ApiConst::orderStateWaitConfirm);
$tempPushOrder = array();
$tempPushOrder['orderId'] = $tempOrder['order_id'];
$tempPushOrder['orderSn'] = $tempOrder['order_sn'];
$tempPushOrder['storeId'] = $tempOrder['store_id'];
$this->pushMessageOrders[] = $tempPushOrder;
}
//送券、送礼品
/*if($couponIds){
......@@ -955,6 +980,7 @@ class OrderConfirmUtil {
$orderModel->db->doCommit();
$this->deleteCacheInfo($memberId);
$this->pushMessage();
return array('flag'=>\Our\ApiConst::one,'errorCode'=>$errorCode);
}
......
......@@ -115,7 +115,7 @@ class ArrayConst
const orderCloseTemplate=array(
'type'=>14,
'title'=>'订单关闭通知',
'content'=>'您的订单超过10分钟没人接单,自动关闭',
'content'=>'您的订单{0}超过10分钟没人接单,自动关闭',
'thumb'=>'',
'href'=>'',
'price'=>0
......
......@@ -146,6 +146,18 @@ class MessageServiceModel extends \Business\AbstractModel
}
return $avatar;
}
public function __destruct()
{
$store = \DAO\StoreModel::getInstance();
$member = \DAO\MemberModel::getInstance();
$messageHistoryDao = \DAO\MessageHistoryModel::getInstance();
$mesageOneDao = \DAO\MessageOneModel::getInstance();
$store->unsetDb();
$member->unsetDb();
$messageHistoryDao->unsetDb();
$mesageOneDao->unsetDb();
}
public function unsetDb(){
$store = \DAO\StoreModel::getInstance();
$member = \DAO\MemberModel::getInstance();
......
......@@ -413,6 +413,13 @@ class OrderServiceModel extends \Business\AbstractModel
}
public function pushRecieveOrder($order){
$push = Push::getInstance();
$push->recieveWait($order['storeId'], $order['orderId'], $order['orderSn']);
$push->sendTcpMessage();
$messageService=\Business\Message\MessageServiceModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$messageService->addMessageCenterToDb();
}
//推送接单消息到店铺
public function pushRecieveWaitOrder()
{
......
......@@ -548,9 +548,12 @@ class StoreServiceModel extends \Business\AbstractModel{
}
$memberStoreIds = null;
if($memberId){
$storeMemberDao = \DAO\StoreMemberModel::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));
$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));
//$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{
$returnStores = array();
$returnStores['gcName'] = $goodsClass['gcName'];
$existStoreIds = null;
$returnStores['stores'] = null;
$exitStore = array();
$purchasedStore = array();
if($signStores&&in_array($goodsClass['gcId'],array_keys($signStores))){//如果当前分类存在对应签约店铺
$exitStore = $allStores[$signStores[$goodsClass['gcId']]];
$existStoreIds = $signStores[$goodsClass['gcId']];
......@@ -583,30 +589,31 @@ class StoreServiceModel extends \Business\AbstractModel{
$exitStore = $allStores[$expressStores[$goodsClass['gcId']]];
$existStoreIds = $expressStores[$goodsClass['gcId']];
}
if(isset($exitStore)&&$exitStore){
$returnStores['stores'][] =$exitStore;
}
if($memberStoreIds){
$existSignStores = array_intersect($signStores,$memberStoreIds);
$existServiceStores = array_intersect($serviceStores,$memberStoreIds);
$existExpressStores = array_intersect($expressStores,$memberStoreIds);
$purchasedStore = null;
if($existSignStores&&in_array($goodsClass['gcId'],array_keys($existSignStores))&&$existSignStores[$goodsClass['gcId']]!=$existStoreIds){
$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){
$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){
$purchasedStore = $allStores[$existExpressStores[$goodsClass['gcId']]];
$returnStores['stores'][] = $allStores[$existExpressStores[$goodsClass['gcId']]];
}
if($purchasedStore){
$purchasedStore['isPurchased'] = \Our\ApiConst::one;
$returnStores['stores'][] = $purchasedStore;
}
}
if($exitStore&&$purchasedStore&&$exitStore['storeId']==$purchasedStore['storeId']){
$returnStores['stores'][] = $purchasedStore;
}else{
if(isset($exitStore)&&$exitStore){
$returnStores['stores'][] =$exitStore;
}
if(isset($purchasedStore)&&$purchasedStore){
$returnStores['stores'][] =$purchasedStore;
}
}
if($returnStores['stores']){
$return[] = $returnStores;
}
......
......@@ -27,6 +27,7 @@ class FavoritesStoreModel extends \DAO\AbstractModel {
public function init(){
}
public function getList($where,$field,$pageIndex,$pageSize,$memberId){
$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();
......@@ -47,15 +48,30 @@ class FavoritesStoreModel extends \DAO\AbstractModel {
public function insert($param){
$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){
$this->setDb(\Our\DbNameConst::masterDBConnectName);
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){
$this->setDb($this->dbName);
......@@ -84,7 +100,13 @@ class FavoritesStoreModel extends \DAO\AbstractModel {
$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)";
$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){
......@@ -94,6 +116,7 @@ class FavoritesStoreModel extends \DAO\AbstractModel {
$insertAllSql = $baseSql;
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);
\Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(), array(&$this, 'selectList'), array() ,array($datas[$i]['member_id']));
$insertAllSql .= $addSql;
if ($i % 1000 == 0 && $i != 0) {
$insertAllSql = rtrim($insertAllSql, ',');
......@@ -130,6 +153,7 @@ class FavoritesStoreModel extends \DAO\AbstractModel {
$sql = "INSERT INTO {$this->_tableName} ( store_id,member_id,fav_from,fav_time) values";
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']);
\Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(), array(&$this, 'selectList'), array() ,array($data['memberId']));
}
$sql = trim($sql,',');
$sql .= ";";
......@@ -164,6 +188,7 @@ class FavoritesStoreModel extends \DAO\AbstractModel {
$insertAllSql = $baseSql;
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']);
\Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(), array(&$this, 'selectList'), array() ,array($datas[$i]['member_id']));
$insertAllSql .= $addSql;
if ($i % 1000 == 0 && $i != 0) {
$insertAllSql = rtrim($insertAllSql, ',');
......
......@@ -77,7 +77,7 @@ class cliPushWaitRecieveOrder extends basecli
}
$this->bDoUnLock = true;
file_put_contents($this->lockFileName ,"running" ); // CLI 独占锁
$this->pushWaitOrder();
// $this->pushWaitOrder();
echo '等待接单订单发送成功'."\r\n";
}
......
......@@ -119,7 +119,8 @@ $serv->on('Message', function($server, $frame) use($conf){
$redis->rPush('push_center',serialize($sendMessage));
}
$redis->close();
$messageService->unsetDb();
unset($redis);
// $messageService->unsetDb();
unset($messageService);
}else{
$realKey = KEY_REDIS_PRE.$key;
......@@ -251,6 +252,7 @@ $tcp_server->on('receive', function($serv, $fd, $from_id, $data) use($conf) {
} else {
$serv->send($fd, responseJson(1,'fromMsg',"fail", ['method' => 'receive', 'error_code' => 110,'status' => 0]));
}
$redis->close();
unset($redis);
});
......
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