package com.tarena.shoppingcart.action;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
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 com.tarena.shoppingcart.entity.Cart;
import com.tarena.shoppingcart.entity.Item;
import com.tarena.shoppingcart.entity.Order;
import com.tarena.shoppingcart.entity.Product;
import com.tarena.shoppingcart.entity.User;
import com.tarena.shoppingcart.service.ShoppingCartServiceImpl;
import com.tarena.shoppingcart.util.ShoppingCartServiceImplFactory;
public class UserCartMappingDispatchAction extends MappingDispatchAction {
/**
* 修改购物车商品数量
*/
public ActionForward modifyProductNum(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
HttpSession session = request.getSession();
Cart cart = (Cart) session.getAttribute("cart");
String[] productIds = request.getParameterValues("productId");
for (int i = 0; i < productIds.length; i++) {
String number = request.getParameter(productIds[i]);
cart.modifyNumberByProductId(Integer.parseInt(productIds[i]), Integer.parseInt(number));
}
return mapping.findForward("toCart");
}
/**
* 删除所选商品
*/
public ActionForward deleteProduct(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
HttpSession session = request.getSession();
String[] values = request.getParameterValues("items");
Cart cart = (Cart) session.getAttribute("cart");
int[] productIds = new int[values.length];
for (int i = 0; i < values.length; i++) {
productIds[i] = Integer.parseInt(values[i]);
cart.deleteItemByProductId(productIds[i]);
}
return mapping.findForward("toCart");
}
/**
* 清空购物车
*/
public ActionForward clearCart(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
request.getSession().removeAttribute("cart");
return mapping.findForward("toCart");
}
/**
* 结帐
*/
public ActionForward goCheck(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
return mapping.findForward("toCheck");
}
/**
* 生成定单,要判断用户是否登录
*/
public ActionForward buildOrder(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
if (request.getSession().getAttribute("cart") == null) {
return mapping.findForward("toLogin");
} else {
String userName = request.getParameter("userName");
String address = request.getParameter("address");
String postCode = request.getParameter("postCode");
String email = request.getParameter("email");
String homePhone = request.getParameter("homePhone");
Order order = new Order();
User user = new User(userName, address, postCode, email, homePhone);
order.setUser(user);
Map map = ((Cart) request.getSession().getAttribute("cart"))
.getItems();
Set<Integer> set = map.keySet();
Set<Item> items = new HashSet<Item>();
for (Integer i : set) {
Item item = (Item) map.get(i);
items.add(item);
}
order.setItems(items);
for (Item i : items) {
System.out.println("结帐:" + i.getProduct().getName());
}
ShoppingCartServiceImpl service = ShoppingCartServiceImplFactory
.getShoppingCartServiceImpl();
service.buildOrder(order);
return mapping.findForward("toOrder");
}
}
}
shoppingcart6.0
需积分: 0 109 浏览量
更新于2008-07-24
收藏 1.58MB ZIP 举报
"ShoppingCart6.0"是一个看似电子商务相关的软件或系统版本,根据提供的信息,我们可以深入探讨购物车系统的架构、功能和可能的技术实现。
购物车系统是电子商务网站的核心部分,它允许用户选择商品并暂存,以便在结账时一次性购买。在"ShoppingCart6.0"中,我们可以预期它在功能上会有显著的增强和优化,比如:
1. **用户界面**:通常在新版本中,UI设计会更加友好和直观,以提高用户体验。可能会采用响应式设计,确保在不同设备上(如桌面、平板和手机)都能良好显示。
2. **商品管理**:系统可能包含一个强大的商品数据库,支持快速搜索、分类、过滤和推荐功能。商品信息可能包括图片、描述、价格、库存等。
3. **购物车功能**:用户可以方便地添加、删除商品,调整数量,查看总价,并且可能有保存购物车供以后继续购物的功能。
4. **促销与优惠**:"ShoppingCart6.0"可能集成复杂的促销规则,如满减、折扣码、组合优惠等,以吸引用户消费。
5. **结算流程**:简化并优化结账过程,支持多种支付方式(如信用卡、PayPal、货到付款等),同时确保支付安全。
6. **订单处理**:后台管理系统能够自动化处理订单,包括订单确认、库存更新、发货通知等。
7. **客户账户管理**:用户可以创建和管理个人账户,查看订单历史、保存地址、管理支付方式。
8. **数据分析**:系统可能包含分析工具,用于跟踪销售数据、用户行为,为商家提供决策支持。
9. **多语言与多货币支持**:如果目标市场全球化,系统应能适应不同地区的语言和货币需求。
10. **API接口**:可能与其他系统(如物流、库存管理、CRM等)集成,通过API实现数据交换。
至于具体的技术实现,"ShoppingCart6.0"可能基于Web技术,如HTML5、CSS3和JavaScript,前端框架可能使用React、Vue或Angular。后端可能采用Java(Spring Boot)、Python(Django或Flask)、Node.js(Express)等开发,数据库可能使用MySQL、PostgreSQL或MongoDB。为了提高性能和可扩展性,可能采用了微服务架构,分布式缓存如Redis,以及负载均衡技术。
考虑到"ShoppingCart6.0"是一个升级版,开发者可能在性能、安全性和稳定性上下了很大功夫,例如采用HTTPS协议加强数据传输安全,使用CDN加速静态资源加载,以及进行压力测试确保系统在高并发下仍能稳定运行。
总结起来,"ShoppingCart6.0"是一个综合性的电子商务解决方案,涉及用户交互、商品管理、订单处理等多个环节,其技术实现涵盖了前端、后端、数据库和系统架构等多个方面。通过持续的迭代和优化,旨在为商家和用户提供更高效、便捷的在线购物体验。
hjc00
- 粉丝: 7
- 资源: 63
最新资源
- 秋景枫叶素材毕业相册同学聚会联谊会模板.pptx
- Java毕业设计基于SpringBoot+Vue的电影售票及影院管理系统源码+数据库
- 植物大战僵尸杂交版v3.0.2
- 网页设计期末大作业基于HTML+CSS的仿中国银行网站源代码.zip
- 5.64位页表.mp4
- 375588610881556蜡笔小新.apk
- jadx-gui反编译apk、jar代码
- 操作系统复习万字总结期末复习大佬预习考研【计算机基础】
- meshy-for-unity
- 柚坛工具箱 Windowsx64 3.1.0
- Giant Panda Animated
- labview 教室灯光控制系统
- frp_0.61.1_windows_amd64.zip
- 网络批量ping工具.zip
- 6.win7下的页表基址.mp4
- 迅雷精简迷你版本ThunderMini1.5.3.288