Commit d828c06a authored by chenchuanwen's avatar chenchuanwen

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

parents 965035ca 4da0ae28
......@@ -28,6 +28,7 @@ class GoodsController extends \Our\Controller_AbstractIndex {
$this->goodsService->addBrowseRecord($this->req[\Our\NameConst::data],$this->memberId);
$this->success(array_merge($goodsInfo,array('store'=>$store,'recomndGoods'=>$recomndGoods,'evaluation'=>$evaluation,'groups'=>$groups,'share'=>$share),$coupons));
}
/**
* 获取商品列表
*/
......
......@@ -201,4 +201,8 @@ class HomeController extends \Our\Controller_AbstractIndex{
}
}
public function writeToFileAction(){
\Business\User\AddressServiceModel::getInstance()->writeToFile();
}
}
\ No newline at end of file
......@@ -7,7 +7,7 @@ namespace Lock;
* Description:
*/
interface ILock{
const EXPIRE = 5;
const EXPIRE = 1;
public function getLock($key, $timeout = self::EXPIRE);
......
......@@ -12,22 +12,30 @@ class RedisLock implements \Lock\ILock{
public function __construct()
{
$this->lockRedis = \Redis\Db0\LockRedisModel::getInstance();
$this->lockRedis = \Redis\Db1\LockRedisModel::getInstance();
}
public function getMicrotime(){
list($msec, $sec) = explode(' ', microtime());
$msectime = (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000);
return $msectime;
}
public function getLock($key, $timeout=self::EXPIRE)
{
$waitime = 20000;
$totalWaitime = 0;
$time = $timeout*1000000;
while ($totalWaitime < $time && false == $this->lockRedis->update($key, 1, $timeout)){
usleep($waitime);
$totalWaitime += $waitime;
}
if ($totalWaitime >= $time){
\Our\Log::getInstance()->write($key.' can not get lock for waiting '.$timeout.'s.');
throw new Exception('can not get lock for waiting '.$timeout.'s.');
$currMicroTime = $this->getMicrotime();
$is_lock = $this->lockRedis->tableSetnx($key, $currMicroTime+10);
// 不能获取锁
if(!$is_lock){
//判断锁是否过期
$lock_time = $this->lockRedis->tableCacheGet($key);
// 锁已过期,删除锁,重新获取
if($currMicroTime>(float)$lock_time){
$this->releaseLock($key);
$is_lock = $this->lockRedis->tableSetnx($key, $currMicroTime+$timeout);
}
}
return $is_lock? true : false;
}
public function releaseLock($key)
......
......@@ -48,27 +48,22 @@ class OrderConfirmUtil {
private $couponCacheFlag = false;
/**
* 添加订单
* @param $data
* @param $memberId
* @param $currentAddress
* @param string $formId 小程序微信支付支付表单id
* @return array
* @throws \Exception
* User: King <358887571@qq.com>
* Date: 2018/12/25 0025
* Time: 下午 3:01
*/
public function addOrder($data, $memberId, $currentAddress, $formId = ''){
$storeCartData = $this->checkPostData($data,$memberId,$currentAddress);
//return $storeCartData;
if(CURRENTVERSION==\Our\NameConst::versionDefault){
$storeCartData = $this->checkDeliveryTypeAndPayway($storeCartData);
public function addOrder($data,$memberId,$currentAddress){
$isLock = \Lock\RedisLock::getInstance()->getLock('addOrder');
if($isLock){
$storeCartData = $this->checkPostData($data,$memberId,$currentAddress);
//return $storeCartData;
if(CURRENTVERSION==\Our\NameConst::versionDefault){
$storeCartData = $this->checkDeliveryTypeAndPayway($storeCartData);
}else{
$storeCartData = $this->checkDeliveryTypeAndPaywayNew($storeCartData);
}
$result = $this->saveOrderInfo($storeCartData);
\Lock\RedisLock::getInstance()->releaseLock('addOrder');
return $result;
}else{
$storeCartData = $this->checkDeliveryTypeAndPaywayNew($storeCartData);
\Error\ErrorModel::throwException(\Error\CodeConfigModel::addOrderFrequently);
}
return $this->saveOrderInfo($storeCartData, $formId);
}
......@@ -82,10 +77,10 @@ class OrderConfirmUtil {
* @throws \Exception
*/
public function checkPostData($data,$memberId,$currentAddress){
$dbName = \Our\DbNameConst::masterDBConnectName;
$dbName = \Our\DbNameConst::salveDBConnectName;
$this->memberId = $memberId;
$this->member = \DAO\MemberModel::getInstance()->getInfo($this->memberId);
$this ->address = $this->checkCurrentAddress($currentAddress,$this->memberId);
$this->address = $this->checkCurrentAddress($currentAddress,$this->memberId);
//if($this ->address['addressId'] == )
$this->postData = json_decode($data['param'],true);
if(!$this->postData){
......@@ -346,7 +341,7 @@ class OrderConfirmUtil {
*/
public function checkDeliveryTypeAndPaywayNew($storeCartData){
$cartService = \Business\Cart\CartServiceModel::getInstance();
$storeCartData = $cartService->getDeliveryTypeForCartNew($this->address,$storeCartData,\Our\DbNameConst::masterDBConnectName,true);
$storeCartData = $cartService->getDeliveryTypeForCartNew($this->address,$storeCartData,\Our\DbNameConst::salveDBConnectName,true);
$currentTime = time();
$todayTime = strtotime(date('Y-m-d',time()));
$tomorrowTime = $todayTime + \Our\ApiConst::oneDaySecond;
......@@ -769,6 +764,7 @@ class OrderConfirmUtil {
$memberCouponDao = \DAO\Coupon\MemberCouponModel::getInstance();
$couponService = \Business\Coupon\CouponServiceModel::getInstance();
\Our\RedisHelper::delCachedFunction(\Redis\Db13\MemberCouponRedisModel::getInstance(),array(&$memberCouponDao, 'getList'),array(),array($this->memberId));
\Redis\Db13\MemberCouponRedisModel::getInstance()->tableDel(\Our\NameConst::memberCounponListPrefix.$this->memberId);
foreach($this->storeIds as $tempStoreId){
\Our\RedisHelper::delCachedFunction(\Redis\Db13\CouponRedisModel::getInstance(), array(&$couponService, 'getStoreCouponsById'),array(),array($tempStoreId."_".$this->memberId));
}
......@@ -917,11 +913,13 @@ class OrderConfirmUtil {
\Our\RedisHelper::delCachedFunction(\Redis\Db4\PBundlingRedisModel::getInstance(),array(&$pbundlingInstance, 'getList'),array(),array($storeId));
}
}
$this->updateGoodsStorageToDBAndCache($goodsCommonIds,$goodsIds,$blIds,$goodsNewList,$op,$updateSaleNumFlag);
//$this->updateGoodsStorageToDBAndCache($goodsCommonIds,$goodsIds,$blIds,$goodsNewList,$op,$updateSaleNumFlag);
$this->updateGoodsStorageToCache($goodsCommonIds,$goodsIds,$blIds,$goodsNewList,$op,$updateSaleNumFlag);
return true;
}
/**
* 更新库存信息到数据库
* @param $goodsCommons
* @param $goodsList
* @param $blGoodsList
......@@ -932,7 +930,7 @@ class OrderConfirmUtil {
* @throws \Error\OurExceptionModel
* @throws \Exception
*/
public function updateGoodsStorageToDBAndCache($goodsCommons,$goodsList,$blGoodsList,$goodsNewList,$op=\Our\ApiConst::minus,$updateSaleNumFlag=true){
public function updateGoodsStorageToDB($goodsCommons,$goodsList,$blGoodsList,$goodsNewList,$op=\Our\ApiConst::minus,$updateSaleNumFlag=true){
if($blGoodsList){
$dbName = \Our\DbNameConst::masterDBConnectName;
$pBundlingDao = \DAO\PBundlingModel::getInstance($dbName);
......@@ -953,7 +951,77 @@ class OrderConfirmUtil {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::goodsStorageToDBFailedForOrder);
}
}
return true;
}
/**
* 更新库存信息到缓存
* @param $goodsCommons
* @param $goodsList
* @param $blGoodsList
* @param $goodsNewList
* @param int $op
* @param bool $updateSaleNumFlag
* @return bool
* @throws \Error\OurExceptionModel
* @throws \Exception
*/
public function updateGoodsStorageToCache($goodsCommons,$goodsList,$blGoodsList,$goodsNewList,$op=\Our\ApiConst::minus,$updateSaleNumFlag=true){
$pBundlingDao = \DAO\PBundlingModel::getInstance();
$goodsDao = \DAO\GoodsModel::getInstance();
if($blGoodsList){
foreach($blGoodsList as $key=>$blGoods){
$pBundlingCacheResult = $pBundlingDao->opBlGoodsStorage($key,$blGoods['blStorage'],$op);//组合销售库存删减
if($pBundlingCacheResult===false){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::blGoodsStorageToCacheFailedForOrder);
}
$pBundlingDao->addChangedPBundlingStorage(serialize(array('bl_id'=>$key,'bl_storage'=>$blGoods['blStorage'],'op'=>$op)));
}
}
if($goodsCommons&&$goodsList){
$resultGoodsCache = $goodsDao->opOnlineStorageGoodsByGoodsCommonIds($goodsList,$op,$updateSaleNumFlag);
if(!$resultGoodsCache){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::goodsStorageToCacheFailedForOrder);
}
}
\Our\Common::redisPublish('\Business\Goods\GoodsCommonServiceModel','updateAllStorageForPublish',array());
return true;
}
/**
* @param $goodsCommons
* @param $goodsList
* @param $blGoodsList
* @param $goodsNewList
* @param int $op
* @param bool $updateSaleNumFlag
* @return bool
* @throws \Error\OurExceptionModel
* @throws \Exception
*/
public function updateGoodsStorageToDBAndCache($goodsCommons,$goodsList,$blGoodsList,$goodsNewList,$op=\Our\ApiConst::minus,$updateSaleNumFlag=true){
if($blGoodsList){
$dbName = \Our\DbNameConst::masterDBConnectName;
$pBundlingDao = \DAO\PBundlingModel::getInstance($dbName);
$pBundlingResult = $pBundlingDao->updateBlStorage($blGoodsList);
if(!$pBundlingResult){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::blGoodsStorageToDBFailedForOrder);
}
}
if($goodsCommons&&$goodsList){
$dbName = \Our\DbNameConst::masterDBConnectName;
$goodsDao = \DAO\GoodsModel::getInstance($dbName);
$goodsCommonDao = \DAO\GoodsCommonModel::getInstance($dbName);
$resultGoodsCommon = $goodsCommonDao->updateGoodsStorage($goodsCommons,$op,$updateSaleNumFlag);
$resultGoods = $goodsDao->updateGoodsStorage($goodsNewList,$op);
if(!($resultGoodsCommon&&$resultGoods)){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::goodsStorageToDBFailedForOrder);
}
}
if($blGoodsList){
foreach($blGoodsList as $key=>$blGoods){
$pBundlingCacheResult = $pBundlingDao->opBlGoodsStorage($key,$blGoods['blStorage'],$op);//组合销售库存删减
......@@ -1014,8 +1082,7 @@ class OrderConfirmUtil {
//第一步:获取购物车可展示优惠券信息
$memberCouponDao = \DAO\Coupon\MemberCouponModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$whereSql = ' coupon_state ='.\Our\ApiConst::couponUnused.' and member_id ='.$memberId.' and out_time > '.time();
$memberCouponArray = $memberCouponDao->getList($whereSql,'coupon_id');
$memberCouponArray = $memberCouponDao->getMemberCouponByMemberIdWithOuttime($memberId);
if(!$memberCouponArray){
$storeCartData['couponList'] = array();
return $storeCartData;
......
......@@ -68,6 +68,8 @@ class NameConst {
const nearbyStoreGoodsPrefix = 'nearbyStoreGoods_';
const memberCounponListPrefix = 'unusedMemberCouponList_';
const cityCode = 'cityCode';
const lat = 'lat';
const lng = 'lng';
......@@ -132,6 +134,8 @@ class NameConst {
const onlineStorageBlGoodsPrefix = 'onlineStorageBlGoods';//组合销售库存前缀
const onlineStorageBlGoodsOriginPrefix = 'onlineStorageBlGoodsOrigin';//组合销售本身库存前缀
const storeCoverPrefix = 'storeCover_';
const storeMiddleAdvsPrefix = 'storeMiddleAdvs_';
......@@ -202,6 +206,12 @@ class NameConst {
const xp='xp';
const win='win';
const pBundlingStorageRedisPrefix = 'pBundlingStorage_';
const goodsStorageRedisPrefix = 'goodsStorage_';
const changedPBundlingStoragePrefix = 'changedPBundlingStorage';
const changedGoodsStoragePrefix = 'changedGoodsStorage';
}
?>
\ No newline at end of file
......@@ -843,12 +843,12 @@ class CartServiceModel extends \Business\AbstractModel{
}
//第一步:获取购物车可展示优惠券信息
$memberCouponDao = \DAO\Coupon\MemberCouponModel::getInstance();
$whereSql = ' coupon_state ='.\Our\ApiConst::couponUnused.' and member_id ='.$memberId.' and out_time > '.time();
$memberCouponArray = $memberCouponDao->getList($whereSql,'coupon_id');
$memberCouponArray = $memberCouponDao->getMemberCouponByMemberIdWithOuttime($memberId);
if(!$memberCouponArray){
$storeCartData['couponList'] = array();
return $storeCartData;
}
$couponStoreIds = $storeCartData['storeIds'];
$couponStoreIds[] = \Our\ApiConst::zero;
$couponIds = array_column($memberCouponArray,'coupon_id');
......
......@@ -185,6 +185,7 @@ class CouponServiceModel extends \Business\AbstractModel{
$couponDao->db->doCommit();
//\Our\RedisHelper::delCachedFunction(\Redis\Db13\MemberCouponRedisModel::getInstance(), array(&$memberCouponDao, 'getList'),array(),array($where['couponId']));
\Our\RedisHelper::delCachedFunction(\Redis\Db13\MemberCouponRedisModel::getInstance(), array(&$memberCouponDao, 'getList'),array(),array($memberId));
\Redis\Db13\MemberCouponRedisModel::getInstance()->tableDel(\Our\NameConst::memberCounponListPrefix.$memberId);
\Our\RedisHelper::delCachedFunction(\Redis\Db13\CouponRedisModel::getInstance(), array(&$this, 'getStoreCouponsById'),array(),array($coupon['store_id']."_".$memberId));
return true;
}
......@@ -238,6 +239,7 @@ class CouponServiceModel extends \Business\AbstractModel{
}
}
\Our\RedisHelper::delCachedFunction(\Redis\Db13\MemberCouponRedisModel::getInstance(), array(&$memberCouponDao, 'getList'),array(),array($memberId));
\Redis\Db13\MemberCouponRedisModel::getInstance()->tableDel(\Our\NameConst::memberCounponListPrefix.$memberId);
$couponDao->db->doCommit();
return true;
}
......
......@@ -585,7 +585,18 @@ class GoodsCommonServiceModel extends \Business\AbstractModel
$activities = \DAO\SaleMemberModel::getInstance()->isJoinStore($commonInfo['store_id'],$memberId);
//商品表
$goodsInstance = \DAO\GoodsModel::getInstance();
$goods = \Our\RedisHelper::cachedFunction(\Redis\Db4\GoodsRedisModel::getInstance(),array(&$goodsInstance, 'getListAndSetStorage'),array($goodsCommonId,'goods_id,goods_price,goods_marketprice,goods_image,goods_storage,goods_spec,goods_state,goods_verify,is_del'),\Our\ApiConst::oneDaySecond,array($goodsCommonId));
$goods = \Our\RedisHelper::cachedFunction(\Redis\Db4\GoodsRedisModel::getInstance(),array(&$goodsInstance, 'getListAndSetStorage'),array($goodsCommonId,'goods_id,goods_price,goods_marketprice,goods_image,goods_storage,goods_spec,goods_state,goods_verify,is_transport,transport_id,snapshot_id,is_del'),\Our\ApiConst::oneDaySecond,array($goodsCommonId));
$resetGoods = array();
foreach($goods as $tempGoods){
unset($tempGoods['goods_state']);
unset($tempGoods['goods_verify']);
unset($tempGoods['is_del']);
unset($tempGoods['is_transport']);
unset($tempGoods['transport_id']);
unset($tempGoods['snapshot_id']);
array_push($resetGoods,$tempGoods);
}
$goods = $resetGoods;
//商品图片表
$goodsImagesInstance = \DAO\GoodsImagesModel::getInstance();
$image = \Our\RedisHelper::cachedFunction(\Redis\Db4\GoodsImagesRedisModel::getInstance(),array(&$goodsImagesInstance, 'getListByCommonId'),array($goodsCommonId,'attr_name,attr_value,goods_image'),\Our\ApiConst::oneDaySecond,array($goodsCommonId));
......@@ -1452,6 +1463,47 @@ class GoodsCommonServiceModel extends \Business\AbstractModel
/**
* 更新从缓存链表中更新商品库存
* @return bool
*/
public function updateGoodsStorageByRedisList(){
$goodsModel = \DAO\GoodsModel::getInstance();
for($i=0;$i<2000;$i++){
$goodsStr = $goodsModel->getChangedGoodsStorage();
\Our\Log::getInstance()->write($goodsStr,'/data/log/apptest');
if($goodsStr){
$goods = unserialize($goodsStr);
$goodsModel->setDb(\Our\DbNameConst::masterDBConnectName);
$goodsModel->db->doTransaction();
$goodsUpdateResult = $goodsModel->updateStorageByRedis($goods);
if(!$goodsUpdateResult){
$goodsModel->db->doRollback();
}
$goodsCommonUpdateResult = \DAO\GoodsCommonModel::getInstance()->updateStorageByRedis($goods);
if(!$goodsCommonUpdateResult){
$goodsModel->db->doRollback();
}
$goodsModel->db->doCommit();
}else{
break;
}
}
return true;
}
/**
* 更新所有商品库存
* @return bool
*/
public function updateAllStorageForPublish(){
\Our\Log::getInstance()->write('1执行失败','/data/log/apptest');
$this->updateGoodsStorageByRedisList();
\Our\Log::getInstance()->write('2执行失败','/data/log/apptest');
\DAO\PBundlingModel::getInstance()->updateStorageByRedisList();
return true;
}
private static $_instance = null;
......
......@@ -215,11 +215,11 @@ class StoreServiceModel extends \Business\AbstractModel{
$storeMember['fav_type'] = \Our\ApiConst::one;
$storeMembers[] = $storeMember;
$favoritesStoreDao = \DAO\FavoritesStoreModel::getInstance();
$one = $favoritesStoreDao->getOne('store_id',array('store_id'=>$storeId,'member_id'=>$memberId,'fav_type'=>\Our\ApiConst::one),'');
$result = $favoritesStoreDao->insertAll($storeMembers);
if($result) {
if($result && !$one) {
$favoritesStoreDao->updateStoreCollecitonsCache(array($storeId),$memberId,2);
}
}else{
$sess=\Yaf\Session::getInstance();
$scan_store_ids = $sess->get('scan_store_ids');
......@@ -572,34 +572,34 @@ class StoreServiceModel extends \Business\AbstractModel{
* @param $memberId
*/
public function updateFavoritesStore($param,$memberId){
if(!(isset($param['storeId'])&&$param['storeId'])){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyScanStoreId);
}
$storeId = trim($param['storeId']);
$storeInfo = \DAO\StoreModel::getInstance()->get($storeId,false);
if(!$storeInfo){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyScanStoreInfo);
}
$storeMembers = array();
$storeMember = array();
$storeMember['store_id'] = $storeId;
$storeMember['member_id'] = $memberId;
$storeMember['fav_from'] = \Our\ApiConst::scanFavor;
$storeMember['fav_type'] = \Our\ApiConst::one;
$storeMembers[] = $storeMember;
$favoritesStoreDao = \DAO\FavoritesStoreModel::getInstance();
$one = $favoritesStoreDao->getOne('store_id',array('store_id'=>$storeId,'member_id'=>$memberId,'fav_type'=>\Our\ApiConst::one,'fav_from'=>\Our\ApiConst::scanFavor),'');
if(!$one) {
$result = $favoritesStoreDao->insertAll($storeMembers);
if(!$result){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::saveScanStoreInfoFailed);
}
$favoritesStoreDao->updateStoreCollecitonsCache(array($storeId),$memberId,2);
$favoritesDao = \DAO\FavoritesStoreModel::getInstance();
\Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(),array(&$favoritesDao, 'getOne'),array(),array($memberId));
}
// if(!(isset($param['storeId'])&&$param['storeId'])){
// \Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyScanStoreId);
// }
// $storeId = trim($param['storeId']);
// $storeInfo = \DAO\StoreModel::getInstance()->get($storeId,false);
// if(!$storeInfo){
// \Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyScanStoreInfo);
// }
// $storeMembers = array();
// $storeMember = array();
// $storeMember['store_id'] = $storeId;
// $storeMember['member_id'] = $memberId;
// $storeMember['fav_from'] = \Our\ApiConst::scanFavor;
// $storeMember['fav_type'] = \Our\ApiConst::one;
// $storeMembers[] = $storeMember;
// $favoritesStoreDao = \DAO\FavoritesStoreModel::getInstance();
//
// $one = $favoritesStoreDao->getOne('store_id',array('store_id'=>$storeId,'member_id'=>$memberId,'fav_type'=>\Our\ApiConst::one),'');
// if(!$one) {
// $result = $favoritesStoreDao->insertAll($storeMembers);
// if(!$result){
// \Error\ErrorModel::throwException(\Error\CodeConfigModel::saveScanStoreInfoFailed);
// }
// $favoritesStoreDao->updateStoreCollecitonsCache(array($storeId),$memberId,2);
// $favoritesDao = \DAO\FavoritesStoreModel::getInstance();
// \Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(),array(&$favoritesDao, 'getOne'),array(),array($memberId));
//
// }
return true;
......
......@@ -369,15 +369,15 @@ class MemberServiceModel extends \Business\AbstractModel
$favoritesStoreDao = \DAO\FavoritesStoreModel::getInstance();
$storeIds = array_column($scan_store_ids,'store_id');
//$list = $favoritesStoreDao->selectList(array('store_id'=>array('in',$storeIds),'member_id'=>$memberId,'fav_type'=>0),'store_id');
$list = $favoritesStoreDao->selectList(array('store_id'=>array('in',$storeIds),'member_id'=>$memberId,'fav_type'=>\Our\ApiConst::one,'fav_from'=>\Our\ApiConst::scanFavor),'store_id');
$list = $favoritesStoreDao->selectList(array('store_id'=>array('in',$storeIds),'member_id'=>$memberId,'fav_type'=>\Our\ApiConst::one),'store_id');
$storeIds2 = $list ? array_column($list, 'store_id') : [];
$storeIds = array_diff($storeIds,$storeIds2);
if($storeIds) {
$result = $favoritesStoreDao->insertAll($storeMembers);
if(!$result){
\Our\Log::getInstance()->write(json_encode($storeMembers).'扫码数据写入失败');
return false;
}
$result = $favoritesStoreDao->insertAll($storeMembers);
if(!$result){
\Our\Log::getInstance()->write(json_encode($storeMembers).'扫码数据写入失败');
return false;
}
if($storeIds && $result) {
$favoritesStoreDao->updateStoreCollecitonsCache($storeIds,$memberId,2);
}
......
......@@ -69,6 +69,51 @@ class AreaModel extends \DAO\AbstractModel {
return $areaList;
}
public function writeToFile(){
$this->setDb($this->dbName);
$where = array('area_deep'=>array('neq',3));
$where= $this->db->getSqlWhereByArray($where);
$areaList = $this->db->select(\Our\NameConst::allField)->from($this->_tableName)->where($where)->order('area_deep','asc')->fetchAll();
$where = array('area_deep'=>3);
$areaSubList = $this->db->select(\Our\NameConst::allField)->from($this->_tableName)->where($where)->limit(0,3000)->order('area_id','asc')->fetchAll();
var_dump(count($areaSubList));
$proInfoList = array();
foreach($areaList as $area){
if($area['area_deep']==1){
$proInfoList[$area['area_id']]['area_name'] = $area['area_name'];
}else{
$city = array();
$city['city_name'] = $area['area_name'];
$city['city_id'] = $area['area_id'];
$proInfoList[$area['area_parent_id']]['list'][] = $city;
}
}
$newAreaList = array();
foreach($areaSubList as $area){
$newAreaList[$area['area_parent_id']][]= $area['area_name'];
}
$returnList = array();
$proList = array();
foreach($proInfoList as $proInfo){
$return = array();
$return['name'] = $proInfo['area_name'];
$return['city'] = array();
if($proInfo['list']){
foreach($proInfo['list'] as $city){
$newCity= array();
$newCity['name'] = $city['city_name'];
$newCity['area'] = $newAreaList[$city['city_id']]?$newAreaList[$city['city_id']]:array();
var_dump($newCity);
array_push($return['city'],$newCity);
}
}
$returnList[] = $return;
}
\Our\Log::getInstance()->write(json_encode($returnList),'/data/log/appcity');
return $returnList;
}
public function getCityListWithoutCounty(){
$addressRedis = AddressRedisModel::getInstance();
$cityList = $addressRedis->find('cityListWithoutCounty');
......
......@@ -41,7 +41,6 @@ class MemberCouponModel extends \DAO\AbstractModel{
*/
public function getListByMemberId($memberId,$couponIds){
$whereSql = ' member_id = '.$memberId .' and coupon_id in ('.implode(',',$couponIds).')';
$result = $this->getList($whereSql);
return $result;
}
......@@ -59,6 +58,34 @@ class MemberCouponModel extends \DAO\AbstractModel{
return $memberCoupons;
}
/**
* 获取当前用户未领取的有效优惠券
* @param $where
* @param $memberId
* @return array
*/
public function getMemberCouponByMemberIdWithOuttime($memberId){
$memberCouponRedisModel = \Redis\Db13\MemberCouponRedisModel::getInstance();
$memberCoupons = $memberCouponRedisModel->tableCacheGet(\Our\NameConst::memberCounponListPrefix.$memberId);
if($memberCoupons){
$newMemberCouponArray = array();
foreach($memberCoupons as $tempMemberCoupon){
if($tempMemberCoupon['out_time']>=TIMESTAMP){
$newMemberCouponArray[] =$tempMemberCoupon;
}
}
return $newMemberCouponArray;
}
$where = ' coupon_state ='.\Our\ApiConst::couponUnused.' and member_id ='.$memberId;
$where .= ' and out_time > '.TIMESTAMP;
$field = 'coupon_id,add_time,out_time';
$memberCoupons = $this->getList($where , $field);
if($memberCoupons){
$memberCouponRedisModel->tableCacheSet(\Our\NameConst::memberCounponListPrefix.$memberId,$memberCoupons,\Our\ApiConst::oneDaySecond);
}
return $memberCoupons;
}
public function getValidMemberCoupon($where,$memberId){
if(!$memberId){
$this->errorCode = \Error\CodeConfigModel::emptyMemberCouponMemberId;
......
......@@ -39,7 +39,7 @@ class GoodsModel extends \DAO\AbstractModel {
* @return mixed
*/
public function updateStorage($goodsId, $num, $op) {
$this->setDb();
$this->setDb(\Our\DbNameConst::masterDBConnectName);
$whereSql = 'goods_id='.$goodsId;
if($op==1){ //调整库存
$updateSql = 'goods_storage = goods_storage'.($num<0 ? '-'.(-$num) : '+'.$num);
......@@ -51,6 +51,26 @@ class GoodsModel extends \DAO\AbstractModel {
return $this->db->update($this->_tableName)->query($updateAllSql);
}
public function updateStorageByRedis($goods){
$this->setDb(\Our\DbNameConst::masterDBConnectName);
$sql = 'UPDATE '.$this->_tableName.' set goods_edittime = '.TIMESTAMP.',goods_storage = ';
if($goods['op']==\Our\ApiConst::set){
$sql .= $goods['goods_storage'] ;
}else{
$sql .= 'goods_storage '.\Our\ArrayConst::ops[$goods['op']].$goods['goods_storage'] ;
/*if($goods['sale_num']){
$sql .= ' sale'
}*/
}
$sql .= ' where goods_id = '.$goods['goods_id'];
\Our\Log::getInstance()->write($sql.' 执行失败','/data/log/apptest');
$result = $this->db->update($this->_tableName)->query($sql);
if($result===false){
\Our\Log::getInstance()->write($sql.' 执行失败');
}
return $result;
}
/**
*
* 分页获取商品列表
......@@ -122,6 +142,14 @@ class GoodsModel extends \DAO\AbstractModel {
return $goods;
}
public function getOnelineOneWithStorage($goodsId,$field= \Our\NameConst::allField){
$goodsInfo = $this->getOnlineOne($goodsId,$field);
if($goodsInfo){
}
return array();
}
public function validAddCartGoods($where,$storageFlag = false){
$goods = $this->getOnlineOne($where['goodsId'],$this->cartGoodsField);
if(!$goods){
......@@ -174,7 +202,7 @@ class GoodsModel extends \DAO\AbstractModel {
* 获取商品是否在售,如果在售还返回对应库存信息
* @param $goodsId
*/
public function getOnlineStorageGoods($goodsId){
/*public function getOnlineStorageGoods($goodsId){
$goodsRedis = \Redis\Db4\GoodsRedisModel::getInstance();
$onlineStorageGoodsKey = \Our\NameConst::onlineStorageGoodsPrefix.$goodsId;
$onlineStorageGoods = $goodsRedis->tableHGAll($onlineStorageGoodsKey);
......@@ -194,8 +222,27 @@ class GoodsModel extends \DAO\AbstractModel {
$goodsRedis->tableHMGet($onlineStorageGoodsKey,$data,\Our\ApiConst::tenDaySecond);
return $data;
}
}*/
/**
* 更新需要更新缓存的链表
* @param $pBundling
*/
public function addChangedGoodsStorage($pBundling){
$goodsRedisDao = \Redis\Db4\GoodsRedisModel::getInstance();
$goodsRedisDao->tableLPush(\Our\NameConst::changedGoodsStoragePrefix,$pBundling);
}
/**
* 获取需要更新缓存的链表数据
*/
public function getChangedGoodsStorage(){
$goodsRedisDao = \Redis\Db4\GoodsRedisModel::getInstance();
return $goodsRedisDao->tableLPop(\Our\NameConst::changedGoodsStoragePrefix);
}
/**
* 更新商品库存缓存以及更新销量
* @param $goodsList 商品列表
......@@ -204,12 +251,17 @@ class GoodsModel extends \DAO\AbstractModel {
*/
public function opOnlineStorageGoodsByGoodsCommonIds($goodsList,$op = \Our\ApiConst::minus,$updateSaleNumFalg = true){
$goodsRedis = \Redis\Db4\GoodsRedisModel::getInstance();
if($updateSaleNumFalg){
$goodsCommonRedis = \Redis\Db4\GoodsCommonRedisModel::getInstance();
$onlineGoodsCommonSaleNumKey = \Our\NameConst::onlineGoodsCommonSaleNumPrefix;
}
$goodsCommonRedis = \Redis\Db4\GoodsCommonRedisModel::getInstance();
$onlineGoodsCommonSaleNumKey = \Our\NameConst::onlineGoodsCommonSaleNumPrefix;
/*if($updateSaleNumFalg){
}*/
$goodsCommonList = $this->getOnlineStorageGoodsByGoodsCommonIds(array_keys($goodsList));
foreach($goodsCommonList as $goodsCommonId=>$goodsCommonsTemp){
$isLock = \Lock\RedisLock::getInstance()->getLock(\Our\NameConst::goodsStorageRedisPrefix.$goodsCommonId);
if(!$isLock){
\Lock\RedisLock::getInstance()->releaseLock(\Our\NameConst::goodsStorageRedisPrefix.$goodsCommonId);
return false;
}
$newGoodsList = array();
$totalGoodsNum = \Our\ApiConst::zero;
foreach($goodsCommonsTemp as $goodsId=>$temp){
......@@ -221,16 +273,29 @@ class GoodsModel extends \DAO\AbstractModel {
}else if($op == \Our\ApiConst::set){
$temp['goodsStorage'] = $goodsList[$goodsCommonId][$goodsId]['goodsNum'];
}else{
\Lock\RedisLock::getInstance()->releaseLock(\Our\NameConst::goodsStorageRedisPrefix.$goodsCommonId);
return false;
}
$totalGoodsNum += $goodsList[$goodsCommonId][$goodsId]['goodsNum'];
$updateGoods = array(
'goods_id'=>$goodsId,
'goods_commonid'=>$goodsCommonId,
'goods_storage'=>$goodsList[$goodsCommonId][$goodsId]['goodsNum'],
'op'=>$op
);
if($updateSaleNumFalg&&$op!=\Our\ApiConst::set){
$updateGoods['sale_num'] = $goodsList[$goodsCommonId][$goodsId]['goodsNum'];
}
$this->addChangedGoodsStorage(serialize($updateGoods));
}
$newGoodsList[$goodsId]= serialize($temp);
}
if($newGoodsList){
$onlineStorageGoodsKey = \Our\NameConst::onlineStorageGoodsPrefix.$goodsCommonId;
$result = $goodsRedis->tableHMSet($onlineStorageGoodsKey,$newGoodsList,\Our\ApiConst::tenDaySecond);
if(!$result){
\Lock\RedisLock::getInstance()->releaseLock(\Our\NameConst::goodsStorageRedisPrefix.$goodsCommonId);
return false;
}
......@@ -255,12 +320,12 @@ class GoodsModel extends \DAO\AbstractModel {
}
}
\DAO\PBundlingModel::getInstance()->deletePBundlingByGoodsCommonId($goodsCommonId);
\Lock\RedisLock::getInstance()->releaseLock(\Our\NameConst::goodsStorageRedisPrefix.$goodsCommonId);
}
return true;
}
/**
* 根据商品CommonId获取库存信息
* @param $goodsCommonIds
......@@ -288,7 +353,7 @@ class GoodsModel extends \DAO\AbstractModel {
$sql = \Our\Common::format(' goods_commonid in ({0})',implode(',',$noRedisGoodsCommonIds));
$field = 'goods_commonid,goods_id,goods_storage,goods_state,goods_verify,is_del';
}
if($sql&&$field){
if(isset($sql)&&isset($field)){
$goodsArray = $this->getList($sql,$field);
$goodsCommonList = array();
$goodsList = array();
......@@ -354,18 +419,9 @@ class GoodsModel extends \DAO\AbstractModel {
if($goods['goods_state'] == \Our\ApiConst::onlineGoodsState && $goods['goods_verify'] == \Our\ApiConst::onlineGoodsVerify && $goods['is_del'] == \Our\ApiConst::onlineGoodsDel){
$onlineFlag = \Our\ApiConst::one;
}
unset($goodsList[$key]['goods_state']);
unset($goodsList[$key]['goods_verify']);
unset($goodsList[$key]['is_del']);
$data[$goods['goods_id']] = serialize(array('onlineFlag'=>$onlineFlag,'goodsStorage'=>$goods['goods_storage']));
}
$goodsRedis->tableHMSet($onlineStorageGoodsKey,$data,\Our\ApiConst::tenDaySecond);
}else{
foreach ($goodsList as $key => $goods){
unset($goodsList[$key]['goods_state']);
unset($goodsList[$key]['goods_verify']);
unset($goodsList[$key]['is_del']);
}
}
}
......
......@@ -80,6 +80,8 @@ class GoodsCommonModel extends \DAO\AbstractModel {
return $saleNum;
}
/**
* 删除销量缓存
* @param $goodsCommonId
......@@ -255,6 +257,28 @@ class GoodsCommonModel extends \DAO\AbstractModel {
}
public function updateStorageByRedis($goods){
$this->setDb(\Our\DbNameConst::masterDBConnectName);
$sql = 'UPDATE '.$this->_tableName.' set goods_edittime = '.TIMESTAMP.',goods_storage = ';
if($goods['op']==\Our\ApiConst::set){
$sql .= $goods['goods_storage'] ;
}else{
$sql .= 'goods_storage '.\Our\ArrayConst::ops[$goods['op']].$goods['goods_storage'] ;
if($goods['sale_num']){
$sql .= ' , sale_num = sale_num '.($goods['op']==\Our\ApiConst::plus?'-':'+').' '.$goods['sale_num'];
}
}
$sql .= ' where goods_commonid = '.$goods['goods_commonid'];
\Our\Log::getInstance()->write($sql.' 执行失败','/data/log/apptest');
$result = $this->db->update($this->_tableName)->query($sql);
if($result===false){
\Our\Log::getInstance()->write($sql.' 执行失败');
}
return $result;
}
public function updateGoodsStorage($dataList , $op = \Our\ApiConst::minus,$updateSaleNumFlag = false){
$datas = array_values($dataList);
$this->setDb(\Our\DbNameConst::masterDBConnectName);
......
......@@ -3,6 +3,8 @@
namespace DAO;
use Error\CodeConfigModel;
class PBundlingModel extends \DAO\AbstractModel {
......@@ -92,6 +94,8 @@ class PBundlingModel extends \DAO\AbstractModel {
$pBundling = $this->findById($blId,$field);
if($pBundling){
$storage = $pBundling['bl_storage'];
$bundingGoodsWhere['bl_id'] = $blId;
$bundlingGoodsList = \DAO\PBundlingGoodsModel::getInstance()->getList($this->pBundingGoodsField,$bundingGoodsWhere);
$pBundlingRedis->tableHSet(\Our\NameConst::onlineStorageBlGoodsPrefix,$blId,$pBundling['bl_storage'],\Our\ApiConst::oneDaySecond);
}else{
$storage = \Our\ApiConst::zero;
......@@ -160,9 +164,91 @@ class PBundlingModel extends \DAO\AbstractModel {
public function getPBundlingCacheByBlId($blId){
$pBundlingDao = \Redis\Db4\PBundlingRedisModel::getInstance();
return $pBundlingDao->getByKeys('gid_'.$blId);
$result = $pBundlingDao->getByKeys('gid_'.$blId);
if($result){
return $result['result'];
}
return false;
}
/**
* 更新组合销售缓存
* @param $blId
* @param $blStorage
* @param int $op
* @return bool
* @throws \Error\OurExceptionModel
* @throws \Exception
*/
public function updatePBundlingStorageCacheByBlId($blId,$blStorage,$op=\Our\ApiConst::minus){
$isLock = \Lock\RedisLock::getInstance()->getLock(\Our\NameConst::pBundlingStorageRedisPrefix.$blId);
if(!$isLock){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::serverBusy);
}
$pBundlingRedisDao = \Redis\Db4\PBundlingRedisModel::getInstance();
$result = $pBundlingRedisDao->getByKeys('gid_'.$blId);
if(!$result){
\Lock\RedisLock::getInstance()->releaseLock(\Our\NameConst::pBundlingStorageRedisPrefix.$blId);
return false;
}
$pBundling = $result['result'];
$key = $result['key'];
if($op == \Our\ApiConst::minus){
$pBundling['bl_storage'] = $pBundling['bl_storage']-$blStorage;
if($pBundling['bl_storage']-$blStorage<\Our\ApiConst::zero){
\Lock\RedisLock::getInstance()->releaseLock(\Our\NameConst::pBundlingStorageRedisPrefix.$blId);
\Error\ErrorModel::throwException(\Our\CodeConfigModel::pBundlingNoStorageForOrder);
}
$pBundling['bl_origin_storage'] = $pBundling['bl_origin_storage']-$blStorage;
}else if($op == \Our\ApiConst::plus){
$pBundling['bl_storage'] = $pBundling['bl_storage']+$blStorage;
$pBundling['bl_origin_storage'] = $pBundling['bl_origin_storage']+$blStorage;
}
\Lock\RedisLock::getInstance()->releaseLock(\Our\NameConst::pBundlingStorageRedisPrefix.$blId);
return $pBundlingRedisDao->setNoPrefix($key,$pBundling,\Our\ApiConst::oneDaySecond);
}
/**
* 更新需要更新缓存的链表
* @param $pBundling
*/
public function addChangedPBundlingStorage($pBundling){
$pBundlingRedisDao = \Redis\Db4\PBundlingRedisModel::getInstance();
$pBundlingRedisDao->tableLPush(\Our\NameConst::changedPBundlingStoragePrefix,$pBundling);
}
/**
* 获取需要更新缓存的链表数据
*/
public function getChangedPbundlingStorage(){
$pBundlingRedisDao = \Redis\Db4\PBundlingRedisModel::getInstance();
return $pBundlingRedisDao->tableLPop(\Our\NameConst::changedPBundlingStoragePrefix);
}
public function updateStorageByRedisList(){
$this->setDb(\Our\DbNameConst::masterDBConnectName);
for($i=0;$i<2000;$i++){
$pbundlingStr = $this->getChangedPbundlingStorage();
if(!$pbundlingStr){
break;
}
$pbundling = unserialize($pbundlingStr);
if($pbundling['op'] != \Our\ApiConst::set){
$sql = \Our\Common::format("UPDATE {$this->_tableName} set bl_storage = bl_storage {2} {0} where bl_id = {1} ",$pbundling['bl_storage'],$pbundling['bl_id'],\Our\ArrayConst::ops[$pbundling['op']]);
}else{
$sql = \Our\Common::format("UPDATE {$this->_tableName} set bl_storage = {0} where bl_id = {1} ",$pbundling['bl_storage'],$pbundling['bl_id']);
}
$one = $this->db->update($this->_tableName)->query($sql);
if($one===false){
\Our\Log::getInstance()->write($sql.' 执行失败');
}
}
return true;
}
public function deletePBundlingByBlId($blId){
$pBundlingDao = \Redis\Db4\PBundlingRedisModel::getInstance();
$pBundlingDao->tableDelAll($pBundlingDao->tableKeys('gid_'.$blId));
......
......@@ -151,7 +151,7 @@ class GoodsStorageModel extends \DAO\AbstractModel {
* 获取商品是否在售,如果在售还返回对应库存信息
* @param $goodsId
*/
public function getOnlineStorageGoods($goodsId){
/*public function getOnlineStorageGoods($goodsId){
$goodsRedis = \Redis\Db4\GoodsRedisModel::getInstance();
$onlineStorageGoodsKey = \Our\NameConst::onlineStorageGoodsPrefix.$goodsId;
$onlineStorageGoods = $goodsRedis->tableHGAll($onlineStorageGoodsKey);
......@@ -170,7 +170,7 @@ class GoodsStorageModel extends \DAO\AbstractModel {
$goodsRedis->tableHMGet($onlineStorageGoodsKey,$data,\Our\ApiConst::tenDaySecond);
return $data;
}
}
}*/
/**
* 更新商品缓存
......
......@@ -105,6 +105,7 @@ class CodeConfigModel
const notHaveAccess = 10117;
const sellerJoinUpdateFailed = 10118;
const passwordLenLimit = 10119;
const redisLockedFailed = 10120;
//访问错误
const illegalAccess = 200001;
......@@ -326,7 +327,9 @@ class CodeConfigModel
const beyondRecieverTime=300144;
const payTypeUpdateError = 30145;
const beyongRefundAmount = 300146;
const cancelRefundMoneyError = 300147;
const addOrderFrequently = 300147;
const cancelRefundMoneyError = 300148;
const serverBusy = 300149;
//店铺相关错误码
//商品分类
......@@ -482,7 +485,7 @@ class CodeConfigModel
self::emptyDeviceUniqueCode => '设备唯一识别码不能为空',
self::addMemberInfoFailed => '注册保存用户信息失败',
self::wrongMobileFormat => '手机号码格式错误',
self::registerMobileExist => '您的手机号码已经存在',
self::registerMobileExist => '该手机号码已注册',
self::emptyUserType => '用户来源不能为空',
self::wrongUserType => '用户只能来自微博、QQ、微信',
self::emptyUserAvatar => '第三方用户头像不能为空',
......@@ -539,7 +542,8 @@ class CodeConfigModel
self::sellerNameUpdateFailed => '更换手机时卖家手机号码更新失败',
self::notHaveAccess => '您没有权限使用',
self::sellerJoinUpdateFailed => '更换手机时卖家手机号码更新失败',
self::passwordLenLimit => '密码为6~16位的数字或字母组合',
self::passwordLenLimit => '密码长度不能小于6位',
self::redisLockedFailed => '获取redis锁失败',
//商品相关
self::emptyCommonId => '商品主键不能为空',
self::goodsNotExist => '商品不存在',
......@@ -835,7 +839,9 @@ class CodeConfigModel
self::beyondRecieverTime=>'设置收货时间不能早于当前时间',
self::payTypeUpdateError=> '更新支付类型失败',
self::beyongRefundAmount=>'退款金额不能超过可退款金额',
self::addOrderFrequently => '操作太频繁,请稍后重试',
self::cancelRefundMoneyError=>'退款有误,请于商家联系',
self::serverBusy => '服务器繁忙,请稍后重试',
//销售员
self::emptySaleGoodsId => '商品id不能为空',
self::emptySaleGoods => '销售商品不存在',
......
......@@ -15,6 +15,7 @@ class ErrorModel {
* @throws \Exception
*/
public static function throwException($code, $message = null) {
\Lock\RedisLock::getInstance()->releaseLock('addOrder');
if (!$message) {
$codeConfig = \Error\CodeConfigModel::getCodeConfig();
if (empty($codeConfig[$code])) {
......
......@@ -36,6 +36,9 @@ class LinkMySQLModel{
public static function get($database='resources.database.slave.params') {
if ( empty(self::$_configs[$database]) ) {
if($database===true){
$database = 'resources.database.params';
}
$config = \Yaf\Registry::get('config')->get($database);
$config = $config->toArray();
self::$_configs[$database]=$config;
......
......@@ -89,7 +89,8 @@ class AbstractModel {
* @return
*/
public function del($key) {
return $this->getRedis()->del($this->_addPrefix($key));
$keyNew = $this->_addPrefix($key);
return $this->getRedis()->del($keyNew);
}
public function delAll($data){
return $this->getRedis()->del($data);
......@@ -135,10 +136,21 @@ class AbstractModel {
return $this->getRedis()->get($this->_addPrefix($key));
}
public function setnx($key, $value,$expire=\Our\ApiConst::zero){
$res=$this->getRedis()->setnx($this->_addPrefix($key),$value);
if($expire>0){
$this->getRedis()->expire($this->_addPrefix($key),$expire);
}
return $res;
}
public function getNoPrefix($key){
return $this->getRedis()->get($key);
}
public function setNoPrefix($key,$value,$expire=0){
return $this->getRedis()->set($key,$value,$expire);
}
/**
* redis自增1
*
......
<?php
namespace Redis\Db0;
namespace Redis\Db1;
/**
* User: liuyuzhen
* Date: 2018/8/20
* Time: 10:30
* Description:
*/
class LockRedisModel extends \Redis\Db0\AbstractModel {
class LockRedisModel extends \Redis\Db1\AbstractModel {
/**
* 表名
*
......@@ -72,6 +72,10 @@ class LockRedisModel extends \Redis\Db0\AbstractModel {
return $this->del($this->calcKey($h));
}
public function tableSetnx($id,$data,$experio=\Our\ApiConst::zero){
$res=$this->setnx($this->calcKey($id), $data,$experio);
return $res;
}
public function tableExpire($key,$experio=0){
return $this->expire($this->calcKey($key),$experio);
}
......
......@@ -39,9 +39,9 @@ class AbstractModel extends \Redis\AbstractModel {
$str = $str[0];
$result = $this->getNoPrefix($str);
if($this->is_serialized($result)){
return unserialize($result);
$result = unserialize($result);
}
return $result;
return array('key'=>$str,'result'=>$result);
}else{
return false;
}
......
This diff is collapsed.
......@@ -12,8 +12,7 @@ config.url.resourcesHost = "http://api.shenbd.com"
config.url.userHost = ""
;
; ; oss 域名
config.url.ossHost = "https://img.shenbd.com"
;config.url.ossHost = "https://qmoss-01.oss-cn-hangzhou.aliyuncs.com"
config.url.ossHost = "https://qmoss-01.oss-cn-hangzhou.aliyuncs.com"
;
; ;推送域名
config.url.pushHost="172.16.142.15:9503";
......@@ -37,8 +36,8 @@ config.url.resourcesHost = "http://api.shenbd.com"
; 用户中心host
config.url.userHost = ""
config.url.ossHost = "https://img.shenbd.com"
;config.url.ossHost = "https://qmoss-01.oss-cn-hangzhou.aliyuncs.com"
; oss 域名
config.url.ossHost = "https://qmoss-01.oss-cn-hangzhou.aliyuncs.com"
;推送域名
config.url.pushHost="127.0.0.1:9503";
......@@ -55,9 +54,9 @@ config.url.convert=/usr/local/bin/wkhtmltoimage
config.url.resourcesHost = "http://apitest.shenbd.com"
; 用户中心host
config.url.userHost = ""
config.url.ossHost = "https://imgpre.shenbd.com"
; oss 域名
;config.url.ossHost = "https://qmoss-01.oss-cn-hangzhou.aliyuncs.com"
config.url.ossHost = "https://qmoss-01.oss-cn-hangzhou.aliyuncs.com"
;推送域名
config.url.pushHost="127.0.0.1:9503";
......@@ -75,9 +74,9 @@ config.url.source="/www/web/testadmin_shenbd_com/public_html/data/upload/"
config.url.resourcesHost = "http://apitest.qm.com"
; 用户中心host
config.url.userHost = ""
config.url.ossHost = "https://img.shenbd.com"
; oss 域名
;config.url.ossHost = "http://qmoss-01.oss-cn-hangzhou.aliyuncs.com"
config.url.ossHost = "http://qmoss-01.oss-cn-hangzhou.aliyuncs.com"
;推送域名
config.url.pushHost="127.0.0.1:9503";
......@@ -91,16 +90,11 @@ config.url.resourcesHost = "http://test.qm.com"
config.url.userHost = ""
; oss 域名
config.url.ossHost = "https://img.shenbd.com"
config.url.ossHost = "http://qmoss-01.oss-cn-hangzhou.aliyuncs.com"
;推送域名
config.url.pushHost="127.0.0.1:9503";
config.url.indexUrl="/www/web/test_qm_com/application/library/React"
config.url.libary="/www/web/test_qm_com/application/library"
config.url.source="/www/web/test_qm_com/public_html/data/upload/"
;config.url.source="E:/WAMP/www/www.qm.com/data/upload/"
; 文件目录
;店铺图片报错目录
......@@ -122,10 +116,10 @@ config.url.resourcesHost = "http://local.qm.com"
config.url.userHost = ""
; oss 域名
config.url.ossHost = "https://imgpre.shenbd.com"
config.url.ossHost = "http://qmoss-01.oss-cn-hangzhou.aliyuncs.com"
;推送域名
config.url.pushHost="192.168.1.201:9503";
config.url.pushHost="127.0.0.1:9503";
config.url.convert="/usr/local/bin/wkhtmltoimage";
......
......@@ -7,7 +7,7 @@ define("APP_ENV",ini_get('yaf.environ'));
if(APP_ENV=='develop'){
error_reporting(E_ALL);
}
if(APP_ENV=='test' || APP_ENV=='pre' ||APP_ENV=='ccwdevelop' || APP_ENV=='product' || APP_ENV=='productone'){
if(APP_ENV=='test' || APP_ENV=='pre' ||APP_ENV=='ccwdevelop' || APP_ENV=='product' || APP_ENV=='productone'|| APP_ENV=='lyztest' ){
if(isset($_POST['data']['debug'])&&!empty($_POST['data']['debug'])){
// define("DEBUG",1);
error_reporting(E_ALL);
......
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