基于springboot的校园二手网站

时间:2022-10-25 22:55:53

博主主页猫头鹰源码

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

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

文末联系获取

项目介绍: 

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

项目功能:

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

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

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

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

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

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

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

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

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

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

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

基于springboot的校园二手网站

系统包含技术:

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

部分截图说明:

下面是登录页面

基于springboot的校园二手网站

首页

基于springboot的校园二手网站

分类查看商品详情

基于springboot的校园二手网站

商品详情

基于springboot的校园二手网站

个人中心查看

基于springboot的校园二手网站

购物车查看

基于springboot的校园二手网站

后台首页

基于springboot的校园二手网站

 后台对用户进行维护

基于springboot的校园二手网站

 后台对商品进行维护

基于springboot的校园二手网站

 后台对菜单进行管理

基于springboot的校园二手网站

 后台可以查看评论列表

基于springboot的校园二手网站

部分代码:

拦截器

 @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        String requestURI = request.getRequestURI();
        User user  =(User)request.getSession().getAttribute(SessionConstant.USER_SESSION);
        if(StringUtils.isEmpty(user)){
            logger.info("用户还未登录或者session失效,重定向到登录页面,拦截当前的URL=" + requestURI);
            if(StringUtil.isAjax(request)){
                response.setCharacterEncoding("UTF-8");
                response.getWriter().write(JSON.toJSONString(CodeMsg.USER_SESSION_EXPIRED));
            }
            response.sendRedirect("/system/login");
            return false;
        }


        logger.info("当前URL["+requestURI+"]没有被拦截");
        if(!StringUtil.isAjax(request)){
            List<Menu> menus = roleService.selectMenuByRole(user.getRole());
            request.setAttribute("siteName", titleConfig.getSysName());
            request.setAttribute("userTopMenus", MenuUtil.getTopMenus(menus));
            List<Menu> secondMenus = MenuUtil.getSecondMenus(menus);
            request.setAttribute("userSecondMenus", secondMenus);
            request.setAttribute("userThirdMenus", MenuUtil.getChildren(MenuUtil.getMenuIdByUrl(requestURI, secondMenus), MenuUtil.getThirdMenus(menus)));
        }
        return true;
    }

首页操作代码

 @RequestMapping("index")
    public String index(Model model, PageResult pageResult, @RequestParam(value = "name",required = false,defaultValue = "") String name){
        pageResult.setPageSize(12);
        PageResult<GoodResult> goodList = goodService.selectPage(pageResult, name);
        model.addAttribute("pageResult",goodList );
        model.addAttribute("name",name );
        model.addAttribute("newsList", newsService.selectPage(pageResult, null).getContent());
        return "/home/index/index";
    }

    @GetMapping("news_detail")
    public String newDetail(Model model,@RequestParam("id")Integer id){
        News news = newsService.selectNewsById(id);
        model.addAttribute("news",news );
        return "home/index/news_detail";
    }

    @RequestMapping("login")
    public String login(){
        return "/home/index/login";
    }

    @PostMapping("check_sno")
    @ResponseBody
    public Result<Boolean> check_sno(Student student){
        return Result.success(StringUtils.isEmpty(studentService.selectStudent(student)));
    }

    @PostMapping("register")
    @ResponseBody
    public Result<Boolean> register(Student student, HttpSession session){
        CodeMsg validata = ValidataUtil.validata(student);
        if(validata.getCode()!= CodeMsg.SUCCESS.getCode()){
            return Result.exception(validata);
        }

        if(!StringUtils.isEmpty(studentService.selectStudent(student))){
            return Result.exception(CodeMsg.HOME_STUDENT_SN_NO_EXIST);
        }
        studentService.saveStuent(student);
        if(StringUtils.isEmpty(student)){
           return Result.exception(CodeMsg.HOME_STUDENT_REGISTER_ERROR);
        }
        session.setAttribute(SessionConstant.STUDENT_SESSION, student);
        return Result.success(true);
    }

    @PostMapping("login")
    @ResponseBody
    public Result<Boolean> login(Student student,HttpSession session){
        Student student1 = studentService.selectStudent(student);
        if(StringUtils.isEmpty(student1)){
            return Result.exception(CodeMsg.HOME_STUDENT_SN_NO_EXIST);
        }

        if(!student1.getPassword().equals(student.getPassword())){
            return Result.exception(CodeMsg.HOME_STUDENT_PASSWORD_ERROR);
        }
        if(student1.getStatus() !=Student.STUDENT_STATUS_ENABLE ){
            return Result.exception(CodeMsg.HOME_STUDENT_UNABLE);
        }
        session.setAttribute(SessionConstant.STUDENT_SESSION,student1 );
        return Result.success(true);
    }

    @GetMapping("logout")
    public String logout(HttpSession  session){
        session.removeAttribute(SessionConstant.STUDENT_SESSION);
        return "redirect:index";
    }

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

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