Commit 40ac2792 authored by liuyuzhen's avatar liuyuzhen

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

parents bfd7783e 303985b9
...@@ -123,7 +123,7 @@ class IndexController extends \Our\Controller_Abstract { ...@@ -123,7 +123,7 @@ class IndexController extends \Our\Controller_Abstract {
$goodsCommonId=(int)$this->getRequest()->getQuery()['goodsCommonId']; $goodsCommonId=(int)$this->getRequest()->getQuery()['goodsCommonId'];
if($goodsCommonId > 0) { if($goodsCommonId > 0) {
$commonGoodsInstance = \DAO\GoodsCommonModel::getInstance(); $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); $this->_view->assign('commonInfo',$commonInfo);
} }
......
...@@ -34,8 +34,9 @@ class MessageController extends \Our\Controller_AbstractApi { ...@@ -34,8 +34,9 @@ class MessageController extends \Our\Controller_AbstractApi {
}else{ }else{
$returnMessage=$this->messageService->getList($this->memberId,$pageIndex,$pageSize); $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)); // $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']; $returnMessage['users']=$returnMessage['list'];
unset($returnMessage['list']);
}else{ }else{
$returnMessage['users']=[]; $returnMessage['users']=[];
$returnMessage['totalCount']=0; $returnMessage['totalCount']=0;
......
...@@ -10,5 +10,6 @@ class DbNameConst { ...@@ -10,5 +10,6 @@ class DbNameConst {
const salveDBConnectName = 'resources.database.slave.params'; const salveDBConnectName = 'resources.database.slave.params';
const masterDBConnectName = 'resources.database.params'; const masterDBConnectName = 'resources.database.params';
const drawSource = 'resources.database.drawSource.params';
} }
\ No newline at end of file
...@@ -24,7 +24,7 @@ class GoodsCommonServiceModel extends \Business\AbstractModel ...@@ -24,7 +24,7 @@ class GoodsCommonServiceModel extends \Business\AbstractModel
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyCommonId); \Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyCommonId);
} }
$commonGoodsInstance = \DAO\GoodsCommonModel::getInstance(); $commonGoodsInstance = \DAO\GoodsCommonModel::getInstance();
$commonInfo = \Our\RedisHelper::cachedFunction(\Redis\Db4\GoodsCommonRedisModel::getInstance(),array(&$commonGoodsInstance, 'getOneById'),array($goodsCommonId),0,array($goodsCommonId)); $commonInfo = $this->getOneByIdCache($goodsCommonId);
$saleNum = $commonGoodsInstance->getGoodsSaleNumFromCache($goodsCommonId); $saleNum = $commonGoodsInstance->getGoodsSaleNumFromCache($goodsCommonId);
$commonInfo['sale_num'] = $saleNum; $commonInfo['sale_num'] = $saleNum;
if(!$commonInfo){ if(!$commonInfo){
...@@ -365,7 +365,8 @@ class GoodsCommonServiceModel extends \Business\AbstractModel ...@@ -365,7 +365,8 @@ class GoodsCommonServiceModel extends \Business\AbstractModel
if($image && is_array($image)){ if($image && is_array($image)){
$i = 0; $i = 0;
foreach ($image as $k=>$v){ 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']; $attrImage[$v['attr_name']][$v['attr_value']][] = $image[$k]['goods_image'];
if($i < 5 && !$haveImg){ if($i < 5 && !$haveImg){
$images[] = \Our\ImageUtil::getGoodsImgUrl($v['goods_image'],\Our\ImageConst::goodsDetailImgSize); $images[] = \Our\ImageUtil::getGoodsImgUrl($v['goods_image'],\Our\ImageConst::goodsDetailImgSize);
...@@ -388,7 +389,7 @@ class GoodsCommonServiceModel extends \Business\AbstractModel ...@@ -388,7 +389,7 @@ class GoodsCommonServiceModel extends \Business\AbstractModel
if(key_exists($v1,$attrImage[$k])){ if(key_exists($v1,$attrImage[$k])){
$tempArr['images'][] = array('attrValue'=>$v1,'images'=>$attrImage[$k][$v1]); $tempArr['images'][] = array('attrValue'=>$v1,'images'=>$attrImage[$k][$v1]);
}else{ }else{
$tempArr['images'][] = array('attrValue'=>$v1,'images'=>[]); $tempArr['images'][] = array('attrValue'=>$v1,'images'=>$images);
} }
} }
$tempArr['isPrimeAttribute'] = 1; $tempArr['isPrimeAttribute'] = 1;
...@@ -1060,7 +1061,7 @@ class GoodsCommonServiceModel extends \Business\AbstractModel ...@@ -1060,7 +1061,7 @@ class GoodsCommonServiceModel extends \Business\AbstractModel
public function getRealPriceByGoodsCommonId($goodsCommon,$memberId = null,$activities = null){ public function getRealPriceByGoodsCommonId($goodsCommon,$memberId = null,$activities = null){
if(!is_array($goodsCommon)){ if(!is_array($goodsCommon)){
$commonGoodsInstance = \DAO\GoodsCommonModel::getInstance(); $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']; $storeId = $goodsCommon['store_id'];
//该用户是否有参加这个店铺销售活动 //该用户是否有参加这个店铺销售活动
......
...@@ -143,10 +143,16 @@ class MessageServiceModel extends \Business\AbstractModel ...@@ -143,10 +143,16 @@ class MessageServiceModel extends \Business\AbstractModel
} }
if ($type == ApiConst::storeMessageType) { if ($type == ApiConst::storeMessageType) {
$store = \DAO\StoreModel::getInstance(); $store = \DAO\StoreModel::getInstance();
$storeData = \Our\RedisHelper::cachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$store, 'getInfoById'), array($userid, $store->detailField), \Our\ApiConst::oneDaySecond); // $storeData = \Our\RedisHelper::cachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$store, 'getInfoById'), array($userid, $store->detailField), \Our\ApiConst::oneDaySecond,array($userid));
$avatar = $storeData['storeLabel']; $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 = $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) { if ($type == ApiConst::memberMessageType || $type == ApiConst::serviceMessageType) {
......
<?php <?php
namespace Business\Store; namespace Business\Store;
use Our\ApiConst;
/** /**
* 店铺service * 店铺service
...@@ -145,7 +146,9 @@ class StoreServiceModel extends \Business\AbstractModel{ ...@@ -145,7 +146,9 @@ class StoreServiceModel extends \Business\AbstractModel{
$storeDetailImg = unserialize($storeInfo['store_detail_image']); $storeDetailImg = unserialize($storeInfo['store_detail_image']);
if($storeDetailImg && is_array($storeDetailImg)){ if($storeDetailImg && is_array($storeDetailImg)){
foreach ($storeDetailImg as $v){ foreach ($storeDetailImg as $v){
$detailImg[] = \DAO\StoreModel::getInstance()->getStoreLabelSrc($v, \Our\ImageConst::storeQualificationImg); if($v) {
$detailImg[] = \DAO\StoreModel::getInstance()->getStoreLabelSrc($v, \Our\ImageConst::storeQualificationImg);
}
} }
} }
} }
...@@ -907,15 +910,27 @@ class StoreServiceModel extends \Business\AbstractModel{ ...@@ -907,15 +910,27 @@ class StoreServiceModel extends \Business\AbstractModel{
$storeDao=\DAO\StoreModel::getInstance(); $storeDao=\DAO\StoreModel::getInstance();
$memberDao = \DAO\MemberModel::getInstance(); $memberDao = \DAO\MemberModel::getInstance();
$res =$storeDao->getAll(); $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; $memberId=50000+$i;
$re=array_rand($res); $re=array_rand($res);
$reDraw=array_rand($drawTableDatas);
$temDrawData=$drawTableDatas[$reDraw];
if(!empty($res[$re])){ if(!empty($res[$re])){
$data=$res[$re]; $data=$res[$re];
$data['member_id']=$memberId;
$data['member_mobile']=(int)$data['member_mobile']+$i;
$data['store_id']=$memberId; $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"; echo '增加数据'.$i.'条member_id 是:'.$memberId."\n";
} }
} }
...@@ -936,4 +951,6 @@ class StoreServiceModel extends \Business\AbstractModel{ ...@@ -936,4 +951,6 @@ class StoreServiceModel extends \Business\AbstractModel{
return self::$_instance; return self::$_instance;
} }
} }
...@@ -78,10 +78,15 @@ class MemberServiceModel extends \Business\AbstractModel ...@@ -78,10 +78,15 @@ class MemberServiceModel extends \Business\AbstractModel
return true; return true;
} }
private function getRealPassword($password,$timeSpan){
$addKey=Common::getConfig('password.key');
$md5Str=$timeSpan.$addKey.$password;
return $md5Str;
}
public function getOneByMobileAndPassword($mobile, $password) public function getOneByMobileAndPassword($mobile, $password)
{ {
$password = md5($password); // $password=$this->getPassAddKey($password);
// $password = Common::format('md5({0})');
$member= $this->memberDao->getOneByMobileAndPassword($mobile, $password); $member= $this->memberDao->getOneByMobileAndPassword($mobile, $password);
return $member ? $member : false; return $member ? $member : false;
} }
...@@ -269,12 +274,18 @@ class MemberServiceModel extends \Business\AbstractModel ...@@ -269,12 +274,18 @@ class MemberServiceModel extends \Business\AbstractModel
*/ */
private function saveRegisterMemberInfo($where){ private function saveRegisterMemberInfo($where){
$memberDao = \DAO\MemberModel::getInstance(\Our\DbNameConst::masterDBConnectName); $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_name'] = \Our\CommonExtension::createNewMemberName();
$member['member_mobile'] = $where['mobile']; $member['member_mobile'] = $where['mobile'];
$member['member_mobile_bind'] = \Our\ApiConst::one; $member['member_mobile_bind'] = \Our\ApiConst::one;
$member['member_passwd'] = md5($where['password']); $member['member_passwd'] = md5($md5Str);
$member['member_time'] = TIMESTAMP; $member['member_time'] = TIMESTAMP;
$result = $memberDao->addInfo($member); $result = $memberDao->addInfo($member);
return $result; return $result;
......
...@@ -18,7 +18,7 @@ use Our\OrderConst; ...@@ -18,7 +18,7 @@ use Our\OrderConst;
* @date 2018-5-14 * @date 2018-5-14
* @author csw * @author csw
*/ */
class OrderModel extends \DAO\AbstractModel class DrawGoodsModel extends \DAO\AbstractModel
{ {
......
<?php <?php
namespace DAO\Order; namespace DAO\Draw;
use Error\CodeConfigModel; use Error\CodeConfigModel;
use Error\ErrorModel; use Error\ErrorModel;
...@@ -18,7 +18,7 @@ use Our\OrderConst; ...@@ -18,7 +18,7 @@ use Our\OrderConst;
* @date 2018-5-14 * @date 2018-5-14
* @author csw * @author csw
*/ */
class OrderModel extends \DAO\AbstractModel class DrawTableModel extends \DAO\AbstractModel
{ {
...@@ -27,8 +27,7 @@ class OrderModel extends \DAO\AbstractModel ...@@ -27,8 +27,7 @@ class OrderModel extends \DAO\AbstractModel
* *
* @var string * @var string
*/ */
protected $_tableName = 'han_order'; protected $_tableName = 'drawTable';
private $countField = '(sum(order_amount)) as orderTotal,count(*) as orderCount'; private $countField = '(sum(order_amount)) as orderTotal,count(*) as orderCount';
/** /**
* 主键 * 主键
...@@ -1062,6 +1061,7 @@ class OrderModel extends \DAO\AbstractModel ...@@ -1062,6 +1061,7 @@ class OrderModel extends \DAO\AbstractModel
return \Redis\Db5\OrderRedisModel::getInstance()->tableCacheGet(\Our\NameConst::cancelUnReceivedOrderTimePrefix); return \Redis\Db5\OrderRedisModel::getInstance()->tableCacheGet(\Our\NameConst::cancelUnReceivedOrderTimePrefix);
} }
/** /**
* 类实例 * 类实例
* *
...@@ -1083,4 +1083,21 @@ class OrderModel extends \DAO\AbstractModel ...@@ -1083,4 +1083,21 @@ class OrderModel extends \DAO\AbstractModel
return self::$_instance; 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 { ...@@ -29,7 +29,10 @@ class GoodsCommonModel extends \DAO\AbstractModel {
$this->setDb($this->dbName); $this->setDb($this->dbName);
return $this->db->select($field)->from($this->_tableName)->where(array('goods_commonid'=>$goodsCommonId))->fetchOne(); 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){ public function getOne($where,$field = \Our\NameConst::allField){
$this->setDb($this->dbName); $this->setDb($this->dbName);
if(is_array($where)){ if(is_array($where)){
......
...@@ -4,6 +4,7 @@ namespace DAO; ...@@ -4,6 +4,7 @@ namespace DAO;
use Error\CodeConfigModel; use Error\CodeConfigModel;
use Error\ErrorModel; use Error\ErrorModel;
use Our\Common;
use Our\ImageConst; use Our\ImageConst;
use Our\NameConst; use Our\NameConst;
use Our\ApiConst; use Our\ApiConst;
...@@ -68,7 +69,15 @@ class MemberModel extends \DAO\AbstractModel ...@@ -68,7 +69,15 @@ class MemberModel extends \DAO\AbstractModel
{ {
$this->setDb(\Our\DbNameConst::masterDBConnectName); $this->setDb(\Our\DbNameConst::masterDBConnectName);
$where[NameConst::memberMobile] = $mobile; $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(); $result = $this->db->select($this->availMemberColumn)->from($this->_tableName)->where($where)->fetchOne();
if ($result) { if ($result) {
$memberAvatarUrl = $this->getMemberAvatarUrl($result['member_id'], $result['member_avatar']); $memberAvatarUrl = $this->getMemberAvatarUrl($result['member_id'], $result['member_avatar']);
......
...@@ -452,10 +452,19 @@ class StoreModel extends \DAO\AbstractModel ...@@ -452,10 +452,19 @@ class StoreModel extends \DAO\AbstractModel
} }
$resArray=array(); $resArray=array();
foreach($res as $val){ foreach($res as $val){
$resArray[$val['member_id']]=$val; $resArray[$val['store_id']]=$val;
} }
return $resArray; 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" ...@@ -33,7 +33,7 @@ resources.database.slave.params.password = "!@#$%12345werty"
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"
; ;
password.key='~!@#$`1234qwertasdfgzxcvb';
redis.database.params.host = "172.16.142.15" redis.database.params.host = "172.16.142.15"
redis.database.params.port = "6379" redis.database.params.port = "6379"
redis.database.params.prefix = "qm_" redis.database.params.prefix = "qm_"
...@@ -80,6 +80,7 @@ resources.database.slave.params.password = "!@#$%12345werty" ...@@ -80,6 +80,7 @@ resources.database.slave.params.password = "!@#$%12345werty"
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"
password.key='~!@#$`1234qwertasdfgzxcvb';
redis.database.params.host = "127.0.0.1" redis.database.params.host = "127.0.0.1"
redis.database.params.port = "6379" redis.database.params.port = "6379"
redis.database.params.prefix = "qm_" redis.database.params.prefix = "qm_"
...@@ -116,6 +117,7 @@ resources.database.params.password = "!@#$%12345werty" ...@@ -116,6 +117,7 @@ resources.database.params.password = "!@#$%12345werty"
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 = "127.0.0.1"
...@@ -126,12 +128,24 @@ resources.database.slave.params.password = "!@#$%12345werty" ...@@ -126,12 +128,24 @@ resources.database.slave.params.password = "!@#$%12345werty"
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.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.host = "127.0.0.1"
redis.database.params.port = "6379" redis.database.params.port = "6379"
redis.database.params.prefix = "qm_" redis.database.params.prefix = "qm_"
redis.database.params.password = "23456ertyu" redis.database.params.password = "23456ertyu"
out.config="/data/config" out.config="/data/config"
password.key='~!@#$`1234qwertasdfgzxcvb';
; 锁文件 ; 锁文件
out.locks="/data/locks"; out.locks="/data/locks";
; redis配置 ; redis配置
...@@ -247,6 +261,18 @@ resources.database.slave.params.password = "123456" ...@@ -247,6 +261,18 @@ 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.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.host = "127.0.0.1"
redis.database.params.port = "6379" redis.database.params.port = "6379"
redis.database.params.prefix = "qm_" redis.database.params.prefix = "qm_"
......
<!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 ...@@ -70,7 +70,7 @@ class cliGrowStore extends basecli
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->growMembers(); $storeService->growStores();
// $goodsCommonStrorageDao->createTestData(); // $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 ...@@ -60,7 +60,7 @@ class cliOrderClose extends basecli
// else{ // else{
// if(!empty($res['timeDiff'])){ // if(!empty($res['timeDiff'])){
// $timeArr=explode('-',$res['timeDiff']); // $timeArr=explode('-',$res['timeDiff']);
// if(!empty($timeArr)){ // if(!empty($timeArr)){v
// if(\Our\Common::isCurentTimeInSection($timeArr[0],$timeArr[1])){ // if(\Our\Common::isCurentTimeInSection($timeArr[0],$timeArr[1])){
// continue; // 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