基于SSM实现汽车配件商城系统

简介: 基于SSM实现汽车配件商城系统

项目编号:BS-SC-033

前言:

随着互联网技术逐渐的深入到生活,网站形式的展示窗口,已经成为大众迫切的需要。论文中的SSM网上商城购物网站专门是基于B/S模式建立起来的,为用户专门研发的一个易操作界面舒适的网上商城交易网站。

   SSM网上商城交易网站使用JSP技术制作网站动态页面,使用IDEA为系统开发工具,使用SSM框架作为系统的后台开发框架,使用BootStrap作为系统的前端开发框加,系统数据库则使用My SQL数据库进行数据存储,开发一个网上商城交易网站,主要研究的功能是分为前台与后台两大部分,前台要实现的是用户注册之后登陆可以浏览商品的功能,还有实现在线商品信息查询功能、购物车加入功能、订单查询功能、用户进入个人中心发布商品功能、在线留言功能和已经出售的订单的查询和管理等功能。后台主要是实现管理员对网站的用户信息管理、商品类别类别管理、网站新闻管理等信息管理的功能,实现一个基于买卖双方的网上商城交易网站。

SSM网上商城交易网站借助于Internet互联网应用技术,实现资源共享,借助网络平台形式的展示窗口,让客户更易接受此网上商城交易网站,并且打破以往购买商品的局限性,缩短用户找商品的时间,具有较好的交互性,从而实现信息化、规范化和系统化。

一,项目简介

该系统主要分为汽车配件商城,以汽车配件为主题的在线商城系统,系统分为前后端,前台功能主要包括用户的登录注册、查询商品、购物车管理、用户信息管理、收藏商品、评价、收货地址管理以及订单管理。后台主要包括商品分类管理、客户信息管理、商品管理、订单管理、评论管理、销售统计以及系统设置。本系统所采用的技术是SSM框架,整体功能需实现完整,功能界面较为精美。完成了一个较为完整的商城销售系统。

二,环境介绍

语言环境:Java:  jdk1.8

数据库:Mysql: mysql5.7

应用服务器:Tomcat:  tomcat8.5.31

开发工具:IDEA或eclipse

后台开发技术:SSM

前台开发技术:layui+jquery+echarts

三,系统展示

前端系统用户操作功能


商品详情

购物车下单

 

个人中心

己购买商品

我的收藏

我的评价

收货地址管理

后台管理操作功能

配件分类

客户管理

商品管理

订单管理

评论管理

统计报表

四,核心代码展示

package com.itlb.controller;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import com.itlb.service.AccountService;
import com.itlb.util.Page;
import com.itlb.entity.Account;
/**
 * 客户管理控制器
 * @author Administrator
 *
 */
