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{
$storeCartData = $cartService->checkCouponForCart($storeCartData,$this->memberId);
//$this->success($storeCartData);
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);
}else{
......@@ -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{
$storeCartData = $cartService->checkCouponForCart($storeCartData,$this->memberId);
//$this->success($storeCartData);
if(CURRENTVERSION==\Our\NameConst::versionOne){
$storeCartData = $cartService->getDeliveryTypeForCartNew($address,$storeCartData);
//$this->success($storeCartData);
$storeCartData = $cartService->getDeliveryTypeForCartNew($address,$storeCartData,$this->memberId);
$data = $cartService->getFormatCartListForOrderNew($storeCartData,$address);
}else{
$storeCartData = $cartService->getDeliveryTypeForCart($address,$storeCartData);
......
......@@ -12,9 +12,15 @@ class CityController extends \Our\Controller_AbstractIndex {
}
public function getCityListAction(){
if($_POST['data']['debug']==1){
echo "开始时间:".microtime()."\r\n";
}
$fromWx = $this->req[\Our\NameConst::data]['fromWx'];
$addressService = \Business\User\AddressServiceModel::getInstance();
$cityList = $addressService->getCityList($fromWx);
if($_POST['data']['debug']==1){
echo "结束时间:".microtime()."\r\n";
}
$this->success($cityList);
}
}
\ No newline at end of file
File mode changed from 100755 to 100644
......@@ -24,7 +24,7 @@ class ApiConst
const halfHour = 1800;
//预警时间
const storageAlarmHour = 100000000000000;
const storageAlarmHour = 60;
const twoMinSecond = 120;
......@@ -391,6 +391,7 @@ class ApiConst
const sharePlat = 1;//平台
const shareStore = 2;//店铺
const shareGoods = 3;//商品
const shareSaler=4;//销售员分享
const wxAppPayType = 1; //APP微信支付
const aliPayType = 2; //APP支付宝支付
......
......@@ -9,7 +9,7 @@ abstract class Controller_Abstract extends \Yaf\Controller_Abstract {
public function init(){
$this->req=$this->getRequest()->getPost();
$version = $this->req['data']['currentVersion'];
$version = $this->req['currentVersion'];
if($version){
define('CURRENTVERSION',$version);
}else{
......
......@@ -23,7 +23,7 @@ abstract class Controller_AbstractIndex extends \Our\Controller_Abstract {
}
public function init(){
parent::init();
$this->req=$this->getRequest()->getPost();
// $this->req=$this->getRequest()->getPost();
$postData=$this->req['data'];
$this->checkEncrypt();
if(isset($postData[NameConst::sessionKey])&&!empty($postData[NameConst::sessionKey])){
......
......@@ -25,6 +25,8 @@ class PathConst {
const sharePlat="http://www.shenbd.com";
const shareStore="http://share.shenbd.com/share.html?type=store&id={0}";
const timeParam='&param='.TIMESTAMP;
const cutVertical='|';
......
......@@ -9,6 +9,34 @@ namespace Store;
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){
$storeDao = \DAO\StoreModel::getInstance();
$store = $storeDao->get($storeId,false);
......
......@@ -59,7 +59,7 @@ class CartServiceModel extends \Business\AbstractModel{
$cartArray = $this->getFormattedCartDataForEdit($data,$cart,$memberId,$pBundlind,$validReturnData);
$cartDao = \DAO\Cart\CartModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$result = $cartDao->update($cartArray['newCarts'][0],array('cart_id'=>$data['cartId']));
if(!$result){
if($result===false){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::editCartFailed);
}
$cartRedis = \Redis\Db7\CartRedisModel::getInstance();
......@@ -117,7 +117,7 @@ class CartServiceModel extends \Business\AbstractModel{
$cartIds = array_filter($cartIds);
$sql = \Our\Common::format(' cart_id in({0}) and buyer_id={1}',implode(',',$cartIds),$memberId);
$result = $cartDao->del($sql);
if(!$result){
if($result===false){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::editCartFailed);
}
......@@ -158,7 +158,7 @@ class CartServiceModel extends \Business\AbstractModel{
$cart = $this->getOneCart($data,$memberId);
$cartDao = \DAO\Cart\CartModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$result = $cartDao->del(array('cart_id'=>$data['cartId'],'buyer_id'=>$memberId));
if(!$result){
if($result===false){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::editCartFailed);
}
$memberStoreCartsKey = \Our\NameConst::memberStoreCartsPrefix.$memberId.\Our\NameConst::underline.$cart['store_id'];
......@@ -605,8 +605,14 @@ class CartServiceModel extends \Business\AbstractModel{
$storeCarts = $storeCartData['cartList'][$storeId];
$deliverySetting['onelinePay'] = $store['wx_pay'];//是否支持线上支付
$deliverySetting['offlinePay'] = $store['offline_pay'];
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['buyerDistribution'] = $store['buyer_distribution'];
......@@ -663,10 +669,14 @@ class CartServiceModel extends \Business\AbstractModel{
* @param $address
* @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'];
$storeDao = \DAO\StoreModel::getInstance();
$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){
$store = $storeDao->get($storeId,false);
$storeCarts = $storeCartData['cartList'][$storeId];
......@@ -692,7 +702,8 @@ class CartServiceModel extends \Business\AbstractModel{
'address' => ($store['store_address'].$store['store_subaddress']),
'longitude' => $store['store_longitude'],
'latitude' => $store['store_latitude'],
'cityCode' => $store['store_citycode']
'cityCode' => $store['store_citycode'],
'buyerMobile' => $buyerMobile
);
if($deliverySetting['buyerDistribution']){
$selfDeliveryTimeData = $deliveryFormulaDao->getBuyerFormulaForCart($store);
......@@ -958,7 +969,7 @@ class CartServiceModel extends \Business\AbstractModel{
$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){
$deliveryTimes = $deliverySetting['deliverTimeList'];
$newStoreData['inServiceAreaFlag'] = $deliverySetting['inServiceAreaFlag'];
......@@ -966,7 +977,7 @@ class CartServiceModel extends \Business\AbstractModel{
$delivery = array();
$delivery['name'] = \Our\DescribeConst::deliveryNameStore;
$delivery['type'] = \Our\ApiConst::deliveryStore;
$deliveryFee = $deliverySetting['sellerDefaultFee'];
$deliveryFee = isset($deliverySetting['sellerDefaultFee'])&&$deliverySetting['sellerDefaultFee']?$deliverySetting['sellerDefaultFee']:\Our\ApiConst::zero;
$shippingFee = $deliveryFee;
$delivery['isChoosed'] = \Our\ApiConst::one;
$delivery['deliveryFee'] = $deliveryFee;
......
......@@ -30,10 +30,9 @@ class GoodsClassServiceModel extends \Business\AbstractModel{
*/
public function getSignClassesByCityCode($cityCode){
$qmStoreClassCon['city_code'] = $cityCode;
$qmStoreClassCon['is_charged'] = \Our\ApiConst::one;
$qmStoreClassCon['class_style'] = \Our\ApiConst::signClassStyle;
$qmStoreClassCon['is_charged'] = \Our\ApiConst::one;
$storeField = 'gc_id,sign_scope,gc_parent_id,store_id';
$qmStoreClassDao = \DAO\QmStoreClassModel::getInstance();
$signStoreClasses = \Our\RedisHelper::cachedFunction(\Redis\Db6\QmStoreClassRedisModel::getInstance(),array(&$qmStoreClassDao, 'getStoreClasses'),array($qmStoreClassCon,$storeField),\Our\ApiConst::oneHour,array($cityCode));
return $signStoreClasses;
......@@ -136,10 +135,11 @@ class GoodsClassServiceModel extends \Business\AbstractModel{
if(!$serviceStoreIds){
return false;
}
$serviceWhere = 'is_charged = 1';
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';
$qmStoreClassDao = \DAO\QmStoreClassModel::getInstance();
......@@ -157,10 +157,14 @@ class GoodsClassServiceModel extends \Business\AbstractModel{
$storeDao = \DAO\StoreModel::getInstance();
$storeList = $storeDao->getStoresByCityCode($where['cityCode']);
$storeIndexList = array();
foreach($storeList as $tempStore){
$storeIndexList[$tempStore['store_id']] = $tempStore;
}
$serviceStoreIds = array();
if($storeList){
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){
$serviceStoreIds[] = $store['store_id'];
}
......@@ -186,14 +190,23 @@ class GoodsClassServiceModel extends \Business\AbstractModel{
$storeDao = \DAO\StoreModel::getInstance();
$signStoreClasses = $this->getSignClassesByCityCode($cityCode);
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();
$newStoreIds = array();
foreach($signStoreClasses as $signClass){
$inAreaFlag = \Our\CommonExtension::locationInArea($lat,$lng,$signClass['sign_scope']);
//判断签约分类是否可以为当前用户提供服务,并且记录这些店铺对应的store_id
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 = $signClass;
$class['class_distance'] = $class_distance;
......
......@@ -73,7 +73,8 @@ class OrderServiceModel extends \Business\AbstractModel
// $query2[]= array('match' => array('orderSn' => $keyword"));
$query2[] = array('match' => array('storeName' => $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;
$allQuery['bool'] = $res1;
// echo json_encode($allQuery);exit;
......@@ -275,7 +276,7 @@ class OrderServiceModel extends \Business\AbstractModel
$returnData['shippingName'] = $orderDao->getShippingName($returnData['shippingType']);
$returnData['orderMessage'] = $this->orderCommon['orderMessage'];
$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['discountAmount'] = $returnData['goodsAmount'] - $returnData['orderAmount'] + $returnData['shippingFee'];
$returnData['orderText'] = $orderDao->getStatusDetailText($this->order);
......@@ -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);
$orderContent['storeName'] = $store['store_name'];
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) {
$orderContent['payway'] = \Our\DescribeConst::afterPay;
}
$orderContent['orderAmount'] = $order['order_amount'];
$orderContent['dlyoPickupCode'] = substr($order['order_sn'], ApiConst::positionPickupCodeBegin);
$orderContents[]=$orderContent;
}
$orderIds[] = $order['order_id'];
......
......@@ -451,7 +451,7 @@ class RefundServiceModel extends \Business\AbstractModel
// $value['receiveAmount'] = $value['goodsAmount']+$value['shippingFee'] - $value['couponAmount'];
// $value['orderAmount'] = $value['orderAmount'];
$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['goodsImage'] = ImageUtil::getGoodsImgUrl($value['goodsImage'], ApiConst::goodsSmallSize);
$value['goodsAttr']=$goodsDao->getFormatGoodsAttr($value['goodsSpec']);
......
......@@ -281,14 +281,14 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
$goodsDao = \DAO\GoodsModel::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 = $orderDao->getOrders($where, $this->orderListField, $pageIndex, $pageSize);
$orders = $returnData['list'];
if (!empty($orders)) {
$orderIds = array_column($orders, 'orderId');
if (!empty($orderIds)) {
$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);
$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');
$orderMerge = \Our\Common::intergrateOneToMany($ordersOrderCommons, $orderGoods, 'orderId', 'orderId', 'orderGoods');
foreach ($orderMerge as &$value) {
......@@ -312,7 +312,7 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
// $value['orderAmount'] = $value['orderAmount'];
$value['reciverInfo'] = unserialize($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;
if ($value['diliverymanId']) {
$diliverymanDao = DiliverymanModel::getInstance();
......@@ -352,7 +352,8 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
}
$res1['must'][0] = $query1;
$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;
$allQuery['bool'] = $res1;
$elasticTool = \Elastics\ElasticsToolModel::getInstance(NameConst::ordersIndex);
......@@ -502,7 +503,7 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
$returnData['couponAmount'] = ($returnData['goodsAmount'] + $returnData['shippingFee']) - $returnData['orderAmount'];//优惠券金额
$returnData['receiveAmount'] = $returnData['goodsAmount'] - $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;
} else {
unset($returnData['reciverInfo']);
......
......@@ -841,7 +841,7 @@ class StoreServiceModel extends \Business\AbstractModel{
return false;
}
$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);
$stores = \Our\RedisHelper::cachedFunction(\Redis\Db6\StoreRedisModel::getInstance(), array(&$storeDao, 'getOnlineStores'), array($where, $field), \Our\ApiConst::oneHour);
if($stores){
......@@ -965,16 +965,23 @@ class StoreServiceModel extends \Business\AbstractModel{
}
}
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();
$memberDao = \DAO\MemberModel::getInstance();
// $memberDao = \DAO\MemberModel::getInstance();
$res =$storeDao->getAll();
$drawTableDao=\DAO\Draw\DrawTableModel::getInstance();
$drawTableDatas=$drawTableDao->getAll();
for($i=0;$i<100000;$i++){
for($i=0;$i<1000000;$i++){
$memberId=50000+$i;
$re=array_rand($res);
$reDraw=array_rand($drawTableDatas);
$storeCityCode=array_rand($cityCodes);
$storeCityCode=$cityCodes[$storeCityCode];
$temDrawData=$drawTableDatas[$reDraw];
while(!$temDrawData['storeName']){
$reDraw=array_rand($drawTableDatas);
$temDrawData=$drawTableDatas[$reDraw];
}
if(!empty($res[$re])){
$data=$res[$re];
$data['store_id']=$memberId;
......@@ -987,6 +994,7 @@ class StoreServiceModel extends \Business\AbstractModel{
$data['live_store_name']=$temDrawData['storeName'];
$data['live_store_address']=$temDrawData['storeAddress'];
$data['store_longitude']=$temDrawData['positionX']/100000;
$data['store_citycode']=$storeCityCode;
$data['store_latitude']=$temDrawData['positionY']/100000;
$storeDao->add($data);
echo '增加数据'.$i.'条member_id 是:'.$memberId."\n";
......
......@@ -12,8 +12,7 @@ use Our\ApiConst;
class AddressServiceModel extends \Business\AbstractModel {
public function init()
{
public function init(){
}
......@@ -215,29 +214,50 @@ class AddressServiceModel extends \Business\AbstractModel {
$limit = \Our\ApiConst::defaultAddressCount;
//1、判断当前用户的地址列表中是否存在和当前经纬度坐标小于200的地址(当前经纬度是否存在对应收货地址)
$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){
$newAddressList = array();
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;
$distince = \Our\CommonExtension::getDistance($tempLatLng['lat'],$tempLatLng['lng'],$addr['lat'],$addr['lng'],1);
$distinceArray[$addr['address_id']]=$distince;
}
$pos = array_search(min($distinceArray), $distinceArray);
$minDistince = $distinceArray[$pos];
if($minDistince<\Our\ApiConst::minDistanceForCurrentPosition){
$address = array();
$address['addressId']= $newAddressList[$pos]['address_id'];
$address['address']= $newAddressList[$pos]['address'];
$address['name'] = $newAddressList[$pos]['name'];
$address['tagType']= $newAddressList[$pos]['tag_type'];
$address['lng'] = $newAddressList[$pos]['lng'];
$address['lat'] = $newAddressList[$pos]['lat'];
$address['cityCode'] = $newAddressList[$pos]['citycode'];
$choosedAddressId = $address['addressId'];
$newAddress = $address;
$newAddress['chooseFlag'] = \Our\ApiConst::one;
$sess['currentAddress'] = $newAddress;
$returnAddresses[] = $address;
//如果没有找到完全匹配地址并且缓存里面的地址页没有命中则可以命中当前选择地址200米范围内的地址
if($shootFlag==\Our\ApiConst::zero&&$currentAddress['chooseFlag']==\Our\ApiConst::zero){
$pos = array_search(min($distinceArray), $distinceArray);
$minDistince = $distinceArray[$pos];
if($minDistince<\Our\ApiConst::minDistanceForCurrentPosition){
$address = array();
$address['addressId']= $newAddressList[$pos]['address_id'];
$address['address']= $newAddressList[$pos]['address'];
$address['name'] = $newAddressList[$pos]['name'];
$address['tagType']= $newAddressList[$pos]['tag_type'];
$address['lng'] = $newAddressList[$pos]['lng'];
$address['lat'] = $newAddressList[$pos]['lat'];
$address['cityCode'] = $newAddressList[$pos]['citycode'];
$choosedAddressId = $address['addressId'];
$newAddress = $address;
$newAddress['chooseFlag'] = \Our\ApiConst::one;
$sess['currentAddress'] = $newAddress;
$returnAddresses[] = $address;
}
}
}
//2、如果不存在,存入当前经纬度作为临时地址,并且取当前用户最近使用过的最多3条地址返回去
......
......@@ -11,6 +11,7 @@ use Our\ApiConst;
use Our\Common;
use Our\CommonExtension;
use Our\DbNameConst;
use Our\NameConst;
/**
......@@ -66,7 +67,7 @@ class MemberServiceModel extends \Business\AbstractModel
$storeFd=$storeRedisDb0->tableHGet(trim($member['store_id']),'fd');
if(!empty($storeFd)){
$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();
}
$this->updataSellerToken($member);
......@@ -1068,14 +1069,18 @@ class MemberServiceModel extends \Business\AbstractModel
public function growMembers(){
$memberDao=\DAO\MemberModel::getInstance();
$res =$memberDao->getAll();
$pre="1780";
for($i=0;$i<1000000;$i++){
$memberId=50000+$i;
$re=array_rand($res);
if(!empty($res[$re])){
$data=$res[$re];
$data['member_id']=$memberId;
$data['member_mobile']=(int)$data['member_mobile']+$i;
$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);
echo '增加数据'.$i.'条member_id 是:'.$memberId."\n";
}
......
......@@ -35,7 +35,7 @@ class ShareServiceModel extends \Business\AbstractModel
$driverType = \Our\Common::getDriverType();
$data['driverType'] = $driverType;
$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);
$data['address']=$storeDao->getAddress($data['id']);
}
......@@ -66,6 +66,10 @@ class ShareServiceModel extends \Business\AbstractModel
));
return $res;
}
public function getQrUrl($id){
return Common::format(PathConst::shareStore,$id);
}
public function growQrcode($data){
$this->memberDb0Redis=\Redis\Db0\MemberRedisModel::getInstance();
if($data['type']==\Our\ApiConst::shareStore){
......@@ -81,11 +85,13 @@ class ShareServiceModel extends \Business\AbstractModel
$this->memberDb0Redis->tableCacheSet($fileName,$url,ApiConst::zero);
return $url;
}else{
// return $this->getQrUrl($data['id']);
return PathConst::wxDefaultPath;
}
}else{
return $this->getQrUrl($data['id']);
//不是微信分享就是普通下载的二维码图片
return PathConst::downLoadQrcode;
//return PathConst::downLoadQrcode;
}
}
if($data['type']==\Our\ApiConst::shareGoods){
......@@ -101,18 +107,21 @@ class ShareServiceModel extends \Business\AbstractModel
$this->memberDb0Redis->tableCacheSet($fileName,$url,ApiConst::zero);
return $url;
}else{
return $this->getQrUrl($data['id']);
//return PathConst::wxDefaultPath;
//return $this->getQrUrl($data['id']);
return PathConst::wxDefaultPath;
}
}else{
//不是微信分享就是普通下载的二维码图片
return $this->getQrUrl($data['id']);
// return PathConst::downLoadQrcode;
return $this->getQrUrl($data['id']);
//return PathConst::downLoadQrcode;
}
}
if($data['type']==\Our\ApiConst::sharePlat){
return PathConst::sharePlat;
}
if($data['type']==\Our\ApiConst::shareSaler){
return $data['qrCode'];
}
}
public function excuteCommand($key){
$command=\Bootstrap::getUrlIniConfig("convert");
......
......@@ -58,7 +58,7 @@ class GoodsClassModel extends \DAO\AbstractModel {
$goodsClassRedis = \Redis\Db6\GoodsClassRedisModel::getInstance();
$classes = $goodsClassRedis->find('platformParentClass');
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';
$result = $this->getList($field,$where);
......
......@@ -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 ) ';
if ($where) {
$conditionSql .= $where;
$conditionSql = $where. ' and '.$conditionSql;
}
$result = $this->getStores($conditionSql, $field, $limit);
return $result;
......@@ -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')
{
$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));
return $stores;
......@@ -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')
{
$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);
return $stores;
}
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)));
}
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';
$returnStores = \Our\RedisHelper::cachedFunction(\Redis\Db6\StoreRedisModel::getInstance(), array(&$this, 'getOnlineStores'), array($condition, $field), \Our\ApiConst::oneHour, array($cityCode));
return $returnStores;
......
......@@ -286,29 +286,30 @@ class CodeConfigModel
const notAllowDelete = 300114;
const emptyDeliveryTime = 300115;
const noExpressDeliveryForOrder1 = 30115;
const goodsNoStoreForCartOrOrder1 = 30116;
const platFormAreadyIn = 300117;
const confirmReceiveError = 300118;
const alreadyExsitDeliveryMan = 300119;
const updateOrderFail = 300120;
const selectDeliveryFail = 300121;
const alreadyExsitQmDeliveryLog = 300122;
const notExsitDeliveryMan = 300123;
const addDeliveryManError = 300124;
const updateOrderFail = 300120;
const selectDeliveryFail = 300121;
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 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 @@
if(pageObj.price != pageObj.discount)
document.getElementById("price").innerHTML = "<span style='font-size:30px;'>¥</span>"+(pageObj.price / 100).toFixed(2);
if(pageObj.type<=2){
document.getElementById("qrImg").src = pageObj.qrImg;}
else{
new QRCode(document.getElementById('qrcodeImg'), pageObj.url);
}
new QRCode(document.getElementById('qrcodeImg'), pageObj.url);
// if(pageObj.type<=2){
// document.getElementById("qrImg").src = pageObj.qrImg;}
// else{
// new QRCode(document.getElementById('qrcodeImg'), pageObj.url);
// }
......
......@@ -64,12 +64,12 @@
document.getElementById(v).innerHTML = pageObj[v];
});
document.getElementById("headerBg").src = pageObj.headerBg;
if(pageObj.type<=2){
document.getElementById("qrImg").src = pageObj.qrImg;}
else{
new QRCode(document.getElementById('qrcodeImg'), pageObj.url);
}
new QRCode(document.getElementById('qrcodeImg'), pageObj.url);
// if(pageObj.type<=2){
// document.getElementById("qrImg").src = pageObj.qrImg;}
// else{
// new QRCode(document.getElementById('qrcodeImg'), pageObj.url);
// }
......
......@@ -263,31 +263,31 @@ push.open=1
[ccwdevelop : common]
; 数据库配置
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.database = "qmcs"
resources.database.params.username = "root"
resources.database.params.password = "root"
resources.database.params.password = "123456"
resources.database.params.charset = "UTF8"
resources.database.params.driver_options.1002 = "SET NAMES utf8"
; 从库配置
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.database = "qmcs"
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.driver_options.1002 = "SET NAMES utf8"
; 从库配置
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.database = "drawSource"
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.driver_options.1002 = "SET NAMES utf8"
......@@ -374,7 +374,7 @@ elastic.master.host="192.168.1.201"
elastic.master.port="9200"
elastic.master.scheme="http";
[lyztest : common]
[lyz : common]
; 数据库配置
resources.database.params.driver = "pdo_mysql"
resources.database.params.hostname = "127.0.0.1"
......@@ -421,7 +421,7 @@ elastic.master.host="192.168.1.201"
elastic.master.port="9200"
elastic.master.scheme="http";
[lyz : common]
[lyztest : common]
; 数据库配置
resources.database.params.driver = "pdo_mysql"
resources.database.params.hostname = "127.0.0.1"
......
<?php
echo 1;exit;
echo json_encode($_SERVER);exit;
$res=file_exists('/www/web/testadmin_shenbd_com/public_html/data/upload/mall/avatar/member_avatar_26.jpg');
var_dump($res);
......
<?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 cliGrowStore 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('growGoodsStores');
if (!$this->mkdirs($lockDir)) {
echo '****create dir fail ****';
exit;
}
$this->lockFileName = $lockDir . DS . 'cliGrowStore.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 独占锁
$storeService=\Business\Store\StoreServiceModel::getInstance();
try {
$storeService->growStores();
// $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 cliGrowStore(TRUE);
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 cliGrowStore 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 . 'cliGrowStore.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 独占锁
$storeService=\Business\Store\StoreServiceModel::getInstance();
try {
$storeService->growStores();
// $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 cliGrowStore(TRUE);
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
}
}
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);
return $indexStr;
}
......
......@@ -241,9 +241,11 @@ $tcp_server->on('receive', function($serv, $fd, $from_id, $data) use($conf) {
if(!isset($data['uid']) || empty($data['uid'])){
foreach($data['data'] as $value){
if(isset($value['type'])&&$value['type']>100){
echo json_encode($value);
$sendStoreFd=$redis->hGet(KEY_PRE_STORE.$value['storeId'],'fd');
if(!empty($sendStoreFd)){
if(!$value['message']){
$value['message']=new \stdClass();
}
$serv->push($sendStoreFd, responseJson(1,"fromMsg","success", $value));
}
}else{
......@@ -253,6 +255,9 @@ $tcp_server->on('receive', function($serv, $fd, $from_id, $data) use($conf) {
$sendFd=$redis->hGet(KEY_PRE.$value['toId'],'fd');
$redis->hIncrBy(KEY_PRE.$value['toId'],'unread_message_count',\Our\ApiConst::one);
if(!empty($sendFd)){
if(!$value['message']){
$value['message']=new \stdClass();
}
$serv->push($sendFd, responseJson(1,"fromMsg","success", $value));
$redis->hSet(KEY_PRE.$value['fromId'],'sendTime', time());
}
......@@ -267,6 +272,9 @@ $tcp_server->on('receive', function($serv, $fd, $from_id, $data) use($conf) {
$data['data']['message']=unserialize($data['data']['message']);
$redis->hIncrBy(KEY_PRE.$data['data']['toId'],'unread_message_count',\Our\ApiConst::one);
if(!empty($sendFd)){
if(!$data['data']['message']){
$data['data']['message']=new \stdClass();
}
$serv->push($sendFd, responseJson($sendFd,"fromMsg","success", $data['data']));
$redis->hSet(KEY_PRE.$data['data']['fromId'],'sendTime', time());
}
......@@ -297,12 +305,16 @@ $serv->on('Close', function($server, $fd) use($conf){
});
function responseJson($status = 1,$method, $message = '', $data = array()) {
if(!$data['message']){
$data['message']=new \stdClass();
}
$data = [
'status' => $status,
'method'=>$method,
'message' => $message,
'data' => $data,
];
echo json_encode($data);
return json_encode($data);
}
$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