Commit 7fb1b6de authored by liuyuzhen's avatar liuyuzhen

订单锁

parents 6b54ac20 03fffacc
...@@ -161,7 +161,7 @@ class CartController extends \Our\Controller_AbstractApi{ ...@@ -161,7 +161,7 @@ class CartController extends \Our\Controller_AbstractApi{
$sess=\Yaf\Session::getInstance(); $sess=\Yaf\Session::getInstance();
$currentAddress = $sess->get('currentAddress'); $currentAddress = $sess->get('currentAddress');
$result = $cartService->addOrder($data,$this->memberId,$currentAddress); $result = $cartService->addOrder($data, $this->memberId,$currentAddress);
$this->success($result); $this->success($result);
} }
......
...@@ -152,10 +152,10 @@ class OrderConfirmUtil { ...@@ -152,10 +152,10 @@ class OrderConfirmUtil {
$cartList = $pBundlingService->getFormatCartListForOrder($storeCartList,$this->memberId,true,$dbName); $cartList = $pBundlingService->getFormatCartListForOrder($storeCartList,$this->memberId,true,$dbName);
$gcIds = isset($cartList['gcIds'])?$cartList['gcIds']:array(); $gcIds = isset($cartList['gcIds'])?$cartList['gcIds']:array();
$storeCartData = array('cartList'=>$cartList['list'],'storeIds'=>array_keys($cartList['list']),'goodsIds'=>$storeCartList['goodsIds'],'goodsCommonIds'=>$storeCartList['goodsCommonIds'],'blIds'=>$storeCartList['blIds'],'gcIds'=>$gcIds); $storeCartData = array('cartList'=>$cartList['list'],'storeIds'=>array_keys($cartList['list']),'goodsIds'=>$storeCartList['goodsIds'],'goodsCommonIds'=>$storeCartList['goodsCommonIds'],'blIds'=>$storeCartList['blIds'],'gcIds'=>$gcIds);
} }
if($this->storeCouponIds&&$this->couponIds){ if ($this->storeCouponIds&&$this->couponIds) {
$storeCartData = $this->checkCouponForOrder($storeCartData,$this->memberId); $storeCartData = $this->checkCouponForOrder($storeCartData, $this->memberId);
} }
return $storeCartData; return $storeCartData;
...@@ -484,7 +484,7 @@ class OrderConfirmUtil { ...@@ -484,7 +484,7 @@ class OrderConfirmUtil {
return $paySn; return $paySn;
} }
public function saveOrderInfo($storeCartData){ public function saveOrderInfo($storeCartData, $formId = ''){
$dbName = \Our\DbNameConst::masterDBConnectName; $dbName = \Our\DbNameConst::masterDBConnectName;
$orderModel = \DAO\Order\OrderModel::getInstance($dbName); $orderModel = \DAO\Order\OrderModel::getInstance($dbName);
$orderModel->setDb($dbName); $orderModel->setDb($dbName);
...@@ -529,6 +529,7 @@ class OrderConfirmUtil { ...@@ -529,6 +529,7 @@ class OrderConfirmUtil {
$order['buyer_email'] = $this->address['mob_phone']; $order['buyer_email'] = $this->address['mob_phone'];
} }
} }
$order['form_id'] = $formId;
$order['add_time'] = TIMESTAMP; $order['add_time'] = TIMESTAMP;
$order['payment_type'] = $storeCarts['payway']; $order['payment_type'] = $storeCarts['payway'];
$order['order_amount'] = $storeCarts['orderAmount']; $order['order_amount'] = $storeCarts['orderAmount'];
...@@ -1266,4 +1267,4 @@ class OrderConfirmUtil { ...@@ -1266,4 +1267,4 @@ class OrderConfirmUtil {
return self::$_instance; return self::$_instance;
} }
} }
\ No newline at end of file
...@@ -96,6 +96,8 @@ class ApiConst ...@@ -96,6 +96,8 @@ class ApiConst
const memberMessageType = 5; const memberMessageType = 5;
const diliveryMessageOrder=9; const diliveryMessageOrder=9;
const messageReceiveOrderType=301;
//配送员用户消息类型 //配送员用户消息类型
//快递消息 //快递消息
const deliveryUserMessageType = 8; const deliveryUserMessageType = 8;
......
...@@ -53,8 +53,7 @@ class PathConst { ...@@ -53,8 +53,7 @@ class PathConst {
const storeStatTime="/storeStat.conf"; const storeStatTime="/storeStat.conf";
const orderCancelTime="/orderCancelTime.conf"; const orderCancelTime="/orderCancelTime.conf";
const ktestTime="/ktestTime.conf";
//const favoritesStoreFavTimeConf="favoritesStoreFavTime.conf"; //const favoritesStoreFavTimeConf="favoritesStoreFavTime.conf";
......
...@@ -45,6 +45,13 @@ class Pay { ...@@ -45,6 +45,13 @@ class Pay {
$orderInfo['openid'] = $authInfo['openid']; $orderInfo['openid'] = $authInfo['openid'];
$wxLitePay = WxLitePay::getInstance(); $wxLitePay = WxLitePay::getInstance();
$return = $wxLitePay->doPay($orderInfo); $return = $wxLitePay->doPay($orderInfo);
$prepayId = $return['prepay_id'];
unset($return['prepay_id']);
// \Our\Log::getInstance()->write($prepayId,'/data/log/apptest');
if($prepayId) {
$dbName = \Our\DbNameConst::masterDBConnectName;
\DAO\Order\OrderModel::getInstance($dbName)->update(array('pay_sn'=>$orderInfo['paySn']), array('prepay_id'=>$prepayId));
}
}else if($data['channel'] == \Our\NameConst::qqAppChannel){ }else if($data['channel'] == \Our\NameConst::qqAppChannel){
$qPay = QPay::getInstance(); $qPay = QPay::getInstance();
$return = $qPay->doPay($orderInfo); $return = $qPay->doPay($orderInfo);
...@@ -87,7 +94,7 @@ class Pay { ...@@ -87,7 +94,7 @@ class Pay {
$orderInfo['orderAmount'] = $this->orderAmount; $orderInfo['orderAmount'] = $this->orderAmount;
if($this->channel == \Our\NameConst::wxLiteChannel){ if($this->channel == \Our\NameConst::wxLiteChannel){
$orderConfirmUtil = \Order\OrderConfirmUtil::getInstance(); $orderConfirmUtil = \Order\OrderConfirmUtil::getInstance();
$newPaySn = $orderConfirmUtil->makeNewPaySnForOrderWithOldPaySn($this->paySn,$this->memberId); $newPaySn = $orderConfirmUtil->makeNewPaySnForOrderWithOldPaySn($this->paySn, $this->memberId);
$this->paySn = $newPaySn; $this->paySn = $newPaySn;
} }
$orderInfo['paySn'] = $this->paySn; $orderInfo['paySn'] = $this->paySn;
...@@ -145,4 +152,4 @@ class Pay { ...@@ -145,4 +152,4 @@ class Pay {
return self::$_instance; return self::$_instance;
} }
} }
\ No newline at end of file
...@@ -445,4 +445,4 @@ class TencentPay { ...@@ -445,4 +445,4 @@ class TencentPay {
} }
} }
\ No newline at end of file
...@@ -35,9 +35,12 @@ class WxLitePay extends \Payment\TencentPay{ ...@@ -35,9 +35,12 @@ class WxLitePay extends \Payment\TencentPay{
} }
//$this->setRequestParams($orderInfo); //$this->setRequestParams($orderInfo);
$wxAppParameters = $this->getParameters(); $wxAppParameters = $this->getParameters();
$prepayId = $wxAppParameters['prepay_id'];
unset($wxAppParameters['prepay_id']);
$returnData = array( $returnData = array(
'credential'=>array(\Our\NameConst::wxLiteChannel=>$wxAppParameters), 'credential'=>array(\Our\NameConst::wxLiteChannel=>$wxAppParameters),
'app_id'=>$this->appid 'app_id'=>$this->appid,
'prepay_id'=>$prepayId
); );
return $returnData; return $returnData;
} }
...@@ -50,6 +53,8 @@ class WxLitePay extends \Payment\TencentPay{ ...@@ -50,6 +53,8 @@ class WxLitePay extends \Payment\TencentPay{
$wxApiObj['package'] = 'prepay_id='.$this->prepay_id; $wxApiObj['package'] = 'prepay_id='.$this->prepay_id;
$wxApiObj['signType'] = 'MD5'; $wxApiObj['signType'] = 'MD5';
$wxApiObj["paySign"] = $this->getSign($wxApiObj); $wxApiObj["paySign"] = $this->getSign($wxApiObj);
$wxApiObj["prepay_id"] = $this->prepay_id;
return $wxApiObj; return $wxApiObj;
} }
...@@ -143,4 +148,4 @@ class WxLitePay extends \Payment\TencentPay{ ...@@ -143,4 +148,4 @@ class WxLitePay extends \Payment\TencentPay{
return self::$_instance; return self::$_instance;
} }
} }
\ No newline at end of file
...@@ -1269,7 +1269,8 @@ class CartServiceModel extends \Business\AbstractModel{ ...@@ -1269,7 +1269,8 @@ class CartServiceModel extends \Business\AbstractModel{
function addOrder($data,$memberId,$currentAddress){ function addOrder($data,$memberId,$currentAddress){
$postData = json_decode($data['param'],true); $postData = json_decode($data['param'],true);
$orderUtil =\Order\OrderConfirmUtil::getInstance(); $orderUtil =\Order\OrderConfirmUtil::getInstance();
$return = $orderUtil->addOrder($data,$memberId,$currentAddress); $formId = $data['formId'] ? $data['formId'] : '';
$return = $orderUtil->addOrder($data, $memberId, $currentAddress, $formId);
//删除订单列表缓存 //删除订单列表缓存
$orderDao=\DAO\Order\OrderModel::getInstance(); $orderDao=\DAO\Order\OrderModel::getInstance();
$orderDao->deleteOrderCache($memberId,false,($postData['storeId'])?$postData['storeId']:$postData[0]['storeId']); $orderDao->deleteOrderCache($memberId,false,($postData['storeId'])?$postData['storeId']:$postData[0]['storeId']);
...@@ -1293,4 +1294,4 @@ class CartServiceModel extends \Business\AbstractModel{ ...@@ -1293,4 +1294,4 @@ class CartServiceModel extends \Business\AbstractModel{
return self::$_instance; return self::$_instance;
} }
} }
\ No newline at end of file
...@@ -319,32 +319,37 @@ class GoodsCommonServiceModel extends \Business\AbstractModel ...@@ -319,32 +319,37 @@ class GoodsCommonServiceModel extends \Business\AbstractModel
$endTime = TIMESTAMP; $endTime = TIMESTAMP;
$where = 'goods_edittime > '.$beginTime.' and goods_edittime<=' . $endTime . ' and goods_id in (select sg.goods_id from han_stat_goods sg)'; $where = 'goods_edittime > '.$beginTime.' and goods_edittime<=' . $endTime . ' and goods_id in (select sg.goods_id from han_stat_goods sg)';
$field = 'goods_id,is_del,goods_name,goods_storage,goods_price,store_id'; $field = 'goods_id,goods_commonid,is_del,goods_name,goods_storage,goods_price,store_id';
$result = true; $result = true;
$goodsDao = \DAO\GoodsModel::getInstance(); $goodsDao = \DAO\GoodsModel::getInstance();
$storeDao = \DAO\StoreModel::getInstance(); $storeDao = \DAO\StoreModel::getInstance();
$statGoodsDao = \DAO\StatGoodsModel::getInstance(DbNameConst::masterDBConnectName); $statGoodsDao = \DAO\StatGoodsModel::getInstance(DbNameConst::masterDBConnectName);
$store_tmp = array(); $store_tmp = array();
if($datas = $goodsDao->getList($where, $field)) { //更新商品报表 $count = $statGoodsDao->getCountByWhere('1=1');
echo 'in:'.count($datas); if($count > 0) {
foreach ($datas as $key=>$val) { if($datas = $goodsDao->getList($where, $field)) { //更新商品报表
if(isset($store_tmp[$val['store_id']])) { echo 'in:'.count($datas);
$store_info = $store_tmp[$val['store_id']]; foreach ($datas as $key=>$val) {
} else { if(isset($store_tmp[$val['store_id']])) {
$store_info = $storeDao->getFieldsInfo(array('store_id'=>$val['store_id']), 'province_id, city_id, area_id'); $store_info = $store_tmp[$val['store_id']];
} } else {
$update_stat_goods = $val; $store_info = $storeDao->getFieldsInfo(array('store_id'=>$val['store_id']), 'province_id, city_id, area_id');
$update_stat_goods['upd_time'] = $endTime; }
$update_stat_goods['province_id'] = $store_info['province_id']; $update_stat_goods = $val;
$update_stat_goods['city_id'] = $store_info['city_id']; $update_stat_goods['upd_time'] = $endTime;
$update_stat_goods['area_id'] = $store_info['area_id']; $update_stat_goods['province_id'] = $store_info['province_id'];
unset($update_stat_goods['goods_id']); $update_stat_goods['city_id'] = $store_info['city_id'];
$where = 'goods_id='.$val['goods_id']. ' and upd_time <'.$beginTime; $update_stat_goods['area_id'] = $store_info['area_id'];
if(!$statGoodsDao->update($where, $update_stat_goods)){ unset($update_stat_goods['goods_id']);
$result = false; $where = 'goods_id='.$val['goods_id']. ' and upd_time <'.$beginTime;
if(!$statGoodsDao->update($where, $update_stat_goods)){
$result = false;
}
} }
} }
} else {
file_put_contents($this->baseDir . \Our\PathConst::goodsSellStatTime, '0');
} }
$where = 'goods_id not in (select sg.goods_id from han_stat_goods sg)'; $where = 'goods_id not in (select sg.goods_id from han_stat_goods sg)';
...@@ -368,9 +373,13 @@ class GoodsCommonServiceModel extends \Business\AbstractModel ...@@ -368,9 +373,13 @@ class GoodsCommonServiceModel extends \Business\AbstractModel
} }
} }
} }
echo "\n";
if($result) { //商品报表更新成功 if($result) { //商品报表更新成功
file_put_contents($this->baseDir . \Our\PathConst::goodsStatTime, $endTime); file_put_contents($this->baseDir . \Our\PathConst::goodsStatTime, $endTime);
echo "upd goods succ";
} else {
echo "upd goods fail";
} }
return $result; return $result;
} }
...@@ -382,7 +391,6 @@ class GoodsCommonServiceModel extends \Business\AbstractModel ...@@ -382,7 +391,6 @@ class GoodsCommonServiceModel extends \Business\AbstractModel
* Time: 下午 6:19 * Time: 下午 6:19
*/ */
public function updateStatGoodsSell(){ public function updateStatGoodsSell(){
file_put_contents($this->baseDir . \Our\PathConst::goodsSellStatTime, '');
$beginTime = file_get_contents($this->baseDir . \Our\PathConst::goodsSellStatTime, TIMESTAMP); $beginTime = file_get_contents($this->baseDir . \Our\PathConst::goodsSellStatTime, TIMESTAMP);
$beginTime = $beginTime ? $beginTime : ApiConst::zero; $beginTime = $beginTime ? $beginTime : ApiConst::zero;
$endTime = TIMESTAMP; $endTime = TIMESTAMP;
...@@ -419,8 +427,12 @@ class GoodsCommonServiceModel extends \Business\AbstractModel ...@@ -419,8 +427,12 @@ class GoodsCommonServiceModel extends \Business\AbstractModel
} }
} }
if(!$result) { if(!$result) {
echo "\n";
echo 'upd sell fail';
$statGoodsDao->db->doRollback(); $statGoodsDao->db->doRollback();
} else { //商品报表更新成功 } else { //商品报表更新成功
echo "\n";
echo 'upd sell succ';
$statGoodsDao->db->doCommit(); $statGoodsDao->db->doCommit();
file_put_contents($this->baseDir . \Our\PathConst::goodsSellStatTime, $endTime); file_put_contents($this->baseDir . \Our\PathConst::goodsSellStatTime, $endTime);
} }
......
...@@ -333,19 +333,25 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -333,19 +333,25 @@ class OrderServiceModel extends \Business\AbstractModel
$storeDao=\DAO\StoreModel::getInstance(); $storeDao=\DAO\StoreModel::getInstance();
//判断订单目前状态是否允许取消 //判断订单目前状态是否允许取消
$isAllowCancel = $orderDao->isAllowCancel($order); $isAllowCancel = $orderDao->isAllowCancel($order);
$isAllowCance = true; //$isAllowCance = true;
if ($isAllowCancel) { if ($isAllowCancel) {
$res = $orderDao->updateStatusByOrderId($orderId, ApiConst::orderStateCancel,false,ApiConst::cancelOrderBySelf); $res = $orderDao->updateStatusByOrderId($orderId, ApiConst::orderStateCancel,false,ApiConst::cancelOrderBySelf);
$orderDao->setDb($orderDao->dbName);
$orderDao->db->doTransaction();
if ($res) { if ($res) {
$this->updateOrderGoodsStoregeByOrderIds(array($orderId)); $this->updateOrderGoodsStoregeByOrderIds(array($orderId));
$order['refundOrderNo']=$refundReturnDao->getRefundsn($order['storeId']); $order['refundOrderNo']=$refundReturnDao->getRefundsn($order['storeId']);
if($order['paymentTime']>ApiConst::zero){ if($order['paymentTime']>ApiConst::zero && in_array($order['paymentType'],ArrayConst::orderPayTypeOnlines)){
$resultRefund=$refundReturnDao->refundMoney($order); $resultRefund=$refundReturnDao->refundMoney($order);
if($resultRefund){ if($resultRefund){
$where['order_id']=$order['orderId']; $where['order_id']=$order['orderId'];
//$orderGoodsUpdateData['refund_state_name']='退款成功'; //$orderGoodsUpdateData['refund_state_name']='退款成功';
$orderGoodsUpdateData['is_refund']=ApiConst::refundSuccess; $orderGoodsUpdateData['is_refund']=ApiConst::refundSuccess;
$orderGoodsDao->update($where,$orderGoodsUpdateData); $orderGoodsDao->update($where,$orderGoodsUpdateData);
$orderDao->db->doCommit();
}else{
$orderDao->db->doRollback();
ErrorModel::throwException(CodeConfigModel::cancelRefundMoneyError);
} }
} }
$push=\Our\Push::getInstance(); $push=\Our\Push::getInstance();
...@@ -405,6 +411,7 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -405,6 +411,7 @@ class OrderServiceModel extends \Business\AbstractModel
$type=ApiConst::messageWaitGet; $type=ApiConst::messageWaitGet;
}else{ }else{
$type=ApiConst::messageWaitSend; $type=ApiConst::messageWaitSend;
} }
$push=\Our\Push::getInstance(); $push=\Our\Push::getInstance();
$pushData=array('storeId'=>$order['store_id'], $pushData=array('storeId'=>$order['store_id'],
...@@ -521,6 +528,7 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -521,6 +528,7 @@ class OrderServiceModel extends \Business\AbstractModel
{ {
$baseConfDir = \Our\Common::getConfig('out.config'); $baseConfDir = \Our\Common::getConfig('out.config');
$savePath = $baseConfDir . \Our\PathConst::orderWaitRecieveTaskAddTime; $savePath = $baseConfDir . \Our\PathConst::orderWaitRecieveTaskAddTime;
$messageService=\Business\Message\MessageServiceModel::getInstance();
$addTime = file_get_contents($savePath); $addTime = file_get_contents($savePath);
$addTime = $addTime ? $addTime : ApiConst::zero; $addTime = $addTime ? $addTime : ApiConst::zero;
$orderDao = \DAO\Order\OrderModel::getInstance(DbNameConst::masterDBConnectName); $orderDao = \DAO\Order\OrderModel::getInstance(DbNameConst::masterDBConnectName);
...@@ -535,6 +543,7 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -535,6 +543,7 @@ class OrderServiceModel extends \Business\AbstractModel
$pageBegin++; $pageBegin++;
} while (!empty($orders['list'])); } while (!empty($orders['list']));
$push->sendTcpMessage(); $push->sendTcpMessage();
$messageService->addMessageCenterToDb();
file_put_contents($savePath, TIMESTAMP); file_put_contents($savePath, TIMESTAMP);
} }
...@@ -849,8 +858,9 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -849,8 +858,9 @@ class OrderServiceModel extends \Business\AbstractModel
public function canformRecieveOrder() public function canformRecieveOrder()
{ {
$orderDao = \DAO\Order\OrderModel::getInstance(DbNameConst::masterDBConnectName); $orderDao = \DAO\Order\OrderModel::getInstance(DbNameConst::masterDBConnectName);
$memberDao=\DAO\MemberModel::getInstance(DbNameConst::masterDBConnectName);
$qmDeliverymanLogsDao = \DAO\Order\QmDeliverymanLogModel::getInstance(DbNameConst::masterDBConnectName); $qmDeliverymanLogsDao = \DAO\Order\QmDeliverymanLogModel::getInstance(DbNameConst::masterDBConnectName);
$orders = $orderDao->getOrdersByOrderState(ApiConst::orderStateWaitRecieve, 'accept_time', ApiConst::orderWaitRecieveTwentyFourHours, $this->orderMessageField, array(ApiConst::bySeller, ApiConst::express)); $orders = $orderDao->getOrdersByOrderState(ApiConst::orderStateWaitRecieve, 'accept_time', ApiConst::orderWaitRecieveTwentyFourHours, $this->orderMessageField, array(ApiConst::bySeller, ApiConst::bySelf));
if (!empty($orders)) { if (!empty($orders)) {
$sellerTypeOrderIds = $orderDao->getShippingTypeSellerOrdersByOrders($orders); $sellerTypeOrderIds = $orderDao->getShippingTypeSellerOrdersByOrders($orders);
$qmDeliverymanLogs = $qmDeliverymanLogsDao->getFinishDeliveryByOrderId($sellerTypeOrderIds); $qmDeliverymanLogs = $qmDeliverymanLogsDao->getFinishDeliveryByOrderId($sellerTypeOrderIds);
...@@ -864,15 +874,24 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -864,15 +874,24 @@ class OrderServiceModel extends \Business\AbstractModel
if ($order['shippingType'] == ApiConst::bySeller) { if ($order['shippingType'] == ApiConst::bySeller) {
if (isset($qmDeliverymanLogsOrderIds[$order['orderId']])) { if (isset($qmDeliverymanLogsOrderIds[$order['orderId']])) {
array_push($sellerOrderIds, $order['orderId']); array_push($sellerOrderIds, $order['orderId']);
$orderDao->deleteOrderCache($order['buyerId'], $order['orderId'], $order['storeId'],true); $orderDao->deleteOrderCache($order['buyerId'], $order['orderId'], $order['storeId'], true);
} }
} else { }
if($order['shippingType'] == ApiConst::bySelf){
$limitTime = TIMESTAMP - ApiConst::orderWaitRecieveThreeDays; $limitTime = TIMESTAMP - ApiConst::orderWaitRecieveThreeDays;
if ($order['acceptTime'] < $limitTime) { if ($order['acceptTime'] < $limitTime) {
array_push($expressOrderIds, $order['orderId']); array_push($expressOrderIds, $order['orderId']);
$orderDao->deleteOrderCache($order['buyerId'], $order['orderId'], $order['storeId'],true); $orderDao->deleteOrderCache($order['buyerId'], $order['orderId'], $order['storeId'],true);
} }
} }
// } else {
// $limitTime = TIMESTAMP - ApiConst::orderWaitRecieveThreeDays;
// if ($order['acceptTime'] < $limitTime) {
// array_push($expressOrderIds, $order['orderId']);z
// $orderDao->deleteOrderCache($order['buyerId'], $order['orderId'], $order['storeId'],true);
// }
// }
$memberDao->deleteTotalCache($order['buyerId']);
\Our\RedisHelper::memberTotalFromStateToState($order['buyerId'], $order['orderState'], ApiConst::orderStateComplete); \Our\RedisHelper::memberTotalFromStateToState($order['buyerId'], $order['orderState'], ApiConst::orderStateComplete);
} }
$updateOrderIds = array_merge($sellerOrderIds, $expressOrderIds); $updateOrderIds = array_merge($sellerOrderIds, $expressOrderIds);
......
...@@ -76,7 +76,7 @@ class DeliveryServiceModel extends \Business\AbstractModel ...@@ -76,7 +76,7 @@ class DeliveryServiceModel extends \Business\AbstractModel
$qmDeliveryManLogData['distribution_fee'] =$data['distributionFee']; $qmDeliveryManLogData['distribution_fee'] =$data['distributionFee'];
$qmDeliveryManLogData['order_type'] = $data['orderType']; $qmDeliveryManLogData['order_type'] = $data['orderType'];
if($data['orderType']==ApiConst::orderTypeRefund){ if($data['orderType']==ApiConst::orderTypeRefund){
$qmDeliveryManLogData['shipping_fee']=$orderD['need_shipping_fee']; $qmDeliveryManLogData['shipping_fee']=$orderD['needShippingFee'];
}else{ }else{
$qmDeliveryManLogData['shipping_fee'] = $orderD['shippingFee']; $qmDeliveryManLogData['shipping_fee'] = $orderD['shippingFee'];
} }
...@@ -104,6 +104,7 @@ class DeliveryServiceModel extends \Business\AbstractModel ...@@ -104,6 +104,7 @@ class DeliveryServiceModel extends \Business\AbstractModel
$orderDao->deleteOrderCache(null, $data['orderId'], $data['storeId'], true,false,$deliveryManMemberIds); $orderDao->deleteOrderCache(null, $data['orderId'], $data['storeId'], true,false,$deliveryManMemberIds);
$storeDao->deleteStoreCache($data['storeId'],$data['orderId']); $storeDao->deleteStoreCache($data['storeId'],$data['orderId']);
$storeDao->deleteStoreRefundCache($data['storeId'],$data['orderId']); $storeDao->deleteStoreRefundCache($data['storeId'],$data['orderId']);
$orderDao->deleteOrderCache($orderD['buyerId'],$orderD['orderId']);
//配送员推送 //配送员推送
$push=\Our\Push::getInstance(); $push=\Our\Push::getInstance();
if($data['orderType']==ApiConst::orderTypeRefund){ if($data['orderType']==ApiConst::orderTypeRefund){
...@@ -120,6 +121,7 @@ class DeliveryServiceModel extends \Business\AbstractModel ...@@ -120,6 +121,7 @@ class DeliveryServiceModel extends \Business\AbstractModel
$memberDao=\DAO\MemberModel::getInstance(DbNameConst::masterDBConnectName); $memberDao=\DAO\MemberModel::getInstance(DbNameConst::masterDBConnectName);
$deliveryManDao=\DAO\Order\DiliverymanModel::getInstance(DbNameConst::masterDBConnectName); $deliveryManDao=\DAO\Order\DiliverymanModel::getInstance(DbNameConst::masterDBConnectName);
$member=$memberDao->getByMemberMobile($memberMobile); $member=$memberDao->getByMemberMobile($memberMobile);
$storeDao=\DAO\StoreModel::getInstance();
$memberMobile=$member['memberMobile']; $memberMobile=$member['memberMobile'];
if(strlen($memberMobile)>ApiConst::telephoneLen || !$memberMobile){ if(strlen($memberMobile)>ApiConst::telephoneLen || !$memberMobile){
ErrorModel::throwException(CodeConfigModel::notExsitDeliveryMan); ErrorModel::throwException(CodeConfigModel::notExsitDeliveryMan);
...@@ -128,25 +130,39 @@ class DeliveryServiceModel extends \Business\AbstractModel ...@@ -128,25 +130,39 @@ class DeliveryServiceModel extends \Business\AbstractModel
$where['member_id']=$member['memberId']; $where['member_id']=$member['memberId'];
$res=$deliveryManDao->getByWhere($where); $res=$deliveryManDao->getByWhere($where);
if($res){ if($res){
$res=$res[ApiConst::zero];
}
if($res && !$res['isDel']){
ErrorModel::throwException(CodeConfigModel::alreadyExsitDeliveryMan); ErrorModel::throwException(CodeConfigModel::alreadyExsitDeliveryMan);
} }
$trueName=$trueName?$trueName:$member['memberName']; if($res['isDel']==ApiConst::deleteStateOne){
$deliveryManData['true_name']=$trueName; $updateData['is_del']=ApiConst::zero;
$deliveryManData['mobile']=$memberMobile; $updateData['true_name']=$trueName;
$deliveryManData['scores']=ApiConst::five; $updateData['update_time']=TIMESTAMP;
$deliveryManData['store_id']=$storeId; $deliveryManWhere['id']=$res['id'];
$deliveryManData['add_time']=TIMESTAMP; $resData= $deliveryManDao->update($deliveryManWhere,$updateData);
$deliveryManData['update_time']=TIMESTAMP; $memberData['diliveryman_id'] =$res['id'];
$deliveryManData['member_id']=$member['memberId']; $resData=$res['id'];
$deliveryManData['bind_status']=ApiConst::one; }else{
$deliveryManData['is_del']=ApiConst::zero; $trueName=$trueName?$trueName:$member['memberName'];
$resData=$deliveryManDao->insert($deliveryManData); $deliveryManData['true_name']=$trueName;
$deliveryManData['mobile']=$memberMobile;
$deliveryManData['scores']=ApiConst::five;
$deliveryManData['store_id']=$storeId;
$deliveryManData['add_time']=TIMESTAMP;
$deliveryManData['update_time']=TIMESTAMP;
$deliveryManData['member_id']=$member['memberId'];
$deliveryManData['bind_status']=ApiConst::one;
$deliveryManData['is_del']=ApiConst::zero;
$resData=$deliveryManDao->insert($deliveryManData);
$memberData['diliveryman_id']=$resData;
}
if(!$resData){ if(!$resData){
ErrorModel::throwException(CodeConfigModel::addDeliveryManError); ErrorModel::throwException(CodeConfigModel::addDeliveryManError);
} }
$memberData['diliveryman_id']=$resData;
$memberDao->saveInfo($memberData,$member['memberId']); $memberDao->saveInfo($memberData,$member['memberId']);
$storeDao->deleteStoreCache($storeId);
$storeDao->deleteStoreRefundCache($storeId);
// $memberDb0Redis=\Redis\Db0\MemberRedisModel::getInstance(); // $memberDb0Redis=\Redis\Db0\MemberRedisModel::getInstance();
// $memberDb0Redis->tableHSet(trim($member['diliveryman_id']),$resData,ApiConst::tenDaySecond); // $memberDb0Redis->tableHSet(trim($member['diliveryman_id']),$resData,ApiConst::tenDaySecond);
return $resData; return $resData;
......
...@@ -85,7 +85,7 @@ class ShopkeeperServiceModel extends \Business\AbstractModel ...@@ -85,7 +85,7 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
$data['favCount'] = $storeFavariteCount['favCount']; $data['favCount'] = $storeFavariteCount['favCount'];
$data['todayOrderCount'] = $storeStats['todayOrderCount']; $data['todayOrderCount'] = $storeStats['todayOrderCount'];
$data['todayOrderTotal'] = $storeStats['todayOrderTotal']; $data['todayOrderTotal'] = $storeStats['todayOrderTotal'];
$data['todayOrderTotalOnline']=$todayTotalOnline; $data['todayOrderTotalOnline']=$todayTotalOnline['orderTotalOnline'];
$data['tadayFavCount'] = $storeFavariteCount['todayFavCount']; $data['tadayFavCount'] = $storeFavariteCount['todayFavCount'];
$data['todayFavCount'] = $storeFavariteCount['todayFavCount']; $data['todayFavCount'] = $storeFavariteCount['todayFavCount'];
return $data; return $data;
...@@ -508,7 +508,8 @@ class ShopkeeperServiceModel extends \Business\AbstractModel ...@@ -508,7 +508,8 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
ErrorModel::throwException(CodeConfigModel::emptyStoreId); ErrorModel::throwException(CodeConfigModel::emptyStoreId);
} }
$diliveryMan = \DAO\Order\DiliverymanModel::getInstance(); $diliveryMan = \DAO\Order\DiliverymanModel::getInstance();
$diliveryMans=\Our\RedisHelper::cachedFunction(\Redis\Db6\StoreRedisModel::getInstance(), array(&$diliveryMan, 'getDeliveryManByStoreId'), array($storeId), \Our\ApiConst::oneDaySecond, array($storeId)); // $diliveryMans=\Our\RedisHelper::cachedFunction(\Redis\Db6\StoreRedisModel::getInstance(), array(&$diliveryMan, 'getDeliveryManByStoreId'), array($storeId), \Our\ApiConst::oneDaySecond, array($storeId));
$diliveryMans=$diliveryMan->getDeliveryManByStoreId($storeId);
foreach($diliveryMans as &$dilivery){ foreach($diliveryMans as &$dilivery){
$dilivery['memberAvatar']=$memberDao->getMemberAvatar($dilivery['memberId']); $dilivery['memberAvatar']=$memberDao->getMemberAvatar($dilivery['memberId']);
} }
...@@ -692,7 +693,6 @@ class ShopkeeperServiceModel extends \Business\AbstractModel ...@@ -692,7 +693,6 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
$storeDao=\DAO\StoreModel::getInstance(); $storeDao=\DAO\StoreModel::getInstance();
$memberFavoritesStoreMemberStatisticsDao=\DAO\Store\MemberFavoritesStoreStoreMemberStatisticsModel::getInstance(DbNameConst::masterDBConnectName); $memberFavoritesStoreMemberStatisticsDao=\DAO\Store\MemberFavoritesStoreStoreMemberStatisticsModel::getInstance(DbNameConst::masterDBConnectName);
foreach($distincts as $order){ foreach($distincts as $order){
$storeDao->deleteStoreTotalCount($order['storeId']); $storeDao->deleteStoreTotalCount($order['storeId']);
// $orderDao->deleteOrderCache($order['buyerId'], $order['orderId'], $order['storeId'], true, true); // $orderDao->deleteOrderCache($order['buyerId'], $order['orderId'], $order['storeId'], true, true);
$storeMemberStatisticsData['storeId']=$order['storeId']; $storeMemberStatisticsData['storeId']=$order['storeId'];
......
...@@ -320,13 +320,13 @@ class StoreServiceModel extends \Business\AbstractModel{ ...@@ -320,13 +320,13 @@ class StoreServiceModel extends \Business\AbstractModel{
* @return array * @return array
* @throws \Our\Exception * @throws \Our\Exception
*/ */
public function getStoreDetail($param){ public function getStoreDetail($param,$flag=true){
$storeId = intval($param['storeId']); $storeId = intval($param['storeId']);
if(!$storeId){ if(!$storeId){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyStoreId); \Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyStoreId);
} }
list($storeInfo,$storeLabel) = \DAO\StoreModel::getInstance()->get($storeId); list($storeInfo,$storeLabel) = \DAO\StoreModel::getInstance()->get($storeId,true,$flag);
//展示图片 //展示图片
// $detailImg = []; // $detailImg = [];
// if($storeInfo['store_detail_image']){ // if($storeInfo['store_detail_image']){
......
...@@ -71,7 +71,17 @@ class DiliverymanModel extends \DAO\AbstractModel ...@@ -71,7 +71,17 @@ class DiliverymanModel extends \DAO\AbstractModel
$result=$this->find($where); $result=$this->find($where);
return $result; return $result;
} }
/**
* 插入数据
* @param $data
* @param $where
* @return mixed
*/
public function update($where,$data)
{
$this->setDb(\Our\DbNameConst::masterDBConnectName);
return $this->db->update($this->_tableName)->where($where)->rows($data)->execute();
}
/** /**
* 插入数据 * 插入数据
* @param $data * @param $data
......
...@@ -496,7 +496,7 @@ class OrderModel extends \DAO\AbstractModel ...@@ -496,7 +496,7 @@ class OrderModel extends \DAO\AbstractModel
}else{ }else{
$refundAmount= $refundReturnDao->getSumRefundAmountByStoreId($storeId,false,true); $refundAmount= $refundReturnDao->getSumRefundAmountByStoreId($storeId,false,true);
} }
$res=$this->db->from($this->_tableName)->where($where)->select(" buyer_id as buyerId,store_id as storeId,order_amount as orderTotalOnline")->fetchOne(); $res=$this->db->from($this->_tableName)->where($where)->select(" buyer_id as buyerId,store_id as storeId,sum(order_amount) as orderTotalOnline")->fetchOne();
if(!$res){ if(!$res){
$res=array(); $res=array();
$res['orderTotalOnline']=ApiConst::zero; $res['orderTotalOnline']=ApiConst::zero;
......
...@@ -285,10 +285,11 @@ class StoreModel extends \DAO\AbstractModel ...@@ -285,10 +285,11 @@ class StoreModel extends \DAO\AbstractModel
} }
public function deleteStoreCache($storeId,$orderId){ public function deleteStoreCache($storeId,$orderId){
$qmDeliveryManLogDao =\DAO\Order\QmDeliverymanLogModel::getInstance(); $qmDeliveryManLogDao =\DAO\Order\QmDeliverymanLogModel::getInstance();
$diliveryMan = \DAO\Order\DiliverymanModel::getInstance();
if(!empty($storeId)){ if(!empty($storeId)){
\Our\RedisHelper::delCachedFunction(\Redis\Db6\StoreRedisModel::getInstance(), array(&$this, 'getList'), array(), array($storeId)); \Our\RedisHelper::delCachedFunction(\Redis\Db6\StoreRedisModel::getInstance(), array(&$this, 'getList'), array(), array($storeId));
\Our\RedisHelper::delCachedFunction(\Redis\Db6\StoreRedisModel::getInstance(), array(&$qmDeliveryManLogDao, 'getList'), array(), array($storeId)); \Our\RedisHelper::delCachedFunction(\Redis\Db6\StoreRedisModel::getInstance(), array(&$qmDeliveryManLogDao, 'getList'), array(), array($storeId));
\Our\RedisHelper::delCachedFunction(\Redis\Db6\StoreRedisModel::getInstance(), array(&$diliveryMan, 'getDeliveryManByStoreId'), array(), array($storeId));
} }
if(!empty($orderId)){ if(!empty($orderId)){
$orderDao=\DAO\Order\OrderModel::getInstance(DbNameConst::salveDBConnectName); $orderDao=\DAO\Order\OrderModel::getInstance(DbNameConst::salveDBConnectName);
......
...@@ -328,6 +328,7 @@ class CodeConfigModel ...@@ -328,6 +328,7 @@ class CodeConfigModel
const payTypeUpdateError = 30145; const payTypeUpdateError = 30145;
const beyongRefundAmount = 300146; const beyongRefundAmount = 300146;
const addOrderFrequently = 300147; const addOrderFrequently = 300147;
const cancelRefundMoneyError = 300148;
//店铺相关错误码 //店铺相关错误码
//商品分类 //商品分类
...@@ -838,6 +839,7 @@ class CodeConfigModel ...@@ -838,6 +839,7 @@ class CodeConfigModel
self::payTypeUpdateError=> '更新支付类型失败', self::payTypeUpdateError=> '更新支付类型失败',
self::beyongRefundAmount=>'退款金额不能超过可退款金额', self::beyongRefundAmount=>'退款金额不能超过可退款金额',
self::addOrderFrequently => '操作太频繁,请稍后重试', self::addOrderFrequently => '操作太频繁,请稍后重试',
self::cancelRefundMoneyError=>'退款有误,请于商家联系',
//销售员 //销售员
self::emptySaleGoodsId => '商品id不能为空', self::emptySaleGoodsId => '商品id不能为空',
self::emptySaleGoods => '销售商品不存在', self::emptySaleGoods => '销售商品不存在',
......
...@@ -43,7 +43,7 @@ class UserController extends \Our\Controller_AbstractIndex { ...@@ -43,7 +43,7 @@ class UserController extends \Our\Controller_AbstractIndex {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::storeIsRefuse); \Error\ErrorModel::throwException(\Error\CodeConfigModel::storeIsRefuse);
} }
$storeService =\Business\Store\StoreServiceModel::getInstance(); $storeService =\Business\Store\StoreServiceModel::getInstance();
$storeOne=$storeService->getStoreDetail($seller); $storeOne=$storeService->getStoreDetail($seller,false);
}else{ }else{
\Error\ErrorModel::throwException(\Error\CodeConfigModel::errorUsernameOrPassword); \Error\ErrorModel::throwException(\Error\CodeConfigModel::errorUsernameOrPassword);
} }
......
...@@ -290,7 +290,7 @@ elastic.master.scheme="http"; ...@@ -290,7 +290,7 @@ elastic.master.scheme="http";
resources.database.params.driver = "pdo_mysql" resources.database.params.driver = "pdo_mysql"
resources.database.params.hostname = "192.168.1.201" resources.database.params.hostname = "192.168.1.201"
resources.database.params.port = 3306 resources.database.params.port = 3306
resources.database.params.database = "qmcs" resources.database.params.database = "qmcs_ccw"
resources.database.params.username = "root" resources.database.params.username = "root"
resources.database.params.password = "123456" resources.database.params.password = "123456"
resources.database.params.charset = "UTF8" resources.database.params.charset = "UTF8"
...@@ -300,7 +300,7 @@ resources.database.params.driver_options.1002 = "SET NAMES utf8" ...@@ -300,7 +300,7 @@ resources.database.params.driver_options.1002 = "SET NAMES utf8"
resources.database.slave.params.driver = "pdo_mysql" resources.database.slave.params.driver = "pdo_mysql"
resources.database.slave.params.hostname = "192.168.1.201" resources.database.slave.params.hostname = "192.168.1.201"
resources.database.slave.params.port = 3306 resources.database.slave.params.port = 3306
resources.database.slave.params.database = "qmcs" resources.database.slave.params.database = "qmcs_ccw"
resources.database.slave.params.username = "root" resources.database.slave.params.username = "root"
resources.database.slave.params.password = "123456" resources.database.slave.params.password = "123456"
resources.database.slave.params.charset = "UTF8" resources.database.slave.params.charset = "UTF8"
......
...@@ -60,7 +60,7 @@ class cliOrderClose extends basecli ...@@ -60,7 +60,7 @@ class cliOrderClose extends basecli
// else{ // else{
// if(!empty($res['timeDiff'])){ // if(!empty($res['timeDiff'])){
// $timeArr=explode('-',$res['timeDiff']); // $timeArr=explode('-',$res['timeDiff']);
// if(!empty($timeArr)){v // if(!empty($timeArr)){
// if(\Our\Common::isCurentTimeInSection($timeArr[0],$timeArr[1])){ // if(\Our\Common::isCurentTimeInSection($timeArr[0],$timeArr[1])){
// continue; // continue;
// } // }
...@@ -74,7 +74,12 @@ class cliOrderClose extends basecli ...@@ -74,7 +74,12 @@ class cliOrderClose extends basecli
} }
protected function autoPushClient(){ protected function autoPushClient(){
$push=\Our\Push::getInstance(); $push=\Our\Push::getInstance();
$messageService=\Business\Message\MessageServiceModel::getInstance();
while($pushData=\Our\RedisHelper::lpop('client_push')){ while($pushData=\Our\RedisHelper::lpop('client_push')){
if($pushData['type']==\Our\ApiConst::messageReceiveOrderType){
$push->recievedOrder($pushData['storeId'],$pushData['orderId']);
continue;
}
$push->addOneToClient($pushData); $push->addOneToClient($pushData);
} }
$goodsCommonService=\Business\Goods\GoodsCommonServiceModel::getInstance(); $goodsCommonService=\Business\Goods\GoodsCommonServiceModel::getInstance();
...@@ -103,8 +108,8 @@ class cliOrderClose extends basecli ...@@ -103,8 +108,8 @@ class cliOrderClose extends basecli
} }
} }
$push->sendTcpMessage(); $push->sendTcpMessage();
$messageService->addMessageCenterToDb();
} }
protected function _runCli() protected function _runCli()
{ {
......
...@@ -70,6 +70,7 @@ class cliShopkeeperIndex extends basecli ...@@ -70,6 +70,7 @@ class cliShopkeeperIndex extends basecli
$shopkeeperService = \Business\Store\ShopkeeperServiceModel::getInstance(); $shopkeeperService = \Business\Store\ShopkeeperServiceModel::getInstance();
$shopkeeperService->baseDir= \Our\Common::getConfig('out.config'); $shopkeeperService->baseDir= \Our\Common::getConfig('out.config');
try { try {
$shopkeeperService->insertStoreMemberStatics(); $shopkeeperService->insertStoreMemberStatics();
//退货退款订单自动关闭 //退货退款订单自动关闭
$shopkeeperService->reduceStoreMemberStatics(); $shopkeeperService->reduceStoreMemberStatics();
......
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