welcome(); } /* * 检查是否为最新版本 */ function version() { //当前版本 $curent_version = file_get_contents(base_path() . 'version.php'); //获取最新版本信息 $vaules = array( 'domain' => $_SERVER['HTTP_HOST'], 'version' => $curent_version, ); $service_url = "http://service.o1h.cn/index.php/home/Version/checkDsshop.html?" . http_build_query($vaules); //设置超时时间 $opts = array( 'http' => array( 'timeout' => 3 ) ); $context = stream_context_create($opts); $service_info = @file_get_contents($service_url,FALSE,$context); $version_message = json_decode($service_info); View::assign('version_message', $version_message); } function welcome() { $this->version(); /** * 管理员信息 */ $admin_model = model('admin'); $tmp = $this->getAdminInfo(); $condition = array(); $condition[] = array('admin_id','=',$tmp['admin_id']); $admin_info = $admin_model->infoAdmin($condition); $admin_info['admin_login_time'] = date('Y-m-d H:i:s', ($admin_info['admin_login_time'] == '' ? TIMESTAMP : $admin_info['admin_login_time'])); /** * 系统信息 */ $setup_date = config('ds_config.setup_date'); $statistics['tp_version'] = \think\App::VERSION; $statistics['os'] = PHP_OS; $statistics['web_server'] = $_SERVER['SERVER_SOFTWARE']; $statistics['php_version'] = PHP_VERSION; $statistics['sql_version'] = $this->_mysql_version(); //$statistics['shop_version'] = $version; $statistics['setup_date'] = substr($setup_date, 0, 10); $statistics['domain'] = $_SERVER['HTTP_HOST']; $statistics['ip'] = GetHostByName($_SERVER['SERVER_NAME']); $statistics['zlib'] = function_exists('gzclose') ? 'YES' : 'NO'; //zlib $statistics['safe_mode'] = (boolean) ini_get('safe_mode') ? 'YES' : 'NO'; //safe_mode = Off $statistics['timezone'] = function_exists("date_default_timezone_get") ? date_default_timezone_get() : "no_timezone"; $statistics['curl'] = function_exists('curl_init') ? 'YES' : 'NO'; $statistics['fileupload'] = @ini_get('file_uploads') ? ini_get('upload_max_filesize') : 'unknown'; $statistics['max_ex_time'] = @ini_get("max_execution_time") . 's'; //脚本最大执行时间 $statistics['set_time_limit'] = function_exists("set_time_limit") ? true : false; $statistics['memory_limit'] = ini_get('memory_limit'); $statistics['version'] = file_get_contents(base_path() . 'version.php'); if (function_exists("gd_info")) { $gd = gd_info(); $statistics['gdinfo'] = $gd['GD Version']; } else { $statistics['gdinfo'] = "未知"; } View::assign('statistics', $statistics); View::assign('admin_info', $admin_info); $this->_stat_json(); $this->setAdminCurItem('welcome'); echo View::fetch('welcome'); exit; } private function _stat_json() { $this->_get_week_member(); $this->_get_week_goods(); $this->_get_week_order(); } /** * 获取本周新增订单数量 */ private function _get_week_order() { $stat_model = model('stat'); $field = ' COUNT(*) as allnum '; $current_weekarr = getWeek_SdateAndEdate(TIMESTAMP); $stime = strtotime($current_weekarr['sdate']) - 86400 * 7; $etime = strtotime($current_weekarr['edate']) + 86400 - 1; //总计的查询时间 $count_arr['seartime'] = ($stime + 86400 * 7) . '|' . $etime; $up_week = @date('W', $stime); //上周 $curr_week = @date('W', $etime); //本周 //构造横轴数据 for ($i = 1; $i <= 7; $i++) { //统计图数据 $up_arr[$i] = 0; $curr_arr[$i] = 0; $tmp_weekarr = getSystemWeekArr(); //统计表数据 $currlist_arr[$i]['timetext'] = $tmp_weekarr[$i]; //方便搜索会员列表,计算开始时间和结束时间 $currlist_arr[$i]['stime'] = strtotime($current_weekarr['sdate']) + ($i - 1) * 86400; $currlist_arr[$i]['etime'] = $currlist_arr[$i]['stime'] + 86400 - 1; $uplist_arr[$i]['val'] = 0; $currlist_arr[$i]['val'] = 0; //横轴 $stat_arr['xAxis']['categories'][] = $tmp_weekarr[$i]; unset($tmp_weekarr); } $where[] = array('add_time','between', array($stime, $etime)); $field .= ',WEEKOFYEAR(FROM_UNIXTIME(add_time)) as weekval,WEEKDAY(FROM_UNIXTIME(add_time))+1 as dayofweekval '; $orderlist = Db::name('order')->field($field)->where($where)->group('weekval,dayofweekval')->select()->toArray(); if ($orderlist) { foreach ($orderlist as $k => $v) { if ($up_week == intval($v['weekval'])) { $up_arr[$v['dayofweekval']] = intval($v['allnum']); $uplist_arr[$v['dayofweekval']]['val'] = intval($v['allnum']); if (isset($count_arr['up'])) { $count_arr['up'] += intval($v['allnum']); } else { $count_arr['up'] = 0; } } if ($curr_week == $v['weekval']) { $curr_arr[$v['dayofweekval']] = intval($v['allnum']); $currlist_arr[$v['dayofweekval']]['val'] = intval($v['allnum']); if (isset($count_arr['curr'])) { $count_arr['curr'] += intval($v['allnum']); } else { $count_arr['curr'] = 0; } } } } $stat_arr['series'][0]['name'] = '上周'; $stat_arr['series'][0]['data'] = array_values($up_arr); $stat_arr['series'][1]['name'] = '本周'; $stat_arr['series'][1]['data'] = array_values($curr_arr); //得到统计图数据 $stat_arr['title'] = '新增订单统计'; $stat_arr['yAxis'] = '新增订单数'; $stat_json = getStatData_LineLabels($stat_arr); View::assign('stat_json_week_order', $stat_json); } /** * 获取本周新增商品数量 */ private function _get_week_goods() { $stat_model = model('stat'); $field = ' COUNT(*) as allnum '; $current_weekarr = getWeek_SdateAndEdate(TIMESTAMP); $stime = strtotime($current_weekarr['sdate']) - 86400 * 7; $etime = strtotime($current_weekarr['edate']) + 86400 - 1; //总计的查询时间 $count_arr['seartime'] = ($stime + 86400 * 7) . '|' . $etime; $up_week = @date('W', $stime); //上周 $curr_week = @date('W', $etime); //本周 //构造横轴数据 for ($i = 1; $i <= 7; $i++) { //统计图数据 $up_arr[$i] = 0; $curr_arr[$i] = 0; $tmp_weekarr = getSystemWeekArr(); //统计表数据 $currlist_arr[$i]['timetext'] = $tmp_weekarr[$i]; //方便搜索会员列表,计算开始时间和结束时间 $currlist_arr[$i]['stime'] = strtotime($current_weekarr['sdate']) + ($i - 1) * 86400; $currlist_arr[$i]['etime'] = $currlist_arr[$i]['stime'] + 86400 - 1; $uplist_arr[$i]['val'] = 0; $currlist_arr[$i]['val'] = 0; //横轴 $stat_arr['xAxis']['categories'][] = $tmp_weekarr[$i]; unset($tmp_weekarr); } $where[] = array('goods_addtime','between', array($stime, $etime)); $field .= ',WEEKOFYEAR(FROM_UNIXTIME(goods_addtime)) as weekval,WEEKDAY(FROM_UNIXTIME(goods_addtime))+1 as dayofweekval '; $goodslist = Db::name('goodscommon')->field($field)->where($where)->group('weekval,dayofweekval')->select()->toArray(); if ($goodslist) { foreach ($goodslist as $k => $v) { if ($up_week == intval($v['weekval'])) { $up_arr[$v['dayofweekval']] = intval($v['allnum']); $uplist_arr[$v['dayofweekval']]['val'] = intval($v['allnum']); if (isset($count_arr['up'])) { $count_arr['up'] += intval($v['allnum']); } else { $count_arr['up'] = 0; } } if ($curr_week == $v['weekval']) { $curr_arr[$v['dayofweekval']] = intval($v['allnum']); $currlist_arr[$v['dayofweekval']]['val'] = intval($v['allnum']); if (isset($count_arr['curr'])) { $count_arr['curr'] += intval($v['allnum']); } else { $count_arr['curr'] = 0; } } } } $stat_arr['series'][0]['name'] = '上周'; $stat_arr['series'][0]['data'] = array_values($up_arr); $stat_arr['series'][1]['name'] = '本周'; $stat_arr['series'][1]['data'] = array_values($curr_arr); //得到统计图数据 $stat_arr['title'] = '新增商品统计'; $stat_arr['yAxis'] = '新增商品数'; $stat_json = getStatData_LineLabels($stat_arr); View::assign('stat_json_week_goods', $stat_json); } /** * 获取本周新增会员数量 */ private function _get_week_member() { $stat_model = model('stat'); $field = ' COUNT(*) as allnum '; $current_weekarr = getWeek_SdateAndEdate(TIMESTAMP); $stime = strtotime($current_weekarr['sdate']) - 86400 * 7; $etime = strtotime($current_weekarr['edate']) + 86400 - 1; //总计的查询时间 $count_arr['seartime'] = ($stime + 86400 * 7) . '|' . $etime; $up_week = @date('W', $stime); //上周 $curr_week = @date('W', $etime); //本周 //构造横轴数据 for ($i = 1; $i <= 7; $i++) { //统计图数据 $up_arr[$i] = 0; $curr_arr[$i] = 0; $tmp_weekarr = getSystemWeekArr(); //统计表数据 $currlist_arr[$i]['timetext'] = $tmp_weekarr[$i]; //方便搜索会员列表,计算开始时间和结束时间 $currlist_arr[$i]['stime'] = strtotime($current_weekarr['sdate']) + ($i - 1) * 86400; $currlist_arr[$i]['etime'] = $currlist_arr[$i]['stime'] + 86400 - 1; $uplist_arr[$i]['val'] = 0; $currlist_arr[$i]['val'] = 0; //横轴 $stat_arr['xAxis']['categories'][] = $tmp_weekarr[$i]; unset($tmp_weekarr); } $where[] = array('member_addtime','between', array($stime, $etime)); $field .= ',WEEKOFYEAR(FROM_UNIXTIME(member_addtime)) as weekval,WEEKDAY(FROM_UNIXTIME(member_addtime))+1 as dayofweekval '; $memberlist = Db::name('member')->field($field)->where($where)->group('weekval,dayofweekval')->select()->toArray(); if ($memberlist) { foreach ($memberlist as $k => $v) { if ($up_week == intval($v['weekval'])) { $up_arr[$v['dayofweekval']] = intval($v['allnum']); $uplist_arr[$v['dayofweekval']]['val'] = intval($v['allnum']); if (isset($count_arr['up'])) { $count_arr['up'] += intval($v['allnum']); } else { $count_arr['up'] = 0; } } if ($curr_week == $v['weekval']) { $curr_arr[$v['dayofweekval']] = intval($v['allnum']); $currlist_arr[$v['dayofweekval']]['val'] = intval($v['allnum']); if (isset($count_arr['curr'])) { $count_arr['curr'] += intval($v['allnum']); } else { $count_arr['curr'] = 0; } } } } $stat_arr['series'][0]['name'] = '上周'; $stat_arr['series'][0]['data'] = array_values($up_arr); $stat_arr['series'][1]['name'] = '本周'; $stat_arr['series'][1]['data'] = array_values($curr_arr); //得到统计图数据 $stat_arr['title'] = '新增会员统计'; $stat_arr['yAxis'] = '新增会员数'; $stat_json = getStatData_LineLabels($stat_arr); View::assign('stat_json_week_member', $stat_json); } /** * 获取当前数据库版本 */ private function _mysql_version() { $version = Db::query("select version() as ver"); return $version[0]['ver']; } function aboutus() { $this->setAdminCurItem('aboutus'); return View::fetch(); } /** * 统计 */ public function statistics() { $statistics = array(); // 本周开始时间点 $tmp_time = mktime(0, 0, 0, date('m'), date('d'), date('Y')) - (date('w') == 0 ? 7 : date('w') - 1) * 24 * 60 * 60; /** * 会员 */ $member_model = model('member'); // 会员总数 $statistics['member'] = $member_model->getMemberCount(array()); // 新增会员数 $statistics['week_add_member'] = $member_model->getMemberCount(array(array('member_addtime','>=', $tmp_time))); // 预存款提现 $statistics['cashlist'] = model('predeposit')->getPdcashCount(array('pdc_payment_state' => 0)); /** * 商品 */ $goods_model = model('goods'); // 商品总数 $statistics['goods'] = $goods_model->getGoodsCommonCount(array()); // 新增商品数 $statistics['week_add_product'] = $goods_model->getGoodsCommonCount(array(array('goods_addtime','>=', $tmp_time))); // 举报 $statistics['inform_list'] = model('inform')->getInformCount(array('inform_state' => 1)); /** * 交易 */ $order_model = model('order'); $refundreturn_model = model('refundreturn'); $vrrefund_model = model('vrrefund'); // 订单总数 $statistics['order'] = $order_model->getOrderCount(array()); // 退款 $statistics['refund'] = $refundreturn_model->getRefundreturnCount(array('refund_type' => 1, 'refund_state' => 2)); // 退货 $statistics['return'] = $refundreturn_model->getRefundreturnCount(array('refund_type' => 2, 'refund_state' => 2)); // 虚拟订单退款 $statistics['vr_refund'] = $vrrefund_model->getVrrefundCount(array('admin_state' => 1)); /** * 运营 */ // 抢购数量 $statistics['groupbuy_verify_list'] = model('groupbuy')->getGroupbuyCount(array('groupbuy_state' => 10)); // 积分订单 $pointsorder_model = model('pointorder'); $condition = array(array('point_orderstate','in', array(11, 20))); $statistics['points_order'] = $pointsorder_model->getPointorderCount($condition); // 平台客服 $statistics['mall_consult'] = model('mallconsult')->getMallconsultCount(array('mallconsult_isreply' => 0)); echo json_encode($statistics); exit; } } ?>