webman/app/controller/api/SignController.php

72 lines
2.0 KiB
PHP
Raw Normal View History

2025-02-16 10:57:04 +08:00
<?php
namespace app\controller\api;
2025-02-17 11:49:38 +08:00
use app\dao\SignDao;
2025-02-16 10:57:04 +08:00
use support\Request;
use App\Utils\ApiResponseApp;
use App\model\Signlog;
use hg\apidoc\annotation as Apidoc;
use support\Db;
/**
* @Apidoc\Title("用户签到控制器")
*/
class SignController
{
protected $noNeedLogin = ['lists', 'get_project', 'get_projectdetailed', 'get_mechanism_list'];
/**
* @Apidoc\Title("1.0 签到信息")
* @Apidoc\Url("api/Sign/info")
* @Apidoc\Method("GET")
*/
public function info(Request $request)
{
/**
* today_sign 今天是否签到 当前是否签到0 表示今天还没有签到1 则表示今天已经签到
* sign_days 用户已经连续签到的天数
* next_days 距离下一个奖励或活动的天数,表示用户还需等待多少天才能解锁下一个奖励
* next_score 下一个奖励 积分
* sign_info 当月签到历史
* day_score 每天签到赠送积分数量
*/
$user_id=$request->data['id'];
// $res=Signlog::all();
// 获取当前月份的天数
2025-02-17 20:20:59 +08:00
// $days_in_month = date('t');
// for ($day = 1; $day <= $days_in_month; $day++) {
// $res['sign_info'][$day]=0;
// }
$res['sign_info']=SignDao::search_Sign_tomon($user_id);
2025-02-17 11:49:38 +08:00
$res['today_sign']=SignDao::search_Sign_today($user_id);
2025-02-17 20:20:59 +08:00
$res['sign_days']=SignDao::search_Sign_tolong($user_id);
$res['next_days']=7-$res['sign_days'];
2025-02-16 10:57:04 +08:00
$res['next_score']=500;
$res['day_score']=30;
return ApiResponseApp::success($res);
}
/**
* @Apidoc\Title("1.0 签到")
* @Apidoc\Url("api/Sign/sign")
* @Apidoc\Method("GET")
*/
public function sign(Request $request)
{
//TODO 这里业务逻辑不清晰不懂
2025-02-16 10:57:04 +08:00
//这里需要根据 业务逻辑判断 能不能签到
$user_id=$request->data['id'];
2025-02-17 11:49:38 +08:00
SignDao::Sign($user_id);
2025-02-16 10:57:04 +08:00
return ApiResponseApp::success([]);
}
}