基于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

三,系统展示


前端系统用户操作功能

商品详情

image.png

购物车下单

image.png

个人中心

image.png

己购买商品

image.png

我的收藏

image.png

我的评价

image.png

收货地址管理

image.png

后台管理操作功能

image.png

配件分类

image.png

客户管理

image.png

商品管理

image.png

订单管理

image.png

评论管理

image.png

统计报表

image.png

四,核心代码展示


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]。随着计算机网络技术、通信技术和数据库技术的迅速发展,基于网络技术的电子商务也发展的非常迅速。而实现大学生之间的网上交易的主要平台是校园论坛还有微博,校园论坛虽然用户非常多,但是提供的功能有限,用户不能详细的了解商品的有关信息,更不能快速的查询所需商品,无法让学生实际交易的需求得到最大的满足。

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