〇、序

前期已经实现了对扫码盒子请求的监听,本章将研究如何将交易明细记录保存至mysql数据库。

一、开发实战

(一)导入mysql模块

使用如下命令为项目添加mysql依赖包

npm i mysql --save

(二)新建mysql数据库

新建交易明细表transactions

2019-04-17_001614.png

(三)编写mysql的操作类

初步的想法是在rules文件内,监听逻辑里面,当识别收款成功就新开一次mysql连接进行数据保存,为了更好节省数据库网络连接开销,将使用mysql数据连接池新开连接,新建lib文件夹并新建连接池类mysql.js:

var mysql=require("mysql");

var pool = mysql.createPool({

host: 'localhost',

user: 'user',

password: 'code',

database: 'eabcpay',

port: 3306

});

var query=function(sql,callback){

pool.getConnection(function(err,conn){

if(err){

callback(err,null,null);

}else{

conn.query(sql,function(qerr,vals,fields){

//释放连接

conn.release();

//事件驱动回调

callback(qerr,vals,fields);

});

}

});

};

module.exports=query;

(二)优化rules

myRuleModule示例

const dateUtil = require("./lib/dateFormat.js");

var query = require("./lib/mysql.js");

module.exports = {

replaceServerResDataAsync: function (req, res, serverResData, callback) {

// console.log(req.url);

// console.log(req.headers.host);

// console.log(req.url.indexOf("/site/CashCollect/DirectCashCollect"));

var flag = false;

var orderNo = "1";

var amount = 0.00;

var cashier = "default";

var createtime = dateUtil.formatTime(new Date());

var unusedamount = 0.00;

var queryStr;

if (req.headers.host == "e.abchina.com" && req.url.indexOf("/site/CashCollect/DirectCashCollect") > -1) {

var resData = serverResData.toString();

resData = JSON.parse(resData);

// 会有支付时候并不是马上支付完毕的情况,当IsWaiting为true时还在支付当中,稍后才会调用/site/BranchMarketOrder/PayQuery查询方支付结果

if (resData.Code == 0 && !resData.Value.IsWaiting) {

flag = true;

orderNo = resData.Value.OrderNo;

amount = 0.01;

cashier = "wang";

createtime = dateUtil.formatTime(new Date());

unusedamount = 100000.00;

}

} else if (req.headers.host == "e.abchina.com" && req.url.indexOf("/site/BranchMarketOrder/PayQuery") > -1) {

var billId;

var resData = serverResData.toString();

resData = JSON.parse(resData);

if (req.url.indexOf("?") > -1) {

var arrUrl = req.url.split("?");

var billIdStr = arrUrl[1];

var billIdSplit = billIdStr.split("=");

billId = billIdSplit[1];

}

var para = arrUrl[1];

console.log(resData.Code);

console.log(resData);

if (resData.Code == 0 && resData.Message == "成功") {

flag = true;

orderNo = billId;

amount = 0.01;

cashier = "wang";

createtime = dateUtil.formatTime(new Date());

unusedamount = 100000.00;

}

}

if (flag) {

queryStr = "INSERT INTO transactions(orderno,amount,cashier,createtime,unusedamount) VALUES ('" + orderNo + "', " + amount + ", '" + cashier + "', '" + createtime + "', " + unusedamount + ");";

console.log(queryStr);

query(queryStr, function (err, vals, fields) {

console.log(vals);

});

}

callback(serverResData);

}

}

四、下一步研究计划

1.对语音播报模块进行研究;

2.对利用订单号查找金额进行实验;

3.优化mysql数据库模块,研发交易记录功能和收银员交班功能。

