2025-02-16 19:34:37 +08:00
|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace app\dao;
|
|
|
|
|
|
|
|
|
|
use App\model\UserReward;
|
|
|
|
|
use App\model\BankLog;
|
|
|
|
|
use app\model\User;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 用户收益明细控制类
|
|
|
|
|
*/
|
|
|
|
|
class UserRewardDao
|
|
|
|
|
{
|
|
|
|
|
/**
|
|
|
|
|
* 注册赠送金额
|
|
|
|
|
*/
|
|
|
|
|
public static function Register_for_free($userid)
|
|
|
|
|
{
|
2025-02-17 20:20:44 +08:00
|
|
|
|
self::base($userid, 4, 88, '注册赠送');
|
2025-02-16 19:34:37 +08:00
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* 挂机获得的奖励
|
|
|
|
|
*/
|
2025-02-16 21:20:18 +08:00
|
|
|
|
public static function Onhookincome($userid, $money)
|
2025-02-16 19:34:37 +08:00
|
|
|
|
{
|
2025-02-16 22:00:51 +08:00
|
|
|
|
self::f_bounty($userid, 6, $money, '挂机收益');
|
2025-02-16 19:34:37 +08:00
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* 加粉赏金奖励
|
|
|
|
|
*/
|
2025-02-16 21:20:18 +08:00
|
|
|
|
public static function bounty($userid, $money)
|
2025-02-16 19:34:37 +08:00
|
|
|
|
{
|
|
|
|
|
self::base($userid, 5, $money, '加粉赏金');
|
|
|
|
|
}
|
2025-02-17 11:49:38 +08:00
|
|
|
|
/**
|
|
|
|
|
* 抽奖
|
|
|
|
|
*/
|
|
|
|
|
public static function lottery($userid, $money)
|
|
|
|
|
{
|
|
|
|
|
self::base($userid, 9, $money, '抽奖');
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* 中奖
|
|
|
|
|
*/
|
|
|
|
|
public static function winning($userid, $money)
|
|
|
|
|
{
|
|
|
|
|
self::base($userid, 8, $money, '中奖');
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* 签到
|
|
|
|
|
*/
|
|
|
|
|
public static function sing($userid, $money)
|
|
|
|
|
{
|
|
|
|
|
self::base($userid, 7, $money, '签到');
|
|
|
|
|
}
|
2025-02-21 17:31:39 +08:00
|
|
|
|
/**
|
|
|
|
|
* 人工调整
|
|
|
|
|
*/
|
|
|
|
|
public static function adjust($userid, $money,$memo)
|
|
|
|
|
{
|
|
|
|
|
self::base($userid, 2, $money, $memo);
|
|
|
|
|
}
|
2025-02-16 19:34:37 +08:00
|
|
|
|
/**
|
2025-02-16 22:00:51 +08:00
|
|
|
|
* 转账函数
|
2025-02-16 19:34:37 +08:00
|
|
|
|
*/
|
2025-02-16 22:00:51 +08:00
|
|
|
|
public static function base($userid, $status, $money, $memo)
|
2025-02-16 19:34:37 +08:00
|
|
|
|
{
|
|
|
|
|
$UserReward = new UserReward();
|
|
|
|
|
$user = User::find($userid);
|
|
|
|
|
$UserReward->user_id = $user->id;
|
|
|
|
|
$UserReward->username = $user->username;
|
|
|
|
|
$UserReward->uu_id = $user->invite_code;
|
|
|
|
|
$UserReward->status = $status;
|
|
|
|
|
$UserReward->money = $money;
|
|
|
|
|
$UserReward->before = $user->money;
|
|
|
|
|
$UserReward->after = $user->money + $money;
|
|
|
|
|
$UserReward->memo = $memo;
|
|
|
|
|
$UserReward->createtime2 = date('Y-m-d H:i:s');
|
|
|
|
|
$user->money = $UserReward->after;
|
|
|
|
|
$user->save();
|
|
|
|
|
$UserReward->save();
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* 父级 父父级分红
|
2025-02-16 22:00:51 +08:00
|
|
|
|
* 函数
|
2025-02-16 19:34:37 +08:00
|
|
|
|
*/
|
2025-02-16 21:20:18 +08:00
|
|
|
|
public static function f_bounty($userid, $status, $money, $memo)
|
|
|
|
|
{
|
2025-02-16 19:34:37 +08:00
|
|
|
|
//父分红
|
2025-02-16 21:20:18 +08:00
|
|
|
|
$f_dividend = floor($money * 0.2);
|
2025-02-16 19:34:37 +08:00
|
|
|
|
//父父分红
|
2025-02-16 21:20:18 +08:00
|
|
|
|
$ff_dividend = floor($money * 0.1);
|
2025-02-16 19:34:37 +08:00
|
|
|
|
$user = User::find($userid);
|
2025-02-17 11:49:38 +08:00
|
|
|
|
//分红大于0才会记录 这里还有类型 有些类型需要分红吗
|
|
|
|
|
if ($user->f_id != 0&&$money>0&&$f_dividend>0&&$ff_dividend>0) {
|
2025-02-16 21:20:18 +08:00
|
|
|
|
$f = User::find($user->f_id);
|
2025-02-16 19:34:37 +08:00
|
|
|
|
self::base($f->id, 5, $f_dividend, '加粉赏金');
|
2025-02-16 21:20:18 +08:00
|
|
|
|
if ($user->ff_id != 0) {
|
|
|
|
|
$ff = User::find($user->ff_id);
|
|
|
|
|
self::base($ff->id, 5, $ff_dividend, '加粉赏金');
|
|
|
|
|
}
|
2025-02-16 19:34:37 +08:00
|
|
|
|
}
|
2025-02-16 22:00:51 +08:00
|
|
|
|
self::base($userid, $status, $money, $memo);
|
2025-02-16 19:34:37 +08:00
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* 搜索函数
|
|
|
|
|
*
|
|
|
|
|
* @param int $userid 用户ID
|
|
|
|
|
* @param int $status 类型
|
|
|
|
|
* @param int $time 时间段(0: 全部时间,1: 今天,2: 昨天,3: 最近七天)
|
|
|
|
|
* @return mixed 返回查询结果(可以是数组或查询对象)
|
|
|
|
|
*/
|
|
|
|
|
public static function search($userid, $status, int $time)
|
|
|
|
|
{
|
|
|
|
|
// 初始化查询对象
|
|
|
|
|
if ($status == 0) {
|
2025-02-17 11:49:38 +08:00
|
|
|
|
$query = UserReward::where('user_id', $userid)->orderBy('id','DESC');
|
2025-02-16 19:34:37 +08:00
|
|
|
|
} else {
|
|
|
|
|
$query = UserReward::where('status', $status)->where('user_id', $userid);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
switch ($time) {
|
|
|
|
|
case 0:
|
|
|
|
|
// 全部时间:查询没有时间限制的记录
|
|
|
|
|
return $query->get();
|
|
|
|
|
|
|
|
|
|
case 1:
|
|
|
|
|
// 今天:查询今天的记录
|
2025-02-17 11:49:38 +08:00
|
|
|
|
$today = date('Y-m-d');
|
|
|
|
|
return $query->where('created_at', '>=', $today." 00:00:00")->orderBy('id','DESC')->get();
|
2025-02-16 19:34:37 +08:00
|
|
|
|
|
|
|
|
|
case 2:
|
|
|
|
|
// 昨天:查询昨天的记录
|
2025-02-17 11:49:38 +08:00
|
|
|
|
$endOfYesterday = date('Y-m-d', strtotime('-1 day'));
|
|
|
|
|
return $query->whereBetween('created_at', [$endOfYesterday." 00:00:00", $endOfYesterday." 23:59:59"])->orderBy('id','DESC')->get();
|
2025-02-16 19:34:37 +08:00
|
|
|
|
|
|
|
|
|
case 3:
|
|
|
|
|
// 最近七天:查询过去七天的记录
|
2025-02-17 11:49:38 +08:00
|
|
|
|
$sevenDaysAgo = date('Y-m-d', strtotime('-7 days'));
|
|
|
|
|
return $query->where('created_at', '>=', $sevenDaysAgo." 23:59:59")->orderBy('id','DESC')->get();
|
2025-02-16 19:34:37 +08:00
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
// 如果没有匹配的时间段,返回空结果或其他处理方式
|
|
|
|
|
return $query->get();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|