Commit 11ef5a8b authored by zhz's avatar zhz

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

parents df4714b8 d1be108d
...@@ -21,9 +21,9 @@ class MessageController extends \Our\Controller_AbstractApi { ...@@ -21,9 +21,9 @@ class MessageController extends \Our\Controller_AbstractApi {
$pageIndex=isset($this->req['data']['pageIndex'])?$this->req['data']['pageIndex']:0; $pageIndex=isset($this->req['data']['pageIndex'])?$this->req['data']['pageIndex']:0;
$pageSize=isset($this->req['data']['pageSize'])?$this->req['data']['pageSize']:20; $pageSize=isset($this->req['data']['pageSize'])?$this->req['data']['pageSize']:20;
if(!empty($this->req['data']['toType'])){ if(!empty($this->req['data']['toType'])){
$returnMessage=\Our\RedisHelper::cachedFunction(\Redis\Db15\MessageRedisModel::getInstance(),array(&$this->messageService, 'getMemberList'),array($this->memberId,$this->req['data']['fromType'],$this->req['data']['toId'],$this->req['data']['toType'],'*',$pageIndex,$pageSize),\Our\ApiConst::oneHourCache,array($this->memberId)); $returnMessage=\Our\RedisHelper::cachedFunction(\Redis\Db15\MessageRedisModel::getInstance(),array(&$this->messageService, 'getMemberList'),array($this->memberId,$this->req['data']['fromType'],$this->req['data']['toId'],$this->req['data']['toType'],'*',$pageIndex,$pageSize),\Our\ApiConst::tenSecond,array($this->memberId));
}else{ }else{
$returnMessage=\Our\RedisHelper::cachedFunction(\Redis\Db15\MessageRedisModel::getInstance(),array(&$this->messageService, 'getList'),array($this->memberId,$pageIndex,$pageSize),\Our\ApiConst::oneHourCache,array($this->memberId)); $returnMessage=\Our\RedisHelper::cachedFunction(\Redis\Db15\MessageRedisModel::getInstance(),array(&$this->messageService, 'getList'),array($this->memberId,$pageIndex,$pageSize),\Our\ApiConst::tenSecond,array($this->memberId));
if($returnMessage){ if($returnMessage){
$returnMessage['users']=$returnMessage['list']; $returnMessage['users']=$returnMessage['list'];
}else{ }else{
...@@ -140,4 +140,12 @@ class MessageController extends \Our\Controller_AbstractApi { ...@@ -140,4 +140,12 @@ class MessageController extends \Our\Controller_AbstractApi {
} }
\Error\ErrorModel::throwException(\Error\CodeConfigModel::setMessageFail); \Error\ErrorModel::throwException(\Error\CodeConfigModel::setMessageFail);
} }
public function getSetAction(){
$memberCenterService=\Business\User\MemberCenterServiceModel::getInstance();
$messageSet=$memberCenterService->getMessageSet($this->memberId);
if(!empty($messageSet)){
$this->success($messageSet);
}
\Error\ErrorModel::throwException(\Error\CodeConfigModel::commonError);
}
} }
...@@ -28,6 +28,8 @@ class ApiConst ...@@ -28,6 +28,8 @@ class ApiConst
//7天秒数 //7天秒数
const sevenDaySecond = 604800; const sevenDaySecond = 604800;
const oneMinute = 60; const oneMinute = 60;
const tenSecond=10;
//八小时秒数 //八小时秒数
const EightHoursSecond = 28800; const EightHoursSecond = 28800;
const hundred = 100; const hundred = 100;
......
...@@ -63,9 +63,9 @@ class ArrayConst ...@@ -63,9 +63,9 @@ class ArrayConst
//系统默认地址 //系统默认地址
const defaultAddress = array( const defaultAddress = array(
NameConst::cityCode => '0591', NameConst::cityCode => '0591',
NameConst::lat => '26.053183', NameConst::lat => '26.043194',
NameConst::lng => '119.24174', NameConst::lng => '119.331196',
NameConst::address => '横一号路特力林科技大厦', NameConst::address => '福远文创园',
'default'=>\Our\ApiConst::one 'default'=>\Our\ApiConst::one
); );
......
...@@ -347,13 +347,15 @@ class Common ...@@ -347,13 +347,15 @@ class Common
* @param array $data * @param array $data
* @return array * @return array
*/ */
public static function convertHump(array $data){ public static function convertHump($data = array()){
$result = []; $result = [];
foreach ($data as $key => $item) { if($data){
if (is_array($item) || is_object($item)) { foreach ($data as $key => $item) {
$result[self::humpToLine($key)] = self::convertHump((array)$item); if (is_array($item) || is_object($item)) {
} else { $result[self::humpToLine($key)] = self::convertHump((array)$item);
$result[self::humpToLine($key)] = $item; } else {
$result[self::humpToLine($key)] = $item;
}
} }
} }
return $result; return $result;
...@@ -365,13 +367,15 @@ class Common ...@@ -365,13 +367,15 @@ class Common
* @param array $data * @param array $data
* @return array * @return array
*/ */
public static function convertUnderline(array $data){ public static function convertUnderline( $data=array()){
$result = []; $result = [];
foreach ($data as $key => $item) { if($data){
if (is_array($item) || is_object($item)) { foreach ($data as $key => $item) {
$result[self::underlineToHump($key)] = self::convertUnderline((array)$item); if (is_array($item) || is_object($item)) {
} else { $result[self::underlineToHump($key)] = self::convertUnderline((array)$item);
$result[self::underlineToHump($key)] = $item; } else {
$result[self::underlineToHump($key)] = $item;
}
} }
} }
return $result; return $result;
......
...@@ -165,20 +165,13 @@ class MessageServiceModel extends \Business\AbstractModel ...@@ -165,20 +165,13 @@ class MessageServiceModel extends \Business\AbstractModel
public function getList($memberId, $pageIndex = ApiConst::pageIndex, $pageSize = ApiConst::pageSize) public function getList($memberId, $pageIndex = ApiConst::pageIndex, $pageSize = ApiConst::pageSize)
{ {
$messageOneDao = \DAO\MessageOneModel::getInstance(); $messageOneDao = \DAO\MessageOneModel::getInstance();
$messageHistoryDao=\DAO\MessageHistoryModel::getInstance();
$messageOneList = $messageOneDao->getListByMemberId($memberId, '*', $pageIndex, $pageSize); $messageOneList = $messageOneDao->getListByMemberId($memberId, '*', $pageIndex, $pageSize);
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['message'] = unserialize($val['message']);
$val['toAvatar'] = $self['avatar']; $val['toAvatar'] = $self['avatar'];
foreach($val['message']['buttons'] as &$button){ $val['message'] =$messageHistoryDao->convertMessage($val['message']);
if($button['type']==ApiConst::messageButtonTypeConfirmButton || $button['type']==ApiConst::messageButtonTypeReciverButton){
$timeDiff=TIMESTAMP-$val['message']['createTime'];
if($timeDiff>(ApiConst::tenMinSecond-ApiConst::oneMinute)){
$button['showType']=ApiConst::messageButtonShowTypeGray;
}
}
}
$val['fromAvatar'] = $toMember['avatar']; $val['fromAvatar'] = $toMember['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']);
...@@ -232,8 +225,8 @@ class MessageServiceModel extends \Business\AbstractModel ...@@ -232,8 +225,8 @@ class MessageServiceModel extends \Business\AbstractModel
$returnMemeber['fromAvatar'] = $self['avatar']; $returnMemeber['fromAvatar'] = $self['avatar'];
$memberMessages = $messageHistory->getListByMemberIdAndToIdAndToType($memberId, $selfType, $toId, $toType, $field, $pageIndex, $pageSize); $memberMessages = $messageHistory->getListByMemberIdAndToIdAndToType($memberId, $selfType, $toId, $toType, $field, $pageIndex, $pageSize);
foreach ($memberMessages['list'] as &$val) { foreach ($memberMessages['list'] as &$val) {
$val['message'] = unserialize($val['message']); $val['message'] = $messageHistory->convertMessage($val['message']);
$val['message']['title'] = !empty($val['message']['title']) ? $val['message']['title'] : '';
} }
$memberMessages['list'] = array_reverse($memberMessages['list']); $memberMessages['list'] = array_reverse($memberMessages['list']);
$returnMemeber['messages'] = $memberMessages; $returnMemeber['messages'] = $memberMessages;
......
...@@ -76,51 +76,59 @@ class AddressServiceModel extends \Business\AbstractModel { ...@@ -76,51 +76,59 @@ class AddressServiceModel extends \Business\AbstractModel {
$sess=\Yaf\Session::getInstance(); $sess=\Yaf\Session::getInstance();
$currentAddress = $sess->get('currentAddress'); $currentAddress = $sess->get('currentAddress');
//if($currentAddress) //if($currentAddress)
if(isset($data['choosedFlag'])&&$data['choosedFlag']){ if((isset($data['choosedFlag'])&&$data['choosedFlag'])){
$chooseFlag = $data['choosedFlag']; $chooseFlag = $data['choosedFlag'];
}else if(!$memberId){
$chooseFlag = \Our\ApiConst::one;
} }
$returnAddress = array();
if(isset($data['addressId'])&&$data['addressId']){ if(isset($data['addressId'])&&$data['addressId']){
$returnAddress = $this->setAddressById($data['addressId'],$memberId); $returnAddress = $this->setAddressById($data['addressId'],$memberId);
}else if(($data['lng']&&$data['lat']&&$data['cityCode'])){ }
if(isset($chooseFlag)&&$chooseFlag){ if(!$returnAddress){
$returnAddress = $this->setCurrentAddress($data,$memberId,$chooseFlag); if(($data['lng']&&$data['lat']&&$data['cityCode'])){
}else{ if(isset($chooseFlag)&&$chooseFlag){
$returnAddress = $this->setCurrentAddress($data,$memberId); $returnAddress = $this->setCurrentAddress($data,$memberId,$chooseFlag);
}
}else {
if($currentAddress){
if($currentAddress['addressId']&&$currentAddress['chooseFlag']){
$addresses = array();
if($currentAddress['addressId'] >\Our\ApiConst::zero){
$address['addressId'] = $currentAddress['addressId'];
$address['address'] = $currentAddress['address'];
$address['name'] = $currentAddress['name'];
$address['tagType'] = $currentAddress['tagType'];
$address['lat'] = $currentAddress['lat'];
$address['lng'] = $currentAddress['lng'];
$address['cityCode'] = $currentAddress['cityCode'];
$addresses[] = $address;
}
$returnAddress = array('returnAddressId'=>$currentAddress['addressId'],'choosedAddressFlag'=>$currentAddress['chooseFlag'],'addresses'=>$addresses);
}else{ }else{
$returnAddress = $this->setCurrentAddress($data,$memberId);
$returnAddress = array('returnAddressId'=>$currentAddress['addressId'],'choosedAddressFlag'=>isset($currentAddress['chooseFlag'])&&$currentAddress['chooseFlag']?$currentAddress['chooseFlag']:\Our\ApiConst::zero); }
if($memberId){ }else {
$myAddresses = $this->getMyCurrentAddressByMemberId($memberId); if($currentAddress){
if($myAddresses){ if($currentAddress['addressId']&&$currentAddress['chooseFlag']){
$returnAddress['addresses'] = $myAddresses; $addresses = array();
if($currentAddress['addressId'] >\Our\ApiConst::zero){
$address['addressId'] = $currentAddress['addressId'];
$address['address'] = $currentAddress['address'];
$address['name'] = $currentAddress['name'];
$address['tagType'] = $currentAddress['tagType'];
$address['lat'] = $currentAddress['lat'];
$address['lng'] = $currentAddress['lng'];
$address['cityCode'] = $currentAddress['cityCode'];
$addresses[] = $address;
}
$returnAddress = array('returnAddressId'=>$currentAddress['addressId'],'choosedAddressFlag'=>$currentAddress['chooseFlag'],'addresses'=>$addresses);
}else{
$returnAddress = array('returnAddressId'=>$currentAddress['addressId'],'choosedAddressFlag'=>isset($currentAddress['chooseFlag'])&&$currentAddress['chooseFlag']?$currentAddress['chooseFlag']:\Our\ApiConst::zero);
if($memberId){
$myAddresses = $this->getMyCurrentAddressByMemberId($memberId);
if($myAddresses){
$returnAddress['addresses'] = $myAddresses;
}
} }
} }
}else{
if(isset($data['choosedFlag'])&&$data['choosedFlag']) {//设置地址时执行到这里属于非法情况
\Error\ErrorModel::throwException(\Error\CodeConfigModel::illegalAccess);
}
$data = \Our\ArrayConst::defaultAddress; //如果没有传任何地址信息,系统提供默认地址
$returnAddress = $this->setCurrentAddress($data,$memberId,$memberId?\Our\ApiConst::zero:\Our\ApiConst::one);
} }
}else{
if(isset($data['choosedFlag'])&&$data['choosedFlag']) {//设置地址时执行到这里属于非法情况
\Error\ErrorModel::throwException(\Error\CodeConfigModel::illegalAccess);
}
$data = \Our\ArrayConst::defaultAddress; //如果没有传任何地址信息,系统提供默认地址
$returnAddress = $this->setCurrentAddress($data,$memberId);
} }
} }
if(isset($data['choosedFlag'])&&$data['choosedFlag']){ //如果调用设置地址接口时,前台不需要弹窗 if((isset($data['choosedFlag'])&&$data['choosedFlag'])||!$memberId){ //如果调用设置地址接口时,前台不需要弹窗
$returnAddress['choosedAddressFlag'] = \Our\ApiConst::one; $returnAddress['choosedAddressFlag'] = \Our\ApiConst::one;
} }
return $returnAddress; return $returnAddress;
...@@ -134,9 +142,10 @@ class AddressServiceModel extends \Business\AbstractModel { ...@@ -134,9 +142,10 @@ class AddressServiceModel extends \Business\AbstractModel {
if(!$addressId){ if(!$addressId){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::illegalAccess); \Error\ErrorModel::throwException(\Error\CodeConfigModel::illegalAccess);
} }
$address = $this->getMyAddress(array('addressId'=>$addressId),$memberId); $address = $this->getMyAddress(array('addressId'=>$addressId),$memberId,false);
if(!$address){ if(!$address){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::addressNotExist); //\Error\ErrorModel::throwException(\Error\CodeConfigModel::addressNotExist);
return array();
} }
$sess = \Yaf\Session::getInstance(); $sess = \Yaf\Session::getInstance();
$newAddress['addressId'] = $address['addressId']; $newAddress['addressId'] = $address['addressId'];
...@@ -342,10 +351,11 @@ class AddressServiceModel extends \Business\AbstractModel { ...@@ -342,10 +351,11 @@ class AddressServiceModel extends \Business\AbstractModel {
* 获取单个收货地址 * 获取单个收货地址
* @param $where * @param $where
* @param $memberId * @param $memberId
* @param $validFlag 地址不存在是否需要抛出异常
* @return array|bool|mixed * @return array|bool|mixed
* @throws \Exception * @throws \Exception
*/ */
public function getMyAddress($where,$memberId){ public function getMyAddress($where,$memberId,$validFlag = true){
$addressDao = \DAO\AddressModel::getInstance(); $addressDao = \DAO\AddressModel::getInstance();
$columns = $addressDao->getAddressColumns(); $columns = $addressDao->getAddressColumns();
if($where['addressId']){ if($where['addressId']){
...@@ -354,7 +364,7 @@ class AddressServiceModel extends \Business\AbstractModel { ...@@ -354,7 +364,7 @@ class AddressServiceModel extends \Business\AbstractModel {
$address = \Our\RedisHelper::cachedFunction(\Redis\Db8\AddressRedisModel::getInstance(),array(&$addressDao, 'findByWhereWithColumns'),array($condition,$columns),3600,array($addressId)); $address = \Our\RedisHelper::cachedFunction(\Redis\Db8\AddressRedisModel::getInstance(),array(&$addressDao, 'findByWhereWithColumns'),array($condition,$columns),3600,array($addressId));
//$address = $this->findFromRedis($condition,'han_address','address_id',$columns); //$address = $this->findFromRedis($condition,'han_address','address_id',$columns);
if(!$address||($address&&$address['member_id']!=$memberId)){ if((!$address||($address&&$address['member_id']!=$memberId))&&$validFlag){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::addressNotExist); \Error\ErrorModel::throwException(\Error\CodeConfigModel::addressNotExist);
} }
}; };
......
...@@ -47,11 +47,31 @@ class MemberCenterServiceModel extends \Business\AbstractModel ...@@ -47,11 +47,31 @@ class MemberCenterServiceModel extends \Business\AbstractModel
$sale_act = $saleInstance->getOneByMIdCache($memberId); $sale_act = $saleInstance->getOneByMIdCache($memberId);
$sale_act ? $memberCenter['isSalesman'] = 1 : $memberCenter['isSalesman'] = 0; $sale_act ? $memberCenter['isSalesman'] = 1 : $memberCenter['isSalesman'] = 0;
$memberCenter['memberMobile'] = \DAO\MemberModel::getInstance()->getInfo($memberId)['memberMobile']; $memberCenter['memberMobile'] = \DAO\MemberModel::getInstance()->getInfo($memberId)['memberMobile'];
$memberCenter['canPush']= (int)$memberInfo['pushSet']['canPush']; $memberCenter['canSendMsg']= (int)$memberInfo['pushSet']['canPush'];
$memberCenter['sound']= (int)$memberInfo['pushSet']['sound']; $memberCenter['sound']= (int)$memberInfo['pushSet']['sound'];
$memberCenter['vibrate']=(int)$memberInfo['pushSet']['vibrate']; $memberCenter['vibrate']=(int)$memberInfo['pushSet']['vibrate'];
return $memberCenter; return $memberCenter;
} }
public function getMessageSet($memberId){
$memberInfo = \DAO\MemberModel::getInstance()->getInfo($memberId);
// $pushSet=array();
if(!empty($memberInfo['pushSet'])){
$pushSet=unserialize($memberInfo['pushSet']);
$pushSet=array(
'canPush'=>(int)$pushSet['canPush'],
'sound'=>(int)$pushSet['sound'],
'vibrate'=>(int)$pushSet['vibrate'],
);
}else{
$pushSet=array(
'canPush'=>ApiConst::openMessae,
'sound'=>ApiConst::openMessae,
'vibrate'=>ApiConst::openMessae,
);
}
return $pushSet;
}
public function getStatistics($memberId){ public function getStatistics($memberId){
$memebrCenterDb1Redis = \Redis\Db1\MemberCenterRedisModel::getInstance(); $memebrCenterDb1Redis = \Redis\Db1\MemberCenterRedisModel::getInstance();
$memberCenter = $memebrCenterDb1Redis->tableHGAll($memberId); $memberCenter = $memebrCenterDb1Redis->tableHGAll($memberId);
......
...@@ -83,6 +83,9 @@ class MessageModel extends \DAO\AbstractModel { ...@@ -83,6 +83,9 @@ class MessageModel extends \DAO\AbstractModel {
$messages['list']=$convertList; $messages['list']=$convertList;
return $messages; return $messages;
} }
/** /**
* 类实例 * 类实例
* *
......
...@@ -92,6 +92,22 @@ class MessageHistoryModel extends \DAO\AbstractModel { ...@@ -92,6 +92,22 @@ class MessageHistoryModel extends \DAO\AbstractModel {
$res=$this->db->insert($this->_tableName)->rows($data)->execute(); $res=$this->db->insert($this->_tableName)->rows($data)->execute();
return $res; return $res;
} }
public function convertMessage($message){
$message = unserialize($message);
$message['title'] = !empty($message['title']) ? $message['title'] : '';
if(!empty($message['buttons'])){
foreach($message['buttons'] as &$button){
if($button['type']==ApiConst::messageButtonTypeConfirmButton || $button['type']==ApiConst::messageButtonTypeReciverButton){
$timeDiff=TIMESTAMP-$message['createTime'];
if($timeDiff>(ApiConst::tenMinSecond-ApiConst::oneMinute)){
$button['showType']=ApiConst::messageButtonShowTypeGray;
}
}
}
}
return $message;
}
/** /**
* 类实例 * 类实例
......
...@@ -124,6 +124,7 @@ class MessageOneModel extends \DAO\AbstractModel { ...@@ -124,6 +124,7 @@ class MessageOneModel extends \DAO\AbstractModel {
} }
} }
/** /**
* 类实例 * 类实例
* *
......
...@@ -9,10 +9,10 @@ ...@@ -9,10 +9,10 @@
</head> </head>
<body> <body>
<form action="/message/get" method="post"> <form action="/message/get" method="post">
用户登录状态key:<input name="data[key]" value="6d212e880869eb4960cf81700f1369fe"/><br /> 用户登录状态key:<input name="data[key]" value="fd4b739c4815297044191451eabf0eb5"/><br />
接受消息用户ID:<input name="data[toId]" value=""/><br /> 接受消息用户ID:<input name="data[toId]" value="-2"/><br />
接受消息用户类型:<input name="data[toType]" value="1" type="radio" checked/>系统消息 <input type="radio" name="data[toType]" value="2"/>订单消息 <input name="data[toType]" value="3" type="radio" />快递消息 <input type="radio" name="data[toType]" value="4"/>店铺消息 <input type="radio" name="data[toType]" value="5"/>普通消息 <input name="data[toType]" value="6" type="radio" />老师 <br /> 接受消息用户类型:<input name="data[toType]" value="1" type="radio" />系统消息 <input type="radio" name="data[toType]" value="2" checked/>订单消息 <input name="data[toType]" value="3" type="radio" />快递消息 <input type="radio" name="data[toType]" value="4"/>店铺消息 <input type="radio" name="data[toType]" value="5"/>普通消息 <input name="data[toType]" value="6" type="radio" />老师 <br />
自己发送消息的用户类型:<input name="data[fromType]" value=""/> <br /> 自己发送消息的用户类型:<input name="data[fromType]" value="4"/> <br />
页码:<input name="data[pageIndex]" value="" /><br/> 页码:<input name="data[pageIndex]" value="" /><br/>
每页条数:<input name="data[pageSize]" value="" /><br/> 每页条数:<input name="data[pageSize]" value="" /><br/>
<input type="submit" value="提交"> <input type="submit" value="提交">
......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>获得已发送消息的用户列表和(系统消息,订单消息,快递用户消息最后一条消息)</title>
<style>
</style>
</head>
<body>
<form action="/message/getSet" method="post">
用户登录状态key:<input name="data[key]" value="ca44044c38f5a6d06ddd7304e1c7666c"/><br />
<input type="submit" value="提交">
</form>
</body>
</html>
\ No newline at end of file
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