Commit 22284e14 authored by wwccw0591's avatar wwccw0591

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

parents 5b1e3deb 81131c49
......@@ -45,6 +45,8 @@ class OrderConfirmUtil {
private $pushMessageOrders = array();
private $couponCacheFlag = false;
public function addOrder($data,$memberId,$currentAddress){
$storeCartData = $this->checkPostData($data,$memberId,$currentAddress);
//return $storeCartData;
......@@ -423,6 +425,7 @@ class OrderConfirmUtil {
if($storeCarts['giftCoupon']){
$giftCoupons[]=$storeCarts['giftCoupon'];
}
$this->couponCacheFlag = true;
}
$resultAddress = $addressDao->updateOrderAddress($this->address['address_id'],$this->memberId);
if(!$resultAddress){
......@@ -538,10 +541,18 @@ class OrderConfirmUtil {
if($this->cartCacheDeleteFlag){
$this->delCartCache();
}
if($this->couponCacheFlag){
$this->delCouponCahce();
}
$this->deleteCacheInfo();
$this->pushSaleGoods();
}
public function delCouponCahce(){
$memberCouponDao = \DAO\Coupon\MemberCouponModel::getInstance();
\Our\RedisHelper::delCachedFunction(\Redis\Db13\MemberCouponRedisModel::getInstance(),array(&$memberCouponDao, 'getList'),array(),array($this->memberId));
}
public function delCartCache(){
$cartRedis = \Redis\Db7\CartRedisModel::getInstance();
$memberCartKey = \Our\NameConst::memberCartStorePrefix.$this->memberId;
......
......@@ -106,7 +106,7 @@ class DescribeConst
const applySuccess = '申请成功';
const noLimitCoupon = '无门槛';
const specialCoupon = '指券';
const specialCoupon = '指券';
const giftCoupon = '礼品券';
const couponFullAvailable = '满{0}可用';
......
......@@ -42,10 +42,10 @@ class CouponServiceModel extends \Business\AbstractModel{
$orderAmount = intval($coupon['order_amount']);
if($coupon['type'] == \Our\ApiConst::noLimitCoupon){//无门槛优惠券
$temp['type'] = \Our\ApiConst::noLimitCouponType;
$temp['title'] = $coupon['cash_money'];
$temp['title'] = intval($coupon['cash_money']);
$temp['subTitle'] = \Our\DescribeConst::noLimitCoupon;
}else if($coupon['coupon_type'] == \Our\ApiConst::fullMinusCouponType){//满额减免券
$temp['title'] = $coupon['cash_money'];
$temp['title'] = intval($coupon['cash_money']);
$temp['subTitle'] = \Our\Common::format(\Our\DescribeConst::couponFullAvailable,$orderAmount);
}else if($coupon['coupon_type'] == \Our\ApiConst::discountCouponType){
$temp['title'] = $coupon['discount'];
......@@ -99,7 +99,7 @@ class CouponServiceModel extends \Business\AbstractModel{
$result['type'] = intval($coupon['coupon_type']);
$result['couponId'] = intval($coupon['id']);
if($coupon['coupon_type'] == \Our\ApiConst::fullMinusCouponType){//满额减免券
$result['title'] = $coupon['cash_money'];
$result['title'] = intval($coupon['cash_money']);
$result['subTitle'] = \Our\Common::format(\Our\DescribeConst::couponFullAvailable,$orderAmount);
}else if($coupon['coupon_type'] == \Our\ApiConst::discountCouponType){
$result['title'] = $coupon['discount'];
......@@ -247,14 +247,18 @@ class CouponServiceModel extends \Business\AbstractModel{
\Error\ErrorModel::throwException(\Error\CodeConfigModel::couponNoUsedTicketNum);
}
$memberCouponDao = \DAO\Coupon\MemberCouponModel::getInstance($dbName);
if($coupon['is_overlay']){//允许领用多张的优惠券是否存在已经领取的未使用有效优惠券
$whereSql = ' coupon_state ='.\Our\ApiConst::couponUnused.' and member_id ='.$memberId.' and coupon_id='.$coupon['id'].' and out_time > '.time();
/*if($coupon['is_overlay']){//允许领用多张的优惠券是否存在已经领取的未使用有效优惠券
$whereSql = ' member_id ='.$memberId.' and coupon_id='.$coupon['id'].' and out_time > '.time();
//$memberCoupons = \Our\RedisHelper::cachedFunction(\Redis\Db13\MemberCouponRedisModel::getInstance(), array(&$memberCouponDao, 'getList'),array($whereSql),\Our\ApiConst::oneHour,array($where['couponId']));
$memberCoupons = $memberCouponDao->getList($whereSql);
if($memberCoupons&&count($memberCoupons)>=$coupon['get_ticket_num']){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::alreadyGetTheCoupon);
}
}else{//不允许领用多张的优惠券
$memberCoupons = \Our\RedisHelper::cachedFunction(\Redis\Db13\MemberCouponRedisModel::getInstance(), array(&$memberCouponDao, 'getList'),array(array('coupon_id'=>$where['couponId'],'member_id'=>$memberId)),\Our\ApiConst::oneHour,array($memberId));
}
if($memberCoupons&&count($memberCoupons)>0){
}*/
$memberCoupons = \Our\RedisHelper::cachedFunction(\Redis\Db13\MemberCouponRedisModel::getInstance(), array(&$memberCouponDao, 'getList'),array(array('coupon_id'=>$where['couponId'],'member_id'=>$memberId)),\Our\ApiConst::oneHour,array($memberId));
if($memberCoupons&&count($memberCoupons)>=$coupon['get_ticket_num']){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::alreadyGetTheCoupon);
}
return true;
......
......@@ -39,7 +39,7 @@ class MessageServiceModel extends \Business\AbstractModel
*/
private static $_instance = null;
/**
/**update
* 单例模式获取类实例
*
* @ccw
......@@ -92,9 +92,15 @@ class MessageServiceModel extends \Business\AbstractModel
public function getUnreadCountByMemberIdAndType($toId)
{
$messageHistoryDao = \DAO\MessageHistoryModel::getInstance();
$count = $messageHistoryDao->getUnreadCountByToIdAndToType($toId);
return $count;
$memberDb0Redis=\Redis\Db0\MemberRedisModel::getInstance();
$unredMessageCount=$memberDb0Redis->tableHGet($toId,'unread_message_count');
if($unredMessageCount===false){
$messageHistoryDao = \DAO\MessageHistoryModel::getInstance();
$unredMessageCount = $messageHistoryDao->getUnreadCountByToIdAndToType($toId);
$memberDb0Redis->tableHset($toId,'unread_message_count',$unredMessageCount);
}
return $unredMessageCount;
}
/**
......@@ -151,29 +157,29 @@ class MessageServiceModel extends \Business\AbstractModel
return $avatar;
}
public function __destruct()
{
$store = \DAO\StoreModel::getInstance();
$member = \DAO\MemberModel::getInstance();
$messageHistoryDao = \DAO\MessageHistoryModel::getInstance();
$mesageOneDao = \DAO\MessageOneModel::getInstance();
$store->unsetDb();
$member->unsetDb();
$messageHistoryDao->unsetDb();
$mesageOneDao->unsetDb();
}
public function unsetDb()
{
$store = \DAO\StoreModel::getInstance();
$member = \DAO\MemberModel::getInstance();
$messageHistoryDao = \DAO\MessageHistoryModel::getInstance();
$mesageOneDao = \DAO\MessageOneModel::getInstance();
$store->unsetDb();
$member->unsetDb();
$messageHistoryDao->unsetDb();
$mesageOneDao->unsetDb();
}
// public function __destruct()
// {
// $store = \DAO\StoreModel::getInstance();
// $member = \DAO\MemberModel::getInstance();
// $messageHistoryDao = \DAO\MessageHistoryModel::getInstance();
// $mesageOneDao = \DAO\MessageOneModel::getInstance();
// $store->unsetDb();
// $member->unsetDb();
// $messageHistoryDao->unsetDb();
// $mesageOneDao->unsetDb();
// }
//
// public function unsetDb()
// {
// $store = \DAO\StoreModel::getInstance();
// $member = \DAO\MemberModel::getInstance();
// $messageHistoryDao = \DAO\MessageHistoryModel::getInstance();
// $mesageOneDao = \DAO\MessageOneModel::getInstance();
// $store->unsetDb();
// $member->unsetDb();
// $messageHistoryDao->unsetDb();
// $mesageOneDao->unsetDb();
// }
/**
* 获得全部类型消息,每种消息一条数据,以及每种消息的未读条数
......@@ -327,6 +333,12 @@ class MessageServiceModel extends \Business\AbstractModel
$messageOneDao->setDb(DbNameConst::masterDBConnectName);
$messageOneDao->updateUnreadField($fromId, $fromType, $toId, $toType);
$isSuccess = $messageHistoryDao->updateByFromIdAndSelfTypeAndToIdAndToType($fromId, $fromType, $toId, $toType);
$memberDb0Redis=\Redis\Db0\MemberRedisModel::getInstance();
if($isSuccess){
$isSuccess=-1*$isSuccess;
$memberDb0Redis->tableHIncrBy($fromId,'unread_message_count',$isSuccess);
}
return $isSuccess;
}
......@@ -341,7 +353,8 @@ class MessageServiceModel extends \Business\AbstractModel
}
}
private $messageHistoryDao;
private $mesageOneDao;
public function addMessage($fromId, $selfId, $fromName, $fromType, $message, $toId, $toUserId, $toName, $toType, $messageId = false)
{
$messageHistoryDao = \DAO\MessageHistoryModel::getInstance();
......@@ -389,6 +402,7 @@ class MessageServiceModel extends \Business\AbstractModel
$messageHistoryDao->db->doCommit();
unset($messageHistoryDao->db);
unset($messageHistoryDao);
unset($mesageOneDao->db);
unset($mesageOneDao);
//$messageHistoryDao->sendMessage($mesageHistory,$toId);
......
......@@ -1008,10 +1008,10 @@ class OrderServiceModel extends \Business\AbstractModel
$orderAmount = intval($coupon['order_amount']);
if ($coupon['type'] == \Our\ApiConst::noLimitCoupon) {//无门槛优惠券
$temp['type'] = \Our\ApiConst::noLimitCouponType;
$temp['title'] = $coupon['cash_money'];
$temp['title'] = intval($coupon['cash_money']);
$temp['subTitle'] = \Our\DescribeConst::noLimitCoupon;
} else if ($coupon['coupon_type'] == \Our\ApiConst::fullMinusCouponType) {//满额减免券
$temp['title'] = $coupon['cash_money'];
$temp['title'] = intval($coupon['cash_money']);
$temp['subTitle'] = \Our\Common::format(\Our\DescribeConst::couponFullAvailable, $orderAmount);
} else if ($coupon['coupon_type'] == \Our\ApiConst::discountCouponType) {
$temp['title'] = $coupon['discount'];
......@@ -1025,7 +1025,7 @@ class OrderServiceModel extends \Business\AbstractModel
}
$temp['storeId'] = $coupon['store_id'];
if ($temp['storeId']) {
$storeInfo = \Our\RedisHelper::cachedFunction(\Redis\Db6\StoreRedisModel::getInstance(), array(&$storeDao, 'getInfoById'), array($temp['storeId'], 'store_name'), \Our\ApiConst::oneHour);
$storeInfo = $storeDao->get($temp['storeId'],false);
if (!$storeInfo) {
continue;
}
......
......@@ -546,13 +546,13 @@ class StoreServiceModel extends \Business\AbstractModel{
foreach($allStores as &$store){
$store['isPurchased'] = \Our\ApiConst::zero;
}
$memberStoreIds = null;
$memberStores = null;
if($memberId){
$favoritesStoreDao = \DAO\FavoritesStoreModel::getInstance();
$memberStoreIds = \Our\RedisHelper::cachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(), array(&$favoritesStoreDao, 'selectList'), array(array('member_id'=>$memberId,'fav_from'=>\Our\ApiConst::scanFavor),'distinct(store_id) as store_id'), \Our\ApiConst::oneHour,array($memberId));
$memberStoreList = \Our\RedisHelper::cachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(), array(&$favoritesStoreDao, 'selectList'), array(array('member_id'=>$memberId,'fav_from'=>\Our\ApiConst::scanFavor),'store_id,fav_time'), \Our\ApiConst::oneHour,array($memberId));
//$storeMemberDao->getList(array('member_id'=>$memberId,'type'=>\Our\ApiConst::storeQrcodeMember),'distinct(store_id) as store_id')
if($memberStoreIds){
$memberStoreIds = array_column($memberStoreIds,'store_id');
if($memberStoreList){
$memberStores = $this->getPurchasedStoreClass($memberStoreList,$gcId);
}
}
......@@ -581,31 +581,21 @@ class StoreServiceModel extends \Business\AbstractModel{
$purchasedStore = array();
if($signStores&&in_array($goodsClass['gcId'],array_keys($signStores))){//如果当前分类存在对应签约店铺
$exitStore = $allStores[$signStores[$goodsClass['gcId']]];
$existStoreIds = $signStores[$goodsClass['gcId']];
}else if($serviceStores&&in_array($goodsClass['gcId'],array_keys($serviceStores))){
$exitStore = $allStores[$serviceStores[$goodsClass['gcId']]];
$existStoreIds = $serviceStores[$goodsClass['gcId']];
}else if($expressStores&&in_array($goodsClass['gcId'],array_keys($expressStores))){
$exitStore = $allStores[$expressStores[$goodsClass['gcId']]];
$existStoreIds = $expressStores[$goodsClass['gcId']];
}
if($memberStoreIds){
$existSignStores = array_intersect($signStores,$memberStoreIds);
$existServiceStores = array_intersect($serviceStores,$memberStoreIds);
$existExpressStores = array_intersect($expressStores,$memberStoreIds);
if($existSignStores&&in_array($goodsClass['gcId'],array_keys($existSignStores))&&$existSignStores[$goodsClass['gcId']]!=$existStoreIds){
$purchasedStore = $allStores[$existSignStores[$goodsClass['gcId']]];
}else if($existServiceStores&&in_array($goodsClass['gcId'],array_keys($existServiceStores))&&$existServiceStores[$goodsClass['gcId']]!=$existStoreIds){
$purchasedStore = $allStores[$existServiceStores[$goodsClass['gcId']]];
}else if($existExpressStores&&in_array($goodsClass['gcId'],array_keys($existExpressStores))&&$existExpressStores[$goodsClass['gcId']]!=$existStoreIds){
$purchasedStore = $allStores[$existExpressStores[$goodsClass['gcId']]];
if($memberStores){
if($memberStores&&in_array($goodsClass['gcId'],array_keys($memberStores))){
$purchasedStore = $allStores[$memberStores[$goodsClass['gcId']]];
}
if($purchasedStore){
$purchasedStore['isPurchased'] = \Our\ApiConst::one;
}
}
if($exitStore&&$purchasedStore&&$exitStore['storeId']==$purchasedStore['storeId']){
$returnStores['stores'][] = $purchasedStore;
$returnStores['stores'][] = $exitStore;
}else{
if(isset($exitStore)&&$exitStore){
$returnStores['stores'][] =$exitStore;
......@@ -626,6 +616,35 @@ class StoreServiceModel extends \Business\AbstractModel{
}
public function getPurchasedStoreClass($memberStoreList,$gcId){
$memberStoreIds = array_column($memberStoreList,'store_id');
$signStoreClassSql = ' store_id in ('.implode(',',$memberStoreIds).') and is_charged=1 and gc_parent_id ='.$gcId;
$qmStoreClassDao = \DAO\QmStoreClassModel::getInstance();
$signClassStores = $qmStoreClassDao->selectByWhere($signStoreClassSql,'store_id,gc_id');
if($signClassStores){
$return = array();
foreach($memberStoreList as $tempStore){
$storeFlag = false;
foreach($signClassStores as $signClass){
if($tempStore['store_id']==$signClass['store_id']){
if($storeFlag){
break;
}
if(isset($return[$signClass['gc_id']])&&$return[$signClass['gc_id']]){
continue;
}
$return[$signClass['gc_id']] = $signClass['store_id'];
$storeFlag = true;
}
}
}
return $return;
}
return false;
}
/**
* 获取一级分类在签约店铺中的签约分类
* @param $gcId 一级分类对应gcId
......@@ -639,7 +658,7 @@ class StoreServiceModel extends \Business\AbstractModel{
$signStoreIds = $storeRedis->find($signStoreKey, \Our\ApiConst::oneHour);
//签约店铺存在
if($signStoreIds){
$return = $this->getStoreClassesByStoreIds($signStoreIds,$gcId);
$return = $this->getSignStoreClassesByStoreIds($signStoreIds,$gcId,$position);
return $return;
}
return false;
......@@ -656,11 +675,11 @@ class StoreServiceModel extends \Business\AbstractModel{
$storeRedis = \Redis\Db6\StoreRedisModel::getInstance();
$signStoreKey = \Our\NameConst::signStoreIdsPrefix.crc32(serialize($position));
$serviceStoreKey = \Our\NameConst::serviceStoreIdsPrefix.crc32(serialize($position));
$signStoreIds = $storeRedis->find($signStoreKey, \Our\ApiConst::oneHour);
//$signStoreIds = $storeRedis->find($signStoreKey, \Our\ApiConst::oneHour);
$serviceStoreIds = $storeRedis->find($serviceStoreKey, \Our\ApiConst::oneHour);
if($signStoreIds&&$serviceStoreIds){
/*if($signStoreIds&&$serviceStoreIds){
$serviceStoreIds = array_diff($serviceStoreIds,$signStoreIds);
}
}*/
//签约店铺存在
if($serviceStoreIds){
$return = $this->getStoreClassesByStoreIds($serviceStoreIds,$gcId);
......@@ -672,20 +691,20 @@ class StoreServiceModel extends \Business\AbstractModel{
public function getExpressStores($gcId,$position){
ksort($position);
$storeDao = \DAO\StoreModel::getInstance();
$storeRedis = \Redis\Db6\StoreRedisModel::getInstance();
/*$storeRedis = \Redis\Db6\StoreRedisModel::getInstance();
$signStoreKey = \Our\NameConst::signStoreIdsPrefix.crc32(serialize($position));
$serviceStoreKey = \Our\NameConst::serviceStoreIdsPrefix.crc32(serialize($position));
$signStoreIds = $storeRedis->find($signStoreKey, \Our\ApiConst::oneHour);
$serviceStoreIds = $storeRedis->find($serviceStoreKey, \Our\ApiConst::oneHour);
$serviceStoreIds = $storeRedis->find($serviceStoreKey, \Our\ApiConst::oneHour);*/
$expressStores = $storeDao->getExpressStores('store_id');
if($expressStores){
$expressStoreIds = array_column($expressStores,'store_id');
if($signStoreIds){
/*if($signStoreIds){
$expressStoreIds = array_diff($expressStoreIds,$signStoreIds);
}
if($serviceStoreIds){
$expressStoreIds = array_diff($expressStoreIds,$serviceStoreIds);
}
}*/
if($expressStoreIds){
$return = $this->getStoreClassesByStoreIds($expressStoreIds,$gcId);
return $return;
......@@ -694,16 +713,58 @@ class StoreServiceModel extends \Business\AbstractModel{
return false;
}
/**
* 获取签约店铺的签约分类
* @param $signStoreIds
* @param $gcId
* @return array|bool
*/
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 = $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']){
if($return[$signClass['gc_id']]){
continue;
}
$return[$signClass['gc_id']] = $signClass['store_id'];
}
}
return $return;
}
return false;
}
public function getStoreClassesByStoreIds($storeIds,$gcId){
$signStoreClassSql = ' store_id in ('.implode(',',$storeIds).') and is_charged=1 and gc_parent_id ='.$gcId;
$qmStoreClassDao = \DAO\QmStoreClassModel::getInstance();
$signClassStores = $qmStoreClassDao->selectByWhere($signStoreClassSql,'store_id,gc_id');
//$signClassStores = $storeGoodsClassDao->selectByWhere($signStoreClassSql,'store_id,gc_id');
if($signClassStores){
$return = array();
foreach($signClassStores as $signClass){
$return[$signClass['gc_id']] = $signClass['store_id'];
shuffle($signClassStores);
$gcIds = array_unique(array_column($signClassStores,'gc_id'));
foreach($gcIds as $tempGcId){
if($return[$tempGcId]){
break;
}
foreach($signClassStores as $signClass){
if($tempGcId==$signClass['gc_id']){
if($return[$signClass['gc_id']]){
break;
}
$return[$signClass['gc_id']] = $signClass['store_id'];
}
}
}
return $return;
}
return false;
......
......@@ -55,6 +55,7 @@ class MemberServiceModel extends \Business\AbstractModel
}
$member['sendTime']=TIMESTAMP;
$this->memberDb0Redis->tableHMSet(trim($member['member_id']),$member,ApiConst::tenDaySecond);
$this->memberDb0Redis->tableHDel(trim($member['member_id']),'unread_message_count');
}
......
......@@ -30,7 +30,7 @@ abstract class AbstractModel {
}
public function unsetDb(){
unset($this->db);
LinkMySQLModel::unsetDbConecet();
// LinkMySQLModel::unsetDbConecet();
}
/**
* 捕获dao中没有的方法,直接访问mysql中相应的类的方法
......
File mode changed from 100755 to 100644
......@@ -241,9 +241,9 @@ class CouponModel extends \DAO\AbstractModel {
$temp['gift_goods_ids'] = isset($coupon['gift_goods_ids'])?$coupon['gift_goods_ids']:\Our\NameConst::emptyString;
$orderAmount = intval($coupon['order_amount']);
if($coupon['type'] == \Our\ApiConst::noLimitCoupon){//无门槛优惠券
$temp['title'] = $coupon['cash_money'].\Our\DescribeConst::noLimitGoodsCouponName;
$temp['title'] = intval($coupon['cash_money']).\Our\DescribeConst::noLimitGoodsCouponName;
}else if($coupon['coupon_type'] == \Our\ApiConst::fullMinusCouponType){//满额减免券
$temp['title'] = \Our\Common::format(\Our\DescribeConst::couponTitleFullAvailAble,$orderAmount,$coupon['cash_money']);
$temp['title'] = \Our\Common::format(\Our\DescribeConst::couponTitleFullAvailAble,$orderAmount,intval($coupon['cash_money']));
}else if($coupon['coupon_type'] == \Our\ApiConst::discountCouponType){
$temp['title'] = \Our\Common::format(\Our\DescribeConst::couponFullDiscount,$orderAmount,$coupon['discount']);
}else if($coupon['coupon_type'] == \Our\ApiConst::fullForCouponCouponType){
......@@ -275,10 +275,10 @@ class CouponModel extends \DAO\AbstractModel {
$orderAmount = intval($coupon['order_amount']);
if($coupon['type'] == \Our\ApiConst::noLimitCoupon){//无门槛优惠券
$temp['type'] = \Our\ApiConst::noLimitCouponType;
$temp['title'] = $coupon['cash_money'];
$temp['title'] = intval($coupon['cash_money']);
$temp['subTitle'] = \Our\DescribeConst::noLimitCoupon;
}else if($coupon['coupon_type'] == \Our\ApiConst::fullMinusCouponType){//满额减免券
$temp['title'] = $coupon['cash_money'];
$temp['title'] = intval($coupon['cash_money']);
$temp['subTitle'] = \Our\Common::format(\Our\DescribeConst::couponFullAvailable,$orderAmount);
}else if($coupon['coupon_type'] == \Our\ApiConst::discountCouponType){
$temp['title'] = $coupon['discount'];
......
......@@ -33,12 +33,16 @@ class FavoritesStoreModel extends \DAO\AbstractModel {
return $this->db->select($field)->from($this->_tableName)->join('han_store',"han_favorites_store.store_id = han_store.store_id",'inner')->join('han_store_score_statistics',"han_favorites_store.store_id = han_store_score_statistics.store_id",'left')->where(['han_favorites_store.member_id'=>$memberId,'fav_type'=>1])->where($where)->page($pageIndex,$pageSize)->order('fav_time','DESC')->fetchAll();
}
public function selectList($where,$field = \Our\NameConst::allField){
public function selectList($where,$field = \Our\NameConst::allField,$order=array('fav_time'=>'desc')){
$this->setDb($this->dbName);
if(is_array($where)){
$where = $this->db->getSqlWhereByArray($where);
}
return $this->db->select($field)->from($this->_tableName)->where($where)->fetchAll();
$this->db->select($field)->from($this->_tableName)->where($where);
foreach($order as $key=>$val){
$this->db->order($key,$val);
}
return $this->db->fetchAll();
}
public function getOne($field,$where){
......
......@@ -34,6 +34,12 @@ class AbstractModel {
*/
static $redis;
public function __destruct(){
if(!empty(self::$redis)){
self::$redis->close();
}
}
/**
* 获取redis连接
*
......
......@@ -85,6 +85,14 @@ class MemberRedisModel extends \Redis\Db0\AbstractModel {
return $res;
}
public function tableHIncrBy($h,$key,$keysvalue){
return $this->hIncrBy($this->calcKey($h),$key,$keysvalue);
}
public function tableHDel($mid,$key){
$res=$this->hDel($this->calcKey($mid), $key);
return $res;
}
/**
* 类实例
......
......@@ -316,3 +316,48 @@ push.user.service.type=7
elastic.master.host="192.168.1.201"
elastic.master.port="9200"
elastic.master.scheme="http";
[lyz : common]
; 数据库配置
resources.database.params.driver = "pdo_mysql"
resources.database.params.hostname = "127.0.0.1"
resources.database.params.port = 3306
resources.database.params.database = "qmcs"
resources.database.params.username = "root"
resources.database.params.password = "123456"
resources.database.params.charset = "UTF8"
resources.database.params.driver_options.1002 = "SET NAMES utf8"
; 从库配置
resources.database.slave.params.driver = "pdo_mysql"
resources.database.slave.params.hostname = "127.0.0.1"
resources.database.slave.params.port = 3306
resources.database.slave.params.database = "qmcs"
resources.database.slave.params.username = "root"
resources.database.slave.params.password = "123456"
resources.database.slave.params.charset = "UTF8"
resources.database.slave.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";
;锁文件
out.locks="/data/locks";
; redis配置
;redis.database.params.password = "test"
;推送配置
push.clientHost="ws://192.168.80.134:9502"
push.host="192.168.134.18"
push.port="9503"
push.open=1
push.user.service.id=293
push.user.service.type=7
elastic.master.host="192.168.1.201"
elastic.master.port="9200"
elastic.master.scheme="http";
......@@ -134,3 +134,20 @@ config.url.indexUrl="/www/local.qm.com/application/library/React"
config.url.libary="/www/local.qm.com/application/library"
; 文件目录
[lyz : common]
; url相关配置
config.url.resourcesHost = "http://local.qm.com"
; 用户中心host
config.url.userHost = ""
; oss 域名
config.url.ossHost = "http://qmoss-01.oss-cn-hangzhou.aliyuncs.com"
;推送域名
config.url.pushHost="127.0.0.1:9503";
config.url.convert="/usr/local/bin/wkhtmltoimage";
config.url.indexUrl="/www/local.qm.com/application/library/React"
config.url.libary="/www/local.qm.com/application/library"
; 文件目录
......@@ -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'){
if(APP_ENV=='test' || APP_ENV=='pre' ||APP_ENV=='ccwdevelop' || APP_ENV=='product' || APP_ENV=='productone'){
if(isset($_POST['data']['debug'])&&!empty($_POST['data']['debug'])){
// define("DEBUG",1);
error_reporting(E_ALL);
......
......@@ -9,8 +9,8 @@
</head>
<body>
<form action="/message/getSet" method="post">
用户登录状态key:<input name="data[key]" value="ca44044c38f5a6d06ddd7304e1c7666c"/><br />
用户登录状态key:<input name="data[key]" value="687688f35b1fe2fbef39a85537aafd9c"/><br />
debug:<input name="data[debug]" value="1"/><br />
<input type="submit" value="提交">
</form>
......
......@@ -10,7 +10,7 @@
<body>
<form action="/message/getUnreadCount" method="post">
用户登录状态key:<input name="data[key]" value="fd4b739c4815297044191451eabf0eb5"/><br />
<input name="data[debug]" value="1"/><br />
<input type="submit" value="提交">
</form>
......
......@@ -117,11 +117,14 @@ $serv->on('Message', function($server, $frame) use($conf){
$messageService->addMessage($sendMessage['fromId'],$sendMessage['fromUserId'],$sendMessage['fromUserName'],$sendMessage['fromType'],$sendMessage['message'],$sendMessage['toId'],$sendMessage['toUserId'],$sendMessage['toUserName'],$sendMessage['toType'],$sendMessage['id']);
$sendMessage['message']=serialize($sendMessage['message']);
$redis->rPush('push_center',serialize($sendMessage));
$redis->hIncrBy(KEY_PRE.$rev_data['toId'],'unread_message_count',\Our\ApiConst::one);
}
$redis->close();
unset($redis);
unset($memberDb0Redis);
// $messageService->unsetDb();
unset($messageService);
\Mysql\LinkMySQLModel::unsetDbConecet();
}else{
$realKey = KEY_REDIS_PRE.$key;
$sessData=$redis->get($realKey);
......@@ -229,6 +232,7 @@ $tcp_server->on('receive', function($serv, $fd, $from_id, $data) use($conf) {
if($async_data){
$value['message']=unserialize($value['message']);
$sendFd=$redis->hGet(KEY_PRE.$value['toId'],'fd');
$redis->hIncrBy(KEY_PRE.$value['toId'],'unread_message_count',\Our\ApiConst::one);
if(!empty($sendFd)){
$serv->push($sendFd, responseJson(1,"fromMsg","success", $value));
$redis->hSet(KEY_PRE.$value['fromId'],'sendTime', time());
......@@ -242,6 +246,7 @@ $tcp_server->on('receive', function($serv, $fd, $from_id, $data) use($conf) {
if($async_data){
$sendFd=$redis->hGet(KEY_PRE.$data['data']['toId'],'fd');
$data['data']['message']=unserialize($data['data']['message']);
$redis->hIncrBy(KEY_PRE.$data['data']['toId'],'unread_message_count',\Our\ApiConst::one);
if(!empty($sendFd)){
$serv->push($sendFd, responseJson($sendFd,"fromMsg","success", $data['data']));
$redis->hSet(KEY_PRE.$data['data']['fromId'],'sendTime', time());
......
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