206 lines
7.3 KiB
PHP
206 lines
7.3 KiB
PHP
<?php
|
|
|
|
namespace app\api\model;
|
|
|
|
use think\Db;
|
|
use think\Model;
|
|
|
|
class Statistics extends Model
|
|
{
|
|
//统计每日贡献值
|
|
public function day_contribution($uid, $rid, $amount, $type = 1)
|
|
{
|
|
$map = [];
|
|
$map[] = ['uid', '=', $uid];
|
|
$map[] = ['rid', '=', $rid];
|
|
$map[] = ['type', '=', $type];
|
|
$day_time = strtotime(date('Ymd'));
|
|
$map[] = ['add_time', '>=', $day_time];
|
|
$info = Db::name('user_contribution_count_day')->where($map)->find();
|
|
if($info) {
|
|
Db::name('user_contribution_count_day')->where('sid', $info['sid'])->inc('amount', $amount)->update(['update_time' => time()]);
|
|
} else {
|
|
$insert_data = [
|
|
'uid' => $uid,
|
|
'rid' => $rid,
|
|
'type' => $type,
|
|
'amount' => $amount,
|
|
'add_time' => time(),
|
|
'update_time' => time(),
|
|
];
|
|
Db::name('user_contribution_count_day')->insert($insert_data);
|
|
}
|
|
}
|
|
|
|
//统计用户每日收益
|
|
public function day_charm($uid, $rid, $amount, $type = 1)
|
|
{
|
|
$map = [];
|
|
$map[] = ['uid', '=', $uid];
|
|
$map[] = ['rid', '=', $rid];
|
|
$map[] = ['type', '=', $type];
|
|
$day_time = strtotime(date('Ymd'));
|
|
$map[] = ['add_time', '>=', $day_time];
|
|
$info = Db::name('user_charm_count_day')->where($map)->find();
|
|
if($info) {
|
|
Db::name('user_charm_count_day')->where('sid', $info['sid'])->inc('amount', $amount)->update(['update_time' => time()]);
|
|
} else {
|
|
$insert_data = [
|
|
'uid' => $uid,
|
|
'rid' => $rid,
|
|
'type' => $type,
|
|
'amount' => $amount,
|
|
'add_time' => time(),
|
|
'update_time' => time(),
|
|
];
|
|
Db::name('user_charm_count_day')->insert($insert_data);
|
|
}
|
|
}
|
|
|
|
//统计收益带公会
|
|
public function day_guild_charm($uid, $rid, $guild_id, $amount, $type = 1)
|
|
{
|
|
$map = [];
|
|
$map[] = ['uid', '=', $uid];
|
|
$map[] = ['rid', '=', $rid];
|
|
$map[] = ['guild_id', '=', $guild_id];
|
|
$map[] = ['type', '=', $type];
|
|
$day_time = strtotime(date('Ymd'));
|
|
$map[] = ['add_time', '>=', $day_time];
|
|
$info = Db::name('user_guild_charm_count_day')->where($map)->find();
|
|
if($info) {
|
|
Db::name('user_guild_charm_count_day')->where('sid', $info['sid'])->inc('amount', $amount)->update(['update_time' => time()]);
|
|
} else {
|
|
$insert_data = [
|
|
'uid' => $uid,
|
|
'rid' => $rid,
|
|
'type' => $type,
|
|
'guild_id' => $guild_id,
|
|
'amount' => $amount,
|
|
'add_time' => time(),
|
|
'update_time' => time(),
|
|
];
|
|
Db::name('user_guild_charm_count_day')->insert($insert_data);
|
|
}
|
|
}
|
|
|
|
//统计房间收益带公会
|
|
public function day_room_guild_charm($uid, $rid, $guild_id, $amount, $type = 1)
|
|
{
|
|
$map = [];
|
|
$map[] = ['uid', '=', $uid];
|
|
$map[] = ['rid', '=', $rid];
|
|
$map[] = ['type', '=', $type];
|
|
$map[] = ['guild_id', '=', $guild_id];
|
|
$day_time = strtotime(date('Ymd'));
|
|
$map[] = ['add_time', '>=', $day_time];
|
|
$info = Db::name('room_guild_charm_count_day')->where($map)->find();
|
|
if($info) {
|
|
Db::name('room_guild_charm_count_day')->where('sid', $info['sid'])->inc('amount', $amount)->update(['update_time' => time()]);
|
|
} else {
|
|
$insert_data = [
|
|
'uid' => $uid,
|
|
'rid' => $rid,
|
|
'type' => $type,
|
|
'guild_id' => $guild_id,
|
|
'amount' => $amount,
|
|
'add_time' => time(),
|
|
'update_time' => time(),
|
|
];
|
|
Db::name('room_guild_charm_count_day')->insert($insert_data);
|
|
}
|
|
}
|
|
|
|
//统计用户cp值记录
|
|
public function day_cp_value($uid, $receive_uid, $amount){
|
|
|
|
$map = [];
|
|
$map[] = ['uid|receive_uid', '=', $uid];
|
|
$map[] = ['uid|receive_uid', '=', $receive_uid];
|
|
//是否互相为cp
|
|
$cp_info = db::name('user_coupling')->where($map)->where('is_delete', 1)->find();
|
|
if(empty($cp_info)){
|
|
return true;
|
|
}
|
|
|
|
$day_time = strtotime(date('Ymd'));
|
|
$map = [];
|
|
$map[] = ['uid', '=', $cp_info['uid']];
|
|
$map[] = ['receive_uid', '=', $cp_info['receive_uid']];
|
|
$map[] = ['add_time', '>=', $day_time];
|
|
$info = db::name('user_cp_count_day')->where($map)->find();
|
|
if($info){
|
|
db::name('user_cp_count_day')->where('sid', $info['sid'])->inc('amount', $amount)->update(['update_time' => time()]);
|
|
}else{
|
|
$insert_data = [
|
|
'uid' => $cp_info['uid'],
|
|
'receive_uid' => $cp_info['receive_uid'],
|
|
'amount' => $amount,
|
|
'add_time' => time(),
|
|
'update_time' => time(),
|
|
];
|
|
Db::name('user_cp_count_day')->insert($insert_data);
|
|
}
|
|
|
|
}
|
|
|
|
//统计用户房间收益记录
|
|
public function day_room_profit($uid, $rid, $amount, $type){
|
|
$map = [];
|
|
$map[] = ['uid', '=', $uid];
|
|
$map[] = ['rid', '=', $rid];
|
|
$map[] = ['type', '=', $type];
|
|
$day_time = strtotime(date('Ymd'));
|
|
$map[] = ['add_time', '>=', $day_time];
|
|
$info = db::name('user_room_profit_day')->where($map)->find();
|
|
if($info){
|
|
db::name('user_room_profit_day')->where('sid', $info['sid'])->inc('amount', $amount)->update(['update_time' => time()]);
|
|
}else{
|
|
$insert_data = [
|
|
'uid' => $uid,
|
|
'rid' => $rid,
|
|
'type' => $type,
|
|
'amount' => $amount,
|
|
'add_time' => time(),
|
|
'update_time' => time(),
|
|
];
|
|
Db::name('user_room_profit_day')->insert($insert_data);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
//主持在线时长统计
|
|
public function room_host_online_time($uid, $rid, $type){
|
|
$day_time = strtotime(date('Ymd'));
|
|
$map = [];
|
|
$map[] = ['uid', '=', $uid];
|
|
$map[] = ['rid', '=', $rid];
|
|
$map[] = ['add_time', '>=', $day_time];
|
|
$info = db::name('room_host_online_time_log')->where($map)->find();
|
|
if($type == 1){//上麦
|
|
if($info){
|
|
db::name('room_host_online_time_log')->where('id', $info['id'])->update(['start_time' => time(), 'end_time' => 0, 'update_time' => time()]);
|
|
}else{
|
|
$insert_data = [
|
|
'uid' => $uid,
|
|
'rid' => $rid,
|
|
'add_time' => time(),
|
|
'start_time' => time(),
|
|
];
|
|
Db::name('room_host_online_time_log')->insert($insert_data);
|
|
}
|
|
}else{//下麦
|
|
if($info){
|
|
//计算时间
|
|
$end_time = time();
|
|
$online_time = (int)(($end_time - $info['start_time'])/60);
|
|
if($online_time > 0){
|
|
db::name('room_host_online_time_log')->where('id', $info['id'])->inc('online_time', $online_time)->update(['end_time' => time(), 'update_time' => time()]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|