redis = \think\Cache::store('redis')->handler(); } //获取用户信息 public function get_user_info($uid,$field=[]) { $user_info = []; $user_data = db::name('user_data')->where(['user_id' => $uid])->find(); if(empty($field) || in_array('user',$field)) { $user_info = $this->where('id', $uid)->find(); if (!empty($user_info)) { $user_info = $user_info->toArray(); $user_info['age'] = getAge($user_info['birthday']);//年龄 } else { return []; } $user_info['tag_ids']= isset($user_data['tag_id'])? $user_data['tag_id']: ''; $tag_ids = explode(',',$user_info['tag_ids']); $tag_list = model('api/UserTag')->get_tag_by_id($tag_ids); if($tag_list){ $user_info['tag_list'] = implode(',',$tag_list) ; }else{ $user_info['tag_list'] = ''; } $user_info['alipay_name'] = isset($user_data['alipay_name'])? $user_data['alipay_name']: ''; $user_info['alipay_account'] = isset($user_data['alipay_account'])? $user_data['alipay_account']: ''; $user_info['bank_user_name'] = isset($user_data['bank_user_name'])? $user_data['bank_user_name']: ''; $user_info['bank_card_number'] = isset($user_data['bank_card_number'])? $user_data['bank_card_number']: ''; $user_info['bank_card'] = isset($user_data['bank_card'])? $user_data['bank_card']: ''; $user_info['open_bank'] = isset($user_data['open_bank'])? $user_data['open_bank']: ''; } if(empty($field) || in_array('user_auth',$field)){ //查询用户实名信息 $user_auth = db('user_auth')->where('mobile', $user_info['mobile'])->find(); $user_info['is_real'] = isset($user_auth['is_real']) ? $user_auth['is_real'] : 2; $user_info['real_name'] = isset($user_auth['real_name']) ? $user_auth['real_name'] : ''; $user_info['card_id'] = isset($user_auth['card_id']) ? $user_auth['card_id'] : ''; } if(empty($field) || in_array('user_mode',$field)) { //青少年模式 $user_mode = db('user_mode')->where('user_id', $user_info['id'])->find(); //用户青少年模式 $user_info['is_teenager'] = isset($user_mode['is_teenager']) ? $user_mode['is_teenager'] : 2; //1开启,2关闭 $user_info['teenager_password'] = isset($user_mode['teenager_password']) ? $user_mode['teenager_password'] : ''; //青少年模式密码 } if(empty($field) || in_array('user_wallet',$field)) { //钱包信息 $user_wallet = db::name('user_wallet')->where(['user_id' => $uid])->find(); $user_info['coin'] = isset($user_wallet['coin']) ? $user_wallet['coin'] : 0; $user_info['earnings'] = isset($user_wallet['earnings']) ? $user_wallet['earnings'] : 0; } if(empty($field) || in_array('user_decorate',$field)) { //装扮 //头像框 $user_info['decoration_head'] = db::name('vs_user_decorate')->where(['user_id' => $uid, 'is_using' => 1, 'type' => 1, 'end_time' => ['>=', time()]])->find(); //坐骑 $user_info['decoration_mount'] = db::name('vs_user_decorate')->where(['user_id' => $uid, 'is_using' => 1, 'type' => 2, 'end_time' => ['>=', time()]])->find(); //个人靓号 $special_num = db::name('vs_user_decorate')->where(['user_id' => $uid, 'is_using' => 1, 'type' => 6, 'end_time' => ['>=', time()]])->find(); $user_info['decoration_user_number'] = $special_num ? $special_num['special_num'] : ''; } if(empty($field) || in_array('user_level',$field)) { //用户等级信息 //财富等级 $user_info['wealth_level'] = isset($user_data['wealth_level']) ? $user_data['wealth_level'] : 0; //财富经验 $user_info['wealth_exp'] = isset($user_data['wealth_exp']) ? $user_data['wealth_exp'] : 0; //财富等级图标 $user_info['wealth_level_icon'] = model('api/UserData')->user_wealth_icon($uid); //魅力等级 $user_info['charm_level'] = isset($user_data['charm_level']) ? $user_data['charm_level'] : 0; //魅力经验 $user_info['charm_exp'] = isset($user_data['charm_exp']) ? $user_data['charm_exp'] : 0; //魅力等级图标 $user_info['charm_level_icon'] = model('api/UserData')->user_charm_icon($uid); } if(empty($field) || in_array('user_recharge',$field)){//用户充值信息 //充值金额 $user_info['user_recharge_all_money'] = db::name('vs_user_recharge')->where(['user_id'=>$uid,'pay_status'=>2])->sum('money'); } if(empty($field) || in_array('user_follow',$field)) {//用户关系信息 //关注数 $user_info['follow_num'] = db::name('user_follow')->where(['user_id' => $uid])->count(); //粉丝数 $user_info['fans_num'] = db::name('user_follow')->where(['follow_id' => $uid, 'type' => 1])->count(); } if(empty($field) || in_array('user_invited',$field)) { //邀请相关信息 //邀请数 $user_info['invited_num'] = db::name('vs_user_invited')->where(['user_id' => $uid])->count(); //邀请收益 $user_info['invited_earnings'] = db::name('vs_user_invited_income_log')->where(['user_id' => $uid])->sum('earnings'); } return $user_info; } //我的 public function get_me($uid) { $user_info = db::name('user') ->field('id as user_id,nickname,user_code,avatar,sex,mobile') ->where('id', $uid)->find(); if (empty($user_info)) { return ['code' => 0, 'msg' => '用户不存在', 'data' => null]; } //头像判断 路径里面是否有https if (strpos($user_info['avatar'], 'https') === false) { $user_info['avatar'] = localpath_to_netpath($user_info['avatar']); } $user_info['icon'][0] = model('UserData')->user_wealth_icon($uid);//财富图标 $user_info['icon'][1] = model('UserData')->user_charm_icon($uid);//魅力图标 //关注数 $user_info['follow_num'] = db::name('user_follow')->where(['user_id' => $uid,'type'=>1])->count(); //粉丝数 $user_info['fans_num'] = db::name('user_follow')->where(['follow_id' => $uid,'type'=>1])->count(); //看过我的数 $user_info['look_me_num'] = db::name('user_visit_log')->alias('a') ->join('user b','a.from_uid = b.id','left') ->where(['a.to_id' => $uid,'a.type' => 1,'b.status' => ['<>',0]])->count(); //我的魅力等级 $user_info['charm_level'] = model('UserData')->where('user_id',$uid)->value('charm_level'); //查询用户是否有使用靓号 $user_info['is_use_code'] = 0; $liang = db::name('vs_user_decorate')->where(['user_id' =>$uid,'type' => 6,'is_using' => 1])->where('end_time',['>=',time()],'or')->find(); if($liang){ $user_info['is_use_code'] = 1; $user_info['user_code'] = $liang['special_num']; } //头像装扮 $user_info['dress'] = model('Decorate')->user_decorate_detail($user_info['user_id'],1); $user_info['auth'] = db::name('user_auth')->where(['mobile' => $user_info['mobile'],'is_real' => 1])->find() ? 1 : 0; return ['code' => 1, 'msg' => '获取成功', 'data' => $user_info]; } //获取用户关注列表 public function get_user_follow_list($uid, $page, $page_limit) { $page = intval($page); $page_limit = $page_limit < 30 ? $page_limit : 30; $model = Db::name('user_follow')->alias('a')->join('fa_user b', 'a.follow_id = b.id'); $model = $model->where('a.user_id', $uid)->where('a.type',1); $list = $model->field('a.follow_id,a.createtime,b.nickname,b.avatar,b.sex,b.user_code')->order('a.id desc')->page($page, $page_limit)->select(); foreach ($list as $k => &$v) { $v['user_id'] = $v['follow_id']; $v['is_online'] = 0; $v['is_follow'] = 1; // $is_follow = db::name('user_follow')->where(['user_id' => $v['follow_id'], 'follow_id' => $uid])->find(); // if ($is_follow) { // $v['is_follow'] = 1; // } //等级获取对应图标 $v['icon'][0] = model('UserData')->user_wealth_icon($v['follow_id']);//财富图标 $v['icon'][1] = model('UserData')->user_charm_icon($v['follow_id']);//魅力图标 } return ['code' => 1, 'msg' => '获取成功', 'data' => $list]; } //获取用户粉丝列表 public function get_user_fans_list($uid, $page, $page_limit) { $page = intval($page); $page_limit = $page_limit < 30 ? $page_limit : 30; $model = Db::name('user_follow')->alias('a')->join('fa_user b', 'a.user_id = b.id'); $model = $model->where('a.follow_id', $uid)->where('a.type',1); $list = $model->field('a.user_id,a.createtime,b.nickname,b.avatar,b.sex,b.user_code')->order('a.id desc')->page($page, $page_limit)->select(); foreach ($list as $k => &$v) { $v['is_online'] = $this->redis->get('user_online_' . $v['user_id']) ? 1: 0;//是否在线 在redis里获取 $v['is_follow'] = 2; $is_follow = db::name('user_follow')->where(['user_id' => $uid, 'follow_id' => $v['user_id'],'type' => 1])->find(); if ($is_follow) { $v['is_follow'] = 1; } //等级获取对应图标 $v['icon'][0] = model('UserData')->user_wealth_icon($v['user_id']);//财富图标 $v['icon'][1] = model('UserData')->user_charm_icon($v['user_id']);//魅力图标 } return ['code' => 1, 'msg' => '获取成功', 'data' => $list]; } //黑名单 public function get_blacklist($uid, $page, $page_limit) { $page = intval($page); $page_limit = $page_limit < 30 ? $page_limit : 30; $model = Db::name('user_black')->alias('a')->join('fa_user b', 'a.user_id = b.id'); $model = $model->where(['a.from_id' => $uid, 'a.type' => 1]); $list = $model->field('a.id,a.user_id,b.nickname,b.avatar,b.sex,b.createtime')->order('a.id desc')->page($page, $page_limit)->select(); foreach ($list as $k => &$v) { //等级获取对应图标 $v['icon'][0] = model('UserData')->user_wealth_icon($v['user_id']);//财富图标 $v['icon'][1] = model('UserData')->user_charm_icon($v['user_id']);//魅力图标 } return ['code' => 1, 'msg' => '获取成功', 'data' => $list]; } //添加黑名单 public function add_blacklist($uid, $receive_uid) { $map = []; $map['from_id'] = $uid; $map['user_id'] = $receive_uid; if (db::name('user_black')->where($map)->find()) { return ['code' => 0, 'msg' => '此用户已存在您的黑名单', 'data' => null]; } else { $data = []; $data['from_id'] = $uid; $data['user_id'] = $receive_uid; $data['type'] = 1; $data['createtime'] = time(); $res = db::name('user_black')->insert($data); if ($res) { //腾讯拉黑 model('Tencent')->black_list_add('u'.$uid, 'u'.$receive_uid); return ['code' => 1, 'msg' => '添加成功', 'data' => null]; } return ['code' => 0, 'msg' => '添加失败', 'data' => null]; } } //移除黑名单 public function remove_blacklist($uid, $receive_uid) { $map = []; $map['from_id'] = $uid; $map['user_id'] = $receive_uid; $res = db::name('user_black')->where($map)->delete(); if ($res) { //腾讯移除黑名单 model('Tencent')->black_list_delete('u'.$uid, 'u'.$receive_uid); return ['code' => 1, 'msg' => '移除成功', 'data' => null]; } return ['code' => 0,'msg' => '移除失败', 'data' => null]; } //邀请码生成 public function invite_code(){ $code = 'ABCDEFGHIJKLMNPQRSTUVWXYZ123456789'; $reg_code = ''; for ($i = 0; $i < 6; $i++) { $reg_code .= $code[mt_rand(0, strlen($code) - 1)]; } $user_info = db::name('user')->where(['init_code' => $reg_code])->find(); if (!empty($user_info)) { $this->invite_code(); } return $reg_code; } //用户主页 /* * @param $uid 用户id * @param $from_id 访问者id */ public function get_user_home($from_uid,$uid) { $user_info = db::name('user')->alias('u')->join('user_data ud', 'u.id = ud.user_id') ->field('u.id as user_id,u.nickname,u.user_code,u.avatar,u.sex,u.birthday,u.profile,ud.tag_id,ud.home_bgimages,u.is_online') ->where(['u.id' => $uid,'u.status' => ['<>',0]])->find(); if(!$user_info){ return ['code' => 0, 'msg' => '用户不存在或已注销', 'data' => null]; } //标签 $user_info['tag_list'] = []; if(isset($user_info['tag_id'])) { $tag_list = db::name('user_tag')->whereIn('id', explode(',', $user_info['tag_id']))->field('id,tag_name')->select(); $user_info['tag_list'] = $tag_list; } //礼物墙 获取收到的礼物图片名称数量 以及送每个礼物数量最多的用户的头像昵称 数量一样选最后送的用户 $user_info['gift_wall'] = []; $user_info['icon'][0] = model('UserData')->user_wealth_icon($uid) ?? '';//财富图标 $user_info['icon'][1] = model('UserData')->user_charm_icon($uid) ?? '';//魅力图标 //查询用户是否有使用靓号 $user_info['is_use_code'] = 0; $liang = db::name('vs_user_decorate')->where(['user_id' => $uid, 'is_using' => 1, 'type' => 6, 'end_time' => ['>=', time()]])->find(); if($liang){ $user_info['is_use_code'] = 1; $user_info['user_code'] = $liang['special_num'] ?? ''; } //是否关注 $user_info['is_follow'] = 0; if (db::name('user_follow')->where(['user_id' => $from_uid, 'follow_id' => $uid])->find()) { $user_info['is_follow'] = 1; } //是否在房间 $user_info['room_id'] = db::name('vs_room_visitor')->where(['user_id' => $uid, 'is_delete' => 1])->order('id desc')->value('room_id') ?? 0; //用户年龄 $user_info['age'] = getAge($user_info['birthday']); //头像装扮 $user_info['dress'] = model('Decorate')->user_decorate_detail($user_info['user_id'],1); //记录用户访问记录 if($from_uid != $uid){ $this->add_user_visit_log(1,$from_uid, $uid); } //用户所属工会 $guild_id = Db::name('vs_guild_user')->where(['user_id'=>$uid,'status'=>1,'delete_time'=>0])->value('guild_id'); if($guild_id){ $user_info['guild'] = Db::name('vs_guild')->where('id' ,$guild_id)->value('guild_name'); }else{ $user_info['guild'] = ''; } return ['code' => 1, 'msg' => '获取成功', 'data' => $user_info]; } /** * 获取用户礼物墙信息 * @param int $uid 用户ID * @return array */ public function get_user_gift_wall_info($uid) { //查询用户礼物墙 以gift_id,send_user_id分组 同一用户送的同一礼物相加 $result = db::name('vs_give_gift') ->where(['gift_user' => $uid]) ->field('gift_id,user_id,sum(number) as total') ->group('gift_id,user_id') ->order('total desc') ->select(); // var_dump($result);exit; // 根据礼物二次分组 获取礼物的总数和送的数量最多的三用户 $data = []; // 按 gift_id 聚合数据 foreach ($result as $item) { $giftId = $item['gift_id']; $sendUserId = $item['user_id']; $sendUserNickname = db::name('user')->where(['id' => $sendUserId])->value('nickname'); $sendUserAvatar = db::name('user')->where(['id' => $sendUserId])->value('avatar'); $total = $item['total']; if (!isset($data[$giftId])) { $data[$giftId] = [ 'gift_id' => $giftId, 'gift_price' => model('Gift')->where(['gid' => $giftId])->value('gift_price'), 'gift_name' => model('Gift')->where(['gid' => $giftId])->value('gift_name'), 'base_image' => model('Gift')->where(['gid' => $giftId])->value('base_image'), 'total_count' => 0, 'top_users' => [] ]; } // 累加总数量 $data[$giftId]['total_count'] += $total; // 存储用户赠送记录 $data[$giftId]['top_users'][] = [ 'user_id' => $sendUserId, 'nickname' => $sendUserNickname, 'avatar' => $sendUserAvatar, 'count' => $total ]; } // 对每个礼物的 top_users 排序并取前三名 foreach ($data as &$giftData) { // 按 count 降序排序 usort($giftData['top_users'], function ($a, $b) { return $b['count'] <=> $a['count']; }); $giftData['top_users_count'] = count($giftData['top_users']); // 取前3位 $giftData['top_users'] = array_slice($giftData['top_users'], 0, 3); } $data = array_values($data); //查询所有的礼物 $gift_list = db::name('vs_gift')->field('gid as gift_id,gift_name,base_image,gift_price')->where(['delete_time' => 0,'is_show' => 1])->select(); //对比去除$data 里面的礼物 $gift_list = array_filter((array)$gift_list, function ($item) use ($data) { return !in_array($item['gift_id'], array_column($data, 'gift_id')); }); //数组重组 从下标0 开始 $gift_list = array_values($gift_list); $redata['no_liang'] = $gift_list; $redata['liang'] = $data; return ['code' => 1, 'msg' => '获取成功', 'data' => $redata]; } //添加用户访问记录 /* * @param $to_id 被访问对象id * @param $from_id 访问者id * @param $type 类型:1 用户主页 2 直播间 */ public function add_user_visit_log($type,$from_uid,$to_uid){ $visit = db::name('user_visit_log')->where(['from_uid' => $from_uid,'to_id' => $to_uid,'type' => $type])->find(); if($visit){ return true; } $data = [ 'type' => $type, 'from_uid' => $from_uid, 'to_id' => $to_uid, 'createtime' => time(), ]; db::name('user_visit_log')->insert($data); return true; } //相册列表 public function get_album_list($user_id){ $album_list = db::name('user_album')->where(['user_id' => $user_id,'deletetime' => 0])->field('id,name,image,pwd,read_num,like_num')->select(); if($album_list){ foreach ($album_list as $k=>$item){ if($item['pwd']){ $album_list[$k]['is_pwd'] = 1; }else{ $album_list[$k]['is_pwd'] = 0; } $album_list[$k]['img_num'] = db::name('user_album_image')->where('album_id',$item['id'])->count(); } } return ['code' => 1, 'msg' => '获取成功', 'data' => $album_list]; } //相册详情 public function get_album_detail($user_id,$id,$pwd, $page, $page_limit,$is_admin = 0){ $page = intval($page); $page_limit = $page_limit < 30 ? $page_limit : 30; $album_info = db::name('user_album')->where(['id' => $id])->field('id,image,pwd,read_num,like_num,user_id,like_user,name')->find(); if(empty($album_info)){ return ['code' => 0, 'msg' => '相册不存在', 'data' => null]; } if($is_admin!=1){ if($album_info['user_id'] != $user_id){ if($album_info['pwd']){ if($pwd != $album_info['pwd']){ return ['code' => 0, 'msg' => '相册密码错误', 'data' => null]; } } } } //判断是否点赞 $album_info['is_like'] = 0; if(!empty($album_info['like_user'])){ if(in_array($user_id,explode(',',$album_info['like_user']))){ $album_info['is_like'] = 1; } } unset($album_info['like_user']); $album_info['count'] = db::name('user_album_image') ->where(['album_id' => $id]) ->count(); $album_info['image_list'] = []; $image_list = db::name('user_album_image') ->where(['album_id' => $id]) ->field('id,image,content,createtime') ->order('createtime desc') ->page($page, $page_limit) ->select(); if($image_list){ $album_info['image_list'] = $image_list; } //增加浏览次数 db::name('user_album')->where(['id' => $id])->setInc('read_num'); return ['code' => 1, 'msg' => '获取成功', 'data' => $album_info]; } //创建相册 public function create_album($user_id,$name,$pwd,$image){ if(empty($name)){ return ['code' => 0, 'msg' => '相册名称不能为空', 'data' => null]; } if(empty($image)){ return ['code' => 0, 'msg' => '相册封面图不能为空', 'data' => null]; } $data = [ 'user_id' => $user_id, 'name' => $name, 'pwd' => $pwd, 'image' => $image, 'createtime' => time() ]; db::name('user_album')->insert($data); return ['code' => 1, 'msg' => '创建成功', 'data' => null]; } //添加相册图片 public function add_album_content($user_id,$album_id,$image,$content){ if(empty($album_id)){ return ['code' => 0, 'msg' => '相册ID不能为空', 'data' => null]; } // if(empty($content)){ // return ['code' => 0, 'msg' => '内容不能为空', 'data' => null]; // } //把图片JSON转换成数组 $image = explode(',',$image); if(!empty($image)){ foreach ($image as $v){ $data = [ 'album_id' => $album_id, 'image' => $v, 'content' => $content, 'createtime' => time() ]; //循环插入数据库 db::name('user_album_image')->insert($data); } //首次创建相册并上传9张照片【完成任务】 $user_album_image_count = db::name('user_album_image')->where('album_id',$album_id)->count(); if($user_album_image_count >= 9){ model('DailyTasks')->tasks_complete($user_id,14); } return ['code' => 1, 'msg' => '添加成功', 'data' => null]; }else{ return ['code' => 0, 'msg' => '图片不能为空', 'data' => null]; } } //把普通相册转为私密相册 public function change_album_pwd($user_id,$album_id,$pwd){ if(empty($album_id)){ return ['code' => 0, 'msg' => '相册ID不能为空', 'data' => null]; } if(empty($pwd)){ return ['code' => 0, 'msg' => '相册密码不能为空', 'data' => null]; } $album_info = db::name('user_album')->where(['id' => $album_id])->find(); if(!$album_info){ return ['code' => 0, 'msg' => '相册不存在', 'data' => null]; }else{ db::name('user_album')->where(['id' => $album_id])->update(['pwd' => $pwd]); return ['code' => 1, 'msg' => '修改成功', 'data' => null]; } } //移动相册图片 public function move_album_images($user_id,$id,$album_id){ if(empty($id)){ return ['code' => 0, 'msg' => '强选择想要移动的图片', 'data' => null]; } if(empty($album_id)){ return ['code' => 0, 'msg' => '目标相册ID不能为空', 'data' => null]; } $album_info = db::name('user_album')->where(['id' => $album_id,'user_id' => $user_id])->find(); if(!$album_info){ return ['code' => 0, 'msg' => '目标相册不存在', 'data' => null]; } $ids = explode(',',$id); foreach ($ids as $v){ db::name('user_album_image')->where(['id' => $v])->update(['album_id' => $album_id]); } return ['code' => 1, 'msg' => '移动成功', 'data' => null]; } //删除相册 public function delete_album($user_id,$album_id){ if(empty($album_id)){ return ['code' => 0, 'msg' => '相册ID不能为空', 'data' => null]; } $album_info = db::name('user_album')->where(['id' => $album_id,'user_id' => $user_id])->find(); if(!$album_info){ return ['code' => 0, 'msg' => '相册不存在', 'data' => null]; } db::name('user_album')->where(['id' => $album_id])->update(['deletetime' => time()]); return ['code' => 1, 'msg' => '删除成功', 'data' => null]; } //相册点赞 public function like_album($user_id,$album_id){ if(empty($album_id)){ return ['code' => 0, 'msg' => '相册ID不能为空', 'data' => null]; } $album_info = db::name('user_album')->where(['id' => $album_id])->find(); if(!$album_info){ return ['code' => 0, 'msg' => '相册不存在', 'data' => null]; } //把用户的ID添加到相册的点赞用户列表中 if(in_array($user_id,explode(',',$album_info['like_user']))){ //把用户的ID删除 $album_info['like_user'] = str_replace($user_id.',', '', $album_info['like_user']); db::name('user_album')->where(['id' => $album_id])->update(['like_user' => $album_info['like_user']]); //点赞数减一 db::name('user_album')->where(['id' => $album_id])->setDec('like_num'); return ['code' => 1, 'msg' => '取消点赞', 'data' => null]; }else{ $album_info['like_user'] .= $user_id.','; db::name('user_album')->where(['id' => $album_id])->update(['like_user' => $album_info['like_user']]); db::name('user_album')->where(['id' => $album_id])->setInc('like_num'); return ['code' => 1, 'msg' => '点赞成功', 'data' => null]; } } //删除相册图片 public function delete_album_images($user_id,$id){ if(empty($id)){ return ['code' => 0, 'msg' => '请选择要删除的图片', 'data' => null]; } $ids = explode(',',$id); foreach ($ids as $v){ db::name('user_album_image')->where(['id' => $v])->delete(); } return ['code' => 1, 'msg' => '删除成功', 'data' => null]; } //编辑相册 public function edit_album($user_id,$album_id,$name,$pwd,$image){ if(empty($album_id)){ return ['code' => 0, 'msg' => '相册ID不能为空', 'data' => null]; } if(empty($name)){ return ['code' => 0, 'msg' => '相册名称不能为空', 'data' => null]; } if(empty($image)){ return ['code' => 0, 'msg' => '封面图不能为空', 'data' => null]; } $album_info = db::name('user_album')->where(['id' => $album_id,'user_id' => $user_id])->find(); if(!$album_info){ return ['code' => 0, 'msg' => '相册不存在', 'data' => null]; }else{ $data = [ 'name' => $name, 'image' => $image, 'pwd' => $pwd, 'updatetime' => time() ]; db::name('user_album')->where(['id' => $album_id])->update($data); return ['code' => 1, 'msg' => '修改成功', 'data' => null]; } } //编辑用户信息 public function edit_user_info($user_id,$nickname,$sex,$birthday,$profile,$avatar,$tag_id){ $data = []; if(!empty($nickname)){ //名称中不能有 系统管理 等关键字 if(!nickname_filter($nickname)){ return ['code' => 0, 'msg' => '名称中不能有 系统管理 等相关字', 'data' => null]; } $data['nickname'] = $nickname; } if(!empty($sex)){ $data['sex'] = $sex; } if(!empty($birthday)){ $data['birthday'] = $birthday; } if(!empty($profile)){ $data['profile'] = $profile; } if(!empty($avatar)){ $data['avatar'] = $avatar; } if(!empty($tag_id)){ $user_data['tag_id'] = $tag_id; } //开启事务 db::startTrans(); // try{ $data['updatetime'] = time(); $re = db::name('user')->where(['id' => $user_id])->update($data); if(!$re){ db::rollback(); return ['code' => 0, 'msg' => '修改失败', 'data' => null]; } $user_data['updatetime'] = time(); $ree = db::name('user_data')->where(['user_id' => $user_id])->update($user_data); if(!$ree){ db::rollback(); return ['code' => 0, 'msg' => '修改失败了', 'data' => null]; } if(!empty($avatar)) { //记录头像修改 $save = db::name('user_avatar_log')->insert(['user_id' => $user_id, 'avatar' => $avatar, 'createtime' => time()]); if (!$save) { db::rollback(); return ['code' => 0, 'msg' => '修改失败!', 'data' => null]; } } db::commit(); //推送信息去所在房间 //查询当前所在房间 $room_id = db::name('vs_room_visitor')->where(['user_id' => $user_id])->order('id' , 'desc')->value('room_id'); if($room_id){ //当前用户信息 //推送信息 $text['jia_jia'] = model('Decorate')->user_decorate_detail($user_id,2); $text['FromUserInfo'] = db::name('user')->where('id',$user_id)->field('id as user_id,nickname,avatar,sex')->find(); $text['FromUserInfo']['dress'] = model('Decorate')->user_decorate_detail($user_id,1); $text['FromUserInfo']['mic_dress'] = model('Decorate')->user_decorate_detail($user_id,4); $text['FromUserInfo']['chat_dress'] = model('Decorate')->user_decorate_detail($user_id,5); $text['text'] = '用户 ' . $text['FromUserInfo']['nickname'] .' 修改了信息'; model('Chat')->sendMsg(1035,$room_id,$text,$user_id); } Log::record("修改用户信息:".$user_id,"infos"); //给腾讯同步用户信息 $member_name = db::name('user')->where('id' , $user_id)->value('nickname'); $member_face_url = db::name('user')->where('id' , $user_id)->value('avatar'); model('api/Tencent')->modify_user_infos($user_id, $member_name, $member_face_url); return ['code' => 1, 'msg' => '修改成功', 'data' => null]; // } // catch(\Exception $e){ // db::rollback(); // return ['code' => 0, 'msg' => $e, 'data' => null]; // } } //修改用户背景图 public function edit_user_bg($user_id,$image){ $data = [ 'home_bgimages' => $image, 'updatetime' => time() ]; $re = db::name('user_data')->where(['user_id' => $user_id])->update($data); if(!$re){ return ['code' => 0, 'msg' => '修改失败', 'data' => null]; } return ['code' => 1, 'msg' => '修改成功', 'data' => null]; } //查询用户修改头像的次数 public function get_user_avatar_num($user_id){ //查询用户本月修改头像的次数 $time = strtotime(date('Y-m-01')); $num = db::name('user_avatar_log')->where('id' , $user_id)->where('createtime' , '>' , $time)->count(); if(!$num){ $num = 0; } return ['code' => 1, 'msg' => '获取成功', 'data' => $num]; } //看过我的 魅力等级达到20级以上才能查看 public function get_look_me_list($user_id,$page,$limit){ $user_info = db::name('user')->where(['id' => $user_id])->find(); if(!$user_info){ return ['code' => 0, 'msg' => '用户不存在', 'data' => null]; } //魅力等级 $charm_level = model('UserData')->where('user_id',$user_id)->value('charm_level'); $look_me_level = get_system_config_value('look_me_level'); if($charm_level < $look_me_level){ return ['code' => 0, 'msg' => '魅力等级不足', 'data' => null]; } $user_data = db::name('user_visit_log')->alias('a')->join('user b','a.from_uid = b.id') ->field('b.id as user_id,b.nickname,b.avatar,b.sex,b.birthday,a.from_uid') ->where('a.to_id',$user_id) ->where('a.type',1) ->where('b.status','<>',0) ->page($page,$limit)->select(); foreach ($user_data as &$v){ //等级获取对应图标 $v['icon'][0] = model('UserData')->user_wealth_icon($v['from_uid']);//财富图标 $v['icon'][1] = model('UserData')->user_charm_icon($v['from_uid']);//魅力图标 } return ['code' => 1, 'msg' => '获取成功', 'data' => $user_data]; } //关注(回关)取消关注 public function follow($user_id,$to_id,$type){ if(empty($to_id)){ return ['code' => 0, 'msg' => '要关注的ID不能为空', 'data' => null]; } if($type == 1){ if($user_id == $to_id){ return ['code' => 0, 'msg' => '不能关注自己', 'data' => null]; } } $follow_info = db::name('user_follow')->where(['user_id' => $user_id,'follow_id' => $to_id,'type' => $type])->find(); if($follow_info){ //取消关注 $re = db::name('user_follow')->where(['user_id' => $user_id,'follow_id' => $to_id,'type' => $type])->delete(); if(!$re){ return ['code' => 0, 'msg' => '取消关注失败', 'data' => null]; } return ['code' => 1, 'msg' => '取消关注成功', 'data' => null]; }else{ //关注 $data = [ 'user_id' => $user_id, 'follow_id' => $to_id, 'type' => $type, 'createtime' => time() ]; $re = db::name('user_follow')->insert($data); if(!$re){ return ['code' => 0, 'msg' => '关注失败', 'data' => null]; } return ['code' => 1, 'msg' => '关注成功', 'data' => null]; } } //更新用户ip public function update_user_ip($user_id,$ip){ $data = [ 'address_ip' => $ip ]; $re = db::name('user')->where(['id' => $user_id])->update($data); if(!$re){ return ['code' => 0, 'msg' => '更新失败', 'data' => null]; } return ['code' => 1, 'msg' => '更新成功', 'data' => null]; } //是否可以发起私聊 public function can_start_private_chat($user_id){ $user_rechange = db::name('vs_user_recharge')->field('sum(money) as money')->where(['user_id' => $user_id,'pay_status' => 2])->find(); //系统配置 $config_money = get_system_config_value('private_chat_recharge_money'); if($user_rechange['money'] < $config_money){ return ['code' => 0, 'msg' => '充值金额不足', 'data' => null]; } return ['code' => 1, 'msg' => '可以发起私聊', 'data' => null]; } }