public function updateMenu()
 {
     import('Org.Wechat.wechat');
     $wechat = new Wechat(array('token' => C('WECHAT_TOKEN'), 'encodingaeskey' => C('WECHAT_AES_KEY'), 'appid' => C('WECHAT_APPID'), 'appsecret' => C('WECHAT_APPSECRET')));
     if (IS_POST) {
         $menu = D('Menu')->getMenu();
         $result = array();
         foreach ($menu as &$val) {
             $temp = $this->toMenu($val);
             $sub_menu = D('Menu')->getMenu($val['id']);
             if (isset($sub_menu[0])) {
                 $t = array();
                 foreach ($sub_menu as &$sub) {
                     $t[] = $this->toMenu($sub);
                 }
                 $temp['sub_button'] = $t;
                 unset($t);
             }
             $result['button'][] = $temp;
             unset($temp);
         }
         $wechat->createMenu($result);
     }
     $msg = $wechat->errMsg;
     if ($msg == 'no access') {
         $msg = '';
     }
     $this->ajaxReturn(array('msg' => $msg));
 }
 public function index()
 {
     if (IS_POST) {
         $data['name'] = I('post.name', 'addslashes,htmlspecialchars');
         $data['contact'] = I('post.contact/d');
         $data['description'] = str_replace("\n", '<br/>', I('post.description', 'addslashes,htmlspecialchars'));
         D('Contact')->add($data);
         $wechat = new Wechat(array('token' => C('WECHAT_TOKEN'), 'encodingaeskey' => C('WECHAT_AES_KEY'), 'appid' => C('WECHAT_APPID'), 'appsecret' => C('WECHAT_APPSECRET')));
         $kf = explode(';', F('KF_REPLY'));
         $msg['msgtype'] = 'text';
         $msg['text']['content'] = $data['name'] . '留下新消息,请到后台查看~';
         foreach ($kf as &$val) {
             $msg['touser'] = $val;
             $wechat->sendCustomMessage($msg);
         }
         $this->success('提交成功,将返回上一页...', '/Evaluate');
     } else {
         $this->display();
     }
 }
 public function updateList()
 {
     $msg = '更新失败,请与管理员联系~';
     if (IS_POST) {
         $wechat = new Wechat(array('token' => C('WECHAT_TOKEN'), 'encodingaeskey' => C('WECHAT_AES_KEY'), 'appid' => C('WECHAT_APPID'), 'appsecret' => C('WECHAT_APPSECRET')));
         $openid = $wechat->getUserList();
         $data = array();
         foreach ($openid['data']['openid'] as &$val) {
             $data['user_list'][] = array('openid' => $val);
         }
         unset($openid);
         //生成请求$data
         $data = $wechat->getUserInfoBatchget($data);
         $sql = array();
         foreach ($data['user_info_list'] as &$val) {
             $sql[] = array('openid' => $val['openid'], 'nickname' => $val['nickname'], 'city' => $val['city'], 'headimgurl' => substr($val['headimgurl'], 0, -1));
         }
         unset($data);
         D('UserList')->execute('TRUNCATE user_list');
         D('UserList')->addAll($sql);
         $msg = '';
     }
     $this->ajaxReturn(array('msg' => $msg));
 }
 public function index()
 {
     $res = array();
     // UPTIME
     if ($str = @file('/proc/uptime')) {
         $str = explode(' ', implode('', $str));
         $res['uptime'] = $this->getDay(trim($str[0]));
     }
     // MEMORY
     if ($str = @file('/proc/meminfo')) {
         $str = implode('', $str);
         preg_match_all('/MemTotal\\s{0,}\\:+\\s{0,}([\\d\\.]+).+?MemFree\\s{0,}\\:+\\s{0,}([\\d\\.]+).+?Cached\\s{0,}\\:+\\s{0,}([\\d\\.]+).+?SwapTotal\\s{0,}\\:+\\s{0,}([\\d\\.]+).+?SwapFree\\s{0,}\\:+\\s{0,}([\\d\\.]+)/s', $str, $buf);
         preg_match_all('/Buffers\\s{0,}\\:+\\s{0,}([\\d\\.]+)/s', $str, $buffers);
         $res['memTotal'] = round($buf[1][0] / 1024, 2);
         $res['memFree'] = round($buf[2][0] / 1024, 2);
         $res['memBuffers'] = round($buffers[1][0] / 1024, 2);
         $res['memCached'] = round($buf[3][0] / 1024, 2);
         $res['memUsed'] = $res['memTotal'] - $res['memFree'];
         $res['memPercent'] = floatval($res['memTotal']) != 0 ? round($res['memUsed'] / $res['memTotal'] * 100, 2) : 0;
         $res['memRealUsed'] = $res['memTotal'] - $res['memFree'] - $res['memCached'] - $res['memBuffers'];
         //真实内存使用
         $res['memRealFree'] = $res['memTotal'] - $res['memRealUsed'];
         //真实空闲
         $res['memRealPercent'] = floatval($res['memTotal']) != 0 ? round($res['memRealUsed'] / $res['memTotal'] * 100, 2) : 0;
         //真实内存使用率
         $res['memCachedPercent'] = floatval($res['memCached']) != 0 ? round($res['memCached'] / $res['memTotal'] * 100, 2) : 0;
         //Cached内存使用率
         $res['swapTotal'] = round($buf[4][0] / 1024, 2);
         $res['swapFree'] = round($buf[5][0] / 1024, 2);
         $res['swapUsed'] = round($res['swapTotal'] - $res['swapFree'], 2);
         $res['swapPercent'] = floatval($res['swapTotal']) != 0 ? round($res['swapUsed'] / $res['swapTotal'] * 100, 2) : 0;
     }
     // LOAD AVG
     if ($str = @file('/proc/loadavg')) {
         $str = explode(' ', implode('', $str));
         $str = array_chunk($str, 4);
         $res['loadAvg'] = implode(' ', $str[0]);
     }
     //数据库信息统计
     $data = (new \Think\Model())->query('SHOW STATUS');
     $sql = array();
     foreach ($data as &$val) {
         switch ($val['variable_name']) {
             case 'Uptime':
                 $sql['uptime'] = $this->getDay($val['value']);
                 break;
             case 'Queries':
                 $sql['query'] = $val['value'];
                 break;
             case 'Qcache_hits':
                 $sql['qc_hits'] = $val['value'];
                 break;
             case 'Qcache_inserts':
                 $sql['qc_inserts'] = $val['value'];
                 break;
             case 'Threads_connected':
                 $sql['connection'] = $val['value'];
                 break;
         }
     }
     $sql['hit_rate'] = round(($sql['qc_hits'] - $sql['qc_inserts']) / $sql['qc_hits'] * 100, 2);
     unset($data);
     //微信数据统计
     $wechat_data = S('wechat');
     if (!$wechat_data) {
         import('Org.Wechat.wechat');
         $yesterday = date('Y-m-d', NOW_TIME - 86400);
         $wechat = new Wechat(array('token' => C('WECHAT_TOKEN'), 'encodingaeskey' => C('WECHAT_AES_KEY'), 'appid' => C('WECHAT_APPID'), 'appsecret' => C('WECHAT_APPSECRET')));
         $tmp = $wechat->getDatacube('user', 'summary', $yesterday, $yesterday);
         $wechat_data['user'] = $tmp[0];
         $tmp = $wechat->getDatacube('interface', 'summary', $yesterday);
         $wechat_data['interface'] = $tmp[0];
         unset($tmp);
         S('wechat', $wechat_data, 3600);
     }
     $this->assign('system', $res);
     $this->assign('sql', $sql);
     $this->assign('wechat', $wechat_data);
     $this->display();
 }