@RequestMapping("/admin/account")
@Controller
public class AccountController {
  @Autowired
  private AccountService accountService;
  /**
   * 客户列表页
   * @param model
   * @return
   */
  @RequestMapping(value="/list",method=RequestMethod.GET)
  public ModelAndView list(ModelAndView model){
    model.setViewName("admin/account");
    return model;
  }
  /**
   * 查询客户列表
   * @param name
   * @param page
   * @return
   */
  @RequestMapping(value="/list",method=RequestMethod.POST)
  @ResponseBody
  public Map<String, Object> list(@RequestParam(value="name",defaultValue="")String name,
      @RequestParam(value="sex",defaultValue="")Integer sex,
      @RequestParam(value="status",defaultValue="")Integer status,
        Page page
      ){
    Map<String, Object> ret = new HashMap<String, Object>();
    Map<String, Object> queryMap = new HashMap<String, Object>();
    queryMap.put("name", name);
    if(sex != null){
      queryMap.put("sex", sex);
    }
    if(status != null){
      queryMap.put("status", status);
    }
    queryMap.put("offset", page.getOffset());
    queryMap.put("pageSize", page.getRows());
    ret.put("rows", accountService.findList(queryMap));
    ret.put("total", accountService.getTotal(queryMap));
    return ret;
  }
  /**
   * 添加客户
   * @param account
   * @return
   */
  @RequestMapping(value="/add",method=RequestMethod.POST)
  @ResponseBody
  public Map<String, Object> add(Account account){
    Map<String, Object> ret = new HashMap<String, Object>();
    if(account == null){
      ret.put("type", "error");
      ret.put("msg", "请填写正确的客户信息");
      return ret;
    }
    if(StringUtils.isEmpty(account.getName())){
      ret.put("type", "error");
      ret.put("msg", "请填写客户名称");
      return ret;
    }
    if(StringUtils.isEmpty(account.getPassword())){
      ret.put("type", "error");
      ret.put("msg", "请填写客户登录密码!");
      return ret;
    }
    if(isExist(account.getName(), 0l)){
      ret.put("type", "error");
      ret.put("msg", "该用户名已存在!");
      return ret;
    }
    account.setCreateTime(new Date());
    if(accountService.add(account) <= 0){
      ret.put("type", "error");
      ret.put("msg", "添加失败,请联系管理员!");
      return ret;
    }
    ret.put("type", "success");
    ret.put("msg", "添加成功!");
    return ret;
  }
  /**
   * 编辑客户
   * @param account
   * @return
   */
  @RequestMapping(value="/edit",method=RequestMethod.POST)
  @ResponseBody
  public Map<String, Object> edit(Account account){
    Map<String, Object> ret = new HashMap<String, Object>();
    if(account == null){
      ret.put("type", "error");
      ret.put("msg", "请填写正确的客户信息");
      return ret;
    }
    if(StringUtils.isEmpty(account.getName())){
      ret.put("type", "error");
      ret.put("msg", "请填写客户名称");
      return ret;
    }
    if(StringUtils.isEmpty(account.getPassword())){
      ret.put("type", "error");
      ret.put("msg", "请填写客户登录密码!");
      return ret;
    }
    if(isExist(account.getName(), account.getId())){
      ret.put("type", "error");
      ret.put("msg", "该用户名已存在!");
      return ret;
    }
    if(accountService.edit(account) <= 0){
      ret.put("type", "error");
      ret.put("msg", "添加失败,请联系管理员!");
      return ret;
    }
    ret.put("type", "success");
    ret.put("msg", "编辑成功!");
    return ret;
  }
  /**
   * 删除客户
   * @param id
   * @return
   */
  @RequestMapping(value="/delete",method=RequestMethod.POST)
  @ResponseBody
  public Map<String, Object> delete(Long id){
    Map<String, Object> ret = new HashMap<String, Object>();
    if(id == null){
      ret.put("type", "error");
      ret.put("msg", "请选择要删除的客户");
      return ret;
    }
    try {
      if(accountService.delete(id) <= 0){
        ret.put("type", "error");
        ret.put("msg", "删除失败,请联系管理员!");
        return ret;
      }
    } catch (Exception e) {
      // TODO: handle exception
      ret.put("type", "error");
      ret.put("msg", "该客户下存在订单信息,不允许删除!");
      return ret;
    }
    ret.put("type", "success");
    ret.put("msg", "删除成功!");
    return ret;
  }
  /**
   * 检查用户名是否存在
   * @param name
   * @param id
   * @return
   */
  private boolean isExist(String name,Long id){
    Account account = accountService.findByName(name);
    if(account == null)return false;
    if(account.getId().longValue() == id.longValue())return false;
    return true;
  }
}
package com.itlb.controller;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import com.itlb.service.AccountService;
import com.itlb.service.AddressService;
import com.itlb.util.MenuUtil;
import com.itlb.entity.Account;
import com.itlb.entity.Address;
import com.itlb.service.ProductCategoryService;
import com.itlb.service.ProductService;
/**
 * 前台收货地址控制器
 * @author Administrator
 *
 */
