家族相关
This commit is contained in:
43
application/api/controller/Family.php
Normal file
43
application/api/controller/Family.php
Normal file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
namespace app\api\controller;
|
||||
|
||||
use app\common\controller\BaseCom;
|
||||
use think\Db;
|
||||
|
||||
class Family extends BaseCom
|
||||
{
|
||||
//我的家族
|
||||
public function myFamily()
|
||||
{
|
||||
$reslut = model('Family')->myFamily($this->uid);
|
||||
|
||||
return V($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
|
||||
//我加入的家族
|
||||
public function myJoinFamily()
|
||||
{
|
||||
$user_id = db::name('vs_user_sign')->where(['sign_user_id' => $this->uid,'end_time' => ['>',time()]])->value('parent_user_id');
|
||||
if(!$user_id){
|
||||
return V(0, '没有加入家族');
|
||||
}
|
||||
$reslut = model('Family')->myFamily($user_id);
|
||||
return V($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
|
||||
//家族收益详情
|
||||
public function familyEarnings()
|
||||
{
|
||||
$user_id = input('user_id',0);//族长 id
|
||||
$reslut = db::name('vs_user_sign_earnings')->alias('a')
|
||||
->join('user b','a.sign_user_id = b.id')
|
||||
->join('vs_gift g','a.gift_id = g.gid')
|
||||
->field('b.nickname,b.avatar,b.user_code,a.earnings,a.createtime,g.gift_name,g.gift_price')
|
||||
->where(['a.user_id' => $user_id])
|
||||
->select();
|
||||
return V(1, '成功', $reslut);
|
||||
}
|
||||
}
|
||||
132
application/api/model/Family.php
Normal file
132
application/api/model/Family.php
Normal file
@@ -0,0 +1,132 @@
|
||||
<?php
|
||||
|
||||
namespace app\api\model;
|
||||
|
||||
use think\Db;
|
||||
use think\Model;
|
||||
|
||||
class Family extends Model
|
||||
{
|
||||
/*
|
||||
* 创建家族
|
||||
* @param $name string 家族名称
|
||||
* @param $user_id int 用户id
|
||||
*/
|
||||
public function createFamily($user_id)
|
||||
{
|
||||
$name = db::name('user')->where('id', $user_id)->value('nickname').'的家族';
|
||||
$data = [
|
||||
'name' => $name,
|
||||
'user_id' => $user_id,
|
||||
'type' => 1,
|
||||
'createtime' => time(),
|
||||
];
|
||||
//开启事务
|
||||
db::startTrans();
|
||||
$id = db::name('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 = db::name('vs_family')->where(['user_id' => $user_id,'type' => 1])->find();
|
||||
if($myFamily){
|
||||
$myFamily['group_id'] = 'f'.$myFamily['id'];
|
||||
$myFamily['group_owner_info'] = db::name('user')->where('id',$myFamily['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' => $myFamily['user_id'],'end_time' => ['>',time()]])->count();
|
||||
$myFamily['group_earnings'] = db::name('vs_user_sign_earnings')->where('user_id',$myFamily['user_id'])->sum('earnings');
|
||||
|
||||
$lists= db::name('vs_user_sign')->alias('a')
|
||||
->join('user b','a.sign_user_id = b.id')
|
||||
->field('b.market_value,b.nickname,b.avatar,b.user_code,a.sign_user_id as user_id,a.type,a.end_time,a.sign_user_type')
|
||||
->where(['parent_user_id' => $myFamily['user_id'],'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');
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
$myFamily['group_members_lists'] = $lists ;
|
||||
}
|
||||
return ['code' => 1, 'msg' => '成功', 'data' => $myFamily];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -236,6 +236,10 @@ class Login extends Model
|
||||
$return_res[0]['is_can_chat'] = 1;
|
||||
}
|
||||
$return_res[0]['can_chat_money'] = $config_money;
|
||||
$is_create_family = db::name('vs_family')->where(['user_id' => $user_info['id'],'type' => 1])->find();
|
||||
if(!$is_create_family){
|
||||
model('Family')->createFamily($user_info['id']);
|
||||
}
|
||||
|
||||
return ['code' => 1, 'msg' => '登录成功', 'data' => $return_res];
|
||||
}else{
|
||||
|
||||
@@ -202,6 +202,24 @@ class Sign extends Model
|
||||
db::rollback();
|
||||
return ['code' => 0, 'msg' => '网络错误,请重试', 'data' => null];
|
||||
}
|
||||
//查看当前出价用户是否创建家族
|
||||
$is_create_family = db::name('vs_family')->where(['user_id' => $max_sign_user['user_id'],'type' => 1])->find();
|
||||
if($is_create_family){
|
||||
//拉进家族和群聊
|
||||
$data2 = [
|
||||
'name' => $is_create_family['name'],
|
||||
'pid' => $max_sign_user['user_id'],
|
||||
'user_id' => $max_sign_user['sign_user_id'],
|
||||
'createtime' => time(),
|
||||
];
|
||||
$result22 = db::name('vs_family')->insert($data2);
|
||||
if(!$result22){
|
||||
db::rollback();
|
||||
return ['code' => 0, 'msg' => '网络错误,请重试!!', 'data' => null];
|
||||
}
|
||||
//拉入群聊
|
||||
model('Tencent')->add_group_member('f'.$is_create_family['id'], $max_sign_user['sign_user_id']);
|
||||
}
|
||||
|
||||
//其他的出价退回到用户的钱包 这个是为了防止上面并发产生的没退款用户
|
||||
$refund = db::name('vs_user_sign_auction')->where(['room_id' => $room_id,'sign_time' => $sign_time,'type' => 0])->select();
|
||||
@@ -239,14 +257,15 @@ class Sign extends Model
|
||||
//签过 给被签约的人分七天给他
|
||||
// 数据插入 循环插入7条数据 day 取值是今天开始连续七天 的每一天的值 到天
|
||||
for ($i = 0; $i < 7; $i++){
|
||||
$data = [
|
||||
$data1 = [
|
||||
'user_id' => $max_sign_user['sign_user_id'],
|
||||
'value' => round($shouyizs/7, 4),
|
||||
'day' => date('Y-m-d', strtotime("+$i days")), // 从今天开始连续七天的日期
|
||||
'times' => $i+1,
|
||||
'createtime' => time()
|
||||
];
|
||||
// 插入数据库
|
||||
$result[$i] = db::name('vs_user_sign_task')->insert($data);
|
||||
$result[$i] = db::name('vs_user_sign_task')->insert($data1);
|
||||
if(!$result[$i]){
|
||||
db::rollback();
|
||||
return ['code' => 0, 'msg' => '网络错误,请重试', 'data' => null];
|
||||
|
||||
@@ -90,6 +90,10 @@ class UserData extends Model
|
||||
$member_name = $user_info['nickname'];
|
||||
$member_face_url = $user_info['avatar'];
|
||||
model('Tencent')->modify_user_infos($uid, $member_name, $member_face_url);
|
||||
$is_create_family = db::name('vs_family')->where(['user_id' => $uid,'type' => 1])->find();
|
||||
if(!$is_create_family){
|
||||
model('Family')->createFamily($uid);
|
||||
}
|
||||
return ['code' => 1, 'msg' => '修改成功', 'data' => $user_info];
|
||||
} else {
|
||||
return ['code' => 0, 'msg' => '修改失败,','data' =>null];
|
||||
|
||||
Reference in New Issue
Block a user