新鲜出炉的awk代码
echo "" | igawk -f main.awk
# 需求:按照多种充值方式的多种金额类型进行累加统计
# 充值方式:移动卡 ,,,100元,联通卡20,,, 电信卡 ,,,,
# wap快充 ,,, 移动短充,,,,
# 设计:SQL语句取得表虽然不一致,但是我保证所有的记录集都包含2个字段,单元是元
# (固定金额的)累加值,固定金额
# 除了支付宝的其他数据表都没有记录泡豆数,但是金额可以推算出泡豆比例
# 目前有两种,一种1比10 ,一种1比8, 换算是通过savePayList函数完成(gold * paodouRate) @include lib/db.awk
@include lib/makesql.awk # 创建进行统计的价格列表
function makePriceList(s, arr, __ARGVEND__,tempArr)
{
split(s,tempArr,",")
for(i in tempArr)
{
arr[tempArr[i]]
}
} # 从记录集里提取价格
function parseResultSet(resultSet,payList,__ARGVEND__,i,tempArr)
{
for(i in resultSet)
{
split(i,tempArr," ")
total = tempArr[]
price = tempArr[]
payList[price] = total
}
} # 保存单条支付信息
function savePayInfo(item,price,gold,paodou, __ARGVEND__, setData)
{
setData["item"] = item
setData["price"] = price
setData["gold"] = gold
setData["paodou"] = paodou
setData["stat_date"] = STAT_DATE makeInsertSQL(TABLE_NAME,setData,SCRIPT)
} # 创建一个支付方式全部价格的支付信息
function savePayList(priceList, payList, item, paodouRate, __ARGVEND__, setData, i)
{
for(i in priceList) # 该统计需求不在乎元素在不在数组里
{
savePayInfo(item, i, int(payList[i]), int(payList[i]) * paodouRate)
}
} # 移动充值
function chinaMobilePay(__ARGVEND__,sql,priceList,resultSet1, resultSet2, payList1, payList2, payAll, i)
{
# 易宝卡充
sql = "select sum(price),price from pppay_order where moneyType=1 and status=4"
sql = sql " and from_unixtime(dateline) like '" STAT_DATE "%' group by price;"
executeResultSet(BANKDB,sql,resultSet1)
parseResultSet(resultSet1,payList1) # 神州付卡
sql = "select floor(sum(payMoney)/100),floor(payMoney/100) from pppay_order_szf where moneyType=1"
sql = sql " and status=8888 and cardTypeCombine=0 and inserttime like '" STAT_DATE "%' group by payMoney"
executeResultSet(BANKDB,sql,resultSet2)
parseResultSet(resultSet2,payList2) # 合并两种支付方式
makePriceList("10,30,50,100",priceList)
for(i in priceList)
{
payAll[i] = payList1[i] + payList2[i]
} # 保存记录
savePayList(priceList, payAll, "china_mobile", )
} # 联通充值
function chinaUnicomPay(__ARGVEND__,sql,priceList,resultSet,payList)
{
sql = "select floor(sum(payMoney)/100),floor(payMoney/100) from pppay_order_szf where moneyType=1"
sql = sql " and status=8888 and cardTypeCombine=1 and inserttime like '" STAT_DATE "%' group by payMoney" executeResultSet(BANKDB,sql,resultSet)
parseResultSet(resultSet,payList)
makePriceList("20,30,50,100",priceList)
savePayList(priceList, payList, "china_union", )
} # 电信充值
function chinaTelecomPay(__ARGVEND__,sql,priceList,resultSet,payList)
{
sql = "select floor(sum(payMoney)/100),floor(payMoney/100) from pppay_order_szf where moneyType=1"
sql = sql " and status=8888 and cardTypeCombine=2 and inserttime like ' " STAT_DATE "%' group by payMoney" executeResultSet(BANKDB,sql,resultSet)
parseResultSet(resultSet,payList)
makePriceList("20,30,50,100,300",priceList)
savePayList(priceList, payList, "china_telecom", )
} # wap快充
function wapPay(__ARGVEND__, sql, priceList, resultSet, payList, i)
{
sql = "select sum(price),price from pppay_order_yxjd where status=8888 and moneyType=1"
sql = sql " and inserttime like '" STAT_DATE "%' group by price;" executeResultSet(BANKDB,sql,resultSet)
parseResultSet(resultSet,payList)
makePriceList("2,3,5,10",priceList)
savePayList(priceList, payList, "wap", )
} # 短信充值 - 移动短充
function messagePay(__ARGVEND__,sql,priceList,resultSet,payList)
{
sql = "select sum(price),price from pppay_order_yxjd_sms where status=8888 "
sql = sql" and inserttime like '" STAT_DATE "%' group by price;" executeResultSet(BANKDB,sql,resultSet)
parseResultSet(resultSet,payList)
makePriceList("2,3,5,10",priceList)
savePayList(priceList, payList, "message", )
} # 支付宝充值
function zhifubaoPay(__ARGVEND__, sql, record, tempArr, totalPrice, paodou)
{
sql = "select sum(payMoney), sum(ppdou_num) from pppay_order_alipay where status=8888"
sql = sql" and moneyType=1 and inserttime like '" STAT_DATE "%'" record = executeScalar(BANKDB,sql) split(record,tempArr," ")
totalPrice = int(tempArr[])
paodou = int(tempArr[]) savePayInfo("zhifubao", "-", totalPrice, paodou);
} BEGIN{
DB = "/usr/local/bin/mysql --disable-auto-rehash -C "
BANKDB = DB " -h 192.111.0.211 -u pp**** -pstat** bank**";
STAT_DATE = "2013-09-18" TABLE_NAME = "pay_stat"
SCRIPT = ""
} END{
chinaMobilePay()
chinaUnicomPay()
chinaTelecomPay()
wapPay()
messagePay()
zhifubaoPay()
}
新鲜出炉的awk代码的更多相关文章
- 微信小程序开发视频教程新鲜出炉
微信小程序开发公测了,可是对于新手来说,不同的框架不同的开发机制,如何快速适应呢?微信小程序开发视频教程新鲜出炉了,从零开始一步一步搭建微信小程序,每个章节都会涉及到不同的知识点,等教程学习完你不但掌 ...
- 刚写完的商城erp + 这个商城前台,新鲜出炉。自己1个人写, 包括php框架和前端html页面.
刚写完的商城erp + 这个商城前台,新鲜出炉.自己1个人写, 包括php框架和前端html页面. 刚写完的商城erp + 这个商城前台,新鲜出炉.自己1个人写, 包括php框架和前端html页面.
- 23套新鲜出炉的网站和手机界面 PSD 素材
Web 用户界面,移动用户界面和线框套件对设计师很有用,因为这些套件让他们使用快速和有效的方式复制用户界面.这些类型的工具包提供了一个基本的用户界面元素,用于它们需要制作的网站或软件模型. 在这篇文章 ...
- 22套新鲜出炉的 Web & Mobile PSD 用户界面素材
在这篇文章中,我们展示的是自由和清新的 UI 设计素材套件.这些线框图和 UI 设计工具包让设计师在设计用户界面原型的时候能够非常便利. Web 用户界面,移动用户界面和线框套件对设计师很有用,因为这 ...
- 20个新鲜出炉的网站模板【HTML & PSD】
这里给大家分享20 个新鲜出炉的免费网站模板.这些设计元素将成为你下一个项目的重要素材,可以帮你节省很多的时间.与往常一样,我们经常漫游网络,寻找最好的资源, HTML.CSS 和 PSD 等等,记得 ...
- 分享25个新鲜出炉的 Photoshop 高级教程
网络上众多优秀的 Photoshop 实例教程是提高 Photoshop 技能的最佳学习途径.今天,我向大家分享25个新鲜出炉的 Photoshop 高级教程,提高你的设计技巧,制作时尚的图片效果.这 ...
- PS教程:20个新鲜出炉的 Photoshop 中级教程
Photoshop 实例教程是提高 Photoshop 技能的最佳学习途径.今天,我向大家分享最新20个 Photoshop 进阶教程,提高你的图片处理技巧,制作时尚的效果.这些教程可以帮助把你的想法 ...
- Onsen UI – 新鲜出炉的 PhoneGap 界面框架
Onsen UI 是一个基于元素自定义的 HTML5 UI 框架,用于构建你的移动前端.这个一个基于 Web 组件的概念的框架,让构建应用程序变得更加轻松.Onsen UI 专门针对 PhoneGap ...
- 20套新鲜出炉的免费 PSD 格式的图标《免费下载》
在网页设计中,设计师专注于每一个领域的设计,包括颜色选择.图标.创造力.混色等.正确的选择图标可以使他们的设计脱颖而出,看起来令人震惊.在 Web 设计领域,图标发挥非常重要的作用,因为美丽的和创造性 ...
随机推荐
- BZOJ2659: [Beijing wc2012]算不出的算式
2659: [Beijing wc2012]算不出的算式 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 668 Solved: 366[Submit] ...
- C++中使用stringstream进行类型转换操作
stringstream包括istringstream和ostringstream,提供读写string的功能,使用时需包含stream文件.4个操作:1. stringstream strm; 创建 ...
- [LeetCode] 28. Implement strStr() 解题思路
Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle ...
- jdk各个版本的特性
http://blog.csdn.net/mixiuali/article/details/8180100
- [Python]round四舍五入精度缺失的解决
环境: os: win7 64bit python:2.7.5 32bit 对python四舍五入的解决方案 现象: 一般的四舍五入操作都是使用内置的round方法 In [14]: round ...
- HTML与CSS简单页面效果实例
本篇博客实现一个HTML与CSS简单页面效果实例 index.html <!DOCTYPE html> <html> <head> <meta charset ...
- mysql数据库优化[千万级查询]
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...
- lesson3:java的锁机制原理和分析
jdk1.5之前,我们对代码加锁(实际是对象加锁),都是采用Synchronized关键字来处理,jdk1.5及以后的版本中,并发编程大师Doug Lea在concurrrent包中提供了Lock机制 ...
- 【顽固BUG】Visual Studio 2013 + TestDriven.NET-3.8.2860_Personal_Beta 调用的目标发生了异常。
前言 突然怎么弄也无法断点调试了 输出如下: ------ Test started: Assembly: Server5.V2.dll ------ 调用的目标发生了异常. 而且网站运行提示: -- ...
- Oracle Directory文件夹的知识
在上一章介绍expdp/impdp时曾使用过DIRECTORY这个概念,以下再简单说明下DIRECTORY的点点滴滴. MOS上对DIRECTORY的解释(266875.1): (1).基于服务端 v ...