$identifier));
/*
$usersig = $GLOBALS['db']->getOne("select usersig from ".DB_PREFIX."user where id=".$identifier." and expiry_after >" .NOW_TIME);
if(!$usersig){
fanwe_require(APP_ROOT_PATH.'system/tim/TimApi.php');
$api = createRestAPI();
$private_pem_path = APP_ROOT_PATH."system/tim/ec_key.pem";
$signature = get_signature();
$ret = $api->generate_user_sig($identifier, '86400', $private_pem_path, $signature);
$expiry_after = NOW_TIME + 86400;
//echo "update ".DB_PREFIX."user set usersig = ".$ret[0].",expiry_after=".$expiry_after." where id = ".$identifier;exit;
$GLOBALS['db']->query("update ".DB_PREFIX."user set usersig = '".$ret[0]."',expiry_after=".$expiry_after." where id = ".$identifier);
}else{
$ret[0] =$usersig;
}
if($ret == null || strstr($ret[0], "failed")){
$root['error'] = "获取usrsig失败, 请确保TimRestApiConfig.json配置信息正确";
$root['status'] = 0;
}else{
$root['usersig'] = $ret[0];
$root['status'] = 1;
}
*/
}
if(intval($_REQUEST['ajax_type'])&&intval(IS_DEBUG)){
print_r($root);echo "
";
}
ajax_return($root);
}
/**
* 获得用户公开信息;不传identifier时,则获得当前登陆用户的信息
*/
public function userinfo(){
$root = array();
//$GLOBALS['user_info']['id'] = 292;
if(!$GLOBALS['user_info']){
$root['error'] = "用户未登陆,请先登陆.";
$root['status'] = 0;
$root['user_login_status'] = 0;//有这个参数: user_login_status = 0 时,表示服务端未登陆、要求登陆,操作
}else{
$user_id = intval($GLOBALS['user_info']['id']);
$podcast_id = intval($_REQUEST['podcast_id']);//主播id,fanwe_user.id
$to_user_id = intval($_REQUEST['to_user_id']);//需要查看的用户id
if ($to_user_id == 0){
$to_user_id = $user_id;
}
$root = getuserinfo($user_id,$podcast_id,$to_user_id,$_REQUEST);
$m_config = load_auto_cache("m_config");//初始化手机端配置
$root['init_version'] = intval($m_config['init_version']);//手机端配置版本号
//公会ljz
if($root['user']['society_id'] > 0){
$root['user']['society_name'] = $GLOBALS['db']->getOne("select name from ".DB_PREFIX."society where id=".$root['user']['society_id']);
}else{
$root['user']['society_name'] = '';
}
if($m_config['name_limit']==1){
$user = $GLOBALS['db']->getRow("select nick_name from ".DB_PREFIX."user where id = ".$user_id);
$nick_name=$user['nick_name'];
//进入个人中心过滤铭感词汇
$limit_sql =$GLOBALS['db']->getCol("SELECT name FROM ".DB_PREFIX."limit_name");
if($GLOBALS['db']->getCol("SELECT name FROM ".DB_PREFIX."limit_name WHERE '$nick_name' like concat('%',name,'%')")){
$nick_name=str_replace($limit_sql,'*',$nick_name);
}
//判断用户名如果被过滤后为空,格式则变更为: 账号+ID
if($nick_name==''){
$nick_name=('账号'.$user_id);
}
//更新数据库
$sql = "update ".DB_PREFIX."user set nick_name = '$nick_name' where id=".$user_id;
$GLOBALS['db']->query($sql);
//更新redis
user_deal_to_reids(array($user_id));
//二级分销
if ((defined('DISTRIBUTION_SCAN')&&DISTRIBUTION_SCAN==1)) //二级分销按钮
{
$login_type = $GLOBALS['db']->getRow("select login_type from ".DB_PREFIX."user where id = ".$user_id); //获取登录用户类型
if ($login_type['login_type']!='4') //若不是游客登录,才可进行二级分销
{
$root['distribution_btn'] = 1; //显示分销二维码和分享界面的按钮
//分销转发的数据
$share = array();
$share['share_title'] = strim($m_config['share_title']);//'你丑你先睡,我美我直播!';
$head_image = $GLOBALS['db']->getRow("select head_image from ".DB_PREFIX."user where id = ".$user_id);
$share['share_imageUrl']=get_spec_image($head_image['head_image']);
$share['share_url'] = SITE_DOMAIN.APP_ROOT.'/mapi/index.php?ctl=share_distribution&act=index&share_id='.$user_id; //分销分享的URL(二维码或者其他地方转发)
$share['share_content'] = $user['nick_name'].'邀请您加入我们,一起来看直播~';
$root['share'] = $share; //分销分享部分的数据
$qr_code = $GLOBALS['db']->getRow("select qr_code from ".DB_PREFIX."user where id = ".$user_id);
$root['qr_code'] = get_spec_image($qr_code['qr_code']);//分销二维码图片路径
}
}
}
$sdk_version_name = strim($_REQUEST['sdk_version_name']);
$root['show_red'] = $m_config['ios_check_version'] && $m_config['ios_check_version'] == $sdk_version_name ? 0 : 1;
$root['status'] = 1;
//格式化数据(大于10000保留两位小数,否则不变)
fanwe_require(APP_ROOT_PATH.'mapi/lib/core/num_format.php');
$root['user']['n_fans_count'] = format_for_ten_thousand($root['user']['fans_count']);
$root['user']['n_focus_count'] = format_for_ten_thousand($root['user']['focus_count']);
$root['user']['n_use_diamonds'] = format_for_ten_thousand($root['user']['use_diamonds']);
$root['user']['n_ticket'] = format_for_ten_thousand($root['user']['ticket']);
$root['user']['n_video_count'] = format_for_ten_thousand($root['user']['video_count']);
$root['user']['n_useable_ticket'] = format_for_ten_thousand($root['user']['useable_ticket']);
$root['user']['n_diamonds'] = format_for_ten_thousand($root['user']['diamonds']);
$root['user']['n_use_diamonds'] = format_for_ten_thousand($root['user']['use_diamonds']);
$root['user']['n_show_user_order'] = format_for_ten_thousand($root['user']['show_user_order']);
$root['user']['n_user_order'] = format_for_ten_thousand($root['user']['user_order']);
$root['user']['n_show_user_pai'] = format_for_ten_thousand($root['user']['show_user_pai']);
$root['user']['n_user_pai'] = format_for_ten_thousand($root['user']['user_pai']);
$root['user']['n_show_podcast_order'] = format_for_ten_thousand($root['user']['show_podcast_order']);
$root['user']['n_podcast_order'] = format_for_ten_thousand($root['user']['podcast_order']);
$root['user']['n_show_shopping_cart'] = format_for_ten_thousand($root['user']['show_shopping_cart']);
$root['user']['n_shopping_cart'] = format_for_ten_thousand($root['user']['shopping_cart']);
$root['user']['n_podcast_goods'] = format_for_ten_thousand($root['user']['podcast_goods']);
$root['user']['n_coin'] = format_for_ten_thousand($root['user']['coin']);
$root['user']['n_podcast_pai'] = format_for_ten_thousand($root['user']['podcast_pai']);
$root['user']['n_shop_goods'] = format_for_ten_thousand($root['user']['shop_goods']);
$root['user']['n_svideo_count'] = format_for_ten_thousand($root['user']['svideo_count']);
}
ajax_return($root);
}
/**
* 关注某个用户
*/
public function follow(){
$root = array('status'=>1,'error'=>'');
//$GLOBALS['user_info']['id'] = 269;
if(!$GLOBALS['user_info']){
$root['error'] = "用户未登陆,请先登陆.";
$root['status'] = 0;
$root['user_login_status'] = 0;//有这个参数: user_login_status = 0 时,表示服务端未登陆、要求登陆,操作
}else{
//
$user_level = $GLOBALS['db']->getOne("select user_level from ".DB_PREFIX."user where id = ".$GLOBALS['user_info']['id'],true,true);
$m_config = load_auto_cache("m_config");//初始化手机端配置
$show_follow_msg = intval($m_config['show_follow_msg']);//是否现发送关注提示信息 0:不显示; 1:显示
$show_follow_msg_lv = intval($m_config['show_follow_msg_lv']);//关注提示显示的等级
$user_id = intval($GLOBALS['user_info']['id']);//当前用户;
$room_id = intval($_REQUEST['room_id']);//room_id 当前直播房间号,用来:计算权重的;
$to_user_id = intval($_REQUEST['to_user_id']);//被关注或取消关注的用户
$to_user_id = $GLOBALS['db']->getOne("select id from ".DB_PREFIX."user where id = ".$to_user_id,true,true);
if(!intval($to_user_id)) {
$root['error'] = "关注的用户不存在!";
$root['status'] = 0;
}else if($user_id!=$to_user_id){
$root = redis_set_follow($user_id,$to_user_id,false,$room_id);
clear_auto_cache("playback_list",array("user_id"=>$user_id));
if($show_follow_msg && ($user_level>=$show_follow_msg_lv)){
$root['follow_msg'] = emoji_decode($GLOBALS['user_info']['nick_name'])."关注了主播";
}else {
$root['follow_msg'] = '';
}
/*
fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/UserFollwRedisService.php');
$user_redis = new UserFollwRedisService($user_id);
//查看关注人数
$follow_count = $user_redis->follow_count();
//粉丝人数
$follow_by_count = $user_redis->follower_count();
//update_follow($user_id,$follow_count,$follow_by_count);
//$root = set_follow($user_id,$to_user_id);
//$root = redis_set_follow($user_id,$to_user_id);
*/
if (defined('OPEN_MISSION') && OPEN_MISSION && $root['has_focus']) {
require_once APP_ROOT_PATH . 'mapi/lib/core/Model.class.php';
Model::$lib = dirname(__FILE__);
Model::build('mission')->incProgress($user_id,4);
}
}else{
$root['error'] = "不能关注自己!";
$root['status'] = 0;
}
}
ajax_return($root);
}
/**
* 禁言,只有:主群或群管理员才能设置
*/
public function forbid_send_msg(){
$root = array();
$root['status'] = 0;
$root['is_forbid'] = 0;
//$GLOBALS['user_info']['id'] = 1;
if(!$GLOBALS['user_info']){
$root['error'] = "用户未登陆,请先登陆.";
$root['status'] = 0;
$root['user_login_status'] = 0;//有这个参数: user_login_status = 0 时,表示服务端未登陆、要求登陆,操作
}else{
$user_id = intval($GLOBALS['user_info']['id']);//
$to_user_id = strim($_REQUEST['to_user_id']);//被禁言的用户id
$group_id = strim($_REQUEST['group_id']);//群组ID
$second = intval($_REQUEST['second']);//禁言时间,单位为秒; 为0时表示取消禁言
$is_nospeaking = $GLOBALS['db']->getOne("select is_nospeaking from ".DB_PREFIX."user where id = ".$to_user_id,true,true);
if(intval($is_nospeaking)==1){
$root['error'] = "该用户已被im全局禁言.";
ajax_return($root);
}
fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/VideoRedisService.php');
$video_redis = new VideoRedisService();
$video = $video_redis->getRow_db_ByGroupId($group_id,array('id','user_id'));
// //优化
// $forbid_info = $video_redis->has_forbid_msg($group_id,$to_user_id);//判断某个用户是否被禁言(被禁言返回:true; 未被禁言返回:false)
// if($forbid_info && intval($forbid_info)>NOW_TIME){
// $second = 0;
// }else{
// $second = 10000;
// $video_redis->unset_forbid_msg($group_id,$to_user_id);
// }
//$sql = "select id,user_id,group_id from ".DB_PREFIX."video where group_id = '".$group_id."'";
//$video = $GLOBALS['db']->getRow($sql,true,true);
$podcast_id = intval($video['user_id']);
$room_id = intval($video['id']);
//查看自己
if ($to_user_id == $user_id){
$root['error'] = "不能自己给自己禁言";
}else{
$allow = false;
//主播查看
if ($podcast_id == $user_id){
$allow = true;//主播 有权限禁言
}else{
$sql = "select count(id) as num from ".DB_PREFIX."user_admin where podcast_id = ".$podcast_id." and user_id = ".$user_id;
if ($GLOBALS['db']->getOne($sql,true,true) > 0){
$allow = true;//管理员 有权限禁言按钮
}
}
}
if ($allow){
$sql = "select is_robot,nick_name from ".DB_PREFIX."user where id = '".$to_user_id."'";
$user = $GLOBALS['db']->getRow($sql,true,true);
$nick_name = $user['nick_name'];
fanwe_require(APP_ROOT_PATH.'system/tim/TimApi.php');
$api = createTimAPI();
//设置:禁言(second>0),取消禁言(second = 0)
if($user['is_robot'] != 1){
$ret = $api->group_forbid_send_msg($group_id,(string)$to_user_id,$second);
}
if ($ret['ActionStatus'] == 'OK' || $user['is_robot'] == 1){
//$ret = $api->get_group_shutted_uin($group_id);
if ($second > 0){
/*
$forbid_send_msg = array();
$forbid_send_msg['group_id'] = $group_id;
$forbid_send_msg['user_id'] = $to_user_id;
$forbid_send_msg['shut_up_time'] = NOW_TIME + $second;
$GLOBALS['db']->autoExecute(DB_PREFIX."video_forbid_send_msg", $forbid_send_msg,"INSERT");
*/
//禁言到期时间
if($second>86400){//大于一天则永禁言
$msg = emoji_decode($nick_name). " 被永久禁言";//.print_r($ret,1).';user_id:'.$user_id.";second:".$second.";group_id:".$group_id;
$second = 99999999;
}else{
$msg = emoji_decode($nick_name). " 被禁言".get_live_time_len2($second);
}
$root['is_forbid'] = 1;
$shutup_time = NOW_TIME+$second;
$video_redis->set_forbid_msg($group_id,$to_user_id,$shutup_time);
}else{
$msg = emoji_decode($nick_name). " 取消禁言";
$video_redis->unset_forbid_msg($group_id,$to_user_id);
$root['is_forbid'] = 0;
//$sql = "delete from ".DB_PREFIX."video_forbid_send_msg where group_id='".$group_id."' and user_id = '".$to_user_id."'";
//$GLOBALS['db']->query($sql);
}
$root['status'] = 1;
}else{
$root['status'] = 0;
$root['error'] = $ret['ErrorInfo'].":".$ret['ErrorCode'];
}
if ($root['status'] == 1){
if (!$api){
fanwe_require(APP_ROOT_PATH.'system/tim/TimApi.php');
$api = createTimAPI();
}
//群播一个:禁言通知
$ext = array();
$ext['type'] = 4; //0:普通消息;1:礼物;2:弹幕消息;3:主播退出;4:禁言;5:观众进入房间;6:观众退出房间;7:直播结束
$ext['room_id'] = $room_id;//直播ID 也是room_id;只有与当前房间相同时,收到消息才响应
$ext['fonts_color'] = '';//字体颜色
$ext['desc'] = $msg;//禁言通知消息;
$ext['desc2'] = $msg;//禁言通知消息;
//消息发送者
$sender = array();
$sender['user_id'] = $GLOBALS['user_info']['id'];//发送人昵称
$sender['nick_name'] = emoji_decode($GLOBALS['user_info']['nick_name']);//发送人昵称
$sender['head_image'] = $GLOBALS['user_info']['head_image'];//发送人头像
$sender['user_level'] = $GLOBALS['user_info']['user_level'];//用户等级
$ext['sender'] = $sender;
#构造高级接口所需参数
$msg_content = array();
//创建array 所需元素
$msg_content_elem = array(
'MsgType' => 'TIMCustomElem', //自定义类型
'MsgContent' => array(
'Data' => json_encode($ext),
'Desc' => '',
// 'Ext' => $ext,
// 'Sound' => '',
)
);
//将创建的元素$msg_content_elem, 加入array $msg_content
array_push($msg_content, $msg_content_elem);
$ret = $api->group_send_group_msg2($GLOBALS['user_info']['id'], $group_id, $msg_content);
}
}else{
$root['error'] = "无禁言权限";
}
}
ajax_return($root);
}
/**
* 设置/取消 管理员
*/
public function set_admin(){
$root = array();
$root['status'] = 1;
if(!$GLOBALS['user_info']){
$root['error'] = "用户未登陆,请先登陆.";
$root['status'] = 0;
$root['user_login_status'] = 0;//有这个参数: user_login_status = 0 时,表示服务端未登陆、要求登陆,操作
}else{
//
$user_id = intval($GLOBALS['user_info']['id']);
$to_user_id = intval($_REQUEST['to_user_id']);//被关注或取消 管理员用户
$room_id = strim($_REQUEST['room_id']);
$sql = "select id from ".DB_PREFIX."user_admin where podcast_id = '".$user_id."' and user_id = ".$to_user_id;
$user_admin_id = $GLOBALS['db']->getOne($sql);
if ($user_admin_id > 0){
//取消管理员操作;
$sql = "delete from ".DB_PREFIX."user_admin where id = ".$user_admin_id;
$GLOBALS['db']->query($sql);
}else{
$sql = "select count(id) as num from ".DB_PREFIX."user_admin where podcast_id = ".$GLOBALS['user_info']['id'];
if ($GLOBALS['db']->getOne($sql) < 5){
//设置管理员操作;
$user_admin = array();
$user_admin['podcast_id'] = $GLOBALS['user_info']['id'];
$user_admin['user_id'] = $to_user_id;
$user_admin['create_time'] = NOW_TIME;
$GLOBALS['db']->autoExecute(DB_PREFIX."user_admin", $user_admin,"INSERT");
}else{
$root['error'] = "已经超过5位管理员,不能再设置新的管理员";
$root['status'] = 0;
}
}
$sql = "select id from ".DB_PREFIX."user_admin where podcast_id = '".$user_id."' and user_id = ".$to_user_id;
if ($GLOBALS['db']->getOne($sql) > 0){
$root['has_admin'] = 1;//0:非管理员;1:是管理员
}else{
$root['has_admin'] = 0;
}
if ($root['status'] ==1 && $room_id != ''){
$sql = "select nick_name from ".DB_PREFIX."user where id = '".$to_user_id."'";
if ($root['has_admin'] == 1){
$msg = emoji_decode($GLOBALS['db']->getOne($sql)). " 被设置为管理员";
}else{
$msg = emoji_decode($GLOBALS['db']->getOne($sql)). " 管理员被取消";
}
fanwe_require(APP_ROOT_PATH.'system/tim/TimApi.php');
$api = createTimAPI();
//群播一个:直播消息
$ext = array();
$ext['type'] = 9; //0:普通消息;1:礼物;2:弹幕消息;3:主播退出;4:禁言;5:观众进入房间;6:观众退出房间;7:直播结束
$ext['room_id'] = $room_id;//直播ID 也是room_id;只有与当前房间相同时,收到消息才响应
$ext['fonts_color'] = '';//字体颜色
$ext['desc'] = $msg;//禁言通知消息;
$ext['desc2'] = $msg;//禁言通知消息;
//消息发送者
$sender = array();
$sender['user_id'] = $GLOBALS['user_info']['id'];//发送人昵称
$sender['nick_name'] = emoji_decode($GLOBALS['user_info']['nick_name']);//发送人昵称
$sender['head_image'] = $GLOBALS['user_info']['head_image'];//发送人头像
$sender['user_level'] = $GLOBALS['user_info']['user_level'];//用户等级
$ext['sender'] = $sender;
#构造高级接口所需参数
$msg_content = array();
//创建array 所需元素
$msg_content_elem = array(
'MsgType' => 'TIMCustomElem', //自定义类型
'MsgContent' => array(
'Data' => json_encode($ext),
'Desc' => '',
// 'Ext' => $ext,
// 'Sound' => '',
)
);
//将创建的元素$msg_content_elem, 加入array $msg_content
array_push($msg_content, $msg_content_elem);
$sql = "select group_id from ".DB_PREFIX."video where id = '".$room_id."'";
$group_id = $GLOBALS['db']->getOne($sql);
$ret = $api->group_send_group_msg2($GLOBALS['user_info']['id'], $group_id, $msg_content);
if ($ret['ActionStatus'] == 'FAIL' && $ret['ErrorCode'] == 10002){
//10002 系统错误,请再次尝试或联系技术客服。
$ret = $api->group_send_group_msg2($GLOBALS['user_info']['id'], $group_id, $msg_content);
}
}
}
ajax_return($root);
}
/**
* 举报用户
*/
public function tipoff(){
$root = array();
$root['status'] = 1;
if(!$GLOBALS['user_info']){
$root['error'] = "用户未登陆,请先登陆.";
$root['status'] = 0;
$root['user_login_status'] = 0;//有这个参数: user_login_status = 0 时,表示服务端未登陆、要求登陆,操作
}else{
$to_user_id = intval($_REQUEST['to_user_id']);//被关注的举报用户ID
$type = intval($_REQUEST['type']);
$room_id = intval($_REQUEST['room_id']); //被举报的房间id
$tipoff = array();
$tipoff['from_user_id'] = $GLOBALS['user_info']['id'];
$tipoff['to_user_id'] = $to_user_id;
$tipoff['create_time'] = NOW_TIME;
$tipoff['tipoff_type_id'] = $type;
$tipoff['video_id'] = $room_id;
$GLOBALS['db']->autoExecute(DB_PREFIX."tipoff", $tipoff,"INSERT");
if ($room_id > 0){
//累加举报次数
$sql = "update ".DB_PREFIX."video set tipoff_count = tipoff_count + 1 where id =".$room_id;
$GLOBALS['db']->query($sql);
}
}
ajax_return($root);
}
/**
* 主播管理员列表
*/
public function user_admin(){
$root = array();
$root['status'] = 1;
if(!$GLOBALS['user_info']){
$root['error'] = "用户未登陆,请先登陆.";
$root['status'] = 0;
$root['user_login_status'] = 0;//有这个参数: user_login_status = 0 时,表示服务端未登陆、要求登陆,操作
}else{
$user_id = intval($GLOBALS['user_info']['id']);//用户ID
$sql = "select ua.id, ua.user_id, u.nick_name,u.head_image,u.sex,u.user_level from ".DB_PREFIX."user_admin ua left join ".DB_PREFIX."user u on u.id = ua.user_id where ua.podcast_id = ".$user_id;
$list = $GLOBALS['db']->getAll($sql);
foreach($list as $k=>$v){
$list[$k]['head_image'] = get_spec_image($v['head_image']);
$list[$k]['nick_name'] = emoji_decode($list[$k]['nick_name']);
}
$root['list'] = $list;
$root['max_num'] = 5;
$root['cur_num'] = count($list);
$root['status'] = 1;
}
ajax_return($root);
}
/**
* 关注的用户,最多不超过100个
*/
public function user_follow(){
$root = array();
$root['status'] = 1;
//$GLOBALS['user_info']['id'] = 278;
if(!$GLOBALS['user_info']){
$root['error'] = "用户未登陆,请先登陆.";
$root['status'] = 0;
$root['user_login_status'] = 0;//有这个参数: user_login_status = 0 时,表示服务端未登陆、要求登陆,操作
}else{
$user_id = intval($GLOBALS['user_info']['id']);//id
$page = intval($_REQUEST['p']);//取第几页数据
if($page==0){
$page = 1;
}
if (isset($_REQUEST['to_user_id'])){
$to_user_id = strim($_REQUEST['to_user_id']);//被查看的用户id
}else{
$to_user_id = $user_id;//id
}
$page_size = 20;
fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/UserFollwRedisService.php');
$user_redis = new UserFollwRedisService($user_id);
$list = $user_redis->get_follonging_user($to_user_id,$page,$page_size);
foreach($list as $k=>$v){
$list[$k]['signature'] = htmlspecialchars_decode($list[$k]['signature']);
$list[$k]['nick_name'] = htmlspecialchars_decode($list[$k]['nick_name']);
$list[$k]['signature'] = emoji_decode($list[$k]['signature']);
$list[$k]['nick_name'] = emoji_decode($list[$k]['nick_name']);
}
$root['list'] = $list;
$rs_count = $user_redis->following();
if($page==0){
$root['has_next'] = 0;
}else{
if (count($rs_count) >= $page_size)
$root['has_next'] = 1;
else
$root['has_next'] = 0;
}
$root['page'] = $page;//
}
ajax_return($root);
}
/**
* 粉丝列表,最多不超过100个
*/
public function user_focus(){
$root = array();
$root['status'] = 1;
//$GLOBALS['user_info']['id'] = 278;
if(!$GLOBALS['user_info']){
$root['error'] = "用户未登陆,请先登陆.";
$root['status'] = 0;
$root['user_login_status'] = 0;//有这个参数: user_login_status = 0 时,表示服务端未登陆、要求登陆,操作
}else{
$user_id = intval($GLOBALS['user_info']['id']);//id
if (isset($_REQUEST['to_user_id'])){
$to_user_id = strim($_REQUEST['to_user_id']);//被查看的用户id
}else{
$to_user_id = $user_id;
}
$page = intval($_REQUEST['p']);//取第几页数据
if($page==0){
$page = 1;
}
$page_size = 20;
fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/UserFollwRedisService.php');
$user_redis = new UserFollwRedisService($user_id);
$list = $user_redis->get_follonging_by_user($to_user_id,$page);
$keys = $user_redis->following();
foreach($list as $k=>$v){
if($user_id>0){
if (in_array($v['user_id'],$keys)){
$list[$k]['follow_id'] = 1;
}else{
$list[$k]['follow_id'] = 0;
}
}else{
$list[$k]['follow_id'] = 0;
}
$list[$k]['head_image'] = get_spec_image($v['head_image']);
$list[$k]['nick_name'] = htmlspecialchars_decode($list[$k]['nick_name']);
$list[$k]['signature'] = htmlspecialchars_decode($list[$k]['signature']);
$list[$k]['nick_name'] = emoji_decode($list[$k]['nick_name']);
$list[$k]['signature'] = emoji_decode($list[$k]['signature']);
}
$root['list'] = $list;
if($page==0){
$root['has_next'] = 0;
}else{
if (count($list) >= $page_size)
$root['has_next'] = 1;
else
$root['has_next'] = 0;
}
$root['page'] = $page;//
}
ajax_return($root);
}
/**
* 分享成功回调
* type: 分享类型(WEIXIN,WEIXIN_CIRCLE,QQ,QZONE,EMAIL,SMS,SINA 微信,微信朋友圈,qq,QQ空间,email,短信,新浪微博)
*/
public function share(){
$root = array();
$root['status'] = 1;
if(!$GLOBALS['user_info']){
$root['error'] = "用户未登陆,请先登陆.";
$root['status'] = 0;
$root['user_login_status'] = 0;//有这个参数: user_login_status = 0 时,表示服务端未登陆、要求登陆,操作
}else{
$user_id = intval($GLOBALS['user_info']['id']);//用户ID
$type = strtolower(strim($_REQUEST['type']));//WEIXIN,WEIXIN_CIRCLE,QQ,QZONE,EMAIL,SMS,SINA
$room_id = intval($_REQUEST['room_id']);//直播ID 也是room_id
//分享加印票功能
$m_config = load_auto_cache("m_config");//初始化手机端配置
//每个房间每个类型可以分享一次,主播分享自己房间不获得
if(defined('OPEN_SHARE_EXPERIENCE')&&OPEN_SHARE_EXPERIENCE==1&&intval($m_config['open_share_ticket'])){
$sql = "select max(id) from ".DB_PREFIX."video_share where video_id = ".$room_id." and user_id =".$user_id." and type = '".$type."'";
$exist_share_id = $GLOBALS['db']->getOne($sql);
//获取主播ID
$sql = "select user_id as from_user_id from ".DB_PREFIX."video where id =".$room_id;
$video_user_info = $GLOBALS['db']->getRow($sql);
$share_id = intval($exist_share_id);
if($share_id==0){
//分享表中无记录,查分享历史表
$sql = "select id from ".DB_PREFIX."video_share_history where video_id = ".$room_id." and user_id =".$user_id." and type = '".$type."'";
$share_id = intval($GLOBALS['db']->getOne($sql));
}
$now_time = NOW_TIME;
$s_now_time = to_timespan(to_date($now_time,"Y-m-d 00:00:00"));
$e_now_time = to_timespan(to_date($now_time,"Y-m-d 23:59:59"));
if($share_id==0){
$sql = "select max(id) from ".DB_PREFIX."video_share where user_id =".$user_id." and type = '".$type."' and create_time>".$s_now_time." and create_time<".$e_now_time;
$video_t_share_id = $GLOBALS['db']->getOne($sql);
$share_id = intval($video_t_share_id);
if($share_id==0){
//分享表中无记录,查分享历史表
$sql = "select id from ".DB_PREFIX."video_share_history where user_id =".$user_id." and type = '".$type."' and create_time>".$s_now_time." and create_time<".$e_now_time;
$share_id = intval($GLOBALS['db']->getOne($sql));
}
}
}
//每个用户每个房间可以分享一次,增加分享次数
fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/VideoRedisService.php');
$video_redis = new VideoRedisService();
//$video_redis->incry($this->video_db.$room_id, 'share_count', 1);
$video_redis->redis->hIncrBy($video_redis->video_db.$room_id,'share_count',1);
$data = array();
//写入分享表
$video_monitor = array();
$video_monitor['user_id'] = $user_id;
$video_monitor['video_id'] = $room_id;
$video_monitor['type'] = $type;
$video_monitor['create_time'] = NOW_TIME;
$GLOBALS['db']->autoExecute(DB_PREFIX."video_share", $video_monitor,"INSERT");
$video_share_id = $GLOBALS['db']->insert_id();
if (defined('OPEN_MISSION') && OPEN_MISSION) {
require_once APP_ROOT_PATH . 'mapi/lib/core/Model.class.php';
Model::$lib = dirname(__FILE__);
Model::build('mission')->incProgress($user_id,3);
}
if(defined('OPEN_SHARE_EXPERIENCE')&&OPEN_SHARE_EXPERIENCE==1&&intval($m_config['open_share_ticket'])){
//历史记录中也没有,可以增加
if($share_id==0&&intval($m_config['share_ticket'])>0&&intval($video_user_info['from_user_id'])!=$user_id&&intval($video_share_id)>0){
//根据open_share_ticket决定获得印票或钻石 1印票 2钻石
$ticket_name = $m_config['ticket_name'];
if (intval($m_config['open_share_ticket'])==1){
$sql = "update ".DB_PREFIX."user set ticket = ticket + ".intval($m_config['share_ticket'])." where id =".$user_id;
$data['ticket'] =intval($m_config['share_ticket']);
if($ticket_name==''){
$ticket_name = '印票';
}
}else{
$sql = "update ".DB_PREFIX."user set diamonds = diamonds + ".intval($m_config['share_ticket'])." where id =".$user_id;
$data['diamonds'] =intval($m_config['share_ticket']);
$ticket_name = '钻石';
}
$GLOBALS['db']->query($sql);//增加用户印票或钻石
user_deal_to_reids(array($user_id));//同步用户redis
//请求返回信息
$root['share_award'] =intval($m_config['share_ticket']);
$root['share_award_type'] = $ticket_name;
$root['share_award_info'] ='分享直播获得'.$ticket_name.intval($m_config['share_ticket']);
//写入用户日志
$data['log_admin_id'] = 0;
$data['video_id'] = $room_id;
$param['type'] = 4;//类型 0表示充值 1表示提现 2赠送道具 3 兑换印票 4 分享获得印票
$log_msg ="通过".$type.'分享直播间'.$room_id.',获得'.intval($m_config['share_ticket']).$ticket_name;
account_log_com($data,$user_id,$log_msg,$param);
}
}
}
ajax_return($root);
}
/**
* 更新设备号
*/
public function apns()
{
$root = array();
$root['status'] = 1;
//$GLOBALS['user_info']['id'] = 1;
if(!$GLOBALS['user_info']){
$root['error'] = "用户未登陆,请先登陆.";
$root['status'] = 0;
$root['user_login_status'] = 0;//有这个参数: user_login_status = 0 时,表示服务端未登陆、要求登陆,操作
}else{
$user_id = intval($GLOBALS['user_info']['id']);//用户ID
$apns_code = addslashes($_REQUEST['apns_code']);
if(!$apns_code)
{
$root['error'] = "设备号为空,更新失败";
$root['status'] = 0;
ajax_return($root);
}
//apns_code 友盟消息推送服务对设备的唯一标识。Android的device_token是44位字符串, iOS的device-token是64位
//device_type 1:android; 2:ios
if (strlen($apns_code) == 44){
$device_type = 1;
}else if (strlen($apns_code) == 64){
$device_type = 2;
}else{
$device_type = 0;
}
$sql = 'update '.DB_PREFIX."user set apns_code ='".$apns_code."',device_type='".$device_type."' where id =".$user_id;
$GLOBALS['db']->query($sql);
fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/UserRedisService.php');
$user_redis = new UserRedisService();
$data['apns_code'] = $apns_code;
$data['device_type'] = $device_type;
$user_redis->update_db($user_id,$data);
}
ajax_return($root);
}
/**
* 查看个人主页
*/
public function user_home(){
$root = array();
//$GLOBALS['user_info']['id'] = 286;
if(!$GLOBALS['user_info']){
$root['error'] = "用户未登陆,请先登陆.";
$root['status'] = 0;
$root['user_login_status'] = 0;//有这个参数: user_login_status = 0 时,表示服务端未登陆、要求登陆,操作
}else{
$user_id = intval($GLOBALS['user_info']['id']);//用户ID
$to_user_id = intval($_REQUEST['to_user_id']);//被查看的用户id
if ($to_user_id == 0){
$to_user_id = $user_id;
}
$root = getuserinfo($user_id,0,$to_user_id);
$root['status'] = 1;
//格式化数据(大于10000保留两位小数,否则不变)
fanwe_require(APP_ROOT_PATH.'mapi/lib/core/num_format.php');
$root['user']['n_fans_count'] = format_for_ten_thousand($root['user']['fans_count']);
$root['user']['n_focus_count'] = format_for_ten_thousand($root['user']['focus_count']);
$root['user']['n_use_diamonds'] = format_for_ten_thousand($root['user']['use_diamonds']);
$root['user']['n_ticket'] = format_for_ten_thousand($root['user']['ticket']);
$root['user']['n_video_count'] = format_for_ten_thousand($root['user']['video_count']);
$root['user']['n_useable_ticket'] = format_for_ten_thousand($root['user']['useable_ticket']);
$root['user']['n_diamonds'] = format_for_ten_thousand($root['user']['diamonds']);
$root['user']['n_use_diamonds'] = format_for_ten_thousand($root['user']['use_diamonds']);
$root['user']['n_show_user_order'] = format_for_ten_thousand($root['user']['show_user_order']);
$root['user']['n_user_order'] = format_for_ten_thousand($root['user']['user_order']);
$root['user']['n_show_user_pai'] = format_for_ten_thousand($root['user']['show_user_pai']);
$root['user']['n_user_pai'] = format_for_ten_thousand($root['user']['user_pai']);
$root['user']['n_show_podcast_order'] = format_for_ten_thousand($root['user']['show_podcast_order']);
$root['user']['n_podcast_order'] = format_for_ten_thousand($root['user']['podcast_order']);
$root['user']['n_show_shopping_cart'] = format_for_ten_thousand($root['user']['show_shopping_cart']);
$root['user']['n_shopping_cart'] = format_for_ten_thousand($root['user']['shopping_cart']);
$root['user']['n_podcast_goods'] = format_for_ten_thousand($root['user']['podcast_goods']);
$root['user']['n_coin'] = format_for_ten_thousand($root['user']['coin']);
$root['user']['n_podcast_pai'] = format_for_ten_thousand($root['user']['podcast_pai']);
$root['user']['n_shop_goods'] = format_for_ten_thousand($root['user']['shop_goods']);
$root['user']['n_svideo_count'] = format_for_ten_thousand($root['user']['svideo_count']);
if(!$root['user']['luck_num'])
{
$root['user']['luck_num'] = '';
}
}
ajax_return($root);
}
/**
* 直播回看
*/
public function user_review(){
$root = array();
//$GLOBALS['user_info']['id'] = 1;
$to_user_id = intval($_REQUEST['to_user_id']);//被查看的用户id
if ($to_user_id == 0){
$to_user_id = intval($GLOBALS['user_info']['id']);
}
$sort = intval($_REQUEST['sort']);//排序类型; 0:最新;1:最热
$page = intval($_REQUEST['p']);//取第几页数据
if($page==0)$page = 1;
$page_size=10;
$limit = (($page-1)*$page_size).",".$page_size;
$sort_field = "vh.begin_time desc";
if ($sort == 1){
$sort_field = "vh.max_watch_number desc";
}
//video_count
if($to_user_id ==intval($GLOBALS['user_info']['id'])){
$sql = "select vh.id,vh.id as room_id,vh.group_id,vh.live_in,vh.title,vh.begin_time,vh.max_watch_number,vh.video_vid,vh.video_type,vh.channelid,vh.create_time,u.id as user_id,u.head_image,u.nick_name from ".DB_PREFIX."video_history as vh left join ".DB_PREFIX."user as u on u.id= vh.user_id where vh.group_id!='' and vh.is_delete = 0 and vh.is_del_vod = 0 and vh.user_id = '".$to_user_id."' order by ".$sort_field." limit ".$limit;
}else{
$sql = "select vh.id,vh.id as room_id,vh.group_id,vh.live_in,vh.title,vh.begin_time,vh.max_watch_number,vh.video_vid,vh.video_type,vh.channelid,vh.create_time,u.id as user_id,u.head_image,u.nick_name from ".DB_PREFIX."video_history as vh left join ".DB_PREFIX."user as u on u.id= vh.user_id where vh.group_id!='' and vh.is_delete = 0 and vh.is_del_vod = 0 and vh.is_live_pay = 0 and user_id = '".$to_user_id."' order by ".$sort_field." limit ".$limit;
}
$list = array();
$list_arr = array();
$list_info = $GLOBALS['db']->getAll($sql);
foreach ( $list_info as $k => $v )
{
/*//判断视频存在
fanwe_require(APP_ROOT_PATH . 'mapi/lib/core/video_factory.php');
$video_factory = new VideoFactory();
if($v['video_type'] == 1 && $v['channelid'])
{
if(strlen($v['channelid'])>20){
$fileName = $v['channelid'];
$ret = $video_factory->DescribeVodPlayInfo($fileName);
}else{
$ret = $video_factory->GetVodRecordFiles($v['channelid'], $v['create_time']);
}
}else{
$fileName = $v['id'] . '_' . to_date($v['begin_time'],'Y-m-d-H');
$ret = $video_factory->DescribeVodPlayInfo($fileName);
}
if($ret['codeDesc'] == 'Success'){
$list_arr = $v;
$list_arr['head_image'] = get_spec_image($v['head_image'],150,150);
$list_arr['begin_time_format'] = format_show_date($v['begin_time']);
if ($v['max_watch_number'] > 10000){
$list_arr['watch_number_format'] = round($v['max_watch_number']/10000,2)."万";
}else{
$list_arr['watch_number_format'] = $v['max_watch_number'];
}
$list_arr['max_watch_number'] = $v['max_watch_number'];
if($v['title'] == '')
$list_arr['title'] = "....";
$list[] = $list_arr;
}else{
//会误删
$sql = "update ".DB_PREFIX."video_history set is_del_vod = 1 where id =".$v['id'];
//$GLOBALS['db']->query($sql);
}*/
$list_arr = $v;
$list_arr['head_image'] = get_spec_image($v['head_image'],150,150);
$list_arr['begin_time_format'] = format_show_date($v['begin_time']);
if ($v['max_watch_number'] > 10000){
$list_arr['watch_number_format'] = round($v['max_watch_number']/10000,2)."万";
}else{
$list_arr['watch_number_format'] = $v['max_watch_number'];
}
$list_arr['max_watch_number'] = $v['max_watch_number'];
//20170930 Ios端逻辑处理添加 @slf
$list_arr['live_in'] = 3;
if($v['title'] == '')
$list_arr['title'] = "....";
$list[] = $list_arr;
}
$root['list'] = $list;
if($to_user_id ==intval($GLOBALS['user_info']['id'])){
$sql = "select count(*) from ".DB_PREFIX."video_history as vh left join ".DB_PREFIX."user as u on u.id= vh.user_id where vh.group_id!='' and vh.is_delete = 0 and vh.is_del_vod = 0 and vh.user_id = '".$to_user_id."' order by ".$sort_field;
}else{
$sql = "select count(*) from ".DB_PREFIX."video_history as vh left join ".DB_PREFIX."user as u on u.id= vh.user_id where vh.group_id!='' and vh.is_delete = 0 and vh.is_del_vod = 0 and vh.is_live_pay = 0 and user_id = '".$to_user_id."' order by ".$sort_field;
}
$count = $GLOBALS['db']->getOne($sql);
//$count = count($list);
if ($count >= $page_size)
$root['has_next'] = 1;
else
$root['has_next'] = 0;
$root['count'] = $count;
if($to_user_id ==intval($GLOBALS['user_info']['id'])&&$page==1){
$sql = "update ".DB_PREFIX."user set video_count = ".$root['count']." where id = ".intval($GLOBALS['user_info']['id'])." and video_count!=".$root['count'];
$GLOBALS['db']->query($sql);
fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/BaseRedisService.php');
fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/UserRedisService.php');
$user_redis = new UserRedisService();
$user_data = array();
$user_data['video_count'] = $root['count'];
$user_redis->update_db(intval($GLOBALS['user_info']['id']), $user_data);
}
$root['page'] = $page;
$root['status'] = 1;
ajax_return($root);
}
/**
* 设置黑名单
*/
public function set_black(){
$root = array();
//$GLOBALS['user_info']['id'] = 269;
if(!$GLOBALS['user_info']){
$root['error'] = "用户未登陆,请先登陆.";
$root['status'] = 0;
$root['user_login_status'] = 0;//有这个参数: user_login_status = 0 时,表示服务端未登陆、要求登陆,操作
}else{
//
$user_id = intval($GLOBALS['user_info']['id']);//当前用户;
$to_user_id = intval($_REQUEST['to_user_id']);//被关注或取消关注的用户
if($user_id!=$to_user_id){
$root = set_black($user_id,$to_user_id);
}else{
$root['error'] = "不能设置自己!";
$root['status'] = 0;
}
}
ajax_return($root);
}
/**
* 搜索用户列表
*/
public function search(){
//$GLOBALS['user_info']['id'] = 269;
$root = array();
$root['status'] = 1;
if(!$GLOBALS['user_info']){
$root['error'] = "用户未登陆,请先登陆.";
$root['status'] = 0;
$root['user_login_status'] = 0;//有这个参数: user_login_status = 0 时,表示服务端未登陆、要求登陆,操作
}else{
//
$user_id = intval($GLOBALS['user_info']['id']);//当前用户;
$keyword = strim($_REQUEST['keyword']);//搜索关键字
if ($keyword != ""){
$page = intval($_REQUEST['p']);//取第几页数据
if($page==0)$page = 1;
$page_size=20;
$limit = (($page-1)*$page_size).",".$page_size;
$m_config = load_auto_cache("m_config");//初始化手机端配置
if($m_config['search_change']==0){
if ($page == 1){
if (intval($keyword) > 0){//如果搜索关键字为数字
//搜索ID,昵称,靓号,不为机器人。
$sql = "select u.id as user_id,u.nick_name,u.signature,u.sex,u.head_image,u.user_level,u.v_icon from ".DB_PREFIX."user u where u.id = ".$keyword." and u.is_robot=0 limit 0,1
union select u.id as user_id,u.nick_name,u.signature,u.sex,u.head_image,u.user_level,u.v_icon from ".DB_PREFIX."user u where u.luck_num = ".$keyword." and u.is_robot=0 limit 0,1
union select u.id as user_id,u.nick_name,u.signature,u.sex,u.head_image,u.user_level,u.v_icon from ".DB_PREFIX."user u where u.nick_name = '".$keyword."' and u.is_robot=0 limit 20";
}else{
$sql = "select u.id as user_id,u.nick_name,u.signature,u.sex,u.head_image,u.user_level,u.v_icon from ".DB_PREFIX."user u where u.nick_name = '".$keyword."' and u.is_robot=0 limit ".$limit;
}
}else{
$sql = "select u.id as user_id,u.nick_name,u.signature,u.sex,u.head_image,u.user_level,u.v_icon from ".DB_PREFIX."user u where u.nick_name = '".$keyword."' and u.is_robot=0 limit ".$limit;
}
}else{
if ($page == 1){
if (intval($keyword) > 0){//如果搜索关键字为数字
//搜索ID,昵称,靓号,不为机器人。
$sql = "select u.id as user_id,u.nick_name,u.signature,u.sex,u.head_image,u.user_level,u.v_icon from ".DB_PREFIX."user u where u.id = ".$keyword." and u.is_robot=0 limit 0,1
union select u.id as user_id,u.nick_name,u.signature,u.sex,u.head_image,u.user_level,u.v_icon from ".DB_PREFIX."user u where u.luck_num = ".$keyword." and u.is_robot=0 limit 0,1
union select u.id as user_id,u.nick_name,u.signature,u.sex,u.head_image,u.user_level,u.v_icon from ".DB_PREFIX."user u where u.nick_name = '".$keyword."' and u.is_robot=0 limit 20";
}else{
$sql = "select u.id as user_id,u.nick_name,u.signature,u.sex,u.head_image,u.user_level,u.v_icon from ".DB_PREFIX."user u where u.nick_name like '%".$keyword."%' and u.is_robot=0 limit ".$limit;
}
}else{
$sql = "select u.id as user_id,u.nick_name,u.signature,u.sex,u.head_image,u.user_level,u.v_icon from ".DB_PREFIX."user u where u.nick_name like '%".$keyword."%' and u.is_robot=0 limit ".$limit;
}
}
// if (intval($keyword) > 0){//如果搜索关键字为数字
// //搜索ID,昵称,靓号,不为机器人。
// //$sql = "select u.id as user_id,u.nick_name,u.signature,u.sex,u.head_image,u.user_level,u.v_icon from ".DB_PREFIX."user u where (u.id = '".$keyword. "' or u.luck_num = '".$keyword. "' or u.nick_name = '".$keyword."') and u.is_robot=0 limit ".$limit;
// $sql = "select u.id as user_id,u.nick_name,u.signature,u.sex,u.head_image,u.user_level,u.v_icon from ".DB_PREFIX."user u where u.nick_name = '".$keyword."' and u.is_robot=0 limit ".$limit;
// }else{
// // $sql = "select u.id as user_id,u.nick_name,u.signature,u.sex,u.head_image,u.user_level,u.v_icon from ".DB_PREFIX."user u where (u.id = '".$keyword. "' or u.nick_name = '".$keyword."') and u.is_robot=0 limit ".$limit;
// $sql = "select u.id as user_id,u.nick_name,u.signature,u.sex,u.head_image,u.user_level,u.v_icon from ".DB_PREFIX."user u where u.nick_name = '".$keyword."' and u.is_robot=0 limit ".$limit;
// }
//$root['sql'] = $sql;
//查询用户列表,修改成 从只读数据库中取,但不是高效做法;主并发时,可以加入阿里云的搜索服务
//https://www.aliyun.com/product/opensearch?spm=5176.8142029.388261.62.tgDxhe
$list = $GLOBALS['db']->getAll($sql,true,true);
$keys =array();
fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/UserFollwRedisService.php');
$user_redis = new UserFollwRedisService($user_id);
$keys = $user_redis->following();
foreach($list as $k=>$v){
if(in_array($v['user_id'],$keys)){
$list[$k]['follow_id'] = $v['user_id'];
}else{
$list[$k]['follow_id'] = 0;
}
$list[$k]['head_image'] = get_spec_image($v['head_image']);
$list[$k]['signature'] = htmlspecialchars_decode($list[$k]['signature']);
$list[$k]['nick_name'] = htmlspecialchars_decode($list[$k]['nick_name']);
$list[$k]['signature'] = emoji_decode($list[$k]['signature']);
$list[$k]['nick_name'] = emoji_decode($list[$k]['nick_name']);
}
$root['list'] = $list;
if (count($list) == $page_size)
$root['has_next'] = 1;
else
$root['has_next'] = 0;
$root['page'] = $page;//
}else{
$root['has_next'] = 0;
$root['list'] = array();
$root['page'] = 0;//
}
}
ajax_return($root);
}
/**
* 批量导入未同步的用户到im
*/
public function account_import(){
$root = array();
$root['status'] = 1;
fanwe_require(APP_ROOT_PATH.'system/tim/TimApi.php');
$api = createTimAPI();
$sql = "select id,nick_name,head_image from ".DB_PREFIX."user where synchronize = 0 limit 10";
$list = $GLOBALS['db']->getAll($sql);
foreach ( $list as $k => $v )
{
$face_url = get_spec_image($v['head_image']);
$ret = $api->account_import((string)$v['id'], $v['nick_name'], $face_url);
if ($ret['ActionStatus'] == 'OK'){
$sql = 'update '.DB_PREFIX."user set synchronize =1 where id =".$v['id'];
$GLOBALS['db']->query($sql);
}else{
$root['ret'][$v['id']] = $ret;
}
//print_r($ret);
}
ajax_return($root);
}
/**
* 允许直播的话,未同意状态改为同意
*/
public function agree(){
$user_id = intval($GLOBALS['user_info']['id']);
if($user_id){
$GLOBALS['db']->query("update ".DB_PREFIX."user set is_agree =1 where id=".$user_id." and is_agree = 0 ");
fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/UserRedisService.php');
$user_redis = new UserRedisService();
$data['is_agree'] = 1;
$user_redis->update_db($user_id, $data);
}
$root['status'] =1;
$root['error'] ='';
ajax_return($root);
}
/**
* 一次性取出,我关注的用户列表
*/
public function my_follow(){
$root = array();
$root['status'] = 1;
// $GLOBALS['user_info']['id'] = 290;
if(!$GLOBALS['user_info']){
$root['error'] = "用户未登陆,请先登陆.";
$root['status'] = 0;
$root['user_login_status'] = 0;//有这个参数: user_login_status = 0 时,表示服务端未登陆、要求登陆,操作
}else{
$user_id = intval($GLOBALS['user_info']['id']);//id
// $sql = "select f.podcast_id as user_id from ".DB_PREFIX."focus f where f.user_id = ".$user_id;
//
// //$root['sql'] = $sql;
//
// $list = $GLOBALS['db']->getAll($sql);
// $root['list'] = $list;
fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/UserFollwRedisService.php');
$user_redis = new UserFollwRedisService($user_id);
$root['list'] = $user_redis->get_follonging_user($user_id,1,1000);
if(!empty($root['list']))
{
for($i=0;$iget_private_user($page,$page_size);
fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/VideoRedisService.php');
$video_redis = new VideoRedisService();
$video_data = $video_redis->getRow_db($video_id,array('group_id','user_id'));
fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/VideoViewerRedisService.php');
$video_viewer_redis = new VideoViewerRedisService();
$group_id = $video_data['group_id'];//聊天群id
if($group_id) {
$users = $video_viewer_redis->get_viewer_list($group_id, $page);
if($users['list']){
$user_ids = array_column($users['list'],'user_id');
$friends = $root['list'];
foreach($friends as $k=>$v){
if(in_array($v['user_id'],$user_ids) || $v['user_id']==$video_data['user_id']){
unset($friends[$k]);
}
}
$root['list'] = array_values($friends);
}
}
}
if(!empty($root['list']))
{
for($i=0;$i 100){
$root['status'] =0;
$root['error'] ='一次不能大于100个用户';
}else{
fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/UserRedisService.php');
$user_redis = new UserRedisService();
$list = $user_redis->get_m_user($user_list);
/*
$fields = array('id','is_agree','video_count','is_authentication','nick_name','signature','sex','province','city','head_image','ticket','use_diamonds','user_level','v_type','v_explain','v_icon','is_remind');
foreach ( $user_list as $k => $v )
{
$userinfo = $user_redis->getRow_db($v,$fields);
$userinfo['user_id'] = $v;
$list[] = $userinfo;
}
$sql = "select id as user_id,is_agree,is_authentication,nick_name,signature,sex,province,city,head_image,user_level,v_type,v_explain,v_icon from ".DB_PREFIX."user where id in (".$user_ids.")";
$list = $GLOBALS['db']->getAll($sql);
foreach ( $list as $k => $v )
{
$list[$k]['head_image'] = get_abs_img_root($v['head_image']);
}
*/
$root['list'] = $list;
if(!empty($root['list']))
{
for($i=0;$i1,'login_time'=>to_date(NOW_TIME));
$GLOBALS['db']->autoExecute(DB_PREFIX."user", $data,"UPDATE", 'id='.$user_id);
$user_redis->update_db($user_id, $data);
}else{
$data = array('is_online'=>0,'login_time'=>to_date(NOW_TIME),'logout_time'=>to_date(NOW_TIME));
$user = $user_redis->getRow_db($user_id, array('login_time','logout_time','online_time'));
$login_time = to_timespan($user['login_time']);
if ($login_time == 0){
$data['login_time'] = to_date(NOW_TIME);
}
//计算在线时长
$online = NOW_TIME - $login_time;
if ($online > 7200){
//异常数据,一次不可能超过8小时
$online = 0;
}
$data['online_time'] = $user['online_time'] + $online;
$GLOBALS['db']->autoExecute(DB_PREFIX."user", $data,"UPDATE", 'id='.$user_id);
if($GLOBALS['db']->affected_rows()){
$user_redis->update_db($user_id, $data);
//更新用户等级
$user_info = $user_redis->getRow_db($user_id,array('id','score','online_time','user_level'));
user_leverl_syn($user_info);
}
}
}
ajax_return($root);
}
}