123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- <?php
- /**
- * @copyright (c) 2011 aircheng.com
- * @file seller_mess.php
- * @brief 商户消息的管理
- * @author qfsoft
- * @date 2016/03/06 20:30:10
- * @version 4.4
- */
- class seller_mess
- {
- //商户信息数据库实例
- private $sellerDB = null;
- //商户id
- private $seller_id = '';
- //商户消息ID
- private $messageIds = '';
- /**
- * @brief 构造函数 商户id
- * @param string $seller_id 商户id
- */
- function __construct($seller_id)
- {
- $this->seller_id = $seller_id;
- $this->sellerDB = new IModel('seller');
- $sellerRow = $this->sellerDB->getObj('id = '.$seller_id);
- $this->messageIds = $sellerRow['seller_message_ids'];
- }
- /**
- * 直接发站内信到商户
- * @param string $sellerIds 商户Id的串
- * @param array $content 消息内容 array('title' => '标题','content' => '内容')
- */
- public static function send($sellerIds, $content)
- {
- set_time_limit(0);
- $data = array(
- 'title' => $content['title'],
- 'content' => $content['content'],
- 'time' => ITime::getDateTime(),
- );
- $msgDB = new IModel("seller_message");
- $msgDB->setData($data);
- $id = $msgDB->add();
- if($id === false)
- {
- return false;
- }
- else
- {
- $db = IDBFactory::getDB();
- $tableName = IWeb::$app->config['DB']['tablePre']."seller";
- if ($sellerIds)
- {
- $sql = "UPDATE `{$tableName}` SET seller_message_ids = CONCAT( IFNULL(seller_message_ids,'') ,'{$id},') WHERE id in ({$sellerIds})";
- }
- else
- {
- $sql = "UPDATE `{$tableName}` SET seller_message_ids = CONCAT( IFNULL(seller_message_ids,'') ,'{$id},')";
- }
- return $db->query($sql);
- }
- }
- /**
- * @brief 获得seller表中的seller_message_ids,去掉 '-' 和最后的 ','
- * @return string 返回所有商户消息id的字符串
- */
- public function getAllMsgIds()
- {
- return str_replace('-','',trim($this->messageIds,','));
- }
- /**
- * @brief 判断seller_message_id是否已经读过
- * @param int $messageId seller_message的id
- * @return boolean 返回true为已读,false为未读
- */
- public function is_read($messageId)
- {
- if(strpos(','.trim($this->messageIds,',').',',',-'.$messageId.',') === false)
- {
- return false;
- }
- return true;
- }
- /**
- * @brief 将messageId写入seller表中
- * @param int $messageId seller_message的id
- * @param int $read 0:未读(追加到用户id串后面),1:已读(把用户id串增加'-'负号)
- * @return int or boolean
- */
- public function writeMessage($messageId,$read = 0)
- {
- if($read == 1)
- {
- $tempIds = ','.trim($this->messageIds,',').',';
- if(strpos($tempIds,','.$messageId.',') === false)
- {
- return false;
- }
- $tempIds = str_replace(','.$messageId.',',',-'.$messageId.',',$tempIds);
- $this->messageIds = trim($tempIds,',').',';
- }
- else
- {
- $this->messageIds .= $messageId.',';
- }
- return $this->save();
- }
- /**
- * @brief 存储消息串
- * @return boolean
- */
- private function save()
- {
- $this->sellerDB->setData(array('seller_message_ids' => $this->messageIds));
- return $this->sellerDB->update('id='.$this->seller_id);
- }
- /**
- * @brief 删除seller表中的messageId数据
- * @param $messageId string 要删除的消息ID值
- * @return string message_ids结果字符串
- */
- public function delMessage($messageId)
- {
- $tempIds = str_replace(','.$messageId.',','',','.trim($this->messageIds,',').',');
- $tempIds = str_replace(',-'.$messageId.',','',','.trim($tempIds,',').',');
- $tempIds = trim($tempIds,',').',';
- $this->messageIds = $tempIds;
- return $this->save();
- }
- /**
- * @brief 获取未读的商户消息数
- * @return int 消息数量
- */
- public function needReadNum()
- {
- $tempIds = ','.trim($this->messageIds,',').',';
- preg_match_all('|,\d+|',$tempIds,$result);
- return count(current($result));
- }
- //读取消息
- public function read($id)
- {
- $wholeIds = $this->getAllMsgIds();
- if(strpos(",".$wholeIds.",",",".$id.",") === false)
- {
- return null;
- }
- $msgDB = new IModel("seller_message");
- return $msgDB->getObj('id = '.$id);
- }
- }
|