基于JavaWeb实现洋酒销售平台的设计与实现(二)

简介: 基于JavaWeb实现洋酒销售平台的设计与实现

基于JavaWeb实现洋酒销售平台的设计与实现(一)https://developer.aliyun.com/article/1423527


5.2.5  最新商品

             这里显示的是商城里最新上架的商品。可以让顾客及时了解到新品的情况。具体新品的增删改可以在后台管理模块实现。如图5-8所示:

图5-8最新上架界

5.3 后台管理模块的设计与实现

后台的设计完全是为了前台服务的,前台主要是展现,所以后台必须有支持前台的功能。后台的维护功能主要包括如下:系统管理、商品分类管理、商品管理、订单管理、注册用户管理。

5.3.1  后台管理系统

5.3.1.1  系统管理员登陆模块

管理员的登陆入口在另一个页面,管理员的账号和密码是数据库里默认已预先存入数据库的,用户名cjh,密码1231。输入完毕无错误提示,点击“登陆”按钮进入后台管理系统。界面如图5-9所示。

图 5-9 后台管理系统登陆界面

后台系统管理员登陆模块主要代码:

5.3.2  系统后台管理

管理员登陆进入后系统台管理模块,如图5-10所示是管理员首先看到的页面:  

图5-10 后台管理页面

     系统后台管理分类为以下模块:注册用户管理,一级分类管理,二级分类管理,商品管理,订单管理。

5.3.2.1  注册用户管理

注册用户管理包括序号,用户名,真实姓名,编辑以及删除。

点击编辑后如图5-11所示:

图 5-11编辑用户

5.3.2.2  一级分类管理

这个模块的功能是管理首页上的导航模块上的一级分类部分,可添加新分类,具有编辑,删除,添加三个操作按钮。如图5-12所示:

图 5-12 一级分类管理

5.3.2.3  二级商品管理

这个模块的功能是管理点导航模块上的一级分类部分时出现的二级分类部分,二级分类是依据一级分类为前提的。可添加新分类,具有编辑,删除,添加三个操作按钮。如图5-13所示:

图 5-13 二级分类管理

5.3.2.4  商品管理

      这个模块的功能是对商品进行管理的,可以查看商品的图片,名称价格,是否热门和进行编辑。如图5-14所示:

图 5-14 商品管理

5.3.2.5  订单管理

      这个模块的功能是管理用户订单信息。包括订单的编号,收货人以及订单详情等。如图5-15所示:

图 5-15订单管理

四,核心代码展示

package cn.itbaizhan.shop.adminuser.action;
import org.apache.struts2.ServletActionContext;
import cn.itbaizhan.shop.adminuser.service.AdminUserService;
import cn.itbaizhan.shop.adminuser.vo.AdminUser;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
public class AdminUserAction extends ActionSupport implements
    ModelDriven<AdminUser> {
  // 模型驱动使用的对象
  private AdminUser adminUser = new AdminUser();
  public AdminUser getModel() {
    return adminUser;
  }
  // 注入AdminUserService
  private AdminUserService adminUserService;
  public void setAdminUserService(AdminUserService adminUserService) {
    this.adminUserService = adminUserService;
  }
  // 后台登录的执行的方法
  public String login() {
    // 调用service方法完成登录
    AdminUser existAdminUser = adminUserService.login(adminUser);
    // 判断
    if (existAdminUser == null) {
      // 用户名或密码错误
      this.addActionError("用户名或密码错误!");
      return "loginFail";
    } else {
      // 登录成功:
      ServletActionContext.getRequest().getSession()
          .setAttribute("existAdminUser", existAdminUser);
      return "loginSuccess";
    }
  }
}
package cn.itbaizhan.shop.cart.action;
import org.apache.struts2.ServletActionContext;
import cn.itbaizhan.shop.cart.vo.Cart;
import cn.itbaizhan.shop.cart.vo.CartItem;
import cn.itbaizhan.shop.product.service.ProductService;
import cn.itbaizhan.shop.product.vo.Product;
import com.opensymphony.xwork2.ActionSupport;
/**
 * 购物车Action
 */
