源码获取:博客首页 "资源" 里下载!

一、项目简述( +IW文档)

功能:本系统分用户前台和管理员后台。 本系统用例模型有三种,分别是游客、注册用户和系统管 理员。下面分别对这三个角色的功能进行描述: 1) 诞 游客是未注册的用户,他们可以浏览物物品,可以搜索物 品,如需购买物品,必须先注册成为网站用户。游客主要 功触吓: a.浏览物品 b.搜索物品 c.注册成为网站用户 2) 注册用户 注册用户是经过网站合法认证的用户,登录网站后可以浏 览物品、搜索物品、发布物品、关注物品、购买物品和查 看个人中心。 3) 系统管理员 系统管理员主要负责系统的后台管理工作,主要功能如 下: 用户管理,商品管理等等。

二、项目运行

环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe ( IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)

项目技术: JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ maven等等。

管理员控制层:

@Controller
@RequestMapping(value = "admin")
public class AdminController {private final UserService userService;private final GoodService goodService;private final TypeService typeService;private final OrderService orderService;@Autowiredpublic 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 = "用户密码错误!";
//            }if (!password .equals(admin.getPassword())){message = "用户密码错误!";} else if (admin.getRoleId() != 101){message = "用户没有权限访问!";} 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);}}

商品控制层:

@Controller
public class GoodController {private final GoodService goodService;private final TypeService typeService;private final ReviewService reviewService;private final UserService userService;private final ImageService imageService;private final CollectService collectService;private static String message = "";@Autowiredpublic GoodController(GoodService goodService, TypeService typeService,ReviewService reviewService, UserService userService,ImageService imageService, CollectService collectService) {this.goodService = goodService;this.typeService = typeService;this.reviewService = reviewService;this.userService = userService;this.imageService = imageService;this.collectService = collectService;}@RequestMapping(value = "/", method = RequestMethod.GET)public String getHomeGoods(ModelMap model,@RequestParam(required = false, defaultValue = "") String searchText,@RequestParam(required = false) Integer secondTypeId,@RequestParam(required = false, defaultValue = "0") int offset,@RequestParam(required = false, defaultValue = "40") int limit) {List<Good> goods = goodService.getGoodsBySearchAndType(searchText,secondTypeId, offset, limit);double goodsNum = goodService.getGoodsBySearchAndTypeCount(searchText,secondTypeId);List<FirstType> firstTypes = typeService.getAllFirstType();for (FirstType firstType : firstTypes) {firstType.setSecondType(typeService.getSecondTypeByFirstTypeId(firstType.getId()));}model.addAttribute("firstTypes", firstTypes);model.addAttribute("goods", goods);model.addAttribute("pages", Math.ceil(goodsNum / limit));model.addAttribute("goodsNum", goodsNum);model.addAttribute("offset", offset);model.addAttribute("limit", limit);return "home/homeGoods";}@RequestMapping(value = "/goods/goodInfo", method = RequestMethod.GET)public String getGoodInfo(ModelMap model, HttpSession httpSession,@RequestParam(required = false) Integer goodId) {Good goodInfo = goodService.getGoodById(goodId);if (goodInfo == null) {return "goods/error";}Integer collect = 1;User user = (User) httpSession.getAttribute("user");if (user == null) {collect = 0;} else {if (collectService.getCollect(goodId, user.getId())) {collect = 2;}}List<Image> images = imageService.getImageByGoodId(goodId);User goodUser = userService.getUserById(goodInfo.getUserId());goodInfo.setGoodUser(userService.getUserById(goodInfo.getUserId()));goodInfo.setGoodSecondType(typeService.getSecondTypeById(goodInfo.getSecondTypeId()));List<Review> reviews = reviewService.gerReviewByGoodId(goodId);for (Review review : reviews) {review.setReplys(reviewService.gerReplyByReviewId(review.getId()));}List<Good> goods = goodService.getRECGoods(goodInfo.getSecondTypeId(),goodInfo.getId());model.addAttribute("message", message);model.addAttribute("reviews", reviews);model.addAttribute("goodInfo", goodInfo);model.addAttribute("images", images);model.addAttribute("goodUser", goodUser);model.addAttribute("goods", goods);model.addAttribute("collect", collect);message = "";return "goods/goodInfo";}@RequestMapping(value = "/goods/goodInfo", method = RequestMethod.POST)public String putReview(@RequestParam(value = "goodId", required = false) Integer goodId,@RequestParam(value = "reviewId", required = false) Integer reviewId,@RequestParam(value = "fromUserId", required = false) Integer fromUserId,@RequestParam(value = "toUserId", required = false) Integer toUserId,@RequestParam(value = "fromUser", required = false) String fromUser,@RequestParam(value = "toUser", required = false) String toUser,@RequestParam(value = "replyText", required = false, defaultValue = "") String replyText,@RequestParam(value = "reviewText", required = false, defaultValue = "") String reviewText) {if (reviewText.equals("")) {if (replyText.equals("")) {message = "内容不能为空!";return "redirect:/goods/goodInfo?goodId=" + goodId;} else {Reply reply = new Reply();reply.setReviewId(reviewId);reply.setFromUser(fromUser);reply.setFromUserId(fromUserId);reply.setToUser(toUser);reply.setToUserId(toUserId);reply.setText(replyText);if (reviewService.insertReply(reply) == 1) {message = "回复成功!";return "redirect:/goods/goodInfo?goodId=" + goodId;} else {message = "回复失败!";return "redirect:/goods/goodInfo?goodId=" + goodId;}}} else {Review review = new Review();review.setGoodId(goodId);review.setFromUser(fromUser);review.setFromUserId(fromUserId);review.setToUserId(toUserId);review.setText(reviewText);if (reviewService.insertReview(review) == 1) {message = "评论成功!";return "redirect:/goods/goodInfo?goodId=" + goodId;} else {message = "评论失败!";return "redirect:/goods/goodInfo?goodId=" + goodId;}}}@RequestMapping(value = "/goods/publishGood", method = RequestMethod.GET)public String getPublishGood(ModelMap model, HttpSession session) {User user = (User) session.getAttribute("user");if (user == null) {return "redirect:/";}Good good = new Good();List<FirstType> firstTypes = typeService.getAllFirstType();List<Good> goods = goodService.getAllGoods(0, 5);model.addAttribute("goods", goods);model.addAttribute("good", good);model.addAttribute("firstTypes", firstTypes);return "goods/publishGood";}@RequestMapping(value = "/goods/publishGood", method = RequestMethod.POST)public String getGoodId(ModelMap model, HttpSession session,@Valid Good good) {List<FirstType> firstTypes = typeService.getAllFirstType();User user = (User) session.getAttribute("user");List<Good> goods = goodService.getAllGoods(0, 5);good.setUserId(user.getId());good.setPhotoUrl("/statics/image/goods/default/nophoto.png");if (goodService.insertGood(good) != 1) {System.out.println("插入物品失败!");}model.addAttribute("goods", goods);model.addAttribute("good", good);model.addAttribute("firstTypes", firstTypes);return "goods/publishGood";}@RequestMapping(value = "/goods/publishGood/uploadImage", method = RequestMethod.POST)public String uploadImage(HttpSession session,@RequestParam(value = "goodId", required = false) Integer goodId,@RequestParam(value = "mainFile", required = false) MultipartFile mainFile,@RequestParam(value = "file", required = false) MultipartFile[] file)throws IOException {User user = (User) session.getAttribute("user");FileCheck fileCheck = new FileCheck();RandomString randomString = new RandomString();String filePath = "/statics/image/goods/" + user.getId() + "/" + goodId;String pathRoot = fileCheck.checkGoodFolderExist(filePath);String name;if (!mainFile.isEmpty()) {String fileName = goodId + randomString.getRandomString(10);String contentType = mainFile.getContentType();String imageName = contentType.substring(contentType.indexOf("/") + 1);name = fileName + "." + imageName;mainFile.transferTo(new File(pathRoot + name));String photoUrl = filePath + "/" + name;goodService.updateGoodPhotoUrl(photoUrl, goodId);}for (MultipartFile mf : file) {if (!mf.isEmpty()) {// 生成uuid作为文件名称String fileName = goodId + randomString.getRandomString(10);// 获得文件类型(可以判断如果不是图片,禁止上传)String contentType = mf.getContentType();// 获得文件后缀名称String imageName = contentType.substring(contentType.indexOf("/") + 1);name = fileName + "." + imageName;System.out.println("name:" + name);mf.transferTo(new File(pathRoot + name));Image image = new Image();image.setGoodId(goodId);image.setName(name);image.setUrl(filePath + "/" + name);imageService.insertImage(image);} else {System.out.println("文件为空!");}}return "redirect:/goods/goodInfo?goodId=" + goodId;}@RequestMapping(value = "/goods/userGoods", method = RequestMethod.GET)public String getUserGoods(ModelMap model,@RequestParam(value = "userId", required = false) Integer userId) {User user = userService.getUserById(userId);List<Good> userGoods = goodService.getGoodStatusByUserId(userId);List<Good> goods = goodService.getAllGoods(0, 4);model.addAttribute("user", user);model.addAttribute("userGoods", userGoods);model.addAttribute("goods", goods);return "goods/userGood";}@RequestMapping(value = "/goods/userGoodEdit", method = RequestMethod.GET)public String getUserGoodEdit(ModelMap model,@RequestParam(value = "goodId", required = false) Integer goodId,HttpSession session) {User user = (User) session.getAttribute("user");if (user == null) {return "redirect:/";}Good good = goodService.getGoodById(goodId);List<FirstType> firstTypes = typeService.getAllFirstType();List<Good> goods = goodService.getAllGoods(0, 5);List<Image> goodImages = imageService.getImageByGoodId(goodId);model.addAttribute("goods", goods);model.addAttribute("good", good);model.addAttribute("goodImages", goodImages);model.addAttribute("firstTypes", firstTypes);return "goods/userGoodEdit";}@RequestMapping(value = "/goods/userGoodEdit", method = RequestMethod.POST)public String postGoodEdit(ModelMap model, HttpSession session,@Valid Good good) {List<FirstType> firstTypes = typeService.getAllFirstType();User user = (User) session.getAttribute("user");if (user == null) {return "redirect:/";}List<Good> goods = goodService.getAllGoods(0, 5);if (!(goodService.updateGood(good) > 0)) {System.out.println("修改物品失败!");}List<Image> goodImages = imageService.getImageByGoodId(good.getId());model.addAttribute("goods", goods);model.addAttribute("good", good);model.addAttribute("goodImages", goodImages);model.addAttribute("firstTypes", firstTypes);return "goods/userGoodEdit";}@RequestMapping(value = "/goods/userGoodEdit/updateImage", method = RequestMethod.POST)public String updateImage(HttpSession session,@RequestParam(value = "goodId", required = false) Integer goodId,@RequestParam(value = "mainFile", required = false) MultipartFile mainFile,@RequestParam(value = "file", required = false) MultipartFile[] file)throws IOException {User user = (User) session.getAttribute("user");FileCheck fileCheck = new FileCheck();imageService.deleteImage(goodId);RandomString randomString = new RandomString();String filePath = "/statics/image/goods/" + user.getId() + "/" + goodId;String pathRoot = fileCheck.checkGoodFolderExist(filePath);String name;if (!mainFile.isEmpty()) {String contentType = mainFile.getContentType();String fileName = goodId + randomString.getRandomString(10);String imageName = contentType.substring(contentType.indexOf("/") + 1);name = fileName + "." + imageName;mainFile.transferTo(new File(pathRoot + name));String photoUrl = filePath + "/" + name;goodService.updateGoodPhotoUrl(photoUrl, goodId);}for (MultipartFile mf : file) {if (!mf.isEmpty()) {String contentType = mf.getContentType();String fileName = goodId + randomString.getRandomString(10);String imageName = contentType.substring(contentType.indexOf("/") + 1);name = fileName + "." + imageName;System.out.println("name:" + name);mf.transferTo(new File(pathRoot + name));Image image = new Image();image.setGoodId(goodId);image.setName(name);image.setUrl(filePath + "/" + name);imageService.insertImage(image);}}return "redirect:/goods/goodInfo?goodId=" + goodId;}@RequestMapping(value = "/goods/userGoodEdit/delete/{goodId}", method = RequestMethod.GET)public ResponseEntity deleteGood(@PathVariable Integer goodId) {Boolean success;success = goodService.deleteGood(goodId) > 0;return ResponseEntity.ok(success);}@RequestMapping(value = "/goods/userGoodEdit/updateGoodStatus/{goodId}", method = RequestMethod.GET)public ResponseEntity updateGoodStatus(@PathVariable Integer goodId) {Boolean success;success = goodService.updateGoodStatusId(0, goodId) > 0;return ResponseEntity.ok(success);}@RequestMapping(value = "/admin/goods/allGoods", method = RequestMethod.GET)public ResponseEntity adminGetAllGoods() {List<Good> goodList = goodService.getAllGoodList();for (Good good : goodList) {good.setGoodUser(userService.getUserById(good.getUserId()));good.setGoodSecondType(typeService.getSecondTypeById(good.getSecondTypeId()));}return ResponseEntity.ok(goodList);}
}

订单控制层:

@Controller
public class OrderController {private final GoodService goodService;private final OrderService orderService;@Autowiredpublic 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);}
}

源码获取:博客首页 "资源" 里下载!

Java项目:校园二手市场系统(java+SSM+mysql+maven+tomcat)相关推荐