@RequestMapping("/address")
@Controller
public class AddressController {
  @Autowired
  private AccountService accountService;
  @Autowired
  private ProductCategoryService productCategoryService;
  @Autowired
  private ProductService productService;
  @Autowired
  private AddressService addressService;
  /**
   * 收货地址列表页面
   * @param model
   * @return
   */
  @RequestMapping(value = "/list",method = RequestMethod.GET)
  public ModelAndView index(ModelAndView model,HttpServletRequest request){
    model.addObject("productCategoryList", MenuUtil.getTreeCategory(productCategoryService.findList(new HashMap<String, Object>())));
    model.addObject("allCategoryId","shop_hd_menu_all_category");
    Account onlineAccount = (Account)request.getSession().getAttribute("account");
    Map<String, Object> queryMap = new HashMap<String, Object>();
    queryMap.put("userId", onlineAccount.getId());
    model.addObject("addressList", addressService.findList(queryMap));
    model.addObject("currentUser", "current_");
    model.setViewName("home/address/list");
    return model;
  }
  /**
   * 添加收货地址
   * @param account
   * @return
   */
  @RequestMapping(value = "/add",method = RequestMethod.POST)
  @ResponseBody
  public Map<String, String> add(Address address,HttpServletRequest request){
    Map<String, String> ret = new HashMap<String, String>();
    Account onlineAccount = (Account)request.getSession().getAttribute("account");
    ret.put("type", "error");
    if(address == null){
      ret.put("msg", "请选择正确的收货信息");
      return ret;
    }
    if(StringUtils.isEmpty(address.getName())){
      ret.put("msg", "请填写收货人!");
      return ret;
    }
    if(StringUtils.isEmpty(address.getAddress())){
      ret.put("msg", "请填写收货地址!");
      return ret;
    }
    if(StringUtils.isEmpty(address.getPhone())){
      ret.put("msg", "请填写手机号!");
      return ret;
    }
    address.setUserId(onlineAccount.getId());
    address.setCreateTime(new Date());
    if(addressService.add(address) <= 0){
      ret.put("msg", "添加失败,请联系管理员!");
      return ret;
    }
    ret.put("type", "success");
    return ret;
  }
  @RequestMapping(value = "/edit",method = RequestMethod.POST)
  @ResponseBody
  public Map<String, String> edit(Address address,HttpServletRequest request){
    Map<String, String> ret = new HashMap<String, String>();
    Account onlineAccount = (Account)request.getSession().getAttribute("account");
    ret.put("type", "error");
    if(address == null){
      ret.put("msg", "请选择正确的收货信息");
      return ret;
    }
    Address existAddress = addressService.findById(address.getId());
    if(existAddress == null){
      ret.put("msg", "不存在该地址!");
      return ret;
    }
    if(StringUtils.isEmpty(address.getName())){
      ret.put("msg", "请填写收货人!");
      return ret;
    }
    if(StringUtils.isEmpty(address.getAddress())){
      ret.put("msg", "请填写收货地址!");
      return ret;
    }
    if(StringUtils.isEmpty(address.getPhone())){
      ret.put("msg", "请填写手机号!");
      return ret;
    }
    address.setUserId(onlineAccount.getId());
    if(addressService.edit(address) <= 0){
      ret.put("msg", "编辑失败,请联系管理员!");
      return ret;
    }
    ret.put("type", "success");
    return ret;
  }
  /**
   * 删除收货地址
   * @param favoriteId
   * @return
   */
  @RequestMapping(value = "/delete",method = RequestMethod.POST)
  @ResponseBody
  public Map<String, String> delete(Long id){
    Map<String, String> ret = new HashMap<String, String>();
    ret.put("type", "error");
    if(id == null){
      ret.put("msg", "请选择要删除的地址");
      return ret;
    }
    if(addressService.delete(id) <= 0){
      ret.put("msg", "删除出错,请联系管理员!");
      return ret;
    }
    ret.put("type", "success");
    return ret;
  }
}
package com.itlb.controller;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import com.itlb.service.AccountService;
import com.itlb.service.AddressService;
import com.itlb.util.MenuUtil;
import com.itlb.entity.Account;
import com.itlb.entity.Product;
import com.itlb.entity.Cart;
import com.itlb.service.ProductCategoryService;
import com.itlb.service.ProductService;
import com.itlb.service.CartService;
/**
 * 前台购物车控制器
 * @author Administrator
 *
 */
