This commit is contained in:
lingling 2025-02-17 11:49:38 +08:00
parent 1530ff82bd
commit f24d88bec2
7 changed files with 95 additions and 106 deletions

View File

@ -2,6 +2,7 @@
namespace app\controller\api;
use app\dao\SignDao;
use support\Request;
use App\Utils\ApiResponseApp;
@ -42,7 +43,7 @@ class SignController
for ($day = 1; $day <= $days_in_month; $day++) {
$res['sign_info'][$day]=0;
}
$res['today_sign']=0;
$res['today_sign']=SignDao::search_Sign_today($user_id);
$res['sign_days']=0;
$res['next_days']=7;
$res['next_score']=500;
@ -61,10 +62,7 @@ class SignController
//这里需要根据 业务逻辑判断 能不能签到
$user_id=$request->data['id'];
$Signlog=new Signlog();
// 获取当前月份的天数
$Signlog->userid=$user_id;
$Signlog->save();
SignDao::Sign($user_id);
return ApiResponseApp::success([]);
}

View File

@ -2,10 +2,12 @@
namespace app\controller\api;
use app\dao\UserDao;
use app\dao\UserRewardDao;
use support\Request;
use App\Utils\ApiResponseApp;
use app\model\User;
use App\model\Reward;
use hg\apidoc\annotation as Apidoc;
@ -40,8 +42,15 @@ class TurntableController
*/
public function lottery(Request $request)
{
return ApiResponseApp::success(4,'恭喜抽中1.00');
$user_id = $request->data['id'];
$user = User::find($user_id);
if($user->money<10){
return ApiResponseApp::error([],'账户余额不足');
}
//TODO 这里好像还需要写是否完成今天的任务
UserRewardDao::lottery($user_id,-10);
UserRewardDao::winning($user_id,1);
return ApiResponseApp::success(1,'恭喜抽中1.00');
}
}

View File

@ -11,6 +11,9 @@ use Tinywan\Jwt\JwtToken;
use App\model\User;
use App\Utils\ApiResponseApp;
use App\dao\UserDao;
use app\dao\UserRewardDao;
use app\model\UserReward;
/**
* @Apidoc\Title("用户控制器")
*/
@ -80,8 +83,9 @@ class UserController
if (User::where('invite_code', $invitation)->count() == 0) {
return ApiResponseApp::error([], "代理不存在");
} else {
$f_id = User::where('invite_code', $invitation)->first('id');
$ff_id = User::where('f_id', $$f_id)->first('id');
$f = User::where('invite_code', $invitation)->first();
$f_id=$f->id;
$ff_id = $f->f_id;
}
}
$user = new User();
@ -95,6 +99,9 @@ class UserController
$user->invite_code = Random::str_random(5);
$user->password = password_hash($password, PASSWORD_DEFAULT);
$user->save();
$user_new=User::where('username', $username)->first();
var_dump($user_new);
UserRewardDao::Register_for_free($user_new->id);
return ApiResponseApp::success([], '注册成功');
}
/**

View File

@ -1,85 +0,0 @@
<?php
namespace app\dao;
use App\model\Users;
use App\model\BankLog;
use plugin\admin\app\model\User;
class BankDao {
/**
* 转账函数
*
* @param int $senderAccountId - 发送账户ID
* @param int $receiverAccountId - 接收账户手机号
* @param float $amount - 转账金额
* @return array - 返回转账结果
*/
public static function transfer($senderAccountId, $receiverAccountId, $amount) {
// 假设账户数据存储在一个简单的数组或数据库中
// 模拟账户余额数据(实际应用中应查询数据库)
$senderAccount=Users::where('id',$senderAccountId)->first();
$receiverAccount=Users::where('phone',$receiverAccountId)->first();
// 检查接收账户是否存在
if (!isset($receiverAccount)) {
return ['status' => 'error', 'message' => '接收账户不存在'];
}
// 检查转账金额是否合法
if ($amount <= 0) {
return ['status' => 'error', 'message' => '时间币必须大于0'];
}
// 检查发送账户余额是否足够
if ($senderAccount->timecoin < $amount) {
return ['status' => 'error', 'message' => '时间币余额不足'];
}
// 执行转账操作
self::add($senderAccount->id,$amount-$amount*2,"赠送给 $receiverAccountId 时间币 $amount");
self::add($receiverAccount->id,$amount,"收到 $senderAccount->phone 赠予 时间币 $amount");
return [
'status' => 'success',
'message' => '转账成功',
];
}
/**
* 增加时间币 传入负数就是减法
*
* @param [type] $userid 用户id
* @param [type] $amount 金额
* @param [type] $remark 备注
* @return void
*/
public static function add($userid, $amount,$remark) {
$user = Users::where('id',$userid)->first();
$log=new BankLog();
$log->userid=$userid;
$log->money=$amount;
$log->remark=$remark;
$log->save();
$user->timecoin+=$amount;
$user->Save();
}
/**
* 减少用户时间币 好像废弃了
*
* @param [type] $userid 用户id
* @param [type] $amount 金额
* @param [type] $remark 备注
* @return void
*/
public static function subtraction($userid, $amount,$remark) {
$user = Users::where('id',$userid)->first('timecoin');
$log=new BankLog();
$log->userid=$userid;
$log->money=$amount;
$log->remark=$remark;
$log->save();
$user->timecoin-=$amount;
$user->Save();
}
}

