You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
2.6 KiB

<?php
namespace app\base\model\wechat;
use app\base\model\Base;
use think\model\concern\SoftDelete;
class WechatReply extends Base
{
use SoftDelete;
// 设置当前模型对应的完整数据表名称
protected $table = 'base_wechat_reply';
protected $type = [
'content' => 'serialize'
];
/**
* 获取器-回复消息类型文本
* @date 2020-10-20
*/
public function getTypeTextAttr($value, $data)
{
$text = [
'text' => '文本消息',
'image' => '图片消息',
'voice' => '语音消息',
'video' => '视频消息',
'music' => '音乐消息',
'news' => '图文消息',
'transfer' => '多客服消息',
];
return $text[$data['type']];
}
/**
* 查找全部数据--带分页
* @param array $where 查询条件
* @param string $field 查询字段
* @param string $order 排序方式
* @param int $page 当前页数
* @param int $per_page_number 每页条数
* @date 2020-09-10
*/
// public function getDataList($where, $field = '*', $order = '', $page, $per_page_number = 10)
// {
// $primary_key_name = $this->getPk();
//
// if (empty($order)) {
// $order = (empty($data[$primary_key_name]) ? 'id' : $data[$primary_key_name]) . ' desc';
// }
//
// //获取全部图文
// $wechat_news_model = new WechatNews();
// $news = $wechat_news_model->where([
// ['uid', '=', UID]
// ])->column('name', 'id');
//
// $dataList = $this->field($field)->where($where)->order($order)
// ->paginate(['list_rows' => $per_page_number, 'page' => $page], false)->each(function ($item, $key) use ($news) {
// if ($item->getData('type') == 'news') {
// $item->news_name = isset($news[$item->content['news_id']]) ? $news[$item->content['news_id']] : '图文已失效';
// }
// return $item;
// });
// return $dataList;
// }
/**
* 根据关键字获取回复信息
* @param string $keyword 触发关键字
* @date 2020-07-27
*/
public function getWechatReply($keyword)
{
return $this->where('("' . $keyword . '" REGEXP name and matching_type = 2) or ( name = "' . $keyword . '" and matching_type = 1)
or (name REGEXP "' . $keyword . '" and matching_type = 2) ')
->where([
['uid', '=', $this->mid],
['trigger_type', '=', 1],
])
->order('matching_type')
->find();
}
}