@RequestMapping("/cart")
@Controller
public class CartController {
  @Autowired
  private AccountService accountService;
  @Autowired
  private ProductCategoryService productCategoryService;
  @Autowired
  private ProductService productService;
  @Autowired
  private CartService cartService;
  @Autowired
  private AddressService addressService;
  /**
   * 购物车列表页面
   * @param model
   * @return
   */
  @RequestMapping(value = "/list",method = RequestMethod.GET)
  public ModelAndView list(ModelAndView model,HttpServletRequest request){
    model.addObject("productCategoryList", MenuUtil.getTreeCategory(productCategoryService.findList(new HashMap<String, Object>())));
    model.addObject("allCategoryId","shop_hd_menu_all_category");
    Account onlineAccount = (Account)request.getSession().getAttribute("account");
    Map<String, Object> queryMap = new HashMap<String, Object>();
    queryMap.put("userId", onlineAccount.getId());
    model.addObject("cartList", cartService.findList(queryMap));
    model.addObject("currentCart", "current_");
    model.setViewName("home/cart/list");
    return model;
  }
  /**
   * 提交订单第二步
   * @param model
   * @param request
   * @return
   */
  @RequestMapping(value = "/list_2",method = RequestMethod.GET)
  public ModelAndView list2(ModelAndView model,HttpServletRequest request){
    model.addObject("productCategoryList", MenuUtil.getTreeCategory(productCategoryService.findList(new HashMap<String, Object>())));
    model.addObject("allCategoryId","shop_hd_menu_all_category");
    Account onlineAccount = (Account)request.getSession().getAttribute("account");
    Map<String, Object> queryMap = new HashMap<String, Object>();
    queryMap.put("userId", onlineAccount.getId());
    model.addObject("cartList", cartService.findList(queryMap));
    model.addObject("currentCart", "current_");
    model.addObject("addressList", addressService.findList(queryMap));
    model.setViewName("home/cart/list_2");
    return model;
  }
  /**
   * 添加购物车
   * @param account
   * @return
   */
  @RequestMapping(value = "/add",method = RequestMethod.POST)
  @ResponseBody
  public Map<String, String> add(Cart cart,HttpServletRequest request){
    Map<String, String> ret = new HashMap<String, String>();
    Account onlineAccount = (Account)request.getSession().getAttribute("account");
    ret.put("type", "error");
    if(cart == null){
      ret.put("msg", "请选择正确的商品信息");
      return ret;
    }
    if(cart.getProductId() == null){
      ret.put("msg", "请选择要添加的商品!");
      return ret;
    }
    if(cart.getNum() == 0){
      ret.put("msg", "请填写商品数量");
      return ret;
    }
    Product product = productService.findById(cart.getProductId());
    if(product == null){
      ret.put("msg", "商品不存在");
      return ret;
    }
    //根据商品和用户去查询该商品是否已被添加到购物车
    Map<String, Long> queryMap = new HashMap<String, Long>();
    queryMap.put("userId", onlineAccount.getId());
    queryMap.put("productId", product.getId());
    Cart existCart = cartService.findByIds(queryMap);
    if(existCart != null){
      //表示这个商品已经被添加到购物车,只需更新数量和金额即可
      existCart.setNum(existCart.getNum() + cart.getNum());
      existCart.setMoney(existCart.getNum() * existCart.getPrice());
      if(cartService.edit(existCart) <= 0){
        ret.put("msg", "商品已被添加到购物车,但更新数量出错!");
        return ret;
      }
      ret.put("type", "success");
      return ret;
    }
    cart.setImageUrl(product.getImageUrl());
    cart.setMoney(product.getPrice() * cart.getNum());
    cart.setName(product.getName());
    cart.setPrice(product.getPrice());
    cart.setUserId(onlineAccount.getId());
    cart.setCreateTime(new Date());
    if(cartService.add(cart) <= 0){
      ret.put("msg", "添加失败,请联系管理员!");
      return ret;
    }
    ret.put("type", "success");
    return ret;
  }
  /**
   * 更新购物车商品数量
   * @param cartId
   * @param num
   * @return
   */
  @RequestMapping(value = "/update_num",method = RequestMethod.POST)
  @ResponseBody
  public Map<String, String> updateNum(Long cartId,Integer num){
    Map<String, String> ret = new HashMap<String, String>();
    ret.put("type", "error");
    Cart cart = cartService.findById(cartId);
    if(cart == null){
      ret.put("msg", "请选择正确的商品信息");
      return ret;
    }
    if(num == null){
      ret.put("msg", "请填写商品数量");
      return ret;
    }
    Product product = productService.findById(cart.getProductId());
    if(product == null){
      ret.put("msg", "购物车信息有误!");
      return ret;
    }
    if(cart.getNum() + num.intValue() > product.getStock()){
      ret.put("msg", "商品数量不能超过库存量!");
      return ret;
    }
    cart.setNum(cart.getNum() + num);
    cart.setMoney(cart.getNum() * cart.getPrice());
    if(cartService.edit(cart) <= 0){
      ret.put("msg", "商品已被添加到购物车,但更新数量出错!");
      return ret;
    }
    ret.put("type", "success");
    return ret;
  }
  /**
   * 删除购物车商品
   * @param cartId
   * @return
   */
  @RequestMapping(value = "/delete",method = RequestMethod.POST)
  @ResponseBody
  public Map<String, String> delete(Long cartId){
    Map<String, String> ret = new HashMap<String, String>();
    ret.put("type", "error");
    if(cartId == null){
      ret.put("msg", "请选择要删除的商品");
      return ret;
    }
    if(cartService.delete(cartId) <= 0){
      ret.put("msg", "删除出错,请联系管理员!");
      return ret;
    }
    ret.put("type", "success");
    return ret;
  }
}

