Commit a90ec52d authored by wwccw0591's avatar wwccw0591

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

parents 1bf0f62d 25d2b16c
...@@ -58,11 +58,14 @@ class MemberController extends \Our\Controller_AbstractApi { ...@@ -58,11 +58,14 @@ class MemberController extends \Our\Controller_AbstractApi {
* 取消第三方绑定 * 取消第三方绑定
*/ */
public function cancelBindingAction(){ public function cancelBindingAction(){
$data = $this->req[\Our\NameConst::data]; $data = $this->req[\Our\NameConst::data];
$this->memberService->cancelBinding($data,$this->memberId); $this->memberService->cancelBinding($data,$this->memberId);
if($data['userType']==\Our\ApiConst::userFromWx){
$userToken=$this->memberService->getWxUserToken($this->memberId);
if(!empty($userToken)){
$this->updateOldLoginKey($userToken);
}
}
$this->success(new stdClass(),\Our\DescribeConst::cancelBindingSuccess,\Our\DescribeConst::cancelBindingSuccess); $this->success(new stdClass(),\Our\DescribeConst::cancelBindingSuccess,\Our\DescribeConst::cancelBindingSuccess);
} }
...@@ -143,5 +146,4 @@ class MemberController extends \Our\Controller_AbstractApi { ...@@ -143,5 +146,4 @@ class MemberController extends \Our\Controller_AbstractApi {
$this->success(new stdClass(),\Our\DescribeConst::bindMobileForWxSuccess,\Our\DescribeConst::bindMobileForWxSuccess); $this->success(new stdClass(),\Our\DescribeConst::bindMobileForWxSuccess,\Our\DescribeConst::bindMobileForWxSuccess);
} }
} }
...@@ -18,14 +18,7 @@ class UserController extends \Our\Controller_AbstractIndex { ...@@ -18,14 +18,7 @@ class UserController extends \Our\Controller_AbstractIndex {
$login=LoginV2Model::getInstance(); $login=LoginV2Model::getInstance();
echo $login->login(); echo $login->login();
} }
private function updateOldLoginKey($token){
$params['authSign']=md5($token.\Our\SecretKeys::authKey);
$params['key']=$token;
$paramsStr=http_build_query($params);
$domain= Bootstrap::getUrlIniConfig('resourcesHost');
$getUrl=$domain.\Our\PathConst::authInfoOtherLogin.'?'.$paramsStr;
file_get_contents($getUrl);
}
/** /**
* 用户登录 * 用户登录
* *
......
...@@ -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,8 +34,38 @@ class ClientPush ...@@ -31,8 +34,38 @@ 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;
}
return $messageContent;
}
public function push($pushData) public function push($pushData)
{ {
$title=$this->getMessageType($pushData['fromType']);
$messageContent=$this->getMessageContent($pushData['message']);
try { try {
$response = $this->client->push() $response = $this->client->push()
->setPlatform(array('ios', 'android')) ->setPlatform(array('ios', 'android'))
...@@ -41,36 +74,27 @@ class ClientPush ...@@ -41,36 +74,27 @@ class ClientPush
// 即是说一般情况下,下面三个方法和没有列出的 addTagAnd 一共四个,只适用一个便可满足大多数的场景需求 // 即是说一般情况下,下面三个方法和没有列出的 addTagAnd 一共四个,只适用一个便可满足大多数的场景需求
// ->addAlias('alias') // ->addAlias('alias')
->addTag(array('tag1', 'tag2')) // ->addTag(array('tag1', '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' => 'hello jpush',
// 'content_type' => 'text', 'content_type' => $pushData['type'],
'extras' => array( 'extras' => $pushData,
'key' => 'value',
'jiguang'
),
)) ))
->options(array( ->options(array(
// sendno: 表示推送序号,纯粹用来作为 API 调用标识, // sendno: 表示推送序号,纯粹用来作为 API 调用标识,
......
...@@ -82,6 +82,15 @@ class ApiConst ...@@ -82,6 +82,15 @@ class ApiConst
//普通用户消息类型 //普通用户消息类型
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(
......
...@@ -96,4 +96,14 @@ abstract class Controller_Abstract extends \Yaf\Controller_Abstract { ...@@ -96,4 +96,14 @@ abstract class Controller_Abstract extends \Yaf\Controller_Abstract {
[NameConst::pageSize]:($pageSize>0?$pageSize:ApiConst::pageSize); [NameConst::pageSize]:($pageSize>0?$pageSize:ApiConst::pageSize);
} }
protected function updateOldLoginKey($token){
$params['authSign']=md5($token.\Our\SecretKeys::authKey);
$params['key']=$token;
$paramsStr=http_build_query($params);
$domain= \Bootstrap::getUrlIniConfig('resourcesHost');
$getUrl=$domain.\Our\PathConst::authInfoOtherLogin.'?'.$paramsStr;
file_get_contents($getUrl);
}
} }
...@@ -9,7 +9,7 @@ namespace Our; ...@@ -9,7 +9,7 @@ namespace Our;
class DescribeConst class DescribeConst
{ {
const appName='身边店';
//member表字段名 //member表字段名
const successMessage = '操作成功'; const successMessage = '操作成功';
//登陆成功提示 //登陆成功提示
...@@ -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
...@@ -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;
......
...@@ -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;
...@@ -376,6 +377,7 @@ class MessageServiceModel extends \Business\AbstractModel ...@@ -376,6 +377,7 @@ class MessageServiceModel extends \Business\AbstractModel
$redis->auth($conf['password']); $redis->auth($conf['password']);
} }
while ($center = $redis->lPop('message_center')) { while ($center = $redis->lPop('message_center')) {
$redis->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']);
......
...@@ -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++;
......
...@@ -146,6 +146,10 @@ class MemberServiceModel extends \Business\AbstractModel ...@@ -146,6 +146,10 @@ class MemberServiceModel extends \Business\AbstractModel
'sellerId'=>$member['sellerId'], 'sellerId'=>$member['sellerId'],
'diliverymanId'=>$member['diliverymanId'], 'diliverymanId'=>$member['diliverymanId'],
); );
$returnMember['isWeiboBind'] = \Our\ApiConst::zero;
$returnMember['isQqBind'] = \Our\ApiConst::zero;
$returnMember['isWeiboBind'] = \Our\ApiConst::zero;
$memberMappingDao = \DAO\MemberMappingModel::getInstance(\Our\DbNameConst::masterDBConnectName); $memberMappingDao = \DAO\MemberMappingModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$memberMappingList = $memberMappingDao->getAvailableMemberMappingList($memberId); $memberMappingList = $memberMappingDao->getAvailableMemberMappingList($memberId);
foreach($memberMappingList as $memberMapping){ foreach($memberMappingList as $memberMapping){
...@@ -154,25 +158,11 @@ class MemberServiceModel extends \Business\AbstractModel ...@@ -154,25 +158,11 @@ class MemberServiceModel extends \Business\AbstractModel
}else if($memberMapping['user_type'] == \Our\ApiConst::userFromQQ){ }else if($memberMapping['user_type'] == \Our\ApiConst::userFromQQ){
$returnMember['isQqBind'] = \Our\ApiConst::one; $returnMember['isQqBind'] = \Our\ApiConst::one;
}else if($memberMapping['user_type'] == \Our\ApiConst::wechatUserType){ }else if($memberMapping['user_type'] == \Our\ApiConst::wechatUserType){
//$returnMember['isWechatBind'] = \Our\ApiConst::one;
$returnMember['isWxBind'] = \Our\ApiConst::one; $returnMember['isWxBind'] = \Our\ApiConst::one;
}else if($memberMapping['user_type'] == \Our\ApiConst::userFromWx){ }else if($memberMapping['user_type'] == \Our\ApiConst::userFromWx){
$returnMember['isWxBind'] = \Our\ApiConst::one; $returnMember['isWxBind'] = \Our\ApiConst::one;
} }
} }
if(!isset($returnMember['isWeiboBind'])){
$returnMember['isWeiboBind'] = \Our\ApiConst::zero;
}
if(!isset($returnMember['isQqBind'])){
$returnMember['isQqBind'] = \Our\ApiConst::zero;
}
/*if(!isset($returnMember['isWechatBind'])){
$returnMember['isWechatBind'] = \Our\ApiConst::zero;
}*/
if(!isset($returnMember['isWxBind'])){
$returnMember['isWxBind'] = \Our\ApiConst::zero;
}
return $returnMember; return $returnMember;
} }
...@@ -603,7 +593,7 @@ class MemberServiceModel extends \Business\AbstractModel ...@@ -603,7 +593,7 @@ class MemberServiceModel extends \Business\AbstractModel
$memberMappingDao = \DAO\MemberMappingModel::getInstance(\Our\DbNameConst::masterDBConnectName); $memberMappingDao = \DAO\MemberMappingModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$memberMappingDao->validCancelMapping($data,$memberId); $memberMappingDao->validCancelMapping($data,$memberId);
$where['member_id'] = $memberId; $where['member_id'] = $memberId;
$where['user_type'] = ($data['userType']==\Our\ApiConst::userFromWx)?array('in',array(\Our\ApiConst::userFromWx,\Our\ApiConst::wechatUserType)):$data['userType']; $where['user_type'] = ($data['userType']==\Our\ApiConst::userFromWx||$data['userType']==\Our\ApiConst::wechatUserType)?array('in',array(\Our\ApiConst::userFromWx,\Our\ApiConst::wechatUserType)):$data['userType'];
$result = $memberMappingDao->del($where); $result = $memberMappingDao->del($where);
if(!$result){ if(!$result){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::cancelBindingUserFailed); \Error\ErrorModel::throwException(\Error\CodeConfigModel::cancelBindingUserFailed);
......
...@@ -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();
......
...@@ -113,8 +113,11 @@ class MemberMappingModel extends \DAO\AbstractModel{ ...@@ -113,8 +113,11 @@ class MemberMappingModel extends \DAO\AbstractModel{
if(!$where['userType']){ if(!$where['userType']){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyUserType); \Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyUserType);
} }
if(!in_array($where['userType'],array_keys(\Our\ArrayConst::userType))){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongUserType);
}
$condition['member_id'] = $memberId; $condition['member_id'] = $memberId;
$condition['user_type'] = ($where['userType']==\Our\ApiConst::userFromWx)?array('in',array(\Our\ApiConst::userFromWx,\Our\ApiConst::wechatUserType)):$where['userType']; $condition['user_type'] = ($where['userType']==\Our\ApiConst::userFromWx||$where['userType']==\Our\ApiConst::wechatUserType)?array('in',array(\Our\ApiConst::userFromWx,\Our\ApiConst::wechatUserType)):$where['userType'];
$result = $this->find($condition,'member_id'); $result = $this->find($condition,'member_id');
if(!$result){ if(!$result){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::bindingUserNotExist); \Error\ErrorModel::throwException(\Error\CodeConfigModel::bindingUserNotExist);
...@@ -125,10 +128,11 @@ class MemberMappingModel extends \DAO\AbstractModel{ ...@@ -125,10 +128,11 @@ class MemberMappingModel extends \DAO\AbstractModel{
public function del($where){ public function del($where){
$this->setDb(\Our\DbNameConst::masterDBConnectName); $this->setDb(\Our\DbNameConst::masterDBConnectName);
$condition = $where ;
if(is_array($where)){ if(is_array($where)){
$where = $this->db->getSqlWhereByArray($where); $condition = $this->db->getSqlWhereByArray($where);
} }
$result = $this->db->delete($this->_tableName)->where($where)->execute(); $result = $this->db->delete($this->_tableName)->where($condition)->execute();
if($result&&isset($where['member_id'])){ if($result&&isset($where['member_id'])){
\Our\RedisHelper::delCachedFunction(\Redis\Db0\MemberMappingRedisModel::getInstance(),array(&$this, 'getList'),array(),array($where['member_id'])); \Our\RedisHelper::delCachedFunction(\Redis\Db0\MemberMappingRedisModel::getInstance(),array(&$this, 'getList'),array(),array($where['member_id']));
} }
......
...@@ -95,14 +95,20 @@ class MessageHistoryModel extends \DAO\AbstractModel { ...@@ -95,14 +95,20 @@ 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'])){
foreach($message['buttons'] as &$button){
if($button['type']==ApiConst::messageButtonTypeConfirmButton || $button['type']==ApiConst::messageButtonTypeReciverButton){
$timeDiff=TIMESTAMP-$message['createTime']; $timeDiff=TIMESTAMP-$message['createTime'];
foreach($message['buttons'] as &$button){
if($button['type']==ApiConst::messageButtonTypeReciverButton){
if($timeDiff>(ApiConst::tenMinSecond-ApiConst::oneMinute)){ if($timeDiff>(ApiConst::tenMinSecond-ApiConst::oneMinute)){
$button['showType']=ApiConst::messageButtonShowTypeGray; $button['showType']=ApiConst::messageButtonShowTypeGray;
} }
} }
if($button['type']==ApiConst::messageButtonTypeConfirmButton ){
if($timeDiff>(ApiConst::oneDaySecond)){
$button['showType']=ApiConst::messageButtonShowTypeGray;
}
}
} }
} }
return $message; return $message;
......
...@@ -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){
......
...@@ -186,7 +186,7 @@ class OrderGoodsModel extends \DAO\AbstractModel { ...@@ -186,7 +186,7 @@ class OrderGoodsModel extends \DAO\AbstractModel {
public function getGoodsCount($orderGoods){ public function getGoodsCount($orderGoods){
return count(array_sum(array_column($orderGoods, 'goodsNum'))); return array_sum(array_column($orderGoods, 'goodsNum'));
} }
public function getRefundOrderGoods($orderGoods){ public function getRefundOrderGoods($orderGoods){
......
File mode changed from 100755 to 100644
...@@ -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
/**
* 推送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']);
$clientPush=\JPush\ClientPush::getInstance();
while($pushData=$redis->lPop('push_center')){
$addData = unserialize($pushData);
$addData['message'] = unserialize($addData['message']);
$clientPush->push($addData);
}
}
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;
?>
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