主要技术:spring、 springmvc、 springboot、 mybatis 、 jquery 、 md5 、bootstarp.js tomcat、富文本编译器、拦截器等
主要功能:登录、注册、二手商品浏览、分类设置、模糊查找、轮播图、热销商品、购物车、订单、订单流程控制、用户管理、修改密码等
作者QQ:1334611189 项目有偿分享哈
平时提供Java毕设定做:选题+功能设计+任务所明书+开题+提纲+中期检查+代码+论文+毕业答辩语音指导一小时+远程部署等一些日常指导
好了废话不多说进入主题:
系统主页展示:
用户分类查看二手物品信息 管理员可以在后台进行设置、用户可以登录个注册账号
一些热门和推荐的二手商品信息、可以再后台进行配置这些
用户登录模块和注册:
通过手机号和密码以及验证码进行登录注册操作
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>OnlineMall-登录</title> <link rel="stylesheet" th:href="@{mall/css/common.css}"> <link rel="stylesheet" th:href="@{mall/styles/login.css}"> <link rel="stylesheet" th:href="@{mall/styles/header.css}"> <link rel="stylesheet" th:href="@{/admin/plugins/sweetalert/sweetalert.css}"/> </head> <body style="background-image: url("11.jpg")"> <div class="form center"> <div> <div> <div> <div class="left fl">用户登录</div> <div class="right fr"><a href="register.html" target="_self">立即注册</a></div> <div></div> <div class="under-line center"></div> </div> <form id="loginForm" onsubmit="return false;" action="##"> <div class="login_main center"> <div>手机号: <input type="text" name="loginName" id="loginName" placeholder="请输入你的手机号"/> </div> <div>密 码: <input id="password" type="password" name="password" placeholder="请输入你的密码"/></div> <div> 验证码: <input class="login-info-input verify-code" type="text" name="verifyCode" placeholder="请输入验证码" id="verifyCode"/> <img alt="单击图片刷新!" style="top: 14px;position: relative;" th:src="@{/common/mall/kaptcha}" onclick="this.src='/common/mall/kaptcha?d='+new Date()*1"> </div> </div> <div> <input type="submit" onclick="login()" value="立即登录"> </div> </form> </div> </div> </div> </body> <!-- jQuery --> <script th:src="@{/admin/plugins/jquery/jquery.min.js}"></script> <script th:src="@{/admin/dist/js/public.js}"></script> <script th:src="@{/admin/plugins/sweetalert/sweetalert.min.js}"></script> <script type="text/javascript"> function login() { var loginName = $("#loginName").val(); if (!validPhoneNumber(loginName)) { swal('请输入正确的登录名(即手机号)', { icon: "error", }); return false; } var password = $("#password").val(); if (!validPassword(password)) { swal('请输入正确的密码格式(6-20位字符和数字组合)', { icon: "error", }); return false; } var verifyCode = $("#verifyCode").val(); if (!validLength(verifyCode, 7)) { swal('请输入正确的验证码', { icon: "error", }); return false; } //验证 var params = $("#loginForm").serialize(); var url = '/login'; $.ajax({ type: 'POST',//方法类型 url: url, data: params, success: function (result) { if (result.resultCode == 200) { window.location.href = '/index'; } else { swal(result.message, { icon: "error", }); } ; }, error: function () { swal("操作失败", { icon: "error", }); } }); } </script> </html>
我的购物车:
我的订单流程以及收获地址信息等
个人信息查看和修改
后台管理:
后台管理员主要对前端客户端一些用户的管理、商品的管理、轮播图管理、商品分类管理以及订单信息和订单流程管理
轮播图配置
商品分类以及排序等操作
商品管理和上下架等具体操作
package ltd.newbee.mall.controller.admin; import ltd.newbee.mall.common.ServiceResultEnum; import ltd.newbee.mall.controller.vo.NewBeeMallOrderItemVO; import ltd.newbee.mall.entity.NewBeeMallOrder; import ltd.newbee.mall.service.NewBeeMallOrderService; import ltd.newbee.mall.util.PageQueryUtil; import ltd.newbee.mall.util.Result; import ltd.newbee.mall.util.ResultGenerator; import org.springframework.stereotype.Controller; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Map; import java.util.Objects; /** * @author 13 */ @Controller @RequestMapping("/admin") public class NewBeeMallOrderController { @Resource private NewBeeMallOrderService newBeeMallOrderService; @GetMapping("/orders") public String ordersPage(HttpServletRequest request) { request.setAttribute("path", "orders"); return "admin/newbee_mall_order"; } /** * 列表 */ @RequestMapping(value = "/orders/list", method = RequestMethod.GET) @ResponseBody public Result list(@RequestParam Map<String, Object> params) { if (StringUtils.isEmpty(params.get("page")) || StringUtils.isEmpty(params.get("limit"))) { return ResultGenerator.genFailResult("参数异常!"); } PageQueryUtil pageUtil = new PageQueryUtil(params); return ResultGenerator.genSucce***esult(newBeeMallOrderService.getNewBeeMallOrdersPage(pageUtil)); } /** * 修改 */ @RequestMapping(value = "/orders/update", method = RequestMethod.POST) @ResponseBody public Result update(@RequestBody NewBeeMallOrder newBeeMallOrder) { if (Objects.isNull(newBeeMallOrder.getTotalPrice()) || Objects.isNull(newBeeMallOrder.getOrderId()) || newBeeMallOrder.getOrderId() < 1 || newBeeMallOrder.getTotalPrice() < 1 || StringUtils.isEmpty(newBeeMallOrder.getUserAddress())) { return ResultGenerator.genFailResult("参数异常!"); } String result = newBeeMallOrderService.updateOrderInfo(newBeeMallOrder); if (ServiceResultEnum.SUCCESS.getResult().equals(result)) { return ResultGenerator.genSucce***esult(); } else { return ResultGenerator.genFailResult(result); } } /** * 详情 */ @GetMapping("/order-items/{id}") @ResponseBody public Result info(@PathVariable("id") Long id) { List<NewBeeMallOrderItemVO> orderItems = newBeeMallOrderService.getOrderItems(id); if (!CollectionUtils.isEmpty(orderItems)) { return ResultGenerator.genSucce***esult(orderItems); } return ResultGenerator.genFailResult(ServiceResultEnum.DATA_NOT_EXIST.getResult()); } /** * 配货 */ @RequestMapping(value = "/orders/checkDone", method = RequestMethod.POST) @ResponseBody public Result checkDone(@RequestBody Long[] ids) { if (ids.length < 1) { return ResultGenerator.genFailResult("参数异常!"); } String result = newBeeMallOrderService.checkDone(ids); if (ServiceResultEnum.SUCCESS.getResult().equals(result)) { return ResultGenerator.genSucce***esult(); } else { return ResultGenerator.genFailResult(result); } } /** * 出库 */ @RequestMapping(value = "/orders/checkOut", method = RequestMethod.POST) @ResponseBody public Result checkOut(@RequestBody Long[] ids) { if (ids.length < 1) { return ResultGenerator.genFailResult("参数异常!"); } String result = newBeeMallOrderService.checkOut(ids); if (ServiceResultEnum.SUCCESS.getResult().equals(result)) { return ResultGenerator.genSucce***esult(); } else { return ResultGenerator.genFailResult(result); } } /** * 关闭订单 */ @RequestMapping(value = "/orders/close", method = RequestMethod.POST) @ResponseBody public Result closeOrder(@RequestBody Long[] ids) { if (ids.length < 1) { return ResultGenerator.genFailResult("参数异常!"); } String result = newBeeMallOrderService.closeOrder(ids); if (ServiceResultEnum.SUCCESS.getResult().equals(result)) { return ResultGenerator.genSucce***esult(); } else { return ResultGenerator.genFailResult(result); } } }