<?php

/**
 * Created by PhpStorm.
 * User: hp
 * Date: 2017/12/2
 * Time: 15:36
 */

namespace App\Modules\SendOrder\Services;

use App\Modules\SendOrder\Models\QappUserSendOrderId;
use App\Modules\SendOrder\Models\QuickAppSendOrder;
use App\Modules\SendOrder\Models\SendOrder;
use DB;

class SendOrderService
{
    public static function getSendOrderStatic(int $id)
    {
        return SendOrder::find($id);
    }

    public function getQuickAppSendOrder(int $send_order_id)
    {
        return QuickAppSendOrder::where('send_order_id', $send_order_id)->first();
    }



    /**
     * 根据id获取信息
     * @param $id
     * @return mixed
     */
    static function getById($id)
    {
        return SendOrder::find($id);
    }


    /*
     * 更新派单时间
     */
    static function updateSendOrderTime($send_order_id)
    {
        return SendOrder::where('id', $send_order_id)->update(['send_time' => date('Y-m-d H:i:s')]);
    }

    /**
     * 废弃不用
     * 记录用户派单id
     * @param $uid
     * @param $send_order_id
     */
    static function recordUserSendOrder_($uid,$send_order_id){
        $info = QappUserSendOrderId::where('uid',$uid)->select('send_order_id')->orderBy('id','desc')->first();
        if($info && $info->send_order_id == $send_order_id){
            return ;
        }
        QappUserSendOrderId::create([
            'uid'=>$uid,'send_order_id'=>$send_order_id
        ]);
    }

    /*
        注册派单id：第一次的环境派单id，在用户表里面，以后不再更新
        环境派单id：
        1）有30天保护期，保护期到期后，更新为下个环境派单id（针对uid级别的保护）
        2）保护期间，用户点击派单，表记录还存在，只是是否生效为否
        3）派单id生效期间，后面重复点击，是否生效为否，以第一次的点击时间为准，只是为了不再更新到期时间
        $send_order_id = Redis::hget('book_read:' . $uid, 'send_order_id');
        这个字段也根据保护期间逻辑来，如果保护期内，则点击新的不更新这个字段
    */
    static function recordUserSendOrder($uid,$send_order_id){
        $info = QappUserSendOrderId::where('uid',$uid)
            ->where('end_time','>',date('Y-m-d H:i:s'))
            ->orderBy('id')->first();
        if($info){
            QappUserSendOrderId::create([
                'uid'=>$uid,'send_order_id'=>$send_order_id,'end_time'=>date('Y-m-d H:i:s'),'is_valid'=>0
            ]);
            return false;
        }
        QappUserSendOrderId::create([
            'uid'=>$uid,'send_order_id'=>$send_order_id,'end_time'=>date('Y-m-d H:i:s',time()+30*86400),'is_valid'=>1
        ]);
        try{
            DB::table('qapp_user_valid_send_order_id')->insert([
                'uid'=>$uid,'send_order_id'=>$send_order_id,'end_time'=>date('Y-m-d H:i:s',time()+30*86400),'is_valid'=>1,
                'created_at'=>date('Y-m-d H:i:s'),'updated_at'=>date('Y-m-d H:i:s')
            ]);
        }catch (\Exception $e){
        }
        return true;
    }

}
