生日提醒功能-提前三天

<?php
/**
 * Created by PhpStorm.
 * User: 86183
 * Date: 2020/5/12
 * Time: 13:03
 */

namespace app\admin\controller;

use app\common\controller\Backend;
use ChuanglanSmsHelper\ChuanglanSmsApi;

class Reminder extends Backend
{
    //crontab -u yizhimao 0 0 12 * * ? php think admin/crontab/exec
    protected $noNeedLogin = ['exec'];

    /**
     * 無需鑑權的方法,但需要登錄
     * @var array
     */
    protected $noNeedRight = ['*'];

    public function exec(){
        $db=db('userinfo');
        $result=$db->select();
        foreach ($result as $item){
            $date2=date('Y',time()).'-'.date('m-d',strtotime($item['birthday']));
            $date1=date('Y',time()).'-'.date('m-d',time());
            echo $date1;
            echo "<br>";
            echo $date2;
            $bool=$this->diffDay($date2,$date1);

            if ($bool){
                $mobile=db('user')->where('id',$item['uid'])->value('mobile');
                if ($mobile){
                    $this->send($mobile);
                    echo $item['turename']."生日提醒已經發送<br>";
                }else{
                    echo "您不是我們平臺的普通會員,請先綁定手機號碼";
                }
            }else{
                echo $item['turename'].'沒到生日前三天呢'."<br>";
            }
        }
    }
    private function diffDay($date1,$date2){
        $strdata1=strtotime($date1);
        $strdata2=strtotime($date2);
        if($strdata1<$strdata2){
            return false;
        }else{
            $diff=($strdata1-$strdata2)/86400;
            return $diff== 3 ? true:false;
        }
    }
    private function send($mobile){
        header("Content-type:text/html; charset=UTF-8");
        //Loader::import('ChuanglanSmsHelper\ChuanglanSmsApi','extend/');
        $clapi  = new ChuanglanSmsApi();

        $code = mt_rand(100000,999999);

        if(!preg_match('/^1[3,5,7,8]\d{9}/',$mobile)){
            return json(['code'=>400,'msg'=>'電話號碼非法']);
        }

        $result = $clapi->sendSMS($mobile,'【莊浪融媒】尊敬的依之貓會員,您今年的生日將於3天后到來,請你到依之貓門店領取生日禮物,您的領取短信驗證碼是'.$code );

        if(!is_null(json_decode($result))){
            $output=json_decode($result,true);
            if(isset($output['code'])  && $output['code']=='0'){
                return json(['code'=>200,'msg'=>'發送成功','data'=>$output['code']]);
            }else{
                return json(['code'=>400,'msg'=>$output['errorMsg']]);
            }
        }else{
            return json(['code'=>500,'msg'=>'發送短信服務器異常']);
        }
    }
}

表結構:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章