初始化代码
This commit is contained in:
205
application/api/model/Statistics.php
Normal file
205
application/api/model/Statistics.php
Normal file
@@ -0,0 +1,205 @@
|
||||
<?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()]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user