——————————DescriptionStart——————————
运行环境 Java≥8、MySQL≥5.7、Node.js≥14
开发工具 后端:eclipse/idea/myeclipse/sts等均可配置运行 前端:WebStorm/VSCode/HBuilderX等均可
❗没学过node.js的不要搞前后端分离项目
适用 课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SpringBoot图书商城管理系统(java+springboot+maven+vue+elementui+mysql)
项目介绍
管理员:首页、个人中心、用户管理、卖家管理、图书类型管理、图书信息管理、图书信息、系统管理 、订单管理
卖家: 首页、个人中心、图书信息管理、订单管理
用户: 首页、图书信息、图书资讯、个人中心、购物车
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 4.数据库:MySql 5.7/8.0版本均可; 5.是否Maven项目:是;
技术栈
后端:SpringBot(Spring+SpringMVC+Mybatis)
前端:Vue
使用说明
项目运行: 1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 4. 运行项目,控制台提示运行成功后再去运行前端项目; 5. 管理员用户名密码:admin/admin 普通用户名密码:user/123456
文档介绍(课题背景与意义、系统实现功能、课题研究现状、系统相关技术、java技术、B/S架构、Mysql介绍、Mysql环境配置、Springboot框架、系统需求分析、系统功能、可行性研究、经济可行性、技术可行性、运行可行性、事件可行性、系统业务过程分析、系统业务过程分析、系统用例图、系统设计、数据库设计、系统整体设计、系统设计思想、系统流程图、系统详情设计、系统功能模块、系统功能模块、管理员功能模块):
图书商城首页展示:
图书信息展示页面:
图书信息详情页面:
购物车展示页面:
个人中心详情展示:
后台登陆管理页面:
图书归还列表详情:
图书借阅列表:
图书信息详情:
——————————CodeStart——————————
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 */ @RequestMapping("/lists") public R list ( StoreupEntity storeup) { EntityWrapper<StoreupEntity> ew = new EntityWrapper<StoreupEntity>(); ew.allEq(MPUtil.allEQMapPre( storeup, "storeup" )); return R.ok().put("data" , storeupService.selectListView(ew)); } @RequestMapping("/query") public R query (StoreupEntity storeup) { EntityWrapper< StoreupEntity> ew = new EntityWrapper< StoreupEntity>(); ew.allEq(MPUtil.allEQMapPre( storeup, "storeup" )); StoreupView storeupView = storeupService.selectView(ew); return R.ok("查询收藏表成功" ).put("data" , storeupView); } @RequestMapping("/info/{id}") public R info (@PathVariable("id") Long id) { StoreupEntity storeup = storeupService.selectById(id); return R.ok().put("data" , storeup); } @IgnoreAuth @RequestMapping("/detail/{id}") public R detail (@PathVariable("id") Long id) { StoreupEntity storeup = storeupService.selectById(id); return R.ok().put("data" , storeup); }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 @RestController @RequestMapping("/maijia") public class MaijiaController { @Autowired private MaijiaService maijiaService;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 @RestController @RequestMapping("/storeup") public class StoreupController { @Autowired private StoreupService storeupService;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 } } return R.ok().put("data" , result); } @RequestMapping("/value/{xColumnName}/{yColumnName}/{timeStatType}") public R valueDay (@PathVariable("yColumnName") String yColumnName, @PathVariable("xColumnName") String xColumnName, @PathVariable("timeStatType") String timeStatType,HttpServletRequest request) { Map<String, Object> params = new HashMap<String, Object>(); params.put("xColumn" , xColumnName); params.put("yColumn" , yColumnName); params.put("timeStatType" , timeStatType); EntityWrapper<OrdersEntity> ew = new EntityWrapper<OrdersEntity>(); String tableName = request.getSession().getAttribute("tableName" ).toString(); if (tableName.equals("maijia" )) { ew.eq("zhanghao" , (String)request.getSession().getAttribute("username" )); } ew.in("status" , new String[]{"已支付" ,"已发货" ,"已完成" }); List<Map<String, Object>> result = ordersService.selectTimeStatValue(params, ew); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd" ); for (Map<String, Object> m : result) { for (String k : m.keySet()) { if (m.get(k) instanceof Date) { m.put(k, sdf.format((Date)m.get(k))); } } } return R.ok().put("data" , result); } @RequestMapping("/group/{columnName}") public R group (@PathVariable("columnName") String columnName,HttpServletRequest request) { Map<String, Object> params = new HashMap<String, Object>(); params.put("column" , columnName); EntityWrapper<OrdersEntity> ew = new EntityWrapper<OrdersEntity>(); String tableName = request.getSession().getAttribute("tableName" ).toString(); if (tableName.equals("maijia" )) { ew.eq("zhanghao" , (String)request.getSession().getAttribute("username" )); } ew.in("status" , new String[]{"已支付" ,"已发货" ,"已完成" }); List<Map<String, Object>> result = ordersService.selectGroup(params, ew); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd" ); for (Map<String, Object> m : result) { for (String k : m.keySet()) { if (m.get(k) instanceof Date) { m.put(k, sdf.format((Date)m.get(k)));
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 Date remindEndDate = null ; if (map.get("remindstart" )!=null ) { Integer remindStart = Integer.parseInt(map.get("remindstart" ).toString()); c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart); remindStartDate = c.getTime(); map.put("remindstart" , sdf.format(remindStartDate)); } if (map.get("remindend" )!=null ) { Integer remindEnd = Integer.parseInt(map.get("remindend" ).toString()); c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindEnd); remindEndDate = c.getTime(); map.put("remindend" , sdf.format(remindEndDate)); } } Wrapper<NewsEntity> wrapper = new EntityWrapper<NewsEntity>(); if (map.get("remindstart" )!=null ) { wrapper.ge(columnName, map.get("remindstart" )); } if (map.get("remindend" )!=null ) { wrapper.le(columnName, map.get("remindend" )); } int count = newsService.selectCount(wrapper); return R.ok().put("count" , count); } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 @RequestMapping("/page") public R page (@RequestParam Map<String, Object> params,StoreupEntity storeup, HttpServletRequest request) { if (!request.getSession().getAttribute("role" ).toString().equals("管理员" )) { storeup.setUserid((Long)request.getSession().getAttribute("userId" )); } EntityWrapper<StoreupEntity> ew = new EntityWrapper<StoreupEntity>(); PageUtils page = storeupService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, storeup), params), params)); return R.ok().put("data" , page); } @RequestMapping("/list") public R list (@RequestParam Map<String, Object> params,StoreupEntity storeup, HttpServletRequest request) { if (!request.getSession().getAttribute("role" ).toString().equals("管理员" )) { storeup.setUserid((Long)request.getSession().getAttribute("userId" )); } EntityWrapper<StoreupEntity> ew = new EntityWrapper<StoreupEntity>(); PageUtils page = storeupService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, storeup), params), params)); return R.ok().put("data" , page); } @RequestMapping("/lists") public R list ( StoreupEntity storeup) { EntityWrapper<StoreupEntity> ew = new EntityWrapper<StoreupEntity>(); ew.allEq(MPUtil.allEQMapPre( storeup, "storeup" )); return R.ok().put("data" , storeupService.selectListView(ew)); } @RequestMapping("/query")
——————————PayStart——————————
项目链接: https://javayms.github.io?id=511524170701201hc https://javayms.pages.dev?id=511524170701201hc