【Hadoop Summit Tokyo 2016】使用Amaterasu项目进行数据操作
本讲义出自Yaniv Rodenski与Karel Alfonso在Hadoop Summit Tokyo 2016上的演讲,主要分享了数据管道的相关知识以及其主要作用,并且分享了数据管道建造者的原型、数据操作以及协作等相关内容,还分享了大数据应用的持续集成的案例,最后还介绍了Apache下的开源分布式资源管理框架Mesos的相关内容。
先把代码贴出来,大部分有注释if ($_REQUEST['act'] == 'list') { 检查权限 admin_priv('fanli2'); /*
* $sp 售价
* $cp 成本价
* $cj 差价
* 计算冻结积分
* $frozenpay_points 个人冻结积分
* $zd 总冻结积分
* $fp 个人冻结消费积分
* $gp 商品总售价
* $cbp 成本总价
* $scj 所有商品差价
*/
if ($_POST['query'] and $_POST['start_time'] and $_POST['end_time']) {
//获取当天8点时间
$today = strtotime(date('Y-m-d', time()));
//获取当天23:59:59 第二天八点
$next = $today + 3600 * 24;
// 获得选择开始时间 $start_time = strtotime($_POST['start_time']); // 获得选择结束时间 $end_time = strtotime($_POST['end_time']);
// 获得user_id和order_id $sql = "select user_id, order_id from " . $ecs->table('order_info');
$order = $db->getAll($sql);
//获得总冻结积分
$zd1 = "select sum(frozenpay_points) from" . $ecs->table('users');
$zd = $db->getOne($zd1);
// 获得当天商品售价总价
$gp1 = "select sum(goods_price) from" . $ecs->table('order_goods') . "as a left join" . $ecs->table('order_info') . "as b on a.order_id = b.order_id where pay_time >= $start_time" . " AND pay_time <= $end_time";
$gp = $db->getOne($gp1);
//var_dump($gp);
//获得当天成本价
$cbp1 = "select sum(chengben_price) from" . $ecs->table('order_goods') . "as a left join" . $ecs->table('order_info') . "as b on a.order_id = b.order_id where pay_time >= $start_time" . " AND pay_time <= $end_time";
$cbp = $db->getOne($cbp1);
// 获得个人冻结积分 $sql = "select sum(frozenpay_points) from " . $ecs->table('users'); $frozenpay_points = $db->getOne($sql);
// 获得差价 $scj = $gp - $cbp;
// 计算 $fan = ($frozenpay_points / $zd) * ($scj * 0.2);
$desc = '公式二返利' . $fan . '时间' . date('Y-m-d', time());
// var_dump($order);die;
foreach ($order as $k => $v) {
// 查询logs中订单时间是否是今天$sql = "select change_time , order_id from " . $ecs->table('logs') . "where order_id=" . $v['order_id'] . ' order by change_time desc'; $row = $db->getRow($sql);
//如果是今天说明返过了,如果不是,则执行下面内容if ($row['change_time'] > $today and $row['change_time'] < $next) { echo "今天已经返过了"; die; } else {
// 查询所有的冻结积分$sql = "select sum(frozenpay_points) from " . $ecs->table('users') . " where user_id=" . $v['user_id']; $user_frozenpay_points = $db->getOne($sql);
if ($user_frozenpay_points > $fan) {
$sql = "update ecs_users set frozenpay_points = frozenpay_points -" . $fan . " , pay_points = pay_points +" . $fan . " where user_id=" . $v['user_id'];
$db->query($sql);
$time = time();
$sql = "insert into ecs_account_log (user_id,pay_points,change_time,change_desc) VALUES ($k,$fan,$time,'$desc')";
$user_id = $v['user_id'];
$order_id = $v['order_id'];
$sql = "INSERT INTO `zhongren`.`ecs_logs`( `user_id`, `order_id`, `change_time`, `start`) VALUES ($user_id, $order_id,$time,1)";
$db->query($sql);
}
}
}
}
$smarty->display('fanli2.htm');
这是这几天用ecshop开发一个商城返利的功能。本人是培训出来的,只能说基础不好,当时废了老大劲。现在把这个在简书上写一遍,巩固一下,如果能帮助到跟我一样的朋友,那今晚我没有白写。
有代码,第一次用markdown写东西。还不太习惯。望谅解。
if ($_POST['query'] and $_POST['start_time'] and $_POST['end_time']) {if做判断,很简单,不多说了$today = strtotime(date('Y-m-d', time()));$next = $today + 3600 * 24; $end_time = strtotime($_POST['end_time']);$start_time = strtotime($_POST['start_time']);$gp1 = "select sum(goods_price) from" . $ecs->table('order_goods') . "as a left join" . $ecs->table('order_info') . "as b on a.order_id = b.order_id where pay_time >= $start_time" . " AND pay_time <= $end_time";$gp = $db->getOne($gp1); 这里说下getOne和getAll还有getRow的区别:
getAll($sql)和getAllCached($sql, $cached = 'FILEFIRST'):获取所有记录。
getRow($sql, $limited = false)和getRowCached($sql, $cached = 'FILEFIRST'):获取单行记录。
getCol($sqlse)和getColCached($sql, $cached = 'FILEFIRST'):获取某栏位的所有值。
getOne($sql, $limited = false)和getOneCached($sql, $cached = 'FILEFIRST'):获取单个数值。
query($sql):执行数据库查询。
autoExecute($table, $field_values, $mode = 'INSERT', $where = ''):数据库表操作。
$sql = "select change_time , order_id from " . $ecs->table('logs') . "where order_id=" . $v['order_id'] . ' order by change_time desc';order_id = "$v['order_id'];foreach($order $k=>$v)中的。那么$order呢?$sql = "select user_id, order_id from " . $ecs->table('order_info'); $order = $db->getAll($sql);之前我费老大劲想把这个二维数组改成只有值的那种形式。呵呵,只能怪我太天真。费力不讨好。一直做无用功。
这样显得即规整,显而易懂。代码执行率高,查询速度快。
以上只是我一个小白个人见解,如有不对之处还恳请指正。我定会虚心学习。谢谢大家。还有一个问题就是代码格式,有的在框里面,有的则是灰色的背景。这是怎么回事?请指教。
微信关注我们
转载内容版权归作者及来源网站所有!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。
为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。
Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。
Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。