public class CartAction extends ActionSupport {
  // 接收pid
  private Integer pid;
  // 接收数量count
  private Integer count;
  // 注入商品的Service
  private ProductService productService;
  public void setProductService(ProductService productService) {
    this.productService = productService;
  }
  public void setPid(Integer pid) {
    this.pid = pid;
  }
  public void setCount(Integer count) {
    this.count = count;
  }
  // 将购物项添加到购物车:执行的方法
  public String addCart() {
    // 封装一个CartItem对象.
    CartItem cartItem = new CartItem();
    // 设置数量:
    cartItem.setCount(count);
    // 根据pid进行查询商品:
    Product product = productService.findByPid(pid);
    // 设置商品:
    cartItem.setProduct(product);
    // 将购物项添加到购物车.
    // 购物车应该存在session中.
    Cart cart = getCart();
    cart.addCart(cartItem);
    return "addCart";
  }
  // 清空购物车的执行的方法:
  public String clearCart(){
    // 获得购物车对象.
    Cart cart = getCart();
    // 调用购物车中清空方法.
    cart.clearCart();
    return "clearCart";
  }
  // 从购物车中移除购物项的方法:
  public String removeCart(){
    // 获得购物车对象
    Cart cart = getCart();
    // 调用购物车中移除的方法:
    cart.removeCart(pid);
    // 返回页面:
    return "removeCart";
  }
  // 我的购物车:执行的方法
  public String myCart(){
    return "myCart";
  }
  /**
   * 获得购物车的方法:从session中获得购物车.
   * @return
   */
  private Cart getCart() {
    Cart cart = (Cart) ServletActionContext.getRequest().getSession()
        .getAttribute("cart");
    if (cart == null) {
      cart = new Cart();
      ServletActionContext.getRequest().getSession()
          .setAttribute("cart", cart);
    }
    return cart;
  }
}
package cn.itbaizhan.shop.order.action;
import java.io.IOException;
import java.util.Date;
import org.apache.struts2.ServletActionContext;
import cn.itbaizhan.shop.cart.vo.Cart;
import cn.itbaizhan.shop.cart.vo.CartItem;
import cn.itbaizhan.shop.order.service.OrderService;
import cn.itbaizhan.shop.order.vo.Order;
import cn.itbaizhan.shop.order.vo.OrderItem;
import cn.itbaizhan.shop.user.vo.User;
import cn.itbaizhan.shop.utils.PageBean;
import cn.itbaizhan.shop.utils.PaymentUtil;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
/**
 * 订单Action类
 */
public class OrderAction extends ActionSupport implements ModelDriven<Order> {
  // 模型驱动使用的对象
  private Order order = new Order();
  public Order getModel() {
    return order;
  }
  // 接收支付通道编码:
  private String pd_FrpId;
  public void setPd_FrpId(String pd_FrpId) {
    this.pd_FrpId = pd_FrpId;
  }
  // 接收付款成功后的参数:
  private String r3_Amt;
  private String r6_Order;
  public void setR3_Amt(String r3_Amt) {
    this.r3_Amt = r3_Amt;
  }
  public void setR6_Order(String r6_Order) {
    this.r6_Order = r6_Order;
  }
  // 接收page
  private Integer page;
  public void setPage(Integer page) {
    this.page = page;
  }
  // 注入OrderService
  private OrderService orderService;
  public void setOrderService(OrderService orderService) {
    this.orderService = orderService;
  }
  // 生成订单的执行的方法:
  public String saveOrder() {
    // 调用Service完成数据库插入的操作:
    // Order order = new Order();
    // 设置订单的总金额:订单的总金额应该是购物车中总金额:
    // 购物车在session中,从session总获得购物车信息.
    Cart cart = (Cart) ServletActionContext.getRequest().getSession()
        .getAttribute("cart");
    if (cart == null) {
      this.addActionMessage("亲!您还没有购物!");
      return "msg";
    }
    order.setTotal(cart.getTotal());
    // 设置订单的状态
    order.setState(2); // 1:未付款.
    // 设置订单时间
    order.setOrdertime(new Date());
    // 设置订单关联的客户:
    User existUser = (User) ServletActionContext.getRequest().getSession()
        .getAttribute("existUser");
    if (existUser == null) {
      this.addActionMessage("亲!您还没有登录!");
      return "msg";
    }
    order.setUser(existUser);
    // 设置订单项集合:
    for (CartItem cartItem : cart.getCartItems()) {
      // 订单项的信息从购物项获得的.
      OrderItem orderItem = new OrderItem();
      orderItem.setCount(cartItem.getCount());
      orderItem.setSubtotal(cartItem.getSubtotal());
      orderItem.setProduct(cartItem.getProduct());
      orderItem.setOrder(order);
      order.getOrderItems().add(orderItem);
    }
    orderService.save(order);
    // 清空购物车:
    cart.clearCart();
    // 页面需要回显订单信息:
    // 使用模型驱动了 所有可以不使用值栈保存了
    // ActionContext.getContext().getValueStack().set("order", order);
    return "saveOrder";
  }
  // 查询我的订单:
  public String findByUid() {
    // 获得用户的id.
    User existUser = (User) ServletActionContext.getRequest().getSession()
        .getAttribute("existUser");
    // 获得用户的id
    Integer uid = existUser.getUid();
    // 根据用户的id查询订单:
    PageBean<Order> pageBean = orderService.findByUid(uid, page);
    // 将PageBean数据带到页面上.
    ActionContext.getContext().getValueStack().set("pageBean", pageBean);
    return "findByUid";
  }
  // 根据订单id查询订单:
  public String findByOid() {
    order = orderService.findByOid(order.getOid());
    return "findByOid";
  }
  // 为订单付款:
  public String payOrder() throws IOException {
    // 1.修改数据:
    Order currOrder = orderService.findByOid(order.getOid());
    currOrder.setAddr(order.getAddr());
    currOrder.setName(order.getName());
    currOrder.setPhone(order.getPhone());
    // 修改订单
    orderService.update(currOrder);
    this.addActionMessage("亲!提交成功!");
    return "msg";
  }
  // 付款成功后跳转回来的路径:
  public String callBack(){
    // 修改订单的状态:
    Order currOrder = orderService.findByOid(Integer.parseInt(r6_Order));
    // 修改订单状态为2:已经付款:
    currOrder.setState(2);
    orderService.update(currOrder);
    this.addActionMessage("支付成功!订单编号为: "+r6_Order +" 付款金额为: "+r3_Amt);
    return "msg";
  }
  // 修改订单的状态:
  public String updateState(){
    Order currOrder = orderService.findByOid(order.getOid());
    currOrder.setState(4);
    orderService.update(currOrder);
    return "updateStateSuccess";
  }
}

