Commit 5e393be1 authored by testshenbd's avatar testshenbd

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

parents a6c07eac e124889f
......@@ -123,7 +123,7 @@ class IndexController extends \Our\Controller_Abstract {
$goodsCommonId=(int)$this->getRequest()->getQuery()['goodsCommonId'];
if($goodsCommonId > 0) {
$commonGoodsInstance = \DAO\GoodsCommonModel::getInstance();
$commonInfo = \Our\RedisHelper::cachedFunction(\Redis\Db4\GoodsCommonRedisModel::getInstance(),array(&$commonGoodsInstance, 'getOneById'),array($goodsCommonId),0,array($goodsCommonId));
$commonInfo = $commonGoodsInstance->getOneByIdCache($goodsCommonId);
}
$this->_view->assign('commonInfo',$commonInfo);
}
......
......@@ -34,8 +34,9 @@ class MessageController extends \Our\Controller_AbstractApi {
}else{
$returnMessage=$this->messageService->getList($this->memberId,$pageIndex,$pageSize);
// $returnMessage=\Our\RedisHelper::cachedFunction(\Redis\Db15\MessageRedisModel::getInstance(),array(&$this->messageService, 'getList'),array($this->memberId,$pageIndex,$pageSize),\Our\ApiConst::oneHour,array($this->memberId));
if($returnMessage){
if(!empty($returnMessage['list'])){
$returnMessage['users']=$returnMessage['list'];
unset($returnMessage['list']);
}else{
$returnMessage['users']=[];
$returnMessage['totalCount']=0;
......
......@@ -115,4 +115,8 @@ class StoreController extends \Our\Controller_AbstractIndex {
$this->success($couponTitles);
}
public function editQmStoreClassAction(){
$this->storeService->editQmStoreClass();
}
}
\ No newline at end of file
......@@ -63,6 +63,8 @@ class ApiConst
const cannotSendMsg=-1;
const canSendMsg=1;
const defaultIntervalTime = 2000;
const getExpressSuccess=0;
const favTimeAsc = 1;
......
......@@ -74,6 +74,26 @@ class CommonExtension {
return $c;
}
/**
* 判断地址是否在多边形内
* @param $lat 地址纬度
* @param $lng 地址经度
* @param $coordStr 多边形区域字符串
* @return bool
*/
public static function locationInArea($lat,$lng,$coordStr){
if(!($lat&&$lng)){
return false;
}
$str = str_replace('\"','"',$coordStr);
$coordArray = json_decode($str,true);
if(is_array($coordArray)&&count($coordArray)>0){
$location = array('lat'=>$lat,'lng'=>$lng);
$in_store_service_flag = self::isPointInPolygon($coordArray,$location);
return $in_store_service_flag;
}
return false;
}
/**
......
......@@ -10,5 +10,6 @@ class DbNameConst {
const salveDBConnectName = 'resources.database.slave.params';
const masterDBConnectName = 'resources.database.params';
const drawSource = 'resources.database.drawSource.params';
}
\ No newline at end of file
<?php
namespace Store;
/**
* User: liuyuzhen
* Date: 2018/10/18
* Time: 17:34
* Description:
*/
class StoreUtil {
public function checkAddressInServiceArea($address,$storeId){
$storeDao = \DAO\StoreModel::getInstance();
$store = $storeDao->get($storeId,false);
$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;
}
/**
* 经纬度是否在店铺地址范围内
* @param $lat
* @param $lng
* @param $storeId
* @return bool
*/
public function checkLocationInServiceArea($lat,$lng,$storeId){
return self::checkAddressInServiceArea(array('lat'=>$lat,'lng'=>$lng),$storeId);
}
/**
* 类实例
*
*/
private static $_instance = null;
/**
* 单例模式获取类实例
*
*/
public static function getInstance()
{
if (!(self::$_instance instanceof self)) {
self::$_instance = new self();
}
return self::$_instance;
}
}
\ No newline at end of file
......@@ -623,7 +623,7 @@ class CartServiceModel extends \Business\AbstractModel{
}
$str = str_replace('\"','"',$store['store_sales_scope']);
$store_sales_scope = json_decode($str,true);
$result = \Our\CommonExtension::isPointInPolygon($store_sales_scope, array('lng'=>$address['lng'],'lat'=>$address['lat']));
$result = \Store\StoreUtil::getInstance()->checkAddressInServiceArea(array('lng'=>$address['lng'],'lat'=>$address['lat']),$storeId);
$storeDistance = \Our\CommonExtension::getDistance($address['lat'],$address['lng'],$store['store_latitude'],$store['store_longitude'],\Our\ApiConst::one);
if($result){
......
......@@ -32,7 +32,7 @@ class GoodsClassServiceModel extends \Business\AbstractModel{
$qmStoreClassCon['city_code'] = $cityCode;
$qmStoreClassCon['is_charged'] = \Our\ApiConst::one;
$qmStoreClassCon['class_style'] = \Our\ApiConst::signClassStyle;
$storeField = 'gc_id,longitude,latitude,sign_rang,gc_parent_id,store_id';
$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));
......@@ -159,18 +159,13 @@ class GoodsClassServiceModel extends \Business\AbstractModel{
$serviceStoreIds = array();
if($storeList){
foreach ($storeList as $key=>$store){
if($store['store_sales_scope']){
$str = str_replace('\"','"',$store['store_sales_scope']);
$store_sales_scope = json_decode($str,true);
$result = \Our\CommonExtension::isPointInPolygon($store_sales_scope, array('lng'=>$where['lng'],'lat'=>$where['lat']));
$result =\Store\StoreUtil::getInstance()->checkAddressInServiceArea(array('lng'=>$where['lng'],'lat'=>$where['lat']),$store['store_id']);
if($result){
$serviceStoreIds[] = $store['store_id'];
}
}
}
}
if($serviceStoreIds){
$position['lat'] = $where['lat'];
$position['lng'] = $where['lng'];
$position['cityCode'] = $where['cityCode'];
......@@ -188,18 +183,19 @@ class GoodsClassServiceModel extends \Business\AbstractModel{
$lng = $where['lng'];
$cityCode = $where['cityCode'];
$storeDao = \DAO\StoreModel::getInstance();
$signStoreClasses = $this->getSignClassesByCityCode($cityCode);
if($signStoreClasses){
$returnClass = array();
$newStoreIds = array();
foreach($signStoreClasses as $signClass){
$class_distance = \Our\CommonExtension::getDistance($lat,$lng,$signClass['latitude'],$signClass['longitude'],1);
$inAreaFlag = \Our\CommonExtension::locationInArea($lat,$lng,$signClass['sign_scope']);
//判断签约分类是否可以为当前用户提供服务,并且记录这些店铺对应的store_id
if($class_distance<=$signClass['sign_rang']){
if($inAreaFlag){
$store =$storeDao->get($signClass['store_id'],false);
$class_distance = \Our\CommonExtension::getDistance($lat,$lng,$store['store_latitude'],$signClass['store_latitude'],1);
$class = $signClass;
$class['class_distance'] = $class_distance;
$returnClass[$class_distance] = $class;
if(!($newStoreIds&&in_array($signClass['store_id'],$newStoreIds))){
$newStoreIds[] = $signClass['store_id'];
......@@ -341,7 +337,7 @@ class GoodsClassServiceModel extends \Business\AbstractModel{
}
public function getStoreTopCalssAdvsFromCache($data){
$adv = \Our\RedisHelper::cachedFunction(\Redis\Db9\GoodsClassImageRedisModel::getInstance(),array(&$this, 'getStoreTopClassAdvs'),array($data['storeId'],$data['gcId']),\Our\ApiConst::oneDaySecond);
$adv = \Our\RedisHelper::cachedFunction(\Redis\Db9\GoodsClassImageRedisModel::getInstance(),array(&$this, 'getStoreTopClassAdvs'),array($data['storeId'],$data['gcId']),\Our\ApiConst::oneDaySecond,array($data['gcId'].'_'.$data['storeId']));
return $adv;
}
......@@ -353,8 +349,14 @@ class GoodsClassServiceModel extends \Business\AbstractModel{
*/
public function deleteStoreTopClassAdvsFromCache($storeId,$gcId){
$goodsClassImageDao = \DAO\Adv\GoodsClassImageModel::getInstance();
\Our\RedisHelper::delCachedFunction(\Redis\Db9\GoodsClassImageRedisModel::getInstance(),array(&$this, 'getStoreTopClassAdvs'),array($storeId,$gcId));
\Our\RedisHelper::delCachedFunction(\Redis\Db9\GoodsClassImageRedisModel::getInstance(),array(&$goodsClassImageDao, 'find'),array(array('store_id'=>$storeId,'gc_id'=>$gcId)));
if($gcId&&$storeId){
\Our\RedisHelper::delCachedFunction(\Redis\Db9\GoodsClassImageRedisModel::getInstance(),array(&$this, 'getStoreTopClassAdvs'),array(),array($gcId.'_'.$storeId));
\Our\RedisHelper::delCachedFunction(\Redis\Db9\GoodsClassImageRedisModel::getInstance(),array(&$goodsClassImageDao, 'find'),array(),array($gcId.'_'.$storeId));
}else if($gcId){
\Our\RedisHelper::delCachedFunction(\Redis\Db9\GoodsClassImageRedisModel::getInstance(),array(&$this, 'getStoreTopClassAdvs'),array(),array($gcId));
\Our\RedisHelper::delCachedFunction(\Redis\Db9\GoodsClassImageRedisModel::getInstance(),array(&$goodsClassImageDao, 'find'),array(),array($gcId));
}
return true;
}
public function getStoreTopClassAdvs($storeId,$gcId){
......@@ -362,7 +364,7 @@ class GoodsClassServiceModel extends \Business\AbstractModel{
$adv['isSwiper'] = \Our\ApiConst::zero;
$adv['intervalTime'] = \Our\ApiConst::zero;
if(isset($goodsClassImage['gc_images_name'])&&$goodsClassImage['gc_images_name']){
$adv['intervalTime'] = \Our\ApiConst::zero;
$adv['intervalTime'] = \Our\ApiConst::defaultIntervalTime;
if($goodsClassImage['interval_time']&&$goodsClassImage['is_images']==1){
$adv['isSwiper'] = \Our\ApiConst::one;
$adv['intervalTime']=$goodsClassImage['interval_time'];
......
......@@ -24,7 +24,7 @@ class GoodsCommonServiceModel extends \Business\AbstractModel
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyCommonId);
}
$commonGoodsInstance = \DAO\GoodsCommonModel::getInstance();
$commonInfo = \Our\RedisHelper::cachedFunction(\Redis\Db4\GoodsCommonRedisModel::getInstance(),array(&$commonGoodsInstance, 'getOneById'),array($goodsCommonId),0,array($goodsCommonId));
$commonInfo = $commonGoodsInstance->getOneByIdCache($goodsCommonId);
$saleNum = $commonGoodsInstance->getGoodsSaleNumFromCache($goodsCommonId);
$commonInfo['sale_num'] = $saleNum;
if(!$commonInfo){
......@@ -365,7 +365,8 @@ class GoodsCommonServiceModel extends \Business\AbstractModel
if($image && is_array($image)){
$i = 0;
foreach ($image as $k=>$v){
$image[$k]['goods_image'] = \Our\ImageUtil::getGoodsImgUrl($v['goods_image'],\Our\ImageConst::SpecSelectGoodsImgSize);
//$image[$k]['goods_image'] = \Our\ImageUtil::getGoodsImgUrl($v['goods_image'],\Our\ImageConst::SpecSelectGoodsImgSize);
$image[$k]['goods_image'] = \Our\ImageUtil::getGoodsImgUrl($v['goods_image'],\Our\ImageConst::goodsDetailImgSize);
$attrImage[$v['attr_name']][$v['attr_value']][] = $image[$k]['goods_image'];
if($i < 5 && !$haveImg){
$images[] = \Our\ImageUtil::getGoodsImgUrl($v['goods_image'],\Our\ImageConst::goodsDetailImgSize);
......@@ -388,7 +389,7 @@ class GoodsCommonServiceModel extends \Business\AbstractModel
if(key_exists($v1,$attrImage[$k])){
$tempArr['images'][] = array('attrValue'=>$v1,'images'=>$attrImage[$k][$v1]);
}else{
$tempArr['images'][] = array('attrValue'=>$v1,'images'=>[]);
$tempArr['images'][] = array('attrValue'=>$v1,'images'=>$images);
}
}
$tempArr['isPrimeAttribute'] = 1;
......@@ -1060,7 +1061,7 @@ class GoodsCommonServiceModel extends \Business\AbstractModel
public function getRealPriceByGoodsCommonId($goodsCommon,$memberId = null,$activities = null){
if(!is_array($goodsCommon)){
$commonGoodsInstance = \DAO\GoodsCommonModel::getInstance();
$goodsCommon = \Our\RedisHelper::cachedFunction(\Redis\Db4\GoodsCommonRedisModel::getInstance(),array(&$commonGoodsInstance, 'getOneById'),array($goodsCommon),0,array($goodsCommon));
$goodsCommon = $commonGoodsInstance->getOneByIdCache($goodsCommon);
}
$storeId = $goodsCommon['store_id'];
//该用户是否有参加这个店铺销售活动
......
......@@ -143,10 +143,16 @@ class MessageServiceModel extends \Business\AbstractModel
}
if ($type == ApiConst::storeMessageType) {
$store = \DAO\StoreModel::getInstance();
$storeData = \Our\RedisHelper::cachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$store, 'getInfoById'), array($userid, $store->detailField), \Our\ApiConst::oneDaySecond);
$avatar = $storeData['storeLabel'];
// $storeData = \Our\RedisHelper::cachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$store, 'getInfoById'), array($userid, $store->detailField), \Our\ApiConst::oneDaySecond,array($userid));
$storeData=$store->getStoreInfoCache($userid);
$avatar = $storeData['store_label'];
if ($avatar) {
$avatar = \Our\Common::getStaticFile($avatar, \Our\ImageConst::storeLabel, 'ossHost');
} else {
$avatar = \Our\Common::getStaticFile(ImageConst::defaultStoreLabelName, ImageConst::defaultPath);
}
// $avatar = $store->getInfoById($userid, 'store_label', 'store_label');
$avatar = Common::getStaticFile($avatar, ImageConst::storeLabel, ImageConst::imageDomain);
// $avatar = $storeData[ApiConst::one];
}
if ($type == ApiConst::memberMessageType || $type == ApiConst::serviceMessageType) {
......
<?php
namespace Business\Store;
use Our\ApiConst;
/**
* 店铺service
......@@ -94,14 +95,8 @@ class StoreServiceModel extends \Business\AbstractModel{
$defaultDeliveryTime = 0;
if($distince>0){
if(!empty($storeInfo['store_sales_scope'])){
$str = str_replace('\"','"',$storeInfo['store_sales_scope']);
$store_sales_scope = json_decode($str,true);
if(is_array($store_sales_scope)&&count($store_sales_scope)>0){
//\Our\ValidationMap::setCoordArray($store_sales_scope);
$location = array('lat'=>$lat,'lng'=>$lng);
//$in_store_service_flag = \Our\ValidationMap::isCityCenter($location);
$in_store_service_flag = \Our\CommonExtension::isPointInPolygon($store_sales_scope,$location);
$in_store_service_flag = \Store\StoreUtil::getInstance()->checkAddressInServiceArea($location,$storeId);
if($in_store_service_flag){
$in_store_service_flag=1;
$DeliveryFormulaInstance = \DAO\DeliveryFormulaModel::getInstance();
......@@ -120,8 +115,6 @@ class StoreServiceModel extends \Business\AbstractModel{
$defaultDeliveryTime = 0;
}
}
}
}
//关注
$favType = 0;
if($memberId){
......@@ -153,10 +146,12 @@ class StoreServiceModel extends \Business\AbstractModel{
$storeDetailImg = unserialize($storeInfo['store_detail_image']);
if($storeDetailImg && is_array($storeDetailImg)){
foreach ($storeDetailImg as $v){
if($v) {
$detailImg[] = \DAO\StoreModel::getInstance()->getStoreLabelSrc($v, \Our\ImageConst::storeQualificationImg);
}
}
}
}
//地址
$address = '';
if($storeInfo['area_info']){
......@@ -546,6 +541,7 @@ class StoreServiceModel extends \Business\AbstractModel{
foreach($allStores as &$store){
$store['isPurchased'] = \Our\ApiConst::zero;
}
$memberStores = null;
if($memberId){
$favoritesStoreDao = \DAO\FavoritesStoreModel::getInstance();
......@@ -556,7 +552,6 @@ class StoreServiceModel extends \Business\AbstractModel{
}
}
$goodsClassDao = \DAO\GoodsClassModel::getInstance();
//获取当前分类对应所有店铺信息
......@@ -566,11 +561,11 @@ class StoreServiceModel extends \Business\AbstractModel{
//服务分类对应店铺
$serviceStores = $this->getServiceClassStores($gcId,$condition);
//获取签约分类对应店铺
$expressStores = $this->getExpressStores($gcId,$condition);
$goodsClassList = $goodsClassDao->getOnlineSecondClassList($gcId);
if($goodsClassList){
foreach($goodsClassList as $goodsClass){
$returnStores = array();
......@@ -680,6 +675,7 @@ class StoreServiceModel extends \Business\AbstractModel{
/*if($signStoreIds&&$serviceStoreIds){
$serviceStoreIds = array_diff($serviceStoreIds,$signStoreIds);
}*/
//签约店铺存在
if($serviceStoreIds){
$return = $this->getStoreClassesByStoreIds($serviceStoreIds,$gcId);
......@@ -689,6 +685,7 @@ class StoreServiceModel extends \Business\AbstractModel{
}
public function getExpressStores($gcId,$position){
ksort($position);
$storeDao = \DAO\StoreModel::getInstance();
/*$storeRedis = \Redis\Db6\StoreRedisModel::getInstance();
......@@ -723,13 +720,13 @@ class StoreServiceModel extends \Business\AbstractModel{
public function getSignStoreClassesByStoreIds($signStoreIds,$gcId,$position){
$signStoreClassSql = ' store_id in ('.implode(',',$signStoreIds).') and is_charged=1 and class_style = 2 and gc_parent_id ='.$gcId;
$qmStoreClassDao = \DAO\QmStoreClassModel::getInstance();
$signClassStores = $qmStoreClassDao->selectByWhere($signStoreClassSql,'store_id,gc_id,sign_rang,longitude,latitude');
$signClassStores = $qmStoreClassDao->selectByWhere($signStoreClassSql,'store_id,gc_id,sign_scope');
//$signClassStores = $storeGoodsClassDao->selectByWhere($signStoreClassSql,'store_id,gc_id');
if($signClassStores){
$return = array();
foreach($signClassStores as $signClass){
$storeDistance = \Our\CommonExtension::getDistance($position['lat'],$position['lng'],$signClass['latitude'],$signClass['longitude']);
if($storeDistance <= $signClass['sign_rang']){
$inAreaFlag = \Our\CommonExtension::locationInArea($position['lat'],$position['lng'],$signClass['sign_scope']);
if($inAreaFlag){
if($return[$signClass['gc_id']]){
continue;
}
......@@ -752,19 +749,18 @@ class StoreServiceModel extends \Business\AbstractModel{
shuffle($signClassStores);
$gcIds = array_unique(array_column($signClassStores,'gc_id'));
foreach($gcIds as $tempGcId){
if($return[$tempGcId]){
if(isset($return[$tempGcId])&&$return[$tempGcId]){
break;
}
foreach($signClassStores as $signClass){
if($tempGcId==$signClass['gc_id']){
if($return[$signClass['gc_id']]){
if(isset($return[$signClass['gc_id']])&&$return[$signClass['gc_id']]){
break;
}
$return[$signClass['gc_id']] = $signClass['store_id'];
}
}
}
return $return;
}
return false;
......@@ -897,18 +893,44 @@ class StoreServiceModel extends \Business\AbstractModel{
$storeDao->delNearbyStoresCache($cityCode);
$storeDao->delStoresCacheByCityCode($cityCode);
}
public function editQmStoreClass(){
$qmStoreClassDao = \DAO\QmStoreClassModel::getInstance();
$qmStoreClassList = $qmStoreClassDao->selectByWhere(array('sign_rang'=>array('gt',0)));
if($qmStoreClassList){
foreach($qmStoreClassList as $qmObj){
$qmStoreClassStr = '[';
$qmStoreClassStr .= '{"lng":'.($qmObj['longitude']+0.001).',"lat":'.($qmObj['latitude']-0.001).'},{"lng":'.($qmObj['longitude']+0.001).',"lat":'.($qmObj['latitude']+0.001).'},{"lng":'.($qmObj['longitude']-0.001).',"lat":'.($qmObj['latitude']+0.001).'},{"lng":'.($qmObj['longitude']-0.001).',"lat":'.($qmObj['latitude']-0.001).'}';
$qmStoreClassStr .= ']';
$result = $qmStoreClassDao->update(array('sign_scope'=>$qmStoreClassStr),array('id'=>$qmObj['id']));
}
}
}
public function growStores(){
$storeDao=\DAO\StoreModel::getInstance();
$memberDao = \DAO\MemberModel::getInstance();
$res =$storeDao->getAll();
for($i=0;$i<1000000;$i++){
$drawTableDao=\DAO\Draw\DrawTableModel::getInstance();
$drawTableDatas=$drawTableDao->getAll();
for($i=0;$i<100000;$i++){
$memberId=50000+$i;
$re=array_rand($res);
$reDraw=array_rand($drawTableDatas);
$temDrawData=$drawTableDatas[$reDraw];
if(!empty($res[$re])){
$data=$res[$re];
$data['member_id']=$memberId;
$data['member_mobile']=(int)$data['member_mobile']+$i;
$data['store_id']=$memberId;
$memberDao->addInfo($data);
$data['store_name']=$temDrawData['storeName'];
$data['member_id']=$memberId;
$data['store_description']=$temDrawData['storeAddress'].$temDrawData['storeName'];
$data['store_address']=$temDrawData['storeAddress'];
$data['store_zip']=$temDrawData['storeTelephone'];
$data['store_state']=ApiConst::one;
$data['live_store_name']=$temDrawData['storeName'];
$data['live_store_address']=$temDrawData['storeAddress'];
$data['store_longitude']=$temDrawData['positionX']/100000;
$data['store_latitude']=$temDrawData['positionY']/100000;
$storeDao->add($data);
echo '增加数据'.$i.'条member_id 是:'.$memberId."\n";
}
}
......@@ -929,4 +951,6 @@ class StoreServiceModel extends \Business\AbstractModel{
return self::$_instance;
}
}
......@@ -78,10 +78,15 @@ class MemberServiceModel extends \Business\AbstractModel
return true;
}
private function getRealPassword($password,$timeSpan){
$addKey=Common::getConfig('password.key');
$md5Str=$timeSpan.$addKey.$password;
return $md5Str;
}
public function getOneByMobileAndPassword($mobile, $password)
{
$password = md5($password);
// $password=$this->getPassAddKey($password);
// $password = Common::format('md5({0})');
$member= $this->memberDao->getOneByMobileAndPassword($mobile, $password);
return $member ? $member : false;
}
......@@ -269,12 +274,18 @@ class MemberServiceModel extends \Business\AbstractModel
*/
private function saveRegisterMemberInfo($where){
$memberDao = \DAO\MemberModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$addKey=Common::getConfig('password.key');
if(!empty($addKey)){
$md5Str=TIMESTAMP.$addKey.$where['password'];
}else{
$md5Str=$where['password'];
}
//构造需要保存的会员信息
$member['member_name'] = \Our\CommonExtension::createNewMemberName();
$member['member_mobile'] = $where['mobile'];
$member['member_mobile_bind'] = \Our\ApiConst::one;
$member['member_passwd'] = md5($where['password']);
$member['member_passwd'] = md5($md5Str);
$member['member_time'] = TIMESTAMP;
$result = $memberDao->addInfo($member);
return $result;
......@@ -947,8 +958,8 @@ class MemberServiceModel extends \Business\AbstractModel
public function growMembers(){
$memberDao=\DAO\MemberModel::getInstance();
$res =$memberDao->getAll();
for($i=0;$i<367000;$i++){
$memberId=632723+$i;
for($i=0;$i<1000000;$i++){
$memberId=50000+$i;
$re=array_rand($res);
if(!empty($res[$re])){
$data=$res[$re];
......
......@@ -38,7 +38,7 @@ class GoodsClassImageModel extends \DAO\AbstractModel{
}
$where['store_id'] = $storeId;
$where['gc_id'] = $gcId;
$goodsClassImage = \Our\RedisHelper::cachedFunction(\Redis\Db9\GoodsClassImageRedisModel::getInstance(),array(&$this, 'find'),array($where),\Our\ApiConst::oneHour);
$goodsClassImage = \Our\RedisHelper::cachedFunction(\Redis\Db9\GoodsClassImageRedisModel::getInstance(),array(&$this, 'find'),array($where),\Our\ApiConst::oneHour,array($gcId.'_'.$storeId));
return $goodsClassImage;
}
......
......@@ -18,7 +18,7 @@ use Our\OrderConst;
* @date 2018-5-14
* @author csw
*/
class OrderModel extends \DAO\AbstractModel
class DrawGoodsModel extends \DAO\AbstractModel
{
......
<?php
namespace DAO\Order;
namespace DAO\Draw;
use Error\CodeConfigModel;
use Error\ErrorModel;
......@@ -18,7 +18,7 @@ use Our\OrderConst;
* @date 2018-5-14
* @author csw
*/
class OrderModel extends \DAO\AbstractModel
class DrawTableModel extends \DAO\AbstractModel
{
......@@ -27,8 +27,7 @@ class OrderModel extends \DAO\AbstractModel
*
* @var string
*/
protected $_tableName = 'han_order';
protected $_tableName = 'drawTable';
private $countField = '(sum(order_amount)) as orderTotal,count(*) as orderCount';
/**
* 主键
......@@ -1062,6 +1061,7 @@ class OrderModel extends \DAO\AbstractModel
return \Redis\Db5\OrderRedisModel::getInstance()->tableCacheGet(\Our\NameConst::cancelUnReceivedOrderTimePrefix);
}
/**
* 类实例
*
......@@ -1083,4 +1083,21 @@ class OrderModel extends \DAO\AbstractModel
return self::$_instance;
}
public function getAll($where=array()){
$this->setDb(DbNameConst::drawSource);
if($where){
$where=$this->db->getSqlWhereByArray($where);
}
if($where){
$res=$this->db->from($this->_tableName)->where($where)->fetchAll();
}else{
$res=$this->db->from($this->_tableName)->fetchAll();
}
$resArray=array();
foreach($res as $val){
$resArray[$val['id']]=$val;
}
return $resArray;
}
}
......@@ -29,7 +29,10 @@ class GoodsCommonModel extends \DAO\AbstractModel {
$this->setDb($this->dbName);
return $this->db->select($field)->from($this->_tableName)->where(array('goods_commonid'=>$goodsCommonId))->fetchOne();
}
public function getOneByIdCache($goodsCommonId) {
$commonInfo = \Our\RedisHelper::cachedFunction(\Redis\Db4\GoodsCommonRedisModel::getInstance(),array(&$this, 'getOneById'),array($goodsCommonId),0,array($goodsCommonId));
return $commonInfo;
}
public function getOne($where,$field = \Our\NameConst::allField){
$this->setDb($this->dbName);
if(is_array($where)){
......
......@@ -4,6 +4,7 @@ namespace DAO;
use Error\CodeConfigModel;
use Error\ErrorModel;
use Our\Common;
use Our\ImageConst;
use Our\NameConst;
use Our\ApiConst;
......@@ -68,7 +69,15 @@ class MemberModel extends \DAO\AbstractModel
{
$this->setDb(\Our\DbNameConst::masterDBConnectName);
$where[NameConst::memberMobile] = $mobile;
$where[NameConst::memberPasswd] = $password;
$addKey=Common::getConfig('password.key');
if(!empty($addKey)){
$where='';
$where=Common::format("(member_mobile = '{0}') AND (member_passwd = MD5(CONCAT(member_time,'{1}','{2}')))",$mobile,$password,$addKey);
// $where[NameConst::memberPasswd] = Common::format("MD5(CONCAT(member_time,member_passwd,'{0}'))",$addKey);
}else{
$where[NameConst::memberPasswd]=md5($password);
}
$result = $this->db->select($this->availMemberColumn)->from($this->_tableName)->where($where)->fetchOne();
if ($result) {
$memberAvatarUrl = $this->getMemberAvatarUrl($result['member_id'], $result['member_avatar']);
......
......@@ -28,6 +28,9 @@ class QmStoreClassModel extends \DAO\AbstractModel{
public function selectByWhere($where = null,$field = '*',$limit=false){
$this->setDb();
if(is_array($where)){
$where = $this->db->getSqlWhereByArray($where);
}
if($limit){
$result = $this->db->select($field)->from($this->_tableName)->where($where)->limit($limit[0],$limit[1])->fetchAll();
}else{
......@@ -36,6 +39,11 @@ class QmStoreClassModel extends \DAO\AbstractModel{
return $result;
}
public function delSignScopeCache($storeId){
$result = \Our\RedisHelper::delCachedFunction(\Redis\Db6\QmStoreClassRedisModel::getInstance(),array(&$this, 'selectByWhere'),array(),array($storeId));
return $result;
}
/**
* 一级分类对应有效的店铺
......@@ -100,4 +108,11 @@ class QmStoreClassModel extends \DAO\AbstractModel{
\Our\RedisHelper::delCachedFunction(\Redis\Db6\QmStoreClassRedisModel::getInstance(), array(&$this, 'getStoreClasses'),array(),array($cityCode));
}
public function update($data,$where){
$this->setDb(\Our\DbNameConst::masterDBConnectName);
$result=$this->db->update($this->_tableName)->rows($data)->where($where)->execute();
return $result;
}
}
\ No newline at end of file
File mode changed from 100755 to 100644
......@@ -334,9 +334,7 @@ class StoreModel extends \DAO\AbstractModel
return $inAreaFlag;
}
if($store['seller_distribution']&&$address){
$str = str_replace('\"','"',$store['store_sales_scope']);
$store_sales_scope = json_decode($str,true);
$result = \Our\CommonExtension::isPointInPolygon($store_sales_scope, array('lng'=>$address['lng'],'lat'=>$address['lat']));
$result = \Store\StoreUtil::getInstance()->checkAddressInServiceArea(array('lng'=>$address['lng'],'lat'=>$address['lat']),$store['store_id']);
if($result){
$inAreaFlag = \Our\ApiConst::one;
}
......@@ -345,6 +343,7 @@ class StoreModel extends \DAO\AbstractModel
}
/**
* 类实例
*
......@@ -453,10 +452,19 @@ class StoreModel extends \DAO\AbstractModel
}
$resArray=array();
foreach($res as $val){
$resArray[$val['member_id']]=$val;
$resArray[$val['store_id']]=$val;
}
return $resArray;
}
/**
* 保存用户信息
*/
public function add($data)
{
$this->setDb(\Our\DbNameConst::masterDBConnectName);
$result = $this->db->insert($this->_tableName)->rows($data)->execute();
return $result;
}
}
......@@ -33,7 +33,7 @@ resources.database.slave.params.password = "!@#$%12345werty"
resources.database.slave.params.charset = "UTF8"
resources.database.slave.params.driver_options.1002 = "SET NAMES utf8"
;
password.key='~!@#$`1234qwertasdfgzxcvb';
redis.database.params.host = "172.16.142.15"
redis.database.params.port = "6379"
redis.database.params.prefix = "qm_"
......@@ -80,6 +80,7 @@ resources.database.slave.params.password = "!@#$%12345werty"
resources.database.slave.params.charset = "UTF8"
resources.database.slave.params.driver_options.1002 = "SET NAMES utf8"
password.key='~!@#$`1234qwertasdfgzxcvb';
redis.database.params.host = "127.0.0.1"
redis.database.params.port = "6379"
redis.database.params.prefix = "qm_"
......@@ -116,6 +117,7 @@ resources.database.params.password = "!@#$%12345werty"
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"
......@@ -126,12 +128,24 @@ resources.database.slave.params.password = "!@#$%12345werty"
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.port = 3306
resources.database.drawSource.params.database = "drawSource"
resources.database.drawSource.params.username = "root"
resources.database.drawSource.params.password = "!@#$%12345werty"
resources.database.drawSource.params.charset = "UTF8"
resources.database.drawSource.params.driver_options.1002 = "SET NAMES utf8"
redis.database.params.host = "127.0.0.1"
redis.database.params.port = "6379"
redis.database.params.prefix = "qm_"
redis.database.params.password = "23456ertyu"
out.config="/data/config"
password.key='~!@#$`1234qwertasdfgzxcvb';
; 锁文件
out.locks="/data/locks";
; redis配置
......@@ -247,6 +261,18 @@ 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 = "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 = "123456"
resources.database.drawSource.params.charset = "UTF8"
resources.database.drawSource.params.driver_options.1002 = "SET NAMES utf8"
password.key='~!@#$`1234qwertasdfgzxcvb';
redis.database.params.host = "127.0.0.1"
redis.database.params.port = "6379"
redis.database.params.prefix = "qm_"
......@@ -318,7 +344,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"
......@@ -363,7 +389,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"
......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>获得已发送消息的用户列表和(系统消息,订单消息,快递用户消息最后一条消息)</title>
<style>
</style>
</head>
<body>
<form action="/message/get" method="post">
用户登录状态key:<input name="data[key]" value="fd4b739c4815297044191451eabf0eb5"/><br />
<input type="submit" value="提交">
</form>
</body>
</html>
\ No newline at end of file
<?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 cliGrow 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);
}
}
public function growGoods(){
$goodsDao=\DAO\StoreModel::getInstance();
$res =$goodsDao->getAll();
$drawTableDao=\DAO\Draw\DrawTableModel::getInstance();
$drawTableDatas=$drawTableDao->getAll();
for($i=0;$i<100000;$i++){
$memberId=50000+$i;
$re=array_rand($res);
$reDraw=array_rand($drawTableDatas);
$temDrawData=$drawTableDatas[$reDraw];
if(!empty($res[$re])){
$data=$res[$re];
$data['store_id']=$memberId;
$data['store_name']=$temDrawData['storeName'];
$data['member_id']=$memberId;
$data['store_description']=$temDrawData['storeAddress'].$temDrawData['storeName'];
$data['store_address']=$temDrawData['storeAddress'];
$data['store_zip']=$temDrawData['storeTelephone'];
$data['store_state']=ApiConst::one;
$data['live_store_name']=$temDrawData['storeName'];
$data['live_store_address']=$temDrawData['storeAddress'];
$data['store_longitude']=$temDrawData['positionX']/100000;
$data['store_latitude']=$temDrawData['positionY']/100000;
$storeDao->add($data);
echo '增加数据'.$i.'条member_id 是:'.$memberId."\n";
}
}
}
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 . 'growGoods.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 cliGrow(TRUE);
EXIT;
?>
......@@ -70,7 +70,7 @@ class cliGrowStore extends basecli
file_put_contents($this->lockFileName, "running"); // CLI 独占锁
$storeService=\Business\Store\StoreServiceModel::getInstance();
try {
$storeService->growMembers();
$storeService->growStores();
// $goodsCommonStrorageDao->createTestData();
......
<?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;
?>
Send POST https://api.jpush.cn/v3/push, body:{"platform":"all","audience":{"alias":["1"]},"notification":{"alert":"\u8eab\u8fb9\u5e97","android":{"title":"\u8eab\u8fb9\u5e97","extras":{"0":"title","toId":1},"alert":"abc"},"ios":{"alert":"abc","sound":"sound.caf","category":"shenbd","extras":{"0":"title","toId":1},"badge":"+1"}},"message":{"msg_content":"abc","title":"\u8eab\u8fb9\u5e97","extras":{"0":"title","toId":1}},"options":{"sendno":236788625,"apns_production":false}}, times:1
Send POST https://api.jpush.cn/v3/push, body:{"platform":"all","audience":{"alias":["1"]},"notification":{"alert":"\u8eab\u8fb9\u5e97","android":{"title":"\u8eab\u8fb9\u5e97","extras":{"0":"title","toId":1},"alert":"abc"},"ios":{"alert":"abc","sound":"sound.caf","category":"shenbd","extras":{"0":"title","toId":1},"badge":"+1"}},"message":{"msg_content":"abc","title":"\u8eab\u8fb9\u5e97","extras":{"0":"title","toId":1}},"options":{"sendno":382034567,"apns_production":false}}, times:1
Send POST https://api.jpush.cn/v3/push, body:{"platform":"all","audience":"all","notification":{"alert":"Hi, JPush"},"options":{"sendno":1680311553,"apns_production":false}}, times:1
Send POST https://api.jpush.cn/v3/push, body:{"platform":"all","audience":{"alias":["1"]},"notification":{"alert":"\u8eab\u8fb9\u5e97","android":{"title":"\u8eab\u8fb9\u5e97","extras":{"0":"title","toId":1},"alert":"abc"},"ios":{"alert":"abc","sound":"sound.caf","category":"shenbd","extras":{"0":"title","toId":1},"badge":"+1"}},"message":{"msg_content":"abc","title":"\u8eab\u8fb9\u5e97","extras":{"0":"title","toId":1}},"options":{"sendno":1109680262,"apns_production":false}}, times:1
Send POST https://api.jpush.cn/v3/push, body:{"platform":"all","audience":{"alias":["1"]},"notification":{"alert":"\u8eab\u8fb9\u5e97","android":{"title":"\u8eab\u8fb9\u5e97","extras":{"0":"title","toId":1},"alert":"abc"},"ios":{"alert":"abc","sound":"sound.caf","category":"shenbd","extras":{"0":"title","toId":1},"badge":"+1"}},"message":{"msg_content":"abc","title":"\u8eab\u8fb9\u5e97","extras":{"0":"title","toId":1}},"options":{"sendno":1099668719,"apns_production":false}}, times:1
Send POST https://api.jpush.cn/v3/push, body:{"platform":"all","audience":{"alias":["267"]},"notification":{"alert":"\u8eab\u8fb9\u5e97","android":{"title":"\u8eab\u8fb9\u5e97","extras":{"0":"title","toId":267},"alert":"abc"},"ios":{"alert":"abc","sound":"sound.caf","category":"shenbd","extras":{"0":"title","toId":267},"badge":"+1"}},"message":{"msg_content":"abc","title":"\u8eab\u8fb9\u5e97","extras":{"0":"title","toId":267}},"options":{"sendno":638788177,"apns_production":false}}, times:1
Send POST https://api.jpush.cn/v3/push, body:{"platform":"all","audience":{"alias":["267"]},"notification":{"alert":"\u8eab\u8fb9\u5e97","android":{"title":"\u8eab\u8fb9\u5e97","extras":{"0":"title","toId":267},"alert":"abc"},"ios":{"alert":"abc","sound":"sound.caf","category":"shenbd","extras":{"0":"title","toId":267},"badge":"+1"}},"message":{"msg_content":"abc","title":"\u8eab\u8fb9\u5e97","extras":{"0":"title","toId":267}},"options":{"sendno":420723928,"apns_production":false}}, times:1
Send POST https://api.jpush.cn/v3/push, body:{"platform":"all","audience":{"alias":["267"]},"notification":{"alert":"\u8eab\u8fb9\u5e97","android":{"title":"\u8eab\u8fb9\u5e97","extras":{"0":"title","toId":267},"alert":"abc"},"ios":{"alert":"abc","sound":"sound.caf","category":"shenbd","extras":{"0":"title","toId":267},"badge":"+1"}},"message":{"msg_content":"abc","title":"\u8eab\u8fb9\u5e97","extras":{"0":"title","toId":267}},"options":{"sendno":1992362129,"apns_production":false}}, times:1
Send POST https://api.jpush.cn/v3/push, body:{"platform":"all","audience":{"alias":["267"]},"notification":{"alert":"\u8eab\u8fb9\u5e97","android":{"title":"\u8eab\u8fb9\u5e97","extras":{"0":"title","toId":267},"alert":"abc"},"ios":{"alert":"abc","sound":"sound.caf","category":"shenbd","extras":{"0":"title","toId":267},"badge":"+1"}},"message":{"msg_content":"abc","title":"\u8eab\u8fb9\u5e97","extras":{"0":"title","toId":267}},"options":{"sendno":1915741346,"apns_production":false}}, times:1
Send POST https://api.jpush.cn/v3/push, body:{"platform":"all","audience":{"alias":["267"]},"notification":{"alert":"\u8eab\u8fb9\u5e97","android":{"title":"\u8eab\u8fb9\u5e97","extras":{"0":"title","toId":267},"alert":"abc"},"ios":{"alert":"abc","sound":"sound.caf","category":"shenbd","extras":{"0":"title","toId":267},"badge":"+1"}},"message":{"msg_content":"abc","title":"\u8eab\u8fb9\u5e97","extras":{"0":"title","toId":267}},"options":{"sendno":1523062145,"apns_production":false}}, times:1
Send POST https://api.jpush.cn/v3/push, body:{"platform":"all","audience":{"alias":["267"]},"notification":{"alert":"\u8eab\u8fb9\u5e97","android":{"title":"\u8eab\u8fb9\u5e97","extras":{"0":"title","toId":267},"alert":"abc"},"ios":{"alert":"abc","sound":"sound.caf","category":"shenbd","extras":{"0":"title","toId":267},"badge":"+1"}},"message":{"msg_content":"abc","title":"\u8eab\u8fb9\u5e97","extras":{"0":"title","toId":267}},"options":{"sendno":1084857911,"apns_production":false}}, times:1
......@@ -60,7 +60,7 @@ class cliOrderClose extends basecli
// else{
// if(!empty($res['timeDiff'])){
// $timeArr=explode('-',$res['timeDiff']);
// if(!empty($timeArr)){
// if(!empty($timeArr)){v
// if(\Our\Common::isCurentTimeInSection($timeArr[0],$timeArr[1])){
// continue;
// }
......
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