mysql开发收银_农银e管家收银台PC版收款语音播报插件开发实录(二)相关推荐

  1. php编辑代码软件下载,php中文开发工具-php中文编辑器(中文php编程)下载PC版-西西软件下载...

    php中文编辑器(中文php编程),一款PHP中文编程开发软件,需要将全部文件覆盖到易语言编辑器环境内才能开启,内置了详细的操作说明,安装后用户即可享受到全中文环境下的PHP开发体验,让程序开发设计更 ...

  2. php mysql开发实战 光盘_随书光盘-PHP开发实战1200例 | 软件库

    摘要 <PHP开发实战1200例(第1卷)>简介:<PHP开发实战1200例>包括第Ⅰ卷.第Ⅱ卷共计1200个例子,<PHP开发实战1200例(第1卷)>是第Ⅰ卷, ...

  3. mysql开发java心得_关于mysql 一些优化心得

    先介绍下服务器架构及配置8核8G,10M带宽Centos6.5 64 Nginx   1.8.1PHP      5.3.29Mysql    5.5.42 一电商网站后台查询订单时 经常php超时, ...

  4. mysql 免安装 配置_图解MySQL5.7.20免安装版配置方法

    到此,数据库更改密码完毕. 接下来介绍,数据库常用命令如下: create database new_dbname;--新建数据库 show databases;--显示数据库 use databas ...

  5. 钢琴块2电脑版_快陪练教师端电脑版下载_快陪练教师端pc版免费下载[在线教学]...

          快陪练教师端电脑版是一款钢琴陪练教师的在线教学软件,快陪练教师端电脑版支持语音互动功能.快陪练教师端电脑版可以帮助老师在线教孩子学习钢琴,软件可以让用户清晰地看到学生弹钢琴时的指法,并及时 ...

  6. 文本文档代码大全简单_简单4步搞定PC版微信多开,不再重复切换

    现在微信已经成为工作.学习中不可或缺的社交沟通工具,而很多人也不止拥有一个微信号.目前很多手机厂商都自带了应用双开的功能,所以在移动端这个问题已经被满足了,那么在电脑端呢?即使现在有很多辅助多开的工具 ...

  7. 腾讯android一键root工具,腾讯一键Root工具pc版下载_腾讯一键Root工具pc版官方下载-太平洋下载中心...

    常见问答: 1.腾讯一键root工具如何卸载? 答:1.一键root时要自动安装授权管理,如果不ROOT了,想卸载"授权管理"的话,直接卸载会提示"系统软件无法卸载&qu ...

  8. node mysql商城开发_NideShop:基于Node.js+MySQL开发的微信小程序商城开源啦

    NideShop:基于Node.js+MySQL开发的微信小程序商城开源啦 发布时间:2020-04-14 04:23:37 来源:51CTO 阅读:2894 作者:ch10mmt 高仿网易严选的微信 ...

  9. node mysql商城开发_GitHub - Ssipon/nideshop: NideShop:基于Node.js+MySQL开发的开源免费商城(api服务器端)...

    NideShop商城(服务端) 界面高仿网易严选商城(主要是2016年wap版) 测试数据采集自网易严选商城 功能和数据库参考ecshop 服务端api基于Node.js+ThinkJS+MySQL ...

最新文章

  1. 程序员转型AI,这里有最全的机器学习介绍+应用实例
  2. 选择排序的思想及其实现
  3. 全球及中国铝行业产销需求与未来前景预测分析报告2022-2028年版
  4. vb.net播放avi动画
  5. Winsock Error Codes
  6. linux常用命令和选项
  7. logs is not in the form of topic-partition or topic-partition.uniqueId-delete
  8. numpy维度交换_“lazy”的transpose()函数——从numpy 数组的内存布局讲起
  9. 【kafka】kafka 脚本 kafka-run-class.sh 使用介绍 jmx监控 查看jmx信息
  10. LinkedHashMap,HashMap,TreeMap
  11. Android编程之如何取得View的当前位置
  12. 开课吧课堂:什么是多线程编程?
  13. 【OSG】安装编译小结
  14. mpvue学习笔记-之微信数据请求封装
  15. JSP Commons-FileUpload 组件实现文件上传
  16. DynamicFusion之预处理共轭梯度下降(Pre-conditioned Conjugate Gradient Solver)
  17. 用自己的APP打开微信和支付宝付款码和扫一扫界面
  18. MT【306】圆与椭圆公切线段
  19. 东八区转为0时区_什么叫0时区
  20. 图片上怎么加文字?看完就你知道了

热门文章

  1. Sass扫码点餐源码 单门店多门店餐饮连锁扫码点餐外卖自提系统源码
  2. apache基于端口的虚拟主机配置
  3. 安兔兔排行榜提取和搜索
  4. 讲讲多拨的额外骚操作(多拨附加教程)
  5. 笔记2 IKAnalyzer扩展词库
  6. 解决“连接U8数据库服务器失败”的方法尝试
  7. Xposed 反检测
  8. JSP页面调用log4j写日志文件
  9. [CTF]使用浏览器firefox插件伪装IP地址
  10. pci总线定时协议_PCI总线标准及协议