五,项目总结

随着计算机技术的发展,使得网络的应用更加广泛。加大信息网络的建设,开展网络交易平台,进行网络交易服务等将成为未来网络建设的具体内容,而网上销售系统平台的出现,能极大的提升大众对于购物的体验。

JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器,应用服务器,浏览器和开发工具共同工作。因此本论坛采用JSP技术开放能满足这种需求。

论文中详细讨论了网上洋酒销售系统的设计思想,包括系统体系结构的设计、系统功能模块设计、数据库设计、系统的实现等。根据软件设计和实现的情况,重点阐述了系统实现过程中功能模块设计、数据库设计、组件的设计、前台显示部分设计、后台维护部分设计等关键设计。

到论文截稿时,网上洋酒销售系统已通过运行测试,基本完成预期目标的实现。能够达到在线浏览,购买商品,基本满足了大众电脑购买的需求。

网上电脑销售系统在设计和实现过程中,系统从不可用,到可用运行,从字符乱码,到正常的中文显示。一次次的改进,这使本人认识到设计、算法在系统开发中的重要性和理论与实践相结合的重要性。

但由于系统开发的经验不足,水平有限,所以目前此系统的实现上还有许多地方可以进一步改善和提高。

网上洋酒销售系统只是实现了网上销售系统的基本功,同能时由于是第一次编写此类系统,还有很多比较流行的功能,如:用户数据分析,相关产品推荐,模糊查询等都尚未实现,在算法的采用和数据库逻辑的设计上还存在一些不完善的地方。

在经过几个月的努力,我最终顺利完成了网上电脑销售系统的软件开发。在整个开发过程中,我不仅学会了使用MyEclipse,Mysql等一系列开发工具,体验了开发过程中的苦与乐,而且也达到了锻炼自己的目的,同时进一步加深对软件开发工作的理解和认识。可谓是收获颇丰。

