Java?實(shí)戰(zhàn)范例之校園二手市場(chǎng)系統(tǒng)的實(shí)現(xiàn)
一、項(xiàng)目簡(jiǎn)述( +IW文檔)
功能:本系統(tǒng)分用戶前臺(tái)和管理員后臺(tái)。 本系統(tǒng)用例模型有三種,分別是游客、注冊(cè)用戶和系統(tǒng)管 理員。下面分別對(duì)這三個(gè)角色的功能進(jìn)行描述: 1) 誕 游客是未注冊(cè)的用戶,他們可以瀏覽物物品,可以搜索物 品,如需購(gòu)買物品,必須先注冊(cè)成為網(wǎng)站用戶。游客主要 功觸嚇: a.瀏覽物品 b.搜索物品 c.注冊(cè)成為網(wǎng)站用戶 2) 注冊(cè)用戶 注冊(cè)用戶是經(jīng)過(guò)網(wǎng)站合法認(rèn)證的用戶,登錄網(wǎng)站后可以瀏 覽物品、搜索物品、發(fā)布物品、關(guān)注物品、購(gòu)買物品和查 看個(gè)人中心。 3) 系統(tǒng)管理員 系統(tǒng)管理員主要負(fù)責(zé)系統(tǒng)的后臺(tái)管理工作,主要功能如 下: 用戶管理,商品管理等等。
二、項(xiàng)目運(yùn)行
環(huán)境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe ( IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)
項(xiàng)目技術(shù): JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ maven等等。
用戶信息管理控制器:
@Controller @RequestMapping(value = "user") public class UserController { private final GoodService goodService; private final OrderService orderService; private final ReviewService reviewService; private final UserService userService; private final CollectService collectService; @Autowired public UserController(GoodService goodService, OrderService orderService, ReviewService reviewService, UserService userService, CollectService collectService) { this.goodService = goodService; this.orderService = orderService; this.reviewService = reviewService; this.userService = userService; this.collectService = collectService; } @RequestMapping(value = "userProfile", method = RequestMethod.GET) public String getMyProfile(ModelMap model, HttpSession session) { User user = (User) session.getAttribute("user"); if (user == null) { return "redirect:/"; } List<Collect> collects = collectService .getCollectByUserId(user.getId()); for (Collect collect : collects) { collect.setGood(goodService.getGoodById(collect.getGoodId())); } List<Good> goods = goodService.getGoodByUserId(user.getId()); List<Order> orders = orderService.getOrderByCustomerId(user.getId()); List<Review> reviews = reviewService.gerReviewByToUserId(user.getId()); List<Reply> replies = reviewService.gerReplyByToUserId(user.getId()); List<Order> sellGoods = orderService.getOrderBySellerId(user.getId()); model.addAttribute("collects", collects); model.addAttribute("goods", goods); model.addAttribute("orders", orders); model.addAttribute("reviews", reviews); model.addAttribute("replies", replies); model.addAttribute("sellGoods", sellGoods); return "user/userProfile"; } @RequestMapping(value = "/review", method = RequestMethod.GET) public String getReviewInfo(@RequestParam(required = false) Integer goodId, @RequestParam(required = false) Integer reviewId) { System.out.println("reviewId" + reviewId); if (reviewId != null) { System.out.println("reviewId" + reviewId); if (reviewService.updateReviewStatus(1, reviewId) == 1) { return "redirect:/goods/goodInfo?goodId=" + goodId; } } return "redirect:/user/userProfile"; } @RequestMapping(value = "/reply", method = RequestMethod.GET) public String getReplyInfo( @RequestParam(required = false) Integer reviewId, @RequestParam(required = false) Integer replyId) { if (replyId != null) { if (reviewService.updateReplyStatus(1, replyId) == 1) { Integer goodId = reviewService.getGoodIdByReviewId(reviewId); return "redirect:/goods/goodInfo?goodId=" + goodId; } } return "redirect:/user/userProfile"; } @RequestMapping(value = "/userEdit", method = RequestMethod.GET) public String getUserEdit(ModelMap model, @RequestParam(value = "userId", required = false) Integer userId, HttpSession session) { User sessionUser = (User) session.getAttribute("user"); if (sessionUser == null) { return "redirect:/"; } User user = userService.getUserById(userId); List<Order> sellGoods = orderService.getOrderBySellerId(user.getId()); List<Review> reviews = reviewService.gerReviewByToUserId(user.getId()); List<Reply> replies = reviewService.gerReplyByToUserId(user.getId()); model.addAttribute("user", user); model.addAttribute("sellGoods", sellGoods); model.addAttribute("reviews", reviews); model.addAttribute("replies", replies); return "user/userEdit"; } @RequestMapping(value = "/userEdit", method = RequestMethod.POST) public String postUserEdit(ModelMap model, @Valid User user, HttpSession session, @RequestParam(value = "photo", required = false) MultipartFile photo) throws IOException { String status; Boolean insertSuccess; User sessionUser = (User) session.getAttribute("user"); user.setId(sessionUser.getId()); InfoCheck infoCheck = new InfoCheck(); if (!infoCheck.isMobile(user.getMobile())) { status = "請(qǐng)輸入正確的手機(jī)號(hào)!"; } else if (!infoCheck.isEmail(user.getEmail())) { status = "請(qǐng)輸入正確的郵箱!"; } else if (userService.getUserByMobile(user.getMobile()).getId() != user .getId()) { System.out.println(userService.getUserByMobile(user.getMobile()) .getId() + " " + user.getId()); status = "此手機(jī)號(hào)碼已使用!"; } else if (userService.getUserByEmail(user.getEmail()).getId() != user .getId()) { status = "此郵箱已使用!"; } else { if (!photo.isEmpty()) { RandomString randomString = new RandomString(); FileCheck fileCheck = new FileCheck(); String filePath = "/statics/image/photos/" + user.getId(); String pathRoot = fileCheck.checkGoodFolderExist(filePath); String fileName = user.getId() + randomString.getRandomString(10); String contentType = photo.getContentType(); String imageName = contentType.substring(contentType .indexOf("/") + 1); String name = fileName + "." + imageName; photo.transferTo(new File(pathRoot + name)); String photoUrl = filePath + "/" + name; user.setPhotoUrl(photoUrl); } else { String photoUrl = userService.getUserById(user.getId()) .getPhotoUrl(); user.setPhotoUrl(photoUrl); } insertSuccess = userService.updateUser(user); if (insertSuccess) { session.removeAttribute("user"); session.setAttribute("user", user); return "redirect:/user/userProfile"; } else { status = "修改失?。?; model.addAttribute("user", user); model.addAttribute("status", status); return "user/userEdit"; } } System.out.println(user.getMobile()); System.out.println(status); model.addAttribute("user", user); model.addAttribute("status", status); return "user/userEdit"; } @RequestMapping(value = "/password/edit", method = RequestMethod.POST) public ResponseEntity editPassword(@RequestBody Password password) { User user = userService.getUserById(password.getUserId()); String oldPass = DigestUtils .md5DigestAsHex((password.getOldPassword() + user.getCode()) .getBytes()); if (oldPass.equals(user.getPassword())) { RandomString randomString = new RandomString(); String code = (randomString.getRandomString(5)); String md5Pass = DigestUtils.md5DigestAsHex((password .getNewPassword() + code).getBytes()); Boolean success = userService.updatePassword(md5Pass, code, password.getUserId()); if (success) { return ResponseEntity.ok(true); } else { return ResponseEntity.ok("密碼修改失?。?); } } else { return ResponseEntity.ok("原密碼輸入不正確!"); } } }
訂單控制器:
@Controller public class OrderController { private final GoodService goodService; private final OrderService orderService; @Autowired public OrderController(GoodService goodService, OrderService orderService) { this.goodService = goodService; this.orderService = orderService; } @RequestMapping(value = "/user/orderInfo", method = RequestMethod.GET) public String getOrderInfo(ModelMap model, @RequestParam(value = "orderId", required = false) Integer orderId, HttpSession session) { User sessionUser = (User) session.getAttribute("user"); if (sessionUser == null) { return "redirect:/"; } Order orderInfo = orderService.getOrderById(orderId); List<Order> orders = orderService.getOtherOrderByCustomerId( sessionUser.getId(), orderId); model.addAttribute("orderInfo", orderInfo); model.addAttribute("orders", orders); return "user/orderInfo"; } @RequestMapping(value = "/user/sellerInfo", method = RequestMethod.GET) public String getSellerInfo(ModelMap model, @RequestParam(value = "orderId", required = false) Integer orderId, HttpSession session) { User sessionUser = (User) session.getAttribute("user"); if (sessionUser == null) { return "redirect:/"; } Order orderInfo = orderService.getOrderById(orderId); List<Order> orders = orderService.getOtherOrderBySellerId( sessionUser.getId(), orderId); model.addAttribute("orderInfo", orderInfo); model.addAttribute("orders", orders); System.out.println("sellerInfo.size:" + orders.size()); return "user/sellerInfo"; } @RequestMapping(value = "/user/order/delete/{orderId}", method = RequestMethod.GET) public ResponseEntity deleteOrderById(@PathVariable Integer orderId) { Boolean success; success = orderService.deleteOrderById(orderId) > 0; return ResponseEntity.ok(success); } @RequestMapping(value = "/user/sellerOrder/delete/{orderId}&{goodId}", method = RequestMethod.GET) public ResponseEntity deleteSellerOrderById(@PathVariable Integer orderId, @PathVariable Integer goodId) { Boolean success; success = goodService.updateGoodStatusId(1, goodId) > 0; if (success) { success = orderService.deleteOrderById(orderId) > 0; } return ResponseEntity.ok(success); } @RequestMapping(value = "/user/order/update/status/{orderId}&{statusId}", method = RequestMethod.GET) public ResponseEntity updateOrderStatus(@PathVariable Integer orderId, @PathVariable Integer statusId) { Boolean success = orderService.updateStatus(statusId, orderId) > 0; if (success) { Order order = orderService.getOrderById(orderId); return ResponseEntity.ok(order); } return ResponseEntity.ok(success); } @RequestMapping(value = "/user/order/create", method = RequestMethod.POST) public ResponseEntity createOrder(@RequestBody Order order) { Boolean success = orderService.insertOrder(order) > 0; if (success) { success = goodService.updateGoodStatusId(0, order.getGoodId()) > 0; if (success) { return ResponseEntity.ok(order.getId()); } else { orderService.deleteOrderById(order.getId()); return ResponseEntity.ok(success); } } return ResponseEntity.ok(success); } @RequestMapping(value = "/user/order/allOrder", method = RequestMethod.GET) public ResponseEntity getAllOrders() { List<Order> orderList = orderService.getOrderList(); return ResponseEntity.ok(orderList); } }
后臺(tái)用戶管理控制器:
@Controller @RequestMapping(value = "admin") public class AdminController { private final UserService userService; private final GoodService goodService; private final TypeService typeService; private final OrderService orderService; @Autowired public AdminController(UserService userService, GoodService goodService, TypeService typeService, OrderService orderService) { this.userService = userService; this.goodService = goodService; this.typeService = typeService; this.orderService = orderService; } @RequestMapping(value = "/adminLogin", method = RequestMethod.GET) public String getAdminLogin(){ return "admin/adminLogin"; } @RequestMapping(value = "/adminLogin", method = RequestMethod.POST) public String postAdminLogin(ModelMap model, @RequestParam(value = "email", required = false) String email, @RequestParam(value = "password", required = false) String password, HttpSession session) { User admin = userService.getUserByEmail(email); String message; if (admin != null){ String mdsPass = DigestUtils.md5DigestAsHex((password + admin.getCode()).getBytes()); // if (!mdsPass .equals(admin.getPassword())){ // message = "用戶密碼錯(cuò)誤!"; // } if (!password .equals(admin.getPassword())){ message = "用戶密碼錯(cuò)誤!"; } else if (admin.getRoleId() != 101){ message = "用戶沒(méi)有權(quán)限訪問(wèn)!"; } else { session.setAttribute("admin",admin); return "redirect:/admin/adminPage"; } } else { message = "用戶不存在!"; } model.addAttribute("message", message); return "admin/adminLogin"; } @RequestMapping(value = "/adminLogout", method = RequestMethod.GET) public String adminLogout(@RequestParam(required = false, defaultValue = "false" )String adminLogout, HttpSession session){ if (adminLogout.equals("true")){ session.removeAttribute("admin"); } // adminLogout = "false"; return "redirect:/"; } @RequestMapping(value = "/adminPage", method = RequestMethod.GET) public String getAdminPage(ModelMap model, HttpSession session){ User admin = (User) session.getAttribute("admin"); if (admin == null){ return "redirect:/admin/adminLogin"; } List<Good> goodList = goodService.getAllGoodList(); for (Good good : goodList) { good.setGoodUser(userService.getUserById(good.getUserId())); good.setGoodSecondType(typeService.getSecondTypeById(good.getSecondTypeId())); } List<User> userList = userService.getAllUser(); List<FirstType> firstTypeList = typeService.getAllFirstType(); List<Order> orderList = orderService.getOrderList(); model.addAttribute("goodList", goodList); model.addAttribute("userList", userList); model.addAttribute("firstTypeList", firstTypeList); model.addAttribute("orderList", orderList); return "admin/adminPage"; } @RequestMapping(value = "/user/update/status/{statusId}&{userId}", method = RequestMethod.GET) public ResponseEntity updateUserStatus(@PathVariable Integer statusId, @PathVariable Integer userId){ Boolean success = userService.updateUserStatus(statusId, userId); if (success){ List<User> userList = userService.getAllUser(); return ResponseEntity.ok(userList); } return ResponseEntity.ok(success); } @RequestMapping(value = "/user/delete/{userId}", method = RequestMethod.GET) public ResponseEntity deleteUser(@PathVariable Integer userId){ Boolean success = userService.deleteUser(userId); if (success){ List<User> userList = userService.getAllUser(); return ResponseEntity.ok(userList); } return ResponseEntity.ok(success); } }
到此這篇關(guān)于Java?實(shí)戰(zhàn)范例之校園二手市場(chǎng)系統(tǒng)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Java?二手市場(chǎng)系統(tǒng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)之校園一卡通系統(tǒng)的實(shí)現(xiàn)
- Java實(shí)戰(zhàn)項(xiàng)目之校園跑腿管理系統(tǒng)的實(shí)現(xiàn)
- Java 實(shí)戰(zhàn)練手項(xiàng)目之校園超市管理系統(tǒng)的實(shí)現(xiàn)流程
- Java 實(shí)戰(zhàn)項(xiàng)目錘煉之校園宿舍管理系統(tǒng)的實(shí)現(xiàn)流程
- Java實(shí)現(xiàn)的具有GUI的校園導(dǎo)航系統(tǒng)的完整代碼
- JavaWeb開發(fā)基于ssm的校園服務(wù)系統(tǒng)(實(shí)例詳解)
- Java模擬HTTP Get Post請(qǐng)求 輕松實(shí)現(xiàn)校園BBS自動(dòng)回帖
- Java基于Dijkstra算法實(shí)現(xiàn)校園導(dǎo)游程序
相關(guān)文章
Spring Boot 中的任務(wù)執(zhí)行器基本概念及使用方法
務(wù)執(zhí)行器是 Spring Boot 中的一個(gè)非常實(shí)用的模塊,它可以簡(jiǎn)化異步任務(wù)的開發(fā)和管理,在本文中,我們介紹了任務(wù)執(zhí)行器的基本概念和使用方法,以及一個(gè)完整的示例代碼,需要的朋友可以參考下2023-07-07Spring Boot 2.7.6整合redis與低版本的區(qū)別
這篇文章主要介紹了Spring Boot 2.7.6整合redis與低版本的區(qū)別,文中補(bǔ)充介紹了SpringBoot各個(gè)版本使用Redis之間的區(qū)別實(shí)例講解,需要的朋友可以參考下2023-02-02通過(guò)一個(gè)map替換字符串中指定的字符變量方法
下面小編就為大家?guī)?lái)一篇通過(guò)一個(gè)map替換字符串中指定的字符變量方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03Java設(shè)計(jì)模式初識(shí)之備忘錄模式詳解
備忘錄設(shè)計(jì)模式(Memento Design Pattern)也叫作快照(Snapshot)模式,主要用于實(shí)現(xiàn)防丟失、撤銷、恢復(fù)等功能。本文將通過(guò)示例為大家介紹一些備忘錄模式的定義與使用,需要的可以參考一下2022-11-11Springboot集成graylog及配置過(guò)程解析
這篇文章主要介紹了Springboot集成graylog及配置過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12SpringCloud Zuul自定義filter代碼實(shí)例
這篇文章主要介紹了SpringCloud Zuul自定義filter代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04ByteArrayOutputStream與InputStream互相轉(zhuǎn)換方式
這篇文章主要介紹了ByteArrayOutputStream與InputStream互相轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12springboot tomcat的maxHttpFormPostSize參數(shù)示例解析
這篇文章主要介紹了springboot tomcat的maxHttpFormPostSize參數(shù)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08