五,项目总结

在当前社会上,许多的各种类型的电子商务类网站纷纷建立,可以很大程度上的解决人们信息资源的闭塞以及地域上的限制[1]。网上交易成为了当代人们业余生活的一大热门,伴随着用户的购买能力的提高和新型互联网技术的应用。

   目前大部分的高校已经建立自己的校园网,而部分院校也完成了校园网络工程的建设,校园网的建成为学校的学生、老师、后勤部门等学校各方面人士提供了非常大的便利,例如学习、工作和生活上的交流便利[2]。随着计算机网络技术、通信技术和数据库技术的迅速发展,基于网络技术的电子商务也发展的非常迅速。而实现大学生之间的网上交易的主要平台是校园论坛还有微博,校园论坛虽然用户非常多,但是提供的功能有限,用户不能详细的了解商品的有关信息,更不能快速的查询所需商品,无法让学生实际交易的需求得到最大的满足。

相关文章
|
4月前
|
Java 数据库连接 Maven
手把手教你如何搭建SSM框架、图书商城系统案例
这篇文章是关于如何搭建SSM框架以及实现一个图书商城系统的详细教程,包括了项目的配置文件整合、依赖管理、项目结构和运行效果展示,并提供了GitHub源码链接。
手把手教你如何搭建SSM框架、图书商城系统案例
|
3月前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
472 37
|
3月前
|
Java 应用服务中间件 数据库连接
ssm项目整合,简单的用户管理系统
文章介绍了一个使用SSM框架(Spring、SpringMVC、MyBatis)构建的简单用户管理系统的整合过程,包括项目搭建、数据库配置、各层代码实现以及视图展示。
ssm项目整合,简单的用户管理系统
|
3月前
|
XML Java 数据库连接
如何搭建SSM框架、图书商城系统
这是一份详尽的《Spring + SpringMVC + Mybatis 整合指南》,作者耗时良久整理出约五万字的内容,现已经全部笔记公开。此文档详细地介绍了如何搭建与整合SSM框架,具体步骤包括创建Maven项目、添加web骨架、配置pom文件以及整合Spring、SpringMVC和Mybatis等。无论是对初学者还是有一定基础的开发者来说,都是很好的学习资源。此外,作者还提供了项目源码的GitHub链接,方便读者实践。虽然当前主流推荐学习SpringBoot,但了解SSM框架仍然是不可或缺的基础。
46 0
|
4月前
|
SQL Java 应用服务中间件
使用SSM搭建图书商城管理系统(完整过程介绍、售后服务哈哈哈)
这篇文章是关于如何使用SSM框架搭建图书商城管理系统的教程,包括完整过程介绍、常见问题解答和售后服务,提供了项目地址、运行环境配置、效果图展示以及运行代码的步骤。
使用SSM搭建图书商城管理系统(完整过程介绍、售后服务哈哈哈)
|
5月前
|
安全 数据挖掘 测试技术
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)(2)
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)
80 0
|
6月前
|
搜索推荐 JavaScript Java
计算机Java项目|基于SSM的个性化商铺系统
计算机Java项目|基于SSM的个性化商铺系统
|
6月前
|
前端开发 JavaScript Java
计算机Java项目|SSM智能仓储系统
计算机Java项目|SSM智能仓储系统
|
5月前
|
存储 关系型数据库 测试技术
基于ssm+vue的校园驿站管理系统+(源码+部署说明+演示视频+源码介绍)(2)
基于ssm+vue的校园驿站管理系统+(源码+部署说明+演示视频+源码介绍)
78 1
|
6月前
|
前端开发
杨校老师之基于SSM开发的校园点餐配送系统
杨校老师之基于SSM开发的校园点餐配送系统
65 0
杨校老师之基于SSM开发的校园点餐配送系统