公众号关键字回复
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("未知消息");
}
}