|
@@ -113,7 +113,7 @@ class Data
|
|
*
|
|
*
|
|
* @return mixed
|
|
* @return mixed
|
|
*/
|
|
*/
|
|
- public function push($uid, $to_uid, $name, $content, $type = 11, $project = 1, $scope = false, $id = -1)
|
|
|
|
|
|
+ public function push($uid, $to_uid, $name, $content, $type = 11, $project = 1, $scope = false, $push = false, $id = -1)
|
|
{
|
|
{
|
|
if (!is_numeric($type)) {
|
|
if (!is_numeric($type)) {
|
|
Dever::alert('错误的消息类型');
|
|
Dever::alert('错误的消息类型');
|
|
@@ -156,7 +156,12 @@ class Data
|
|
|
|
|
|
if ($id > 0) {
|
|
if ($id > 0) {
|
|
if ($to_uid) {
|
|
if ($to_uid) {
|
|
- $to_uid = explode(',', $to_uid);
|
|
|
|
|
|
+ if (strstr($to_uid, ',')) {
|
|
|
|
+ $to_uid = explode(',', $to_uid);
|
|
|
|
+ } else {
|
|
|
|
+ $to_uid = explode("\n", $to_uid);
|
|
|
|
+ }
|
|
|
|
+
|
|
foreach ($to_uid as $k => $v) {
|
|
foreach ($to_uid as $k => $v) {
|
|
$insert['add_uid'] = $v;
|
|
$insert['add_uid'] = $v;
|
|
$insert['add_oid'] = $id;
|
|
$insert['add_oid'] = $id;
|
|
@@ -176,33 +181,70 @@ class Data
|
|
if (isset($config['push']) && $config['push'] > 0) {
|
|
if (isset($config['push']) && $config['push'] > 0) {
|
|
if ($scope == 2) {
|
|
if ($scope == 2) {
|
|
# 发送全部
|
|
# 发送全部
|
|
- $to_uid = -1;
|
|
|
|
|
|
+ $to_uid = array();
|
|
}
|
|
}
|
|
- $this->push($config['push'], $to_uid, $name, $content);
|
|
|
|
|
|
+ $this->push($config['push'], $to_uid, $name, $content, $push);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- private function push($id, $uid, $name, $content)
|
|
|
|
|
|
+ private function push($id, $uid, $name, $content, $push)
|
|
{
|
|
{
|
|
$config = Dever::db('message/push')->one($id);
|
|
$config = Dever::db('message/push')->one($id);
|
|
if ($config) {
|
|
if ($config) {
|
|
# 现在就是腾讯信鸽
|
|
# 现在就是腾讯信鸽
|
|
if ($config['type'] == 1) {
|
|
if ($config['type'] == 1) {
|
|
|
|
+ Dever::apply('sdk/sg', 'message');
|
|
$push = new \XingeApp($config['appid'], $config['appsecret']);
|
|
$push = new \XingeApp($config['appid'], $config['appsecret']);
|
|
$mess = new \Message();
|
|
$mess = new \Message();
|
|
$mess->setExpireTime(86400);
|
|
$mess->setExpireTime(86400);
|
|
$mess->setTitle($name);
|
|
$mess->setTitle($name);
|
|
$mess->setContent($content);
|
|
$mess->setContent($content);
|
|
- $mess->setType(\Message::TYPE_MESSAGE);
|
|
|
|
- $uid = explode(',', $uid);
|
|
|
|
- $accountList = array_walk(
|
|
|
|
- $uid,
|
|
|
|
- function(&$value, $key, $prefix){$value = $prefix.$value;},
|
|
|
|
- 'dever_'
|
|
|
|
- );
|
|
|
|
- $ret = $push->PushAccountList(0, $accountList, $mess);
|
|
|
|
|
|
+ //$mess->setType(\Message::TYPE_MESSAGE);
|
|
|
|
+ $mess->setType(\Message::TYPE_NOTIFICATION);
|
|
|
|
+ $action = new \ClickAction();
|
|
|
|
+ $action->setActionType(\ClickAction::TYPE_ACTIVITY);
|
|
|
|
+ $action->setActivity($push);
|
|
|
|
+ $mess->setAction($action);
|
|
|
|
+
|
|
|
|
+ $total = count($uid);
|
|
|
|
+ $prefix = 'dever_';
|
|
|
|
+ $num = 10;
|
|
|
|
+ if ($total <= 0) {
|
|
|
|
+ # 发全部
|
|
|
|
+ $ret = $push->PushAllDevices(0, $mess);
|
|
|
|
+ } elseif ($total == 1) {
|
|
|
|
+ # 发单条
|
|
|
|
+ $ret = $push->PushSingleAccount(0, $prefix . $uid, $mess);
|
|
|
|
+ } elseif ($total <= $num) {
|
|
|
|
+ # 发列表
|
|
|
|
+ $accountList = array_walk(
|
|
|
|
+ $uid,
|
|
|
|
+ function(&$value, $key, $prefix){$value = $prefix.$value;},
|
|
|
|
+ $prefix
|
|
|
|
+ );
|
|
|
|
+ $ret = $push->PushAccountList(0, $accountList, $mess);
|
|
|
|
+ } else {
|
|
|
|
+ # 大批量发送
|
|
|
|
+ $ret = $push->CreateMultipush($mess, \XingeApp::IOSENV_DEV);
|
|
|
|
+ if (!($ret['ret_code'] === 0)) {
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+ $page = intval($total/$num)+1;
|
|
|
|
+ for ($i = 0; $i <= $page; $i++) {
|
|
|
|
+ $array = array();
|
|
|
|
+ for($j = 0; $j <= $i+$num; $j++) {
|
|
|
|
+ $k = $i + $j;
|
|
|
|
+ if (isset($uid[$k])) {
|
|
|
|
+ $array[$k] = $prefix . $uid[$k];
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ array_push($ret, $push->PushAccountListMultiple($ret['result']['push_id'], $array));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
return ($ret);
|
|
return ($ret);
|
|
}
|
|
}
|
|
}
|
|
}
|