项目框架

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段代码?

  1. 很多人在调用 支付宝支付的时候,总会有一些奇奇怪怪的问题,所以我这里封装起来了。注意:支付宝公钥,不是应用的公钥,一定是要支付宝的公钥。要不然调用就会出现sign验证不通过。
  2. 订单倒计时,我百度了一圈,没看到实现得较好的代码,所以我这里用一种最简单的方案,自己缓存倒计时。可能有人会问,为啥不用redis,我阿里云ECS 1核2G, 不想引用一些第三方的组件。

有意做类似软件的可以私信我,买源码也可以私信我。可做毕业设计,有成功案例!

客官,既然都看到这里了,帮忙扫个码测试下呗,拿出支付宝扫一扫,谢谢!

转载请注明出处:【https://blog.csdn.net/hncdyj/article/details/83650155】

JAVA扫码点餐(2)-项目过程相关推荐

  1. JAVA扫码点餐(4)-遗留问题

    遗留问题(看了前三篇,总结一下) 客户端商品列表,点击图片,图片放大没做. 购物车 -> 点击选好啦,修改订单>没有做. 点击加入购物车,商品信息没有保存到cookie里面,所有跳转页面会 ...

  2. Java后台微信点餐小程序开发最新版笔记,Springboot+Mysql+Freemarker+Bootstrap+微信小程序实现扫码点餐小程序,包含语音提示,微信消息推送,网页管理后台

    由于之前的Java后台微信点餐小程序有些知识点过时了,所以今天重新出一版,把里面过时的知识点更新下 前五章是部署笔记,后面是知识点的详细讲解,大家可以先看部署笔记,部署起来后,再跟着详细知识学习. 第 ...

  3. 【附源码】Java计算机毕业设计扫码点餐微信小程序(程序+LW+部署)

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  4. 600多个微信小程序源码_点餐系统的开发,java后台+微信小程序 实现完整的餐厅点餐系统。微信扫码点餐小程序源码讲解...

    今天来给大家讲解一个完整的微信扫码点餐项目.java后台+微信小程序实现点餐系统. 后台技术选型: JDK8 MySQL(需要5.6以上) Spring-boot Spring-data-jpa Lo ...

  5. 前后端齐全的扫码点餐小程序(后端Java)

    真正的大师,永远都怀着一颗学徒的心! 一.项目简介 时间真的经不住算计的,一晃,就是好多年. 时间差不多又过了半年,真的好快.转眼间到了而立之年,可是还没立的起来,依旧在人潮汹涌的社流中,被推着往前走 ...

  6. 初学 Java 设计模式(十五):实战命令模式 「扫码点餐」

    一.命令模式介绍 1. 解决的问题 主要解决在系统中,行为请求者和行为实现者紧耦合的问题. 2. 定义 命令模式是一种行为设计模式,它可将请求转换为一个包含与请求相关的所有信息的独立对象.这个转换会根 ...

  7. 基于微信小程序springboot粤味早茶店微信扫码点餐系统源码和论文

    这是一个功能简单的微信点餐小程序. 当今社会的发展,日新月异,发生了翻天覆地的变化,尤其是在智能方面,发展的更加迅速,随之带来的就是各个产业的智能化.军工业,化工,当然还有餐饮业,都在逐渐向智能化进发 ...

  8. 计算机毕业设计Python+uniapp扫码点餐微信小程序(小程序+源码+LW)

    计算机毕业设计Python+uniapp扫码点餐微信小程序(小程序+源码+LW) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ pyth ...

  9. 基于SSM框架的微信小程序扫码点餐

    随着我国经济迅速发展,人们对网络管理的需求越来越大,各种系统也越来越多,由于微信的发展,微信的功能越来越齐全,越来越多的人开始使用微信.因此,特开发了本微信小程序--基于微信小程序的扫码点餐小程序的设 ...

  10. 计算机毕业设计PHP扫码点餐微信小程序(源码+程序+uni+lw+部署)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程.欢迎交流 项目运行 环境配置: phpStudy+ Vscode +Mysql5.7 + HBuilderX+Navicat11+Vue ...

最新文章

  1. Pyhton 操作MySQL数据库
  2. .axf文件_干货!STM32晶振的更改,BIN文件的生成
  3. 数据结构课程设计---------最少换车次数问题
  4. 锁是网络数据库中的一个非常重要的概念
  5. 开机预读快还是不预读快_WIN 7下的超级预读比VISTA要好,改进不少!推荐开启超级预读!...
  6. 1.10 编程基础之简单排序 03 成绩排序 3分 python
  7. 微信小程序——事件备忘录
  8. 28. (附加)字符串的组合(C++版本)
  9. P2P终结者 操作用法(如何限速)
  10. Windows系统批量创建文件夹的技巧
  11. matlab 齐次线性方程组,利用matlab求解RE中出现的齐次线性方程组
  12. Nginx 的配置文件
  13. Excel学习系列(1)--以文本存储的数字转换为数字
  14. Dx unsupported class file version 52.0
  15. LTE学习笔记4之物理层信道与信号
  16. 华南师范大学计算机学院学硕,华南师范大学计算机学院研究生导师简介肖菁
  17. 计算机科学与技术的年崭,计算机科学与信息技术学院举行2019届毕业典礼暨表彰大会...
  18. 嵌入式linux platform设备驱动
  19. 三年级学生计算机学情分析,小学三年级信息技术教学计划范文
  20. 冠军之夜,《我是创始人》孙涛勇变身“最强大脑”

热门文章

  1. c语言实现十进制转换其他进制的代码
  2. 空间后方交会编程c语言,单像空间后方交会(python实现)
  3. Photoshop调出美女人体金黄色肌肤
  4. 小德,真的没想到,去年的千年德三子到现如今的现象级
  5. 寄给J.Keisler教授的一份电子生日贺卡(修正版)
  6. X509数字证书格式
  7. 网站如何调用第三方支付接口
  8. cmaq实践学习-飓风案例运行bcon icon mcip cctm脚本修改运行
  9. uniapp中uni.navigateTo传递变量
  10. 今日早报 每日精选12条新闻简报 每天一分钟 知晓天下事 6月29日