is_data = 0;
$this->tpl_prefix = 'message_';
// 表单显示名称
$this->name = dr_lang('微信消息');
$this->my_field = array(
'nickname' => array(
'ismain' => 1,
'name' => '昵称',
'isemoji' => 1,
'fieldname' => 'nickname',
),
'content' => array(
'ismain' => 1,
'name' => '内容',
'fieldname' => 'content',
),
);
// 初始化数据表
$this->_init([
'table' => weixin_wxtable('message'),
'order_by' => 'inputtime desc',
'date_field' => 'inputtime',
'field' => $this->my_field,
]);
\Phpcmf\Service::V()->assign([
'menu' => \Phpcmf\Service::M('auth')->_admin_menu(
[
WEIXIN_MORE_NAME. '消息管理' => [APP_DIR.'/'.\Phpcmf\Service::L('Router')->class.'/index', 'fa fa-user'],
'更新消息状态' => ['ajax:'.APP_DIR.'/'.\Phpcmf\Service::L('Router')->class.'/update_add', 'fa fa-refresh'],
]
),
'field' => $this->my_field,
]);
}
public function update_add() {
$rt = weixin_get_access_token();
if (!$rt['code']) {
$this->_json(0, $rt['msg']);
}
$access_token = $rt['msg'];
$error = 0;
$data = \Phpcmf\Service::M()->table(weixin_wxtable('message'))->where('status', 0)->getAll();
if ($data) {
foreach ($data as $t) {
$user = \Phpcmf\Service::M()->table(weixin_wxtable('user'))->where('openid', $t['openid'])->getRow();
if (!$user) {
//$this->_json(0, '此用户已经取消关注,消息Id:'.$t['id']);
$error++;
continue;
}
// 需要下载资源
$file = '';
$value = dr_string2array($t['content']);
if ($value['MediaId'] && in_array($t['tid'], ['image', 'voice', 'video', 'shortvideo'])) {
$file = 'http://file.api.weixin.qq.com/cgi-bin/media/get?access_token='.$access_token.
'&media_id='.$value['MediaId'];
}
\Phpcmf\Service::M()->table(weixin_wxtable('message'))->update($t['id'], [
'status' => 1,
'headimgurl' => $user['headimgurl'],
'nickname' => $user['nickname'],
'userid' => $user['id'],
'file' => $file,
]);
}
}
$this->_json(1, '更新完成,失败'.$error.'条');
}
public function index() {
list($tpl, $data) = $this->_List();
if ($data['list']) {
$list = [];
foreach ($data['list'] as $t) {
$value = dr_string2array($t['content']);
switch ($t['tid']) {
case 'text':
# 文本消息
$t['tid_name'] = ' 文本 ';
$t['content'] = $value['Content'];
break;
case 'image':
# 图片消息
$t['tid_name'] = ' 图片 ';
break;
case 'voice':
# 语音消息
$t['tid_name'] = ' 语音 ';
break;
case 'video':
# 视频消息
$t['tid_name'] = ' 视频 ';
break;
case 'shortvideo':
# 小视频消息
$t['tid_name'] = ' 小视频 ';
break;
case 'link':
# 链接消息
$t['tid_name'] = ' 链接 ';
$t['content'] = ''.$value['Url'].'';
break;
default:
$t['tid_name'] = '未知';
break;
}
$t['status_name'] = $t['status'] ? ' 已更新 ' : ' 未更新 ';
$list[] = $t;
}
}
\Phpcmf\Service::V()->assign('list', $list);
\Phpcmf\Service::V()->display($tpl);
}
public function show() {
\Phpcmf\Service::V()->assign('tid', \Phpcmf\Service::L('Input')->get('tid'));
\Phpcmf\Service::V()->assign('url', SYS_UPLOAD_URL.\Phpcmf\Service::L('Input')->get('file'));
\Phpcmf\Service::V()->display('message_show.html');exit;
}
public function del() {
$this->_Del(
\Phpcmf\Service::L('Input')->get_post_ids(),
function ($rows) {
foreach ($rows as $t) {
if ($t['file']) {
@unlink(SYS_UPLOAD_PATH.$t['file']);
}
}
return dr_return_data(1, 'ok');
},
null,
\Phpcmf\Service::M()->dbprefix($this->init['table'])
);
}
}