Commit c70323d6 authored by zhz's avatar zhz

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

parents 15ecb33e 66aeb4bf
...@@ -83,7 +83,8 @@ class MemberController extends \Our\Controller_AbstractApi { ...@@ -83,7 +83,8 @@ class MemberController extends \Our\Controller_AbstractApi {
* @throws Exception * @throws Exception
*/ */
public function logOutAction(){ public function logOutAction(){
$result = $this->memberService->logOut($this->key); $key = $this->req[\Our\NameConst::data]['key'];
$result = $this->memberService->logOut($key);
if($result){ if($result){
$this->success(new stdClass()); $this->success(new stdClass());
} }
......
...@@ -1020,6 +1020,45 @@ class GoodsCommonServiceModel extends \Business\AbstractModel ...@@ -1020,6 +1020,45 @@ class GoodsCommonServiceModel extends \Business\AbstractModel
} }
/**
* 店铺在售商品分类定时器
*/
public function storeOnlineGoodsClass(){
$storeOnlineGoodsClassDao = \DAO\GoodsClass\StoreOnlineGoodsClassModel::getInstance();
$addGoodsClassList = $storeOnlineGoodsClassDao->getChangedGoodsClass(0,2000,\Our\ApiConst::plus);
if($addGoodsClassList){
foreach($addGoodsClassList as $goodsClassStr){
$goodsClass = unserialize($goodsClassStr);
$this->checkExistOnlineGoodsClass($goodsClass);
}
}
$minusGoodsClassList = $storeOnlineGoodsClassDao->getChangedGoodsClass(0,2000,\Our\ApiConst::minus);
if($minusGoodsClassList){
foreach($minusGoodsClassList as $goodsClassStr){
$goodsClass = unserialize($goodsClassStr);
$this->checkRemoveOnlineGoodsClass($goodsClass);
}
}
}
/**
* 获取新增商品对应的商品分类是否在店铺在售商品分类表,如果在则忽略,不在将分类增加到在售商品分类表
* @param $goodsClass
* @return bool
*/
public function checkExistOnlineGoodsClass($goodsClass){
$storeOnlineGoodsClassDao = \DAO\GoodsClass\StoreOnlineGoodsClassModel::getInstance();
$oldTemp = $storeOnlineGoodsClassDao->find($goodsClass);
if(!$oldTemp){
$storeOnlineGoodsClassDao->insert($goodsClass);
}
return true;
}
public function checkRemoveOnlineGoodsClass($goodsClass){
}
private static $_instance = null; private static $_instance = null;
......
...@@ -485,28 +485,6 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -485,28 +485,6 @@ class OrderServiceModel extends \Business\AbstractModel
$orders = $orderDao->getMustCecelRecieveOrders($beginTime, $endTime, $orderDao->getOrderDetailField()); $orders = $orderDao->getMustCecelRecieveOrders($beginTime, $endTime, $orderDao->getOrderDetailField());
if (!empty($orders)) { if (!empty($orders)) {
// $orderIds = array_column($orders, 'orderId');
// $orderGoods = $orderGoodsDao->getOrderGoodsByOrderIds($orderIds, $this->getGoodsDetailField());
// $storeCartsList=array();
// $storeCarts=array();
// $storeCarts['storeCarts']=array();
// foreach($orderGoods as $orderGood){
// $orderGood['type']=!empty($orderGood['goodsGroup'])? \Our\ApiConst::addBundingToCart:\Our\ApiConst::addGoodsToCart;
// $orderGood['goodsNum']=-$orderGood['goodsNum'];
// $orderGood['goodsList']=\Our\Common::isSerialized($orderGood['goodsGroup'])?unserialize($orderGood['goodsGroup']):array();
// array_push($storeCarts['storeCarts'],$orderGood);
// }
// if(!empty($storeCarts['storeCarts'])){
// array_push($storeCartsList,$storeCarts);
// }
// // $orderDao->updateNotRecieveOrders(ApiConst::orderStateWaitConfirm, ApiConst::orderStateClose, 'add_time', ApiConst::orderStateWaitConfirmBeyond, $this->orderMessageField);
// try{
// $orderConfirmUtilDao->updateGoodsStorage($storeCartsList);
// }catch(\Exception $ex){
// throw new \Exception('商品库存更新失败:'.$ex->getMessage(),$ex->getCode());
// }
// exit;
foreach ($orders as $order) { foreach ($orders as $order) {
//更新订单信息 //更新订单信息
$updateData = array('order_state' => ApiConst::orderStateClose,'refund_amount'=>$order['orderAmount']); $updateData = array('order_state' => ApiConst::orderStateClose,'refund_amount'=>$order['orderAmount']);
...@@ -518,6 +496,30 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -518,6 +496,30 @@ class OrderServiceModel extends \Business\AbstractModel
} }
$orderDao->deleteOrderCache($order['buyerId'],(string)$order['orderId'],$order['storeId']); $orderDao->deleteOrderCache($order['buyerId'],(string)$order['orderId'],$order['storeId']);
} }
$orderIds = array_column($orders, 'orderId');
//更新商品库存
$orderGoods = $orderGoodsDao->getOrderGoodsByOrderIds($orderIds, $this->getGoodsDetailField());
$storeCartsList=array();
$storeCarts=array();
$storeCarts['storeCarts']=array();
foreach($orderGoods as $orderGood){
$orderGood['type']=!empty($orderGood['goodsGroup'])? \Our\ApiConst::addBundingToCart:\Our\ApiConst::addGoodsToCart;
$orderGood['goodsNum']=$orderGood['goodsNum'];
$orderGood['goodsList']=\Our\Common::isSerialized($orderGood['goodsGroup'])?unserialize($orderGood['goodsGroup']):array();
array_push($storeCarts['storeCarts'],$orderGood);
}
if(!empty($storeCarts['storeCarts'])){
array_push($storeCartsList,$storeCarts);
}
// $orderDao->updateNotRecieveOrders(ApiConst::orderStateWaitConfirm, ApiConst::orderStateClose, 'add_time', ApiConst::orderStateWaitConfirmBeyond, $this->orderMessageField);
try{
$orderConfirmUtilDao->updateGoodsStorage($storeCartsList,\Our\ApiConst::plus);
}catch(\Exception $ex){
$orderidsStr=implode(',',array_column($orders,'orderId'));
echo '商品库存更新失败:'.$ex->getMessage().$ex->getCode().":".$orderidsStr;
}
//发送消息
$push = Push::getInstance(); $push = Push::getInstance();
$push->pushOrderCloseMessage($orders); $push->pushOrderCloseMessage($orders);
......
...@@ -209,10 +209,8 @@ class MemberServiceModel extends \Business\AbstractModel ...@@ -209,10 +209,8 @@ class MemberServiceModel extends \Business\AbstractModel
* 退出登录 * 退出登录
*/ */
public function logOut($key){ public function logOut($key){
$this->memberDb0Redis->tableDel($key); $result = \Redis\Db0\SessionRedisModel::getInstance()->delSessionKey($key);
$sess=\Yaf\Session::getInstance(); return $result;
$sess->del('member_id');
return true;
} }
/** /**
......
...@@ -313,11 +313,12 @@ class GoodsModel extends \DAO\AbstractModel { ...@@ -313,11 +313,12 @@ class GoodsModel extends \DAO\AbstractModel {
$updateAllSql = $baseSql; $updateAllSql = $baseSql;
$dataIds = array(); $dataIds = array();
for ($i = 0; $i < count($datas); $i++) { for ($i = 0; $i < count($datas); $i++) {
$updateSql = \Our\Common::format(" WHEN {0} THEN goods_storage{2}{1} ", $datas[$i]['goodsId'], $datas[$i]['goodsNum'],\Our\ArrayConst::ops[$op]); $updateSql = \Our\Common::format(" WHEN {0} THEN goods_storage{2}{1},", $datas[$i]['goodsId'], $datas[$i]['goodsNum'],\Our\ArrayConst::ops[$op]);
$dataIds[] = $datas[$i]['goodsId']; $dataIds[] = $datas[$i]['goodsId'];
$updateAllSql .= $updateSql; $updateAllSql .= $updateSql;
if ($i % 1000 == 0 && $i != 0) { if ($i % 1000 == 0 && $i != 0) {
$updateAllSql .= \Our\Common::format('END where goods_id in ({0})',implode(',',$dataIds)); $updateAllSql = trim($updateAllSql,',');
$updateAllSql .= \Our\Common::format(' END where goods_id in ({0})',implode(',',$dataIds));
$one = $this->db->update($this->_tableName)->query($updateAllSql); $one = $this->db->update($this->_tableName)->query($updateAllSql);
if (!$one) { if (!$one) {
$error++; $error++;
...@@ -327,7 +328,8 @@ class GoodsModel extends \DAO\AbstractModel { ...@@ -327,7 +328,8 @@ class GoodsModel extends \DAO\AbstractModel {
} }
} }
if ($updateAllSql != $baseSql) { if ($updateAllSql != $baseSql) {
$updateAllSql .= \Our\Common::format('END where goods_id in ({0})',implode(',',$dataIds)); $updateAllSql = trim($updateAllSql,',');
$updateAllSql .= \Our\Common::format(' END where goods_id in ({0})',implode(',',$dataIds));
$one = $this->db->update($this->_tableName)->query($updateAllSql); $one = $this->db->update($this->_tableName)->query($updateAllSql);
if (!$one) { if (!$one) {
$error++; $error++;
......
...@@ -25,6 +25,25 @@ class StoreOnlineGoodsClassModel extends \DAO\AbstractModel{ ...@@ -25,6 +25,25 @@ class StoreOnlineGoodsClassModel extends \DAO\AbstractModel{
} }
public function findByWhere($where){
$this->setDb(\Our\DbNameConst::salveDBConnectName);
$address = $this->db->from($this->_tableName)->where($where)->fetchOne();
return $address;
}
public function insert($data){
$this->setDb(\Our\DbNameConst::masterDBConnectName);
$data['gmt_create'] = TIMESTAMP;
$result = $this->db->insert($this->_tableName)->rows($data)->execute();
if($result){
$storeId = $data['store_id'];
\Our\RedisHelper::delCachedFunction(\Redis\Db6\StoreOnlineGoodsClassRedisModel::getInstance(),array(&$this, 'getList'),array(),array($storeId));
}
return $result ;
}
public function getList($where,$field = \Our\NameConst::allField){ public function getList($where,$field = \Our\NameConst::allField){
$this->setDb($this->dbName); $this->setDb($this->dbName);
$result = $this->db->select($field)->from($this->_tableName)->where($where)->fetchAll(); $result = $this->db->select($field)->from($this->_tableName)->where($where)->fetchAll();
...@@ -82,6 +101,41 @@ class StoreOnlineGoodsClassModel extends \DAO\AbstractModel{ ...@@ -82,6 +101,41 @@ class StoreOnlineGoodsClassModel extends \DAO\AbstractModel{
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emtpyGcIdForOnlineChildrenClass); \Error\ErrorModel::throwException(\Error\CodeConfigModel::emtpyGcIdForOnlineChildrenClass);
} }
} }
public function addChangedGoodsClass($goodsClass,$type = \Our\ApiConst::plus){
$key='changedAddGoodsClass';
if($type==\Our\ApiConst::minus){
$key = 'changedMinusGoodsClass';
}
$storeOnlineClassRedisModel = \Redis\Db6\StoreOnlineGoodsClassRedisModel::getInstance();
$storeOnlineClassRedisModel->tableLPush($key,$goodsClass);
}
public function getChangedGoodsClass($type = \Our\ApiConst::plus){
$key='changedAddGoodsClass';
if($type==\Our\ApiConst::minus){
$key = 'changedMinusGoodsClass';
}
$storeOnlineClassRedisModel = \Redis\Db6\StoreOnlineGoodsClassRedisModel::getInstance();
return $storeOnlineClassRedisModel->tableLPop($key);
}
/**
* 获取更改商品
* @param $start 记录开始条数
* @param $end 记录结束条数
* @return \Redis\mix
*/
public function getChangedGoodsClasses($start,$end,$type = \Our\ApiConst::plus){
$key='changedAddGoodsClass';
if($type==\Our\ApiConst::minus){
$key = 'changedMinusGoodsClass';
}
$storeOnlineClassRedisModel = \Redis\Db6\StoreOnlineGoodsClassRedisModel::getInstance();
return $storeOnlineClassRedisModel->tableLRange($key,$start,$end);
}
/** /**
* 类实例 * 类实例
*/ */
......
...@@ -208,30 +208,49 @@ class GoodsCommonModel extends \DAO\AbstractModel { ...@@ -208,30 +208,49 @@ class GoodsCommonModel extends \DAO\AbstractModel {
$datas = array_values($dataList); $datas = array_values($dataList);
$this->setDb(\Our\DbNameConst::masterDBConnectName); $this->setDb(\Our\DbNameConst::masterDBConnectName);
$error = 0; $error = 0;
$baseSql = "UPDATE {$this->_tableName} set goods_storage = case goods_commonid "; $baseSql = "UPDATE {$this->_tableName} set ";
$updateAllSql = $baseSql; $updateAllSql = $baseSql;
$dataIds = array(); $dataIds = array();
if($updateSaleNumFlag&&$op!=\Our\ApiConst::set){ if($updateSaleNumFlag&&$op!=\Our\ApiConst::set){
$updateSaleNumOp = $op==\Our\ApiConst::minus?'+':'-'; $updateSaleNumOp = $op==\Our\ApiConst::minus?'+':'-';
} }
$goodsCommonSql = 'goods_storage = case goods_commonid ';
if($updateSaleNumFlag){
$saleNumSql = 'sale_num = case goods_commonid ';
}
for ($i = 0; $i < count($datas); $i++) { for ($i = 0; $i < count($datas); $i++) {
$updateSql = \Our\Common::format(" WHEN {0} THEN goods_storage{1}{2} ", $datas[$i]['goodsCommonId'],\Our\ArrayConst::ops[$op], $datas[$i]['goodsNum']); $goodsCommonSql .= \Our\Common::format(" WHEN {0} THEN goods_storage{1}{2}, ", $datas[$i]['goodsCommonId'],\Our\ArrayConst::ops[$op], $datas[$i]['goodsNum']);
if($updateSaleNumFlag){ if($updateSaleNumFlag){
$updateSql = \Our\Common::format(" WHEN {0} THEN goods_storage{1}{2} END,sale_num = case goods_commonid when {0} THEN sale_num {3}{2} END", $datas[$i]['goodsCommonId'],\Our\ArrayConst::ops[$op], $datas[$i]['goodsNum'],$updateSaleNumOp); $saleNumSql .= \Our\Common::format(" when {0} THEN sale_num {1}{2},", $datas[$i]['goodsCommonId'],$updateSaleNumOp, $datas[$i]['goodsNum']);
} }
$dataIds[] = $datas[$i]['goodsCommonId']; $dataIds[] = $datas[$i]['goodsCommonId'];
$updateAllSql .= $updateSql;;
if ($i % 1000 == 0 && $i != 0) { if ($i % 1000 == 0 && $i != 0) {
$goodsCommonSql = trim($goodsCommonSql,',').' END';
$updateAllSql .= $goodsCommonSql;
if($updateSaleNumFlag){
$saleNumSql = ','.trim($saleNumSql,',').' END ';
$updateAllSql .= $saleNumSql;
}
$updateAllSql .= \Our\Common::format(' where goods_commonid in ({0})',implode(',',$dataIds)); $updateAllSql .= \Our\Common::format(' where goods_commonid in ({0})',implode(',',$dataIds));
$one = $this->db->update($this->_tableName)->query($updateAllSql); $one = $this->db->update($this->_tableName)->query($updateAllSql);
if (!$one) { if (!$one) {
$error++; $error++;
} }
$updateAllSql = $baseSql; $updateAllSql = $baseSql;
$goodsCommonSql = 'goods_storage = case goods_commonid ';
if($updateSaleNumFlag){
$saleNumSql = 'sale_num = case goods_commonid ';
}
$dataIds = array(); $dataIds = array();
} }
} }
if ($updateAllSql != $baseSql) { if ($updateAllSql != $baseSql) {
$goodsCommonSql = trim($goodsCommonSql,',').' END ';
$updateAllSql .= $goodsCommonSql;
if($updateSaleNumFlag){
$saleNumSql = ','.trim($saleNumSql,',').' END ';
$updateAllSql .= $saleNumSql;
}
$updateAllSql .= \Our\Common::format(' where goods_commonid in ({0})',implode(',',$dataIds)); $updateAllSql .= \Our\Common::format(' where goods_commonid in ({0})',implode(',',$dataIds));
$one = $this->db->update($this->_tableName)->query($updateAllSql); $one = $this->db->update($this->_tableName)->query($updateAllSql);
......
...@@ -821,7 +821,7 @@ class OrderModel extends \DAO\AbstractModel ...@@ -821,7 +821,7 @@ class OrderModel extends \DAO\AbstractModel
public function getMustCecelRecieveOrders($beginTime=ApiConst::zero, $endTime, $field = '*') public function getMustCecelRecieveOrders($beginTime=ApiConst::zero, $endTime, $field = '*')
{ {
$this->setDb($this->dbName); $this->setDb($this->dbName);
$where=Common::format(" payment_time between {0} and {1} and order_state={2}",$beginTime,$endTime,ApiConst::orderStateWaitConfirm); $where=Common::format(" add_time between {0} and {1} and order_state={2}",$beginTime,$endTime,ApiConst::orderStateWaitConfirm);
$list = $this->db->select($field)->from($this->_tableName)->where($where)->order('payment_time','desc')->fetchAll(); $list = $this->db->select($field)->from($this->_tableName)->where($where)->order('payment_time','desc')->fetchAll();
return $list; return $list;
} }
......
...@@ -70,4 +70,20 @@ class AbstractModel extends \Redis\AbstractModel { ...@@ -70,4 +70,20 @@ class AbstractModel extends \Redis\AbstractModel {
public function tableDecr($h) { public function tableDecr($h) {
return $this->decr($this->calcKey($h)); return $this->decr($this->calcKey($h));
} }
public function tableLPush($id,$data){
$res=$this->lpush($this->calcKey($id), $data);
return $res;
}
public function tableLPop($id){
$res=$this->lpop($this->calcKey($id));
return $res;
}
public function tableLRange($key,$start,$end){
$res = $this->lrange($this->calcKey($key),$start,$end);
return $res;
}
} }
...@@ -25,7 +25,6 @@ class StoreOnlineGoodsClassRedisModel extends \Redis\Db6\AbstractModel { ...@@ -25,7 +25,6 @@ class StoreOnlineGoodsClassRedisModel extends \Redis\Db6\AbstractModel {
return $res; return $res;
} }
/** /**
* 类实例 * 类实例
* *
......
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