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']) ); } }