where('id', $user_id)->value('nickname').'的家族'; $data = [ 'name' => $name, 'user_id' => $user_id, 'type' => 1, 'createtime' => time(), ]; //开启事务 db::startTrans(); $id = db::name('vs_family')->insertGetId($data); if (!$id) { db::rollback(); return ['code' => 0, 'msg' => '创建失败', 'data' => null]; } $reslut = model('api/Tencent')->create_group($user_id,'f'.$id,"Public","",$name); if ($reslut['code'] == 0) { db::rollback(); return ['code' => 0, 'msg' => '创建失败,请稍后再试!', 'data' => null]; } //发送系统消息 model('api/Tencent')->send_group_system_notification('f'.$id,"家族创建成功"); //查找他是否有签约 用户 $sign_user = db::name('vs_user_sign')->where(['parent_user_id' => $user_id, 'end_time' => ['>',time()]])->select(); if($sign_user){ //拉入群聊 foreach ($sign_user as $k => $v){ model('api/Tencent')->add_group_member('f'.$id, $v['sign_user_id']); $data[$k] = [ 'name' => $name, 'pid' => $user_id, 'user_id' => $v['sign_user_id'], 'createtime' => time(), ]; db::name('vs_family')->insert($data[$k]); } //发送系统消息 model('api/Tencent')->send_group_system_notification('f'.$id,"欢迎加入家族"); } db::commit(); return ['code' => 1, 'msg' => '创建成功', 'data' => ['id' => $id]]; } /* * 我的家族 * @param $user_id int 用户id(创建者id) */ public function myFamily($user_id) { $myFamily['group_owner_info'] = db::name('user')->where('id',$user_id)->field('nickname,avatar')->find(); $myFamily['group_owner_info']['dress'] = model('api/Decorate')->user_decorate_detail($user_id,1); $myFamily['group_owner_info']['user_code'] = model('api/Decorate')->user_decorate_detail($user_id,6); $myFamily['group_owner_info']['icon'][0] = model('api/UserData')->user_wealth_icon($user_id);//财富图标 $myFamily['group_owner_info']['icon'][1] = model('api/UserData')->user_charm_icon($user_id);//魅力图标 //判断是否是歌手 如果是 返回等级图标 $isSinnger = db::name('vs_singer')->where(['user_id' => $user_id,'status' => 1])->value('level'); if($isSinnger){ $myFamily['group_owner_info']['icon'][2] = db::name('vs_singer_level')->where(['level' => $isSinnger,'deletetime' => 0])->value('image');//等级图标 } $Nobility = model('api/Nobility')->getUserNobilityInfo($user_id); $myFamily['group_owner_info']['mic_cycle'] = model('api/Decorate')->user_decorate_detail($user_id,3); $myFamily['group_owner_info']['nobility_image'] = $Nobility['play_image']; $myFamily['group_owner_info']['nickname_color'] = $Nobility['nick_name_color']; $myFamily['group_members_num'] = db::name('vs_user_sign')->where(['parent_user_id' => $user_id])->count(); $myFamily['group_earnings'] = db::name('vs_user_sign_earnings')->where('user_id',$user_id)->sum('earnings'); $myFamilys = db::name('vs_family')->where(['user_id' => $user_id,'type' => 1])->find(); if($myFamilys){ $lists= db::name('vs_family')->alias('a') ->join('user b','a.user_id = b.id') ->join('vs_user_sign c','a.user_id = c.sign_user_id') ->field('b.is_online,b.market_value,b.nickname,b.avatar,b.user_code,c.type,c.end_time,c.sign_user_type,a.user_id') ->where(['a.pid' => $myFamilys['user_id'],'a.deletetime' => 0,'a.type' => 0,'c.end_time' => ['>',time()]]) ->select(); if($lists){ foreach ($lists as $k => $v){ $lists[$k]['dress'] = model('api/Decorate')->user_decorate_detail($v['user_id'],1); $lists[$k]['user_code'] = model('api/Decorate')->user_decorate_detail($v['user_id'],6); $lists[$k]['icon'][0] = model('api/UserData')->user_wealth_icon($v['user_id']);//财富图标 $lists[$k]['icon'][1] = model('api/UserData')->user_charm_icon($v['user_id']);//魅力图标 //判断是否是歌手 如果是 返回等级图标 $isSinnger = db::name('vs_singer')->where(['user_id' => $v['user_id'],'status' => 1])->value('level'); if($isSinnger){ $lists[$k]['icon'][2] = db::name('vs_singer_level')->where(['level' => $isSinnger,'deletetime' => 0]) ->value('image');//等级图标 } $Nobility = model('api/Nobility')->getUserNobilityInfo($v['user_id']); $lists[$k]['mic_cycle'] = model('api/Decorate')->user_decorate_detail($v['user_id'],3); $lists[$k]['nobility_image'] = $Nobility['play_image']; $lists[$k]['nickname_color'] = $Nobility['nick_name_color']; if($v['sign_user_type'] == 0){ $lists[$k]['free_renewal'] = max((3 - $v['type']), 0); }else{ $lists[$k]['free_renewal'] = 0; } $lists[$k]['today_earnings'] = db::name('vs_user_money_log') ->where(['user_id' => $v['user_id'],'money_type' => 2,'change_type' =>11,'createtime' => ['between',[strtotime(date('Y-m-d')),time()]]]) ->sum('change_value');//今日收益 //昨日收益 $lists[$k]['yesterday_earnings'] = db::name('vs_user_money_log') ->where(['user_id' => $v['user_id'],'money_type' => 2,'change_type' =>11,'createtime' => ['between',[strtotime(date('Y-m-d',strtotime('-1 day'))),strtotime(date('Y-m-d'))]]]) ->sum('change_value'); $lists[$k]['is_show_sign'] = $v['end_time'] - time() < 48*3600 ? 1 : 0; $lists[$k]['sign_times'] = get_system_config_value('sign_times');//非首签签约时长 $lists[$k]['free_re_sign_day'] = get_system_config_value('free_re_sign_day');//免费续签时间 $lists[$k]['sign_user_ratio'] = get_system_config_value('sign_user_ratio');//签约者身价的百分比 //end_time 换算为天数,不足1天,按小时显示 $remaining_time = $v['end_time'] - time(); if ($remaining_time > 0) { $days = ceil($remaining_time / (24 * 3600)); if ($days > 0) { $lists[$k]['end_day'] = $days . '天'; } else { $hours = ceil($remaining_time / 3600); $lists[$k]['end_day'] = $hours . '小时'; } } else { $lists[$k]['end_day'] = '已过期'; } } } $myFamily['group_members_lists'] = $lists ; $myFamily['group_id'] = 'f'.$myFamilys['id']; }else{ $myFamily['group_id'] = null; $myFamily['group_members_lists'] = null ; } return ['code' => 1, 'msg' => '成功', 'data' => $myFamily]; } }