LoadController.php 5.2 KB
<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2019/1/28
 * Time: 15:41
 */

namespace app\index\controller;


use app\index\model\OrderInfoModel;
use cmf\controller\HomeBaseController;
use EasyWeChat\Foundation\Application;
use think\Db;

class LoadController extends HomeBaseController
{
    public function index(){
        $type = $this->request->param('type');
        if(!$type){
            $arr['code'] = 40001;
            $arr['msg'] = '缺点参数!';
            return json_encode($arr);
        }
        //查询所有在托管中的保单
        $orderInfoModel = new OrderInfoModel();
        $time = time();
        if($type == 1){
            $where['o.status'] = ['eq',3];
            $where['o.order_about_time'] = array(array('<',$time),array('>',$time-30*24*60*60));//array(array('gt',1),array('lt',10))
            $whereor = "o.status = 1 and o.order_about_time < $time and o.order_about_time > ".($time-30*24*60*60);
            $data = $orderInfoModel->selectData1($where,$whereor);
            dump($data);
            foreach($data as $key1 => $vo){
                //判断是否已经发送
                $send_vice = Db::name('send_vice')->where(array('order_id'=>$vo['o_id'],'collocation_id'=>$vo['id'],'time'=>$vo['order_about_time'],'type'=>1))->find();
                if(empty($send_vice)){
                    //模板消息
                    $templateId = '83NoWJ74UmI-DY_FwrDrTBx1iysu9__6fosB-eMFm78';
                    $data1 = array(
                        'first'=>"尊敬的用户,您有一份保单即将到期需要续费,请在保障截止日期前完成续保,否则保单将失效",
                        'keyword1'=>$vo['insurer'],
                        'keyword2'=>$vo['product_name'],
                        'keyword3'=>$vo['insurance_num'],
                        'keyword4'=>date('Y-m-d',$vo['order_about_time']+30*24*60*60),
                        'remark'=>"请在保障期间内续费",
                    );
                    $url = url('/index/all_guarantee/guarantee_info',array('id'=>$vo['o_id']),'',true);
                    $user1 = Db::name('third_party_user')->where('user_id',$vo['user_id'])->find();
                    $this->template($templateId,$data1,$url,$user1['openid']);
                    //短信
                    $user2 = Db::name('user')->where('id',$vo['user_id'])->find();
                    $content = "【橙象保单】尊敬的用户,您有一份保单即将到期需要续费,请在保障截止日期前完成续保,否则保单将失效,保险单号$vo[insurance_num],请在".date('Y月m日d',$vo['order_about_time']+30*24*60*60)."之前续费。";
                    $this->note($content,$user2['mobile']);
                    Db::name('send_vice')->insert(array('order_id'=>$vo['o_id'],'collocation_id'=>$vo['id'],'time'=>$vo['order_about_time'],'user_id'=>$vo['user_id'],'create_time'=>time(),'type'=>1));
                    //Db::name('order')->where(['id'=>$vo['o_id']])->setInc('order_about_time',30*24*60*60);
                }
            }
        }else if($type == 2){
            //$data['status'] eq 2 || $data['order_expire_time'] lt time() || ($data['order_about_time']+24*30*60*60) lt time()
            $where['o.status'] = ['eq',2];
            $whereor = "o.status = 1 and o.order_expire_time < $time and o.order_about_time < ".($time-24*30*60*60)." or o.status = 3 and o.order_expire_time < $time or o.status = 3 and o.order_about_time < ".($time-24*30*60*60);
            $data = $orderInfoModel->selectData1($where,$whereor);
            dump($data);
            foreach($data as $key1 => $vo){
                //判断是否已经发送
                $send_vice = Db::name('send_vice')->where(array('order_id'=>$vo['o_id'],'collocation_id'=>$vo['id'],'time'=>$vo['order_about_time'],'type'=>2))->find();
                if(empty($send_vice)){
                    //短信
                    $user2 = Db::name('user')->where('id',$vo['user_id'])->find();
                    $content = "【橙象保单】尊敬的用户,您有一份保单已经失效,保险单号$vo[insurance_num]";
                    $this->note($content,$user2['mobile']);
                    Db::name('send_vice')->insert(array('order_id'=>$vo['o_id'],'collocation_id'=>$vo['id'],'time'=>$vo['order_about_time'],'user_id'=>$vo['user_id'],'create_time'=>time(),'type'=>2));
                }
            }
        }
    }
    public function template($templateId,$data,$url=null,$openid){
        $options=config('wechat_config');
        $app = new Application($options);
        $notice = $app->notice;
        if(empty($url)){
            $notice->uses($templateId)->andData($data)->andReceiver($openid)->send();
        }else{
            $notice->uses($templateId)->withUrl($url)->andData($data)->andReceiver($openid)->send();
        }
    }
    public function note($content,$mobile){
        $data = array(
            'content' 	=> $content,//短信内容
            'mobile' 	=> $mobile,//手机号码
            'productid' => '887361',//产品id
            'xh'		=> ''//小号
        );
        $result = send_sms($data);
        if(substr($result,0,strpos($result,',')) == "1"){
            echo '发送成功!';
        }else{
            echo '接口出错!';
        }
    }
}