List<Orders> orderList = orderService.queryOrders("from Orders o where o.id=?", new Object[]{Long.parseLong(orderId.trim())});
if(null!=orderList&&orderList.size()>0){
Orders order = orderList.get(0);
if(order.getStatus()>=Orders.STATUS_PAID){
//已付款
FareWay farway = farewayDao.getFareWayById(Integer.parseInt(deliveryId.trim()));
request.setAttribute("farway", farway);
request.setAttribute("order", order);
request.setAttribute("url", MemberURLConst.URL_ORDER_DETAIL);
return new ModelAndView(MemberURLConst.URL_BASE);
}
order.setConfirmtime(new Date());
Address addr = findAddressById(orderAddressId);
if(null!=addr){
order.setAdrreessname(addr.getName());
order.setAddresscity(addr.getCity());
order.setAddressname(addr.getAddress());
order.setAddressprovince(addr.getProvince());
order.setAddressregion(addr.getRegion());
order.setAddresstel(addr.getTel());
order.setAddresszipcode(addr.getZipcode());
}
order.setFareway(deliveryId);
String fare = request.getParameter("fare");
double farevalue =0.0;
if(fare==null)fare = "0";
try{
farevalue = Double.parseDouble(fare.trim());
}catch (Exception e) {
}
order.setFare(farevalue);
User user = userCardService.findUserById(RunTimeUser.getRunTimeUser(request).getId());
double balance = user.getCard().getScore();
List<OrderProduct> ops = judgeProductInventory(order);
this.orderService.updateOrder(order);
if(ops.size()>0){
//库存不足
StringBuffer sb = new StringBuffer();
for(int i=0;i<ops.size();i++){
sb.append(ops.get(i).getName()+"、");
}
sb.append("库存不足。");
request.setAttribute("errmsg", sb.toString());
request.setAttribute("url", "/member/queryShoppCart.do");
return shopcartView;
}else{
if(balance<order.getScore()){
//用户积分不够
request.setAttribute("errmsg", "对不起,您的积分不够。");
request.setAttribute("url", "/member/queryShoppCart.do");
return shopcartView;
}
//库存够
if(order.getFare()==0.00){
user.getCard().setScore(balance-order.getScore());
userCardService.updateUser(user);
order.setStatus(Orders.STATUS_PAID);
order.setPaytime(new Date());
orderService.updateOrder(order);
}else{
//调用支付宝接口
request.setAttribute("order", order);
try {
request.getRequestDispatcher("/payment.do").forward(request, response);
return null;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ServletException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
RunTimeUser.getRunTimeUser(request).updateUser(user);
FareWay farway = farewayDao.getFareWayById(Integer.parseInt(deliveryId.trim()));
request.setAttribute("farway", farway);
request.setAttribute("order", order);
request.setAttribute("url", MemberURLConst.URL_ORDER_DETAIL);
if("3".equals(deliveryId))