  1. Java项目:校园招聘平台系统(java+MySQL+Jdbc+Servlet+SpringMvc+Jsp)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 功能: 用户和企业用户的注册登录,简历的筛选查看搜索,应聘信息互动等等. 二.项目运行 环境配置: Jdk1.8 + Tomc ...

  2. 基于ssm校园二手商城系统Java毕业设计课程设计大作业

    尽微薄之力,为你提供点点帮助.一名Java开发多年的老程序猿,喜欢研究代码,有不懂的地方可以咨询.源码.定制化开发.代码讲解.文档撰写.ppt制作都行. 校园二手商城系统包括两大模块:前台用户模块和后 ...

  3. 基于java的校园二手平台系统毕业设计(项目报告+答辩PPT+源代码+数据库+截图+部署视频)

    以下是一个基于Java的校园二手平台系统的毕业设计建议: 1. 系统概述: 校园二手平台系统是一个用于学生之间进行二手物品交易的应用程序.通过该系统,学生可以方便地发布和浏览二手物品的信息,并进行交流 ...

  4. 基于javaweb的精品酒店管理系统(java+SSM+mysql+maven+tomcat)

    基于javaweb的精品酒店管理系统(java+SSM+mysql+maven+tomcat) 一.项目简述 功能:主要功能主要功能会员管理,住客管理,房间管 理,系统管理,以及一些重要数据的展示导出 ...

