1. 请求两个订单发起,只有一个商品,java如何处理
java在处理这种业务一般可以使用线程锁机制,使用synchronized修饰java方法或指定代码块,谁的订单先到进入这个方法或代码块就进行线程锁定,后者在前者没有完成订单前是没办法调用这个方法或者代码块的。
2. java开发关于订单如何删除问题
controller:
/***
*
* 删除用户订单信息全部信息
*
*
*/
@RequestMapping("/del")
public String delInfo(@RequestParam("oid") String oid) {
// 当需要删除数据时
// 1查询订单项的信息
List<Orderitem> list = proctService.getOrderItemsInfo(oid);//这是根据oid查询订单
int i = 0;
if (list != null) {
for (Orderitem orderitem : list) {
// 根据外键字段获取订单项的主键
String itemid = orderitem.getItemid();
// 根据订单项的主键进行删除
i = proctService.delOrderitemById(itemid);
}
if (i != 0) {
// 当订单项被删除之后,无外键约束.删除整个订单
int j = proctService.delInfo(oid);
if (j != 0) {
// 删除成功
return "redirect:/user/orderlist";
}
}
}
return "user/login";
}
3. 生成订单编号 用java怎么处理
/**
* 得到一个新的订单代码
* 说明,此函数还没有进行过多线程测试,更新数据库时未加锁
* @return 新的订单代码
*/
public String getOrderCode(){
//getParameter这个方法就是从数据库取2个参数的值 ORDER_CODE_DATE 和
//ORDER_CODE_NO是数据库字段名
BasParameters orderCodeDate = getParameter(ORDER_CODE_DATE);
BasParameters orderCodeNo = getParameter(ORDER_CODE_NO);
//当前日期
String currDate=new SimpleDateFormat("yyyyMMdd").format(new Date(System.currentTimeMillis()));
//每天的起始数
int orderNo = 100;
//表里存的日期和当前日期相同,顺序号累加
if (currDate.equals(orderCodeDate.getValue())){
orderCodeNo.setValue(""+(Integer.parseInt(orderCodeNo.getValue())+1));
orderNo = (Integer.parseInt(orderCodeNo.getValue()));
//save 就是保存ORDER_CODE_DATE 和 ORDER_CODE_NO当前值到数据库
save(orderCodeNo);
} else {
//表里存的日期和当前日期不同,顺序号重新开始,更新参数表的日期
orderCodeDate.setValue(currDate);
save(orderCodeDate);
orderCodeNo.setValue(orderNo);
save(orderCodeNo);
}
return currDate + new DecimalFormat("000000").format(orderNo);
}
4. java实现实时订单推送需要用到什么技术
1:支付技术,订单需要支付
2:流程,订单系统肯定从下单到支付再到送货等一系列需要走流程
3:定位技术,订单需要地理定位,帮助送货员准确送货到买家
4:消息技术,在订单走到任何环节都需要消息及时反馈
5:搜索技术,买家会在系统搜索满意的物品
5. java服务器处理订单回调采用何种方法好
回调的话,服务器是不用能用线程处理的,原因是服务器根本不知道客户端有没有关闭浏览器等等,但是可以通过http长连接来实现,或者用ajax轮询的方式实现
不过现在有现成的框架dwr,楼主可以去看看,用法挺简单的,原理是用javascript与java互相调用
6. java 后台订单处理
是问“及时推送”如何实现吧?简单来说就是一个技术,长轮询,服务端接收到http请求后,既不响应也不关闭,而是hold住,期间不停地后台查询是否有新的数据,有数据就返回,没有就继续hold。名字别看叫“推送”,其实质还是一个自客户端发往服务端的请求,毕竟http是单向的没法反过来
7. 请问java的商城订单模块,如何解决用户恶意创建订单,但是不支付的问题 求详细解决方案。
其实这种问题应该是从产品的角度来解决的。而不是让一个程序员去想如何限制用户的行为。作为产品应该相处解决方案,然后程序员去实现。不过目前看来你这可能是个练手的项目,我跟你说下我之前项目的一些解决方案。
首先就是对用户频繁下单的限制,这里你可以在redis里写入一个和用户id相关的key。设置20秒左右的失效时间,这样如果是正常用户的话在这个时间里一般会避免这种情况的发生。然后从订单的角度来说,这样一个用户就算下了大量的订单也不会太多,然后写个定时任务,对下单超过30分钟还没支付的订单进行处理,比如给他的订单状态设置成已删除这种。
当然我们做的商城属于一个项目内置的,买周边和虚拟物品的,所以访问量不大。太大的量的话最好还是先让产品来想如何限制。
8. Java实现订单自动取消
一般大型业务系统都是有多个服务节点的,你可以单独用一个服务器来处理这个,这样就不会影响到本身下单的服务
也可以通过proc巡检当前订单表,然后进行处理