Commit 39fbba9e authored by zhz's avatar zhz

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

parents 2de3ea02 02391a95
...@@ -117,7 +117,7 @@ class CartController extends \Our\Controller_AbstractApi{ ...@@ -117,7 +117,7 @@ class CartController extends \Our\Controller_AbstractApi{
$storeCartData = $cartService->checkCouponForCart($storeCartData,$this->memberId); $storeCartData = $cartService->checkCouponForCart($storeCartData,$this->memberId);
//$this->success($storeCartData); //$this->success($storeCartData);
if(CURRENTVERSION==\Our\NameConst::versionOne){ if(CURRENTVERSION==\Our\NameConst::versionOne){
$storeCartData = $cartService->getDeliveryTypeForCartNew($address,$storeCartData); $storeCartData = $cartService->getDeliveryTypeForCartNew($address,$storeCartData,$this->memberId);
//$this->success($storeCartData); //$this->success($storeCartData);
$data = $cartService->getFormatCartListForOrderNew($storeCartData,$address); $data = $cartService->getFormatCartListForOrderNew($storeCartData,$address);
}else{ }else{
...@@ -128,31 +128,6 @@ class CartController extends \Our\Controller_AbstractApi{ ...@@ -128,31 +128,6 @@ 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);
}
/** /**
* 立即购买 * 立即购买
*/ */
...@@ -170,8 +145,7 @@ class CartController extends \Our\Controller_AbstractApi{ ...@@ -170,8 +145,7 @@ class CartController extends \Our\Controller_AbstractApi{
$storeCartData = $cartService->checkCouponForCart($storeCartData,$this->memberId); $storeCartData = $cartService->checkCouponForCart($storeCartData,$this->memberId);
//$this->success($storeCartData); //$this->success($storeCartData);
if(CURRENTVERSION==\Our\NameConst::versionOne){ if(CURRENTVERSION==\Our\NameConst::versionOne){
$storeCartData = $cartService->getDeliveryTypeForCartNew($address,$storeCartData); $storeCartData = $cartService->getDeliveryTypeForCartNew($address,$storeCartData,$this->memberId);
//$this->success($storeCartData);
$data = $cartService->getFormatCartListForOrderNew($storeCartData,$address); $data = $cartService->getFormatCartListForOrderNew($storeCartData,$address);
}else{ }else{
$storeCartData = $cartService->getDeliveryTypeForCart($address,$storeCartData); $storeCartData = $cartService->getDeliveryTypeForCart($address,$storeCartData);
......
...@@ -12,9 +12,15 @@ class CityController extends \Our\Controller_AbstractIndex { ...@@ -12,9 +12,15 @@ class CityController extends \Our\Controller_AbstractIndex {
} }
public function getCityListAction(){ public function getCityListAction(){
if($_POST['data']['debug']==1){
echo "开始时间:".microtime()."\r\n";
}
$fromWx = $this->req[\Our\NameConst::data]['fromWx']; $fromWx = $this->req[\Our\NameConst::data]['fromWx'];
$addressService = \Business\User\AddressServiceModel::getInstance(); $addressService = \Business\User\AddressServiceModel::getInstance();
$cityList = $addressService->getCityList($fromWx); $cityList = $addressService->getCityList($fromWx);
if($_POST['data']['debug']==1){
echo "结束时间:".microtime()."\r\n";
}
$this->success($cityList); $this->success($cityList);
} }
} }
\ No newline at end of file
File mode changed from 100755 to 100644
...@@ -24,7 +24,7 @@ class ApiConst ...@@ -24,7 +24,7 @@ class ApiConst
const halfHour = 1800; const halfHour = 1800;
//预警时间 //预警时间
const storageAlarmHour = 100000000000000; const storageAlarmHour = 60;
const twoMinSecond = 120; const twoMinSecond = 120;
...@@ -391,6 +391,7 @@ class ApiConst ...@@ -391,6 +391,7 @@ class ApiConst
const sharePlat = 1;//平台 const sharePlat = 1;//平台
const shareStore = 2;//店铺 const shareStore = 2;//店铺
const shareGoods = 3;//商品 const shareGoods = 3;//商品
const shareSaler=4;//销售员分享
const wxAppPayType = 1; //APP微信支付 const wxAppPayType = 1; //APP微信支付
const aliPayType = 2; //APP支付宝支付 const aliPayType = 2; //APP支付宝支付
......
...@@ -9,7 +9,7 @@ abstract class Controller_Abstract extends \Yaf\Controller_Abstract { ...@@ -9,7 +9,7 @@ abstract class Controller_Abstract extends \Yaf\Controller_Abstract {
public function init(){ public function init(){
$this->req=$this->getRequest()->getPost(); $this->req=$this->getRequest()->getPost();
$version = $this->req['data']['currentVersion']; $version = $this->req['currentVersion'];
if($version){ if($version){
define('CURRENTVERSION',$version); define('CURRENTVERSION',$version);
}else{ }else{
......
...@@ -23,7 +23,7 @@ abstract class Controller_AbstractIndex extends \Our\Controller_Abstract { ...@@ -23,7 +23,7 @@ abstract class Controller_AbstractIndex extends \Our\Controller_Abstract {
} }
public function init(){ public function init(){
parent::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();
if(isset($postData[NameConst::sessionKey])&&!empty($postData[NameConst::sessionKey])){ if(isset($postData[NameConst::sessionKey])&&!empty($postData[NameConst::sessionKey])){
......
...@@ -25,6 +25,8 @@ class PathConst { ...@@ -25,6 +25,8 @@ class PathConst {
const sharePlat="http://www.shenbd.com"; const sharePlat="http://www.shenbd.com";
const shareStore="http://share.shenbd.com/share.html?type=store&id={0}";
const timeParam='&param='.TIMESTAMP; const timeParam='&param='.TIMESTAMP;
const cutVertical='|'; const cutVertical='|';
......
...@@ -9,6 +9,34 @@ namespace Store; ...@@ -9,6 +9,34 @@ namespace Store;
class StoreUtil { class StoreUtil {
public function checkAddressInServiceAreaByStore($address,$store){
$storeDao = \DAO\StoreModel::getInstance();
//$store = $storeDao->get($storeId,false);
$storeId = $store['store_id'];
$inAreaFlag = false ;
$qmStoreClassDao = \DAO\QmStoreClassModel::getInstance();
$qmClassCon['store_id'] = $storeId;
$qmClassCon['is_charged'] = 1;
$qmClassCon['class_style'] = 2;
$qmSignScopeList = \Our\RedisHelper::cachedFunction(\Redis\Db6\QmStoreClassRedisModel::getInstance(),array(&$qmStoreClassDao, 'selectByWhere'),array($qmClassCon,'sign_scope'),\Our\ApiConst::oneHour,array($storeId));
if($qmSignScopeList){
foreach($qmSignScopeList as $qmSignScope){
if($qmSignScope['sign_scope']){
$inAreaFlag = \Our\CommonExtension::locationInArea($address['lat'],$address['lng'],$qmSignScope['sign_scope']);
if($inAreaFlag){
return true;
}
}
}
}
if(!$store['store_sales_scope']){
return false;
}
$inAreaFlag = \Our\CommonExtension::locationInArea($address['lat'],$address['lng'],$store['store_sales_scope']);
return $inAreaFlag;
}
public function checkAddressInServiceArea($address,$storeId){ public function checkAddressInServiceArea($address,$storeId){
$storeDao = \DAO\StoreModel::getInstance(); $storeDao = \DAO\StoreModel::getInstance();
$store = $storeDao->get($storeId,false); $store = $storeDao->get($storeId,false);
......
...@@ -59,7 +59,7 @@ class CartServiceModel extends \Business\AbstractModel{ ...@@ -59,7 +59,7 @@ class CartServiceModel extends \Business\AbstractModel{
$cartArray = $this->getFormattedCartDataForEdit($data,$cart,$memberId,$pBundlind,$validReturnData); $cartArray = $this->getFormattedCartDataForEdit($data,$cart,$memberId,$pBundlind,$validReturnData);
$cartDao = \DAO\Cart\CartModel::getInstance(\Our\DbNameConst::masterDBConnectName); $cartDao = \DAO\Cart\CartModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$result = $cartDao->update($cartArray['newCarts'][0],array('cart_id'=>$data['cartId'])); $result = $cartDao->update($cartArray['newCarts'][0],array('cart_id'=>$data['cartId']));
if(!$result){ if($result===false){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::editCartFailed); \Error\ErrorModel::throwException(\Error\CodeConfigModel::editCartFailed);
} }
$cartRedis = \Redis\Db7\CartRedisModel::getInstance(); $cartRedis = \Redis\Db7\CartRedisModel::getInstance();
...@@ -117,7 +117,7 @@ class CartServiceModel extends \Business\AbstractModel{ ...@@ -117,7 +117,7 @@ class CartServiceModel extends \Business\AbstractModel{
$cartIds = array_filter($cartIds); $cartIds = array_filter($cartIds);
$sql = \Our\Common::format(' cart_id in({0}) and buyer_id={1}',implode(',',$cartIds),$memberId); $sql = \Our\Common::format(' cart_id in({0}) and buyer_id={1}',implode(',',$cartIds),$memberId);
$result = $cartDao->del($sql); $result = $cartDao->del($sql);
if(!$result){ if($result===false){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::editCartFailed); \Error\ErrorModel::throwException(\Error\CodeConfigModel::editCartFailed);
} }
...@@ -158,7 +158,7 @@ class CartServiceModel extends \Business\AbstractModel{ ...@@ -158,7 +158,7 @@ class CartServiceModel extends \Business\AbstractModel{
$cart = $this->getOneCart($data,$memberId); $cart = $this->getOneCart($data,$memberId);
$cartDao = \DAO\Cart\CartModel::getInstance(\Our\DbNameConst::masterDBConnectName); $cartDao = \DAO\Cart\CartModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$result = $cartDao->del(array('cart_id'=>$data['cartId'],'buyer_id'=>$memberId)); $result = $cartDao->del(array('cart_id'=>$data['cartId'],'buyer_id'=>$memberId));
if(!$result){ if($result===false){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::editCartFailed); \Error\ErrorModel::throwException(\Error\CodeConfigModel::editCartFailed);
} }
$memberStoreCartsKey = \Our\NameConst::memberStoreCartsPrefix.$memberId.\Our\NameConst::underline.$cart['store_id']; $memberStoreCartsKey = \Our\NameConst::memberStoreCartsPrefix.$memberId.\Our\NameConst::underline.$cart['store_id'];
...@@ -605,8 +605,14 @@ class CartServiceModel extends \Business\AbstractModel{ ...@@ -605,8 +605,14 @@ class CartServiceModel extends \Business\AbstractModel{
$storeCarts = $storeCartData['cartList'][$storeId]; $storeCarts = $storeCartData['cartList'][$storeId];
$deliverySetting['onelinePay'] = $store['wx_pay'];//是否支持线上支付 $deliverySetting['onelinePay'] = $store['wx_pay'];//是否支持线上支付
$deliverySetting['offlinePay'] = $store['offline_pay']; $deliverySetting['offlinePay'] = $store['offline_pay'];
if($deliverySetting['offlinePay']){ if($deliverySetting['offlinePay']){
$deliverySetting['offlinePayway'] = $store['offline_payway']; if(\Our\Common::isSerialized($store['offline_payway'])){
$paywayArray = unserialize($store['offline_payway']);
$deliverySetting['offlinePayway'] = $paywayArray['payway'];
}else{
$deliverySetting['offlinePayway'] = $store['offline_payway'];
}
} }
$deliverySetting['aogPay'] = $store['aog_pay']; $deliverySetting['aogPay'] = $store['aog_pay'];
$deliverySetting['buyerDistribution'] = $store['buyer_distribution']; $deliverySetting['buyerDistribution'] = $store['buyer_distribution'];
...@@ -663,10 +669,14 @@ class CartServiceModel extends \Business\AbstractModel{ ...@@ -663,10 +669,14 @@ class CartServiceModel extends \Business\AbstractModel{
* @param $address * @param $address
* @param $storeCartData * @param $storeCartData
*/ */
public function getDeliveryTypeForCartNew($address,$storeCartData,$dbName = \Our\DbNameConst::salveDBConnectName,$checkFlag = false){ public function getDeliveryTypeForCartNew($address,$storeCartData,$memberId,$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);
$buyerMobile = \DAO\MemberModel::getInstance($dbName)->getInfo($memberId,'member_mobile');
if($buyerMobile&&!\Our\Common::checkMobilePhone($buyerMobile)){
$buyerMobile=\Our\NameConst::emptyString;
}
foreach($storeIds as $storeId){ foreach($storeIds as $storeId){
$store = $storeDao->get($storeId,false); $store = $storeDao->get($storeId,false);
$storeCarts = $storeCartData['cartList'][$storeId]; $storeCarts = $storeCartData['cartList'][$storeId];
...@@ -692,7 +702,8 @@ class CartServiceModel extends \Business\AbstractModel{ ...@@ -692,7 +702,8 @@ class CartServiceModel extends \Business\AbstractModel{
'address' => ($store['store_address'].$store['store_subaddress']), 'address' => ($store['store_address'].$store['store_subaddress']),
'longitude' => $store['store_longitude'], 'longitude' => $store['store_longitude'],
'latitude' => $store['store_latitude'], 'latitude' => $store['store_latitude'],
'cityCode' => $store['store_citycode'] 'cityCode' => $store['store_citycode'],
'buyerMobile' => $buyerMobile
); );
if($deliverySetting['buyerDistribution']){ if($deliverySetting['buyerDistribution']){
$selfDeliveryTimeData = $deliveryFormulaDao->getBuyerFormulaForCart($store); $selfDeliveryTimeData = $deliveryFormulaDao->getBuyerFormulaForCart($store);
...@@ -958,7 +969,7 @@ class CartServiceModel extends \Business\AbstractModel{ ...@@ -958,7 +969,7 @@ class CartServiceModel extends \Business\AbstractModel{
$newStoreData['leftAmount'] = \Our\ApiConst::zero; $newStoreData['leftAmount'] = \Our\ApiConst::zero;
$newStoreData['inServiceAreaFlag'] = \Our\ApiConst::zero; $newStoreData['inServiceAreaFlag'] = \Our\ApiConst::zero;
$newStoreData['storeAddress'] = $deliverySetting['storeAddress']; $newStoreData['storeAddress'] = $deliverySetting['storeAddress'];
if($deliverySetting['sellerDistribution']==\Our\ApiConst::one&&$deliverySetting['deliverTimeList']){ if($deliverySetting['sellerDistribution']==\Our\ApiConst::one){
$deliveryTimes = $deliverySetting['deliverTimeList']; $deliveryTimes = $deliverySetting['deliverTimeList'];
$newStoreData['inServiceAreaFlag'] = $deliverySetting['inServiceAreaFlag']; $newStoreData['inServiceAreaFlag'] = $deliverySetting['inServiceAreaFlag'];
...@@ -966,7 +977,7 @@ class CartServiceModel extends \Business\AbstractModel{ ...@@ -966,7 +977,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['sellerDefaultFee']; $deliveryFee = isset($deliverySetting['sellerDefaultFee'])&&$deliverySetting['sellerDefaultFee']?$deliverySetting['sellerDefaultFee']:\Our\ApiConst::zero;
$shippingFee = $deliveryFee; $shippingFee = $deliveryFee;
$delivery['isChoosed'] = \Our\ApiConst::one; $delivery['isChoosed'] = \Our\ApiConst::one;
$delivery['deliveryFee'] = $deliveryFee; $delivery['deliveryFee'] = $deliveryFee;
......
...@@ -30,10 +30,9 @@ class GoodsClassServiceModel extends \Business\AbstractModel{ ...@@ -30,10 +30,9 @@ class GoodsClassServiceModel extends \Business\AbstractModel{
*/ */
public function getSignClassesByCityCode($cityCode){ public function getSignClassesByCityCode($cityCode){
$qmStoreClassCon['city_code'] = $cityCode; $qmStoreClassCon['city_code'] = $cityCode;
$qmStoreClassCon['is_charged'] = \Our\ApiConst::one;
$qmStoreClassCon['class_style'] = \Our\ApiConst::signClassStyle; $qmStoreClassCon['class_style'] = \Our\ApiConst::signClassStyle;
$qmStoreClassCon['is_charged'] = \Our\ApiConst::one;
$storeField = 'gc_id,sign_scope,gc_parent_id,store_id'; $storeField = 'gc_id,sign_scope,gc_parent_id,store_id';
$qmStoreClassDao = \DAO\QmStoreClassModel::getInstance(); $qmStoreClassDao = \DAO\QmStoreClassModel::getInstance();
$signStoreClasses = \Our\RedisHelper::cachedFunction(\Redis\Db6\QmStoreClassRedisModel::getInstance(),array(&$qmStoreClassDao, 'getStoreClasses'),array($qmStoreClassCon,$storeField),\Our\ApiConst::oneHour,array($cityCode)); $signStoreClasses = \Our\RedisHelper::cachedFunction(\Redis\Db6\QmStoreClassRedisModel::getInstance(),array(&$qmStoreClassDao, 'getStoreClasses'),array($qmStoreClassCon,$storeField),\Our\ApiConst::oneHour,array($cityCode));
return $signStoreClasses; return $signStoreClasses;
...@@ -136,10 +135,11 @@ class GoodsClassServiceModel extends \Business\AbstractModel{ ...@@ -136,10 +135,11 @@ class GoodsClassServiceModel extends \Business\AbstractModel{
if(!$serviceStoreIds){ if(!$serviceStoreIds){
return false; return false;
} }
$serviceWhere = 'is_charged = 1';
if($serviceStoreIds){ if($serviceStoreIds){
$serviceWhere .= " and store_id in (".implode(",",$serviceStoreIds).") "; $serviceWhere = " store_id in (".implode(",",$serviceStoreIds).") ";
} }
$serviceWhere .= ' and is_charged = 1';
$field = 'distinct(gc_parent_id) as gc_parent_id'; $field = 'distinct(gc_parent_id) as gc_parent_id';
$qmStoreClassDao = \DAO\QmStoreClassModel::getInstance(); $qmStoreClassDao = \DAO\QmStoreClassModel::getInstance();
...@@ -157,10 +157,14 @@ class GoodsClassServiceModel extends \Business\AbstractModel{ ...@@ -157,10 +157,14 @@ class GoodsClassServiceModel extends \Business\AbstractModel{
$storeDao = \DAO\StoreModel::getInstance(); $storeDao = \DAO\StoreModel::getInstance();
$storeList = $storeDao->getStoresByCityCode($where['cityCode']); $storeList = $storeDao->getStoresByCityCode($where['cityCode']);
$storeIndexList = array();
foreach($storeList as $tempStore){
$storeIndexList[$tempStore['store_id']] = $tempStore;
}
$serviceStoreIds = array(); $serviceStoreIds = array();
if($storeList){ if($storeList){
foreach ($storeList as $key=>$store){ foreach ($storeList as $key=>$store){
$result =\Store\StoreUtil::getInstance()->checkAddressInServiceArea(array('lng'=>$where['lng'],'lat'=>$where['lat']),$store['store_id']); $result =\Store\StoreUtil::getInstance()->checkAddressInServiceAreaByStore(array('lng'=>$where['lng'],'lat'=>$where['lat']),$storeIndexList[$tempStore['store_id']]);
if($result){ if($result){
$serviceStoreIds[] = $store['store_id']; $serviceStoreIds[] = $store['store_id'];
} }
...@@ -186,14 +190,23 @@ class GoodsClassServiceModel extends \Business\AbstractModel{ ...@@ -186,14 +190,23 @@ class GoodsClassServiceModel extends \Business\AbstractModel{
$storeDao = \DAO\StoreModel::getInstance(); $storeDao = \DAO\StoreModel::getInstance();
$signStoreClasses = $this->getSignClassesByCityCode($cityCode); $signStoreClasses = $this->getSignClassesByCityCode($cityCode);
if($signStoreClasses){ if($signStoreClasses){
$storeIds = array_unique(array_column($signStoreClasses,'store_id'));
$tempStoreList = $storeDao->getNearbyStores($cityCode,$storeIds);
$storeList = array();
if($tempStoreList){
foreach($tempStoreList as $tempStore){
$storeList[$tempStore['store_id']] = $tempStore;
}
}
$returnClass = array(); $returnClass = array();
$newStoreIds = array(); $newStoreIds = array();
foreach($signStoreClasses as $signClass){ foreach($signStoreClasses as $signClass){
$inAreaFlag = \Our\CommonExtension::locationInArea($lat,$lng,$signClass['sign_scope']); $inAreaFlag = \Our\CommonExtension::locationInArea($lat,$lng,$signClass['sign_scope']);
//判断签约分类是否可以为当前用户提供服务,并且记录这些店铺对应的store_id //判断签约分类是否可以为当前用户提供服务,并且记录这些店铺对应的store_id
if($inAreaFlag){ if($inAreaFlag){
$store =$storeDao->getStoreInfoCache($signClass['store_id']); $store = $storeList[$signClass['store_id']];
$class_distance = \Our\CommonExtension::getDistance($lat,$lng,$store['store_latitude'],$store['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;
......
...@@ -73,7 +73,8 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -73,7 +73,8 @@ class OrderServiceModel extends \Business\AbstractModel
// $query2[]= array('match' => array('orderSn' => $keyword")); // $query2[]= array('match' => array('orderSn' => $keyword"));
$query2[] = array('match' => array('storeName' => $keyword)); $query2[] = array('match' => array('storeName' => $keyword));
$query2[] = array('match' => array('goodsName' => $keyword)); $query2[] = array('match' => array('goodsName' => $keyword));
$query2[] = array('wildcard' => array('orderSn' => "*{$keyword}*")); $query2[] = array('match' => array('orderSn' => "$keyword"));
// $query2[] = array('wildcard' => array('orderSn' => "*{$keyword}*"));
$res1['must'][1]['bool']['should'] = $query2; $res1['must'][1]['bool']['should'] = $query2;
$allQuery['bool'] = $res1; $allQuery['bool'] = $res1;
// echo json_encode($allQuery);exit; // echo json_encode($allQuery);exit;
...@@ -275,7 +276,7 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -275,7 +276,7 @@ class OrderServiceModel extends \Business\AbstractModel
$returnData['shippingName'] = $orderDao->getShippingName($returnData['shippingType']); $returnData['shippingName'] = $orderDao->getShippingName($returnData['shippingType']);
$returnData['orderMessage'] = $this->orderCommon['orderMessage']; $returnData['orderMessage'] = $this->orderCommon['orderMessage'];
$returnData['shippingFeeName'] = $orderDao->getFreightFeeName($returnData['shippingType']); $returnData['shippingFeeName'] = $orderDao->getFreightFeeName($returnData['shippingType']);
$returnData['dlyoPickupCode'] = intval(substr($returnData['orderSn'], ApiConst::positionPickupCodeBegin)); $returnData['dlyoPickupCode'] = substr($returnData['orderSn'], ApiConst::positionPickupCodeBegin);
$returnData['paymentName'] = $orderDao->getPayTypeName($returnData['paymentType']); $returnData['paymentName'] = $orderDao->getPayTypeName($returnData['paymentType']);
$returnData['discountAmount'] = $returnData['goodsAmount'] - $returnData['orderAmount'] + $returnData['shippingFee']; $returnData['discountAmount'] = $returnData['goodsAmount'] - $returnData['orderAmount'] + $returnData['shippingFee'];
$returnData['orderText'] = $orderDao->getStatusDetailText($this->order); $returnData['orderText'] = $orderDao->getStatusDetailText($this->order);
...@@ -976,11 +977,25 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -976,11 +977,25 @@ class OrderServiceModel extends \Business\AbstractModel
$store = \Our\RedisHelper::cachedFunction(\Redis\Db6\StoreRedisModel::getInstance(), array(&$storeDao, 'getInfoById'), array($order['store_id']), \Our\ApiConst::oneHour); $store = \Our\RedisHelper::cachedFunction(\Redis\Db6\StoreRedisModel::getInstance(), array(&$storeDao, 'getInfoById'), array($order['store_id']), \Our\ApiConst::oneHour);
$orderContent['storeName'] = $store['store_name']; $orderContent['storeName'] = $store['store_name'];
if ($order['payment_type'] == \Our\ApiConst::payOffline) { if ($order['payment_type'] == \Our\ApiConst::payOffline) {
$orderContent['payway'] = $store['offline_payway']; $orderContent['imageUrls'] = array();
if(\Our\Common::isSerialized($store['offline_payway'])){
$paywayArray = unserialize($store['offline_payway']);
$orderContent['payway'] = $paywayArray['payway'];
if($paywayArray){
foreach($paywayArray['images'] as $image){
if($image){
$orderContent['imageUrls'][] = \Our\Common::getStaticFile($image, \Our\ImageConst::storeLabel);
}
}
}
}else{
$orderContent['payway'] = $store['offline_payway'];
}
} else if ($order['payment_type'] == \Our\ApiConst::payAog) { } else if ($order['payment_type'] == \Our\ApiConst::payAog) {
$orderContent['payway'] = \Our\DescribeConst::afterPay; $orderContent['payway'] = \Our\DescribeConst::afterPay;
} }
$orderContent['orderAmount'] = $order['order_amount']; $orderContent['orderAmount'] = $order['order_amount'];
$orderContent['dlyoPickupCode'] = substr($order['order_sn'], ApiConst::positionPickupCodeBegin);
$orderContents[]=$orderContent; $orderContents[]=$orderContent;
} }
$orderIds[] = $order['order_id']; $orderIds[] = $order['order_id'];
......
...@@ -451,7 +451,7 @@ class RefundServiceModel extends \Business\AbstractModel ...@@ -451,7 +451,7 @@ class RefundServiceModel extends \Business\AbstractModel
// $value['receiveAmount'] = $value['goodsAmount']+$value['shippingFee'] - $value['couponAmount']; // $value['receiveAmount'] = $value['goodsAmount']+$value['shippingFee'] - $value['couponAmount'];
// $value['orderAmount'] = $value['orderAmount']; // $value['orderAmount'] = $value['orderAmount'];
$value['reciverInfo'] = unserialize($orderCommons['reciverInfo']); $value['reciverInfo'] = unserialize($orderCommons['reciverInfo']);
$value['dlyoPickupCode'] = intval(substr($value['orderSn'], ApiConst::positionPickupCodeBegin)); $value['dlyoPickupCode'] = substr($value['orderSn'], ApiConst::positionPickupCodeBegin);
$value['deliveryTimeEnd'] = $value['deliveryTime'] + ApiConst::arriveTimeRadius; $value['deliveryTimeEnd'] = $value['deliveryTime'] + ApiConst::arriveTimeRadius;
$value['goodsImage'] = ImageUtil::getGoodsImgUrl($value['goodsImage'], ApiConst::goodsSmallSize); $value['goodsImage'] = ImageUtil::getGoodsImgUrl($value['goodsImage'], ApiConst::goodsSmallSize);
$value['goodsAttr']=$goodsDao->getFormatGoodsAttr($value['goodsSpec']); $value['goodsAttr']=$goodsDao->getFormatGoodsAttr($value['goodsSpec']);
......
...@@ -281,14 +281,14 @@ class ShopkeeperServiceModel extends \Business\AbstractModel ...@@ -281,14 +281,14 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
$goodsDao = \DAO\GoodsModel::getInstance(); $goodsDao = \DAO\GoodsModel::getInstance();
$orderCommonDao = \DAO\Order\OrderCommonModel::getInstance(); $orderCommonDao = \DAO\Order\OrderCommonModel::getInstance();
$returnData = \Our\RedisHelper::cachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$orderDao, 'getList'), array($where, $orderDao->getOrderDetailField(), $pageIndex, $pageSize, $order, \Our\ApiConst::oneDaySecond, array($storeId))); $returnData = \Our\RedisHelper::cachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$orderDao, 'getList'), array($where, $orderDao->getOrderDetailField(), $pageIndex, $pageSize, $order, \Our\ApiConst::oneDaySecond, array($storeId)));
//$returnData = $orderDao->getOrders($where, $this->orderListField, $pageIndex, $pageSize);
$orders = $returnData['list']; $orders = $returnData['list'];
if (!empty($orders)) { if (!empty($orders)) {
$orderIds = array_column($orders, 'orderId'); $orderIds = array_column($orders, 'orderId');
if (!empty($orderIds)) { if (!empty($orderIds)) {
$orderGoods = \Our\RedisHelper::cachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$orderGoodsDao, 'getOrderGoodsByOrderIds'), array($orderIds, $orderGoodsDao->orderGoodsField), \Our\ApiConst::oneDaySecond, array($storeId)); $orderGoods = \Our\RedisHelper::cachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$orderGoodsDao, 'getOrderGoodsByOrderIds'), array($orderIds, $orderGoodsDao->orderGoodsField), \Our\ApiConst::oneDaySecond, array($storeId));
//$orderGoods = $orderGoodsDao->getOrderGoodsByOrderIds($orderIds, $orderGoodsDao->orderGoodsField); //$orderGoods = $orderGoodsDao->getOrderGoodsByOrderIds($orderIds, $orderGoodsDao->orderGoodsField);
$orderCommons = $orderCommonDao->getAllByOrderIds($orderIds, $orderCommonDao->orderCommonField); $orderCommons=\Our\RedisHelper::cachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$orderCommonDao, 'getAllByOrderIds'), array($orderIds, $orderCommonDao->orderCommonField), \Our\ApiConst::oneDaySecond, array($storeId));
//$orderCommons = $orderCommonDao->getAllByOrderIds($orderIds, $orderCommonDao->orderCommonField);
$ordersOrderCommons = Common::intergrateOneToOne($orders, $orderCommons, 'orderId', 'orderId'); $ordersOrderCommons = Common::intergrateOneToOne($orders, $orderCommons, 'orderId', 'orderId');
$orderMerge = \Our\Common::intergrateOneToMany($ordersOrderCommons, $orderGoods, 'orderId', 'orderId', 'orderGoods'); $orderMerge = \Our\Common::intergrateOneToMany($ordersOrderCommons, $orderGoods, 'orderId', 'orderId', 'orderGoods');
foreach ($orderMerge as &$value) { foreach ($orderMerge as &$value) {
...@@ -312,7 +312,7 @@ class ShopkeeperServiceModel extends \Business\AbstractModel ...@@ -312,7 +312,7 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
// $value['orderAmount'] = $value['orderAmount']; // $value['orderAmount'] = $value['orderAmount'];
$value['reciverInfo'] = unserialize($value['reciverInfo']); $value['reciverInfo'] = unserialize($value['reciverInfo']);
$value['reciverInfo'] =$orderCommonDao->getReciverInfo( $value['reciverInfo'] ); $value['reciverInfo'] =$orderCommonDao->getReciverInfo( $value['reciverInfo'] );
$value['dlyoPickupCode'] = intval(substr($value['orderSn'], ApiConst::positionPickupCodeBegin)); $value['dlyoPickupCode'] = substr($value['orderSn'], ApiConst::positionPickupCodeBegin);
$value['deliveryTimeEnd'] = $value['deliveryTime'] + ApiConst::arriveTimeRadius; $value['deliveryTimeEnd'] = $value['deliveryTime'] + ApiConst::arriveTimeRadius;
if ($value['diliverymanId']) { if ($value['diliverymanId']) {
$diliverymanDao = DiliverymanModel::getInstance(); $diliverymanDao = DiliverymanModel::getInstance();
...@@ -352,7 +352,8 @@ class ShopkeeperServiceModel extends \Business\AbstractModel ...@@ -352,7 +352,8 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
} }
$res1['must'][0] = $query1; $res1['must'][0] = $query1;
$query2[] = array('match' => array('goodsName' => $keyword)); $query2[] = array('match' => array('goodsName' => $keyword));
$query2[] = array('wildcard' => array('orderSn' => "*{$keyword}*")); $query2[] = array('match' => array('orderSn' => "{$keyword}"));
//$query2[] = array('wildcard' => array('orderSn' => "*{$keyword}*"));
$res1['must'][1]['bool']['should'] = $query2; $res1['must'][1]['bool']['should'] = $query2;
$allQuery['bool'] = $res1; $allQuery['bool'] = $res1;
$elasticTool = \Elastics\ElasticsToolModel::getInstance(NameConst::ordersIndex); $elasticTool = \Elastics\ElasticsToolModel::getInstance(NameConst::ordersIndex);
...@@ -502,7 +503,7 @@ class ShopkeeperServiceModel extends \Business\AbstractModel ...@@ -502,7 +503,7 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
$returnData['couponAmount'] = ($returnData['goodsAmount'] + $returnData['shippingFee']) - $returnData['orderAmount'];//优惠券金额 $returnData['couponAmount'] = ($returnData['goodsAmount'] + $returnData['shippingFee']) - $returnData['orderAmount'];//优惠券金额
$returnData['receiveAmount'] = $returnData['goodsAmount'] - $returnData['couponAmount']; $returnData['receiveAmount'] = $returnData['goodsAmount'] - $returnData['couponAmount'];
$returnData['orderAmount'] = $returnData['orderAmount'] + $returnData['couponAmount']; $returnData['orderAmount'] = $returnData['orderAmount'] + $returnData['couponAmount'];
$returnData['dlyoPickupCode'] = intval(substr($returnData['orderSn'], ApiConst::positionPickupCodeBegin)); $returnData['dlyoPickupCode'] = substr($returnData['orderSn'], ApiConst::positionPickupCodeBegin);
$returnData['deliveryTimeEnd'] = $returnData['deliveryTime'] + ApiConst::arriveTimeRadius; $returnData['deliveryTimeEnd'] = $returnData['deliveryTime'] + ApiConst::arriveTimeRadius;
} else { } else {
unset($returnData['reciverInfo']); unset($returnData['reciverInfo']);
......
...@@ -841,7 +841,7 @@ class StoreServiceModel extends \Business\AbstractModel{ ...@@ -841,7 +841,7 @@ class StoreServiceModel extends \Business\AbstractModel{
return false; return false;
} }
$field = 'store_id as storeId,store_name as storeName,store_label as storeLabel,store_intro as storeIntro,store_longitude,store_latitude'; $field = 'store_id as storeId,store_name as storeName,store_label as storeLabel,store_intro as storeIntro,store_longitude,store_latitude';
$where = ' and store_id in('.implode(',',$storeIds).')'; $where = ' store_id in('.implode(',',$storeIds).')';
sort($storeIds); sort($storeIds);
$stores = \Our\RedisHelper::cachedFunction(\Redis\Db6\StoreRedisModel::getInstance(), array(&$storeDao, 'getOnlineStores'), array($where, $field), \Our\ApiConst::oneHour); $stores = \Our\RedisHelper::cachedFunction(\Redis\Db6\StoreRedisModel::getInstance(), array(&$storeDao, 'getOnlineStores'), array($where, $field), \Our\ApiConst::oneHour);
if($stores){ if($stores){
...@@ -965,16 +965,23 @@ class StoreServiceModel extends \Business\AbstractModel{ ...@@ -965,16 +965,23 @@ class StoreServiceModel extends \Business\AbstractModel{
} }
} }
public function growStores(){ public function growStores(){
$cityCodes=array('010','021','022','023','852','853','0310','0311','0312','0313','0314','0315','0316','0317','0318','0319','0335','0570','0571','0572','0573','0574','0575','0576','0577','0578','0579','0580','024','0410','0411','0412','0413','0414','0415','0416','0417','0418','0419','0421','0427','0429','027','0710','0711','0712','0713','0714','0715','0716','0717','0718','0719','0722','0724','0728','025','0510','0511','0512','0513','0514','0515','0516','0517','0517','0518','0519','0523','0470','0471','0472','0473','0474','0475','0476','0477','0478','0479','0482','0483','0790','0791','0792','0793','0794','0795','0796','0797','0798','0799','0701','0350','0351','0352','0353','0354','0355','0356','0357','0358','0359','0930','0931','0932','0933','0934','0935','0936','0937','0938','0941','0943','0530','0531','0532','0533','0534','0535','0536','0537','0538','0539','0450','0451','0452','0453','0454','0455','0456','0457','0458','0459','0591','0592','0593','0594','0595','0595','0596','0597','0598','0599','020','0751','0752','0753','0754','0755','0756','0757','0758','0759','0760','0762','0763','0765','0766','0768','0769','0660','0661','0662','0663','028','0810','0811','0812','0813','0814','0816','0817','0818','0819','0825','0826','0827','0830','0831','0832','0833','0834','0835','0836','0837','0838','0839','0840','0730','0731','0732','0733','0734','0735','0736','0737','0738','0739','0743','0744','0745','0746','0370','0371','0372','0373','0374','0375','0376','0377','0378','0379','0391','0392','0393','0394','0395','0396','0398','0870','0871','0872','0873','0874','0875','0876','0877','0878','0879','0691','0692','0881','0883','0886','0887','0888','0550','0551','0552','0553','0554','0555','0556','0557','0558','0559','0561','0562','0563','0564','0565','0566','0951','0952','0953','0954','0431','0432','0433','0434','0435','0436','0437','0438','0439','0440','0770','0771','0772','0773','0774','0775','0776','0777','0778','0779','0851','0852','0853','0854','0855','0856','0857','0858','0859','029','0910','0911','0912','0913','0914','0915','0916','0917','0919','0971','0972','0973','0974','0975','0976','0977','0890','0898','0899','0891','0892','0893');
$storeDao=\DAO\StoreModel::getInstance(); $storeDao=\DAO\StoreModel::getInstance();
$memberDao = \DAO\MemberModel::getInstance(); // $memberDao = \DAO\MemberModel::getInstance();
$res =$storeDao->getAll(); $res =$storeDao->getAll();
$drawTableDao=\DAO\Draw\DrawTableModel::getInstance(); $drawTableDao=\DAO\Draw\DrawTableModel::getInstance();
$drawTableDatas=$drawTableDao->getAll(); $drawTableDatas=$drawTableDao->getAll();
for($i=0;$i<100000;$i++){ for($i=0;$i<1000000;$i++){
$memberId=50000+$i; $memberId=50000+$i;
$re=array_rand($res); $re=array_rand($res);
$reDraw=array_rand($drawTableDatas); $reDraw=array_rand($drawTableDatas);
$storeCityCode=array_rand($cityCodes);
$storeCityCode=$cityCodes[$storeCityCode];
$temDrawData=$drawTableDatas[$reDraw]; $temDrawData=$drawTableDatas[$reDraw];
while(!$temDrawData['storeName']){
$reDraw=array_rand($drawTableDatas);
$temDrawData=$drawTableDatas[$reDraw];
}
if(!empty($res[$re])){ if(!empty($res[$re])){
$data=$res[$re]; $data=$res[$re];
$data['store_id']=$memberId; $data['store_id']=$memberId;
...@@ -987,6 +994,7 @@ class StoreServiceModel extends \Business\AbstractModel{ ...@@ -987,6 +994,7 @@ class StoreServiceModel extends \Business\AbstractModel{
$data['live_store_name']=$temDrawData['storeName']; $data['live_store_name']=$temDrawData['storeName'];
$data['live_store_address']=$temDrawData['storeAddress']; $data['live_store_address']=$temDrawData['storeAddress'];
$data['store_longitude']=$temDrawData['positionX']/100000; $data['store_longitude']=$temDrawData['positionX']/100000;
$data['store_citycode']=$storeCityCode;
$data['store_latitude']=$temDrawData['positionY']/100000; $data['store_latitude']=$temDrawData['positionY']/100000;
$storeDao->add($data); $storeDao->add($data);
echo '增加数据'.$i.'条member_id 是:'.$memberId."\n"; echo '增加数据'.$i.'条member_id 是:'.$memberId."\n";
......
...@@ -12,8 +12,7 @@ use Our\ApiConst; ...@@ -12,8 +12,7 @@ use Our\ApiConst;
class AddressServiceModel extends \Business\AbstractModel { class AddressServiceModel extends \Business\AbstractModel {
public function init() public function init(){
{
} }
...@@ -215,29 +214,50 @@ class AddressServiceModel extends \Business\AbstractModel { ...@@ -215,29 +214,50 @@ class AddressServiceModel extends \Business\AbstractModel {
$limit = \Our\ApiConst::defaultAddressCount; $limit = \Our\ApiConst::defaultAddressCount;
//1、判断当前用户的地址列表中是否存在和当前经纬度坐标小于200的地址(当前经纬度是否存在对应收货地址) //1、判断当前用户的地址列表中是否存在和当前经纬度坐标小于200的地址(当前经纬度是否存在对应收货地址)
$addressList = \Our\RedisHelper::cachedFunction(\Redis\Db8\AddressRedisModel::getInstance(),array(&$addressDao, 'selectByWhere'),array($condition,$columns),\Our\ApiConst::oneHour,array($memberId)); $addressList = \Our\RedisHelper::cachedFunction(\Redis\Db8\AddressRedisModel::getInstance(),array(&$addressDao, 'selectByWhere'),array($condition,$columns),\Our\ApiConst::oneHour,array($memberId));
$shootFlag = \Our\ApiConst::zero;//是否找到完全匹配地址
if($addressList){ if($addressList){
$newAddressList = array(); $newAddressList = array();
foreach($addressList as $addr){ foreach($addressList as $addr){
if($tempLatLng['lat']==$addr['lat']&&$tempLatLng['lng']==$addr['lng']){
$address = array();
$address['addressId']= $addr['address_id'];
$address['address']= $addr['address'];
$address['name'] = $addr['name'];
$address['tagType']= $addr['tag_type'];
$address['lng'] = $addr['lng'];
$address['lat'] = $addr['lat'];
$address['cityCode'] = $addr['citycode'];
$choosedAddressId = $addr['addressId'];
$newAddress = $address;
$newAddress['chooseFlag'] = \Our\ApiConst::one;
$sess['currentAddress'] = $newAddress;
$returnAddresses[] = $address;
$shootFlag = \Our\ApiConst::one;
break;
}
$newAddressList[$addr['address_id']] = $addr; $newAddressList[$addr['address_id']] = $addr;
$distince = \Our\CommonExtension::getDistance($tempLatLng['lat'],$tempLatLng['lng'],$addr['lat'],$addr['lng'],1); $distince = \Our\CommonExtension::getDistance($tempLatLng['lat'],$tempLatLng['lng'],$addr['lat'],$addr['lng'],1);
$distinceArray[$addr['address_id']]=$distince; $distinceArray[$addr['address_id']]=$distince;
} }
$pos = array_search(min($distinceArray), $distinceArray); //如果没有找到完全匹配地址并且缓存里面的地址页没有命中则可以命中当前选择地址200米范围内的地址
$minDistince = $distinceArray[$pos]; if($shootFlag==\Our\ApiConst::zero&&$currentAddress['chooseFlag']==\Our\ApiConst::zero){
if($minDistince<\Our\ApiConst::minDistanceForCurrentPosition){ $pos = array_search(min($distinceArray), $distinceArray);
$address = array(); $minDistince = $distinceArray[$pos];
$address['addressId']= $newAddressList[$pos]['address_id']; if($minDistince<\Our\ApiConst::minDistanceForCurrentPosition){
$address['address']= $newAddressList[$pos]['address']; $address = array();
$address['name'] = $newAddressList[$pos]['name']; $address['addressId']= $newAddressList[$pos]['address_id'];
$address['tagType']= $newAddressList[$pos]['tag_type']; $address['address']= $newAddressList[$pos]['address'];
$address['lng'] = $newAddressList[$pos]['lng']; $address['name'] = $newAddressList[$pos]['name'];
$address['lat'] = $newAddressList[$pos]['lat']; $address['tagType']= $newAddressList[$pos]['tag_type'];
$address['cityCode'] = $newAddressList[$pos]['citycode']; $address['lng'] = $newAddressList[$pos]['lng'];
$choosedAddressId = $address['addressId']; $address['lat'] = $newAddressList[$pos]['lat'];
$newAddress = $address; $address['cityCode'] = $newAddressList[$pos]['citycode'];
$newAddress['chooseFlag'] = \Our\ApiConst::one; $choosedAddressId = $address['addressId'];
$sess['currentAddress'] = $newAddress; $newAddress = $address;
$returnAddresses[] = $address; $newAddress['chooseFlag'] = \Our\ApiConst::one;
$sess['currentAddress'] = $newAddress;
$returnAddresses[] = $address;
}
} }
} }
//2、如果不存在,存入当前经纬度作为临时地址,并且取当前用户最近使用过的最多3条地址返回去 //2、如果不存在,存入当前经纬度作为临时地址,并且取当前用户最近使用过的最多3条地址返回去
......
...@@ -11,6 +11,7 @@ use Our\ApiConst; ...@@ -11,6 +11,7 @@ use Our\ApiConst;
use Our\Common; use Our\Common;
use Our\CommonExtension; use Our\CommonExtension;
use Our\DbNameConst; use Our\DbNameConst;
use Our\NameConst;
/** /**
...@@ -66,7 +67,7 @@ class MemberServiceModel extends \Business\AbstractModel ...@@ -66,7 +67,7 @@ class MemberServiceModel extends \Business\AbstractModel
$storeFd=$storeRedisDb0->tableHGet(trim($member['store_id']),'fd'); $storeFd=$storeRedisDb0->tableHGet(trim($member['store_id']),'fd');
if(!empty($storeFd)){ if(!empty($storeFd)){
$push=\Our\Push::getInstance(); $push=\Our\Push::getInstance();
$push->addOneToClient(array('storeId'=>$member['store_id'],'type'=>\Our\ApiConst::messageOtherLogin,'op'=>NameConst::logOut,'num'=>\Our\ApiConst::zero,'params'=>array('c'=>'member','m'=>'logOut'))); $push->addOneToClient(array('storeId'=>$member['store_id'],'type'=>\Our\ApiConst::messageOtherLogin,'op'=>\Our\NameConst::logOut,'num'=>\Our\ApiConst::zero,'params'=>array('c'=>'member','m'=>'logOut')));
$push->sendTcpMessage(); $push->sendTcpMessage();
} }
$this->updataSellerToken($member); $this->updataSellerToken($member);
...@@ -1068,14 +1069,18 @@ class MemberServiceModel extends \Business\AbstractModel ...@@ -1068,14 +1069,18 @@ class MemberServiceModel extends \Business\AbstractModel
public function growMembers(){ public function growMembers(){
$memberDao=\DAO\MemberModel::getInstance(); $memberDao=\DAO\MemberModel::getInstance();
$res =$memberDao->getAll(); $res =$memberDao->getAll();
$pre="1780";
for($i=0;$i<1000000;$i++){ for($i=0;$i<1000000;$i++){
$memberId=50000+$i; $memberId=50000+$i;
$re=array_rand($res); $re=array_rand($res);
if(!empty($res[$re])){ if(!empty($res[$re])){
$data=$res[$re]; $data=$res[$re];
$data['member_id']=$memberId; $data['member_id']=$memberId;
$data['member_mobile']=(int)$data['member_mobile']+$i;
$data['store_id']=$memberId; $data['store_id']=$memberId;
$data['member_mobile']=$pre.(string)(1000000+$i);
$data['store_id']=$memberId;
$data['member_passwd']='a18ddf021c99cb0d9e3ff3b52815d1de';
$data['member_time']='1461747049';
$memberDao->add($data); $memberDao->add($data);
echo '增加数据'.$i.'条member_id 是:'.$memberId."\n"; echo '增加数据'.$i.'条member_id 是:'.$memberId."\n";
} }
......
...@@ -35,7 +35,7 @@ class ShareServiceModel extends \Business\AbstractModel ...@@ -35,7 +35,7 @@ class ShareServiceModel extends \Business\AbstractModel
$driverType = \Our\Common::getDriverType(); $driverType = \Our\Common::getDriverType();
$data['driverType'] = $driverType; $data['driverType'] = $driverType;
$data['qrCode']=$this->growQrcode($data); $data['qrCode']=$this->growQrcode($data);
if($data['type']==ApiConst::shareStore){ if($data['type']==ApiConst::shareStore || $data['type']== ApiConst::shareSaler){
$storeDao=\DAO\StoreModel::getInstance(DbNameConst::salveDBConnectName); $storeDao=\DAO\StoreModel::getInstance(DbNameConst::salveDBConnectName);
$data['address']=$storeDao->getAddress($data['id']); $data['address']=$storeDao->getAddress($data['id']);
} }
...@@ -66,6 +66,10 @@ class ShareServiceModel extends \Business\AbstractModel ...@@ -66,6 +66,10 @@ class ShareServiceModel extends \Business\AbstractModel
)); ));
return $res; return $res;
} }
public function getQrUrl($id){
return Common::format(PathConst::shareStore,$id);
}
public function growQrcode($data){ public function growQrcode($data){
$this->memberDb0Redis=\Redis\Db0\MemberRedisModel::getInstance(); $this->memberDb0Redis=\Redis\Db0\MemberRedisModel::getInstance();
if($data['type']==\Our\ApiConst::shareStore){ if($data['type']==\Our\ApiConst::shareStore){
...@@ -81,11 +85,13 @@ class ShareServiceModel extends \Business\AbstractModel ...@@ -81,11 +85,13 @@ class ShareServiceModel extends \Business\AbstractModel
$this->memberDb0Redis->tableCacheSet($fileName,$url,ApiConst::zero); $this->memberDb0Redis->tableCacheSet($fileName,$url,ApiConst::zero);
return $url; return $url;
}else{ }else{
// return $this->getQrUrl($data['id']);
return PathConst::wxDefaultPath; return PathConst::wxDefaultPath;
} }
}else{ }else{
return $this->getQrUrl($data['id']);
//不是微信分享就是普通下载的二维码图片 //不是微信分享就是普通下载的二维码图片
return PathConst::downLoadQrcode; //return PathConst::downLoadQrcode;
} }
} }
if($data['type']==\Our\ApiConst::shareGoods){ if($data['type']==\Our\ApiConst::shareGoods){
...@@ -101,18 +107,21 @@ class ShareServiceModel extends \Business\AbstractModel ...@@ -101,18 +107,21 @@ class ShareServiceModel extends \Business\AbstractModel
$this->memberDb0Redis->tableCacheSet($fileName,$url,ApiConst::zero); $this->memberDb0Redis->tableCacheSet($fileName,$url,ApiConst::zero);
return $url; return $url;
}else{ }else{
return $this->getQrUrl($data['id']); //return $this->getQrUrl($data['id']);
//return PathConst::wxDefaultPath; return PathConst::wxDefaultPath;
} }
}else{ }else{
//不是微信分享就是普通下载的二维码图片 //不是微信分享就是普通下载的二维码图片
return $this->getQrUrl($data['id']); return $this->getQrUrl($data['id']);
// return PathConst::downLoadQrcode; //return PathConst::downLoadQrcode;
} }
} }
if($data['type']==\Our\ApiConst::sharePlat){ if($data['type']==\Our\ApiConst::sharePlat){
return PathConst::sharePlat; return PathConst::sharePlat;
} }
if($data['type']==\Our\ApiConst::shareSaler){
return $data['qrCode'];
}
} }
public function excuteCommand($key){ public function excuteCommand($key){
$command=\Bootstrap::getUrlIniConfig("convert"); $command=\Bootstrap::getUrlIniConfig("convert");
......
...@@ -58,7 +58,7 @@ class GoodsClassModel extends \DAO\AbstractModel { ...@@ -58,7 +58,7 @@ class GoodsClassModel extends \DAO\AbstractModel {
$goodsClassRedis = \Redis\Db6\GoodsClassRedisModel::getInstance(); $goodsClassRedis = \Redis\Db6\GoodsClassRedisModel::getInstance();
$classes = $goodsClassRedis->find('platformParentClass'); $classes = $goodsClassRedis->find('platformParentClass');
if(!$classes){ if(!$classes){
$where = 'gc_show = 1 and gc_parent_id = 0'; $where = 'gc_parent_id = 0 and gc_show = 1';
$field = 'gc_id as gcId,gc_name as gcName'; $field = 'gc_id as gcId,gc_name as gcName';
$result = $this->getList($field,$where); $result = $this->getList($field,$where);
......
...@@ -137,7 +137,7 @@ class StoreModel extends \DAO\AbstractModel ...@@ -137,7 +137,7 @@ class StoreModel extends \DAO\AbstractModel
$conditionSql = 'store_state =1 and open_flag =1 and (store_end_time >=' . TIMESTAMP . ' or store_end_time =0 ) '; $conditionSql = 'store_state =1 and open_flag =1 and (store_end_time >=' . TIMESTAMP . ' or store_end_time =0 ) ';
if ($where) { if ($where) {
$conditionSql .= $where; $conditionSql = $where. ' and '.$conditionSql;
} }
$result = $this->getStores($conditionSql, $field, $limit); $result = $this->getStores($conditionSql, $field, $limit);
return $result; return $result;
...@@ -210,7 +210,7 @@ class StoreModel extends \DAO\AbstractModel ...@@ -210,7 +210,7 @@ class StoreModel extends \DAO\AbstractModel
public function getStoresByCityCode($cityCode, $field = 'store_id,store_longitude,store_latitude,max_sign_rang,max_sales_rang,store_sales_scope') public function getStoresByCityCode($cityCode, $field = 'store_id,store_longitude,store_latitude,max_sign_rang,max_sales_rang,store_sales_scope')
{ {
$storeClassCondition = " and store_citycode = '" . $cityCode . "' "; $storeClassCondition = " store_citycode = '" . $cityCode . "' ";
$stores = \Our\RedisHelper::cachedFunction(\Redis\Db6\StoreRedisModel::getInstance(), array(&$this, 'getOnlineStores'), array($storeClassCondition, $field), \Our\ApiConst::oneHour, array($cityCode)); $stores = \Our\RedisHelper::cachedFunction(\Redis\Db6\StoreRedisModel::getInstance(), array(&$this, 'getOnlineStores'), array($storeClassCondition, $field), \Our\ApiConst::oneHour, array($cityCode));
return $stores; return $stores;
...@@ -229,20 +229,20 @@ class StoreModel extends \DAO\AbstractModel ...@@ -229,20 +229,20 @@ class StoreModel extends \DAO\AbstractModel
public function getExpressStores( $field = 'store_id,store_longitude,store_latitude,max_sign_rang,max_sales_rang,store_sales_scope') public function getExpressStores( $field = 'store_id,store_longitude,store_latitude,max_sign_rang,max_sales_rang,store_sales_scope')
{ {
$storeClassCondition = " and express_distribution = 1 "; $storeClassCondition = " express_distribution = 1 ";
$stores = \Our\RedisHelper::cachedFunction(\Redis\Db6\StoreRedisModel::getInstance(), array(&$this, 'getOnlineStores'), array($storeClassCondition, $field), \Our\ApiConst::oneHour); $stores = \Our\RedisHelper::cachedFunction(\Redis\Db6\StoreRedisModel::getInstance(), array(&$this, 'getOnlineStores'), array($storeClassCondition, $field), \Our\ApiConst::oneHour);
return $stores; return $stores;
} }
public function deleteExpressStores($field = 'store_id,store_longitude,store_latitude,max_sign_rang,max_sales_rang,store_sales_scope'){ public function deleteExpressStores($field = 'store_id,store_longitude,store_latitude,max_sign_rang,max_sales_rang,store_sales_scope'){
$storeClassCondition = " and express_distribution = 1 "; $storeClassCondition = " express_distribution = 1 ";
\Our\RedisHelper::delCachedFunction(\Redis\Db6\StoreRedisModel::getInstance(), array(&$this, 'getOnlineStores'),array(array($storeClassCondition, $field))); \Our\RedisHelper::delCachedFunction(\Redis\Db6\StoreRedisModel::getInstance(), array(&$this, 'getOnlineStores'),array(array($storeClassCondition, $field)));
} }
public function getNearbyStores($cityCode, $storeIds) public function getNearbyStores($cityCode, $storeIds)
{ {
$condition = " and store_citycode = '" . $cityCode . "' and store_id in (" . implode(',', $storeIds) . ")"; $condition = " store_id in (" . implode(',', $storeIds) . ") and store_citycode = '" . $cityCode . "'";
$field = 'store_id as storeId,store_label as storeLabel,store_name as storeName,store_intro as storeIntro,store_longitude,store_latitude'; $field = 'store_id as storeId,store_label as storeLabel,store_name as storeName,store_intro as storeIntro,store_longitude,store_latitude';
$returnStores = \Our\RedisHelper::cachedFunction(\Redis\Db6\StoreRedisModel::getInstance(), array(&$this, 'getOnlineStores'), array($condition, $field), \Our\ApiConst::oneHour, array($cityCode)); $returnStores = \Our\RedisHelper::cachedFunction(\Redis\Db6\StoreRedisModel::getInstance(), array(&$this, 'getOnlineStores'), array($condition, $field), \Our\ApiConst::oneHour, array($cityCode));
return $returnStores; return $returnStores;
......
...@@ -286,29 +286,30 @@ class CodeConfigModel ...@@ -286,29 +286,30 @@ class CodeConfigModel
const notAllowDelete = 300114; const notAllowDelete = 300114;
const emptyDeliveryTime = 300115; const emptyDeliveryTime = 300115;
const noExpressDeliveryForOrder1 = 30115;
const goodsNoStoreForCartOrOrder1 = 30116; const goodsNoStoreForCartOrOrder1 = 30116;
const platFormAreadyIn = 300117; const platFormAreadyIn = 300117;
const confirmReceiveError = 300118; const confirmReceiveError = 300118;
const alreadyExsitDeliveryMan = 300119; const alreadyExsitDeliveryMan = 300119;
const updateOrderFail = 300120;
const selectDeliveryFail = 300121;
const alreadyExsitQmDeliveryLog = 300122; const alreadyExsitQmDeliveryLog = 300122;
const notExsitDeliveryMan = 300123; const notExsitDeliveryMan = 300123;
const addDeliveryManError = 300124; const addDeliveryManError = 300124;
const updateOrderFail = 300120;
const selectDeliveryFail = 300121;
const notAllowUpdataOrderAmount = 300125; const notAllowUpdataOrderAmount = 300125;
const noEnoughStorageForBundlingGoods = 30118;
const noOrderWaitToPay = 30119;
const wrongEvaluation = 30120;
const selfGoodsForStoreOrder = 30121;
const refundAddPointsLogError = 30122;
const wrongDeliveryTime = 300123;
const wrongBuyerTimeRangeForOrder =300124;
const emptyBuyerMobile = 300125;
const wrongBuyerMobile = 300126; const wrongBuyerMobile = 300126;
const leftAmountError = 300127; const leftAmountError = 300127;
const noExpressDeliveryForOrder1 = 30128;
const noEnoughStorageForBundlingGoods = 30129;
const noOrderWaitToPay = 30130;
const wrongEvaluation = 30131;
const selfGoodsForStoreOrder = 3032;
const refundAddPointsLogError = 30133;
const wrongDeliveryTime = 300134;
const wrongBuyerTimeRangeForOrder =300135;
const emptyBuyerMobile = 300136;
//店铺相关错误码 //店铺相关错误码
//商品分类 //商品分类
......
...@@ -64,11 +64,12 @@ ...@@ -64,11 +64,12 @@
if(pageObj.price != pageObj.discount) if(pageObj.price != pageObj.discount)
document.getElementById("price").innerHTML = "<span style='font-size:30px;'>¥</span>"+(pageObj.price / 100).toFixed(2); document.getElementById("price").innerHTML = "<span style='font-size:30px;'>¥</span>"+(pageObj.price / 100).toFixed(2);
if(pageObj.type<=2){ new QRCode(document.getElementById('qrcodeImg'), pageObj.url);
document.getElementById("qrImg").src = pageObj.qrImg;} // if(pageObj.type<=2){
else{ // document.getElementById("qrImg").src = pageObj.qrImg;}
new QRCode(document.getElementById('qrcodeImg'), pageObj.url); // else{
} // new QRCode(document.getElementById('qrcodeImg'), pageObj.url);
// }
......
...@@ -64,12 +64,12 @@ ...@@ -64,12 +64,12 @@
document.getElementById(v).innerHTML = pageObj[v]; document.getElementById(v).innerHTML = pageObj[v];
}); });
document.getElementById("headerBg").src = pageObj.headerBg; document.getElementById("headerBg").src = pageObj.headerBg;
new QRCode(document.getElementById('qrcodeImg'), pageObj.url);
if(pageObj.type<=2){ // if(pageObj.type<=2){
document.getElementById("qrImg").src = pageObj.qrImg;} // document.getElementById("qrImg").src = pageObj.qrImg;}
else{ // else{
new QRCode(document.getElementById('qrcodeImg'), pageObj.url); // new QRCode(document.getElementById('qrcodeImg'), pageObj.url);
} // }
......
...@@ -263,31 +263,31 @@ push.open=1 ...@@ -263,31 +263,31 @@ push.open=1
[ccwdevelop : common] [ccwdevelop : 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 = "192.168.1.201"
resources.database.params.port = 3306 resources.database.params.port = 3306
resources.database.params.database = "qmcs" resources.database.params.database = "qmcs"
resources.database.params.username = "root" resources.database.params.username = "root"
resources.database.params.password = "root" resources.database.params.password = "123456"
resources.database.params.charset = "UTF8" resources.database.params.charset = "UTF8"
resources.database.params.driver_options.1002 = "SET NAMES utf8" resources.database.params.driver_options.1002 = "SET NAMES utf8"
; 从库配置 ; 从库配置
resources.database.slave.params.driver = "pdo_mysql" resources.database.slave.params.driver = "pdo_mysql"
resources.database.slave.params.hostname = "127.0.0.1" resources.database.slave.params.hostname = "192.168.1.201"
resources.database.slave.params.port = 3306 resources.database.slave.params.port = 3306
resources.database.slave.params.database = "qmcs" resources.database.slave.params.database = "qmcs"
resources.database.slave.params.username = "root" resources.database.slave.params.username = "root"
resources.database.slave.params.password = "root" resources.database.slave.params.password = "123456"
resources.database.slave.params.charset = "UTF8" resources.database.slave.params.charset = "UTF8"
resources.database.slave.params.driver_options.1002 = "SET NAMES utf8" resources.database.slave.params.driver_options.1002 = "SET NAMES utf8"
; 从库配置 ; 从库配置
resources.database.drawSource.params.driver = "pdo_mysql" resources.database.drawSource.params.driver = "pdo_mysql"
resources.database.drawSource.params.hostname = "127.0.0.1" resources.database.drawSource.params.hostname = "192.168.1.201"
resources.database.drawSource.params.port = 3306 resources.database.drawSource.params.port = 3306
resources.database.drawSource.params.database = "drawSource" resources.database.drawSource.params.database = "drawSource"
resources.database.drawSource.params.username = "root" resources.database.drawSource.params.username = "root"
resources.database.drawSource.params.password = "root" resources.database.drawSource.params.password = "111111"
resources.database.drawSource.params.charset = "UTF8" resources.database.drawSource.params.charset = "UTF8"
resources.database.drawSource.params.driver_options.1002 = "SET NAMES utf8" resources.database.drawSource.params.driver_options.1002 = "SET NAMES utf8"
...@@ -374,7 +374,7 @@ elastic.master.host="192.168.1.201" ...@@ -374,7 +374,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"
...@@ -421,7 +421,7 @@ elastic.master.host="192.168.1.201" ...@@ -421,7 +421,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"
......
<?php <?php
echo 1;exit;
echo json_encode($_SERVER);exit; echo json_encode($_SERVER);exit;
$res=file_exists('/www/web/testadmin_shenbd_com/public_html/data/upload/mall/avatar/member_avatar_26.jpg'); $res=file_exists('/www/web/testadmin_shenbd_com/public_html/data/upload/mall/avatar/member_avatar_26.jpg');
var_dump($res); var_dump($res);
......
<?php <?php
/** /**
* 生成店铺订单索引 * 生成店铺订单索引
* 执行时间:每分钟执行一次 * 执行时间:每分钟执行一次
* *
* @author chenjiebin <sjlinyu@qq.com> * @author chenjiebin <sjlinyu@qq.com>
*/ */
define("APPLICATION_PATH", realpath(dirname(__FILE__) . '/../../../')); //指向public的上一级 define("APPLICATION_PATH", realpath(dirname(__FILE__) . '/../../../')); //指向public的上一级
require APPLICATION_PATH . '/scripts/crontab/baseCli.php'; require APPLICATION_PATH . '/scripts/crontab/baseCli.php';
require APPLICATION_PATH . '/scripts/crontab/common.php'; require APPLICATION_PATH . '/scripts/crontab/common.php';
error_reporting(E_ALL ^ E_NOTICE); error_reporting(E_ALL ^ E_NOTICE);
class cliGrowStore extends basecli class cliGrowStore extends basecli
{ {
const CLI_ADMIN_ID = 255; const CLI_ADMIN_ID = 255;
private $bDoUnLock = FALSE; // 是否允许释放 LOCK 文件 private $bDoUnLock = FALSE; // 是否允许释放 LOCK 文件
private $_debug = 0; private $_debug = 0;
private $lockFileName; private $lockFileName;
public $key=''; public $key='';
private $fromState; private $fromState;
private function mkdirs($dir, $mode = 0777) private function mkdirs($dir, $mode = 0777)
{ {
if (is_dir($dir) || @mkdir($dir, $mode)) { if (is_dir($dir) || @mkdir($dir, $mode)) {
return TRUE; return TRUE;
} }
if (!$this->mkdirs(dirname($dir), $mode)) { if (!$this->mkdirs(dirname($dir), $mode)) {
return FALSE; return FALSE;
} }
return @mkdir($dir, $mode); return @mkdir($dir, $mode);
} }
/** /**
* 析构 * 析构
*/ */
public function __destruct() public function __destruct()
{ {
parent::__destruct(); parent::__destruct();
if ($this->bDoUnLock) { if ($this->bDoUnLock) {
@unlink($this->lockFileName); @unlink($this->lockFileName);
} }
} }
protected function _runCli() protected function _runCli()
{ {
$this->_debug = isset($this->aArgv[1]) ? intval($this->aArgv[1]) : 0; $this->_debug = isset($this->aArgv[1]) ? intval($this->aArgv[1]) : 0;
if ($this->_debug) { if ($this->_debug) {
echo "*** Debug mode ***\n"; echo "*** Debug mode ***\n";
} }
// Step: 02 检查是否已有相同CLI在运行中 // Step: 02 检查是否已有相同CLI在运行中
$lockDir = $this->_getBaseFileName('growGoodsStores'); $lockDir = $this->_getBaseFileName('insertDatas');
if (!$this->mkdirs($lockDir)) { if (!$this->mkdirs($lockDir)) {
echo '****create dir fail ****'; echo '****create dir fail ****';
exit; exit;
} }
$this->lockFileName = $lockDir . DS . 'cliGrowStore.locks'; $this->lockFileName = $lockDir . DS . 'cliGrowStore.locks';
if (file_exists($this->lockFileName)) { if (file_exists($this->lockFileName)) {
$stat = stat($this->lockFileName); $stat = stat($this->lockFileName);
if ((TIMESTAMP - $stat['mtime']) > 1800) { if ((TIMESTAMP - $stat['mtime']) > 1800) {
echo "文件被锁超过1800秒,被强制删除"; echo "文件被锁超过1800秒,被强制删除";
@unlink($this->lockFileName); @unlink($this->lockFileName);
} else { } else {
$this->halt('[' . date('Y-m-d H:i:s') . '] The CLI is running' . "\n"); $this->halt('[' . date('Y-m-d H:i:s') . '] The CLI is running' . "\n");
} }
} }
$this->bDoUnLock = true; $this->bDoUnLock = true;
file_put_contents($this->lockFileName, "running"); // CLI 独占锁 file_put_contents($this->lockFileName, "running"); // CLI 独占锁
$storeService=\Business\Store\StoreServiceModel::getInstance(); $storeService=\Business\Store\StoreServiceModel::getInstance();
try { try {
$storeService->growStores(); $storeService->growStores();
// $goodsCommonStrorageDao->createTestData(); // $goodsCommonStrorageDao->createTestData();
} catch (Exception $ex) { } catch (Exception $ex) {
throw new Exception($ex->getCode() . '|' . $ex->getMessage()); throw new Exception($ex->getCode() . '|' . $ex->getMessage());
} }
echo '店铺生成成功' .date('Y-m-d H:i:s',TIMESTAMP). "\r\n"; echo '店铺生成成功' .date('Y-m-d H:i:s',TIMESTAMP). "\r\n";
} }
} }
$oCli = new cliGrowStore(TRUE); $oCli = new cliGrowStore(TRUE);
EXIT; EXIT;
?> ?>
<?php
/**
* 生成店铺订单索引
* 执行时间:每分钟执行一次
*
* @author chenjiebin <sjlinyu@qq.com>
*/
define("APPLICATION_PATH", realpath(dirname(__FILE__) . '/../../../')); //指向public的上一级
require APPLICATION_PATH . '/scripts/crontab/baseCli.php';
require APPLICATION_PATH . '/scripts/crontab/common.php';
error_reporting(E_ALL ^ E_NOTICE);
class cliMember extends basecli
{
const CLI_ADMIN_ID = 255;
private $bDoUnLock = FALSE; // 是否允许释放 LOCK 文件
private $_debug = 0;
private $lockFileName;
public $key='';
private $fromState;
private function mkdirs($dir, $mode = 0777)
{
if (is_dir($dir) || @mkdir($dir, $mode)) {
return TRUE;
}
if (!$this->mkdirs(dirname($dir), $mode)) {
return FALSE;
}
return @mkdir($dir, $mode);
}
/**
* 析构
*/
public function __destruct()
{
parent::__destruct();
if ($this->bDoUnLock) {
@unlink($this->lockFileName);
}
}
protected function _runCli()
{
$this->_debug = isset($this->aArgv[1]) ? intval($this->aArgv[1]) : 0;
if ($this->_debug) {
echo "*** Debug mode ***\n";
}
// Step: 02 检查是否已有相同CLI在运行中
$lockDir = $this->_getBaseFileName('insertDatas');
if (!$this->mkdirs($lockDir)) {
echo '****create dir fail ****';
exit;
}
$this->lockFileName = $lockDir . DS . 'member.locks';
if (file_exists($this->lockFileName)) {
$stat = stat($this->lockFileName);
if ((TIMESTAMP - $stat['mtime']) > 1800) {
echo "文件被锁超过1800秒,被强制删除";
@unlink($this->lockFileName);
} else {
$this->halt('[' . date('Y-m-d H:i:s') . '] The CLI is running' . "\n");
}
}
$this->bDoUnLock = true;
file_put_contents($this->lockFileName, "running"); // CLI 独占锁
$memberService=\Business\User\MemberServiceModel::getInstance();
try {
$memberService->growMembers();
// $goodsCommonStrorageDao->createTestData();
} catch (Exception $ex) {
throw new Exception($ex->getCode() . '|' . $ex->getMessage());
}
echo '店铺生成成功' .date('Y-m-d H:i:s',TIMESTAMP). "\r\n";
}
}
$oCli = new cliMember(TRUE);
EXIT;
?>
...@@ -44,7 +44,7 @@ class clinNginxLogsIndex extends basecli ...@@ -44,7 +44,7 @@ class clinNginxLogsIndex extends basecli
} }
} }
public function getIndex($dayOption){ public function getIndex($dayOption){
$dateStr=date('Y-m-d',strtotime($dayOption)); $dateStr=date('Y.m.d',strtotime($dayOption));
$indexStr=\Our\Common::format("nignx-log-".$dateStr); $indexStr=\Our\Common::format("nignx-log-".$dateStr);
return $indexStr; return $indexStr;
} }
......
...@@ -241,9 +241,11 @@ $tcp_server->on('receive', function($serv, $fd, $from_id, $data) use($conf) { ...@@ -241,9 +241,11 @@ $tcp_server->on('receive', function($serv, $fd, $from_id, $data) use($conf) {
if(!isset($data['uid']) || empty($data['uid'])){ if(!isset($data['uid']) || empty($data['uid'])){
foreach($data['data'] as $value){ foreach($data['data'] as $value){
if(isset($value['type'])&&$value['type']>100){ if(isset($value['type'])&&$value['type']>100){
echo json_encode($value);
$sendStoreFd=$redis->hGet(KEY_PRE_STORE.$value['storeId'],'fd'); $sendStoreFd=$redis->hGet(KEY_PRE_STORE.$value['storeId'],'fd');
if(!empty($sendStoreFd)){ if(!empty($sendStoreFd)){
if(!$value['message']){
$value['message']=new \stdClass();
}
$serv->push($sendStoreFd, responseJson(1,"fromMsg","success", $value)); $serv->push($sendStoreFd, responseJson(1,"fromMsg","success", $value));
} }
}else{ }else{
...@@ -253,6 +255,9 @@ $tcp_server->on('receive', function($serv, $fd, $from_id, $data) use($conf) { ...@@ -253,6 +255,9 @@ $tcp_server->on('receive', function($serv, $fd, $from_id, $data) use($conf) {
$sendFd=$redis->hGet(KEY_PRE.$value['toId'],'fd'); $sendFd=$redis->hGet(KEY_PRE.$value['toId'],'fd');
$redis->hIncrBy(KEY_PRE.$value['toId'],'unread_message_count',\Our\ApiConst::one); $redis->hIncrBy(KEY_PRE.$value['toId'],'unread_message_count',\Our\ApiConst::one);
if(!empty($sendFd)){ if(!empty($sendFd)){
if(!$value['message']){
$value['message']=new \stdClass();
}
$serv->push($sendFd, responseJson(1,"fromMsg","success", $value)); $serv->push($sendFd, responseJson(1,"fromMsg","success", $value));
$redis->hSet(KEY_PRE.$value['fromId'],'sendTime', time()); $redis->hSet(KEY_PRE.$value['fromId'],'sendTime', time());
} }
...@@ -267,6 +272,9 @@ $tcp_server->on('receive', function($serv, $fd, $from_id, $data) use($conf) { ...@@ -267,6 +272,9 @@ $tcp_server->on('receive', function($serv, $fd, $from_id, $data) use($conf) {
$data['data']['message']=unserialize($data['data']['message']); $data['data']['message']=unserialize($data['data']['message']);
$redis->hIncrBy(KEY_PRE.$data['data']['toId'],'unread_message_count',\Our\ApiConst::one); $redis->hIncrBy(KEY_PRE.$data['data']['toId'],'unread_message_count',\Our\ApiConst::one);
if(!empty($sendFd)){ if(!empty($sendFd)){
if(!$data['data']['message']){
$data['data']['message']=new \stdClass();
}
$serv->push($sendFd, responseJson($sendFd,"fromMsg","success", $data['data'])); $serv->push($sendFd, responseJson($sendFd,"fromMsg","success", $data['data']));
$redis->hSet(KEY_PRE.$data['data']['fromId'],'sendTime', time()); $redis->hSet(KEY_PRE.$data['data']['fromId'],'sendTime', time());
} }
...@@ -297,12 +305,16 @@ $serv->on('Close', function($server, $fd) use($conf){ ...@@ -297,12 +305,16 @@ $serv->on('Close', function($server, $fd) use($conf){
}); });
function responseJson($status = 1,$method, $message = '', $data = array()) { function responseJson($status = 1,$method, $message = '', $data = array()) {
if(!$data['message']){
$data['message']=new \stdClass();
}
$data = [ $data = [
'status' => $status, 'status' => $status,
'method'=>$method, 'method'=>$method,
'message' => $message, 'message' => $message,
'data' => $data, 'data' => $data,
]; ];
echo json_encode($data);
return json_encode($data); return json_encode($data);
} }
$serv->start(); $serv->start();
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