热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php开发ebay店铺管理系统-订单综合统计-PHP源码

给各位同学整理了一个ebay订单综合统计的php源码程序,并且可以生成图形表这样可以让我们一眼就看出每天的相关数据了,下面来看例子
给各位同学整理了一个ebay订单综合统计的php源码程序,并且可以生成图形表这样可以让我们一眼就看出每天的相关数据了,下面来看例子

订单综合统计

一、主程序/admin/erp_ebay_order_stats.php

代码如下


define('IN_ECS', true);

require(dirname(__FILE__) . '/includes/init.php');
require_once(ROOT_PATH . 'languages/' .$_CFG['lang']. '/admin/erp_ebay_statistic.php');
$smarty->assign('lang', $_LANG);

/* act操作项的初始化 */
if (empty($_REQUEST['act']))
{
$_REQUEST['act'] = 'view';
}
else
{
$_REQUEST['act'] = trim($_REQUEST['act']);
}

if ($_REQUEST['act'] == 'view')
{

admin_priv('order_stats'); //检查权限

$is_multi = empty($_POST['is_multi']) ? false : true;

/* 时间参数 */
if (isset($_POST['start_date']) && !empty($_POST['end_date']))
{
$start_date = local_strtotime($_POST['start_date']);
$end_date = local_strtotime($_POST['end_date']);
}
else
{
$today = local_strtotime(local_date('Y-m-d'));
$start_date = $today - 86400 * 14;
$end_date = $today;
}

$start_date_arr = array();
$end_date_arr = array();
if(!empty($_POST['year_month']))
{
$tmp = $_POST['year_month'];

for ($i = 0; $i {
if (!empty($tmp[$i]))
{
$tmp_time = local_strtotime($tmp[$i] . '-1');
//echo $tmp_time;
$start_date_arr[] = $tmp_time;
$end_date_arr[] = local_strtotime($tmp[$i] . '-' . date('t', $tmp_time));

//echo local_strtotime($tmp[$i] . '-' . date('t', $tmp_time));
}
}
}
else
{
$tmp_time = local_strtotime(local_date('Y-m-d'));
$start_date_arr[] = local_strtotime(local_date('Y-m') . '-1');
$end_date_arr[] = local_strtotime(local_date('Y-m') . '-31');;
}

/* ------------------------------------- */
/* -- 综合订单量
/* ------------------------------------- */
$max = 0;

if(!$is_multi)
{
$general_xml = "";

$sql = "SELECT FLOOR((created_time - $start_date) / (24 * 3600)) AS sn, created_time, COUNT(*) AS order_count".
" FROM " .$ecs->table('erp_ebay_order').
" WHERE ebay_status = 'Complete' AND created_time >= '$start_date' AND created_time <= " .($end_date + 86400).
" GROUP BY sn";
$res = $db->query($sql);

$key = 0;

while ($val = $db->fetchRow($res))
{
$val['order_date'] = gmdate('m-d',$val['created_time'] + $timezone * 3600 + 86400);
$general_xml .= "";
if ($val['order_count'] > $max)
{
$max = $val['order_count'];
}
$key++;
}

$general_xml .= '
';
$general_xml = sprintf($general_xml, $max);
}
else
{
$general_xml = "";
foreach($start_date_arr AS $k => $val)
{

$seriesName = local_date('Y-m', $start_date_arr[$k]);
$general_xml .= "";
$sql = "SELECT FLOOR((created_time - $start_date_arr[$k]) / (24 * 3600)) AS sn, created_time, COUNT(*) AS order_count".
" FROM " .$ecs->table('erp_ebay_order').
" WHERE ebay_status = 'Complete' AND created_time >= '$start_date_arr[$k]' AND created_time <= " .($end_date_arr[$k] + 86400).
" GROUP BY sn";
$res = $db->query($sql);

$lastDay = 0;

while ($val = $db->fetchRow($res))
{
$day = gmdate('d', $val['created_time'] + $timezone * 3600);

if ($lastDay == 0)
{
$time_span = (($day-1) - $lastDay);
$lastDay++;
for (; $lastDay <$day; $lastDay++)
{
$general_xml .= "";
}
}
$general_xml .= "";

$lastDay = $day;
}

$general_xml .= "
";
}

$general_xml .= "";

for ($i = 1; $i<=31; $i++)
{
$general_xml .= "";
}
$general_xml .= "
";
$general_xml .= "
";

echo $general_xml;
}

/* ------------------------------------- */
/* -- 销售额
/* ------------------------------------- */
$max = 0;

if(!$is_multi)
{
$amount_xml = "";

$sql = "SELECT FLOOR((created_time - $start_date) / (24 * 3600)) AS sn, created_time, SUM(subtotal) AS order_amount".
" FROM " .$ecs->table('erp_ebay_order').
" WHERE ebay_status = 'Complete' AND created_time >= '$start_date' AND created_time <= " .($end_date + 86400) . " AND ebay_status = 'Complete'" .
" GROUP BY sn";
$res = $db->query($sql);

$key = 0;

while ($val = $db->fetchRow($res))
{
$val['order_date'] = gmdate('m-d',$val['created_time'] + $timezone * 3600 + 86400);
$amount_xml .= "";
if ($val['order_amount'] > $max)
{
$max = $val['order_amount'];
}
$key++;
}

$amount_xml .= '
';
$amount_xml = sprintf($amount_xml, $max);
}
else
{
$amount_xml = "";
foreach($start_date_arr AS $k => $val)
{

$seriesName = local_date('Y-m', $start_date_arr[$k]);
$amount_xml .= "";
$sql = "SELECT FLOOR((created_time - $start_date_arr[$k]) / (24 * 3600)) AS sn, created_time, SUM(subtotal) AS order_amount".
" FROM " .$ecs->table('erp_ebay_order').
" WHERE ebay_status = 'Complete' AND created_time >= '$start_date_arr[$k]' AND created_time <= " .($end_date_arr[$k] + 86400) . " AND ebay_status = 'Complete'" .
" GROUP BY sn";
$res = $db->query($sql);

$lastDay = 0;

while ($val = $db->fetchRow($res))
{
$day = gmdate('d',$val['created_time'] + $timezone * 3600);

if ($lastDay == 0)
{
$time_span = (($day-1) - $lastDay);
$lastDay++;
for (; $lastDay <$day; $lastDay++)
{
$amount_xml .= "";
}
}
$amount_xml .= "";
$lastDay = $day;
}

$amount_xml .= "
";
}

$amount_xml .= "";

for ($i = 1;$i<=31;$i++)
{
$amount_xml .= "";
}
$amount_xml .= "
";
$amount_xml .= "
";
}

/* ------------------------------------- */
/* -- 状态
/* ------------------------------------- */
$status_xml = '';

if(!$is_multi)
{
$status_xml .= "";

$sql = "SELECT COUNT(*) AS order_count, ebay_status FROM " . $ecs->table('erp_ebay_order') .
" WHERE created_time >= '$start_date' AND created_time <" .($end_date + 86400).
" GROUP BY ebay_status ORDER BY order_count DESC LIMIT 20";
$res = $db->query($sql);

$key = 0;
while ($val = $db->fetchRow($res))
{
$ebay_status = empty($val['ebay_status']) ? 'no data' : $val['ebay_status'];

$status_xml .= "";
$key++;
}
$status_xml .= '
';
}
else
{
$where = '';
foreach($start_date_arr AS $k => $val)
{
if ($where != '')
{
$where .= ' or ';
}
$where .= "(created_time >= '$start_date_arr[$k]' AND created_time <= " .($end_date_arr[$k] + 86400).")";
}
$sql = "SELECT created_time, ebay_status FROM " . $ecs->table('erp_ebay_order') .
" WHERE $where";
$res = $db->query($sql);
$area_arr = array();
while ($val = $db->fetchRow($res))
{
$date = local_date('Y-m', $val['created_time']);
$area_arr[$val['ebay_status']] = null;

if (isset($category[$date][$val['ebay_status']]))
{
$category[$date][$val['ebay_status']]++;
}
else
{
$category[$date][$val['ebay_status']] = 1;
}
}
$status_xml = "";
$status_xml .= "";
foreach ($area_arr AS $k => $v)
{
$status_xml .= "";
}
$status_xml .= "
";
$key = 0;
foreach($start_date_arr AS $val)
{
$key++;
$date = local_date('Y-m', $val);
$status_xml .= "";

foreach ($area_arr AS $k => $v)
{
if (isset($category[$date][$k]))
{
$status_xml .= "";
}
else
{
$status_xml .= "";
}
}
$status_xml .= "
";
}
$status_xml .= "
";
}

/* 模板赋值 */
$smarty->assign('ur_here', $_LANG['01_erp_order_stats']);
$smarty->assign('general_data', $general_xml);
$smarty->assign('amount_data', $amount_xml);
$smarty->assign('status_data', $status_xml);
$smarty->assign('is_multi', $is_multi);

/* 显示日期 */
$smarty->assign('start_date', local_date('Y-m-d', $start_date));
$smarty->assign('end_date', local_date('Y-m-d', $end_date));

for ($i = 0; $i <5; $i++)
{
if (isset($start_date_arr[$i]))
{
$start_date_arr[$i] = local_date('Y-m', $start_date_arr[$i]);
}
else
{
$start_date_arr[$i] = null;
}
}
$smarty->assign('start_date_arr', $start_date_arr);

if (!$is_multi)
{
$filename = gmdate($_CFG['date_format'], $start_date + $timezone * 3600 + 86400) . '_' .
gmdate($_CFG['date_format'], $end_date + $timezone * 3600 + 86400);

$smarty->assign('action_link', array('text' => $_LANG['down_order_stats'],
'href'=>'erp_ebay_order_stats.php?act=download&filename=' . $filename .
'&start_date=' . $start_date . '&end_date=' . $end_date));
}

/* 显示页面 */
assign_query_info();
$smarty->display('erp_ebay_order_stats.htm');
}

/* 报表下载 */
elseif ($act = 'download')
{
admin_priv('download_order_stats'); //检查权限

$filename = !empty($_REQUEST['filename']) ? trim($_REQUEST['filename']) : '';

header("Content-type: application/vnd.ms-excel; charset=utf-8");
header("Content-Disposition: attachment; filename=$filename.xls");
$start_date = empty($_GET['start_date']) ? strtotime('-20 day') : intval($_GET['start_date']);
$end_date = empty($_GET['end_date']) ? time() : intval($_GET['end_date']);

//综合订单量统计
$sql = "SELECT FLOOR((created_time - $start_date) / (24 * 3600)) AS sn, created_time, COUNT(*) AS order_count, SUM(subtotal) AS order_amount".
" FROM " . $GLOBALS['ecs']->table('erp_ebay_order') .
" WHERE created_time >= '$start_date' AND created_time <= " .($end_date + 86400) . " AND ebay_status = 'Complete'".
" GROUP BY sn";
$res = $GLOBALS['db']->query($sql);

$data .= $_LANG['date'] . "t";
$data .= $_LANG['order_count'] . "t";
$data .= $_LANG['order_amount'] . "tn";

while ($val = $GLOBALS['db']->fetchRow($res))
{
$val['created_date'] = gmdate($_CFG['date_format'], $val['created_time'] + $timezone * 3600 + 86400);
$data .= $val['created_date'] . "t";
$data .= $val['order_count'] . "t";
$data .= price_format($val['order_amount']) . "tn";

$total_count += $val['order_count'];
$total_amount += $val['order_amount'];
}

$data .= $_LANG['total'] . "t";
$data .= $total_count . "t";
$data .= price_format($total_amount) . "tn";

//状态统计
$sql = "SELECT COUNT(*) AS order_count, SUM(subtotal) AS order_amount, ebay_status FROM " . $GLOBALS['ecs']->table('erp_ebay_order') .
" WHERE created_time >= '$start_date' AND created_time <= " .($end_date + 86400).
" GROUP BY ebay_status ORDER BY order_count DESC LIMIT 20";

$res = $GLOBALS['db']->query($sql);

$data .= "tn";
$data .= $_LANG['order_status'] . "t";
$data .= $_LANG['order_count'] . "t";
$data .= $_LANG['order_amount'] . "tn";

while ($val = $GLOBALS['db']->fetchRow($res))
{
$data .= $val['ebay_status'] . "t";
$data .= $val['order_count'] . "t";
$data .= price_format($val['order_amount']) . "tn";
}

if (EC_CHARSET != 'UTF-8')
{
echo ecs_iconv(EC_CHARSET, 'UTF-8', $data) . "t";
}
else
{
echo $data. "t";
}
}

?>

二、语言文件/languages/zh_cn/admin/erp_ebay_statistic.php

代码如下


/* 订单综合统计 */
$_LANG['tab_general'] = '综合订单量';
$_LANG['tab_amount'] = '销售额';
$_LANG['tab_status'] = '状态';

$_LANG['general_stats'] = '综合订单量统计';
$_LANG['amount_stats'] = '销售额统计';
$_LANG['status_stats'] = '状态统计';

$_LANG['date'] = '日期';
$_LANG['order_status'] = '状态';
$_LANG['order_count'] = '订单量(个)';
$_LANG['order_amount'] = '销售额';
$_LANG['total'] = '合计';
$_LANG['down_order_stats'] = '订单报表下载';

/* 买家排行 */
$_LANG['order_by'] = '排行';
$_LANG['buyer_id'] = '买家';
$_LANG['buyer_email'] = '邮箱';
$_LANG['buyer_phone'] = '电话';
$_LANG['country'] = '国家';
$_LANG['order_count'] = '订单数';
$_LANG['amount_sum'] = '购物金额';
$_LANG['created_time'] = '下单时间';

$_LANG['show_num'] = '显示数量';
$_LANG['order_amount_sort'] = '按订单数量排序';
$_LANG['download_amount_sort'] = '排行报表下载';

/* 公用 */
$_LANG['query'] = '查询';
$_LANG['start_date'] = '开始日期';
$_LANG['end_date'] = '结束日期';
$_LANG['date_interval'] = '日期';
$_LANG['year_month'] = '年月';
?>

三、模板文件/admin/templates/erp_ebay_order_stats.htm

代码如下

{include file="pageheader.htm"}




{$lang.date_interval}  

--




{$lang.year_month}  

{if $k > 0}
 + 
{/if}









{$lang.tab_general}
{$lang.tab_amount}
{$lang.tab_status}





















{insert_scripts files="tab.js"}

{include file="pagefooter.htm"}


推荐阅读
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • vb.net面试题,请大家帮忙,谢谢。如果需要讲详细一点,那就加我QQ531412815第4题,潜在的错误,这里的错误不是常规错误,属于那种只有在运行是才知道的错误:Catchex ... [详细]
  • asp.net(vb脚本)如何获取xml的节点值?xmlversion1.0encodingutf-8?rootimageimagemenusmenuurl#frame_paren ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • Linux环境变量$PATH的作用及使用方法
    本文介绍了Linux环境变量$PATH的作用及使用方法。$PATH是一个由多个目录组成的变量,用冒号分隔。当执行一个指令时,系统会按照$PATH定义的目录顺序搜索同名的可执行文件,如果有多个同名指令,则先找到的会被执行。通过设置$PATH变量,可以在任何地方执行指令,无需输入绝对路径。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • asp中如何嵌入python的简单介绍
    本文目录一览:1、如何在IIS中执行Python脚本 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
author-avatar
书友33947127
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有