Java畢業(yè)設計實戰(zhàn)項目之寵物商城系統(tǒng)的實現(xiàn)流程
一、項目運行
環(huán)境配置:
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"; } /** * 訂單發(fā)貨 * * @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; } /** * 產(chǎn)品列表 * * @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"; } /** * 產(chǎn)品添加 * * @return */ @RequestMapping("/goodAdd") public String goodAdd(HttpServletRequest request) { request.setAttribute("flag", 3); request.setAttribute("typeList", typeService.getList()); return "/admin/good_add.jsp"; } /** * 產(chǎn)品添加 * * @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; } /** * 產(chǎn)品更新 * * @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"; } /** * 產(chǎn)品更新 * * @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; } /** * 產(chǎn)品刪除 * * @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"; // 注冊成功后轉(zhuǎn)去登錄 } } /** * 用戶登錄 * @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()+"] 庫存不足! 當前庫存數(shù)量: "+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); // 更新數(shù)據(jù)庫 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); // 更新數(shù)據(jù)庫 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; // 默認每頁數(shù)量 @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畢業(yè)設計實戰(zhàn)項目之寵物商城系統(tǒng)的實現(xiàn)流程的文章就介紹到這了,更多相關Java 寵物商城系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- Java畢業(yè)設計實戰(zhàn)項目之在線服裝銷售商城系統(tǒng)的實現(xiàn)流程
- Java畢業(yè)設計實戰(zhàn)項目之倉庫管理系統(tǒng)的實現(xiàn)流程
- Java實戰(zhàn)項目之校園跑腿管理系統(tǒng)的實現(xiàn)
- Java實戰(zhàn)項目練習之球館在線預約系統(tǒng)的實現(xiàn)
- Java?實戰(zhàn)項目之家政服務平臺系統(tǒng)的實現(xiàn)流程
- Java?實戰(zhàn)項目之學生信息管理系統(tǒng)的實現(xiàn)流程
- Java 實戰(zhàn)項目之畢業(yè)設計管理系統(tǒng)的實現(xiàn)流程
- Java實例項目零錢通的實現(xiàn)流程
相關文章
springboot自定義starter啟動器的具體使用實踐
本文主要介紹了springboot自定義starter啟動器的具體使用實踐,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09使用java基礎類實現(xiàn)zip壓縮和zip解壓工具類分享
使用java基礎類寫的一個簡單的zip壓縮解壓工具類,實現(xiàn)了指定目錄壓縮到和該目錄同名的zip文件和將zip文件解壓到指定的目錄的功能2014-03-03淺談web服務器項目中request請求和response的相關響應處理
這篇文章主要介紹了淺談web服務器項目中request請求和response的相關響應處理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-07-07