148 lines
5.8 KiB
PHP
148 lines
5.8 KiB
PHP
<?php
|
|
|
|
namespace app\admin\model;
|
|
|
|
use think\Db;
|
|
use think\Model;
|
|
|
|
class GuildMoneyLog extends Model
|
|
{
|
|
//公会流水列表
|
|
public function get_list($guild_id, $start, $end, $page = 1, $limit = 20)
|
|
{
|
|
$map = [];
|
|
|
|
if($guild_id) {
|
|
$map[] = ['a.room_guild_id', '=', $guild_id];
|
|
}
|
|
if($start) {
|
|
$map[] = ['a.add_time', '>=', strtotime($start)];
|
|
}
|
|
if($end) {
|
|
$map[] = ['a.add_time', '<=', strtotime($end)];
|
|
}
|
|
$map[] = ['a.room_guild_id', '>', 0];
|
|
// dump($map);die;
|
|
$list = db::name('user_send_gift')->alias('a')
|
|
->field('a.*,b.room_name,b.room_number,b.room_owner_uid,c.guild_name,c.base64_guild_name,c.uid')
|
|
->leftJoin('yy_room b', 'a.rid = b.rid')
|
|
->leftJoin('yy_guild c', 'a.room_guild_id = c.id')
|
|
->where($map)->order('a.add_time', 'desc')->page($page, $limit)->select();
|
|
$uid_arr = $receive_uid_arr = [];
|
|
foreach ($list as $val) {
|
|
$uid_arr[] = $val['uid'];
|
|
$receive_uid_arr[] = $val['receive_uid'];
|
|
}
|
|
$uid_arr = array_merge($uid_arr, $receive_uid_arr);
|
|
$user_list = Db::name('user')->whereIn('uid', $uid_arr)->column('nick_name', 'uid');
|
|
|
|
foreach ($list as $k => &$v) {
|
|
$v['guild_name'] = mb_convert_encoding(base64_decode($v['base64_guild_name']), 'UTF-8', 'UTF-8');
|
|
$v['send_nick_name'] = $user_list[$v['uid']] ?? '';
|
|
$v['receive_nick_name'] = $user_list[$v['receive_uid']] ?? '';
|
|
}
|
|
$data = [];
|
|
$data['count'] = db::name('user_send_gift')->alias('a')->where($map)->count();
|
|
$data['list'] = $list;
|
|
$gift_total_price = Db::name('user_send_gift')->alias('a')->where($map)->sum('gift_total_price');
|
|
$totalRowData = ['gift_total_price' => $gift_total_price];
|
|
$data['totalRow'] = $totalRowData;
|
|
// $data['totalRow'] = ['gift_total_price' => strval($gift_total_price)];
|
|
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
|
}
|
|
public function get_guild_room_money_log_list($guild_id, $rid, $start, $end, $page, $limit)
|
|
{
|
|
$rid_arr = [];
|
|
if($rid) {
|
|
$rid_arr = [$rid];
|
|
}
|
|
// else {
|
|
// $rid_arr = $this->get_guild_room_list($guild_id);
|
|
// }
|
|
// dump($rid_arr);die;
|
|
$map = [];
|
|
if(!empty($rid_arr)) {
|
|
$map[] = ['a.rid', 'in', $rid_arr];
|
|
}
|
|
if($start) {
|
|
$map[] = ['a.add_time', '>=', strtotime($start)];
|
|
}
|
|
if($end) {
|
|
$map[] = ['a.add_time', '<=', strtotime($end)];
|
|
}
|
|
if($guild_id > 0) {
|
|
$map[] = ['a.room_guild_id', '=', $guild_id];
|
|
}
|
|
$map[] = ['a.room_guild_id', '>', 0];
|
|
|
|
$list = db::name('user_send_gift')->alias('a')
|
|
->field('a.*,b.room_name,b.base64_room_name,b.room_number,b.room_owner_uid,c.guild_name,c.base64_guild_name,c.uid')
|
|
->leftJoin('yy_room b', 'a.rid = b.rid')
|
|
->leftJoin('yy_guild c', 'a.room_guild_id = c.id')
|
|
->where($map)->order('a.add_time', 'desc')->page($page, $limit)->select();
|
|
$uid_arr = $receive_uid_arr = [];
|
|
foreach ($list as $val) {
|
|
$uid_arr[] = $val['uid'];
|
|
$receive_uid_arr[] = $val['receive_uid'];
|
|
}
|
|
$uid_arr = array_merge($uid_arr, $receive_uid_arr);
|
|
$user_list = Db::name('user')->whereIn('uid', $uid_arr)->column('nick_name', 'uid');
|
|
|
|
foreach ($list as $k => &$v) {
|
|
$v['guild_name'] = mb_convert_encoding(base64_decode($v['base64_guild_name']), 'UTF-8', 'UTF-8');
|
|
$v['send_nick_name'] = $user_list[$v['uid']] ?? '';
|
|
$v['receive_nick_name'] = $user_list[$v['receive_uid']] ?? '';
|
|
$v['room_name'] = mb_convert_encoding(base64_decode($v['base64_room_name']), 'UTF-8', 'UTF-8');
|
|
}
|
|
$data = [];
|
|
$data['count'] = db::name('user_send_gift')->alias('a')->where($map)->count();
|
|
$data['list'] = $list;
|
|
$totalRowData = Db::name('user_send_gift')->alias('a')
|
|
->field('SUM(gift_total_price) as gift_total_price, SUM(room_owner_profit) as room_owner_profit')
|
|
->where($map)->find();
|
|
|
|
$data['totalRow'] = $totalRowData;
|
|
// $data['totalRow'] = ['gift_total_price' => strval($gift_total_price)];
|
|
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
|
}
|
|
|
|
//获取工会签约房间列表
|
|
public function get_guild_room_list($guild_id = 0, $is_move = 0)
|
|
{
|
|
$map = [];
|
|
if($guild_id) {
|
|
$map[] = ['guild_id', '=', $guild_id];
|
|
}
|
|
if($is_move) {
|
|
$map[] = ['is_delete', '=', $is_move];
|
|
}
|
|
$map[] = ['status', '=', 1];
|
|
|
|
$uid = Db::name('user_guild')->where($map)->column('uid');
|
|
$uid_arr = Db::name('user')->where(['uid' => $uid, 'is_sign' => 1])->column('uid');
|
|
$rid_arr = Db::name('room')->where(['room_owner_uid' => $uid_arr, 'room_status' => 1])->column('rid');
|
|
return $rid_arr;
|
|
}
|
|
|
|
//获取工会签约房间列表
|
|
public function get_guild_room_list_by_guild_id($guild_id)
|
|
{
|
|
$map = [
|
|
['a.guild_id', '=', $guild_id],
|
|
['a.status', '=', 1],
|
|
['b.is_sign', '=', 1],
|
|
];
|
|
$list = Db::name('user_guild')->alias('a')
|
|
->leftJoin('yy_user b', 'a.uid = b.uid')
|
|
->leftJoin('yy_room c', 'a.uid = c.room_owner_uid')
|
|
->field('a.is_delete,c.rid,c.base64_room_name')
|
|
->where($map)
|
|
->select();
|
|
foreach ($list as &$val) {
|
|
$val['room_name'] = mb_convert_encoding(base64_decode($val['base64_room_name']), 'UTF-8', 'UTF-8');
|
|
$val['is_delete_title'] = $val['is_delete'] == 1 ? '未离开' : '离开';
|
|
}
|
|
return $list;
|
|
}
|
|
}
|