  5. 校园二手市场交易平台(JAVA,SSM,BOOTSTRAP,JSP,AJAX,MYSQL)

    今天,我们发布一套[校园二手市场交易],系统使用技术包含JAVA,SSM,BOOTSTRAP,JSP,AJAX,MYSQL,这套系统后台框架使用SSM,前台框架为BOOTSTRAP,数据库使用MySq ...

  6. ssm+java校园二手市场系统22tlf(程序+lw+源码+远程部署)

    项目运行 项目含有源码(见文末).文档.程序.数据库.配套开发软件.软件安装教程 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ E ...

  7. 基于JAVA+SpringMVC+Mybatis+MYSQL的校园二手市场系统

    项目功能: 校园二手物品交易系统需要具备前台功能和后台功能,其中,前台功能实现以下功能,用户注册.用户登录.物品推荐.物品分类.物品搜索.物品发布.物品详情.物品求购.我的主页.系统后台功能实现以下功 ...

  8. Java项目:个人博客系统(java+SSM+Mysql+Servlet+JavaWeb)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 项目内容包括:首页,登陆,新建文章,搜索,登陆日志,登录次数,评论统计,相关信息,文章列表等其他相关功能 另外:系统采用MVC ...

  9. Java项目:学生综合素质评价系统(java+SSM+thymeleaf+layui+Mysql)

