公众号关键字回复

private function text($message = null)
    {
        //商城订单
        preg_match("/^AK(.*)$/",$message, $res);

        if($res)
        {
            // 查询订单信息
            $result = OrderModel::where('code', $message)->find();
            if(!$result){
                return new Text("暂无当前订单");
            }

            $express = '';
            if(!empty($result['expid']))
            {
                // 查询订单物流信息
                $express = ExpressModel::where('id', $result['expid'])->value('name');
            }

            $state = $result['status_text'];
            $express = $express ? $express : '暂无快递信息';
            $expcode = isset($result['expcode']) ? $result['expcode'] : '无';
            $msg = "当前订单详情:\n当前订单号:$message\n订单状态:$state\n快递公司:$express\n快递单号:$expcode";
            return new Text($msg);
        } 


        //广州天气   城市+天气
        preg_match("/^(.*)天气$/",$message, $weather);

        if($weather)
        {
            //城市
            $city = isset($weather[1]) ? $weather[1] : '';

            if(!$city)
            {
                return new Text("暂无结果");
            }

            //组装接口地址
            $url = "http://apis.juhe.cn/simpleWeather/query?city=$city&key=9ab6176129dbb280b54721e4da1a1e78";

            $data = file_get_contents($url);

            if(!is_array($data) && empty($data))
            {
                return new Text("没有当城市天气信息");
            }

            $data  = json_decode($data, true);

            $result = isset($data['result']) ? $data['result'] :  '';

            if(!$result){
                return new Text("没有当城市天气详情");
            }

            if($data['resultcode'] == '10012')
            {
                return new Text("请求超过次数限制");
            }

            // 日期
            $date = $result['future'][0]['date'];

            // 温度
            $tmp = $result['realtime']['temperature'];

            //天气描述
            $cond_txt = $result['realtime']['info'];

            //风向
            $wind_dir = $result['realtime']['direct'];

            $message = "天气查询结果:\n城市:$city\n日期:$date\n温度:{$tmp}℃\n天气描述:$cond_txt\n风向:$wind_dir";

            return new Text($message);
        }

        // 论坛关键字回复
        $where[] = ['title', 'like', '%'.$message.'%'];
        // 根据关键字查询论坛帖子
        $postinfo = PostModel::where($where)->find();

        if($postinfo)
        {
            $id =isset( $postinfo['id']) ?  $postinfo['id'] : 0;
            // 拼接论坛帖子详情链接
            $url = "http://tp6.lyqing.cn/home/index/info.html?postid=$id";

            $title = isset($postinfo['title']) ? $postinfo['title'] : '';

            // 图文消息
            $items = [
                new NewsItem([
                    'title'       => $title,  // 标题
                    'description' => '论坛',  // 描述
                    'url'         => $url   //跳转的链接地址
                ]),
            ];
            return  new News($items);
        } else {
            return new Text("未知消息");
        }

    }
powered by GitbookEdit Time: 2023-04-08 10:28:32