/** * 以keyvalue的组合方式来重设tag,(先删除已有的keyvalue) * @param string $p_deviceTokens 用户推送ID,百度里是buserid,支持数组或逗号隔开的字符串 * @param int $device_type 设备类型 1:浏览器设备 2:pc设备 3:Android设备 4:ios设备 5:windows phone设备 * @param string $tag_key key * @param string $tag_values value值,若为空,则删除所有key数据 */ public static function BatchSetTagValue($p_deviceTokens, $device_type, $tag_key, $tag_values) { $newTagnames = array(); $addTagnames = array(); $delTagnames = array(); $ret = array(); $tag_values = is_array($tag_values) ? $tag_values : explode(',', $tag_values); foreach ($tag_values as $tag_value) { if ($tag_value != null) { $newTagnames[] = $tag_key . $tag_value; } } $p_deviceTokens = is_array($p_deviceTokens) ? $p_deviceTokens : explode(',', $p_deviceTokens); foreach ($p_deviceTokens as $p_deviceToken) { $tagnames = W2PUSH::queryTokenTags($p_deviceToken, $device_type); if (is_array($tagnames)) { $addTagnames = array_diff($newTagnames, $tagnames); foreach ($tagnames as $tagname) { if (strpos($tagname, $tag_key) === 0 && !in_array($tagname, $newTagnames)) { $delTagnames[] = $tagname; } } } $ret[] = W2PUSH::BatchAddTag($p_deviceToken, $device_type, $addTagnames); $ret[] = W2PUSH::BatchDelTag($p_deviceToken, $device_type, $delTagnames); } return $ret; }
public static function actionGetMyDevice() { $p_where = array(); $p_where['deviceToken'] = Utility::getHeaderValue('Devicetoken'); if (is_null($p_where['deviceToken'])) { return Utility::getArrayForResults(RUNTIME_CODE_ERROR_PARAM, '请输入正确的设备号'); } $p_countThis = -1; $tmpResult = static::loadList($p_where, $p_order = null, $p_pageIndex = 1, $p_pageSize = 1, $p_countThis, $isDetail = 'mydevice'); if (is_object($tmpResult)) { $extInfo = array(); $extInfo['tags'] = W2PUSH::queryTokenTags($tmpResult->getDeviceToken(), $tmpResult->getDeviceType()); $extInfo['info'] = W2PUSH::QueryInfoOfToken($tmpResult->getDeviceToken(), $tmpResult->getDeviceType()); return Utility::getArrayForResults(RUNTIME_CODE_OK, '', $tmpResult); } else { return $tmpResult; } }