• 基于springboot的校园二手网站


    博主主页猫头鹰源码

    博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战

    主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询

    文末联系获取

    项目介绍: 

    该系统基于springboot技术,数据层为MyBatis,mysql数据库,页面采用html,具有完整的业务逻辑,适合选题:springboot、校园、二手、校园二手、二手网站等。

    项目功能:

    系统功能分为用户使用功能和系统管理功能,用户的使用功能包含用户浏览物品、登录、注册、搜索物品、查看个人发布物品、加入购物车、联系卖家、评论商品等;系统管理包括系统设置、商品设置、学生管理、评价管理等。

    搜索物品:用户可以根据自己的需求通过关键字进行模糊查询,系统会根据用户的搜索将商品信息展示出来。

    查看发布信息:用户登录系统后,可以查看自己已经发布的所有物品的详细信息。

    加入购物车:用户登陆系统后,可以将自己感兴趣的物品加入到购物车中。

    联系卖家:用户登录系统后,可以与商品的卖家取得联系,点击“联系卖家”系统会将卖家的联系方式展示给用户。

    评论商品:用户登录系统后,可以对商品进行个人的评论。

    系统设置:管理员进入到后台管理系统后可以对菜单、角色、用户、日志等系统信息进行管理。

    商品设置:管理员进入后台管理系统后,可以对商品分类、商品信息等进行相应的管理操作。

    学生管理:管理员进入后台管理系统后,可以查看系统中所有学生的基本信息,并且可以做出相应的管理。

    评论管理:管理员进入后台管理系统后,可以查看系统所有物品的评论信息,并且可以对评论做出相关的操作。

    用户拥有浏览、登录、注册、搜索物品、发布物品、查看个人发布物品、加入购物车、购买商品、联系卖家、评论商品、查看个人资料等功能;系统管理包括系统设置、商品设置、学生管理、评论管理等。

    系统包含技术:

    后端:springBoot、mybatis
    前端:bootstrap、js、css等,html页面
    开发工具:idea
    数据库:mysql 5.7
    JDK版本:jdk1.8

    部分截图说明:

    下面是登录页面

    首页

    分类查看商品详情

    商品详情

    个人中心查看

    购物车查看

    后台首页

     后台对用户进行维护

     后台对商品进行维护

     后台对菜单进行管理

     后台可以查看评论列表

    部分代码:

    拦截器

    1. @Override
    2. public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    3. String requestURI = request.getRequestURI();
    4. User user =(User)request.getSession().getAttribute(SessionConstant.USER_SESSION);
    5. if(StringUtils.isEmpty(user)){
    6. logger.info("用户还未登录或者session失效,重定向到登录页面,拦截当前的URL=" + requestURI);
    7. if(StringUtil.isAjax(request)){
    8. response.setCharacterEncoding("UTF-8");
    9. response.getWriter().write(JSON.toJSONString(CodeMsg.USER_SESSION_EXPIRED));
    10. }
    11. response.sendRedirect("/system/login");
    12. return false;
    13. }
    14. logger.info("当前URL["+requestURI+"]没有被拦截");
    15. if(!StringUtil.isAjax(request)){
    16. List<Menu> menus = roleService.selectMenuByRole(user.getRole());
    17. request.setAttribute("siteName", titleConfig.getSysName());
    18. request.setAttribute("userTopMenus", MenuUtil.getTopMenus(menus));
    19. List<Menu> secondMenus = MenuUtil.getSecondMenus(menus);
    20. request.setAttribute("userSecondMenus", secondMenus);
    21. request.setAttribute("userThirdMenus", MenuUtil.getChildren(MenuUtil.getMenuIdByUrl(requestURI, secondMenus), MenuUtil.getThirdMenus(menus)));
    22. }
    23. return true;
    24. }

    首页操作代码

    1. @RequestMapping("index")
    2. public String index(Model model, PageResult pageResult, @RequestParam(value = "name",required = false,defaultValue = "") String name){
    3. pageResult.setPageSize(12);
    4. PageResult goodList = goodService.selectPage(pageResult, name);
    5. model.addAttribute("pageResult",goodList );
    6. model.addAttribute("name",name );
    7. model.addAttribute("newsList", newsService.selectPage(pageResult, null).getContent());
    8. return "/home/index/index";
    9. }
    10. @GetMapping("news_detail")
    11. public String newDetail(Model model,@RequestParam("id")Integer id){
    12. News news = newsService.selectNewsById(id);
    13. model.addAttribute("news",news );
    14. return "home/index/news_detail";
    15. }
    16. @RequestMapping("login")
    17. public String login(){
    18. return "/home/index/login";
    19. }
    20. @PostMapping("check_sno")
    21. @ResponseBody
    22. public Result<Boolean> check_sno(Student student){
    23. return Result.success(StringUtils.isEmpty(studentService.selectStudent(student)));
    24. }
    25. @PostMapping("register")
    26. @ResponseBody
    27. public Result<Boolean> register(Student student, HttpSession session){
    28. CodeMsg validata = ValidataUtil.validata(student);
    29. if(validata.getCode()!= CodeMsg.SUCCESS.getCode()){
    30. return Result.exception(validata);
    31. }
    32. if(!StringUtils.isEmpty(studentService.selectStudent(student))){
    33. return Result.exception(CodeMsg.HOME_STUDENT_SN_NO_EXIST);
    34. }
    35. studentService.saveStuent(student);
    36. if(StringUtils.isEmpty(student)){
    37. return Result.exception(CodeMsg.HOME_STUDENT_REGISTER_ERROR);
    38. }
    39. session.setAttribute(SessionConstant.STUDENT_SESSION, student);
    40. return Result.success(true);
    41. }
    42. @PostMapping("login")
    43. @ResponseBody
    44. public Result<Boolean> login(Student student,HttpSession session){
    45. Student student1 = studentService.selectStudent(student);
    46. if(StringUtils.isEmpty(student1)){
    47. return Result.exception(CodeMsg.HOME_STUDENT_SN_NO_EXIST);
    48. }
    49. if(!student1.getPassword().equals(student.getPassword())){
    50. return Result.exception(CodeMsg.HOME_STUDENT_PASSWORD_ERROR);
    51. }
    52. if(student1.getStatus() !=Student.STUDENT_STATUS_ENABLE ){
    53. return Result.exception(CodeMsg.HOME_STUDENT_UNABLE);
    54. }
    55. session.setAttribute(SessionConstant.STUDENT_SESSION,student1 );
    56. return Result.success(true);
    57. }
    58. @GetMapping("logout")
    59. public String logout(HttpSession session){
    60. session.removeAttribute(SessionConstant.STUDENT_SESSION);
    61. return "redirect:index";
    62. }

    以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。

    好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

  • 相关阅读:
    业务架构·应用架构·数据架构实战~业务驱动的数据架构设计
    一分钟导入所有快递单号查询的方法
    [附源码]java毕业设计大学生就业信息检索系统
    Git 详细安装教程(详解 Git 安装过程的每一个步骤)
    计算机毕业设计springboot基于SpringBoot的窈窕之求食单平台的设计与实现9u8k6源码+系统+程序+lw文档+部署
    使用ant-design-vue实现换肤功能
    网络学习:邻居发现协议NDP
    mysql多启动
    怎么优化Web网站性能
    java基于ssm+vue+elementui的足球联赛会报名系统
  • 原文地址:https://blog.csdn.net/mtyedu/article/details/127503806