——————————DescriptionStart——————————
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明








基于javaweb的SpringBoot仿天猫商城系统(java+jsp+springboot+ssm+mysql+maven)
一、项目介绍:
迷你天猫商城是一个基于SSM框架的综合性B2C电商平台,需求设计主要参考天猫商城的购物流程:用户从注册开始,到完成登录,浏览商品,加入购物车,进行下单,确认收货,评价等一系列操作。 作为模拟天猫商城系统的核心组成部分之一,采用SSM框架的天猫数据管理后台包含商品管理,订单管理,类别管理,用户管理和交易额统计等模块,实现了对整个商城的一站式管理和维护。
二、项目运行
环境配置: Jdk1.8 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)
项目技术: JSP + Springboot + SpringMVC + Spring +MyBatis + css + JavaScript + JQuery + Ajax + layui+ maven等等。
——————————CodeStart——————————
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| logger.info("获取图片原始文件名: {}", originalFileName); String extension = originalFileName.substring(originalFileName.lastIndexOf('.')); String fileName = UUID.randomUUID() + extension; String filePath = session.getServletContext().getRealPath("/") + "rhttps://yms-1257401191.cos.ap-nanjing.myqcloud.com/item/categoryPicture/" + fileName;
logger.info("文件上传路径:{}", filePath); JSONObject object = new JSONObject(); try { logger.info("文件上传中..."); file.transferTo(new File(filePath)); logger.info("文件上传完成"); object.put("success", true); object.put("fileName", fileName); } catch (IOException e) { logger.warn("文件上传失败!"); e.printStackTrace(); object.put("success", false); }
return object.toJSONString(); } } package com.xq.tmall.controller.admin;
@Controller
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| return object.toJSONString(); }
@ResponseBody @RequestMapping(value = "orderItem/{orderItem_id}", method = RequestMethod.DELETE, produces = "application/json;charset=utf-8") public String deleteOrderItem(@PathVariable("orderItem_id") Integer orderItem_id, HttpSession session, HttpServletRequest request) { JSONObject object = new JSONObject(); logger.info("检查用户是否登录"); Object userId = checkUser(session); if (userId == null) { object.put("url", "/login"); object.put("success", false); return object.toJSONString(); } logger.info("检查用户的购物车项"); List<ProductOrderItem> orderItemList = productOrderItemService.getListByUserId(Integer.valueOf(userId.toString()), null); boolean isMine = false; for (ProductOrderItem orderItem : orderItemList) { logger.info("找到匹配的购物车项"); if (orderItem.getProductOrderItem_id().equals(orderItem_id)) { isMine = true; break; } } if (isMine) { logger.info("删除订单项信息"); boolean yn = productOrderItemService.deleteList(new Integer[]{orderItem_id}); if (yn) { object.put("success", true); } else { object.put("success", false); } } else { object.put("success", false); } return object.toJSONString(); } } package com.xq.tmall.controller.admin;
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| logger.info("检查管理员权限"); Object adminId = checkAdmin(session); if (adminId == null) { return "admin/include/loginMessage"; }
logger.info("转到后台管理-分类添加页-ajax方式"); return "admin/include/categoryDetails"; }
@ResponseBody @RequestMapping(value = "admin/category", method = RequestMethod.POST, produces = "application/json;charset=utf-8") public String addCategory(@RequestParam String category_name, @RequestParam String category_image_src) { JSONObject jsonObject = new JSONObject(); logger.info("整合分类信息"); Category category = new Category() .setCategory_name(category_name) .setCategory_image_src(category_image_src.substring(category_image_src.lastIndexOf("/") + 1)); logger.info("添加分类信息"); boolean yn = categoryService.add(category); if (yn) { int category_id = lastIDService.selectLastID(); logger.info("添加成功!,新增分类的ID值为:{}", category_id); jsonObject.put("success", true); jsonObject.put("category_id", category_id); } else { jsonObject.put("success", false); logger.warn("添加失败!事务回滚"); throw new RuntimeException(); }
return jsonObject.toJSONString(); }
@ResponseBody @RequestMapping(value = "admin/category/{category_id}", method = RequestMethod.PUT, produces = "application/json;charset=utf-8") public String updateCategory(@RequestParam String category_name, @RequestParam String category_image_src, @PathVariable("category_id") Integer category_id) { JSONObject jsonObject = new JSONObject(); logger.info("整合分类信息"); Category category = new Category() .setCategory_id(category_id) .setCategory_name(category_name) .setCategory_image_src(category_image_src.substring(category_image_src.lastIndexOf("/") + 1)); logger.info("更新分类信息,分类ID值为:{}", category_id); boolean yn = categoryService.update(category); if (yn) { logger.info("更新成功!"); jsonObject.put("success", true); jsonObject.put("category_id", category_id);
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| cal.setTime(beginDate); cal.add(Calendar.DATE, i); dateStr[i] = time2.format(cal.getTime()); } logger.info("获取总交易额订单列表"); List<OrderGroup> orderGroupList = productOrderService.getTotalByDate(beginDate, endDate); logger.info("根据订单状态分类");
int[] orderTotalArray = new int[7];
int[] orderUnpaidArray = new int[7];
int[] orderNotShippedArray = new int[7];
int[] orderUnconfirmedArray = new int[7];
int[] orderSuccessArray = new int[7]; for (OrderGroup orderGroup : orderGroupList) { int index = 0; for (int j = 0; j < dateStr.length; j++) { if (dateStr[j].equals(orderGroup.getProductOrder_pay_date())) { index = j; } } switch (orderGroup.getProductOrder_status()) { case 0: orderUnpaidArray[index] = orderGroup.getProductOrder_count(); break; case 1: orderNotShippedArray[index] = orderGroup.getProductOrder_count(); break; case 2: orderUnconfirmedArray[index] = orderGroup.getProductOrder_count(); break; case 3: orderSuccessArray[index] = orderGroup.getProductOrder_count(); break; default: throw new RuntimeException("错误的订单类型!"); } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| ProductOrderItem productOrderItem = new ProductOrderItem(); logger.info("检查用户的购物车项"); List<ProductOrderItem> orderItemList = productOrderItemService.getListByUserId(Integer.valueOf(userId.toString()), null); for (ProductOrderItem orderItem : orderItemList) { if (orderItem.getProductOrderItem_product().getProduct_id().equals(product_id)) { logger.info("找到已有的产品,进行数量追加"); int number = orderItem.getProductOrderItem_number(); number += 1; productOrderItem.setProductOrderItem_id(orderItem.getProductOrderItem_id()); productOrderItem.setProductOrderItem_number((short) number); productOrderItem.setProductOrderItem_price(number * product.getProduct_sale_price()); boolean yn = productOrderItemService.update(productOrderItem); if (yn) { object.put("success", true); } else { object.put("success", false); } return object.toJSONString(); } } logger.info("封装订单项对象"); productOrderItem.setProductOrderItem_product(product); productOrderItem.setProductOrderItem_number(product_number); productOrderItem.setProductOrderItem_price(product.getProduct_sale_price() * product_number); productOrderItem.setProductOrderItem_user(new User().setUser_id(Integer.valueOf(userId.toString()))); boolean yn = productOrderItemService.add(productOrderItem); if (yn) { object.put("success", true); } else { object.put("success", false); } return object.toJSONString(); }
@ResponseBody @RequestMapping(value = "orderItem/{orderItem_id}", method = RequestMethod.DELETE, produces = "application/json;charset=utf-8") public String deleteOrderItem(@PathVariable("orderItem_id") Integer orderItem_id, HttpSession session, HttpServletRequest request) { JSONObject object = new JSONObject(); logger.info("检查用户是否登录"); Object userId = checkUser(session); if (userId == null) { object.put("url", "/login"); object.put("success", false); return object.toJSONString(); }
|
——————————PayStart——————————
项目链接:
https://javayms.github.io?id=381422302105200gp
https://javayms.pages.dev?id=381422302105200gp