JAVA扫码点餐(2)-项目过程
项目框架
maven项目:分为三个项目:
online-foods-services:公共框架,封装13张表的增删改查且一些业务封装方法。
online-foods-oms:后台管理操作。
online-foods-controller:前端页面展示,可以在支付宝扫一扫中打开的H5页面。
代码片段
public class AlipayClientHelper {private static Logger LOGGER = LoggerFactory.getLogger(AlipayClientHelper.class);private static String url = null;private static String appId = null;private static String appPrivateKey = null;private static String format = null;private static String charset = null;private static String alipayPublicKey = null;private static String signType = null;static {url = Properties.getString(PropertiesEnum.ALIPAY_URL.getIndex());appId = Properties.getString(PropertiesEnum.ALIPAY_APP_ID.getIndex());appPrivateKey = Properties.getString(PropertiesEnum.ALIPAY_APP_PRIVATE_KEY.getIndex());format = Properties.getString(PropertiesEnum.ALIPAY_FORMAT.getIndex());charset = Properties.getString(PropertiesEnum.ALIPAY_CHARSET.getIndex());alipayPublicKey = Properties.getString(PropertiesEnum.ALIPAY_ALIPAY_PUBLIC_KEY.getIndex());signType = Properties.getString(PropertiesEnum.ALIPAY_SIGN_TYPE.getIndex());}public static AlipayClient getAlipayClient() {LOGGER.info("url = {}, appId = {}, appPrivateKey={}, format = {}, charset={}, alipayPublicKey = {}, signType = {}", url, appId, "", format, charset, "", signType);// AlipayClient alipayClient = new DefaultAlipayClient(url, appId, appPrivateKey, "json", "UTF-8", alipayPublicKey, "RSA2");AlipayClient alipayClient = new DefaultAlipayClient(url, appId, appPrivateKey, format, charset, alipayPublicKey, signType);return alipayClient;}}
订单倒计时实现:
public class CountDownThread extends Thread {private static Logger LOGGER = LoggerFactory.getLogger(CountDownThread.class);public volatile boolean exit = false;private String orderNo;private int countdown;public CountDownThread() {}public CountDownThread(String orderNo) {this.orderNo = orderNo;// 默认15分钟倒计时this.countdown = 900;}public CountDownThread(String orderNo, int countdown) {this.orderNo = orderNo;this.countdown = countdown;}public String getOrderNo() {return orderNo;}public int getCountdown() {return countdown;}@Overridepublic void run() {while (countdown > 0) {if (exit) {break;}countdown--;try {Thread.sleep(1000);} catch (InterruptedException e) {LOGGER.error("订单倒计时线程发生错误:", e);}}OnlineFoodOrderService onlineFoodOrderService = (OnlineFoodOrderService) SpringHelper.getBean(OnlineFoodOrderService.class);OnlineFoodOrder onlineFoodOrder1 = new OnlineFoodOrder();onlineFoodOrder1.setOrderNo(orderNo);onlineFoodOrder1.setOrderState(OrderStateEnum.OrderState_1.getIndex());OnlineFoodOrder onlineFoodOrder2 = new OnlineFoodOrder();onlineFoodOrder2.setOrderState(OrderStateEnum.OrderState_2.getIndex());int count = onlineFoodOrderService.updateOnlineFoodOrderByCriteriaSelective(onlineFoodOrder1, onlineFoodOrder2);LOGGER.warn("订单倒计时取消,订单号:{} ,取消到:{} 条", orderNo, count);}
}
订单倒计时Cache:
public class AppcationCache {private static AppcationCache appcationCache;private Map<String, CountDownThread> orderCountDownMap = new ConcurrentHashMap<String, CountDownThread>();private Map<String, String> phoneMap = new ConcurrentHashMap<String, String>();public static AppcationCache getInstance() {if (appcationCache == null) {synchronized (AppcationCache.class) {if (appcationCache == null) {appcationCache = new AppcationCache();}}}return appcationCache;}public Map<String, CountDownThread> getOrderCountDownMap() {return orderCountDownMap;}public Map<String, String> getPhoneMap() {return phoneMap;}
}
为啥要贴着3段代码?
- 很多人在调用 支付宝支付的时候,总会有一些奇奇怪怪的问题,所以我这里封装起来了。注意:支付宝公钥,不是应用的公钥,一定是要支付宝的公钥。要不然调用就会出现sign验证不通过。
- 订单倒计时,我百度了一圈,没看到实现得较好的代码,所以我这里用一种最简单的方案,自己缓存倒计时。可能有人会问,为啥不用redis,我阿里云ECS 1核2G, 不想引用一些第三方的组件。
有意做类似软件的可以私信我,买源码也可以私信我。可做毕业设计,有成功案例!
客官,既然都看到这里了,帮忙扫个码测试下呗,拿出支付宝扫一扫,谢谢!
转载请注明出处:【https://blog.csdn.net/hncdyj/article/details/83650155】
JAVA扫码点餐(2)-项目过程相关推荐
- JAVA扫码点餐(4)-遗留问题
遗留问题(看了前三篇,总结一下) 客户端商品列表,点击图片,图片放大没做. 购物车 -> 点击选好啦,修改订单>没有做. 点击加入购物车,商品信息没有保存到cookie里面,所有跳转页面会 ...
- Java后台微信点餐小程序开发最新版笔记,Springboot+Mysql+Freemarker+Bootstrap+微信小程序实现扫码点餐小程序,包含语音提示,微信消息推送,网页管理后台
由于之前的Java后台微信点餐小程序有些知识点过时了,所以今天重新出一版,把里面过时的知识点更新下 前五章是部署笔记,后面是知识点的详细讲解,大家可以先看部署笔记,部署起来后,再跟着详细知识学习. 第 ...
- 【附源码】Java计算机毕业设计扫码点餐微信小程序(程序+LW+部署)
项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
- 600多个微信小程序源码_点餐系统的开发,java后台+微信小程序 实现完整的餐厅点餐系统。微信扫码点餐小程序源码讲解...
今天来给大家讲解一个完整的微信扫码点餐项目.java后台+微信小程序实现点餐系统. 后台技术选型: JDK8 MySQL(需要5.6以上) Spring-boot Spring-data-jpa Lo ...
- 前后端齐全的扫码点餐小程序(后端Java)
真正的大师,永远都怀着一颗学徒的心! 一.项目简介 时间真的经不住算计的,一晃,就是好多年. 时间差不多又过了半年,真的好快.转眼间到了而立之年,可是还没立的起来,依旧在人潮汹涌的社流中,被推着往前走 ...
- 初学 Java 设计模式(十五):实战命令模式 「扫码点餐」
一.命令模式介绍 1. 解决的问题 主要解决在系统中,行为请求者和行为实现者紧耦合的问题. 2. 定义 命令模式是一种行为设计模式,它可将请求转换为一个包含与请求相关的所有信息的独立对象.这个转换会根 ...
- 基于微信小程序springboot粤味早茶店微信扫码点餐系统源码和论文
这是一个功能简单的微信点餐小程序. 当今社会的发展,日新月异,发生了翻天覆地的变化,尤其是在智能方面,发展的更加迅速,随之带来的就是各个产业的智能化.军工业,化工,当然还有餐饮业,都在逐渐向智能化进发 ...
- 计算机毕业设计Python+uniapp扫码点餐微信小程序(小程序+源码+LW)
计算机毕业设计Python+uniapp扫码点餐微信小程序(小程序+源码+LW) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ pyth ...
- 基于SSM框架的微信小程序扫码点餐
随着我国经济迅速发展,人们对网络管理的需求越来越大,各种系统也越来越多,由于微信的发展,微信的功能越来越齐全,越来越多的人开始使用微信.因此,特开发了本微信小程序--基于微信小程序的扫码点餐小程序的设 ...
- 计算机毕业设计PHP扫码点餐微信小程序(源码+程序+uni+lw+部署)
该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程.欢迎交流 项目运行 环境配置: phpStudy+ Vscode +Mysql5.7 + HBuilderX+Navicat11+Vue ...
最新文章
- Pyhton 操作MySQL数据库
- .axf文件_干货!STM32晶振的更改,BIN文件的生成
- 数据结构课程设计---------最少换车次数问题
- 锁是网络数据库中的一个非常重要的概念
- 开机预读快还是不预读快_WIN 7下的超级预读比VISTA要好,改进不少!推荐开启超级预读!...
- 1.10 编程基础之简单排序 03 成绩排序 3分 python
- 微信小程序——事件备忘录
- 28. (附加)字符串的组合(C++版本)
- P2P终结者 操作用法(如何限速)
- Windows系统批量创建文件夹的技巧
- matlab 齐次线性方程组,利用matlab求解RE中出现的齐次线性方程组
- Nginx 的配置文件
- Excel学习系列(1)--以文本存储的数字转换为数字
- Dx unsupported class file version 52.0
- LTE学习笔记4之物理层信道与信号
- 华南师范大学计算机学院学硕,华南师范大学计算机学院研究生导师简介肖菁
- 计算机科学与技术的年崭,计算机科学与信息技术学院举行2019届毕业典礼暨表彰大会...
- 嵌入式linux platform设备驱动
- 三年级学生计算机学情分析,小学三年级信息技术教学计划范文
- 冠军之夜,《我是创始人》孙涛勇变身“最强大脑”