Commit 87fa9e3b authored by christ's avatar christ

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

parents 30fcacfa 6f3daacc
...@@ -122,6 +122,31 @@ class CartController extends \Our\Controller_AbstractApi{ ...@@ -122,6 +122,31 @@ class CartController extends \Our\Controller_AbstractApi{
} }
/**
* 购物车购买
*/
public function checkoutNewAction(){
$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);
$storeCartList = $cartService->checkCart($data,$this->memberId);
$pBundlingService = \Business\Goods\GroupSaleServiceModel::getInstance();
$cartList = $pBundlingService->getFormatCartListForOrder($storeCartList,$this->memberId,true);
$gcIds = isset($cartList['gcIds'])?$cartList['gcIds']:array();
$storeCartData = array('cartList'=>$cartList['list'],'storeIds'=>$storeCartList['storeIds'],'goodsIds'=>$storeCartList['goodsIds'],'goodsCommonIds'=>$storeCartList['goodsCommonIds'],'blIds'=>$storeCartList['blIds'],'gcIds'=>$gcIds);
//var_dump($storeCartData);
$storeCartData = $cartService->checkCouponForCart($storeCartData,$this->memberId);
//$this->success($storeCartData);
$storeCartData = $cartService->getDeliveryTypeForCartNew($address,$storeCartData);
$data = $cartService->getFormatCartListForOrderNew($storeCartData,$address);
$this->success($data);
}
/** /**
* 立即购买 * 立即购买
*/ */
...@@ -144,6 +169,28 @@ class CartController extends \Our\Controller_AbstractApi{ ...@@ -144,6 +169,28 @@ class CartController extends \Our\Controller_AbstractApi{
} }
/**
* 立即购买
*/
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);
}
public function addOrderAction(){ public function addOrderAction(){
$cartService = \Business\Cart\CartServiceModel::getInstance(); $cartService = \Business\Cart\CartServiceModel::getInstance();
$data = $this->req[\Our\NameConst::data]; $data = $this->req[\Our\NameConst::data];
......
...@@ -31,6 +31,16 @@ class CollectionController extends \Our\Controller_AbstractApi { ...@@ -31,6 +31,16 @@ class CollectionController extends \Our\Controller_AbstractApi {
} }
/**
* 扫码关注店铺
*/
public function updateScanStoreAction(){
\Business\Store\StoreServiceModel::getInstance()->updateFavoritesStore($this->req[\Our\NameConst::data],$this->memberId);
$this->success(new \stdClass(),\Our\DescribeConst::scanSuccess);
}
/** /**
* 关注 商品 * 关注 商品
* *
......
...@@ -43,10 +43,22 @@ class HomeController extends \Our\Controller_AbstractIndex{ ...@@ -43,10 +43,22 @@ class HomeController extends \Our\Controller_AbstractIndex{
$shareInfo = \Business\Common\CommonServiceModel::getInstance()->getShareInfo(\Our\ApiConst::sharePlat); $shareInfo = \Business\Common\CommonServiceModel::getInstance()->getShareInfo(\Our\ApiConst::sharePlat);
$returnData['shareInfo'] = $shareInfo; $returnData['shareInfo'] = $shareInfo;
$storeId = $this->getMyFavoritesStoreAction(true);
$returnData['relateStoreId'] = (int)$storeId;
$this->success($returnData); $this->success($returnData);
} }
public function getMyFavoritesStoreAction($flag = false){
$mebmerService = \Business\User\MemberServiceModel::getInstance();
$memberId=$this->sess->get('member_id');
$storeId =$mebmerService->getMyFavoritesStore($memberId);
if($flag){
return $storeId;
}
$this->success($storeId);
}
/** /**
* 设置当前地址 * 设置当前地址
......
...@@ -66,7 +66,8 @@ class UserController extends \Our\Controller_AbstractIndex { ...@@ -66,7 +66,8 @@ class UserController extends \Our\Controller_AbstractIndex {
$this->sess[NameConst::sessionKey]=$this->key; $this->sess[NameConst::sessionKey]=$this->key;
$member[NameConst::sessionKey]=$this->key; $member[NameConst::sessionKey]=$this->key;
$this->memberService->saveMember($member); $this->memberService->saveMember($member);
$this->success(array('key'=>$this->key,'memberName'=>$member['member_name'],'memberAvatar'=>$member['memberAvatarUrl'],'memberId'=>(int)$member['member_id'])); $storeId =$this->memberService->getMyFavoritesStore($member['member_id']);
$this->success(array('key'=>$this->key,'memberName'=>$member['member_name'],'memberAvatar'=>$member['memberAvatarUrl'],'memberId'=>(int)$member['member_id'],'relateStoreId'=>(int)$storeId));
}else{ }else{
ErrorModel::throwException(CodeConfigModel::errorUsernameOrPassword); ErrorModel::throwException(CodeConfigModel::errorUsernameOrPassword);
} }
...@@ -102,7 +103,9 @@ class UserController extends \Our\Controller_AbstractIndex { ...@@ -102,7 +103,9 @@ class UserController extends \Our\Controller_AbstractIndex {
$this->sess[NameConst::sessionKey]=$this->key; $this->sess[NameConst::sessionKey]=$this->key;
$member[NameConst::sessionKey]=$this->key; $member[NameConst::sessionKey]=$this->key;
//$this->memberService->saveMember($member); //$this->memberService->saveMember($member);
$this->success(array('key'=>$this->key,'memberName'=>$member['member_name'],'memberAvatar'=>$member['memberAvatarUrl']));
$storeId =$this->memberService->getMyFavoritesStore($member['member_id']);
$this->success(array('key'=>$this->key,'memberName'=>$member['member_name'],'memberAvatar'=>$member['memberAvatarUrl'],'relateStoreId'=>(int)$storeId));
} }
ErrorModel::throwException(CodeConfigModel::wxAuthInfoLoginFailed); ErrorModel::throwException(CodeConfigModel::wxAuthInfoLoginFailed);
...@@ -154,7 +157,8 @@ class UserController extends \Our\Controller_AbstractIndex { ...@@ -154,7 +157,8 @@ class UserController extends \Our\Controller_AbstractIndex {
$member[NameConst::sessionKey]=$this->key; $member[NameConst::sessionKey]=$this->key;
$member['login_time']=TIMESTAMP; $member['login_time']=TIMESTAMP;
$this->memberService->saveMember($member); $this->memberService->saveMember($member);
$this->success(array('userFlag'=>\Our\ApiConst::one,'key'=>$this->key,'memberName'=>$member['member_name'],'memberAvatar'=>$member['memberAvatarUrl'],'memberId'=>(int)$member['member_id'])); $storeId =$this->memberService->getMyFavoritesStore($member['member_id']);
$this->success(array('userFlag'=>\Our\ApiConst::one,'key'=>$this->key,'memberName'=>$member['member_name'],'memberAvatar'=>$member['memberAvatarUrl'],'memberId'=>(int)$member['member_id'],'relateStoreId'=>(int)$storeId));
}else{ }else{
$this->success(array('userFlag'=>\Our\ApiConst::zero)); $this->success(array('userFlag'=>\Our\ApiConst::zero));
} }
......
...@@ -22,6 +22,7 @@ class ApiConst ...@@ -22,6 +22,7 @@ class ApiConst
//一个小时 //一个小时
const oneHour = 3600; const oneHour = 3600;
const halfHour = 1800;
//预警时间 //预警时间
const storageAlarmHour = 100000000000000; const storageAlarmHour = 100000000000000;
...@@ -38,6 +39,7 @@ class ApiConst ...@@ -38,6 +39,7 @@ class ApiConst
//八小时秒数 //八小时秒数
const EightHoursSecond = 28800; const EightHoursSecond = 28800;
const hundred = 100; const hundred = 100;
const thousand = 1000;
//1分钟秒数 //1分钟秒数
const oneMinSecond = 60; const oneMinSecond = 60;
//成功状态码 //成功状态码
......
...@@ -76,6 +76,8 @@ class DescribeConst ...@@ -76,6 +76,8 @@ class DescribeConst
const collectSuccess = '关注成功'; const collectSuccess = '关注成功';
const scanSuccess = '扫码关注成功';
const cancelCollectSuccess = '取消关注成功'; const cancelCollectSuccess = '取消关注成功';
const moveToFavoritesSuccess = '移入收藏夹成功'; const moveToFavoritesSuccess = '移入收藏夹成功';
......
<?php <?php
namespace Business\Cart; namespace Business\Cart;
use Our\ApiConst;
use Our\DbNameConst;
/** /**
* User: liuyuzhen * User: liuyuzhen
...@@ -643,6 +641,94 @@ class CartServiceModel extends \Business\AbstractModel{ ...@@ -643,6 +641,94 @@ class CartServiceModel extends \Business\AbstractModel{
} }
$deliverySetting['expressDistribution'] = $store['express_distribution']; $deliverySetting['expressDistribution'] = $store['express_distribution'];
$deliverySetting['expressDistribution'] = \Our\ApiConst::zero;
//if($deliverySetting['expressDistribution']&&$storeCarts['is_transport']==\Our\ApiConst::one&&$storeCarts['transport_id']){
if($deliverySetting['expressDistribution']){
if($storeCarts['goodsFreight']){ //商品免邮
$shippingFee = \Our\ApiConst::zero;
}else{
$shippingFee = $this->calcTransport($storeCarts['transport_id'],$storeCarts['storeExpressNum'], $address['city_id']);
}
$deliverySetting['shippingFee'] = $shippingFee;
}else{
$deliverySetting['expressDistribution'] = \Our\ApiConst::zero;
}
$storeCartData['cartList'][$storeId]['deliverySetting'] = $deliverySetting;
}
return $storeCartData;
}
/**
* 获取店铺配送方式和支付方式信息
* @param $address
* @param $storeCartData
*/
public function getDeliveryTypeForCartNew($address,$storeCartData,$dbName = \Our\DbNameConst::salveDBConnectName){
$storeIds = $storeCartData['storeIds'];
$storeDao = \DAO\StoreModel::getInstance();
$deliveryFormulaDao = \DAO\DeliveryFormulaModel::getInstance($dbName);
foreach($storeIds as $storeId){
$store = $storeDao->get($storeId,false);
$storeCarts = $storeCartData['cartList'][$storeId];
$deliverySetting['onelinePay'] = $store['wx_pay'];//是否支持线上支付
$deliverySetting['offlinePay'] = $store['offline_pay'];
$deliverySetting['offlinePayway'] = array('payway'=>'','imageUrls'=>array());
if($deliverySetting['offlinePay']){
$offlinePaywayArray = unserialize($store['offline_payway']);
if($offlinePaywayArray){
foreach($offlinePaywayArray['images'] as $image){
if($image){
$offlinePaywayArray['imageUrls'][] = \Our\Common::getStaticFile($image, \Our\ImageConst::storeLabel);
}
}
$deliverySetting['offlinePayway'] = $offlinePaywayArray;
}
}
$deliverySetting['aogPay'] = $store['aog_pay'];
$deliverySetting['buyerDistribution'] = $store['buyer_distribution'];
$deliverySetting['selfDeliveryTimeList'] = array();
//自提需要的店铺地址
$deliverySetting['storeAddress'] = array(
'address' => ($store['store_address'].$store['store_subaddress']),
'longitude' => $store['store_longitude'],
'latitude' => $store['store_latitude'],
'cityCode' => $store['store_citycode']
);
if($deliverySetting['buyerDistribution']){
$deliverySetting['selfDeliveryTimeList'] = $deliveryFormulaDao->getBuyerFormulaForCart($store);
}
$deliverySetting['sellerDistribution'] = $store['seller_distribution'];
if($deliverySetting['sellerDistribution']){
$deliverySetting['leftAmount'] = \Our\ApiConst::zero;
$deliverySetting['inServiceAreaFlag'] = \Our\ApiConst::zero;
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['leftAmount'] = $store['start_shipping_price']-$storeCarts['storeTotalPrice'];//差价
}else{
$deliveryFreeFlag = $storeCarts['deliveryFreeFlag'];
if((isset($store['free_shipping_price'])&&$store['free_shipping_price']>\Our\ApiConst::zero)&&$storeCarts['storeTotalPrice']>=$store['free_shipping_price']){
$deliveryFreeFlag = \Our\ApiConst::one;
}
$deliverySetting['deliverTimeList'] =array();
if($address){
$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);
if($result){
$deliverySetting['inServiceAreaFlag'] = \Our\ApiConst::one;
$deliverTimeList = $deliveryFormulaDao->getDeliveryFormulaForCartNew($store,$storeDistance,$deliveryFreeFlag);
if($deliverTimeList){
$deliverySetting['deliverTimeList'] =$deliverTimeList['timeList'];
$storeCartData['cartList'][$storeId]['storeDistance'] = $storeDistance;
$deliverySetting['defaultFee'] = $deliverTimeList['default']?$deliverTimeList['default']:\Our\ApiConst::zero;
}
}
}
}
}else{
$deliverySetting['sellerDistribution'] = \Our\ApiConst::zero;
}
$deliverySetting['expressDistribution'] = $store['express_distribution'];
$deliverySetting['expressDistribution'] = \Our\ApiConst::zero;
//if($deliverySetting['expressDistribution']&&$storeCarts['is_transport']==\Our\ApiConst::one&&$storeCarts['transport_id']){ //if($deliverySetting['expressDistribution']&&$storeCarts['is_transport']==\Our\ApiConst::one&&$storeCarts['transport_id']){
if($deliverySetting['expressDistribution']){ if($deliverySetting['expressDistribution']){
if($storeCarts['goodsFreight']){ //商品免邮 if($storeCarts['goodsFreight']){ //商品免邮
...@@ -838,7 +924,7 @@ class CartServiceModel extends \Business\AbstractModel{ ...@@ -838,7 +924,7 @@ class CartServiceModel extends \Business\AbstractModel{
return false; return false;
} }
public function getFormatCartListForOrder($storeCartData,$address){ public function getFormatCartListForOrderNew($storeCartData,$address){
$storeCartsList = $storeCartData['cartList']; $storeCartsList = $storeCartData['cartList'];
$choosedCouponIds = array(); $choosedCouponIds = array();
$returnData = array(); $returnData = array();
...@@ -867,8 +953,170 @@ class CartServiceModel extends \Business\AbstractModel{ ...@@ -867,8 +953,170 @@ class CartServiceModel extends \Business\AbstractModel{
//获取默认配送方式 快递默认优先级:商家配送大于快递订单大于买家自提 //获取默认配送方式 快递默认优先级:商家配送大于快递订单大于买家自提
$deliverySetting = $storeCarts['deliverySetting']; $deliverySetting = $storeCarts['deliverySetting'];
$deliverySettings = array(); $deliverySettings = array();
$newStoreData['leftAmount'] = \Our\ApiConst::zero;
$newStoreData['inServiceAreaFlag'] = \Our\ApiConst::zero;
$newStoreData['storeAddress'] = $deliverySetting['storeAddress'];
if($deliverySetting['sellerDistribution']==\Our\ApiConst::one&&$deliverySetting['deliverTimeList']){ if($deliverySetting['sellerDistribution']==\Our\ApiConst::one&&$deliverySetting['deliverTimeList']){
$deliveryTimes = $deliverySetting['deliverTimeList']; $deliveryTimes = $deliverySetting['deliverTimeList'];
$newStoreData['inServiceAreaFlag'] = $deliverySetting['inServiceAreaFlag'];
$newStoreData['leftAmount'] = $deliverySetting['leftAmount'];
$delivery = array();
$delivery['name'] = \Our\DescribeConst::deliveryNameStore;
$delivery['type'] = \Our\ApiConst::deliveryStore;
$deliveryFee = $deliverySetting['defaultFee'];
$shippingFee = $deliveryFee;
$delivery['isChoosed'] = \Our\ApiConst::one;
$delivery['deliveryFee'] = $deliveryFee;
$delivery['timeList'] = $deliveryTimes;
$deliverySettings[]= $delivery;
$storeSumData['deliveryFee'] = $deliveryFee;
}
if($deliverySetting['expressDistribution']==\Our\ApiConst::one){
$deliveryFee = $deliverySetting['shippingFee'];
$delivery = array();
$delivery['name'] = \Our\DescribeConst::deliveryNameExpress;
$delivery['type'] = \Our\ApiConst::deliveryExpress;
if(isset($shippingFee)){
$delivery['isChoosed'] = \Our\ApiConst::zero;
}else{
$shippingFee = $deliveryFee;
$delivery['isChoosed'] = \Our\ApiConst::one;
$storeSumData['deliveryFee'] = $deliveryFee;
}
$delivery['deliveryFee'] = $deliveryFee;
$deliverySettings[]= $delivery;
}
if($deliverySetting['buyerDistribution']==\Our\ApiConst::one){
$deliveryFee = \Our\ApiConst::zero;//到店自提
$delivery = array();
$delivery['name'] = \Our\DescribeConst::deliveryNameBuyer;
$delivery['type'] = \Our\ApiConst::deliveryBuyer;
if(isset($shippingFee)){
$delivery['isChoosed'] = \Our\ApiConst::zero;
}else{
$shippingFee = $deliveryFee;
$delivery['isChoosed'] = \Our\ApiConst::one;
$storeSumData['deliveryFee'] = $deliveryFee;
}
$delivery['deliveryFee'] = $deliveryFee;
$delivery['timeList'] = $deliverySetting['selfDeliveryTimeList'];
$deliverySettings[]= $delivery;
}
$newStoreData['deliverys']=$deliverySettings;
/*if(!isset($shippingFee)){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::storeNoDeliveryTypeForBuy);
}*/
$storeCarts['deliverys'] = $deliverySettings;
//获取支付方式 优先级:线上支付大于线下支付大于货到付款
$payways = array();
$paywayFlag = \Our\ApiConst::zero;
if($deliverySetting['onelinePay']==\Our\ApiConst::one){
$payway = array();
$payway['name'] = \Our\DescribeConst::payOnlineName;
$payway['type'] = \Our\ApiConst::payOnline;
$paywayFlag= \Our\ApiConst::one;
$payway['isChoosed'] = \Our\ApiConst::one;
$payways[] =$payway;
$storeSumData['paywayName'] = $payway['name'];
}
if($deliverySetting['offlinePay']==\Our\ApiConst::one){
$payway = array();
$payway['name'] = \Our\DescribeConst::payOfflineName;
$payway['type'] = \Our\ApiConst::payOffline;
$payway['offlinePayway'] = $deliverySetting['offlinePayway']?$deliverySetting['offlinePayway']:\Our\NameConst::emptyString;//线下支付方式内容
if($paywayFlag== \Our\ApiConst::zero){
$paywayFlag= \Our\ApiConst::one;
$payway['isChoosed'] = \Our\ApiConst::one;
$storeSumData['paywayName'] = $payway['name'];
$storeSumData['paywayMemo'] = $payway['offlinePayway'];//支付方式备注
}else{
$payway['isChoosed'] = \Our\ApiConst::zero;
}
$payways[] =$payway;
}
if($deliverySetting['aogPay']==\Our\ApiConst::one){
$payway = array();
$payway['name'] = \Our\DescribeConst::payAogName;
$payway['type'] = \Our\ApiConst::payAog;
if($paywayFlag== \Our\ApiConst::zero){
$paywayFlag= \Our\ApiConst::one;
$payway['isChoosed'] = \Our\ApiConst::one;
$storeSumData['paywayName'] = $payway['name'];
}else{
$payway['isChoosed'] = \Our\ApiConst::zero;
}
$payways[] =$payway;
}
/*if($paywayFlag == \Our\ApiConst::zero){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::storeNoPaywayForBuy);
}*/
$storeSumData['reliefAmount'] = $storeCouponMinusMoney;//优惠券减免金额
$storeSumData['storeName'] = $storeCarts['storeName'];
$storeSumData['storeGoodsPrice'] = $storeCarts['storeTotalPrice'];
$storeTotalPrice = $storeCarts['storeTotalPrice']- $storeCouponMinusMoney + $shippingFee;
if($storeTotalPrice<\Our\ApiConst::zero){
$storeTotalPrice = \Our\ApiConst::zero;
}
$storeSumData['totalPrice'] = $storeTotalPrice;
$newStoreData['payways'] = $payways;//支付方式
$newStoreData['storeCarts'] = $storeCarts['storeCarts'];//店铺商品
$newStoreData['storeId'] = $storeCarts['storeId'];
$newStoreData['storeName'] = $storeCarts['storeName'];
$newStoreData['totalPrice'] = $storeTotalPrice;
$newStoreData['totalGoodsNum'] = $storeCarts['totalGoodsNum'];
$newStoreData['storeGoodsPrice']= $storeCarts['storeTotalPrice'];
$totalPrice += $storeTotalPrice;
$returnData['stores'][]=$newStoreData;
$returnData['sum'][] = $storeSumData;
}
$returnData['totalPrice'] = $totalPrice;
$returnData['address'] = new \stdClass();
if($address){
unset($address['lat']);
unset($address['lng']);
unset($address['city_id']);
$returnData['address'] = $address;
}
return $returnData;
}
public function getFormatCartListForOrder($storeCartData,$address){
$storeCartsList = $storeCartData['cartList'];
$choosedCouponIds = array();
$returnData = array();
$totalPrice = \Our\ApiConst::zero;
foreach($storeCartsList as $key=>$storeCarts){
$newStoreData = array();
$storeCouponMinusMoney = \Our\ApiConst::zero; //店铺优惠券减免金额
$shippingFee = \Our\ApiConst::zero; //默认配送费
$storeSumData= array();//店铺汇总信息;
//第一步获取选中优惠券
if(isset($storeCarts['coupons'])&&count($storeCarts['coupons'])>0){
foreach($storeCarts['coupons'] as $keyCoupon=>$coupon){
if($choosedCouponIds&&in_array($coupon['couponId'],$choosedCouponIds)){
continue;
}else{
$storeCarts['coupons'][$keyCoupon]['chooseFlag'] = \Our\ApiConst::one;
$storeCouponMinusMoney = $coupon['reliefAmount'];
$choosedCouponIds[] = $coupon['couponId'];
break;
}
}
$newStoreData['coupons'] = $storeCarts['coupons'];
}else{
$newStoreData['coupons'] = array();
}
//获取默认配送方式 快递默认优先级:商家配送大于快递订单大于买家自提
$deliverySetting = $storeCarts['deliverySetting'];
$deliverySettings = array();
if($deliverySetting['sellerDistribution']==\Our\ApiConst::one){
$deliveryTimes = $deliverySetting['deliverTimeList'];
$delivery = array(); $delivery = array();
array_multisort(array_column($deliverySetting['deliverTimeList'],'isDefault'),SORT_DESC,$deliverySetting['deliverTimeList']); array_multisort(array_column($deliverySetting['deliverTimeList'],'isDefault'),SORT_DESC,$deliverySetting['deliverTimeList']);
$tempDeliverTimeList = $deliverySetting['deliverTimeList']; $tempDeliverTimeList = $deliverySetting['deliverTimeList'];
......
...@@ -193,7 +193,7 @@ class GoodsClassServiceModel extends \Business\AbstractModel{ ...@@ -193,7 +193,7 @@ class GoodsClassServiceModel extends \Business\AbstractModel{
//判断签约分类是否可以为当前用户提供服务,并且记录这些店铺对应的store_id //判断签约分类是否可以为当前用户提供服务,并且记录这些店铺对应的store_id
if($inAreaFlag){ if($inAreaFlag){
$store =$storeDao->getStoreInfoCache($signClass['store_id']); $store =$storeDao->getStoreInfoCache($signClass['store_id']);
$class_distance = \Our\CommonExtension::getDistance($lat,$lng,$store['store_latitude'],$signClass['store_latitude'],1); $class_distance = \Our\CommonExtension::getDistance($lat,$lng,$store['store_latitude'],$store['store_latitude'],1);
$class = $signClass; $class = $signClass;
$class['class_distance'] = $class_distance; $class['class_distance'] = $class_distance;
$returnClass[$class_distance] = $class; $returnClass[$class_distance] = $class;
......
...@@ -6,9 +6,9 @@ use Our\ImageUtil; ...@@ -6,9 +6,9 @@ use Our\ImageUtil;
class GroupSaleServiceModel extends \Business\AbstractModel { class GroupSaleServiceModel extends \Business\AbstractModel {
private $pBundingField = 'han_p_bundling.bl_id AS blId,bl_name AS name,bl_title,store_id,store_name,bl_state,bl_quota_starttime,bl_image,bl_storage,bl_discount_price AS discountPrice,bl_sum_price AS sumPrice,bl_quota_endtime AS endTime,image,is_transport,transport_id,snapshot_id,goods_freight,goods_free'; private $pBundingField = 'han_p_bundling.bl_id AS blId,bl_name AS name,bl_title,store_id,store_name,bl_state,bl_quota_starttime,bl_image,bl_storage,bl_discount_price AS discountPrice,bl_sum_price AS sumPrice,bl_quota_endtime AS endTime,image,is_transport,transport_id,snapshot_id,goods_freight,goods_free,delivery_template_id';
private $pBundingFieldWithDel = 'han_p_bundling.bl_id AS blId,bl_name AS name,bl_title,store_id,store_name,bl_state,bl_quota_starttime,bl_image,bl_storage,bl_discount_price AS discountPrice,bl_sum_price AS sumPrice,bl_quota_endtime AS endTime,image,is_transport,transport_id,snapshot_id,goods_freight,goods_free,is_del'; private $pBundingFieldWithDel = 'han_p_bundling.bl_id AS blId,bl_name AS name,bl_title,store_id,store_name,bl_state,bl_quota_starttime,bl_image,bl_storage,bl_discount_price AS discountPrice,bl_sum_price AS sumPrice,bl_quota_endtime AS endTime,image,is_transport,transport_id,snapshot_id,goods_freight,goods_free,is_del,delivery_template_id';
private $pBundingGoodsField = 'bl_count_price AS discountPrice,num,goods_id,bl_id'; private $pBundingGoodsField = 'bl_count_price AS discountPrice,num,goods_id,bl_id';
...@@ -710,6 +710,7 @@ class GroupSaleServiceModel extends \Business\AbstractModel { ...@@ -710,6 +710,7 @@ class GroupSaleServiceModel extends \Business\AbstractModel {
$tempObj['goodsList'] = \Our\Common::convertUnderline($pBundling['goodsList']); $tempObj['goodsList'] = \Our\Common::convertUnderline($pBundling['goodsList']);
$tempObj['goodsOriginalPrice'] = $pBundling['sumPrice']; $tempObj['goodsOriginalPrice'] = $pBundling['sumPrice'];
$tempObj['snapshot_id'] = (isset($pBundling['snapshot_id'])&&$pBundling['snapshot_id']>\Our\ApiConst::zero)?$pBundling['snapshot_id']:\Our\ApiConst::zero; $tempObj['snapshot_id'] = (isset($pBundling['snapshot_id'])&&$pBundling['snapshot_id']>\Our\ApiConst::zero)?$pBundling['snapshot_id']:\Our\ApiConst::zero;
$tempObj['delivery_template_id'] = (isset($pBundling['delivery_template_id'])&&$pBundling['delivery_template_id'])?$pBundling['delivery_template_id']:\Our\ApiConst::zero;
} else if ($tempCart['type'] == \Our\ApiConst::addGoodsToCart) { } else if ($tempCart['type'] == \Our\ApiConst::addGoodsToCart) {
$priceArray = \Goods\GoodsUtil::getInstance()->getRealPrice($tempCart['goods_id'],$memberId,null, \Our\ApiConst::addGoodsToCart,$dbName,true); $priceArray = \Goods\GoodsUtil::getInstance()->getRealPrice($tempCart['goods_id'],$memberId,null, \Our\ApiConst::addGoodsToCart,$dbName,true);
if(is_array($priceArray)){ if(is_array($priceArray)){
...@@ -754,6 +755,7 @@ class GroupSaleServiceModel extends \Business\AbstractModel { ...@@ -754,6 +755,7 @@ class GroupSaleServiceModel extends \Business\AbstractModel {
$tempObj['gc_id']=$goodsCommonStorages[$tempCart['goods_commonid']]['gc_id']; $tempObj['gc_id']=$goodsCommonStorages[$tempCart['goods_commonid']]['gc_id'];
$tempObj['gc_id_2']=$goodsCommonStorages[$tempCart['goods_commonid']]['gc_id_2']; $tempObj['gc_id_2']=$goodsCommonStorages[$tempCart['goods_commonid']]['gc_id_2'];
$tempObj['gc_id_3']=$goodsCommonStorages[$tempCart['goods_commonid']]['gc_id_3']; $tempObj['gc_id_3']=$goodsCommonStorages[$tempCart['goods_commonid']]['gc_id_3'];
$tempObj['delivery_template_id']=$goodsCommonStorages[$tempCart['goods_commonid']]['delivery_template_id']?$goodsCommonStorages[$tempCart['goods_commonid']]['delivery_template_id']:\Our\ApiConst::zero;
$allGcIds[] = $tempObj['gcId']; $allGcIds[] = $tempObj['gcId'];
$storeGcIds[] = $tempObj['gcId']; $storeGcIds[] = $tempObj['gcId'];
if ($goodsStorage['onlineFlag'] == \Our\ApiConst::one) { if ($goodsStorage['onlineFlag'] == \Our\ApiConst::one) {
...@@ -904,6 +906,7 @@ class GroupSaleServiceModel extends \Business\AbstractModel { ...@@ -904,6 +906,7 @@ class GroupSaleServiceModel extends \Business\AbstractModel {
} }
$storeTotalPrice += $pBundling['discountPrice']*$tempObj['goodsNum']; $storeTotalPrice += $pBundling['discountPrice']*$tempObj['goodsNum'];
$tempObj['goodsList'] = \Our\Common::convertUnderline($pBundling['goodsList']); $tempObj['goodsList'] = \Our\Common::convertUnderline($pBundling['goodsList']);
$tempObj['delivery_template_id'] = $pBundling['delivery_template_id']?$pBundling['delivery_template_id']:\Our\ApiConst::zero;
$tempObj['goodsOriginalPrice'] = $pBundling['sumPrice']; $tempObj['goodsOriginalPrice'] = $pBundling['sumPrice'];
}else if(isset($data['goodsId'])){ }else if(isset($data['goodsId'])){
...@@ -962,6 +965,7 @@ class GroupSaleServiceModel extends \Business\AbstractModel { ...@@ -962,6 +965,7 @@ class GroupSaleServiceModel extends \Business\AbstractModel {
$tempObj['gc_id']=$goodsCommonStorages[$goods['goods_commonid']]['gc_id']; $tempObj['gc_id']=$goodsCommonStorages[$goods['goods_commonid']]['gc_id'];
$tempObj['gc_id_2']=$goodsCommonStorages[$goods['goods_commonid']]['gc_id_2']; $tempObj['gc_id_2']=$goodsCommonStorages[$goods['goods_commonid']]['gc_id_2'];
$tempObj['gc_id_3']=$goodsCommonStorages[$goods['goods_commonid']]['gc_id_3']; $tempObj['gc_id_3']=$goodsCommonStorages[$goods['goods_commonid']]['gc_id_3'];
$tempObj['delivery_template_id']=$goodsCommonStorages[$goods['goods_commonid']]['delivery_template_id']?$goodsCommonStorages[$goods['goods_commonid']]['delivery_template_id']:\Our\ApiConst::zero;
$allGcIds[] = $tempObj['gcId']; $allGcIds[] = $tempObj['gcId'];
$storeGcIds[] = $tempObj['gcId']; $storeGcIds[] = $tempObj['gcId'];
if ($goodsStorage['onlineFlag'] == \Our\ApiConst::one) { if ($goodsStorage['onlineFlag'] == \Our\ApiConst::one) {
......
...@@ -49,6 +49,8 @@ class StoreServiceModel extends \Business\AbstractModel{ ...@@ -49,6 +49,8 @@ class StoreServiceModel extends \Business\AbstractModel{
$storeMembers[] = $storeMember; $storeMembers[] = $storeMember;
$favoritesStoreDao = \DAO\FavoritesStoreModel::getInstance(); $favoritesStoreDao = \DAO\FavoritesStoreModel::getInstance();
$result = $favoritesStoreDao->insertAll($storeMembers); $result = $favoritesStoreDao->insertAll($storeMembers);
$favoritesDao = \DAO\FavoritesStoreModel::getInstance();
\Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(),array(&$favoritesDao, 'getOne'),array(),array($memberId));
}else{ }else{
$sess=\Yaf\Session::getInstance(); $sess=\Yaf\Session::getInstance();
$scan_store_ids = $sess->get('scan_store_ids'); $scan_store_ids = $sess->get('scan_store_ids');
...@@ -373,6 +375,37 @@ class StoreServiceModel extends \Business\AbstractModel{ ...@@ -373,6 +375,37 @@ class StoreServiceModel extends \Business\AbstractModel{
} }
} }
/**
* 上传当前用户的关注店铺
* @param $param
* @param $memberId
*/
public function updateFavoritesStore($param,$memberId){
if(!(isset($param['storeId'])&&$param['storeId'])){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyScanStoreId);
}
$storeId = trim($param['storeId']);
$storeInfo = \DAO\StoreModel::getInstance()->get($storeId,false);
if(!$storeInfo){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyScanStoreInfo);
}
$storeMembers = array();
$storeMember = array();
$storeMember['store_id'] = $storeId;
$storeMember['member_id'] = $memberId;
$storeMember['fav_from'] = \Our\ApiConst::scanFavor;
$storeMember['fav_type'] = \Our\ApiConst::one;
$storeMembers[] = $storeMember;
$favoritesStoreDao = \DAO\FavoritesStoreModel::getInstance();
$result = $favoritesStoreDao->insertAll($storeMembers);
if(!$result){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::saveScanStoreInfoFailed);
}
\Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(),array(&$favoritesStoreDao, 'getOne'),array(),array($memberId));
return true;
}
/** /**
* 获取搜索页推荐关键字 * 获取搜索页推荐关键字
* @param $param * @param $param
......
...@@ -361,6 +361,8 @@ class MemberServiceModel extends \Business\AbstractModel ...@@ -361,6 +361,8 @@ class MemberServiceModel extends \Business\AbstractModel
\Our\Log::getInstance()->write(json_encode($storeMembers).'扫码数据写入失败'); \Our\Log::getInstance()->write(json_encode($storeMembers).'扫码数据写入失败');
return false; return false;
} }
$favoritesDao = \DAO\FavoritesStoreModel::getInstance();
\Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(),array(&$favoritesDao, 'getOne'),array(),array($memberId));
} }
$scan_sale_ids = $sess->get('scan_sale_ids'); $scan_sale_ids = $sess->get('scan_sale_ids');
if($scan_sale_ids){ if($scan_sale_ids){
...@@ -1077,5 +1079,24 @@ class MemberServiceModel extends \Business\AbstractModel ...@@ -1077,5 +1079,24 @@ class MemberServiceModel extends \Business\AbstractModel
} }
/**
* 获取当前用户最新的扫码关注店铺
* @param $memberId
* @return int
* @throws \Our\Exception
*/
public function getMyFavoritesStore($memberId){
if($memberId){
$favoritesDao = \DAO\FavoritesStoreModel::getInstance();
$favStore = \Our\RedisHelper::cachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(),array(&$favoritesDao, 'getOne'),array('store_id',array('fav_from'=>\Our\ApiConst::scanFavor,'member_id'=>$memberId)),\Our\ApiConst::oneDaySecond,array($memberId));
if($favStore&&$favStore['store_id']){
return $favStore['store_id'];
}
}
return \Our\ApiConst::zero;
}
} }
...@@ -60,6 +60,264 @@ class DeliveryFormulaModel extends \DAO\AbstractModel { ...@@ -60,6 +60,264 @@ class DeliveryFormulaModel extends \DAO\AbstractModel {
} }
/**
* 获取店铺自提时间段列表
* @param $store
* @return array
*/
public function getBuyerFormulaForCart($store){
$currentTime = TIMESTAMP;
$time = date('Y-m-d', $currentTime);
if ($store['store_start_time'] && $store['store_close_time']) {
$todayStartTime = strtotime($time . ' ' . $store['store_start_time']);
$todayEndTime = strtotime($time . ' ' . $store['store_close_time']);
} else {
$todayStartTime = $time + \Our\ApiConst::deliveryStartTime;
$todayEndTime = $time + \Our\ApiConst::deliveryEndTime;
}
if($currentTime<$todayStartTime){
$currentTime = $todayStartTime;
}
$return[]=array();
$time = date('Y-m-d',$currentTime);
$todayUnixTime = strtotime($time);
$todayList = $this->getBuyerFormulaList($currentTime,$todayEndTime,\Our\ApiConst::one);
$isDefault = \Our\ApiConst::zero;
if($todayList){
$return[] = array('time'=>$todayUnixTime,'list'=>$todayList);
}else{
$isDefault = \Our\ApiConst::one;
}
$tommorowStartTime = $todayStartTime + \Our\ApiConst::oneDaySecond;
$tommorowEndTime = $todayEndTime + \Our\ApiConst::oneDaySecond;
$tommorowUnixTime = $todayUnixTime + \Our\ApiConst::oneDaySecond;
$tromorrowList = $this->getBuyerFormulaList($tommorowStartTime,$tommorowEndTime,$isDefault);
if($tommorowUnixTime){
$return[]= array('time'=>$tommorowUnixTime,'list'=>$tromorrowList);
}
$isDefault = \Our\ApiConst::zero;
if(!($todayList&&$tromorrowList)){
$isDefault = \Our\ApiConst::one;
}
$nextStartTime = $todayStartTime + \Our\ApiConst::oneDaySecond*2;
$nextEndTime = $todayEndTime + \Our\ApiConst::oneDaySecond*2;
$nextUnixTime = $todayUnixTime + \Our\ApiConst::oneDaySecond*2;
$nextList = $this->getBuyerFormulaList($nextStartTime,$nextEndTime,$isDefault);
if($tommorowUnixTime){
$return[]= array('time'=>$nextUnixTime,'list'=>$nextList);
}
return $return;
}
public function delDeliverFormulaByStoreId($storeId){
return \Our\RedisHelper::delCachedFunction(\Redis\Db6\DeliveryFormulaRedisModel::getInstance(),array(&$this, 'getOne'),array(),\Our\ApiConst::sevenDaySecond,array($storeId));
}
/**
* 新的配送公式
* @param $store
* @param $storeCarts
* @param $distance
* @param bool $deliveryFreeFlag
* @return array
* @throws \Our\Exception
*/
public function getDeliveryFormulaForCartNew($store,$storeCarts,$distance,$deliveryFreeFlag=false){
$delivery_template_ids = array_unique(array_column($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']));
if(!$deliveryFormula){
return false;
}
$formulaList = unserialize($deliveryFormula['formula']);
$fullFormulaList = array_column($formulaList, 'list', 'template_id');
$myFormulaList =array_intersect_key($fullFormulaList,array_flip($delivery_template_ids));
$distanceFormulaList = array();
foreach($myFormulaList as $tempFormulaList){
foreach($tempFormulaList as $tempFormula){
if($tempFormula['distance']=='other'){
$distanceFormulaList[] = $tempFormula;
break;
}else{
if($distance<(intval($tempFormula['distance'])*\Our\ApiConst::thousand)){
$distanceFormulaList[] = $tempFormula;
break;
}
}
}
}
$formula = array();
$halfList = array();
$oneList = array();
$twoList = array();
$dayList = array();
$otherList = array();
foreach($distanceFormulaList as $tempFormuala){
$halfList[] = $tempFormuala['half']?$tempFormuala['half']:$tempFormuala['other'];
$oneList[] = $tempFormuala['one']?$tempFormuala['one']:$tempFormuala['other'];
$twoList[] = $tempFormuala['one']?$tempFormuala['two']:$tempFormuala['other'];
$dayList[] = $tempFormuala['day']?$tempFormuala['day']:$tempFormuala['other'];
$otherList[] = $tempFormuala['other'];
}
$formula['half'] = max($distanceFormulaList);
$formula['one'] = max($oneList);
$formula['two'] = max($twoList);
$formula['day'] = max($dayList);
$formula['other'] = max($otherList);
$currentTime =TIMESTAMP;
$time = date('Y-m-d',$currentTime);
$todayUnixTime = strtotime($time);
if($store['store_dis_sta_time']&&$store['store_dis_end_time']){
$todayStartTime = strtotime($time.' '.$store['store_dis_sta_time']);
$todayEndTime = strtotime($time.' '.$store['store_dis_end_time']);
}else{
$todayStartTime = $time+\Our\ApiConst::deliveryStartTime;
$todayEndTime = $time+\Our\ApiConst::deliveryEndTime;
}
if($todayStartTime>$currentTime){
$currentTime = $todayStartTime;
}
$defaultFee = $formula['half'];
$return = array();
$formulaList = $this->getTodayFormulaList($currentTime,$todayEndTime,$formula,$deliveryFreeFlag);
$tommorowDefault = \Our\ApiConst::zero;
if(!$formulaList){
$tommorowDefault = \Our\ApiConst::one;
}else{
$defaultFee = $formula['other'];
$return[]= array('time'=>$todayUnixTime,'list'=>$formulaList);
}
$tommorowStartTime = $todayStartTime + \Our\ApiConst::oneDaySecond;
$tommorowEndTime = $todayEndTime + \Our\ApiConst::oneDaySecond;
$tommorowUnixTime = $todayUnixTime + \Our\ApiConst::oneDaySecond;
$tromorrowList = $this->getOtherDayFormulaList($tommorowStartTime,$tommorowEndTime,$formula['other'],$deliveryFreeFlag,$tommorowDefault);
if($tommorowUnixTime){
$return[]= array('time'=>$tommorowUnixTime,'list'=>$tromorrowList);
}
$nextStartTime = $todayStartTime + \Our\ApiConst::oneDaySecond*2;
$nextEndTime = $todayEndTime + \Our\ApiConst::oneDaySecond*2;
$nextUnixTime = $todayUnixTime + \Our\ApiConst::oneDaySecond*2;
$isDefault = \Our\ApiConst::zero;
if(!($formulaList&&$tromorrowList)){
$isDefault = \Our\ApiConst::one;
}
$nextList = $this->getOtherDayFormulaList($nextStartTime,$nextEndTime,$formula['other'],$deliveryFreeFlag,$isDefault);
if($tommorowUnixTime){
$return[]= array('time'=>$nextUnixTime,'list'=>$nextList);
}
if($return){
return array('timeList'=>$return,'default'=>$defaultFee);
}
return $return;
}
public function getTodayFormulaList($beginTime,$endTime,$formulaPrice,$deliveryFreeFlag){
$formulaList = array();
$initMinute = intval(date('i',$beginTime));
if($initMinute==0||$initMinute==30){
$startTime = $beginTime;
}else{
if($initMinute<30){
$startTime = mktime(date('H',$beginTime),30,0,date('m',$beginTime),date('d',$beginTime),date('Y',$beginTime));
}else if($initMinute<60){
$startTime = mktime(date('H',$beginTime),60,0,date('m',$beginTime),date('d',$beginTime),date('Y',$beginTime));
}
}
if($startTime+\Our\ApiConst::halfHour<$endTime){
$interval =\Our\ApiConst::zero;
for($i=$startTime;$i<$endTime;$i = $i+(\Our\ApiConst::halfHour)){
$interval += \Our\ApiConst::halfHour;
$temp = array();
$temp['time'] = $i;
$temp['interval'] = \Our\ApiConst::halfHour;
$temp['isDefault'] = \Our\ApiConst::zero;
if($interval==\Our\ApiConst::halfHour*1){//半小时内的价格
$temp['price'] = $formulaPrice['half'];
$temp['isDefault'] = \Our\ApiConst::one;
}else if($interval<=\Our\ApiConst::halfHour*2){
$temp['price'] = $formulaPrice['one'];
}else if($interval<=\Our\ApiConst::halfHour*4){
$temp['price'] = $formulaPrice['two'];
}else{
$temp['price'] = $formulaPrice['day'];
}
if($deliveryFreeFlag){
$temp['price'] = \Our\ApiConst::zero;
}
$temp['price'] = $temp['price']?$temp['price']:\Our\ApiConst::zero;
$formulaList[] = $temp;
}
}
return $formulaList;
}
public function getOtherDayFormulaList($beginTime,$endTime,$price,$deliveryFreeFlag,$isDefault = \Our\ApiConst::zero){
$formulaList = array();
$initMinute = intval(date('i',$beginTime));
if($initMinute==0||$initMinute==30){
$startTime = $beginTime;
}else{
if($initMinute<30){
$startTime = mktime(date('H',$beginTime),30,0,date('m',$beginTime),date('d',$beginTime),date('Y',$beginTime));
}else if($initMinute<60){
$startTime = mktime(date('H',$beginTime),60,0,date('m',$beginTime),date('d',$beginTime),date('Y',$beginTime));
}
}
if($startTime+\Our\ApiConst::halfHour<$endTime){
for($i=$startTime;$i<$endTime;$i = $i+(\Our\ApiConst::halfHour)){
$temp = array();
$temp['time'] = $i;
$temp['interval'] = \Our\ApiConst::halfHour;
$temp['price'] = $price?$price:\Our\ApiConst::zero;
if($deliveryFreeFlag){
$temp['price'] = \Our\ApiConst::zero;
}
$temp['isDefault'] = $isDefault;
$isDefault = \Our\ApiConst::zero;
$formulaList[] = $temp;
}
}
return $formulaList;
}
/**
* 获取自提时间段
* @param $beginTime
* @param $endTime
* @param int $isDefault
* @return array
*/
public function getBuyerFormulaList($beginTime,$endTime,$isDefault = \Our\ApiConst::zero){
$formulaList = array();
$initMinute = intval(date('i',$beginTime));
if($initMinute==0||$initMinute==30){
$startTime = $beginTime;
}else{
if($initMinute<30){
$startTime = mktime(date('H',$beginTime),30,0,date('m',$beginTime),date('d',$beginTime),date('Y',$beginTime));
}else if($initMinute<60){
$startTime = mktime(date('H',$beginTime),60,0,date('m',$beginTime),date('d',$beginTime),date('Y',$beginTime));
}
}
if($startTime+\Our\ApiConst::halfHour<$endTime){
for($i=$startTime;$i<$endTime;$i = $i+(\Our\ApiConst::halfHour)){
$temp = array();
$temp['time'] = $i;
$temp['interval'] = \Our\ApiConst::halfHour;
$temp['isDefault'] = $isDefault;
$temp['price'] = \Our\ApiConst::zero;
$isDefault = \Our\ApiConst::zero;
$formulaList[] = $temp;
}
}
return $formulaList;
}
public function getDeliveryFormulaForCart($store,$distance,$deliveryFreeFlag=false){ public function getDeliveryFormulaForCart($store,$distance,$deliveryFreeFlag=false){
$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){
......
...@@ -45,9 +45,15 @@ class FavoritesStoreModel extends \DAO\AbstractModel { ...@@ -45,9 +45,15 @@ class FavoritesStoreModel extends \DAO\AbstractModel {
return $this->db->fetchAll(); return $this->db->fetchAll();
} }
public function getOne($field,$where){ public function getOne($field,$where,$order = array('fav_time'=>'desc')){
$this->setDb($this->dbName); $this->setDb($this->dbName);
return $this->db->select($field)->from($this->_tableName)->where($where)->fetchOne(); if($order){
foreach($order as $key=>$value){
$this->db->order($key,$value);
}
}
$result = $this->db->select($field)->from($this->_tableName)->where($where)->fetchOne();
return $result;
} }
public function insert($param){ public function insert($param){
......
...@@ -268,7 +268,7 @@ class GoodsModel extends \DAO\AbstractModel { ...@@ -268,7 +268,7 @@ class GoodsModel extends \DAO\AbstractModel {
} }
if($fromCart){ if($fromCart){
$sql = \Our\Common::format(' goods_commonid in ({0})',implode(',',$goodsCommonIds)); $sql = \Our\Common::format(' goods_commonid in ({0})',implode(',',$goodsCommonIds));
$field = 'goods_commonid,goods_id,goods_storage,goods_state,goods_verify,is_transport,transport_id,gc_id,gc_id_1,gc_id_2,gc_id_3,snapshot_id,goods_image,goods_freight,goods_free'; $field = 'goods_commonid,goods_id,goods_storage,goods_state,goods_verify,is_transport,transport_id,gc_id,gc_id_1,gc_id_2,gc_id_3,snapshot_id,goods_image,goods_freight,goods_free,delivery_template_id';
}else if($noRedisGoodsCommonIds){ }else if($noRedisGoodsCommonIds){
$sql = \Our\Common::format(' goods_commonid in ({0})',implode(',',$noRedisGoodsCommonIds)); $sql = \Our\Common::format(' goods_commonid in ({0})',implode(',',$noRedisGoodsCommonIds));
$field = 'goods_commonid,goods_id,goods_storage,goods_state,goods_verify'; $field = 'goods_commonid,goods_id,goods_storage,goods_state,goods_verify';
......
...@@ -127,6 +127,9 @@ class CodeConfigModel ...@@ -127,6 +127,9 @@ class CodeConfigModel
const emptyStoreId = 40007; const emptyStoreId = 40007;
const saveReportError = 40008; const saveReportError = 40008;
const stroeReceiveError = 40009; const stroeReceiveError = 40009;
const emptyScanStoreId = 40010;
const emptyScanStoreInfo = 40011;
const saveScanStoreInfoFailed = 40012;
//购物车 //购物车
const wrongCartType = 50001; const wrongCartType = 50001;
...@@ -530,6 +533,9 @@ class CodeConfigModel ...@@ -530,6 +533,9 @@ class CodeConfigModel
self::emptyReportStoreType => '举报类型不能为空', self::emptyReportStoreType => '举报类型不能为空',
self::emptyStores => '没找到相关店铺', self::emptyStores => '没找到相关店铺',
self::stroeReceiveError => '店铺接单错误', self::stroeReceiveError => '店铺接单错误',
self::emptyScanStoreId => '扫码关注店铺ID为空',
self::emptyScanStoreInfo => '扫码关注店铺不存在',
self::saveScanStoreInfoFailed => '扫码店铺保存失败',
//购物车相关 //购物车相关
self::wrongCartType => '加入购物车类型不能为空', self::wrongCartType => '加入购物车类型不能为空',
......
...@@ -395,7 +395,7 @@ elastic.master.host="192.168.1.201" ...@@ -395,7 +395,7 @@ elastic.master.host="192.168.1.201"
elastic.master.port="9200" elastic.master.port="9200"
elastic.master.scheme="http"; elastic.master.scheme="http";
[lyztest : common] [lyz : common]
; 数据库配置 ; 数据库配置
resources.database.params.driver = "pdo_mysql" resources.database.params.driver = "pdo_mysql"
resources.database.params.hostname = "127.0.0.1" resources.database.params.hostname = "127.0.0.1"
...@@ -442,7 +442,7 @@ elastic.master.host="192.168.1.201" ...@@ -442,7 +442,7 @@ elastic.master.host="192.168.1.201"
elastic.master.port="9200" elastic.master.port="9200"
elastic.master.scheme="http"; elastic.master.scheme="http";
[lyz : common] [lyztest : common]
; 数据库配置 ; 数据库配置
resources.database.params.driver = "pdo_mysql" resources.database.params.driver = "pdo_mysql"
resources.database.params.hostname = "127.0.0.1" resources.database.params.hostname = "127.0.0.1"
......
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