• Java项目:SSM在线游戏装备交易系统


    作者主页:夜未央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

    1. package com.smzy.controller;
    2. import com.github.pagehelper.PageHelper;
    3. import com.smzy.pojo.*;
    4. import com.smzy.service.*;
    5. import org.springframework.beans.factory.annotation.Autowired;
    6. import org.springframework.stereotype.Controller;
    7. import org.springframework.ui.Model;
    8. import org.springframework.web.bind.annotation.RequestMapping;
    9. import org.springframework.web.bind.annotation.RequestParam;
    10. import org.springframework.web.bind.annotation.ResponseBody;
    11. import javax.servlet.http.HttpSession;
    12. import java.text.SimpleDateFormat;
    13. import java.util.*;
    14. @Controller
    15. public class ForeController {
    16. @Autowired
    17. private CategoryService categoryService;
    18. @Autowired
    19. private ProductService productService;
    20. @Autowired
    21. private PropertyValueService propertyValueService;
    22. @Autowired
    23. private ReviewService reviewService;
    24. @Autowired
    25. private UserService userService;
    26. @Autowired
    27. private OrderItemService orderItemService;
    28. @Autowired
    29. private OrderService orderService;
    30. @RequestMapping("/home")
    31. public String home(Model model) {
    32. List categories = categoryService.findAll();
    33. productService.fillAll(categories);
    34. model.addAttribute("categories", categories);
    35. return "index";
    36. }
    37. @RequestMapping("/showProduct")
    38. public String showProduct(Model model, Integer product_id) {
    39. List categories = categoryService.findAll();
    40. model.addAttribute("categories", categories);
    41. Product product = productService.get(product_id);
    42. productService.setReviewCount(product);
    43. model.addAttribute("product", product);
    44. List propertyValues = propertyValueService.findByProductId(product_id);
    45. model.addAttribute("propertyValues", propertyValues);
    46. List reviews = reviewService.findByProductId(product_id);
    47. model.addAttribute("reviews", reviews);
    48. return "detail";
    49. }
    50. @RequestMapping("/searchProduct")
    51. public String searchProduct(Model model, String keyword) {
    52. PageHelper.offsetPage(0, 20);
    53. List products = productService.search(keyword);
    54. for (Product product: products) {
    55. product.setReviewCount(reviewService.getCount(product.getId()));
    56. }
    57. model.addAttribute("products", products);
    58. return "searchPage";
    59. }
    60. @RequestMapping("sortProduct")
    61. public String sortProduct(Model model, String sort, String keyword) {
    62. List products = productService.search(keyword);
    63. for (Product product : products) {
    64. product.setReviewCount(reviewService.getCount(product.getId()));
    65. }
    66. if (sort != null) {
    67. switch (sort) {
    68. case "all":
    69. Collections.sort(products, Comparator.comparing(Product::getId));
    70. break;
    71. case "sale":
    72. Collections.sort(products, Comparator.comparing(Product::getSale));
    73. break;
    74. case "price":
    75. Collections.sort(products, Comparator.comparing(Product::getPrice));
    76. }
    77. }
    78. model.addAttribute("products", products);
    79. return "searchPage";
    80. }
    81. //----------------------------------------------登录、注册-------------------------------------------------
    82. @RequestMapping("/login")
    83. public String login(Model model, @RequestParam("name") String name,
    84. @RequestParam("password") String password,
    85. HttpSession session) {
    86. User user = userService.get(name, password);
    87. if (null == user) {
    88. model.addAttribute("msg", "用户名或密码错误");
    89. return "loginPage";
    90. }
    91. session.setAttribute("user", user);
    92. return "redirect:home";
    93. }
    94. @RequestMapping("/logout")
    95. public String logout(HttpSession session) {
    96. session.removeAttribute("user");
    97. return "redirect:home";
    98. }
    99. @RequestMapping("/register")
    100. public String register(Model model, User user) {
    101. String name = user.getName();
    102. boolean exist = userService.isExist(name);
    103. if (exist) {
    104. String msg = "用户名已存在";
    105. model.addAttribute("msg", msg);
    106. model.addAttribute("username", user.getName());
    107. return "registerPage";
    108. }
    109. userService.add(user);
    110. return "redirect:registerSuccess";
    111. }
    112. //----------------------------------------------立即购买-------------------------------------------------
    113. @RequestMapping("/buyOne")
    114. public String buyOne(Integer product_id, Integer number, HttpSession session) {
    115. Product product = productService.get(product_id);
    116. int orderItemId = 0;
    117. User user = (User) session.getAttribute("user");
    118. boolean found = false;
    119. List orderItems = orderItemService.findByUserId(user.getId());
    120. for (OrderItem orderItem : orderItems) {
    121. if (orderItem.getProduct_id().intValue() == product.getId().intValue()) {
    122. orderItem.setNumber(orderItem.getNumber() + number);
    123. orderItemService.update(orderItem);
    124. orderItemId = orderItem.getId();
    125. break;
    126. }
    127. }
    128. if (!found) {
    129. OrderItem orderItem = new OrderItem();
    130. orderItem.setUser_id(user.getId());
    131. orderItem.setNumber(number);
    132. orderItem.setProduct_id(product_id);
    133. orderItemService.add(orderItem);
    134. orderItemId = orderItem.getId();
    135. }
    136. return "redirect:buy?orderItemId=" + orderItemId;
    137. }
    138. @RequestMapping("/buy")
    139. public String buy(Model model, String[] orderItemId, HttpSession session) {
    140. List orderItems = new ArrayList<>();
    141. float total = 0;
    142. for (String strId : orderItemId) {
    143. int id = Integer.parseInt(strId);
    144. OrderItem orderItem = orderItemService.get(id);
    145. total += orderItem.getProduct().getPrice() * orderItem.getNumber();
    146. orderItems.add(orderItem);
    147. }
    148. session.setAttribute("orderItems", orderItems);
    149. model.addAttribute("total", total);
    150. return "buyPage";
    151. }
    152. @RequestMapping("/createOrder")
    153. public String createOrder(Model model, Order order, HttpSession session) {
    154. User user = (User) session.getAttribute("user");
    155. String orderCode = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
    156. order.setOrder_code(orderCode);
    157. order.setCreate_date(new Date());
    158. order.setUser_id(user.getId());
    159. order.setStatus(OrderService.waitPay);
    160. List orderItems = (List) session.getAttribute("orderItems");
    161. float total = orderService.addTotal(order, orderItems);
    162. return "redirect:payPage?order_id=" + order.getId() + "&total=" + total;
    163. }
    164. @RequestMapping("/payed")
    165. public String payed(int order_id, float total, Model model) {
    166. Order order = orderService.get(order_id);
    167. order.setStatus(OrderService.waitDelivery);
    168. order.setPay_date(new Date());
    169. orderService.update(order);
    170. model.addAttribute("order", order);
    171. return "payed";
    172. }
    173. //---------------------------------------------加入购物车------------------------------------------------
    174. @RequestMapping("addCart")
    175. @ResponseBody
    176. public String addCart(int product_id,int num,Model model,HttpSession session) {
    177. Product p = productService.get(product_id);
    178. User user = (User) session.getAttribute("user");
    179. boolean found = false;
    180. List ois = orderItemService.findByUserId(user.getId());
    181. for(OrderItem oi :ois) {
    182. if(oi.getProduct().getId().intValue() == p.getId().intValue()) {
    183. oi.setNumber(oi.getNumber() + num);
    184. orderItemService.update(oi);
    185. found = true;
    186. break;
    187. }
    188. }
    189. if(!found) {
    190. OrderItem oi = new OrderItem();
    191. oi.setUser_id(user.getId());
    192. oi.setNumber(num);
    193. oi.setProduct_id(product_id);
    194. orderItemService.add(oi);
    195. }
    196. return "success";
    197. }
    198. @RequestMapping("/cart")
    199. public String cart(Model model, HttpSession session) {
    200. User user = (User)session.getAttribute("user");
    201. List orderItems = orderItemService.findForCart(user.getId());
    202. model.addAttribute("orderItems",orderItems);
    203. return "cart";
    204. }
    205. @RequestMapping("/checkLogin")
    206. @ResponseBody
    207. public String checkLogin(HttpSession session) {
    208. User user = (User)session.getAttribute("user");
    209. if(null != user)
    210. return "success";
    211. return "fail";
    212. }
    213. @RequestMapping("/changeOrderItem")
    214. @ResponseBody
    215. public String changeOrderItem(Model model,HttpSession session,int product_id,int number) {
    216. User user = (User)session.getAttribute("user");
    217. if(null == user)
    218. return "fail";
    219. List ois = orderItemService.findByUserId(user.getId());
    220. for(OrderItem oi : ois) {
    221. if(oi.getProduct().getId().intValue() == product_id) {
    222. oi.setNumber(number);
    223. orderItemService.update(oi);
    224. break;
    225. }
    226. }
    227. return "success";
    228. }
    229. @RequestMapping("deleteOrderItem")
    230. @ResponseBody
    231. public String deleteOrderItem(Model model,HttpSession session,Integer orderItemId) {
    232. User user = (User) session.getAttribute("user");
    233. if(null == user)
    234. return "fail";
    235. orderItemService.delete(orderItemId);
    236. return "success";
    237. }
    238. @RequestMapping("bought")
    239. public String bought(Model model,HttpSession session) {
    240. User user =(User) session.getAttribute("user");
    241. List orders = orderService.list(user.getId(),OrderService.delete);
    242. orderItemService.fill(orders);
    243. model.addAttribute("orders",orders);
    244. return "bought";
    245. }
    246. @RequestMapping("confirmPay")
    247. public String confirmPay(Model model,Integer order_id) {
    248. Order order = orderService.get(order_id);
    249. orderItemService.fill(order);
    250. model.addAttribute("order",order);
    251. return "confirmPay";
    252. }
    253. @RequestMapping("/orderConfirmed")
    254. public String orderConfirmed(Model model,Integer order_id) {
    255. Order order = orderService.get(order_id);
    256. order.setStatus(OrderService.waitReview);
    257. order.setConfirm_date(new Date());
    258. orderService.update(order);
    259. return "orderConfirmedPage";
    260. }
    261. @RequestMapping("deleteOrder")
    262. public String deleteOrder(Model model,Integer order_id) {
    263. Order order = orderService.get(order_id);
    264. order.setStatus(OrderService.delete);
    265. orderService.update(order);
    266. return "success";
    267. }
    268. @RequestMapping("review")
    269. public String review(Model model,Integer order_id) {
    270. Order order = orderService.get(order_id);
    271. orderItemService.fill(order);
    272. Product product = order.getOrderItems().get(0).getProduct();
    273. List reviews = reviewService.findByProductId(product.getId());
    274. productService.setReviewCount(product);
    275. model.addAttribute("product",product);
    276. model.addAttribute("order",order);
    277. model.addAttribute("reviews",reviews);
    278. return "reviewPage";
    279. }
    280. @RequestMapping("doReview")
    281. public String deReview(Model model,HttpSession session,
    282. @RequestParam("order_id") Integer order_id,
    283. @RequestParam("product_id") Integer product_id,
    284. String content) {
    285. Order order = orderService.get(order_id);
    286. order.setStatus(OrderService.finish);
    287. orderService.update(order);
    288. User user = (User) session.getAttribute("user");
    289. Review review = new Review();
    290. review.setContent(content);
    291. review.setProduct_id(product_id);
    292. review.setCreateDate(new Date());
    293. review.setUser_id(user.getId());
    294. reviewService.add(review);
    295. return "redirect:review?order_id=" + order_id + "&showonly=true";
    296. }
    297. }

    ProductController

    1. package com.smzy.controller;
    2. import com.smzy.pojo.Category;
    3. import com.smzy.pojo.Product;
    4. import com.smzy.pojo.ProductImage;
    5. import com.smzy.service.CategoryService;
    6. import com.smzy.service.ProductImageService;
    7. import com.smzy.service.ProductService;
    8. import com.smzy.service.PropertyValueService;
    9. import org.springframework.beans.factory.annotation.Autowired;
    10. import org.springframework.stereotype.Controller;
    11. import org.springframework.ui.Model;
    12. import org.springframework.web.bind.annotation.RequestMapping;
    13. import javax.servlet.http.HttpServletRequest;
    14. import java.io.File;
    15. import java.util.List;
    16. @Controller
    17. @RequestMapping("/admin")
    18. public class ProductController {
    19. @Autowired
    20. private ProductService productService;
    21. @Autowired
    22. private CategoryService categoryService;
    23. @Autowired
    24. private ProductImageService productImageService;
    25. @Autowired
    26. private PropertyValueService propertyValueService;
    27. @RequestMapping("/listProduct")
    28. public String findAll(Model model,Integer category_id) {
    29. List products = productService.findAll(category_id);
    30. model.addAttribute("products",products);
    31. Category category = categoryService.get(category_id);
    32. model.addAttribute("category",category);
    33. return "admin/listProduct";
    34. }
    35. @RequestMapping("/addProductView")
    36. public String addView(Model model,Integer category_id) {
    37. Category category = categoryService.get(category_id);
    38. model.addAttribute("category",category);
    39. return "admin/addProductView";
    40. }
    41. @RequestMapping("/addProduct")
    42. public String add(Product product) {
    43. productService.add(product);
    44. ProductImage productImage = new ProductImage();
    45. productImage.setProduct_id(product.getId());
    46. for(int i = 1;i <= 5 ;i++) {
    47. productImageService.add(productImage);
    48. }
    49. return "redirect:listProduct?category_id=" + product.getCategory_id();
    50. }
    51. /* @RequestMapping("/deleteProduct")
    52. public String delete(Integer id,HttpServletRequest request) {
    53. productImageService.deleteByProductId(id);
    54. String path = request.getSession().getServletContext().getRealPath("" + id);
    55. deleteDir(new File(path));
    56. propertyValueService.deleteByProductId(id);
    57. int category_id = productService.get(id).getCategory_id();
    58. productService.delete(id);
    59. return "redirect:listProduct?category_id=" + category_id;
    60. }*/
    61. /* public static boolean deleteDir(File dir) {
    62. if(dir.isDirectory()){
    63. String[] children = dir.list();
    64. for(int i = 0 ;i < children.length;i++ ) {
    65. boolean success = deleteDir(new File(dir, children[i]));
    66. if(!success) {
    67. return false;
    68. }
    69. }
    70. }
    71. return dir.delete();
    72. }*/
    73. @RequestMapping("/editProduct")
    74. public String edit(Integer id, Model model) {
    75. Product product = productService.get(id);
    76. model.addAttribute("product",product);
    77. Category category = categoryService.get(product.getCategory_id());
    78. model.addAttribute("category",category);
    79. return "admin/editProduct";
    80. }
    81. @RequestMapping("/updateProduct")
    82. public String update(Product product) {
    83. productService.update(product);
    84. return "redirect:listProduct?category_id=" + product.getCategory_id();
    85. }
    86. }

    如果也想学习本系统,下面领取。关注并回复:242ssm 

  • 相关阅读:
    java基于微信小程序的知识分享科普管理系统 uniapp小程序
    MySQL:10-设计数据库
    如何让固定资产年终盘点更轻松?
    Junit4 一直处于运行中的排查过程
    使用LocalForage进行浏览器端数据存储
    数学建模理论与实践国防科大版
    Python NLP教程之知识图谱,从文本构建知识,实现从文本或在线文章中提取知识库的管道(教程含源码)
    Java开发:多线程编程
    elementor系统要求
    【校招VIP】产品行测之逻辑计算题
  • 原文地址:https://blog.csdn.net/hanyunlong1989/article/details/127602890