mysql开发收银_农银e管家收银台PC版收款语音播报插件开发实录(二)
〇、序
前期已经实现了对扫码盒子请求的监听,本章将研究如何将交易明细记录保存至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版收款语音播报插件开发实录(二)相关推荐
- php编辑代码软件下载,php中文开发工具-php中文编辑器(中文php编程)下载PC版-西西软件下载...
php中文编辑器(中文php编程),一款PHP中文编程开发软件,需要将全部文件覆盖到易语言编辑器环境内才能开启,内置了详细的操作说明,安装后用户即可享受到全中文环境下的PHP开发体验,让程序开发设计更 ...
- php mysql开发实战 光盘_随书光盘-PHP开发实战1200例 | 软件库
摘要 <PHP开发实战1200例(第1卷)>简介:<PHP开发实战1200例>包括第Ⅰ卷.第Ⅱ卷共计1200个例子,<PHP开发实战1200例(第1卷)>是第Ⅰ卷, ...
- mysql开发java心得_关于mysql 一些优化心得
先介绍下服务器架构及配置8核8G,10M带宽Centos6.5 64 Nginx 1.8.1PHP 5.3.29Mysql 5.5.42 一电商网站后台查询订单时 经常php超时, ...
- mysql 免安装 配置_图解MySQL5.7.20免安装版配置方法
到此,数据库更改密码完毕. 接下来介绍,数据库常用命令如下: create database new_dbname;--新建数据库 show databases;--显示数据库 use databas ...
- 钢琴块2电脑版_快陪练教师端电脑版下载_快陪练教师端pc版免费下载[在线教学]...
快陪练教师端电脑版是一款钢琴陪练教师的在线教学软件,快陪练教师端电脑版支持语音互动功能.快陪练教师端电脑版可以帮助老师在线教孩子学习钢琴,软件可以让用户清晰地看到学生弹钢琴时的指法,并及时 ...
- 文本文档代码大全简单_简单4步搞定PC版微信多开,不再重复切换
现在微信已经成为工作.学习中不可或缺的社交沟通工具,而很多人也不止拥有一个微信号.目前很多手机厂商都自带了应用双开的功能,所以在移动端这个问题已经被满足了,那么在电脑端呢?即使现在有很多辅助多开的工具 ...
- 腾讯android一键root工具,腾讯一键Root工具pc版下载_腾讯一键Root工具pc版官方下载-太平洋下载中心...
常见问答: 1.腾讯一键root工具如何卸载? 答:1.一键root时要自动安装授权管理,如果不ROOT了,想卸载"授权管理"的话,直接卸载会提示"系统软件无法卸载&qu ...
- node mysql商城开发_NideShop:基于Node.js+MySQL开发的微信小程序商城开源啦
NideShop:基于Node.js+MySQL开发的微信小程序商城开源啦 发布时间:2020-04-14 04:23:37 来源:51CTO 阅读:2894 作者:ch10mmt 高仿网易严选的微信 ...
- node mysql商城开发_GitHub - Ssipon/nideshop: NideShop:基于Node.js+MySQL开发的开源免费商城(api服务器端)...
NideShop商城(服务端) 界面高仿网易严选商城(主要是2016年wap版) 测试数据采集自网易严选商城 功能和数据库参考ecshop 服务端api基于Node.js+ThinkJS+MySQL ...
最新文章
- 程序员转型AI,这里有最全的机器学习介绍+应用实例
- 选择排序的思想及其实现
- 全球及中国铝行业产销需求与未来前景预测分析报告2022-2028年版
- vb.net播放avi动画
- Winsock Error Codes
- linux常用命令和选项
- logs is not in the form of topic-partition or topic-partition.uniqueId-delete
- numpy维度交换_“lazy”的transpose()函数——从numpy 数组的内存布局讲起
- 【kafka】kafka 脚本 kafka-run-class.sh 使用介绍 jmx监控 查看jmx信息
- LinkedHashMap,HashMap,TreeMap
- Android编程之如何取得View的当前位置
- 开课吧课堂:什么是多线程编程?
- 【OSG】安装编译小结
- mpvue学习笔记-之微信数据请求封装
- JSP Commons-FileUpload 组件实现文件上传
- DynamicFusion之预处理共轭梯度下降(Pre-conditioned Conjugate Gradient Solver)
- 用自己的APP打开微信和支付宝付款码和扫一扫界面
- MT【306】圆与椭圆公切线段
- 东八区转为0时区_什么叫0时区
- 图片上怎么加文字?看完就你知道了