713 lines
31 KiB
PHP
713 lines
31 KiB
PHP
<?php
|
|
|
|
namespace app\api\model;
|
|
|
|
use think\Db;
|
|
use think\Model;
|
|
|
|
class RoomSubsidy extends Model
|
|
{
|
|
|
|
//该房间是否有收益
|
|
public function get_room_is_earnings_info($uid, $rid){
|
|
$room_info = db::name('room')->find($rid);
|
|
if(!$room_info){
|
|
return ['code' => 201, 'msg' => '参数错误', 'data' => null];
|
|
}
|
|
|
|
$data = [];
|
|
$data['is_earnings'] = $room_info['is_earnings'];
|
|
|
|
return ['code' => 200, 'msg' => '成功', 'data' => $data];
|
|
}
|
|
|
|
|
|
//房间补贴信息
|
|
public function room_subsidy_info($uid, $rid){
|
|
$config = get_uncache_system_config();
|
|
$room_info = db::name('room')->find($rid);
|
|
if(!$room_info){
|
|
return ['code' => 201, 'msg' => '参数错误', 'data' => null];
|
|
}
|
|
|
|
//房间上周流水
|
|
$map = [];
|
|
$map[] = ['rid', '=', $rid];
|
|
$map[] = ['type', '=', 1];
|
|
$last_week_income = db::name('user_charm_count_day')->where($map)->whereTime('add_time', 'last week')->sum('amount');
|
|
$last_week_incomes = $last_week_income / $config['exchange_rate'];
|
|
|
|
//房间本周流水
|
|
$map = [];
|
|
$map[] = ['rid', '=', $rid];
|
|
$map[] = ['type', '=', 1];
|
|
$week_income = db::name('user_charm_count_day')->where($map)->whereTime('add_time', 'week')->sum('amount');
|
|
$week_incomes = $week_income / $config['exchange_rate'];
|
|
|
|
//房间补贴信息
|
|
$room_subsidy_info = db::name('room_subsidy')->field('id,type,level_name,total_gift_price,money')->where('is_delete', 1)->order('id asc')->select();
|
|
|
|
//上周补贴奖励金额
|
|
$subsidy_money = 0;
|
|
foreach ($room_subsidy_info as $k => &$v){
|
|
$money = $v['money'];
|
|
if($v['total_gift_price'] > $last_week_income){
|
|
break;
|
|
}else{
|
|
if($v['type'] == 1){
|
|
$subsidy_money = $v['money'];
|
|
}else{
|
|
$subsidy_money = $last_week_income * $money * 0.001;
|
|
}
|
|
}
|
|
}
|
|
|
|
foreach ($room_subsidy_info as $a => &$b){
|
|
if($b['type'] == 2){
|
|
$b['money'] = $b['money'].'%';
|
|
}
|
|
$b['total_gift_price'] = $b['total_gift_price']/10;
|
|
}
|
|
|
|
if($room_info['room_owner_uid'] != $uid || $room_info['is_earnings'] == 2){
|
|
$data = [];
|
|
$data['last_week_income'] = 0;
|
|
$data['last_week_subsidy_money'] = 0;
|
|
$data['week_income'] = 0;
|
|
$data['room_subsidy_info'] = $room_subsidy_info;
|
|
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
|
}
|
|
|
|
$data = [];
|
|
$data['last_week_income'] = $last_week_incomes;
|
|
$data['last_week_subsidy_money'] = $subsidy_money;
|
|
$data['week_income'] = $week_incomes;
|
|
$data['room_subsidy_info'] = $room_subsidy_info;
|
|
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
|
}
|
|
|
|
//幸运房间补贴信息
|
|
public function room_lucky_subsidy_info($uid, $rid){
|
|
$config = get_uncache_system_config();
|
|
$room_info = db::name('room')->find($rid);
|
|
if(!$room_info){
|
|
return ['code' => 201, 'msg' => '参数错误', 'data' => null];
|
|
}
|
|
|
|
//房间上周流水
|
|
$map = [];
|
|
$map[] = ['rid', '=', $rid];
|
|
$map[] = ['type', '=', 2];
|
|
$last_week_income = db::name('user_charm_count_day')->where($map)->whereTime('add_time', 'last week')->sum('amount');
|
|
$last_week_incomes = $last_week_income / $config['exchange_rate'];
|
|
|
|
//房间本周流水
|
|
$map = [];
|
|
$map[] = ['rid', '=', $rid];
|
|
$map[] = ['type', '=', 2];
|
|
$week_income = db::name('user_charm_count_day')->where($map)->whereTime('add_time', 'week')->sum('amount');
|
|
$week_incomes = $week_income / $config['exchange_rate'];
|
|
|
|
//房间补贴信息
|
|
$room_subsidy_info = db::name('room_subsidy_lucky')->field('id,type,level_name,total_gift_price,money')->where('is_delete', 1)->order('id asc')->select();
|
|
|
|
//本周补贴奖励金额
|
|
$subsidy_money = 0;
|
|
foreach ($room_subsidy_info as $k => &$v){
|
|
$money = $v['money'];
|
|
|
|
if($v['total_gift_price'] > $last_week_income){
|
|
break;
|
|
}else{
|
|
if($v['type'] == 1){
|
|
$subsidy_money = $v['money'];
|
|
}else{
|
|
$subsidy_money = $last_week_income * $money * 0.001;
|
|
}
|
|
}
|
|
}
|
|
|
|
foreach ($room_subsidy_info as $a => &$b){
|
|
if($b['type'] == 2){
|
|
$b['money'] = $b['money'].'%';
|
|
}
|
|
$b['total_gift_price'] = $b['total_gift_price']/10;
|
|
}
|
|
|
|
if($room_info['room_owner_uid'] != $uid || $room_info['is_earnings'] == 2){
|
|
$data = [];
|
|
$data['last_week_income'] = 0;
|
|
$data['last_week_subsidy_money'] = 0;
|
|
$data['week_income'] = 0;
|
|
$data['room_subsidy_info'] = $room_subsidy_info;
|
|
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
|
}
|
|
|
|
$data = [];
|
|
$data['last_week_income'] = $last_week_incomes;
|
|
$data['last_week_subsidy_money'] = $subsidy_money;
|
|
$data['week_income'] = $week_incomes;
|
|
$data['room_subsidy_info'] = $room_subsidy_info;
|
|
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
|
}
|
|
|
|
//用户搜索
|
|
public function user_search($uid, $rid, $keywords, $page, $page_limit){
|
|
$page = intval($page);
|
|
$page_limit = $page_limit < 20 ? $page_limit : 20;
|
|
$room_info = db::name('room')->find($rid);
|
|
if(!$room_info){
|
|
return ['code' => 201, 'msg' => '参数错误', 'data' => null];
|
|
}
|
|
|
|
if(empty($keywords)){
|
|
$data = [];
|
|
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
|
}
|
|
|
|
$map = [];
|
|
if(is_numeric($keywords)){//为纯数字
|
|
$map[] = ['uid|special_uid', '=', $keywords];
|
|
}else{//不是纯数字
|
|
$map[] = ['nick_name', 'like', '%'.$keywords.'%'];
|
|
}
|
|
$map[] = ['login_status', '=', 1];
|
|
$list = db::name('user')->where($map)->field('uid, nick_name, base64_nick_name, head_pic')->page($page, $page_limit)->select();
|
|
foreach ($list as $k => &$v){
|
|
$v['nick_name'] = mb_convert_encoding(base64_decode($v['base64_nick_name']), 'UTF-8', 'UTF-8');
|
|
$v['head_pic'] = localpath_to_netpath($v['head_pic']);
|
|
}
|
|
|
|
return ['code' => 200, 'msg' => '获取成功', 'data' => $list];
|
|
}
|
|
|
|
//房间补贴用户列表
|
|
public function get_room_user_subsidy_list($uid, $rid){
|
|
$config = get_uncache_system_config();
|
|
$room_info = db::name('room')->find($rid);
|
|
if(!$room_info){
|
|
return ['code' => 201, 'msg' => '参数错误', 'data' => null];
|
|
}
|
|
|
|
//房间上周流水
|
|
$map = [];
|
|
$map[] = ['rid', '=', $rid];
|
|
$map[] = ['type', '=', 1];
|
|
$last_week_income = db::name('user_charm_count_day')->where($map)->whereTime('add_time', 'last week')->sum('amount');
|
|
$last_week_incomes = $last_week_income / $config['exchange_rate'];
|
|
|
|
//房间补贴信息
|
|
$room_subsidy_info = db::name('room_subsidy')->field('id,type,level_name,total_gift_price,money')->where('is_delete', 1)->order('id asc')->select();
|
|
|
|
//上周补贴奖励金额
|
|
$subsidy_money = 0;
|
|
foreach ($room_subsidy_info as $k => &$v){
|
|
$money = $v['money'];
|
|
if($v['total_gift_price'] > $last_week_income){
|
|
break;
|
|
}else{
|
|
if($v['type'] == 1){
|
|
$subsidy_money = $v['money'];
|
|
}else{
|
|
$subsidy_money = $last_week_income * $money * 0.001;
|
|
}
|
|
}
|
|
}
|
|
|
|
$owner_info = db::name('user')->find($room_info['room_owner_uid']);
|
|
|
|
$room_owner_info['uid'] = $room_info['room_owner_uid'];
|
|
$room_owner_info['nick_name'] = mb_convert_encoding(base64_decode($owner_info['base64_nick_name']), 'UTF-8', 'UTF-8');
|
|
$room_owner_info['head_pic'] = localpath_to_netpath($owner_info['head_pic']);
|
|
|
|
$assigned_ratio = 0;
|
|
$room_subsidy_list = db::name('room_user_subsidy')->alias('a')->join('yy_user b', 'a.uid = b.uid')->field('a.id,a.uid,a.rid,b.nick_name,b.base64_nick_name, b.head_pic, a.ratio')->where('a.rid', $rid)->where('a.is_delete', 1)->select();
|
|
foreach ($room_subsidy_list as $k => &$v){
|
|
$v['nick_name'] = mb_convert_encoding(base64_decode($v['base64_nick_name']), 'UTF-8', 'UTF-8');
|
|
$v['head_pic'] = localpath_to_netpath($v['head_pic']);
|
|
$v['subsidy_money'] = $subsidy_money * $v['ratio'] * 0.01;
|
|
$assigned_ratio += $v['ratio'];
|
|
}
|
|
|
|
$surplus_ratio = 100 - $assigned_ratio;
|
|
$owner_subsidy_money = $subsidy_money * $surplus_ratio * 0.01;
|
|
$room_owner_info['ratio'] = $surplus_ratio;
|
|
$room_owner_info['subsidy_money'] = $owner_subsidy_money;
|
|
|
|
$data = [];
|
|
$data['room_owner_info'] = $room_owner_info;
|
|
$data['room_subsidy_list'] = $room_subsidy_list;
|
|
|
|
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
|
}
|
|
|
|
//添加房间补贴用户
|
|
public function add_room_user_subsidy($uid, $rid, $user_id, $ratio){
|
|
$room_info = db::name('room')->find($rid);
|
|
if(!$room_info){
|
|
return ['code' => 201, 'msg' => '参数错误', 'data' => null];
|
|
}
|
|
|
|
if($uid != $room_info['room_owner_uid']){
|
|
return ['code' => 201, 'msg' => '无权限添加', 'data' => null];
|
|
}
|
|
if($room_info['is_earnings'] == 2){
|
|
return ['code' => 201, 'msg' => '当前房间暂未开放收益,请联系管理人员', 'data' => null];
|
|
}
|
|
|
|
if($ratio < 0){
|
|
return ['code' => 201, 'msg' => '设置主持比例不能小于0', 'data' => null];
|
|
}
|
|
|
|
if(ceil($ratio) != $ratio){
|
|
return ['code' => 201, 'msg' => '设置比例必须为整数', 'data' => null];
|
|
}
|
|
|
|
if(!empty($ratio) && $ratio > 100){
|
|
return ['code' => 201, 'msg' => '设置主持比例最大不能超过100%', 'data' => null];
|
|
}
|
|
|
|
$user_info = db::name('user')->find($user_id);
|
|
if(!$user_info){
|
|
return ['code' => 201, 'msg' => '该用户不存在', 'data' => null];
|
|
}
|
|
|
|
//是否互为好友
|
|
$fans_info = db::name('user_follow')->where('uid', $uid)->where('follow_uid', $user_id)->find();
|
|
if(!$fans_info){
|
|
return ['code' => 201, 'msg' => '你和该用户没有互相关注', 'data' => null];
|
|
}
|
|
$follow_info = db::name('user_follow')->where('follow_uid', $uid)->where('uid', $user_id)->find();
|
|
if(!$follow_info){
|
|
return ['code' => 201, 'msg' => '你和该用户没有互相关注', 'data' => null];
|
|
}
|
|
|
|
//该用户是否已被添加
|
|
$info = db::name('room_user_subsidy')->where('rid', $rid)->where('uid', $user_id)->where('is_delete', 1)->find();
|
|
if($info){
|
|
return ['code' => 201, 'msg' => '该用户已被添加过', 'data' => null];
|
|
}
|
|
|
|
//当前剩余可用比例
|
|
$subsidy_money = db::name('room_user_subsidy')->where('rid', $rid)->where('is_delete', 1)->sum('ratio');
|
|
if($subsidy_money + $ratio > 100){
|
|
return ['code' => 201, 'msg' => '设置比例已达上限', 'data' => null];
|
|
}
|
|
|
|
$insert = [];
|
|
$insert['rid'] = $rid;
|
|
$insert['uid'] = $user_id;
|
|
$insert['ratio'] = $ratio;
|
|
$insert['add_time'] = time();
|
|
$reslut = db::name('room_user_subsidy')->insert($insert);
|
|
if(!$reslut){
|
|
return ['code' => 201, 'msg' => '添加失败', 'data' => null];
|
|
}else{
|
|
return ['code' => 200, 'msg' => '添加成功', 'data' => null];
|
|
}
|
|
|
|
}
|
|
|
|
//设置当前房间用户补贴
|
|
public function update_room_user_subsidy($uid, $rid, $user_id, $ratio){
|
|
$room_info = db::name('room')->find($rid);
|
|
if(!$room_info){
|
|
return ['code' => 201, 'msg' => '参数错误', 'data' => null];
|
|
}
|
|
|
|
if($uid != $room_info['room_owner_uid']){
|
|
return ['code' => 201, 'msg' => '无权限编辑', 'data' => null];
|
|
}
|
|
|
|
$now_week = date('w');
|
|
if($now_week != 1){
|
|
return ['code' => 201, 'msg' => '只有周一可设置补贴比例', 'data' => null];
|
|
}
|
|
|
|
if($ratio < 0){
|
|
return ['code' => 201, 'msg' => '设置主持比例不能小于0', 'data' => null];
|
|
}
|
|
|
|
if(ceil($ratio) != $ratio){
|
|
return ['code' => 201, 'msg' => '设置比例必须为整数', 'data' => null];
|
|
}
|
|
|
|
if(!empty($ratio) && $ratio > 100){
|
|
return ['code' => 201, 'msg' => '设置主持比例最大不能超过100%', 'data' => null];
|
|
}
|
|
|
|
$user_info = db::name('user')->find($user_id);
|
|
if(!$user_info){
|
|
return ['code' => 201, 'msg' => '该用户不存在', 'data' => null];
|
|
}
|
|
|
|
//该用户是否已被添加
|
|
$info = db::name('room_user_subsidy')->where('rid', $rid)->where('uid', $user_id)->where('is_delete', 1)->find();
|
|
if(!$info){
|
|
return ['code' => 201, 'msg' => '当前信息不存在', 'data' => null];
|
|
}
|
|
|
|
$next_update_time = time() - $info['update_time'];
|
|
if($next_update_time < (60*60)){
|
|
return ['code' => 201, 'msg' => '编辑间隔不能小于60分钟', 'data' => null];
|
|
}
|
|
|
|
//当前剩余可用比例
|
|
$map = [];
|
|
$map[] = ['rid', '=', $rid];
|
|
$map[] = ['uid', 'neq', $user_id];
|
|
$map[] = ['is_delete', '=', 1];
|
|
$subsidy_money = db::name('room_user_subsidy')->where($map)->sum('ratio');
|
|
if($subsidy_money + $ratio > 100){
|
|
return ['code' => 201, 'msg' => '设置比例已达上限', 'data' => null];
|
|
}
|
|
|
|
$update = [];
|
|
$update['ratio'] = $ratio;
|
|
$update['update_time'] = time();
|
|
$reslut = db::name('room_user_subsidy')->where('id', $info['id'])->update($update);
|
|
if(!$reslut){
|
|
return ['code' => 201, 'msg' => '编辑失败', 'data' => null];
|
|
}else{
|
|
return ['code' => 200, 'msg' => '编辑成功', 'data' => null];
|
|
}
|
|
|
|
}
|
|
|
|
//删除房间用户补贴
|
|
public function del_room_user_subsidy($uid, $id, $rid){
|
|
$room_info = db::name('room')->find($rid);
|
|
if(!$room_info){
|
|
return ['code' => 201, 'msg' => '参数错误', 'data' => null];
|
|
}
|
|
|
|
if($uid != $room_info['room_owner_uid']){
|
|
return ['code' => 201, 'msg' => '无权限删除', 'data' => null];
|
|
}
|
|
|
|
//该用户是否存在
|
|
$info = db::name('room_user_subsidy')->where('id', $id)->where('is_delete', 1)->find();
|
|
if(!$info){
|
|
return ['code' => 201, 'msg' => '当前信息不存在', 'data' => null];
|
|
}
|
|
|
|
$reslut = db::name('room_user_subsidy')->where('id', $id)->update(['is_delete' => 2, 'update_time' => time()]);
|
|
if(!$reslut){
|
|
return ['code' => 201, 'msg' => '删除失败', 'data' => null];
|
|
}else{
|
|
return ['code' => 200, 'msg' => '删除成功', 'data' => null];
|
|
}
|
|
|
|
|
|
}
|
|
|
|
//获取当前类型的随机房间ID
|
|
public function now_room_category($uid, $cate_id){
|
|
if(empty($cate_id)){
|
|
return ['code' => 201, 'msg' => '参数错误', 'data' => null];
|
|
}
|
|
|
|
$room_info = db::name('room')->where('cate_id', $cate_id)->where('room_status', 1)->orderRaw('rand()')->find();
|
|
if(!$room_info){
|
|
return ['code' => 201, 'msg' => '当前类型房间尚不存在', 'data' => null];
|
|
}
|
|
|
|
$data = [];
|
|
$data['rid'] = $room_info['rid'];
|
|
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
|
|
|
}
|
|
|
|
|
|
|
|
//统计上周房间流水
|
|
public function statistics_room_last_week_earnings($type){
|
|
set_time_limit(0);
|
|
ini_set('memory_limit', '1024M');
|
|
|
|
//房间补贴信息
|
|
if($type == 1){
|
|
$room_subsidy_info = db::name('room_subsidy')->field('id,type,level_name,total_gift_price,money')->where('is_delete', 1)->order('id asc')->select();
|
|
}else{
|
|
$room_subsidy_info = db::name('room_subsidy_lucky')->field('id,type,level_name,total_gift_price,money')->where('is_delete', 1)->order('id asc')->select();
|
|
}
|
|
|
|
$last_week_time = strtotime('-1 week last sunday', time());
|
|
|
|
//获取所有房间上周流水
|
|
$map = [];
|
|
$map[] = ['type', '=', $type];
|
|
$last_week_income = db::name('user_charm_count_day')->where($map)->field('rid,sum(amount) as amount')->whereTime('add_time', 'last week')->group('rid')->select();
|
|
$insert_all = [];
|
|
if(!empty($last_week_income)){
|
|
foreach ($last_week_income as $k => $v){
|
|
//当前房间是否有收益
|
|
$room_is_earnings = db::name('room')->where('rid', $v['rid'])->value('is_earnings');
|
|
if($room_is_earnings == 1){
|
|
//上周补贴奖励金额
|
|
$subsidy_money = 0;
|
|
if($type == 1){
|
|
foreach ($room_subsidy_info as $a => &$b){
|
|
$money = $b['money'];
|
|
if($b['total_gift_price'] > $v['amount']){
|
|
break;
|
|
}else{
|
|
if($b['type'] == 1){
|
|
$subsidy_money = $b['money'];
|
|
}else{
|
|
$subsidy_money = $v['amount'] * $money * 0.001;
|
|
}
|
|
}
|
|
}
|
|
}else{
|
|
foreach ($room_subsidy_info as $a => &$b){
|
|
$money = $b['money'];
|
|
|
|
if($b['total_gift_price'] > $v['amount']){
|
|
break;
|
|
}else{
|
|
if($b['type'] == 1){
|
|
$subsidy_money = $b['money'];
|
|
}else{
|
|
$subsidy_money = $v['amount'] * $money * 0.001;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//上周是否已添加
|
|
$where = [];
|
|
$where[] = ['rid', '=', $v['rid']];
|
|
$where[] = ['type', '=', $type];
|
|
$where[] = ['last_week_time', '=', $last_week_time];
|
|
$info = db::name('room_week_earnings_log')->where($where)->find();
|
|
if(empty($info)){
|
|
$insert = [];
|
|
$insert['rid'] = $v['rid'];
|
|
$insert['type'] = $type;
|
|
$insert['change_value'] = $v['amount'];
|
|
$insert['earnings'] = $subsidy_money;
|
|
$insert['add_time'] = time();
|
|
$insert['last_week_time'] = $last_week_time;
|
|
$insert_all[] = $insert;
|
|
}
|
|
}
|
|
}
|
|
if(!empty($insert_all)){
|
|
$reslut = db::name('room_week_earnings_log')->insertAll($insert_all);
|
|
if(!$reslut){
|
|
echo date('Y-m-d H:i:s').'执行失败';
|
|
}
|
|
}
|
|
}
|
|
echo date('Y-m-d H:i:s').'执行成功';
|
|
|
|
}
|
|
|
|
//发送用户收益
|
|
public function give_user_room_week_earnings($type){
|
|
exit;
|
|
set_time_limit(0);
|
|
ini_set('memory_limit', '1024M');
|
|
$last_week_time = strtotime('-1 week last sunday', time());
|
|
if($type == 1){
|
|
$user_money_log = 34;
|
|
$remarks = '房间补贴收益';
|
|
}else{
|
|
$user_money_log = 35;
|
|
$remarks = '幸运补贴收益';
|
|
}
|
|
//获取未发送的房间上周收益
|
|
$map = [];
|
|
$map[] = ['type', '=', $type];
|
|
$map[] = ['is_delete', '=', 1];
|
|
$map[] = ['last_week_time', '=', $last_week_time];
|
|
$list = db::name('room_week_earnings_log')->where($map)->select();
|
|
if(!empty($list)){
|
|
foreach ($list as $k => $v){
|
|
if($v['earnings'] > 0){
|
|
Db::startTrans();
|
|
try {
|
|
$insert_all = [];
|
|
$assigned_ratio = 0;
|
|
//获取房间补贴用户
|
|
$where = [];
|
|
$where[] = ['rid', '=', $v['rid']];
|
|
$where[] = ['ratio', '>', 0];
|
|
$where[] = ['is_delete', '=', 1];
|
|
$room_subsidy_list = db::name('room_user_subsidy')->where($where)->select();
|
|
foreach ($room_subsidy_list as $a => $b){
|
|
//增加收益
|
|
$user_subsidy_money = $v['earnings'] * $b['ratio'] * 0.01;
|
|
$reslut = model('admin/User')->change_user_money_by_uid($b['uid'], $user_subsidy_money, 1, $user_money_log, $remarks, $b['uid'], 0, $v['rid']);
|
|
if ($reslut['code'] == 201) {
|
|
Db::rollback();
|
|
return ['code' => 201, 'msg' => $reslut['msg'], 'data' => null];
|
|
}
|
|
$assigned_ratio += $b['ratio'];
|
|
|
|
$insert = [];
|
|
$insert['type'] = $type;
|
|
$insert['user_type'] = 2;
|
|
$insert['rid'] = $v['rid'];
|
|
$insert['uid'] = $b['uid'];
|
|
$insert['ratio'] = $b['ratio'];
|
|
$insert['change_value'] = $v['change_value'];
|
|
$insert['room_earnings'] = $v['earnings'];
|
|
$insert['user_earnings'] = $user_subsidy_money;
|
|
$insert['add_time'] = time();
|
|
$insert['is_delete'] = 2;
|
|
$insert['last_week_time'] = $last_week_time;
|
|
$insert_all[] = $insert;
|
|
}
|
|
|
|
//房主获取房间补贴
|
|
$room_owner_uid = db::name('room')->where('rid', $v['rid'])->value('room_owner_uid');
|
|
$surplus_ratio = 100 - $assigned_ratio;
|
|
$owner_subsidy_money = $v['earnings'] * $surplus_ratio * 0.01;
|
|
$reslut = model('admin/User')->change_user_money_by_uid($room_owner_uid, $owner_subsidy_money, 1, $user_money_log, $remarks, $room_owner_uid, 0, $v['rid']);
|
|
if ($reslut['code'] == 201) {
|
|
Db::rollback();
|
|
return ['code' => 201, 'msg' => $reslut['msg'], 'data' => null];
|
|
}
|
|
$insert = [];
|
|
$insert['type'] = $type;
|
|
$insert['user_type'] = 1;
|
|
$insert['rid'] = $v['rid'];
|
|
$insert['uid'] = $room_owner_uid;
|
|
$insert['ratio'] = $surplus_ratio;
|
|
$insert['change_value'] = $v['change_value'];
|
|
$insert['room_earnings'] = $v['earnings'];
|
|
$insert['user_earnings'] = $owner_subsidy_money;
|
|
$insert['add_time'] = time();
|
|
$insert['is_delete'] = 2;
|
|
$insert['last_week_time'] = $last_week_time;
|
|
$insert_all[] = $insert;
|
|
$reslut = db::name('user_room_week_earnings')->insertAll($insert_all);
|
|
if(!$reslut){
|
|
Db::rollback();
|
|
return ['code' => 201, 'msg' => '失败', 'data' => null];
|
|
}
|
|
|
|
$reslut = db::name('room_week_earnings_log')->where('id', $v['id'])->update(['is_delete' => 2, 'update_time' => time()]);
|
|
if(!$reslut){
|
|
Db::rollback();
|
|
return ['code' => 201, 'msg' => '失败', 'data' => null];
|
|
}
|
|
|
|
Db::commit();
|
|
|
|
} catch (\Exception $e) {
|
|
// 回滚事务
|
|
Db::rollback();
|
|
}
|
|
}else{
|
|
db::name('room_week_earnings_log')->where('id', $v['id'])->update(['is_delete' => 2, 'update_time' => time()]);
|
|
}
|
|
}
|
|
}
|
|
|
|
echo date('Y-m-d H:i:s').'执行成功';
|
|
}
|
|
|
|
//统计用户收益
|
|
public function gives_user_room_week_earnings($type){
|
|
set_time_limit(0);
|
|
ini_set('memory_limit', '1024M');
|
|
$last_week_time = strtotime('-1 week last sunday', time());
|
|
|
|
//获取未发送的房间上周收益
|
|
$map = [];
|
|
$map[] = ['type', '=', $type];
|
|
$map[] = ['is_delete', '=', 1];
|
|
$map[] = ['last_week_time', '=', $last_week_time];
|
|
$list = db::name('room_week_earnings_log')->where($map)->select();
|
|
if(!empty($list)){
|
|
foreach ($list as $k => $v){
|
|
if($v['earnings'] > 0){
|
|
Db::startTrans();
|
|
try {
|
|
$insert_all = [];
|
|
$assigned_ratio = 0;
|
|
//获取房间补贴用户
|
|
$where = [];
|
|
$where[] = ['rid', '=', $v['rid']];
|
|
$where[] = ['ratio', '>', 0];
|
|
$where[] = ['is_delete', '=', 1];
|
|
$room_subsidy_list = db::name('room_user_subsidy')->where($where)->select();
|
|
foreach ($room_subsidy_list as $a => $b){
|
|
//增加收益
|
|
$user_subsidy_money = $v['earnings'] * $b['ratio'] * 0.01;
|
|
// $reslut = model('admin/User')->change_user_money_by_uid($b['uid'], $user_subsidy_money, 1, $user_money_log, $remarks, $b['uid'], 0, $v['rid']);
|
|
// if ($reslut['code'] == 201) {
|
|
// Db::rollback();
|
|
// return ['code' => 201, 'msg' => $reslut['msg'], 'data' => null];
|
|
// }
|
|
$assigned_ratio += $b['ratio'];
|
|
|
|
$insert = [];
|
|
$insert['type'] = $type;
|
|
$insert['user_type'] = 2;
|
|
$insert['rid'] = $v['rid'];
|
|
$insert['uid'] = $b['uid'];
|
|
$insert['ratio'] = $b['ratio'];
|
|
$insert['change_value'] = $v['change_value'];
|
|
$insert['room_earnings'] = $v['earnings'];
|
|
$insert['user_earnings'] = $user_subsidy_money;
|
|
$insert['add_time'] = time();
|
|
$insert['is_delete'] = 1;
|
|
$insert['last_week_time'] = $last_week_time;
|
|
$insert_all[] = $insert;
|
|
}
|
|
|
|
//房主获取房间补贴
|
|
$room_owner_uid = db::name('room')->where('rid', $v['rid'])->value('room_owner_uid');
|
|
$surplus_ratio = 100 - $assigned_ratio;
|
|
$owner_subsidy_money = $v['earnings'] * $surplus_ratio * 0.01;
|
|
// $reslut = model('admin/User')->change_user_money_by_uid($room_owner_uid, $owner_subsidy_money, 1, $user_money_log, $remarks, $room_owner_uid, 0, $v['rid']);
|
|
// if ($reslut['code'] == 201) {
|
|
// Db::rollback();
|
|
// return ['code' => 201, 'msg' => $reslut['msg'], 'data' => null];
|
|
// }
|
|
$insert = [];
|
|
$insert['type'] = $type;
|
|
$insert['user_type'] = 1;
|
|
$insert['rid'] = $v['rid'];
|
|
$insert['uid'] = $room_owner_uid;
|
|
$insert['ratio'] = $surplus_ratio;
|
|
$insert['change_value'] = $v['change_value'];
|
|
$insert['room_earnings'] = $v['earnings'];
|
|
$insert['user_earnings'] = $owner_subsidy_money;
|
|
$insert['add_time'] = time();
|
|
$insert['is_delete'] = 1;
|
|
$insert['last_week_time'] = $last_week_time;
|
|
$insert_all[] = $insert;
|
|
$reslut = db::name('user_room_week_earnings')->insertAll($insert_all);
|
|
if(!$reslut){
|
|
Db::rollback();
|
|
return ['code' => 201, 'msg' => '失败', 'data' => null];
|
|
}
|
|
|
|
$reslut = db::name('room_week_earnings_log')->where('id', $v['id'])->update(['is_delete' => 2, 'update_time' => time()]);
|
|
if(!$reslut){
|
|
Db::rollback();
|
|
return ['code' => 201, 'msg' => '失败', 'data' => null];
|
|
}
|
|
|
|
Db::commit();
|
|
|
|
} catch (\Exception $e) {
|
|
// 回滚事务
|
|
Db::rollback();
|
|
}
|
|
}else{
|
|
db::name('room_week_earnings_log')->where('id', $v['id'])->update(['is_delete' => 2, 'update_time' => time()]);
|
|
}
|
|
}
|
|
}
|
|
|
|
echo date('Y-m-d H:i:s').'执行成功';
|
|
}
|
|
|
|
}
|