相关文章
|
7月前
|
监控 Java API
如何快速搭建和使用接口管理平台:YesApi Pro Java版指南 2025
YesApi Pro Java版是一款集接口开发、管理与计费于一体的全栈解决方案,支持私有化部署和深度定制。本文详细介绍了其搭建与使用流程:从环境准备到安装部署,再到平台初始化与基础设置;核心功能涵盖接口管理、文档生成、测试调试;还包括应用权限分配、流量监控与统计分析等模块。通过标准化与灵活性结合的设计,助力企业实现API全生命周期管理,提升开发效率与运维水平,为数字化转型提供技术支持。
|
8月前
|
JavaScript 安全 Java
智慧产科一体化管理平台源码,基于Java,Vue,ElementUI技术开发,二开快捷
智慧产科一体化管理平台覆盖从备孕到产后42天的全流程管理,构建科室协同、医患沟通及智能设备互联平台。通过移动端扫码建卡、自助报道、智能采集数据等手段优化就诊流程,提升孕妇就诊体验,并实现高危孕产妇五色管理和孕妇学校三位一体化管理,全面提升妇幼健康宣教质量。
141 12
|
9月前
|
前端开发 Java 数据库连接
【潜意识Java】深度解读JavaWeb开发在Java学习中的重要性
深度解读JavaWeb开发在Java学习中的重要性
155 4
|
9月前
|
监控 JavaScript 数据可视化
建筑施工一体化信息管理平台源码,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
智慧工地云平台是专为建筑施工领域打造的一体化信息管理平台,利用大数据、云计算、物联网等技术,实现施工区域各系统数据汇总与可视化管理。平台涵盖人员、设备、物料、环境等关键因素的实时监控与数据分析,提供远程指挥、决策支持等功能,提升工作效率,促进产业信息化发展。系统由PC端、APP移动端及项目、监管、数据屏三大平台组成,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
323 7
|
11月前
|
SQL 安全 Java
JavaSecLab 一款综合Java漏洞平台
JavaSecLab是一款综合型Java漏洞学习平台,涵盖多种漏洞场景,提供漏洞代码、修复示例、安全编码规范及友好UI。适用于安全服务、甲方安全培训、安全研究等领域,助于理解漏洞原理与修复方法。支持跨站脚本、SQL注入等多种漏洞类型……
291 2
|
11月前
|
监控 前端开发 Java
【技术开发】接口管理平台要用什么技术栈?推荐:Java+Vue3+Docker+MySQL
该文档介绍了基于Java后端和Vue3前端构建的管理系统的技术栈及功能模块,涵盖管理后台的访问、登录、首页概览、API接口管理、接口权限设置、接口监控、计费管理、账号管理、应用管理、数据库配置、站点配置及管理员个人设置等内容,并提供了访问地址及操作指南。
|
11月前
|
人工智能 监控 数据可视化
Java智慧工地信息管理平台源码 智慧工地信息化解决方案SaaS源码 支持二次开发
智慧工地系统是依托物联网、互联网、AI、可视化建立的大数据管理平台,是一种全新的管理模式,能够实现劳务管理、安全施工、绿色施工的智能化和互联网化。围绕施工现场管理的人、机、料、法、环五大维度,以及施工过程管理的进度、质量、安全三大体系为基础应用,实现全面高效的工程管理需求,满足工地多角色、多视角的有效监管,实现工程建设管理的降本增效,为监管平台提供数据支撑。
171 3
|
11月前
|
SQL 监控 数据可视化
完全开源!国内首个完全开源JAVA企业级低代码平台
JeeLowCode 是一款专为企业打造的 Java 企业级低代码开发平台,通过五大核心引擎(SQL、功能、模板、图表、切面)和四大服务体系(开发、设计、图表、模版),简化开发流程,降低技术门槛,提高研发效率。平台支持多端适配、国际化、事件绑定与动态交互等功能,广泛适用于 OA、ERP、IoT 等多种管理信息系统,帮助企业加速数字化转型。
|
11月前
|
SQL 监控 数据可视化
完全开源!国内首个完全开源JAVA企业级低代码平台
JeeLowCode 是一款专为企业打造的 Java 企业级低代码开发平台,通过五大核心引擎(SQL、功能、模板、图表、切面)和四大服务体系(开发、设计、图表、模版),简化开发流程,降低技术门槛,提高研发效率。平台支持多端适配、国际化、事件绑定与动态交互等功能,广泛适用于 OA、ERP、IoT 等多种管理信息系统,帮助企业加速数字化转型。
完全开源!国内首个完全开源JAVA企业级低代码平台
|
12月前
|
前端开发 Java 应用服务中间件
Javaweb学习
【10月更文挑战第1天】Javaweb学习
105 2

热门文章

最新文章