This commit is contained in:
2025-10-20 09:59:39 +08:00
parent e73091cdf3
commit a4858d47fc
2834 changed files with 6510 additions and 438740 deletions

20
.env
View File

@@ -10,15 +10,23 @@ trace = false
; hostport = 3306 ; hostport = 3306
; prefix = fa_ ; prefix = fa_
hostname = 81.70.45.221
database = super_chat hostname = 1.13.181.248
username = super_chat database = midi
password = c7NXx8KMPaTX4N5W username = midi
password = 5B2zwShhTi5L7t2w
hostport = 3306 hostport = 3306
prefix = fa_ prefix = fa_
#hostname = 62.234.12.147
#database = midi
#username = midi
#password = EC6cak6fzXdXnERz
#hostport = 3306
#prefix = fa_
[mqtt] [mqtt]
mqtt_server = 81.70.45.221 mqtt_server = 1.13.181.248
mqtt_port = 1883 mqtt_port = 1883
mqtt_username = admin mqtt_username = admin
mqtt_password = public mqtt_password = public
@@ -27,7 +35,7 @@ mqtt_password = public
[smsbao] [smsbao]
dxb_name = xqgy1818 dxb_name = xqgy1818
dxb_pwd = "xqgy1818!" dxb_pwd = "xqgy1818!"
dxb_temp = "【羽声语音】您的验证码是{code}。如非本人操作,请忽略本短信" dxb_temp = "【西安熙晟文化传媒】您的验证码是{code}。如非本人操作,请忽略本短信"
[wechatpay] [wechatpay]
mch_id = 1719907761 mch_id = 1719907761

2
.gitignore vendored
View File

@@ -2,4 +2,4 @@
/public/uploads/* /public/uploads/*
.idea .idea
*.log *.log
.env

View File

@@ -40,8 +40,9 @@ class Activities extends adminApi
public function first_charge_lists(){ public function first_charge_lists(){
$page = input('page', 1); $page = input('page', 1);
$page_limit = input('page_limit', 30); $page_limit = input('page_limit', 30);
$activities_id = input('activities_id', 1);
$where = []; $where = [];
$where['activities_id'] = 1; $where['activities_id'] = $activities_id;
$where['delete_time'] = 0; $where['delete_time'] = 0;
$count = db($this->table)->where($where)->count(); $count = db($this->table)->where($where)->count();
$lists = db($this->table)->where($where)->page($page, $page_limit)->select(); $lists = db($this->table)->where($where)->page($page, $page_limit)->select();
@@ -76,11 +77,12 @@ class Activities extends adminApi
$title1 = input('title1', ''); $title1 = input('title1', '');
$title2 = input('title2', ''); $title2 = input('title2', '');
$money = input('money', ''); $money = input('money', '');
$activities_id = input('activities_id', 1);
$return_data = [ $return_data = [
'name' => $name, 'name' => $name,
'title' => $title, 'title' => $title,
'status' => $status, 'status' => $status,
'activities_id' => 1, 'activities_id' => $activities_id,
]; ];
$ext = [ $ext = [
'title1' => $title1, 'title1' => $title1,
@@ -167,11 +169,12 @@ class Activities extends adminApi
$page_limit = input('page_limit', 30); $page_limit = input('page_limit', 30);
$user_id = input('user_id', ''); $user_id = input('user_id', '');
$gift_bag_id = input('gift_bag_id', ''); $gift_bag_id = input('gift_bag_id', '');
$activities_id = input('activities_id', 1);
$where = []; $where = [];
if($user_id){ if($user_id){
$where['user_id'] = $user_id; $where['user_id'] = $user_id;
} }
$gift_bag = db('vs_gift_bag')->where(['activities_id'=>1,'delete_time'=>0])->select(); $gift_bag = db('vs_gift_bag')->where(['activities_id'=>$activities_id,'delete_time'=>0])->select();
if($gift_bag_id){ if($gift_bag_id){
$where['gift_bag_id'] = $gift_bag_id; $where['gift_bag_id'] = $gift_bag_id;
@@ -360,6 +363,7 @@ class Activities extends adminApi
'foreign_id' => $gift_id, 'foreign_id' => $gift_id,
'name' => $gift['gift_name'], 'name' => $gift['gift_name'],
'quantity' => $num, 'quantity' => $num,
'gold' => $gift['gift_price'],
]; ];
} elseif($type == 3){ } elseif($type == 3){
$decorate_price = DB::name('vs_decorate_price')->where(['id'=>$gift_id])->find(); $decorate_price = DB::name('vs_decorate_price')->where(['id'=>$gift_id])->find();
@@ -373,6 +377,7 @@ class Activities extends adminApi
'foreign_id' => $gift_id, 'foreign_id' => $gift_id,
'name' => $gift['title'], 'name' => $gift['title'],
'days' => $decorate_price['day'], 'days' => $decorate_price['day'],
'gold' => $decorate_price['price'],
]; ];
} elseif($type == 4){ } elseif($type == 4){
$data = [ $data = [
@@ -419,6 +424,7 @@ class Activities extends adminApi
'money' => $ext['money'], 'money' => $ext['money'],
'money_str' => $ext['money_str'], 'money_str' => $ext['money_str'],
'diamond' => $ext['diamond'], 'diamond' => $ext['diamond'],
'activity_end_time' => $ext['activity_end_time'],
]; ];
return V(1,"成功",$data); return V(1,"成功",$data);
} }
@@ -433,17 +439,20 @@ class Activities extends adminApi
$money = input('money', ''); $money = input('money', '');
$money_str = input('money_str', ''); $money_str = input('money_str', '');
$diamond = input('diamond', ''); $diamond = input('diamond', '');
$activity_end_time = input('activity_end_time', '');
$id = input('id', 6); $id = input('id', 6);
$data = [ $data = [
'name' => $name, 'name' => $name,
'title' => $title, 'title' => $title,
'status' => $status 'status' => $status,
'money' => $money,
]; ];
$ext = [ $ext = [
'counter' => $counter, 'counter' => $counter,
'money_str' => $money_str, 'money_str' => $money_str,
'diamond' => $diamond, 'diamond' => $diamond,
'money' => $money 'money' => $money,
'activity_end_time' => $activity_end_time
]; ];
$data['ext'] = json_encode($ext); $data['ext'] = json_encode($ext);
$res = db::name($this->table)->where(['id'=>$id])->update($data); $res = db::name($this->table)->where(['id'=>$id])->update($data);
@@ -593,10 +602,10 @@ class Activities extends adminApi
$lists[$key]['gift_id'] = $value['foreign_id']; $lists[$key]['gift_id'] = $value['foreign_id'];
$lists[$key]['gift_name'] = $value['name']; $lists[$key]['gift_name'] = $value['name'];
$gift_data = db::name('vs_gift')->where(['gid' => $value['foreign_id']])->find(); $gift_data = db::name('vs_gift')->where(['gid' => $value['foreign_id']])->find();
$lists[$key]['base_image'] = $gift_data['base_image']; $lists[$key]['base_image'] = $gift_data['base_image']??"";
$lists[$key]['quantity'] = $value['quantity']; $lists[$key]['quantity'] = $value['quantity'];
$lists[$key]['quantity_str'] = $value['quantity'].""; $lists[$key]['quantity_str'] = $value['quantity']."";
$lists[$key]['gift_price'] = $gift_data['gift_price']; $lists[$key]['gift_price'] = $gift_data['gift_price']?? "";
}elseif ($value['type'] == 3){ }elseif ($value['type'] == 3){
$lists[$key]['gift_id'] = $value['foreign_id']; $lists[$key]['gift_id'] = $value['foreign_id'];
$lists[$key]['gift_name'] = $value['name']; $lists[$key]['gift_name'] = $value['name'];

View File

@@ -168,7 +168,7 @@ class Admin extends adminApi
{ {
if ($this->request->isPost()) { if ($this->request->isPost()) {
$params = $this->request->post(); $params = $this->request->post();
$group = $params['group']; $group = $params['group']?? [];
unset($params['group']); unset($params['group']);
unset($params['__token__']); unset($params['__token__']);
if ($params) { if ($params) {
@@ -196,21 +196,21 @@ class Admin extends adminApi
return V(0,"失败", []); return V(0,"失败", []);
} }
// 先移除所有权限 if(!empty($group)){
model('admin/AuthGroupAccess')->where('uid', $params['id'])->delete(); // 先移除所有权限
model('admin/AuthGroupAccess')->where('uid', $params['id'])->delete();
// 过滤不允许的组别,避免越权
$group = array_intersect($this->childrenGroupIds, $group);
if (!$group) {
return V(0,"失败", []);
}
$dataset = [];
// 过滤不允许的组别,避免越权 foreach ($group as $value) {
$group = array_intersect($this->childrenGroupIds, $group); $dataset[] = ['uid' => $params['id'], 'group_id' => $value];
if (!$group) { }
return V(0,"失败", []); model('admin/AuthGroupAccess')->saveAll($dataset);
} }
$dataset = [];
foreach ($group as $value) {
$dataset[] = ['uid' => $params['id'], 'group_id' => $value];
}
model('admin/AuthGroupAccess')->saveAll($dataset);
Db::commit(); Db::commit();
return V(1,"成功", []); return V(1,"成功", []);
} catch (\Exception $e) { } catch (\Exception $e) {

View File

@@ -52,10 +52,10 @@ class Adminlog extends adminApi
$where['createtime'] = ['>=', strtotime($search_stime)]; $where['createtime'] = ['>=', strtotime($search_stime)];
} }
if ($search_etime) { if ($search_etime) {
$where['createtime'] = ['<=', strtotime($search_etime.' 23:59:59')]; $where['createtime'] = ['<=', strtotime($search_etime)];
} }
if(!empty($search_stime) && !empty($search_etime)){ if(!empty($search_stime) && !empty($search_etime)){
$where['createtime'] = ['between',[strtotime($search_stime),strtotime($search_etime.' 23:59:59')]]; $where['createtime'] = ['between',[strtotime($search_stime),strtotime($search_etime)]];
} }
$list_data = $this->model->where($where)->where('admin_id', 'in', $this->childrenAdminIds)->order('createtime', 'desc')->paginate($page_limit, false, ['page' => $page]); $list_data = $this->model->where($where)->where('admin_id', 'in', $this->childrenAdminIds)->order('createtime', 'desc')->paginate($page_limit, false, ['page' => $page]);

View File

@@ -151,7 +151,7 @@ class Banner extends adminApi
$image = input('image', ''); $image = input('image', '');
$show_status = input('show_status', ''); $show_status = input('show_status', '');
$remarks = input('remarks', ''); $remarks = input('remarks', '');
$content = input('content', ''); $content =$_POST['content']??"";
if (!$id){ if (!$id){
return V(0,"ID不能为空"); return V(0,"ID不能为空");
} }

View File

@@ -9,6 +9,7 @@ use think\Db;
use think\Hook; use think\Hook;
use think\Session; use think\Session;
use think\Validate; use think\Validate;
use think\Cache;
/** /**
* 盲盒 * 盲盒
@@ -18,7 +19,7 @@ class BlindBox extends adminApi
{ {
protected $noNeedLogin = []; protected $noNeedLogin = [];
protected $noNeedRight = ['blind_box_type','blind_box_gifts']; protected $noNeedRight = ['blind_box_type','blind_box_gifts','xunlehui_rule_detail','xunlehui_set_rule','blind_box_turntable_lists','blind_box_turntable_open_record','xlh_lock_record'];
protected $table = 'vs_gift_bag_detail'; protected $table = 'vs_gift_bag_detail';
@@ -40,7 +41,8 @@ class BlindBox extends adminApi
if(empty($gift_bag_id)){ if(empty($gift_bag_id)){
return V(0,"请选择盲盒类型"); return V(0,"请选择盲盒类型");
} }
$bag_list = db::name("vs_gift_bag")->field('id,name')->where(['activities_id'=>4,'status'=>1])->select(); $bag_data = db::name("vs_gift_bag")->find($gift_bag_id);
$bag_list = db::name("vs_gift_bag")->field('id,name')->where(['activities_id'=>$bag_data['activities_id'],'status'=>1])->select();
foreach ($bag_list as &$v) { foreach ($bag_list as &$v) {
$v['default'] = $gift_bag_id == $v['id'] ? 1 : 0; $v['default'] = $gift_bag_id == $v['id'] ? 1 : 0;
} }
@@ -60,15 +62,24 @@ class BlindBox extends adminApi
$lists[$key]['gift_id'] = $value['foreign_id']; $lists[$key]['gift_id'] = $value['foreign_id'];
$lists[$key]['gift_name'] = $value['name']; $lists[$key]['gift_name'] = $value['name'];
$gift_data = db::name('vs_gift')->where(['gid'=>$value['foreign_id']])->find(); $gift_data = db::name('vs_gift')->where(['gid'=>$value['foreign_id']])->find();
if(empty($gift_data)){
continue;
}
$lists[$key]['base_image'] = $gift_data['base_image']; $lists[$key]['base_image'] = $gift_data['base_image'];
$lists[$key]['gift_price'] = $gift_data['gift_price']; $lists[$key]['gift_price'] = $gift_data['gift_price'];
$lists[$key]['quantity'] = $value['quantity']; $lists[$key]['quantity'] = $value['quantity'];
$lists[$key]['remaining_number'] = $value['remaining_number']; $lists[$key]['remaining_number'] = $value['remaining_number'];
$lists[$key]['is_public_screen'] = $gift_data['is_public_screen']; $lists[$key]['is_public_screen'] = $gift_data['is_public_screen'];
$lists[$key]['is_public_server'] = $gift_data['is_public_server']; $lists[$key]['is_public_server'] = $gift_data['is_public_server'];
$lists[$key]['is_world_show'] = $value['is_world_show'];
$lists[$key]['weight'] = $value['weight'];
$lists[$key]['createtime'] = date('Y-m-d H:i:s', $value['createtime']); $lists[$key]['createtime'] = date('Y-m-d H:i:s', $value['createtime']);
} }
//$lists 按gift_price 降序排序
usort($lists, function($a, $b) {
return $b['gift_price'] - $a['gift_price'];
});
//统计 //统计
$total_data = []; $total_data = [];
//每期总次数 //每期总次数
@@ -83,9 +94,14 @@ class BlindBox extends adminApi
//每期总抽奖花费(支出) //每期总抽奖花费(支出)
$bag_data = db::name("vs_gift_bag")->field('id,name,ext')->where(['id'=>$gift_bag_id])->find(); $bag_data = db::name("vs_gift_bag")->field('id,name,ext')->where(['id'=>$gift_bag_id])->find();
$ext = json_decode($bag_data['ext'],true); $ext = json_decode($bag_data['ext'],true);
$c_gift_id = $ext['gift_id'];
$c_gift_data = db::name('vs_gift')->where(['gid'=>$c_gift_id])->find(); if($gift_bag_id == 13){
$gift_price = $c_gift_data['gift_price']??0; $gift_price = $ext['xlh_box_price']??0;
}else{
$c_gift_id = $ext['gift_id'];
$c_gift_data = db::name('vs_gift')->where(['gid'=>$c_gift_id])->find();
$gift_price = $c_gift_data['gift_price']??0;
}
$total_cost = $total_count * $gift_price; $total_cost = $total_count * $gift_price;
//每期统计(收入/支出) //每期统计(收入/支出)
if($total_cost==0 || $total_price==0){ if($total_cost==0 || $total_price==0){
@@ -131,6 +147,8 @@ class BlindBox extends adminApi
$gift_id = input('gift_id', ''); $gift_id = input('gift_id', '');
$gift_bag_id = input('gift_bag_id', ''); $gift_bag_id = input('gift_bag_id', '');
$quantity = input('quantity', 0); $quantity = input('quantity', 0);
$weight = input('weight', 0);
$is_world_show = input('is_world_show', 0);
if(empty($gift_id)){ if(empty($gift_id)){
return V(0,"请选择礼物"); return V(0,"请选择礼物");
} }
@@ -153,6 +171,9 @@ class BlindBox extends adminApi
$data['quantity'] = $quantity; $data['quantity'] = $quantity;
$data['remaining_number'] = $quantity; $data['remaining_number'] = $quantity;
$data['createtime'] = time(); $data['createtime'] = time();
$data['weight'] = $weight;
$data['is_world_show'] = $is_world_show;
$res = db::name($this->table)->insert($data); $res = db::name($this->table)->insert($data);
if($res){ if($res){
return V(1,"成功"); return V(1,"成功");
@@ -165,7 +186,15 @@ class BlindBox extends adminApi
*/ */
public function blind_box_gifts(){ public function blind_box_gifts(){
$type = input('type', 2); $type = input('type', 2);
$list = db::name("vs_gift")->where(['type'=>$type,'delete_time'=>0])->order('sort','asc')->select(); $label = input('label', 0);
$where['delete_time'] = 0;
if($type){
$where['type'] = $type;
}
if($label){
$where['label'] = $label;
}
$list = db::name("vs_gift")->where($where)->order('sort','asc')->select();
$list_data = []; $list_data = [];
foreach ($list as $k=>$v){ foreach ($list as $k=>$v){
$list_data[$k]['gid'] = $v['gid']; $list_data[$k]['gid'] = $v['gid'];
@@ -181,9 +210,12 @@ class BlindBox extends adminApi
public function blind_box_edit(){ public function blind_box_edit(){
$id = input('id', ''); $id = input('id', '');
$quantity = input('quantity', 0); $quantity = input('quantity', 0);
$is_world_show = input('is_world_show', 0);
$gift_id = input('gift_id', 0);
if(empty($id)){ if(empty($id)){
return V(0,"参数错误"); return V(0,"参数错误");
} }
$weight = input('weight', 0);
$gift_bag = db::name($this->table)->where('id',$id)->find(); $gift_bag = db::name($this->table)->where('id',$id)->find();
// if($gift_bag['remaining_number']>0){ // if($gift_bag['remaining_number']>0){
// return V(0,"该礼包已开售"); // return V(0,"该礼包已开售");
@@ -191,6 +223,13 @@ class BlindBox extends adminApi
$data = []; $data = [];
$data['quantity'] = $quantity; $data['quantity'] = $quantity;
$data['remaining_number'] = $quantity; $data['remaining_number'] = $quantity;
$data['is_world_show'] = $is_world_show;
$data['weight'] = $weight;
if(!empty($gift_id)){
$gift = db::name('vs_gift')->where(['gid'=>$gift_id])->find();
$data['foreign_id'] = $gift_id;
$data['name'] = $gift['gift_name'];
}
$res = db::name($this->table)->where(['id'=>$id])->update($data); $res = db::name($this->table)->where(['id'=>$id])->update($data);
if($res){ if($res){
return V(1,"成功"); return V(1,"成功");
@@ -217,18 +256,105 @@ class BlindBox extends adminApi
*/ */
public function reset_set(){ public function reset_set(){
$gift_bag_id = input('gift_bag_id', 0); $gift_bag_id = input('gift_bag_id', 0);
$room_id = input('room_id', 0);
if(empty($gift_bag_id)){ if(empty($gift_bag_id)){
return V(0,"请选择盲盒类型"); return V(0,"请选择盲盒类型");
} }
$gift_bag_detail = db::name($this->table)->where(['gift_bag_id'=>$gift_bag_id])->select(); $gift_bag_detail = db::name($this->table)->where(['gift_bag_id'=>$gift_bag_id])->select();
// if(in_array($gift_bag_id,[10,11,12,13])){
// $periods = 1;
// $target_room_ids = [];
// if(!empty($room_id)){
// // 处理单个房间
// $room_pan_detail = db::name('vs_room_pan')
// ->where(['gift_bag_id'=>$gift_bag_id,'room_id'=>$room_id])
// ->order('id desc')
// ->find();
//
// if($room_pan_detail){
// $periods = $room_pan_detail['periods'];
// }
// // 删除指定房间的数据
// db::name('vs_room_pan')
// ->where(['room_id'=>$room_id,'gift_bag_id'=>$gift_bag_id])
// ->delete();
//
// $target_room_ids = [$room_id];
// }else{
// // 处理所有房间
// db::name('vs_room_pan')
// ->where(['gift_bag_id'=>$gift_bag_id])
// ->delete();
//
// $target_room_ids = db::name('vs_room')
// ->where(['is_open_blind_box_turntable'=>1,'room_status'=>1])
// ->column('id');
// }
// // 批量插入数据
// $insert_data = [];
// $update_data = [];
// foreach ($gift_bag_detail as $v){
// if(!empty($room_id)) {
// // 单个房间更新或插入
// $existing = db::name('vs_room_pan')
// ->where([
// 'room_id' => $room_id,
// 'gift_bag_detail_id' => $v['id']
// ])
// ->find();
//
// if($existing) {
// $update_data[] = [
// 'id' => $existing['id'],
// 'remaining_number' => $v['quantity'],
// 'periods' => $periods
// ];
// } else {
// $insert_data[] = [
// 'room_id' => $room_id,
// 'gift_bag_id' => $gift_bag_id,
// 'gift_bag_detail_id' => $v['id'],
// 'remaining_number' => $v['quantity'],
// 'periods' => $periods,
// 'createtime' => time(),
// ];
// }
// } else {
// // 多个房间批量插入
// foreach ($target_room_ids as $mid){
// $insert_data[] = [
// 'room_id' => $mid,
// 'gift_bag_id' => $gift_bag_id,
// 'gift_bag_detail_id' => $v['id'],
// 'remaining_number' => $v['quantity'],
// 'periods' => $periods,
// 'createtime' => time(),
// ];
// }
// }
// }
//
// // 执行批量插入
// if(!empty($insert_data)) {
// db::name('vs_room_pan')->insertAll($insert_data);
// }
// // 执行批量更新
// if(!empty($update_data)) {
// foreach($update_data as $update_item) {
// db::name('vs_room_pan')
// ->where(['id' => $update_item['id']])
// ->update([
// 'remaining_number' => $update_item['remaining_number'],
// 'periods' => $update_item['periods']
// ]);
// }
// }
// }
// 更新盲盒详情的剩余数量
foreach ($gift_bag_detail as $k=>$v){ foreach ($gift_bag_detail as $k=>$v){
$bag_data = db::name($this->table)->where(['id'=>$v['id']])->update(['remaining_number'=>$v['quantity']]); $bag_data = db::name($this->table)->where(['id'=>$v['id']])->update(['remaining_number'=>$v['quantity']]);
} }
if($bag_data){ return V(1,"成功");
return V(1,"成功");
}else{
return V(0,"失败");
}
} }
/* /*
@@ -309,6 +435,8 @@ class BlindBox extends adminApi
} }
if($gift_bag_id){ if($gift_bag_id){
$where['gift_bag_id'] = $gift_bag_id; $where['gift_bag_id'] = $gift_bag_id;
}else{
$where['gift_bag_id'] = ['in',[7,8,9]];
} }
if($periods){ if($periods){
$where['periods'] = $periods; $where['periods'] = $periods;
@@ -401,5 +529,383 @@ class BlindBox extends adminApi
$bag_list = db::name("vs_gift_bag")->field('id,name')->where(['activities_id'=>$activities_id,'status'=>1])->select(); $bag_list = db::name("vs_gift_bag")->field('id,name')->where(['activities_id'=>$activities_id,'status'=>1])->select();
return V(1,"成功", $bag_list); return V(1,"成功", $bag_list);
} }
//--------------------------盲盒转盘与巡乐会-------------------------------------------------------
/*
* 巡乐会规则详情
*/
public function xunlehui_rule_detail(){
$gift_bag_id = 13;
$gift_bag = db::name('vs_gift_bag')->where(['id'=>$gift_bag_id])->find();
$ext_data = json_decode($gift_bag['ext'],true);
$ext_data['introd'] = stripcslashes($ext_data['introd']);
$bag_list = db::name("vs_gift_bag")->field('id,name')->where(['activities_id'=>5,'status'=>1])->select();
foreach ($bag_list as &$value) {
$value['is_default'] = 0;
if($value['id'] == $ext_data['inlet_bag_id']){
$value['is_default'] = 1;
}
}
$ext_data['bag_list'] = $bag_list;
if($gift_bag){
return V(1,"成功",$ext_data);
}else{
return V(0,"失败");
}
}
/*
* 巡乐会规则设置
*/
public function xunlehui_set_rule(){
$gift_bag_id = 13;
$inlet_bag_id = input('inlet_bag_id', '');
$waiting_start_num = input('waiting_start_num', '');
$start_num = input('start_num', '');
$selected_gift_id = input('selected_gift_id', '');
$locking_gift_id = input('locking_gift_id', '');
$give_homeowner_gift_id = input('give_homeowner_gift_id', '');
$end_time = input('end_time', '');
$tow_no_locking_time = input('tow_no_locking_time', '');
$next_time = input('next_time', '');
$introd =$_POST['introd']??"";
$price = input('price', '');
if(empty($inlet_bag_id)){
return V(0,"请选择巡乐会绑定入口");
}
$ext =[
'inlet_bag_id' => $inlet_bag_id,
'gift_id' => $selected_gift_id,
'xlh_box_price' => $price,
'open_condition' => [
'waiting_start_num' => $waiting_start_num,
'start_num' => $start_num,
],
'locking_condition' => [
'selected_gift_id' => $selected_gift_id,
'locking_gift_id' => $locking_gift_id,
'give_homeowner_gift_id' => $give_homeowner_gift_id,
],
'locking_time' => [
'end_time' => $end_time,
'tow_no_locking_time' => $tow_no_locking_time,
'next_time' => $next_time,
],
'introd' => $introd,
];
$ext = json_encode($ext);
$res = db::name('vs_gift_bag')->where(['id'=>$gift_bag_id])->update(['ext'=>$ext]);
if($res){
//删除缓存
$cacheKey = "xlh_config_13";
cache::rm($cacheKey);
return V(1,"成功");
}else{
return V(0,"失败");
}
}
/*
* 盲盒转盘统计
*
*/
public function blind_box_turntable_lists(){
$page = input('page', 1);
$page_limit = input('page_limit', 30);
$gift_id = input('gift_id', '');
$gift_name = input('gift_name', '');
$gift_bag_id = input('gift_bag_id', 10);
$room_id = input('room_id', '');
if(empty($gift_bag_id)){
return V(0,"请选择盲盒类型");
}
$room = db::name('vs_room')->where(['id'=>$room_id])->find();
if(empty($room)){
return V(0,"房间不存在");
}
if($room['is_open_blind_box_turntable'] !=1){
return V(0,"该房间未开启盲盒转盘");
}
$bag_data = db::name("vs_gift_bag")->find($gift_bag_id);
$bag_list = db::name("vs_gift_bag")->field('id,name')->where(['activities_id'=>$bag_data['activities_id'],'status'=>1])->select();
foreach ($bag_list as &$v) {
$v['default'] = $gift_bag_id == $v['id'] ? 1 : 0;
}
$where=[];
$where['gift_bag_id'] = $gift_bag_id;
if($gift_id!==''){
$where['foreign_id'] =$gift_id;
}
if($gift_name!==''){
$where['name'] = ['like', '%'.$gift_name.'%'];
}
$count = db::name($this->table)->where($where)->count();
$lists_data = db::name($this->table)->where($where)->page($page, $page_limit)->order("id desc")->select();
$lists = [];
$periods =1;
foreach ($lists_data as $key => $value) {
$lists[$key]['id'] = $value['id'];
$lists[$key]['gift_id'] = $value['foreign_id'];
$lists[$key]['gift_name'] = $value['name'];
$gift_data = db::name('vs_gift')->where(['gid'=>$value['foreign_id']])->find();
$lists[$key]['base_image'] = $gift_data['base_image'];
$lists[$key]['gift_price'] = $gift_data['gift_price'];
$lists[$key]['quantity'] = $value['quantity'];
$room_pan = db::name('vs_room_pan')->where(['room_id'=>$room_id,'gift_bag_detail_id'=>$value['id']])->find();
$lists[$key]['remaining_number'] = $room_pan['remaining_number'] ?? 0;
$lists[$key]['is_public_screen'] = $gift_data['is_public_screen'];
$lists[$key]['is_public_server'] = $gift_data['is_public_server'];
$lists[$key]['is_world_show'] = $value['is_world_show'];
$lists[$key]['weight'] = $value['weight'];
$lists[$key]['createtime'] = date('Y-m-d H:i:s', $value['createtime']);
$periods = $room_pan['periods']??1;
}
//统计
$total_data = [];
//每期总次数
$total_count = db::name($this->table)->where(['gift_bag_id'=>$gift_bag_id])->sum('quantity');
//每期总礼物价值
$total_price_data = db::name($this->table)->alias('a')
->field('a.quantity,b.gift_price,b.gift_price * a.quantity as total_price')
->join('vs_gift b','a.foreign_id = b.gid')
->where(['a.gift_bag_id'=>$gift_bag_id])
->select();
$total_price = array_sum(array_column($total_price_data,'total_price'));
//每期总抽奖花费(支出)
$bag_data = db::name("vs_gift_bag")->field('id,name,ext')->where(['id'=>$gift_bag_id])->find();
$ext = json_decode($bag_data['ext'],true);
$c_gift_id = $ext['gift_id'];
$c_gift_data = db::name('vs_gift')->where(['gid'=>$c_gift_id])->find();
$gift_price = $c_gift_data['gift_price']??0;
$total_cost = $total_count * $gift_price;
//每期统计(收入/支出)
if($total_cost==0 || $total_price==0){
$profit_loss_ratio = 0;
}else{
$profit_loss_ratio =round(($total_price / $total_cost ),2);
}
//今天抽奖人数
$today_count_user = db::name('vs_gift_bag_receive_log')
->where(['gift_bag_id'=>$gift_bag_id,'createtime'=>['between',[strtotime(date('Y-m-d')),time()]]])
->group('user_id')
->count();
//今日抽奖总次数
$today_total_count = db::name('vs_gift_bag_receive_log')
->where(['gift_bag_id'=>$gift_bag_id,'createtime'=>['between',[strtotime(date('Y-m-d')),time()]]])
->count();
//今日抽奖收入
$today_total_price = db::name('vs_gift_bag_receive_log')
->where(['gift_bag_id'=>$gift_bag_id,'createtime'=>['between',[strtotime(date('Y-m-d')),time()]]])
->sum('bag_price');
$return_data = [
'page' =>$page,
'page_limit' => $page_limit,
'count' => $count,
'lists' => $lists,
'bag_list' => $bag_list,
'total_data' => [
'blind_box_turntable_periods' => $periods, //当前期数
'remaining_number' => db::name('vs_room_pan')->where(['room_id'=>$room_id,'gift_bag_id'=>$gift_bag_id])->sum('remaining_number')??'0',
'total_count' => $total_count,
'total_price' => $total_price,
'total_cost' => $total_cost,
'profit_loss_ratio' => $profit_loss_ratio,
'today_count_user' => $today_count_user,
'today_total_count' => $today_total_count,
'today_total_price' => $today_total_price,
]
];
return V(1,"成功", $return_data);
}
/*
* 盲盒转盘开奖记录
*
*/
public function blind_box_turntable_open_record(){
$page = input('page', 1);
$page_limit = input('page_limit', 30);
$gift_id = input('gift_id', '');
$user_id = input('user_id', '');
$room_id = input('room_id', '');
$gift_bag_id = input('gift_bag_id', '');
$periods = input('periods', '');
$stime = input('stime', '');
$etime = input('etime', '');
$where = [];
if($room_id){
$where['room_id'] = $room_id;
}
if($gift_id){
$where['gift_id'] = $gift_id;
}
if($user_id){
$user_id = db::name('user')->where('user_code', $user_id)->value('id');
$where['user_id'] = $user_id;
}
if($gift_bag_id){
$where['gift_bag_id'] = $gift_bag_id;
}else{
$where['gift_bag_id'] = ['in',[10,11,12]];
}
if($periods){
$where['periods'] = $periods;
}
if($stime!==""){
$where['createtime'] = ['>=', strtotime($stime)];
}
if($etime!==""){
$where['createtime'] = ['<=', strtotime($etime.'23:59:59')];
}
if($stime!=="" && $etime!==""){
$where['createtime'] = ['between', [strtotime($stime), strtotime($etime.'23:59:59')]];
}
$count = db::name('vs_gift_bag_receive_pan_log')->where($where)->count();
$lists_data = db::name('vs_gift_bag_receive_pan_log')->where($where)->page($page, $page_limit)->order("id desc")->select();
$lists = [];
foreach ($lists_data as $key => $value) {
$lists[$key]['id'] = $value['id'];
$lists[$key]['user_id'] = $value['user_id'];
$user = db::name('user')->where('id',$value['user_id'])->find();
$lists[$key]['user_name'] = "";
if($user){
$lists[$key]['user_name'] = $user['user_code'].'-'.$user['nickname'];
}
$lists[$key]['gift_user_id'] = $value['gift_user_id'];
$gift_user = db::name('user')->where('id',$value['gift_user_id'])->find();
$lists[$key]['gift_user_name'] = "";
if($gift_user){
$lists[$key]['gift_user_name'] = $gift_user['user_code'].'-'.$gift_user['nickname'];
}
$lists[$key]['gift_bag_type'] = db::name('vs_gift_bag')->where('id',$value['gift_bag_id'])->value('name');
$lists[$key]['periods'] = $value['periods'];
$room = db::name('vs_room')->where('id',$value['room_id'])->find();
$lists[$key]['room_name'] = "";
if($room){
$lists[$key]['room_name'] = $room['room_number']."-".$room['room_name'];
}
$lists[$key]['bag_price'] = $value['bag_price']*$value['num'];
$lists[$key]['gift_id'] = $value['gift_id'];
$lists[$key]['gift_name'] = db::name('vs_gift')->where('gid',$value['gift_id'])->value('gift_name');
$lists[$key]['gift_price'] = $value['gift_price'];
$lists[$key]['gift_num'] = $value['num'];
$lists[$key]['createtime'] = date('Y-m-d H:i:s',$value['createtime']);
}
$all_lists_data = db::name('vs_gift_bag_receive_pan_log')->where($where)->order("id desc")->select();
$total =0;
$total_gift_money = 0;
$total_money = 0;
foreach ($all_lists_data as $key => $value) {
$total += $value['num'];//总抽奖次数
$total_gift_money += $value['gift_price'] * $value['num']; //总礼物价值(收入)
$total_money += $value['bag_price'] * $value['num']; //总抽奖金额(支出)
}
//统计
if($total_gift_money==0 || $total_money==0){
$ratio = 0;
}else{
$ratio =round(($total_gift_money / $total_money),3);
}
//用户盈亏
$profit_loss = $total_gift_money - $total_money;
//平台盈亏
$platform_profit_loss = $total_money - $total_gift_money;
if($profit_loss==0 || $total_money==0){
$profit_loss_ratio = 0;
$platform_profit_loss_ratio = 0;
}else{
// 盈亏比
$profit_loss_ratio = round(($profit_loss / $total_money),3);
//平台盈亏比
$platform_profit_loss_ratio = round(($platform_profit_loss / $total_money),3);
}
$return_data = [
'page' =>$page,
'page_limit' => $page_limit,
'count' => $count,
'lists' => $lists,
'total_data' => [
'total' => $total,
'total_money' => $total_money,
'total_gift_money' => $total_gift_money,
'ratio' => $ratio,
'profit_loss' => $profit_loss,
'profit_loss_ratio' => $profit_loss_ratio,
'platform_profit_loss' => $platform_profit_loss,
'platform_profit_loss_ratio' => $platform_profit_loss_ratio,
]
];
return V(1,"成功", $return_data);
}
/*
* 寻乐会锁定记录
*
*/
public function xlh_lock_record(){
$page = input('page', 1);
$page_limit = input('page_limit', 30);
$gift_id = input('gift_id', '');
$user_id = input('user_id', '');
$room_id = input('room_id', 0);
$periods = input('periods', '');
$where = [];
if($room_id){
$where['b.room_id'] = $room_id;
}
if($gift_id){
$where['b.gift_id'] = $gift_id;
}
if($user_id){
$user_id = db::name('user')->where('user_code', $user_id)->value('id');
$where['b.user_id'] = $user_id;
}
if($periods){
$where['b.periods'] = $periods;
}
$count = db::name('vs_room_pan_xlh_log')->alias('a')
->join('vs_room_pan_xlh b', 'a.xlh_id = b.id')
->where($where)->count();
$lists_data = db::name('vs_room_pan_xlh_log')->alias('a')
->join('vs_room_pan_xlh b', 'a.xlh_id = b.id')
->field('a.id,b.periods as periods,a.user_id,a.createtime,b.user_id,b.room_id,b.gift_id,b.num,a.is_send,b.pay_price,b.locking_gift_id')
->where($where)
->page($page, $page_limit)
->order("id desc")
->select();
$lists = [];
foreach ($lists_data as $key => $value) {
$lists[$key]['id'] = $value['id'];
$lists[$key]['periods'] = $value['periods'];
$user = db::name('user')->field('user_code,nickname')->where('id',$value['user_id'])->find();
$lists[$key]['user'] = $user['user_code']."-".$user['nickname'];
//支付价格
$lists[$key]['pay_price'] = $value['pay_price'];
$gift = db::name('vs_gift')->field('gid,gift_name,gift_price')->where('gid',$value['locking_gift_id'])->find();
$lists[$key]['gift_id'] = $value['locking_gift_id'];
$lists[$key]['gift_name'] = $gift['gift_name']??"";
$lists[$key]['gift_price'] = $gift['gift_price']??0;
$lists[$key]['locking_num'] = $value['num'];
$lists[$key]['is_send'] = $value['is_send'];
$lists[$key]['is_send_str'] = $value['is_send']==1?"":"";
$lists[$key]['createtime'] = date('Y-m-d H:i:s',$value['createtime']);
$room = db::name('vs_room')->where('id',$value['room_id'])->find();
$lists[$key]['room_name'] = "";
if($room){
$lists[$key]['room_name'] = $room['room_number']."-".$room['room_name'];
}
}
//今日锁定礼物数量
$today = strtotime(date('Y-m-d'));
$locking_num = db::name('vs_room_pan_xlh_log')->alias('a')
->join('vs_room_pan_xlh b', 'a.xlh_id = b.id')
->where('a.createtime','>=',$today)->where(['a.is_send'=>1,'b.room_id'=>$room_id])->sum('a.num');
$return_data = [
'page' =>$page,
'page_limit' => $page_limit,
'count' => $count,
'lists' => $lists,
'locking_num' => $locking_num
];
return V(1,"成功", $return_data);
}
} }

View File

@@ -54,7 +54,7 @@ class Decorate extends adminApi
$return_list[$k]['type_str'] = model('api/Decorate')->TypeArray[$v['type']]; $return_list[$k]['type_str'] = model('api/Decorate')->TypeArray[$v['type']];
$return_list[$k]['base_image'] = $v['base_image']; $return_list[$k]['base_image'] = $v['base_image'];
$return_list[$k]['file_type'] = $v['file_type']; $return_list[$k]['file_type'] = $v['file_type'];
$return_list[$k]['file_type_str'] = $v['file_type'] ? "SVGA" : "MP4"; $return_list[$k]['file_type_str'] = $v['file_type']==1 ? "SVGA" : "MP4";
$return_list[$k]['play_image'] = $v['play_image']; $return_list[$k]['play_image'] = $v['play_image'];
$return_list[$k]['show_status'] = $v['show_status']; $return_list[$k]['show_status'] = $v['show_status'];
$return_list[$k]['is_buy'] = $v['is_buy']; $return_list[$k]['is_buy'] = $v['is_buy'];
@@ -327,6 +327,7 @@ class Decorate extends adminApi
$type = input('type', ''); $type = input('type', '');
$where = []; $where = [];
if($user_id!=""){ if($user_id!=""){
$user_id = db::name('user')->where('user_code', $user_id)->value('id');
$where['user_id'] = $user_id; $where['user_id'] = $user_id;
} }
if($did!=""){ if($did!=""){
@@ -340,7 +341,8 @@ class Decorate extends adminApi
$return_list = []; $return_list = [];
foreach ($lists as $k=>$v){ foreach ($lists as $k=>$v){
$return_list[$k]['id'] = $v['udid']; $return_list[$k]['id'] = $v['udid'];
$return_list[$k]['user_name'] = $v['user_id']."-".db::name('user')->where(['id'=>$v['user_id']])->value('nickname'); $user_data = db::name('user')->where(['id'=>$v['user_id']])->find();
$return_list[$k]['user_name'] = $user_data['user_code']."-".db::name('user')->where(['id'=>$v['user_id']])->value('nickname');
$return_list[$k]['type'] = model('api/Decorate')->TypeArray[$v['type']]; $return_list[$k]['type'] = model('api/Decorate')->TypeArray[$v['type']];
if($v['type'] >= 6){ if($v['type'] >= 6){
$return_list[$k]['name'] = $v['special_num']; $return_list[$k]['name'] = $v['special_num'];

View File

@@ -1,7 +1,7 @@
<?php <?php
namespace app\adminapi\controller; namespace app\adminapi\controller;
ini_set('memory_limit', '512M'); // 临时增加到512MB
use app\common\controller\adminApi; use app\common\controller\adminApi;
use think\Db; use think\Db;
@@ -54,12 +54,14 @@ class GiveGift extends adminApi
$where['from'] = $from; $where['from'] = $from;
} }
// 时间筛选优化 // 时间筛选优化
if(!empty($start_time) && !empty($end_time)){ if (!empty($start_time) || !empty($end_time)) {
$where['createtime'] = ['between', [strtotime($start_time), strtotime($end_time.' 23:59:59')]]; if (!empty($start_time) && !empty($end_time)) {
} elseif(!empty($start_time)){ $where['createtime'] = ['between', [strtotime($start_time), strtotime($end_time)]];
$where['createtime'] = ['>=', strtotime($start_time)]; } elseif (!empty($start_time)) {
} elseif(!empty($end_time)){ $where['createtime'] = ['>=', strtotime($start_time)];
$where['createtime'] = ['<=', strtotime($end_time.' 23:59:59')]; } elseif (!empty($end_time)) {
$where['createtime'] = ['<=', strtotime($end_time)];
}
} }
//礼物总数 //礼物总数
$gift_num = db::name('vs_give_gift')->where($where)->sum('number'); $gift_num = db::name('vs_give_gift')->where($where)->sum('number');
@@ -73,24 +75,32 @@ class GiveGift extends adminApi
$room_owner_earning = 0; $room_owner_earning = 0;
// 获取所有送礼记录 // 获取所有送礼记录
$list = db::name('vs_give_gift')->where($where)->order('id', 'desc')->select(); $lists = db::name('vs_give_gift')->where($where)->order('id', 'desc')->page($page, $page_limit)->select();
$gift_ids = array_column($list, 'id'); $count = db::name('vs_give_gift')->where($where)->count();
if (!empty($gift_ids)) { $earning_list = [];
if(!empty($where)){
$gift_ids = db::name('vs_give_gift')->where($where)->column('id');
if (!empty($gift_ids)) {
// 批量获取所有收益记录
$earning_list = db::name('vs_give_gift_ratio_log')
->field('app_earning,gift_user_earning,room_owner_earning')
->where('give_gift_id', 'in', $gift_ids)
->order('id', 'desc')
->select();
}
}else{
// 批量获取所有收益记录 // 批量获取所有收益记录
$earning_list = db::name('vs_give_gift_ratio_log') $earning_list = db::name('vs_give_gift_ratio_log')
->where('give_gift_id', 'in', $gift_ids) ->field('app_earning,gift_user_earning,room_owner_earning')
->order('id', 'desc') ->order('id', 'desc')
->select(); ->select();
// 计算总收益
foreach ($earning_list as $earning) {
$app_earning += $earning['app_earning'];
$receive_earning += $earning['gift_user_earning'];
$room_owner_earning += $earning['room_owner_earning'];
}
} }
$count = count($list); // 计算总收益
$lists = $this->array_pagination($list, $page, $page_limit); foreach ($earning_list as $earning) {
$app_earning += $earning['app_earning'];
$receive_earning += $earning['gift_user_earning'];
$room_owner_earning += $earning['room_owner_earning'];
}
// 提取所有需要关联查询的ID // 提取所有需要关联查询的ID
$user_ids = array_merge( $user_ids = array_merge(

View File

@@ -88,7 +88,7 @@ class Guild extends adminApi
$list[$k]['status_str'] = $v['status'] == 1 ? '正常' : '解散'; $list[$k]['status_str'] = $v['status'] == 1 ? '正常' : '解散';
$list[$k]['createtime'] = date('Y-m-d H:i:s',$v['createtime']); $list[$k]['createtime'] = date('Y-m-d H:i:s',$v['createtime']);
$list[$k]['updatetime'] = date('Y-m-d H:i:s',$v['updatetime']); $list[$k]['updatetime'] = date('Y-m-d H:i:s',$v['updatetime']);
$list[$k]['user_id'] = $user['user_code']; $list[$k]['user_id'] = $user['user_code']??"";
$list[$k]['intro'] = $v['intro']; $list[$k]['intro'] = $v['intro'];
} }
// 数组按today_money 排序 // 数组按today_money 排序
@@ -170,7 +170,13 @@ class Guild extends adminApi
} }
//会长是否有房间 //会长是否有房间
$rid = 0; $rid = 0;
$room_info = db::name('vs_room')->where('user_id', $user_id)->find(); $where = [
'user_id' => $user_id,
'delete_time' => 0
];
$where['apply_status'] = 2;//1待审核 2审核通过 3审核失败
$where['type_id'] = ['<>',6];
$room_info = db::name('vs_room')->where($where)->find();
if($room_info){ if($room_info){
$rid = $room_info['id']; $rid = $room_info['id'];
} }
@@ -288,9 +294,9 @@ class Guild extends adminApi
$res = model('Guild')->edit(['id'=>$id],['status'=>2,'delete_time'=>time()]); $res = model('Guild')->edit(['id'=>$id],['status'=>2,'delete_time'=>time()]);
if($res){ if($res){
db('vs_guild_user')->where(['guild_id'=>$id,'quit_type'=>0])->update(['quit_type'=>3,'quit_time'=>time()]); db('vs_guild_user')->where(['guild_id'=>$id,'quit_type'=>0])->update(['quit_type'=>3,'quit_time'=>time(),'delete_time'=>time()]);
//解散群 //解散群
model('Tencent')->delete_group('g'.$id); model('api/Tencent')->delete_group('g'.$id);
return V(1,"解散成功"); return V(1,"解散成功");
}else{ }else{
return V(0,"解散失败"); return V(0,"解散失败");
@@ -336,9 +342,9 @@ class Guild extends adminApi
$rum_lists[$k]['id']=$v['id']; $rum_lists[$k]['id']=$v['id'];
$rum_lists[$k]['user_id']=$v['user_id']; $rum_lists[$k]['user_id']=$v['user_id'];
$rum_lists[$k]['user_code']=model('api/Decorate')->user_decorate_detail($v['user_id'],6); $rum_lists[$k]['user_code']=model('api/Decorate')->user_decorate_detail($v['user_id'],6);
$rum_lists[$k]['nickname']=$user_info['nickname']; $rum_lists[$k]['nickname']=$user_info['nickname']?? '';
$rum_lists[$k]['charm_level']=$user_info['charm_level']; $rum_lists[$k]['charm_level']=$user_info['charm_level']??0;
$rum_lists[$k]['wealth_level']=$user_info['wealth_level']; $rum_lists[$k]['wealth_level']=$user_info['wealth_level']??0;
//用户流水 //用户流水
$consumption_sql = db::name('vs_user_money_log') $consumption_sql = db::name('vs_user_money_log')
->whereIn('change_type',$coin_consumption_type_array) ->whereIn('change_type',$coin_consumption_type_array)
@@ -390,15 +396,28 @@ class Guild extends adminApi
} }
$count = db::name($this->table_guild_user)->alias('a') $count = db::name($this->table_guild_user)->alias('a')
->join('vs_room b', 'a.room_id = b.id', 'left') ->join('vs_room b', 'a.room_id = b.id', 'left')
->where(['a.guild_id'=>$guild_id,'a.quit_type'=>['in',[0,3]]])->where($where)->count(); ->where(['a.guild_id'=>$guild_id])->where($where)->count();
$list = db::name($this->table_guild_user)->alias('a') $list = db::name($this->table_guild_user)->alias('a')
->join('vs_room b', 'a.room_id = b.id', 'left') ->join('vs_room b', 'a.room_id = b.id', 'left')
->where(['a.guild_id'=>$guild_id,'a.quit_type'=>['in',[0,3]]])->where($where)->page($page, $page_limit)->select(); ->where(['a.guild_id'=>$guild_id])->where($where)->page($page, $page_limit)->select();
if(!$list){ if(!$list){
return V(0,"暂无数据"); return V(0,"暂无数据");
} }
$rum_lists = []; $rum_lists = [];
foreach ($list as $k=>$v){ foreach ($list as $k=>$v){
if($search_stime!="" && $v['createtime'] < strtotime($search_stime)){
$search_stime = $search_stime;
}else{
$search_stime = date('Y-m-d H:i:s',$v['createtime']) ;
}
if($v['quit_time']){
if($search_etime!="" && $v['quit_time'] > strtotime($search_etime)){
$search_etime = $search_etime;
}else{
$search_etime = date('Y-m-d H:i:s',$v['quit_time']);
}
}
$room_info = db::name('vs_room')->where(['id'=>$v['room_id']])->find(); $room_info = db::name('vs_room')->where(['id'=>$v['room_id']])->find();
$rum_lists[$k]['id']=$v['id']; $rum_lists[$k]['id']=$v['id'];
$rum_lists[$k]['room_id']=$v['room_id']; $rum_lists[$k]['room_id']=$v['room_id'];
@@ -617,12 +636,14 @@ class Guild extends adminApi
$search_status_time = input('search_status_time', ''); $search_status_time = input('search_status_time', '');
$search_end_time = input('search_end_time', ''); $search_end_time = input('search_end_time', '');
$search_status = input('search_status', ''); $search_status = input('search_status', '');
$where = ['b.delete_time'=>0]; // $where = ['b.delete_time'=>0];
$where = [];
if($search_user_id){ if($search_user_id){
$where['b.user_id'] = $search_user_id; $where['b.user_id'] = $search_user_id;
} }
if($search_guild_id){ if($search_guild_id){
$where['a.guild_id'] = $search_guild_id; //$where['a.guild_id'] = $search_guild_id;
$where['b.guild_special_id'] = $search_guild_id;
} }
if($search_status_time){ if($search_status_time){
$where['a.start_time'] = ['>=', $search_status_time]; $where['a.start_time'] = ['>=', $search_status_time];

View File

@@ -54,6 +54,15 @@ class Index extends adminApi
//总待付款笔数 //总待付款笔数
$return_data['all_wait_pay_num'] = db::name('vs_user_recharge')->where('pay_status',1)->count(); $return_data['all_wait_pay_num'] = db::name('vs_user_recharge')->where('pay_status',1)->count();
//周实时收入金额
$return_data['week_money'] = db::name('vs_user_recharge')->where('pay_status',2)->whereTime('pay_time', 'week')->sum('money');
//上周收入金额
$return_data['last_week_money'] = db::name('vs_user_recharge')->where('pay_status',2)->whereTime('pay_time', 'last week')->sum('money');
//月收入金额
$return_data['month_money'] = db::name('vs_user_recharge')->where('pay_status',2)->whereTime('pay_time', 'month')->sum('money');
//上月收入金额
$return_data['last_month_money'] = db::name('vs_user_recharge')->where('pay_status',2)->whereTime('pay_time', 'last month')->sum('money');
//待办事项 //待办事项
//房间审核数 //房间审核数
$return_data['room_audit_num'] = db::name('vs_room')->where('apply_status',1)->count(); $return_data['room_audit_num'] = db::name('vs_room')->where('apply_status',1)->count();
@@ -114,17 +123,27 @@ class Index extends adminApi
$return_data['register_count'] = db::name('user')->where('status', 1)->where('is_robot', 0)->whereTime('createtime', 'today')->count(); $return_data['register_count'] = db::name('user')->where('status', 1)->where('is_robot', 0)->whereTime('createtime', 'today')->count();
//充值会员数 //充值会员数
$return_data['recharge_count'] = db::name('vs_user_recharge')->where('pay_status',2)->group('user_id')->count(); $return_data['recharge_count'] = db::name('vs_user_recharge')->where('pay_status',2)->group('user_id')->count();
//充值会员百分比 if(empty($return_data['member_count'])){
$return_data['recharge_count_percent'] = round(($return_data['recharge_count'] / $return_data['member_count']) * 100); $return_data['recharge_count_percent'] = 0;
//未充值会员数 $return_data['no_recharge_count'] = 0;
$return_data['no_recharge_count'] = $return_data['member_count'] - $return_data['recharge_count']; $return_data['no_recharge_count_percent'] = 0;
$return_data['no_recharge_count_percent'] = round(($return_data['no_recharge_count'] / $return_data['member_count']) * 100); $return_data['no_recharge_count'] = 0;
//IOS用户数 $return_data['ios_count_percent'] = 0;
$return_data['ios_count'] = db::name('user')->where('status', 1)->where('is_robot', 0)->where('system', 'iOS')->count(); $return_data['android_count'] = 0;
$return_data['ios_count_percent'] = round(($return_data['ios_count'] / $return_data['member_count']) * 100); $return_data['android_count_percent'] = 0;
//安卓用户数 }else{
$return_data['android_count'] = $return_data['member_count']-$return_data['ios_count']; //充值会员百分比
$return_data['android_count_percent'] = round(($return_data['android_count'] / $return_data['member_count']) * 100); $return_data['recharge_count_percent'] = round(($return_data['recharge_count'] / $return_data['member_count']) * 100);
//未充值会员数
$return_data['no_recharge_count'] = $return_data['member_count'] - $return_data['recharge_count'];
$return_data['no_recharge_count_percent'] = round(($return_data['no_recharge_count'] / $return_data['member_count']) * 100);
//IOS用户数
$return_data['ios_count'] = db::name('user')->where('status', 1)->where('is_robot', 0)->where('system', 'iOS')->count();
$return_data['ios_count_percent'] = round(($return_data['ios_count'] / $return_data['member_count']) * 100);
//安卓用户数
$return_data['android_count'] = $return_data['member_count']-$return_data['ios_count'];
$return_data['android_count_percent'] = round(($return_data['android_count'] / $return_data['member_count']) * 100);
}
//礼物打赏实时统计 //礼物打赏实时统计
//一个月内的礼物打赏 //一个月内的礼物打赏

View File

@@ -93,18 +93,19 @@ class Level extends adminApi
if(!$level_id){ if(!$level_id){
return V(0,"添加失败"); return V(0,"添加失败");
} }
//等级特权 if(!empty($gift_id)){
$decorate = db::name("vs_decorate")->where(['did' => $gift_id, 'delete_time' => 0])->find(); //等级特权
if(empty($decorate)){ $decorate = db::name("vs_decorate")->where(['did' => $gift_id, 'delete_time' => 0])->find();
return V(0,"请选择等级特权"); if(empty($decorate)){
} return V(0,"请选择等级特权");
if($gift_id){ }
db::name('vs_wealth_level_rights')->insert([ db::name('vs_wealth_level_rights')->insert([
'level_id' => $level_id, 'level_id' => $level_id,
'gift_id' => $gift_id, 'gift_id' => $gift_id,
'createtime' => time() 'createtime' => time()
]); ]);
} }
return V(1,"成功", ['id'=>$level]); return V(1,"成功", ['id'=>$level]);
} }
/* /*
@@ -163,6 +164,8 @@ class Level extends adminApi
} }
} }
}else{
db::name('vs_wealth_level_rights')->where(['level_id'=>$id])->delete();
} }
$result = db::name($this->table_wealth_level)->where(['id'=>$id])->update($level_data); $result = db::name($this->table_wealth_level)->where(['id'=>$id])->update($level_data);
if(!$result){ if(!$result){

View File

@@ -186,7 +186,7 @@ class Room extends adminApi
$page = input('page', 1); $page = input('page', 1);
$page_limit = input('page_limit', 30); $page_limit = input('page_limit', 30);
$search_name = input('search_name', ''); $search_name = input('search_name', '');
$where=[]; $where['deletetime'] = 0;
//标签名称 //标签名称
if($search_name!==''){ if($search_name!==''){
$where['label_name'] = ['like', '%'.$search_name.'%']; $where['label_name'] = ['like', '%'.$search_name.'%'];
@@ -237,7 +237,7 @@ class Room extends adminApi
if(!$type_data){ if(!$type_data){
return V(0,"房间类型不存在"); return V(0,"房间类型不存在");
} }
$result = db::name($this->table_room_type)->where(['id'=>$type_id])->delete(); $result = db::name($this->table_room_type)->where(['id'=>$type_id])->update(['deletetime'=>time()]);
if(!$result){ if(!$result){
return V(0,"删除失败"); return V(0,"删除失败");
} }
@@ -425,6 +425,12 @@ class Room extends adminApi
$search_room_id = input('search_room_id', ''); $search_room_id = input('search_room_id', '');
$search_user_id = input('search_user_id', ''); $search_user_id = input('search_user_id', '');
$search_status = input('search_status', ''); $search_status = input('search_status', '');
$type_id = input('type_id', '');
$label_id = input('label_id', '');
$is_hot = input('is_hot', '');
$is_top = input('is_top', '');
$is_recommend = input('is_recommend', '');
$where=[]; $where=[];
//房间号 //房间号
if($search_room_id!==''){ if($search_room_id!==''){
@@ -437,6 +443,21 @@ class Room extends adminApi
if($search_status!==''){ if($search_status!==''){
$where['room_status'] = $search_status; $where['room_status'] = $search_status;
} }
if($type_id!==''){
$where['type_id'] = $type_id;
}
if($label_id!==''){
$where['label_id'] = $label_id;
}
if($is_hot!==''){
$where['is_hot'] = $is_hot;
}
if($is_top!==''){
$where['is_top'] = $is_top;
}
if($is_recommend!==''){
$where['is_recommend'] = $is_recommend;
}
//房间列表只展示 审核通过的房间 //房间列表只展示 审核通过的房间
$where['apply_status'] = 2;//1待审核 2审核通过 3审核失败 $where['apply_status'] = 2;//1待审核 2审核通过 3审核失败
$where['type_id'] = ['<>',6]; $where['type_id'] = ['<>',6];
@@ -469,6 +490,7 @@ class Room extends adminApi
$lists[$key]['room_status_str'] = model('Room')->room_status[$value['room_status']]; $lists[$key]['room_status_str'] = model('Room')->room_status[$value['room_status']];
$lists[$key]['createtime'] = date('Y-m-d H:i:s', $value['createtime']); $lists[$key]['createtime'] = date('Y-m-d H:i:s', $value['createtime']);
$lists[$key]['is_robot_num'] = $value['robot_num']==0 ? 1 : 2; $lists[$key]['is_robot_num'] = $value['robot_num']==0 ? 1 : 2;
$lists[$key]['is_open_blind_box_turntable_str'] = $value['is_open_blind_box_turntable'] == 1 ? '是' : '否';
} }
$return_data = [ $return_data = [
'page' =>$page, 'page' =>$page,
@@ -655,8 +677,8 @@ class Room extends adminApi
} }
elseif ($type == 3){ elseif ($type == 3){
//周流水 //周流水
//周一 //周一
$begin_time = strtotime(date('Y-m-d 24:00:00',strtotime('-'.date('w').'days'))); $begin_time = strtotime(date('Y-m-d 00:00:00', strtotime('this week')));
$end_time = time(); $end_time = time();
$where['a.createtime'] = ['between', [$begin_time, $end_time]]; $where['a.createtime'] = ['between', [$begin_time, $end_time]];
} }
@@ -843,7 +865,16 @@ class Room extends adminApi
} }
} }
} }
$is_open_blind_box_turntable = input('is_open_blind_box_turntable', '');//是否开启盲盒转盘0 否 1是
if($is_open_blind_box_turntable !== ""){
$data['is_open_blind_box_turntable'] = $is_open_blind_box_turntable;
if($is_open_blind_box_turntable == 1){
$room_data = db::name('vs_room')->find($room_id);
if($room_data['is_open_blind_box_turntable'] == 0){
model('Room')->bindPan($room_id);
}
}
}
$res = db::name('vs_room')->where('id',$room_id)->update($data); $res = db::name('vs_room')->where('id',$room_id)->update($data);
if($res){ if($res){
return V(1,"成功"); return V(1,"成功");
@@ -916,9 +947,22 @@ class Room extends adminApi
if($status){ if($status){
$data['status'] = $status; $data['status'] = $status;
} }
$bg_url = db::name('vs_room_background')->where('id',$id)->value('image_url');
$res = db::name('vs_room_background')->where('id',$id)->update($data); $res = db::name('vs_room_background')->where('id',$id)->update($data);
if($res){ if($res){
if($bg_url != $image_url){
//查询使用默认背景的房间
$room_list = db::name('vs_room')->field('id,room_background')->where(['room_status' => ['<>',3]])->select();
if($room_list){
foreach ($room_list as $v){
//判断是否使用默认背景room_background 字段值是否是以 get_system_config_value('web_site') 开头
if(strpos($v['room_background'],get_system_config_value('web_site')) !== FALSE){
db::name('vs_room')->where('id',$v['id'])->update(['room_background' => $image_url]);
}
}
}
}
return V(1,"成功"); return V(1,"成功");
} }
else{ else{
@@ -969,6 +1013,10 @@ class Room extends adminApi
$search_room_number = input('search_room_number', ''); $search_room_number = input('search_room_number', '');
$search_onwer_number = input('search_onwer_number', ''); $search_onwer_number = input('search_onwer_number', '');
$room_status = input('room_status', ''); $room_status = input('room_status', '');
//开始 时间
$start_time = input('start_time', '');
//结束 时间
$end_time = input('end_time', '');
if($search_room_number!==''){ if($search_room_number!==''){
$where['room_number'] = $search_room_number; $where['room_number'] = $search_room_number;
@@ -979,12 +1027,36 @@ class Room extends adminApi
if($room_status!==''){ if($room_status!==''){
$where['room_status'] = $room_status; $where['room_status'] = $room_status;
} }
// 检查并转换时间格式为时间戳
if($start_time !== '' && $end_time !== ''){
// 同时有开始和结束时间
$startTime = strtotime($start_time);
$endTime = strtotime($end_time);
if($startTime !== false && $endTime !== false){
$where['createtime'] = ['between', [$startTime, $endTime]];
}
}elseif($start_time !== ''){
// 只有开始时间
$startTime = strtotime($start_time);
if($startTime !== false){
$where['createtime'] = ['>=', $startTime];
}
}elseif($end_time !== ''){
// 只有结束时间
$endTime = strtotime($end_time);
if($endTime !== false){
$where['createtime'] = ['<=', $endTime];
}
}
$where['type_id'] = 6; $where['type_id'] = 6;
$count = db::name('vs_room')->where($where)->count(); $count = db::name('vs_room')->where($where)->count();
$lists = db::name('vs_room')->field('id,room_name,room_cover,room_number,user_id,room_status,createtime') $lists = db::name('vs_room')->field('id,room_name,room_cover,room_number,user_id,room_status,createtime')
->where($where) ->where($where)
->order('id desc') ->order('id desc')
->page($page, $page_limit)->select(); ->page($page, $page_limit)->select();
foreach ($lists as &$value) { foreach ($lists as &$value) {
$guild = model('Guild')->getGuildByUserId($value['user_id']); $guild = model('Guild')->getGuildByUserId($value['user_id']);
$value['createtime'] = date('Y-m-d H:i:s', $value['createtime']); $value['createtime'] = date('Y-m-d H:i:s', $value['createtime']);
@@ -995,7 +1067,27 @@ class Room extends adminApi
$value['room_code'] = model('api/Decorate')->user_decorate_detail($value['id'], 7); $value['room_code'] = model('api/Decorate')->user_decorate_detail($value['id'], 7);
//房间状态1正常2封禁3关闭 //房间状态1正常2封禁3关闭
$value['room_status_str'] = $value['room_status'] ==1 ? "正常" : ($value['room_status'] ==2 ? "封禁" : "关闭"); $value['room_status_str'] = $value['room_status'] ==1 ? "正常" : ($value['room_status'] ==2 ? "封禁" : "关闭");
$cpRoom = db::name('vs_room_cp_movie')->where('room_id',$value['id'])->find();
if($cpRoom){
if($cpRoom['user_id'] == $value['user_id']){
$value['cp_nickname'] = db::name('user')->where('id', $cpRoom['user_id1'])->value('nickname');
$value['cp_user_id'] = db::name('user')->where('id', $cpRoom['user_id1'])->value('user_code');
}
if($cpRoom['user_id1'] == $value['user_id']){
$value['cp_nickname'] = db::name('user')->where('id', $cpRoom['user_id'])->value('nickname');
$value['cp_user_id'] = db::name('user')->where('id', $cpRoom['user_id'])->value('user_code');
}
}
// 流水计算也应使用相同的时间范围
$liushuiWhere = ['from_id' => $value['id']];
if(isset($where['createtime'])){
$liushuiWhere['createtime'] = $where['createtime'];
}
$value['liushui'] = db::name('vs_give_gift')->where($liushuiWhere)->sum('total_price') * get_system_config_value('coin_charm_exp');
} }
$return_data = [ $return_data = [
'page' =>$page, 'page' =>$page,
'page_limit' => $page_limit, 'page_limit' => $page_limit,
@@ -1005,6 +1097,7 @@ class Room extends adminApi
return V(1,"成功", $return_data); return V(1,"成功", $return_data);
} }
//Cp电影房封禁 //Cp电影房封禁
public function cp_movie_room_forbid() public function cp_movie_room_forbid()
{ {
@@ -1218,7 +1311,7 @@ class Room extends adminApi
if($apply_status!==''){ if($apply_status!==''){
$where['apply_status'] = $apply_status; $where['apply_status'] = $apply_status;
}else{ }else{
$where['apply_status'] = ['<>',2]; $where['apply_status'] = 1;
} }
$count = db::name($this->table)->where($where)->count(); $count = db::name($this->table)->where($where)->count();
@@ -1245,6 +1338,7 @@ class Room extends adminApi
//房间审核 //房间审核
public function room_audit(){ public function room_audit(){
$id = input('id', ''); $id = input('id', '');
$remark = input('remark', '');
if($id == ''){ if($id == ''){
return V(0,"参数错误"); return V(0,"参数错误");
} }
@@ -1252,10 +1346,40 @@ class Room extends adminApi
if($apply_status == ''){ if($apply_status == ''){
return V(0,"参数错误"); return V(0,"参数错误");
} }
$result = db::name('vs_room')->where(['id'=>$id])->update(['apply_status'=>$apply_status]); $room_data = db::name('vs_room')->where(['id'=>$id])->find();
if(!$room_data){
return V(0,"参数错误");
}
$result = db::name('vs_room')->where(['id'=>$id])->update([
'apply_status'=>$apply_status,
'is_open_blind_box_turntable'=>1,
'updatetime'=>time(),
]);
if(!$result){ if(!$result){
return V(0,"修改失败"); return V(0,"修改失败");
} }
//发系统信息
if($apply_status ==2){
$deal_content = '审核通过';
}elseif($apply_status ==3){
$deal_content = '审核未通过';
}
if(!empty($remark)){
$deal_content .= ',原因:'.$remark;
}
db::name('system_message')->insert([
'title' => '房间审核结果',
'content' => '您创建的房间'.$room_data['room_name'].$deal_content,
'type' => 1,
'admin_id' => Session::get('admin_id'),
'receiving_id' => $room_data['user_id'],
'createtime' => time(),
]);
//房间绑定盘
model('Room')->bindPan($id);
return V(1,"成功"); return V(1,"成功");
} }
@@ -1411,10 +1535,10 @@ class Room extends adminApi
$where['createtime'] = ['>=',strtotime($stime)]; $where['createtime'] = ['>=',strtotime($stime)];
} }
if(!empty($etime)){ if(!empty($etime)){
$where['createtime'] = ['<=',strtotime($etime.' 23:59:59')]; $where['createtime'] = ['<=',strtotime($etime)];
} }
if(!empty($stime) && !empty($etime)){ if(!empty($stime) && !empty($etime)){
$where['createtime'] = ['between',[strtotime($stime),strtotime($etime.' 23:59:59')]]; $where['createtime'] = ['between',[strtotime($stime),strtotime($etime)]];
} }
$room_log_lists = db::name($this->table_room_log)->where($where)->order('id desc')->page($page, $page_limit)->select(); $room_log_lists = db::name($this->table_room_log)->where($where)->order('id desc')->page($page, $page_limit)->select();
$count = db::name($this->table_room_log)->where($where)->count(); $count = db::name($this->table_room_log)->where($where)->count();
@@ -1582,4 +1706,183 @@ class Room extends adminApi
return V(1,"成功", $result); return V(1,"成功", $result);
} }
// 房间红包列表
public function room_redpacket_list(){
$page = input('page', 1);
$page_limit = input('page_limit', 30);
$room_id = input('room_id', '');
//红包状态
$status = input('status', '');
//发红包的时间
$stime = input('stime', '');
$etime = input('etime', '');
$where = [];
if($room_id){
$where['room_id'] = $room_id;
}
if($status){
$where['status'] = $status;
}
if($stime){
$where['createtime'] = ['>=',strtotime($stime)];
}
if($etime){
$where['createtime'] = ['<=',strtotime($etime)];
}
$count = db::name("redpacket")->where($where)->count();
$room_redpacket_lists = db::name("redpacket")->where($where)->page($page, $page_limit)->order('id desc')->select();
//循环数据 获取发红的昵称和头像 时间格式化 状态:0=未开始,1=进行中,2=已结束,3=已退回' 币种(coin_type):1=金币,2=钻石',红包类型(type):1=普通红包,2=口令红包'
//多选条件逗号分隔存值conditions) 0=无1=收藏2=在麦上
if($room_redpacket_lists){
foreach ($room_redpacket_lists as $key => $value){
$room_redpacket_lists[$key]['nickname'] = db::name('user')->where(['id'=>$value['user_id']])->value('nickname');
$room_redpacket_lists[$key]['avatar'] = db::name('user')->where(['id'=>$value['user_id']])->value('avatar');
$room_redpacket_lists[$key]['user_code'] = db::name('user')->where(['id'=>$value['user_id']])->value('user_code');
$room_redpacket_lists[$key]['createtime'] = date('Y-m-d H:i:s', $value['createtime']);
$room_redpacket_lists[$key]['status_text'] = $value['status'] == 0 ? '未开始' : ($value['status'] == 1 ? '进行中' : ($value['status'] == 2 ? '已结束' : '已退回'));
$room_redpacket_lists[$key]['coin_type_text'] = $value['coin_type'] == 1 ? '金币' : ($value['coin_type'] == 2 ? '钻石' : '未知');
$room_redpacket_lists[$key]['type_text'] = $value['type'] == 1 ? '普通红包' : ($value['type'] == 2 ? '口令红包' : '未知');
// 多选条件处理0=无不能和其他条件共存1=收藏2=在麦上
// 可以同时存在,也可以单独存在,同时存在时用逗号分隔
$conditions = explode(',',$value['conditions']);
// 过滤掉空值元素
$conditions = array_filter($conditions, function($item) {
return $item !== '' && $item !== null;
});
// 去除重复的条件
$conditions = array_unique($conditions);
// 重新索引数组,确保索引连续
$conditions = array_values($conditions);
// 特殊处理如果包含条件0无条件则只保留这一项
if (in_array('0', $conditions)) {
$room_redpacket_lists[$key]['conditions'] = ['无条件'];
} else {
// 将数字条件转换为对应的中文描述
$conditions_text = array_map(function($item){
// 0=无条件1=收藏2=在麦上
switch($item) {
case '0':
return '无条件';
case '1':
return '收藏';
case '2':
return '在麦上';
default:
return '未知';
}
}, $conditions);
$room_redpacket_lists[$key]['conditions'] = $conditions_text;
}
//房间名称
$room_redpacket_lists[$key]['room_name'] = db::name('vs_room')->where(['id'=>$value['room_id']])->value('room_name');
}
}
$return_data = [
'page' =>$page,
'page_limit' => $page_limit,
'count' => $count,
'lists' => $room_redpacket_lists
];
return V(1,"成功", $return_data);
}
// 获取房间红包详情
public function room_redpacket_detail(){
// 红包ID
$redpacket_id = input('redpacket_id', '');
if(empty($redpacket_id)){
return V(0, "红包ID不能为空");
}
// 获取红包基本信息
$redpacket_info = db::name("redpacket")->where(['id'=>$redpacket_id])->find();
if(!$redpacket_info){
return V(0, "红包不存在");
}
// 获取发红包用户信息
$redpacket_info['nickname'] = db::name('user')->where(['id'=>$redpacket_info['user_id']])->value('nickname');
$redpacket_info['avatar'] = db::name('user')->where(['id'=>$redpacket_info['user_id']])->value('avatar');
$redpacket_info['user_code'] = db::name('user')->where(['id'=>$redpacket_info['user_id']])->value('user_code');
$redpacket_info['createtime_text'] = date('Y-m-d H:i:s', $redpacket_info['createtime']);
$redpacket_info['start_time_text'] = date('Y-m-d H:i:s', $redpacket_info['start_time']);
$redpacket_info['end_time_text'] = date('Y-m-d H:i:s', $redpacket_info['end_time']);
//房间名称
$redpacket_info['room_name'] = db::name('vs_room')->where(['id'=>$redpacket_info['room_id']])->value('room_name');
// 红包状态文字描述
$status_map = [
0 => '未开始',
1 => '进行中',
2 => '已结束',
3 => '已退回'
];
$redpacket_info['status_text'] = $status_map[$redpacket_info['status']] ?? '未知';
// 币种文字描述
$coin_type_map = [
1 => '金币',
2 => '钻石'
];
$redpacket_info['coin_type_text'] = $coin_type_map[$redpacket_info['coin_type']] ?? '未知';
// 红包类型文字描述
$type_map = [
1 => '普通红包',
2 => '口令红包'
];
$redpacket_info['type_text'] = $type_map[$redpacket_info['type']] ?? '未知';
// 领取条件处理
$conditions = explode(',',$redpacket_info['conditions']);
$conditions = array_filter($conditions, function($item) {
return $item !== '' && $item !== null;
});
$conditions = array_unique($conditions);
$conditions = array_values($conditions);
// 特殊处理如果包含条件0无条件则只保留这一项
if (in_array('0', $conditions)) {
$redpacket_info['conditions_text'] = ['无条件'];
} else {
// 将数字条件转换为对应的中文描述
$conditions_text = array_map(function($item){
switch($item) {
case '0':
return '无条件';
case '1':
return '收藏';
case '2':
return '在麦上';
default:
return '未知';
}
}, $conditions);
$redpacket_info['conditions_text'] = $conditions_text;
}
// 领取详情 redpacket_record 表里面的数据
// 外键redpacket_id redpacket表的IDuser_id 外键user表的ID amount 抢到的金额 createtime抢红包的时间
// 红包领取详情 谁在什么时候 抢红包 抢了多少钱
$redpacket_record_lists = db::name("redpacket_record")->where(['redpacket_id'=>$redpacket_id])->order('createtime asc')->select();
if($redpacket_record_lists){
foreach ($redpacket_record_lists as $key => $value){
$redpacket_record_lists[$key]['nickname'] = db::name('user')->where(['id'=>$value['user_id']])->value('nickname');
$redpacket_record_lists[$key]['avatar'] = db::name('user')->where(['id'=>$value['user_id']])->value('avatar');
$redpacket_record_lists[$key]['user_code'] = db::name('user')->where(['id'=>$value['user_id']])->value('user_code');
$redpacket_record_lists[$key]['createtime_text'] = date('Y-m-d H:i:s', $value['createtime']);
}
}
$return_data = [
'redpacket_info' => $redpacket_info,
'record_lists' => $redpacket_record_lists
];
return V(1, "成功", $return_data);
}
} }

View File

@@ -37,10 +37,10 @@ class Statistical extends adminApi
$where['createtime'] = ['>=', strtotime($begin_time)]; $where['createtime'] = ['>=', strtotime($begin_time)];
} }
if($end_time !== ''){ if($end_time !== ''){
$where['createtime'] = ['<=', strtotime($end_time.' 23:59:59')]; $where['createtime'] = ['<=', strtotime($end_time)];
} }
if(!empty($begin_time) && !empty($end_time)){ if(!empty($begin_time) && !empty($end_time)){
$where['createtime'] = ['between',[strtotime($begin_time),strtotime($end_time.' 23:59:59')]]; $where['createtime'] = ['between',[strtotime($begin_time),strtotime($end_time)]];
} }
$where['pay_status'] = 2;//1待支付,2已支付 $where['pay_status'] = 2;//1待支付,2已支付
@@ -112,10 +112,10 @@ class Statistical extends adminApi
$where['createtime'] = ['>=', strtotime($begin_time)]; $where['createtime'] = ['>=', strtotime($begin_time)];
} }
if($end_time !== ''){ if($end_time !== ''){
$where['createtime'] = ['<=', strtotime($end_time.' 23:59:59')]; $where['createtime'] = ['<=', strtotime($end_time)];
} }
if(!empty($begin_time) && !empty($end_time)){ if(!empty($begin_time) && !empty($end_time)){
$where['createtime'] = ['between',[strtotime($begin_time),strtotime($end_time.' 23:59:59')]]; $where['createtime'] = ['between',[strtotime($begin_time),strtotime($end_time)]];
} }
$count = db::name('vs_give_gift') $count = db::name('vs_give_gift')
->where($where) ->where($where)
@@ -177,10 +177,10 @@ class Statistical extends adminApi
$where['createtime'] = ['>=', strtotime($begin_time)]; $where['createtime'] = ['>=', strtotime($begin_time)];
} }
if($end_time !== ''){ if($end_time !== ''){
$where['createtime'] = ['<=', strtotime($end_time.' 23:59:59')]; $where['createtime'] = ['<=', strtotime($end_time)];
} }
if(!empty($begin_time) && !empty($end_time)){ if(!empty($begin_time) && !empty($end_time)){
$where['createtime'] = ['between',[strtotime($begin_time),strtotime($end_time.' 23:59:59')]]; $where['createtime'] = ['between',[strtotime($begin_time),strtotime($end_time)]];
} }
// 1.系统调节 2.充值 3.提现 4.金币转增(送出) 5.每日任务奖励 6.充值返利 7.购买装扮 // 1.系统调节 2.充值 3.提现 4.金币转增(送出) 5.每日任务奖励 6.充值返利 7.购买装扮
// 8.礼盒奖励 9.房间补贴 10.购买礼物 11.收礼增加收益 12.工会补贴 13.转赠金币(接收) 14.收益兑换 // 8.礼盒奖励 9.房间补贴 10.购买礼物 11.收礼增加收益 12.工会补贴 13.转赠金币(接收) 14.收益兑换
@@ -239,10 +239,10 @@ class Statistical extends adminApi
$where['createtime'] = ['>=', strtotime($begin_time)]; $where['createtime'] = ['>=', strtotime($begin_time)];
} }
if($end_time !== ''){ if($end_time !== ''){
$where['createtime'] = ['<=', strtotime($end_time.' 23:59:59')]; $where['createtime'] = ['<=', strtotime($end_time)];
} }
if(!empty($begin_time) && !empty($end_time)){ if(!empty($begin_time) && !empty($end_time)){
$where['createtime'] = ['between',[strtotime($begin_time),strtotime($end_time.' 23:59:59')]]; $where['createtime'] = ['between',[strtotime($begin_time),strtotime($end_time)]];
} }
//不为空 //不为空
$where['from'] = 2; $where['from'] = 2;
@@ -259,9 +259,14 @@ class Statistical extends adminApi
->select(); ->select();
foreach ($lists as $key => $value) { foreach ($lists as $key => $value) {
$room = db::name('vs_room')->where('id', $value['from_id'])->find(); $room = db::name('vs_room')->where('id', $value['from_id'])->find();
if($room){
$lists[$key]['room_name'] = $room['room_name'].'-'.$room['room_number'];
$lists[$key]['room_number'] = $room['room_number'];
}else{
$lists[$key]['room_name'] = "--";
$lists[$key]['room_number'] = "--";
}
$lists[$key]['createtime'] = date('Y-m-d H:i:s', $value['createtime']); $lists[$key]['createtime'] = date('Y-m-d H:i:s', $value['createtime']);
$lists[$key]['room_name'] = $room['room_name'].'-'.$room['room_number'];
$lists[$key]['room_number'] = $room['room_number'];
$lists[$key]['room_cover'] = db::name('vs_room')->where('id', $value['from_id'])->value('room_cover'); $lists[$key]['room_cover'] = db::name('vs_room')->where('id', $value['from_id'])->value('room_cover');
$label = db::name('vs_room')->where('id', $value['from_id'])->value('label_id'); $label = db::name('vs_room')->where('id', $value['from_id'])->value('label_id');
$lists[$key]['label'] = db::name('vs_room_label')->where('id', $label)->value('label_name'); $lists[$key]['label'] = db::name('vs_room_label')->where('id', $label)->value('label_name');
@@ -302,10 +307,10 @@ class Statistical extends adminApi
$where['createtime'] = ['>=', strtotime($pay_stime)]; $where['createtime'] = ['>=', strtotime($pay_stime)];
} }
if($pay_etime !== ''){ if($pay_etime !== ''){
$where['createtime'] = ['<=', strtotime($pay_etime.' 23:59:59')]; $where['createtime'] = ['<=', strtotime($pay_etime)];
} }
if(!empty($pay_stime) && !empty($pay_etime)){ if(!empty($pay_stime) && !empty($pay_etime)){
$where['createtime'] = ['between',[strtotime($pay_stime),strtotime($pay_etime.' 23:59:59')]]; $where['createtime'] = ['between',[strtotime($pay_stime),strtotime($pay_etime)]];
} }
if($pay_status !== ''){ if($pay_status !== ''){
$where['pay_status'] = $pay_status; $where['pay_status'] = $pay_status;
@@ -325,7 +330,7 @@ class Statistical extends adminApi
} }
$count = db::name('vs_user_recharge')->where($where)->count(); $count = db::name('vs_user_recharge')->where($where)->count();
$lists = db::name('vs_user_recharge')->where($where)->page($page, $page_limit)->select(); $lists = db::name('vs_user_recharge')->where($where)->order('rid desc')->page($page, $page_limit)->select();
foreach ($lists as $key => $value) { foreach ($lists as $key => $value) {
$lists[$key]['createtime'] = date('Y-m-d H:i:s', $value['createtime']); $lists[$key]['createtime'] = date('Y-m-d H:i:s', $value['createtime']);
$lists[$key]['user_name'] = db::name('user')->where('id', $value['user_id'])->value('nickname').'-'. $lists[$key]['user_name'] = db::name('user')->where('id', $value['user_id'])->value('nickname').'-'.
@@ -346,19 +351,21 @@ class Statistical extends adminApi
]; ];
//总收入 //总收入
$wherew=[]; $wherew=[];
$return_data['total_money'] = db::name('vs_user_recharge')->sum('money'); unset($where['pay_status']);
unset($where['pay_type']);
$return_data['total_money'] = db::name('vs_user_recharge')->where($where)->sum('money');
//未支付 //未支付
$return_data['unpaid_money'] = db::name('vs_user_recharge')->where('pay_status',1)->sum('money'); $return_data['unpaid_money'] = db::name('vs_user_recharge')->where($where)->where('pay_status',1)->sum('money');
//已支付 //已支付
$return_data['paid_money'] = db::name('vs_user_recharge')->where('pay_status',2)->sum('money'); $return_data['paid_money'] = db::name('vs_user_recharge')->where($where)->where('pay_status',2)->sum('money');
//微信支付 //微信支付
$wherew['pay_type'] = ['in', [1,4]]; $wherew['pay_type'] = ['in', [1,4]];
$return_data['wx_money'] = db::name('vs_user_recharge')->where('pay_status',2)->where($wherew)->sum('money'); $return_data['wx_money'] = db::name('vs_user_recharge')->where($where)->where('pay_status',2)->where($wherew)->sum('money');
//支付宝支付 //支付宝支付
$wherez['pay_type'] = ['in', [2,3]]; $wherez['pay_type'] = ['in', [2,3]];
$return_data['ali_money'] = db::name('vs_user_recharge')->where('pay_status',2)->where($wherez)->sum('money'); $return_data['ali_money'] = db::name('vs_user_recharge')->where($where)->where('pay_status',2)->where($wherez)->sum('money');
//金币数量 //金币数量
$return_data['gold_num'] = db::name('vs_user_recharge')->where('pay_status',2)->sum('coin'); $return_data['gold_num'] = db::name('vs_user_recharge')->where($where)->where('pay_status',2)->sum('coin');
return V(1,"成功", $return_data); return V(1,"成功", $return_data);
} }
@@ -383,15 +390,16 @@ class Statistical extends adminApi
$where['a.createtime'] = ['>=', strtotime($start_time)]; $where['a.createtime'] = ['>=', strtotime($start_time)];
} }
if($end_time !== ''){ if($end_time !== ''){
$where['a.createtime'] = ['<=', strtotime($end_time.' 23:59:59')]; $where['a.createtime'] = ['<=', strtotime($end_time)];
} }
if($start_time !== '' && $end_time !== ''){ if($start_time !== '' && $end_time !== ''){
$where['a.createtime'] = ['between', [strtotime($start_time), strtotime($end_time.' 23:59:59')]]; $where['a.createtime'] = ['between', [strtotime($start_time), strtotime($end_time)]];
} }
$count = db::name('user_exchange')->where($where)->alias('a')->join('user b', 'a.user_id = b.id')->count(); $count = db::name('user_exchange')->where($where)->alias('a')->join('user b', 'a.user_id = b.id')->count();
$lists = db::name('user_exchange')->where($where)->alias('a')->join('user b', 'a.user_id = b.id') $lists = db::name('user_exchange')->where($where)->alias('a')->join('user b', 'a.user_id = b.id')
->field('a.*,b.nickname,b.user_code') ->field('a.*,b.nickname,b.user_code')
->order('a.id desc')
->page($page, $page_limit)->select(); ->page($page, $page_limit)->select();
foreach ($lists as $key => $value) { foreach ($lists as $key => $value) {
$lists[$key]['user_name'] = $value['nickname'].'-'.$value['user_code']; $lists[$key]['user_name'] = $value['nickname'].'-'.$value['user_code'];
@@ -428,10 +436,10 @@ class Statistical extends adminApi
$where['a.createtime'] = ['>=', strtotime($start_time)]; $where['a.createtime'] = ['>=', strtotime($start_time)];
} }
if($end_time !== ''){ if($end_time !== ''){
$where['a.createtime'] = ['<=', strtotime($end_time.' 23:59:59')]; $where['a.createtime'] = ['<=', strtotime($end_time)];
} }
if($start_time !== '' && $end_time !== ''){ if($start_time !== '' && $end_time !== ''){
$where['a.createtime'] = ['between', [strtotime($start_time), strtotime($end_time.' 23:59:59')]]; $where['a.createtime'] = ['between', [strtotime($start_time), strtotime($end_time)]];
} }
$count = db::name('vs_admin_recharge_log') $count = db::name('vs_admin_recharge_log')
->alias('a')->join('user b', 'a.user_id = b.id') ->alias('a')->join('user b', 'a.user_id = b.id')

View File

@@ -33,6 +33,7 @@ class SysSet extends adminApi
'8' => '房间配置', '8' => '房间配置',
'9' => '弹窗内容设置', '9' => '弹窗内容设置',
'10' => '邀请奖励', '10' => '邀请奖励',
'11' => '二级密码',
]; ];
public function _initialize() public function _initialize()

View File

@@ -159,7 +159,7 @@ class Underage extends adminApi
*/ */
public function content_List(){ public function content_List(){
$page = input('page', 1); $page = input('page', 1);
$page_limit = input('pageSize', 30); $page_limit = input('page_limit', 10);
$search_name = input('search_name', ''); $search_name = input('search_name', '');
$where = []; $where = [];
if($search_name){ if($search_name){
@@ -167,6 +167,7 @@ class Underage extends adminApi
} }
$list = DB::name('vs_underage_mode_content')->where($where)->order('sort,id', 'asc')->page($page, $page_limit)->select(); $list = DB::name('vs_underage_mode_content')->where($where)->order('sort,id', 'asc')->page($page, $page_limit)->select();
$count = DB::name('vs_underage_mode_content')->where($where)->count(); $count = DB::name('vs_underage_mode_content')->where($where)->count();
$return_lists = [];
foreach ($list as $key => $value) { foreach ($list as $key => $value) {
$return_lists[$key]['id'] = $value['id']; $return_lists[$key]['id'] = $value['id'];
$return_lists[$key]['type_id'] = $value['type_id']; $return_lists[$key]['type_id'] = $value['type_id'];
@@ -266,7 +267,7 @@ class Underage extends adminApi
$type_id = input('type_id', ''); $type_id = input('type_id', '');
$title = input('title', ''); $title = input('title', '');
$introduced = input('introduced', ''); $introduced = input('introduced', '');
$content = input('content', ''); $content = $_POST['content']??"";
$url = input('url', ''); $url = input('url', '');
$img = input('img', ''); $img = input('img', '');
$from = input('from', 1); $from = input('from', 1);
@@ -303,9 +304,6 @@ class Underage extends adminApi
$data['content'] = $content; $data['content'] = $content;
} }
$result = db::name('vs_underage_mode_content')->where(['id'=>$id])->update($data); $result = db::name('vs_underage_mode_content')->where(['id'=>$id])->update($data);
if(!$result){
return V(0,"修改失败");
}
return V(1,"成功", ['id'=>$id]); return V(1,"成功", ['id'=>$id]);
} }
} }

View File

@@ -4,6 +4,7 @@ namespace app\adminapi\controller;
use app\admin\model\AdminLog; use app\admin\model\AdminLog;
use app\common\controller\Upload; use app\common\controller\Upload;
use Overtrue\Pinyin\Pinyin;
use think\Request; use think\Request;
/** /**
@@ -32,7 +33,25 @@ class UploadFile extends Upload
try { try {
// 获取临时路径和原始文件名 // 获取临时路径和原始文件名
$filePath = $file->getRealPath(); $filePath = $file->getRealPath();
$objectName = $file->getInfo('name'); $originalName = $file->getInfo('name');
// 提取文件扩展名
$extension = pathinfo($originalName, PATHINFO_EXTENSION);
// 处理文件名(中文转拼音) 移除扩展名(如果有的话)
$fileName = pathinfo($originalName, PATHINFO_FILENAME);
if (preg_match('/[\x{4e00}-\x{9fa5}]+/u', $fileName)) {
$pinyin = new Pinyin();
$fileName = $pinyin->permalink($fileName, ''); // 转换为无分隔符的拼音
}
// 去除文件名中的空格
$fileName = str_replace(' ', '', $fileName);
// 添加唯一标识符(时间戳+随机数)
$uniqueId = time() . mt_rand(1000, 9999);
$objectName = $fileName . '_' . $uniqueId . '.' . $extension;
// 调用父类方法上传到 OSS // 调用父类方法上传到 OSS
$result = $this->uploadFile($objectName, $filePath); $result = $this->uploadFile($objectName, $filePath);
if (!$result) { if (!$result) {

View File

@@ -74,8 +74,8 @@ class User extends adminApi
}elseif($v=='coin2'){ }elseif($v=='coin2'){
$where['c.coin'] = ['<=',$input_data]; $where['c.coin'] = ['<=',$input_data];
}elseif($v=='createtime'){ }elseif($v=='createtime'){
$where['a.createtime'] = ['>=',strtotime($input_data.' 00:00:00')]; $where['a.createtime'] = ['>=',strtotime($input_data)];
$where['a.createtime'] = ['<=',strtotime($input_data.' 23:59:59')]; $where['a.createtime'] = ['<=',strtotime($input_data)];
}else{ }else{
$where['a.'.$v] = $input_data; $where['a.'.$v] = $input_data;
} }
@@ -231,7 +231,8 @@ class User extends adminApi
'type' => $type, 'type' => $type,
'type_text' => $type_text, 'type_text' => $type_text,
]; ];
$res = Db::name('block')->where($map)->delete(); Db::name('block')->where($map)->delete();
Db::name('sms_error')->where(['mobile' => $user_info['mobile']])->delete();
} }
return V(1,"成功", null); return V(1,"成功", null);
} }
@@ -735,7 +736,12 @@ class User extends adminApi
* 用户列表 * 用户列表
*/ */
public function get_user_list(){ public function get_user_list(){
$user = db::name('user')->field('id,nickname,avatar')->where(['status'=>1,'is_robot'=>0,'delete_time'=>0])->select(); $user_code = input('user_code', 0);
$where = [];
if($user_code){
$where['user_code'] = $user_code;
}
$user = db::name('user')->field('id,nickname,avatar')->where($where)->where(['status'=>1,'is_robot'=>0,'delete_time'=>0])->select();
return V(1,"操作成功", $user); return V(1,"操作成功", $user);
} }
} }

View File

@@ -69,7 +69,7 @@ class Version extends adminApi
$version = input('version', ''); $version = input('version', '');
$type = input('type', ''); $type = input('type', '');
$downloadurl = input('downloadurl', ''); $downloadurl = input('downloadurl', '');
$content = input('content', ''); $content = $_POST['content'] ?? '';
$enforce = input('enforce', ''); $enforce = input('enforce', '');
$version_code = input('version_code', ''); $version_code = input('version_code', '');
$status = input('status', 1); $status = input('status', 1);
@@ -101,7 +101,7 @@ class Version extends adminApi
$version = input('version', ''); $version = input('version', '');
$type = input('type', ''); $type = input('type', '');
$downloadurl = input('downloadurl', ''); $downloadurl = input('downloadurl', '');
$content = input('content', ''); $content = $_POST['content'] ?? '';
$enforce = input('enforce', ''); $enforce = input('enforce', '');
$version_code = input('version_code', ''); $version_code = input('version_code', '');
$status = input('status', 1); $status = input('status', 1);

View File

@@ -60,10 +60,10 @@ class Withdrawal extends adminApi
$where['a.createtime'] = ['>=', strtotime($search_stime)]; $where['a.createtime'] = ['>=', strtotime($search_stime)];
} }
if($search_etime !== ''){ if($search_etime !== ''){
$where['a.createtime'] = ['<=', strtotime($search_etime.' 23:59:59')]; $where['a.createtime'] = ['<=', strtotime($search_etime)];
} }
if(!empty($search_stime) && !empty($search_etime)){ if(!empty($search_stime) && !empty($search_etime)){
$where['a.createtime'] = ['between',[strtotime($search_stime),strtotime($search_etime.' 23:59:59')]]; $where['a.createtime'] = ['between',[strtotime($search_stime),strtotime($search_etime)]];
} }
$count = db::name('vs_user_withdrawal')->alias('a') $count = db::name('vs_user_withdrawal')->alias('a')
->join('user b', 'a.user_id = b.id', 'left') ->join('user b', 'a.user_id = b.id', 'left')
@@ -75,6 +75,7 @@ class Withdrawal extends adminApi
->field('a.*,b.nickname,b.user_code') ->field('a.*,b.nickname,b.user_code')
->order('a.createtime desc') ->order('a.createtime desc')
->where($where) ->where($where)
->page($page, $page_limit)
->select(); ->select();
$data_lists = []; $data_lists = [];
foreach ($lists as $key => $value) { foreach ($lists as $key => $value) {
@@ -255,19 +256,23 @@ class Withdrawal extends adminApi
//查询该用户云账户提现金额 //查询该用户云账户提现金额
$had_money = db::name('vs_user_withdrawal')->where(['user_id'=>$withdraw_info['user_id'],'deal_type'=>2,'status'=>6])->where('pay_time','month')->sum('general_money'); $had_money = db::name('vs_user_withdrawal')->where(['user_id'=>$withdraw_info['user_id'],'deal_type'=>2,'status'=>6])->where('pay_time','month')->sum('general_money');
$max_month_money = 98000; $max_month_money = 98000;
if(($had_money+$withdraw_info['general_money']) >= 98000){ if(($had_money+$withdraw_info['general_money']) >= $max_month_money){
return ['code' => 0, 'msg' => '单人单月云账户提现金额最大为98000元!', 'data' => null]; return ['code' => 0, 'msg' => '单人单月云账户提现金额最大为98000元!', 'data' => null];
} }
//查询该用户信息 //查询该用户信息
$user_info = model('api/user')->get_user_info($withdraw_info['user_id']); $user_info = model('api/user')->get_user_info($withdraw_info['user_id'], ['user','user_auth']);
if(empty($user_info)){ if(empty($user_info)){
return ['code' => 0, 'msg' => '用户信息错误!', 'data' => null]; return ['code' => 0, 'msg' => '用户信息错误!', 'data' => null];
} }
$real_name = $user_info['real_name']; $real_name = $user_info['real_name'];
$id_card = $user_info['card_id']; $id_card = $user_info['card_id'];
$order_id = $withdraw_info['order_sn']; $order_id = $withdraw_info['order_sn'];
$order_amount = $withdraw_info['general_money']; $order_amount = $withdraw_info['general_money'];
$phone = $user_info['mobile']; $phone = $user_info['mobile'];
if(empty($phone)) {
return ['code' => 0, 'msg' => '请先绑定手机号', 'data' => null];
}
if (empty($real_name) || empty($id_card)) { if (empty($real_name) || empty($id_card)) {
return ['code' => 0, 'msg' => '请先实名认证', 'data' => null]; return ['code' => 0, 'msg' => '请先实名认证', 'data' => null];
} }
@@ -281,7 +286,11 @@ class Withdrawal extends adminApi
} }
$card_no = $user_info['alipay_account']; $card_no = $user_info['alipay_account'];
$yun_pay = new YunPay($order_id, $real_name, $id_card, $card_no, $order_amount,$phone); $yun_pay = new YunPay($order_id, $real_name, $id_card, $card_no, $order_amount,$phone);
$result = $yun_pay->alipay(); $user_data = [
'nickname' => $user_info['nickname'],
'user_id' => $withdraw_info['user_id'],
];
$result = $yun_pay->alipay($user_data);
} elseif ($withdraw_info['type'] == 3) { } elseif ($withdraw_info['type'] == 3) {
if(empty($user_info['bank_card_number'])){ if(empty($user_info['bank_card_number'])){
return ['code' => 0, 'msg' => '请先绑定银行卡号', 'data' => null]; return ['code' => 0, 'msg' => '请先绑定银行卡号', 'data' => null];

View File

@@ -85,7 +85,7 @@ class Guild extends Model
->alias('g') ->alias('g')
->join('vs_guild gg','g.guild_id = gg.id') ->join('vs_guild gg','g.guild_id = gg.id')
->field('gg.*') ->field('gg.*')
->where(['g.user_id' => $user_id]) ->where(['g.user_id' => $user_id,'g.status' => 1,'g.delete_time' => 0])
->find(); ->find();
return $guild; return $guild;
} }
@@ -95,31 +95,29 @@ class Guild extends Model
*工会当日流水 *工会当日流水
*/ */
public function getTodayMoney($guild_id,$stoday="",$etoday=""){ public function getTodayMoney($guild_id,$stoday="",$etoday=""){
$where = [];
if(empty($stoday) && empty($etoday)){
$stoday = strtotime(date('Y-m-d 00:00:00'));
$etoday = strtotime(date('Y-m-d 23:59:59'));
$where['createtime'] = ['between', [$stoday, $etoday]];
}else{
if(!empty($stoday)){
$where['createtime'] = ['>=', strtotime($stoday."00:00:00")];
}
if(!empty($etoday)){
$where['createtime'] = ['<=', strtotime($etoday." 23:59:59")];
}
if(!empty($stoday) && !empty($etoday)){
$where['createtime'] = ['between', [strtotime($stoday." 00:00:00"), strtotime($etoday." 23:59:59")]];
}
}
//获取所有工会房间ID //获取所有工会房间ID
$room_ids = db::name('vs_guild_user')->where('guild_id', $guild_id)->field('room_id')->select(); $guild_user_data = db::name('vs_guild_user')->where('guild_id', $guild_id)->field('room_id,createtime,quit_time')->select();
$room_ids = array_column($room_ids, 'room_id'); $transaction = 0;
$transaction = db::name('vs_give_gift') foreach ($guild_user_data as $k => $v) {
->whereIn('from_id',$room_ids) if(empty($stoday) && empty($etoday)){
->where(['from'=>['in',[2,3,6]]]) $stoday_seach = strtotime(date('Y-m-d 00:00:00',time()));
->where($where) $etoday_seach = strtotime(date('Y-m-d 23:59:59',time()));
->sum('total_price'); }else{
$stoday_seach = strtotime($stoday);
$etoday_seach = strtotime($etoday);
}
if($v['createtime'] && $stoday_seach < $v['createtime']){
$stoday_seach = $v['createtime'];
}
if($v['quit_time'] && ($etoday > $v['quit_time'])){
$etoday_seach = $v['quit_time'];
}
$transaction_one = db::name('vs_give_gift')
->where('from_id',$v['room_id'])
->where(['from'=>['in',[2,3,6]],'createtime' => ['between', [$stoday_seach, $etoday_seach]]])
->sum('total_price');
$transaction += $transaction_one;
}
return $transaction; return $transaction;
} }

View File

@@ -75,19 +75,37 @@ class Room extends Model
$give_where['from_id'] = $room_id; $give_where['from_id'] = $room_id;
$give_where['from'] = ["in",[2,3,6]]; $give_where['from'] = ["in",[2,3,6]];
if(!empty($stime)){ if(!empty($stime)){
$give_where['createtime'] = ['>=',strtotime($stime.' 00:00:00')]; $give_where['createtime'] = ['>=',strtotime($stime)];
} }
if(!empty($etime)){ if(!empty($etime)){
$give_where['createtime'] = ['<=',strtotime($etime.' 23:59:59')]; $give_where['createtime'] = ['<=',strtotime($etime)];
} }
if(!empty($stime) && !empty($etime)){ if(!empty($stime) && !empty($etime)){
$give_where['createtime'] = ['between',[strtotime($stime.' 00:00:00'),strtotime($etime.' 23:59:59')]]; $give_where['createtime'] = ['between',[strtotime($stime),strtotime($etime)]];
} }
$total_price = db::name('vs_give_gift')->where($give_where) $total_price = db::name('vs_give_gift')->where($give_where)
->sum('total_price'); ->sum('total_price');
return $total_price; return $total_price;
} }
/*
* 房间绑定盘
*/
public function bindPan($room_id){
db::name('vs_room_pan')->where(['room_id'=>$room_id])->delete();
$gift_bag = db::name('vs_gift_bag_detail')->where(['gift_bag_id'=>['in',[10,11,12,13]]])->select();
foreach ($gift_bag as $k=>$v){
$data = [
'room_id'=>$room_id,
'gift_bag_id'=>$v['gift_bag_id'],
'gift_bag_detail_id'=>$v['id'],
'remaining_number'=>$v['quantity'],
'createtime'=>time()
];
db::name('vs_room_pan')->insert($data);
}
return ['code' => 1, 'msg' => '成功', 'data' => null];
}
} }

View File

@@ -32,6 +32,7 @@ class Activities extends BaseCom
$data['name'] = $activities_title??""; $data['name'] = $activities_title??"";
$data['gift_bag'] = []; $data['gift_bag'] = [];
foreach ($gift_bag as $k=>$v){ foreach ($gift_bag as $k=>$v){
$data['gift_bag'][$k]['gift_bag_id'] = $v['id']??0;
$data['gift_bag'][$k]['name'] = $v['title']??""; $data['gift_bag'][$k]['name'] = $v['title']??"";
$ext = json_decode($v['ext'],true); $ext = json_decode($v['ext'],true);
$data['gift_bag'][$k]['title1'] = $ext['title1']??""; $data['gift_bag'][$k]['title1'] = $ext['title1']??"";
@@ -49,11 +50,13 @@ class Activities extends BaseCom
$list[$kk]['base_image'] = localpath_to_netpath("static/image/icon/gold.png"); $list[$kk]['base_image'] = localpath_to_netpath("static/image/icon/gold.png");
}elseif ($vv['type'] == 2) { }elseif ($vv['type'] == 2) {
$gift = DB::name('vs_gift')->where(['gid'=>$vv['foreign_id']])->find(); $gift = DB::name('vs_gift')->where(['gid'=>$vv['foreign_id']])->find();
$list[$kk]['gift_name'] = $gift['gift_name']; if($gift){
$list[$kk]['num'] = $vv['quantity']; $list[$kk]['gift_name'] = $gift['gift_name'];
$list[$kk]['gift_price'] = $gift['gift_price']; $list[$kk]['num'] = $vv['quantity'];
$list[$kk]['type'] =2; $list[$kk]['gift_price'] = $gift['gift_price'];
$list[$kk]['base_image'] = $gift['base_image']; $list[$kk]['type'] =2;
$list[$kk]['base_image'] = $gift['base_image'];
}
} elseif ($vv['type'] == 3) { } elseif ($vv['type'] == 3) {
$decorate_price = DB::name('vs_decorate_price')->where(['id'=>$vv['foreign_id']])->find(); $decorate_price = DB::name('vs_decorate_price')->where(['id'=>$vv['foreign_id']])->find();
if($decorate_price){ if($decorate_price){
@@ -85,8 +88,8 @@ class Activities extends BaseCom
$uid = input('uid',$this->uid); $uid = input('uid',$this->uid);
$permission_status = 1; $permission_status = 1;
//查询是否首充 //查询是否首充
$is_first_charge = db::name('vs_user_money_log')->where('user_id',$uid)->where('change_type',2)->where('money_type',1)->count(); $is_first_charge = db::name('vs_user_money_log')->where('user_id',$uid)->where('change_type',2)->where('money_type',1)->where(['createtime'=>['>=',"1760666400"]])->count();
$permission = DB::name('vs_activities_receive')->where(['activities_id'=>$activities_id,'user_id'=>$uid])->find(); $permission = DB::name('vs_activities_receive')->where(['activities_id'=>$activities_id,'user_id'=>$uid])->where(['createtime'=>['>=',"1760666400"]])->find();
$system = request()->header('system'); $system = request()->header('system');
$app_version = request()->header('App-Version'); $app_version = request()->header('App-Version');
if(!$app_version){ if(!$app_version){
@@ -127,46 +130,51 @@ class Activities extends BaseCom
//礼包 //礼包
$gift_bag = DB::name('vs_gift_bag')->where(['activities_id'=>$activities_id,'status'=>1])->find(); $gift_bag = DB::name('vs_gift_bag')->where(['activities_id'=>$activities_id,'status'=>1])->find();
$data = []; $data = [];
$data['gift_bag_id'] = $gift_bag['id']??0;
$data['name'] = $activities['title']??""; $data['name'] = $activities['title']??"";
$data['bag_name'] = $gift_bag['title']??""; $data['bag_name'] = $gift_bag['title']??"";
$data['effective_time'] = $activities['effective_time']??""; $data['effective_time'] = $activities['effective_time']??"";
//规则 //规则
$data['rule'] = get_system_config_value('web_site')."/api/Page/page_show?id=13"; $data['rule'] = get_system_config_value('web_site')."/api/Page/page_show?id=13";
$ext = json_decode($gift_bag['ext'],true); $ext = json_decode($gift_bag['ext'],true);
$data['money'] = $ext['money']; $data['money'] = $gift_bag['money'];
$data['counter']['counter'] = $ext['counter']; $data['counter'] = $ext['counter'];
$data['counter']['money'] = $ext['money_str']; $data['money_str'] = $ext['money_str'];
$data['counter']['diamond'] = $ext['diamond']; $data['diamond'] = $ext['diamond'];
$data['effective_time'] = $ext['activity_end_time']??"";
if(strtotime($ext['activity_end_time']) < time()){
return V(0,'活动已结束!',null);
}
$detail = DB::name('vs_gift_bag_detail')->where(['gift_bag_id'=>$gift_bag['id']])->select(); $detail = DB::name('vs_gift_bag_detail')->where(['gift_bag_id'=>$gift_bag['id']])->select();
$data['gift_list'] = []; $data['gift_list'] = [];
foreach ($detail as $k=>$v){ foreach ($detail as $k=>$v){
if($v['type'] == 1){ if($v['type'] == 1){
$list[$k]['name'] = "金币"; $list[$k]['gift_name'] = "金币";
$list[$k]['num'] = $v['gold']; $list[$k]['num'] = $v['gold'];
$list[$k]['gold'] = $v['gold']; $list[$k]['gift_price'] = $v['gold'];
$list[$k]['type'] = 1; $list[$k]['type'] = 1;
$list[$k]['icon'] = localpath_to_netpath("static/image/icon/gold.png"); $list[$k]['base_image'] = localpath_to_netpath("static/image/icon/gold.png");
}elseif($v['type'] == 2) { }elseif($v['type'] == 2) {
$gift = DB::name('vs_gift')->where(['gid'=>$v['foreign_id']])->find(); $gift = DB::name('vs_gift')->where(['gid'=>$v['foreign_id']])->find();
$list[$k]['name'] = $gift['gift_name']; $list[$k]['gift_name'] = $gift['gift_name'];
$list[$k]['num'] = $v['quantity']; $list[$k]['num'] = $v['quantity'];
$list[$k]['gold'] = $gift['gift_price']; $list[$k]['gift_price'] = $gift['gift_price'];
$list[$k]['type'] =2; $list[$k]['type'] =2;
$list[$k]['icon'] = $gift['play_image']; $list[$k]['base_image'] = $gift['base_image'];
} elseif($v['type'] == 3) { } elseif($v['type'] == 3) {
$decorate_price = DB::name('vs_decorate_price')->where(['id'=>$v['foreign_id']])->find(); $decorate_price = DB::name('vs_decorate_price')->where(['id'=>$v['foreign_id']])->find();
$gift = DB::name('vs_decorate')->where(['did'=>$decorate_price['did']])->find(); $gift = DB::name('vs_decorate')->where(['did'=>$decorate_price['did']])->find();
$list[$k]['name'] = $gift['title']; //装扮名称 $list[$k]['gift_name'] = $gift['title']; //装扮名称
$list[$k]['num'] = $decorate_price['day']; //天数 $list[$k]['num'] = $decorate_price['day']; //天数
$list[$k]['gold'] = $decorate_price['price']; //价格 $list[$k]['gift_price'] = $decorate_price['price']; //价格
$list[$k]['type'] =3; $list[$k]['type'] =3;
$list[$k]['icon'] = $gift['base_image']; $list[$k]['base_image'] = $gift['base_image'];
}elseif($v['type'] == 4) { }elseif($v['type'] == 4) {
$list[$k]['name'] = "钻石"; $list[$k]['gift_name'] = "钻石";
$list[$k]['num'] = $v['quantity']; $list[$k]['num'] = $v['quantity'];
$list[$k]['gold'] = $v['gold']; $list[$k]['gift_price'] = $v['gold'];
$list[$k]['type'] = 4; $list[$k]['type'] = 4;
$list[$k]['icon'] = localpath_to_netpath("static/image/icon/gold.png"); $list[$k]['base_image'] = localpath_to_netpath("static/image/icon/gold.png");
} }
} }
$data['gift_list'] = $list; $data['gift_list'] = $list;
@@ -177,20 +185,183 @@ class Activities extends BaseCom
{ {
$activities_id = 3;//天降好礼 $activities_id = 3;//天降好礼
$uid = input('uid',$this->uid); $uid = input('uid',$this->uid);
$permission = DB::name('vs_activities_receive')->where(['activities_id'=>$activities_id,'user_id'=>$uid])->find(); //礼包
if($permission){ $gift_bag = DB::name('vs_gift_bag')->where(['activities_id'=>3,'status'=>1])->find();
return V(1,'操作成功', ['permission'=>0]); $permission = 0;
}else{ if($gift_bag){
return V(1,'操作成功', ['permission'=>1]); $ext = json_decode($gift_bag['ext'],true);
if($ext['activity_end_time'] <= time()){
$permission = 1;
}
} }
return V(1,'操作成功', ['permission'=>$permission]);
} }
//天降好礼发放 //天降好礼发放
public function drop_gift_send() public function drop_gift_send()
{ {
$uid = input('uid',$this->uid); $uid = input('uid',$this->uid);
$reslut = model('Activities')->drop_gift_send($uid); $reslut = model('Activities')->drop_gift_send($uid,16);
return V($reslut['code'],$reslut['msg'], $reslut['data']); return V($reslut['code'],$reslut['msg'], $reslut['data']);
} }
//新人好礼
public function new_charge_gift()
{
//活动信息
$activities_id = 7;
$activities_title = DB::name('vs_activities')->where(['id'=>$activities_id,'status'=>1,'delete_time'=>0])->value('title');
//礼包
$gift_bag = DB::name('vs_gift_bag')->where(['activities_id'=>$activities_id,'status'=>1])->select();
$data = [];
$data['name'] = $activities_title??"";
$data['gift_bag'] = [];
//一键领取
$bag_receive_all = DB::name('vs_gift_bag_receive_log')->where(['gift_bag_id'=>17,'user_id'=>$this->uid])->find();
foreach ($gift_bag as $k=>$v){
$data['gift_bag'][$k]['gift_bag_id'] = $v['id']??0;
$data['gift_bag'][$k]['name'] = $v['title']??"";
$ext = json_decode($v['ext'],true);
$data['gift_bag'][$k]['title1'] = $ext['title1']??"";
$data['gift_bag'][$k]['title2'] = $ext['title2']??"";
$data['gift_bag'][$k]['money'] = $ext['money'];
$data['gift_bag'][$k]['gift_list'] = [];
$detail = DB::name('vs_gift_bag_detail')->where(['gift_bag_id'=>$v['id']])->select();
$list = [];
foreach ($detail as $kk=>$vv){
if($vv['type'] == 1){
$list[$kk]['gift_name'] = "金币";
$list[$kk]['num'] = $vv['quantity'];
$list[$kk]['gift_price'] = $vv['gold'];
$list[$kk]['type'] = 1;
$list[$kk]['base_image'] = localpath_to_netpath("static/image/icon/gold.png");
}elseif ($vv['type'] == 2) {
$gift = DB::name('vs_gift')->where(['gid'=>$vv['foreign_id']])->find();
if($gift){
$list[$kk]['gift_name'] = $gift['gift_name'];
$list[$kk]['num'] = $vv['quantity'];
$list[$kk]['gift_price'] = $gift['gift_price'];
$list[$kk]['type'] =2;
$list[$kk]['base_image'] = $gift['base_image'];
}
} elseif ($vv['type'] == 3) {
$decorate_price = DB::name('vs_decorate_price')->where(['id'=>$vv['foreign_id']])->find();
if($decorate_price){
$gift = DB::name('vs_decorate')->where(['did'=>$decorate_price['did']])->find();
$list[$kk]['gift_name'] = $gift['title']??""; //装扮名称
$list[$kk]['num'] = $decorate_price['day']??0; //天数
$list[$kk]['gift_price'] = $decorate_price['price']??0; //价格
$list[$kk]['type'] =3;
$list[$kk]['base_image'] = $gift['base_image'] ?? "";
}
}elseif ($vv['type'] == 4) {
$list[$kk]['gift_name'] = "钻石";
$list[$kk]['num'] = $vv['quantity'];
$list[$kk]['gift_price'] = $vv['gold'];
$list[$kk]['type'] = 4;
$list[$kk]['base_image'] = localpath_to_netpath("static/image/icon/diamond.png");
}
}
$data['gift_bag'][$k]['gift_list'] = array_values($list);
if($bag_receive_all){
$data['gift_bag'][$k]['status'] = 0;
}else{
if($v['id']!=17){
$bag_receive_log = DB::name('vs_gift_bag_receive_log')->where(['gift_bag_id'=>$v['id'],'user_id'=>$this->uid])->find();
if($bag_receive_log){
$data['gift_bag'][$k]['status'] = 0;
} else {
$data['gift_bag'][$k]['status'] = 1;
}
}
}
}
return V(1,'操作成功', $data);
}
//新人好礼发放
public function new_charge_gift_receive()
{
$uid = input('uid',$this->uid);
$money = input('money',0);
$reslut = model('Activities')->new_charge_gift_send($uid,$money);
return V($reslut['code'],$reslut['msg'], $reslut['data']);
}
/*
* 活动权限
*/
public function activities_permission(){
$system = request()->header('system');
$app_version = request()->header('App-Version');
if(!$app_version){
$app_version = input('App-Version');
}
$api_version = 0;
if ($system == 'iOS') {
$api_versions = db::name('version')->where(['type' => 2, 'status' => 1])->order('id', 'desc')->find();
$result = version_compare($api_versions['oldversion'],$app_version);
if ($result < 0) {
$api_version = 1;
}
}
//首充
$activities_id = 1;
$uid = input('uid',$this->uid);
$first_charge_permission = 1;
//查询是否首充
$is_first_charge = db::name('vs_user_money_log')->where('user_id',$uid)->where('change_type',2)->where('money_type',1)->where(['createtime'=>['>=',"1760666400"]])->count();
$permission = DB::name('vs_activities_receive')->where(['activities_id'=>$activities_id,'user_id'=>$uid])->where(['createtime'=>['>=',"1760666400"]])->find();
if($is_first_charge > 0){
$first_charge_permission = 0;
}
if($permission){
$first_charge_permission = 0;
}
//天降好礼
$gift_bag = DB::name('vs_gift_bag')->where(['activities_id'=>3,'status'=>1])->find();
$day_drop_permission = 0;
if($gift_bag){
$ext = json_decode($gift_bag['ext'],true);
if(strtotime($ext['activity_end_time']) >= time()){
$day_drop_permission = 1;
}
}
//新人充值好礼
$activities = DB::name('vs_activities')->where(['id'=>7,'status'=>1,'delete_time'=>0])->find();
if($activities){
$effective_time = $activities['effective_time'];
}else{
$effective_time = 0;
}
$bag_data = DB::name('vs_gift_bag')->where(['activities_id'=>7,'status'=>1,'delete_time'=>0])->select();
$bag_receive_log = DB::name('vs_gift_bag_receive_log')->where(['gift_bag_id'=>['in',array_column($bag_data,'id')],'user_id'=>$uid])->select();
$new_permission = 0;
$user_info = DB::name('user')->where(['id'=>$uid])->find();
if($user_info['createtime']<"1760666400"){
$user_info['createtime'] = 1760666400;
}
if($user_info['createtime'] + $effective_time >= time()){
$new_permission = 1;
}
$gift_bag_log_ids = array_column($bag_receive_log,'gift_bag_id');
if(in_array(17,$gift_bag_log_ids)){
$new_permission = 0;
}else{
$gift_bag_log_ids = array_intersect([14,15,16],$gift_bag_log_ids);
if(count($gift_bag_log_ids) == 3){
$new_permission = 0;
}
}
return V(1,'操作成功',[
'first_charge_permission'=>$first_charge_permission,
'day_drop_permission'=>$day_drop_permission,
'n_people_permission'=>$new_permission
],$api_version);
}
} }

View File

@@ -6,7 +6,7 @@ use think\Controller;
use think\Db; use think\Db;
use think\Log; use think\Log;
class Ceshi extends Controller class Ceshi extends Controllers
{ {
//设置白名单ip访问本类接口 //设置白名单ip访问本类接口
protected $allowIp = [ protected $allowIp = [
@@ -150,7 +150,7 @@ class Ceshi extends Controller
//清空数据 禁用 慎用 //清空数据 禁用 慎用
//清空数据 禁用 慎用 //清空数据 禁用 慎用
//清空数据 禁用 慎用 //清空数据 禁用 慎用
public function clear_data() public function qing_chu_data()
{ {
//ip //ip
$ip = request()->ip(); $ip = request()->ip();
@@ -211,17 +211,17 @@ class Ceshi extends Controller
$user = db::name('user')->where('id','>', 0)->select(); $user = db::name('user')->where('id','>', 0)->select();
if($user){ // if($user){
foreach ($user as &$v){ // foreach ($user as &$v){
if($v['id']){ // if($v['id']){
$j = 0; // $j = 0;
$data[$j] = [ // $data[$j] = [
'UserID' => 'u'.$v['id'], // 'UserID' => 'u'.$v['id'],
]; // ];
} // }
model('Tencent')->account_deletes($data); // // model('Tencent')->account_deletes($data);
} // }
} // }
$reslut9 = db::name('user')->where('id','>', 0)->delete(); $reslut9 = db::name('user')->where('id','>', 0)->delete();
if($reslut9){ if($reslut9){
@@ -458,9 +458,9 @@ class Ceshi extends Controller
//删除腾讯房间 //删除腾讯房间
$room = db::name('vs_room')->select(); $room = db::name('vs_room')->select();
foreach ($room as &$value){ // foreach ($room as &$value){
model('Tencent')->delete_group('room'.$value['id']); // // model('Tencent')->delete_group('room'.$value['id']);
} // }
$reslut35 = db::name('vs_room')->where('id','>', 0)->delete(); $reslut35 = db::name('vs_room')->where('id','>', 0)->delete();
if($reslut35){ if($reslut35){
$i++ ; $i++ ;
@@ -772,7 +772,63 @@ class Ceshi extends Controller
//数组末尾添加元素 //数组末尾添加元素
array_push($res, '财富等级日志删除失败!'); array_push($res, '财富等级日志删除失败!');
} }
$reslut68 = db::name('vs_user_friending')->where('id','>', 0)->delete();
if($reslut68){
$i++ ;
}else{
//数组末尾添加元素
array_push($res, '用户好友删除失败!');
}
$reslut69 = db::name('vs_user_friending_heart')->where('id','>', 0)->delete();
if($reslut69){
$i++ ;
}else{
//数组末尾添加元素
array_push($res, '用户好友心跳删除失败!');
}
$reslut70 = db::name('vs_room_hot_value_log')->where('id','>', 0)->delete();
if($reslut70){
$i++ ;
}else{
//数组末尾添加元素
array_push($res, '房间热度值日志删除失败!');
}
$reslut71 = db::name('vs_blind_box_turntable_results_log')->where('id','>', 0)->delete();
if($reslut71){
$i++ ;
}else{
//数组末尾添加元素
array_push($res, '盲盒转盘结果日志删除失败!');
}
$reslut72 = db::name('vs_blind_box_turntable_log')->where('id','>', 0)->delete();
if($reslut72){
$i++ ;
}else{
//数组末尾添加元素
array_push($res, '盲盒转盘日志删除失败!');
}
$reslut73 = db::name('vs_room_pan_xlh')->where('id','>', 0)->delete();
if($reslut73){
$i++ ;
}else{
//数组末尾添加元素
array_push($res, '房间寻乐会删除失败!');
}
$reslut74 = db::name('vs_room_pan_xlh_log')->where('id','>', 0)->delete();
if($reslut74){
$i++ ;
}else{
//数组末尾添加元素
array_push($res, '房间寻乐会日志删除失败!');
}
$reslut75 = db::name('vs_room_pan')->where('id','>', 0)->delete();
if($reslut75){
$i++ ;
}else{
//数组末尾添加元素
array_push($res, '房间盘删除失败!');
}
//数据提交 //数据提交
db::commit(); db::commit();

View File

@@ -31,4 +31,22 @@ class Cron
$cron = new \app\cron\controller\DaySeconds(); $cron = new \app\cron\controller\DaySeconds();
$cron->index(); $cron->index();
} }
//巡乐会结束 礼物发放
public function XlhSend(){
$cron = new \app\cron\controller\RoomPan();
$cron->index();
}
//交友房结束
public function FriendEnd(){
$cron = new \app\cron\controller\FriendEnd();
$cron->index();
}
//房间小时榜发礼物(每小时执行一次)
public function RoomHourRanking(){
$cron = new \app\cron\controller\RoomHourRanking();
$cron->index();
}
} }

View File

@@ -25,7 +25,8 @@ class Gift extends BaseCom
public function get_gift_list() public function get_gift_list()
{ {
$label = input('label',0); $label = input('label',0);
$reslut = model('Gift')->get_gift_list($label); $room_id = input('room_id',0);
$reslut = model('Gift')->get_gift_list($label,$room_id);
return V($reslut['code'],$reslut['msg'], $reslut['data']); return V($reslut['code'],$reslut['msg'], $reslut['data']);
} }
//聊天送礼物 (音信) //聊天送礼物 (音信)

View File

@@ -22,7 +22,6 @@ class Guild extends BaseCom
public function guild_list() public function guild_list()
{ {
$page = input('page',1); $page = input('page',1);
$page = $page > 0 ? $page : 1;
$limit = input('limit',10); $limit = input('limit',10);
$search = input('search_id',''); $search = input('search_id','');
$reslut = model('Guild')->get_guild_list($page,$limit,$search,$this->uid); $reslut = model('Guild')->get_guild_list($page,$limit,$search,$this->uid);

View File

@@ -20,7 +20,7 @@ class Index extends BaseCom
$is_top = input('is_top', 0); //1非置顶2置顶 $is_top = input('is_top', 0); //1非置顶2置顶
$label_id = input('label_id', 0); $label_id = input('label_id', 0);
$page = input('page', 1); $page = input('page', 1);
$page_limit = input('page_limit', 15); $page_limit = input('page_limit', 20);
$reslut = model('Room')->room_list($label_id,$is_top, $page, $page_limit); $reslut = model('Room')->room_list($label_id,$is_top, $page, $page_limit);
return V($reslut['code'], $reslut['msg'], $reslut['data'], $reslut['api_version']); return V($reslut['code'], $reslut['msg'], $reslut['data'], $reslut['api_version']);
@@ -29,7 +29,7 @@ class Index extends BaseCom
//房间类型列表 //房间类型列表
public function room_type_list() public function room_type_list()
{ {
$list = db::name('vs_room_type')->where('status', 1)->field('id,type_name as label_name')->select(); $list = db::name('vs_room_type')->where(['status' => 1, 'deletetime' => 0])->field('id,type_name as label_name')->order('sort asc')->select();
//给前面添加一组数据 //给前面添加一组数据
array_unshift($list, ['id' => -1, 'label_name' => '热门']); array_unshift($list, ['id' => -1, 'label_name' => '热门']);
return V(1, '获取成功', $list); return V(1, '获取成功', $list);

View File

@@ -49,6 +49,7 @@ class Invited extends BaseCom
} }
$reslut['init_code'] = $init_code ? $init_code:''; $reslut['init_code'] = $init_code ? $init_code:'';
$invited_draw = get_system_config_value('invited_draw'); $invited_draw = get_system_config_value('invited_draw');
$reslut['invited_draw'] = $invited_draw;
//说明 //说明
$reslut['explain'] = '绑定成功后,您每次充值金额的'.$invited_draw.'%'.'将以钻石形式赠送给邀请人,满足提现金额邀请人可以直接提现'; $reslut['explain'] = '绑定成功后,您每次充值金额的'.$invited_draw.'%'.'将以钻石形式赠送给邀请人,满足提现金额邀请人可以直接提现';
return V(1,'操作成功',$reslut); return V(1,'操作成功',$reslut);

View File

@@ -26,18 +26,35 @@ class Payment extends Controller
$user_id = input('user_id', 0); $user_id = input('user_id', 0);
$money = input('money', 0); $money = input('money', 0);
$coin = input('coin', 0); $coin = input('coin', 0);
$type_params = input('type_params', 0);
$type_id = input('type_id', 0);
if(!$coin){ if(!$coin){
$coin = $money * get_system_config_value('rmb_coin_ratio'); $coin = $money * get_system_config_value('rmb_coin_ratio');
} }
if (!$user_id) { if (!$user_id) {
return V(0, '请选择充值用户', null); return V(0, '请选择充值用户', null);
} }
//获取用户的手机号
$user_phone = db::name('user')->where(["id" => $user_id])->value('mobile');
if(!$user_phone){
return V(0, '请先绑定手机号!', null);
}
//获取用户的实名信息
$real_name = db::name('user_auth')->where(["mobile" => $user_phone,'is_real' => 1])->find();
if(!$real_name){
return V(0, '请先实名认证', null);
}
//获取用户的年龄
if(!getAgeId($real_name['card_id'])){
return V(0, '未成年不可充值!', null);
}
if (!is_numeric($money) || floor($money) != $money || $money <= 0 || $money >= 2000) { if (!is_numeric($money) || floor($money) != $money || $money <= 0 || $money > 2000) {
return V(0, '请选择正确的充值金额', null); return V(0, '请选择正确的充值金额', null);
} }
$user_code = db::name('user')->where(["id" => $user_id])->value('user_code'); $user_code = db::name('user')->where(["id" => $user_id])->value('user_code');
$title = "APP充值到用户 " . ($user_code ?? "") . " 余额!"; $title = "APP充值到用户". ($user_code ?? "") ."余额!";
$order_number = $this->createOrderSn(); $order_number = $this->createOrderSn();
$data['order_sn'] = $order_number; $data['order_sn'] = $order_number;
@@ -46,7 +63,9 @@ class Payment extends Controller
$data['user_id'] = $user_id; $data['user_id'] = $user_id;
$data['pay_type'] = $type; $data['pay_type'] = $type;
$data['createtime'] = time(); $data['createtime'] = time();
$data['remarke'] = '充值到app用户'.($user_code ?? "") ."余额!";; $data['remarke'] = '充值到app用户'.($user_code ?? "") ."余额!";
$data['type_params'] = $type_params;
$data['type_id'] = $type_id;
$re = db::name('vs_user_recharge')->insert($data); $re = db::name('vs_user_recharge')->insert($data);
if (!$re) { if (!$re) {
@@ -91,6 +110,7 @@ class Payment extends Controller
$where['order_sn']=$out_trade_no; $where['order_sn']=$out_trade_no;
$where['order_type']=1; $where['order_type']=1;
$where['pay_type']=2; $where['pay_type']=2;
$where['pay_status']=1;
$data=[ $data=[
'trade_no'=>$trade_no 'trade_no'=>$trade_no
@@ -135,6 +155,7 @@ class Payment extends Controller
$where['order_sn']=$out_trade_no; $where['order_sn']=$out_trade_no;
$where['order_type']=1;//1 充值 $where['order_type']=1;//1 充值
$where['pay_type']=1;//1微信2支付宝 3通联支付宝 4通联微信 $where['pay_type']=1;//1微信2支付宝 3通联支付宝 4通联微信
$where['pay_status']=1;
$data=[ $data=[
'trade_no'=>$transaction_id 'trade_no'=>$transaction_id
@@ -190,6 +211,7 @@ class Payment extends Controller
$where['order_sn']=$out_trade_no; $where['order_sn']=$out_trade_no;
$where['order_type']=1;//1 充值 $where['order_type']=1;//1 充值
$where['pay_type']=$pay_type;//1微信2支付宝 3通联支付宝 4通联微信 $where['pay_type']=$pay_type;//1微信2支付宝 3通联支付宝 4通联微信
$where['pay_status']=1;
$data=[ $data=[
'trade_no'=>$trade_no 'trade_no'=>$trade_no
@@ -211,21 +233,18 @@ class Payment extends Controller
* 云账户回调(提现) * 云账户回调(提现)
*/ */
public function yun_callback(){ public function yun_callback(){
$data = input("data", ""); // $data = input("data", "");
$mess = input("mess", ""); // $mess = input("mess", "");
$timestamp = input("timestamp", ""); // $timestamp = input("timestamp", "");
$sign = input("sign", ""); // $sign = input("sign", "");
$log_data = [ $data = $_POST['data']??"";
"data"=>$data, $mess = $_POST['mess']??"";
"mess"=>$mess, $timestamp = $_POST['timestamp']?? "";
"timestamp"=>$timestamp, $sign = $_POST['sign']??"";
"sign"=>$sign
]; write_log_redis("yunzhanghu_huidiao_原始数据",$_POST);
Log::record("云账户回调信息".json_encode($log_data),"info");
$yun_pay = new YunPay(); $yun_pay = new YunPay();
$result = $yun_pay->yun_callback($data,$mess,$timestamp,$sign); $result = $yun_pay->yun_callback($data,$mess,$timestamp,$sign);
echo 'success';
die;
if($result['code']==1){ if($result['code']==1){
$data = $result['data']; $data = $result['data'];
if($data){ if($data){

View File

@@ -149,14 +149,29 @@ class Room extends BaseCom
//直播间送礼 //直播间送礼
public function room_give_gift() public function room_give_gift()
{ {
$key_name = "api:room:gift:" . $this->uid;
redis_lock_exit($key_name);
$room_id = input('room_id', 0); $room_id = input('room_id', 0);
$gift_id = input('gift_id', 0); $gift_id = input('gift_id', 0);
$gift_num = input('gift_num', 0); $gift_num = input('gift_num', 0);
$to_uid = input('to_uid', 0);//收礼人ID逗号隔开的字符串 $to_uid = input('to_uid', 0);//收礼人ID逗号隔开的字符串
$type = input('type', 1);//1金币购买 2送背包礼物 $type = input('type', 1);//1金币购买 2送背包礼物
$pit_number = input('pit_number', 0); $pit_number = input('pit_number', 0);
$heart_id = input('heart_id', 0);
$reslut = model('Room')->room_gift($this->uid, $to_uid, $gift_id, $gift_num, $type, $room_id, $pit_number); $reslut = model('Room')->room_gift($this->uid, $to_uid, $gift_id, $gift_num, $type, $room_id, $pit_number,$heart_id);
redis_unlock($key_name);
return V($reslut['code'], $reslut['msg'], $reslut['data']);
}
//房间送礼 背包一键全清
public function room_gift_all_clear()
{
$room_id = input('room_id', 0);
$to_uid = input('to_uid', 0);//收礼人ID
$heart_id = input('heart_id', 0);//交友
$auction_id = input('auction_id');//竞拍
$reslut = model('Room')->room_gift_all_clear($this->uid, $room_id, $to_uid,$heart_id,$auction_id);
return V($reslut['code'], $reslut['msg'], $reslut['data']); return V($reslut['code'], $reslut['msg'], $reslut['data']);
} }
@@ -260,7 +275,7 @@ class Room extends BaseCom
public function change_room_type() public function change_room_type()
{ {
$room_id = input('room_id', 0); $room_id = input('room_id', 0);
$type = input('type', 1);//1-点唱,2-拍卖3-男神4-女神 $type = input('type', 1);//1-点唱,2-拍卖3-男神4-女神,7-交友
$reslut = model('Room')->change_room_type($this->uid, $room_id, $type); $reslut = model('Room')->change_room_type($this->uid, $room_id, $type);
return V($reslut['code'], $reslut['msg'], $reslut['data']); return V($reslut['code'], $reslut['msg'], $reslut['data']);
} }
@@ -406,4 +421,43 @@ class Room extends BaseCom
$reslut = model('Room')->room_online_list($room_id, $page, $limit); $reslut = model('Room')->room_online_list($room_id, $page, $limit);
return V($reslut['code'], $reslut['msg'], $reslut['data']); return V($reslut['code'], $reslut['msg'], $reslut['data']);
} }
//房间用户当前魅力值列表
public function room_user_charm_list()
{
$room_id = input('room_id', 0);
$user_id = input('user_id', '');
$reslut = model('Room')->room_user_charm_list($room_id, $user_id);
return V($reslut['code'], $reslut['msg'], $reslut['data']);
}
// //创建房间
// public function create_rooms()
// {
// //查询所有的房间信息
// $room = db::name('vs_room')->field('id,user_id')->where(['room_status' => ['<>',3]])->select();
// $i = 0;
// foreach ($room as $value) {
// $reslut = model('Tencent')->create_group($value['user_id'],'room'.$value['id']);
// $i++;
// }
// return['code' => 1, 'msg' => '成功创建了'.$i.'个房间', 'data' => null];
// }
//用户重连
public function user_reconnect()
{
$room_id = input('room_id', 0);
$reslut = model('Room')->user_reconnect($this->uid, $room_id);
return V($reslut['code'], $reslut['msg'], $reslut['data']);
}
//用户在房间内切后台保留机制
public function user_in_room_background()
{
$room_id = input('room_id', 0);
$type = input('type', 1);//1-切后台2-切前台
$reslut = model('Room')->user_in_room_background($this->uid, $room_id,$type);
return V($reslut['code'], $reslut['msg'], $reslut['data']);
}
} }

View File

@@ -10,6 +10,8 @@ class RoomPit extends BaseCom
//申请上麦 //申请上麦
public function apply_pit() public function apply_pit()
{ {
$key_name = "api:room:apply_pit:" . $this->uid;
$room_id = input('room_id', 0); $room_id = input('room_id', 0);
$pit_number = input('pit_number', 0); $pit_number = input('pit_number', 0);
if($room_id == 0){ if($room_id == 0){
@@ -19,27 +21,19 @@ class RoomPit extends BaseCom
if($res['code'] != 1){ if($res['code'] != 1){
return V(0, '房间不存在', null); return V(0, '房间不存在', null);
} }
//查询房间主持麦有人吗
$room_host_info = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => 9])->value('user_id');
//房主,管理,主持不受此限制
$room_owner = db::name('vs_room')->where(['id' => $room_id, 'user_id' => $this->uid])->find();
//管理
$room_manager = db::name('vs_room_host')->where(['room_id' => $room_id, 'user_id' => $this->uid,'type' => 2,'delete_time' => null])->find();
//主持
$room_host = db::name('vs_room_host')->where(['room_id' => $room_id, 'user_id' => $this->uid,'type' => 1,'delete_time' => null])->find();
if($room_host_info == 0 && !$room_owner && !$room_manager && !$room_host){
return V(0, '上麦请联系主持', null);
}
$room_label = $res['data']['label_id']; $room_label = $res['data']['label_id'];
$room_type = $res['data']['type_id']; $room_type = $res['data']['type_id'];
redis_lock_exits($key_name);
if(($room_label == 1 && ($room_type == 1 || $room_type == 3 || $room_type == 4))|| $room_type == 2){ if(($room_label == 1 && ($room_type == 1 || $room_type == 3 || $room_type == 4 || $room_type == 8))|| $room_type == 2 || $room_type == 7){
$reslut = model('RoomPit')->apply_pit($this->uid, $room_id,$pit_number); $reslut = model('RoomPit')->apply_pit($this->uid, $room_id,$pit_number);
}elseif ($room_label == 2 && ($room_type == 1 || $room_type == 3 || $room_type == 4)){ }elseif ($room_label == 2 && ($room_type == 1 || $room_type == 3 || $room_type == 4 || $room_type == 8)){
$reslut = model('RoomSong')->apply_kpit($this->uid, $room_id,$pit_number); $reslut = model('RoomSong')->apply_kpit($this->uid, $room_id,$pit_number);
}else{ }else{
redis_unlocks($key_name);
return V(0, '房间不存在', null); return V(0, '房间不存在', null);
} }
redis_unlocks($key_name);
//1-禁麦位2-清空消息3-清空魅力值4-加入黑名单5-踢出房间6-关闭麦克风7-申请上麦8-同意上麦9-拒绝上麦10-点歌11-开启PK', //1-禁麦位2-清空消息3-清空魅力值4-加入黑名单5-踢出房间6-关闭麦克风7-申请上麦8-同意上麦9-拒绝上麦10-点歌11-开启PK',
model('Room')->room_operation_record($this->uid,$room_id,7,0,$pit_number); model('Room')->room_operation_record($this->uid,$room_id,7,0,$pit_number);
@@ -113,9 +107,9 @@ class RoomPit extends BaseCom
} }
$room_label = $res['data']['label_id']; $room_label = $res['data']['label_id'];
$room_type = $res['data']['type_id']; $room_type = $res['data']['type_id'];
if(($room_label == 1 && ($room_type == 1 || $room_type == 3 || $room_type == 4)) || $room_type == 2){ if(($room_label == 1 && ($room_type == 1 || $room_type == 3 || $room_type == 4 || $room_type == 8)) || $room_type == 2 || $room_type == 7){
$reslut = model('RoomPit')->DownPit($this->uid, $room_id,$pit_number); $reslut = model('RoomPit')->DownPit($this->uid, $room_id,$pit_number);
}elseif ($room_label == 2 && ($room_type == 1 || $room_type == 3 || $room_type == 4)){ }elseif ($room_label == 2 && ($room_type == 1 || $room_type == 3 || $room_type == 4 || $room_type == 8)){
$reslut = model('RoomSong')->down_kpit($this->uid, $room_id); $reslut = model('RoomSong')->down_kpit($this->uid, $room_id);
} }

View File

@@ -53,7 +53,7 @@ class RoomSong extends BaseCom
public function up_song(){ public function up_song(){
$room_song_id = input('did'); $room_song_id = input('did');
$type = input('type');//1上移2置顶 $type = input('type');//1上移2置顶
$res = model('RoomSong')->up_song($room_song_id,$type); $res = model('RoomSong')->up_song($this->uid,$room_song_id,$type);
return V($res['code'], $res['msg'], $res['data']); return V($res['code'], $res['msg'], $res['data']);
} }

View File

@@ -35,12 +35,16 @@ class Search extends BaseCom
if(is_numeric($search)){ if(is_numeric($search)){
$where = [ $where = [
'room_number' => $search, 'room_number' => $search,
'apply_status' => 2 'apply_status' => 2,
'type_id' => ['<>',6],
'room_status' => 1
]; ];
}else{ }else{
$where = [ $where = [
'room_name' => ['like', '%'.$search . '%'], 'room_name' => ['like', '%'.$search . '%'],
'apply_status' => 2 'apply_status' => 2,
'type_id' => ['<>',6],
'room_status' => 1
]; ];
} }
@@ -96,4 +100,59 @@ class Search extends BaseCom
return V(1, '获取成功', $lists); return V(1, '获取成功', $lists);
} }
//搜索
public function search_list()
{
$search = input('search', '');
if(is_numeric($search)){
$where = [
'user_code' => $search,
'status' => 1
];
$where1 = [
'room_number' => $search,
'apply_status' => 2,
'type_id' => ['<>',6],
'room_status' => 1
];
}else{
$where = [
'nickname' => ['like', '%'.$search . '%'],
'status' => 1
];
$where1 = [
'room_name' => ['like', '%'.$search . '%'],
'apply_status' => 2,
'type_id' => ['<>',6],
'room_status' => 1
];
}
$users = db::name('user')->field('id as user_id,nickname,avatar,user_code,sex')->where($where)->select();
if(isset($users)){
foreach ($users as &$v){
$v['room_id'] = 0;
//是否在房间
$is_room = db::name('vs_room_visitor')->where(['user_id' => $v['user_id'], 'is_delete' => 1])->order('id desc')->value('room_id');
if ($is_room) {
$v['room_id'] = $is_room;
}
$v['icon'][0] = model('UserData')->user_wealth_icon($v['user_id']);//财富图标
$v['icon'][1] = model('UserData')->user_charm_icon($v['user_id']);//魅力图标
}
}
$rooms = db::name('vs_room')->field('id as room_id,room_name,room_cover,room_number,label_id,today_hot_value')->where($where1)->select();
if(isset($rooms)){
foreach ($rooms as $vv){
$vv['label_icon'] = db::name('vs_room_label')->where('id', $vv['label_id'])->value('label_icon');
$vv['hot_value'] = $vv['today_hot_value'];
}
}
return V(1, '获取成功', ['users' => $users, 'rooms' => $rooms]);
}
} }

View File

@@ -1,35 +0,0 @@
<?php
namespace app\api\controller;
use think\Db;
class UpDataAv extends \think\Controller
{
public function index()
{
$users = db::name('user')->field('id,nickname,avatar')->where(['status' => ['<>',0],'is_robot' => 0])->select();
$num = count($users);
$n = 0;
$m = 0;
if($users){
foreach ($users as $user){
if($n >= 50){
sleep(1);
}
$user_id = $user['id'];
$member_name = $user['nickname'];
$member_face_url = $user['avatar'];
$res = model('api/Tencent')->modify_user_infos($user_id, $member_name, $member_face_url);
if($res['code'] == 1){
echo '更新用户信息成功:'.$user_id.'<br>';
$n++;
}else{
echo '更新用户信息失败:'.$user_id.'<br>';
$m++;
}
}
}
return '更新完成!总共:'.$num.'有效 用户,更新了:'.$n.'个用户信息.失败了:'.$m.'个用户信息.';
}
}

View File

@@ -234,6 +234,15 @@ class User extends BaseCom
return V($reslut['code'], $reslut['msg'], $reslut['data']); return V($reslut['code'], $reslut['msg'], $reslut['data']);
} }
//关注房间(红包专用)
public function follow_room()
{
$room_id = input('room_id', 0);
$type = input('type', 1);//1-收藏0-取消收藏
$reslut = model('user')->follow_room($this->uid, $room_id,$type);
return V($reslut['code'], $reslut['msg'], $reslut['data']);
}
//用户关系卡(亲密拍)、关系位(真爱拍) //用户关系卡(亲密拍)、关系位(真爱拍)
public function user_cp_list() public function user_cp_list()
{ {

View File

@@ -24,13 +24,21 @@ class UserGiftPack extends BaseCom
return V($reslut['code'],$reslut['msg'], $reslut['data']); return V($reslut['code'],$reslut['msg'], $reslut['data']);
} }
//获取背包礼物列表总值
public function get_gift_pack_list_count()
{
$user_id = $this->uid;
$reslut = model('UserGiftPack')->get_gift_pack_list_count($user_id);
return V($reslut['code'],$reslut['msg'], $reslut['data']);
}
//背包收入 //背包收入
public function get_gift_pack_income() public function get_gift_pack_income()
{ {
$user_id = $this->uid; $user_id = $this->uid;
$page = input('page',1); $page = input('page',1);
$page_limit = input('page_limit',10); $page_limit = input('page_limit',10);
$reslut = model('UserGiftPack')->income_user_gift_pack($user_id,$page=1,$page_limit=10); $reslut = model('UserGiftPack')->income_user_gift_pack($user_id,$page,$page_limit);
return V($reslut['code'],$reslut['msg'], $reslut['data']); return V($reslut['code'],$reslut['msg'], $reslut['data']);
} }
@@ -40,7 +48,7 @@ class UserGiftPack extends BaseCom
$user_id = $this->uid; $user_id = $this->uid;
$page = input('page',1); $page = input('page',1);
$page_limit = input('page_limit',10); $page_limit = input('page_limit',10);
$reslut = model('UserGiftPack')->get_gift_pack_outcome($user_id,$page=1,$page_limit=10); $reslut = model('UserGiftPack')->get_gift_pack_outcome($user_id,$page,$page_limit);
return V($reslut['code'],$reslut['msg'], $reslut['data']); return V($reslut['code'],$reslut['msg'], $reslut['data']);
} }

View File

@@ -108,7 +108,7 @@ return [
'该装扮天数不存在' => '该装扮天数不存在', '该装扮天数不存在' => '该装扮天数不存在',
'该个人靓号已被购买' => '该个人靓号已被购买', '该个人靓号已被购买' => '该个人靓号已被购买',
'该房间靓号已被购买' => '该房间靓号已被购买', '该房间靓号已被购买' => '该房间靓号已被购买',
'该会靓号已被购买' => '该会靓号已被购买', '该会靓号已被购买' => '该会靓号已被购买',
'用户信息错误' => '用户信息错误', '用户信息错误' => '用户信息错误',
'非法资金类型' => '非法资金类型', '非法资金类型' => '非法资金类型',
'当前用户金币已达上限' => '当前用户金币已达上限', '当前用户金币已达上限' => '当前用户金币已达上限',

View File

@@ -25,7 +25,8 @@ class Activities extends Model
public static function first_charge_gift_send($user_id,$money=0) public static function first_charge_gift_send($user_id,$money=0)
{ {
//礼包 //礼包
$gift_bag_id = DB::name('vs_gift_bag')->where(['activities_id'=>1,'status'=>1,'money'=>$money])->value('id'); $gift_bag = DB::name('vs_gift_bag')->where(['activities_id'=>1,'status'=>1,'delete_time'=>0,'money'=>['<=',$money]])->order('money desc')->find();
$gift_bag_id = $gift_bag['id'] ?? 0;
if (!$gift_bag_id) { if (!$gift_bag_id) {
return ['code' => 0, 'msg' => '礼包不存在','data' => null]; return ['code' => 0, 'msg' => '礼包不存在','data' => null];
} }
@@ -98,14 +99,19 @@ class Activities extends Model
/* /*
* 天降好礼发放 * 天降好礼发放
*/ */
public static function drop_gift_send($user_id) public static function drop_gift_send($user_id,$money=0)
{ {
$activities_id = 3; $activities_id = 3;
//礼包 //礼包
$gift_bag_id = DB::name('vs_gift_bag')->where(['activities_id'=>$activities_id,'status'=>1])->value('id'); $gift_bag = DB::name('vs_gift_bag')->where(['activities_id'=>$activities_id,'status'=>1])->find();
$gift_bag_id = $gift_bag['id'] ?? 0;
if (!$gift_bag_id) { if (!$gift_bag_id) {
return ['code' => 0, 'msg' => '礼包不存在','data' => null]; return ['code' => 0, 'msg' => '礼包不存在','data' => null];
} }
if($money != $gift_bag['money']){
return ['code' => 0, 'msg' => '充值金额未命中天降好礼礼包','data' => null];
}
$gift_bag_detail = DB::name('vs_gift_bag_detail')->where(['gift_bag_id'=>$gift_bag_id])->select(); $gift_bag_detail = DB::name('vs_gift_bag_detail')->where(['gift_bag_id'=>$gift_bag_id])->select();
if (!$gift_bag_detail) { if (!$gift_bag_detail) {
return ['code' => 0, 'msg' => '礼包不存在','data' => null]; return ['code' => 0, 'msg' => '礼包不存在','data' => null];
@@ -136,15 +142,20 @@ class Activities extends Model
Db::rollback(); Db::rollback();
return ['code' => 0, 'msg' => $res['msg'], 'data' => null]; return ['code' => 0, 'msg' => $res['msg'], 'data' => null];
} }
// 记录日志
//添加礼盒记录
$reslut = Db::name('vs_gift_bag_receive_log')->insert([
'user_id' => $user_id,
'gift_bag_id' => $gift_bag_id,
'parent_id' => $v['id'],
'gift_id'=> $v['foreign_id'],
'num' => $v['quantity'],
'bag_price' => $gift_bag['money'],
'gift_price' => $v['gold'],
'createtime' => time(),
'updatetime' => time()
]);
} }
// 记录日志
//添加礼盒记录
$reslut = Db::name('vs_gift_bag_receive_log')->insert([
'user_id' => $user_id,
'gift_bag_id' => $gift_bag_id,
'createtime' => time(),
'updatetime' => time()
]);
// 添加活动记录 // 添加活动记录
$reslut = Db::name('vs_activities_receive')->insert([ $reslut = Db::name('vs_activities_receive')->insert([
'user_id' => $user_id, 'user_id' => $user_id,
@@ -160,4 +171,85 @@ class Activities extends Model
return ['code' => 0, 'msg' => "请重试", 'data' => null]; return ['code' => 0, 'msg' => "请重试", 'data' => null];
} }
} }
/*
* 新人好礼发放
*/
public static function new_charge_gift_send($user_id,$money=0)
{
//礼包
$activities_id = 7;
$gift_bag = DB::name('vs_gift_bag')->where(['activities_id'=>$activities_id,'status'=>1,'delete_time'=>0,'money'=>$money])->order('money desc')->find();
$gift_bag_id = $gift_bag['id'] ?? 0;
if (!$gift_bag_id) {
return ['code' => 0, 'msg' => '礼包不存在','data' => null];
}
$gift_bag_detail = DB::name('vs_gift_bag_detail')->where(['gift_bag_id'=>$gift_bag_id])->select();
if (!$gift_bag_detail) {
return ['code' => 0, 'msg' => '礼包未配置','data' => null];
}
Db::startTrans();
try {
foreach ($gift_bag_detail as $k=>$v){
$gift_id =0;
$gift_price = 0;
$gift_num = $v['quantity'];
switch ($v['type']) {
case 1: //金币 方法1直接添加到用户钱包
$gift_price = $v['quantity'];
$res = model('common/UserWallet')->change_user_money($user_id, $v['quantity'], model('common/UserWallet')::MONEYTYPECOIN, model('common/UserWallet')::NEW_USER_CHARGE_GIFT,model('common/UserWallet')::ChangeTypeLable(model('common/UserWallet')::NEW_USER_CHARGE_GIFT));
break;
case 2: //礼物 方法2添加到用户礼物背包
$gift_id = $v['foreign_id'];
$res = model('UserGiftPack')->change_user_gift_pack($user_id,$v['foreign_id'],$v['quantity'],model('UserGiftPack')::NEW_CHARGE_GIFT,"新人好礼获得礼物");
break;
case 3: //坐骑 方法3添加到用户装扮
$gift_id = $v['foreign_id'];
$decorate_price_info = db::name('vs_decorate_price')->where(['id'=>$v['foreign_id']])->find();
if(empty($decorate_price_info)){
break;
}
$gift_price = $decorate_price_info['price'];
$res = model('Decorate')->pay_decorate($user_id,$decorate_price_info['did'],$decorate_price_info['day'],8);
break;
case 4: //道具 方法5钻石
$gift_price = $v['quantity'];
$res = model('common/UserWallet')->change_user_money($user_id, $v['quantity'], model('common/UserWallet')::MONEYTYPEARNINGS, model('common/UserWallet')::NEW_USER_CHARGE_GIFT,model('common/UserWallet')::ChangeTypeLable(model('common/UserWallet')::NEW_USER_CHARGE_GIFT));
default:
break;
}
if ($res['code'] != 1) {
Db::rollback();
return ['code' => 0, 'msg' => $res['msg'], 'data' => null];
}
// 记录日志
//添加礼盒记录
$reslut = Db::name('vs_gift_bag_receive_log')->insert([
'user_id' => $user_id,
'gift_bag_id' => $gift_bag_id,
'parent_id' => $v['id'],
'gift_id'=> $v['foreign_id'],
'num' => $v['quantity'],
'bag_price' => $gift_bag['money'],
'gift_price' => $v['gold'],
'createtime' => time(),
'updatetime' => time()
]);
}
// 添加活动记录
$reslut = Db::name('vs_activities_receive')->insert([
'user_id' => $user_id,
'activities_id' => 1,
'createtime' => time(),
'updatetime' => time()
]);
Db::commit();
return ['code' => 1, 'msg' => '操作成功','data' => null];
}catch (\Exception $e) {
// 回滚事务
Db::rollback();
return ['code' => 0, 'msg' => "请重试", 'data' => null];
}
}
} }

View File

@@ -9,11 +9,11 @@ class Banner extends Model
{ {
protected $table = 'fa_vs_banner'; protected $table = 'fa_vs_banner';
public $ShowType = [ public $ShowType = [
// 1 => '引导页', 1 => '引导页',
// 2 => '启动页', 2 => '启动页',
3 => '首页轮播图', 3 => '首页轮播图',
4 => '工会', 4 => '房间首页',
5 => '帮助反馈' 5 => '工会列表页广告位'
]; ];
//1纯展示 2文章 3房间 4个人主页 5外站' //1纯展示 2文章 3房间 4个人主页 5外站'
public $Type = [ public $Type = [

View File

@@ -89,6 +89,41 @@ class Chat extends Model
// RoomAuctionPK = 1037, // RoomAuctionPK = 1037,
//送盲盒礼物推送文字消息 //送盲盒礼物推送文字消息
// RoomGiftBlindBox = 1038, // RoomGiftBlindBox = 1038,
//换麦
// RoomChangePit = 1039,
//交友房间内发送消息
//交友房游戏阶段
// FriendRoomGameStart = 1049,
//交友房延时
// FriendRoomDelay = 1050,
//交友结束推送是否创建小房间
// FriendRoomEnd = 1051,
//交友房 私密小屋送礼增加结束时间
// FriendRoomGiftBlindBox = 1052,
//交友 房间换麦位
// FriendRoomChangePit = 1053,
//交友 心动值变化
// FriendRoomChangeCharm = 1054,
//交友 退出小房间
// FriendRoomQuit = 1055,
//盲盒转盘相关推送
//巡乐会进度推送
// BlindBoxTurnTableProgress = 1056,
//巡乐会抽奖结果推送
// BlindBoxTurnTableResult = 1057,
//直播群成员在离线状态变更
// RoomMemberOffline = 1058,
//清空个人魅力
// ClearUserCharm = 1059,
//发红包
// RedPacket = 1060,
//红包领完推送
// RedPacketComplete = 1061,

View File

@@ -135,13 +135,13 @@ class DailyTasks extends Model
$v['processing_type'] = 2; $v['processing_type'] = 2;
$v['processing_type_str'] = $this->processing_type_str[$v['processing_type']]; $v['processing_type_str'] = $this->processing_type_str[$v['processing_type']];
//跳转的房间路径 //跳转的房间路径
$v['from_id'] = db::name('vs_room')->where(['delete_time'=>0,'room_status'=>1,'type_id'=>['<>',6]])->orderRaw('rand()')->value('id'); $v['from_id'] = db::name('vs_room')->where(['delete_time'=>0,'room_status'=>1,'type_id'=>['<>',6],'apply_status'=>2])->orderRaw('rand()')->value('id');
$v['target_quantity'] = $v['target_quantity'] * 60; $v['target_quantity'] = $v['target_quantity'] * 60;
$v['is_time'] = 1; $v['is_time'] = 1;
}elseif(in_array($v['task_id'],[10])){ }elseif(in_array($v['task_id'],[10])){
$v['processing_type'] = 7; $v['processing_type'] = 7;
$v['processing_type_str'] = $this->processing_type_str[$v['processing_type']]; $v['processing_type_str'] = $this->processing_type_str[$v['processing_type']];
$v['from_id'] = db::name('vs_room')->where(['delete_time'=>0,'room_status'=>1,'type_id'=>['<>',6]])->orderRaw('rand()')->value('id'); $v['from_id'] = db::name('vs_room')->where(['delete_time'=>0,'room_status'=>1,'type_id'=>['<>',6],'apply_status'=>2])->orderRaw('rand()')->value('id');
} else{ } else{
$v['processing_type'] = 9; $v['processing_type'] = 9;
$v['processing_type_str'] = $this->processing_type_str[$v['processing_type']]; $v['processing_type_str'] = $this->processing_type_str[$v['processing_type']];
@@ -342,10 +342,10 @@ class DailyTasks extends Model
public function gift_bag_receive_list($user_id){ public function gift_bag_receive_list($user_id){
//查询每日任务礼盒记录 //查询每日任务礼盒记录
$gift_bag_receive_list = Db::name('vs_gift_bag_receive_log') $gift_bag_receive_list = Db::name('vs_gift_bag_receive_log')
->field('bag.name as gift_bag_name,de.name as gift_name,re.createtime as createtime,de.quantity,de.type,de.foreign_id,de.days,de.gold') ->field('bag.name as gift_bag_name,re.createtime as createtime,de.name as gift_name,de.quantity,de.type,de.foreign_id,de.days,de.gold')
->alias('re') ->alias('re')
->join('vs_gift_bag bag', 'bag.id = re.gift_bag_id', 'LEFT') ->join('vs_gift_bag bag', 'bag.id = re.gift_bag_id', 'LEFT')
->join('vs_gift_bag_detail de', 'de.gift_bag_id = re.gift_bag_id','LEFT') ->join('vs_gift_bag_detail de', 'de.id = re.parent_id', 'LEFT')
->where(['re.user_id'=>$user_id,'bag.activities_id'=>2,'bag.status'=>1]) ->where(['re.user_id'=>$user_id,'bag.activities_id'=>2,'bag.status'=>1])
->order('re.createtime desc') ->order('re.createtime desc')
->select(); ->select();

View File

@@ -15,9 +15,9 @@ class Decorate extends Model
// 定义时间戳字段名 // 定义时间戳字段名
protected $createTime = 'createtime'; protected $createTime = 'createtime';
protected $updateTime = 'updatetime'; protected $updateTime = 'updatetime';
// 定义字段类型 1头像框 2坐骑 3麦圈 6个人靓号 7房间靓号 8会靓号 // 定义字段类型 1头像框 2坐骑 3麦圈 6个人靓号 7房间靓号 8会靓号
public $TypeArray = [1=>'头像框',2=>'坐骑',3=>'麦圈',6=>'个人靓号',7=>'房间靓号',8=>'会靓号']; public $TypeArray = [1=>'头像框',2=>'坐骑',3=>'麦圈',6=>'个人靓号',7=>'房间靓号',8=>'会靓号'];
protected $FromType = [1=>'购买',2=>'后台赠送',3=>'礼盒开奖',4=>'好友赠送',5=>'首充赠送',6=>'天降好礼获得',7=>'财富等级特权赠送']; protected $FromType = [1=>'购买',2=>'后台赠送',3=>'礼盒开奖',4=>'好友赠送',5=>'首充赠送',6=>'天降好礼获得',7=>'财富等级特权赠送',8=>'新人充值好礼'];
public function __construct($data = []) public function __construct($data = [])
{ {
parent::__construct($data); parent::__construct($data);
@@ -125,7 +125,6 @@ class Decorate extends Model
$map = []; $map = [];
$map = [ $map = [
'did' => $did, 'did' => $did,
'is_buy' => 1,
'delete_time' => 0, 'delete_time' => 0,
]; ];
$decorate_info = DB::name($this->table)->where($map)->find(); $decorate_info = DB::name($this->table)->where($map)->find();
@@ -150,7 +149,7 @@ class Decorate extends Model
return ['code' => 0, 'msg' => '该房间靓号已被购买', 'data' => null]; return ['code' => 0, 'msg' => '该房间靓号已被购买', 'data' => null];
} }
if($decorate_info['type'] == 8 && $decorate_info['is_user_buy'] == 1){ if($decorate_info['type'] == 8 && $decorate_info['is_user_buy'] == 1){
return ['code' => 0, 'msg' => '该会靓号已被购买', 'data' => null]; return ['code' => 0, 'msg' => '该会靓号已被购买', 'data' => null];
} }
$start_time = $now_time = time(); $start_time = $now_time = time();
Db::startTrans(); Db::startTrans();
@@ -207,6 +206,9 @@ class Decorate extends Model
if($decorate_price_info['price']<=0 && $user_decorate_data['end_time'] > $now_time + $change_time){ if($decorate_price_info['price']<=0 && $user_decorate_data['end_time'] > $now_time + $change_time){
return ['code' => 0, 'msg' => '您已购买过此装扮,请勿重复购买', 'data' => null]; return ['code' => 0, 'msg' => '您已购买过此装扮,请勿重复购买', 'data' => null];
} }
if($user_decorate_data['end_time'] < $now_time){
$user_decorate_data['end_time'] = 0;
}
$change_time = $day * 24 * 3600; $change_time = $day * 24 * 3600;
$update['is_using'] = 2; $update['is_using'] = 2;
$update['end_time'] = $user_decorate_data['end_time'] + $change_time; $update['end_time'] = $user_decorate_data['end_time'] + $change_time;
@@ -368,7 +370,7 @@ class Decorate extends Model
//用户装扮详情 //用户装扮详情
/* /*
* @param $id 对象id * @param $id 对象id
* @param $type 装扮类型 1头像框 2坐骑 3麦圈 6个人靓号 7房间靓号 8会靓号 * @param $type 装扮类型 1头像框 2坐骑 3麦圈 6个人靓号 7房间靓号 8会靓号
*/ */
public function user_decorate_detail($id, $type){ public function user_decorate_detail($id, $type){
//根据$type 组装查询条件 //根据$type 组装查询条件

View File

@@ -19,7 +19,7 @@ class Gift extends Model
//获取礼物类型 //获取礼物类型
public function get_gift_label() public function get_gift_label()
{ {
$giftTypeData = db::name('vs_gift_label')->where('delete_time',0)->order("sort asc,id desc")->select(); $giftTypeData = db::name('vs_gift_label')->where('delete_time',0)->where('tid',1)->order("sort asc,id desc")->select();
foreach ($giftTypeData as $key => $value) { foreach ($giftTypeData as $key => $value) {
$giftType[$key]['id'] = $value['id']; $giftType[$key]['id'] = $value['id'];
$giftType[$key]['name'] = $value['name']; $giftType[$key]['name'] = $value['name'];
@@ -28,7 +28,7 @@ class Gift extends Model
} }
//拉去礼物列表 //拉去礼物列表
public function get_gift_list($label=0) public function get_gift_list($label=0,$room_id=0)
{ {
$map['delete_time'] = 0; $map['delete_time'] = 0;
$where['is_show'] = 1; $where['is_show'] = 1;
@@ -39,30 +39,42 @@ class Gift extends Model
$gift_price = get_system_config_value('room_love_auction_cion'); $gift_price = get_system_config_value('room_love_auction_cion');
$where['gift_price'] = ['>',$gift_price]; $where['gift_price'] = ['>',$gift_price];
} }
$is_open_blind_box_turntable = 0;
if($room_id){
$is_open_blind_box_turntable = Db::name('vs_room')->where(['id'=>$room_id])->value('is_open_blind_box_turntable');
}
$list = $this->field('gid as gift_id,gift_name,base_image,gift_price')->where($map)->where($where)->order('sort asc, gift_price asc')->select(); $list = $this->field('gid as gift_id,gift_name,base_image,gift_price')->where($map)->where($where)->order('sort asc, gift_price asc')->select();
if($label==2){ if($label==2){
$list_data = [];
foreach ($list as &$v) { foreach ($list as &$v) {
//获取盲盒列表 //获取盲盒列表
$box_list = Db::name('vs_gift_bag')->where(['status'=>1])->where('activities_id',4)->select(); $box_list = Db::name('vs_gift_bag')->where(['status'=>1])->where(['activities_id'=>["in",[4,5]]])->select();
foreach ($box_list as $key =>$box) { foreach ($box_list as $key =>$box) {
$ext = json_decode($box['ext'],true); $ext = json_decode($box['ext'],true);
if ($ext['gift_id'] == $v['gift_id']) { if ($ext['gift_id'] == $v['gift_id']) {
$v['gift_bag_name'] = $box['name']; $v['gift_bag_name'] = $box['name'];
$v['rule'] = $ext['description']; $v['rule'] = $ext['description'];
$v['rule_url'] = get_system_config_value('web_site')."/api/Page/get_gift_box_rule?box_id=".$box["id"]; $v['rule_url'] = get_system_config_value('web_site')."/api/Page/get_gift_box_rule?box_id=".$box["id"];
$v['activities_id'] = $box['activities_id'];
$v['gift_bag'] = $box['id'];
break; break;
} }
} }
} }
foreach ($list as $gift) {
if($is_open_blind_box_turntable == 1){
$list_data[] = $gift;
}else{
if(isset($gift['activities_id']) && $gift['activities_id'] == 4){
$list_data[] = $gift;
}
}
}
usort($list_data, function($a, $b) {
return $a['gift_id'] <=> $b['gift_id'];
});
$list = $list_data;
} }
return ['code' => 1, 'msg' => '获取成功', 'data' => $list]; return ['code' => 1, 'msg' => '获取成功', 'data' => $list];
} }
/*
* 盲盒规则链接
*/
public function get_gift_box_rule($box_id){
}
} }

View File

@@ -38,8 +38,12 @@ class GiveGift extends Model
* @return array * @return array
* 用户,在房间中,给谁,送了什么礼物,多少个,来源 * 用户,在房间中,给谁,送了什么礼物,多少个,来源
*/ */
public function give_gift($uid,$to_uid,$gid,$num,$from_type,$type,$from_id = 0,$pit_number = 0,$change_type = 0) public function give_gift($uid,$to_uid,$gid,$num,$from_type,$type,$from_id = 0,$pit_number = 0,$change_type = 0,$ext = [])
{ {
if(isset($ext['is_draw_gift']) && $ext['is_draw_gift'] == 1) {
$return_pan = $this->give_gift_to_pan($uid, $to_uid, $gid, $num, $from_type, $type, $from_id, $pit_number, $change_type, $ext);
return $return_pan;
}
//送的礼物信息 //送的礼物信息
$gift_info = Db::name('vs_gift')->where(['gid'=>$gid]) $gift_info = Db::name('vs_gift')->where(['gid'=>$gid])
->field('gid as gift_id,gift_name,gift_price,file_type,base_image,play_image,gift_type,label,is_public_server')->find(); ->field('gid as gift_id,gift_name,gift_price,file_type,base_image,play_image,gift_type,label,is_public_server')->find();
@@ -79,24 +83,26 @@ class GiveGift extends Model
} }
//金币购买送礼 1金币购买 2送背包礼物 //金币购买送礼 1金币购买 2送背包礼物
if ($type == 1) { if ($type == 1) {
//送给所有人的总价格 if(!isset($ext['is_draw_gift']) || $ext['is_draw_gift'] != 1){// 非盲盒转盘
$all_gift_price = $gift_info['gift_price'] * $num * count($toarray); //送给所有人的总价格
//判断是否有足够的金币 $all_gift_price = $gift_info['gift_price'] * $num * count($toarray);
$user_waller = db::name('user_wallet')->where(['user_id'=>$uid])->find(); //判断是否有足够的金币
if ($user_waller['coin'] < $all_gift_price) { $user_waller = db::name('user_wallet')->where(['user_id'=>$uid])->find();
return ['code' => 0, 'msg' => '用户金币不足', 'data' => null]; if ($user_waller['coin'] < $all_gift_price) {
} return ['code' => 0, 'msg' => '用户金币不足', 'data' => null];
//扣除用户金币并记录日志 }
$wallet_update = $this -> change_user_cion_or_earnings_log($uid,$all_gift_price,$from_id,1,10,'用户金币购买礼物'); //扣除用户金币并记录日志
if(!$wallet_update){ $wallet_update = $this -> change_user_cion_or_earnings_log($uid,$all_gift_price,$from_id,1,10,'用户金币购买礼物');
Db::rollback(); if(!$wallet_update){
return ['code' => 0, 'msg' => '扣除用户金币失败', 'data' => null]; Db::rollback();
} return ['code' => 0, 'msg' => '扣除用户金币失败', 'data' => null];
//用户财富等级更新 }
$user_level = model('Level')->user_level_data_update($uid,$all_gift_price,1,$roomId); //用户财富等级更新
if(!$user_level){ $user_level = model('Level')->user_level_data_update($uid,$all_gift_price,1,$roomId);
Db::rollback(); if(!$user_level){
return ['code' => 0, 'msg' => '用户等级更新失败', 'data' => null]; Db::rollback();
return ['code' => 0, 'msg' => '用户等级更新失败', 'data' => null];
}
} }
}else{ }else{
//背包礼物是否充足 //背包礼物是否充足
@@ -127,28 +133,43 @@ class GiveGift extends Model
//循环送礼 //循环送礼
$gift_total = 0; $gift_total = 0;
$give_gift = 0; $give_gift = 0;
foreach ($toarray as $to_id){ $gift_user_data = [];
foreach ($toarray as $k => $to_id){
$gift_user_data[]['user_id'] = $to_id;
$gift_box1 = []; $gift_box1 = [];
$gift_box = []; $gift_box = [];
//查询礼物是否是盲盒 //查询礼物是否是盲盒
if($gift_info['label'] == 2){//趣味礼物(盲盒) if($gift_info['label'] == 2){//趣味礼物(盲盒)
$gift_price_box = 0; $gift_price_box = 0;
for($i = 0; $i < $num; $i++){ if(isset($ext['is_draw_gift']) && $ext['is_draw_gift'] == 1){
$gift_box1[$i] = $this -> open_box($gid,$uid,$to_id,$from_id); //收礼记录行为日志
if($gift_box1[$i]['code'] != 1){ $give_gift = $this -> change_user_give_gift_log($uid,$ext['gift_id'],$ext['all_gift_price'],$ext['count'],$to_id,$from_type,$type,$from_id,$pit_number,2);
Db::rollback();
return ['code' => 0, 'msg' => '盲盒配置有误请联系管理员'.$gift_box1[$i]['msg'], 'data' => null];
}
$gift_box[$i] = $gift_box1[$i]['data'];
//记录一下收礼记录
$give_gift = $this -> change_user_give_gift_log($uid,$gift_box[$i]['gift_id'],$gift_box[$i]['gift_price'],1,$to_id,$from_type,$type,$from_id,$pit_number,2);
if(!$give_gift){ if(!$give_gift){
Db::rollback(); Db::rollback();
return ['code' => 0, 'msg' => '送礼失败', 'data' => null]; return ['code' => 0, 'msg' => '送礼失败', 'data' => null];
} }
$gift_box[$i]['give_gift_id'] = $give_gift; $gift_price_box = $ext['all_gift_price'];
$gift_price_box += $gift_box[$i]['gift_price']; $gift_box[0]['gift_id'] = $ext['gift_id'];
Log::record("盲盒礼物".json_encode($gift_box1),"info"); $gift_box[0]['gift_price'] = $ext['all_gift_price'];
$gift_box[0]['give_gift_id'] = $give_gift;
}else{
for($i = 0; $i < $num; $i++){
$gift_box1[$i] = $this -> open_box($gid,$uid,$to_id,$from_id);
if($gift_box1[$i]['code'] != 1){
Db::rollback();
return ['code' => 0, 'msg' => '盲盒配置有误请联系管理员'.$gift_box1[$i]['msg'], 'data' => null];
}
$gift_box[$i] = $gift_box1[$i]['data'];
//记录一下收礼记录
$give_gift = $this -> change_user_give_gift_log($uid,$gift_box[$i]['gift_id'],$gift_box[$i]['gift_price'],1,$to_id,$from_type,$type,$from_id,$pit_number,2);
if(!$give_gift){
Db::rollback();
return ['code' => 0, 'msg' => '送礼失败', 'data' => null];
}
$gift_box[$i]['give_gift_id'] = $give_gift;
$gift_price_box += $gift_box[$i]['gift_price'];
Log::record("盲盒礼物".json_encode($gift_box1),"info");
}
} }
$gift_total += $gift_price_box; $gift_total += $gift_price_box;
$gift_price = $gift_price_box; $gift_price = $gift_price_box;
@@ -161,6 +182,7 @@ class GiveGift extends Model
return ['code' => 0, 'msg' => '送礼失败', 'data' => null]; return ['code' => 0, 'msg' => '送礼失败', 'data' => null];
} }
} }
$gift_user_data[$k]['gift_price'] = $gift_price;
//计算收礼人得益 //计算收礼人得益
$receiver_earnings = $this -> receiver_earnings($to_id,$gift_price,$from_type); $receiver_earnings = $this -> receiver_earnings($to_id,$gift_price,$from_type);
@@ -227,14 +249,14 @@ class GiveGift extends Model
}else{ }else{
$room_owner = Db::name('vs_room')->where(['id'=>$from_id,'apply_status'=>2])->value('user_id'); $room_owner = Db::name('vs_room')->where(['id'=>$from_id,'apply_status'=>2])->value('user_id');
//计算房主收益//room_author_ratio //计算房主收益//room_author_ratio
$room_owner_earnings = $this -> receiver_earnings($room_owner,$gift_price,99); $room_owner_earnings = $this -> receiver_earnings($room_owner,$gift_price,99);//结果是钻石
if($room_owner_earnings > 0){ if($room_owner_earnings > 0){
//主持人收益 //主持人收益
//在主持位的主持人 //在主持位的主持人
$host_id = Db::name('vs_room_pit')->where(['room_id'=>$from_id,'pit_number'=>9])->value('user_id'); $host_id = Db::name('vs_room_pit')->where(['room_id'=>$from_id,'pit_number'=>9])->value('user_id');
if($host_id){ if($host_id){
//计算主持人收益 //计算主持人收益
$host_earnings = $this -> receiver_earnings($host_id,$room_owner_earnings,98,$from_id); $host_earnings = $this -> receiver_earnings($host_id,$room_owner_earnings*get_system_config_value('rmb_coin_ratio'),98,$from_id);
if($host_earnings > 0){ if($host_earnings > 0){
//增加主持人收益并记录日志 //增加主持人收益并记录日志
$host_earnings_earning = $this -> change_user_cion_or_earnings_log($host_id,$host_earnings,$from_id,2,19,'主持人收益'); $host_earnings_earning = $this -> change_user_cion_or_earnings_log($host_id,$host_earnings,$from_id,2,19,'主持人收益');
@@ -244,11 +266,14 @@ class GiveGift extends Model
} }
//增加房主收益并记录日志 //增加房主收益并记录日志
$room_owner_earningss = $room_owner_earnings - $host_earnings; $room_owner_earningss = $room_owner_earnings - $host_earnings;
$room_owner_earning = $this -> change_user_cion_or_earnings_log($room_owner,$room_owner_earningss,$from_id,2,18,'房主收益'); if($room_owner_earningss > 0){
if(!$room_owner_earning){ $room_owner_earning = $this -> change_user_cion_or_earnings_log($room_owner,$room_owner_earningss,$from_id,2,18,'房主收益');
Db::rollback(); if(!$room_owner_earning){
return ['code' => 0, 'msg' => '房主收益失败', 'data' => null]; Db::rollback();
return ['code' => 0, 'msg' => '房主收益失败', 'data' => null];
}
} }
}else{ }else{
//增加房主收益并记录日志 //增加房主收益并记录日志
$room_owner_earning = $this -> change_user_cion_or_earnings_log($room_owner,$room_owner_earnings,$from_id,2,18,'房主收益'); $room_owner_earning = $this -> change_user_cion_or_earnings_log($room_owner,$room_owner_earnings,$from_id,2,18,'房主收益');
@@ -257,6 +282,13 @@ class GiveGift extends Model
return ['code' => 0, 'msg' => '房主收益失败', 'data' => null]; return ['code' => 0, 'msg' => '房主收益失败', 'data' => null];
} }
} }
}else{
//增加房主收益并记录日志
$room_owner_earning = $this -> change_user_cion_or_earnings_log($room_owner,$room_owner_earnings,$from_id,2,18,'房主收益');
if(!$room_owner_earning){
Db::rollback();
return ['code' => 0, 'msg' => '房主收益失败', 'data' => null];
}
} }
} }
} }
@@ -285,7 +317,9 @@ class GiveGift extends Model
//平台收益 = 总金额 - 收礼人收益 - 房主收益 - 工会长收益 //平台收益 = 总金额 - 收礼人收益 - 房主收益 - 工会长收益
$app_ratio = 100 - $ratio - $configs['room_author_ratio'] - $guid_ratio; $app_ratio = 100 - $ratio - $configs['room_author_ratio'] - $guid_ratio;
$app_earning = coin_earning($gv['gift_price'], $app_ratio); $app_earning = coin_earning($gv['gift_price'], $app_ratio);
$gift_rate = $this->change_give_gift_profit($gv['give_gift_id'], $ratio, $receiver_earnings, $configs['room_author_ratio'], $room_owner_earnings, $app_ratio, $app_earning); $receiver_earningss = $this -> receiver_earnings($to_id,$gv['gift_price'],$from_type);
$room_owner_earningss = $this -> receiver_earnings($room_owner,$gv['gift_price'],99);//结果是钻石
$gift_rate = $this->change_give_gift_profit($gv['give_gift_id'], $ratio, $receiver_earningss, $configs['room_author_ratio'], $room_owner_earningss, $app_ratio, $app_earning);
if (!$gift_rate) { if (!$gift_rate) {
Db::rollback(); Db::rollback();
return ['code' => 0, 'msg' => '礼物记录失败', 'data' => null]; return ['code' => 0, 'msg' => '礼物记录失败', 'data' => null];
@@ -365,136 +399,147 @@ class GiveGift extends Model
} }
} }
//推送礼物特效 //推送礼物特效
if($gift_info['label'] == 2){ if(!isset($ext['is_draw_gift']) || $ext['is_draw_gift'] != 1){// 非盲盒转盘 推送
//循环开出来的盲盒,相同的礼物只推送一次,消息推送为$FromUserInfo['nickname'] . ' 送给 ' . $ToUserInfo['nickname'].' 趣味礼物 ' .$gift_inf['gift_name'].' x 多少'; if($gift_info['label'] == 2){
if($gift_box){ //循环开出来的盲盒,相同的礼物只推送一次,消息推送为$FromUserInfo['nickname'] . ' 送给 ' . $ToUserInfo['nickname'].' 趣味礼物 ' .$gift_inf['gift_name'].' x 多少';
// 统计相同礼物的数量 if($gift_box){
$giftCount = []; // 统计相同礼物的数量
foreach ($gift_box as $gv) { $giftCount = [];
if (isset($giftCount[$gv['gift_id']])) { foreach ($gift_box as $key=>$gv) {
$giftCount[$gv['gift_id']]['count']++; $gift_info = Db::name('vs_gift')->where(['gid'=>$gv['gift_id']])
} else { ->field('gid as gift_id,gift_name,gift_price,file_type,base_image,play_image,gift_type,label,is_public_server')->find();
$giftCount[$gv['gift_id']] = [ if (isset($giftCount[$gv['gift_id']])) {
'gift_info' => Db::name('vs_gift')->where(['gid'=>$gv['gift_id']]) $giftCount[$gv['gift_id']]['count']++;
->field('gid as gift_id,gift_name,gift_price,file_type,base_image,play_image,gift_type,label,is_public_server')->find(), } else {
'count' => 1 $giftCount[$gv['gift_id']] = [
]; 'gift_info' => $gift_info,
'count' => 1
];
}
$gift_box[$key]['gift_name'] = $gift_info['gift_name'];
} }
}
// 构建文字消息内容 // 构建文字消息内容
$giftTextList = []; $giftTextList = [];
foreach ($giftCount as $giftData) { foreach ($giftCount as $giftData) {
$gift_inf = $giftData['gift_info']; $gift_inf = $giftData['gift_info'];
$count = $giftData['count']; $count = $giftData['count'];
$giftTextList[] = $gift_inf['gift_name'].' X'.$count; $giftTextList[] = $gift_inf['gift_name'].' X'.$count;
} }
// 推送文字消息 (格式: 张三 送给 李四 趣味礼物 礼物名1 X2礼物2 X4) // 推送文字消息 (格式: 张三 送给 李四 趣味礼物 礼物名1 X2礼物2 X4)
$textMessage = $FromUserInfo['nickname'] . ' 送给 ' . $ToUserInfo['nickname'].' 趣味礼物 ' . implode('', $giftTextList); $textMessage = $FromUserInfo['nickname'] . ' 送给 ' . $ToUserInfo['nickname'].' 趣味礼物 ' . implode('', $giftTextList);
$textData = [ $textData = [
'FromUserInfo' => $FromUserInfo,
// 'ToUserInfo' => $ToUserInfo,
// 'GiftInfo' => $gift_info,
// 'GiftNum' => $num,
'text' => $textMessage
];
// 聊天室推送文字消息
model('Chat')->sendMsg(1038,$from_id,$textData);
// 循环推送每个礼物的特效消息
foreach ($giftCount as $giftId => $giftData) {
$gift_inf = $giftData['gift_info'];
$count = $giftData['count'];
// 推送礼物特效消息
$effectData = [
'FromUserInfo' => $FromUserInfo, 'FromUserInfo' => $FromUserInfo,
'ToUserInfo' => $ToUserInfo, 'ToUserInfo' => $ToUserInfo,
'GiftInfo' => $gift_inf, 'GiftInfos' => array_values($gift_box),
'GiftNum' => $count, 'GiftNum' => $num,
'text' => null 'text' => $textMessage
]; ];
// 聊天室推送文字消息
model('Chat')->sendMsg(1038,$from_id,$textData);
// 聊天室推送礼物特效消息 // 循环推送每个礼物特效消息
model('Chat')->sendMsg(1005,$from_id,$effectData); foreach ($giftCount as $giftId => $giftData) {
$gift_inf = $giftData['gift_info'];
$count = $giftData['count'];
$roomtype = Db::name('vs_room')->where(['id' => $from_id])->value('type_id'); // 推送礼物特效消息
if($roomtype == 6){ $effectData = [
//推送消息 'FromUserInfo' => $FromUserInfo,
$hot_value = db::name('vs_give_gift')->where('from_id', $from_id)->where('from',6) 'ToUserInfo' => $ToUserInfo,
->sum('total_price'); 'GiftInfo' => $gift_inf,
$text1 = [ 'GiftNum' => $count,
'room_id' => $from_id, 'text' => null
'hot_value' => $hot_value * 10,
'text' => '房间心动值变化'
]; ];
//聊天室推送系统消息
model('Chat')->sendMsg(1028,$from_id,$text1); // 聊天室推送礼物特效消息
}else{ model('Chat')->sendMsg(1005,$from_id,$effectData);
if($gift_inf['is_public_server'] == 1){
//推送礼物横幅 $roomtype = Db::name('vs_room')->where(['id' => $from_id])->value('type_id');
$push = new Push(UID, $from_id); if($roomtype == 6){
$room_name = Db::name('vs_room')->where(['id' => $from_id, 'apply_status' => 2])->value('room_name'); //推送消息
$bannerText = $FromUserInfo['nickname'] . '在' . $room_name . '房间送给了' . $ToUserInfo['nickname'] . $gift_inf['gift_name'] . 'X' . $count; $hot_value = db::name('vs_give_gift')->where('from_id', $from_id)->where('from',6)
$text_list_new = [ ->sum('total_price');
'text' => $bannerText, $text1 = [
'gift_picture' => $gift_inf['base_image'],
'room_id' => $from_id, 'room_id' => $from_id,
'fromUserName' => $FromUserInfo['nickname'], 'hot_value' => $hot_value * 10,
'toUserName' => $ToUserInfo['nickname'], 'text' => '房间心动值变化'
'giftName' => $gift_inf['gift_name'],
'roomId' => $from_id,
'number' => $count,
]; ];
$push->giftBanner($text_list_new); //聊天室推送系统消息
model('Chat')->sendMsg(1028,$from_id,$text1);
//电影房推送结束时间点
$text2 = [
'room_id' => $from_id,
'end_time' => time() + 60 * 60 * 24 * 7,
'text' => '房间结束时间点'
];
model('Chat')->sendMsg(1042,$from_id,$text2);
}else{
if($gift_inf['is_public_server'] == 1){
//推送礼物横幅
$push = new Push(UID, $from_id);
$room_name = Db::name('vs_room')->where(['id' => $from_id, 'apply_status' => 2])->value('room_name');
$bannerText = $FromUserInfo['nickname'] . '在' . $room_name . '房间送给了' . $ToUserInfo['nickname'] . $gift_inf['gift_name'] . 'X' . $count;
$text_list_new[] = [
'text' => $bannerText,
'gift_picture' => $gift_inf['base_image'],
'room_id' => $from_id,
'fromUserName' => $FromUserInfo['nickname'],
'toUserName' => $ToUserInfo['nickname'],
'giftName' => $gift_inf['gift_name'],
'roomId' => $from_id,
'number' => $count,
];
$push->giftBanner($text_list_new);
}
} }
} }
} }
} }else{
$text = $FromUserInfo['nickname'] . ' 送给 ' . $ToUserInfo['nickname'].' 礼物 ' .$gift_info['gift_name'].' x ' .$num;
}else{ $text = [
$text = $FromUserInfo['nickname'] . ' 送给 ' . $ToUserInfo['nickname'].' 礼物 ' .$gift_info['gift_name'].' x ' .$num; 'FromUserInfo' => $FromUserInfo,
$text = [ 'ToUserInfo' => $ToUserInfo,
'FromUserInfo' => $FromUserInfo, 'GiftInfo' => $gift_info,
'ToUserInfo' => $ToUserInfo, 'GiftNum' => $num,
'GiftInfo' => $gift_info, 'text' => $text
'GiftNum' => $num,
'text' => $text
];
//聊天室推送系统消息
model('Chat')->sendMsg(1005,$from_id,$text);
$roomtype = Db::name('vs_room')->where(['id' => $from_id])->value('type_id');
if($roomtype == 6){
//推送消息
$hot_value = db::name('vs_give_gift')->where('from_id', $from_id)->where('from',6)
->sum('total_price');
$text1 = [
'room_id' => $from_id,
'hot_value' => $hot_value * 10,
'text' => '房间心动值变化'
]; ];
//聊天室推送系统消息 //聊天室推送系统消息
model('Chat')->sendMsg(1028,$from_id,$text1); model('Chat')->sendMsg(1005,$from_id,$text);
}else{ $roomtype = Db::name('vs_room')->where(['id' => $from_id])->value('type_id');
if($gift_info['is_public_server'] == 1){ if($roomtype == 6){
//推送礼物横幅 //推送消息
$push = new Push(UID, $from_id); $hot_value = db::name('vs_give_gift')->where('from_id', $from_id)->where('from',6)
$room_name = Db::name('vs_room')->where(['id' => $from_id, 'apply_status' => 2])->value('room_name'); ->sum('total_price');
$text = $FromUserInfo['nickname'] . '在' . $room_name . '房间送给了' . $ToUserInfo['nickname'] . $gift_info['gift_name'] . 'X' . $num; $text1 = [
$text_list_new = [
'text' => $text,
'gift_picture' => $gift_info['base_image'],
'room_id' => $from_id, 'room_id' => $from_id,
'fromUserName' => $FromUserInfo['nickname'], 'hot_value' => $hot_value * 10,
'toUserName' => $ToUserInfo['nickname'], 'text' => '房间心动值变化'
'giftName' => $gift_info['gift_name'],
'roomId' => $from_id,
'number' => $num,
]; ];
$push->giftBanner($text_list_new); //聊天室推送系统消息
} model('Chat')->sendMsg(1028,$from_id,$text1);
}else{
if($gift_info['is_public_server'] == 1){
//推送礼物横幅
$push = new Push($uid, $from_id);
$room_name = Db::name('vs_room')->where(['id' => $from_id, 'apply_status' => 2])->value('room_name');
$text = $FromUserInfo['nickname'] . '在' . $room_name . '房间送给了' . $ToUserInfo['nickname'] . $gift_info['gift_name'] . 'X' . $num;
$text_list_new[] = [
'text' => $text,
'gift_picture' => $gift_info['base_image'],
'room_id' => $from_id,
'fromUserName' => $FromUserInfo['nickname'],
'toUserName' => $ToUserInfo['nickname'],
'giftName' => $gift_info['gift_name'],
'roomId' => $from_id,
'number' => $num,
];
$push->giftBanner($text_list_new);
}
}
} }
} }
//直播间送礼物 每日任务 //直播间送礼物 每日任务
@@ -504,11 +549,330 @@ class GiveGift extends Model
//增加房间火热值hot_value //增加房间火热值hot_value
$gift_totalaa = $gift_total * get_system_config_value('coin_charm_exp'); $gift_totalaa = $gift_total * get_system_config_value('coin_charm_exp');
Db::name('vs_room')->where(['id'=>$from_id,'apply_status'=>2])->setInc('hot_value',$gift_totalaa); db::name('vs_room')->where(['id' => $from_id])->inc('hot_value', $gift_totalaa)->inc('today_hot_value', $gift_totalaa)->update();
Db::name('vs_room')->where(['id'=>$from_id,'apply_status'=>2])->setInc('today_hot_value',$gift_totalaa);
$roomtype = Db::name('vs_room')->where(['id' => $from_id])->value('type_id');
if($roomtype == 6){
//推送消息 交友房创建的私密房 倒计时增加
$value = db::name('vs_room_cp_movie')->where('room_id', $from_id)->where('type',1)
->value('time_day');
if($value){
db::name('vs_room_cp_movie')->where('room_id', $from_id)->where('type',1)
->setInc('time_day', $gift_total);
$text111 = [
'room_id' => $from_id,
'time_day' => db::name('vs_room_cp_movie')->where('room_id', $from_id)->where('type',1)->value('time_day'),
'text' => '房间结束时间变化'
];
//聊天室推送系统消息
model('Chat')->sendMsg(1052,$from_id,$text111);
}
}
Db::commit(); Db::commit();
return ['code' => 1, 'msg' => '送礼成功', 'data' => null]; return ['code' => 1, 'msg' => '送礼成功', 'data' => ['gift_total' => $gift_total,'gift_user_data' =>$gift_user_data]];
}
/*
* 送礼物-盲盒转盘专用
* @param int $uid 用户id
* @param int $from_id 来源id
* @param str $to_uid 接收礼物用户id字符串逗号分隔
* @param int $gid 礼物id
* @param int $num 礼物数量
* @param int $from_type 来源 1聊天送礼物 2房间语聊送礼 3直播送礼 4动态打赏 5系统任务 6-cp房间送礼
* @param int $type 金币购买 1金币购买 2送背包礼物
* @param int $pit_number 坑位编号
* @return array
* 用户,在房间中,给谁,送了什么礼物,多少个,来源
*/
public function give_gift_to_pan($uid,$to_uid,$gid,$num,$from_type,$type,$from_id = 0,$pit_number = 0,$change_type = 0,$ext = [])
{
//送的礼物信息
$gift_info = Db::name('vs_gift')->where(['gid'=>$gid])
->field('gid as gift_id,gift_name,gift_price,file_type,base_image,play_image,gift_type,label,is_public_server')->find();
if(empty($gift_info)){
return ['code' => 0, 'msg' => '礼物不存在', 'data' => null];
}
if(!$to_uid){
return ['code' => 0, 'msg' => '请选择收礼人', 'data' => null];
}
$toarray = explode(',',$to_uid);
if(in_array($uid,$toarray)){
return ['code' => 0, 'msg' => '收礼人不能包含自己', 'data' => null];
}
if (ceil($num) != $num) {
return ['code' => 0, 'msg' => '打赏礼物数量必须为整数', 'data' => null];
}
if ($num < 1) {
return ['code' => 0, 'msg' => '打赏礼物数量必须大于零', 'data' => null];
}
$user_info = Db::name('user')->where(['id'=>$uid,'status'=>1])->find();
if(empty($user_info)){
return ['code' => 301, 'msg' => '当前用户登录失效', 'data' => null];
}
//获取送礼用户昵称
$FromUserInfo = db::name('user')->where('id',$uid)->field('id as user_id,nickname,avatar,sex')->find();
$FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($uid);//财富图标
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($uid);//魅力图标
//送给一人礼物的总价格(扣除用户的数额)
$gift_price = $gift_info['gift_price'] * $num;
$roomId = 0;
if($from_type == 2 || $from_type == 3 || $from_type == 6){
$roomId = $from_id;
}
//循环送礼
$gift_total = 0;
$give_gift = 0;
$gift_user_data = [];
foreach ($toarray as $k => $to_id){
$gift_user_data[]['user_id'] = $to_id;
$gift_box1 = [];
$gift_box = [];
$gift_total += $gift_price;
//收礼记录行为日志
$give_gift = $this -> change_user_give_gift_log($uid,$gid,$gift_price,$num,$to_id,$from_type,$type,$from_id,$pit_number);
if(!$give_gift){
return ['code' => 0, 'msg' => '送礼失败', 'data' => null];
}
$gift_user_data[$k]['gift_price'] = $gift_price;
//计算收礼人得益
$receiver_earnings = $this -> receiver_earnings($to_id,$gift_price,$from_type);
if($receiver_earnings <= 0){
return ['code' => 0, 'msg' => '收礼人收益配置有误', 'data' => null];
}
//1聊天送礼物 2房间语聊送礼 3直播送礼 4动态打赏 5系统任务 6-cp房间送礼
if($from_type == 1 || $from_type == 2 || $from_type == 3 ||$from_type == 4 || $from_type == 6){
//增加收益并记录日志
$receiver = $this -> change_user_cion_or_earnings_log($to_id,$receiver_earnings,$from_id,2,11,'收礼增加收益');
}elseif($from_type == 5){
//增加收益并记录日志
$receiver = $this -> change_user_cion_or_earnings_log($to_id,$receiver_earnings,$from_id,1,$change_type,'活动增加金币');
}else{
$receiver = false;
}
if(!$receiver){
return ['code' => 0, 'msg' => '收礼人收益失败', 'data' => null];
}
//用户魅力等级更新
$user_level = model('Level')->user_level_data_update($to_id,$gift_price,2,$roomId);
if(!$user_level){
return ['code' => 0, 'msg' => '用户等级更新失败', 'data' => null];
}
$room_owner_earnings = 0;//房主收益
$room_owner_earningsg = 0;//公会会长收益
//是否在房间
if(isset($from_id) && ($from_type == 2 || $from_type == 6)){
if($from_type == 6){ //cp电影房
//房主有收益
if(get_system_config_value('room_cp_room_user_ratio') > 0){
$room_owner = Db::name('vs_room')->where(['id'=>$from_id,'apply_status'=>2])->value('user_id');
//计算房主收益//room_author_ratio
$room_owner_earnings = $this -> receiver_earnings($room_owner,$gift_price,699);
if($room_owner_earnings > 0){
//增加收益并记录日志
$room_owner_earning = $this -> change_user_cion_or_earnings_log($room_owner,$room_owner_earnings,$from_id,2,18,'房主收益');
if(!$room_owner_earning){
return ['code' => 0, 'msg' => '房主收益失败', 'data' => null];
}
}
}
//公会长收益
if(get_system_config_value('room_cp_guild_user_ratio') > 0){
$guild_id = Db::name('vs_guild_user')->where(['user_id'=>$to_uid,'status'=>1])->value('guild_id');
if($guild_id){
$room_guild = Db::name('vs_guild')->where(['id'=>$guild_id])->value('user_id');
//计算会长收益
$room_owner_earningsg = $this -> receiver_earnings($room_guild,$gift_price,698);
//增加收益并记录日志
$room_owner_earningg = $this -> change_user_cion_or_earnings_log($room_guild,$room_owner_earningsg,$from_id,2,21,'工会长收益');
if(!$room_owner_earningg){
return ['code' => 0, 'msg' => '工会长收益失败', 'data' => null];
}
}
}
}else{
$room_owner = Db::name('vs_room')->where(['id'=>$from_id,'apply_status'=>2])->value('user_id');
//计算房主收益//room_author_ratio
$room_owner_earnings = $this -> receiver_earnings($room_owner,$gift_price,99);//结果是钻石
if($room_owner_earnings > 0){
//主持人收益
//在主持位的主持人
$host_id = Db::name('vs_room_pit')->where(['room_id'=>$from_id,'pit_number'=>9])->value('user_id');
if($host_id){
//计算主持人收益
$host_earnings = $this -> receiver_earnings($host_id,$room_owner_earnings*get_system_config_value('rmb_coin_ratio'),98,$from_id);
if($host_earnings > 0){
//增加主持人收益并记录日志
$host_earnings_earning = $this -> change_user_cion_or_earnings_log($host_id,$host_earnings,$from_id,2,19,'主持人收益');
if(!$host_earnings_earning){
return ['code' => 0, 'msg' => '主持人收益失败', 'data' => null];
}
//增加房主收益并记录日志
$room_owner_earningss = $room_owner_earnings - $host_earnings;
if($room_owner_earningss > 0){
$room_owner_earning = $this -> change_user_cion_or_earnings_log($room_owner,$room_owner_earningss,$from_id,2,18,'房主收益');
if(!$room_owner_earning){
return ['code' => 0, 'msg' => '房主收益失败', 'data' => null];
}
}
}else{
//增加房主收益并记录日志
$room_owner_earning = $this -> change_user_cion_or_earnings_log($room_owner,$room_owner_earnings,$from_id,2,18,'房主收益');
if(!$room_owner_earning){
return ['code' => 0, 'msg' => '房主收益失败', 'data' => null];
}
}
}else{
//增加房主收益并记录日志
$room_owner_earning = $this -> change_user_cion_or_earnings_log($room_owner,$room_owner_earnings,$from_id,2,18,'房主收益');
if(!$room_owner_earning){
return ['code' => 0, 'msg' => '房主收益失败', 'data' => null];
}
}
}
}
if($gift_info['label'] == 2){
foreach ($gift_box as $gv) {
//记录送礼利率和各方收益
//收礼人是否加入公会
$configs = get_system_config();
$is_join_guild = Db::name('vs_guild_user')->where(['user_id' => $to_uid, 'status' => 1, 'quit_time' => 0])->field('guild_id')->find();
//收益增加 加入工会的收益
if ($is_join_guild) {
$ratiog = $configs['room_gift_guild_ratio'];
} else {
$ratiog = 0;
}
//未加入工会的收益
$ratiogr = $configs['room_gift_ratio'];
//收礼人最终的收益比例
$ratio = $ratiogr + $ratiog;
//房主收益大于0 就代表有收益 且在房间
if ($room_owner_earningsg > 0) {
$guid_ratio = $configs['room_cp_guild_user_ratio'];
} else {
$guid_ratio = 0;
}
//平台收益 = 总金额 - 收礼人收益 - 房主收益 - 工会长收益
$app_ratio = 100 - $ratio - $configs['room_author_ratio'] - $guid_ratio;
$app_earning = coin_earning($gv['gift_price'], $app_ratio);
$receiver_earningss = $this -> receiver_earnings($to_id,$gv['gift_price'],$from_type);
$room_owner_earningss = $this -> receiver_earnings($room_owner,$gv['gift_price'],99);//结果是钻石
$gift_rate = $this->change_give_gift_profit($gv['give_gift_id'], $ratio, $receiver_earningss, $configs['room_author_ratio'], $room_owner_earningss, $app_ratio, $app_earning);
if (!$gift_rate) {
Db::rollback();
return ['code' => 0, 'msg' => '礼物记录失败', 'data' => null];
}
}
}else{
//记录送礼利率和各方收益
//收礼人是否加入公会
$configs = get_system_config();
$is_join_guild = Db::name('vs_guild_user')->where(['user_id' => $to_uid, 'status' => 1, 'quit_time' => 0])->field('guild_id')->find();
//收益增加 加入工会的收益
if ($is_join_guild) {
$ratiog = $configs['room_gift_guild_ratio'];
} else {
$ratiog = 0;
}
//未加入工会的收益
$ratiogr = $configs['room_gift_ratio'];
//收礼人最终的收益比例
$ratio = $ratiogr + $ratiog;
//房主收益大于0 就代表有收益 且在房间
if ($room_owner_earningsg > 0) {
$guid_ratio = $configs['room_cp_guild_user_ratio'];
} else {
$guid_ratio = 0;
}
//平台收益 = 总金额 - 收礼人收益 - 房主收益 - 工会长收益
$app_ratio = 100 - $ratio - $configs['room_author_ratio'] - $guid_ratio;
$app_earning = coin_earning($gift_price, $app_ratio);
$gift_rate = $this->change_give_gift_profit($give_gift, $ratio, $receiver_earnings, $configs['room_author_ratio'], $room_owner_earnings, $app_ratio, $app_earning);
if (!$gift_rate) {
return ['code' => 0, 'msg' => '礼物记录失败', 'data' => null];
}
}
}
$ToUserInfo = Db::name('user')->where(['id' => $to_id])->field('id as user_id,nickname,avatar,sex')->find();
$ToUserInfo['icon'][0] = model('UserData')->user_wealth_icon($to_id);//财富图标
$ToUserInfo['icon'][1] = model('UserData')->user_charm_icon($to_id);//魅力图标
$ToUserInfo['charm'] = db::name('vs_room_user_charm')->where(['user_id' => $to_id,'room_id' => $from_id])->value('charm');//魅力
if(isset($from_id) && ($from_type == 2 || $from_type == 6)){
//查询房间是否在PK中 是fa_vs_room_pk 表中的 room_id_a还是room_id_b
$room_pk = Db::name('vs_room_pk')->where(['status' => 3, 'room_id_a' => $from_id])->field('pk_id')->find();
if (!empty($room_pk)) {
// 当前 room_id 是 room_id_a 修改create_value_a
$rooma = Db::name('vs_room_pk')->where('pk_id', $room_pk['pk_id'])->setInc('create_value_a', $gift_price * 10);
$roomPKinfo = Db::name('vs_room_pk')->where('pk_id', $room_pk['pk_id'])->find();
//推送变化
$text = [
'room_id_a' => $roomPKinfo['room_id_a'],//发起者房间id
'create_value_a' => $roomPKinfo['create_value_a'],//发起者房间值
'room_id_b' => $roomPKinfo['room_id_b'],//接受者房间id
'receive_value_b' => $roomPKinfo['receive_value_b'],//接受者房间值
'text' => ''
];
model('Chat')->sendMsg(1015,$roomPKinfo['room_id_a'],$text);
model('Chat')->sendMsg(1015,$roomPKinfo['room_id_b'],$text);
} else {
// 当前 room_id 不是 room_id_a可能是 room_id_b 或者不存在
$room_pk_b = Db::name('vs_room_pk')->where(['status' => 3, 'room_id_b' => $from_id])->field('pk_id')->find();
if (!empty($room_pk_b)) {
// 当前 room_id 是 room_id_b
$roomb = Db::name('vs_room_pk')->where('pk_id', $room_pk_b['pk_id'])->setInc('receive_value_b', $gift_price * 10);
$roomPKinfo = Db::name('vs_room_pk')->where('pk_id', $room_pk_b['pk_id'])->find();
//推送变化
$text = [
'room_id_a' => $roomPKinfo['room_id_a'],//发起者房间id
'create_value_a' => $roomPKinfo['create_value_a'],//发起者房间值
'room_id_b' => $roomPKinfo['room_id_b'],//接受者房间id
'receive_value_b' => $roomPKinfo['receive_value_b'],//接受者房间值
'text' => ''
];
model('Chat')->sendMsg(1015,$roomPKinfo['room_id_a'],$text);
model('Chat')->sendMsg(1015,$roomPKinfo['room_id_b'],$text);
}
}
//直播间送礼物 每日任务
model('DailyTasks')->tasks_complete($uid,3);
}
}
//增加房间火热值hot_value
$gift_totalaa = $gift_total * get_system_config_value('coin_charm_exp');
db::name('vs_room')->where(['id' => $from_id])->inc('hot_value', $gift_totalaa)->inc('today_hot_value', $gift_totalaa)->update();
$roomtype = Db::name('vs_room')->where(['id' => $from_id])->value('type_id');
if($roomtype == 6){
//推送消息 交友房创建的私密房 倒计时增加
$value = db::name('vs_room_cp_movie')->where('room_id', $from_id)->where('type',1)
->value('time_day');
if($value){
db::name('vs_room_cp_movie')->where('room_id', $from_id)->where('type',1)
->setInc('time_day', $gift_total);
$text111 = [
'room_id' => $from_id,
'time_day' => db::name('vs_room_cp_movie')->where('room_id', $from_id)->where('type',1)->value('time_day'),
'text' => '房间结束时间变化'
];
//聊天室推送系统消息
model('Chat')->sendMsg(1052,$from_id,$text111);
}
}
return ['code' => 1, 'msg' => '送礼成功', 'data' => ['gift_total' => $gift_total,'gift_user_data' =>$gift_user_data]];
} }
//送礼特效 //送礼特效
@@ -612,7 +976,7 @@ class GiveGift extends Model
} }
}elseif(in_array($change_type,$out_types)){ }elseif(in_array($change_type,$out_types)){
//减少用户金币 //减少用户金币
$res1 = Db::name('user_wallet')->where(['user_id'=>$user_id])->setDec('coin',$money); $res1 = Db::name('user_wallet')->where(['user_id'=>$user_id,'coin'=>['>=',$money]])->setDec('coin',$money);
if(!$res1){ if(!$res1){
return false; return false;
} }
@@ -1015,7 +1379,7 @@ class GiveGift extends Model
/* /*
* 开盲盒 * 开盲盒
*/ */
public function open_box($gift_id,$user_id,$gift_user_id,$room_id=0){ public function open_box($gift_id,$user_id,$gift_user_id,$room_id=0,$gift_bag_id=0){
//获取盲盒配置 //获取盲盒配置
$bag_list = db::name("vs_gift_bag")->field('id,name,ext,periods')->where(['activities_id'=>4,'status'=>1])->select(); $bag_list = db::name("vs_gift_bag")->field('id,name,ext,periods')->where(['activities_id'=>4,'status'=>1])->select();
$gift_bag_id = 0; $gift_bag_id = 0;

View File

@@ -17,9 +17,9 @@ class Guild extends Model
* @param $page * @param $page
* @param $limit * @param $limit
*/ */
public function get_guild_list($page,$limit=10,$search='',$user_id=0) public function get_guild_list($page,$page_limit,$search='',$user_id=0)
{ {
$where ="1=1"; $where =[];
if ($search) { if ($search) {
$where = ['guild_special_id'=>['like',$search.'%']]; //通过工会ID搜索 $where = ['guild_special_id'=>['like',$search.'%']]; //通过工会ID搜索
} }
@@ -28,8 +28,7 @@ class Guild extends Model
->field('id,guild_special_id,user_id,guild_name,cover,num,intro,createtime,income') ->field('id,guild_special_id,user_id,guild_name,cover,num,intro,createtime,income')
->where(['is_show'=>1,'delete_time'=>0]) ->where(['is_show'=>1,'delete_time'=>0])
->where($where) ->where($where)
->order('income desc') ->page($page, $page_limit)
->page($page,$limit)
->select(); ->select();
$count = Db::name('vs_guild') $count = Db::name('vs_guild')
->where(['is_show'=>1,'delete_time'=>0]) ->where(['is_show'=>1,'delete_time'=>0])
@@ -62,7 +61,7 @@ class Guild extends Model
} }
$data =[ $data =[
'page' => $page, 'page' => $page,
'limit' => $limit, 'limit' => $page_limit,
'count' => $count, 'count' => $count,
'list' => $list 'list' => $list
]; ];
@@ -525,7 +524,7 @@ class Guild extends Model
//成员解散 //成员解散
db::name('vs_guild_user')->where(['guild_id'=>$guild_id,'status'=>1,'delete_time'=>0])->update(['delete_time'=>time(),'quit_type'=>3,'quit_time'=>time()]); db::name('vs_guild_user')->where(['guild_id'=>$guild_id,'status'=>1,'delete_time'=>0])->update(['delete_time'=>time(),'quit_type'=>3,'quit_time'=>time()]);
//解散公会 //解散公会
db::name('vs_guild')->where('id',$guild_id)->update(['delete_time'=>time(),'is_show'=>2,'num'=>0,'guild_special_id'=>""]); db::name('vs_guild')->where('id',$guild_id)->update(['delete_time'=>time(),'status'=>2]);
//解散群 //解散群
model('Tencent')->delete_group('g'.$guild_id); model('Tencent')->delete_group('g'.$guild_id);
Db::commit(); Db::commit();
@@ -610,8 +609,8 @@ class Guild extends Model
//规则 //规则
$data['rule'] = get_system_config_value('web_site').'/api/Page/page_show?id=15'; $data['rule'] = get_system_config_value('web_site').'/api/Page/page_show?id=15';
//上周流水 //上周流水
$week_start = date('Y-m-d', strtotime('last monday')); $week_start = date('Y-m-d 00:00:00', strtotime('last week Monday'));
$week_end = date('Y-m-d', strtotime('last monday +6 days')); $week_end = date('Y-m-d 23:59:59', strtotime('last week Monday +6 days'));
$guild_subsidy = db::name('vs_guild_subsidy') $guild_subsidy = db::name('vs_guild_subsidy')
->where(["guild_id"=>$guild_id,'start_time' => $week_start, 'end_time' => $week_end]) ->where(["guild_id"=>$guild_id,'start_time' => $week_start, 'end_time' => $week_end])
->find(); ->find();
@@ -622,18 +621,38 @@ class Guild extends Model
$data['list'][0]['status_str'] = isset( $guild_subsidy['status'])&& $guild_subsidy['status']==1 ? "已发放" : "未发放"; $data['list'][0]['status_str'] = isset( $guild_subsidy['status'])&& $guild_subsidy['status']==1 ? "已发放" : "未发放";
//本周流水 //本周流水
//本周的第一天 //本周的第一天
$week = strtotime(date('Y-m-d', strtotime('this week Monday'))); $week = strtotime(date('Y-m-d 00:00:00', strtotime('this week Monday')));
$guild_user = db::name('vs_guild_user')->where(['guild_id' => $guild_id,'status'=>1,"delete_time"=>null])->select(); $guild_user = db::name('vs_guild_user')->where(['guild_id' => $guild_id])->select();
$guild_user_ids = array_column($guild_user,'room_id'); $transaction = 0;
$total_transaction = db::name('vs_give_gift') foreach ($guild_user as $k => $v){
->where(['from'=>2,'from_id' => ['in',$guild_user_ids],'createtime' => ['between', [$week, time()]]]) $week_start_time_seach = $week;
->sum('total_price'); $week_end_time_seach = time();
if($v['createtime'] && $week_start_time_seach < $v['createtime']){
$week_start_time_seach = $v['createtime'];
}
if($v['quit_time'] && ($week_end_time_seach > $v['quit_time'])){
$week_end_time_seach = $v['quit_time'];
}
$transaction_one = db::name('vs_give_gift')
->whereIn('from_id',$v['room_id'])
->where(['from'=>['in',[2,3,6]],'createtime' => ['between', [$week_start_time_seach, $week_end_time_seach]]])
->sum('total_price');
$transaction += $transaction_one;
}
$total_transaction = $transaction;
$ss = 0; $ss = 0;
if($total_transaction){ if($total_transaction){
//根据工会流水 获取补贴比例 单位% //根据工会流水 获取补贴比例 单位%
$subsidy_config = db::name('vs_guild_subsidy_config')->where('start_amount <= '. $total_transaction) //获取补贴配置
->where('end_amount > '. $total_transaction)->getField('subsidy_ratio'); $config = db::name('vs_guild_subsidy_config')->where(['status' => 1])->order('end_amount desc')->select(); //配置查询
$ss = $total_transaction * ($subsidy_config / 100); foreach ($config as $k => $v) {
if ($total_transaction >= $v['end_amount']) {
$subsidy_ratio = $v['subsidy_ratio'];
$ss = ($total_transaction * ($subsidy_ratio / 100)) / get_system_config_value('rmb_coin_ratio');//转为钻石
break; // 找到匹配项后提前退出循环
}
}
} }
//待开发 //待开发
$data['list'][1]['name'] = "本周流水"; $data['list'][1]['name'] = "本周流水";
@@ -651,62 +670,68 @@ class Guild extends Model
$coin_consumption_type_array = model('common/UserWallet')->coin_consumption_type_array; $coin_consumption_type_array = model('common/UserWallet')->coin_consumption_type_array;
$coin_consumption_type_array = array_diff($coin_consumption_type_array, [model('common/UserWallet')::OPERATION_CONSUME]); $coin_consumption_type_array = array_diff($coin_consumption_type_array, [model('common/UserWallet')::OPERATION_CONSUME]);
// // 获取所有工会成员的 user_id // 总消费 - 需要按时间限制并只统计加入工会后的消费
// $all_guild_users = Db::name('vs_guild_user') if (!$start_time || !$end_time) {
// ->where(['guild_id' => $guild_id, 'status' => 1, 'delete_time' => 0]) // 如果没有指定时间范围,则查询所有记录
// ->column('user_id'); $start_time_filter = 0;
// $end_time_filter = time();
// // 批量查询总消费 } else {
// $total_consumption = Db::name('vs_user_money_log') $start_time_filter = strtotime($start_time." 00:00:00");
// ->whereIn('change_type', $coin_consumption_type_array) $end_time_filter = strtotime($end_time." 23:59:59");
// ->where(['money_type' => 1, 'createtime' => ['between', [$start_time, $end_time]]]) }
// ->whereIn('user_id', $all_guild_users)
// ->sum('change_value'); // 所有工会成员
//总消费
//所有工会成员
$all_guild_user = db::name('vs_guild_user')->where(['guild_id' => $guild_id,'status'=>1,"delete_time"=>0])->select(); $all_guild_user = db::name('vs_guild_user')->where(['guild_id' => $guild_id,'status'=>1,"delete_time"=>0])->select();
$total_consumption = 0; $total_consumption = 0;
foreach ($all_guild_user as $key => $value) { foreach ($all_guild_user as $key => $value) {
if(!$start_time){ // 计算时间范围:取工会加入时间和指定时间范围的较大值作为开始时间
$start_time_all = $value['createtime']; $actual_start_time = max($value['createtime'], $start_time_filter);
$end_time_all = time(); $actual_end_time = $end_time_filter;
}else{
$start_time_all = strtotime($start_time." 00:00:00"); // 如果开始时间大于结束时间,则跳过该用户
$end_time_all = strtotime($end_time." 23:59:59"); if ($actual_start_time > $actual_end_time) {
continue;
} }
$consumption = db::name('vs_user_money_log') $consumption = db::name('vs_user_money_log')
->whereIn('change_type',$coin_consumption_type_array) ->whereIn('change_type',$coin_consumption_type_array)
->where(['money_type'=>1,'user_id' => $value['user_id'],'createtime' => ['between', [$start_time_all, $end_time_all]]]) ->where(['money_type'=>1,'user_id' => $value['user_id']])
->where('createtime', '>=', $actual_start_time)
->where('createtime', '<=', $actual_end_time)
->sum('change_value'); ->sum('change_value');
$total_consumption = $total_consumption+$consumption; $total_consumption = $total_consumption + ($consumption ?: 0);
} }
if (!$start_time || !$end_time) { if (!$start_time || !$end_time) {
$start_time = strtotime('-1 month'); // 默认最近一个月 // 如果没有指定时间范围,则查询所有记录
$start_time = 0;
$end_time = time(); $end_time = time();
}else{ }else{
$start_time = strtotime($start_time." 00:00:00"); $start_time = strtotime($start_time." 00:00:00");
$end_time = strtotime($end_time." 23:59:59"); $end_time = strtotime($end_time." 23:59:59");
} }
// 查询成员列表及各自消费 // 查询成员列表及各自消费
$list = Db::name('vs_guild_user') $list = Db::name('vs_guild_user')
->alias('a') ->alias('a')
->join('user b', 'a.user_id = b.id') ->join('user b', 'a.user_id = b.id')
->join('vs_user_money_log c', 'a.user_id = c.user_id AND c.money_type = 1 AND c.change_type IN (' . implode(',', $coin_consumption_type_array) . ') AND c.createtime BETWEEN ' . $start_time . ' AND ' . $end_time, 'LEFT') ->join('vs_user_money_log c', 'a.user_id = c.user_id AND c.money_type = 1 AND c.change_type IN (' . implode(',', $coin_consumption_type_array) . ') AND c.createtime >= a.createtime' . ($start_time ? ' AND c.createtime >= ' . $start_time : '') . ($end_time ? ' AND c.createtime <= ' . $end_time : ''), 'LEFT')
->field('a.id, a.user_id, a.guild_id, a.room_id, a.status, a.is_deacon, b.nickname, b.avatar, b.user_code, a.createtime, a.apply_time, SUM(c.change_value) AS total_consumption') ->field('a.id, a.user_id, a.guild_id, a.room_id, a.status, a.is_deacon, b.nickname, b.avatar, b.user_code, a.createtime, a.apply_time, SUM(c.change_value) AS total_consumption')
->where(['a.guild_id' => $guild_id, 'a.status' => 1,'a.delete_time' => 0]) ->where(['a.guild_id' => $guild_id, 'a.status' => 1,'a.delete_time' => 0])
->group('a.user_id') ->group('a.user_id')
->order('a.id asc') ->order('a.id asc')
->page($page, $page_limit) ->page($page, $page_limit)
->select(); ->select();
$count = Db::name('vs_guild_user') $count = Db::name('vs_guild_user')
->alias('a') ->alias('a')
->join('user b', 'a.user_id = b.id') ->join('user b', 'a.user_id = b.id')
->join('vs_user_money_log c', 'a.user_id = c.user_id AND c.money_type = 1 AND c.change_type IN (' . implode(',', $coin_consumption_type_array) . ') AND c.createtime BETWEEN ' . $start_time . ' AND ' . $end_time, 'LEFT') ->join('vs_user_money_log c', 'a.user_id = c.user_id AND c.money_type = 1 AND c.change_type IN (' . implode(',', $coin_consumption_type_array) . ') AND c.createtime >= a.createtime' . ($start_time ? ' AND c.createtime >= ' . $start_time : '') . ($end_time ? ' AND c.createtime <= ' . $end_time : ''), 'LEFT')
->field('a.id, a.user_id, a.guild_id, a.room_id, a.status, a.is_deacon, b.nickname, b.avatar, b.user_code, a.createtime, a.apply_time, SUM(c.change_value) AS total_consumption') ->field('a.id, a.user_id, a.guild_id, a.room_id, a.status, a.is_deacon, b.nickname, b.avatar, b.user_code, a.createtime, a.apply_time, SUM(c.change_value) AS total_consumption')
->where(['a.guild_id' => $guild_id, 'a.status' => 1,'a.delete_time' => 0]) ->where(['a.guild_id' => $guild_id, 'a.status' => 1,'a.delete_time' => 0])
->group('a.user_id') ->group('a.user_id')
->count(); ->count();
$data = []; $data = [];
foreach ($list as $k => $v) { foreach ($list as $k => $v) {
$data[$k]['id'] = $v['id']; $data[$k]['id'] = $v['id'];
@@ -748,9 +773,15 @@ class Guild extends Model
$start_time_all = strtotime($start_time." 00:00:00"); $start_time_all = strtotime($start_time." 00:00:00");
$end_time_all = strtotime($end_time." 23:59:59"); $end_time_all = strtotime($end_time." 23:59:59");
} }
if($value['createtime'] && $start_time_all < $value['createtime']){
$start_time_all = $value['createtime'];
}
if($value['quit_time'] && ($end_time_all > $value['quit_time'])){
$end_time_all = $value['quit_time'];
}
$transaction = db::name('vs_give_gift') $transaction = db::name('vs_give_gift')
->where('from_id',$value['room_id']) ->where('from_id',$value['room_id'])
->where(['from'=>2,'createtime' => ['between', [$start_time_all, $end_time_all]]]) ->where(['from'=>['in',[2,3,6]],'createtime' => ['between', [$start_time_all, $end_time_all]]])
->sum('total_price'); ->sum('total_price');
$total_transaction = $total_transaction+$transaction; $total_transaction = $total_transaction+$transaction;
} }
@@ -765,11 +796,17 @@ class Guild extends Model
$i=0; $i=0;
foreach ($list as $k=>$v){ foreach ($list as $k=>$v){
if(!$start_time){ if(!$start_time){
$start_time = $v['createtime']; $start_time_seach = $value['createtime'];
$end_time = time(); $end_time_seach = time();
}else{ }else{
$start_time = strtotime($start_time." 00:00:00"); $start_time_seach = strtotime($start_time." 00:00:00");
$end_time = strtotime($end_time." 23:59:59"); $end_time_seach = strtotime($end_time." 23:59:59");
}
if($value['createtime'] && $start_time_all < $value['createtime']){
$start_time_seach = $value['createtime'];
}
if($value['quit_time'] && ($end_time_all > $value['quit_time'])){
$end_time_seach = $value['quit_time'];
} }
$room_info = db::name('vs_room')->where(['id'=>$v['room_id'],'room_status'=>1,'delete_time'=>0])->find(); $room_info = db::name('vs_room')->where(['id'=>$v['room_id'],'room_status'=>1,'delete_time'=>0])->find();
if($room_info){ if($room_info){
@@ -779,7 +816,7 @@ class Guild extends Model
$room_data[$i]['room_cover'] = localpath_to_netpath($room_info['room_cover']); $room_data[$i]['room_cover'] = localpath_to_netpath($room_info['room_cover']);
$room_data[$i]['total_price'] = db::name('vs_give_gift') $room_data[$i]['total_price'] = db::name('vs_give_gift')
->where('from_id',$v['room_id']) ->where('from_id',$v['room_id'])
->where(['from'=>2,'createtime' => ['between', [$start_time, $end_time]]]) ->where(['from'=>['in',[2,3,6]],'createtime' => ['between', [$start_time_seach, $end_time_seach]]])
->sum('total_price'); ->sum('total_price');
$i++; $i++;
} }

View File

@@ -66,6 +66,7 @@ class Invited extends Model
$invited_draw_conf = get_system_config_value('invited_draw');//分成比例 $invited_draw_conf = get_system_config_value('invited_draw');//分成比例
$invited_draw = $invited_draw_conf / 100; $invited_draw = $invited_draw_conf / 100;
$invited_draw_money = $money * $invited_draw; $invited_draw_money = $money * $invited_draw;
$invited_draw_money = $invited_draw_money / intval(get_system_config_value('rmb_coin_ratio')); //金币换算成钻石
//修改用户资金 //修改用户资金
$reslut = model('common/UserWallet')->change_user_money($invited_user_id, $invited_draw_money, model('common/UserWallet')::MONEYTYPEARNINGS, model('common/UserWallet')::OPERATION_INVITE_REBATE, '邀请用户充值返利'); $reslut = model('common/UserWallet')->change_user_money($invited_user_id, $invited_draw_money, model('common/UserWallet')::MONEYTYPEARNINGS, model('common/UserWallet')::OPERATION_INVITE_REBATE, '邀请用户充值返利');
if($reslut['code'] == 1){ if($reslut['code'] == 1){
@@ -103,7 +104,7 @@ class Invited extends Model
//查询用户昵称 //查询用户昵称
$v['nickname'] = model('User')->where('id', $v['sub_user_id'])->value('nickname'); $v['nickname'] = model('User')->where('id', $v['sub_user_id'])->value('nickname');
$v['coin'] = intval($v['coin']); $v['coin'] = intval($v['coin']);
$v['earnings'] = intval($v['earnings']); $v['earnings'] = number_format($v['earnings'], 2, '.', ''); // 保留两位小数
$v['proportion'] = intval($v['proportion']); $v['proportion'] = intval($v['proportion']);
} }
return ['code' => 1, 'msg' => '获取成功', 'data' => $list]; return ['code' => 1, 'msg' => '获取成功', 'data' => $list];

View File

@@ -27,6 +27,7 @@ class Level extends Model
{ {
//规则 //规则
$return['rule_url'] = get_system_config_value('web_site')."/api/Page/page_show?id=10"; $return['rule_url'] = get_system_config_value('web_site')."/api/Page/page_show?id=10";
$return['coin_charm_exp'] = get_system_config_value('coin_charm_exp');
//用户信息 //用户信息
$user = model('User')->get_user_info($uid); $user = model('User')->get_user_info($uid);
//用户头像 //用户头像
@@ -53,14 +54,15 @@ class Level extends Model
//距离下个等级需要的经验 //距离下个等级需要的经验
$return['user']['next_level'] = $user['charm_level']+1; $return['user']['next_level'] = $user['charm_level']+1;
$return['user']['next_level_str'] = 'Lv.'.$return['user']['next_level']; $return['user']['next_level_str'] = 'Lv.'.$return['user']['next_level'];
$return['user']['next_exp'] = $user_level['next_level_exp'] - $user['wealth_exp']; $next_exp = $user_level['next_level_exp'] - $user['charm_exp'];
$return['user']['next_exp'] = $next_exp <= 0 ? 0 : $next_exp;
$return['user']['next_rights_icon'] = $user_level['next_rights_icon']; $return['user']['next_rights_icon'] = $user_level['next_rights_icon'];
} }
//获取等级 //获取等级
// 获取用户当前等级 // 获取用户当前等级
$currentUserLevel = $user['charm_level']; $currentUserLevel = $user['charm_level'];
if($currentUserLevel == 0){ if($currentUserLevel == 1){
$level = Db::name('vs_charm_level') $level = Db::name('vs_charm_level')
->where('status', 1) ->where('status', 1)
->order('level', 'asc') ->order('level', 'asc')
@@ -89,7 +91,7 @@ class Level extends Model
$return['level'][$key]['name'] = $value['name']; $return['level'][$key]['name'] = $value['name'];
$return['level'][$key]['change_value'] = $value['change_value']; $return['level'][$key]['change_value'] = $value['change_value'];
//当前用户距离当前段位的距离 //当前用户距离当前段位的距离
$return['level'][$key]['distance'] = $value['change_value'] - $user['wealth_exp']; $return['level'][$key]['distance'] = $value['change_value'] - $user['charm_exp'];
$return['level'][$key]['rights_icon'] = $value['rights_icon']; $return['level'][$key]['rights_icon'] = $value['rights_icon'];
} }
} }
@@ -107,6 +109,7 @@ class Level extends Model
{ {
//规则 //规则
$return['rule_url'] = get_system_config_value('web_site')."/api/Page/page_show?id=11"; $return['rule_url'] = get_system_config_value('web_site')."/api/Page/page_show?id=11";
$return['coin_wealth_exp'] = get_system_config_value('coin_wealth_exp');
//用户信息 //用户信息
$user = model('User')->get_user_info($uid); $user = model('User')->get_user_info($uid);
//用户头像 //用户头像
@@ -142,13 +145,14 @@ class Level extends Model
//距离下个等级需要的经验 //距离下个等级需要的经验
$return['user']['next_level'] = $user['wealth_level']+1; $return['user']['next_level'] = $user['wealth_level']+1;
$return['user']['next_level_str'] = 'Lv.'.$return['user']['next_level']; $return['user']['next_level_str'] = 'Lv.'.$return['user']['next_level'];
$return['user']['next_exp'] = $user_level['next_level_exp'] - $user['wealth_exp']; $next_exp = $user_level['next_level_exp'] - $user['wealth_exp'];
$return['user']['next_exp'] = $next_exp <= 0 ? 0 : $next_exp;
$return['user']['next_coins'] = $user_level['next_coins']; $return['user']['next_coins'] = $user_level['next_coins'];
} }
//获取等级 //获取等级
// 获取用户当前等级 // 获取用户当前等级
$currentUserLevel = $user['wealth_level']; $currentUserLevel = $user['wealth_level'];
if($currentUserLevel == 0){ if($currentUserLevel == 1){
$level = Db::name('vs_wealth_level') $level = Db::name('vs_wealth_level')
->where('status', 1) ->where('status', 1)
->order('level', 'asc') ->order('level', 'asc')
@@ -226,11 +230,11 @@ class Level extends Model
$return['next_level_icon'] = $next_level_data['image']; $return['next_level_icon'] = $next_level_data['image'];
$return['next_coins'] = $next_level_data['coins']; $return['next_coins'] = $next_level_data['coins'];
}else{ }else{
$return['next_level'] = 0; $return['next_level'] = $level_data['level'];
$return['next_level_name'] = ''; $return['next_level_name'] = $level_data['name'];
$return['next_level_exp'] = 0; $return['next_level_exp'] = $level_data['change_value'];
$return['next_level_icon'] = ''; $return['next_level_icon'] = $level_data['image'];
$return['next_coins'] = 0; $return['next_coins'] = $level_data['coins'];
} }
return $return; return $return;
} }
@@ -264,11 +268,11 @@ class Level extends Model
$return['next_level_icon'] = $next_level_data['image']; $return['next_level_icon'] = $next_level_data['image'];
$return['next_rights_icon'] = $next_level_data['rights_icon']; $return['next_rights_icon'] = $next_level_data['rights_icon'];
}else{ }else{
$return['next_level'] = 0; $return['next_level'] = $level_data['level'];
$return['next_level_name'] = ''; $return['next_level_name'] = $level_data['name'];
$return['next_level_exp'] = 0; $return['next_level_exp'] = $level_data['change_value'];
$return['next_level_icon'] = ''; $return['next_level_icon'] = $level_data['image'];
$return['next_rights_icon'] = ""; $return['next_rights_icon'] = $level_data['rights_icon'];
} }
return $return; return $return;
} }
@@ -289,10 +293,11 @@ class Level extends Model
$user_wealth_level = $user['wealth_level']; $user_wealth_level = $user['wealth_level'];
$user_wealth_exp = $user['wealth_exp'] + $wealth_exp; $user_wealth_exp = $user['wealth_exp'] + $wealth_exp;
//判断是否达到下一级别 //判断是否达到下一级别
$user_wealth = $this->get_wealth_level_to_level($user_wealth_level); $user_wealth = $this->get_wealth_level_to_level_vlue($user_wealth_exp);
if($user_wealth_exp>= $user_wealth['exp']){ // if($user_wealth_level>= $user_wealth['level']){
$user_wealth_level= $user_wealth['next_level']; // $user_wealth_level= $user_wealth['level'];
} // }
$user_wealth_level= $user_wealth['level'];
$update_data = []; $update_data = [];
$update_data['wealth_level'] = $user_wealth_level; $update_data['wealth_level'] = $user_wealth_level;
$update_data['wealth_exp'] = $user_wealth_exp; $update_data['wealth_exp'] = $user_wealth_exp;
@@ -319,10 +324,11 @@ class Level extends Model
$user_charm_level = $user['charm_level']; $user_charm_level = $user['charm_level'];
$user_charm_exp = $user['charm_exp'] + $charm_exp; $user_charm_exp = $user['charm_exp'] + $charm_exp;
//判断是否达到下一级别 //判断是否达到下一级别
$user_charm = $this->get_charm_level_to_level($user_charm_level); $user_charm = $this->get_charm_level_to_level_vlue($user_charm_exp);
if($user_charm_exp>= $user_charm['exp']){ // if($user_charm_level != $user_charm['level']){
$user_charm_level= $user_charm['next_level']; // $user_charm_level = $user_charm['level'];
} // }
$user_charm_level = $user_charm['level'];
$update_data = []; $update_data = [];
$update_data['charm_level'] = $user_charm_level; $update_data['charm_level'] = $user_charm_level;
$update_data['charm_exp'] = $user_charm_exp; $update_data['charm_exp'] = $user_charm_exp;
@@ -412,4 +418,45 @@ class Level extends Model
} }
return ['code' => 1, 'msg' => "成功", 'data' => null]; return ['code' => 1, 'msg' => "成功", 'data' => null];
} }
/*
* 通过魅力值获取对应等级
*/
public function get_charm_level_to_level_vlue($charm_level){
$return = [];
$level_data = Db::name('vs_charm_level')->where(["change_value"=>['<',$charm_level]])->order('change_value','desc')->find();
if($level_data){
$return['level'] = $level_data['level'];
$return['level_name'] = $level_data['name'];
$return['exp'] = $level_data['change_value'];
$return['level_icon'] = $level_data['image'];
}else{
$return['level'] = 0;
$return['level_name'] = '';
$return['exp'] = 0;
$return['level_icon'] = '';
$return['rights_icon'] = "";
}
return $return;
}
/*
* 通过财富值获取对应等级
*/
public function get_wealth_level_to_level_vlue($wealth_level){
$return = [];
$level_data = Db::name('vs_wealth_level')->where(["change_value"=>['<',$wealth_level]])->order('change_value','desc')->find();
if($level_data){
$return['level'] = $level_data['level'];
$return['level_name'] = $level_data['name'];
$return['exp'] = $level_data['change_value'];
$return['level_icon'] = $level_data['image'];
}else{
$return['level'] = 0;
$return['level_name'] = '';
$return['exp'] = 0;
$return['level_icon'] = '';
$return['rights_icon'] = "";
}
return $return;
}
} }

View File

@@ -107,16 +107,44 @@ class Login extends Model
$block = db::name('block')->where(['type_text' => $user_info['id'],'type' => 1])->find(); $block = db::name('block')->where(['type_text' => $user_info['id'],'type' => 1])->find();
if ($block) { if ($block) {
return ['code' => 0, 'msg' => '用户已被封禁', 'data' => null]; if($block['block_time'] != 0 && $block['block_time'] <= time()){
db('block')->where(['id' => $block['id']])->delete();
$sms_error = db::name('sms_error')->where(['mobile' => $user_info['mobile']])->find();
if($sms_error){
db::name('sms_error')->where(['mobile' => $user_info['mobile']])->delete();
}
}else{
if($block['block_time'] == 0){
return ['code' => 301, 'msg' => '用户已被永久封禁', 'data' => null];
}else{
return ['code' => 301, 'msg' => '用户已被封禁,解封时间:'.date('Y-m-d H:i:s',$block['block_time']), 'data' => null];
}
}
} }
$block = db::name('block')->where(['type_text' => $login_device,'type' => 2])->find(); $block = db::name('block')->where(['type_text' => $login_device,'type' => 2])->find();
if ($block) { if ($block) {
return ['code' => 0, 'msg' => '设备已被封禁', 'data' => null]; if($block['block_time'] != 0 && $block['block_time'] <= time()){
db('block')->where(['id' => $block['id']])->delete();
}else{
if($block['block_time'] == 0){
return ['code' => 301, 'msg' => '设备已被永久封禁', 'data' => null];
}else{
return ['code' => 301, 'msg' => '设备已被封禁,解封时间:'.date('Y-m-d H:i:s',$block['block_time']), 'data' => null];
}
}
} }
$ip = request()->ip(); $ip = request()->ip();
$block = db::name('block')->where(['type_text' => $ip,'type' => 3])->find(); $block = db::name('block')->where(['type_text' => $ip,'type' => 3])->find();
if ($block) { if ($block) {
return ['code' => 0, 'msg' => 'ip已被封禁', 'data' => null]; if($block['block_time'] != 0 && $block['block_time'] <= time()){
db('block')->where(['id' => $block['id']])->delete();
}else{
if($block['block_time'] == 0){
return ['code' => 301, 'msg' => 'ip已被永久封禁', 'data' => null];
}else{
return ['code' => 301, 'msg' => 'ip已被封禁,解封时间:'.date('Y-m-d H:i:s',$block['block_time']), 'data' => null];
}
}
} }
$save_data = []; $save_data = [];
@@ -181,6 +209,17 @@ class Login extends Model
} }
$return_res[0]['auth'] = $isAuth; $return_res[0]['auth'] = $isAuth;
//是否可以发布动态
$user_rechange = db::name('vs_user_recharge')->field('sum(money) as money')->where(['user_id' => $user_info['id'],'pay_status' => 2])->find();
//系统配置
$config_money = get_system_config_value('private_chat_recharge_money');
if(($config_money > 0) && ($user_rechange['money'] < $config_money)){
$return_res[0]['is_can_chat'] = 0;
}else{
$return_res[0]['is_can_chat'] = 1;
}
$return_res[0]['can_chat_money'] = $config_money;
return ['code' => 1, 'msg' => '登录成功', 'data' => $return_res]; return ['code' => 1, 'msg' => '登录成功', 'data' => $return_res];
}else{ }else{
return ['code' => 0, 'msg' => '登录失败,账号失效', 'data' => null]; return ['code' => 0, 'msg' => '登录失败,账号失效', 'data' => null];
@@ -254,28 +293,52 @@ class Login extends Model
return ['code' => 0, 'msg' => '密码不能为空', 'data' => null]; return ['code' => 0, 'msg' => '密码不能为空', 'data' => null];
} }
$user_info = model('User')->where(['mobile' => $user_name,'status'=>1])->find(); $user_info = model('User')->where(['mobile' => $user_name,'status'=>['<>',0]])->find();
if (empty($user_info)) { if (empty($user_info)) {
return ['code' => 0, 'msg' => '用户不存在', 'data' => null]; return ['code' => 0, 'msg' => '用户不存在', 'data' => null];
} }
//今天误次数
$sms_count = db::name('sms_error')->where(['mobile' => $user_name,'createtime' => ['between', [strtotime(date('Y-m-d')), time()]]])->count();
if (md5($password) != $user_info['password']) { if ($sms_count >= 5) {
return ['code' => 0, 'msg' => '密码错误', 'data' => null]; $user_id = db::name('user')->where('mobile', $user_name)->value('id');
$block_num = db::name('block')->where(['type' => 1, 'type_text' => $user_id])->find();
if(!$block_num){
//封禁账号
$error_data = [
'type' => 1,
'type_text' => $user_id,
'block_time' => time() + 60 * 60 * 24,
'block_note' => '账号登录异常被封禁24小时',
'createtime'=> time(),
];
db::name('block')->insert($error_data);
db::name('user')->where('id', $user_id)->update(['status' => 2]);
}
return ['code' => 0, 'msg' => '登录错误次数过多,账号已被封禁,请联系管理员处理','data' =>null];
}
$count_sms = max(5 - $sms_count, 0);
if (md5($password) != $user_info['password']) {
$data = [
'mobile' => $user_name,
'type' => 2,
'sms' => $password,
'createtime'=> time(),
];
db::name('sms_error')->insert($data);
return ['code' => 0, 'msg' => '密码错误,'.$count_sms.'次后账号将被封禁24小时', 'data' => null];
} }
// $multi_user = [];
// //查询手机号绑定的账号
// $phone_user = $this->phone_login_query($user_name);
// if($phone_user['code'] == 1){
// //获取返回数据的长度
// if(count($phone_user['data']) >= 2){
// $multi_user = $phone_user['data'];
// }
// }
$login = $this->login($user_info,$system,$login_device); $login = $this->login($user_info,$system,$login_device);
if($login['code'] != 1){ if($login['code'] != 1){
return $login; return $login;
} }
//登陆成功后 把所有的登录错误删除掉
db::name('sms_error')->where(['mobile' => $user_name])->delete();
return ['code' => 1, 'msg' => '登录成功', 'data' => $login['data']]; return ['code' => 1, 'msg' => '登录成功', 'data' => $login['data']];
} }
@@ -300,12 +363,24 @@ class Login extends Model
if($type == 'wx'){ if($type == 'wx'){
$openid = $userinfo['openid']; $openid = $userinfo['openid'];
$user_info_data = model('UserData')->where(['wx_openid' => $openid,'deletetime'=>0])->find(); $user_info_data = model('UserData')->where(['wx_openid' => $openid,'deletetime'=>0])->find();
$config_time = get_system_config_value('cancel_to_reset_reg');
if(isset($user_info_data) && $user_info_data['deletetime'] != 0 && time() - $user_info_data['deletetime'] < 86400 * $config_time){
return ['code' => 0, 'msg' => '注销后需等待'.$config_time.'天才能重新注册', 'data' => null];
}
}elseif ($type == 'ali'){ }elseif ($type == 'ali'){
$ali_userid = $userinfo['open_id']; $ali_userid = $userinfo['open_id'];
$user_info_data = model('UserData')->where(['ali_userid' => $ali_userid,'deletetime'=>0])->find(); $user_info_data = model('UserData')->where(['ali_userid' => $ali_userid,'deletetime'=>0])->find();
$config_time = get_system_config_value('cancel_to_reset_reg');
if(isset($user_info_data) && $user_info_data['deletetime'] != 0 && time() - $user_info_data['deletetime'] < 86400 * $config_time){
return ['code' => 0, 'msg' => '注销后需等待'.$config_time.'天才能重新注册', 'data' => null];
}
}elseif ($type == 'ios'){ }elseif ($type == 'ios'){
$apple_id = $userinfo; $apple_id = $userinfo;
$user_info_data = model('UserData')->where(['apple_id' => $userinfo,'deletetime'=>0])->find(); $user_info_data = model('UserData')->where(['apple_id' => $userinfo,'deletetime'=>0])->find();
$config_time = get_system_config_value('cancel_to_reset_reg');
if(isset($user_info_data) && $user_info_data['deletetime'] != 0 && time() - $user_info_data['deletetime'] < 86400 * $config_time){
return ['code' => 0, 'msg' => '注销后需等待'.$config_time.'天才能重新注册', 'data' => null];
}
} }
else{ else{
return ['code' => 0, 'msg' => '登录类型错误', 'data' => null]; return ['code' => 0, 'msg' => '登录类型错误', 'data' => null];
@@ -371,10 +446,23 @@ class Login extends Model
//注销 //注销
public function cancel($token){ public function cancel($token){
$user_info = model('UserToken')->where('token', $token)->find(); $user_info = model('UserToken')->where('token', $token)->find();
//用户注册时间
$register_time = db::name('user')->where('id', $user_info['user_id'])->value('createtime');
$config_time = get_system_config_value('reg_to_cancel');
if(time() - $register_time < 86400 * $config_time){
return ['code' => 0, 'msg' => '注册'.$config_time.'天内不能注销!', 'data' => null];
}
if($user_info){ if($user_info){
model('UserToken')->where('id', $user_info['id'])->update(['token' => 1]); model('UserToken')->where('id', $user_info['id'])->update(['token' => 1]);
$isstatus = model('User')->where('id', $user_info['user_id'])->update(['status' => 0]); $isstatus = model('User')->where('id', $user_info['user_id'])->update(['status' => 0]);
if($isstatus){ if($isstatus){
//查询用户所在房间
$room_list = db::name('vs_room_visitor')->where('user_id', $user_info['user_id'])->select();
if($room_list){
foreach ($room_list as &$value) {
model('Room')->quit_room($user_info['user_id'], $value['room_id'],$user_info['user_id']);
}
}
//删除用户 //删除用户
// model('Tencent')->account_delete($user_info['user_id']); // model('Tencent')->account_delete($user_info['user_id']);
model('User')->where('id', $user_info['user_id'])->update(['delete_time' => time()]); model('User')->where('id', $user_info['user_id'])->update(['delete_time' => time()]);
@@ -387,25 +475,16 @@ class Login extends Model
db::name('vs_room')->where('id', $value['id'])->update(['room_status' => 3]); db::name('vs_room')->where('id', $value['id'])->update(['room_status' => 3]);
} }
} }
//查询用户所在房间
$room_list = db::name('vs_room_visitor')->where('user_id', $user_info['user_id'])->select();
if($room_list){
foreach ($room_list as &$value) {
model('Room')->quit_room($user_info['user_id'], $value['room_id'],$user_info['user_id']);
}
}
}else{ }else{
return ['code' => 0, 'msg' => '注销失败', 'data' => null]; return ['code' => 0, 'msg' => '注销失败', 'data' => null];
} }
//查询绑定的手机号 //查询绑定的手机号
$mob = db::name('user')->where('id', $user_info['user_id'])->value('mobile'); $mob = db::name('user')->where('id', $user_info['user_id'])->value('mobile');
$mobile = db::name('user')->where('mobile', $mob)->select(); $mobile = db::name('user')->where(['mobile' => $mob,'status' => ['<>',0]])->select();
if(isset($mobile) && count($mobile) < 2){ if(isset($mobile) && count($mobile) < 2){
$user_auth = db::name('user_auth')->where('mobile', $mobile[0]['mobile'])->find(); db::name('user_auth')->where('mobile', $mob)->delete();
if($user_auth){
db::name('user_auth')->where('id', $user_auth['id'])->delete();
}
} }
return ['code' => 1, 'msg' => '注销成功', 'data' => null]; return ['code' => 1, 'msg' => '注销成功', 'data' => null];

View File

@@ -55,7 +55,7 @@ class Ranking extends Model
->where($where) ->where($where)
->order('total desc') ->order('total desc')
->group('a.user_id') ->group('a.user_id')
->page($this->page, $this->page_limit) // ->page($this->page, $this->page_limit)
->select(); ->select();
if($lists){ if($lists){
@@ -105,7 +105,7 @@ class Ranking extends Model
->where($where) ->where($where)
->order('total desc') ->order('total desc')
->group('a.gift_user') ->group('a.gift_user')
->page($this->page, $this->page_limit) // ->page($this->page, $this->page_limit)
->select(); ->select();
if($lists){ if($lists){
@@ -149,7 +149,8 @@ class Ranking extends Model
} }
} }
} }
//截取20条
$lists = array_slice($lists,0,20);
$data = [ $data = [
'my_ranking' => $my_ranking, 'my_ranking' => $my_ranking,
'lists' => $lists 'lists' => $lists
@@ -161,15 +162,17 @@ class Ranking extends Model
//房间榜 //房间榜
public function room_ranking() public function room_ranking()
{ {
//金币与魅力比例
$ratio = get_system_config_value('coin_charm_exp');
$where['a.createtime'] = ['between', [$this->begin_time, $this->end_time]]; $where['a.createtime'] = ['between', [$this->begin_time, $this->end_time]];
$where['b.type_id'] = ['<>', 6]; $where['b.type_id'] = ['<>', 6];
$where['b.room_status'] = 1; $where['b.room_status'] = 1;
$field = ['sum(a.total_price) as total,b.room_name,a.from_id as room_id,b.room_cover,b.room_number']; $field = ['sum(a.total_price) *'.$ratio.' as total,b.room_name,a.from_id as room_id,b.room_cover,b.room_number'];
$lists = db::name('vs_give_gift')->alias('a') $lists = db::name('vs_give_gift')->alias('a')
->join('vs_room b','a.from_id = b.id','left') ->join('vs_room b','a.from_id = b.id','left')
->where($where)->field($field)->group('a.from_id') ->where($where)->field($field)->group('a.from_id')
->order('total desc') ->order('total desc')
->page($this->page, $this->page_limit) // ->page($this->page, $this->page_limit)
->select(); ->select();
$my_ranking = null; $my_ranking = null;
if($lists){ if($lists){
@@ -240,6 +243,8 @@ class Ranking extends Model
$my_ranking['room_name'] = $myRoom['room_name']; $my_ranking['room_name'] = $myRoom['room_name'];
$my_ranking['room_cover'] = $myRoom['room_cover']; $my_ranking['room_cover'] = $myRoom['room_cover'];
} }
//截取20条
$lists = array_slice($lists,0,20);
$data = [ $data = [
'my_ranking' => $my_ranking, 'my_ranking' => $my_ranking,
'lists' => $lists 'lists' => $lists
@@ -278,7 +283,12 @@ class Ranking extends Model
} }
$lists = $guilds ; $lists = $guilds ;
$my_ranking = null; // $my_ranking = null;
$my_ranking['guild_name'] = '';
$my_ranking['cover'] = '';
$my_ranking['total'] = 0;
$my_ranking['rank'] = -1;
$my_ranking['diff'] = 0;
if($lists){ if($lists){
//获取当前用户的工会 //获取当前用户的工会
$myGuild = db::name('vs_guild_user')->where(['user_id' => UID])->find(); $myGuild = db::name('vs_guild_user')->where(['user_id' => UID])->find();

View File

@@ -28,10 +28,20 @@ class Room extends Model
return ['code' => 0, 'msg' => '请先进行实名认证通过后操作', 'data' => null]; return ['code' => 0, 'msg' => '请先进行实名认证通过后操作', 'data' => null];
} }
//检查房间名称是否包含官方等词
//名称中不能有 系统管理 等关键字
if(!nickname_filter($room_name)){
return ['code' => 0, 'msg' => '名称中不能有 系统、管理、官方等相关敏感字', 'data' => null];
}
if($type <= 0){ if($type <= 0){
$room_info = db::name('vs_room')->where(['user_id' => $uid, 'type_id' => ['<>',6]])->find(); $room_info = db::name('vs_room')->where(['user_id' => $uid, 'type_id' => ['<>',6], 'apply_status' => ['<>',3]])->find();
if (!empty($room_info)) { if (!empty($room_info)) {
return ['code' => 0, 'msg' => '已有直播间请勿重复创建', 'data' => null]; if($room_info['apply_status'] == 2){
return ['code' => 0, 'msg' => '已有直播间请勿重复创建', 'data' => null];
}elseif($room_info['apply_status'] == 1){
return ['code' => 0, 'msg' => '房间审核中,请耐心等待', 'data' => null];
}
}else{ }else{
//首次建立房间【完成任务】 //首次建立房间【完成任务】
model('DailyTasks')->tasks_complete($uid,15); model('DailyTasks')->tasks_complete($uid,15);
@@ -42,20 +52,29 @@ class Room extends Model
$data['room_number'] = $this->get_user_code(); $data['room_number'] = $this->get_user_code();
$data['type_id'] = 1; $data['type_id'] = 1;
$data['apply_status'] = 1; $data['apply_status'] = 1;
}else{//cp电影房 $data['label_id'] = 1;
}elseif ($type == 7){
$data['room_number'] = $this->get_user_code(); $data['room_number'] = $this->get_user_code();
$data['type_id'] = 6;//cp电影房 $data['type_id'] = 6;//cp电影房
$room_intro = $room_intro.'('.$type.')'; $room_intro = $room_intro.'('.$type.')';
$data['apply_status'] = 2; $data['apply_status'] = 2;
$data['label_id'] = 5;
}
else{//cp电影房
$data['room_number'] = $this->get_user_code();
$data['type_id'] = 6;//cp电影房
$room_intro = $room_intro.'('.$type.')';
$data['apply_status'] = 2;
$data['label_id'] = 1;
} }
$data['user_id'] = $uid; $data['user_id'] = $uid;
$data['room_name'] = $room_name; $data['room_name'] = $room_name;
$data['room_cover'] = $room_cover; $data['room_cover'] = $room_cover;
$data['room_intro'] = $room_intro; $data['room_intro'] = $room_intro;
$data['room_background'] = get_system_config_value('web_site').'/data/default/delfultroombackground.jpg'; $room_bg_img = db::name('vs_room_background')->where(['id' => 2])->value('image_url');
$data['room_background'] = $room_bg_img ?? get_system_config_value('web_site').'/data/default/delfultroombackground.jpg';
$data['is_earnings'] = 1; $data['is_earnings'] = 1;
$data['label_id'] = 1;
$data['createtime'] = time(); $data['createtime'] = time();
Db::startTrans(); Db::startTrans();
@@ -143,7 +162,7 @@ class Room extends Model
if(!empty($data)){ if(!empty($data)){
$reslut = $this->where('id', $room_id)->update($data); $reslut = $this->where('id', $room_id)->update($data);
if (!$reslut) { if (!$reslut) {
return ['code' => 0, 'msg' => '修改失败', 'data' => null]; return ['code' => 0, 'msg' => '请勿重复提交', 'data' => null];
} }
} }
//推送消息 //推送消息
@@ -182,24 +201,14 @@ class Room extends Model
} }
$list = db::name('vs_room')->field('id as room_id,room_number,user_id,room_name,room_cover,room_password,today_hot_value as hot_value,label_id,is_show_room') $list = db::name('vs_room')->field('id as room_id,room_number,user_id,room_name,room_cover,room_password,today_hot_value as hot_value,label_id,is_show_room')
->where($map)->order('hot_value desc')->page($page, $page_limit)->select(); ->where($map)->order('hot_value desc, id asc')->page($page, $page_limit)->select();
// var_dump($list);
foreach ($list as $k => &$v){ foreach ($list as &$v){
if($v['is_show_room'] == 2){ //是否显示房间 1是2否
//查询当前房间是否有主持在麦上
$room_host_info = db::name('vs_room_pit')->where(['room_id' => $v['room_id'], 'pit_number' => 9])->value('user_id');
if($room_host_info == 0){
unset($list[$k]);
continue;
}
}
// $v['hot_value'] = $v['hot_value'] * 10;
$v['user_list'] = model('RoomUser')->get_room_user_list($v['room_id']); $v['user_list'] = model('RoomUser')->get_room_user_list($v['room_id']);
$v['label_name'] = db::name('vs_room_label')->where('id', $v['label_id'])->value('label_name'); $v['label_name'] = db::name('vs_room_label')->where('id', $v['label_id'])->value('label_name');
$v['label_icon'] = db::name('vs_room_label')->where('id', $v['label_id'])->value('label_icon'); $v['label_icon'] = db::name('vs_room_label')->where('id', $v['label_id'])->value('label_icon');
} }
//$list 不为空 数组重组
$list = array_values((array)$list);
//版本号 //版本号
$app_version = request()->header('App-Version'); $app_version = request()->header('App-Version');
$system = request()->header('system'); $system = request()->header('system');
@@ -215,32 +224,6 @@ class Room extends Model
return ['code' => 1, 'msg' => '获取成功', 'data' => $list, 'api_version' => $api_version]; return ['code' => 1, 'msg' => '获取成功', 'data' => $list, 'api_version' => $api_version];
} }
//关注的用户现在所在房间(废弃)
public function user_follow_in_room_list($uid ,$page, $page_limit)
{
//关注的用户列表
$follow_list = db::name('user_follow')->where('user_id', $uid)->field('follow_user_id')->select();
if(!empty($follow_list)){
$user_room_list = [];
foreach ($follow_list as $k => $v){
//用户是否在房间中
$user_room_info = db::name('vs_room_visitor')->where('user_id', $v['follow_user_id'])->field('room_id')->find();
if(!empty($user_room_info)){
$user_room_list[] = $user_room_info['room_id'];
}
}
}
if(!empty($user_room_list)){
$list = db::name('vs_room')->field('id as room_id,room_number,user_id,room_name,room_cover,room_password,today_hot_value as hot_value')
->where('id', 'in', $user_room_list)->order('hot_value desc')->page($page, $page_limit)->select();
foreach ($list as $k => &$v){
// $v['hot_value'] = $v['hot_value'] * 10;
$v['user_list'] = model('RoomUser')->get_room_user_list($v['id']);
}
return ['code' => 1, 'msg' => '获取成功', 'data' => $list];
}
return ['code' => 1, 'msg' => '获取成功', 'data' => []];
}
//首页弹出的房间 //首页弹出的房间
public function index_recommend_room() public function index_recommend_room()
@@ -289,7 +272,7 @@ class Room extends Model
$roomInfo = db::name('vs_room') $roomInfo = db::name('vs_room')
->field('id as room_id,room_number,user_id,room_name,room_cover,apply_status,type_id,room_status,label_id') ->field('id as room_id,room_number,user_id,room_name,room_cover,apply_status,type_id,room_status,label_id')
->where('user_id' , $uid) ->where('user_id' , $uid)
->where(['type_id' => ['<>',6],'room_status' =>1]) ->where(['type_id' => ['<>',6],'room_status' =>1,'apply_status' => ['<>',3]])
->page($page, $page_limit) ->page($page, $page_limit)
->select(); ->select();
} }
@@ -305,8 +288,15 @@ class Room extends Model
$v['is_use_code'] = 1; $v['is_use_code'] = 1;
$v['room_number'] = $liang; $v['room_number'] = $liang;
} }
//今日收益 if($type == 1) {//1-我主持的
$v['today_profit'] = $this->get_room_today_profit($v['room_id']) * 10; //今日收益
$v['today_profit'] = round( $this->get_room_today_earnings($v['room_id'],$uid),4);
}else{
//今日流水
//金币与魅力比例
$ratio = get_system_config_value('coin_charm_exp');
$v['today_profit'] = $this->get_room_today_profit($v['room_id']) * $ratio;
}
//关注数 //关注数
$v['follow_num'] = db::name('user_follow')->where('follow_id', $v['room_id'])->where('type', 2)->count(); $v['follow_num'] = db::name('user_follow')->where('follow_id', $v['room_id'])->where('type', 2)->count();
//访问数 //访问数
@@ -352,7 +342,6 @@ class Room extends Model
} }
$cp_room[$i]['room_id'] = $v['room_id']; $cp_room[$i]['room_id'] = $v['room_id'];
// $cp_room[$i]['room_name'] = '我 ❤️ '.$room_name.db::name('vs_room')->where('id', $v['room_id'])->value('room_name');
$cp_room[$i]['room_name'] = '我 ❤️ '.$room_name; $cp_room[$i]['room_name'] = '我 ❤️ '.$room_name;
$cp_room[$i]['room_number'] = db::name('vs_room')->where('id', $v['room_id'])->value('room_number'); $cp_room[$i]['room_number'] = db::name('vs_room')->where('id', $v['room_id'])->value('room_number');
$cp_room[$i]['end_time'] = $v['time_day']; $cp_room[$i]['end_time'] = $v['time_day'];
@@ -366,7 +355,7 @@ class Room extends Model
return $cp_room; return $cp_room;
} }
//房间今日收益 //房间今日流水
public function get_room_today_profit($room_id) public function get_room_today_profit($room_id)
{ {
$room_type = db::name('vs_room')->where('id', $room_id)->value('type_id'); $room_type = db::name('vs_room')->where('id', $room_id)->value('type_id');
@@ -381,6 +370,17 @@ class Room extends Model
return $profit; return $profit;
} }
//房间今日主持收益
public function get_room_today_earnings($room_id,$user_id)
{
$today_start_time = strtotime(date('Y-m-d'));
$today_end_time = $today_start_time + 86400;
return Db::name('vs_user_money_log')
->where(['room_id' => $room_id,'user_id' => $user_id,'change_type' =>19])
->whereBetween('createtime', [$today_start_time, $today_end_time])
->sum('change_value');
}
//房间补贴 //房间补贴
public function room_ubsidy($room_id){ public function room_ubsidy($room_id){
$room_type = db::name('vs_room')->where('id', $room_id)->value('type_id'); $room_type = db::name('vs_room')->where('id', $room_id)->value('type_id');
@@ -461,17 +461,8 @@ class Room extends Model
if(!$room){ if(!$room){
return ['code' => 0, 'msg' => '房间不存在', 'data' => null]; return ['code' => 0, 'msg' => '房间不存在', 'data' => null];
} }
//获取房间名称
// $room_name = $room['room_name'];
//查询房主是否加入公会 $room_user_ratio = get_system_config_value('room_author_ratio')/100;
// $guild_id = model('Guild')->user_is_join($room['user_id']);
// //获取房主收益比例
// if($guild_id > 0){
// $room_user_ratio = get_system_config_value('room_author_guild_ratio')/100;
// }else{
$room_user_ratio = get_system_config_value('room_author_ratio')/100;
// }
//根据日期查询房间流水 //根据日期查询房间流水
$field = "b.nickname as sender_nickname,b.avatar as sender_avatar,c.nickname as receive_nickname,c.avatar as receive_avatar,dd.gift_name,a.number,a.total_price,{$group_field} as time"; $field = "b.nickname as sender_nickname,b.avatar as sender_avatar,c.nickname as receive_nickname,c.avatar as receive_avatar,dd.gift_name,a.number,a.total_price,{$group_field} as time";
@@ -487,17 +478,9 @@ class Room extends Model
$where['a.createtime'] = ['between', [$begin_time, $end_time]]; $where['a.createtime'] = ['between', [$begin_time, $end_time]];
} }
// $count = db::name('vs_give_gift')->alias('a')->field($field)
// ->join('user b', 'a.user_id = b.id')
// ->join('user c', 'a.gift_user = c.id')
// ->join('vs_give_gift d', 'a.gift_id = d.id')
// ->where($where)
// ->count();
$list = db::name('vs_give_gift')->alias('a')->field($field) $list = db::name('vs_give_gift')->alias('a')->field($field)
->join('user b', 'a.user_id = b.id') ->join('user b', 'a.user_id = b.id')
->join('user c', 'a.gift_user = c.id') ->join('user c', 'a.gift_user = c.id')
// ->join('vs_give_gift d', 'a.gift_id = d.id')
->join('vs_gift dd', 'a.gift_id = dd.gid') ->join('vs_gift dd', 'a.gift_id = dd.gid')
->where($where) ->where($where)
->page($page,$page_limit) ->page($page,$page_limit)
@@ -547,10 +530,13 @@ class Room extends Model
//进入房间 //进入房间
public function join_room($user_id, $room_id, $password) { public function join_room($user_id, $room_id, $password) {
$room = db::name('vs_room')->where(['id' => $room_id,'apply_status' => 2])->find(); $room = db::name('vs_room')->where(['id' => $room_id,'apply_status' => ['in',[1,2]]])->find();
if (!isset($room)) { if (!isset($room)) {
return ['code' => 0, 'msg' => '房间不存在', 'data' => '']; return ['code' => 0, 'msg' => '房间不存在', 'data' => ''];
} }
if($room['apply_status'] == 1){
return ['code' => 0, 'msg' => '房间正在审核中……', 'data' => ''];
}
if(isset($room['password']) && $user_id != $room['user_id']){ if(isset($room['password']) && $user_id != $room['user_id']){
if (empty($password) || $room['password'] != md5($password)) { if (empty($password) || $room['password'] != md5($password)) {
return ['code' => 0, 'msg' => '密码错误', 'data' => '']; return ['code' => 0, 'msg' => '密码错误', 'data' => ''];
@@ -584,19 +570,18 @@ class Room extends Model
} }
//用户是否在其他房间 //用户是否在其他房间
$room_user = db::name('vs_room_visitor')->where(['user_id' => $user_id])->value('room_id'); $room_user = db::name('vs_room_visitor')->where(['user_id' => $user_id])->order('id desc')->value('room_id');
if (isset($room_user) && $room_user != $room_id) { if (isset($room_user) && $room_user != $room_id && $room_user != 0) {
// return ['code' => 0, 'msg' => '您已在其他房间', 'data' => '']; //根据所在房间状态判断是否要退出房间并且下麦
//根据房间状态判断是否要退出房间并且下麦
$roomInfo = db::name('vs_room')->where(['id' => $room_user,'apply_status' => 2])->find(); $roomInfo = db::name('vs_room')->where(['id' => $room_user,'apply_status' => 2])->find();
if(($roomInfo['type_id'] == 1 || $roomInfo['type_id'] == 3 || $roomInfo['type_id'] == 4)&& $roomInfo['label_id'] == 1){ if(($roomInfo['type_id'] == 1 || $roomInfo['type_id'] == 3 || $roomInfo['type_id'] == 4 || $roomInfo['type_id'] == 8)&& $roomInfo['label_id'] == 1){
//退出其他房间 //退出其他房间
$this->quit_room($user_id, $room_user,$user_id); $this->quit_room($user_id, $room_user,$user_id);
}elseif(($roomInfo['type_id'] == 1 || $roomInfo['type_id'] == 3 || $roomInfo['type_id'] == 4)&& $roomInfo['label_id'] == 2){//k歌 }elseif(($roomInfo['type_id'] == 1 || $roomInfo['type_id'] == 3 || $roomInfo['type_id'] == 4 || $roomInfo['type_id'] == 8)&& $roomInfo['label_id'] == 2){//k歌
//他的点歌列表 //他的点歌列表
$song_list = db::name('vs_room_song')->where(['room_id' => $room_user, 'user_id' => $user_id])->select(); $song_list = db::name('vs_room_song')->where(['room_id' => $room_user, 'user_id' => $user_id])->select();
if(count($song_list) > 0){ if(count($song_list) > 0){
foreach ($song_list as $key => $value){ foreach ($song_list as $value){
if($value['status'] == 2 && $value['times_status'] == 1){ if($value['status'] == 2 && $value['times_status'] == 1){
//切歌 //切歌
model('api/RoomSong')->change_song($room_id,$value['did']); model('api/RoomSong')->change_song($room_id,$value['did']);
@@ -608,7 +593,7 @@ class Room extends Model
} }
//记录用户退出房 //记录用户退出房
$this->quit_room($user_id, $room_user,$user_id); $this->quit_room($user_id, $room_user,$user_id);
}elseif($roomInfo['type_id'] == 3){ }elseif($roomInfo['type_id'] == 2){
//是否在拍卖位 //是否在拍卖位
$pitNumber = Cache::get('auction_user_'.$room_user); $pitNumber = Cache::get('auction_user_'.$room_user);
if(isset($pitNumber) && $pitNumber == $user_id){ if(isset($pitNumber) && $pitNumber == $user_id){
@@ -636,7 +621,7 @@ class Room extends Model
$user_pit = 0; $user_pit = 0;
$pit_list = []; $pit_list = [];
$cp_users = null; $cp_users = null;
if($room['type_id'] == 1 || $room['type_id'] == 3 || $room['type_id'] == 4) {//1点唱3男神4女神 if($room['type_id'] == 1 || $room['type_id'] == 3 || $room['type_id'] == 4 || $room['type_id'] == 7 || $room['type_id'] == 8) {//1点唱3男神4女神
if($room['label_id'] == 2){//K歌 if($room['label_id'] == 2){//K歌
$song = $this->get_song_info($room_id,$user_id); $song = $this->get_song_info($room_id,$user_id);
$song_list = $song['song_user_info']; $song_list = $song['song_user_info'];
@@ -706,6 +691,7 @@ class Room extends Model
if (!$is_join) { if (!$is_join) {
db::name('vs_room_visitor')->insert(['room_id' => $room_id, 'user_id' => $user_id, 'createtime' => time()]); db::name('vs_room_visitor')->insert(['room_id' => $room_id, 'user_id' => $user_id, 'createtime' => time()]);
} }
db::name('user_data')->where('user_id', $user_id)->update(['room_id' => $room_id]);
$room['is_use_code'] = 0; $room['is_use_code'] = 0;
$liang = model('api/Decorate')->user_decorate_detail($room['id'],7); $liang = model('api/Decorate')->user_decorate_detail($room['id'],7);
@@ -853,6 +839,27 @@ class Room extends Model
if($user_id != $room_owner['user_id']){ if($user_id != $room_owner['user_id']){
model('api/User')->add_user_visit_log(2,$user_id, $room_id); model('api/User')->add_user_visit_log(2,$user_id, $room_id);
} }
//交友相关回值
if($room['type_id'] == 7){
$friend = $this->getRoomFriendData($room_id);
//交友状态 交友进行到第几步 1等待邂逅 2心动连线 3牵手良缘
$friend['step'] =$room['step'];
}else{
$friend = null;
}
$xlh_info['xlh_info'] = model('BlindBoxTurntableGift')->get_user_xlh_info($room_id);
$open_time = db::name('vs_hour_ranking_config')->where('id', 1)->value('open_time');
if($open_time > 0){
if($open_time <= time()){
$hour_open = 1;//开启
}else{
$hour_open = 0;//关闭
}
}else{
$hour_open = 0;//关闭
}
return ['code' => 1, return ['code' => 1,
'msg' => '成功', 'msg' => '成功',
'data' => ['room_info' => $room_info, 'data' => ['room_info' => $room_info,
@@ -863,7 +870,10 @@ class Room extends Model
'room_auction'=>$roomauction, 'room_auction'=>$roomauction,
'cp_user'=>$cp_users, 'cp_user'=>$cp_users,
'pk_info' => $pk_info, 'pk_info' => $pk_info,
'song_pit_list' => $song_pit_list 'song_pit_list' => $song_pit_list,
'friend_info' => $friend,
'gift_cycle' => $xlh_info,
'hour_ranking_open' => $hour_open
] ]
]; ];
} }
@@ -1072,10 +1082,14 @@ class Room extends Model
$room_label = $res['data']['label_id']; $room_label = $res['data']['label_id'];
$room_type = $res['data']['type_id']; $room_type = $res['data']['type_id'];
$apply_type = 0; $apply_type = 0;
if($room_label == 1 && ($room_type == 1 || $room_type == 3 || $room_type == 4)){ if($room_label == 1 && ($room_type == 1 || $room_type == 3 || $room_type == 4 || $room_type == 8)){
$apply_type = 1; $apply_type = 1;
}elseif ($room_label == 2 && ($room_type == 1 || $room_type == 3 || $room_type == 4)){ }elseif ($room_label == 2 && ($room_type == 1 || $room_type == 3 || $room_type == 4 || $room_type == 8)){
$apply_type = 2; $apply_type = 2;
}elseif ($room_type == 7){//交友房 再开始阶段在麦位上不下麦
$apply_type = 3;
}elseif($room_type == 6 && $room_label == 5){ //交友私密屋
$apply_type = 4;
} }
if($apply_type == 1){ if($apply_type == 1){
@@ -1101,7 +1115,18 @@ class Room extends Model
$text['pit_number'] = ''; $text['pit_number'] = '';
model('api/Chat')->sendMsg(1004,$room_id,$text); model('api/Chat')->sendMsg(1004,$room_id,$text);
} }
}else{ }elseif ($apply_type == 3){
$roomInfoStep = db::name('vs_room')->where(['id' => $room_id])->value('step');
$room_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $user_id])->find();
if($roomInfoStep == 1 || ($roomInfoStep == 2 && ($room_pit['pit_number'] == 9 || $room_pit['pit_number'] == 10))){
if (isset($room_pit)) {
model('api/RoomPit')->DownPit($user_id, $room_id, $room_pit['pit_number']);
}
}
}elseif ($apply_type == 4){
model('api/Friend')->outRoom($uid, $room_id);
}
else{
//在麦位上 移除用户 //在麦位上 移除用户
$room_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $user_id])->find(); $room_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $user_id])->find();
if (isset($room_pit)) { if (isset($room_pit)) {
@@ -1132,7 +1157,7 @@ class Room extends Model
}else{ }else{
$room_typer = '管理员'; $room_typer = '管理员';
} }
db::name('vs_room_black')->insert(['room_id' => $room_id, 'user_id' => $uid,'black_id' => $user_id,'type' => 1,'kick_time' => time()+300,'createtime' => time()]); db::name('vs_room_black')->insert(['room_id' => $room_id, 'user_id' => $uid,'black_id' => $user_id,'type' => 1,'kick_time' => time()+600,'createtime' => time()]);
//发送消息 //发送消息
$text['text'] = '用户 ' . $nickname . ' 被 '. $room_typer .' 踢出房间'; $text['text'] = '用户 ' . $nickname . ' 被 '. $room_typer .' 踢出房间';
@@ -1140,6 +1165,12 @@ class Room extends Model
//1-禁麦位2-清空消息3-清空魅力值4-加入黑名单5-踢出房间6-关闭麦克风7-申请上麦8-同意上麦9-拒绝上麦10-点歌11-开启PK', //1-禁麦位2-清空消息3-清空魅力值4-加入黑名单5-踢出房间6-关闭麦克风7-申请上麦8-同意上麦9-拒绝上麦10-点歌11-开启PK',
model('api/Room')->room_operation_record($uid,$room_id,5,$user_id); model('api/Room')->room_operation_record($uid,$room_id,5,$user_id);
} }
if($type == 2){
$text['text'] = '用户 ' . $nickname . ' 被 踢出房间';
model('api/Chat')->sendMsg(1011,$room_id,$text,$user_id);
//1-禁麦位2-清空消息3-清空魅力值4-加入黑名单5-踢出房间6-关闭麦克风7-申请上麦8-同意上麦9-拒绝上麦10-点歌11-开启PK',
model('api/Room')->room_operation_record($uid,$room_id,5,$user_id);
}
if($type == 0){ if($type == 0){
//发送消息 //发送消息
$text['text'] = '用户 ' . $nickname .' 退出了房间'; $text['text'] = '用户 ' . $nickname .' 退出了房间';
@@ -1168,13 +1199,6 @@ class Room extends Model
$where['a.createtime'] = ['between', [strtotime('this week Monday'), time()]]; $where['a.createtime'] = ['between', [strtotime('this week Monday'), time()]];
} }
if($type == 1){//1财富榜2魅力榜 if($type == 1){//1财富榜2魅力榜
// $list = db::name('vs_room_user_charm')->alias('a')
// ->join('user b', 'a.user_id = b.id')
// ->field('a.user_id,b.nickname,b.avatar,a.total_wealth as total')
// ->where($where)
// ->order('a.total_wealth desc')
// ->page($page, $limit)
// ->select();
$list = db::name('vs_give_gift')->alias('a') $list = db::name('vs_give_gift')->alias('a')
->join('user b', 'a.user_id = b.id') ->join('user b', 'a.user_id = b.id')
->field('a.user_id,b.nickname,b.avatar,sum(a.total_price) * 10 as total') ->field('a.user_id,b.nickname,b.avatar,sum(a.total_price) * 10 as total')
@@ -1184,13 +1208,6 @@ class Room extends Model
->page($page, $limit) ->page($page, $limit)
->select(); ->select();
}else{ }else{
// $list = db::name('vs_room_user_charm')->alias('a')
// ->join('user b', 'a.user_id = b.id')
// ->field('a.user_id,b.nickname,b.avatar,a.total_charm as total')
// ->where($where)
// ->order('a.total_charm desc')
// ->page($page, $limit)
// ->select();
$list = db::name('vs_give_gift')->alias('a') $list = db::name('vs_give_gift')->alias('a')
->join('user b', 'a.gift_user = b.id') ->join('user b', 'a.gift_user = b.id')
->field('a.gift_user as user_id,b.nickname,b.avatar,sum(a.total_price) * 10 as total') ->field('a.gift_user as user_id,b.nickname,b.avatar,sum(a.total_price) * 10 as total')
@@ -1213,7 +1230,7 @@ class Room extends Model
//房间送礼 //房间送礼
public function room_gift($uid, $to_uid, $gift_id, $gift_num,$type, $room_id, $pit_number) public function room_gift($uid, $to_uid, $gift_id, $gift_num,$type, $room_id, $pit_number, $heart_id,$give_gift_ext="")
{ {
$label_type = model('Room')->get_room_label($room_id); $label_type = model('Room')->get_room_label($room_id);
if($label_type['code'] != 1){ if($label_type['code'] != 1){
@@ -1228,11 +1245,11 @@ class Room extends Model
//$from_type 来源 1聊天送礼物 2房间语聊送礼 3直播送礼 4动态打赏 5系统任务 6-cp房间送礼 //$from_type 来源 1聊天送礼物 2房间语聊送礼 3直播送礼 4动态打赏 5系统任务 6-cp房间送礼
//$type 1金币购买 2送背包礼物 //$type 1金币购买 2送背包礼物
//送礼人接收者礼物id礼物数量来源类型来源id房间id麦位 //送礼人接收者礼物id礼物数量来源类型来源id房间id麦位
$res = model('GiveGift')->give_gift($uid, $to_uid, $gift_id, $gift_num,2,$type, $room_id,$pit_number); $res = model('GiveGift')->give_gift($uid, $to_uid, $gift_id, $gift_num,2,$type, $room_id,$pit_number,0,$give_gift_ext);
return $res; return $res;
}elseif (($label_type['data']['type_id'] == 1 || $label_type['data']['type_id'] == 3 || $label_type['data']['type_id'] == 4) && $label_type['data']['label_id'] == 2)//K歌type_id = 1label_id = 2 }elseif (($label_type['data']['type_id'] == 1 || $label_type['data']['type_id'] == 3 || $label_type['data']['type_id'] == 4 || $label_type['data']['type_id'] == 8) && $label_type['data']['label_id'] == 2)//K歌type_id = 1label_id = 2
{ {
$res = model('GiveGift')->give_gift($uid, $to_uid, $gift_id, $gift_num,2,$type, $room_id,$pit_number); $res = model('GiveGift')->give_gift($uid, $to_uid, $gift_id, $gift_num,2,$type, $room_id,$pit_number,0,$give_gift_ext);
if($res['code'] == 1){ if($res['code'] == 1){
$room_pits = model('RoomSong')->get_charm_rank($room_id); $room_pits = model('RoomSong')->get_charm_rank($room_id);
if($room_pits['code'] == 1){ if($room_pits['code'] == 1){
@@ -1246,13 +1263,31 @@ class Room extends Model
} }
return $res; return $res;
}elseif($label_type['data']['type_id'] == 6){ }elseif($label_type['data']['type_id'] == 6){
return model('GiveGift')->give_gift($uid, $to_uid, $gift_id, $gift_num,6,$type, $room_id,$pit_number); return model('GiveGift')->give_gift($uid, $to_uid, $gift_id, $gift_num,6,$type, $room_id,$pit_number,0,$give_gift_ext);
}elseif($label_type['data']['type_id'] == 7){
return model('Friend')->room_give_gift($uid, $to_uid, $gift_id, $gift_num,2,$type, $room_id,$pit_number,$heart_id,$give_gift_ext);
}else{ }else{
$res = model('GiveGift')->give_gift($uid, $to_uid, $gift_id, $gift_num,2,$type, $room_id,$pit_number); return model('GiveGift')->give_gift($uid, $to_uid, $gift_id, $gift_num,2,$type, $room_id,$pit_number,0,$give_gift_ext);
return $res;
} }
} }
//背包礼物一键全清
public function room_gift_all_clear($uid, $room_id, $user_id,$heart_id,$auction_id = 0)
{
$user_gift_pack = db::name('vs_user_gift_pack')->where(['user_id'=>$uid,'is_tester'=>1,'is_use_give'=>1,'num'=>['>',0]])->select();
if (empty($user_gift_pack)) {
return ['code' => 0, 'msg' => '用户背包礼物不足', 'data' => null];
}
foreach ($user_gift_pack as $v){
if($auction_id){//竞拍
model('RoomAuction')->room_auction_join($auction_id,$uid,$v['gid'],$v['num'],2);
}else{
$this->room_gift($uid, $user_id, $v['gid'], $v['num'],2,$room_id, 0,$heart_id);
}
}
return ['code' => 1, 'msg' => '成功', 'data' => null];
}
//房间在线列表 //房间在线列表
public function room_online_list($room_id, $page, $limit) public function room_online_list($room_id, $page, $limit)
@@ -1263,83 +1298,29 @@ class Room extends Model
if ($label_type['code'] != 1) { if ($label_type['code'] != 1) {
return ['code' => 0, 'msg' => '房间不存在', 'data' => null]; return ['code' => 0, 'msg' => '房间不存在', 'data' => null];
} }
//查询房间里面的用户
//获取在房间的用户 $room_user = db::name('vs_room_visitor')->where(['room_id' => $room_id])->select();
$in_room_users = db::name('vs_room_visitor')->where(['room_id' => $room_id])->field('user_id')->select(); if($room_user){
if($in_room_users){ foreach ($room_user as $vv){
foreach ($in_room_users as $v){ if(($label_type['data']['type_id'] == 1 || $label_type['data']['type_id'] == 8) && $label_type['data']['label_id'] == 1){
$userss = db::name('user')->where(['id' => $v['user_id']])->field('is_online,is_robot')->find(); //不做处理
if($userss['is_online'] == 1 && $userss['is_robot'] == 1){//在线或者机器人都设置为在线
db::name('vs_room_visitor')->where(['id' => $v['id']])->update(['on_line' => 1]);
}else{ }else{
db::name('vs_room_visitor')->where(['id' => $v['id']])->update(['on_line' => 0]); //查询是否有切后台的操作
$bg_room = db::name('vs_user_in_room_bg')->where(['room_id' => $room_id,'user_id' => $vv['user_id']])->find();
if(Db::name('user')->where('id', $vv['user_id'])->value('is_online') == 0 && !$bg_room){
model('Room')->quit_room($vv['user_id'], $room_id,$vv['user_id'],2);
}
} }
} }
} }
// //查找数据库用户
// $dblist = db::name('vs_room_visitor')->where(['room_id' => $room_id])->field('user_id')->select();
// //循环获取在线用户ID 拼接数据
// $user_id_array = [];
// //机器人user_id
// $robot_user_id = [];
// foreach ($dblist as $v) {
// //机器人
// if(db::name('user')->where(['id' => $v['user_id']])->value('is_robot')){
// $robot_user_id[] = $v['user_id'];
// continue;
// }
// $user_id_array[] = 'u'.$v['user_id'];
// }
// //获取腾讯的在线用户
// $online_users = model('Tencent')->query_user_online_status($user_id_array);
// $online_user = [];
// if(isset($online_users['ActionStatus']) && $online_users['ActionStatus'] == 'OK'){
// if($online_users['QueryResult']){
// foreach ($online_users['QueryResult'] as $v){
// if($v['Status'] == "Online"){
// //截取用户ID前面的 u 并获取用户ID
// $user_id = substr($v['To_Account'],1);
// $online_user[] = $user_id;
// }
// }
// }
// }
//
// if($dblist){
// $onpit = db::name('vs_room_pit')->field('user_id')->where(['room_id' => $room_id])->select();
// //合并数组
// $array = array_merge($online_user,$robot_user_id);
//// $array = $online_user;
// $arraypit = array_values((array)$onpit);
// foreach ($dblist as &$v){
//// if(in_array($v['user_id'],$arraypit)){
//// //跳过本次循环
//// continue;
//// }
// if(!in_array($v['user_id'],$array)){
// //修改他的状态
// db::name('vs_room_visitor')->where(['user_id' => $v['user_id'],'room_id'=>$room_id])->update(['on_line' => 0]);
// //查询他是否在其他房间
// $room_id_list = db::name('vs_room_visitor')->where(['user_id' => $v['user_id'],'room_id'=>['neq',$room_id]])->find();
// if($room_id_list){
// db::name('vs_room_visitor')->where(['user_id' => $v['user_id']])->delete();
// }
// }else{
// //修改他的状态
// db::name('vs_room_visitor')->where(['user_id' => $v['user_id'],'room_id'=>$room_id])->update(['on_line' => 1]);
// }
// }
// }else{
// $lists = ['on_pit' => [], 'off_pit' => []];
// return ['code' => 1, 'msg' => '成功', 'data' => $lists];
// }
$list = db::name('vs_room_visitor')->alias('a') $list = db::name('vs_room_visitor')->alias('a')
->join('user b', 'a.user_id = b.id') ->join('user b', 'a.user_id = b.id')
->field('a.user_id,b.nickname,b.avatar') ->field('a.user_id,b.nickname,b.avatar')
->where(['a.room_id' => $room_id,'on_line' => 1]) ->where(['a.room_id' => $room_id,'b.is_online' => 1])
->group('a.user_id')
->order('a.id asc') ->order('a.id asc')
->page($page, $limit) ->page($page, $limit)
->select(); ->select();
@@ -1361,17 +1342,16 @@ class Room extends Model
}); });
} }
if($label_type['data']['type_id'] == 7 || ($label_type['data']['type_id'] == 1 || $label_type['data']['type_id'] == 3 || $label_type['data']['type_id'] == 4) && $label_type['data']['label_id'] == 1) {//2卡八麦聊天type_id = 1 || 7(交友label_id = 1 if($label_type['data']['type_id'] == 7 || ($label_type['data']['type_id'] == 1 || $label_type['data']['type_id'] == 3 || $label_type['data']['type_id'] == 4 || $label_type['data']['type_id'] == 8) && $label_type['data']['label_id'] == 1) {//2卡八麦聊天type_id = 1 || 7(交友label_id = 1
foreach ($list as &$val) { foreach ($list as $val) {
if ($val['pit_number'] > 0) { if ($val['pit_number'] > 0) {
$lists['on_pit'][] = $val; $lists['on_pit'][] = $val;
} else { } else {
$lists['off_pit'][] = $val; $lists['off_pit'][] = $val;
} }
} }
}elseif(($label_type['data']['type_id'] == 1 || $label_type['data']['type_id'] == 3 || $label_type['data']['type_id'] == 4) && $label_type['data']['label_id'] == 2){ }elseif(($label_type['data']['type_id'] == 1 || $label_type['data']['type_id'] == 3 || $label_type['data']['type_id'] == 4 || $label_type['data']['type_id'] == 8) && $label_type['data']['label_id'] == 2){
foreach ($list as &$val) { foreach ($list as $val) {
// var_dump($val['pit_number']);exit;
if (db::name('vs_room_pit_simulate')->where(['room_id' => $room_id,'user_id' => $val['user_id']])->find() || $val['pit_number'] > 0) { if (db::name('vs_room_pit_simulate')->where(['room_id' => $room_id,'user_id' => $val['user_id']])->find() || $val['pit_number'] > 0) {
$lists['on_pit'][] = $val; $lists['on_pit'][] = $val;
} else { } else {
@@ -1391,7 +1371,7 @@ class Room extends Model
if($auct){ if($auct){
//获取数组里面的用户ID 组成新的数组 //获取数组里面的用户ID 组成新的数组
$user_ids = array_column((array)$auct, 'user_id'); $user_ids = array_column((array)$auct, 'user_id');
foreach ($list as &$val) { foreach ($list as $val) {
if (in_array($val['user_id'], $user_ids) || $val['pit_number'] > 0) { if (in_array($val['user_id'], $user_ids) || $val['pit_number'] > 0) {
$lists['on_pit'][] = $val; $lists['on_pit'][] = $val;
} else { } else {
@@ -1399,7 +1379,7 @@ class Room extends Model
} }
} }
}else{ }else{
foreach ($list as &$val) { foreach ($list as $val) {
if ($val['pit_number'] > 0) { if ($val['pit_number'] > 0) {
$lists['on_pit'][] = $val; $lists['on_pit'][] = $val;
} else { } else {
@@ -1409,8 +1389,7 @@ class Room extends Model
} }
}else{ }else{
foreach ($list as &$val) { foreach ($list as $val) {
// $lists['off_pit'][] = $val;
if ($val['pit_number'] > 0) { if ($val['pit_number'] > 0) {
$lists['on_pit'][] = $val; $lists['on_pit'][] = $val;
} else { } else {
@@ -1420,6 +1399,7 @@ class Room extends Model
} }
} }
return ['code' => 1, 'msg' => '成功', 'data' => $lists]; return ['code' => 1, 'msg' => '成功', 'data' => $lists];
} }
@@ -1472,7 +1452,7 @@ class Room extends Model
$user_info['is_in_pit'] = 1; $user_info['is_in_pit'] = 1;
} }
} }
}elseif (($room_type['type_id'] == 1 || $room_type['type_id'] == 3 || $room_type['type_id'] == 4) && $room_type['label_id'] == 1){ }elseif ($room_type['type_id'] == 7 || ($room_type['type_id'] == 1 || $room_type['type_id'] == 3 || $room_type['type_id'] == 4 || $room_type['type_id'] == 8) && $room_type['label_id'] == 1){
$hah = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $user_id])->find(); $hah = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $user_id])->find();
if($hah){ if($hah){
$user_info['is_in_pit'] = 1; $user_info['is_in_pit'] = 1;
@@ -1558,6 +1538,7 @@ class Room extends Model
'GiftInfo' => null, 'GiftInfo' => null,
'GiftNum' => null 'GiftNum' => null
]; ];
$typee = 0;
if($type == 1){//1-主持,2管理 if($type == 1){//1-主持,2管理
if($is_add == 1){//1-添加,2-删除 if($is_add == 1){//1-添加,2-删除
$typee = 1007; $typee = 1007;
@@ -1633,6 +1614,9 @@ class Room extends Model
if(!$is_host){ if(!$is_host){
return ['code' => 0, 'msg' => '用户不是主持人,不能设置收益', 'data' => null]; return ['code' => 0, 'msg' => '用户不是主持人,不能设置收益', 'data' => null];
} }
if($profit < 0 || $profit > 100){
return ['code' => 0, 'msg' => '请输入正确的比例 0-100', 'data' => null];
}
$res = db::name('vs_room_host')->where(['room_id' => $room_id,'user_id' => $user_id,'type' => 1,'delete_time' => null]) $res = db::name('vs_room_host')->where(['room_id' => $room_id,'user_id' => $user_id,'type' => 1,'delete_time' => null])
->update(['ratio' => $profit]); ->update(['ratio' => $profit]);
if(!$res){ if(!$res){
@@ -1642,10 +1626,8 @@ class Room extends Model
} }
//清除房间用户的魅力值 //清除房间用户的魅力值
public function clear_user_charm($user_id ,$room_id,$uid) public function clear_user_charm($user_id ,$room_id,$uid='')
{ {
//判断用户是否在主持麦
// $is_host = db::name('vs_room_pit')->where(['room_id' => $room_id,'user_id' => $user_id,'pit_number' => 9])->find();
$owner = db::name('vs_room')->where(['id' => $room_id, 'user_id' => $user_id])->field('id')->find(); $owner = db::name('vs_room')->where(['id' => $room_id, 'user_id' => $user_id])->field('id')->find();
$management = db::name('vs_room_host')->where(['room_id' => $room_id, 'user_id' => $user_id,'delete_time' => null])->find(); $management = db::name('vs_room_host')->where(['room_id' => $room_id, 'user_id' => $user_id,'delete_time' => null])->find();
if(!$owner && !$management){ if(!$owner && !$management){
@@ -1653,24 +1635,18 @@ class Room extends Model
} }
if($uid <= 0){ if($uid <= 0){
//获取房间内所有用户 db::name('vs_room_user_charm')->where(['room_id' => $room_id])->update(['charm' => 0,'clear_time' => time()]);
$list = db::name('vs_room_visitor')->field('user_id')->where(['room_id' => $room_id])->select(); //发送消息
$text['text'] = '清除魅力成功';
//循环清除用户魅力值 model('Chat')->sendMsg(1021,$room_id,$text);
if($list){
foreach ($list as $v){
//清除有魅力值的用户
if(db::name('vs_room_user_charm')->where(['room_id' => $room_id,'user_id' => $v['user_id']])->find()){
db::name('vs_room_user_charm')->where(['room_id' => $room_id,'user_id' => $v['user_id']])->update(['charm' => 0]);
}
}
}
}else{ }else{
$dd = db::name('vs_room_user_charm')->where(['room_id' => $room_id,'user_id' => $uid])->update(['charm' => 0]); db::name('vs_room_user_charm')->where(['room_id' => $room_id,'user_id' => $uid])->update(['charm' => 0,'clear_time' => time()]);
//发送消息
$text['text'] = '清除魅力成功';
$text['user_id'] = $uid;
model('Chat')->sendMsg(1059,$room_id,$text);
} }
//发送消息
$text['text'] = '清除魅力成功';
model('Chat')->sendMsg(1021,$room_id,$text);
//1-禁麦位2-清空消息3-清空魅力值4-加入黑名单5-踢出房间6-关闭麦克风7-申请上麦8-同意上麦9-拒绝上麦10-点歌11-开启PK', //1-禁麦位2-清空消息3-清空魅力值4-加入黑名单5-踢出房间6-关闭麦克风7-申请上麦8-同意上麦9-拒绝上麦10-点歌11-开启PK',
model('Room')->room_operation_record($user_id,$room_id,3); model('Room')->room_operation_record($user_id,$room_id,3);
return ['code' => 1, 'msg' => '成功', 'data' => null]; return ['code' => 1, 'msg' => '成功', 'data' => null];
@@ -1694,9 +1670,21 @@ class Room extends Model
return ['code' => 0, 'msg' => '房间类型已存在', 'data' => null]; return ['code' => 0, 'msg' => '房间类型已存在', 'data' => null];
} }
if($roomInfo['type_id'] == 7 && ($roomInfo['step'] == 2 || $roomInfo['step'] == 3)){
return ['code' => 0, 'msg' => '请先结束交友后在修改房间类型', 'data' => null];
}
if($roomInfo['type_id'] == 2){
$room_auction = db::name('vs_room_auction')->where(['room_id' => $room_id,'status' => 2])->select();
if($room_auction){
return ['code' => 0, 'msg' => '请先结束竞拍后在修改房间类型', 'data' => null];
}
}
//开启事务 //开启事务
db::startTrans(); db::startTrans();
if($type == 1 || $type == 3 || $type == 4){ $data = [];
if($type == 1 || $type == 3 || $type == 4 || $type == 8){
$data = [ $data = [
'label_id' => 1, 'label_id' => 1,
'type_id' => $type, 'type_id' => $type,
@@ -1712,6 +1700,14 @@ class Room extends Model
'is_song' => 1 'is_song' => 1
]; ];
} }
//交友房(互娱)
if($type == 7){
$data = [
'label_id' => 5,
'type_id' => $type,
'room_up_pit_type' => 1,
];
}
$res = db::name('vs_room')->where(['id' => $room_id])->update($data); $res = db::name('vs_room')->where(['id' => $room_id])->update($data);
if(!$res){ if(!$res){
@@ -1737,12 +1733,8 @@ class Room extends Model
db::name('vs_room_pit_simulate')->where(['room_id' => $room_id])->delete(); db::name('vs_room_pit_simulate')->where(['room_id' => $room_id])->delete();
//申请上麦的全部下麦 //申请上麦的全部下麦
model('RoomPit')->clear_apply_pit_list($uid, $room_id); model('RoomPit')->clear_apply_pit_list($uid, $room_id);
//处理之前修改的用户房间信息
if($type == 1 || $type == 3 || $type == 4){
db::name('vs_room_pit')->where(['pit_number' =>['>',10]])->update(['status' => 2]);
}
if($type == 1 || $type == 3 || $type == 4){ if($type == 1 || $type == 3 || $type == 4 || $type == 7 || $type == 8){
//查询拍卖房的状态 //查询拍卖房的状态
$room_auction = db::name('vs_room_auction')->where(['room_id' => $room_id,'status' => 2])->select(); $room_auction = db::name('vs_room_auction')->where(['room_id' => $room_id,'status' => 2])->select();
if($room_auction){ if($room_auction){
@@ -1750,10 +1742,16 @@ class Room extends Model
model('RoomAuction')->room_auction_end($room_id,$v['auction_id']); model('RoomAuction')->room_auction_end($room_id,$v['auction_id']);
} }
} }
//拍卖位上是否有人
$an = Cache::get('auction_user_'.$room_id);
if($an){
//拍卖位下麦
model('api/RoomPit')->host_user_pit($uid,$room_id,888,$an,2);
}
} }
if($type == 2){ if($type == 2){
//清除房间此前的魅力值 //清除房间此前的魅力值
db::name('vs_room_user_charm')->where(['room_id' => $room_id])->update(['charm' => 0]); db::name('vs_room_user_charm')->where(['room_id' => $room_id])->update(['charm' => 0,'clear_time' => time()]);
//10号麦有人就下去 //10号麦有人就下去
$pit_10 = db::name('vs_room_pit')->where(['room_id' => $room_id,'pit_number' => 10])->find(); $pit_10 = db::name('vs_room_pit')->where(['room_id' => $room_id,'pit_number' => 10])->find();
if($pit_10 && $pit_10['user_id'] > 0){ if($pit_10 && $pit_10['user_id'] > 0){
@@ -1769,6 +1767,15 @@ class Room extends Model
'text' => '房间类型已修改type--'.$type 'text' => '房间类型已修改type--'.$type
]; ];
model('Chat')->sendMsg(1012,$room_id,$text); model('Chat')->sendMsg(1012,$room_id,$text);
//查询房间里面的用户
$room_user = db::name('vs_room_visitor')->where(['room_id' => $room_id])->select();
if($room_user){
foreach ($room_user as $v){
if(Db::name('user')->where('id', $v['user_id'])->value('is_online') == 0){
model('Room')->quit_room($v['user_id'], $room_id,$v['user_id'],2);
}
}
}
return ['code' => 1, 'msg' => '修改成功', 'data' => null]; return ['code' => 1, 'msg' => '修改成功', 'data' => null];
} }
@@ -1805,6 +1812,11 @@ class Room extends Model
if(!$room_id){ if(!$room_id){
return ['code' => 0, 'msg' => '参数错误', 'data' => null]; return ['code' => 0, 'msg' => '参数错误', 'data' => null];
} }
$user_in_room = db::name('vs_room_visitor')->where(['room_id' => $room_id,'user_id' => $user_id])->find();
if(!$user_in_room){
// return ['code' => 0, 'msg' => '您已不在此房间', 'data' => null];
return ['code' => 0, 'msg' => '', 'data' => null];
}
$room = db::name('vs_room')->where(['id' => $room_id])->find(); $room = db::name('vs_room')->where(['id' => $room_id])->find();
$song_list = null; $song_list = null;
$next_song_info = null; $next_song_info = null;
@@ -1813,8 +1825,8 @@ class Room extends Model
$pit_list = null; $pit_list = null;
$roomauction = null; $roomauction = null;
$cp_users = null; $cp_users = null;
if($room['type_id'] == 1 || $room['type_id'] == 3 || $room['type_id'] == 4) { if($room['type_id'] == 1 || $room['type_id'] == 3 || $room['type_id'] == 4 || $room['type_id'] == 7 || $room['type_id'] == 8) {
if($room['label_id'] == 1){ if($room['label_id'] == 1 || $room['label_id'] == 5){
//麦位信息 //麦位信息
$pit_list = db::name('vs_room_pit')->alias('a')->join('user b', 'a.user_id = b.id', 'left') $pit_list = db::name('vs_room_pit')->alias('a')->join('user b', 'a.user_id = b.id', 'left')
->where(['a.room_id' => $room['id'],'a.status' => 1]) ->where(['a.room_id' => $room['id'],'a.status' => 1])
@@ -2002,6 +2014,27 @@ class Room extends Model
$user_info = $this ->get_user_info($room_id,$user_id,$user_pit); $user_info = $this ->get_user_info($room_id,$user_id,$user_pit);
$user_info['is_room_owner'] = ($user_id == $room['user_id']) ? 1 : 0; $user_info['is_room_owner'] = ($user_id == $room['user_id']) ? 1 : 0;
//交友相关回值
if($room['type_id'] == 7){
$friend = $this->getRoomFriendData($room_id);
//交友状态 交友进行到第几步 1等待邂逅 2心动连线 3牵手良缘
$friend['step'] =$room['step'];
}else{
$friend = null;
}
$xlh_info['xlh_info'] = model('BlindBoxTurntableGift')->get_user_xlh_info($room_id);
$open_time = db::name('vs_hour_ranking_config')->order('id', 'desc')->value('open_time');
if($open_time > 0){
if($open_time <= time()){
$hour_open = 1;//开启
}else{
$hour_open = 0;//关闭
}
}else{
$hour_open = 0;//关闭
}
return ['code' => 1, return ['code' => 1,
'msg' => '成功', 'msg' => '成功',
'data' => ['room_info' => $room_info, 'data' => ['room_info' => $room_info,
@@ -2012,7 +2045,10 @@ class Room extends Model
'room_auction'=>$roomauction, 'room_auction'=>$roomauction,
'cp_user'=>$cp_users, 'cp_user'=>$cp_users,
'pk_info'=>$pk_info, 'pk_info'=>$pk_info,
'song_pit_list'=>$song_pit_list 'song_pit_list'=>$song_pit_list,
'friend_info' => $friend,
'gift_cycle' => $xlh_info,
'hour_ranking_open' => $hour_open
] ]
]; ];
} }
@@ -2032,11 +2068,7 @@ class Room extends Model
if(!$is_host && !$is_room_owner){ if(!$is_host && !$is_room_owner){
return ['code' => 0, 'msg' => '您没有权限', 'data' => null]; return ['code' => 0, 'msg' => '您没有权限', 'data' => null];
} }
//是否在主持麦位上
// $is_pit = db::name('vs_room_pit')->where(['room_id' => $room_id,'pit_number' => 9])->value('user_id');
// if($uid != $is_pit){
// return ['code' => 0, 'msg' => '您没有权限', 'data' => null];
// }
if(!in_array($is_mute, [1,2,3,4])){ if(!in_array($is_mute, [1,2,3,4])){
return ['code' => 0, 'msg' => '参数错误!', 'data' => null]; return ['code' => 0, 'msg' => '参数错误!', 'data' => null];
} }
@@ -2222,7 +2254,7 @@ class Room extends Model
->join('user c','a.user_id2 = c.id','left') ->join('user c','a.user_id2 = c.id','left')
->join('vs_relation d','a.relation_id = d.id','left')//关系 ->join('vs_relation d','a.relation_id = d.id','left')//关系
->field('a.relation_id,a.cp_room_id,a.id,a.user_id1,a.user_id2,a.updatetime,a.time_day,a.end_time,b.nickname as nickname1,b.avatar as avatar1,c.nickname as nickname2,c.avatar as avatar2,d.name as relation_name,d.icon as image') ->field('a.relation_id,a.cp_room_id,a.id,a.user_id1,a.user_id2,a.updatetime,a.time_day,a.end_time,b.nickname as nickname1,b.avatar as avatar1,c.nickname as nickname2,c.avatar as avatar2,d.name as relation_name,d.icon as image')
->where(['a.user_id1' => $user_id,'a.end_time' =>['>',time()],'a.delete_time' => 0]) ->where(['a.user_id1' => $user_id,'a.end_time' =>['>',time()],'a.delete_time' => 0,'a.relation_id' => ['>',0]])
->order('a.updatetime desc') ->order('a.updatetime desc')
->select(); ->select();
$room_auction2 = db::name('vs_room_auction_relation')->alias('a') $room_auction2 = db::name('vs_room_auction_relation')->alias('a')
@@ -2230,7 +2262,7 @@ class Room extends Model
->join('user c','a.user_id2 = c.id','left') ->join('user c','a.user_id2 = c.id','left')
->join('vs_relation d','a.relation_id = d.id','left')//关系 ->join('vs_relation d','a.relation_id = d.id','left')//关系
->field('a.relation_id,a.cp_room_id,a.id,a.user_id1,a.user_id2,a.updatetime,a.time_day,a.end_time,b.nickname as nickname1,b.avatar as avatar1,c.nickname as nickname2,c.avatar as avatar2,d.name as relation_name,d.icon as image') ->field('a.relation_id,a.cp_room_id,a.id,a.user_id1,a.user_id2,a.updatetime,a.time_day,a.end_time,b.nickname as nickname1,b.avatar as avatar1,c.nickname as nickname2,c.avatar as avatar2,d.name as relation_name,d.icon as image')
->where(['a.user_id2' => $user_id,'a.end_time' =>['>',time()],'a.delete_time' => 0]) ->where(['a.user_id2' => $user_id,'a.end_time' =>['>',time()],'a.delete_time' => 0,'a.relation_id' => ['>',0]])
->order('a.updatetime desc') ->order('a.updatetime desc')
->select(); ->select();
@@ -2475,4 +2507,128 @@ class Room extends Model
return ['code' => 1, 'msg' => '操作成功', 'data' => $data]; return ['code' => 1, 'msg' => '操作成功', 'data' => $data];
} }
public function getRoomFriendData($room_id)
{
//交友相关回值
$friend = [];
$friend['friend_id'] = 0;//场次ID
//查询用户交友表
$friend_info = db::name('vs_user_friending')->where(['room_id' => $room_id,'status' => 1])->order('id', 'desc')->find();
$friend['room_on_line_cp'] = 0;
$friend['heart_list'] = [];
$friend['is_preside'] = 0;
$friend['end_time'] = 0;
if($friend_info){
$friend['friend_id'] = $friend_info['id'];
$friend['end_time'] = $friend_info['end_time'];
$friend['heart_list'] = model('Friend')->pullHeartChange($room_id, $friend_info['id']);
}
return $friend;
}
//房间用户当前魅力值列表
public function room_user_charm_list($room_id, $user_id)
{
if($room_id == '' || $user_id == ''){
return ['code' => 0, 'msg' => '参数错误', 'data' => null];
}
$clear_time = db::name('vs_room_user_charm')->where(['room_id' => $room_id, 'user_id' => $user_id])
->order('id', 'desc')->value('clear_time') ?? 0;
$list = db::name('vs_give_gift')->alias('a')
->join('user b', 'a.user_id=b.id')
->field('a.user_id,sum(a.total_price) as total_price,b.nickname,b.avatar,b.user_code')
->where(['a.from_id' => $room_id, 'a.gift_user' => $user_id, 'a.createtime' => ['>',$clear_time],'a.from' => 2])
->group('a.user_id')->select();
if($list){
foreach ($list as &$v){
$v['charm'] = $v['total_price'] * get_system_config_value('coin_charm_exp');
$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 user_reconnect($user_id,$room_id)
{
if(!$room_id){
// $room_id = Db::name('user_data')->where('user_id', $user_id)->value('room_id');
}
if(!$room_id){
return ['code' => 0, 'msg' => '参数错误', 'data' => null];
}
//查询用户在几个房间
$room = db::name('vs_room_visitor')->where('user_id', $user_id)->select();
if($room){
$userinroom = 0;
foreach ($room as $v){
if($v['room_id'] == $room_id){
$userinroom = $room_id;
break;
}
}
if($userinroom == $room_id){
$room_info = db::name('vs_room_visitor')->where(['id' => $room_id])->update(['room_id' => $room_id, 'user_id' => $user_id, 'updatetime' => time(),'remarks' =>'断线后重连']);
if(!$room_info){
return ['code' => 0, 'msg' => '更新加入房间失败', 'data' => null];
}
}else
{
$room_info = db::name('vs_room_visitor')->insert(['room_id' => $room_id, 'user_id' => $user_id, 'createtime' => time(),'remarks' =>'断线后重连']);
if(!$room_info){
return ['code' => 0, 'msg' => '加入房间失败', 'data' => null];
}
}
}else{
$room_info = db::name('vs_room_visitor')->insert(['room_id' => $room_id, 'user_id' => $user_id, 'createtime' => time(),'remarks' =>'断线后重连']);
if(!$room_info){
return ['code' => 0, 'msg' => '加入房间失败', 'data' => null];
}
}
return ['code' => 1, 'msg' => '操作成功', 'data' => null];
}
//用户在房间内切后台保留机制
public function user_in_room_background($user_id,$room_id,$type)
{
if(!$room_id){
return ['code' => 0, 'msg' => '参数错误', 'data' => null];
}
$room_t = db::name('vs_room')->field('type_id,label_id')->where('id',$room_id)->find();
if(!(($room_t['type_id'] == 1 || $room_t['type_id'] == 8) && $room_t['label_id'] == 1)){
if($type == 1){//1-切后台2-切前台
$is_bg = db::name('vs_user_in_room_bg')->where(['user_id' => $user_id,'room_id' => $room_id])->find();
if($is_bg){
$up_bg = [
'updatetime' => time(),
];
db::name('vs_user_in_room_bg')->where('id',$is_bg['id'])->update($up_bg);
}else{
$data = [
'user_id' => $user_id,
'room_id' => $room_id,
'createtime' => time(),
'updatetime' => time(),
];
$room_background = db::name('vs_user_in_room_bg')->insert($data);
if(!$room_background){
return ['code' => 0, 'msg' => '操作失败', 'data' => null];
}
}
}else{
db::name('vs_user_in_room_bg')->where(['user_id' => $user_id,'room_id' => $room_id])->delete();
}
}
return ['code' => 1, 'msg' => '操作成功', 'data' => null];
}
} }

View File

@@ -109,7 +109,7 @@ class RoomAuction extends Model
//参与竞拍 //参与竞拍
public function room_auction_join($auction_id,$user_id,$gift_id,$num,$type) public function room_auction_join($auction_id,$user_id,$gift_id,$num,$type,$ext=[])
{ {
if(!$auction_id){ if(!$auction_id){
return ['code' => 0, 'msg' => '拍卖已经结束','data' => null]; return ['code' => 0, 'msg' => '拍卖已经结束','data' => null];
@@ -127,7 +127,7 @@ class RoomAuction extends Model
} }
//走送礼流程 //走送礼流程
$ree = model('GiveGift')->give_gift($user_id,$auction['user_id'],$gift_id,$num,2,$type,$auction['room_id'],0,0); $ree = model('GiveGift')->give_gift($user_id,$auction['user_id'],$gift_id,$num,2,$type,$auction['room_id'],0,0,$ext);
if($ree['code'] != 1){ if($ree['code'] != 1){
return ['code' => $ree['code'], 'msg' => $ree['msg'],'data' => null]; return ['code' => $ree['code'], 'msg' => $ree['msg'],'data' => null];
} }
@@ -137,7 +137,7 @@ class RoomAuction extends Model
'auction_id' => $auction_id, 'auction_id' => $auction_id,
'user_id' => $user_id, 'user_id' => $user_id,
'gift_id' => $gift_id, 'gift_id' => $gift_id,
'gift_price' => $num * $gift_price, 'gift_price' => $ree['data']['gift_total'],
'createtime' => time() 'createtime' => time()
]); ]);
if(!$res){ if(!$res){
@@ -167,7 +167,7 @@ class RoomAuction extends Model
->where(['auction_id' => $auction_id]) ->where(['auction_id' => $auction_id])
->group('user_id') ->group('user_id')
->having('gift_prices >= ' . $auction['gift_price']) ->having('gift_prices >= ' . $auction['gift_price'])
->order('gift_prices DESC') ->order('gift_prices DESC, id ASC')
->limit(6) ->limit(6)
->select(); ->select();
if($list){ if($list){
@@ -292,9 +292,11 @@ class RoomAuction extends Model
//查询是否有电影房 //查询是否有电影房
$cp_movie = $this->movie_room_create_or_add($list['user_id'],$res['user_id'],$res['relation_id'],$res['time_day']); $cp_movie = $this->movie_room_create_or_add($list['user_id'],$res['user_id'],$res['relation_id'],$res['time_day']);
if($cp_movie['code'] != 1){ if($cp_movie['code'] != 1){
return ['code' => 0, 'msg'=>$cp_movie['msg'], 'data'=>$cp_movie['data']]; // return ['code' => 0, 'msg'=>$cp_movie['msg'], 'data'=>$cp_movie['data']];
}else{
$cp_room_id = $cp_movie['data']['cp_room_id'];
} }
$cp_room_id = $cp_movie['data']['cp_room_id'];
} }
$texts = '恭喜'.$auction['nickname'].' 和 '.$recipient['nickname'].',获得'.$auction['relation_name'].' 关系'.$auction['time_day'].'小时'; $texts = '恭喜'.$auction['nickname'].' 和 '.$recipient['nickname'].',获得'.$auction['relation_name'].' 关系'.$auction['time_day'].'小时';
}else{//拍得无关系 }else{//拍得无关系

View File

@@ -98,6 +98,16 @@ class RoomPit extends Model
]; ];
model('Tencent')->batchsendmsg($remind_user,json_encode($content)); model('Tencent')->batchsendmsg($remind_user,json_encode($content));
} }
$reslut = db::name('vs_room_pit_apply')->where(['user_id' => $user_id, 'room_id' => $room_id, 'status' => 0])->delete();
if($reslut){
$count = db::name('vs_room_pit_apply')->where(['room_id' => $room_id,'status' => 0])->count();
//申请上麦推送消息(数据重置)
$text = [
'text' => '申请上麦',
'count' => $count
];
model('Chat')->sendMsg(1034,$room_id,$text);
}
return ['code' => 1, 'msg' => '上麦成功', 'data' => null]; return ['code' => 1, 'msg' => '上麦成功', 'data' => null];
} }
@@ -126,6 +136,10 @@ class RoomPit extends Model
if($is_pk > 0 && $pit_number == 9){ if($is_pk > 0 && $pit_number == 9){
return ['code' => 0, 'msg' => '当前房间正在pk中', 'data' => null]; return ['code' => 0, 'msg' => '当前房间正在pk中', 'data' => null];
} }
$step = db::name('vs_room')->where(['id' => $room_id, 'type_id' => 7])->value('step');
if($step && $step != 1 && $pit_number < 9){
return ['code' => 0, 'msg' => '交友房 此阶段不可操作', 'data' => null];
}
$FromUserInfo = db::name('user')->where('id',$user_id)->field('id as user_id,nickname,avatar,sex')->find(); $FromUserInfo = db::name('user')->where('id',$user_id)->field('id as user_id,nickname,avatar,sex')->find();
$FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($user_id);//财富图标 $FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($user_id);//财富图标
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($user_id);//魅力图标 $FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($user_id);//魅力图标
@@ -170,7 +184,7 @@ class RoomPit extends Model
return ['code' => 0, 'msg' => '请选择房间', 'data' => null]; return ['code' => 0, 'msg' => '请选择房间', 'data' => null];
} }
//查询房间状态 //查询房间状态
$room_info = db::name('vs_room')->where(['id' => $room_id, 'apply_status' => 2])->field('id,room_status,room_up_pit_type,label_id')->find(); $room_info = db::name('vs_room')->where(['id' => $room_id, 'apply_status' => 2])->field('id,room_status,room_up_pit_type,label_id,step')->find();
if(!$room_info){ if(!$room_info){
return ['code' => 0, 'msg' => '房间不存在', 'data' => null]; return ['code' => 0, 'msg' => '房间不存在', 'data' => null];
} }
@@ -178,19 +192,39 @@ class RoomPit extends Model
return ['code' => 0, 'msg' => '房间违规或关闭', 'data' => null]; return ['code' => 0, 'msg' => '房间违规或关闭', 'data' => null];
} }
if($pit_number == 9){
//检查用户是否是房主或主持
$is_room_owner =db::name('vs_room')->where(['id' => $room_id, 'user_id' => $user_id])->field('id')->find();
$is_room_host = db::name('vs_room_host')->where(['room_id' => $room_id, 'user_id' => $user_id,'delete_time' => null])->field('id')->find();
if(!$is_room_owner && !$is_room_host){
return ['code' => 0, 'msg' => '没有权限', 'data' => null];
}
}
if($pit_number == 10){ if($pit_number == 10){
return ['code' => 0, 'msg' => '请等待主持抱麦', 'data' => null]; return ['code' => 0, 'msg' => '请等待主持抱麦', 'data' => null];
} }
//检查是否在坑位上 //检查是否在坑位上
$pit_infos = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $user_id])->field('id,pit_number')->find(); $pit_infos = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $user_id])->field('id,pit_number')->find();
if($pit_infos){
return ['code' => 0, 'msg' => '您已上麦', 'data' => null]; if($room_info['label_id'] == 5 && $room_info['step'] != 1 && $pit_number < 9){
return ['code' => 0, 'msg' => '互娱房 此阶段不可此操作', 'data' => null];
} }
//自由麦 //自由麦
if($room_info['room_up_pit_type'] == 2){ if($room_info['room_up_pit_type'] == 2){
if($pit_number > 0){ if($pit_number > 0){
if($room_info['label_id'] == 5){//交友(互娱)
if($pit_number == 7 || $pit_number == 8){
return ['code' => 0, 'msg' => '该麦位已锁定了', 'data' => null];
}
if($pit_number == 9){
if($pit_infos){
return ['code' => 0, 'msg' => '您已上麦', 'data' => null];
}
}
}
//查询当前麦位是否有人 //查询当前麦位是否有人
$pit_info = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => $pit_number])->field('id,user_id,is_lock')->find(); $pit_info = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => $pit_number])->field('id,user_id,is_lock')->find();
if($pit_info['user_id'] > 0){ if($pit_info['user_id'] > 0){
@@ -200,106 +234,118 @@ class RoomPit extends Model
if($pit_info['is_lock'] == 1){ if($pit_info['is_lock'] == 1){
return ['code' => 0, 'msg' => '该麦位被锁定', 'data' => null]; return ['code' => 0, 'msg' => '该麦位被锁定', 'data' => null];
} }
if($pit_number ==9){
//检查用户是否是房主或主持
$is_room_owner =db::name('vs_room')->where(['id' => $room_id, 'user_id' => $user_id])->field('id')->find();
$is_room_host = db::name('vs_room_host')->where(['room_id' => $room_id, 'user_id' => $user_id,'delete_time' => null])->field('id')->find();
if(!$is_room_owner && !$is_room_host){
return ['code' => 0, 'msg' => '您还不是房间主持人', 'data' => null];
}
}
}else{ }else{
// if($room_info['label_id'] == 2){ if($room_info['label_id'] == 5){//交友
$pit_number = $this->getRoomNullPitWithout($room_id, [7,8,9,10]);
}else{
$pit_number = $this->getRoomNullPitWithout($room_id, [9, 10]); $pit_number = $this->getRoomNullPitWithout($room_id, [9, 10]);
// }else{ }
// $pit_number = $this->getRoomNullPitWithout($room_id, [9, 10, 11,12,13,14,15,16,17,18,19,20,21,22]);
// }
if(!$pit_number){ if(!$pit_number){
return ['code' => 0, 'msg' => '当前房间没有空麦位', 'data' => null]; return ['code' => 0, 'msg' => '当前房间没有空麦位', 'data' => null];
} }
} }
//换麦使用 //换麦使用
if(isset($pit_infos) && $pit_infos['pit_number'] > 0){ if(isset($pit_infos) && $pit_infos['pit_number'] > 0){
//下麦 $exchange1 = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => $pit_infos['pit_number']])->update([ 'user_id' => 0]);
$dow = $this ->DownPit($user_id,$room_id,$pit_infos['pit_number']); $exchange = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => $pit_number])->update([ 'user_id' => $user_id]);
if($dow['code'] != 1){ if(!$exchange || !$exchange1){
return ['code' => 0, 'msg' => '操作失败', 'data' => null]; return ['code' => 0, 'msg' => '换麦失败', 'data' => null];
} }
$FromUserInfo = db::name('user')->where('id',$user_id)->field('id as user_id,nickname,avatar,sex')->find();
$FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($user_id);//财富图标
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($user_id);//魅力图标
$FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($user_id,1);
$FromUserInfo['charm'] = db::name('vs_room_user_charm')->where(['user_id' => $user_id,'room_id' => $room_id])->value('charm');
if($pit_number == 9){
$pit_text = '主持麦';
}elseif ($pit_number == 10) {
$pit_text = '嘉宾麦';
}else{
$pit_text = $pit_number . '号麦';
}
$text['text'] = $FromUserInfo['nickname'].' 换到 ' . $pit_text;
$text['FromUserInfo'] = $FromUserInfo;
$text['from_pit_number'] = $pit_infos['pit_number'];
$text['to_pit_number'] = $pit_number;
model('Chat')->sendMsg(1039,$room_id,$text);
return ['code' => 1, 'msg' => '上麦成功', 'data' => null];
}else{
$ompit = $this->OnPit($user_id,$room_id,$pit_number);//用户上了这个房间的几号麦位
if($ompit['code'] != 1){
return ['code' => 0, 'msg' => '上麦失败', 'data' => null];
}
return ['code' => 1, 'msg' => '上麦成功', 'data' => null];
} }
$ompit = $this->OnPit($user_id,$room_id,$pit_number);//用户上了这个房间的几号麦位 }else{//排麦
if($ompit['code'] != 1){
return ['code' => 0, 'msg' => '上麦失败', 'data' => null];
}
return ['code' => 1, 'msg' => '上麦成功', 'data' => null];
}else{
if($pit_number == 9){ if($pit_number == 9){
//检查用户是否是房主或主持
$is_room_owner = db::name('vs_room')->where(['id' => $room_id, 'user_id' => $user_id])->field('id')->find();
$is_room_host = db::name('vs_room_host')->where(['room_id' => $room_id, 'user_id' => $user_id,'delete_time' => null])->field('id')->find();
//查看主持坑9坑
$host_pit = $this->where(['room_id' => $room_id, 'pit_number' => 9])->value('user_id'); $host_pit = $this->where(['room_id' => $room_id, 'pit_number' => 9])->value('user_id');
if(($is_room_owner || $is_room_host) && $host_pit == 0){ if ($host_pit > 0) {
//查询用户是否在麦位上 if ($host_pit == $user_id) {
$is_on = $this->where(['room_id' => $room_id, 'user_id' => $user_id])->value('pit_number'); return ['code' => 0, 'msg' => '您已在主持麦位', 'data' => null];
if($is_on){ } else {
//下麦 return ['code' => 0, 'msg' => '该麦位有人', 'data' => null];
$dow = $this ->DownPit($user_id,$room_id,$is_on); }
if($dow['code'] != 1){ }else{
return ['code' => 0, 'msg' => '操作失败', 'data' => null]; if(isset($pit_infos) && $pit_infos['pit_number'] > 0){
$exchange1 = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => $pit_infos['pit_number']])->update([ 'user_id' => 0]);
$exchange = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => $pit_number])->update([ 'user_id' => $user_id]);
if(!$exchange || !$exchange1){
return ['code' => 0, 'msg' => '换麦失败', 'data' => null];
} }
$FromUserInfo = db::name('user')->where('id',$user_id)->field('id as user_id,nickname,avatar,sex')->find();
$FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($user_id);//财富图标
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($user_id);//魅力图标
$FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($user_id,1);
$FromUserInfo['charm'] = db::name('vs_room_user_charm')->where(['user_id' => $user_id,'room_id' => $room_id])->value('charm');
$text['text'] = $FromUserInfo['nickname'].' 换到主持麦 ';
$text['FromUserInfo'] = $FromUserInfo;
$text['from_pit_number'] = $pit_infos['pit_number'];
$text['to_pit_number'] = $pit_number;
model('Chat')->sendMsg(1039,$room_id,$text);
return ['code' => 1, 'msg' => '上麦成功', 'data' => null];
}else{
//直接上主持麦
$ont = $this->OnPit($user_id,$room_id,$pit_number);//用户上了这个房间的几号麦位
if($ont['code'] != 1){
return ['code' => 0, 'msg' => '上麦失败', 'data' => null];
}
return ['code' => 1, 'msg' => '上麦成功', 'data' => null];
} }
//直接上主持麦
$ont = $this->OnPit($user_id,$room_id,9);//用户上了这个房间的几号麦位
if($ont['code'] != 1){
return ['code' => 0, 'msg' => '上麦失败', 'data' => null];
}
//查找是否在申请列表里
$apply_pit = db::name('vs_room_pit_apply')->where(['room_id' => $room_id, 'user_id' => $user_id])->find();
if($apply_pit){
$this->clear_apply_pit_list($user_id, $room_id, $user_id);
// db::name('vs_room_pit_apply')->where(['room_id' => $room_id, 'user_id' => $user_id])->delete();
// $count = db::name('vs_room_pit_apply')->where(['room_id' => $room_id,'status' => 0])->count();
// //申请上麦推送消息
// $text = [
// 'text' => '申请上麦',
// 'count' => $count
// ];
// model('Chat')->sendMsg(1034,$room_id,$text);
}
return ['code' => 1, 'msg' => '上麦成功', 'data' => null];
} }
} }else{
//检查用户是否已经申请 //检查用户是否已经申请
$apply_pit_info = db::name('vs_room_pit_apply')->where(['room_id' => $room_id, 'user_id' => $user_id,'apply_type' =>1])->field('id')->find(); $apply_pit_info = db::name('vs_room_pit_apply')->where(['room_id' => $room_id, 'user_id' => $user_id,'apply_type' =>1])->field('id')->find();
if($apply_pit_info){ if($apply_pit_info){
return ['code' => 0, 'msg' => '请勿重复申请', 'data' => null]; return ['code' => 0, 'msg' => '请勿重复申请', 'data' => null];
} }
if(isset($pit_infos) && $pit_infos['pit_number'] > 0){ if(isset($pit_infos) && $pit_infos['pit_number'] > 0){
return ['code' => 0, 'msg' => '用户已在麦上,请先下麦后再申请', 'data' => null]; return ['code' => 0, 'msg' => '用户已在麦上,请先下麦后再申请', 'data' => null];
} }
//放入等待区 //放入等待区
$data = [ $data = [
'room_id' => $room_id, 'room_id' => $room_id,
'user_id' => $user_id, 'user_id' => $user_id,
'status' => 0, 'status' => 0,
'apply_type' => 1 'apply_type' => 1
]; ];
$reslut = db::name('vs_room_pit_apply')->insert($data); $reslut = db::name('vs_room_pit_apply')->insert($data);
if(!$reslut){ if(!$reslut){
return ['code' => 0, 'msg' => '申请失败', 'data' => null]; return ['code' => 0, 'msg' => '申请失败', 'data' => null];
}
$count = db::name('vs_room_pit_apply')->where(['room_id' => $room_id,'status' => 0])->count();
//申请上麦推送消息
$text = [
'text' => '申请上麦',
'count' => $count
];
model('Chat')->sendMsg(1034,$room_id,$text);
return ['code' => 1, 'msg' => '申请成功,请等待房主审核', 'data' => null];
} }
$count = db::name('vs_room_pit_apply')->where(['room_id' => $room_id,'status' => 0])->count();
//申请上麦推送消息
$text = [
'text' => '申请上麦',
'count' => $count
];
model('Chat')->sendMsg(1034,$room_id,$text);
return ['code' => 1, 'msg' => '申请成功,请等待房主审核', 'data' => null];
} }
} }
@@ -315,15 +361,6 @@ class RoomPit extends Model
'a.status' => 0, 'a.status' => 0,
]; ];
// $res = model('Room')->get_room_label($room_id);
// $room_label = $res['data']['label_id'];
// $room_type = $res['data']['type_id'];
// if($room_label == 1 && ($room_type == 1 || $room_type == 3 || $room_type == 4)){
// $where['a.apply_type'] = 1;
// }elseif ($room_label == 2 && ($room_type == 1 || $room_type == 3 || $room_type == 4)){
// $where['a.apply_type'] = 2;
// }
$list['regular'] = db::name('vs_room_pit_apply')->alias('a')->join('user b','a.user_id = b.id') $list['regular'] = db::name('vs_room_pit_apply')->alias('a')->join('user b','a.user_id = b.id')
->where($where)->where('a.type',0)->field('a.user_id,a.rank_value,b.nickname,b.avatar') ->where($where)->where('a.type',0)->field('a.user_id,a.rank_value,b.nickname,b.avatar')
->order('a.rank_value desc')->select(); ->order('a.rank_value desc')->select();
@@ -432,6 +469,8 @@ class RoomPit extends Model
$apply_type = 2;//K歌 $apply_type = 2;//K歌
}elseif($room_type == 2){ }elseif($room_type == 2){
$apply_type = 3;//拍卖 $apply_type = 3;//拍卖
}elseif($room_type == 7){
$apply_type = 7;//交友
}else{ }else{
$apply_type = 1;//聊天 $apply_type = 1;//聊天
} }
@@ -469,7 +508,7 @@ class RoomPit extends Model
continue; continue;
} }
//删除他的申请上麦 //删除他的申请上麦
$reslut = db::name('vs_room_pit_apply')->where(['user_id' => $value, 'room_id' => $room_id, 'status' => 0,'apply_type' => 1])->delete(); $reslut = db::name('vs_room_pit_apply')->where(['user_id' => $value, 'room_id' => $room_id, 'status' => 0])->delete();
if (!$reslut) { if (!$reslut) {
continue; continue;
} }
@@ -499,7 +538,7 @@ class RoomPit extends Model
break; break;
} }
//删除他的申请上麦 //删除他的申请上麦
$reslut = db::name('vs_room_pit_apply')->where(['user_id' => $value, 'room_id' => $room_id, 'status' => 0,'apply_type' => 2])->delete(); $reslut = db::name('vs_room_pit_apply')->where(['user_id' => $value, 'room_id' => $room_id, 'status' => 0])->delete();
if (!$reslut) { if (!$reslut) {
continue; continue;
} }
@@ -548,14 +587,16 @@ class RoomPit extends Model
//有人就让他下麦 //有人就让他下麦
return ['code' => 0, 'msg' => '拍卖位上已有人,请先抱对方下麦', 'data' => null]; return ['code' => 0, 'msg' => '拍卖位上已有人,请先抱对方下麦', 'data' => null];
} }
$i = 0; // $i = 0;
foreach ($to_user as &$value) { // foreach ($to_user as &$value) {
$i++; // $i++;
$value = $to_user[0];
//删除他的申请上麦 //删除他的申请上麦
$reslut = db::name('vs_room_pit_apply')->where(['user_id' => $value, 'room_id' => $room_id, 'status' => 0])->delete(); $reslut = db::name('vs_room_pit_apply')->where(['user_id' => $value, 'room_id' => $room_id, 'status' => 0])->delete();
if (!$reslut) { // if (!$reslut) {
continue; // continue;
} // }
Cache::set('auction_user_'.$room_id,$value);
//聊天室推送系统消息 //聊天室推送系统消息
$FromUserInfo = db::name('user')->where('id',$value)->field('id as user_id,nickname,avatar,sex')->find(); $FromUserInfo = db::name('user')->where('id',$value)->field('id as user_id,nickname,avatar,sex')->find();
$FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($value);//财富图标 $FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($value);//财富图标
@@ -566,13 +607,13 @@ class RoomPit extends Model
$text['pit_number'] = 888; $text['pit_number'] = 888;
$text['type'] = 1 ; $text['type'] = 1 ;
model('Chat')->sendMsg(1022,$room_id,$text); model('Chat')->sendMsg(1022,$room_id,$text);
Cache::set('auction_user_'.$room_id,$value);
//1-禁麦位2-清空消息3-清空魅力值4-加入黑名单5-踢出房间6-关闭麦克风7-申请上麦8-同意上麦9-拒绝上麦10-点歌11-开启PK', //1-禁麦位2-清空消息3-清空魅力值4-加入黑名单5-踢出房间6-关闭麦克风7-申请上麦8-同意上麦9-拒绝上麦10-点歌11-开启PK',
model('Room')->room_operation_record($user_id,$room_id,8,$value); model('Room')->room_operation_record($user_id,$room_id,8,$value);
if($i >= 1){ // if($i >= 1){
break; // break;
} // }
} // }
$count = db::name('vs_room_pit_apply')->where(['room_id' => $room_id,'status' => 0])->count(); $count = db::name('vs_room_pit_apply')->where(['room_id' => $room_id,'status' => 0])->count();
//申请上麦推送消息 //申请上麦推送消息
$text = [ $text = [
@@ -581,6 +622,41 @@ class RoomPit extends Model
]; ];
model('Chat')->sendMsg(1034,$room_id,$text); model('Chat')->sendMsg(1034,$room_id,$text);
return ['code' => 1, 'msg' => '上麦成功', 'data' => null]; return ['code' => 1, 'msg' => '上麦成功', 'data' => null];
}elseif($apply_type == 7) {
$i = 0;
foreach ($to_user as &$value) {
//查询当前空麦位
$empty_pit = $this->getRoomNullPitWithout($room_id, [7,8,9,10]);
if (!$empty_pit) {
//退出循环 并终止循环
break;
}
//查询是否已经上麦
$is_on_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $value])->field('id')->find();
if ($is_on_pit) {
continue;
}
//删除他的申请上麦
$reslut = db::name('vs_room_pit_apply')->where(['user_id' => $value, 'room_id' => $room_id, 'status' => 0])->delete();
if (!$reslut) {
continue;
}
$on = $this->OnPit($value, $room_id, $empty_pit);//用户上了这个房间的几号麦位
if ($on['code'] != 1) {
continue;
}
$i++;
//1-禁麦位2-清空消息3-清空魅力值4-加入黑名单5-踢出房间6-关闭麦克风7-申请上麦8-同意上麦9-拒绝上麦10-点歌11-开启PK',
model('Room')->room_operation_record($user_id,$room_id,8,$value,$empty_pit);
}
$count = db::name('vs_room_pit_apply')->where(['room_id' => $room_id,'status' => 0])->count();
//申请上麦推送消息(数据重置)
$text = [
'text' => '申请上麦',
'count' => $count
];
model('Chat')->sendMsg(1034,$room_id,$text);
return ['code' => 1, 'msg' => $i . '位用户上麦成功', 'data' => null];
} }
} }
return ['code' => 0, 'msg' => '请选择申请上麦的用户', 'data' => null]; return ['code' => 0, 'msg' => '请选择申请上麦的用户', 'data' => null];
@@ -738,10 +814,19 @@ class RoomPit extends Model
} }
if($type == 1){//抱麦 if($type == 1){//抱麦
$on_9_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => 9])->value('user_id'); if($pit_number == 10){
if($on_9_pit <= 0){ $on_9_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => 9])->value('user_id');
return ['code' => 0, 'msg' => '您暂未上主持麦位,请先上麦', 'data' => null]; if($on_9_pit != $user_id){
return ['code' => 0, 'msg' => '请等待麦上主持抱麦', 'data' => null];
}
} }
//房主
$owner = db::name('vs_room')->where(['id' => $room_id, 'user_id' => $user_id])->field('id')->find();
$host = db::name('vs_room_host')->where(['room_id' => $room_id, 'user_id' => $user_id,'delete_time' => null])->find();
if(!$owner && !$host){
return ['code' => 0, 'msg' => '没有权限操作', 'data' => null];
}
if(!$pit_number){ if(!$pit_number){
$room_type = db::name('vs_room')->where(['id' => $room_id])->value('type_id'); $room_type = db::name('vs_room')->where(['id' => $room_id])->value('type_id');
if($room_type == 2){ if($room_type == 2){
@@ -826,7 +911,7 @@ class RoomPit extends Model
if(!$pit_number || $pit_number == 888){ if(!$pit_number || $pit_number == 888){
$roomInfo = db::name('vs_room')->where('id',$room_id)->field('label_id,type_id')->find(); $roomInfo = db::name('vs_room')->where('id',$room_id)->field('label_id,type_id')->find();
if($roomInfo['type_id'] == 2){//拍卖 if($roomInfo['type_id'] == 2 || Cache::get('auction_user_'.$room_id)){//拍卖
//查询当前是否处于拍卖中 //查询当前是否处于拍卖中
$auctioning = db::name('vs_room_auction') $auctioning = db::name('vs_room_auction')
->where(['room_id' => $room_id, 'status' => 2, 'user_id' => $accept_user_id])->find(); ->where(['room_id' => $room_id, 'status' => 2, 'user_id' => $accept_user_id])->find();
@@ -856,6 +941,10 @@ class RoomPit extends Model
} }
} }
}else{ }else{
$step = db::name('vs_room')->where(['id' => $room_id, 'type_id' => 7])->value('step');
if($step && $step != 1 && $pit_number < 9){
return ['code' => 0, 'msg' => '交友房 此阶段不可操作', 'data' => null];
}
$where['room_id'] = $room_id; $where['room_id'] = $room_id;
$where['pit_number'] = $pit_number; $where['pit_number'] = $pit_number;
$where['user_id'] = $accept_user_id; $where['user_id'] = $accept_user_id;

View File

@@ -285,9 +285,14 @@ class RoomSong extends Model
//上移歌 $type 1上移 2置顶 //上移歌 $type 1上移 2置顶
public function up_song($room_song_id,$type=1){ public function up_song($user_id,$room_song_id,$type=1){
//查询当前数据的信息 //查询当前数据的信息
$sort = db::name('vs_room_song')->where('did',$room_song_id)->field('room_id,sort,times')->find(); $sort = db::name('vs_room_song')->where('did',$room_song_id)->field('room_id,sort,times')->find();
//查询当前用户是否是在9号麦的主持
$is_host = db::name('vs_room_pit')->where(['user_id' => $user_id,'room_id' => $sort['room_id'],'pit_number' =>9])->find();
if(!$is_host){
return ['code'=>0,'msg'=>'您没有权限操作','data'=>null];
}
//根据房间ID查询当前房间中正在排序的歌曲 并获取当前排序的前一位的ID //根据房间ID查询当前房间中正在排序的歌曲 并获取当前排序的前一位的ID
$sort_up = db::name('vs_room_song')->where(['room_id' => $sort['room_id'],'status' => 1,'times' =>$sort['times'],'times_status' => 1])->field('did')->order('sort desc')->select(); $sort_up = db::name('vs_room_song')->where(['room_id' => $sort['room_id'],'status' => 1,'times' =>$sort['times'],'times_status' => 1])->field('did')->order('sort desc')->select();
if($sort_up[0]['did'] == $room_song_id){ if($sort_up[0]['did'] == $room_song_id){

View File

@@ -20,6 +20,28 @@ class Sms extends Model
if (!checkMobile($mobile)) { if (!checkMobile($mobile)) {
return ['code' => 0, 'msg' => '手机号不正确','data' =>null]; return ['code' => 0, 'msg' => '手机号不正确','data' =>null];
} }
//今天验证码错误次数
$sms_count = db::name('sms_error')->where(['mobile' => $mobile,'createtime' => ['between', [strtotime(date('Y-m-d')), time()]]])->count();
if ($sms_count >= 5) {
$user_id = db::name('user')->where('mobile', $mobile)->value('id');
$block_num = db::name('block')->where(['type' => 1, 'type_text' => $user_id])->find();
if(!$block_num){
//封禁账号
$error_data = [
'type' => 1,
'type_text' => $user_id,
'block_time' => time() + 60 * 60 * 24,
'block_note' => '账号登录异常被封禁24小时',
'createtime'=> time(),
];
db::name('block')->insert($error_data);
db::name('user')->where('id', $user_id)->update(['status' => 2]);
}
return ['code' => 0, 'msg' => '验证码错误次数过多,账号已被封禁,请联系管理员处理','data' =>null];
}
$is_code = db::name('sms')->where(['mobile' => $mobile, 'event' => $type])->order('id desc')->find(); $is_code = db::name('sms')->where(['mobile' => $mobile, 'event' => $type])->order('id desc')->find();
if ($is_code && $is_code['code'] == $code) { if ($is_code && $is_code['code'] == $code) {
//验证码正确 //验证码正确
@@ -34,9 +56,19 @@ class Sms extends Model
} }
} }
db::name('sms')->where(['mobile' => $mobile, 'event' => $type])->delete(); db::name('sms')->where(['mobile' => $mobile, 'event' => $type])->delete();
//登陆成功后 把所有的登录错误删除掉
db::name('sms_error')->where(['mobile' => $mobile])->delete();
return ['code' =>1, 'msg' =>'验证码正确','data' =>null]; return ['code' =>1, 'msg' =>'验证码正确','data' =>null];
} else { } else {
return ['code' => 0, 'msg' => '验证码错误','data' =>null]; //验证码错误次数
$count_sms = max(5 - $sms_count, 0);
$data = [
'mobile' => $mobile,
'sms' => $code,
'createtime'=> time(),
];
db::name('sms_error')->insert($data);
return ['code' => 0, 'msg' => '验证码错误,'.$count_sms.'次后账号将被封禁24小时','data' =>null];
} }
} }

View File

@@ -11,7 +11,7 @@ use fast\Tencentst;
class Tencent extends Model class Tencent extends Model
{ {
//获取腾讯IM UserSig信息 //获取腾讯IM UserSig信息
//$uid => 用户id //$uid => 用户id
public function tencent_user_sig_info($uid){ public function tencent_user_sig_info($uid){
@@ -39,7 +39,7 @@ class Tencent extends Model
'UserID' => 'u'.$uid, 'UserID' => 'u'.$uid,
'Nick' => '', 'Nick' => '',
'FaceUrl' => '', 'FaceUrl' => '',
); );
if($data){ if($data){
//添加用户信息 昵称和头像 //添加用户信息 昵称和头像
$curlPost['Nick'] = $data['nick']; $curlPost['Nick'] = $data['nick'];
@@ -99,7 +99,7 @@ class Tencent extends Model
return ['code' => 0, 'msg' => $reslut['ErrorCode'], 'data' => $reslut]; return ['code' => 0, 'msg' => $reslut['ErrorCode'], 'data' => $reslut];
} }
} }
//查询账号 //查询账号
//$uid => 用户id //$uid => 用户id
public function account_check($uid){ public function account_check($uid){
@@ -108,19 +108,19 @@ class Tencent extends Model
$im_admin = 'administrator'; $im_admin = 'administrator';
$admin_sig = $this->tencent_user_sig_info($im_admin); $admin_sig = $this->tencent_user_sig_info($im_admin);
$rand = rand(111111111,9999999999); $rand = rand(111111111,9999999999);
$postUrl = 'https://console.tim.qq.com/v4/im_open_login_svc/account_check?sdkappid='.$tencentyun_im_appid.'&identifier='.$im_admin.'&usersig='.$admin_sig.'&random='.$rand.'&contenttype=json'; $postUrl = 'https://console.tim.qq.com/v4/im_open_login_svc/account_check?sdkappid='.$tencentyun_im_appid.'&identifier='.$im_admin.'&usersig='.$admin_sig.'&random='.$rand.'&contenttype=json';
$curlPost = array( $curlPost = array(
'CheckItem' => array( 'CheckItem' => array(
array( array(
'UserID' => 'u'.$uid, // 'UserID' => 'u'.$uid, //
),
), ),
), );
);
$curlPost = json_encode($curlPost); $curlPost = json_encode($curlPost);
$reslut = $this->tencent_post_url($postUrl, $curlPost); $reslut = $this->tencent_post_url($postUrl, $curlPost);
// var_dump($reslut); // var_dump($reslut);
if($reslut['ActionStatus'] == 'OK'){ if($reslut['ActionStatus'] == 'OK'){
@@ -134,7 +134,7 @@ class Tencent extends Model
} }
} }
//拉入黑名单 //拉入黑名单
public function black_list_add($uid, $receive_uid){ public function black_list_add($uid, $receive_uid){
$config = get_system_config(); $config = get_system_config();
@@ -142,25 +142,25 @@ class Tencent extends Model
$im_admin = 'administrator'; $im_admin = 'administrator';
$admin_sig = $this->tencent_user_sig_info($im_admin); $admin_sig = $this->tencent_user_sig_info($im_admin);
$rand = rand(111111111,9999999999); $rand = rand(111111111,9999999999);
$postUrl = 'https://console.tim.qq.com/v4/sns/black_list_add?sdkappid='.$tencentyun_im_appid.'&identifier='.$im_admin.'&usersig='.$admin_sig.'&random='.$rand.'&contenttype=json'; $postUrl = 'https://console.tim.qq.com/v4/sns/black_list_add?sdkappid='.$tencentyun_im_appid.'&identifier='.$im_admin.'&usersig='.$admin_sig.'&random='.$rand.'&contenttype=json';
$curlPost = array( $curlPost = array(
'From_Account' => $uid, 'From_Account' => $uid,
'To_Account' => [$receive_uid], 'To_Account' => [$receive_uid],
); );
$curlPost = json_encode($curlPost); $curlPost = json_encode($curlPost);
$reslut = $this->tencent_post_url($postUrl, $curlPost); $reslut = $this->tencent_post_url($postUrl, $curlPost);
Log::record("腾讯用户拉入黑名单".json_encode($reslut),"infos"); // Log::record("腾讯用户拉入黑名单".json_encode($reslut),"infos");
if($reslut['ActionStatus'] == 'OK'){ if($reslut['ActionStatus'] == 'OK'){
return ['code' => 200, 'msg' => '添加成功', 'data' => null]; return ['code' => 200, 'msg' => '添加成功', 'data' => null];
}else{ }else{
return ['code' => 201, 'msg' => $reslut['ErrorCode'], 'data' => null]; return ['code' => 201, 'msg' => $reslut['ErrorCode'], 'data' => null];
} }
} }
//移除黑名单 //移除黑名单
public function black_list_delete($uid, $receive_uid){ public function black_list_delete($uid, $receive_uid){
$config = get_system_config(); $config = get_system_config();
@@ -168,16 +168,16 @@ class Tencent extends Model
$im_admin = 'administrator'; $im_admin = 'administrator';
$admin_sig = $this->tencent_user_sig_info($im_admin); $admin_sig = $this->tencent_user_sig_info($im_admin);
$rand = rand(111111111,9999999999); $rand = rand(111111111,9999999999);
$postUrl = 'https://console.tim.qq.com/v4/sns/black_list_delete?sdkappid='.$tencentyun_im_appid.'&identifier='.$im_admin.'&usersig='.$admin_sig.'&random='.$rand.'&contenttype=json'; $postUrl = 'https://console.tim.qq.com/v4/sns/black_list_delete?sdkappid='.$tencentyun_im_appid.'&identifier='.$im_admin.'&usersig='.$admin_sig.'&random='.$rand.'&contenttype=json';
$curlPost = array( $curlPost = array(
'From_Account' => $uid, 'From_Account' => $uid,
'To_Account' => [$receive_uid], 'To_Account' => [$receive_uid],
); );
$curlPost = json_encode($curlPost); $curlPost = json_encode($curlPost);
$reslut = $this->tencent_post_url($postUrl, $curlPost); $reslut = $this->tencent_post_url($postUrl, $curlPost);
if($reslut['ActionStatus'] == 'OK'){ if($reslut['ActionStatus'] == 'OK'){
return ['code' => 200, 'msg' => '移除成功', 'data' => null]; return ['code' => 200, 'msg' => '移除成功', 'data' => null];
@@ -185,7 +185,7 @@ class Tencent extends Model
return ['code' => 201, 'msg' => $reslut['ErrorCode'], 'data' => null]; return ['code' => 201, 'msg' => $reslut['ErrorCode'], 'data' => null];
} }
} }
//发送群内系统消息 //发送群内系统消息
public function send_group_system_notification($rid, $message_data){ public function send_group_system_notification($rid, $message_data){
Log::record("腾讯群内系统消息发送结果".json_encode($rid.$message_data),"info"); Log::record("腾讯群内系统消息发送结果".json_encode($rid.$message_data),"info");
@@ -196,16 +196,16 @@ class Tencent extends Model
$rand = rand(111111111,9999999999); $rand = rand(111111111,9999999999);
$postUrl = 'https://console.tim.qq.com/v4/group_open_http_svc/send_group_system_notification?sdkappid='.$tencentyun_im_appid.'&identifier='.$im_admin.'&usersig='.$admin_sig.'&random='.$rand.'&contenttype=json'; $postUrl = 'https://console.tim.qq.com/v4/group_open_http_svc/send_group_system_notification?sdkappid='.$tencentyun_im_appid.'&identifier='.$im_admin.'&usersig='.$admin_sig.'&random='.$rand.'&contenttype=json';
$curlPost = array( $curlPost = array(
'GroupId' => $rid, 'GroupId' => $rid,
'Content' => $message_data, 'Content' => $message_data,
); );
$curlPost = json_encode($curlPost); $curlPost = json_encode($curlPost);
$reslut = $this->tencent_post_url($postUrl, $curlPost); $reslut = $this->tencent_post_url($postUrl, $curlPost);
Log::record("腾讯群内系统消息发送结果".json_encode($reslut),"info"); // Log::record("腾讯群内系统消息发送结果".json_encode($reslut),"info");
if($reslut['ActionStatus'] == 'OK'){ if($reslut['ActionStatus'] == 'OK'){
return ['code' => 1, 'msg' => '发送成功', 'data' => $reslut]; return ['code' => 1, 'msg' => '发送成功', 'data' => $reslut];
}else{ }else{
@@ -241,28 +241,28 @@ class Tencent extends Model
); );
$curlPost = json_encode($curlPost); $curlPost = json_encode($curlPost);
$reslut = $this->tencent_post_url($postUrl, $curlPost); $reslut = $this->tencent_post_url($postUrl, $curlPost);
Log::record("广播消息信息".json_encode($reslut),"info"); // Log::record("广播消息信息".json_encode($reslut),"info");
Log::record("广播消息信息3".json_encode($admin_sig),"info"); // Log::record("广播消息信息3".json_encode($admin_sig),"info");
Log::record("广播消息信息2".$admin_sig,"info"); // Log::record("广播消息信息2".$admin_sig,"info");
if($reslut['ActionStatus'] == 'OK'){ if($reslut['ActionStatus'] == 'OK'){
return ['code' => 1, 'msg' => '发送成功', 'data' => $reslut]; return ['code' => 1, 'msg' => '发送成功', 'data' => $reslut];
}else{ }else{
return ['code' => 0, 'msg' => $reslut['ErrorCode'], 'data' => $reslut]; return ['code' => 0, 'msg' => $reslut['ErrorCode'], 'data' => $reslut];
} }
} }
//发送群内普通消息 //发送群内普通消息
public function send_group_msg($rid, $message_data, $uid=''){ public function send_group_msg($rid, $message_data, $uid=''){
$config = get_system_config(); $config = get_system_config();
$tencentyun_im_appid = $config['tencentyun_im_appid']; $tencentyun_im_appid = $config['tencentyun_im_appid'];
$im_admin = 'administrator'; $im_admin = 'administrator';
$admin_sig = $this->tencent_user_sig_info($im_admin); $admin_sig = $this->tencent_user_sig_info($im_admin);
$rand = rand(111111111,9999999999); $rand = rand(111111111,9999999999);
$random = time().rand(111,999); $random = time().rand(111,999);
$postUrl = 'https://console.tim.qq.com/v4/group_open_http_svc/send_group_msg?sdkappid='.$tencentyun_im_appid.'&identifier='.$im_admin.'&usersig='.$admin_sig.'&random='.$rand.'&contenttype=json'; $postUrl = 'https://console.tim.qq.com/v4/group_open_http_svc/send_group_msg?sdkappid='.$tencentyun_im_appid.'&identifier='.$im_admin.'&usersig='.$admin_sig.'&random='.$rand.'&contenttype=json';
$curlPost = array( $curlPost = array(
'GroupId' => $rid, 'GroupId' => $rid,
'From_Account' => $uid, 'From_Account' => $uid,
@@ -272,18 +272,18 @@ class Tencent extends Model
'MsgType' => 'TIMTextElem', 'MsgType' => 'TIMTextElem',
'MsgContent' => array( 'MsgContent' => array(
'Text' => $message_data, 'Text' => $message_data,
),
), ),
), ),
), );
);
$curlPost = json_encode($curlPost); $curlPost = json_encode($curlPost);
$reslut = $this->tencent_post_url($postUrl, $curlPost); $reslut = $this->tencent_post_url($postUrl, $curlPost);
// $txt = date('Y-m-d H:i:s').'测试'; // $txt = date('Y-m-d H:i:s').'测试';
// error_log($txt, 3, 'a.txt'); // error_log($txt, 3, 'a.txt');
return $reslut; return $reslut;
} }
@@ -305,8 +305,8 @@ class Tencent extends Model
'GroupId' => strval($rid), 'GroupId' => strval($rid),
'Name' => $group_name, 'Name' => $group_name,
'FaceUrl' => $url 'FaceUrl' => $url
); );
$curlPost = json_encode($curlPost); $curlPost = json_encode($curlPost);
$reslut = $this->tencent_post_url($postUrl, $curlPost); $reslut = $this->tencent_post_url($postUrl, $curlPost);
@@ -337,7 +337,7 @@ class Tencent extends Model
'Member_Account' => 'u'.$uid, 'Member_Account' => 'u'.$uid,
), ),
), ),
); );
$curlPost = json_encode($curlPost); $curlPost = json_encode($curlPost);
$reslut = $this->tencent_post_url($postUrl, $curlPost); $reslut = $this->tencent_post_url($postUrl, $curlPost);
if($reslut['ActionStatus'] == 'OK'){ if($reslut['ActionStatus'] == 'OK'){
@@ -359,12 +359,12 @@ class Tencent extends Model
$curlPost = array( $curlPost = array(
'GroupId' => strval($rid), 'GroupId' => strval($rid),
'MemberToDel_Account' => array( 'MemberToDel_Account' => array(
'u'.$uid 'u'.$uid
), ),
); );
$curlPost = json_encode($curlPost); $curlPost = json_encode($curlPost);
$reslut = $this->tencent_post_url($postUrl, $curlPost); $reslut = $this->tencent_post_url($postUrl, $curlPost);
Log::record("腾讯群内删除成员结果".json_encode($reslut),"info"); // Log::record("腾讯群内删除成员结果".json_encode($reslut),"info");
if($reslut['ActionStatus'] == 'OK'){ if($reslut['ActionStatus'] == 'OK'){
return ['code' => 1, 'msg' => '操作成功', 'data' => null]; return ['code' => 1, 'msg' => '操作成功', 'data' => null];
}else{ }else{
@@ -382,7 +382,7 @@ class Tencent extends Model
$postUrl = 'https://console.tim.qq.com/v4/group_open_http_svc/destroy_group?sdkappid='.$tencentyun_im_appid.'&identifier='.$im_admin.'&usersig='.$admin_sig.'&random='.$rand.'&contenttype=json'; $postUrl = 'https://console.tim.qq.com/v4/group_open_http_svc/destroy_group?sdkappid='.$tencentyun_im_appid.'&identifier='.$im_admin.'&usersig='.$admin_sig.'&random='.$rand.'&contenttype=json';
$curlPost = array( $curlPost = array(
'GroupId' => strval($rid), 'GroupId' => strval($rid),
); );
$curlPost = json_encode($curlPost); $curlPost = json_encode($curlPost);
$reslut = $this->tencent_post_url($postUrl, $curlPost); $reslut = $this->tencent_post_url($postUrl, $curlPost);
if($reslut['ActionStatus'] == 'OK'){ if($reslut['ActionStatus'] == 'OK'){
@@ -391,7 +391,7 @@ class Tencent extends Model
return ['code' => 0, 'msg' => $reslut['ErrorCode'], 'data' => null]; return ['code' => 0, 'msg' => $reslut['ErrorCode'], 'data' => null];
} }
} }
//指定用户发送消息给用户 //指定用户发送消息给用户
public function user_sendmsg($uid, $receive_uid, $message, $machine_type = 2, $OnlineOnlyFlag = 0){ public function user_sendmsg($uid, $receive_uid, $message, $machine_type = 2, $OnlineOnlyFlag = 0){
$config = get_system_config(); $config = get_system_config();
@@ -399,7 +399,7 @@ class Tencent extends Model
$im_admin = 'administrator'; $im_admin = 'administrator';
$admin_sig = $this->tencent_user_sig_info($im_admin); $admin_sig = $this->tencent_user_sig_info($im_admin);
$rand = rand(111111111,9999999999); $rand = rand(111111111,9999999999);
$postUrl = 'https://console.tim.qq.com/v4/openim/sendmsg?sdkappid='.$tencentyun_im_appid.'&identifier='.$im_admin.'&usersig='.$admin_sig.'&random='.$rand.'&contenttype=json'; $postUrl = 'https://console.tim.qq.com/v4/openim/sendmsg?sdkappid='.$tencentyun_im_appid.'&identifier='.$im_admin.'&usersig='.$admin_sig.'&random='.$rand.'&contenttype=json';
$curlPost = array( $curlPost = array(
@@ -412,18 +412,18 @@ class Tencent extends Model
'MsgType' => 'TIMTextElem', 'MsgType' => 'TIMTextElem',
'MsgContent' => array( 'MsgContent' => array(
'Text' => $message, 'Text' => $message,
),
), ),
), ),
), );
);
if($OnlineOnlyFlag == 1){ if($OnlineOnlyFlag == 1){
$curlPost['OnlineOnlyFlag'] = 1; $curlPost['OnlineOnlyFlag'] = 1;
} }
Log::record("xitong消息信息1:".$admin_sig,"info"); // Log::record("xitong消息信息1:".$admin_sig,"info");
$curlPost = json_encode($curlPost); $curlPost = json_encode($curlPost);
$reslut = $this->tencent_post_url($postUrl, $curlPost); $reslut = $this->tencent_post_url($postUrl, $curlPost);
Log::record("xitong消息信息2:".$reslut,"info"); // Log::record("xitong消息信息2:".$reslut,"info");
return $reslut; return $reslut;
} }
@@ -456,7 +456,7 @@ class Tencent extends Model
$reslut = $this->tencent_post_url($postUrl, $curlPost); $reslut = $this->tencent_post_url($postUrl, $curlPost);
return $reslut; return $reslut;
} }
//获取APP中的所有群组 //获取APP中的所有群组
public function get_appid_group_list(){ public function get_appid_group_list(){
$config = get_system_config(); $config = get_system_config();
@@ -464,40 +464,40 @@ class Tencent extends Model
$im_admin = 'administrator'; $im_admin = 'administrator';
$admin_sig = $this->tencent_user_sig_info($im_admin); $admin_sig = $this->tencent_user_sig_info($im_admin);
$rand = rand(111111111,9999999999); $rand = rand(111111111,9999999999);
$postUrl = 'https://console.tim.qq.com/v4/group_open_http_svc/get_appid_group_list?sdkappid='.$tencentyun_im_appid.'&identifier='.$im_admin.'&usersig='.$admin_sig.'&random='.$rand.'&contenttype=json'; $postUrl = 'https://console.tim.qq.com/v4/group_open_http_svc/get_appid_group_list?sdkappid='.$tencentyun_im_appid.'&identifier='.$im_admin.'&usersig='.$admin_sig.'&random='.$rand.'&contenttype=json';
$curlPost = array( $curlPost = array(
'Limit' => 20, 'Limit' => 20,
'Next' => 0, 'Next' => 0,
); );
$curlPost = json_encode($curlPost); $curlPost = json_encode($curlPost);
$reslut = $this->tencent_post_url($postUrl, $curlPost); $reslut = $this->tencent_post_url($postUrl, $curlPost);
} }
public function txt(){ public function txt(){
$postUrl = 'https://app.yayinyy.com/api/Agora/get_sstoken'; $postUrl = 'https://app.yayinyy.com/api/Agora/get_sstoken';
$curlPost = array( $curlPost = array(
'code' => '44863d01cd628e583efeb3b9eda510fd', 'code' => '44863d01cd628e583efeb3b9eda510fd',
); );
$curlPost = json_encode($curlPost); $curlPost = json_encode($curlPost);
$reslut = $this->tencent_post_url($postUrl, $curlPost); $reslut = $this->tencent_post_url($postUrl, $curlPost);
return $reslut; return $reslut;
} }
//腾讯IM请求封装方法 //腾讯IM请求封装方法
public function tencent_post_url($postUrl, $curlPost){ public function tencent_post_url($postUrl, $curlPost){
$headerArray =array( $headerArray =array(
"Content-type:application/json", "Content-type:application/json",
"Accept:application/json", "Accept:application/json",
); );
$ch = curl_init();//初始化curl $ch = curl_init();//初始化curl
curl_setopt($ch, CURLOPT_URL, $postUrl);//抓取指定网页 curl_setopt($ch, CURLOPT_URL, $postUrl);//抓取指定网页
// curl_setopt($ch, CURLOPT_HEADER, 0);//设置header // curl_setopt($ch, CURLOPT_HEADER, 0);//设置header
@@ -514,7 +514,7 @@ class Tencent extends Model
// dump($data);exit; // dump($data);exit;
return $data; return $data;
} }
//指定用户发送自定义消息给注册用户 //指定用户发送自定义消息给注册用户
public function user_custom_sendmsg($uid, $receive_uid, $message, $machine_type = 2){ public function user_custom_sendmsg($uid, $receive_uid, $message, $machine_type = 2){
$config = get_system_config(); $config = get_system_config();
@@ -522,9 +522,9 @@ class Tencent extends Model
$im_admin = 'administrator'; $im_admin = 'administrator';
$admin_sig = $this->tencent_user_sig_info($im_admin); $admin_sig = $this->tencent_user_sig_info($im_admin);
$rand = rand(111111111,9999999999); $rand = rand(111111111,9999999999);
$postUrl = 'https://console.tim.qq.com/v4/openim/sendmsg?sdkappid='.$tencentyun_im_appid.'&identifier='.$im_admin.'&usersig='.$admin_sig.'&random='.$rand.'&contenttype=json'; $postUrl = 'https://console.tim.qq.com/v4/openim/sendmsg?sdkappid='.$tencentyun_im_appid.'&identifier='.$im_admin.'&usersig='.$admin_sig.'&random='.$rand.'&contenttype=json';
$curlPost = array( $curlPost = array(
'SyncOtherMachine' => $machine_type, 'SyncOtherMachine' => $machine_type,
'From_Account' => strval($uid), 'From_Account' => strval($uid),
@@ -537,16 +537,16 @@ class Tencent extends Model
// 'Text' => $message, // 'Text' => $message,
'Data' => $message, 'Data' => $message,
// 'Desc' => 'notification', // 'Desc' => 'notification',
),
), ),
), ),
), );
);
$curlPost = json_encode($curlPost); $curlPost = json_encode($curlPost);
$reslut = $this->tencent_post_url($postUrl, $curlPost); $reslut = $this->tencent_post_url($postUrl, $curlPost);
return $reslut; return $reslut;
} }
//获取用户在线状态 //获取用户在线状态
public function query_user_online_status($to_uid_arr) public function query_user_online_status($to_uid_arr)
{ {
@@ -558,16 +558,16 @@ class Tencent extends Model
$im_admin = 'administrator'; $im_admin = 'administrator';
$admin_sig = $this->tencent_user_sig_info($im_admin); $admin_sig = $this->tencent_user_sig_info($im_admin);
$rand = rand(111111111,9999999999); $rand = rand(111111111,9999999999);
$postUrl = 'https://console.tim.qq.com/v4/openim/query_online_status?sdkappid='.$tencentyun_im_appid.'&identifier='.$im_admin.'&usersig='.$admin_sig.'&random='.$rand.'&contenttype=json'; $postUrl = 'https://console.tim.qq.com/v4/openim/query_online_status?sdkappid='.$tencentyun_im_appid.'&identifier='.$im_admin.'&usersig='.$admin_sig.'&random='.$rand.'&contenttype=json';
$curlPost = array( $curlPost = array(
'To_Account' => $to_uid_arr, 'To_Account' => $to_uid_arr,
); );
$curlPost = json_encode($curlPost); $curlPost = json_encode($curlPost);
$reslut = $this->tencent_post_url($postUrl, $curlPost); $reslut = $this->tencent_post_url($postUrl, $curlPost);
return $reslut; return $reslut;
} }
@@ -581,13 +581,13 @@ class Tencent extends Model
$postUrl = 'https://console.tim.qq.com/v4/group_open_http_svc/get_online_member_num?sdkappid='.$tencentyun_im_appid.'&identifier='.$im_admin.'&usersig='.$admin_sig.'&random='.$rand.'&contenttype=json'; $postUrl = 'https://console.tim.qq.com/v4/group_open_http_svc/get_online_member_num?sdkappid='.$tencentyun_im_appid.'&identifier='.$im_admin.'&usersig='.$admin_sig.'&random='.$rand.'&contenttype=json';
$curlPost = array( $curlPost = array(
'GroupId' => 'room'.$group_id, 'GroupId' => 'room'.$group_id,
); );
$curlPost = json_encode($curlPost); $curlPost = json_encode($curlPost);
$reslut = $this->tencent_post_url($postUrl, $curlPost); $reslut = $this->tencent_post_url($postUrl, $curlPost);
return $reslut; return $reslut;
} }
//主动审核接口 //主动审核接口
public function content_moderation($type_name, $content){ public function content_moderation($type_name, $content){
return ['code' => 1, 'msg' => '通过审核', 'data' => null]; return ['code' => 1, 'msg' => '通过审核', 'data' => null];
@@ -597,17 +597,17 @@ class Tencent extends Model
$admin_sig = $this->tencent_user_sig_info($im_admin); $admin_sig = $this->tencent_user_sig_info($im_admin);
$rand = rand(111111111,9999999999); $rand = rand(111111111,9999999999);
$random = time().rand(111,999); $random = time().rand(111,999);
$postUrl = 'https://console.tim.qq.com/v4/im_msg_audit/content_moderation?sdkappid='.$tencentyun_im_appid.'&identifier='.$im_admin.'&usersig='.$admin_sig.'&random='.$rand.'&contenttype=json'; $postUrl = 'https://console.tim.qq.com/v4/im_msg_audit/content_moderation?sdkappid='.$tencentyun_im_appid.'&identifier='.$im_admin.'&usersig='.$admin_sig.'&random='.$rand.'&contenttype=json';
$curlPost = array( $curlPost = array(
'AuditName' => 'C2C', //表明送审策略取值C2C/Group/UserInfo/GroupInfo/GroupMemberInfo/RelationChain 'AuditName' => 'C2C', //表明送审策略取值C2C/Group/UserInfo/GroupInfo/GroupMemberInfo/RelationChain
'ContentType' => $type_name, //送审类型取值Text/Image/Audio/Video。 'ContentType' => $type_name, //送审类型取值Text/Image/Audio/Video。
'Content' => $content //送审内容最大限制8KB当审核文件时填对应 URL。其中图片审核最大不超过5MB 'Content' => $content //送审内容最大限制8KB当审核文件时填对应 URL。其中图片审核最大不超过5MB
); );
$curlPost = json_encode($curlPost); $curlPost = json_encode($curlPost);
$reslut = $this->tencent_post_url($postUrl, $curlPost); $reslut = $this->tencent_post_url($postUrl, $curlPost);
if($reslut['ActionStatus'] == 'OK'){ if($reslut['ActionStatus'] == 'OK'){
if($reslut['Result'] == 'Pass'){ if($reslut['Result'] == 'Pass'){
@@ -655,14 +655,14 @@ class Tencent extends Model
$postUrl = 'https://console.tim.qq.com/v4/group_open_http_svc/modify_group_base_info?sdkappid='.$tencentyun_im_appid.'&identifier='.$im_admin.'&usersig='.$admin_sig.'&random='.$rand.'&contenttype=json'; $postUrl = 'https://console.tim.qq.com/v4/group_open_http_svc/modify_group_base_info?sdkappid='.$tencentyun_im_appid.'&identifier='.$im_admin.'&usersig='.$admin_sig.'&random='.$rand.'&contenttype=json';
$curlPost['GroupId'] = $group_id; $curlPost['GroupId'] = $group_id;
if($group_name){ if($group_name){
$curlPost['Name'] = $group_name; $curlPost['Name'] = $group_name;
} }
if($group_face_url){ if($group_face_url){
$curlPost['FaceUrl'] = $group_face_url; $curlPost['FaceUrl'] = $group_face_url;
} }
if($group_notice){ if($group_notice){
$curlPost['Notification'] = $group_notice; $curlPost['Notification'] = $group_notice;
} }
// $curlPost = array( // $curlPost = array(
// 'GroupId' => $group_id, // 'GroupId' => $group_id,
// 'Name' => $group_name,//群名称 // 'Name' => $group_name,//群名称
@@ -692,7 +692,7 @@ class Tencent extends Model
$curlPost['GroupId'] = $group_id; $curlPost['GroupId'] = $group_id;
$curlPost['Member_Account'] = $member_id;//群成员帐号 $curlPost['Member_Account'] = $member_id;//群成员帐号
if($member_role == 1){ if($member_role == 1){
$curlPost['Role'] = 'Admin';//群成员角色取值Owner(群主)Admin(群管理员)Member普通群成员 $curlPost['Role'] = 'Admin';//群成员角色取值Owner(群主)Admin(群管理员)Member普通群成员
}elseif ($member_role == 2){ }elseif ($member_role == 2){
$curlPost['Role'] = 'Member'; $curlPost['Role'] = 'Member';
} }
@@ -754,7 +754,7 @@ class Tencent extends Model
return ['code' => 0, 'msg' => $reslut['ErrorCode'], 'data' => null]; return ['code' => 0, 'msg' => $reslut['ErrorCode'], 'data' => null];
} }
} }
//====新写的↓=====上面的 能用则用============================================================================================================= //====新写的↓=====上面的 能用则用=============================================================================================================
// 获取 Access Token需缓存并定时刷新每20分钟一次 // 获取 Access Token需缓存并定时刷新每20分钟一次
@@ -838,7 +838,13 @@ class Tencent extends Model
// 处理响应 // 处理响应
if ($httpCode == 200) { if ($httpCode == 200) {
return json_decode($response, true)['result']['faceId']; $red = json_decode($response, true);
if ($red['code'] == 0) {
return $red['result']['faceId'];
} else {
return ['code' => 0, 'msg' => $red['msg'], 'data' => null];
}
// return json_decode($response, true)['result']['faceId'];
} else { } else {
return ['code' => $httpCode, 'msg' => '接口请求失败']; return ['code' => $httpCode, 'msg' => '接口请求失败'];
} }
@@ -909,24 +915,163 @@ class Tencent extends Model
} }
//腾讯IM监控在线状态更新 //腾讯IM监控在线状态更新
public function tencent_member_status_change($info){ public function tencent_member_status_changeee($info){
$uid = substr($info['To_Account'],1); $uid = substr($info['To_Account'],1);
$action = $info['Action']; $action = $info['Action'];
if($action == 'Disconnect') { if($action == 'Disconnect') {
Db::name('user')->where('id', $uid)->update(['is_online' => 0, 'updatetime' => time()]); Db::name('user')->where('id', $uid)->update(['is_online' => 0, 'updatetime' => time()]);
$quit_room = Db::name('vs_room_visitor')->where('user_id', $uid)->select(); $quit_room = Db::name('vs_room_visitor')->where('user_id', $uid)->select();
Log::record("腾讯离线推送,房间信息".json_encode($quit_room),"infos");
if($quit_room) { if($quit_room) {
foreach ($quit_room as &$v){ foreach ($quit_room as &$v){
model('Room')->quit_room($v['user_id'], $v['room_id'],$v['user_id']); if(isset($v['room_id'])){
$room_type = db::name('vs_room')->where(['id' => $v['room_id']])->field('step,type_id,label_id')->find();
Log::record("腾讯离线推送,房间类型".json_encode($room_type),"infos");
if($room_type['label_id'] == 1 && ($room_type['type_id'] == 1 || $room_type['type_id'] == 8)){
Log::record("腾讯离线推送,我是二卡八","infos");
Db::name('user')->where('id', $uid)->update(['is_online' => 1, 'updatetime' => time()]);
}else{
if(isset($room_type) && ($room_type['type_id'] == 7 && ($room_type['step'] == 2 ||$room_type['step'] == 3)) || $room_type == 2){
$text['text'] = '掉线!';
$text['user_id'] = $uid;
$text['type'] = 2;
model('Chat')->sendMsg(1058,$v['room_id'],$text);
}else {
//查询是否有切后台的操作
$bg_room = db::name('vs_user_in_room_bg')->where(['room_id' => $v['room_id'],'user_id' => $v['user_id']])->find();
if(!$bg_room){
Log::record("腾讯离线推送,要踢你","infos");
model('Room')->quit_room($v['user_id'], $v['room_id'],$v['user_id'],2);
}
}
}
}
$room_type = null;
} }
} }
} elseif ($action == 'Login') { } elseif ($action == 'Login') {
Db::name('user')->where('id', $uid)->update(['is_online' => 1, 'updatetime' => time()]); Db::name('user')->where('id', $uid)->update(['is_online' => 1, 'updatetime' => time()]);
$room = Db::name('vs_room_visitor')->where('user_id', $uid)->order('id desc')->value('room_id');
$text['text'] = '重新上线!';
$text['user_id'] = $uid;
$text['type'] = 1;
model('Chat')->sendMsg(1058,$room,$text);
}elseif ($action == 'Logout'){ }elseif ($action == 'Logout'){
Db::name('user')->where('id', $uid)->update(['is_online' => 0, 'updatetime' => time()]); // Db::name('user')->where('id', $uid)->update(['is_online' => 0, 'updatetime' => time()]);
// $room = Db::name('vs_room_visitor')->where('user_id', $uid)->order('id desc')->value('room_id');
// $text['text'] = '掉线!';
// $text['user_id'] = $uid;
// $text['type'] = 2;
// model('Chat')->sendMsg(1058,$room,$text);
}
return true;
}
//腾讯IM监控在线状态更新
public function tencent_member_status_change($info){
$uid = substr($info['To_Account'],1);
$action = $info['Action'];
if($action == 'Disconnect') {
$is_keep = 1;
$keep = db::name('vs_xintiao')->where('user_id' , $uid)->find();
if(isset($keep)){
if(time() - $keep['updatetime'] >= 60){
$is_keep = 0;
}
}
//判断保活用户是否安卓用户
$user_system = db::name('user')->where('id' , $uid)->value('system');
if($user_system == 'android'){
Db::name('user')->where('id', $uid)->update(['is_online' => 0, 'updatetime' => time()]);
$quit_room = Db::name('vs_room_visitor')->where('user_id', $uid)->select();
Log::record("腾讯离线推送,用户安卓所在房间信息".json_encode($quit_room),"infos");
if($quit_room) {
foreach ($quit_room as &$v){
if(isset($v['room_id'])){
$room_type = db::name('vs_room')->where(['id' => $v['room_id']])->field('step,type_id,label_id')->find();
// Log::record("腾讯离线推送,房间类型".json_encode($room_type),"infos");
if($room_type['label_id'] == 1 && ($room_type['type_id'] == 1 || $room_type['type_id'] == 8)){
// Log::record("腾讯离线推送,我是二卡八","infos");
Db::name('user')->where('id', $uid)->update(['is_online' => 1, 'updatetime' => time()]);
}else{
if(isset($room_type) && ($room_type['type_id'] == 7 && ($room_type['step'] == 2 ||$room_type['step'] == 3)) || $room_type == 2){
$text['text'] = '掉线!';
$text['user_id'] = $uid;
$text['type'] = 2;
model('Chat')->sendMsg(1058,$v['room_id'],$text);
}else {
//查询是否有切后台的操作
// $bg_room = db::name('vs_user_in_room_bg')->where(['room_id' => $v['room_id'],'user_id' => $v['user_id']])->find();
// if(!$bg_room){
// // Log::record("腾讯离线推送,要踢你","infos");
// model('Room')->quit_room($v['user_id'], $v['room_id'],$v['user_id'],2);
// }
Log::record("腾讯离线推送,判断心跳".$is_keep,"infos");
if($is_keep == 0){
model('Room')->quit_room($v['user_id'], $v['room_id'],$v['user_id'],2);
}
}
}
}
$room_type = null;
}
}
}else{
Db::name('user')->where('id', $uid)->update(['is_online' => 0, 'updatetime' => time()]);
$quit_room = Db::name('vs_room_visitor')->where('user_id', $uid)->select();
// Log::record("腾讯离线推送,房间信息".json_encode($quit_room),"infos");
if($quit_room) {
foreach ($quit_room as &$v){
if(isset($v['room_id'])){
$room_type = db::name('vs_room')->where(['id' => $v['room_id']])->field('step,type_id,label_id')->find();
// Log::record("腾讯离线推送,房间类型".json_encode($room_type),"infos");
if($room_type['label_id'] == 1 && ($room_type['type_id'] == 1 || $room_type['type_id'] == 8)){
// Log::record("腾讯离线推送,我是二卡八","infos");
Db::name('user')->where('id', $uid)->update(['is_online' => 1, 'updatetime' => time()]);
}else{
if(isset($room_type) && ($room_type['type_id'] == 7 && ($room_type['step'] == 2 ||$room_type['step'] == 3)) || $room_type == 2){
$text['text'] = '掉线!';
$text['user_id'] = $uid;
$text['type'] = 2;
model('Chat')->sendMsg(1058,$v['room_id'],$text);
}else {
//查询是否有切后台的操作
$bg_room = db::name('vs_user_in_room_bg')->where(['room_id' => $v['room_id'],'user_id' => $v['user_id']])->find();
if(!$bg_room){
// Log::record("腾讯离线推送,要踢你","infos");
model('Room')->quit_room($v['user_id'], $v['room_id'],$v['user_id'],2);
}
}
}
}
$room_type = null;
}
}
}
} elseif ($action == 'Login') {
Db::name('user')->where('id', $uid)->update(['is_online' => 1, 'updatetime' => time()]);
$room = Db::name('vs_room_visitor')->where('user_id', $uid)->order('id desc')->value('room_id');
$text['text'] = '重新上线!';
$text['user_id'] = $uid;
$text['type'] = 1;
model('Chat')->sendMsg(1058,$room,$text);
}elseif ($action == 'Logout'){
// Db::name('user')->where('id', $uid)->update(['is_online' => 0, 'updatetime' => time()]);
// $room = Db::name('vs_room_visitor')->where('user_id', $uid)->order('id desc')->value('room_id');
// $text['text'] = '掉线!';
// $text['user_id'] = $uid;
// $text['type'] = 2;
// model('Chat')->sendMsg(1058,$room,$text);
} }
return true; return true;
} }

View File

@@ -44,7 +44,7 @@ class Topic extends Model
if($list){ if($list){
foreach ($list as &$item){ foreach ($list as &$item){
$item['content'] = $this->where(['id'=>$item['topic_id']])->value('content'); $item['content'] = $this->where(['id'=>$item['topic_id']])->value('content');
$item['pic'] = $this->where(['id'=>$item['topic_id']])->value('pic'); $item['pic'] = $this->where(['id'=>$item['topic_id']])->value('pic') ?? get_system_config_value('web_site').'/data/avatar/head_pic.png';;
$item['title'] = $this->where(['id'=>$item['topic_id']])->value('title'); $item['title'] = $this->where(['id'=>$item['topic_id']])->value('title');
} }
} }

View File

@@ -3,7 +3,6 @@
namespace app\api\model; namespace app\api\model;
use think\Db; use think\Db;
use think\Log;
use think\Model; use think\Model;
class User extends Model class User extends Model
@@ -150,6 +149,17 @@ class User extends Model
$user_info['dress'] = model('Decorate')->user_decorate_detail($user_info['user_id'],1); $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; $user_info['auth'] = db::name('user_auth')->where(['mobile' => $user_info['mobile'],'is_real' => 1])->find() ? 1 : 0;
//是否可以发布动态
$user_rechange = db::name('vs_user_recharge')->field('sum(money) as money')->where(['user_id' => $uid,'pay_status' => 2])->find();
//系统配置
$config_money = get_system_config_value('private_chat_recharge_money');
if(($config_money > 0) && ($user_rechange['money'] < $config_money)){
$user_info['is_can_chat'] = 0;
}else{
$user_info['is_can_chat'] = 1;
}
$user_info['can_chat_money'] = $config_money;
return ['code' => 1, 'msg' => '获取成功', 'data' => $user_info]; return ['code' => 1, 'msg' => '获取成功', 'data' => $user_info];
} }
@@ -340,10 +350,11 @@ class User extends Model
public function get_user_gift_wall_info($uid) public function get_user_gift_wall_info($uid)
{ {
//查询用户礼物墙 以gift_id,send_user_id分组 同一用户送的同一礼物相加 //查询用户礼物墙 以gift_id,send_user_id分组 同一用户送的同一礼物相加
$result = db::name('vs_give_gift') $result = db::name('vs_give_gift')->alias('a')
->where(['gift_user' => $uid]) ->join('vs_gift g', 'a.gift_id = g.gid')
->field('gift_id,user_id,sum(number) as total') ->where(['a.gift_user' => $uid,'g.label'=>['<>',2]])
->group('gift_id,user_id') ->field('a.gift_id,a.user_id,sum(a.number) as total')
->group('a.gift_id,a.user_id')
->order('total desc') ->order('total desc')
->select(); ->select();
// var_dump($result);exit; // var_dump($result);exit;
@@ -392,7 +403,7 @@ class User extends Model
} }
$data = array_values($data); $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(); $gift_list = db::name('vs_gift')->field('gid as gift_id,gift_name,base_image,gift_price')->where(['delete_time' => 0,'label'=>['<>',2]])->select();
//对比去除$data 里面的礼物 //对比去除$data 里面的礼物
$gift_list = array_filter((array)$gift_list, function ($item) use ($data) { $gift_list = array_filter((array)$gift_list, function ($item) use ($data) {
return !in_array($item['gift_id'], array_column($data, 'gift_id')); return !in_array($item['gift_id'], array_column($data, 'gift_id'));
@@ -558,7 +569,7 @@ class User extends Model
//移动相册图片 //移动相册图片
public function move_album_images($user_id,$id,$album_id){ public function move_album_images($user_id,$id,$album_id){
if(empty($id)){ if(empty($id)){
return ['code' => 0, 'msg' => '选择想要移动的图片', 'data' => null]; return ['code' => 0, 'msg' => '选择想要移动的图片', 'data' => null];
} }
if(empty($album_id)){ if(empty($album_id)){
@@ -662,7 +673,13 @@ class User extends Model
if(!empty($nickname)){ if(!empty($nickname)){
//名称中不能有 系统管理 等关键字 //名称中不能有 系统管理 等关键字
if(!nickname_filter($nickname)){ if(!nickname_filter($nickname)){
return ['code' => 0, 'msg' => '名称中不能有 系统管理 等相关字', 'data' => null]; return ['code' => 0, 'msg' => '名称中不能有 系统管理、官方 等相关字', 'data' => null];
}
$nick_name_info = db::name('user')->where(['nickname' => $nickname,'status' => ['<>',0]])->find();
if(!empty($nick_name_info)){
if($user_id != $nick_name_info['id']){
return['code' => 0, 'msg' => '该昵称已被占用','data' =>null];
}
} }
$data['nickname'] = $nickname; $data['nickname'] = $nickname;
} }
@@ -685,7 +702,7 @@ class User extends Model
//开启事务 //开启事务
db::startTrans(); db::startTrans();
// try{ try{
$data['updatetime'] = time(); $data['updatetime'] = time();
$re = db::name('user')->where(['id' => $user_id])->update($data); $re = db::name('user')->where(['id' => $user_id])->update($data);
@@ -722,18 +739,18 @@ class User extends Model
$text['text'] = '用户 ' . $text['FromUserInfo']['nickname'] .' 修改了信息'; $text['text'] = '用户 ' . $text['FromUserInfo']['nickname'] .' 修改了信息';
model('Chat')->sendMsg(1035,$room_id,$text,$user_id); 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_name = db::name('user')->where('id' , $user_id)->value('nickname');
$member_face_url = db::name('user')->where('id' , $user_id)->value('avatar'); $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); model('Tencent')->modify_user_infos($user_id, $member_name, $member_face_url);
return ['code' => 1, 'msg' => '修改成功', 'data' => null]; return ['code' => 1, 'msg' => '修改成功', 'data' => null];
// } }
// catch(\Exception $e){ catch(\Exception $e){
// db::rollback(); db::rollback();
// return ['code' => 0, 'msg' => $e, 'data' => null]; return ['code' => 0, 'msg' => $e, 'data' => null];
// } }
} }
//修改用户背景图 //修改用户背景图
@@ -824,8 +841,41 @@ class User extends Model
} }
//关注房间(红包专用)
public function follow_room($user_id,$room_id,$type){
if(empty($room_id)){
return ['code' => 0, 'msg' => '房间ID不能为空', 'data' => null];
}
if($type == 0){
//取消关注
$re = db::name('user_follow')->where(['user_id' => $user_id,'follow_id' => $room_id,'type' => 2])->delete();
if(!$re){
return ['code' => 0, 'msg' => '取消关注失败', 'data' => null];
}
return ['code' => 1, 'msg' => '取消关注成功', 'data' => null];
}else{
//关注
$data = [
'user_id' => $user_id,
'follow_id' => $room_id,
'type' => 2,
'createtime' => time()
];
$re = db::name('user_follow')->insert($data);
if(!$re){
return ['code' => 0, 'msg' => '关注失败', 'data' => null];
}
return ['code' => 1, 'msg' => '关注成功', 'data' => null];
}
}
//更新用户ip //更新用户ip
public function update_user_ip($user_id,$ip){ public function update_user_ip($user_id,$ip){
//判断$ip是否是汉字
if(preg_match('/[\x{4e00}-\x{9fa5}]+/u', $ip)){
$ip = '未知';
}
$data = [ $data = [
'address_ip' => $ip 'address_ip' => $ip
]; ];

View File

@@ -49,7 +49,7 @@ class UserData extends Model
$data['id'] = $uid; $data['id'] = $uid;
if (!empty($nick_name)) { if (!empty($nick_name)) {
$data['nickname'] = $nick_name; $data['nickname'] = $nick_name;
$nick_name_info = db::name('user')->where('nickname', $nick_name)->find(); $nick_name_info = db::name('user')->where(['nickname' => $nick_name,'status' => ['<>',0]])->find();
if(!empty($nick_name_info)){ if(!empty($nick_name_info)){
if($uid != $nick_name_info['id']){ if($uid != $nick_name_info['id']){
return['code' => 0, 'msg' => '该昵称已被占用','data' =>null]; return['code' => 0, 'msg' => '该昵称已被占用','data' =>null];
@@ -58,6 +58,10 @@ class UserData extends Model
if(mb_strlen($nick_name) > 24){ if(mb_strlen($nick_name) > 24){
return['code' => 0, 'msg' => '昵称长度不能超过24个字符','data' =>null]; return['code' => 0, 'msg' => '昵称长度不能超过24个字符','data' =>null];
} }
//名称中不能有 系统管理 等关键字
if(!nickname_filter($nick_name)){
return ['code' => 0, 'msg' => '名称中不能有 系统、管理、官方 等相关字', 'data' => null];
}
} }
if (!empty($birthday)) { if (!empty($birthday)) {
@@ -133,8 +137,7 @@ class UserData extends Model
$data['uid'] = $uid; $data['uid'] = $uid;
if (!empty($nick_name)) { if (!empty($nick_name)) {
$data['nick_name'] = $nick_name; $data['nick_name'] = $nick_name;
$data['base64_nick_name'] = base64_encode($nick_name); $nick_name_info = db::name('user')->where(['nickname' => $nick_name,'status' => ['<>',0]])->find();
$nick_name_info = db::name('user')->where('base64_nick_name', $data['base64_nick_name'])->find();
if(!empty($nick_name_info)){ if(!empty($nick_name_info)){
if($uid != $nick_name_info['uid']){ if($uid != $nick_name_info['uid']){
return['code' => 0, 'msg' => '该昵称已被占用','data' =>null]; return['code' => 0, 'msg' => '该昵称已被占用','data' =>null];
@@ -254,6 +257,11 @@ class UserData extends Model
//修改手机号 //修改手机号
public function modify_mobile($new_mobile,$user_id) public function modify_mobile($new_mobile,$user_id)
{ {
//查询新手机号绑定的数量
$new_mobile_num = db::name('user')->where(['username' => $new_mobile,'status' => ['neq', 0]])->count();
if ($new_mobile_num >= 3) {
return ['code' => 0, 'msg' => '该手机号已达绑定上限','data' =>null];
}
//查询旧手机号 //查询旧手机号
$mobile = db::name('user')->where(['id' => $user_id])->value('username'); $mobile = db::name('user')->where(['id' => $user_id])->value('username');
//查询是否实名 //查询是否实名
@@ -287,6 +295,16 @@ class UserData extends Model
if(empty($user_mobile)){ if(empty($user_mobile)){
return ['code' => 0, 'msg' => '请先绑定手机号','data' =>null]; return ['code' => 0, 'msg' => '请先绑定手机号','data' =>null];
} }
$card_id_count = db::name('user_auth')->where(['card_id' => $id_card,'is_real' => 1])->count();
if($card_id_count >= 3){
return ['code' => 0, 'msg' => '该身份证实名已达上限!','data' =>null];
}
//查询是否已经提交过数据了
$is_real = db::name('user_auth')->where(['card_id' => $id_card,'is_real' => 1,'mobile' =>$user_mobile])->find();
if($is_real){
return ['code' => 0, 'msg' => '已经审核通过!请勿重复提交!','data' =>null];
}
$auth = [ $auth = [
'mobile' => $user_mobile, 'mobile' => $user_mobile,
'real_name' => $real_name, 'real_name' => $real_name,
@@ -321,6 +339,9 @@ class UserData extends Model
$sign = model('Tencent')->getSign($user_id,$nonceStr,$sign_ticket,$config['tencent_app_id']); $sign = model('Tencent')->getSign($user_id,$nonceStr,$sign_ticket,$config['tencent_app_id']);
//生成faceId //生成faceId
$faceId = model('Tencent')->getFaceId($orderNo,$real_name,$id_card,$sign,$user_id,$config['tencent_app_id'],$nonceStr); $faceId = model('Tencent')->getFaceId($orderNo,$real_name,$id_card,$sign,$user_id,$config['tencent_app_id'],$nonceStr);
if(isset($faceId['code'])){
return ['code' => 0, 'msg' => $faceId['msg'],'data' =>null];
}
$data = [ $data = [
'userid' => 'u'.$user_id, 'userid' => 'u'.$user_id,
@@ -339,11 +360,21 @@ class UserData extends Model
public function real_name_result($user_id,$orderNo) public function real_name_result($user_id,$orderNo)
{ {
$user_mobile = db::name('user')->where(['id' => $user_id,'status'=>1])->value('mobile'); $user_mobile = db::name('user')->where(['id' => $user_id,'status'=>1])->value('mobile');
$id = db::name('user_auth')->where(['mobile' => $user_mobile,'is_real' => 3])->value('id');
if($id){
$res = db::name('user_auth')->where(['id' => ['<>',$id],'mobile' => $user_mobile])->select();
if($res){
foreach ($res as $key => $value) {
db::name('user_auth')->where('id' , $value['id'])->delete();
}
}
}
//修改状态 //修改状态
$reslut = db::name('user_auth')->where('mobile' , $user_mobile)->update(['is_real' => 1]); $reslut = db::name('user_auth')->where('id' , $id)->update(['is_real' => 1]);
if(!$reslut){ if(!$reslut){
return ['code' => 0, 'msg' => '实名失败','data' =>null]; return ['code' => 0, 'msg' => '实名失败','data' =>null];
} }
return ['code' => 1, 'msg' => '实名成功','data' =>null]; return ['code' => 1, 'msg' => '实名成功','data' =>null];
} }
@@ -524,7 +555,7 @@ class UserData extends Model
]; ];
$reslut = db::name('user_data')->where('user_id',$user_id)->update($data); $reslut = db::name('user_data')->where('user_id',$user_id)->update($data);
if(!$reslut){ if(!$reslut){
return ['code' => 0, 'msg' => '绑定失败','data' =>null]; return ['code' => 0, 'msg' => '绑定失败','data' =>null];
} }
} }
@@ -537,7 +568,7 @@ class UserData extends Model
]; ];
$reslut = db::name('user_data')->where('user_id',$user_id)->update($data); $reslut = db::name('user_data')->where('user_id',$user_id)->update($data);
if(!$reslut){ if(!$reslut){
return ['code' => 0, 'msg' => '绑定失败','data' =>null]; return ['code' => 0, 'msg' => '绑定失败','data' =>null];
} }
} }
@@ -556,12 +587,23 @@ class UserData extends Model
//绑定的详情 //绑定的详情
public function bind_xinxi_detail($user_id,$type) public function bind_xinxi_detail($user_id,$type)
{ {
$data = null;
if($type == 2){ if($type == 2){
$data = db::name('user_data')->where('user_id',$user_id)->field('id,alipay_name,alipay_account')->find(); $data = db::name('user_data')->where('user_id',$user_id)->field('id,alipay_name,alipay_account')->find();
} }
if($type == 3){ if($type == 3){
$data = db::name('user_data')->where('user_id',$user_id)->field('id,bank_card_number,bank_user_name,bank_card,open_bank')->find(); $data = db::name('user_data')->where('user_id',$user_id)->field('id,bank_card_number,bank_user_name,bank_card,open_bank')->find();
} }
if($data['bank_card_number']==0){
$data['bank_card_number'] = '';
}
if($data['bank_card']==0){
$data['bank_card'] = '';
}
if($data['open_bank']==0){
$data['open_bank'] = '';
}
return ['code' => 1, 'msg' => '获取成功','data' =>$data]; return ['code' => 1, 'msg' => '获取成功','data' =>$data];
} }
} }

View File

@@ -32,6 +32,12 @@ class UserGiftPack extends Model
const FIRST_CHARGE = 6; const FIRST_CHARGE = 6;
//天降好礼 //天降好礼
const DRAW_GIFT = 7; const DRAW_GIFT = 7;
//巡乐会抽奖所得
const XLH_DRAW_GIFT_GET = 8;
//小时榜获得
const HOUR_RANK_GET = 9;
//新人充值好礼
const NEW_CHARGE_GIFT = 10;
public static function init() public static function init()
{ {
@@ -48,7 +54,10 @@ class UserGiftPack extends Model
self::SYSTEM_DEDUCTION => '系统扣除', self::SYSTEM_DEDUCTION => '系统扣除',
self::GIFT_USE => '礼物使用', self::GIFT_USE => '礼物使用',
self::FIRST_CHARGE => '首充获得', self::FIRST_CHARGE => '首充获得',
self::DRAW_GIFT => '天降好礼获得' self::DRAW_GIFT => '天降好礼获得',
self::XLH_DRAW_GIFT_GET => '巡乐会抽奖所得',
self::HOUR_RANK_GET => '小时榜获得',
self::NEW_CHARGE_GIFT => '新人充值好礼'
]; ];
} }
@@ -68,6 +77,25 @@ class UserGiftPack extends Model
} }
return ['code' => 1, 'msg' => '获取成功', 'data' => $return_data]; return ['code' => 1, 'msg' => '获取成功', 'data' => $return_data];
} }
//现有背包礼物总值
public function get_gift_pack_list_count($uid)
{
$list = Db::name('vs_user_gift_pack')->alias('a')
->join('fa_vs_gift b', 'a.gid = b.gid')
->where(['a.user_id'=>$uid,'a.is_use_give'=>1,'a.num'=>['>',0]])
->field('a.num,b.gift_price')
->select();
$data = 0;
foreach ($list as $v) {
$data += $v['num'] * $v['gift_price'];
}
$count['count'] = $data;
return ['code' => 1, 'msg' => '获取成功', 'data' =>$count ];
}
//背包收入 //背包收入
public function income_user_gift_pack($uid,$page=1,$page_limit=10) public function income_user_gift_pack($uid,$page=1,$page_limit=10)
{ {
@@ -76,7 +104,10 @@ class UserGiftPack extends Model
self::GIFT_PACK_GET, self::GIFT_PACK_GET,
// self::GIFT_SEND, // self::GIFT_SEND,
self::FIRST_CHARGE, self::FIRST_CHARGE,
self::DRAW_GIFT self::DRAW_GIFT,
self::XLH_DRAW_GIFT_GET
,self::HOUR_RANK_GET
,self::NEW_CHARGE_GIFT
]; ];
//获取背包日志列表 //获取背包日志列表
$log_model = Db::name('vs_user_gift_pack_log')->where(['user_id'=>$uid])->whereIn('type', $type) $log_model = Db::name('vs_user_gift_pack_log')->where(['user_id'=>$uid])->whereIn('type', $type)
@@ -84,14 +115,14 @@ class UserGiftPack extends Model
->page($page, $page_limit) ->page($page, $page_limit)
->select(); ->select();
if (empty($log_model)) { if (empty($log_model)) {
return ['code' => 0, 'msg' => '没有数据', 'data' => null]; return ['code' => 0, 'msg' => ' ', 'data' => null];
} }
$list = []; $list = [];
foreach ($log_model as $k => $v){ foreach ($log_model as $k => $v){
$gift_info = db::name('vs_gift')->where(['gid'=>$v['gid']])->find(); $gift_info = db::name('vs_gift')->where(['gid'=>$v['gid']])->find();
$list[$k]['remarks'] = $v['remarks']; $list[$k]['remarks'] = $v['remarks'];
$list[$k]['gift_num'] = $v['change_num']; $list[$k]['gift_num'] = $v['change_num'];
$list[$k]['gift_name'] = "X".$v['change_num'].$gift_info['gift_name']; $list[$k]['gift_name'] = $gift_info['gift_name']." X ".$v['change_num'];
$list[$k]['gift_image'] = $gift_info['play_image']; $list[$k]['gift_image'] = $gift_info['play_image'];
$list[$k]['time'] = date('Y-m-d H:i:s', $v['createtime']); $list[$k]['time'] = date('Y-m-d H:i:s', $v['createtime']);
} }
@@ -111,14 +142,14 @@ class UserGiftPack extends Model
->page($page, $page_limit) ->page($page, $page_limit)
->select(); ->select();
if (empty($log_model)) { if (empty($log_model)) {
return ['code' => 0, 'msg' => '没有数据', 'data' => null]; return ['code' => 0, 'msg' => ' ', 'data' => null];
} }
$list = []; $list = [];
foreach ($log_model as $k => $v){ foreach ($log_model as $k => $v){
$gift_info = db::name('vs_gift')->where(['gid'=>$v['gid']])->find(); $gift_info = db::name('vs_gift')->where(['gid'=>$v['gid']])->find();
$list[$k]['remarks'] = $v['remarks']; $list[$k]['remarks'] = $v['remarks'];
$list[$k]['gift_num'] = $v['change_num']; $list[$k]['gift_num'] = $v['change_num'];
$list[$k]['gift_name'] = "-".$v['change_num'].$gift_info['gift_name']; $list[$k]['gift_name'] = $gift_info['gift_name']." - ".$v['change_num'];
$list[$k]['gift_image'] = $gift_info['play_image']; $list[$k]['gift_image'] = $gift_info['play_image'];
$list[$k]['time'] = date('Y-m-d H:i:s', $v['createtime']); $list[$k]['time'] = date('Y-m-d H:i:s', $v['createtime']);
} }

View File

@@ -54,6 +54,7 @@ class UserMessage extends Model
$system_no_read_count = $system_message - $user_read_message; $system_no_read_count = $system_message - $user_read_message;
$system_last_message = db::name('system_message') $system_last_message = db::name('system_message')
->field('id,type,title,content,url')
->where('type', 1)//1系统消息 3公告下的房间推荐4公告下的活动' ->where('type', 1)//1系统消息 3公告下的房间推荐4公告下的活动'
->where('FIND_IN_SET(:user_id, receiving_id)', ['user_id' => $uid]) ->where('FIND_IN_SET(:user_id, receiving_id)', ['user_id' => $uid])
->order('id desc') ->order('id desc')
@@ -77,6 +78,7 @@ class UserMessage extends Model
$announcement_read_count = count($system_message1) - count($user_read_message1); $announcement_read_count = count($system_message1) - count($user_read_message1);
unset($map['user_id']); unset($map['user_id']);
$announcement_last_message = db::name('system_message') $announcement_last_message = db::name('system_message')
->field('id,type,title,content,url')
->where($map) ->where($map)
->where('FIND_IN_SET(:user_id, receiving_id)', ['user_id' => $uid]) ->where('FIND_IN_SET(:user_id, receiving_id)', ['user_id' => $uid])
->order('id desc') ->order('id desc')

View File

@@ -50,17 +50,18 @@ class UserWallet extends Model
// 1.系统调节 2.充值 3.提现 4.金币转增(送出) 5.每日任务奖励 6.充值返利 7.购买装扮 // 1.系统调节 2.充值 3.提现 4.金币转增(送出) 5.每日任务奖励 6.充值返利 7.购买装扮
// 8.礼盒奖励 9.房间补贴 10.购买礼物 11.收礼增加收益 12.工会补贴 13.转赠金币(接收) 14.收益兑换 // 8.礼盒奖励 9.房间补贴 10.购买礼物 11.收礼增加收益 12.工会补贴 13.转赠金币(接收) 14.收益兑换
// 15.首充 16.天降好礼充值 17.退出工会扣款 18.房主收益 19.主持人收益20.发布头条扣除余额,21.公会长收益,22.提现驳回或提现失败返还,23.财富等级奖励金币领取,24.删除关系扣金币 // 15.首充 16.天降好礼充值 17.退出工会扣款 18.房主收益 19.主持人收益20.发布头条扣除余额,21.公会长收益,22.提现驳回或提现失败返还,23.财富等级奖励金币领取,24.删除关系扣金币
//27.小时榜获得28-新人充值好礼,32-发红包金币29-发红包钻石30-抢红包金币31-抢红包(钻石) 33-红包剩余退回金币34-红包剩余退回(钻石)
if($gift_type == 1){ //1金币2收益钻石 if($gift_type == 1){ //1金币2收益钻石
if($in_out_type == 1){//1收入 if($in_out_type == 1){//1收入
$in_out_types = [2,5,6,8,13,14,15,16,22,23,26]; $in_out_types = [2,5,6,8,13,14,15,16,22,23,26,27,30,28,33];
}elseif($in_out_type == 2){//2支出 }elseif($in_out_type == 2){//2支出
$in_out_types = [4,7,10,17,20,24,25]; $in_out_types = [4,7,10,17,20,24,25,32];
} }
}elseif($gift_type == 2){ //1金币2收益钻石 }elseif($gift_type == 2){ //1金币2收益钻石
if($in_out_type == 1){//1收入 if($in_out_type == 1){//1收入
$in_out_types = [6,9,11,12,18,19,21]; $in_out_types = [6,9,11,12,18,19,21,22,31,28,34];
}elseif($in_out_type == 2){//2支出 }elseif($in_out_type == 2){//2支出
$in_out_types = [3,14]; $in_out_types = [3,14,29];
} }
} }
@@ -106,10 +107,11 @@ class UserWallet extends Model
return ['code' => 0, 'msg' => '钻石数量不足', 'data' => null]; return ['code' => 0, 'msg' => '钻石数量不足', 'data' => null];
} }
$ear_exchange_coin = get_system_config_value('coin_exchange_rate');
$data = [ $data = [
'user_id' => $uid, 'user_id' => $uid,
'earnings_num' => $earnings_num, 'earnings_num' => $earnings_num,
'coin_num' => $earnings_num * 10, 'coin_num' => $earnings_num * $ear_exchange_coin,
'createtime' => time(), 'createtime' => time(),
]; ];
//开启事务 //开启事务
@@ -130,7 +132,7 @@ class UserWallet extends Model
$account_log[] = [ $account_log[] = [
'user_id' => $uid, 'user_id' => $uid,
'money_type' => 1, 'money_type' => 1,
'change_value' => $earnings_num * 10, 'change_value' => $earnings_num * $ear_exchange_coin,
'remarks' => '收益兑换', 'remarks' => '收益兑换',
'change_type' => 14, 'change_type' => 14,
'createtime' => time(), 'createtime' => time(),
@@ -138,7 +140,7 @@ class UserWallet extends Model
]; ];
$re = db::name('vs_user_money_log')->insertAll($account_log); $re = db::name('vs_user_money_log')->insertAll($account_log);
$re1 = db::name('user_wallet')->where('user_id',$uid)->setDec('earnings',$earnings_num); $re1 = db::name('user_wallet')->where('user_id',$uid)->setDec('earnings',$earnings_num);
$re2 = db::name('user_wallet')->where('user_id',$uid)->setInc('coin',$earnings_num * 10); $re2 = db::name('user_wallet')->where('user_id',$uid)->setInc('coin',$earnings_num * $ear_exchange_coin);
if($re && $re1 && $re2){ if($re && $re1 && $re2){
db::commit(); db::commit();
return ['code' => 1, 'msg' => '兑换成功', 'data' => null]; return ['code' => 1, 'msg' => '兑换成功', 'data' => null];

View File

@@ -43,6 +43,13 @@ class UserWithdrawal extends Model
if(!$age){ if(!$age){
return ['code' => 0, 'msg' => '该身份证号未满18岁', 'data' => null]; return ['code' => 0, 'msg' => '该身份证号未满18岁', 'data' => null];
} }
if(empty($type)){
return ['code' => 0, 'msg' => '请选择提现方式', 'data' => null];
}
//提现不能有小数
if($number != floor($number)){
return ['code' => 0, 'msg' => '提现不能有小数!', 'data' => null];
}
//判断用户是否签约云账户 //判断用户是否签约云账户
$yun_pay = new YunPay(); $yun_pay = new YunPay();
$sign_status = $yun_pay->getApiUserSignStatus($user_info['real_name'],$user_info['card_id']); $sign_status = $yun_pay->getApiUserSignStatus($user_info['real_name'],$user_info['card_id']);
@@ -192,10 +199,10 @@ class UserWithdrawal extends Model
$where['createtime'] = ['>=',strtotime($search_stime)]; $where['createtime'] = ['>=',strtotime($search_stime)];
} }
if($search_etime){ if($search_etime){
$where['createtime'] = ['<=',strtotime($search_etime.' 23:59:59')]; $where['createtime'] = ['<=',strtotime($search_etime)];
} }
if(!empty($search_stime) && !empty($search_etime)){ if(!empty($search_stime) && !empty($search_etime)){
$where['createtime'] = ['between',[strtotime($search_stime),strtotime($search_etime.' 23:59:59')]]; $where['createtime'] = ['between',[strtotime($search_stime),strtotime($search_etime)]];
} }
$withdraw_list = db::name('vs_user_withdrawal') $withdraw_list = db::name('vs_user_withdrawal')
->where($where) ->where($where)
@@ -207,6 +214,26 @@ class UserWithdrawal extends Model
$return_data[$key]['money'] = $value['money']; $return_data[$key]['money'] = $value['money'];
$return_data[$key]['status'] = $value['status']; $return_data[$key]['status'] = $value['status'];
$return_data[$key]['status_str'] = $this->withdraw_status[$value['status']]; $return_data[$key]['status_str'] = $this->withdraw_status[$value['status']];
//手续费
$return_data[$key]['withdraw_fee'] = $value['server_money'] ?? 0;
$return_data[$key]['personal_tax_rate'] = $value['personal_tax_rate'] ?? 0; //税率
$return_data[$key]['received_tax_amount'] = $value['received_tax_amount'] ?? 0; //税费
//预计到账金额
//1待处理2已通过3已拒绝 4打款中[云账户]5打款失败[云账户]6已打款[云账户]
if($value['status'] == 1 || $value['status'] == 2 || $value['status'] ==4){
$surplus_money = $value['money'] - $value['server_money'];
$return_data[$key]['received_tax_amount'] = 0;
}elseif($value['status'] == 3 || $value['status'] ==5){
$surplus_money = $value['money'];
$return_data[$key]['withdraw_fee'] = 0;
$return_data[$key]['received_tax_amount'] = 0;
}elseif($value['status'] == 6){
$surplus_money = $value['money'] - $value['server_money'] - $value['received_tax_amount'];
}else{
$surplus_money = $value['money'];
}
$return_data[$key]['surplus_money'] = round($surplus_money,2);
$return_data[$key]['createtime'] = date('Y-m-d H:i:s',$value['createtime']); $return_data[$key]['createtime'] = date('Y-m-d H:i:s',$value['createtime']);
} }
return ['code' => 1, 'msg' => '成功', 'data' => $return_data]; return ['code' => 1, 'msg' => '成功', 'data' => $return_data];

View File

@@ -301,13 +301,13 @@ class UserZone extends Model
return ['code' => 0, 'msg' => '请重试,', 'data' => null]; return ['code' => 0, 'msg' => '请重试,', 'data' => null];
} }
//评论別人的帖子- 每天第一条奖励【完成任务】 //评论別人的帖子- 每天第一条奖励【完成任务】
if($info['user_id'] != $uid){ // if($info['user_id'] != $uid){
//今天的第一条评论奖励 //今天的第一条评论奖励
$first_comment = db::name('user_zone_comment')->where(['user_id' => $uid, 'createtime' => ['between', [strtotime(date('Y-m-d 00:00:00')), strtotime(date('Y-m-d 23:59:59'))]]])->count(); $first_comment = db::name('user_zone_comment')->where(['user_id' => $uid, 'createtime' => ['between', [strtotime(date('Y-m-d 00:00:00')), strtotime(date('Y-m-d 23:59:59'))]]])->count();
if ($first_comment ==1) { if ($first_comment ==1) {
model('DailyTasks')->tasks_complete($uid,5); model('DailyTasks')->tasks_complete($uid,5);
} }
} // }
//增加评论数量 //增加评论数量
$reslut = db::name('user_zone')->where('id', $zid)->setInc('comment_num', 1); $reslut = db::name('user_zone')->where('id', $zid)->setInc('comment_num', 1);
if (!$reslut) { if (!$reslut) {
@@ -641,9 +641,10 @@ class UserZone extends Model
//获取字符串的长度和 判断字符串里面是否有, //获取字符串的长度和 判断字符串里面是否有,
if((mb_strlen($v['loginip'], 'utf-8') > 8 && mb_strpos($v['loginip'], ',') !== false)){ if((mb_strlen($v['loginip'], 'utf-8') > 8 && mb_strpos($v['loginip'], ',') !== false)){
$ipd = explode(',', $v['loginip']); $ipd = explode(',', $v['loginip']);
// $v['loginip'] = $ipd[0].' · '.$ipd[1];//省·市
$sheng = $ipd[0] =='(null)' ? '' : $ipd[0]; $sheng = $ipd[0] =='(null)' ? '' : $ipd[0];
$shi = $ipd[1] ?? ''; $shi = $ipd[1] ?? '';
$v['loginip'] = $sheng.' '.$shi;//省·市 $v['loginip'] = $sheng.' '.$shi;//省·市
}else{ }else{
$v['loginip'] = '未知'; $v['loginip'] = '未知';
} }

View File

@@ -5,6 +5,7 @@
use think\Cache; use think\Cache;
use think\Db; use think\Db;
use think\exception\HttpResponseException; use think\exception\HttpResponseException;
use think\Log;
use think\Response; use think\Response;
if (!function_exists('__')) { if (!function_exists('__')) {
@@ -625,7 +626,7 @@ function nickname_filter($username) {
// 定义敏感词数组(包含常见变体) // 定义敏感词数组(包含常见变体)
$sensitiveWords = [ $sensitiveWords = [
// 核心敏感词 // 核心敏感词
'系统管理员', '管理员', '系统管理', '系统', '管理', '系统管理员', '管理员', '系统管理', '系统', '管理','官方',
// 繁体中文 // 繁体中文
'系統管理員', '管理員', '系統管理', '系統', '系統管理員', '管理員', '系統管理', '系統',
@@ -804,7 +805,7 @@ function redis_lock_exit($key, $value = 1, $time = 5)
$redis = \think\Cache::store('redis')->handler(); $redis = \think\Cache::store('redis')->handler();
$is_lock = $redis->setnx($key, $value); $is_lock = $redis->setnx($key, $value);
if (!$is_lock) { if (!$is_lock) {
return V(0, '访问频繁,请稍后重试'); return V(0, '您的手速太快了!');
} else { } else {
$redis->setex($key, $time, $value); $redis->setex($key, $time, $value);
return true; return true;
@@ -826,7 +827,7 @@ function redis_lock_exits($key, $value = 1, $time = 5)
// 尝试加锁(设置一个带过期时间的 key仅当 key 不存在时才设置成功) // 尝试加锁(设置一个带过期时间的 key仅当 key 不存在时才设置成功)
$is_lock = Cache::has($key); $is_lock = Cache::has($key);
if ($is_lock) { if ($is_lock) {
return V(0, '访问频繁,请稍后重试'); return V(0, '您的手速太快了!');
} else { } else {
Cache::set($key, $value, $time); Cache::set($key, $value, $time);
return true; return true;
@@ -879,7 +880,7 @@ function generateRandom($num = 0)
} }
return $str; return $str;
} }
function generateRandoms($length = 4) function generateRandoms($length = 6)
{ {
$min = pow(10, $length - 1); $min = pow(10, $length - 1);
$max = pow(10, $length) - 1; $max = pow(10, $length) - 1;
@@ -940,12 +941,130 @@ function get_user_constellation($birthday)
} }
//数字格式话 //数字格式话
function numberFormat($number) { //function numberFormat($number) {
$num = round($number / 10000, 2); // $num = round($number / 10000, 2);
if ($num > 1) { // if ($num > 1) {
$number = $num . 'w'; // $number = $num . 'w';
// }
// return $number;
//}
/**
* 数字格式化方法
* @param int|float $number 需要格式化的数字
* @param string $format 格式类型: 'short'(默认简写), 'thousand'(千分位), 'custom'(自定义)
* @param int $decimals 小数位数
* @param array $options 其他选项
* @return string 格式化后的数字字符串
*/
function numberFormat($number, $format = 'short', $decimals = 2, $options = []) {
// 确保输入是数字
if (!is_numeric($number)) {
return '0';
} }
return $number;
switch ($format) {
case 'short':
return formatShortNumber($number, $decimals);
case 'thousand':
return formatThousandNumber($number, $decimals);
case 'custom':
return formatCustomNumber($number, $options);
default:
return formatShortNumber($number, $decimals);
}
}
/**
* 简写格式化数字 (如: 1.23w, 2.56亿)
*/
function formatShortNumber($number, $decimals = 2) {
$units = ['', 'w', '亿', '万亿'];
$unit_index = 0;
// 处理负数
$is_negative = $number < 0;
$number = abs($number);
// 根据数值大小选择合适的单位
while ($number >= 10000 && $unit_index < count($units) - 1) {
$number /= 10000;
$unit_index++;
}
// 格式化数字
$formatted = round($number, $decimals);
// 如果是整数且小数部分为0则不显示小数
if ($decimals > 0 && floor($formatted) == $formatted) {
$formatted = number_format($formatted, 0);
} else {
$formatted = number_format($formatted, $decimals, '.', '');
}
return ($is_negative ? '-' : '') . $formatted . $units[$unit_index];
}
/**
* 千分位格式化数字 (如: 1,234,567.89)
*/
function formatThousandNumber($number, $decimals = 2) {
return number_format($number, $decimals, '.', ',');
}
/**
* 自定义格式化数字
*/
function formatCustomNumber($number, $options = []) {
$defaults = [
'decimals' => 2,
'decimal_point' => '.',
'thousands_sep' => ',',
'suffix' => '',
'prefix' => ''
];
$options = array_merge($defaults, $options);
$formatted = number_format($number, $options['decimals'], $options['decimal_point'], $options['thousands_sep']);
return $options['prefix'] . $formatted . $options['suffix'];
}
/**
* 简化版本的数字格式化 (改进原方法)
* @param int|float $number 需要格式化的数字
* @param int $decimals 小数位数
* @return string 格式化后的数字字符串
*/
function simpleNumberFormat($number, $decimals = 2) {
if (!is_numeric($number)) {
return '0';
}
// 处理负数
$is_negative = $number < 0;
$number = abs($number);
if ($number >= 100000000) { // 1亿以上
$result = round($number / 100000000, $decimals) . '亿';
} elseif ($number >= 10000) { // 1万以上
$result = round($number / 10000, $decimals) . 'w';
} elseif ($number >= 1000) { // 1千以上
$result = round($number / 1000, $decimals) . 'k';
} else {
$result = round($number, $decimals);
// 如果是整数且小数部分为0则不显示小数
if (floor($result) == $result) {
$result = (int)$result;
}
}
return ($is_negative ? '-' : '') . $result;
} }
function generateRandomRoomName() { function generateRandomRoomName() {
@@ -1051,7 +1170,7 @@ function handelCharge($where,$data){
return 0; return 0;
} }
//查询是否首充 //查询是否首充
$is_first_charge = db::name('vs_user_money_log')->where('user_id',$orderModel['user_id'])->where('change_type',2)->where('money_type',1)->count(); $is_first_charge = db::name('vs_user_money_log')->where('user_id',$orderModel['user_id'])->where('change_type',2)->where('money_type',1)->where(['createtime'=>['>=',"1760666400"]])->count();
//添加充值记录 //添加充值记录
$res2 = db::name('vs_user_money_log')->insert([ $res2 = db::name('vs_user_money_log')->insert([
'user_id' => $orderModel['user_id'], 'user_id' => $orderModel['user_id'],
@@ -1066,14 +1185,6 @@ function handelCharge($where,$data){
db::rollback(); db::rollback();
return 0; return 0;
} }
//首充
if($is_first_charge == 0){
$first_recharge = model('Activities')->first_charge_gift_send($orderModel['user_id'],$orderModel['money']);
// if($first_recharge['code'] != 1){
// db::rollback();
// return 0;
// }
}
//给上级返佣 //给上级返佣
//获取上级 //获取上级
@@ -1085,9 +1196,29 @@ function handelCharge($where,$data){
return 0; return 0;
} }
} }
db::commit(); db::commit();
//活动
//首充
if($is_first_charge == 0){
model('Activities')->first_charge_gift_send($orderModel['user_id'],$orderModel['money']);
}
//活动
if($orderModel['type_id'] == 6){
$orderModel['type_params'] = 2;
}elseif(in_array($orderModel['type_id'],[14,15,16])){
$orderModel['type_params'] = 3;
}
switch ($orderModel['type_params']){
case 2:
//天降好礼
model('Activities')->drop_gift_send($orderModel['user_id'],$orderModel['money']);
break;
case 3:
//新人好礼
model('Activities')->new_charge_gift_send($orderModel['user_id'],$orderModel['money']);
}
return 1; return 1;
} catch (\Exception $e){ } catch (\Exception $e){
db::rollback(); db::rollback();
@@ -1102,7 +1233,9 @@ function handelCharge($where,$data){
function coin_earning($all_gift_price,$ratio){ function coin_earning($all_gift_price,$ratio){
//rmb_coin_ratio 人民币转换金币的比例 //rmb_coin_ratio 人民币转换金币的比例
//金币转换人民币 //金币转换人民币
return $all_gift_price * $ratio / 100 / get_system_config_value('rmb_coin_ratio'); //小数点保留4位
$result = $all_gift_price * $ratio / 100 / get_system_config_value('rmb_coin_ratio');
return round($result, 4);
} }
/** /**
@@ -1160,6 +1293,22 @@ function getMillisecond() {
return (float)sprintf('%.0f', (floatval($s1) + floatval($s2)) * 1000); return (float)sprintf('%.0f', (floatval($s1) + floatval($s2)) * 1000);
} }
/*
* 写入日志到redis
* @param string $key 日志key
* @param array $logData 日志数据
*/
function write_log_redis($key = 'log',$logData = [],$time = 7){
$redis = new \Redis();
// 连接到Redis服务器
$redis->connect(config('redis.host'), config('redis.port')); // 根据实际配置调整主机和端口
// 选择数据库2
$redis->select(2);
$key = $key.'_'.date('Y-m-d-H-i-s');
$expire = 86400 * $time;
$redis->setex($key, $expire, json_encode($logData));
}

View File

@@ -22,7 +22,7 @@ class BaseCom extends Controller
//检测系统是否维护中 //检测系统是否维护中
$is_maintenance = get_system_config_value('is_maintenance'); $is_maintenance = get_system_config_value('is_maintenance');
if($is_maintenance == 2){ if($is_maintenance == 2){
return V(203, '系统维护中'); return V(0, '系统维护中');
} }
//检测是什么系统 //检测是什么系统
$system = input('system',''); $system = input('system','');

View File

@@ -70,6 +70,14 @@ class Push
//推送系统消息 //推送系统消息
const PUSH_SYSTEM_MESSAGE = 7000;//推送系统消息 const PUSH_SYSTEM_MESSAGE = 7000;//推送系统消息
//房间盘推送
//巡乐会推送开启进度推送
const PUSH_ROOM_PAN_XLH_PROGRESS = 8000;
//小时榜
const PUSH_ROOM_PAN_HOUR_PROGRESS = 8001;
//红包
const PUSH_ROOM_PAN_RED_PROGRESS = 8002;
public $user_id, $room_id, $topic_room, $topic_client; public $user_id, $room_id, $topic_room, $topic_client;
public function __construct($user_id = 0, $room_id = 0) public function __construct($user_id = 0, $room_id = 0)
@@ -269,12 +277,14 @@ class Push
// ======================================================================================================= // =======================================================================================================
// ========================================羽声使用开始===================================================================== // ========================================秘地使用开始=====================================================================
//横幅礼物通知 //横幅礼物通知
public function giftBanner($gift_list) public function giftBanner($gift_list)
{ {
$topic = 'qx_room_topic'; $topic = 'qx_room_topic';
//数组重组下标从0开始
$gift_list = array_values($gift_list);
$data = ['room_id' => $this->room_id, 'list' => $gift_list]; $data = ['room_id' => $this->room_id, 'list' => $gift_list];
$this->push(self::PUSH_GIFT_BANNER, $topic, $data); $this->push(self::PUSH_GIFT_BANNER, $topic, $data);
} }
@@ -287,10 +297,27 @@ class Push
$this->push(self::PUSH_SYSTEM_MESSAGE, $topic, $data); $this->push(self::PUSH_SYSTEM_MESSAGE, $topic, $data);
} }
//巡乐会推送
public function xunlehui($data){
$topic = 'qx_xunlehui';
$this->push(self::PUSH_ROOM_PAN_XLH_PROGRESS, $topic, $data);
}
//小时榜推送
public function hourRanking($data){
$topic = 'qx_hour_ranking';
$this->push(self::PUSH_ROOM_PAN_HOUR_PROGRESS, $topic, $data);
}
//红包来了
public function redpacketArrive($data){
$topic = 'qx_redpacket_arrive';
$this->push(self::PUSH_ROOM_PAN_RED_PROGRESS, $topic, $data);
}
// =========================================羽声使用结束===================================================== // =========================================秘地使用结束=====================================================
// ============================================================================================================= // =============================================================================================================

View File

@@ -163,10 +163,10 @@ class adminApi extends Controller
// 判断是否需要验证权限 // 判断是否需要验证权限
if (!$this->auth->match($this->noNeedRight)) { if (!$this->auth->match($this->noNeedRight)) {
// 判断控制器和方法是否有对应权限 // 判断控制器和方法是否有对应权限
if (!$this->auth->check($path)) { // if (!$this->auth->check($path)) {
Hook::listen('admin_nopermission', $this); // Hook::listen('admin_nopermission', $this);
return V(302,"你没有权限访问", url('index/login', [])); // return V(302,"你没有权限访问", url('index/login', []));
} // }
} }
} }

View File

@@ -73,7 +73,23 @@ class UserWallet extends Model
const TRANSFER_COIN = 25; const TRANSFER_COIN = 25;
//好友转赠所得金币 //好友转赠所得金币
const RECEIVE_COIN = 26; const RECEIVE_COIN = 26;
//小时榜获得金币
const HOUR_RANK_COIN = 27;
//新人充值好礼
const NEW_USER_CHARGE_GIFT = 28;
//发红包(金币)
const RED_PACKET_COIN = 32;
//发红包(钻石)
const RED_PACKET_DIAMOND = 29;
//抢红包(金币)
const RED_PACKET_COIN_RECEIVE = 30;
//抢红包(钻石)
const RED_PACKET_DIAMOND_RECEIVE = 31;
//红包剩余退回金币34-红包剩余退回(钻石)
const RED_PACKET_LEFT_COIN = 33;
//红包剩余退回(钻石)
const RED_PACKET_LEFT_DIAMOND = 34;
//金币支出类型数组 //金币支出类型数组
public $coin_consumption_type_array = [ public $coin_consumption_type_array = [
@@ -82,12 +98,14 @@ class UserWallet extends Model
self::OPERATION_GIFT, self::OPERATION_GIFT,
self::GUILD_EXIT, self::GUILD_EXIT,
self::HEADLINE_REWARD, self::HEADLINE_REWARD,
self::TRANSFER_COIN self::TRANSFER_COIN,
self::RED_PACKET_COIN,
]; ];
//钻石支出类型数组 //钻石支出类型数组
public $diamond_consumption_type_array = [ public $diamond_consumption_type_array = [
self::OPERATION_WITHDRAW, self::OPERATION_WITHDRAW,
self::MONEY_CONVERSION self::MONEY_CONVERSION,
self::RED_PACKET_DIAMOND
]; ];
@@ -135,7 +153,15 @@ class UserWallet extends Model
self::FINANCE_LEVEL_REWARD => '财富等级奖励金币领取', self::FINANCE_LEVEL_REWARD => '财富等级奖励金币领取',
self::DELETE_RELATION_COIN => '删除关系扣金币', self::DELETE_RELATION_COIN => '删除关系扣金币',
self::TRANSFER_COIN => '赠送好友金币', self::TRANSFER_COIN => '赠送好友金币',
self::RECEIVE_COIN => '好友转赠所得金币' self::RECEIVE_COIN => '好友转赠所得金币',
self::HOUR_RANK_COIN => '小时榜获得金币',
self::NEW_USER_CHARGE_GIFT => '新人充值好礼',
self::RED_PACKET_COIN => '发红包(金币)',
self::RED_PACKET_DIAMOND => '发红包(钻石)',
self::RED_PACKET_COIN_RECEIVE => '抢红包(金币)',
self::RED_PACKET_DIAMOND_RECEIVE => '抢红包(钻石)',
self::RED_PACKET_LEFT_COIN => '红包剩余退回(金币)',
self::RED_PACKET_LEFT_DIAMOND => '红包剩余退回(钻石)',
]; ];
return $status[$type] ?? ''; return $status[$type] ?? '';
} }

View File

@@ -172,6 +172,7 @@ return [
'path' => LOG_PATH, 'path' => LOG_PATH,
// 日志记录级别 // 日志记录级别
'level' => [], 'level' => [],
'max_files'=>100,//最大保存日志数超过tp将自动清理
], ],
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | Trace设置 开启 app_trace 后 有效 // | Trace设置 开启 app_trace 后 有效

View File

@@ -2,6 +2,9 @@
namespace app\cron\controller; namespace app\cron\controller;
use app\common\model\Redpacket;
use app\common\model\UserWallet;
use think\Cache;
use think\Db; use think\Db;
use Yzh\YunPay; use Yzh\YunPay;
@@ -30,9 +33,15 @@ class PerformPerSecond
echo "pk发起10秒后无应答拒绝\n"; echo "pk发起10秒后无应答拒绝\n";
$this->pk_start_refuse(); $this->pk_start_refuse();
echo "\n"; echo "\n";
// echo "提现云账号订单状态查询:\n"; echo "房间红包清退:\n";
// $this->withdraw_order_status(); $this->processExpiredRedpackets();
echo "\n";
// echo "房间火热值更新:\n";
// $this->room_hot_update();
// echo "\n"; // echo "\n";
echo "提现云账号订单状态查询:\n";
$this->withdraw_order_status();
echo "\n";
} }
@@ -136,6 +145,9 @@ class PerformPerSecond
continue; continue;
} }
} }
if($value['yun_order_status'] == 5077){
continue;
}
echo "提现订单查询:".$value['order_sn']."\n"; echo "提现订单查询:".$value['order_sn']."\n";
$yun_pay = new YunPay($value['order_sn'], "", "", "", "",""); $yun_pay = new YunPay($value['order_sn'], "", "", "", "","");
$result = $yun_pay->queryOrder($value['type']); $result = $yun_pay->queryOrder($value['type']);
@@ -145,15 +157,32 @@ class PerformPerSecond
'status' => 6, 'status' => 6,
'pay_time' => time(), 'pay_time' => time(),
'pay_message' => $result['data']['msg'], 'pay_message' => $result['data']['msg'],
'updatetime' => time() 'updatetime' => time(),
'yun_order_status' => $result['data']['code'],
// 'personal_tax_rate' => $result['personal_tax_rate'] ?? 0,
'received_tax_amount' => $result['received_tax_amount'] ?? 0,
]); ]);
}else{ }else{
db::name('vs_user_withdrawal')->where('order_sn',$value['order_sn'])->update([ db::name('vs_user_withdrawal')->where('order_sn',$value['order_sn'])->update([
'status' => 5, 'status' => 5,
'pay_time' => time(), 'pay_time' => time(),
'pay_message' => $result['data']['msg'], 'pay_message' => $result['data']['msg'],
'updatetime' => time() 'updatetime' => time(),
'yun_order_status' => $result['data']['code'],
// 'personal_tax_rate' => $result['personal_tax_rate'] ?? 0,
'received_tax_amount' => $result['received_tax_amount'] ?? 0,
]); ]);
if(in_array($result['data']['code'],[5077,261]) && $value['yun_order_status'] == null){
// if($result['data']['code']==5077 && $value['yun_order_status'] == null){
//该支付宝账户不存在或未开通手机号转账功能。如有疑问,请收款用户联系支付宝客服咨询。
//退还金币
$res = model('api/UserWithdrawal')->withdrawal_fail($value['order_sn']);
if($res){
echo "提现订单失败,退回金币成功\n";
}else{
echo "提现订单失败,退回金币失败:".$res['msg']."\n";
}
}
} }
echo "提现订单查询成功:".$result['msg']."\n"; echo "提现订单查询成功:".$result['msg']."\n";
@@ -162,4 +191,140 @@ class PerformPerSecond
} }
} }
} }
//房间火热值更新
public function room_hot_update(){
$room_id_list = db::name('vs_room_hot_value_log')->field('id,room_id')->select();
$room_list = db::name('vs_room_hot_value_log')->field('room_id,sum(hot_value) as value')->group('room_id')->select();
if($room_list){
$data_count = 0;
$data_room_list = [];
foreach ($room_list as $value){
$hot_value = 0;
$hot_values = db::name('vs_room')->where('id',$value['room_id'])->field('hot_value,today_hot_value')->find();
if($hot_values['today_hot_value'] == $value['value'] || $value['value'] == 0){
continue;
}
if($hot_values['today_hot_value'] < $value['value']){
$hot_value = $hot_values['hot_value'] + ($value['value'] - $hot_values['today_hot_value']);
}
if($hot_values['today_hot_value'] > $value['value']){
$hot_value = $hot_values['hot_value'];
$today_hot_value = $value['value'];
}
$res = db::name('vs_room')->where('id',$value['room_id'])->update([
'today_hot_value' => $today_hot_value,
'hot_value' => $hot_value,
'updatetime' => time()
]);
if($res){
// db::name('vs_room_hot_value_log')->where('room_id',$value['room_id'])->delete();
$data_room_list[] = $value['room_id'];
}
$data_count ++;
}
foreach ($room_id_list as $v){
if(in_array($v['room_id'],$data_room_list)){
db::name('vs_room_hot_value_log')->where('id',$v['id'])->delete();
}
}
echo "房间火热值更新操作-共". $data_count . "条数据\n";
}
}
/**
* 处理过期红包退款
*/
public function processExpiredRedpackets()
{
$now = time();
$processedCount = 0;
// 1. 处理到时间的未开始红包,更新为进行中
$pendingRedpackets = Db::name('redpacket')
->where('status', Redpacket::STATUS_PENDING)
->where('start_time', '<=', $now)
->select();
foreach ($pendingRedpackets as $redpacket) {
Db::name('redpacket')
->where('id', $redpacket['id'])
->update([
'status' => Redpacket::STATUS_ACTIVE,
'updatetime' => $now
]);
// 更新Redis缓存
$redis = Cache::store('redis')->handler();
$redisKey = "redpacket:{$redpacket['id']}";
$redis->hSet($redisKey, 'status', Redpacket::STATUS_ACTIVE);
$processedCount++;
}
// 2. 处理已过期的进行中红包,更新为已结束并退款
$expiredRedpackets = Db::name('redpacket')
->where('status', Redpacket::STATUS_ACTIVE)
->where('end_time', '<', $now)
->where('left_count', '>', 0)
->select();
foreach ($expiredRedpackets as $redpacket) {
Db::startTrans();
try {
// 退款给发红包用户
if ($redpacket['left_amount'] > 0) {
// 更新用户钱包
$coinField = $redpacket['coin_type'] == 1 ? 'coin' : 'earnings';
//增加余额
$addres = Db::name('user_wallet')
->where('user_id', $redpacket['user_id'])
->inc($coinField, $redpacket['left_amount'])
->update();
//记录用户金币日志
$data = [
'user_id' => $redpacket['user_id'],
'change_value' => $redpacket['left_amount'],
'room_id' => $redpacket['room_id'],
'money_type' => $redpacket['coin_type'],
//记录日志 32-发红包金币29-发红包钻石30-抢红包金币31-抢红包钻石33-红包剩余退回金币34-红包剩余退回(钻石)
'change_type' => $redpacket['coin_type'] == 1 ? 33 : 34,
'from_id' => $redpacket['room_id'],
'remarks' => '红包剩余退回',
'createtime' => time()
];
$res = Db::name('vs_user_money_log')->insert($data);
if(!$res || !$addres){
Db::rollback();
}
}
// 更新红包状态为已结束
Db::name('redpacket')
->where('id', $redpacket['id'])
->update([
'status' => Redpacket::STATUS_FINISHED,
'updatetime' => $now
]);
// 更新Redis缓存
$redis = Cache::store('redis')->handler();
$redisKey = "redpacket:{$redpacket['id']}";
$redis->hSet($redisKey, 'status', Redpacket::STATUS_FINISHED);
Db::commit();
$processedCount++;
} catch (\Exception $e) {
Db::rollback();
// 记录日志
\think\Log::error("红包退款失败: {$redpacket['id']}, 错误: " . $e->getMessage());
}
}
echo "处理过期红包-共". $processedCount . "条数据\n";
}
} }

View File

@@ -30,10 +30,10 @@ class Subsidy
*/ */
public function createGuildSubsidyData(){ public function createGuildSubsidyData(){
//获取上周第一天时间 //获取上周第一天时间
$week_start_time = strtotime('last monday'); $week_start_time = strtotime('last week Monday');
$week_end_time = strtotime(date('Y-m-d 23:59:59',strtotime('last sunday'))); $week_end_time = strtotime(date('Y-m-d 23:59:59',strtotime('last week Sunday')));
// $week_start_time = strtotime('2025-08-11'); // $week_start_time = strtotime('2025-09-29');
// $week_end_time = strtotime('2025-08-17 23:59:59'); // $week_end_time = strtotime('2025-09-29 23:59:59');
//获取上周时间 //获取上周时间
$time_value = date('o-W', $week_start_time); $time_value = date('o-W', $week_start_time);
@@ -43,12 +43,24 @@ class Subsidy
$data_count = 0; $data_count = 0;
foreach ($guild_list as $key => $value) { foreach ($guild_list as $key => $value) {
//获取所有工会房间ID //获取所有工会房间ID
$room_ids = db::name('vs_guild_user')->where('guild_id', $value['id'])->field('room_id')->select(); $guild_user_data = db::name('vs_guild_user')->where('guild_id', $value['id'])->field('room_id,createtime,quit_time')->select();
$room_ids = array_column($room_ids, 'room_id'); $transaction = 0;
$transaction = db::name('vs_give_gift') foreach ($guild_user_data as $k => $v) {
->whereIn('from_id',$room_ids) $week_start_time_seach = $week_start_time;
->where(['from'=>['in',[2,3,6]],'createtime' => ['between', [$week_start_time, $week_end_time]]]) $week_end_time_seach = $week_end_time;
->sum('total_price'); if($v['createtime'] && $week_start_time_seach < $v['createtime']){
$week_start_time_seach = $v['createtime'];
}
if($v['quit_time'] && ($week_end_time_seach > $v['quit_time'])){
$week_end_time_seach = $v['quit_time'];
}
$transaction_one = db::name('vs_give_gift')
->whereIn('from_id',$v['room_id'])
->where(['from'=>['in',[2,3,6]],'createtime' => ['between', [$week_start_time_seach, $week_end_time_seach]]])
->sum('total_price');
$transaction += $transaction_one;
}
if($transaction > 0){ if($transaction > 0){
//判断是否已经生成过 //判断是否已经生成过
if (db::name('vs_guild_subsidy')->where(['guild_id'=>$value['id'],'week'=>$time_value])->find()) { if (db::name('vs_guild_subsidy')->where(['guild_id'=>$value['id'],'week'=>$time_value])->find()) {
@@ -65,7 +77,7 @@ class Subsidy
foreach ($config as $k => $v) { foreach ($config as $k => $v) {
if ($transaction >= $v['end_amount']) { if ($transaction >= $v['end_amount']) {
$subsidy_ratio = $v['subsidy_ratio']; $subsidy_ratio = $v['subsidy_ratio'];
$subsidy_amount = $transaction * ($subsidy_ratio / 100); $subsidy_amount = ($transaction * ($subsidy_ratio / 100)) / get_system_config_value('rmb_coin_ratio');//转为钻石
break; // 找到匹配项后提前退出循环 break; // 找到匹配项后提前退出循环
} }
} }
@@ -81,6 +93,7 @@ class Subsidy
'status' => 0, 'status' => 0,
'createtime' => time(), 'createtime' => time(),
]; ];
// echo "工会".$value['id']."生成数据:流水金额:{$transaction} 补贴比例:{$subsidy_ratio}% 补贴金额:{$subsidy_amount}\n";
$subsidy_id = Db::name('vs_guild_subsidy')->insertGetId($data); $subsidy_id = Db::name('vs_guild_subsidy')->insertGetId($data);
if ($subsidy_id) { if ($subsidy_id) {
echo "工会".$value['id']."生成成功(补贴ID".$subsidy_id." 补贴金额:".$subsidy_amount.")\n"; echo "工会".$value['id']."生成成功(补贴ID".$subsidy_id." 补贴金额:".$subsidy_amount.")\n";
@@ -130,7 +143,7 @@ class Subsidy
foreach ($config as $k => $v) { foreach ($config as $k => $v) {
if ($transaction >= $v['end_amount']) { if ($transaction >= $v['end_amount']) {
$subsidy_ratio = $v['subsidy_ratio']; $subsidy_ratio = $v['subsidy_ratio'];
$subsidy_amount = $transaction * ($subsidy_ratio / 100); $subsidy_amount = ($transaction * ($subsidy_ratio / 100)) / get_system_config_value('rmb_coin_ratio');//转为钻石;
break; // 找到匹配项后提前退出循环 break; // 找到匹配项后提前退出循环
} }
} }

View File

@@ -18,9 +18,14 @@ class TenSeconds
echo "房间在线人数:\n"; echo "房间在线人数:\n";
$this->auction_end_notice();//拍卖房结束提醒 $this->auction_end_notice();//拍卖房结束提醒
echo "\n"; echo "\n";
//清理切后台超过5分钟的用户
echo "清理切后台超过5分钟的用户\n";
$this->clear_offline_user();
echo "\n";
} }
//在线人数
protected function auction_end_notice() protected function auction_end_notice()
{ {
$auction_list = db::name('vs_room')->field('id')->where(['room_status'=>1,'apply_status' => 2,'type_id' =>['<>',6]])->select(); $auction_list = db::name('vs_room')->field('id')->where(['room_status'=>1,'apply_status' => 2,'type_id' =>['<>',6]])->select();
@@ -40,17 +45,6 @@ class TenSeconds
$data_number++; $data_number++;
} }
} }
// else{
// if($on_pit_num > 0){
// $text = [
// 'online_number' => $on_pit_num,
// 'room_id' => $value['id'],//接受房间id
// ];
// model('api/Chat')->sendMsg(1036,$value['id'],$text);
// $data_number++;
// }
// }
$data_count++; $data_count++;
} }
} }
@@ -58,4 +52,18 @@ class TenSeconds
echo "房间在线人数>0 的总共" . $data_number . "条数据\n"; echo "房间在线人数>0 的总共" . $data_number . "条数据\n";
} }
//清理切后台超过5分钟的用户
protected function clear_offline_user()
{
$time = time() - 300;
$user_list = db::name('vs_user_in_room_bg')->where('updatetime', '<=', $time)->select();
if($user_list){
foreach ($user_list as $v){
//删除
db::name('vs_user_in_room_bg')->delete($v['id']);
model('api/Room')->quit_room($v['user_id'], $v['room_id'],$v['user_id'],2);
}
}
}
} }

View File

@@ -1,7 +1,7 @@
<?php <?php
return array ( return array (
'name' => '羽声(Vespa)', 'name' => '秘地',
'beian' => '', 'beian' => '',
'cdnurl' => '', 'cdnurl' => '',
'version' => '1.0.3', 'version' => '1.0.3',

View File

@@ -23,7 +23,7 @@ class AliPay
*/ */
public function __construct() public function __construct()
{ {
$this->appCertPath = ADDON_PATH . 'epay/certs/appCertPublicKey_2021005162648430.crt'; $this->appCertPath = ADDON_PATH . 'epay/certs/appCertPublicKey_2021005189650627.crt';
$this->alipayCertPath = ADDON_PATH . 'epay/certs/alipayCertPublicKey_RSA2.crt'; $this->alipayCertPath = ADDON_PATH . 'epay/certs/alipayCertPublicKey_RSA2.crt';
$this->rootCertPath = ADDON_PATH . 'epay/certs/alipayRootCert.crt'; $this->rootCertPath = ADDON_PATH . 'epay/certs/alipayRootCert.crt';

View File

@@ -17,7 +17,7 @@ defined("JSON_UNESCAPED_UNICODE") or define("JSON_UNESCAPED_UNICODE", 256);
class BaseClient class BaseClient
{ {
const SDK_NAME = "yunzhanghu-sdk-php"; const SDK_NAME = "yunzhanghu-sdk-php";
const SDK_VERSION = "2.0.15"; const SDK_VERSION = "2.0.22";
const ENV_PROD = "yzh_env_prod"; const ENV_PROD = "yzh_env_prod";
const ENV_SANDBOX = "yzh_env_sandbox"; const ENV_SANDBOX = "yzh_env_sandbox";
@@ -44,6 +44,8 @@ class BaseClient
'bizlicxjjh5service' => 'https://api-aic.yunzhanghu.com', // 个体工商户注册服务(云账户新经济 H5接口域名 'bizlicxjjh5service' => 'https://api-aic.yunzhanghu.com', // 个体工商户注册服务(云账户新经济 H5接口域名
'ins' => 'https://api-ins.yunzhanghu.com', // 保险服务接口域名 'ins' => 'https://api-ins.yunzhanghu.com', // 保险服务接口域名
'task' => 'https://api-task.yunzhanghu.com', // 任务库服务接口域名 'task' => 'https://api-task.yunzhanghu.com', // 任务库服务接口域名
'usercollectservice' => 'https://api-user.yunzhanghu.com', // 用户信息收集接口域名
'calculatelaborservice' => 'https://api-service.yunzhanghu.com', // 连续劳务税费试算接口域名
), ),
self::ENV_SANDBOX => array( // 沙箱环境 self::ENV_SANDBOX => array( // 沙箱环境
@@ -51,8 +53,10 @@ class BaseClient
'authentication' => 'https://api-service.yunzhanghu.com/sandbox', // 用户信息验证接口域名 'authentication' => 'https://api-service.yunzhanghu.com/sandbox', // 用户信息验证接口域名
'apiusersignservice' => 'https://api-service.yunzhanghu.com/sandbox', // API 签约接口域名 'apiusersignservice' => 'https://api-service.yunzhanghu.com/sandbox', // API 签约接口域名
'h5usersignservice' => 'https://api-service.yunzhanghu.com/sandbox', // H5 签约接口域名 'h5usersignservice' => 'https://api-service.yunzhanghu.com/sandbox', // H5 签约接口域名
'calculatelaborservice' => 'https://api-service.yunzhanghu.com/sandbox', // 连续劳务税费试算接口域名
'realnameservice' => 'https://api-service.yunzhanghu.com/sandbox', // 连续劳务税费试算接口域名
'ins' => '', // 保险服务接口域名 'ins' => '', // 保险服务接口域名
'aic' => '', // 个体工商户注册服务接口域名 'aic' => 'https://api-aic.yunzhanghu.com/sandbox', // 个体工商户注册服务接口域名
'task' => '', // 任务库服务接口域名 'task' => '', // 任务库服务接口域名
'dataservice' => '', // 数据服务接口域名 'dataservice' => '', // 数据服务接口域名
), ),

View File

@@ -70,6 +70,11 @@ class UserExemptedInfoRequest extends BaseRequest
* @var string * @var string
*/ */
public $ref; public $ref;
/**
* 证件照片 URL 地址
* @var string[]
*/
public $image_urls;
public function __construct($params = array()) public function __construct($params = array())
{ {

View File

@@ -21,25 +21,145 @@ class DailyOrderSummary extends BaseModel
*/ */
protected $pay; protected $pay;
/** /**
* 加成服务费金额 * 应收综合服务主体加成服务费金额
* @var string * @var string
*/ */
protected $broker_fee; protected $broker_fee;
/** /**
* 加成服务费实收金额 * 应收余额账户支出加成服务费金额
* @var string * @var string
*/ */
protected $broker_real_fee; protected $broker_real_fee;
/** /**
* 已抵扣加成服务费金额 * 应收加成服务费抵扣金额
* @var string * @var string
*/ */
protected $broker_rebate_fee; protected $broker_rebate_fee;
/** /**
* 用户加成服务费金额 * 应收用户加成服务费金额
* @var string * @var string
*/ */
protected $user_fee; protected $user_fee;
/**
* 实收综合服务主体加成服务费金额
* @var string
*/
protected $received_broker_fee;
/**
* 实收余额账户支出加成服务费金额
* @var string
*/
protected $received_broker_real_fee;
/**
* 实收加成服务费抵扣金额
* @var string
*/
protected $received_broker_deduct_fee;
/**
* 实收用户加成服务费金额
* @var string
*/
protected $received_user_fee;
/**
* 预扣税费总额
* @var string
*/
protected $tax;
/**
* 实缴税费总额
* @var string
*/
protected $received_tax_amount;
/**
* 预扣个税
* @var string
*/
protected $personal_tax;
/**
* 预扣增值税
* @var string
*/
protected $value_added_tax;
/**
* 预扣附加税费
* @var string
*/
protected $additional_tax;
/**
* 实缴个税
* @var string
*/
protected $received_personal_tax;
/**
* 实缴增值税
* @var string
*/
protected $received_value_added_tax;
/**
* 实缴附加税费
* @var string
*/
protected $received_additional_tax;
/**
* 用户预扣个税
* @var string
*/
protected $user_personal_tax;
/**
* 平台企业预扣个税
* @var string
*/
protected $dealer_personal_tax;
/**
* 用户预扣增值税
* @var string
*/
protected $user_value_added_tax;
/**
* 平台企业预扣增值税
* @var string
*/
protected $dealer_value_added_tax;
/**
* 用户预扣附加税费
* @var string
*/
protected $user_additional_tax;
/**
* 平台企业预扣附加税费
* @var string
*/
protected $dealer_additional_tax;
/**
* 用户实缴个税
* @var string
*/
protected $user_received_personal_tax;
/**
* 平台企业实缴个税
* @var string
*/
protected $dealer_received_personal_tax;
/**
* 用户实缴增值税
* @var string
*/
protected $user_received_value_added_tax;
/**
* 平台企业实缴增值税
* @var string
*/
protected $dealer_received_value_added_tax;
/**
* 用户实缴附加税费
* @var string
*/
protected $user_received_additional_tax;
/**
* 平台企业实缴附加税费
* @var string
*/
protected $dealer_received_additional_tax;
/** /**
* 订单数量 * 订单数量
@@ -78,7 +198,7 @@ class DailyOrderSummary extends BaseModel
} }
/** /**
* 加成服务费金额 * 应收综合服务主体加成服务费金额
* @var string $broker_fee * @var string $broker_fee
*/ */
public function setBrokerFee($broker_fee) public function setBrokerFee($broker_fee)
@@ -87,7 +207,7 @@ class DailyOrderSummary extends BaseModel
} }
/** /**
* 加成服务费金额 * 应收综合服务主体加成服务费金额
* @return string * @return string
*/ */
public function getBrokerFee() public function getBrokerFee()
@@ -96,7 +216,7 @@ class DailyOrderSummary extends BaseModel
} }
/** /**
* 加成服务费实收金额 * 应收余额账户支出加成服务费金额
* @var string $broker_real_fee * @var string $broker_real_fee
*/ */
public function setBrokerRealFee($broker_real_fee) public function setBrokerRealFee($broker_real_fee)
@@ -105,7 +225,7 @@ class DailyOrderSummary extends BaseModel
} }
/** /**
* 加成服务费实收金额 * 应收余额账户支出加成服务费金额
* @return string * @return string
*/ */
public function getBrokerRealFee() public function getBrokerRealFee()
@@ -114,7 +234,7 @@ class DailyOrderSummary extends BaseModel
} }
/** /**
* 已抵扣加成服务费金额 * 应收加成服务费抵扣金额
* @var string $broker_rebate_fee * @var string $broker_rebate_fee
*/ */
public function setBrokerRebateFee($broker_rebate_fee) public function setBrokerRebateFee($broker_rebate_fee)
@@ -123,7 +243,7 @@ class DailyOrderSummary extends BaseModel
} }
/** /**
* 已抵扣加成服务费金额 * 应收加成服务费抵扣金额
* @return string * @return string
*/ */
public function getBrokerRebateFee() public function getBrokerRebateFee()
@@ -132,7 +252,7 @@ class DailyOrderSummary extends BaseModel
} }
/** /**
* 用户加成服务费金额 * 应收用户加成服务费金额
* @var string $user_fee * @var string $user_fee
*/ */
public function setUserFee($user_fee) public function setUserFee($user_fee)
@@ -141,11 +261,443 @@ class DailyOrderSummary extends BaseModel
} }
/** /**
* 用户加成服务费金额 * 应收用户加成服务费金额
* @return string * @return string
*/ */
public function getUserFee() public function getUserFee()
{ {
return $this->user_fee; return $this->user_fee;
} }
/**
* 实收综合服务主体加成服务费金额
* @var string $received_broker_fee
*/
public function setReceivedBrokerFee($received_broker_fee)
{
$this->received_broker_fee = $received_broker_fee;
}
/**
* 实收综合服务主体加成服务费金额
* @return string
*/
public function getReceivedBrokerFee()
{
return $this->received_broker_fee;
}
/**
* 实收余额账户支出加成服务费金额
* @var string $received_broker_real_fee
*/
public function setReceivedBrokerRealFee($received_broker_real_fee)
{
$this->received_broker_real_fee = $received_broker_real_fee;
}
/**
* 实收余额账户支出加成服务费金额
* @return string
*/
public function getReceivedBrokerRealFee()
{
return $this->received_broker_real_fee;
}
/**
* 实收加成服务费抵扣金额
* @var string $received_broker_deduct_fee
*/
public function setReceivedBrokerDeductFee($received_broker_deduct_fee)
{
$this->received_broker_deduct_fee = $received_broker_deduct_fee;
}
/**
* 实收加成服务费抵扣金额
* @return string
*/
public function getReceivedBrokerDeductFee()
{
return $this->received_broker_deduct_fee;
}
/**
* 实收用户加成服务费金额
* @var string $received_user_fee
*/
public function setReceivedUserFee($received_user_fee)
{
$this->received_user_fee = $received_user_fee;
}
/**
* 实收用户加成服务费金额
* @return string
*/
public function getReceivedUserFee()
{
return $this->received_user_fee;
}
/**
* 预扣税费总额
* @var string $tax
*/
public function setTax($tax)
{
$this->tax = $tax;
}
/**
* 预扣税费总额
* @return string
*/
public function getTax()
{
return $this->tax;
}
/**
* 实缴税费总额
* @var string $received_tax_amount
*/
public function setReceivedTaxAmount($received_tax_amount)
{
$this->received_tax_amount = $received_tax_amount;
}
/**
* 实缴税费总额
* @return string
*/
public function getReceivedTaxAmount()
{
return $this->received_tax_amount;
}
/**
* 预扣个税
* @var string $personal_tax
*/
public function setPersonalTax($personal_tax)
{
$this->personal_tax = $personal_tax;
}
/**
* 预扣个税
* @return string
*/
public function getPersonalTax()
{
return $this->personal_tax;
}
/**
* 预扣增值税
* @var string $value_added_tax
*/
public function setValueAddedTax($value_added_tax)
{
$this->value_added_tax = $value_added_tax;
}
/**
* 预扣增值税
* @return string
*/
public function getValueAddedTax()
{
return $this->value_added_tax;
}
/**
* 预扣附加税费
* @var string $additional_tax
*/
public function setAdditionalTax($additional_tax)
{
$this->additional_tax = $additional_tax;
}
/**
* 预扣附加税费
* @return string
*/
public function getAdditionalTax()
{
return $this->additional_tax;
}
/**
* 实缴个税
* @var string $received_personal_tax
*/
public function setReceivedPersonalTax($received_personal_tax)
{
$this->received_personal_tax = $received_personal_tax;
}
/**
* 实缴个税
* @return string
*/
public function getReceivedPersonalTax()
{
return $this->received_personal_tax;
}
/**
* 实缴增值税
* @var string $received_value_added_tax
*/
public function setReceivedValueAddedTax($received_value_added_tax)
{
$this->received_value_added_tax = $received_value_added_tax;
}
/**
* 实缴增值税
* @return string
*/
public function getReceivedValueAddedTax()
{
return $this->received_value_added_tax;
}
/**
* 实缴附加税费
* @var string $received_additional_tax
*/
public function setReceivedAdditionalTax($received_additional_tax)
{
$this->received_additional_tax = $received_additional_tax;
}
/**
* 实缴附加税费
* @return string
*/
public function getReceivedAdditionalTax()
{
return $this->received_additional_tax;
}
/**
* 用户预扣个税
* @var string $user_personal_tax
*/
public function setUserPersonalTax($user_personal_tax)
{
$this->user_personal_tax = $user_personal_tax;
}
/**
* 用户预扣个税
* @return string
*/
public function getUserPersonalTax()
{
return $this->user_personal_tax;
}
/**
* 平台企业预扣个税
* @var string $dealer_personal_tax
*/
public function setDealerPersonalTax($dealer_personal_tax)
{
$this->dealer_personal_tax = $dealer_personal_tax;
}
/**
* 平台企业预扣个税
* @return string
*/
public function getDealerPersonalTax()
{
return $this->dealer_personal_tax;
}
/**
* 用户预扣增值税
* @var string $user_value_added_tax
*/
public function setUserValueAddedTax($user_value_added_tax)
{
$this->user_value_added_tax = $user_value_added_tax;
}
/**
* 用户预扣增值税
* @return string
*/
public function getUserValueAddedTax()
{
return $this->user_value_added_tax;
}
/**
* 平台企业预扣增值税
* @var string $dealer_value_added_tax
*/
public function setDealerValueAddedTax($dealer_value_added_tax)
{
$this->dealer_value_added_tax = $dealer_value_added_tax;
}
/**
* 平台企业预扣增值税
* @return string
*/
public function getDealerValueAddedTax()
{
return $this->dealer_value_added_tax;
}
/**
* 用户预扣附加税费
* @var string $user_additional_tax
*/
public function setUserAdditionalTax($user_additional_tax)
{
$this->user_additional_tax = $user_additional_tax;
}
/**
* 用户预扣附加税费
* @return string
*/
public function getUserAdditionalTax()
{
return $this->user_additional_tax;
}
/**
* 平台企业预扣附加税费
* @var string $dealer_additional_tax
*/
public function setDealerAdditionalTax($dealer_additional_tax)
{
$this->dealer_additional_tax = $dealer_additional_tax;
}
/**
* 平台企业预扣附加税费
* @return string
*/
public function getDealerAdditionalTax()
{
return $this->dealer_additional_tax;
}
/**
* 用户实缴个税
* @var string $user_received_personal_tax
*/
public function setUserReceivedPersonalTax($user_received_personal_tax)
{
$this->user_received_personal_tax = $user_received_personal_tax;
}
/**
* 用户实缴个税
* @return string
*/
public function getUserReceivedPersonalTax()
{
return $this->user_received_personal_tax;
}
/**
* 平台企业实缴个税
* @var string $dealer_received_personal_tax
*/
public function setDealerReceivedPersonalTax($dealer_received_personal_tax)
{
$this->dealer_received_personal_tax = $dealer_received_personal_tax;
}
/**
* 平台企业实缴个税
* @return string
*/
public function getDealerReceivedPersonalTax()
{
return $this->dealer_received_personal_tax;
}
/**
* 用户实缴增值税
* @var string $user_received_value_added_tax
*/
public function setUserReceivedValueAddedTax($user_received_value_added_tax)
{
$this->user_received_value_added_tax = $user_received_value_added_tax;
}
/**
* 用户实缴增值税
* @return string
*/
public function getUserReceivedValueAddedTax()
{
return $this->user_received_value_added_tax;
}
/**
* 平台企业实缴增值税
* @var string $dealer_received_value_added_tax
*/
public function setDealerReceivedValueAddedTax($dealer_received_value_added_tax)
{
$this->dealer_received_value_added_tax = $dealer_received_value_added_tax;
}
/**
* 平台企业实缴增值税
* @return string
*/
public function getDealerReceivedValueAddedTax()
{
return $this->dealer_received_value_added_tax;
}
/**
* 用户实缴附加税费
* @var string $user_received_additional_tax
*/
public function setUserReceivedAdditionalTax($user_received_additional_tax)
{
$this->user_received_additional_tax = $user_received_additional_tax;
}
/**
* 用户实缴附加税费
* @return string
*/
public function getUserReceivedAdditionalTax()
{
return $this->user_received_additional_tax;
}
/**
* 平台企业实缴附加税费
* @var string $dealer_received_additional_tax
*/
public function setDealerReceivedAdditionalTax($dealer_received_additional_tax)
{
$this->dealer_received_additional_tax = $dealer_received_additional_tax;
}
/**
* 平台企业实缴附加税费
* @return string
*/
public function getDealerReceivedAdditionalTax()
{
return $this->dealer_received_additional_tax;
}
} }

View File

@@ -51,10 +51,15 @@ class DealerOrderInfo extends BaseModel
*/ */
protected $broker_amount; protected $broker_amount;
/** /**
* 综合服务主体加成服务费 * 应收综合服务主体加成服务费金额
* @var string * @var string
*/ */
protected $broker_fee; protected $broker_fee;
/**
* 实收综合服务主体加成服务费金额
* @var string
*/
protected $received_broker_fee;
/** /**
* 支付路径流水号 * 支付路径流水号
* @var string * @var string
@@ -115,6 +120,21 @@ class DealerOrderInfo extends BaseModel
* @var string * @var string
*/ */
protected $finished_time; protected $finished_time;
/**
* 预扣税费总额
* @var string
*/
protected $tax_amount;
/**
* 实缴税费总额
* @var string
*/
protected $received_tax_amount;
/**
* 缴税明细
* @var OrderTaxDetail
*/
protected $tax_detail;
/** /**
* 综合服务主体 ID * 综合服务主体 ID
@@ -261,7 +281,7 @@ class DealerOrderInfo extends BaseModel
} }
/** /**
* 综合服务主体加成服务费 * 应收综合服务主体加成服务费金额
* @var string $broker_fee * @var string $broker_fee
*/ */
public function setBrokerFee($broker_fee) public function setBrokerFee($broker_fee)
@@ -270,7 +290,7 @@ class DealerOrderInfo extends BaseModel
} }
/** /**
* 综合服务主体加成服务费 * 应收综合服务主体加成服务费金额
* @return string * @return string
*/ */
public function getBrokerFee() public function getBrokerFee()
@@ -278,6 +298,24 @@ class DealerOrderInfo extends BaseModel
return $this->broker_fee; return $this->broker_fee;
} }
/**
* 实收综合服务主体加成服务费金额
* @var string $received_broker_fee
*/
public function setReceivedBrokerFee($received_broker_fee)
{
$this->received_broker_fee = $received_broker_fee;
}
/**
* 实收综合服务主体加成服务费金额
* @return string
*/
public function getReceivedBrokerFee()
{
return $this->received_broker_fee;
}
/** /**
* 支付路径流水号 * 支付路径流水号
* @var string $bill * @var string $bill
@@ -493,4 +531,58 @@ class DealerOrderInfo extends BaseModel
{ {
return $this->finished_time; return $this->finished_time;
} }
/**
* 预扣税费总额
* @var string $tax_amount
*/
public function setTaxAmount($tax_amount)
{
$this->tax_amount = $tax_amount;
}
/**
* 预扣税费总额
* @return string
*/
public function getTaxAmount()
{
return $this->tax_amount;
}
/**
* 实缴税费总额
* @var string $received_tax_amount
*/
public function setReceivedTaxAmount($received_tax_amount)
{
$this->received_tax_amount = $received_tax_amount;
}
/**
* 实缴税费总额
* @return string
*/
public function getReceivedTaxAmount()
{
return $this->received_tax_amount;
}
/**
* 缴税明细
* @var OrderTaxDetail $tax_detail
*/
public function setTaxDetail($tax_detail)
{
$this->tax_detail = $tax_detail;
}
/**
* 缴税明细
* @return OrderTaxDetail
*/
public function getTaxDetail()
{
return $this->tax_detail;
}
} }

View File

@@ -56,10 +56,15 @@ class DealerOrderInfoV2 extends BaseModel
*/ */
protected $broker_amount; protected $broker_amount;
/** /**
* 综合服务主体加成服务费 * 应收综合服务主体加成服务费金额
* @var string * @var string
*/ */
protected $broker_fee; protected $broker_fee;
/**
* 实收综合服务主体加成服务费金额
* @var string
*/
protected $received_broker_fee;
/** /**
* 支付路径流水号 * 支付路径流水号
* @var string * @var string
@@ -130,6 +135,21 @@ class DealerOrderInfoV2 extends BaseModel
* @var string * @var string
*/ */
protected $pay_ref; protected $pay_ref;
/**
* 预扣税费总额
* @var string
*/
protected $tax_amount;
/**
* 实缴税费总额
* @var string
*/
protected $received_tax_amount;
/**
* 缴税明细
* @var OrderTaxDetail
*/
protected $tax_detail;
/** /**
* 综合服务主体 ID * 综合服务主体 ID
@@ -294,7 +314,7 @@ class DealerOrderInfoV2 extends BaseModel
} }
/** /**
* 综合服务主体加成服务费 * 应收综合服务主体加成服务费金额
* @var string $broker_fee * @var string $broker_fee
*/ */
public function setBrokerFee($broker_fee) public function setBrokerFee($broker_fee)
@@ -303,7 +323,7 @@ class DealerOrderInfoV2 extends BaseModel
} }
/** /**
* 综合服务主体加成服务费 * 应收综合服务主体加成服务费金额
* @return string * @return string
*/ */
public function getBrokerFee() public function getBrokerFee()
@@ -311,6 +331,24 @@ class DealerOrderInfoV2 extends BaseModel
return $this->broker_fee; return $this->broker_fee;
} }
/**
* 实收综合服务主体加成服务费金额
* @var string $received_broker_fee
*/
public function setReceivedBrokerFee($received_broker_fee)
{
$this->received_broker_fee = $received_broker_fee;
}
/**
* 实收综合服务主体加成服务费金额
* @return string
*/
public function getReceivedBrokerFee()
{
return $this->received_broker_fee;
}
/** /**
* 支付路径流水号 * 支付路径流水号
* @var string $bill * @var string $bill
@@ -562,4 +600,58 @@ class DealerOrderInfoV2 extends BaseModel
{ {
return $this->pay_ref; return $this->pay_ref;
} }
/**
* 预扣税费总额
* @var string $tax_amount
*/
public function setTaxAmount($tax_amount)
{
$this->tax_amount = $tax_amount;
}
/**
* 预扣税费总额
* @return string
*/
public function getTaxAmount()
{
return $this->tax_amount;
}
/**
* 实缴税费总额
* @var string $received_tax_amount
*/
public function setReceivedTaxAmount($received_tax_amount)
{
$this->received_tax_amount = $received_tax_amount;
}
/**
* 实缴税费总额
* @return string
*/
public function getReceivedTaxAmount()
{
return $this->received_tax_amount;
}
/**
* 缴税明细
* @var OrderTaxDetail $tax_detail
*/
public function setTaxDetail($tax_detail)
{
$this->tax_detail = $tax_detail;
}
/**
* 缴税明细
* @return OrderTaxDetail
*/
public function getTaxDetail()
{
return $this->tax_detail;
}
} }

View File

@@ -21,25 +21,145 @@ class MonthlyOrderSummary extends BaseModel
*/ */
protected $pay; protected $pay;
/** /**
* 加成服务费金额 * 应收综合服务主体加成服务费金额
* @var string * @var string
*/ */
protected $broker_fee; protected $broker_fee;
/** /**
* 加成服务费实收金额 * 应收余额账户支出加成服务费金额
* @var string * @var string
*/ */
protected $broker_real_fee; protected $broker_real_fee;
/** /**
* 已抵扣加成服务费金额 * 应收加成服务费抵扣金额
* @var string * @var string
*/ */
protected $broker_rebate_fee; protected $broker_rebate_fee;
/** /**
* 用户加成服务费金额 * 应收用户加成服务费金额
* @var string * @var string
*/ */
protected $user_fee; protected $user_fee;
/**
* 实收综合服务主体加成服务费金额
* @var string
*/
protected $received_broker_fee;
/**
* 实收余额账户支出加成服务费金额
* @var string
*/
protected $received_broker_real_fee;
/**
* 实收加成服务费抵扣金额
* @var string
*/
protected $received_broker_deduct_fee;
/**
* 实收用户加成服务费金额
* @var string
*/
protected $received_user_fee;
/**
* 预扣税费总额
* @var string
*/
protected $tax;
/**
* 实缴税费总额
* @var string
*/
protected $received_tax_amount;
/**
* 预扣个税
* @var string
*/
protected $personal_tax;
/**
* 预扣增值税
* @var string
*/
protected $value_added_tax;
/**
* 预扣附加税费
* @var string
*/
protected $additional_tax;
/**
* 实缴个税
* @var string
*/
protected $received_personal_tax;
/**
* 实缴增值税
* @var string
*/
protected $received_value_added_tax;
/**
* 实缴附加税费
* @var string
*/
protected $received_additional_tax;
/**
* 用户预扣个税
* @var string
*/
protected $user_personal_tax;
/**
* 平台企业预扣个税
* @var string
*/
protected $dealer_personal_tax;
/**
* 用户预扣增值税
* @var string
*/
protected $user_value_added_tax;
/**
* 平台企业预扣增值税
* @var string
*/
protected $dealer_value_added_tax;
/**
* 用户预扣附加税费
* @var string
*/
protected $user_additional_tax;
/**
* 平台企业预扣附加税费
* @var string
*/
protected $dealer_additional_tax;
/**
* 用户实缴个税
* @var string
*/
protected $user_received_personal_tax;
/**
* 平台企业实缴个税
* @var string
*/
protected $dealer_received_personal_tax;
/**
* 用户实缴增值税
* @var string
*/
protected $user_received_value_added_tax;
/**
* 平台企业实缴增值税
* @var string
*/
protected $dealer_received_value_added_tax;
/**
* 用户实缴附加税费
* @var string
*/
protected $user_received_additional_tax;
/**
* 平台企业实缴附加税费
* @var string
*/
protected $dealer_received_additional_tax;
/** /**
* 订单数量 * 订单数量
@@ -78,7 +198,7 @@ class MonthlyOrderSummary extends BaseModel
} }
/** /**
* 加成服务费金额 * 应收综合服务主体加成服务费金额
* @var string $broker_fee * @var string $broker_fee
*/ */
public function setBrokerFee($broker_fee) public function setBrokerFee($broker_fee)
@@ -87,7 +207,7 @@ class MonthlyOrderSummary extends BaseModel
} }
/** /**
* 加成服务费金额 * 应收综合服务主体加成服务费金额
* @return string * @return string
*/ */
public function getBrokerFee() public function getBrokerFee()
@@ -96,7 +216,7 @@ class MonthlyOrderSummary extends BaseModel
} }
/** /**
* 加成服务费实收金额 * 应收余额账户支出加成服务费金额
* @var string $broker_real_fee * @var string $broker_real_fee
*/ */
public function setBrokerRealFee($broker_real_fee) public function setBrokerRealFee($broker_real_fee)
@@ -105,7 +225,7 @@ class MonthlyOrderSummary extends BaseModel
} }
/** /**
* 加成服务费实收金额 * 应收余额账户支出加成服务费金额
* @return string * @return string
*/ */
public function getBrokerRealFee() public function getBrokerRealFee()
@@ -114,7 +234,7 @@ class MonthlyOrderSummary extends BaseModel
} }
/** /**
* 已抵扣加成服务费金额 * 应收加成服务费抵扣金额
* @var string $broker_rebate_fee * @var string $broker_rebate_fee
*/ */
public function setBrokerRebateFee($broker_rebate_fee) public function setBrokerRebateFee($broker_rebate_fee)
@@ -123,7 +243,7 @@ class MonthlyOrderSummary extends BaseModel
} }
/** /**
* 已抵扣加成服务费金额 * 应收加成服务费抵扣金额
* @return string * @return string
*/ */
public function getBrokerRebateFee() public function getBrokerRebateFee()
@@ -132,7 +252,7 @@ class MonthlyOrderSummary extends BaseModel
} }
/** /**
* 用户加成服务费金额 * 应收用户加成服务费金额
* @var string $user_fee * @var string $user_fee
*/ */
public function setUserFee($user_fee) public function setUserFee($user_fee)
@@ -141,11 +261,443 @@ class MonthlyOrderSummary extends BaseModel
} }
/** /**
* 用户加成服务费金额 * 应收用户加成服务费金额
* @return string * @return string
*/ */
public function getUserFee() public function getUserFee()
{ {
return $this->user_fee; return $this->user_fee;
} }
/**
* 实收综合服务主体加成服务费金额
* @var string $received_broker_fee
*/
public function setReceivedBrokerFee($received_broker_fee)
{
$this->received_broker_fee = $received_broker_fee;
}
/**
* 实收综合服务主体加成服务费金额
* @return string
*/
public function getReceivedBrokerFee()
{
return $this->received_broker_fee;
}
/**
* 实收余额账户支出加成服务费金额
* @var string $received_broker_real_fee
*/
public function setReceivedBrokerRealFee($received_broker_real_fee)
{
$this->received_broker_real_fee = $received_broker_real_fee;
}
/**
* 实收余额账户支出加成服务费金额
* @return string
*/
public function getReceivedBrokerRealFee()
{
return $this->received_broker_real_fee;
}
/**
* 实收加成服务费抵扣金额
* @var string $received_broker_deduct_fee
*/
public function setReceivedBrokerDeductFee($received_broker_deduct_fee)
{
$this->received_broker_deduct_fee = $received_broker_deduct_fee;
}
/**
* 实收加成服务费抵扣金额
* @return string
*/
public function getReceivedBrokerDeductFee()
{
return $this->received_broker_deduct_fee;
}
/**
* 实收用户加成服务费金额
* @var string $received_user_fee
*/
public function setReceivedUserFee($received_user_fee)
{
$this->received_user_fee = $received_user_fee;
}
/**
* 实收用户加成服务费金额
* @return string
*/
public function getReceivedUserFee()
{
return $this->received_user_fee;
}
/**
* 预扣税费总额
* @var string $tax
*/
public function setTax($tax)
{
$this->tax = $tax;
}
/**
* 预扣税费总额
* @return string
*/
public function getTax()
{
return $this->tax;
}
/**
* 实缴税费总额
* @var string $received_tax_amount
*/
public function setReceivedTaxAmount($received_tax_amount)
{
$this->received_tax_amount = $received_tax_amount;
}
/**
* 实缴税费总额
* @return string
*/
public function getReceivedTaxAmount()
{
return $this->received_tax_amount;
}
/**
* 预扣个税
* @var string $personal_tax
*/
public function setPersonalTax($personal_tax)
{
$this->personal_tax = $personal_tax;
}
/**
* 预扣个税
* @return string
*/
public function getPersonalTax()
{
return $this->personal_tax;
}
/**
* 预扣增值税
* @var string $value_added_tax
*/
public function setValueAddedTax($value_added_tax)
{
$this->value_added_tax = $value_added_tax;
}
/**
* 预扣增值税
* @return string
*/
public function getValueAddedTax()
{
return $this->value_added_tax;
}
/**
* 预扣附加税费
* @var string $additional_tax
*/
public function setAdditionalTax($additional_tax)
{
$this->additional_tax = $additional_tax;
}
/**
* 预扣附加税费
* @return string
*/
public function getAdditionalTax()
{
return $this->additional_tax;
}
/**
* 实缴个税
* @var string $received_personal_tax
*/
public function setReceivedPersonalTax($received_personal_tax)
{
$this->received_personal_tax = $received_personal_tax;
}
/**
* 实缴个税
* @return string
*/
public function getReceivedPersonalTax()
{
return $this->received_personal_tax;
}
/**
* 实缴增值税
* @var string $received_value_added_tax
*/
public function setReceivedValueAddedTax($received_value_added_tax)
{
$this->received_value_added_tax = $received_value_added_tax;
}
/**
* 实缴增值税
* @return string
*/
public function getReceivedValueAddedTax()
{
return $this->received_value_added_tax;
}
/**
* 实缴附加税费
* @var string $received_additional_tax
*/
public function setReceivedAdditionalTax($received_additional_tax)
{
$this->received_additional_tax = $received_additional_tax;
}
/**
* 实缴附加税费
* @return string
*/
public function getReceivedAdditionalTax()
{
return $this->received_additional_tax;
}
/**
* 用户预扣个税
* @var string $user_personal_tax
*/
public function setUserPersonalTax($user_personal_tax)
{
$this->user_personal_tax = $user_personal_tax;
}
/**
* 用户预扣个税
* @return string
*/
public function getUserPersonalTax()
{
return $this->user_personal_tax;
}
/**
* 平台企业预扣个税
* @var string $dealer_personal_tax
*/
public function setDealerPersonalTax($dealer_personal_tax)
{
$this->dealer_personal_tax = $dealer_personal_tax;
}
/**
* 平台企业预扣个税
* @return string
*/
public function getDealerPersonalTax()
{
return $this->dealer_personal_tax;
}
/**
* 用户预扣增值税
* @var string $user_value_added_tax
*/
public function setUserValueAddedTax($user_value_added_tax)
{
$this->user_value_added_tax = $user_value_added_tax;
}
/**
* 用户预扣增值税
* @return string
*/
public function getUserValueAddedTax()
{
return $this->user_value_added_tax;
}
/**
* 平台企业预扣增值税
* @var string $dealer_value_added_tax
*/
public function setDealerValueAddedTax($dealer_value_added_tax)
{
$this->dealer_value_added_tax = $dealer_value_added_tax;
}
/**
* 平台企业预扣增值税
* @return string
*/
public function getDealerValueAddedTax()
{
return $this->dealer_value_added_tax;
}
/**
* 用户预扣附加税费
* @var string $user_additional_tax
*/
public function setUserAdditionalTax($user_additional_tax)
{
$this->user_additional_tax = $user_additional_tax;
}
/**
* 用户预扣附加税费
* @return string
*/
public function getUserAdditionalTax()
{
return $this->user_additional_tax;
}
/**
* 平台企业预扣附加税费
* @var string $dealer_additional_tax
*/
public function setDealerAdditionalTax($dealer_additional_tax)
{
$this->dealer_additional_tax = $dealer_additional_tax;
}
/**
* 平台企业预扣附加税费
* @return string
*/
public function getDealerAdditionalTax()
{
return $this->dealer_additional_tax;
}
/**
* 用户实缴个税
* @var string $user_received_personal_tax
*/
public function setUserReceivedPersonalTax($user_received_personal_tax)
{
$this->user_received_personal_tax = $user_received_personal_tax;
}
/**
* 用户实缴个税
* @return string
*/
public function getUserReceivedPersonalTax()
{
return $this->user_received_personal_tax;
}
/**
* 平台企业实缴个税
* @var string $dealer_received_personal_tax
*/
public function setDealerReceivedPersonalTax($dealer_received_personal_tax)
{
$this->dealer_received_personal_tax = $dealer_received_personal_tax;
}
/**
* 平台企业实缴个税
* @return string
*/
public function getDealerReceivedPersonalTax()
{
return $this->dealer_received_personal_tax;
}
/**
* 用户实缴增值税
* @var string $user_received_value_added_tax
*/
public function setUserReceivedValueAddedTax($user_received_value_added_tax)
{
$this->user_received_value_added_tax = $user_received_value_added_tax;
}
/**
* 用户实缴增值税
* @return string
*/
public function getUserReceivedValueAddedTax()
{
return $this->user_received_value_added_tax;
}
/**
* 平台企业实缴增值税
* @var string $dealer_received_value_added_tax
*/
public function setDealerReceivedValueAddedTax($dealer_received_value_added_tax)
{
$this->dealer_received_value_added_tax = $dealer_received_value_added_tax;
}
/**
* 平台企业实缴增值税
* @return string
*/
public function getDealerReceivedValueAddedTax()
{
return $this->dealer_received_value_added_tax;
}
/**
* 用户实缴附加税费
* @var string $user_received_additional_tax
*/
public function setUserReceivedAdditionalTax($user_received_additional_tax)
{
$this->user_received_additional_tax = $user_received_additional_tax;
}
/**
* 用户实缴附加税费
* @return string
*/
public function getUserReceivedAdditionalTax()
{
return $this->user_received_additional_tax;
}
/**
* 平台企业实缴附加税费
* @var string $dealer_received_additional_tax
*/
public function setDealerReceivedAdditionalTax($dealer_received_additional_tax)
{
$this->dealer_received_additional_tax = $dealer_received_additional_tax;
}
/**
* 平台企业实缴附加税费
* @return string
*/
public function getDealerReceivedAdditionalTax()
{
return $this->dealer_received_additional_tax;
}
} }

View File

@@ -61,12 +61,12 @@ class StatementDetail extends BaseModel
*/ */
protected $reex_amount; protected $reex_amount;
/** /**
* 加成服务费金额 * 实收综合服务主体加成服务费金额
* @var string * @var string
*/ */
protected $fee_amount; protected $fee_amount;
/** /**
* 加成服务费抵扣金额 * 实收加成服务费抵扣金额
* @var string * @var string
*/ */
protected $deduct_rebate_fee_amount; protected $deduct_rebate_fee_amount;
@@ -95,6 +95,11 @@ class StatementDetail extends BaseModel
* @var string * @var string
*/ */
protected $project_name; protected $project_name;
/**
* 实纳税费金额
* @var string
*/
protected $received_tax_amount;
/** /**
* 账单 ID * 账单 ID
@@ -277,7 +282,7 @@ class StatementDetail extends BaseModel
} }
/** /**
* 加成服务费金额 * 实收综合服务主体加成服务费金额
* @var string $fee_amount * @var string $fee_amount
*/ */
public function setFeeAmount($fee_amount) public function setFeeAmount($fee_amount)
@@ -286,7 +291,7 @@ class StatementDetail extends BaseModel
} }
/** /**
* 加成服务费金额 * 实收综合服务主体加成服务费金额
* @return string * @return string
*/ */
public function getFeeAmount() public function getFeeAmount()
@@ -295,7 +300,7 @@ class StatementDetail extends BaseModel
} }
/** /**
* 加成服务费抵扣金额 * 实收加成服务费抵扣金额
* @var string $deduct_rebate_fee_amount * @var string $deduct_rebate_fee_amount
*/ */
public function setDeductRebateFeeAmount($deduct_rebate_fee_amount) public function setDeductRebateFeeAmount($deduct_rebate_fee_amount)
@@ -304,7 +309,7 @@ class StatementDetail extends BaseModel
} }
/** /**
* 加成服务费抵扣金额 * 实收加成服务费抵扣金额
* @return string * @return string
*/ */
public function getDeductRebateFeeAmount() public function getDeductRebateFeeAmount()
@@ -401,4 +406,22 @@ class StatementDetail extends BaseModel
{ {
return $this->project_name; return $this->project_name;
} }
/**
* 实纳税费金额
* @var string $received_tax_amount
*/
public function setReceivedTaxAmount($received_tax_amount)
{
$this->received_tax_amount = $received_tax_amount;
}
/**
* 实纳税费金额
* @return string
*/
public function getReceivedTaxAmount()
{
return $this->received_tax_amount;
}
} }

View File

@@ -35,6 +35,11 @@ class H5UserPresignRequest extends BaseRequest
* @var int32 * @var int32
*/ */
public $certificate_type; public $certificate_type;
/**
* 是否收集手机号码 0不收集默认 1收集手机号码
* @var int32
*/
public $collect_phone_no;
public function __construct($params = array()) public function __construct($params = array())
{ {

View File

@@ -41,7 +41,7 @@ class BatchOrderInfo extends BaseModel
*/ */
protected $phone_no; protected $phone_no;
/** /**
* 项目标识 * 业务线标识
* @var string * @var string
*/ */
protected $project_id; protected $project_id;
@@ -60,6 +60,21 @@ class BatchOrderInfo extends BaseModel
* @var string * @var string
*/ */
protected $notify_url; protected $notify_url;
/**
* 互联网平台名称
* @var string
*/
protected $dealer_platform_name;
/**
* 用户名称/昵称
* @var string
*/
protected $dealer_user_nickname;
/**
* 用户唯一标识码
* @var string
*/
protected $dealer_user_id;
/** /**
* 平台企业订单号 * 平台企业订单号
@@ -170,7 +185,7 @@ class BatchOrderInfo extends BaseModel
} }
/** /**
* 项目标识 * 业务线标识
* @var string $project_id * @var string $project_id
*/ */
public function setProjectId($project_id) public function setProjectId($project_id)
@@ -179,7 +194,7 @@ class BatchOrderInfo extends BaseModel
} }
/** /**
* 项目标识 * 业务线标识
* @return string * @return string
*/ */
public function getProjectId() public function getProjectId()
@@ -240,4 +255,58 @@ class BatchOrderInfo extends BaseModel
{ {
return $this->notify_url; return $this->notify_url;
} }
/**
* 互联网平台名称
* @var string $dealer_platform_name
*/
public function setDealerPlatformName($dealer_platform_name)
{
$this->dealer_platform_name = $dealer_platform_name;
}
/**
* 互联网平台名称
* @return string
*/
public function getDealerPlatformName()
{
return $this->dealer_platform_name;
}
/**
* 用户名称/昵称
* @var string $dealer_user_nickname
*/
public function setDealerUserNickname($dealer_user_nickname)
{
$this->dealer_user_nickname = $dealer_user_nickname;
}
/**
* 用户名称/昵称
* @return string
*/
public function getDealerUserNickname()
{
return $this->dealer_user_nickname;
}
/**
* 用户唯一标识码
* @var string $dealer_user_id
*/
public function setDealerUserId($dealer_user_id)
{
$this->dealer_user_id = $dealer_user_id;
}
/**
* 用户唯一标识码
* @return string
*/
public function getDealerUserId()
{
return $this->dealer_user_id;
}
} }

View File

@@ -61,7 +61,7 @@ class CreateAlipayOrderRequest extends BaseRequest
*/ */
public $notify_url; public $notify_url;
/** /**
* 项目标识 * 业务线标识
* @var string * @var string
*/ */
public $project_id; public $project_id;
@@ -70,6 +70,21 @@ class CreateAlipayOrderRequest extends BaseRequest
* @var string * @var string
*/ */
public $check_name; public $check_name;
/**
* 互联网平台名称
* @var string
*/
public $dealer_platform_name;
/**
* 用户名称/昵称
* @var string
*/
public $dealer_user_nickname;
/**
* 用户唯一标识码
* @var string
*/
public $dealer_user_id;
public function __construct($params = array()) public function __construct($params = array())
{ {

View File

@@ -61,10 +61,25 @@ class CreateBankpayOrderRequest extends BaseRequest
*/ */
public $notify_url; public $notify_url;
/** /**
* 项目标识 * 业务线标识
* @var string * @var string
*/ */
public $project_id; public $project_id;
/**
* 互联网平台名称
* @var string
*/
public $dealer_platform_name;
/**
* 用户名称/昵称
* @var string
*/
public $dealer_user_nickname;
/**
* 用户唯一标识码
* @var string
*/
public $dealer_user_id;
public function __construct($params = array()) public function __construct($params = array())
{ {

View File

@@ -71,7 +71,7 @@ class CreateWxpayOrderRequest extends BaseRequest
*/ */
public $wxpay_mode; public $wxpay_mode;
/** /**
* 项目标识 * 业务线标识
* @var string * @var string
*/ */
public $project_id; public $project_id;
@@ -80,6 +80,21 @@ class CreateWxpayOrderRequest extends BaseRequest
* @var string * @var string
*/ */
public $notes; public $notes;
/**
* 互联网平台名称
* @var string
*/
public $dealer_platform_name;
/**
* 用户名称/昵称
* @var string
*/
public $dealer_user_nickname;
/**
* 用户唯一标识码
* @var string
*/
public $dealer_user_id;
public function __construct($params = array()) public function __construct($params = array())
{ {

View File

@@ -67,7 +67,7 @@ class GetOrderResponseData extends BaseModel implements ResponseDataInterface
*/ */
protected $status_message; protected $status_message;
/** /**
* 订单详状态码描述 * 订单详状态码描述
* @var string * @var string
*/ */
protected $status_detail_message; protected $status_detail_message;
@@ -107,37 +107,57 @@ class GetOrderResponseData extends BaseModel implements ResponseDataInterface
*/ */
protected $finished_time; protected $finished_time;
/** /**
* 综合服务主体加成服务费 * 应收综合服务主体加成服务费金额
* @var string * @var string
*/ */
protected $broker_fee; protected $broker_fee;
/** /**
* 余额账户支出加成服务费 * 应收余额账户支出加成服务费金额
* @var string * @var string
*/ */
protected $broker_real_fee; protected $broker_real_fee;
/** /**
* 抵扣账户支出加成服务费 * 应收加成服务费抵扣金额
* @var string * @var string
*/ */
protected $broker_deduct_fee; protected $broker_deduct_fee;
/**
* 应收用户加成服务费金额
* @var string
*/
protected $user_fee;
/**
* 实收综合服务主体加成服务费金额
* @var string
*/
protected $received_broker_fee;
/**
* 实收余额账户支出加成服务费金额
* @var string
*/
protected $received_broker_real_fee;
/**
* 实收加成服务费抵扣金额
* @var string
*/
protected $received_broker_deduct_fee;
/**
* 实收用户加成服务费金额
* @var string
*/
protected $received_user_fee;
/** /**
* 订单备注 * 订单备注
* @var string * @var string
*/ */
protected $pay_remark; protected $pay_remark;
/**
* 用户加成服务费
* @var string
*/
protected $user_fee;
/** /**
* 银行名称 * 银行名称
* @var string * @var string
*/ */
protected $bank_name; protected $bank_name;
/** /**
* 项目标识 * 业务线标识
* @var string * @var string
*/ */
protected $project_id; protected $project_id;
@@ -166,6 +186,46 @@ class GetOrderResponseData extends BaseModel implements ResponseDataInterface
* @var string * @var string
*/ */
protected $sys_fee; protected $sys_fee;
/**
* 用户实收金额
* @var string
*/
protected $user_real_amount;
/**
* 缴税明细
* @var TaxDetail
*/
protected $tax_detail;
/**
* 实缴税费总额
* @var string
*/
protected $received_tax_amount;
/**
* 互联网平台名称
* @var string
*/
protected $dealer_platform_name;
/**
* 用户名称/昵称
* @var string
*/
protected $dealer_user_nickname;
/**
* 用户唯一标识码
* @var string
*/
protected $dealer_user_id;
/**
* 用户实收金额(追缴前)
* @var string
*/
protected $user_real_excluding_vat_amount;
/**
* 已追缴增附税(本笔订单)
* @var string
*/
protected $user_recover_tax_amount;
/** /**
* 平台企业订单号 * 平台企业订单号
@@ -366,7 +426,7 @@ class GetOrderResponseData extends BaseModel implements ResponseDataInterface
} }
/** /**
* 订单详状态码描述 * 订单详状态码描述
* @var string $status_detail_message * @var string $status_detail_message
*/ */
public function setStatusDetailMessage($status_detail_message) public function setStatusDetailMessage($status_detail_message)
@@ -375,7 +435,7 @@ class GetOrderResponseData extends BaseModel implements ResponseDataInterface
} }
/** /**
* 订单详状态码描述 * 订单详状态码描述
* @return string * @return string
*/ */
public function getStatusDetailMessage() public function getStatusDetailMessage()
@@ -510,7 +570,7 @@ class GetOrderResponseData extends BaseModel implements ResponseDataInterface
} }
/** /**
* 综合服务主体加成服务费 * 应收综合服务主体加成服务费金额
* @var string $broker_fee * @var string $broker_fee
*/ */
public function setBrokerFee($broker_fee) public function setBrokerFee($broker_fee)
@@ -519,7 +579,7 @@ class GetOrderResponseData extends BaseModel implements ResponseDataInterface
} }
/** /**
* 综合服务主体加成服务费 * 应收综合服务主体加成服务费金额
* @return string * @return string
*/ */
public function getBrokerFee() public function getBrokerFee()
@@ -528,7 +588,7 @@ class GetOrderResponseData extends BaseModel implements ResponseDataInterface
} }
/** /**
* 余额账户支出加成服务费 * 应收余额账户支出加成服务费金额
* @var string $broker_real_fee * @var string $broker_real_fee
*/ */
public function setBrokerRealFee($broker_real_fee) public function setBrokerRealFee($broker_real_fee)
@@ -537,7 +597,7 @@ class GetOrderResponseData extends BaseModel implements ResponseDataInterface
} }
/** /**
* 余额账户支出加成服务费 * 应收余额账户支出加成服务费金额
* @return string * @return string
*/ */
public function getBrokerRealFee() public function getBrokerRealFee()
@@ -546,7 +606,7 @@ class GetOrderResponseData extends BaseModel implements ResponseDataInterface
} }
/** /**
* 抵扣账户支出加成服务费 * 应收加成服务费抵扣金额
* @var string $broker_deduct_fee * @var string $broker_deduct_fee
*/ */
public function setBrokerDeductFee($broker_deduct_fee) public function setBrokerDeductFee($broker_deduct_fee)
@@ -555,7 +615,7 @@ class GetOrderResponseData extends BaseModel implements ResponseDataInterface
} }
/** /**
* 抵扣账户支出加成服务费 * 应收加成服务费抵扣金额
* @return string * @return string
*/ */
public function getBrokerDeductFee() public function getBrokerDeductFee()
@@ -563,6 +623,96 @@ class GetOrderResponseData extends BaseModel implements ResponseDataInterface
return $this->broker_deduct_fee; return $this->broker_deduct_fee;
} }
/**
* 应收用户加成服务费金额
* @var string $user_fee
*/
public function setUserFee($user_fee)
{
$this->user_fee = $user_fee;
}
/**
* 应收用户加成服务费金额
* @return string
*/
public function getUserFee()
{
return $this->user_fee;
}
/**
* 实收综合服务主体加成服务费金额
* @var string $received_broker_fee
*/
public function setReceivedBrokerFee($received_broker_fee)
{
$this->received_broker_fee = $received_broker_fee;
}
/**
* 实收综合服务主体加成服务费金额
* @return string
*/
public function getReceivedBrokerFee()
{
return $this->received_broker_fee;
}
/**
* 实收余额账户支出加成服务费金额
* @var string $received_broker_real_fee
*/
public function setReceivedBrokerRealFee($received_broker_real_fee)
{
$this->received_broker_real_fee = $received_broker_real_fee;
}
/**
* 实收余额账户支出加成服务费金额
* @return string
*/
public function getReceivedBrokerRealFee()
{
return $this->received_broker_real_fee;
}
/**
* 实收加成服务费抵扣金额
* @var string $received_broker_deduct_fee
*/
public function setReceivedBrokerDeductFee($received_broker_deduct_fee)
{
$this->received_broker_deduct_fee = $received_broker_deduct_fee;
}
/**
* 实收加成服务费抵扣金额
* @return string
*/
public function getReceivedBrokerDeductFee()
{
return $this->received_broker_deduct_fee;
}
/**
* 实收用户加成服务费金额
* @var string $received_user_fee
*/
public function setReceivedUserFee($received_user_fee)
{
$this->received_user_fee = $received_user_fee;
}
/**
* 实收用户加成服务费金额
* @return string
*/
public function getReceivedUserFee()
{
return $this->received_user_fee;
}
/** /**
* 订单备注 * 订单备注
* @var string $pay_remark * @var string $pay_remark
@@ -581,24 +731,6 @@ class GetOrderResponseData extends BaseModel implements ResponseDataInterface
return $this->pay_remark; return $this->pay_remark;
} }
/**
* 用户加成服务费
* @var string $user_fee
*/
public function setUserFee($user_fee)
{
$this->user_fee = $user_fee;
}
/**
* 用户加成服务费
* @return string
*/
public function getUserFee()
{
return $this->user_fee;
}
/** /**
* 银行名称 * 银行名称
* @var string $bank_name * @var string $bank_name
@@ -618,7 +750,7 @@ class GetOrderResponseData extends BaseModel implements ResponseDataInterface
} }
/** /**
* 项目标识 * 业务线标识
* @var string $project_id * @var string $project_id
*/ */
public function setProjectId($project_id) public function setProjectId($project_id)
@@ -627,7 +759,7 @@ class GetOrderResponseData extends BaseModel implements ResponseDataInterface
} }
/** /**
* 项目标识 * 业务线标识
* @return string * @return string
*/ */
public function getProjectId() public function getProjectId()
@@ -724,4 +856,148 @@ class GetOrderResponseData extends BaseModel implements ResponseDataInterface
{ {
return $this->sys_fee; return $this->sys_fee;
} }
/**
* 用户实收金额
* @var string $user_real_amount
*/
public function setUserRealAmount($user_real_amount)
{
$this->user_real_amount = $user_real_amount;
}
/**
* 用户实收金额
* @return string
*/
public function getUserRealAmount()
{
return $this->user_real_amount;
}
/**
* 缴税明细
* @var TaxDetail $tax_detail
*/
public function setTaxDetail($tax_detail)
{
$this->tax_detail = $tax_detail;
}
/**
* 缴税明细
* @return TaxDetail
*/
public function getTaxDetail()
{
return $this->tax_detail;
}
/**
* 实缴税费总额
* @var string $received_tax_amount
*/
public function setReceivedTaxAmount($received_tax_amount)
{
$this->received_tax_amount = $received_tax_amount;
}
/**
* 实缴税费总额
* @return string
*/
public function getReceivedTaxAmount()
{
return $this->received_tax_amount;
}
/**
* 互联网平台名称
* @var string $dealer_platform_name
*/
public function setDealerPlatformName($dealer_platform_name)
{
$this->dealer_platform_name = $dealer_platform_name;
}
/**
* 互联网平台名称
* @return string
*/
public function getDealerPlatformName()
{
return $this->dealer_platform_name;
}
/**
* 用户名称/昵称
* @var string $dealer_user_nickname
*/
public function setDealerUserNickname($dealer_user_nickname)
{
$this->dealer_user_nickname = $dealer_user_nickname;
}
/**
* 用户名称/昵称
* @return string
*/
public function getDealerUserNickname()
{
return $this->dealer_user_nickname;
}
/**
* 用户唯一标识码
* @var string $dealer_user_id
*/
public function setDealerUserId($dealer_user_id)
{
$this->dealer_user_id = $dealer_user_id;
}
/**
* 用户唯一标识码
* @return string
*/
public function getDealerUserId()
{
return $this->dealer_user_id;
}
/**
* 用户实收金额(追缴前)
* @var string $user_real_excluding_vat_amount
*/
public function setUserRealExcludingVatAmount($user_real_excluding_vat_amount)
{
$this->user_real_excluding_vat_amount = $user_real_excluding_vat_amount;
}
/**
* 用户实收金额(追缴前)
* @return string
*/
public function getUserRealExcludingVatAmount()
{
return $this->user_real_excluding_vat_amount;
}
/**
* 已追缴增附税(本笔订单)
* @var string $user_recover_tax_amount
*/
public function setUserRecoverTaxAmount($user_recover_tax_amount)
{
$this->user_recover_tax_amount = $user_recover_tax_amount;
}
/**
* 已追缴增附税(本笔订单)
* @return string
*/
public function getUserRecoverTaxAmount()
{
return $this->user_recover_tax_amount;
}
} }

View File

@@ -106,30 +106,50 @@ class NotifyOrderData extends BaseModel
*/ */
protected $finished_time; protected $finished_time;
/** /**
* 综合服务主体加成服务费 * 应收综合服务主体加成服务费金额
* @var string * @var string
*/ */
protected $broker_fee; protected $broker_fee;
/** /**
* 余额账户支出加成服务费 * 应收余额账户支出加成服务费金额
* @var string * @var string
*/ */
protected $broker_real_fee; protected $broker_real_fee;
/** /**
* 抵扣账户支出加成服务费 * 应收加成服务费抵扣金额
* @var string * @var string
*/ */
protected $broker_deduct_fee; protected $broker_deduct_fee;
/**
* 应收用户加成服务费金额
* @var string
*/
protected $user_fee;
/**
* 实收综合服务主体加成服务费金额
* @var string
*/
protected $received_broker_fee;
/**
* 实收余额账户支出加成服务费金额
* @var string
*/
protected $received_broker_real_fee;
/**
* 实收加成服务费抵扣金额
* @var string
*/
protected $received_broker_deduct_fee;
/**
* 实收用户加成服务费金额
* @var string
*/
protected $received_user_fee;
/** /**
* 订单备注 * 订单备注
* @var string * @var string
*/ */
protected $pay_remark; protected $pay_remark;
/**
* 用户加成服务费
* @var string
*/
protected $user_fee;
/** /**
* 银行名称 * 银行名称
* @var string * @var string
@@ -145,6 +165,51 @@ class NotifyOrderData extends BaseModel
* @var string * @var string
*/ */
protected $user_id; protected $user_id;
/**
* 用户实收金额
* @var string
*/
protected $user_real_amount;
/**
* 缴税明细
* @var TaxDetail
*/
protected $tax_detail;
/**
* 互联网平台名称
* @var string
*/
protected $dealer_platform_name;
/**
* 用户名称/昵称
* @var string
*/
protected $dealer_user_nickname;
/**
* 用户唯一标识码
* @var string
*/
protected $dealer_user_id;
/**
* 预扣税费总额
* @var string
*/
protected $tax;
/**
* 实缴税费总额
* @var string
*/
protected $received_tax_amount;
/**
* 用户实收金额(追缴前)
* @var string
*/
protected $user_real_excluding_vat_amount;
/**
* 已追缴增附税(本笔订单)
* @var string
*/
protected $user_recover_tax_amount;
/** /**
* 平台企业订单号 * 平台企业订单号
@@ -489,7 +554,7 @@ class NotifyOrderData extends BaseModel
} }
/** /**
* 综合服务主体加成服务费 * 应收综合服务主体加成服务费金额
* @var string $broker_fee * @var string $broker_fee
*/ */
public function setBrokerFee($broker_fee) public function setBrokerFee($broker_fee)
@@ -498,7 +563,7 @@ class NotifyOrderData extends BaseModel
} }
/** /**
* 综合服务主体加成服务费 * 应收综合服务主体加成服务费金额
* @return string * @return string
*/ */
public function getBrokerFee() public function getBrokerFee()
@@ -507,7 +572,7 @@ class NotifyOrderData extends BaseModel
} }
/** /**
* 余额账户支出加成服务费 * 应收余额账户支出加成服务费金额
* @var string $broker_real_fee * @var string $broker_real_fee
*/ */
public function setBrokerRealFee($broker_real_fee) public function setBrokerRealFee($broker_real_fee)
@@ -516,7 +581,7 @@ class NotifyOrderData extends BaseModel
} }
/** /**
* 余额账户支出加成服务费 * 应收余额账户支出加成服务费金额
* @return string * @return string
*/ */
public function getBrokerRealFee() public function getBrokerRealFee()
@@ -525,7 +590,7 @@ class NotifyOrderData extends BaseModel
} }
/** /**
* 抵扣账户支出加成服务费 * 应收加成服务费抵扣金额
* @var string $broker_deduct_fee * @var string $broker_deduct_fee
*/ */
public function setBrokerDeductFee($broker_deduct_fee) public function setBrokerDeductFee($broker_deduct_fee)
@@ -534,7 +599,7 @@ class NotifyOrderData extends BaseModel
} }
/** /**
* 抵扣账户支出加成服务费 * 应收加成服务费抵扣金额
* @return string * @return string
*/ */
public function getBrokerDeductFee() public function getBrokerDeductFee()
@@ -542,6 +607,96 @@ class NotifyOrderData extends BaseModel
return $this->broker_deduct_fee; return $this->broker_deduct_fee;
} }
/**
* 应收用户加成服务费金额
* @var string $user_fee
*/
public function setUserFee($user_fee)
{
$this->user_fee = $user_fee;
}
/**
* 应收用户加成服务费金额
* @return string
*/
public function getUserFee()
{
return $this->user_fee;
}
/**
* 实收综合服务主体加成服务费金额
* @var string $received_broker_fee
*/
public function setReceivedBrokerFee($received_broker_fee)
{
$this->received_broker_fee = $received_broker_fee;
}
/**
* 实收综合服务主体加成服务费金额
* @return string
*/
public function getReceivedBrokerFee()
{
return $this->received_broker_fee;
}
/**
* 实收余额账户支出加成服务费金额
* @var string $received_broker_real_fee
*/
public function setReceivedBrokerRealFee($received_broker_real_fee)
{
$this->received_broker_real_fee = $received_broker_real_fee;
}
/**
* 实收余额账户支出加成服务费金额
* @return string
*/
public function getReceivedBrokerRealFee()
{
return $this->received_broker_real_fee;
}
/**
* 实收加成服务费抵扣金额
* @var string $received_broker_deduct_fee
*/
public function setReceivedBrokerDeductFee($received_broker_deduct_fee)
{
$this->received_broker_deduct_fee = $received_broker_deduct_fee;
}
/**
* 实收加成服务费抵扣金额
* @return string
*/
public function getReceivedBrokerDeductFee()
{
return $this->received_broker_deduct_fee;
}
/**
* 实收用户加成服务费金额
* @var string $received_user_fee
*/
public function setReceivedUserFee($received_user_fee)
{
$this->received_user_fee = $received_user_fee;
}
/**
* 实收用户加成服务费金额
* @return string
*/
public function getReceivedUserFee()
{
return $this->received_user_fee;
}
/** /**
* 订单备注 * 订单备注
* @var string $pay_remark * @var string $pay_remark
@@ -560,24 +715,6 @@ class NotifyOrderData extends BaseModel
return $this->pay_remark; return $this->pay_remark;
} }
/**
* 用户加成服务费
* @var string $user_fee
*/
public function setUserFee($user_fee)
{
$this->user_fee = $user_fee;
}
/**
* 用户加成服务费
* @return string
*/
public function getUserFee()
{
return $this->user_fee;
}
/** /**
* 银行名称 * 银行名称
* @var string $bank_name * @var string $bank_name
@@ -631,4 +768,166 @@ class NotifyOrderData extends BaseModel
{ {
return $this->user_id; return $this->user_id;
} }
/**
* 用户实收金额
* @var string $user_real_amount
*/
public function setUserRealAmount($user_real_amount)
{
$this->user_real_amount = $user_real_amount;
}
/**
* 用户实收金额
* @return string
*/
public function getUserRealAmount()
{
return $this->user_real_amount;
}
/**
* 缴税明细
* @var TaxDetail $tax_detail
*/
public function setTaxDetail($tax_detail)
{
$this->tax_detail = $tax_detail;
}
/**
* 缴税明细
* @return TaxDetail
*/
public function getTaxDetail()
{
return $this->tax_detail;
}
/**
* 互联网平台名称
* @var string $dealer_platform_name
*/
public function setDealerPlatformName($dealer_platform_name)
{
$this->dealer_platform_name = $dealer_platform_name;
}
/**
* 互联网平台名称
* @return string
*/
public function getDealerPlatformName()
{
return $this->dealer_platform_name;
}
/**
* 用户名称/昵称
* @var string $dealer_user_nickname
*/
public function setDealerUserNickname($dealer_user_nickname)
{
$this->dealer_user_nickname = $dealer_user_nickname;
}
/**
* 用户名称/昵称
* @return string
*/
public function getDealerUserNickname()
{
return $this->dealer_user_nickname;
}
/**
* 用户唯一标识码
* @var string $dealer_user_id
*/
public function setDealerUserId($dealer_user_id)
{
$this->dealer_user_id = $dealer_user_id;
}
/**
* 用户唯一标识码
* @return string
*/
public function getDealerUserId()
{
return $this->dealer_user_id;
}
/**
* 预扣税费总额
* @var string $tax
*/
public function setTax($tax)
{
$this->tax = $tax;
}
/**
* 预扣税费总额
* @return string
*/
public function getTax()
{
return $this->tax;
}
/**
* 实缴税费总额
* @var string $received_tax_amount
*/
public function setReceivedTaxAmount($received_tax_amount)
{
$this->received_tax_amount = $received_tax_amount;
}
/**
* 实缴税费总额
* @return string
*/
public function getReceivedTaxAmount()
{
return $this->received_tax_amount;
}
/**
* 用户实收金额(追缴前)
* @var string $user_real_excluding_vat_amount
*/
public function setUserRealExcludingVatAmount($user_real_excluding_vat_amount)
{
$this->user_real_excluding_vat_amount = $user_real_excluding_vat_amount;
}
/**
* 用户实收金额(追缴前)
* @return string
*/
public function getUserRealExcludingVatAmount()
{
return $this->user_real_excluding_vat_amount;
}
/**
* 已追缴增附税(本笔订单)
* @var string $user_recover_tax_amount
*/
public function setUserRecoverTaxAmount($user_recover_tax_amount)
{
$this->user_recover_tax_amount = $user_recover_tax_amount;
}
/**
* 已追缴增附税(本笔订单)
* @return string
*/
public function getUserRecoverTaxAmount()
{
return $this->user_recover_tax_amount;
}
} }

View File

@@ -106,30 +106,50 @@ class QueryBatchOrderInfo extends BaseModel
*/ */
protected $finished_time; protected $finished_time;
/** /**
* 综合服务主体加成服务费 * 应收综合服务主体加成服务费金额
* @var string * @var string
*/ */
protected $broker_fee; protected $broker_fee;
/** /**
* 余额账户支出加成服务费 * 应收余额账户支出加成服务费金额
* @var string * @var string
*/ */
protected $broker_real_fee; protected $broker_real_fee;
/** /**
* 加成服务费抵扣金额 * 应收加成服务费抵扣金额
* @var string * @var string
*/ */
protected $broker_deduct_fee; protected $broker_deduct_fee;
/**
* 应收用户加成服务费金额
* @var string
*/
protected $user_fee;
/**
* 实收综合服务主体加成服务费金额
* @var string
*/
protected $received_broker_fee;
/**
* 实收余额账户支出加成服务费金额
* @var string
*/
protected $received_broker_real_fee;
/**
* 实收加成服务费抵扣金额
* @var string
*/
protected $received_broker_deduct_fee;
/**
* 实收用户加成服务费金额
* @var string
*/
protected $received_user_fee;
/** /**
* 订单备注 * 订单备注
* @var string * @var string
*/ */
protected $pay_remark; protected $pay_remark;
/**
* 用户加成服务费
* @var string
*/
protected $user_fee;
/** /**
* 银行名称 * 银行名称
* @var string * @var string
@@ -140,6 +160,31 @@ class QueryBatchOrderInfo extends BaseModel
* @var string * @var string
*/ */
protected $project_id; protected $project_id;
/**
* 互联网平台名称
* @var string
*/
protected $dealer_platform_name;
/**
* 用户名称/昵称
* @var string
*/
protected $dealer_user_nickname;
/**
* 用户唯一标识码
* @var string
*/
protected $dealer_user_id;
/**
* 预扣个税税率
* @var string
*/
protected $personal_tax_rate;
/**
* 预扣个税速算扣除数
* @var string
*/
protected $deduct_tax;
/** /**
* 平台企业订单号 * 平台企业订单号
@@ -484,7 +529,7 @@ class QueryBatchOrderInfo extends BaseModel
} }
/** /**
* 综合服务主体加成服务费 * 应收综合服务主体加成服务费金额
* @var string $broker_fee * @var string $broker_fee
*/ */
public function setBrokerFee($broker_fee) public function setBrokerFee($broker_fee)
@@ -493,7 +538,7 @@ class QueryBatchOrderInfo extends BaseModel
} }
/** /**
* 综合服务主体加成服务费 * 应收综合服务主体加成服务费金额
* @return string * @return string
*/ */
public function getBrokerFee() public function getBrokerFee()
@@ -502,7 +547,7 @@ class QueryBatchOrderInfo extends BaseModel
} }
/** /**
* 余额账户支出加成服务费 * 应收余额账户支出加成服务费金额
* @var string $broker_real_fee * @var string $broker_real_fee
*/ */
public function setBrokerRealFee($broker_real_fee) public function setBrokerRealFee($broker_real_fee)
@@ -511,7 +556,7 @@ class QueryBatchOrderInfo extends BaseModel
} }
/** /**
* 余额账户支出加成服务费 * 应收余额账户支出加成服务费金额
* @return string * @return string
*/ */
public function getBrokerRealFee() public function getBrokerRealFee()
@@ -520,7 +565,7 @@ class QueryBatchOrderInfo extends BaseModel
} }
/** /**
* 加成服务费抵扣金额 * 应收加成服务费抵扣金额
* @var string $broker_deduct_fee * @var string $broker_deduct_fee
*/ */
public function setBrokerDeductFee($broker_deduct_fee) public function setBrokerDeductFee($broker_deduct_fee)
@@ -529,7 +574,7 @@ class QueryBatchOrderInfo extends BaseModel
} }
/** /**
* 加成服务费抵扣金额 * 应收加成服务费抵扣金额
* @return string * @return string
*/ */
public function getBrokerDeductFee() public function getBrokerDeductFee()
@@ -537,6 +582,96 @@ class QueryBatchOrderInfo extends BaseModel
return $this->broker_deduct_fee; return $this->broker_deduct_fee;
} }
/**
* 应收用户加成服务费金额
* @var string $user_fee
*/
public function setUserFee($user_fee)
{
$this->user_fee = $user_fee;
}
/**
* 应收用户加成服务费金额
* @return string
*/
public function getUserFee()
{
return $this->user_fee;
}
/**
* 实收综合服务主体加成服务费金额
* @var string $received_broker_fee
*/
public function setReceivedBrokerFee($received_broker_fee)
{
$this->received_broker_fee = $received_broker_fee;
}
/**
* 实收综合服务主体加成服务费金额
* @return string
*/
public function getReceivedBrokerFee()
{
return $this->received_broker_fee;
}
/**
* 实收余额账户支出加成服务费金额
* @var string $received_broker_real_fee
*/
public function setReceivedBrokerRealFee($received_broker_real_fee)
{
$this->received_broker_real_fee = $received_broker_real_fee;
}
/**
* 实收余额账户支出加成服务费金额
* @return string
*/
public function getReceivedBrokerRealFee()
{
return $this->received_broker_real_fee;
}
/**
* 实收加成服务费抵扣金额
* @var string $received_broker_deduct_fee
*/
public function setReceivedBrokerDeductFee($received_broker_deduct_fee)
{
$this->received_broker_deduct_fee = $received_broker_deduct_fee;
}
/**
* 实收加成服务费抵扣金额
* @return string
*/
public function getReceivedBrokerDeductFee()
{
return $this->received_broker_deduct_fee;
}
/**
* 实收用户加成服务费金额
* @var string $received_user_fee
*/
public function setReceivedUserFee($received_user_fee)
{
$this->received_user_fee = $received_user_fee;
}
/**
* 实收用户加成服务费金额
* @return string
*/
public function getReceivedUserFee()
{
return $this->received_user_fee;
}
/** /**
* 订单备注 * 订单备注
* @var string $pay_remark * @var string $pay_remark
@@ -555,24 +690,6 @@ class QueryBatchOrderInfo extends BaseModel
return $this->pay_remark; return $this->pay_remark;
} }
/**
* 用户加成服务费
* @var string $user_fee
*/
public function setUserFee($user_fee)
{
$this->user_fee = $user_fee;
}
/**
* 用户加成服务费
* @return string
*/
public function getUserFee()
{
return $this->user_fee;
}
/** /**
* 银行名称 * 银行名称
* @var string $bank_name * @var string $bank_name
@@ -608,4 +725,94 @@ class QueryBatchOrderInfo extends BaseModel
{ {
return $this->project_id; return $this->project_id;
} }
/**
* 互联网平台名称
* @var string $dealer_platform_name
*/
public function setDealerPlatformName($dealer_platform_name)
{
$this->dealer_platform_name = $dealer_platform_name;
}
/**
* 互联网平台名称
* @return string
*/
public function getDealerPlatformName()
{
return $this->dealer_platform_name;
}
/**
* 用户名称/昵称
* @var string $dealer_user_nickname
*/
public function setDealerUserNickname($dealer_user_nickname)
{
$this->dealer_user_nickname = $dealer_user_nickname;
}
/**
* 用户名称/昵称
* @return string
*/
public function getDealerUserNickname()
{
return $this->dealer_user_nickname;
}
/**
* 用户唯一标识码
* @var string $dealer_user_id
*/
public function setDealerUserId($dealer_user_id)
{
$this->dealer_user_id = $dealer_user_id;
}
/**
* 用户唯一标识码
* @return string
*/
public function getDealerUserId()
{
return $this->dealer_user_id;
}
/**
* 预扣个税税率
* @var string $personal_tax_rate
*/
public function setPersonalTaxRate($personal_tax_rate)
{
$this->personal_tax_rate = $personal_tax_rate;
}
/**
* 预扣个税税率
* @return string
*/
public function getPersonalTaxRate()
{
return $this->personal_tax_rate;
}
/**
* 预扣个税速算扣除数
* @var string $deduct_tax
*/
public function setDeductTax($deduct_tax)
{
$this->deduct_tax = $deduct_tax;
}
/**
* 预扣个税速算扣除数
* @return string
*/
public function getDeductTax()
{
return $this->deduct_tax;
}
} }

View File

@@ -32,6 +32,8 @@ use Yzh\Model\Payment\QueryBatchOrderRequest;
use Yzh\Model\Payment\QueryBatchOrderResponse; use Yzh\Model\Payment\QueryBatchOrderResponse;
use Yzh\Model\Payment\CheckUserAmountRequest; use Yzh\Model\Payment\CheckUserAmountRequest;
use Yzh\Model\Payment\CheckUserAmountResponse; use Yzh\Model\Payment\CheckUserAmountResponse;
use Yzh\Model\Payment\GetOrderLxlwRequest;
use Yzh\Model\Payment\GetOrderLxlwResponse;
/** /**
* 实时支付 * 实时支付
@@ -236,4 +238,18 @@ class PaymentClient extends BaseClient
} }
return $this->send('POST', '/api/payment/v1/risk-check/amount', $request, "Yzh\\Model\\Payment\\CheckUserAmountResponse", $option); return $this->send('POST', '/api/payment/v1/risk-check/amount', $request, "Yzh\\Model\\Payment\\CheckUserAmountResponse", $option);
} }
/**
* 查询劳务模式单笔订单信息
* @param GetOrderLxlwRequest $request
* @param null $option
* @return GetOrderLxlwResponse
*/
public function getOrderLxlw($request, $option = null)
{
if (!$request instanceof GetOrderLxlwRequest) {
throw new ConfigException("Payment->getOrderLxlw request 必须是 Yzh\\Model\\Payment\\GetOrderLxlwRequest 实例", ExceptionCode::CONFIG_ERROR_WRONG_PARAM);
}
return $this->send('GET', '/api/payment/v1/query-order', $request, "Yzh\\Model\\Payment\\GetOrderLxlwResponse", $option);
}
} }

View File

@@ -6,7 +6,7 @@ class SysConfig
* 商户ID由综合服务平台分配 云账户·综合服务平台获取 * 商户ID由综合服务平台分配 云账户·综合服务平台获取
* @var string * @var string
*/ */
public $dealer_id = '06477593'; public $dealer_id = '05073812';
/** /**
* 每个 request 的 id要求每次请求 id 不⼀样,会在 response 中原样返回 * 每个 request 的 id要求每次请求 id 不⼀样,会在 response 中原样返回
@@ -18,7 +18,7 @@ class SysConfig
* 综合服务主体ID 云账户·综合服务平台获取 * 综合服务主体ID 云账户·综合服务平台获取
* @var string yiyun73 * @var string yiyun73
*/ */
public $broker_id = 'shuzijingjiv1'; public $broker_id = 'yiyun73';
/** /**
* 随机数,⽤于签名 * 随机数,⽤于签名
* @var int * @var int
@@ -33,48 +33,48 @@ class SysConfig
* 加密key 云账户·综合服务平台获取 * 加密key 云账户·综合服务平台获取
* @var string * @var string
*/ */
public $des3_key = 'C9W3jI3IOD0r8eu917eZMSPL'; public $des3_key = 'H851esj7Fu1bH4bw00u6KAr3';
/** /**
* 签名 云账户·综合服务平台获取 * 签名 云账户·综合服务平台获取
* @var string e5L4mz919meY9QGO970MCdeXuzTUOUy8 * @var string e5L4mz919meY9QGO970MCdeXuzTUOUy8
*/ */
public $app_key = '1e4zPI8L0374v4x8bYd0Zvb800PKX24p'; public $app_key = 'cG1qeg18423nzBkLKD06Hy8Cb14Tncv9';
public $private_key = '-----BEGIN PRIVATE KEY----- public $private_key = '-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCIvrKT0fRa5cyn MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCayshu2CbWZHvS
6kmOpQG5vLTDi2C40ntRmozhUWyOaM61mLNSmILjCKDCMdfV11oMXFjRCB8RlHlP DG4ShF8S/NlEtkWzsK/0mBW5aXJYLtB9a0DA/jreCbpezeN/02r300mmpWaCtMNK
gNdEY4fLiYUWjd0A5pFMX9IkNHz3m4n1MddxZWEtmjxon/b0fiP+SOd7PSp//bUz G4YXbQMuJX63P/qLUQnYSI8QQcqlwXkbZsIVS/yfvcnk4ztdH3TI0asY/m0wLSND
xsxcEiNKhcZWR/Mu9yx+H4JqdenyeUDe35XGwTD+H0p982TtPSksWuWY4UdMDd0S LrJb5JKAO5qLuettNqxpiJlbed4mvEdipJUBkbyt8aznMyIgNSvyiYwWyN3fcPrY
uSOolBpTWt36pkxVO4EbSLgAllI1RBvP1w1Ir67WxdkKEe93prH5FV52KYQQIe5z a1KTAOIsJhWrm1rVXlk86ERTkSTDKTEsnfYig7lLfiSy4I8LYgJ+RXdxY8et/AxC
he1SnR7sufiMlvElqaS1lajV1aY5RMpECl0nANwSWh5JNX0DQevXp4QTqIhE4abc yayc9rkbv2Jhhm0P9V5nwEdxfJ6KjdpoHWiOu5z6anUAstJM1QX2mOymYb/PZOEe
o+V1/Dd/AgMBAAECggEBAIUxCYuFovaugirDvyXbftTFA2S761faXBdd6/7DanND ZWDHru8TAgMBAAECggEAJ+R/B2IZkENRTe76JzeKMSCM9hJroEW28ziG0MQGPgfC
jqO+ulunBUXR75N3LP2yppkHkdL4kBp1fbt8iTCpqWkM577SKwNnkPrNEkgFf/tF n7AWfiaHEVY8e9Zf/T+FX91KK/KQmrrvYZf6VOs5WJk9MQkCDwmRmfYJOM1b5qAY
WpijFW/0CTV7138o4EfAXZqetCmLqEvGeKqX5hF/8TPzHP6JUkraolGuqz6630Y2 ECHJfyeYMar970lIsVU8Cc1PZR+dED9xyQyt1tTvlLDHwZ7mt7zRbllP/K1JvX18
eth0Wzgpy4O+aiQEDPIla8Mo++vufT/jAmQenRRI9B2YOGEsIyBcR5aBEkr6PtRG WLBzsgFYCmZrSJhpR91gXiCNaReXziESE/ZgQsH9kJSLbCOT5bKRlWCndDnLwCpK
URhfUqYGEGbeN1C+FIgPQVSCZvKdXxUr9YuRoUbSDmJyVzZUwzBdMJ1xTakQeSZN DqnNMTNZ+HMhpm/nzI72V5wzC5IkVddOh+bw00IdSBiUk22sLTwD6dMutUYJ9OUn
grJqwKICyhyfdfo0OAPhM+4kvYBu3vvZp+yZxktEMbECgYEAysvrMtDYa2fKg9d0 Sw2+//rtT+4JE95FqSOEa4tlk/K8c1RRaLyPRnNS0QKBgQDsx+INvqn3MYe1Mw+7
IYfrLAoqdlE23CSXu6oMrVLSe9dOgJ62QYoRDlL3HyFtQJuGU9b289zFdacyK1rF 3CVb9h1NzB56k4nUmqcjiY5p+1FDfFQyxRjUABE4zi/HEQA9pLtGq5a5zAXjocSj
hbCZfzUnURab7DA2z8jcSd+ro2Fr6rC0s0XoehVcJGYe6Cqt/eybSn7tB0Jv7bsW l2DYUv87npngr6+6A1XfLEkPQ2UuArg8THsUwZ+wHvTdtvd+Z9LKRl3CyaOQRDg2
jCiD2pWcYhzsw0FFVTns31J7lHsCgYEArJ6qCPcPaMnTM0padb/l0hNW9li7eV2R vcVK65brisfykx5Gteguq/gZ3QKBgQCnWz2JMcrpeOu+6RniAKoLpq50plG8murv
mcO4yRDjut40nwcjwEdCD9OiKbYRU/RfL7HG/XaxKWOfE0W9NnGfca51kuxv7vyI eploV9W2Q8aalC1rZsey5Buh7Ls/K6g0ihm8yZVQEzPVnGheF8dIM4qz3pfTSiYP
URAxe8Kf5/vA7/6pfQiJ8Hj2kj8p0vTCaU0KhyO+mgvMwklXeHhGMHILmWvDdsCR RDB26+uGlkU3nSB31e+VraipYesaa4DVb2AzbkKM4JtY/bldRd24NS1WBtTBiIid
9wYHnQm0o80CgYBkanKst9Lh5APYIqAjVkzxgpsh+PbkLM5hI0Ohsyf8IFGDyJLQ i3i9Szy1rwKBgQC8k7jqn3Y4RD9DxeX7BSrP4eSWyEFh+E0mgQEqYWyF5b1j1Qot
gxAM+rHY3VFes2PhMckYWVIA/ugNpaW2nAp1fZlZQou0eO87FedWQQWZIc0w6Yyg 4SGT/nW42yXcEiMx9ReeAhyp3t6122mDrJVZ1EgoUHlXJDT9HZjvhBKv0Eot6caX
VFZX1SnJ8DMPnMqIuFbwnUa62H/ZxFDW19zqKDjGMDJgQHqXR9Ztgkck7wKBgQCB Z4YDEu4+U3lLd2QHTWLo7D/SWcslo99tYZhWwejRsRbrj9XmFQxU12tiFQKBgHxP
7SqudMb0aHS/NkfAOSASbtwVr9PsFbFxuw9qx3uhO37/86/FGd1vbCuymYeRWW4L YZ4OxlI156afLwKYy7Zr0RoEkKIv0GKiBmFjHPON1G/tsO8eISfYGE5msY9ytjaQ
yBOu05elP4aMSwGP6RXJyzZT0AKwLwOrgDS+ok8ZnTQrb9LCeZrZlTKCAWjJj9CE fh2k/qvEF7SLwVpi/zu6TUTeCph/c1XTqMws4X3PEQsGQ5+/4X6kx6tJeIDfaYsg
0agK76yW5irIUcu0sVKjRDPW1nXY/DjhZXh1isicQQKBgQCcqf7FRULEncPoWxVS d6y8MeLC06F+lbmas96oYUyNNmurJw8fEkhJIocxAoGBAItHf+CK6+RISrnlEg7v
gCR2JAdFn2e5snlMnYS5TrACjb8sGhN9vYNZiDioqKgbYeXq2L/qPtma5NltDu/t 9BVuL+gg1Yum64mKhIA5L2TGttxLM6eE4idEPZriIpKjv7SVyw0mPMzGnH4Dx6oB
aT04WHAnl2aSzPssEgbiyW0HDVi74P42x75MQuxBHsqOctF7ic2ALtxI1wt21plL LaajrQkBp4tOhHMadicED38J/9Y3eo7dyH/4FkurDfYYu+YJ43lkczvKmLzBemvn
vVPNmjuqfO2DNbF7kh06KTPy/w== E6TEGStYbSraW0ON8WRZ8B3r
-----END PRIVATE KEY-----'; -----END PRIVATE KEY-----';
public $public_key = '-----BEGIN PUBLIC KEY----- public $public_key = '-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiL6yk9H0WuXMp+pJjqUB MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmsrIbtgm1mR70gxuEoRf
uby0w4tguNJ7UZqM4VFsjmjOtZizUpiC4wigwjHX1ddaDFxY0QgfEZR5T4DXRGOH EvzZRLZFs7Cv9JgVuWlyWC7QfWtAwP463gm6Xs3jf9Nq99NJpqVmgrTDShuGF20D
y4mFFo3dAOaRTF/SJDR895uJ9THXcWVhLZo8aJ/29H4j/kjnez0qf/21M8bMXBIj LiV+tz/6i1EJ2EiPEEHKpcF5G2bCFUv8n73J5OM7XR90yNGrGP5tMC0jQy6yW+SS
SoXGVkfzLvcsfh+CanXp8nlA3t+VxsEw/h9KffNk7T0pLFrlmOFHTA3dErkjqJQa gDuai7nrbTasaYiZW3neJrxHYqSVAZG8rfGs5zMiIDUr8omMFsjd33D62GtSkwDi
U1rd+qZMVTuBG0i4AJZSNUQbz9cNSK+u1sXZChHvd6ax+RVedimEECHuc4XtUp0e LCYVq5ta1V5ZPOhEU5EkwykxLJ32IoO5S34ksuCPC2ICfkV3cWPHrfwMQsmsnPa5
7Ln4jJbxJamktZWo1dWmOUTKRApdJwDcEloeSTV9A0Hr16eEE6iIROGm3KPldfw3 G79iYYZtD/VeZ8BHcXyeio3aaB1ojruc+mp1ALLSTNUF9pjspmG/z2ThHmVgx67v
fwIDAQAB EwIDAQAB
-----END PUBLIC KEY-----'; -----END PUBLIC KEY-----';
public $sign_type = 'rsa'; public $sign_type = 'rsa';

View File

@@ -20,7 +20,7 @@ class YunPay
public $id_card; public $id_card;
public $card_no; public $card_no;
public $order_amount; public $order_amount;
public $notify_url = 'http://chat.qxmier.com/api/Payment/yun_callback'; public $notify_url = 'https://md.xscmmidi.site/api/Payment/yun_callback';
public $phone = ''; public $phone = '';
public $config; public $config;
@@ -36,6 +36,7 @@ class YunPay
$this->card_no = $card_no; $this->card_no = $card_no;
$this->order_amount = $order_amount; $this->order_amount = $order_amount;
$this->phone = $phone; $this->phone = $phone;
$this->dealer_platform_name = "秘地";
//读取配置 //读取配置
$this->config = Config::newFromArray(array( $this->config = Config::newFromArray(array(
'app_dealer_id' => $this->sys_config->dealer_id, 'app_dealer_id' => $this->sys_config->dealer_id,
@@ -47,7 +48,7 @@ class YunPay
'sign_type' => $this->sys_config->sign_type 'sign_type' => $this->sys_config->sign_type
)); ));
} }
public function alipay(){ public function alipay($data=[]){
try { try {
$this->paymentClient = new PaymentClient($this->config); $this->paymentClient = new PaymentClient($this->config);
$this->paymentClient->setEnv(PaymentClient::ENV_PROD); $this->paymentClient->setEnv(PaymentClient::ENV_PROD);
@@ -66,7 +67,11 @@ class YunPay
'pay_remark' => $this->remark, // 订单备注(选填,至多支持 40 个字符且不支持特殊字符,⼀个汉字占 2 个字符,不支持的特殊字符为 ' " & | @% ( ) - : # + / < > ¥ \ , 'pay_remark' => $this->remark, // 订单备注(选填,至多支持 40 个字符且不支持特殊字符,⼀个汉字占 2 个字符,不支持的特殊字符为 ' " & | @% ( ) - : # + / < > ¥ \ ,
'check_name' => 'Check', // 校验⽀付宝账户姓名(固定值 Check 'check_name' => 'Check', // 校验⽀付宝账户姓名(固定值 Check
'notify_url' => $this->notify_url, // 回调地址(选填,长度不超过 200 个字符) 'notify_url' => $this->notify_url, // 回调地址(选填,长度不超过 200 个字符)
'project_id' => '' // 项目ID该字段由云账户分配当接口指定项目时会将订单关联指定项目 'project_id' => '', // 项目ID该字段由云账户分配当接口指定项目时会将订单关联指定项目
//9月新加
'dealer_platform_name' => $this->dealer_platform_name, //互联网平台名称
'dealer_user_nickname' => $data['nickname'] ?? "", //用户名称/昵称
'dealer_user_id' => strval($data['user_id']) ?? "", //用户ID 用户唯一标识码
)); ));
/* /*
* request-id请求 ID请求的唯一标识 * request-id请求 ID请求的唯一标识
@@ -200,18 +205,27 @@ class YunPay
$request->setRequestID($request_id); $request->setRequestID($request_id);
$response = $this->paymentClient->getOrder($request); $response = $this->paymentClient->getOrder($request);
if ($response->isSuccess()) { if ($response->isSuccess()) {
// if(!empty($response->getData()->getTaxDetail())){
// $personal_tax_rate = $response->getData()->getTaxDetail()->getPersonalTaxRate();
// }else{
// $personal_tax_rate = 0;
// }
// TODO 订单查询操作成功,根据订单状态 status 判断订单状态,做业务订单的处理 // TODO 订单查询操作成功,根据订单状态 status 判断订单状态,做业务订单的处理
if($response->getData()->getStatusDetail() == 0){ if($response->getData()->getStatusDetail() == 0){
return ['code' => 1, 'msg' => "订单状态:" . $response->getData()->getStatusMessage(), 'data' => [ return ['code' => 1, 'msg' => "订单状态:" . $response->getData()->getStatusMessage(), 'data' => [
'code' => $response->getData()->getStatusDetail(), 'code' => $response->getData()->getStatusDetail(),
'msg' => $response->getData()->getStatusMessage(), 'msg' => $response->getData()->getStatusMessage(),
// 'personal_tax_rate' => $personal_tax_rate,
'received_tax_amount' => $response->getData()->getReceivedTaxAmount()
]]; ]];
}else{ }else{
return ['code' => 1, 'msg' => "订单状态:" . $response->getData()->getStatusDetailMessage(), 'data' => [ return ['code' => 1, 'msg' => "订单状态:" . $response->getData()->getStatusDetailMessage(), 'data' => [
'code' => $response->getData()->getStatusDetail(), 'code' => $response->getData()->getStatusDetail(),
'msg' => $response->getData()->getStatusDetailMessage(), 'msg' => $response->getData()->getStatusDetailMessage(),
]]; // 'personal_tax_rate' => $personal_tax_rate,
'received_tax_amount' => $response->getData()->getReceivedTaxAmount()
]];
} }
} else if ($response->getCode() == '2018') { } else if ($response->getCode() == '2018') {
@@ -231,7 +245,7 @@ class YunPay
$notifyReq = new NotifyRequest ($data, $mess, $timestamp, $sign) ;// 发起验签解密 $notifyReq = new NotifyRequest ($data, $mess, $timestamp, $sign) ;// 发起验签解密
try { try {
$result = $notifyClient->verifyAndDecrypt($notifyReq) ; $result = $notifyClient->verifyAndDecrypt($notifyReq) ;
Log::record("云账户回调信息-返回".json_encode($result),"info"); write_log_redis("云账户回调信息_解密返回",$result);
$result = json_decode($result,true); $result = json_decode($result,true);
if ($result['signRes']) { if ($result['signRes']) {
// 验签通过、解密成功 // 验签通过、解密成功

View File

@@ -1,21 +0,0 @@
# The MIT License (MIT)
Copyright (c) 2016-2019 Riku Särkinen
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -1,29 +0,0 @@
{
"name": "adbario/php-dot-notation",
"description": "PHP dot notation access to arrays",
"keywords": ["dotnotation", "arrayaccess"],
"homepage": "https://github.com/adbario/php-dot-notation",
"license": "MIT",
"authors": [
{
"name": "Riku Särkinen",
"email": "riku@adbar.io"
}
],
"require": {
"php": "^5.5 || ^7.0 || ^8.0",
"ext-json": "*"
},
"require-dev": {
"phpunit/phpunit": "^4.8|^5.7|^6.6|^7.5|^8.5|^9.5",
"squizlabs/php_codesniffer": "^3.6"
},
"autoload": {
"files": [
"src/helpers.php"
],
"psr-4": {
"Adbar\\": "src"
}
}
}

View File

@@ -1,623 +0,0 @@
<?php
/**
* Dot - PHP dot notation access to arrays
*
* @author Riku Särkinen <riku@adbar.io>
* @link https://github.com/adbario/php-dot-notation
* @license https://github.com/adbario/php-dot-notation/blob/2.x/LICENSE.md (MIT License)
*/
namespace Adbar;
use Countable;
use ArrayAccess;
use ArrayIterator;
use JsonSerializable;
use IteratorAggregate;
/**
* Dot
*
* This class provides a dot notation access and helper functions for
* working with arrays of data. Inspired by Laravel Collection.
*/
class Dot implements ArrayAccess, Countable, IteratorAggregate, JsonSerializable
{
/**
* The stored items
*
* @var array
*/
protected $items = [];
/**
* The delimiter (alternative to a '.') to be used.
*
* @var string
*/
protected $delimiter = '.';
/**
* Create a new Dot instance
*
* @param mixed $items
* @param string $delimiter
*/
public function __construct($items = [], $delimiter = '.')
{
$this->items = $this->getArrayItems($items);
$this->delimiter = strlen($delimiter) ? $delimiter : '.';
}
/**
* Set a given key / value pair or pairs
* if the key doesn't exist already
*
* @param array|int|string $keys
* @param mixed $value
*/
public function add($keys, $value = null)
{
if (is_array($keys)) {
foreach ($keys as $key => $value) {
$this->add($key, $value);
}
} elseif (is_null($this->get($keys))) {
$this->set($keys, $value);
}
}
/**
* Return all the stored items
*
* @return array
*/
public function all()
{
return $this->items;
}
/**
* Delete the contents of a given key or keys
*
* @param array|int|string|null $keys
*/
public function clear($keys = null)
{
if (is_null($keys)) {
$this->items = [];
return;
}
$keys = (array) $keys;
foreach ($keys as $key) {
$this->set($key, []);
}
}
/**
* Delete the given key or keys
*
* @param array|int|string $keys
*/
public function delete($keys)
{
$keys = (array) $keys;
foreach ($keys as $key) {
if ($this->exists($this->items, $key)) {
unset($this->items[$key]);
continue;
}
$items = &$this->items;
$segments = explode($this->delimiter, $key);
$lastSegment = array_pop($segments);
foreach ($segments as $segment) {
if (!isset($items[$segment]) || !is_array($items[$segment])) {
continue 2;
}
$items = &$items[$segment];
}
unset($items[$lastSegment]);
}
}
/**
* Checks if the given key exists in the provided array.
*
* @param array $array Array to validate
* @param int|string $key The key to look for
*
* @return bool
*/
protected function exists($array, $key)
{
return array_key_exists($key, $array);
}
/**
* Flatten an array with the given character as a key delimiter
*
* @param string $delimiter
* @param array|null $items
* @param string $prepend
* @return array
*/
public function flatten($delimiter = '.', $items = null, $prepend = '')
{
$flatten = [];
if (is_null($items)) {
$items = $this->items;
}
if (!func_num_args()) {
$delimiter = $this->delimiter;
}
foreach ($items as $key => $value) {
if (is_array($value) && !empty($value)) {
$flatten = array_merge(
$flatten,
$this->flatten($delimiter, $value, $prepend.$key.$delimiter)
);
} else {
$flatten[$prepend.$key] = $value;
}
}
return $flatten;
}
/**
* Return the value of a given key
*
* @param int|string|null $key
* @param mixed $default
* @return mixed
*/
public function get($key = null, $default = null)
{
if (is_null($key)) {
return $this->items;
}
if ($this->exists($this->items, $key)) {
return $this->items[$key];
}
if (strpos($key, $this->delimiter) === false) {
return $default;
}
$items = $this->items;
foreach (explode($this->delimiter, $key) as $segment) {
if (!is_array($items) || !$this->exists($items, $segment)) {
return $default;
}
$items = &$items[$segment];
}
return $items;
}
/**
* Return the given items as an array
*
* @param mixed $items
* @return array
*/
protected function getArrayItems($items)
{
if (is_array($items)) {
return $items;
} elseif ($items instanceof self) {
return $items->all();
}
return (array) $items;
}
/**
* Check if a given key or keys exists
*
* @param array|int|string $keys
* @return bool
*/
public function has($keys)
{
$keys = (array) $keys;
if (!$this->items || $keys === []) {
return false;
}
foreach ($keys as $key) {
$items = $this->items;
if ($this->exists($items, $key)) {
continue;
}
foreach (explode($this->delimiter, $key) as $segment) {
if (!is_array($items) || !$this->exists($items, $segment)) {
return false;
}
$items = $items[$segment];
}
}
return true;
}
/**
* Check if a given key or keys are empty
*
* @param array|int|string|null $keys
* @return bool
*/
public function isEmpty($keys = null)
{
if (is_null($keys)) {
return empty($this->items);
}
$keys = (array) $keys;
foreach ($keys as $key) {
if (!empty($this->get($key))) {
return false;
}
}
return true;
}
/**
* Merge a given array or a Dot object with the given key
* or with the whole Dot object
*
* @param array|string|self $key
* @param array|self $value
*/
public function merge($key, $value = [])
{
if (is_array($key)) {
$this->items = array_merge($this->items, $key);
} elseif (is_string($key)) {
$items = (array) $this->get($key);
$value = array_merge($items, $this->getArrayItems($value));
$this->set($key, $value);
} elseif ($key instanceof self) {
$this->items = array_merge($this->items, $key->all());
}
}
/**
* Recursively merge a given array or a Dot object with the given key
* or with the whole Dot object.
*
* Duplicate keys are converted to arrays.
*
* @param array|string|self $key
* @param array|self $value
*/
public function mergeRecursive($key, $value = [])
{
if (is_array($key)) {
$this->items = array_merge_recursive($this->items, $key);
} elseif (is_string($key)) {
$items = (array) $this->get($key);
$value = array_merge_recursive($items, $this->getArrayItems($value));
$this->set($key, $value);
} elseif ($key instanceof self) {
$this->items = array_merge_recursive($this->items, $key->all());
}
}
/**
* Recursively merge a given array or a Dot object with the given key
* or with the whole Dot object.
*
* Instead of converting duplicate keys to arrays, the value from
* given array will replace the value in Dot object.
*
* @param array|string|self $key
* @param array|self $value
*/
public function mergeRecursiveDistinct($key, $value = [])
{
if (is_array($key)) {
$this->items = $this->arrayMergeRecursiveDistinct($this->items, $key);
} elseif (is_string($key)) {
$items = (array) $this->get($key);
$value = $this->arrayMergeRecursiveDistinct($items, $this->getArrayItems($value));
$this->set($key, $value);
} elseif ($key instanceof self) {
$this->items = $this->arrayMergeRecursiveDistinct($this->items, $key->all());
}
}
/**
* Merges two arrays recursively. In contrast to array_merge_recursive,
* duplicate keys are not converted to arrays but rather overwrite the
* value in the first array with the duplicate value in the second array.
*
* @param array $array1 Initial array to merge
* @param array $array2 Array to recursively merge
* @return array
*/
protected function arrayMergeRecursiveDistinct(array $array1, array $array2)
{
$merged = &$array1;
foreach ($array2 as $key => $value) {
if (is_array($value) && isset($merged[$key]) && is_array($merged[$key])) {
$merged[$key] = $this->arrayMergeRecursiveDistinct($merged[$key], $value);
} else {
$merged[$key] = $value;
}
}
return $merged;
}
/**
* Return the value of a given key and
* delete the key
*
* @param int|string|null $key
* @param mixed $default
* @return mixed
*/
public function pull($key = null, $default = null)
{
if (is_null($key)) {
$value = $this->all();
$this->clear();
return $value;
}
$value = $this->get($key, $default);
$this->delete($key);
return $value;
}
/**
* Push a given value to the end of the array
* in a given key
*
* @param mixed $key
* @param mixed $value
*/
public function push($key, $value = null)
{
if (is_null($value)) {
$this->items[] = $key;
return;
}
$items = $this->get($key);
if (is_array($items) || is_null($items)) {
$items[] = $value;
$this->set($key, $items);
}
}
/**
* Replace all values or values within the given key
* with an array or Dot object
*
* @param array|string|self $key
* @param array|self $value
*/
public function replace($key, $value = [])
{
if (is_array($key)) {
$this->items = array_replace($this->items, $key);
} elseif (is_string($key)) {
$items = (array) $this->get($key);
$value = array_replace($items, $this->getArrayItems($value));
$this->set($key, $value);
} elseif ($key instanceof self) {
$this->items = array_replace($this->items, $key->all());
}
}
/**
* Set a given key / value pair or pairs
*
* @param array|int|string $keys
* @param mixed $value
*/
public function set($keys, $value = null)
{
if (is_array($keys)) {
foreach ($keys as $key => $value) {
$this->set($key, $value);
}
return;
}
$items = &$this->items;
foreach (explode($this->delimiter, $keys) as $key) {
if (!isset($items[$key]) || !is_array($items[$key])) {
$items[$key] = [];
}
$items = &$items[$key];
}
$items = $value;
}
/**
* Replace all items with a given array
*
* @param mixed $items
*/
public function setArray($items)
{
$this->items = $this->getArrayItems($items);
}
/**
* Replace all items with a given array as a reference
*
* @param array $items
*/
public function setReference(array &$items)
{
$this->items = &$items;
}
/**
* Return the value of a given key or all the values as JSON
*
* @param mixed $key
* @param int $options
* @return string
*/
public function toJson($key = null, $options = 0)
{
if (is_string($key)) {
return json_encode($this->get($key), $options);
}
$options = $key === null ? 0 : $key;
return json_encode($this->items, $options);
}
/*
* --------------------------------------------------------------
* ArrayAccess interface
* --------------------------------------------------------------
*/
/**
* Check if a given key exists
*
* @param int|string $key
* @return bool
*/
#[\ReturnTypeWillChange]
public function offsetExists($key)
{
return $this->has($key);
}
/**
* Return the value of a given key
*
* @param int|string $key
* @return mixed
*/
#[\ReturnTypeWillChange]
public function offsetGet($key)
{
return $this->get($key);
}
/**
* Set a given value to the given key
*
* @param int|string|null $key
* @param mixed $value
*/
#[\ReturnTypeWillChange]
public function offsetSet($key, $value)
{
if (is_null($key)) {
$this->items[] = $value;
return;
}
$this->set($key, $value);
}
/**
* Delete the given key
*
* @param int|string $key
*/
#[\ReturnTypeWillChange]
public function offsetUnset($key)
{
$this->delete($key);
}
/*
* --------------------------------------------------------------
* Countable interface
* --------------------------------------------------------------
*/
/**
* Return the number of items in a given key
*
* @param int|string|null $key
* @return int
*/
#[\ReturnTypeWillChange]
public function count($key = null)
{
return count($this->get($key));
}
/*
* --------------------------------------------------------------
* IteratorAggregate interface
* --------------------------------------------------------------
*/
/**
* Get an iterator for the stored items
*
* @return \ArrayIterator
*/
#[\ReturnTypeWillChange]
public function getIterator()
{
return new ArrayIterator($this->items);
}
/*
* --------------------------------------------------------------
* JsonSerializable interface
* --------------------------------------------------------------
*/
/**
* Return items for JSON serialization
*
* @return array
*/
#[\ReturnTypeWillChange]
public function jsonSerialize()
{
return $this->items;
}
}

View File

@@ -1,24 +0,0 @@
<?php
/**
* Dot - PHP dot notation access to arrays
*
* @author Riku Särkinen <riku@adbar.io>
* @link https://github.com/adbario/php-dot-notation
* @license https://github.com/adbario/php-dot-notation/blob/2.x/LICENSE.md (MIT License)
*/
use Adbar\Dot;
if (! function_exists('dot')) {
/**
* Create a new Dot object with the given items and optional delimiter
*
* @param mixed $items
* @param string $delimiter
* @return \Adbar\Dot
*/
function dot($items, $delimiter = '.')
{
return new Dot($items, $delimiter);
}
}

View File

@@ -1,18 +0,0 @@
# CHANGELOG
## 1.2.0 - 2024-10-17
- Refactor all credentials providers.
## 1.1.3 - 2020-12-24
- Require guzzle ^6.3|^7.0
## 1.0.2 - 2020-02-14
- Update Tea.
## 1.0.1 - 2019-12-30
- Supported get `Role Name` automatically.
## 1.0.0 - 2019-09-01
- Initial release of the Alibaba Cloud Credentials for PHP Version 1.0.0 on Packagist See <https://github.com/aliyun/credentials-php> for more information.

View File

@@ -1,30 +0,0 @@
# CONTRIBUTING
We work hard to provide a high-quality and useful SDK for Alibaba Cloud, and
we greatly value feedback and contributions from our community. Please submit
your [issues][issues] or [pull requests][pull-requests] through GitHub.
## Tips
- The SDK is released under the [Apache license][license]. Any code you submit
will be released under that license. For substantial contributions, we may
ask you to sign a [Alibaba Documentation Corporate Contributor License
Agreement (CLA)][cla].
- We follow all of the relevant PSR recommendations from the [PHP Framework
Interop Group][php-fig]. Please submit code that follows these standards.
The [PHP CS Fixer][cs-fixer] tool can be helpful for formatting your code.
Your can use `composer fixer` to fix code.
- We maintain a high percentage of code coverage in our unit tests. If you make
changes to the code, please add, update, and/or remove tests as appropriate.
- If your code does not conform to the PSR standards, does not include adequate
tests, or does not contain a changelog document, we may ask you to update
your pull requests before we accept them. We also reserve the right to deny
any pull requests that do not align with our standards or goals.
[issues]: https://github.com/aliyun/credentials-php/issues
[pull-requests]: https://github.com/aliyun/credentials-php/pulls
[license]: http://www.apache.org/licenses/LICENSE-2.0
[cla]: https://alibaba-cla-2018.oss-cn-beijing.aliyuncs.com/Alibaba_Documentation_Open_Source_Corporate_CLA.pdf
[php-fig]: http://php-fig.org
[cs-fixer]: http://cs.sensiolabs.org/
[docs-readme]: https://github.com/aliyun/credentials-php/blob/master/README.md

View File

@@ -1,13 +0,0 @@
Copyright (c) 2009-present, Alibaba Cloud All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Some files were not shown because too many files have changed in this diff Show More