1069 lines
48 KiB
PHP
1069 lines
48 KiB
PHP
<?php
|
||
|
||
namespace app\cron\controller;
|
||
|
||
use app\common\controller\Push;
|
||
use app\common\library\GiftTableManager;
|
||
use think\Cache;
|
||
use think\Db;
|
||
use Yzh\YunPay;
|
||
|
||
/*
|
||
* 定时任务,每秒执行的方法
|
||
*/
|
||
|
||
class Test
|
||
{
|
||
/* https://vespa.qxyushen.top/api/Cron/Test
|
||
* 运行函数
|
||
*/
|
||
function index()
|
||
{
|
||
// 设置脚本执行时间无限
|
||
set_time_limit(0);
|
||
// echo "清洗任务数据\n";
|
||
// $this->blind_box_error();
|
||
// $this->xlh_gift_send();
|
||
// echo "\n";
|
||
//
|
||
// $this->clean_guild_flow();
|
||
|
||
// $this->giftSend();
|
||
// $this->createGuildSubsidyDataNewNew();
|
||
// $this->task_coin_count();
|
||
$this->createGuildSubsidyDataNew();
|
||
// $this->repair_guild_room_data();
|
||
|
||
}
|
||
|
||
//统计盲盒转盘错误数据
|
||
public function blind_box_error()
|
||
{
|
||
die("暂停");
|
||
// 设置数据库查询超时时间
|
||
Db::query("SET SESSION wait_timeout=600");
|
||
Db::query("SET SESSION interactive_timeout=600");
|
||
|
||
// 使用连表查询,直接找出送给多人的数据
|
||
echo "开始查询送给多人的数据...\n";
|
||
|
||
// 先查询所有有多个不同 gift_user_id 的 tid
|
||
$multipleGiftRecords = Db::name('vs_blind_box_turntable_results_log')
|
||
->group('tid')
|
||
->having('COUNT(DISTINCT gift_user_id) > 1')
|
||
->field('tid, COUNT(DISTINCT gift_user_id) as user_count,gift_user_id')
|
||
->select();
|
||
|
||
echo "找到 " . count($multipleGiftRecords) . " 条送给多人的记录\n";
|
||
|
||
// 输出详细信息
|
||
foreach ($multipleGiftRecords as $record) {
|
||
echo "转盘ID: {$record['tid']}, 接收人数: {$record['user_count']}\n";
|
||
// 获取该转盘的详细信息
|
||
$turntableInfo = Db::name('vs_blind_box_turntable_log')
|
||
->where('id', $record['tid'])
|
||
->find();
|
||
|
||
if ($turntableInfo) {
|
||
echo " 开奖用户ID: {$turntableInfo['user_id']}, 礼包ID: {$turntableInfo['gift_bag_id']}\n";
|
||
}
|
||
}
|
||
|
||
echo "统计盲盒转盘错误数据完成\n";
|
||
}
|
||
|
||
//统计盲盒转盘错误数据
|
||
public function blind_box_error1()
|
||
{
|
||
die("暂停");
|
||
// 设置数据库查询超时时间
|
||
Db::query("SET SESSION wait_timeout=600");
|
||
Db::query("SET SESSION interactive_timeout=600");
|
||
|
||
// 分批处理数据,避免一次性加载大量数据到内存
|
||
$batchSize = 1000;
|
||
$offset = 0;
|
||
$data_multiple = [];
|
||
$totalProcessed = 0;
|
||
|
||
do {
|
||
// 分批获取数据
|
||
$turntable_log = Db::name('vs_blind_box_turntable_log')
|
||
->limit($offset, $batchSize)
|
||
->select();
|
||
|
||
// 如果没有更多数据,退出循环
|
||
if (empty($turntable_log)) {
|
||
break;
|
||
}
|
||
|
||
foreach ($turntable_log as $key => $value) {
|
||
//查询本轮是否有多个接收礼物的人
|
||
$turntable_results_log = Db::name('vs_blind_box_turntable_results_log')
|
||
->where('tid', $value['id'])
|
||
->group('gift_user_id')
|
||
->select();
|
||
|
||
// 统计送给多人的数据
|
||
if (count($turntable_results_log) > 1) {
|
||
$data_multiple[] = [
|
||
'turntable_id' => $value['id'],
|
||
'recipient_count' => count($turntable_results_log),
|
||
'data' => $value
|
||
];
|
||
}
|
||
|
||
$totalProcessed++;
|
||
|
||
// 每处理100条记录输出一次进度
|
||
if ($totalProcessed % 100 == 0) {
|
||
echo "已处理 {$totalProcessed} 条记录...\n";
|
||
// 每100条记录后清理内存
|
||
gc_collect_cycles();
|
||
}
|
||
}
|
||
|
||
// 更新偏移量
|
||
$offset += $batchSize;
|
||
|
||
// 释放内存
|
||
unset($turntable_log);
|
||
unset($turntable_results_log);
|
||
|
||
} while ($totalProcessed <= 1400);
|
||
|
||
echo "送给多人的数据共 " . count($data_multiple) . " 条记录\n";
|
||
echo "统计盲盒转盘错误数据完成-共处理 " . $totalProcessed . " 条数据\n";
|
||
|
||
// 输出详细信息
|
||
foreach ($data_multiple as $item) {
|
||
echo "转盘ID: {$item['turntable_id']}, 接收人数: {$item['recipient_count']}\n";
|
||
}
|
||
}
|
||
|
||
public function RoomOwners()
|
||
{
|
||
$room = Db::name('vs_room')->where(['room_status' => 1, 'apply_status' => 2])->select();
|
||
$arr = [];
|
||
foreach ($room as $key => $value) {
|
||
$liushui = Db::name('vs_give_gift')->where(['from_id' => $value['id'], 'from' => 2])->sum('total_price');
|
||
$usercode = Db::name('user')->where(['id' => $value['user_id']])->value('user_code');
|
||
$nickname = Db::name('user')->where(['id' => $value['user_id']])->value('nickname');
|
||
$arr[] = [
|
||
'room_id' => $value['id'],
|
||
'user_id' => $value['user_id'],
|
||
'user_code' => $usercode,
|
||
'nickname' => $nickname,
|
||
'liushui' => $liushui
|
||
];
|
||
}
|
||
|
||
//房主的收益
|
||
foreach ($arr as $key => $v) {
|
||
$shouyi = db::name('vs_user_money_log')->where(['user_id' => $v['user_id'], 'change_type' => 18, 'money_type' => 2, 'createtime' => ['<', 1759585380]])->sum('change_value');
|
||
$arr[$key]['shouyi'] = $shouyi;
|
||
$arr[$key]['duibi'] = $shouyi . '-' . $v['liushui'] / 10 / 10;
|
||
$arr[$key]['chazhi'] = $v['liushui'] / 10 / 10 - $shouyi;
|
||
}
|
||
var_dump($arr);
|
||
}
|
||
|
||
/*
|
||
* 巡乐会中奖后房主礼物补发放
|
||
*/
|
||
public function xlh_gift_send()
|
||
{
|
||
die("暂停");
|
||
echo "开始补发巡乐会中奖后房主礼物 \n";
|
||
$xlh_list = db::name('vs_room_pan_xlh')->where(['id' => ['in', [279]]])->select();
|
||
echo "共有" . count($xlh_list) . "个需要发放的礼物 \n";
|
||
if (empty($xlh_list)) {
|
||
echo "没有需要发放的礼物 \n";
|
||
}
|
||
foreach ($xlh_list as $key => $value) {
|
||
try {
|
||
//发放
|
||
//房主礼物落包
|
||
$res = [];
|
||
//获取房主id
|
||
$user_id = db::name('vs_room')->where(['id' => $value['room_id']])->value('user_id');
|
||
$res = model('api/UserGiftPack')->change_user_gift_pack($user_id, $value['homeowner_gift_id'], 1, model('api/UserGiftPack')::XLH_DRAW_GIFT_GET, "巡乐会中奖后房主礼物发放-补发");
|
||
if ($res['code'] != 1) {
|
||
echo $res['msg'] . "\n";
|
||
continue;
|
||
}
|
||
echo "巡乐会中奖后房主礼物发放成功 房主Id:" . $user_id . "\n";
|
||
} catch (\Exception $e) {
|
||
echo $e->getMessage() . "\n";
|
||
}
|
||
}
|
||
}
|
||
|
||
/*
|
||
* 任务历史数据补发
|
||
*/
|
||
public function task_history_send()
|
||
{
|
||
echo "开始补发任务历史数据 \n";
|
||
$user_list = db::name('user')->where(['status' => 1, 'delete_time' => 0])->select();
|
||
//任务
|
||
$task_list = db::name('vs_tasks')->where(['task_type' => 1, 'delete_time' => 0])->select();
|
||
foreach ($user_list as $key => $value) {
|
||
echo "开始补发用户({$value['id']}):" . $value['nickname'] . "的任务数据 \n";
|
||
foreach ($task_list as $k => $v) {
|
||
if ($v['id'] == 3) {//实名认证任务
|
||
//判断用户是否实名认证
|
||
$is_real = model('api/UserData')->real_name_info($value['id']);
|
||
if ($is_real['code'] == 1 && $is_real['data']['is_real'] == 1) {
|
||
$re = model('api/Tasks')->tasks_complete($value['id'], 3);
|
||
if ($re['code'] != 1) {
|
||
echo "用户({$value['id']}):" . $value['nickname'] . "任务({$v['id']}):" . $v['task_name'] . "任务完成失败 失败原因:" . $re['msg'] . "\n";
|
||
}
|
||
}
|
||
echo "用户({$value['id']}):" . $value['nickname'] . "实名认证任务完成 \n";
|
||
} elseif ($v['id'] == 4) {//完善个人资料-创建相册
|
||
$album_list = db::name('user_album')->where(['user_id' => $value['id']])->field('id,name,image,pwd,read_num,like_num')->select();
|
||
if (!empty($album_list)) {
|
||
$re = model('api/Tasks')->tasks_complete($value['id'], 4);
|
||
if ($re['code'] != 1) {
|
||
echo "用户({$value['id']}):" . $value['nickname'] . "任务({$v['id']}):" . $v['task_name'] . "任务完成失败 失败原因:" . $re['msg'] . "\n";
|
||
}
|
||
}
|
||
echo "用户({$value['id']}):" . $value['nickname'] . "完善个人资料-创建相册任务完成 \n";
|
||
} elseif ($v['id'] == 5) {//完善个人资料- 绑定支付宝或银行卡信息
|
||
$user_data = db::name('user_data')->where('user_id', $value['id'])->find();
|
||
if (!empty($user_data['alipay_account']) || !empty($user_data['bank_card_number'])) {
|
||
$re = model('api/Tasks')->tasks_complete($value['id'], 5);
|
||
if ($re['code'] != 1) {
|
||
echo "用户({$value['id']}):" . $value['nickname'] . "任务({$v['id']}):" . $v['task_name'] . "任务完成失败 失败原因:" . $re['msg'] . "\n";
|
||
}
|
||
}
|
||
echo "用户({$value['id']}):" . $value['nickname'] . "完善个人资料- 绑定支付宝或银行卡信息任务完成 \n";
|
||
} elseif ($v['id'] == 6) {//第一次签约师傅
|
||
$is_sign = db::name('vs_user_sign')->where(['sign_user_id' => $value['id']])->find();
|
||
if (!empty($is_sign)) {
|
||
$re = model('api/Tasks')->tasks_complete($value['id'], 6);
|
||
if ($re['code'] != 1) {
|
||
echo "用户({$value['id']}):" . $value['nickname'] . "任务({$v['id']}):" . $v['task_name'] . "任务完成失败 失败原因:" . $re['msg'] . "\n";
|
||
}
|
||
}
|
||
echo "用户({$value['id']}):" . $value['nickname'] . "第一次签约师傅任务完成 \n";
|
||
} elseif ($v['id'] == 7) {//第一次送礼
|
||
$give_gift = db::name('vs_give_gift')->where(['user_id' => $value['id']])->find();
|
||
if (!empty($give_gift)) {
|
||
$re = model('api/Tasks')->tasks_complete($value['id'], 7);
|
||
if ($re['code'] != 1) {
|
||
echo "用户({$value['id']}):" . $value['nickname'] . "任务({$v['id']}):" . $v['task_name'] . "任务完成失败 失败原因:" . $re['msg'] . "\n";
|
||
}
|
||
}
|
||
echo "用户({$value['id']}):" . $value['nickname'] . "第一次送礼任务完成 \n";
|
||
} elseif ($v['id'] == 8) {//第一次收礼
|
||
$give_gift = db::name('vs_give_gift')->where(['gift_user' => $value['id']])->find();
|
||
if (!empty($give_gift)) {
|
||
$re = model('api/Tasks')->tasks_complete($value['id'], 8);
|
||
if ($re['code'] != 1) {
|
||
echo "用户({$value['id']}):" . $value['nickname'] . "任务({$v['id']}):" . $v['task_name'] . "任务完成失败 失败原因:" . $re['msg'] . "\n";
|
||
}
|
||
}
|
||
echo "用户({$value['id']}):" . $value['nickname'] . "第一次收礼任务完成 \n";
|
||
} elseif ($v['id'] == 9) {//第一次拍卖关系
|
||
$auction = db::name('vs_room_auction')->where(['user_id' => $value['id'], 'bidder_user_id' => ['>', 0]])->find();
|
||
if (!empty($auction)) {
|
||
$re = model('api/Tasks')->tasks_complete($value['id'], 9);
|
||
if ($re['code'] != 1) {
|
||
echo "用户({$value['id']}):" . $value['nickname'] . "任务({$v['id']}):" . $v['task_name'] . "任务完成失败 失败原因:" . $re['msg'] . "\n";
|
||
}
|
||
}
|
||
echo "用户({$value['id']}):" . $value['nickname'] . "第一次拍卖关系任务完成 \n";
|
||
} elseif ($v['id'] == 10) {//第一次星球房卡关系(互娱房)
|
||
$friending1 = db::name('vs_user_friending_heart')->where(['user1_id' => $value['id'], 'status' => 3])->find();
|
||
if (empty($friending1)) {
|
||
$friending1 = db::name('vs_user_friending_heart')->where(['user2_id' => $value['id'], 'status' => 3])->find();
|
||
}
|
||
if (!empty($friending1)) {
|
||
$re = model('api/Tasks')->tasks_complete($value['id'], 10);
|
||
if ($re['code'] != 1) {
|
||
echo "用户({$value['id']}):" . $value['nickname'] . "任务({$v['id']}):" . $v['task_name'] . "任务完成失败 失败原因:" . $re['msg'] . "\n";
|
||
}
|
||
}
|
||
echo "用户({$value['id']}):" . $value['nickname'] . "第一次星球房卡关系任务完成 \n";
|
||
} elseif ($v['id'] == 11) {//第一次 加入公会
|
||
$guild_list = db::name('vs_guild_user')->where(['user_id' => $value['id']])->find();
|
||
if (!empty($guild_list)) {
|
||
$re = model('api/Tasks')->tasks_complete($value['id'], 11);
|
||
if ($re['code'] != 1) {
|
||
echo "用户({$value['id']}):" . $value['nickname'] . "任务({$v['id']}):" . $v['task_name'] . "任务完成失败 失败原因:" . $re['msg'] . "\n";
|
||
}
|
||
}
|
||
echo "用户({$value['id']}):" . $value['nickname'] . "第一次加入公会任务完成 \n";
|
||
}
|
||
}
|
||
echo "用户({$value['id']}):" . $value['nickname'] . "的任务数据补发完成 \n";
|
||
echo '------------------------------------------------------' . "\n";
|
||
}
|
||
echo "任务历史数据补发完成 用户总数:" . count($user_list) . " \n";
|
||
}
|
||
|
||
//推算7号平台结余
|
||
public function calc_7_balance()
|
||
{
|
||
set_time_limit(0);
|
||
$jisuan = 0;
|
||
|
||
// 分页处理,防止超时
|
||
$pageSize = 100;
|
||
$page = 1;
|
||
$hasMore = true;
|
||
|
||
while ($hasMore) {
|
||
// 分页查询用户钱包数据
|
||
$offset = ($page - 1) * $pageSize;
|
||
$user_list = db::name('user_wallet')
|
||
->limit($offset, $pageSize)
|
||
->select();
|
||
// 判断是否还有更多数据
|
||
if (count($user_list) < $pageSize) {
|
||
$hasMore = false;
|
||
}
|
||
|
||
// 如果没有数据则退出循环
|
||
if (empty($user_list)) {
|
||
break;
|
||
}
|
||
|
||
foreach ($user_list as $key => $value) {
|
||
$earnings = $value['earnings'];
|
||
//根据注释,应该计算2025-12-07之前的收益所得
|
||
$income = db::name('vs_user_money_log')
|
||
->where(['user_id' => $value['user_id']])
|
||
->whereIn('change_type', [6, 9, 11, 12, 18, 19, 21, 22, 31, 28, 34, 52, 53, 54, 55, 57])
|
||
->where('createtime', '>=', strtotime('2025-12-07'))
|
||
->where('createtime', '<=', time())
|
||
->sum('change_value');
|
||
//根据注释,应该计算2025-12-07之前的消费
|
||
$expense = db::name('vs_user_money_log')
|
||
->where(['user_id' => $value['user_id']])
|
||
->whereIn('change_type', [3, 14, 29])
|
||
->where('createtime', '>=', strtotime('2025-12-07'))
|
||
->where('createtime', '<=', time())
|
||
->sum('change_value');
|
||
$jisuan += ($earnings - $income + $expense);
|
||
echo "用户({$value['user_id']}):" . "的结余:" . ($earnings - $income + $expense) . "\n";
|
||
}
|
||
echo "第" . $page . "页数据处理完成 \n";
|
||
// 释放内存
|
||
unset($user_list);
|
||
$page++;
|
||
|
||
// 每处理10页输出一次进度
|
||
if ($page % 10 == 0) {
|
||
echo "已处理 {$page} 页数据...\n";
|
||
}
|
||
}
|
||
echo "2025-12-07以前平台结余:" . $jisuan . "\n";
|
||
}
|
||
|
||
public function calc_7_balances()
|
||
{
|
||
//当前平台结余
|
||
for ($i = 1; $i <= 18; $i++) {
|
||
$time = strtotime('2025-12-' . $i);
|
||
$all_earnings = db::name('user_wallet')->sum('earnings');
|
||
$all_income = db::name('vs_user_money_log')
|
||
->whereIn('change_type', [6, 9, 11, 12, 18, 19, 21, 22, 31, 28, 34, 52, 53, 54, 55, 57])
|
||
->where('money_type', 2)
|
||
->where('createtime', '>=', $time)
|
||
->where('createtime', '<=', time())
|
||
->sum('change_value');
|
||
$all_expense = db::name('vs_user_money_log')
|
||
->whereIn('change_type', [14, 29])
|
||
->where('money_type', 2)
|
||
->where('createtime', '>=', $time)
|
||
->where('createtime', '<=', time())
|
||
->sum('change_value');
|
||
//提现
|
||
$all_tixian = db::name('vs_user_money_log')
|
||
->whereIn('change_type', [3])
|
||
->where('money_type', 2)
|
||
->where('createtime', '>=', $time)
|
||
->where('createtime', '<=', time())
|
||
->sum('change_value');
|
||
//充值
|
||
// $all_recharge = db::name('vs_user_money_log')
|
||
// ->where('change_type',2)
|
||
// ->where('createtime','>=', $time)
|
||
// ->where('createtime','<=', time())
|
||
// ->sum('change_value');
|
||
//充值
|
||
$all_recharge1 = db::name('vs_user_recharge')
|
||
->where('pay_status', 2)
|
||
->where('createtime', '>=', $time)
|
||
->where('createtime', '<=', time())
|
||
->sum('money');
|
||
$jisuan = ($all_earnings + $all_expense + $all_tixian) - $all_income;
|
||
echo date('Y-m-d', time()) . " 当前平台总结余:" . $all_earnings . "\n";
|
||
echo date('Y-m-d', $time) . " 以后平台总收入(用户总收益):" . $all_income . "\n";
|
||
echo date('Y-m-d', $time) . " 以后平台总支出(用户总消耗钻石红包,兑换金币):" . $all_expense . "\n";
|
||
echo date('Y-m-d', $time) . " 以后的提现记录:" . $all_tixian . "\n";
|
||
echo date('Y-m-d', $time) . " 以后充值(完成):" . $all_recharge1 . "\n";
|
||
echo date('Y-m-d', $time) . " 以前平台总结余:" . $jisuan . "\n";
|
||
echo "========================================================" . "\n";
|
||
}
|
||
}
|
||
|
||
//1
|
||
public function calc_1_7_balances()
|
||
{
|
||
//当前平台结余
|
||
$stime = strtotime('2025-12-01');
|
||
$etime = strtotime('2025-12-08');
|
||
|
||
$all_expense = db::name('vs_user_money_log')
|
||
->whereIn('change_type', [3, 14, 29])
|
||
->where('money_type', 2)
|
||
->where('createtime', '>=', $stime)
|
||
->where('createtime', '<=', $etime)
|
||
->sum('change_value');
|
||
echo "2025-12-01至2025-12-07平台总提现:" . $all_expense . "\n";
|
||
}
|
||
|
||
/*
|
||
* 首次创建房间任务历史数据补发
|
||
*/
|
||
public function task_history_send_34()
|
||
{
|
||
die();
|
||
echo "开始补发任务历史数据 \n";
|
||
$room_list = db::name('vs_room')->where(['type_id' => ['<>', 6], 'apply_status' => 2])->select();
|
||
foreach ($room_list as $key => $value) {
|
||
echo "开始补发房间({$value['room_name']}): 的任务数据 \n";
|
||
$re = model('api/Tasks')->tasks_complete($value['user_id'], 34);
|
||
if ($re['code'] != 1) {
|
||
echo $value['room_name'] . "首次建立房间任务完成失败 失败原因:" . $re['msg'] . "\n";
|
||
continue;
|
||
}
|
||
}
|
||
$reslut = Db::name('vs_tasks_user_daily')->where('task_id', 34)->update([
|
||
'is_claimed' => 1,
|
||
]);
|
||
echo "任务历史数据补发完成 用户总数:" . count($room_list) . " \n";
|
||
}
|
||
|
||
public function clear_room_offline_user()
|
||
{
|
||
echo "开始清除房间离线用户 \n";
|
||
$room = db::name('vs_room_visitor')->where(['is_online' => 2])->select();
|
||
$res_i = 0;
|
||
if ($room) {
|
||
foreach ($room as $value) {
|
||
$time = time() - $value['updatetime'];
|
||
if ($time > 86400) {
|
||
$re = model('api/Room')->quit_room($value['user_id'], $value['room_id'], $value['user_id']);
|
||
if ($re['code'] != 1) {
|
||
echo "清除房间离线用户失败:" . $value['user_id'] . "---" . $re['msg'] . "\n";
|
||
} else {
|
||
echo "清除房间离线用户成功:" . $value['user_id'] . "\n";
|
||
$res_i++;
|
||
}
|
||
|
||
}
|
||
}
|
||
}
|
||
echo "清除房间离线用户完成 (" . $res_i . ") \n";
|
||
}
|
||
|
||
//清洗任务数据
|
||
public function clean_task_data()
|
||
{
|
||
echo "开始清洗任务数据 \n";
|
||
$task_student = Db::name('vs_tasks_student')->where(['status' => 2, 'delete_time' => 0])->select();
|
||
foreach ($task_student as $value) {
|
||
$tasks_bag_id = db::name('vs_tasks')->where(['id' => $value['task_id']])->value('tasks_bag_id');
|
||
$insert_data = [
|
||
'user_id' => $value['user_id'],
|
||
'task_id' => $value['task_id'],
|
||
'tasks_bag_id' => $tasks_bag_id,
|
||
'is_completed' => 1,
|
||
'is_claimed' => 1,
|
||
'createtime' => time(),
|
||
'updatetime' => time(),
|
||
'completion_time' => $value['createtime'],
|
||
'collection_time' => $value['updatetime'],
|
||
];
|
||
Db::name('vs_tasks_user_daily')->insert($insert_data);
|
||
echo "清洗师徒任务数据成功:" . $value['id'] . "\n";
|
||
}
|
||
$user_couple_task = Db::name('vs_user_cp_task')->where(['status' => 2, 'delete_time' => 0])->select();
|
||
foreach ($user_couple_task as $value) {
|
||
$tasks_bag_id = db::name('vs_tasks')->where(['id' => $value['tasks_bag_id']])->value('tasks_bag_id');
|
||
Db::name('vs_tasks_user_daily')->insert([
|
||
'user_id' => $value['user_id'],
|
||
'task_id' => $value['tasks_bag_id'],
|
||
'tasks_bag_id' => $tasks_bag_id,
|
||
'is_completed' => 1,
|
||
'is_claimed' => 1,
|
||
'createtime' => time(),
|
||
'updatetime' => time(),
|
||
'completion_time' => $value['createtime'],
|
||
'collection_time' => $value['createtime'],
|
||
]);
|
||
echo "清洗CP任务数据成功:" . $value['id'] . "\n";
|
||
}
|
||
echo "清洗任务数据完成 \n";
|
||
}
|
||
|
||
//清洗公会流水
|
||
public function clean_guild_flow()
|
||
{
|
||
echo "开始清洗公会流水: \n";
|
||
$guild = db::name('vs_guild')->select();
|
||
foreach ($guild as $value) {
|
||
echo "================================\n";
|
||
echo "开始清洗公会({$value['id']})流水 \n";
|
||
$guild_user = db::name('vs_guild_user')->where(['guild_id' => $value['id'],'status' => 1,'apply_time'=>['>',0],'room_id' => ['>',0]])->select();
|
||
$transaction = 0;
|
||
foreach ($guild_user as $v) {
|
||
$week_start_time_seach = "1761554521";
|
||
$week_end_time_seach = "1766667632";
|
||
if($v['apply_time'] && $week_start_time_seach < $v['apply_time']){
|
||
$week_start_time_seach = $v['apply_time'];
|
||
}
|
||
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')
|
||
->where('from_id',$v['room_id'])
|
||
->where(['createtime'=>['>=',$week_start_time_seach]])
|
||
->where(['createtime'=>['<',$week_end_time_seach]])
|
||
->where(['from'=>2])
|
||
->sum('total_price');
|
||
|
||
// Db::name('vs_guild_user')->where(['id' => $v['id']])->setInc('coin', $transaction_one);
|
||
if($transaction_one>0){
|
||
$data = [
|
||
'guild_id' => $value['id'],
|
||
'room_id' => $v['room_id'],
|
||
'give_gift_id' => 0,
|
||
'flow_price' => $transaction_one,
|
||
'day' => "",
|
||
'createtime' => time(),
|
||
];
|
||
// $res = Db::name('vs_guild_flow')->insert($data);
|
||
}
|
||
$transaction += $transaction_one;
|
||
echo " 公会房间(". $v['room_id'] .")流水:" . $transaction_one . "\n";
|
||
}
|
||
// Db::name('vs_guild')->where(['id' => $value['id']])->setInc('income', $transaction);
|
||
echo "清洗公会房间流水完成:" . count($guild_user) . "\n";
|
||
}
|
||
echo "清洗公会流水完成: ".count($guild)."\n";
|
||
}
|
||
|
||
//清洗公会流水
|
||
public function clean_guild_flow1()
|
||
{die;
|
||
echo "开始清洗公会流水: \n";
|
||
$guild = db::name('vs_guild')->where(['status' => 1])->select();
|
||
foreach ($guild as $value) {
|
||
echo "================================\n";
|
||
//echo "开始清洗公会({$value['id']})流水 \n";
|
||
$guild_user = db::name('vs_guild_user')->where(['guild_id' => $value['id'],'status' => 1,'apply_time'=>['>',0],'room_id' => ['>',0]])->select();
|
||
$transaction = 0;
|
||
$transaction_one_all = 0;
|
||
foreach ($guild_user as $v) {
|
||
$guild_flow_price = Db::name('vs_guild_flow')->where(['guild_id' => $value['id'],'room_id' => $v['room_id']])->sum('flow_price');
|
||
$transaction += $guild_flow_price;
|
||
|
||
$week_start_time_seach = "1761554521";
|
||
$week_end_time_seach = "1766564906";
|
||
if($v['apply_time'] && $week_start_time_seach < $v['apply_time']){
|
||
$week_start_time_seach = $v['apply_time'];
|
||
}
|
||
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')
|
||
->where('from_id',$v['room_id'])
|
||
->where(['from'=>2,'createtime' => ['between', [$week_start_time_seach, $week_end_time_seach]]])
|
||
->sum('total_price');
|
||
|
||
if($guild_flow_price != $transaction_one){
|
||
echo "公会房间(". $v['room_id'] .")流水与公会用户流水不一致:" . $guild_flow_price . "--" . $transaction_one . "\n";
|
||
$flow_price_cha = $v['coin']-$guild_flow_price;
|
||
echo "差:".($flow_price_cha) . "\n";
|
||
// Db::name('vs_guild_user')->where(['id' => $v['id']])->setDec('coin', $flow_price_cha);
|
||
}
|
||
$transaction_one_all= $transaction_one_all+$transaction_one;
|
||
}
|
||
if($transaction != $transaction_one_all){
|
||
echo "公会流水与公会用户流水不一致:" . $transaction . "--" . $value['income'] . "\n";
|
||
$transaction_cha = $value['income']-$transaction;
|
||
echo $value['id']."差:".($transaction_cha) . "\n";
|
||
// Db::name('vs_guild')->where(['id' => $value['id']])->setDec('income', $transaction_cha);
|
||
}
|
||
// echo "清洗公会房间流水完成:" . count($guild_user) . "\n";
|
||
}
|
||
// echo "清洗公会流水完成: ".count($guild)."\n";
|
||
}
|
||
|
||
|
||
/*
|
||
* 生成工会补贴数据
|
||
* 配置:定时脚本每周一 执行
|
||
* 配置:/cron/Subsidy/createGuildSubsidyData
|
||
*/
|
||
public function createGuildSubsidyData(){
|
||
//获取上周第一天时间
|
||
$week_start_time = strtotime('last week Monday');
|
||
$week_end_time = strtotime(date('Y-m-d 23:59:59',strtotime('last week Sunday')));
|
||
|
||
$week_start_time = strtotime('2025-12-08');
|
||
$week_end_time = strtotime('2025-12-15');
|
||
|
||
// $week_start_time = strtotime('2025-12-15');
|
||
// $week_end_time = strtotime('2025-12-22');
|
||
|
||
//获取上周时间
|
||
$time_value = date('o-W', $week_start_time);
|
||
echo $time_value . "工会周补贴数据生成开始\n";
|
||
//查询所有工会
|
||
$guild_list = db::name('vs_guild')->where(['delete_time'=>0])->field('id')->select();
|
||
$data_count = 0;
|
||
foreach ($guild_list as $key => $value) {
|
||
//获取所有工会房间ID
|
||
$guild_user_data = db::name('vs_guild_user')->where('guild_id', $value['id'])->where(['apply_time'=>['>',0],'status'=>1,'room_id'=>['>',0]])->field('room_id,apply_time,quit_time')->select();
|
||
$transaction = 0;
|
||
foreach ($guild_user_data as $k => $v) {
|
||
$week_start_time_seach = $week_start_time;
|
||
$week_end_time_seach = $week_end_time;
|
||
if($v['apply_time'] && $week_end_time_seach < $v['apply_time']){
|
||
continue;
|
||
}
|
||
if($v['quit_time'] && $v['quit_time'] < $week_start_time_seach){
|
||
continue;
|
||
}
|
||
if($v['apply_time'] && $week_start_time_seach < $v['apply_time']){
|
||
$week_start_time_seach = $v['apply_time'];
|
||
}
|
||
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 (db::name('vs_guild_subsidy')->where(['guild_id'=>$value['id'],'week'=>$time_value])->find()) {
|
||
continue;
|
||
}
|
||
//获取补贴配置
|
||
$config = db::name('vs_guild_subsidy_config')->where(['status' => 1])->order('end_amount desc')->select(); //配置查询
|
||
if (!$config) {
|
||
echo '补贴配置为空\n';
|
||
die;
|
||
}
|
||
$subsidy_ratio = 0;
|
||
$subsidy_amount = 0;
|
||
foreach ($config as $k => $v) {
|
||
if ($transaction >= $v['end_amount']) {
|
||
$subsidy_ratio = $v['subsidy_ratio'];
|
||
$subsidy_amount = ($transaction * ($subsidy_ratio / 100)) / get_system_config_value('rmb_coin_ratio');//转为钻石
|
||
break; // 找到匹配项后提前退出循环
|
||
}
|
||
}
|
||
//生成补贴数据
|
||
$data = [
|
||
'guild_id' => $value['id'],
|
||
'week' => $time_value,
|
||
'start_time' => date('Y-m-d H:i:s', $week_start_time),
|
||
'end_time' =>date('Y-m-d H:i:s', $week_end_time),
|
||
'total_transaction' => $transaction,
|
||
'subsidy_amount' => $subsidy_amount,
|
||
'subsidy_ratio' => $subsidy_ratio,
|
||
'status' => 0,
|
||
'createtime' => time(),
|
||
];
|
||
echo "工会".$value['id']."生成数据:流水金额:{$transaction} 补贴比例:{$subsidy_ratio}% 补贴金额:{$subsidy_amount}\n";
|
||
// $subsidy_id = Db::name('vs_guild_subsidy_1')->insertGetId($data);。。。。11
|
||
// if ($subsidy_id) {
|
||
// echo "工会".$value['id']."生成成功(补贴ID:".$subsidy_id." 补贴金额:".$subsidy_amount.")\n";
|
||
// $data_count++;
|
||
// }
|
||
}
|
||
}
|
||
echo $time_value . "工会周补贴数据生成完成-共" . $data_count . "条数据\n";
|
||
}
|
||
|
||
/*
|
||
* 生成工会补贴数据
|
||
* 配置:定时脚本每周一 执行
|
||
* 配置:/cron/Subsidy/createGuildSubsidyData
|
||
*/
|
||
public function createGuildSubsidyDataNew(){
|
||
//获取上周第一天时间
|
||
$week_start_time = strtotime('last week Monday');
|
||
$week_end_time = strtotime(date('Y-m-d 23:59:59',strtotime('last week Sunday')));
|
||
|
||
// $week_start_time = strtotime('2025-12-08');
|
||
// $week_end_time = strtotime('2025-12-15');
|
||
|
||
// $week_start_time = strtotime('2025-12-15');
|
||
// $week_end_time = strtotime('2025-12-22');
|
||
|
||
//获取上周时间
|
||
$time_value = date('o-W', $week_start_time);
|
||
echo $time_value . "工会周补贴数据生成开始\n";
|
||
//查询所有工会
|
||
$guild_list = db::name('vs_guild')->where(['delete_time'=>0])->field('id')->select();
|
||
$data_count = 0;
|
||
foreach ($guild_list as $key => $value) {
|
||
//获取所有工会房间ID
|
||
$guild_user_data = db::name('vs_guild_user')->where('guild_id', $value['id'])->where(['apply_time'=>['>',0],'status'=>1,'room_id'=>['>',0]])->field('room_id,apply_time,quit_time')->select();
|
||
$transaction = 0;
|
||
foreach ($guild_user_data as $k => $v) {
|
||
|
||
$week_start_time_seach = $week_start_time;
|
||
$week_end_time_seach = $week_end_time;
|
||
if($v['apply_time'] && $week_end_time_seach < $v['apply_time']){
|
||
continue;
|
||
}
|
||
if($v['quit_time'] && $v['quit_time'] < $week_start_time_seach){
|
||
continue;
|
||
}
|
||
if($v['apply_time'] && $week_start_time_seach < $v['apply_time']){
|
||
$week_start_time_seach = $v['apply_time'];
|
||
}
|
||
if($v['quit_time'] && ($week_end_time_seach > $v['quit_time'])){
|
||
$week_end_time_seach = $v['quit_time'];
|
||
}
|
||
$tables = GiftTableManager::getTablesByTimeRange(
|
||
$week_start_time_seach,
|
||
$week_end_time_seach
|
||
);
|
||
$all_total_price =0;
|
||
if($tables){
|
||
foreach ($tables as $table_name){
|
||
//表前缀
|
||
$table_prefix = config('database.prefix');
|
||
$table_name = str_replace($table_prefix, '', $table_name);
|
||
$total_price = db::name($table_name)
|
||
->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');
|
||
$all_total_price += $total_price;
|
||
}
|
||
}
|
||
$transaction_one = $all_total_price;
|
||
$transaction += $transaction_one;
|
||
}
|
||
|
||
if($transaction > 0){
|
||
//判断是否已经生成过
|
||
// if (db::name('vs_guild_subsidy')->where(['guild_id'=>$value['id'],'week'=>$time_value])->find()) {
|
||
// continue;
|
||
// }
|
||
//获取补贴配置
|
||
$config = db::name('vs_guild_subsidy_config')->where(['status' => 1])->order('end_amount desc')->select(); //配置查询
|
||
if (!$config) {
|
||
echo '补贴配置为空\n';
|
||
die;
|
||
}
|
||
$subsidy_ratio = 0;
|
||
$subsidy_amount = 0;
|
||
foreach ($config as $k => $v) {
|
||
if ($transaction >= $v['end_amount']) {
|
||
$subsidy_ratio = $v['subsidy_ratio'];
|
||
$subsidy_amount = ($transaction * ($subsidy_ratio / 100)) / get_system_config_value('rmb_coin_ratio');//转为钻石
|
||
break; // 找到匹配项后提前退出循环
|
||
}
|
||
}
|
||
//生成补贴数据
|
||
$data = [
|
||
'guild_id' => $value['id'],
|
||
'week' => $time_value,
|
||
'start_time' => date('Y-m-d H:i:s', $week_start_time),
|
||
'end_time' =>date('Y-m-d H:i:s', $week_end_time),
|
||
'total_transaction' => $transaction,
|
||
'subsidy_amount' => $subsidy_amount,
|
||
'subsidy_ratio' => $subsidy_ratio,
|
||
'status' => 0,
|
||
'createtime' => time(),
|
||
];
|
||
echo "工会".$value['id']."生成数据:流水金额:{$transaction} 补贴比例:{$subsidy_ratio}% 补贴金额:{$subsidy_amount}\n";
|
||
// $subsidy_id = Db::name('vs_guild_subsidy_1')->insertGetId($data);。。。。11
|
||
// if ($subsidy_id) {
|
||
// echo "工会".$value['id']."生成成功(补贴ID:".$subsidy_id." 补贴金额:".$subsidy_amount.")\n";
|
||
// $data_count++;
|
||
// }
|
||
}
|
||
}
|
||
echo $time_value . "工会周补贴数据生成完成-共" . $data_count . "条数据\n";
|
||
}
|
||
|
||
/*
|
||
* 生成工会补贴数据
|
||
* 配置:定时脚本每周一 执行
|
||
* 配置:/cron/Subsidy/createGuildSubsidyData
|
||
*/
|
||
public function createGuildSubsidyDataNewNew(){
|
||
//获取上周第一天时间
|
||
$week_start_time = strtotime('last week Monday');
|
||
$week_end_time = strtotime(date('Y-m-d 23:59:59',strtotime('last week Sunday')));
|
||
|
||
// $week_start_time = strtotime('2025-12-08');
|
||
// $week_end_time = strtotime('2025-12-15');
|
||
|
||
// $week_start_time = strtotime('2025-12-22');
|
||
// $week_end_time = strtotime('2025-12-31');
|
||
|
||
//获取上周时间
|
||
$time_value = date('o-W', $week_start_time);
|
||
echo $time_value . "工会周补贴数据生成开始\n";
|
||
//查询所有工会
|
||
$guild_list = db::name('vs_guild')->where(['delete_time'=>0])->field('id')->select();
|
||
$data_count = 0;
|
||
foreach ($guild_list as $key => $value) {
|
||
$transaction = Db::name('vs_guild_flow')
|
||
->where(['guild_id' => $value['id']])
|
||
->where(['createtime' => ['between', [$week_start_time, $week_end_time]]])
|
||
->sum('flow_price');
|
||
if($transaction > 0){
|
||
//判断是否已经生成过
|
||
// if (db::name('vs_guild_subsidy')->where(['guild_id'=>$value['id'],'week'=>$time_value])->find()) {
|
||
// continue;
|
||
// }
|
||
//获取补贴配置
|
||
$config = db::name('vs_guild_subsidy_config')->where(['status' => 1])->order('end_amount desc')->select(); //配置查询
|
||
if (!$config) {
|
||
echo '补贴配置为空\n';
|
||
die;
|
||
}
|
||
$subsidy_ratio = 0;
|
||
$subsidy_amount = 0;
|
||
foreach ($config as $k => $v) {
|
||
if ($transaction >= $v['end_amount']) {
|
||
$subsidy_ratio = $v['subsidy_ratio'];
|
||
$subsidy_amount = ($transaction * ($subsidy_ratio / 100)) / get_system_config_value('rmb_coin_ratio');//转为钻石
|
||
break; // 找到匹配项后提前退出循环
|
||
}
|
||
}
|
||
//生成补贴数据
|
||
$data = [
|
||
'guild_id' => $value['id'],
|
||
'week' => $time_value,
|
||
'start_time' => date('Y-m-d H:i:s', $week_start_time),
|
||
'end_time' =>date('Y-m-d H:i:s', $week_end_time),
|
||
'total_transaction' => $transaction,
|
||
'subsidy_amount' => $subsidy_amount,
|
||
'subsidy_ratio' => $subsidy_ratio,
|
||
'status' => 0,
|
||
'createtime' => time(),
|
||
];
|
||
echo "工会".$value['id']."生成数据:流水金额:{$transaction} 补贴比例:{$subsidy_ratio}% 补贴金额:{$subsidy_amount}\n";
|
||
// $subsidy_id = Db::name('vs_guild_subsidy_1')->insertGetId($data);。。。。11
|
||
// if ($subsidy_id) {
|
||
// echo "工会".$value['id']."生成成功(补贴ID:".$subsidy_id." 补贴金额:".$subsidy_amount.")\n";
|
||
// $data_count++;
|
||
// }
|
||
}
|
||
}
|
||
echo $time_value . "工会周补贴数据生成完成-共" . $data_count . "条数据\n";
|
||
}
|
||
|
||
//礼物发放
|
||
public function giftSend(){
|
||
die;
|
||
// 用户补偿:12963 3个白马王子 (礼物ID:399)
|
||
// 10012 5个白马王子(礼物ID:399)
|
||
|
||
// $user_id = 24224; //拿大锤
|
||
// $gift_id = 399; //白马王子
|
||
// $num = 3;
|
||
echo $user_id."开始执行\n";die;
|
||
$res = model('api/UserGiftPack')->change_user_gift_pack($user_id,$gift_id,$num,model('api/UserGiftPack')::SYSTEM_ADJUSTMENT,"补偿:巡乐会卡顿赠送");
|
||
print_r($res);
|
||
|
||
|
||
// $user_id = 21222; //娃哈哈
|
||
// $gift_id = 399; //白马王子
|
||
// $num = 5;
|
||
echo $user_id."开始执行\n";die;
|
||
$res = model('api/UserGiftPack')->change_user_gift_pack($user_id,$gift_id,$num,model('api/UserGiftPack')::SYSTEM_ADJUSTMENT,"补偿:巡乐会卡顿赠送");
|
||
print_r($res);die;
|
||
}
|
||
|
||
//禁言
|
||
public function mute_member(){
|
||
$guild_id = 77;
|
||
$guild_user_ids = db::name('vs_guild_user')
|
||
->where(['delete_time'=>0])
|
||
->where(['status'=>1])
|
||
->where(['guild_id'=>$guild_id])
|
||
->field('user_id')->select();
|
||
$user_ids =[];
|
||
foreach ($guild_user_ids as $key => $value) {
|
||
$user_ids[] = 'u'.$value['user_id'];
|
||
}
|
||
model('api/Tencent')->mute_member('g'.$guild_id, $user_ids, 86400*7);
|
||
}
|
||
|
||
public function cesjs(){
|
||
$user_nobility_info = db::name('vs_user_nobility')
|
||
->field('id,user_id,lid,end_time')
|
||
->where('delete_time', 0)
|
||
->where(['end_time'=>['>',time()]])
|
||
->select();
|
||
foreach ($user_nobility_info as $key => $value) {
|
||
$nobility_info = db::name('vs_nobility')
|
||
->field('lid,name,image,pay_price,renew_price,day,power_ids')
|
||
->where('delete_time', 0)
|
||
->where('lid', $value['lid'])
|
||
->find();
|
||
if($value['end_time'] > time() + $nobility_info['day']*86400){
|
||
echo $value['user_id']. "续费时间:".date('Y-m-d H:i:s',$value['end_time'])."\n";
|
||
}
|
||
}
|
||
|
||
|
||
|
||
die();
|
||
|
||
|
||
// echo (1772977260-time()) / (3600*24) ;die;
|
||
//金币:
|
||
// $surplus_time = 1769664342 - 1767187765;
|
||
// if($surplus_time > 0){
|
||
// //小时
|
||
// $surplus_time_hour = floor($surplus_time / 3600); //向下取整
|
||
// $pay_coin = 49999.00 - bcmul($surplus_time_hour * ((10990.00 / 30) / 24),1,2); //一小时的价格算
|
||
//echo floor($pay_coin);die;
|
||
|
||
|
||
|
||
|
||
$old_nobility_info = db::name('vs_nobility')
|
||
->field('lid,name,pay_price,pay_coin')
|
||
->where('delete_time', 0)
|
||
->where('lid',7)
|
||
->find();
|
||
$nobility_info = db::name('vs_nobility')
|
||
->field('lid,name,image,pay_price,renew_price,day,power_ids')
|
||
->where('delete_time', 0)
|
||
->where('lid', 8)
|
||
->find();
|
||
$old_end_time = 1774848342;
|
||
$pay_time = 1767278104;
|
||
$surplus_time = $old_end_time - $pay_time;
|
||
// echo $surplus_time;
|
||
if($surplus_time > 0){
|
||
//小时
|
||
$surplus_time_hour = floor($surplus_time / 3600); //向下取整
|
||
// echo $surplus_time_hour;die;
|
||
// echo ($old_nobility_info['pay_price'] / $nobility_info['day']) / 24;die;
|
||
$price = $nobility_info['pay_price'] - bcmul($surplus_time_hour * (($old_nobility_info['pay_price'] / $nobility_info['day']) / 24),1,2);
|
||
|
||
//使用时间
|
||
$use_time = $old_nobility_info['1767072342'] - time();
|
||
$price = $nobility_info['pay_price'] - $old_nobility_info['pay_price'] + ((($old_nobility_info['pay_price'] / $nobility_info['day']) / 24) * $use_time);
|
||
//价格=
|
||
//一小时的价格算
|
||
|
||
}
|
||
// $end_time = time() + $nobility_info['day'] * 86400;
|
||
echo $price;
|
||
|
||
|
||
|
||
// }
|
||
|
||
// $re = model('api/Decorate')->pay_decorate(20150,46,30,9);
|
||
// print_r($re);die;
|
||
}
|
||
|
||
//任务金币统计
|
||
public function task_coin_count(){
|
||
// $etime = "2025-12-29 10:30:00";
|
||
// $stime = "2025-12-29 00:00:00";
|
||
// $etime = "2025-12-30 04:00:00";
|
||
// $stime = "2025-12-29 00:00:00";
|
||
// $etime = "2026-01-05 00:00:00";
|
||
// $stime = "2025-12-22 00:00:00";
|
||
// $etime = "2025-12-29 00:00:00";
|
||
|
||
// $stime = "2025-12-29 00:00:00";
|
||
// $etime = "2025-12-31 01:14:09";
|
||
|
||
$stime = "2025-12-31 01:14:09";
|
||
$etime = "2026-01-05 00:00:00";
|
||
|
||
//获取所有已领取的任务奖励礼包
|
||
$where = [];
|
||
if(!empty($stime)){
|
||
$where['a.createtime'] = ['>=', strtotime($stime)];
|
||
}
|
||
if(!empty($etime)){
|
||
$where['a.createtime'] = ['<=', strtotime($etime)];
|
||
}
|
||
if(!empty($stime) && !empty($etime)){
|
||
$where['a.createtime'] = ['between', [strtotime($stime), strtotime($etime)]];
|
||
}
|
||
// if(!empty($etime) && strtotime($etime)<="1767038400"){//2025-12-30 04:00:00
|
||
// $tasks_bag_details = db::name('vs_gift_bag_receive_log')
|
||
// ->alias('a')
|
||
// ->join('vs_gift_bag_detail b', 'a.parent_id=b.id')
|
||
// ->field('a.createtime,b.type,b.foreign_id,b.quantity,b.gold')
|
||
// ->where(['b.type'=>['in', [1,2]]])
|
||
// ->whereBetween('a.gift_bag_id', [18, 51])
|
||
// ->where($where)
|
||
// ->select();
|
||
// }else{
|
||
$tasks_bag_details = db::name('vs_gift_bag_receive_tasks_log')
|
||
->alias('a')
|
||
->join('vs_gift_bag_detail b', 'a.parent_id=b.id')
|
||
->field('a.createtime,b.type,b.foreign_id,b.quantity,b.gold')
|
||
->where(['b.type'=>['in', [1,2]]])
|
||
->whereBetween('a.gift_bag_id', [18, 51])
|
||
->where($where)
|
||
->select();
|
||
// }
|
||
$total_reward_price = 0;
|
||
foreach ($tasks_bag_details as $detail){
|
||
if($detail['type'] == 1){
|
||
$total_reward_price += $detail['gold'] * $detail['quantity'];
|
||
}else{
|
||
$gift_price = db::name('vs_gift')->where('gid',$detail['foreign_id'])->value('gift_price');
|
||
$total_reward_price += $gift_price * $detail['quantity'];
|
||
}
|
||
}
|
||
echo $total_reward_price;
|
||
}
|
||
|
||
//修复公会房间数据
|
||
public function repair_guild_room_data(){
|
||
$guild_user_data = db::name('vs_guild_user')->where(['apply_time'=>['>',0],'status'=>1,'room_id'=>['>',0]])->field('id,user_id,room_id,guild_id,apply_time,quit_time')->select();
|
||
$num = 0;
|
||
foreach ($guild_user_data as $k => $v) {
|
||
$room_info = db::name('vs_room')->where('id',$v['room_id'])->field('id,type_id')->find();
|
||
if($room_info['type_id'] == 6){
|
||
$troom_info = db::name('vs_room')->where(['user_id'=>$v['user_id'],'delete_time'=>0,'type_id'=>['<>',6]])->find();
|
||
$rid =0;
|
||
if($troom_info){
|
||
$rid = $troom_info['id']??0;
|
||
}
|
||
$guild_name = db::name('vs_guild')->where('id',$v['guild_id'])->value('guild_name');
|
||
echo "公会名称:".$guild_name." 公会Id:".$v['guild_id']." 关系Id:".$v['id']."错误房间Id:".$v['room_id']."正确房间Id:".$rid."\n";
|
||
|
||
// $re = db::name('vs_guild_user')->where('id',$v['id'])->update(['room_id'=>$rid]);
|
||
// if($re){
|
||
// $num++;
|
||
// }
|
||
}
|
||
|
||
}
|
||
echo "修改完成 共:".$num;
|
||
}
|
||
} |