Commit eba7e1bd authored by chenchuanwen's avatar chenchuanwen

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

parents d9322863 b6e9bb74
...@@ -97,7 +97,7 @@ class MessageController extends \Our\Controller_AbstractApi { ...@@ -97,7 +97,7 @@ class MessageController extends \Our\Controller_AbstractApi {
if($button['type']==\Our\ApiConst::messageButtonTypeConfirmButton){ if($button['type']==\Our\ApiConst::messageButtonTypeConfirmButton){
$orderService= \Business\Order\OrderServiceModel::getInstance(); $orderService= \Business\Order\OrderServiceModel::getInstance();
$this->message=\Our\DescribeConst::confirmOrderSuccess; $this->message=\Our\DescribeConst::confirmOrderSuccess;
return $orderService->confirmRecieve($this->memberId,$button['params']['orderId']); return $orderService->confirmRecieve($button['params']['orderId'],$this->memberId);
} }
\Error\ErrorModel::throwException(\Error\CodeConfigModel::commonError); \Error\ErrorModel::throwException(\Error\CodeConfigModel::commonError);
} }
...@@ -117,7 +117,7 @@ class MessageController extends \Our\Controller_AbstractApi { ...@@ -117,7 +117,7 @@ class MessageController extends \Our\Controller_AbstractApi {
} }
$res=$this->getServiceUpdate($res); $res=$this->getServiceUpdate($res);
if($res!==false){ if($res!==false){
$this->success($res,$this->message); $this->success($this->message,$this->message);
}else{ }else{
\Error\ErrorModel::throwException(\Error\CodeConfigModel::receiveError); \Error\ErrorModel::throwException(\Error\CodeConfigModel::receiveError);
} }
...@@ -132,6 +132,7 @@ class MessageController extends \Our\Controller_AbstractApi { ...@@ -132,6 +132,7 @@ class MessageController extends \Our\Controller_AbstractApi {
$pushSet['canPush']=$this->req['data']['canPush']; $pushSet['canPush']=$this->req['data']['canPush'];
$pushSet['sound']=$this->req['data']['sound']; $pushSet['sound']=$this->req['data']['sound'];
$pushSet['vibrate']=$this->req['data']['vibrate']; $pushSet['vibrate']=$this->req['data']['vibrate'];
$pushSet['timeDiff']=$this->req['data']['timeDiff'];
if(isset($pushSet['canPush'])&& isset($pushSet['sound']) && isset($pushSet['vibrate']) ){ if(isset($pushSet['canPush'])&& isset($pushSet['sound']) && isset($pushSet['vibrate']) ){
$res=$messageService->set($this->memberId,$pushSet); $res=$messageService->set($this->memberId,$pushSet);
if($res){ if($res){
......
...@@ -58,7 +58,7 @@ class UserController extends \Our\Controller_AbstractIndex { ...@@ -58,7 +58,7 @@ class UserController extends \Our\Controller_AbstractIndex {
$this->sess[NameConst::sessionKey]=$this->key; $this->sess[NameConst::sessionKey]=$this->key;
$member[NameConst::sessionKey]=$this->key; $member[NameConst::sessionKey]=$this->key;
$this->memberService->saveMember($member); $this->memberService->saveMember($member);
$this->success(array('key'=>$this->key,'memberName'=>$member['member_name'],'memberAvatar'=>$member['memberAvatarUrl'])); $this->success(array('key'=>$this->key,'memberName'=>$member['member_name'],'memberAvatar'=>$member['memberAvatarUrl'],'memberId'=>(int)$member['member_id']));
}else{ }else{
ErrorModel::throwException(CodeConfigModel::errorUsernameOrPassword); ErrorModel::throwException(CodeConfigModel::errorUsernameOrPassword);
} }
...@@ -118,7 +118,7 @@ class UserController extends \Our\Controller_AbstractIndex { ...@@ -118,7 +118,7 @@ class UserController extends \Our\Controller_AbstractIndex {
$this->sess[NameConst::sessionKey]=$this->key; $this->sess[NameConst::sessionKey]=$this->key;
$member[NameConst::sessionKey]=$this->key; $member[NameConst::sessionKey]=$this->key;
$this->memberService->saveMember($member); $this->memberService->saveMember($member);
$this->success(array('key'=>$this->key,'memberName'=>$member['member_name'],'memberAvatar'=>$member['memberAvatarUrl'])); $this->success(array('key'=>$this->key,'memberName'=>$member['member_name'],'memberAvatar'=>$member['memberAvatarUrl'],'memberId'=>$member['member_id']));
} }
ErrorModel::throwException(CodeConfigModel::registerMemberFailed); ErrorModel::throwException(CodeConfigModel::registerMemberFailed);
} }
...@@ -141,7 +141,7 @@ class UserController extends \Our\Controller_AbstractIndex { ...@@ -141,7 +141,7 @@ class UserController extends \Our\Controller_AbstractIndex {
$member[NameConst::sessionKey]=$this->key; $member[NameConst::sessionKey]=$this->key;
$member['login_time']=TIMESTAMP; $member['login_time']=TIMESTAMP;
$this->memberService->saveMember($member); $this->memberService->saveMember($member);
$this->success(array('userFlag'=>\Our\ApiConst::one,'key'=>$this->key,'memberName'=>$member['member_name'],'memberAvatar'=>$member['memberAvatarUrl'])); $this->success(array('userFlag'=>\Our\ApiConst::one,'key'=>$this->key,'memberName'=>$member['member_name'],'memberAvatar'=>$member['memberAvatarUrl'],'memberId'=>(int)$member['member_id']));
}else{ }else{
$this->success(array('userFlag'=>\Our\ApiConst::zero)); $this->success(array('userFlag'=>\Our\ApiConst::zero));
} }
......
...@@ -2,6 +2,9 @@ ...@@ -2,6 +2,9 @@
namespace JPush; namespace JPush;
use InvalidArgumentException; use InvalidArgumentException;
use Our\ApiConst;
use Our\ArrayConst;
use Our\DescribeConst;
use Our\SecretKeys; use Our\SecretKeys;
class ClientPush class ClientPush
...@@ -31,46 +34,70 @@ class ClientPush ...@@ -31,46 +34,70 @@ class ClientPush
} }
return true; return true;
} }
private function getMessageType($type){
$baseTitle=DescribeConst::appName;
switch($type){
case ApiConst::systemMessageType:$baseTitle=$baseTitle.ArrayConst::messageName[ApiConst::systemMessageType];break;
case ApiConst::orderMessageType:$baseTitle=$baseTitle.ArrayConst::messageName[ApiConst::orderMessageType];break;
case ApiConst::deliveryMessageType:$baseTitle=$baseTitle.ArrayConst::messageName[ApiConst::deliveryMessageType];break;
case ApiConst::storeMessageType:$baseTitle=$baseTitle.ArrayConst::messageName[ApiConst::storeMessageType];break;
case ApiConst::memberMessageType:$baseTitle=$baseTitle.ArrayConst::messageName[ApiConst::memberMessageType];break;
default:$baseTitle;break;
}
return $baseTitle;
}
private function getMessageContent($message){
$messageContent='推送消息:';
switch($message['type']){
case ApiConst::reacheCallMessage:
case ApiConst::refundReturnMessage:
case ApiConst::deliveryChangeMessage:
case ApiConst::autoSendMessage:
case ApiConst::orderStateChangeMessage:
case ApiConst::orderReceiveMessage:
case ApiConst::orderMessageType:$messageContent=$message['content'];break;
case ApiConst::onePictureMessage:$messageContent=DescribeConst::imageMessage;break;
default:$messageContent=$messageContent.$message['content'];;break;
}
return $messageContent;
}
public function push($pushData) public function push($pushData)
{ {
// echo json_encode($pushData);
$title=$this->getMessageType($pushData['fromType']);
$messageContent=$this->getMessageContent($pushData['message']);
// $pushObject=array('id'=>$toId,'memberName'=>'abc');
// $pushData['toId']=249;
try { try {
$response = $this->client->push() $response = $this->client->push()
->setPlatform(array('ios', 'android')) ->setPlatform('all')
// 一般情况下,关于 audience 的设置只需要调用 addAlias、addTag、addTagAnd 或 addRegistrationId // 一般情况下,关于 audience 的设置只需要调用 addAlias、addTag、addTagAnd 或 addRegistrationId
// 这四个方法中的某一个即可,这里仅作为示例,当然全部调用也可以,多项 audience 调用表示其结果的交集 // 这四个方法中的某一个即可,这里仅作为示例,当然全部调用也可以,多项 audience 调用表示其结果的交集
// 即是说一般情况下,下面三个方法和没有列出的 addTagAnd 一共四个,只适用一个便可满足大多数的场景需求 // 即是说一般情况下,下面三个方法和没有列出的 addTagAnd 一共四个,只适用一个便可满足大多数的场景需求
// ->addAlias('alias') ->addAlias((string)$pushData['toId'])
->addTag(array('tag1', 'tag2')) // ->addTag(array($pushData['toId'], 'tag2'))
// ->addRegistrationId($registration_id) //->addRegistrationId($pushData['toId'])
->setNotificationAlert('Hi, JPush') ->setNotificationAlert($title)
->iosNotification('Hello IOS', array( ->iosNotification($messageContent, array(
'sound' => 'sound.caf', 'sound' => 'sound.caf',
// 'badge' => '+1', // 'badge' => '+1',
// 'content-available' => true, // 'content-available' => true,
// 'mutable-content' => true, // 'mutable-content' => true,
'category' => 'jiguang', 'category' => 'shenbd',
'extras' => array( 'extras' => $pushData,
'key' => 'value',
'jiguang'
),
)) ))
->androidNotification('Hello Android', array( ->androidNotification($messageContent, array(
'title' => 'hello jpush', 'title' =>$title,
// 'builder_id' => 2, // 'builder_id' => 2,
'extras' => array( 'extras' => $pushData,
'key' => 'value',
'jiguang'
),
)) ))
->message('message content', array( ->message($messageContent, array(
'title' => 'hello jpush', 'title' => $title,
// 'content_type' => 'text', 'content_type' => $pushData['message']['type'],
'extras' => array( 'extras' => $pushData,
'key' => 'value',
'jiguang'
),
)) ))
->options(array( ->options(array(
// sendno: 表示推送序号,纯粹用来作为 API 调用标识, // sendno: 表示推送序号,纯粹用来作为 API 调用标识,
......
This diff is collapsed.
...@@ -30,7 +30,7 @@ try { ...@@ -30,7 +30,7 @@ try {
// 这四个方法中的某一个即可,这里仅作为示例,当然全部调用也可以,多项 audience 调用表示其结果的交集 // 这四个方法中的某一个即可,这里仅作为示例,当然全部调用也可以,多项 audience 调用表示其结果的交集
// 即是说一般情况下,下面三个方法和没有列出的 addTagAnd 一共四个,只适用一个便可满足大多数的场景需求 // 即是说一般情况下,下面三个方法和没有列出的 addTagAnd 一共四个,只适用一个便可满足大多数的场景需求
// ->addAlias('alias') ->addAlias('alias')
->addTag(array('tag1', 'tag2')) ->addTag(array('tag1', 'tag2'))
// ->addRegistrationId($registration_id) // ->addRegistrationId($registration_id)
......
...@@ -77,11 +77,23 @@ class ApiConst ...@@ -77,11 +77,23 @@ class ApiConst
const orderMessageType = 2; const orderMessageType = 2;
//快递消息 //快递消息
const deliveryMessageType = 3; const deliveryMessageType = 3;
//客服类型的消息
const serviceMessageType=7;
//店铺消息类型 //店铺消息类型
const storeMessageType = 4; const storeMessageType = 4;
//普通用户消息类型 //普通用户消息类型
const memberMessageType = 5; const memberMessageType = 5;
const ordinaryMessage=0;
const onePictureMessage=21;
const reacheCallMessage=1;
const refundReturnMessage=8;
const deliveryChangeMessage=12;
const autoSendMessage=13;
const orderStateChangeMessage=14;
const orderReceiveMessage=15;
const closeMessage=-1; const closeMessage=-1;
const openMessae=1; const openMessae=1;
//消息状态 //消息状态
......
...@@ -21,7 +21,9 @@ class ArrayConst ...@@ -21,7 +21,9 @@ class ArrayConst
const messageName=array( const messageName=array(
ApiConst::systemMessageType=>"系统消息", ApiConst::systemMessageType=>"系统消息",
ApiConst::orderMessageType=>"订单消息", ApiConst::orderMessageType=>"订单消息",
ApiConst::deliveryMessageType=>"订单消息", ApiConst::deliveryMessageType=>"快递消息",
ApiConst::storeMessageType=>"店铺消息",
ApiConst::memberMessageType=>"用户消息",
); );
//配送方式 //配送方式
const refundShippingType=array( const refundShippingType=array(
......
...@@ -448,6 +448,7 @@ class Common ...@@ -448,6 +448,7 @@ class Common
} }
} }
$orders=array_values($list2key); $orders=array_values($list2key);
array_multisort(array_column($orders,'gmtUpdate'),SORT_DESC,$orders);
return $orders; return $orders;
} }
// //合并一对多列表 // //合并一对多列表
......
<?php <?php
namespace Our; namespace Our;
/** /**
* 这个是路由义 。 * 这个是路由义 。
* *
* @author Administrator * @author Administrator
* *
...@@ -9,7 +9,7 @@ namespace Our; ...@@ -9,7 +9,7 @@ namespace Our;
class DescribeConst class DescribeConst
{ {
const appName='身边店';
//member表字段名 //member表字段名
const successMessage = '操作成功'; const successMessage = '操作成功';
//登陆成功提示 //登陆成功提示
...@@ -31,9 +31,9 @@ class DescribeConst ...@@ -31,9 +31,9 @@ class DescribeConst
const registerMemberFailed = '注册失败'; const registerMemberFailed = '注册失败';
const cancelBindingSuccess = '取消绑成功'; const cancelBindingSuccess = '取消绑成功';
const bindingSuccess = '绑成功'; const bindingSuccess = '绑成功';
const findPasswordSendMsgSuccess = '找回密码发送验证码成功'; const findPasswordSendMsgSuccess = '找回密码发送验证码成功';
...@@ -45,9 +45,9 @@ class DescribeConst ...@@ -45,9 +45,9 @@ class DescribeConst
const changeMobileSuccess = '修改手机号码成功'; const changeMobileSuccess = '修改手机号码成功';
const bindMobileForWxSuccess = '绑手机成功'; const bindMobileForWxSuccess = '绑手机成功';
const thirdPlatformBindSuccess = '第三方账号绑成功'; const thirdPlatformBindSuccess = '第三方账号绑成功';
const memberNamePrefix = '身边店友_'; const memberNamePrefix = '身边店友_';
...@@ -106,12 +106,12 @@ class DescribeConst ...@@ -106,12 +106,12 @@ class DescribeConst
const applySuccess = '申请成功'; const applySuccess = '申请成功';
const noLimitCoupon = '无门槛'; const noLimitCoupon = '无门槛';
const specialCoupon = '指券'; const specialCoupon = '指券';
const giftCoupon = '礼品券'; const giftCoupon = '礼品券';
const couponFullAvailable = '满{0}可用'; const couponFullAvailable = '满{0}可用';
const couponFullDiscount = '满{0}享{1}折'; const couponFullDiscount = '满{0}享{1}折';
const couponFullForCoupon = '满{0}送指券'; const couponFullForCoupon = '满{0}送指券';
const couponFullForGift = '满{0}送礼品券'; const couponFullForGift = '满{0}送礼品券';
const noLimitGoodsCouponName = '元无门槛'; const noLimitGoodsCouponName = '元无门槛';
const available = '可用'; const available = '可用';
...@@ -148,12 +148,12 @@ class DescribeConst ...@@ -148,12 +148,12 @@ class DescribeConst
const refundRetund='退货'; const refundRetund='退货';
//用户订单送达消息 //用户订单送达消息
const reacheRemindTitle='你的订单已经送达'; const reacheRemindTitle='你的订单卖家已经送达';
const reacheRemindContent='你有新的订单号为{0}的订单已经送达'; const reacheRemindContent='你有新的订单号为{0}的订单已经已经送达';
//店铺有新订单 //店铺有新订单
const recieveWaitTitle='你有新的定单'; const recieveWaitTitle='您有新的订单';
const recieveWaitContent='有新的订单号为{0}的订单,是否需要接单'; const recieveWaitContent='有新的订单号为{0}的订单,是否需要接单';
//消息按钮成功提示信息 //消息按钮成功提示信息
const recieveOrderSuccess='接单成功'; const recieveOrderSuccess='接单成功';
...@@ -164,5 +164,7 @@ class DescribeConst ...@@ -164,5 +164,7 @@ class DescribeConst
const cancelOrderMessage='十分钟未支付,自动取消订单'; const cancelOrderMessage='十分钟未支付,自动取消订单';
const anonymity = '匿名用户'; const anonymity = '匿名用户';
const imageMessage='【图片】';
} }
?> ?>
\ No newline at end of file
...@@ -240,6 +240,9 @@ class CartServiceModel extends \Business\AbstractModel{ ...@@ -240,6 +240,9 @@ class CartServiceModel extends \Business\AbstractModel{
foreach($validReturnData as $goods){ foreach($validReturnData as $goods){
$newCart = array(); $newCart = array();
$store = $storeDao->get($goods['store_id'],false); $store = $storeDao->get($goods['store_id'],false);
if($store['member_id']==$memberId){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongAddCartForSelfStore);
}
if(!($storeIds&&in_array($goods['store_id'],$storeIds))){ if(!($storeIds&&in_array($goods['store_id'],$storeIds))){
$storeIds[]=$goods['store_id']; $storeIds[]=$goods['store_id'];
} }
...@@ -263,6 +266,9 @@ class CartServiceModel extends \Business\AbstractModel{ ...@@ -263,6 +266,9 @@ class CartServiceModel extends \Business\AbstractModel{
}else{ }else{
$goods = $validReturnData; $goods = $validReturnData;
$store = $storeDao->get($goods['store_id'],false); $store = $storeDao->get($goods['store_id'],false);
if($store['member_id']==$memberId){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongAddCartForSelfStore);
}
$storeIds[]=$goods['store_id']; $storeIds[]=$goods['store_id'];
$newCart['store_id'] = $goods['store_id']; $newCart['store_id'] = $goods['store_id'];
$newCart['goods_id'] = $goods['goods_id']; $newCart['goods_id'] = $goods['goods_id'];
...@@ -291,6 +297,9 @@ class CartServiceModel extends \Business\AbstractModel{ ...@@ -291,6 +297,9 @@ class CartServiceModel extends \Business\AbstractModel{
public function getPBundlingGoodsCartData($blNum,$memberId,$pBundling){ public function getPBundlingGoodsCartData($blNum,$memberId,$pBundling){
$storeDao = \DAO\StoreModel::getInstance(\Our\DbNameConst::masterDBConnectName); $storeDao = \DAO\StoreModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$store = $storeDao->get($pBundling['store_id'],false); $store = $storeDao->get($pBundling['store_id'],false);
if($store['member_id']==$memberId){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongAddCartForSelfStore);
}
$newCart['store_id'] = $pBundling['store_id']; $newCart['store_id'] = $pBundling['store_id'];
$newCart['goods_id'] = $pBundling['blId']; $newCart['goods_id'] = $pBundling['blId'];
$newCart['goods_commonid'] = \Our\ApiConst::zero; $newCart['goods_commonid'] = \Our\ApiConst::zero;
......
...@@ -23,7 +23,7 @@ class SettingServiceModel extends \Business\AbstractModel{ ...@@ -23,7 +23,7 @@ class SettingServiceModel extends \Business\AbstractModel{
public function getSetting(){ public function getSetting(){
$settingDAO = \DAO\SettingModel::getInstance(); $settingDAO = \DAO\SettingModel::getInstance();
$setting = $settingDAO->getListCache(array('unpayed_order_close_minutes','unreceived_order_close_minutes')); $setting = $settingDAO->getListCache(array('unpayed_order_close_minutes','unreceived_order_close_minutes','service'));
$return = array(); $return = array();
if($setting['unpayed_order_close_minutes']){ if($setting['unpayed_order_close_minutes']){
$return['unpayedOrderColseTime'] = (int)$setting['unpayed_order_close_minutes']; $return['unpayedOrderColseTime'] = (int)$setting['unpayed_order_close_minutes'];
...@@ -31,6 +31,9 @@ class SettingServiceModel extends \Business\AbstractModel{ ...@@ -31,6 +31,9 @@ class SettingServiceModel extends \Business\AbstractModel{
if($setting['unreceived_order_close_minutes']){ if($setting['unreceived_order_close_minutes']){
$return['unreceivedOrderColseTime'] = (int)$setting['unreceived_order_close_minutes']; $return['unreceivedOrderColseTime'] = (int)$setting['unreceived_order_close_minutes'];
} }
if($setting['service']){
$return['service'] = unserialize($setting['service']);
}
return $return; return $return;
} }
private static $_instance = null; private static $_instance = null;
......
...@@ -174,9 +174,9 @@ class GoodsClassServiceModel extends \Business\AbstractModel{ ...@@ -174,9 +174,9 @@ class GoodsClassServiceModel extends \Business\AbstractModel{
$position['lat'] = $where['lat']; $position['lat'] = $where['lat'];
$position['lng'] = $where['lng']; $position['lng'] = $where['lng'];
$position['cityCode'] = $where['cityCode']; $position['cityCode'] = $where['cityCode'];
ksort($position);
$storeRedis = \Redis\Db6\StoreRedisModel::getInstance(); $storeRedis = \Redis\Db6\StoreRedisModel::getInstance();
$serviceStoreKey = \Our\NameConst::serviceStoreIdsPrefix.crc32(serialize(ksort($position))); $serviceStoreKey = \Our\NameConst::serviceStoreIdsPrefix.crc32(serialize($position));
$storeRedis->update($serviceStoreKey,$serviceStoreIds,\Our\ApiConst::oneHour); $storeRedis->update($serviceStoreKey,$serviceStoreIds,\Our\ApiConst::oneHour);
return $serviceStoreIds; return $serviceStoreIds;
} }
...@@ -217,9 +217,10 @@ class GoodsClassServiceModel extends \Business\AbstractModel{ ...@@ -217,9 +217,10 @@ class GoodsClassServiceModel extends \Business\AbstractModel{
$position['lat'] = $where['lat']; $position['lat'] = $where['lat'];
$position['lng'] = $where['lng']; $position['lng'] = $where['lng'];
$position['cityCode'] = $where['cityCode']; $position['cityCode'] = $where['cityCode'];
ksort($position);
$storeRedis = \Redis\Db6\StoreRedisModel::getInstance(); $storeRedis = \Redis\Db6\StoreRedisModel::getInstance();
if($signStoreIds){ if($signStoreIds){
$signStoreKey = \Our\NameConst::signStoreIdsPrefix.crc32(serialize(ksort($position))); $signStoreKey = \Our\NameConst::signStoreIdsPrefix.crc32(serialize($position));
$storeRedis->update($signStoreKey,$signStoreIds,\Our\ApiConst::oneHour); $storeRedis->update($signStoreKey,$signStoreIds,\Our\ApiConst::oneHour);
} }
return array( return array(
......
...@@ -711,8 +711,8 @@ class GoodsCommonServiceModel extends \Business\AbstractModel ...@@ -711,8 +711,8 @@ class GoodsCommonServiceModel extends \Business\AbstractModel
public function getAllNearbyGoods($position){ public function getAllNearbyGoods($position){
ksort($position);
$redisSuffix = crc32(serialize(ksort($position))); $redisSuffix = crc32(serialize($position));
$nearbyStoreKey = \Our\NameConst::nearbyStoreKeyPrefix . $redisSuffix; $nearbyStoreKey = \Our\NameConst::nearbyStoreKeyPrefix . $redisSuffix;
$storeRedis = \Redis\Db6\StoreRedisModel::getInstance(); $storeRedis = \Redis\Db6\StoreRedisModel::getInstance();
...@@ -752,7 +752,8 @@ class GoodsCommonServiceModel extends \Business\AbstractModel ...@@ -752,7 +752,8 @@ class GoodsCommonServiceModel extends \Business\AbstractModel
$position['lat'] = $where['lat']; $position['lat'] = $where['lat'];
$position['lng'] = $where['lng']; $position['lng'] = $where['lng'];
$position['cityCode'] = $where['cityCode']; $position['cityCode'] = $where['cityCode'];
$redisSuffix = crc32(serialize(ksort($position))); ksort($position);
$redisSuffix = crc32(serialize($position));
$nearbyGoodsListKey = \Our\NameConst::nearbyStoreGoodsPrefix . $redisSuffix; $nearbyGoodsListKey = \Our\NameConst::nearbyStoreGoodsPrefix . $redisSuffix;
......
...@@ -757,6 +757,9 @@ class GroupSaleServiceModel extends \Business\AbstractModel { ...@@ -757,6 +757,9 @@ class GroupSaleServiceModel extends \Business\AbstractModel {
} }
if(isset($storeCarts)&&count($storeCarts)>\Our\ApiConst::zero){ if(isset($storeCarts)&&count($storeCarts)>\Our\ApiConst::zero){
$store = $storeDao->get($storeId,false); $store = $storeDao->get($storeId,false);
if($store['member_id']==$memberId){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::selfGoodsForStoreOrder);
}
$temp['storeName'] = $store['store_name']; $temp['storeName'] = $store['store_name'];
$temp['storeId'] = $storeId; $temp['storeId'] = $storeId;
$temp['storeCarts'] = $storeCarts; $temp['storeCarts'] = $storeCarts;
...@@ -790,6 +793,10 @@ class GroupSaleServiceModel extends \Business\AbstractModel { ...@@ -790,6 +793,10 @@ class GroupSaleServiceModel extends \Business\AbstractModel {
$cartRedis->update($memberStoreCartsKey,$temp,\Our\ApiConst::oneHour);*/ $cartRedis->update($memberStoreCartsKey,$temp,\Our\ApiConst::oneHour);*/
} }
}else{ }else{
$store = $storeDao->get($storeId,false);
if($store['member_id']==$memberId){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::selfGoodsForStoreOrder);
}
$result[$storeId]=$returnStoreCartsObj['storeCarts']; $result[$storeId]=$returnStoreCartsObj['storeCarts'];
} }
} }
...@@ -954,6 +961,9 @@ class GroupSaleServiceModel extends \Business\AbstractModel { ...@@ -954,6 +961,9 @@ class GroupSaleServiceModel extends \Business\AbstractModel {
} }
$store = $storeDao->get($storeId,false); $store = $storeDao->get($storeId,false);
if($store['member_id']==$memberId){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::selfGoodsForStoreOrder);
}
$tempObj['goodsMid'] = $store['member_id']; $tempObj['goodsMid'] = $store['member_id'];
$storeCarts[] = $tempObj; $storeCarts[] = $tempObj;
$temp['goodsFreight'] = $goodsFreight; $temp['goodsFreight'] = $goodsFreight;
......
...@@ -24,7 +24,7 @@ class MessageServiceModel extends \Business\AbstractModel ...@@ -24,7 +24,7 @@ class MessageServiceModel extends \Business\AbstractModel
private $messageDao; private $messageDao;
public $memberId; public $memberId;
private $memberMessageField = 'message_id,message_title,message_body,message_type,tpl_type,record_id'; private $memberMessageField = 'message_id,message_title,message_body,message_type,tpl_type,record_id';
private $baseRedis;
public function init() public function init()
{ {
...@@ -122,16 +122,16 @@ class MessageServiceModel extends \Business\AbstractModel ...@@ -122,16 +122,16 @@ class MessageServiceModel extends \Business\AbstractModel
public function getAvatar($type, $userid = 0, $db = DbNameConst::masterDBConnectName) public function getAvatar($type, $userid = 0, $db = DbNameConst::masterDBConnectName)
{ {
$avatar = ''; $avatar = '';
if ($type == 1) { if ($type == ApiConst::systemMessageType) {
$avatar = Common::getStaticFile(ImageConst::sysAvatarName, ImageConst::systemAvatar, ImageConst::imageDomain); $avatar = Common::getStaticFile(ImageConst::sysAvatarName, ImageConst::systemAvatar, ImageConst::imageDomain);
} }
if ($type == 2) { if ($type == ApiConst::orderMessageType) {
$avatar = Common::getStaticFile(ImageConst::orderAvatarName, ImageConst::systemAvatar); $avatar = Common::getStaticFile(ImageConst::orderAvatarName, ImageConst::systemAvatar);
} }
if ($type == 3) { if ($type == ApiConst::deliveryMessageType) {
$avatar = Common::getStaticFile(ImageConst::expressAvatarName, ImageConst::systemAvatar, ImageConst::imageDomain); $avatar = Common::getStaticFile(ImageConst::expressAvatarName, ImageConst::systemAvatar, ImageConst::imageDomain);
} }
if ($type == 4) { 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);
$avatar=$storeData['storeLabel']; $avatar=$storeData['storeLabel'];
...@@ -139,7 +139,7 @@ class MessageServiceModel extends \Business\AbstractModel ...@@ -139,7 +139,7 @@ class MessageServiceModel extends \Business\AbstractModel
$avatar = Common::getStaticFile($avatar, ImageConst::storeLabel, ImageConst::imageDomain); $avatar = Common::getStaticFile($avatar, ImageConst::storeLabel, ImageConst::imageDomain);
} }
if ($type == 5) { if ($type == ApiConst::memberMessageType || $type==ApiConst::serviceMessageType) {
$member = \DAO\MemberModel::getInstance(); $member = \DAO\MemberModel::getInstance();
$memerAvatar = $member->getInfo($userid, 'member_avatar'); $memerAvatar = $member->getInfo($userid, 'member_avatar');
$avatar = $member->getMemberAvatarUrl($userid, $memerAvatar); $avatar = $member->getMemberAvatarUrl($userid, $memerAvatar);
...@@ -170,9 +170,9 @@ class MessageServiceModel extends \Business\AbstractModel ...@@ -170,9 +170,9 @@ class MessageServiceModel extends \Business\AbstractModel
foreach ($messageOneList['list'] as &$val) { foreach ($messageOneList['list'] as &$val) {
$self = $this->getUserByMemberIdAndSelfType($val['fromId'], $val['fromType']); $self = $this->getUserByMemberIdAndSelfType($val['fromId'], $val['fromType']);
$toMember = $this->getUserByMemberIdAndSelfType($val['toId'], $val['toType']); $toMember = $this->getUserByMemberIdAndSelfType($val['toId'], $val['toType']);
$val['toAvatar'] = $self['avatar']; $val['toAvatar'] = $toMember['avatar'];
$val['message'] =$messageHistoryDao->convertMessage($val['message']); $val['message'] =$messageHistoryDao->convertMessage($val['message']);
$val['fromAvatar'] = $toMember['avatar']; $val['fromAvatar'] = $self['avatar'];
// $val['toAvatar']=$this->getAvatar($val['toType'],$val['toId']); // $val['toAvatar']=$this->getAvatar($val['toType'],$val['toId']);
// $val['fromAvatar']=$this->getAvatar($val['fromType'],$val['fromId']); // $val['fromAvatar']=$this->getAvatar($val['fromType'],$val['fromId']);
} }
...@@ -192,7 +192,7 @@ class MessageServiceModel extends \Business\AbstractModel ...@@ -192,7 +192,7 @@ class MessageServiceModel extends \Business\AbstractModel
$member['uid'] = $store['store_id']; $member['uid'] = $store['store_id'];
$member['name'] = $store['store_name']; $member['name'] = $store['store_name'];
} }
if ($type == ApiConst::memberMessageType) { if ($type == ApiConst::memberMessageType || $type==ApiConst::serviceMessageType) {
$memberDao = \DAO\MemberModel::getInstance(); $memberDao = \DAO\MemberModel::getInstance();
$member = $memberDao->getOneByMemberId($memberId, 'member_id,member_name'); $member = $memberDao->getOneByMemberId($memberId, 'member_id,member_name');
$member['uid'] = $member['member_id']; $member['uid'] = $member['member_id'];
...@@ -318,6 +318,7 @@ class MessageServiceModel extends \Business\AbstractModel ...@@ -318,6 +318,7 @@ class MessageServiceModel extends \Business\AbstractModel
$message['gmtCreate'] = TIMESTAMP; $message['gmtCreate'] = TIMESTAMP;
$message['isRead'] = ApiConst::unread; $message['isRead'] = ApiConst::unread;
$message['type'] = (int)$message['type']; $message['type'] = (int)$message['type'];
$message['content']=base64_encode($message['content']);
$serializeMessage = serialize($message); $serializeMessage = serialize($message);
//将消息添加到表messageHistory //将消息添加到表messageHistory
$mesageHistory['fromId'] = $fromId; $mesageHistory['fromId'] = $fromId;
...@@ -370,12 +371,13 @@ class MessageServiceModel extends \Business\AbstractModel ...@@ -370,12 +371,13 @@ class MessageServiceModel extends \Business\AbstractModel
public function addMessageCenterToDb() public function addMessageCenterToDb()
{ {
$conf = \Yaf\Registry::get('config')->get('redis.database.params'); $conf = \Yaf\Registry::get('config')->get('redis.database.params');
$redis = new \Redis(); $this->baseRedis = new \Redis();
$redis->pconnect($conf['host'], $conf['port']); $this->baseRedis->pconnect($conf['host'], $conf['port']);
if (!empty($conf['password'])) { if (!empty($conf['password'])) {
$redis->auth($conf['password']); $this->baseRedis->auth($conf['password']);
} }
while ($center = $redis->lPop('message_center')) { while ($center = $this->baseRedis->lPop('message_center')) {
$this->baseRedis->rPush('push_center',$center);
$addData = unserialize($center); $addData = unserialize($center);
$addData['message'] = unserialize($addData['message']); $addData['message'] = unserialize($addData['message']);
$this->addMessage($addData['fromId'], $addData['fromUserId'], $addData['fromUserName'], $addData['fromType'], $addData['message'], $addData['toId'], $addData['toUserId'], $addData['toUserName'], $addData['toType'], $addData['id']); $this->addMessage($addData['fromId'], $addData['fromUserId'], $addData['fromUserName'], $addData['fromType'], $addData['message'], $addData['toId'], $addData['toUserId'], $addData['toUserName'], $addData['toType'], $addData['id']);
......
...@@ -26,7 +26,7 @@ use Our\RedisHelper; ...@@ -26,7 +26,7 @@ use Our\RedisHelper;
*/ */
class OrderServiceModel extends \Business\AbstractModel class OrderServiceModel extends \Business\AbstractModel
{ {
private $orderField = "order_id as orderId,order_sn as orderSn,store_name as storeName,evaluation_state as evaluationState,add_time as addTime,store_id as storeId,goods_amount as goodsAmount,shipping_fee as shippingFee,order_amount as orderAmount,shipping_type as shippingType,payment_type as paymentType,payment_time as paymentTime,order_state as orderState,shipping_fee as shippingFee,refund_state as refundState,order_type as orderType,is_receive_payment as isReceivePayment"; private $orderField = "order_id as orderId,order_sn as orderSn,store_name as storeName,evaluation_state as evaluationState,add_time as addTime,store_id as storeId,goods_amount as goodsAmount,shipping_fee as shippingFee,order_amount as orderAmount,shipping_type as shippingType,payment_type as paymentType,payment_time as paymentTime,order_state as orderState,shipping_fee as shippingFee,refund_state as refundState,order_type as orderType,is_receive_payment as isReceivePayment,gmt_update as gmtUpdate";
private $orderGoodsField = "order_id as orderId,rec_id as recId,goods_id as goodsId,goods_name as goodsName,goods_price as goodsPrice,goods_num as goodsNum,goods_image as goodsImage,goods_pay_price as goodsPayPrice,sale_act_id as saleActId,sale_id as saleId,comment_state as commentState,is_refund as isRefund,goods_spec as goodsSpec,refund_state_name as refundStateName,refund_id as refundId"; private $orderGoodsField = "order_id as orderId,rec_id as recId,goods_id as goodsId,goods_name as goodsName,goods_price as goodsPrice,goods_num as goodsNum,goods_image as goodsImage,goods_pay_price as goodsPayPrice,sale_act_id as saleActId,sale_id as saleId,comment_state as commentState,is_refund as isRefund,goods_spec as goodsSpec,refund_state_name as refundStateName,refund_id as refundId";
private $addressField = " mob_phone as MobPhone,tel_phone as TelPhone,address as address,area_info as areaInfo,lng,lat,address_id as addressId,subaddress as subAddress"; private $addressField = " mob_phone as MobPhone,tel_phone as TelPhone,address as address,area_info as areaInfo,lng,lat,address_id as addressId,subaddress as subAddress";
...@@ -133,7 +133,7 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -133,7 +133,7 @@ class OrderServiceModel extends \Business\AbstractModel
$orderIds = array_column($orders['list'], 'orderId'); $orderIds = array_column($orders['list'], 'orderId');
//获得订单商品列表 //获得订单商品列表
if (!empty($orderIds)) { if (!empty($orderIds)) {
$orderGoods = \Our\RedisHelper::cachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$orderGoodsDao, 'getOrderGoodsByOrderIds'), array($orderIds, $this->orderGoodsField), \Our\ApiConst::oneDaySecond, array($memberId)); $orderGoods = \Our\RedisHelper::cachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$orderGoodsDao, 'getOrderGoodsByOrderIds'), array($orderIds, $this->getGoodsDetailField()), \Our\ApiConst::oneDaySecond, array($memberId));
$orderMerge = Common::intergrateOneToMany($orders['list'], $orderGoods, 'orderId', 'orderId', 'orderGoods'); $orderMerge = Common::intergrateOneToMany($orders['list'], $orderGoods, 'orderId', 'orderId', 'orderGoods');
foreach ($orderMerge as &$value) { foreach ($orderMerge as &$value) {
$value['orderStateName'] = $orderDao->getStatusText($value); $value['orderStateName'] = $orderDao->getStatusText($value);
...@@ -447,7 +447,12 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -447,7 +447,12 @@ class OrderServiceModel extends \Business\AbstractModel
do { do {
$orders = $orderDao->getRecieveOrders(ApiConst::orderStateWaitRecieve, $addTime, $pageBegin, PageConst::taskPageSize, 'send_time'); $orders = $orderDao->getRecieveOrders(ApiConst::orderStateWaitRecieve, $addTime, $pageBegin, PageConst::taskPageSize, 'send_time');
foreach ($orders['list'] as $order) { foreach ($orders['list'] as $order) {
$push->reacheRemind($order['buyerId'], $order['orderId'], $order['orderSn']); if($order['shippingType']==ApiConst::bySelf){
$push->reacheRemind($order['buyerId'], $order['orderId'], $order['orderSn']);
}
if($order['shippingType']==ApiConst::express && $order['shippingOver']==ApiConst::shippingOver){
$push->reacheRemind($order['buyerId'], $order['orderId'], $order['orderSn']);
}
} }
$pageBegin++; $pageBegin++;
} while (!empty($orders['list'])); } while (!empty($orders['list']));
...@@ -758,7 +763,7 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -758,7 +763,7 @@ class OrderServiceModel extends \Business\AbstractModel
$goodsDao = \DAO\GoodsModel::getInstance(); $goodsDao = \DAO\GoodsModel::getInstance();
$orderIds = array_column($orders['list'], 'orderId'); $orderIds = array_column($orders['list'], 'orderId');
$orderCommons = $orderCommonDao->getAllByOrderIdsCache($orderIds, $diliverymanId, $orderCommonDao->orderCommonField); $orderCommons = $orderCommonDao->getAllByOrderIdsCache($orderIds, $diliverymanId, $orderCommonDao->orderCommonField);
$orderGoods = \Our\RedisHelper::cachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$orderGoodsDao, 'getOrderGoodsByOrderIds'), array($orderIds, $this->orderGoodsField), \Our\ApiConst::oneDaySecond, array($diliverymanId.'_')); $orderGoods = \Our\RedisHelper::cachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$orderGoodsDao, 'getOrderGoodsByOrderIds'), array($orderIds, $this->getGoodsDetailField()), \Our\ApiConst::oneDaySecond, array($diliverymanId.'_'));
$orderMerge = Common::intergrateOneToMany($orders['list'], $orderGoods, 'orderId', 'orderId', 'orderGoods'); $orderMerge = Common::intergrateOneToMany($orders['list'], $orderGoods, 'orderId', 'orderId', 'orderGoods');
$orderMerge = Common::intergrateOneToOne($orderMerge, $orderCommons, 'orderId', 'orderId'); $orderMerge = Common::intergrateOneToOne($orderMerge, $orderCommons, 'orderId', 'orderId');
$orderMerge = $orderDao->convertOrderList($orderMerge); $orderMerge = $orderDao->convertOrderList($orderMerge);
...@@ -881,6 +886,7 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -881,6 +886,7 @@ class OrderServiceModel extends \Business\AbstractModel
if ($updateResult) { if ($updateResult) {
$push = Push::getInstance(); $push = Push::getInstance();
$push->reacheRemind($order['buyerId'], $order['orderId'], $order['orderSn']); $push->reacheRemind($order['buyerId'], $order['orderId'], $order['orderSn']);
$push->sendTcpMessage();
} }
$orderDao->deleteOrderCache($memberid, $qmDeliveryManLog['orderId'], $order['storeId'],true,true,true,$memberid); $orderDao->deleteOrderCache($memberid, $qmDeliveryManLog['orderId'], $order['storeId'],true,true,true,$memberid);
$qmDeliverymanLogDao->deleteOrderCache($memberid, $id); $qmDeliverymanLogDao->deleteOrderCache($memberid, $id);
...@@ -931,6 +937,14 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -931,6 +937,14 @@ class OrderServiceModel extends \Business\AbstractModel
} }
$orderIds[] = $order['order_id']; $orderIds[] = $order['order_id'];
} }
$waitOnelinePayAmount = \Our\ApiConst::zero;
if($orderState==\Our\ApiConst::zero){
foreach ($orderList as $order) {
if ($order['order_state'] == \Our\ApiConst::orderStateWaitPay) {
$waitOnelinePayAmount += $order['order_amount'];
}
}
}
$return['orderState'] = $orderState; $return['orderState'] = $orderState;
if(isset($data['wxLitePayFlag'])&&$data['wxLitePayFlag']==\Our\ApiConst::one){ if(isset($data['wxLitePayFlag'])&&$data['wxLitePayFlag']==\Our\ApiConst::one){
$return['paySn'] = $data['paySn']; $return['paySn'] = $data['paySn'];
...@@ -943,6 +957,7 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -943,6 +957,7 @@ class OrderServiceModel extends \Business\AbstractModel
$return['orderNos'] = $orderNos; $return['orderNos'] = $orderNos;
$return['totalOrderAmount'] = $totalOrderAmount; $return['totalOrderAmount'] = $totalOrderAmount;
$return['waitOnlinePayAmount'] = $waitOnelinePayAmount;
$return['orderTips'] = $orderTips; $return['orderTips'] = $orderTips;
$return['orderSubTips'] = $orderSubTips; $return['orderSubTips'] = $orderSubTips;
$return['orderContents'] = $orderContents; $return['orderContents'] = $orderContents;
......
...@@ -338,7 +338,6 @@ class RefundServiceModel extends \Business\AbstractModel ...@@ -338,7 +338,6 @@ class RefundServiceModel extends \Business\AbstractModel
*/ */
public function addRefund($memberId, $refund) public function addRefund($memberId, $refund)
{ {
error_reporting(E_ALL);
$refundReturnDao = \DAO\Order\RefundReturnModel::getInstance(DbNameConst::masterDBConnectName); $refundReturnDao = \DAO\Order\RefundReturnModel::getInstance(DbNameConst::masterDBConnectName);
$refundReasonDao = \DAO\Order\RefundReasonModel::getInstance(DbNameConst::masterDBConnectName); $refundReasonDao = \DAO\Order\RefundReasonModel::getInstance(DbNameConst::masterDBConnectName);
$orderDao = \DAO\Order\OrderModel::getInstance(DbNameConst::masterDBConnectName); $orderDao = \DAO\Order\OrderModel::getInstance(DbNameConst::masterDBConnectName);
......
...@@ -321,9 +321,12 @@ class ShopkeeperServiceModel extends \Business\AbstractModel ...@@ -321,9 +321,12 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
} }
return $return; return $return;
} }
public function getOrderIndexWhere($storeId, $keyword, $pageIndex, $pageSize) public function getOrderIndexWhere($storeId, $keyword, $pageIndex, $pageSize,$orderState=false)
{ {
$query1[] = array('match' => array('storeId' => $storeId)); $query1[] = array('match' => array('storeId' => $storeId));
if($orderState!=false){
$query1[] = array('match' => array('orderState' => $orderState));
}
$res1['must'][0] = $query1; $res1['must'][0] = $query1;
$query2[] = array('match' => array('goodsName' => $keyword)); $query2[] = array('match' => array('goodsName' => $keyword));
$query2[] = array('wildcard' => array('orderSn' => "*{$keyword}*")); $query2[] = array('wildcard' => array('orderSn' => "*{$keyword}*"));
...@@ -350,7 +353,8 @@ class ShopkeeperServiceModel extends \Business\AbstractModel ...@@ -350,7 +353,8 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
$allQuery = array(); $allQuery = array();
$allQuery['bool'] = array(); $allQuery['bool'] = array();
if (!empty($keyword)) { if (!empty($keyword)) {
$where= $this->getOrderIndexWhere($storeId,$keyword,$pageIndex,$pageSize); $orderState=!empty($orderState)?$orderState:false;
$where= $this->getOrderIndexWhere($storeId,$keyword,$pageIndex,$pageSize,$orderState);
} else { } else {
$where = 'han_order.store_id=' . $storeId; $where = 'han_order.store_id=' . $storeId;
if (!empty($orderState)) { if (!empty($orderState)) {
...@@ -629,7 +633,7 @@ class ShopkeeperServiceModel extends \Business\AbstractModel ...@@ -629,7 +633,7 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
$this->taskSize = PageConst::taskPageSize; $this->taskSize = PageConst::taskPageSize;
$elasticsTool = ElasticsToolModel::getInstance(NameConst::ordersIndex); $elasticsTool = ElasticsToolModel::getInstance(NameConst::ordersIndex);
do { do {
$where = Common::format(" han_order.add_time>={0} and han_order.add_time<{1} ", $beginTime, TIMESTAMP); $where = Common::format(" han_order.gmt_update>={0} and han_order.gmt_update<{1} ", $beginTime, TIMESTAMP);
// $orders = $this->getRetrunDatas($where, $this->taskIndex, $this->taskSize); // $orders = $this->getRetrunDatas($where, $this->taskIndex, $this->taskSize);
// if (!empty($orders['orders'])) { // if (!empty($orders['orders'])) {
// $this->taskIndex++; // $this->taskIndex++;
......
...@@ -399,8 +399,8 @@ class StoreServiceModel extends \Business\AbstractModel{ ...@@ -399,8 +399,8 @@ class StoreServiceModel extends \Business\AbstractModel{
$position['lat'] = $where['lat']; $position['lat'] = $where['lat'];
$position['lng'] = $where['lng']; $position['lng'] = $where['lng'];
$position['cityCode'] = $where['cityCode']; $position['cityCode'] = $where['cityCode'];
$readisSuffix = crc32(serialize(ksort($position))); ksort($position);
$readisSuffix = crc32(serialize($position));
$nearbyStoreIds = $this->getNearbyStoreIds($position); $nearbyStoreIds = $this->getNearbyStoreIds($position);
//没有得到任何附近的店铺 //没有得到任何附近的店铺
if(!$nearbyStoreIds){ if(!$nearbyStoreIds){
...@@ -452,7 +452,8 @@ class StoreServiceModel extends \Business\AbstractModel{ ...@@ -452,7 +452,8 @@ class StoreServiceModel extends \Business\AbstractModel{
* @param $position * @param $position
*/ */
private function getNearbyStoreIds($position){ private function getNearbyStoreIds($position){
$readisSuffix = crc32(serialize(ksort($position))); ksort($position);
$readisSuffix = crc32(serialize($position));
$storeRedis = \Redis\Db6\StoreRedisModel::getInstance(); $storeRedis = \Redis\Db6\StoreRedisModel::getInstance();
$signStoreKey = \Our\NameConst::signStoreIdsPrefix . $readisSuffix; $signStoreKey = \Our\NameConst::signStoreIdsPrefix . $readisSuffix;
$signStoreIds =$storeRedis->find($signStoreKey, \Our\ApiConst::oneHour); $signStoreIds =$storeRedis->find($signStoreKey, \Our\ApiConst::oneHour);
...@@ -489,7 +490,8 @@ class StoreServiceModel extends \Business\AbstractModel{ ...@@ -489,7 +490,8 @@ class StoreServiceModel extends \Business\AbstractModel{
$position['lat'] = $where['lat']; $position['lat'] = $where['lat'];
$position['lng'] = $where['lng']; $position['lng'] = $where['lng'];
$position['cityCode'] = $where['cityCode']; $position['cityCode'] = $where['cityCode'];
$readisSuffix = crc32(serialize(ksort($position))); ksort($position);
$readisSuffix = crc32(serialize($position));
$storeRedis = \Redis\Db6\StoreRedisModel::getInstance(); $storeRedis = \Redis\Db6\StoreRedisModel::getInstance();
$nearbyStoreKey = \Our\NameConst::nearbyStoreKeyPrefix . $readisSuffix; $nearbyStoreKey = \Our\NameConst::nearbyStoreKeyPrefix . $readisSuffix;
...@@ -623,10 +625,10 @@ class StoreServiceModel extends \Business\AbstractModel{ ...@@ -623,10 +625,10 @@ class StoreServiceModel extends \Business\AbstractModel{
* @param $position * @param $position
*/ */
public function getSignClassStores($gcId,$position){ public function getSignClassStores($gcId,$position){
ksort($position);
//第一步:获取当前地址对应店铺是否包含当前分类(签约) //第一步:获取当前地址对应店铺是否包含当前分类(签约)
$storeRedis = \Redis\Db6\StoreRedisModel::getInstance(); $storeRedis = \Redis\Db6\StoreRedisModel::getInstance();
$signStoreKey = \Our\NameConst::signStoreIdsPrefix.crc32(serialize(ksort($position))); $signStoreKey = \Our\NameConst::signStoreIdsPrefix.crc32(serialize($position));
$signStoreIds = $storeRedis->find($signStoreKey, \Our\ApiConst::oneHour); $signStoreIds = $storeRedis->find($signStoreKey, \Our\ApiConst::oneHour);
//签约店铺存在 //签约店铺存在
if($signStoreIds){ if($signStoreIds){
...@@ -643,10 +645,10 @@ class StoreServiceModel extends \Business\AbstractModel{ ...@@ -643,10 +645,10 @@ class StoreServiceModel extends \Business\AbstractModel{
* @return array|bool * @return array|bool
*/ */
public function getServiceClassStores($gcId,$position){ public function getServiceClassStores($gcId,$position){
ksort($position);
$storeRedis = \Redis\Db6\StoreRedisModel::getInstance(); $storeRedis = \Redis\Db6\StoreRedisModel::getInstance();
$signStoreKey = \Our\NameConst::signStoreIdsPrefix.crc32(serialize(ksort($position))); $signStoreKey = \Our\NameConst::signStoreIdsPrefix.crc32(serialize($position));
$serviceStoreKey = \Our\NameConst::serviceStoreIdsPrefix.crc32(serialize(ksort($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); $serviceStoreIds = $storeRedis->find($serviceStoreKey, \Our\ApiConst::oneHour);
if($signStoreIds&&$serviceStoreIds){ if($signStoreIds&&$serviceStoreIds){
...@@ -661,10 +663,11 @@ class StoreServiceModel extends \Business\AbstractModel{ ...@@ -661,10 +663,11 @@ class StoreServiceModel extends \Business\AbstractModel{
} }
public function getExpressStores($gcId,$position){ public function getExpressStores($gcId,$position){
ksort($position);
$storeDao = \DAO\StoreModel::getInstance(); $storeDao = \DAO\StoreModel::getInstance();
$storeRedis = \Redis\Db6\StoreRedisModel::getInstance(); $storeRedis = \Redis\Db6\StoreRedisModel::getInstance();
$signStoreKey = \Our\NameConst::signStoreIdsPrefix.crc32(serialize(ksort($position))); $signStoreKey = \Our\NameConst::signStoreIdsPrefix.crc32(serialize($position));
$serviceStoreKey = \Our\NameConst::serviceStoreIdsPrefix.crc32(serialize(ksort($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); $serviceStoreIds = $storeRedis->find($serviceStoreKey, \Our\ApiConst::oneHour);
$expressStores = $storeDao->getExpressStores('store_id'); $expressStores = $storeDao->getExpressStores('store_id');
......
...@@ -62,12 +62,14 @@ class MemberCenterServiceModel extends \Business\AbstractModel ...@@ -62,12 +62,14 @@ class MemberCenterServiceModel extends \Business\AbstractModel
'canPush'=>(int)$pushSet['canPush'], 'canPush'=>(int)$pushSet['canPush'],
'sound'=>(int)$pushSet['sound'], 'sound'=>(int)$pushSet['sound'],
'vibrate'=>(int)$pushSet['vibrate'], 'vibrate'=>(int)$pushSet['vibrate'],
'timeDiff'=>$pushSet['timeDiff'],
); );
}else{ }else{
$pushSet=array( $pushSet=array(
'canPush'=>ApiConst::openMessae, 'canPush'=>ApiConst::openMessae,
'sound'=>ApiConst::openMessae, 'sound'=>ApiConst::openMessae,
'vibrate'=>ApiConst::openMessae, 'vibrate'=>ApiConst::openMessae,
'timeDiff'=>'',
); );
} }
return $pushSet; return $pushSet;
......
...@@ -24,6 +24,7 @@ class CouponModel extends \DAO\AbstractModel { ...@@ -24,6 +24,7 @@ class CouponModel extends \DAO\AbstractModel {
protected $_primaryKey = 'id'; protected $_primaryKey = 'id';
protected $availStoreIndexField = 'id,type,FORMAT(cash_money/100,2) as cash_money,FORMAT(order_amount/100,2) as order_amount,discount,store_id,coupon_type,is_overlay,start_time,end_time,gift_coupon_id'; protected $availStoreIndexField = 'id,type,FORMAT(cash_money/100,2) as cash_money,FORMAT(order_amount/100,2) as order_amount,discount,store_id,coupon_type,is_overlay,start_time,end_time,gift_coupon_id';
protected $availTitleField = 'id,type,FORMAT(cash_money/100,2) as cash_money,FORMAT(order_amount/100,2) as order_amount,discount,store_id,coupon_type,is_overlay,start_time,end_time,gift_coupon_id,ids';
protected $availCartStoreIndexField = 'id,type,FORMAT(cash_money/100,2) as cash_money,FORMAT(order_amount/100,2) as order_amount,discount,store_id,coupon_type,is_overlay,start_time,end_time,ids,gift_coupon_id,gift_goods_ids'; protected $availCartStoreIndexField = 'id,type,FORMAT(cash_money/100,2) as cash_money,FORMAT(order_amount/100,2) as order_amount,discount,store_id,coupon_type,is_overlay,start_time,end_time,ids,gift_coupon_id,gift_goods_ids';
public function init(){ public function init(){
...@@ -149,7 +150,7 @@ class CouponModel extends \DAO\AbstractModel { ...@@ -149,7 +150,7 @@ class CouponModel extends \DAO\AbstractModel {
* @throws \Our\Exception * @throws \Our\Exception
*/ */
public function getStorePromotionCouponList($storeId){ public function getStorePromotionCouponList($storeId){
$field = $this->availStoreIndexField; $field = $this->availTitleField;
$where = ' and store_id ='.$storeId.' and type<>1'; $where = ' and store_id ='.$storeId.' and type<>1';
$this->setDb($this->dbName); $this->setDb($this->dbName);
//$coupons = $this->getOnlineCouponList($where,$field); //$coupons = $this->getOnlineCouponList($where,$field);
...@@ -166,22 +167,20 @@ class CouponModel extends \DAO\AbstractModel { ...@@ -166,22 +167,20 @@ class CouponModel extends \DAO\AbstractModel {
if($storeClasses){ if($storeClasses){
$storeClassIds = array_column($storeClasses,'gc_id'); $storeClassIds = array_column($storeClasses,'gc_id');
} }
$storeCouponGoodsClassDao = \DAO\GoodsClass\StoreCouponGoodsClassModel::getInstance();
$result = array(); $result = array();
foreach($coupons as $coupon){ foreach($coupons as $coupon){
if(!($coupon['start_time']<=TIMESTAMP&&$coupon['end_time']>TIMESTAMP)){ if(!($coupon['start_time']<=TIMESTAMP&&$coupon['end_time']>TIMESTAMP)){
continue; continue;
} }
if($coupon['type']==\Our\ApiConst::goodsClassCoupon){ //指定品类优惠券,需要判断该优惠券对应分类店铺是否在经营 if($coupon['type']==\Our\ApiConst::goodsClassCoupon){ //指定品类优惠券,需要判断该优惠券对应分类店铺是否在经营
if($storeClassIds){ if($storeClassIds&&$coupon['ids']){
$gcIds = $storeCouponGoodsClassDao->getGoodsClassIdsByCouponId($coupon['id']); $gcIds = explode(',',trim($coupon['ids'],','));
if(!$gcIds){
continue;
}
$gcIdList = array_intersect($storeClassIds,$gcIds); $gcIdList = array_intersect($storeClassIds,$gcIds);
if(!$gcIdList){ if(count($gcIdList)!=count($gcIds)){
continue; continue;
} }
}else{
continue;
} }
} }
$temp = array(); $temp = array();
......
...@@ -583,9 +583,11 @@ class MemberModel extends \DAO\AbstractModel ...@@ -583,9 +583,11 @@ class MemberModel extends \DAO\AbstractModel
$this->changeNum($memberId, $toState, null, 1); $this->changeNum($memberId, $toState, null, 1);
} }
public function setIsWxsend($memberId,$pushData){ public function setIsWxsend($memberId,$pushData){
foreach($pushData as $val){ foreach($pushData as $key=>$val){
if(!in_array($val,array(ApiConst::closeMessage,ApiConst::openMessae))){ if($key!='timeDiff'){
ErrorModel::throwException(CodeConfigModel::paramsError); if(!in_array($val,array(ApiConst::closeMessage,ApiConst::openMessae))){
ErrorModel::throwException(CodeConfigModel::paramsError);
}
} }
} }
$data['push_set']=serialize($pushData); $data['push_set']=serialize($pushData);
......
...@@ -54,7 +54,7 @@ class MessageHistoryModel extends \DAO\AbstractModel { ...@@ -54,7 +54,7 @@ class MessageHistoryModel extends \DAO\AbstractModel {
public function getOneById($id,$field='*'){ public function getOneById($id,$field='*'){
parent::setDb(); parent::setDb();
$where[$this->_primaryKey]=$id; $where[$this->_primaryKey]=$id;
$memberHistory= $this->db->select($field)->from($this->_tableName)->fetchOne(); $memberHistory= $this->db->select($field)->where($where)->from($this->_tableName)->fetchOne();
return $memberHistory?$memberHistory:array(); return $memberHistory?$memberHistory:array();
} }
public function update($id,$field,$value){ public function update($id,$field,$value){
...@@ -95,6 +95,7 @@ class MessageHistoryModel extends \DAO\AbstractModel { ...@@ -95,6 +95,7 @@ class MessageHistoryModel extends \DAO\AbstractModel {
public function convertMessage($message){ public function convertMessage($message){
$message = unserialize($message); $message = unserialize($message);
$message['title'] = !empty($message['title']) ? $message['title'] : ''; $message['title'] = !empty($message['title']) ? $message['title'] : '';
$message['content'] = !empty($message['content']) ? base64_decode($message['content']) : '';
if(!empty($message['buttons'])){ if(!empty($message['buttons'])){
$timeDiff=TIMESTAMP-$message['createTime']; $timeDiff=TIMESTAMP-$message['createTime'];
foreach($message['buttons'] as &$button){ foreach($message['buttons'] as &$button){
......
...@@ -80,7 +80,7 @@ class MessageOneModel extends \DAO\AbstractModel { ...@@ -80,7 +80,7 @@ class MessageOneModel extends \DAO\AbstractModel {
} }
parent::setDb(); parent::setDb();
$where=Common::format(" fromId={0} or toId={1}",$memberId,$memberId); $where=Common::format(" fromId={0} or toId={1}",$memberId,$memberId);
$messages=$this->lists($where,'',$field,$pageIndex,$pageSize); $messages=$this->lists($where,array('gmtUpdate'=>'desc'),$field,$pageIndex,$pageSize);
return $messages; return $messages;
} }
public function update($data,$where=array()){ public function update($data,$where=array()){
...@@ -111,9 +111,9 @@ class MessageOneModel extends \DAO\AbstractModel { ...@@ -111,9 +111,9 @@ class MessageOneModel extends \DAO\AbstractModel {
$where=Common::format(" (fromUserId={0} and fromType={1} and toUserId={2} and toType={3}) or (fromUserId={4} and fromType={5} and toUserId={6} and toType={7})",$data['fromUserId'],$data['fromType'],$data['toUserId'],$data['toType'],$data['toUserId'],$data['toType'],$data['fromUserId'],$data['fromType']); $where=Common::format(" (fromUserId={0} and fromType={1} and toUserId={2} and toType={3}) or (fromUserId={4} and fromType={5} and toUserId={6} and toType={7})",$data['fromUserId'],$data['fromType'],$data['toUserId'],$data['toType'],$data['toUserId'],$data['toType'],$data['fromUserId'],$data['fromType']);
$one=$this->getOneByWhereWithField($where,"*",DbNameConst::masterDBConnectName); $one=$this->getOneByWhereWithField($where,"*",DbNameConst::masterDBConnectName);
if(isset($one['toUserId']) && $one['toUserId']==$data['fromUserId']){ if(isset($one['toUserId']) && $one['toUserId']==$data['fromUserId']){
$insertSql=Common::format("insert into {0}(`fromId`,`toUserId`,`toUserName`,`toType`,`fromUserId`,`fromUserName`,`fromType`,`message`,`fromUnReadCount`,`toUnReadCount`,`gmtCreate`,`gmtUpdate`,`toId`) VALUES({1},{2},'{3}',{4},{5},'{6}',{7},'{8}',{9},{10},{11},{12},{13}) ON DUPLICATE KEY UPDATE message='{14}',fromUnReadCount=fromUnReadCount+1,gmtUpdate={15} ",$this->_tableName,$data['toId'],$data['fromUserId'],$data['fromUserName'],$data['fromType'],$data['toId'],$data['toUserName'],$data['toType'],$data['message'],ApiConst::zero,ApiConst::one,TIMESTAMP,TIMESTAMP,$data['toId'],$data['message'],TIMESTAMP); $insertSql=Common::format("insert into {0}(`fromId`,`toUserId`,`toUserName`,`toType`,`fromUserId`,`fromUserName`,`fromType`,`message`,`fromUnReadCount`,`toUnReadCount`,`gmtCreate`,`gmtUpdate`,`toId`) VALUES({1},{2},'{3}',{4},{5},'{6}',{7},'{8}',{9},{10},{11},{12},{13}) ON DUPLICATE KEY UPDATE message='{14}',fromUnReadCount=fromUnReadCount+1,gmtUpdate={15} ",$this->_tableName,$data['toId'],$data['fromUserId'],$data['fromUserName'],$data['fromType'],$data['toId'],$data['toUserName'],$data['toType'],$data['message'],ApiConst::zero,ApiConst::one,time(),time(),$data['toId'],$data['message'],time());
}else{ }else{
$insertSql=Common::format("insert into {0}(`fromId`,`toUserId`,`toUserName`,`toType`,`fromUserId`,`fromUserName`,`fromType`,`message`,`fromUnReadCount`,`toUnReadCount`,`gmtCreate`,`gmtUpdate`,`toId`) VALUES({1},{2},'{3}',{4},{5},'{6}',{7},'{8}',{9},{10},{11},{12},{13}) ON DUPLICATE KEY UPDATE message='{14}',toUnReadCount=toUnReadCount+1,gmtUpdate={15} ",$this->_tableName,$data['fromId'],$data['toUserId'],$data['toUserName'],$data['toType'],$data['fromUserId'],$data['fromUserName'],$data['fromType'],$data['message'],ApiConst::zero,ApiConst::one,TIMESTAMP,TIMESTAMP,$data['toId'],$data['message'],TIMESTAMP); $insertSql=Common::format("insert into {0}(`fromId`,`toUserId`,`toUserName`,`toType`,`fromUserId`,`fromUserName`,`fromType`,`message`,`fromUnReadCount`,`toUnReadCount`,`gmtCreate`,`gmtUpdate`,`toId`) VALUES({1},{2},'{3}',{4},{5},'{6}',{7},'{8}',{9},{10},{11},{12},{13}) ON DUPLICATE KEY UPDATE message='{14}',toUnReadCount=toUnReadCount+1,gmtUpdate={15} ",$this->_tableName,$data['fromId'],$data['toUserId'],$data['toUserName'],$data['toType'],$data['fromUserId'],$data['fromUserName'],$data['fromType'],$data['message'],ApiConst::zero,ApiConst::one,time(),time(),$data['toId'],$data['message'],time());
} }
$res=$this->db->update($this->_tableName)->query($insertSql); $res=$this->db->update($this->_tableName)->query($insertSql);
if($res){ if($res){
......
...@@ -21,7 +21,7 @@ class OrderGoodsModel extends \DAO\AbstractModel { ...@@ -21,7 +21,7 @@ class OrderGoodsModel extends \DAO\AbstractModel {
public $sumField="rec_id,store_id as storeId,buyer_id as buyerId,goods_num as goodsNum,goods_price as goodsPrice,gmt_create as gmtCreate,order_id as orderId"; public $sumField="rec_id,store_id as storeId,buyer_id as buyerId,goods_num as goodsNum,goods_price as goodsPrice,gmt_create as gmtCreate,order_id as orderId";
public $groupField=array('buyer_id','store_id'); public $groupField=array('buyer_id','store_id');
public $sumGoodsNum=' store_id as storeId,buyer_id as buyerId,sum(goods_num) as orderGoodsCount'; public $sumGoodsNum=' store_id as storeId,buyer_id as buyerId,sum(goods_num) as orderGoodsCount';
public $orderGoodsField = "order_id as orderId,rec_id as recId,goods_id as goodsId,goods_name as goodsName,goods_price as goodsPrice,goods_num as goodsNum,goods_image as goodsImage,goods_pay_price as goodsPayPrice,sale_act_id as saleActId,sale_id as saleId,comment_state as commentState,is_refund as isRefund,goods_spec as goodsSpec,refund_state_name as refundStateName,refund_id as refundId"; public $orderGoodsField = "order_id as orderId,rec_id as recId,goods_id as goodsId,goods_name as goodsName,goods_price as goodsPrice,goods_num as goodsNum,goods_image as goodsImage,goods_pay_price as goodsPayPrice,sale_act_id as saleActId,sale_id as saleId,comment_state as commentState,is_refund as isRefund,goods_spec as goodsSpec,refund_state_name as refundStateName,refund_id as refundId,goods_commonid as goodsCommonId,goods_commonid as goodsCommonid,goods_group as goodsGroup";
/** /**
* 主键 * 主键
* *
......
File mode changed from 100755 to 100644
...@@ -167,6 +167,7 @@ class CodeConfigModel { ...@@ -167,6 +167,7 @@ class CodeConfigModel {
const pBundlingNoStorageForOrder = 50040; const pBundlingNoStorageForOrder = 50040;
const editDelCartFailed = 50041; const editDelCartFailed = 50041;
const editCartUploadCartFailed = 50042; const editCartUploadCartFailed = 50042;
const wrongAddCartForSelfStore = 50043;
//订单相关错误码 //订单相关错误码
...@@ -283,6 +284,8 @@ class CodeConfigModel { ...@@ -283,6 +284,8 @@ class CodeConfigModel {
const noEnoughStorageForBundlingGoods = 30118; const noEnoughStorageForBundlingGoods = 30118;
const noOrderWaitToPay = 30119; const noOrderWaitToPay = 30119;
const wrongEvaluation = 30120; const wrongEvaluation = 30120;
const selfGoodsForStoreOrder = 30121;
//店铺相关错误码 //店铺相关错误码
//商品分类 //商品分类
...@@ -563,6 +566,7 @@ class CodeConfigModel { ...@@ -563,6 +566,7 @@ class CodeConfigModel {
self::pBundlingNoStorageForOrder => '组合销售商品库存不足', self::pBundlingNoStorageForOrder => '组合销售商品库存不足',
self::editDelCartFailed => '编辑购物车时删除数据失败', self::editDelCartFailed => '编辑购物车时删除数据失败',
self::editCartUploadCartFailed => '编辑购物车更新购物车时间失败', self::editCartUploadCartFailed => '编辑购物车更新购物车时间失败',
self::wrongAddCartForSelfStore => '店主不能添加自己店铺的商品到购物车',
self::addressNotExist=>'地址不存在', self::addressNotExist=>'地址不存在',
self::emptyAddressId=>'地址主键参数不能为空', self::emptyAddressId=>'地址主键参数不能为空',
...@@ -760,6 +764,7 @@ class CodeConfigModel { ...@@ -760,6 +764,7 @@ class CodeConfigModel {
self::noEnoughStorageForBundlingGoods =>'组合销售库存紧张,您购买的数量太多啦', self::noEnoughStorageForBundlingGoods =>'组合销售库存紧张,您购买的数量太多啦',
self::noOrderWaitToPay => '您的订单已支付,请勿重复支付', self::noOrderWaitToPay => '您的订单已支付,请勿重复支付',
self::wrongEvaluation => '商品评论应在6-500字之间', self::wrongEvaluation => '商品评论应在6-500字之间',
self::selfGoodsForStoreOrder => '店主不能购买自己的商品',
//销售员 //销售员
self::emptySaleGoodsId=>'商品id不能为空', self::emptySaleGoodsId=>'商品id不能为空',
self::emptySaleGoods=>'销售商品不存在', self::emptySaleGoods=>'销售商品不存在',
......
...@@ -93,6 +93,8 @@ push.clientHost="wss://api.shenbd.com/wss" ...@@ -93,6 +93,8 @@ push.clientHost="wss://api.shenbd.com/wss"
push.host="127.0.0.1" push.host="127.0.0.1"
push.port="9503" push.port="9503"
push.open=1 push.open=1
push.user.service.id=293
push.user.service.type=7
elastic.master.host="127.0.0.1" elastic.master.host="127.0.0.1"
elastic.master.port="9200" elastic.master.port="9200"
...@@ -137,7 +139,8 @@ push.clientHost="wss://apiceshi.shenbd.com/wss" ...@@ -137,7 +139,8 @@ push.clientHost="wss://apiceshi.shenbd.com/wss"
push.host="127.0.0.1" push.host="127.0.0.1"
push.port="9503" push.port="9503"
push.open=1 push.open=1
push.user.service.id=293
push.user.service.type=7
elastic.master.host="127.0.0.1" elastic.master.host="127.0.0.1"
elastic.master.port="9200" elastic.master.port="9200"
elastic.master.scheme="http"; elastic.master.scheme="http";
...@@ -181,6 +184,9 @@ push.host="127.0.0.1" ...@@ -181,6 +184,9 @@ push.host="127.0.0.1"
push.port="9503" push.port="9503"
push.open=1 push.open=1
push.user.service.id=293
push.user.service.type=7
[develop : common] [develop : common]
; 数据库配置 ; 数据库配置
resources.database.params.driver = "pdo_mysql" resources.database.params.driver = "pdo_mysql"
...@@ -208,7 +214,8 @@ redis.database.params.port = "6379" ...@@ -208,7 +214,8 @@ redis.database.params.port = "6379"
redis.database.params.prefix = "qm_" redis.database.params.prefix = "qm_"
out.config="/data/config" out.config="/data/config"
; redis配置 ; redis配置
push.user.service.id=293
push.user.service.type=7
;redis.database.params.password = "test" ;redis.database.params.password = "test"
;推送配置 ;推送配置
push.clientHost="ws://192.168.80.18:9502" push.clientHost="ws://192.168.80.18:9502"
...@@ -253,7 +260,8 @@ push.clientHost="ws://192.168.80.18:9502" ...@@ -253,7 +260,8 @@ push.clientHost="ws://192.168.80.18:9502"
push.host="192.168.80.18" push.host="192.168.80.18"
push.port="9503" push.port="9503"
push.open=1 push.open=1
push.user.service.id=293
push.user.service.type=7
elastic.master.host="192.168.1.201" elastic.master.host="192.168.1.201"
elastic.master.port="9200" elastic.master.port="9200"
elastic.master.scheme="http"; elastic.master.scheme="http";
...@@ -300,6 +308,9 @@ push.host="192.168.80.18" ...@@ -300,6 +308,9 @@ push.host="192.168.80.18"
push.port="9503" push.port="9503"
push.open=1 push.open=1
push.user.service.id=293
push.user.service.type=7
elastic.master.host="192.168.1.201" elastic.master.host="192.168.1.201"
elastic.master.port="9200" elastic.master.port="9200"
elastic.master.scheme="http"; elastic.master.scheme="http";
File mode changed from 100755 to 100644
<!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="/common/getSetting" method="post">
key:<input name="data[key]" value="fd4b739c4815297044191451eabf0eb5"/><br />
<input type="submit" value="提交">
</form>
</body>
</html>
\ No newline at end of file
<?php <?php
/** /**
* 推送接单消息到店铺
* 推送确认收货消息到用户 * 推送确认收货消息到用户
* 执行时间:每分钟执行一次 * 执行时间:每分钟执行一次
* *
......
<?php
/**
* 推送10秒推送一次
* 推送10秒推送一次
*
* @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 cliOrderClose extends basecli
{
const CLI_ADMIN_ID = 255;
private $bDoUnLock = FALSE; // 是否允许释放 LOCK 文件
private $_debug = 0;
private $lockFileName;
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 autoPushMessage(){
$conf = \Yaf\Registry::get('config')->get('redis.database.params');
$redis = new \Redis();
$redis->pconnect($conf['host'], $conf['port']);
if (!empty($conf['password'])) {
$redis->auth($conf['password']);
}
$clientPush=\JPush\ClientPush::getInstance();
$messageService=\DAO\MessageHistoryModel::getInstance();
while($pushData=$redis->lPop('push_center')){
$addData = unserialize($pushData);
$addData['message'] = unserialize($addData['message']);
$clientPush->push($addData);
}
$redis->close();
}
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('push');
if(!$this->mkdirs($lockDir)){
echo '****create dir fail ****';
exit;
}
$this->lockFileName = $lockDir .DS.'jpush.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;
if(APP_ENV =='pre' || APP_ENV=='product'){
file_put_contents($this->lockFileName ,"running" ); // CLI 独占锁
}
$this->autoPushMessage();
echo date('Y-m-d H:i:s',TIMESTAMP).'消息推送成功'."\r\n";
}
}
$oCli = new cliOrderClose(TRUE);
EXIT;
?>
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
*/ */
define("APPLICATION_PATH", realpath(dirname(__FILE__) . '/../../../')); //指向public的上一级 define("APPLICATION_PATH", realpath(dirname(__FILE__) . '/../../../')); //指向public的上一级
define("KEY_REDIS_PRE","PHPREDIS_SESSION:"); define("KEY_REDIS_PRE","PHPREDIS_SESSION:");
define("KEY_PRE","qm_:han_member_im:"); define("KEY_PRE","qm_:han_member:");
require APPLICATION_PATH . '/scripts/crontab/common.php'; require APPLICATION_PATH . '/scripts/crontab/common.php';
header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Origin: *");
header('Access-Control-Allow-Method: *'); header('Access-Control-Allow-Method: *');
...@@ -115,10 +115,12 @@ $serv->on('Message', function($server, $frame) use($conf){ ...@@ -115,10 +115,12 @@ $serv->on('Message', function($server, $frame) use($conf){
$redis->hSet(KEY_PRE.$memberId,'sendTime', time()); $redis->hSet(KEY_PRE.$memberId,'sendTime', time());
$server->push($frame->fd, responseJson(1,"sendMsg","success", $sendMessage)); $server->push($frame->fd, responseJson(1,"sendMsg","success", $sendMessage));
$messageService->addMessage($sendMessage['fromId'],$sendMessage['fromUserId'],$sendMessage['fromUserName'],$sendMessage['fromType'],$sendMessage['message'],$sendMessage['toId'],$sendMessage['toUserId'],$sendMessage['toUserName'],$sendMessage['toType'],$sendMessage['id']); $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->close();
$messageService->unsetDb(); $messageService->unsetDb();
unset($messageService); unset($messageService);
unset($redis);
}else{ }else{
$realKey = KEY_REDIS_PRE.$key; $realKey = KEY_REDIS_PRE.$key;
$sessData=$redis->get($realKey); $sessData=$redis->get($realKey);
......
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