Java毕业设计实战项目之宠物商城系统的实现流程
作者:OldWinePot
这是一个使用了java+Springboot+Maven+mybatis+Vue+mysql开发的宠物商城系统,是一个毕业设计的实战练习,具有宠物商城该有的所有功能,感兴趣的朋友快来看看吧
一、项目运行
环境配置:
Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。
项目技术:
Springboot + Maven + mybatis+ Vue 等等组成,B/S模式 + Maven管理等等。
后台相关接口:
/** * 后台相关接口 */ @Controller @RequestMapping("/admin") public class AdminController { private static final int rows = 10; @Autowired private AdminService adminService; @Autowired private OrderService orderService; @Autowired private UserService userService; @Autowired private GoodService goodService; @Autowired private TopService topService; @Autowired private TypeService typeService; /** * 管理员登录 * @return */ @RequestMapping("/login") public String login(Admins admin, HttpServletRequest request, HttpSession session) { if (adminService.checkUser(admin.getUsername(), admin.getPassword())) { session.setAttribute("username", admin.getUsername()); return "redirect:index"; } request.setAttribute("msg", "用户名或密码错误!"); return "/admin/login.jsp"; } /** * 退出 * @return */ @RequestMapping("/logout") public String logout(HttpSession session) { session.removeAttribute("admin"); return "/admin/login.jsp"; } /** * 后台首页 * @return */ @RequestMapping("/index") public String index(HttpServletRequest request) { request.setAttribute("msg", "恭喜你! 登录成功了"); return "/admin/index.jsp"; } /** * 订单列表 * * @return */ @RequestMapping("/orderList") public String orderList(@RequestParam(required=false, defaultValue="0")byte status, HttpServletRequest request, @RequestParam(required=false, defaultValue="1") int page) { request.setAttribute("flag", 1); request.setAttribute("status", status); request.setAttribute("orderList", orderService.getList(status, page, rows)); request.setAttribute("pageTool", PageUtil.getPageTool(request, orderService.getTotal(status), page, rows)); return "/admin/order_list.jsp"; } /** * 订单发货 * * @return */ @RequestMapping("/orderDispose") public String orderDispose(int id, byte status, @RequestParam(required=false, defaultValue="1") int page) { orderService.dispose(id); return "redirect:orderList?flag=1&status="+status+"&page="+page; } /** * 订单完成 * * @return */ @RequestMapping("/orderFinish") public String orderFinish(int id, byte status, @RequestParam(required=false, defaultValue="1") int page) { orderService.finish(id); return "redirect:orderList?flag=1&status="+status+"&page="+page; } /** * 订单删除 * * @return */ @RequestMapping("/orderDelete") public String orderDelete(int id, byte status, @RequestParam(required=false, defaultValue="1") int page) { orderService.delete(id); return "redirect:orderList?flag=1&status="+status+"&page="+page; } /** * 顾客管理 * * @return */ @RequestMapping("/userList") public String userList(HttpServletRequest request, @RequestParam(required=false, defaultValue="1") int page) { request.setAttribute("flag", 2); request.setAttribute("userList", userService.getList(page, rows)); request.setAttribute("pageTool", PageUtil.getPageTool(request, userService.getTotal(), page, rows)); return "/admin/user_list.jsp"; } /** * 顾客添加 * * @return */ @RequestMapping("/userAdd") public String userAdd(HttpServletRequest request) { request.setAttribute("flag", 2); return "/admin/user_add.jsp"; } /** * 顾客添加 * * @return */ @RequestMapping("/userSave") public String userSave(Users user, HttpServletRequest request, @RequestParam(required=false, defaultValue="1") int page) { if (userService.isExist(user.getUsername())) { request.setAttribute("msg", "用户名已存在!"); return "/admin/user_add.jsp"; } userService.add(user); return "redirect:userList?flag=2&page="+page; } /** * 顾客密码重置页面 * * @return */ @RequestMapping("/userRe") public String userRe(int id, HttpServletRequest request) { request.setAttribute("flag", 2); request.setAttribute("user", userService.get(id)); return "/admin/user_reset.jsp"; } /** * 顾客密码重置 * * @return */ @RequestMapping("/userReset") public String userReset(Users user, @RequestParam(required=false, defaultValue="1") int page) { String password = SafeUtil.encode(user.getPassword()); user = userService.get(user.getId()); user.setPassword(password); userService.update(user); return "redirect:userList?flag=2&page="+page; } /** * 顾客更新 * * @return */ @RequestMapping("/userEdit") public String userEdit(int id, HttpServletRequest request) { request.setAttribute("flag", 2); request.setAttribute("user", userService.get(id)); return "/admin/user_edit.jsp"; } /** * 顾客更新 * * @return */ @RequestMapping("/userUpdate") public String userUpdate(Users user, @RequestParam(required=false, defaultValue="1") int page) { userService.update(user); return "redirect:userList?flag=2&page="+page; } /** * 顾客删除 * * @return */ @RequestMapping("/userDelete") public String userDelete(Users user, @RequestParam(required=false, defaultValue="1") int page) { userService.delete(user); return "redirect:userList?flag=2&page="+page; } /** * 产品列表 * * @return */ @RequestMapping("/goodList") public String goodList(@RequestParam(required=false, defaultValue="0")byte status, HttpServletRequest request, @RequestParam(required=false, defaultValue="1") int page) { request.setAttribute("flag", 3); request.setAttribute("page", page); request.setAttribute("status", status); request.setAttribute("goodList", goodService.getList(status, page, rows)); request.setAttribute("pageTool", PageUtil.getPageTool(request, goodService.getTotal(status), page, rows)); return "/admin/good_list.jsp"; } /** * 产品添加 * * @return */ @RequestMapping("/goodAdd") public String goodAdd(HttpServletRequest request) { request.setAttribute("flag", 3); request.setAttribute("typeList", typeService.getList()); return "/admin/good_add.jsp"; } /** * 产品添加 * * @return * @throws Exception */ @RequestMapping("/goodSave") public String goodSave(String name, int price, String intro, int stock, int typeId, MultipartFile cover, MultipartFile image1, MultipartFile image2, @RequestParam(required=false, defaultValue="1") int page) throws Exception { Goods good = new Goods(); good.setName(name); good.setPrice(price); good.setIntro(intro); good.setStock(stock); good.setTypeId(typeId); good.setCover(UploadUtil.fileUpload(cover)); good.setImage1(UploadUtil.fileUpload(image1)); good.setImage2(UploadUtil.fileUpload(image2)); goodService.add(good); return "redirect:goodList?flag=3&page="+page; } /** * 产品更新 * * @return */ @RequestMapping("/goodEdit") public String goodEdit(int id, HttpServletRequest request) { request.setAttribute("flag", 3); request.setAttribute("typeList", typeService.getList()); request.setAttribute("good", goodService.get(id)); return "/admin/good_edit.jsp"; } /** * 产品更新 * * @return * @throws Exception */ @RequestMapping("/goodUpdate") public String goodUpdate(int id, String name, int price, String intro, int stock, int typeId, MultipartFile cover, MultipartFile image1, MultipartFile image2, @RequestParam(required=false, defaultValue="1") int page) throws Exception { Goods good = goodService.get(id); good.setName(name); good.setPrice(price); good.setIntro(intro); good.setStock(stock); good.setTypeId(typeId); if (Objects.nonNull(cover) && !cover.isEmpty()) { good.setCover(UploadUtil.fileUpload(cover)); } if (Objects.nonNull(image1) && !image1.isEmpty()) { good.setImage1(UploadUtil.fileUpload(image1)); } if (Objects.nonNull(image2) && !image2.isEmpty()) { good.setImage2(UploadUtil.fileUpload(image2)); } goodService.update(good); return "redirect:goodList?flag=3&page="+page; } /** * 产品删除 * * @return */ @RequestMapping("/goodDelete") public String goodDelete(int id, @RequestParam(required=false, defaultValue="1") int page) { goodService.delete(id); return "redirect:goodList?flag=3&page="+page; } /** * 添加推荐 * @return */ @RequestMapping("/topSave") public @ResponseBody String topSave(Tops tops, @RequestParam(required=false, defaultValue="0")byte status, @RequestParam(required=false, defaultValue="1") int page) { int id = topService.add(tops); return id > 0 ? "ok" : null; } /** * 删除推荐 * @return */ @RequestMapping("/topDelete") public @ResponseBody String topDelete(Tops tops, @RequestParam(required=false, defaultValue="0")byte status, @RequestParam(required=false, defaultValue="1") int page) { boolean flag = topService.delete(tops); return flag ? "ok" : null; } /** * 类目列表 * * @return */ @RequestMapping("/typeList") public String typeList(HttpServletRequest request) { request.setAttribute("flag", 4); request.setAttribute("typeList", typeService.getList()); return "/admin/type_list.jsp"; } /** * 类目添加 * * @return */ @RequestMapping("/typeSave") public String typeSave(Types type, @RequestParam(required=false, defaultValue="1") int page) { typeService.add(type); return "redirect:typeList?flag=4&page="+page; } /** * 类目更新 * * @return */ @RequestMapping("/typeEdit") public String typeUp(int id, HttpServletRequest request) { request.setAttribute("flag", 4); request.setAttribute("type", typeService.get(id)); return "/admin/type_edit.jsp"; } /** * 类目更新 * * @return */ @RequestMapping("/typeUpdate") public String typeUpdate(Types type, @RequestParam(required=false, defaultValue="1") int page) { typeService.update(type); return "redirect:typeList?flag=4&page="+page; } /** * 类目删除 * * @return */ @RequestMapping("/typeDelete") public String typeDelete(Types type, @RequestParam(required=false, defaultValue="1") int page) { typeService.delete(type); return "redirect:typeList?flag=4&page="+page; } /** * 管理员列表 * * @return */ @RequestMapping("/adminList") public String adminList(HttpServletRequest request, @RequestParam(required=false, defaultValue="1") int page) { request.setAttribute("flag", 5); request.setAttribute("adminList", adminService.getList(page, rows)); request.setAttribute("pageTool", PageUtil.getPageTool(request, adminService.getTotal(), page, rows)); return "/admin/admin_list.jsp"; } /** * 管理员修改自己密码 * * @return */ @RequestMapping("/adminRe") public String adminRe(HttpServletRequest request, HttpSession session) { request.setAttribute("flag", 5); request.setAttribute("admin", adminService.getByUsername(String.valueOf(session.getAttribute("username")))); return "/admin/admin_reset.jsp"; } /** * 管理员修改自己密码 * * @return */ @RequestMapping("/adminReset") public String adminReset(Admins admin, HttpServletRequest request) { request.setAttribute("flag", 5); if (adminService.get(admin.getId()).getPassword().equals(SafeUtil.encode(admin.getPassword()))) { admin.setPassword(SafeUtil.encode(admin.getPasswordNew())); adminService.update(admin); request.setAttribute("admin", admin); request.setAttribute("msg", "修改成功!"); }else { request.setAttribute("msg", "原密码错误!"); } return "/admin/admin_reset.jsp"; } /** * 管理员添加 * * @return */ @RequestMapping("/adminSave") public String adminSave(Admins admin, HttpServletRequest request, @RequestParam(required=false, defaultValue="1") int page) { if (adminService.isExist(admin.getUsername())) { request.setAttribute("msg", "用户名已存在!"); return "/admin/admin_add.jsp"; } adminService.add(admin); return "redirect:adminList?flag=5&page="+page; } /** * 管理员修改 * * @return */ @RequestMapping("/adminEdit") public String adminEdit(int id, HttpServletRequest request) { request.setAttribute("flag", 5); request.setAttribute("admin", adminService.get(id)); return "/admin/admin_edit.jsp"; } /** * 管理员更新 * * @return */ @RequestMapping("/adminUpdate") public String adminUpdate(Admins admin, @RequestParam(required=false, defaultValue="1") int page) { admin.setPassword(SafeUtil.encode(admin.getPassword())); adminService.update(admin); return "redirect:adminList?flag=5&page="+page; } /** * 管理员删除 * * @return */ @RequestMapping("/adminDelete") public String adminDelete(Admins admin, @RequestParam(required=false, defaultValue="1") int page) { adminService.delete(admin); return "redirect:adminList?flag=5&page="+page; } }
用户相关接口:
/** * 用户相关接口 */ @Controller @RequestMapping("/index") public class UserController{ private static final String INDENT_KEY = "order"; @Resource private UserService userService; @Resource private OrderService orderService; @Resource private GoodService goodService; @Resource private TypeService typeService; /** * 注册用户 * @return */ @RequestMapping("/register") public String register(@RequestParam(required=false, defaultValue="0")int flag, Users user, Model model){ model.addAttribute("typeList", typeService.getList()); if(flag==-1) { model.addAttribute("flag", 5); // 注册页面 return "/index/register.jsp"; } if (user.getUsername().isEmpty()) { model.addAttribute("msg", "用户名不能为空!"); return "/index/register.jsp"; }else if (userService.isExist(user.getUsername())) { model.addAttribute("msg", "用户名已存在!"); return "/index/register.jsp"; }else { String password = user.getPassword(); userService.add(user); user.setPassword(password); return "redirect:login?flag=-1"; // 注册成功后转去登录 } } /** * 用户登录 * @return */ @RequestMapping("/login") public String login(@RequestParam(required=false, defaultValue="0")int flag, Users user, HttpSession session, Model model) { model.addAttribute("typeList", typeService.getList()); if(flag==-1) { flag = 6; // 登录页面 return "/index/login.jsp"; } if(userService.checkUser(user.getUsername(), user.getPassword())){ session.setAttribute("user", userService.get(user.getUsername())); return "redirect:index"; } else { model.addAttribute("msg", "用户名或密码错误!"); return "/index/login.jsp"; } } /** * 注销登录 * @return */ @RequestMapping("/logout") public String logout(HttpSession session) { session.removeAttribute("user"); session.removeAttribute("order"); return "/index/login.jsp"; } /** * 查看购物车 * @return */ @RequestMapping("/cart") public String cart(Model model) { model.addAttribute("typeList", typeService.getList()); return "/index/cart.jsp"; } /** * 购买 * @return */ @RequestMapping("/buy") public @ResponseBody String buy(int goodid, HttpSession session){ Goods goods = goodService.get(goodid); if (goods .getStock() <= 0) { // 库存不足 return "empty"; } Orders order = (Orders) session.getAttribute(INDENT_KEY); if (order==null) { session.setAttribute(INDENT_KEY, orderService.add(goods)); }else { session.setAttribute(INDENT_KEY, orderService.addOrderItem(order, goods)); } return "ok"; } /** * 减少 */ @RequestMapping("/lessen") public @ResponseBody String lessen(int goodid, HttpSession session){ Orders order = (Orders) session.getAttribute(INDENT_KEY); if (order != null) { session.setAttribute(INDENT_KEY, orderService.lessenIndentItem(order, goodService.get(goodid))); } return "ok"; } /** * 删除 */ @RequestMapping("/delete") public @ResponseBody String delete(int goodid, HttpSession session){ Orders order = (Orders) session.getAttribute(INDENT_KEY); if (order != null) { session.setAttribute(INDENT_KEY, orderService.deleteIndentItem(order, goodService.get(goodid))); } return "ok"; } /** * 提交订单 * @return */ @RequestMapping("/save") public String save(ServletRequest request, HttpSession session, Model model){ model.addAttribute("typeList", typeService.getList()); Users user = (Users) session.getAttribute("user"); if (user == null) { request.setAttribute("msg", "请登录后提交订单!"); return "/index/login.jsp"; } Orders sessionOrder = (Orders) session.getAttribute(INDENT_KEY); if (sessionOrder != null) { if (sessionOrder != null) { for(Items item : sessionOrder.getItemList()){ // 检测商品库存(防止库存不足) Goods product = goodService.get(item.getGoodId()); if(item.getAmount() > product.getStock()){ request.setAttribute("msg", "商品 ["+product.getName()+"] 库存不足! 当前库存数量: "+product.getStock()); return "/index/cart.jsp"; } } } sessionOrder.setUserId(user.getId()); sessionOrder.setUser(userService.get(user.getId())); int orderid = orderService.save(sessionOrder); // 保存订单 session.removeAttribute(INDENT_KEY); // 清除购物车 return "redirect:topay?orderid="+orderid; } request.setAttribute("msg", "处理失败!"); return "/index/cart.jsp"; } /** * 支付页面 * @return */ @RequestMapping("/topay") public String topay(int orderid, ServletRequest request, Model model) { model.addAttribute("typeList", typeService.getList()); request.setAttribute("order", orderService.get(orderid)); return "/index/pay.jsp"; } /** * 支付(模拟) * @return */ @RequestMapping("/pay") public String pay(Orders order, Model model) { model.addAttribute("typeList", typeService.getList()); orderService.pay(order); return "redirect:payok?orderid="+order.getId(); } /** * 支付成功 * @return */ @RequestMapping("/payok") public String payok(int orderid, ServletRequest request, Model model) { model.addAttribute("typeList", typeService.getList()); Orders order = orderService.get(orderid); int paytype = order.getPaytype(); if(paytype == Orders.PAYTYPE_WECHAT || paytype == Orders.PAYTYPE_ALIPAY) { request.setAttribute("msg", "订单["+orderid+"]支付成功"); }else { request.setAttribute("msg", "订单["+orderid+"]货到付款"); } return "/index/payok.jsp"; } /** * 查看订单 * @return */ @RequestMapping("/order") public String order(HttpSession session, Model model){ model.addAttribute("flag", 3); model.addAttribute("typeList", typeService.getList()); Users user = (Users) session.getAttribute("user"); if (user == null) { model.addAttribute("msg", "请登录后查看订单!"); return "/index/login.jsp"; } List<Orders> orderList = orderService.getListByUserid(user.getId()); if (orderList!=null && !orderList.isEmpty()) { for(Orders order : orderList){ order.setItemList(orderService.getItemList(order.getId())); } } model.addAttribute("orderList", orderList); return "/index/order.jsp"; } /** * 个人信息 * @return */ @RequestMapping("/my") public String my(Users user, HttpSession session, Model model){ model.addAttribute("flag", 4); model.addAttribute("typeList", typeService.getList()); Users userLogin = (Users) session.getAttribute("user"); if (userLogin == null) { model.addAttribute("msg", "请先登录!"); return "/index/login.jsp"; } // 进入个人中心 if (Objects.isNull(user) || Objects.isNull(user.getId())) { return "/index/my.jsp"; } Users u = userService.get(user.getId()); // 修改资料 u.setName(user.getName()); u.setPhone(user.getPhone()); u.setAddress(user.getAddress()); userService.update(u); // 更新数据库 session.setAttribute("user", u); // 更新session model.addAttribute("msg", "信息修改成功!"); // 修改密码 if(user.getPasswordNew()!=null && !user.getPasswordNew().trim().isEmpty()) { if (user.getPassword()!=null && !user.getPassword().trim().isEmpty() && SafeUtil.encode(user.getPassword()).equals(u.getPassword())) { if (user.getPasswordNew()!=null && !user.getPasswordNew().trim().isEmpty()) { u.setPassword(SafeUtil.encode(user.getPasswordNew())); } userService.update(u); // 更新数据库 session.setAttribute("user", u); // 更新session model.addAttribute("msg", "密码修改成功!"); }else { model.addAttribute("msg", "原密码错误!"); } } return "/index/my.jsp"; } }
前台相关接口:
/** * 前台相关接口 */ @Controller @RequestMapping("/index") public class IndexController{ private static final int rows = 16; // 默认每页数量 @Autowired private TopService topService; @Autowired private GoodService goodService; @Autowired private TypeService typeService; /** * 首页 * @return */ @RequestMapping("/index") public String index(HttpServletRequest request){ request.setAttribute("flag", 1); request.setAttribute("typeList", typeService.getList()); request.setAttribute("top1List", topService.getList(Tops.TYPE_SCROLL, 1, 1)); request.setAttribute("top2List", topService.getList(Tops.TYPE_LARGE, 1, 6)); request.setAttribute("top3List", topService.getList(Tops.TYPE_SMALL, 1, 8)); return "/index/index.jsp"; } /** * 推荐列表 * @return */ @RequestMapping("/top") public String tops(int typeid, @RequestParam(required=false, defaultValue="1")int page, HttpServletRequest request) { request.setAttribute("flag", typeid==2 ? 7 : 8); request.setAttribute("typeList", typeService.getList()); request.setAttribute("goodList", goodService.getList(typeid, page, rows)); request.setAttribute("pageTool", PageUtil.getPageTool(request, goodService.getTotal(typeid), page, rows)); return "/index/goods.jsp"; } /** * 商品列表 * @return */ @RequestMapping("/goods") public String goods(int typeid, @RequestParam(required=false, defaultValue="1")int page, HttpServletRequest request){ request.setAttribute("flag", 2); if (typeid > 0) { request.setAttribute("type", typeService.get(typeid)); } request.setAttribute("typeList", typeService.getList()); request.setAttribute("goodList", goodService.getListByType(typeid, page, rows)); request.setAttribute("pageTool", PageUtil.getPageTool(request, goodService.getTotalByType(typeid), page, rows)); return "/index/goods.jsp"; } /** * 商品详情 * @return */ @RequestMapping("/detail") public String detail(int goodid, HttpServletRequest request){ request.setAttribute("good", goodService.get(goodid)); request.setAttribute("typeList", typeService.getList()); return "/index/detail.jsp"; } /** * 搜索 * @return */ @RequestMapping("/search") public String search(String name, @RequestParam(required=false, defaultValue="1")int page, HttpServletRequest request) { if (Objects.nonNull(name) && !name.trim().isEmpty()) { request.setAttribute("goodList", goodService.getListByName(name, page, rows)); request.setAttribute("pageTool", PageUtil.getPageTool(request, goodService.getTotalByName(name), page, rows)); } request.setAttribute("typeList", typeService.getList()); return "/index/goods.jsp"; } }
到此这篇关于Java毕业设计实战项目之宠物商城系统的实现流程的文章就介绍到这了,更多相关Java 宠物商城系统内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!