博主主页:猫头鹰源码
博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战
主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询
文末联系获取
项目介绍:
该系统基于springboot技术,数据层为MyBatis,mysql数据库,页面采用html,具有完整的业务逻辑,适合选题:springboot、校园、二手、校园二手、二手网站等。
项目功能:
系统功能分为用户使用功能和系统管理功能,用户的使用功能包含用户浏览物品、登录、注册、搜索物品、查看个人发布物品、加入购物车、联系卖家、评论商品等;系统管理包括系统设置、商品设置、学生管理、评价管理等。
搜索物品:用户可以根据自己的需求通过关键字进行模糊查询,系统会根据用户的搜索将商品信息展示出来。
查看发布信息:用户登录系统后,可以查看自己已经发布的所有物品的详细信息。
加入购物车:用户登陆系统后,可以将自己感兴趣的物品加入到购物车中。
联系卖家:用户登录系统后,可以与商品的卖家取得联系,点击“联系卖家”系统会将卖家的联系方式展示给用户。
评论商品:用户登录系统后,可以对商品进行个人的评论。
系统设置:管理员进入到后台管理系统后可以对菜单、角色、用户、日志等系统信息进行管理。
商品设置:管理员进入后台管理系统后,可以对商品分类、商品信息等进行相应的管理操作。
学生管理:管理员进入后台管理系统后,可以查看系统中所有学生的基本信息,并且可以做出相应的管理。
评论管理:管理员进入后台管理系统后,可以查看系统所有物品的评论信息,并且可以对评论做出相关的操作。
用户拥有浏览、登录、注册、搜索物品、发布物品、查看个人发布物品、加入购物车、购买商品、联系卖家、评论商品、查看个人资料等功能;系统管理包括系统设置、商品设置、学生管理、评论管理等。
系统包含技术:
后端:springBoot、mybatis
前端:bootstrap、js、css等,html页面
开发工具:idea
数据库:mysql 5.7
JDK版本:jdk1.8
部分截图说明:
下面是登录页面
首页
分类查看商品详情
商品详情
个人中心查看
购物车查看
后台首页
后台对用户进行维护
后台对商品进行维护
后台对菜单进行管理
后台可以查看评论列表
部分代码:
拦截器
@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";
}
以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。
好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~