webman/app/controller/api/Vip_rewardController.php

318 lines
8.7 KiB
PHP
Raw Normal View History

2025-02-16 10:57:04 +08:00
<?php
namespace app\controller\api;
use app\model\User;
use support\Request;
use App\Utils\ApiResponse;
use App\model\Carousel;
use App\model\Project;
use App\model\ProjectDetailed;
use App\model\ProjectRegister;
use App\model\Carouselad;
use App\model\VipLevel;
2025-02-17 22:24:02 +08:00
use App\model\UserReward;
2025-02-16 10:57:04 +08:00
use App\Utils\ApiResponseApp;
use Tinywan\Jwt\JwtToken;
2025-02-17 22:24:02 +08:00
use App\dao\UserRewardDao;
2025-02-16 10:57:04 +08:00
use hg\apidoc\annotation as Apidoc;
use support\Db;
/**
* @Apidoc\Title("用户vip控制器不确定是干什么的")
*/
class Vip_rewardController
{
protected $noNeedLogin = [''];
2025-02-16 10:57:04 +08:00
/**
2025-02-16 10:57:04 +08:00
* @Apidoc\Title("1.0 获取vip等级赠送积分")
* @Apidoc\Url("api/vip_reward/product")
2025-02-16 10:57:04 +08:00
* @Apidoc\Method("POST")
*/
public function product(Request $request)
{
$data = [
[
"id" => 1,
"name" => "1",
"user_count" => 3,
"first_amount" => 1500,
"gift_amount" => 150,
"createtime" => 0
],
[
"id" => 2,
"name" => "2",
"user_count" => 5,
"first_amount" => 4000,
"gift_amount" => 380,
"createtime" => 0
],
[
"id" => 3,
"name" => "3",
"user_count" => 10,
"first_amount" => 6000,
"gift_amount" => 580,
"createtime" => 0
],
[
"id" => 4,
"name" => "4",
"user_count" => 20,
"first_amount" => 15000,
"gift_amount" => 1080,
"createtime" => 0
],
[
"id" => 5,
"name" => "5",
"user_count" => 40,
"first_amount" => 40000,
"gift_amount" => 2080,
"createtime" => 0
],
[
"id" => 6,
"name" => "6",
"user_count" => 70,
"first_amount" => 75000,
"gift_amount" => 3800,
"createtime" => 0
],
[
"id" => 7,
"name" => "7",
"user_count" => 200,
"first_amount" => 75000,
"gift_amount" => 10800,
"createtime" => 0
],
[
"id" => 8,
"name" => "8",
"user_count" => 500,
"first_amount" => 75000,
"gift_amount" => 28000,
"createtime" => 0
],
[
"id" => 9,
"name" => "9",
"user_count" => 1000,
"first_amount" => 75000,
"gift_amount" => 58000,
"createtime" => 0
]
];
return ApiResponseApp::success($data);
2025-02-16 10:57:04 +08:00
}
2025-02-16 10:57:04 +08:00
/**
* @Apidoc\Title("1.0 查询当前用户积分")
* @Apidoc\Url("api/vip_reward/need_score")
2025-02-16 10:57:04 +08:00
* @Apidoc\Method("POST")
*/
public function need_score(Request $request)
{
2025-02-17 22:24:02 +08:00
// $user_id = $request->data['id'];
// $user = User::find($user_id);
// $res['score'] = $user->money;
$res=[
"score"=>80
];
return ApiResponseApp::success($res);
}
/**
* @Apidoc\Title("1.0 获取当前用户vip等级")
* @Apidoc\Url("api/vip_reward/user_count")
* @Apidoc\Method("POST")
*/
public function user_count(Request $request)
2025-02-16 10:57:04 +08:00
{
$user_id=$request->data['id'];
$user=User::find($user_id);
2025-02-18 09:42:26 +08:00
return ApiResponseApp::success(['user_count'=>$user->today_num]);
2025-02-16 10:57:04 +08:00
}
/**
* @Apidoc\Title("1.0 获取当前用户vip等级")
* @Apidoc\Url("api/vip_reward/check_status")
* @Apidoc\Method("POST")
*/
public function check_status(Request $request)
{
2025-02-17 22:24:02 +08:00
//获取当前用户
$user_id=$request->data['id'];
$user=User::find($user_id);
$datas = [
[
"vip_id" => 1,
"status" => 0,
'$userCount' => 0,
"user_count" => 3
],
[
"vip_id" => 2,
"status" => 0,
'$userCount' => 0,
"user_count" => 5
],
[
"vip_id" => 3,
"status" => 0,
'$userCount' => 0,
"user_count" => 10
],
[
"vip_id" => 4,
"status" => 0,
'$userCount' => 0,
"user_count" => 20
],
[
"vip_id" => 5,
"status" => 0,
'$userCount' => 0,
"user_count" => 40
],
[
"vip_id" => 6,
"status" => 0,
'$userCount' => 0,
"user_count" => 70
],
[
"vip_id" => 7,
"status" => 0,
'$userCount' => 0,
"user_count" => 200
],
[
"vip_id" => 8,
"status" => 0,
'$userCount' => 0,
"user_count" => 500
],
[
"vip_id" => 9,
"status" => 0,
'$userCount' => 0,
"user_count" => 1000
]
];
2025-02-17 22:24:02 +08:00
//获取该用户今天的领奖记录
$UserRewasrds = UserReward::where('user_id', $user_id)
->whereDate('created_at', date('Y-m-d'))
2025-02-17 22:37:09 +08:00
->where('memo', 'like', '%' . '等级奖励' . '%')
2025-02-17 22:24:02 +08:00
->get();
// 遍历每个用户记录并更新 status 字段
foreach ($datas as &$data) {
foreach ($UserRewasrds as $UserRewasrd) {
if (strpos($UserRewasrd->memo, $data['vip_id'].'等级奖励') !== false) {
$data['status'] = 2;
break;
}
}
if ($data['status'] == 2) {
continue;
}
2025-02-18 10:37:38 +08:00
if ($user->today_num >= $data['user_count']) {
2025-02-17 22:24:02 +08:00
$data['status'] = 1; // 满足条件时设置状态为1
} else {
$data['status'] = 0; // 不满足条件时设置状态为0
}
}
return ApiResponseApp::success($datas);
}
/**
* @Apidoc\Title("1.0 领取等级奖励")
* @Apidoc\Url("api/vip_reward/receive")
* @Apidoc\Method("GET")
*/
public function receive(Request $request)
{
// 输出所有请求参数以进行调试
$input = $request->all();
$vip_id = $input['vip_id'];
$user_id=$request->data['id'];
// $user=User::find($user_id);
$datas = [
[
"vip_id" => 1,
"money" => 150,
'new_money' => 1500,
],
[
"vip_id" => 2,
"money" => 380,
'new_money' => 4000,
],
[
"vip_id" => 3,
"money" => 580,
'new_money' => 6000,
],
[
"vip_id" => 4,
"money" => 1080,
'new_money' => 15000,
],
[
"vip_id" => 5,
"money" => 2080,
'new_money' => 40000,
],
[
"vip_id" => 6,
"money" => 3800,
'new_money' => 75000,
],
[
"vip_id" => 7,
"money" => 10800,
'new_money' => 75000,
],
[
"vip_id" => 8,
"money" => 28000,
'new_money' => 75000,
],
[
"vip_id" => 9,
"money" => 58000,
'new_money' => 75000,
],
];
$money = null;
$new_money = null;
foreach ($datas as $data) {
if ($data['vip_id'] == $vip_id) {
$money = $data['money'];
$new_money = $data['new_money'];
break;
}
}
$UserReward = UserReward::where('memo', '首次VIP'.$vip_id.'等级奖励')->where('user_id', $user_id)->get();
//判断是否有
if ($UserReward->count() > 0) {
UserRewardDao::base($user_id, 6, $money, 'VIP'.$vip_id.'等级奖励');
}else{
UserRewardDao::base($user_id, 6, $new_money, '首次VIP'.$vip_id.'等级奖励');
}
return ApiResponseApp::success('领取成功');
}
2025-02-16 10:57:04 +08:00
}