package org.whatisjava.dang.action;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.MappingDispatchAction;
import org.whatisjava.dang.domain.Address;
import org.whatisjava.dang.domain.Item;
import org.whatisjava.dang.domain.Order;
import org.whatisjava.dang.domain.SendWay;
import org.whatisjava.dang.domain.User;
import org.whatisjava.dang.form.AddressForm;
import org.whatisjava.dang.po.CartItem;
import org.whatisjava.dang.service.OrderService;
import org.whatisjava.dang.util.Constants;
public class OrderAction extends MappingDispatchAction {
private OrderService os = new OrderService();
/**
* 显示订单地址页面
*/
public ActionForward showAddress(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
HttpSession session = request.getSession();
User user = (User) session.getAttribute(Constants.SID_USER);
String addressId = request.getParameter("addressId");
Address addr = new Address();
if ("".equals(addressId)) {
addr = os.findAllAddress(user.getId()).get(0);
} else {
addr = os.findById_Address(Integer.parseInt(addressId));
}
List<SendWay> sendWays = os.findAllSendWay();
request.setAttribute("sendWays", sendWays);
List<Address> addresses = os.findAllAddress(user.getId());
request.setAttribute("addresses", addresses);
request.setAttribute("addr", addr);
return mapping.findForward("success");
}
/**
* 显示详细订单条目页面
*/
public ActionForward showItems(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
return mapping.findForward("success");
}
/**
* 显示生成订单页面
*/
public ActionForward showOrder(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
return mapping.findForward("success");
}
/**
* 添加送货地址信息
*/
public ActionForward addAddress(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
HttpSession session = request.getSession();
User user = (User) session.getAttribute(Constants.SID_USER);
String addressId = request.getParameter("addressId");
Address add_def = os.findByUserId_Default(user.getId());
AddressForm af = (AddressForm) form;
Address add = new Address();
Integer sendWayId = af.getSendWayId();
SendWay sendWay = os.findById_SendWay(sendWayId);
BeanUtils.copyProperties(add, af);
if ("".equals(addressId)) {
// 新的发货地址
if (af.isIs_default()) {
// 设置为默认地址
if (os.findAllAddress(user.getId()).size() == 0) {
// 原来还没有存地址
add.setIs_default(true);
os.addAddress(add);
} else {
// 原始已经有地址,将此次输入的地址设置为默认地址,放在第一个位置上,将原始的默认地址重新添加进入
Address add1 = os.findById_Address(add_def.getId());
add.setId(add_def.getId());
os.updateAddress(add);
add1.setId(null);
add1.setIs_default(false);
os.addAddress(add1);
}
} else {
// 没有设置为默认地址,直接添加
os.addAddress(add);
}
} else {
// 更新地址信息
if (af.isIs_default()) {
// 要设置为默认地址
if (Integer.parseInt(addressId) == add_def.getId()) {
// 直接更新
add.setId(add_def.getId());
add.setIs_default(true);
os.updateAddress(add);
} else {
Address add1 = os.findById_Address(add_def.getId());
add.setId(add_def.getId());
os.updateAddress(add);
add1.setId(Integer.parseInt(addressId));
add1.setIs_default(false);
os.updateAddress(add1);
}
} else {
if (Integer.parseInt(addressId) == add_def.getId()) {
// 直接更新
add.setId(add_def.getId());
add.setIs_default(true);
os.updateAddress(add);
} else {
add.setId(Integer.parseInt(addressId));
os.updateAddress(add);
}
}
}
request.setAttribute("user", user);
session.setAttribute("Address", add);
session.setAttribute("sendWay", sendWay);
return mapping.findForward("success");
}
/**
* 确认订单条目信息
*/
public ActionForward addItems(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
return mapping.findForward("success");
}
/**
* 生成订单
*/
public ActionForward madeOrder(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
HttpSession session = request.getSession();
User user = (User) session.getAttribute(Constants.SID_USER);
Address addr = (Address) session.getAttribute("Address");
SendWay sendway = (SendWay) session.getAttribute("sendWay");
List<CartItem> cartItems = (List<CartItem>) session.getAttribute("buys");
Order order = new Order();
order.setAddress(addr);
Double dangdangprice = (Double) session.getAttribute("dangdangprice");
order.setOrder_price(dangdangprice);
order.setOrder_time(new Date().getTime());
order.setSendWay(sendway);
order.setTotal_price(dangdangprice + sendway.getSend_fee());
order.setUser(user);
/**
* 应考虑回滚,事务一起提交一起失败的问题,批量提交,订单和条目必须一起成功一起失败
*/
os.saveOrder(order);
this.madeItems(cartItems,order.getId());
request.setAttribute("orderId", order.getId());
request.setAttribute("allPrice", order.getTotal_price());
return mapping.findForward("success");
}
/**
* 生成订单条目
*/
private void madeItems(List<CartItem> cartItems, Integer oid) {
/**
* 应考虑回滚,事务一起提交一起失败的问题,批量提交
*/
Set<Item> items = new HashSet<Item>();
for (int i = 0; i < cartItems.size(); i++) {
CartItem citem = cartItems.get(i);
Item item = new Item(oid, citem.getProduct().getId(), citem
.getProduct().getDang_price(), citem.getNum(), citem
.getProduct().getDang_price() * citem.getNum());
items.add(item);
}
os.saveItems(items);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
山寨版--当当网源程序
共666个文件
gif:257个
class:65个
java:65个
4星 · 超过85%的资源 需积分: 6 41 下载量 68 浏览量
2009-05-16
11:10:39
上传
评论 1
收藏 12.75MB RAR 举报
温馨提示
本程序是完全模拟当当网而做的网上购物系统,运用了java+jsp+struts+hibernate等技术,开发环境:myelispe,Tomcat,是相关毕业程序的首选!
资源推荐
资源详情
资源评论
收起资源包目录
山寨版--当当网源程序 (666个子文件)
OrderAction.class 7KB
CartService.class 6KB
BookListAction.class 5KB
OrderDaoImpl.class 5KB
CommentAction.class 4KB
UserAction.class 4KB
ItemsAction.class 4KB
CatalogService.class 4KB
Product.class 4KB
ShowCartAction.class 4KB
CommentDaoImpl.class 3KB
Order.class 3KB
BookDaoImpl.class 3KB
LoginValidateAction.class 3KB
Category.class 3KB
ProductDaoImpl.class 3KB
UserForm.class 3KB
Book.class 3KB
BookDetailAction.class 3KB
User.class 3KB
ShoppingController.class 2KB
UserDaoImpl.class 2KB
CategoryDaoImpl.class 2KB
Comment.class 2KB
OrderService.class 2KB
CookieUtil.class 2KB
Address.class 2KB
AddressForm.class 2KB
ListAction.class 2KB
CartItem.class 2KB
AuthorizeService.class 2KB
CommentForm.class 2KB
Item.class 2KB
ReplyForm.class 2KB
CommentReply.class 2KB
CategoryAction.class 2KB
AuthorizeUtil.class 2KB
ItemsForm.class 2KB
LogoutAction.class 2KB
OrderForm.class 2KB
LoginInfoAction.class 2KB
SendWay.class 2KB
AllCategoryAction.class 1KB
CommentService.class 1KB
RegisterAction.class 1KB
HbSessionFactory.class 1KB
RecommendAction.class 1003B
LoginFormAction.class 1003B
MainAction.class 988B
NewAction.class 985B
HotAction.class 985B
DaoFactory.class 968B
SaveBuyInfoAction.class 926B
TestProduct.class 897B
LoginForm.class 842B
OrderDao.class 789B
BookDao.class 584B
UUIDUtil.class 561B
ProductDao.class 514B
CommentDao.class 471B
Constants.class 436B
CategoryDao.class 334B
UserDao.class 333B
LoginUtil.class 302B
testPro.class 256B
.classpath 3KB
book.css 25KB
second.css 20KB
register_login.css 14KB
book_head090107.css 13KB
login.css 13KB
book1.css 11KB
list.css 10KB
comm_answer.css 10KB
shopping_vehicle.css 9KB
shopping_head.css 5KB
booksaleslist.css 5KB
page_bottom.css 3KB
public_footer.css 2KB
research.css 2KB
product_exp.css 1KB
secBook_Show.css 1KB
navi.css 1KB
pubsug090107.css 555B
Thumbs.db 45KB
Thumbs.db 34KB
Thumbs.db 14KB
Thumbs.db 12KB
Thumbs.db 7KB
Thumbs.db 7KB
Thumbs.db 6KB
Thumbs.db 4KB
Thumbs.db 4KB
Entries 8KB
Entries 2KB
Entries 2KB
Entries 710B
Entries 674B
Entries 383B
Entries 345B
共 666 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
资源评论
- 竹林风声2012-04-18我看看这个跟我培训时做的是不是一样的
whatisjavascript
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功