作者主页:夜未央5788
简介:Java领域优质创作者、Java项目、学习资料、技术互助
文末获取源码
本项目为前后台项目,前台为普通用户登录,后台为管理员登录;
管理员角色包含以下功能:
管理员登录,装备分类管理,装备管理&分类管理&属性管理,用户管理,订单管理等功能。
用户角色包含以下功能:
查看首页,查看装备详情,用户登录,查看购物车,提交订单,查看我的订单等功能。
由于本程序规模不大,可供课程设计,毕业设计学习演示之用
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.是否Maven项目: 是;
6.数据库:MySql 5.7等版本均可;
1. 后端:Spring springmvc mybatis
2. 前端:JSP+CSS+JavaScript+jQuery+Bootstrap
1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中db.properties配置文件中的数据库配置改为自己的配置;
4. 运行项目,在浏览器中输入http://localhost:8080/ssm_hzp_site/ 登录
注:Tomcat中配置项目路径必须为ssm_hzp_site
用户账号/密码: user/123456
管理员账号/密码:admin/admin



ForeController
- package com.smzy.controller;
-
- import com.github.pagehelper.PageHelper;
- import com.smzy.pojo.*;
- import com.smzy.service.*;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.Model;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.ResponseBody;
-
-
- import javax.servlet.http.HttpSession;
- import java.text.SimpleDateFormat;
- import java.util.*;
-
- @Controller
- public class ForeController {
-
- @Autowired
- private CategoryService categoryService;
-
- @Autowired
- private ProductService productService;
-
- @Autowired
- private PropertyValueService propertyValueService;
-
- @Autowired
- private ReviewService reviewService;
-
- @Autowired
- private UserService userService;
-
- @Autowired
- private OrderItemService orderItemService;
-
- @Autowired
- private OrderService orderService;
-
- @RequestMapping("/home")
- public String home(Model model) {
- List
categories = categoryService.findAll(); - productService.fillAll(categories);
- model.addAttribute("categories", categories);
- return "index";
- }
-
- @RequestMapping("/showProduct")
- public String showProduct(Model model, Integer product_id) {
- List
categories = categoryService.findAll(); - model.addAttribute("categories", categories);
- Product product = productService.get(product_id);
- productService.setReviewCount(product);
- model.addAttribute("product", product);
- List
propertyValues = propertyValueService.findByProductId(product_id); - model.addAttribute("propertyValues", propertyValues);
- List
reviews = reviewService.findByProductId(product_id); - model.addAttribute("reviews", reviews);
- return "detail";
- }
-
- @RequestMapping("/searchProduct")
- public String searchProduct(Model model, String keyword) {
- PageHelper.offsetPage(0, 20);
- List
products = productService.search(keyword); - for (Product product: products) {
- product.setReviewCount(reviewService.getCount(product.getId()));
- }
- model.addAttribute("products", products);
- return "searchPage";
- }
-
-
- @RequestMapping("sortProduct")
- public String sortProduct(Model model, String sort, String keyword) {
- List
products = productService.search(keyword); - for (Product product : products) {
- product.setReviewCount(reviewService.getCount(product.getId()));
- }
- if (sort != null) {
- switch (sort) {
- case "all":
- Collections.sort(products, Comparator.comparing(Product::getId));
- break;
- case "sale":
- Collections.sort(products, Comparator.comparing(Product::getSale));
- break;
- case "price":
- Collections.sort(products, Comparator.comparing(Product::getPrice));
- }
- }
- model.addAttribute("products", products);
- return "searchPage";
- }
- //----------------------------------------------登录、注册-------------------------------------------------
-
-
- @RequestMapping("/login")
- public String login(Model model, @RequestParam("name") String name,
- @RequestParam("password") String password,
- HttpSession session) {
- User user = userService.get(name, password);
- if (null == user) {
- model.addAttribute("msg", "用户名或密码错误");
- return "loginPage";
- }
- session.setAttribute("user", user);
- return "redirect:home";
- }
-
- @RequestMapping("/logout")
- public String logout(HttpSession session) {
- session.removeAttribute("user");
- return "redirect:home";
- }
-
- @RequestMapping("/register")
- public String register(Model model, User user) {
- String name = user.getName();
- boolean exist = userService.isExist(name);
- if (exist) {
- String msg = "用户名已存在";
- model.addAttribute("msg", msg);
- model.addAttribute("username", user.getName());
- return "registerPage";
- }
- userService.add(user);
- return "redirect:registerSuccess";
- }
-
- //----------------------------------------------立即购买-------------------------------------------------
-
- @RequestMapping("/buyOne")
- public String buyOne(Integer product_id, Integer number, HttpSession session) {
- Product product = productService.get(product_id);
- int orderItemId = 0;
-
- User user = (User) session.getAttribute("user");
- boolean found = false;
- List
orderItems = orderItemService.findByUserId(user.getId()); - for (OrderItem orderItem : orderItems) {
- if (orderItem.getProduct_id().intValue() == product.getId().intValue()) {
- orderItem.setNumber(orderItem.getNumber() + number);
- orderItemService.update(orderItem);
- orderItemId = orderItem.getId();
- break;
- }
- }
-
- if (!found) {
- OrderItem orderItem = new OrderItem();
- orderItem.setUser_id(user.getId());
- orderItem.setNumber(number);
- orderItem.setProduct_id(product_id);
- orderItemService.add(orderItem);
- orderItemId = orderItem.getId();
- }
- return "redirect:buy?orderItemId=" + orderItemId;
- }
-
- @RequestMapping("/buy")
- public String buy(Model model, String[] orderItemId, HttpSession session) {
- List
orderItems = new ArrayList<>(); - float total = 0;
- for (String strId : orderItemId) {
- int id = Integer.parseInt(strId);
- OrderItem orderItem = orderItemService.get(id);
- total += orderItem.getProduct().getPrice() * orderItem.getNumber();
- orderItems.add(orderItem);
- }
- session.setAttribute("orderItems", orderItems);
- model.addAttribute("total", total);
- return "buyPage";
- }
-
- @RequestMapping("/createOrder")
- public String createOrder(Model model, Order order, HttpSession session) {
- User user = (User) session.getAttribute("user");
- String orderCode = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
- order.setOrder_code(orderCode);
- order.setCreate_date(new Date());
- order.setUser_id(user.getId());
- order.setStatus(OrderService.waitPay);
- List
orderItems = (List) session.getAttribute("orderItems"); - float total = orderService.addTotal(order, orderItems);
- return "redirect:payPage?order_id=" + order.getId() + "&total=" + total;
- }
-
- @RequestMapping("/payed")
- public String payed(int order_id, float total, Model model) {
- Order order = orderService.get(order_id);
- order.setStatus(OrderService.waitDelivery);
- order.setPay_date(new Date());
- orderService.update(order);
- model.addAttribute("order", order);
- return "payed";
- }
-
-
- //---------------------------------------------加入购物车------------------------------------------------
- @RequestMapping("addCart")
- @ResponseBody
- public String addCart(int product_id,int num,Model model,HttpSession session) {
- Product p = productService.get(product_id);
- User user = (User) session.getAttribute("user");
- boolean found = false;
- List
ois = orderItemService.findByUserId(user.getId()); - for(OrderItem oi :ois) {
- if(oi.getProduct().getId().intValue() == p.getId().intValue()) {
- oi.setNumber(oi.getNumber() + num);
- orderItemService.update(oi);
- found = true;
- break;
- }
- }
- if(!found) {
- OrderItem oi = new OrderItem();
- oi.setUser_id(user.getId());
- oi.setNumber(num);
- oi.setProduct_id(product_id);
- orderItemService.add(oi);
- }
- return "success";
- }
-
- @RequestMapping("/cart")
- public String cart(Model model, HttpSession session) {
- User user = (User)session.getAttribute("user");
- List
orderItems = orderItemService.findForCart(user.getId()); - model.addAttribute("orderItems",orderItems);
- return "cart";
- }
-
- @RequestMapping("/checkLogin")
- @ResponseBody
- public String checkLogin(HttpSession session) {
- User user = (User)session.getAttribute("user");
- if(null != user)
- return "success";
- return "fail";
- }
-
- @RequestMapping("/changeOrderItem")
- @ResponseBody
- public String changeOrderItem(Model model,HttpSession session,int product_id,int number) {
- User user = (User)session.getAttribute("user");
- if(null == user)
- return "fail";
-
- List
ois = orderItemService.findByUserId(user.getId()); - for(OrderItem oi : ois) {
- if(oi.getProduct().getId().intValue() == product_id) {
- oi.setNumber(number);
- orderItemService.update(oi);
- break;
- }
- }
- return "success";
- }
-
- @RequestMapping("deleteOrderItem")
- @ResponseBody
- public String deleteOrderItem(Model model,HttpSession session,Integer orderItemId) {
- User user = (User) session.getAttribute("user");
- if(null == user)
- return "fail";
- orderItemService.delete(orderItemId);
- return "success";
- }
-
- @RequestMapping("bought")
- public String bought(Model model,HttpSession session) {
- User user =(User) session.getAttribute("user");
- List
orders = orderService.list(user.getId(),OrderService.delete); - orderItemService.fill(orders);
- model.addAttribute("orders",orders);
- return "bought";
- }
-
- @RequestMapping("confirmPay")
- public String confirmPay(Model model,Integer order_id) {
- Order order = orderService.get(order_id);
- orderItemService.fill(order);
- model.addAttribute("order",order);
- return "confirmPay";
- }
-
- @RequestMapping("/orderConfirmed")
- public String orderConfirmed(Model model,Integer order_id) {
- Order order = orderService.get(order_id);
- order.setStatus(OrderService.waitReview);
- order.setConfirm_date(new Date());
- orderService.update(order);
- return "orderConfirmedPage";
- }
-
- @RequestMapping("deleteOrder")
- public String deleteOrder(Model model,Integer order_id) {
- Order order = orderService.get(order_id);
- order.setStatus(OrderService.delete);
- orderService.update(order);
- return "success";
- }
-
- @RequestMapping("review")
- public String review(Model model,Integer order_id) {
- Order order = orderService.get(order_id);
- orderItemService.fill(order);
- Product product = order.getOrderItems().get(0).getProduct();
- List
reviews = reviewService.findByProductId(product.getId()); - productService.setReviewCount(product);
- model.addAttribute("product",product);
- model.addAttribute("order",order);
- model.addAttribute("reviews",reviews);
- return "reviewPage";
- }
-
-
- @RequestMapping("doReview")
- public String deReview(Model model,HttpSession session,
- @RequestParam("order_id") Integer order_id,
- @RequestParam("product_id") Integer product_id,
- String content) {
- Order order = orderService.get(order_id);
- order.setStatus(OrderService.finish);
- orderService.update(order);
-
- User user = (User) session.getAttribute("user");
- Review review = new Review();
- review.setContent(content);
- review.setProduct_id(product_id);
- review.setCreateDate(new Date());
- review.setUser_id(user.getId());
- reviewService.add(review);
- return "redirect:review?order_id=" + order_id + "&showonly=true";
- }
- }
ProductController
- package com.smzy.controller;
-
- import com.smzy.pojo.Category;
- import com.smzy.pojo.Product;
- import com.smzy.pojo.ProductImage;
- import com.smzy.service.CategoryService;
- import com.smzy.service.ProductImageService;
- import com.smzy.service.ProductService;
- import com.smzy.service.PropertyValueService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.Model;
- import org.springframework.web.bind.annotation.RequestMapping;
-
- import javax.servlet.http.HttpServletRequest;
- import java.io.File;
- import java.util.List;
-
- @Controller
- @RequestMapping("/admin")
- public class ProductController {
-
- @Autowired
- private ProductService productService;
-
- @Autowired
- private CategoryService categoryService;
-
- @Autowired
- private ProductImageService productImageService;
-
- @Autowired
- private PropertyValueService propertyValueService;
-
- @RequestMapping("/listProduct")
- public String findAll(Model model,Integer category_id) {
- List
products = productService.findAll(category_id); - model.addAttribute("products",products);
- Category category = categoryService.get(category_id);
- model.addAttribute("category",category);
- return "admin/listProduct";
- }
-
- @RequestMapping("/addProductView")
- public String addView(Model model,Integer category_id) {
- Category category = categoryService.get(category_id);
- model.addAttribute("category",category);
- return "admin/addProductView";
- }
- @RequestMapping("/addProduct")
- public String add(Product product) {
- productService.add(product);
- ProductImage productImage = new ProductImage();
- productImage.setProduct_id(product.getId());
- for(int i = 1;i <= 5 ;i++) {
- productImageService.add(productImage);
- }
- return "redirect:listProduct?category_id=" + product.getCategory_id();
- }
-
- /* @RequestMapping("/deleteProduct")
- public String delete(Integer id,HttpServletRequest request) {
- productImageService.deleteByProductId(id);
- String path = request.getSession().getServletContext().getRealPath("" + id);
- deleteDir(new File(path));
- propertyValueService.deleteByProductId(id);
- int category_id = productService.get(id).getCategory_id();
- productService.delete(id);
- return "redirect:listProduct?category_id=" + category_id;
- }*/
-
- /* public static boolean deleteDir(File dir) {
- if(dir.isDirectory()){
- String[] children = dir.list();
- for(int i = 0 ;i < children.length;i++ ) {
- boolean success = deleteDir(new File(dir, children[i]));
- if(!success) {
- return false;
- }
- }
- }
- return dir.delete();
- }*/
- @RequestMapping("/editProduct")
- public String edit(Integer id, Model model) {
- Product product = productService.get(id);
- model.addAttribute("product",product);
- Category category = categoryService.get(product.getCategory_id());
- model.addAttribute("category",category);
- return "admin/editProduct";
- }
-
- @RequestMapping("/updateProduct")
- public String update(Product product) {
- productService.update(product);
- return "redirect:listProduct?category_id=" + product.getCategory_id();
- }
- }
如果也想学习本系统,下面领取。关注并回复:242ssm