Commit e8b75618 authored by zhz's avatar zhz

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

parents 83407fe5 daf366f9
...@@ -116,8 +116,14 @@ class CartController extends \Our\Controller_AbstractApi{ ...@@ -116,8 +116,14 @@ class CartController extends \Our\Controller_AbstractApi{
//var_dump($storeCartData); //var_dump($storeCartData);
$storeCartData = $cartService->checkCouponForCart($storeCartData,$this->memberId); $storeCartData = $cartService->checkCouponForCart($storeCartData,$this->memberId);
//$this->success($storeCartData); //$this->success($storeCartData);
$storeCartData = $cartService->getDeliveryTypeForCart($address,$storeCartData); if(CURRENTVERSION==\Our\NameConst::versionOne){
$data = $cartService->getFormatCartListForOrder($storeCartData,$address); $storeCartData = $cartService->getDeliveryTypeForCartNew($address,$storeCartData);
//$this->success($storeCartData);
$data = $cartService->getFormatCartListForOrderNew($storeCartData,$address);
}else{
$storeCartData = $cartService->getDeliveryTypeForCart($address,$storeCartData);
$data = $cartService->getFormatCartListForOrder($storeCartData,$address);
}
$this->success($data); $this->success($data);
} }
...@@ -163,30 +169,14 @@ class CartController extends \Our\Controller_AbstractApi{ ...@@ -163,30 +169,14 @@ class CartController extends \Our\Controller_AbstractApi{
$storeCartData = array('cartList'=>$cartList['list'],'storeIds'=>array_keys($cartList['list']),'goodsIds'=>$cartList['goodsIds'],'goodsCommonIds'=>$cartList['goodsCommonIds'],'blIds'=>$cartList['blIds'],'gcIds'=>$gcIds); $storeCartData = array('cartList'=>$cartList['list'],'storeIds'=>array_keys($cartList['list']),'goodsIds'=>$cartList['goodsIds'],'goodsCommonIds'=>$cartList['goodsCommonIds'],'blIds'=>$cartList['blIds'],'gcIds'=>$gcIds);
$storeCartData = $cartService->checkCouponForCart($storeCartData,$this->memberId); $storeCartData = $cartService->checkCouponForCart($storeCartData,$this->memberId);
//$this->success($storeCartData); //$this->success($storeCartData);
$storeCartData = $cartService->getDeliveryTypeForCart($address,$storeCartData); if(CURRENTVERSION==\Our\NameConst::versionOne){
$data = $cartService->getFormatCartListForOrder($storeCartData,$address); $storeCartData = $cartService->getDeliveryTypeForCartNew($address,$storeCartData);
$this->success($data); //$this->success($storeCartData);
} $data = $cartService->getFormatCartListForOrderNew($storeCartData,$address);
}else{
$storeCartData = $cartService->getDeliveryTypeForCart($address,$storeCartData);
/** $data = $cartService->getFormatCartListForOrder($storeCartData,$address);
* 立即购买 }
*/
public function buyNowNewAction(){
$cartService = \Business\Cart\CartServiceModel::getInstance();
$data = $this->req[\Our\NameConst::data];
$sess=\Yaf\Session::getInstance();
$currentAddress = $sess->get('currentAddress');
$address = $cartService->checkCurrentAddress($currentAddress,$this->memberId);
$cartService->checkBuynow($data,$this->memberId);
$pBundlingService = \Business\Goods\GroupSaleServiceModel::getInstance();
$cartList = $pBundlingService->getFormatBuyNowListForOrder($data,$this->memberId);
$gcIds = isset($cartList['gcIds'])?$cartList['gcIds']:array();
$storeCartData = array('cartList'=>$cartList['list'],'storeIds'=>array_keys($cartList['list']),'goodsIds'=>$cartList['goodsIds'],'goodsCommonIds'=>$cartList['goodsCommonIds'],'blIds'=>$cartList['blIds'],'gcIds'=>$gcIds);
$storeCartData = $cartService->checkCouponForCart($storeCartData,$this->memberId);
$storeCartData = $cartService->getDeliveryTypeForCartNew($address,$storeCartData);
//$this->success($storeCartData);
$data = $cartService->getFormatCartListForOrderNew($storeCartData,$address);
$this->success($data); $this->success($data);
} }
...@@ -196,6 +186,7 @@ class CartController extends \Our\Controller_AbstractApi{ ...@@ -196,6 +186,7 @@ class CartController extends \Our\Controller_AbstractApi{
$data = $this->req[\Our\NameConst::data]; $data = $this->req[\Our\NameConst::data];
$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);
} }
......
...@@ -50,12 +50,15 @@ class OrderConfirmUtil { ...@@ -50,12 +50,15 @@ class OrderConfirmUtil {
public function addOrder($data,$memberId,$currentAddress){ public function addOrder($data,$memberId,$currentAddress){
$storeCartData = $this->checkPostData($data,$memberId,$currentAddress); $storeCartData = $this->checkPostData($data,$memberId,$currentAddress);
//return $storeCartData; //return $storeCartData;
$storeCartData = $this->checkDeliveryTypeAndPayway($storeCartData); if(CURRENTVERSION==\Our\NameConst::versionOne){
$storeCartData = $this->checkDeliveryTypeAndPaywayNew($storeCartData);
}else{
$storeCartData = $this->checkDeliveryTypeAndPayway($storeCartData);
}
return $this->saveOrderInfo($storeCartData); return $this->saveOrderInfo($storeCartData);
} }
/** /**
* 验证传入数据的完成性 * 验证传入数据的完成性
* @param $data * @param $data
...@@ -79,7 +82,11 @@ class OrderConfirmUtil { ...@@ -79,7 +82,11 @@ class OrderConfirmUtil {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyParamForOrder); \Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyParamForOrder);
} }
if(isset($this->postData['storeId'])&&$this->postData['storeId']){//组合销售或者单品的立即购买 if(isset($this->postData['storeId'])&&$this->postData['storeId']){//组合销售或者单品的立即购买
$this->checkOneStoreData($this->postData); if(CURRENTVERSION==\Our\NameConst::versionOne){
$this->checkOneStoreDataNew($this->postData);
}else{
$this->checkOneStoreData($this->postData);
}
if((isset($this->postData['blId'])&&$this->postData['blId']>\Our\ApiConst::zero)&&(isset($this->postData['goodsId'])&&$this->postData['goodsId']>\Our\ApiConst::zero)){ if((isset($this->postData['blId'])&&$this->postData['blId']>\Our\ApiConst::zero)&&(isset($this->postData['goodsId'])&&$this->postData['goodsId']>\Our\ApiConst::zero)){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongBlIdAndGoodsIdForOrder); \Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongBlIdAndGoodsIdForOrder);
}else if(!(isset($this->postData['goodsId'])&&$this->postData['goodsId']>\Our\ApiConst::zero)&&!(isset($this->postData['blId'])&&$this->postData['blId']>\Our\ApiConst::zero)){ }else if(!(isset($this->postData['goodsId'])&&$this->postData['goodsId']>\Our\ApiConst::zero)&&!(isset($this->postData['blId'])&&$this->postData['blId']>\Our\ApiConst::zero)){
...@@ -97,7 +104,11 @@ class OrderConfirmUtil { ...@@ -97,7 +104,11 @@ class OrderConfirmUtil {
}else{ }else{
$this->cartCacheDeleteFlag = true; $this->cartCacheDeleteFlag = true;
foreach($this->postData as $temp){ foreach($this->postData as $temp){
$this->checkOneStoreData($temp); if(CURRENTVERSION==\Our\NameConst::versionOne){
$this->checkOneStoreDataNew($temp);
}else{
$this->checkOneStoreData($temp);
}
if(!$temp['cartIds']){ if(!$temp['cartIds']){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyCartIdsForOrder); \Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyCartIdsForOrder);
} }
...@@ -176,6 +187,52 @@ class OrderConfirmUtil { ...@@ -176,6 +187,52 @@ class OrderConfirmUtil {
} }
} }
/**
* 配送方式只包含商家配送和自提的参数检验
* @param $temp
* @throws \Error\OurExceptionModel
* @throws \Exception
*/
public function checkOneStoreDataNew($temp){
if(!$temp['storeId']){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyStoreIdForOrder);
}
if(!(isset($temp['payway']))&&in_array($temp['payway'],array(\Our\ApiConst::payOnline,\Our\ApiConst::payOffline,\Our\ApiConst::payAog))){//验证支付方式
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongPaywayForOrder);
}
if(!(isset($temp['deliveryType']))&&in_array($temp['deliveryType'],array(\Our\ApiConst::deliveryBuyer,\Our\ApiConst::deliveryStore))){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongDeliveryTypeForOrder);
}
if(!($temp['deliveryTime'])){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyDeliveryTime);
}
$minute = intval(date('i',$temp['deliveryTime']));
if(!($minute==0||$minute==30)){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongDeliveryTime);
}
if($temp['deliveryType']==\Our\ApiConst::deliveryBuyer){
if(!isset($temp['buyerMobile'])){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyBuyerMobile);
}
if(!\Our\Common::checkMobilePhone($temp['buyerMobile'])){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongBuyerMobile);
}
}
if(!isset($temp['deliveryFee'])){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyDeliveryFeeForOrder);
}
if(isset($temp['couponId'])&&$temp['couponId']>\Our\ApiConst::zero){//商品如果有使用优惠券
if(intval($temp['couponId'])<=\Our\ApiConst::zero){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongCouponIdForOrder);
}else{
$this->couponIds[] = $temp['couponId'];
$this->storeCouponIds[$temp['storeId']] = $temp['couponId'];
}
}
}
/** /**
* 检查配送方式 * 检查配送方式
* @param $storeCartData * @param $storeCartData
...@@ -232,8 +289,89 @@ class OrderConfirmUtil { ...@@ -232,8 +289,89 @@ class OrderConfirmUtil {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::noExpressDeliveryForOrder1); \Error\ErrorModel::throwException(\Error\CodeConfigModel::noExpressDeliveryForOrder1);
} }
$deliveryFee = $temp['shippingFee']; $deliveryFee = $temp['shippingFee'];
$delivery['buyerMobile'] = $requestData['buyerMobile'];
}
if($deliveryFee!=$requestData['deliveryFee']){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongStoreDeliveryFeeForOrder);
}
$delivery['deliveryFee'] = $deliveryFee;
$delivery['deliveryType'] = $requestData['deliveryType'];
$delivery['deliveryTime'] = isset($deliveryTime)?$deliveryTime:\Our\ApiConst::zero;
$storeCartData['cartList'][$storeId]['delivery'] = $delivery;
if(($requestData['payway'] == \Our\ApiConst::payOnline&&$temp['onelinePay']==\Our\ApiConst::one)||
($requestData['payway'] == \Our\ApiConst::payOffline&&$temp['offlinePay']==\Our\ApiConst::one)||
(($requestData['payway'] == \Our\ApiConst::payAog&&$temp['aogPay']==\Our\ApiConst::one))){
$storeCartData['cartList'][$storeId]['payway'] = $requestData['payway'];
}else{
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongPaywayForStoreForOrder);
} }
$reliefAmount = isset($tempStore['reliefAmount'])?$tempStore['reliefAmount']:\Our\ApiConst::zero;
$orderAmount = $tempStore['storeTotalPrice'] - $reliefAmount + $deliveryFee;
if($orderAmount<=\Our\ApiConst::zero){
$orderAmount = \Our\ApiConst::zero;
}
if($orderAmount!=$requestData['totalFee']){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongTotalFeeForOrder);
}
$storeCartData['cartList'][$storeId]['orderAmount'] = $orderAmount;
}
return $storeCartData;
}
/**
* 检查配送方式
* @param $storeCartData
* @return mixed
*/
public function checkDeliveryTypeAndPaywayNew($storeCartData){
$cartService = \Business\Cart\CartServiceModel::getInstance();
$storeCartData = $cartService->getDeliveryTypeForCartNew($this->address,$storeCartData,\Our\DbNameConst::masterDBConnectName,true);
$currentTime = time();
$todayTime = strtotime(date('Y-m-d',time()));
$tomorrowTime = $todayTime + \Our\ApiConst::oneDaySecond;
foreach($storeCartData['cartList'] as $storeId=>$tempStore){
$temp = $tempStore['deliverySetting'];
if(isset($this->postData['storeId'])&&$this->postData['storeId']){
$requestData = $this->postData;
}else{
$requestData = $this->postFormatData[$storeId];
}
if($requestData['deliveryType'] == \Our\ApiConst::deliveryStore){//商家配送
if($temp['sellerDistribution']!=\Our\ApiConst::one){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::noStoreDeliveryTypeForOrder);
}
if($temp['leftAmount']>0){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::leftAmountError);
}
if($requestData['deliveryTime']>=$todayTime&&$requestData['deliveryTime']<$todayTime*3){
$tempList = array_column($temp['deliverTimeList'],'list','time');
$currentDay= strtotime(date('Y-m-d',$requestData['deliveryTime']));
$currentList = $tempList[$currentDay];
$feeArray = array_column($currentList,'price','time');
$deliveryFee = $feeArray[$requestData['deliveryTime']];
}else{
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongDeliveryTimeRangeForOrder);
}
}else if($requestData['deliveryType'] == \Our\ApiConst::deliveryBuyer){
if($temp['buyerDistribution']!=\Our\ApiConst::one){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::noBuyerDeliveryTypeForOrder);
}
if($requestData['deliveryFee'] != \Our\ApiConst::zero){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::noDeliveryFeeForBuyerType);
}
if($requestData['deliveryTime']>=$todayTime&&$requestData['deliveryTime']<$todayTime*3){
$tempList = array($temp['selfDeliveryTimeList'],'list','time');
$currentDay= strtotime(date('Y-m-d',$requestData['deliveryTime']));
$currentList = $tempList[$currentDay];
$feeArray = array_column($currentList,'price','time');
$deliveryFee = $feeArray[$requestData['deliveryTime']];
}else{
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongBuyerTimeRangeForOrder);
}
$deliveryFee = \Our\ApiConst::zero;
}
if($deliveryFee!=$requestData['deliveryFee']){ if($deliveryFee!=$requestData['deliveryFee']){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongStoreDeliveryFeeForOrder); \Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongStoreDeliveryFeeForOrder);
} }
...@@ -354,6 +492,7 @@ class OrderConfirmUtil { ...@@ -354,6 +492,7 @@ class OrderConfirmUtil {
$needPayFlag = \Our\ApiConst::zero; $needPayFlag = \Our\ApiConst::zero;
$giftCoupons = array(); $giftCoupons = array();
$this->pushMessageOrders = array(); $this->pushMessageOrders = array();
$storeDao = \DAO\StoreModel::getInstance(\Our\DbNameConst::masterDBConnectName);
foreach($storeCartData['cartList'] as $storeId=>$storeCarts){ foreach($storeCartData['cartList'] as $storeId=>$storeCarts){
$order= array(); $order= array();
$order['order_sn'] = $this->makeOrderSn($orderPayResult); $order['order_sn'] = $this->makeOrderSn($orderPayResult);
...@@ -432,12 +571,19 @@ class OrderConfirmUtil { ...@@ -432,12 +571,19 @@ class OrderConfirmUtil {
$orderModel->db->doRollback(); $orderModel->db->doRollback();
\Error\ErrorModel::throwException(\Error\CodeConfigModel::updateAddressFailedForOrder); \Error\ErrorModel::throwException(\Error\CodeConfigModel::updateAddressFailedForOrder);
} }
$store = $storeDao->get($storeId,false);
$orderCommon = array(); $orderCommon = array();
$orderCommon['order_id'] = $orderId; $orderCommon['order_id'] = $orderId;
$orderCommon['store_id'] = $storeId; $orderCommon['store_id'] = $storeId;
$orderCommon['order_message'] = isset($this->storeMemos[$storeId])?$this->storeMemos[$storeId]:\Our\NameConst::emptyString; $orderCommon['order_message'] = isset($this->storeMemos[$storeId])?$this->storeMemos[$storeId]:\Our\NameConst::emptyString;
$orderCommon['reciver_info'] = $reciverInfo; if($storeCarts['delivery']['deliveryType'] == \Our\ApiConst::deliveryBuyer){
$orderCommon['reciver_name'] = $reciverName; list($buyerStoreInfo,$buyerName) = $this->getStoreInfoAndBuyerInfo($store,array('buyerMobile'=>$storeCarts['delivery']['buyerMobile'],'member_name'=>$this->member['memberName']));
$orderCommon['reciver_info'] = $buyerStoreInfo;
$orderCommon['reciver_name'] = $buyerName;
}else{
$orderCommon['reciver_info'] = $reciverInfo;
$orderCommon['reciver_name'] = $reciverName;
}
$orderCommon['reciver_city_id'] = $this->address['city_id']; $orderCommon['reciver_city_id'] = $this->address['city_id'];
$orderCommonList[] = $orderCommon; $orderCommonList[] = $orderCommon;
//$orderCommonDao->insert($orderCommon); //$orderCommonDao->insert($orderCommon);
...@@ -854,6 +1000,24 @@ class OrderConfirmUtil { ...@@ -854,6 +1000,24 @@ class OrderConfirmUtil {
} }
public function getStoreInfoAndBuyerInfo($store,$data){
$reciverInfo['phone'] = $data['buyerMobile'];
$reciverInfo['mob_phone'] = $data['buyerMobile'];
$reciverInfo['tel_phone'] = $data['buyerMobile'];
$reciverInfo['address'] = $store['store_address'];
$reciverInfo['name'] = $data['member_name'];
$reciverInfo['area'] = $store['area_info'];
$reciverInfo['street'] = $store['store_address'];
$reciverInfo['lng'] = $store['store_longitude'];
$reciverInfo['lat'] = $store['store_latitude'];
$reciverInfo['citycode'] = $store['store_citycode'];
$reciverInfo['address_id'] = \Our\NameConst::emptyString;
$reciverInfo['subaddress'] = $store['store_subaddress'];
$reciverInfo = serialize($reciverInfo);
$reciverName = $data['member_name'];
return array($reciverInfo, $reciverName);
}
public function getReciverAddr($addressInfo = array()) { public function getReciverAddr($addressInfo = array()) {
/*if (intval($addressInfo['dlyp_id'])) { /*if (intval($addressInfo['dlyp_id'])) {
$reciverInfo['phone'] = trim($addressInfo['dlyp_mobile'].($addressInfo['dlyp_telephony'] ? ','.$addressInfo['dlyp_telephony'] : null),','); $reciverInfo['phone'] = trim($addressInfo['dlyp_mobile'].($addressInfo['dlyp_telephony'] ? ','.$addressInfo['dlyp_telephony'] : null),',');
......
...@@ -6,6 +6,17 @@ namespace Our; ...@@ -6,6 +6,17 @@ namespace Our;
* 控制器抽象类 * 控制器抽象类
*/ */
abstract class Controller_Abstract extends \Yaf\Controller_Abstract { abstract class Controller_Abstract extends \Yaf\Controller_Abstract {
public function init(){
$this->req=$this->getRequest()->getPost();
$version = $this->req['data']['currentVersion'];
if($version){
define('CURRENTVERSION',$version);
}else{
define('CURRENTVERSION',\Our\NameConst::versionDefault);
}
}
public function success($data=array(),$shortMessage = DescribeConst::successMessage,$longMessage=DescribeConst::successMessage,$resultCode=ApiConst::returnSuccess) public function success($data=array(),$shortMessage = DescribeConst::successMessage,$longMessage=DescribeConst::successMessage,$resultCode=ApiConst::returnSuccess)
{ {
$returnMessage[NameConst::shortMessage] = $shortMessage; $returnMessage[NameConst::shortMessage] = $shortMessage;
......
...@@ -21,7 +21,7 @@ abstract class Controller_AbstractApi extends \Our\Controller_Abstract { ...@@ -21,7 +21,7 @@ abstract class Controller_AbstractApi extends \Our\Controller_Abstract {
* api控制器直接输出json格式数据,不需要渲染视图 * api控制器直接输出json格式数据,不需要渲染视图
*/ */
public function init() { public function init() {
$this->req=$this->getRequest()->getPost(); parent::init();
$this->checkEncrypt(); $this->checkEncrypt();
if(empty($this->req['data']['key'])){ if(empty($this->req['data']['key'])){
ErrorModel::throwException(CodeConfigModel::illegalAccess); ErrorModel::throwException(CodeConfigModel::illegalAccess);
......
...@@ -25,6 +25,7 @@ abstract class Controller_AbstractClient extends \Our\Controller_Abstract { ...@@ -25,6 +25,7 @@ abstract class Controller_AbstractClient extends \Our\Controller_Abstract {
* api控制器直接输出json格式数据,不需要渲染视图 * api控制器直接输出json格式数据,不需要渲染视图
*/ */
public function init() { public function init() {
parent::init();
$this->req=$this->getRequest()->getPost(); $this->req=$this->getRequest()->getPost();
$this->checkEncrypt(); $this->checkEncrypt();
if(empty($this->req['data']['key'])){ if(empty($this->req['data']['key'])){
......
...@@ -22,6 +22,7 @@ abstract class Controller_AbstractIndex extends \Our\Controller_Abstract { ...@@ -22,6 +22,7 @@ abstract class Controller_AbstractIndex extends \Our\Controller_Abstract {
} }
} }
public function init(){ public function init(){
parent::init();
$this->req=$this->getRequest()->getPost(); $this->req=$this->getRequest()->getPost();
$postData=$this->req['data']; $postData=$this->req['data'];
$this->checkEncrypt(); $this->checkEncrypt();
......
...@@ -178,6 +178,9 @@ class NameConst { ...@@ -178,6 +178,9 @@ class NameConst {
const logOut='logOut'; const logOut='logOut';
const versionOne = '1.0.0';
const versionDefault = '1.0';
} }
?> ?>
\ No newline at end of file
...@@ -89,7 +89,9 @@ class TencentPay { ...@@ -89,7 +89,9 @@ class TencentPay {
function postXml() function postXml()
{ {
$xml = $this->createXml(); $xml = $this->createXml();
\Our\Log::getInstance()->write($xml,'/data/log/applog');
$this->response = $this->postXmlCurl($xml,$this->pay_url,$this->curl_timeout); $this->response = $this->postXmlCurl($xml,$this->pay_url,$this->curl_timeout);
\Our\Log::getInstance()->write(serialize($this->response),'/data/log/applog');
return $this->response; return $this->response;
} }
......
...@@ -663,7 +663,7 @@ class CartServiceModel extends \Business\AbstractModel{ ...@@ -663,7 +663,7 @@ class CartServiceModel extends \Business\AbstractModel{
* @param $address * @param $address
* @param $storeCartData * @param $storeCartData
*/ */
public function getDeliveryTypeForCartNew($address,$storeCartData,$dbName = \Our\DbNameConst::salveDBConnectName){ public function getDeliveryTypeForCartNew($address,$storeCartData,$dbName = \Our\DbNameConst::salveDBConnectName,$checkFlag = false){
$storeIds = $storeCartData['storeIds']; $storeIds = $storeCartData['storeIds'];
$storeDao = \DAO\StoreModel::getInstance(); $storeDao = \DAO\StoreModel::getInstance();
$deliveryFormulaDao = \DAO\DeliveryFormulaModel::getInstance($dbName); $deliveryFormulaDao = \DAO\DeliveryFormulaModel::getInstance($dbName);
...@@ -695,32 +695,34 @@ class CartServiceModel extends \Business\AbstractModel{ ...@@ -695,32 +695,34 @@ class CartServiceModel extends \Business\AbstractModel{
'cityCode' => $store['store_citycode'] 'cityCode' => $store['store_citycode']
); );
if($deliverySetting['buyerDistribution']){ if($deliverySetting['buyerDistribution']){
$deliverySetting['selfDeliveryTimeList'] = $deliveryFormulaDao->getBuyerFormulaForCart($store); $selfDeliveryTimeData = $deliveryFormulaDao->getBuyerFormulaForCart($store);
$deliverySetting['selfDeliveryTimeList'] = $selfDeliveryTimeData['timeList'];
$deliverySetting['selfDeliveryFee'] = $selfDeliveryTimeData['default'];
} }
$deliverySetting['sellerDistribution'] = $store['seller_distribution']; $deliverySetting['sellerDistribution'] = $store['seller_distribution'];
if($deliverySetting['sellerDistribution']){ if($deliverySetting['sellerDistribution']){
$deliverySetting['leftAmount'] = \Our\ApiConst::zero; $deliverySetting['leftAmount'] = \Our\ApiConst::zero;
$deliverySetting['inServiceAreaFlag'] = \Our\ApiConst::zero; $deliverySetting['inServiceAreaFlag'] = \Our\ApiConst::zero;
//var_dump(json_encode($store));
if((isset($store['start_shipping_price'])&&$store['start_shipping_price']>\Our\ApiConst::zero)&&$storeCarts['storeTotalPrice']<$store['start_shipping_price']){ if((isset($store['start_shipping_price'])&&$store['start_shipping_price']>\Our\ApiConst::zero)&&$storeCarts['storeTotalPrice']<$store['start_shipping_price']){
//$deliverySetting['sellerDistribution'] = \Our\ApiConst::zero; //$deliverySetting['sellerDistribution'] = \Our\ApiConst::zero;
$deliverySetting['leftAmount'] = $store['start_shipping_price']-$storeCarts['storeTotalPrice'];//差价 $deliverySetting['leftAmount'] = $store['start_shipping_price']-$storeCarts['storeTotalPrice'];//差价
}else{ }
$deliveryFreeFlag = $storeCarts['deliveryFreeFlag']; $deliveryFreeFlag = $storeCarts['deliveryFreeFlag'];
if((isset($store['free_shipping_price'])&&$store['free_shipping_price']>\Our\ApiConst::zero)&&$storeCarts['storeTotalPrice']>=$store['free_shipping_price']){ if((isset($store['free_shipping_price'])&&$store['free_shipping_price']>\Our\ApiConst::zero)&&$storeCarts['storeTotalPrice']>=$store['free_shipping_price']){
$deliveryFreeFlag = \Our\ApiConst::one; $deliveryFreeFlag = \Our\ApiConst::one;
} }
$deliverySetting['deliverTimeList'] =array(); $deliverySetting['deliverTimeList'] =array();
if($address){ if($address){
$result = \Store\StoreUtil::getInstance()->checkAddressInServiceArea(array('lng'=>$address['lng'],'lat'=>$address['lat']),$storeId); $result = \Store\StoreUtil::getInstance()->checkAddressInServiceArea(array('lng'=>$address['lng'],'lat'=>$address['lat']),$storeId);
$storeDistance = \Our\CommonExtension::getDistance($address['lat'],$address['lng'],$store['store_latitude'],$store['store_longitude'],\Our\ApiConst::one); $storeDistance = \Our\CommonExtension::getDistance($address['lat'],$address['lng'],$store['store_latitude'],$store['store_longitude'],\Our\ApiConst::one);
if($result){ if($result){
$deliverySetting['inServiceAreaFlag'] = \Our\ApiConst::one; $deliverySetting['inServiceAreaFlag'] = \Our\ApiConst::one;
$deliverTimeList = $deliveryFormulaDao->getDeliveryFormulaForCartNew($store,$storeDistance,$deliveryFreeFlag); $deliverTimeList = $deliveryFormulaDao->getDeliveryFormulaForCartNew($store,$storeCarts,$storeDistance,$deliveryFreeFlag,$checkFlag);
if($deliverTimeList){ if($deliverTimeList){
$deliverySetting['deliverTimeList'] =$deliverTimeList['timeList']; $deliverySetting['deliverTimeList'] =$deliverTimeList['timeList'];
$storeCartData['cartList'][$storeId]['storeDistance'] = $storeDistance; $storeCartData['cartList'][$storeId]['storeDistance'] = $storeDistance;
$deliverySetting['defaultFee'] = $deliverTimeList['default']?$deliverTimeList['default']:\Our\ApiConst::zero; $deliverySetting['sellerDefaultFee'] = $deliverTimeList['default']?$deliverTimeList['default']:\Our\ApiConst::zero;
}
} }
} }
} }
...@@ -964,7 +966,7 @@ class CartServiceModel extends \Business\AbstractModel{ ...@@ -964,7 +966,7 @@ class CartServiceModel extends \Business\AbstractModel{
$delivery = array(); $delivery = array();
$delivery['name'] = \Our\DescribeConst::deliveryNameStore; $delivery['name'] = \Our\DescribeConst::deliveryNameStore;
$delivery['type'] = \Our\ApiConst::deliveryStore; $delivery['type'] = \Our\ApiConst::deliveryStore;
$deliveryFee = $deliverySetting['defaultFee']; $deliveryFee = $deliverySetting['sellerDefaultFee'];
$shippingFee = $deliveryFee; $shippingFee = $deliveryFee;
$delivery['isChoosed'] = \Our\ApiConst::one; $delivery['isChoosed'] = \Our\ApiConst::one;
$delivery['deliveryFee'] = $deliveryFee; $delivery['deliveryFee'] = $deliveryFee;
...@@ -977,7 +979,7 @@ class CartServiceModel extends \Business\AbstractModel{ ...@@ -977,7 +979,7 @@ class CartServiceModel extends \Business\AbstractModel{
$delivery = array(); $delivery = array();
$delivery['name'] = \Our\DescribeConst::deliveryNameExpress; $delivery['name'] = \Our\DescribeConst::deliveryNameExpress;
$delivery['type'] = \Our\ApiConst::deliveryExpress; $delivery['type'] = \Our\ApiConst::deliveryExpress;
if(isset($shippingFee)){ if($deliverySettings){
$delivery['isChoosed'] = \Our\ApiConst::zero; $delivery['isChoosed'] = \Our\ApiConst::zero;
}else{ }else{
$shippingFee = $deliveryFee; $shippingFee = $deliveryFee;
...@@ -992,7 +994,7 @@ class CartServiceModel extends \Business\AbstractModel{ ...@@ -992,7 +994,7 @@ class CartServiceModel extends \Business\AbstractModel{
$delivery = array(); $delivery = array();
$delivery['name'] = \Our\DescribeConst::deliveryNameBuyer; $delivery['name'] = \Our\DescribeConst::deliveryNameBuyer;
$delivery['type'] = \Our\ApiConst::deliveryBuyer; $delivery['type'] = \Our\ApiConst::deliveryBuyer;
if(isset($shippingFee)){ if($deliverySettings){
$delivery['isChoosed'] = \Our\ApiConst::zero; $delivery['isChoosed'] = \Our\ApiConst::zero;
}else{ }else{
$shippingFee = $deliveryFee; $shippingFee = $deliveryFee;
...@@ -1000,7 +1002,6 @@ class CartServiceModel extends \Business\AbstractModel{ ...@@ -1000,7 +1002,6 @@ class CartServiceModel extends \Business\AbstractModel{
$storeSumData['deliveryFee'] = $deliveryFee; $storeSumData['deliveryFee'] = $deliveryFee;
} }
$delivery['deliveryFee'] = $deliveryFee; $delivery['deliveryFee'] = $deliveryFee;
$delivery['timeList'] = $deliverySetting['selfDeliveryTimeList']; $delivery['timeList'] = $deliverySetting['selfDeliveryTimeList'];
$deliverySettings[]= $delivery; $deliverySettings[]= $delivery;
} }
......
...@@ -89,12 +89,13 @@ class GoodsClassServiceModel extends \Business\AbstractModel{ ...@@ -89,12 +89,13 @@ class GoodsClassServiceModel extends \Business\AbstractModel{
if($serviceParentClassIds){ if($serviceParentClassIds){
$classIds = array_merge($serviceParentClassIds,$classIds); $classIds = array_merge($serviceParentClassIds,$classIds);
} }
/*
//获取可快递店铺对应分类 //获取可快递店铺对应分类
$expressClassIds = $this->getExpressStoreClasses($where); $expressClassIds = $this->getExpressStoreClasses($where);
if($expressClassIds){ if($expressClassIds){
$classIds = array_merge($expressClassIds,$classIds); $classIds = array_merge($expressClassIds,$classIds);
} }
*/
$classIdKeys = array_flip($classIds); $classIdKeys = array_flip($classIds);
$goodsClassDao = \DAO\GoodsClassModel::getInstance(); $goodsClassDao = \DAO\GoodsClassModel::getInstance();
$parentClasses = $goodsClassDao->getParentClasses(); $parentClasses = $goodsClassDao->getParentClasses();
......
...@@ -606,7 +606,7 @@ class StoreServiceModel extends \Business\AbstractModel{ ...@@ -606,7 +606,7 @@ class StoreServiceModel extends \Business\AbstractModel{
//服务分类对应店铺 //服务分类对应店铺
$serviceStores = $this->getServiceClassStores($gcId,$condition); $serviceStores = $this->getServiceClassStores($gcId,$condition);
//获取签约分类对应店铺 //获取签约分类对应店铺
$expressStores = $this->getExpressStores($gcId,$condition); //$expressStores = $this->getExpressStores($gcId,$condition);
$goodsClassList = $goodsClassDao->getOnlineSecondClassList($gcId); $goodsClassList = $goodsClassDao->getOnlineSecondClassList($gcId);
...@@ -620,11 +620,13 @@ class StoreServiceModel extends \Business\AbstractModel{ ...@@ -620,11 +620,13 @@ class StoreServiceModel extends \Business\AbstractModel{
$purchasedStore = array(); $purchasedStore = array();
if($signStores&&in_array($goodsClass['gcId'],array_keys($signStores))){//如果当前分类存在对应签约店铺 if($signStores&&in_array($goodsClass['gcId'],array_keys($signStores))){//如果当前分类存在对应签约店铺
$exitStore = $allStores[$signStores[$goodsClass['gcId']]]; $exitStore = $allStores[$signStores[$goodsClass['gcId']]];
}else if($serviceStores&&in_array($goodsClass['gcId'],array_keys($serviceStores))){ }
if(empty($exitStore)&&$serviceStores&&in_array($goodsClass['gcId'],array_keys($serviceStores))){
$exitStore = $allStores[$serviceStores[$goodsClass['gcId']]]; $exitStore = $allStores[$serviceStores[$goodsClass['gcId']]];
}else if($expressStores&&in_array($goodsClass['gcId'],array_keys($expressStores))){
$exitStore = $allStores[$expressStores[$goodsClass['gcId']]];
} }
/*if(empty($exitStore)&&$expressStores&&in_array($goodsClass['gcId'],array_keys($expressStores))){
$exitStore = $allStores[$expressStores[$goodsClass['gcId']]];
}*/
if($memberStores){ if($memberStores){
if($memberStores&&in_array($goodsClass['gcId'],array_keys($memberStores))){ if($memberStores&&in_array($goodsClass['gcId'],array_keys($memberStores))){
$purchasedStore = $allStores[$memberStores[$goodsClass['gcId']]]; $purchasedStore = $allStores[$memberStores[$goodsClass['gcId']]];
......
...@@ -309,7 +309,6 @@ class AddressServiceModel extends \Business\AbstractModel { ...@@ -309,7 +309,6 @@ class AddressServiceModel extends \Business\AbstractModel {
} }
} }
return array('returnAddressId'=>$choosedAddressId,'choosedAddressFlag'=>$choosedAddressFlag,'addresses'=>$returnAddresses); return array('returnAddressId'=>$choosedAddressId,'choosedAddressFlag'=>$choosedAddressFlag,'addresses'=>$returnAddresses);
} }
public function getMyCurrentAddressByMemberId($memberId){ public function getMyCurrentAddressByMemberId($memberId){
......
...@@ -71,6 +71,9 @@ class DeliveryFormulaModel extends \DAO\AbstractModel { ...@@ -71,6 +71,9 @@ class DeliveryFormulaModel extends \DAO\AbstractModel {
if ($store['store_start_time'] && $store['store_close_time']) { if ($store['store_start_time'] && $store['store_close_time']) {
$todayStartTime = strtotime($time . ' ' . $store['store_start_time']); $todayStartTime = strtotime($time . ' ' . $store['store_start_time']);
$todayEndTime = strtotime($time . ' ' . $store['store_close_time']); $todayEndTime = strtotime($time . ' ' . $store['store_close_time']);
if($todayEndTime<=$todayStartTime){
$todayEndTime += \Our\ApiConst::oneDaySecond;
}
} else { } else {
$todayStartTime = $time + \Our\ApiConst::deliveryStartTime; $todayStartTime = $time + \Our\ApiConst::deliveryStartTime;
$todayEndTime = $time + \Our\ApiConst::deliveryEndTime; $todayEndTime = $time + \Our\ApiConst::deliveryEndTime;
...@@ -78,33 +81,44 @@ class DeliveryFormulaModel extends \DAO\AbstractModel { ...@@ -78,33 +81,44 @@ class DeliveryFormulaModel extends \DAO\AbstractModel {
if($currentTime<$todayStartTime){ if($currentTime<$todayStartTime){
$currentTime = $todayStartTime; $currentTime = $todayStartTime;
} }
$return[]=array(); $return=array();
$time = date('Y-m-d',$currentTime); $time = date('Y-m-d',$currentTime);
$todayUnixTime = strtotime($time); $todayUnixTime = strtotime($time);
$todayList = $this->getBuyerFormulaList($currentTime,$todayEndTime,\Our\ApiConst::one); $todayList = $this->getBuyerFormulaList($currentTime,$todayEndTime,\Our\ApiConst::one);
$isDefault = \Our\ApiConst::zero; $isDefault = \Our\ApiConst::zero;
if($todayList){ if($todayList){
$return[] = array('time'=>$todayUnixTime,'list'=>$todayList); $return = array_merge($return,$todayList);
}else{ }else{
$isDefault = \Our\ApiConst::one; $isDefault = \Our\ApiConst::one;
} }
$tommorowStartTime = $todayStartTime + \Our\ApiConst::oneDaySecond; $tommorowStartTime = $todayStartTime + \Our\ApiConst::oneDaySecond;
$tommorowEndTime = $todayEndTime + \Our\ApiConst::oneDaySecond; $tommorowEndTime = $todayEndTime + \Our\ApiConst::oneDaySecond;
$tommorowUnixTime = $todayUnixTime + \Our\ApiConst::oneDaySecond;
$tromorrowList = $this->getBuyerFormulaList($tommorowStartTime,$tommorowEndTime,$isDefault); $tromorrowList = $this->getBuyerFormulaList($tommorowStartTime,$tommorowEndTime,$isDefault);
if($tommorowUnixTime){ if($tromorrowList){
$return[]= array('time'=>$tommorowUnixTime,'list'=>$tromorrowList); $return = array_merge($return,$tromorrowList);
} }
$isDefault = \Our\ApiConst::zero; $isDefault = \Our\ApiConst::zero;
if(!($todayList&&$tromorrowList)){ if(!$return){
$isDefault = \Our\ApiConst::one; $isDefault = \Our\ApiConst::one;
} }
$nextStartTime = $todayStartTime + \Our\ApiConst::oneDaySecond*2; $nextStartTime = $todayStartTime + \Our\ApiConst::oneDaySecond*2;
$nextEndTime = $todayEndTime + \Our\ApiConst::oneDaySecond*2; $nextEndTime = $todayEndTime + \Our\ApiConst::oneDaySecond*2;
$nextUnixTime = $todayUnixTime + \Our\ApiConst::oneDaySecond*2; if($nextEndTime>$todayUnixTime*3){
$nextEndTime = $todayUnixTime*3;
}
$nextList = $this->getBuyerFormulaList($nextStartTime,$nextEndTime,$isDefault); $nextList = $this->getBuyerFormulaList($nextStartTime,$nextEndTime,$isDefault);
if($tommorowUnixTime){ if($nextList){
$return[]= array('time'=>$nextUnixTime,'list'=>$nextList); $return = array_merge($return,$nextList);
}
if($return){
$returnList = array();
foreach($return as $key=>$value){
$dayList = array();
$dayList['time']= strtotime(date('Y-m-d',$value[0]['time']));
$dayList['list']= $value;
$returnList[] = $dayList;
}
return array('timeList'=>$returnList,'default'=>\Our\ApiConst::zero);
} }
return $return; return $return;
} }
...@@ -122,8 +136,8 @@ class DeliveryFormulaModel extends \DAO\AbstractModel { ...@@ -122,8 +136,8 @@ class DeliveryFormulaModel extends \DAO\AbstractModel {
* @return array * @return array
* @throws \Our\Exception * @throws \Our\Exception
*/ */
public function getDeliveryFormulaForCartNew($store,$storeCarts,$distance,$deliveryFreeFlag=false){ public function getDeliveryFormulaForCartNew($store,$storeCarts,$distance,$deliveryFreeFlag=false,$checkFlag = false){
$delivery_template_ids = array_unique(array_column($storeCarts,'delivery_template_id')); $delivery_template_ids = array_unique(array_column($storeCarts['storeCarts'],'delivery_template_id'));
$deliveryFormula = \Our\RedisHelper::cachedFunction(\Redis\Db6\DeliveryFormulaRedisModel::getInstance(),array(&$this, 'getOne'),array('*',array('store_id'=>$store['store_id'])),\Our\ApiConst::sevenDaySecond,array($store['store_id'])); $deliveryFormula = \Our\RedisHelper::cachedFunction(\Redis\Db6\DeliveryFormulaRedisModel::getInstance(),array(&$this, 'getOne'),array('*',array('store_id'=>$store['store_id'])),\Our\ApiConst::sevenDaySecond,array($store['store_id']));
if(!$deliveryFormula){ if(!$deliveryFormula){
return false; return false;
...@@ -146,23 +160,39 @@ class DeliveryFormulaModel extends \DAO\AbstractModel { ...@@ -146,23 +160,39 @@ class DeliveryFormulaModel extends \DAO\AbstractModel {
} }
} }
$formula = array(); $formula = array();
$halfList = array();
$oneList = array(); $formula['half'] = max(array_column($distanceFormulaList,'half'));
$twoList = array(); $formula['one'] = max(array_column($distanceFormulaList,'one'));
$dayList = array(); $formula['two'] = max(array_column($distanceFormulaList,'two'));
$otherList = array(); $formula['day'] = max(array_column($distanceFormulaList,'day'));
foreach($distanceFormulaList as $tempFormuala){ $formula['other'] = max(array_column($distanceFormulaList,'other'));
$halfList[] = $tempFormuala['half']?$tempFormuala['half']:$tempFormuala['other'];
$oneList[] = $tempFormuala['one']?$tempFormuala['one']:$tempFormuala['other']; foreach($distanceFormulaList as &$tempFormuala){
$twoList[] = $tempFormuala['one']?$tempFormuala['two']:$tempFormuala['other']; if($formula['half']){
$dayList[] = $tempFormuala['day']?$tempFormuala['day']:$tempFormuala['other']; if(!$tempFormuala['half']){
$otherList[] = $tempFormuala['other']; $tempFormuala['half'] = $tempFormuala['one']?$tempFormuala['one']:($tempFormuala['two']?$tempFormuala['two']:($tempFormuala['day']?$tempFormuala['day']:$tempFormuala['other']));
} }
$formula['half'] = max($distanceFormulaList); }
$formula['one'] = max($oneList); if($formula['one']){
$formula['two'] = max($twoList); if(!$tempFormuala['one']){
$formula['day'] = max($dayList); $tempFormuala['one'] = $tempFormuala['two']?$tempFormuala['two']:($tempFormuala['day']?$tempFormuala['day']:$tempFormuala['other']);
$formula['other'] = max($otherList); }
}
if($formula['two']){
if(!$tempFormuala['two']){
$tempFormuala['two'] = $tempFormuala['day']?$tempFormuala['day']:$tempFormuala['other'];
}
}
if($formula['day']){
if(!$tempFormuala['day']){
$tempFormuala['day'] = $tempFormuala['other'];
}
}
}
$formula['half'] = max(array_column($distanceFormulaList,'half'));
$formula['one'] = max(array_column($distanceFormulaList,'one'));
$formula['two'] = max(array_column($distanceFormulaList,'two'));
$formula['day'] = max(array_column($distanceFormulaList,'day'));
$currentTime =TIMESTAMP; $currentTime =TIMESTAMP;
$time = date('Y-m-d',$currentTime); $time = date('Y-m-d',$currentTime);
...@@ -170,52 +200,92 @@ class DeliveryFormulaModel extends \DAO\AbstractModel { ...@@ -170,52 +200,92 @@ class DeliveryFormulaModel extends \DAO\AbstractModel {
if($store['store_dis_sta_time']&&$store['store_dis_end_time']){ if($store['store_dis_sta_time']&&$store['store_dis_end_time']){
$todayStartTime = strtotime($time.' '.$store['store_dis_sta_time']); $todayStartTime = strtotime($time.' '.$store['store_dis_sta_time']);
$todayEndTime = strtotime($time.' '.$store['store_dis_end_time']); $todayEndTime = strtotime($time.' '.$store['store_dis_end_time']);
if($todayEndTime<=$todayStartTime){
$todayEndTime += \Our\ApiConst::oneDaySecond;
}
}else{ }else{
$todayStartTime = $time+\Our\ApiConst::deliveryStartTime; $todayStartTime = $time+\Our\ApiConst::deliveryStartTime;
$todayEndTime = $time+\Our\ApiConst::deliveryEndTime; $todayEndTime = $time+\Our\ApiConst::deliveryEndTime;
} }
if($todayStartTime>$currentTime){ $todayInterval = 0;
$currentTime = $todayStartTime; if($formula['half']){
$currentMinute = date('i',$currentTime);
$tenMinute =10;
$forthMinute = 40;
if($checkFlag){
$tenMinute =15;
$forthMinute = 45;
}
if($currentMinute>$tenMinute&&$currentMinute<30){
$currentTime = mktime(date('H',$currentTime),30,0,date('m',$currentTime),date('d',$currentTime),date('Y',$currentTime));
}else if($currentMinute>$forthMinute){
$currentTime = mktime(date('H',$currentTime),60,0,date('m',$currentTime),date('d',$currentTime),date('Y',$currentTime));
}
}else if($formula['one']){
$todayInterval = \Our\ApiConst::halfHour;
}else if($formula['two']){
$todayInterval = \Our\ApiConst::oneHour;
}else if($formula['day']){
$todayInterval = \Our\ApiConst::oneHour*2 ;
}else{
$todayInterval = \Our\ApiConst::oneDaySecond;
} }
$defaultFee = $formula['half'];
$currentTime = $currentTime + $todayInterval;
$defaultFee = $formula['half']?$formula['half']:($formula['one']?$formula['one']:($formula['two']?$formula['two']:($formula['day']?$formula['day']:$formula['other'])));
$defaultFee = $defaultFee*\Our\ApiConst::hundred;
$return = array(); $return = array();
$formulaList = $this->getTodayFormulaList($currentTime,$todayEndTime,$formula,$deliveryFreeFlag);
$tommorowDefault = \Our\ApiConst::zero; $tommorowDefault = \Our\ApiConst::zero;
if(!$formulaList){ if($currentTime<$todayEndTime){
$tommorowDefault = \Our\ApiConst::one; if($todayStartTime>$currentTime){
$currentTime = $todayStartTime;
}
$formulaList = $this->getTodayFormulaList($currentTime,$todayEndTime,$todayInterval,$formula,$deliveryFreeFlag);
if(!$formulaList){
$tommorowDefault = \Our\ApiConst::one;
}else{
$return = array_merge($return,$formulaList);
}
}else{ }else{
$defaultFee = $formula['other']; $tommorowDefault = \Our\ApiConst::one;
$return[]= array('time'=>$todayUnixTime,'list'=>$formulaList);
} }
$tommorowStartTime = $todayStartTime + \Our\ApiConst::oneDaySecond; $tommorowStartTime = $todayStartTime + \Our\ApiConst::oneDaySecond;
$tommorowEndTime = $todayEndTime + \Our\ApiConst::oneDaySecond; $tommorowEndTime = $todayEndTime + \Our\ApiConst::oneDaySecond;
$tommorowUnixTime = $todayUnixTime + \Our\ApiConst::oneDaySecond;
$tromorrowList = $this->getOtherDayFormulaList($tommorowStartTime,$tommorowEndTime,$formula['other'],$deliveryFreeFlag,$tommorowDefault); $tromorrowList = $this->getOtherDayFormulaList($tommorowStartTime,$tommorowEndTime,$formula['other'],$deliveryFreeFlag,$tommorowDefault);
if($tommorowUnixTime){ if($tromorrowList){
$return[]= array('time'=>$tommorowUnixTime,'list'=>$tromorrowList); $return = array_merge($return,$tromorrowList);
} }
$nextStartTime = $todayStartTime + \Our\ApiConst::oneDaySecond*2; $nextStartTime = $todayStartTime + \Our\ApiConst::oneDaySecond*2;
$nextEndTime = $todayEndTime + \Our\ApiConst::oneDaySecond*2; $nextEndTime = $todayEndTime + \Our\ApiConst::oneDaySecond*2;
$nextUnixTime = $todayUnixTime + \Our\ApiConst::oneDaySecond*2; if($nextEndTime>$todayUnixTime + \Our\ApiConst::oneDaySecond*3){
$nextEndTime = $todayUnixTime + \Our\ApiConst::oneDaySecond*3;
}
$isDefault = \Our\ApiConst::zero; $isDefault = \Our\ApiConst::zero;
if(!($formulaList&&$tromorrowList)){ if(!($return)){
$isDefault = \Our\ApiConst::one; $isDefault = \Our\ApiConst::one;
} }
$nextList = $this->getOtherDayFormulaList($nextStartTime,$nextEndTime,$formula['other'],$deliveryFreeFlag,$isDefault); $nextList = $this->getOtherDayFormulaList($nextStartTime,$nextEndTime,$formula['other'],$deliveryFreeFlag,$isDefault);
if($tommorowUnixTime){ if($nextList){
$return[]= array('time'=>$nextUnixTime,'list'=>$nextList); $return = array_merge($return,$nextList);
} }
if($return){ if($return){
return array('timeList'=>$return,'default'=>$defaultFee); $returnList = array();
foreach($return as $key=>$value){
$dayList = array();
$dayList['time']= strtotime(date('Y-m-d',$value[0]['time']));
$dayList['list']= $value;
$returnList[] = $dayList;
}
return array('timeList'=>$returnList,'default'=>$defaultFee);
} }
return $return; return $return;
} }
public function getTodayFormulaList($beginTime,$endTime,$formulaPrice,$deliveryFreeFlag){ public function getTodayFormulaList($beginTime,$endTime,$todayInterval,$formulaPrice,$deliveryFreeFlag){
$formulaList = array(); $formulaList = array();
$time = TIMESTAMP;
$initMinute = intval(date('i',$beginTime)); $initMinute = intval(date('i',$beginTime));
if($initMinute==0||$initMinute==30){ if($initMinute==0||$initMinute==30){
$startTime = $beginTime; $startTime = $beginTime;
...@@ -227,12 +297,11 @@ class DeliveryFormulaModel extends \DAO\AbstractModel { ...@@ -227,12 +297,11 @@ class DeliveryFormulaModel extends \DAO\AbstractModel {
} }
} }
if($startTime+\Our\ApiConst::halfHour<$endTime){ if($startTime+\Our\ApiConst::halfHour<$endTime){
$interval =\Our\ApiConst::zero; $interval =$todayInterval;
for($i=$startTime;$i<$endTime;$i = $i+(\Our\ApiConst::halfHour)){ for($i=$startTime;$i<$endTime;$i = $i+(\Our\ApiConst::halfHour)){
$interval += \Our\ApiConst::halfHour; $interval += \Our\ApiConst::halfHour;
$temp = array(); $temp = array();
$temp['time'] = $i; $temp['time'] = $i;
$temp['interval'] = \Our\ApiConst::halfHour;
$temp['isDefault'] = \Our\ApiConst::zero; $temp['isDefault'] = \Our\ApiConst::zero;
if($interval==\Our\ApiConst::halfHour*1){//半小时内的价格 if($interval==\Our\ApiConst::halfHour*1){//半小时内的价格
$temp['price'] = $formulaPrice['half']; $temp['price'] = $formulaPrice['half'];
...@@ -247,8 +316,9 @@ class DeliveryFormulaModel extends \DAO\AbstractModel { ...@@ -247,8 +316,9 @@ class DeliveryFormulaModel extends \DAO\AbstractModel {
if($deliveryFreeFlag){ if($deliveryFreeFlag){
$temp['price'] = \Our\ApiConst::zero; $temp['price'] = \Our\ApiConst::zero;
} }
$temp['price'] = $temp['price']?$temp['price']:\Our\ApiConst::zero; $index = strtotime(date('Y-m-d',$i));
$formulaList[] = $temp; $temp['price'] = $temp['price']?($temp['price']*\Our\ApiConst::hundred):\Our\ApiConst::zero;
$formulaList[$index][] = $temp;
} }
} }
return $formulaList; return $formulaList;
...@@ -270,14 +340,14 @@ class DeliveryFormulaModel extends \DAO\AbstractModel { ...@@ -270,14 +340,14 @@ class DeliveryFormulaModel extends \DAO\AbstractModel {
for($i=$startTime;$i<$endTime;$i = $i+(\Our\ApiConst::halfHour)){ for($i=$startTime;$i<$endTime;$i = $i+(\Our\ApiConst::halfHour)){
$temp = array(); $temp = array();
$temp['time'] = $i; $temp['time'] = $i;
$temp['interval'] = \Our\ApiConst::halfHour; $temp['price'] = $price?($price*\Our\ApiConst::hundred):\Our\ApiConst::zero;
$temp['price'] = $price?$price:\Our\ApiConst::zero;
if($deliveryFreeFlag){ if($deliveryFreeFlag){
$temp['price'] = \Our\ApiConst::zero; $temp['price'] = \Our\ApiConst::zero;
} }
$temp['isDefault'] = $isDefault; $temp['isDefault'] = $isDefault;
$isDefault = \Our\ApiConst::zero; $isDefault = \Our\ApiConst::zero;
$formulaList[] = $temp; $index = strtotime(date('Y-m-d',$i));
$formulaList[$index][] = $temp;
} }
} }
return $formulaList; return $formulaList;
...@@ -307,11 +377,11 @@ class DeliveryFormulaModel extends \DAO\AbstractModel { ...@@ -307,11 +377,11 @@ class DeliveryFormulaModel extends \DAO\AbstractModel {
for($i=$startTime;$i<$endTime;$i = $i+(\Our\ApiConst::halfHour)){ for($i=$startTime;$i<$endTime;$i = $i+(\Our\ApiConst::halfHour)){
$temp = array(); $temp = array();
$temp['time'] = $i; $temp['time'] = $i;
$temp['interval'] = \Our\ApiConst::halfHour;
$temp['isDefault'] = $isDefault; $temp['isDefault'] = $isDefault;
$temp['price'] = \Our\ApiConst::zero; $temp['price'] = \Our\ApiConst::zero;
$isDefault = \Our\ApiConst::zero; $isDefault = \Our\ApiConst::zero;
$formulaList[] = $temp; $index = strtotime(date('Y-m-d',$i));
$formulaList[$index][] = $temp;
} }
} }
return $formulaList; return $formulaList;
......
...@@ -48,7 +48,7 @@ class FavoritesStoreModel extends \DAO\AbstractModel { ...@@ -48,7 +48,7 @@ class FavoritesStoreModel extends \DAO\AbstractModel {
return $this->db->fetchAll(); return $this->db->fetchAll();
} }
public function getOne($field,$where,$order = array('fav_time'=>'desc')){ public function getOne($field,$where,$order = array('fav_time'=>'desc','favid'=>'desc')){
$this->setDb($this->dbName); $this->setDb($this->dbName);
if($order){ if($order){
foreach($order as $key=>$value){ foreach($order as $key=>$value){
......
...@@ -310,6 +310,7 @@ class GoodsModel extends \DAO\AbstractModel { ...@@ -310,6 +310,7 @@ class GoodsModel extends \DAO\AbstractModel {
if(isset($returnData[$temp['goods_commonid']]['is_transport'])){ if(isset($returnData[$temp['goods_commonid']]['is_transport'])){
continue; continue;
} }
$returnData[$temp['goods_commonid']]['delivery_template_id'] = $temp['delivery_template_id'];
$returnData[$temp['goods_commonid']]['is_transport'] = $temp['is_transport']; $returnData[$temp['goods_commonid']]['is_transport'] = $temp['is_transport'];
$returnData[$temp['goods_commonid']]['transport_id'] = $temp['transport_id']; $returnData[$temp['goods_commonid']]['transport_id'] = $temp['transport_id'];
$returnData[$temp['goods_commonid']]['goods_freight'] = $temp['goods_freight']; $returnData[$temp['goods_commonid']]['goods_freight'] = $temp['goods_freight'];
......
...@@ -284,6 +284,8 @@ class CodeConfigModel ...@@ -284,6 +284,8 @@ class CodeConfigModel
const notExsitOrder = 300112; const notExsitOrder = 300112;
const alreadyExsitRefundGoods = 300113; const alreadyExsitRefundGoods = 300113;
const notAllowDelete = 300114; const notAllowDelete = 300114;
const emptyDeliveryTime = 300115;
const noExpressDeliveryForOrder1 = 30115; const noExpressDeliveryForOrder1 = 30115;
const goodsNoStoreForCartOrOrder1 = 30116; const goodsNoStoreForCartOrOrder1 = 30116;
...@@ -302,6 +304,11 @@ class CodeConfigModel ...@@ -302,6 +304,11 @@ class CodeConfigModel
const selfGoodsForStoreOrder = 30121; const selfGoodsForStoreOrder = 30121;
const refundAddPointsLogError = 30122; const refundAddPointsLogError = 30122;
const wrongDeliveryTime = 300123;
const wrongBuyerTimeRangeForOrder =300124;
const emptyBuyerMobile = 300125;
const wrongBuyerMobile = 300126;
const leftAmountError = 300127;
//店铺相关错误码 //店铺相关错误码
//商品分类 //商品分类
...@@ -707,6 +714,12 @@ class CodeConfigModel ...@@ -707,6 +714,12 @@ class CodeConfigModel
self::notExsitOrder => '订单不存在', self::notExsitOrder => '订单不存在',
self::alreadyExsitRefundGoods => '退款订单已经存在', self::alreadyExsitRefundGoods => '退款订单已经存在',
self::notAllowDelete => '当前订单状态不允许删除', self::notAllowDelete => '当前订单状态不允许删除',
self::emptyDeliveryTime => '配送时间或者自提时间不能为空',
self::wrongDeliveryTime => '配送时间格式错误',
self::wrongBuyerTimeRangeForOrder => '自提时间点错误',
self::emptyBuyerMobile => '自提人手机号码不能为空',
self::wrongBuyerMobile => '自提人手机号码格式错误',
self::leftAmountError => '没有达到店铺起送金额,不能下单',
self::platFormAreadyIn => '您已经申请过平台介入', self::platFormAreadyIn => '您已经申请过平台介入',
self::deleteError => '放入回收站失败,订单状态有误', self::deleteError => '放入回收站失败,订单状态有误',
self::restoreError => '永久删除、从回收站还原失败,订单状态有误', self::restoreError => '永久删除、从回收站还原失败,订单状态有误',
...@@ -764,7 +777,7 @@ class CodeConfigModel ...@@ -764,7 +777,7 @@ class CodeConfigModel
self::emptyOrderForPay => '支付的订单不存在', self::emptyOrderForPay => '支付的订单不存在',
self::emptyOrderIdForPay => '订单ID不能为空', self::emptyOrderIdForPay => '订单ID不能为空',
self::noRightForOrder => '您没有该订单权限', self::noRightForOrder => '您没有该订单权限',
self::wrongPayForOrder => '该订单无需线上支付', self::wrongPayForOrder => '订单状态发生改变,请刷新后重试',
self::newPaySnInsertFailed => '新订单支付参数生成失败', self::newPaySnInsertFailed => '新订单支付参数生成失败',
self::updateOrderForPayFailed => '唤起支付时更新订单失败', self::updateOrderForPayFailed => '唤起支付时更新订单失败',
self::noOrderListForPaySn => '当前paySn没有找到对应订单列表', self::noOrderListForPaySn => '当前paySn没有找到对应订单列表',
......
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