39
app/dao/SignDao.php Normal file
View File

@ -0,0 +1,39 @@
<?php
namespace app\dao;
use App\model\Signlog;
class SignDao {
/**
* 签到函数
*
*/
public static function Sign($user_id) {
$Signlog=new Signlog();
$Signlog->userid=$user_id;
$Signlog->save();
UserRewardDao::sing($user_id,30);
}
/**
* 查询今天是否签到
* 0没签到1签到
*/
public static function search_Sign_today($user_id){
$today = date('Y-m-d');
$is_sign=Signlog::where('userid',$user_id)->where('created_at', '>=', $today." 00:00:00")->count();
return $is_sign==0?0:1;
}
/**
* 查询当月签到数据
*
*/
public static function search_Sign_tomon($user_id){
$startTime = date('Y-m-01',time());//获取该月份的第一天
$endTime = date('Y-m-t',time());//获取该月份的最后一天
$mon_data=Signlog::whereBetween('created_at', [$startTime." 00:00:00", $endTime." 23:59:59"])->orderBy('created_at','DESC')->get();
}
}

View File

@ -16,7 +16,7 @@ class UserRewardDao
*/
public static function Register_for_free($userid)
{
self::f_bounty($userid, 4, 30, '注册赠送');
self::f_bounty($userid, 4, 88, '注册赠送');
}
/**
* 挂机获得的奖励
@ -32,6 +32,27 @@ class UserRewardDao
{
self::base($userid, 5, $money, '加粉赏金');
}
/**
* 抽奖
*/
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, '签到');
}
/**
* 转账函数
*/
@ -63,7 +84,8 @@ class UserRewardDao
//父父分红
$ff_dividend = floor($money * 0.1);
$user = User::find($userid);
if ($user->f_id != 0&&$money>0) {
//分红大于0才会记录 这里还有类型 有些类型需要分红吗
if ($user->f_id != 0&&$money>0&&$f_dividend>0&&$ff_dividend>0) {
$f = User::find($user->f_id);
self::base($f->id, 5, $f_dividend, '加粉赏金');
if ($user->ff_id != 0) {
@ -85,7 +107,7 @@ class UserRewardDao
{
// 初始化查询对象
if ($status == 0) {
$query = UserReward::where('user_id', $userid);
$query = UserReward::where('user_id', $userid)->orderBy('id','DESC');
} else {
$query = UserReward::where('status', $status)->where('user_id', $userid);
}
@ -98,19 +120,18 @@ class UserRewardDao
case 1:
// 今天:查询今天的记录
$startOfDay = strtotime('today'); // 今天的开始时间00:00:00
return $query->where('created_at', '>=', $startOfDay)->get();
$today = date('Y-m-d');
return $query->where('created_at', '>=', $today." 00:00:00")->orderBy('id','DESC')->get();
case 2:
// 昨天:查询昨天的记录
$startOfYesterday = strtotime('yesterday'); // 昨天的开始时间00:00:00
$endOfYesterday = strtotime('today') - 1; // 昨天的结束时间23:59:59
return $query->whereBetween('created_at', [$startOfYesterday, $endOfYesterday])->get();
$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();
case 3:
// 最近七天:查询过去七天的记录
$sevenDaysAgo = strtotime('-7 days'); // 七天前的时间戳
return $query->where('created_at', '>=', $sevenDaysAgo)->get();
$sevenDaysAgo = date('Y-m-d', strtotime('-7 days'));
return $query->where('created_at', '>=', $sevenDaysAgo." 23:59:59")->orderBy('id','DESC')->get();
default:
// 如果没有匹配的时间段,返回空结果或其他处理方式

View File

@ -13,7 +13,7 @@ use support\Model;
* @property float $before 操作前的积分余额
* @property float $after 操作后的积分余额
* @property string $memo 奖励类型或备注信息
* @property int $status 操作类型 1提现扣款 2人工调整 3提现返还 4注册赠送 5加粉赏金 6任务佣金
* @property int $status 操作类型 1提现扣款 2人工调整 3提现返还 4注册赠送 5加粉赏金 6任务佣金 8是中奖 9是抽奖
* @property string $uu_id 用户唯一标识符 这里好像是对应的用户邀请码
* @property string|null $admin_name 管理员名称(如果管理员操作)
* @property string $createtime2 创建时间的格式化日期YYYY-MM-DD HH:MM:SS