<?php

namespace app\controller\api;

use app\dao\SignDao;
use app\dao\UserPhoneLogDao;
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();
        // 获取当前月份的天数
        // $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);
        $res['today_sign']=SignDao::search_Sign_today($user_id);
        $res['sign_days']=SignDao::search_Sign_tolong($user_id);
        $res['next_days']=7-$res['sign_days'];
        $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)
    {
        $user_id=$request->data['id'];
        if(!UserPhoneLogDao::getOnlineTimeByPhoneTodayId($user_id)){
            return ApiResponseApp::error([],'挂机时长没有超过6小时,暂不能签到');
        }
        if(SignDao::search_Sign_today($user_id)==1){
            return ApiResponseApp::error([],'今天已经签到');
        }
        SignDao::Sign($user_id);
        return ApiResponseApp::success([]);
    }


}