@Transactional
public synchronized int addPiaojuOrder(WlcOrder wlcOrder, WlcPiaoju wlcPiaoju,
Double buyMoney) {
try {
//支付成功和下单未支付的总额
Double amount = wlcPiaojuService.getAllOrderAmountByPJId(wlcPiaoju.getId());
BigDecimal b1 = new BigDecimal(Double.toString(buyMoney));
b1 = b1.setScale(2, BigDecimal.ROUND_HALF_UP);
BigDecimal b2 = new BigDecimal(Double.toString(wlcPiaoju.getTotal()));
b2 = b2.setScale(2, BigDecimal.ROUND_HALF_UP);
BigDecimal b3 = new BigDecimal(Double.toString(amount));
b3 = b3.setScale(2, BigDecimal.ROUND_HALF_UP);
//购买时间已超过放款时间
if (wlcPiaoju.getLoansTime().getTime() - new Date().getTime() < 0) {
return 3;
}
//票据状态不在发售中
if (!"2".equals(wlcPiaoju.getProductStatus())) {
return 1;
}
//购买金额大于剩余金额 buyMoney > (wlcPiaoju.getTotal()-amount)
if (b1.compareTo(b2.subtract(b3)) > 0) {
return 2;
}
//订单满额锁定状态buyMoney == (wlcPiaoju.getTotal()-amount)
if (b1.compareTo(b2.subtract(b3)) == 0) {
wlcPiaoju.setProductStatus("6");
wlcPiaojuService.saveOrUpdate(wlcPiaoju);
}
wlcPiaojuService.saveOrder(wlcOrder);
//this.saveOrUpdate(wlcOrder);
return -1;
} catch (Exception e) {
e.printStackTrace();
logger.info("WlcOrderServiceImpl-------------------------addPiaojuOrder()出现异常======================" + e.getMessage());
return 2;
}
}
在以上的红色代码中,两个方法开始分别使用了hibernate机制,来查询订单总额和保存新的订单。
查询订单总额主要用于用于比较新的订单是否超过可买余额。但是在使用hibernate时间,由于取得的数据都是从缓存里面获取的,所以,出现了“冒顶”的情况。
开始以为bug的产生是由于同步没成功,最后经过几天的奋战,用JDBC来操作这两个方法。获得了成功。
相关推荐
hibetnate+struts2做的登录注册增删改查,功能齐全,页面没有做太多处理,忘谅解!
本项目是仿照新豆网做的,新豆的网址为www.xindou.com
spring+hibernate+struts教程
简单的增删该查 用三大框架写的 对于初学者还是有用的
Strut2,Spring2.0,Hibetnate3的pdf文档
JavaScript、jQuery、JavaSE、Hibetnate、CSS、HTML5、JavaEE等成熟手册集
主要介绍了详解JAVAEE——SSH三大框架整合(spring+struts2+hibernate),具有一定的参考价值,感兴趣的小伙伴们可以参考一下
基于hibetnate+struts+mySQl框架实现学生管理系统,方法简单明了,框架结构清晰,代码资源合理,可移植性强!
建立对SQL语句的映射是Hibernate框架操作数据库的主要手段,这里我们列举实例来为大家讲解Java的Hibernate框架中一对多的单向和双向关联映射
本系统是有struts2 hibetnate集成,实现文件的上传下载,共享,由于时间仓促,本系统上传的文件名字暂时不支持中文,里面附带数据库,导入可以直接运行,适合初学集成者,和应付大作业
通用WEB 应用系统,包括交易系统和管理系统两个独立的子系统,主要包括:商品展示、购物车管理、我的订单、用户管理、商品管理五个功能模块。
这是分卷压缩后的资源的第二部分,请先下载本人资源的第一部分后再解压。
传智播客 Spring2.5 PPT(非常的经典),不仅适合初学者同样适合研究spring的人。