    源码获取:俺的博客首页 "资源" 里下载! 项目介绍 基于SSM的学生综合素质评价系统设计与实现,系统共分三种角色,包括管理员.教师.学生: 管理员主要功能包括: 权限中心:用户组 ...

最新文章

  1. 基于TransformerFusion的单目场景重构
  2. Aps.Net WebApi依赖注入
  3. Mybatis中的模糊查询
  4. 请描述一下 cookies,sessionStorage 和 localStorage 的区别?
  5. Pandas之:深入理解Pandas的数据结构
  6. 在计算机技术方面用英语怎么说,“计算机应用技术”用英语怎么说?
  7. 多家防火墙设备存在信息泄露漏洞
  8. ajax常见特效,用ajax实现正在载入的特效-Ajax编程
  9. tensorflow项目构建流程
  10. 图:乐清市首届民工艺术节闭幕式暨才艺表演决赛圆满结束_渤锐软件提供了【评委打分公开展示】技术支持
  11. Cocos2d-x下Lua调用自定义C++类和函数的最佳实践[转]
  12. 数据结构与算法 c语言6,C语言程序设计题库之6.doc
  13. ios手机怎么连接adb命令_Mac连接Adb
  14. Http GET 请求参数中文乱码
  15. bleeding edge是什么意思
  16. 网络安全-古典加密算法之置换密码加解密算法
  17. rabbit原理及项目应用
  18. 职场社交沟通必读图书排行榜
  19. 云服务器有token_配置node服务器并且链接微信公众号接口配置
  20. 亚马逊多账号怎么管理|亚马逊账号关联

热门文章

  1. 在CentOS 6.9 x86_64的nginx 1.12.2上开启标准模块ngx_http_auth_request_module实录
  2. Vyond制作2D动画学习教程
  3. ceph admin socket修改ceph配置文件
  4. tp5实现Redis的简单使用
  5. 在vue中使用Element-UI
  6. c++ stack 的使用
  7. C#按关闭按钮实现最小化,按ESC才关闭的实现【含系统消息大全】
  8. mogileFS 分布式存储-安装手记
  9. C#中switch语句注意
  10. 路径,文件,目录,I/O常见操作汇总