基于javaweb的SpringBoot网上书城系统(java+springboot+vue+elementui+mybatis-plus+mysql)

运行环境

Java≥8、MySQL≥5.7、Node.js≥14

开发工具

后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可

❗没学过node.js的不要搞前后端分离项目

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

281424140701

291424140701

311424140701

321424140701

331424140701

341424140701

351424140701

361424140701

基于javaweb的SpringBoot网上书城系统(java+springboot+vue+elementui+mybatis-plus+mysql)

项目介绍

基于springboot vue前后端分离的网上书城

角色:管理员、用户

前台:包含 机器人客服回复 首页、登录、注册、全部商品、商品详情页、关于我们、我的收藏、购物车、订单结算页面、我的订单。 实现了商品的展示、商品分类查询、关键字搜索商品、商品详细信息展示、登录、注册、用户购物车、订单结算、用户订单、用户收藏列表以及错误处理功能

后台:实现了 销售额显示 订单显示 饼状图 曲线 轮播图管理 图书分类 图书管理 订单管理 角色管理 权限管理 细分到按钮 错误日志 登录日志 操作日志等功能

环境需要

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项目:是;

技术栈

后端:SpringBoot+Mybatis-plus+sa-token

前端:Vue+ELementUI

使用说明

项目运行: 1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;

书城首页展示:

图书列表展示:

购物车管理展示:

购物车展示页面:

 后台管理首页展示:

 订单管理展示页面:

轮播图展示页面:

后台图书列表展示:

用户管理控制层:

@Controller

@RequestMapping(“/user/“)

public class UserControll {

@Autowired

private userService userService;

@Autowired

private sorderService sorderService;

@Autowired

private adminOrderService adminOrderService;

//跳转注册

@RequestMapping(“userRegisterGet”)

public String gotoRegister(){

return “user/register”;

//注册判断用户名存在

@RequestMapping(“selectUserOne”)

@ResponseBody

public AjaxResult getUserOne(Userinfo userinfo){

AjaxResult aj=new AjaxResult();

Userinfo rs = userService.selectUserOne(userinfo);

aj.setTag(rs);

return aj;

//注册

@RequestMapping(“addUserRegister”)

@ResponseBody

public AjaxResult addUserOne(Userinfo userinfo){

AjaxResult aj=new AjaxResult();

int rs = userService.addUserOne(userinfo);

aj.setTag(rs);

return aj;

//查登陆的用户

@RequestMapping(“readUserinfo”)

@ResponseBody

public AjaxResult readUserinfo(Userinfo userinfo,HttpServletRequest request){

AjaxResult aj=new AjaxResult();

Userinfo usr= userService.selectUserinfoById(userinfo);

if(usr!=null){

aj.setTag(usr);

return aj;

//修改个人信息

@RequestMapping(“editUserinfo”)

@ResponseBody

public int editUserinfo(Userinfo userinfo){

int rs= userService.updateUserinfoById(userinfo);

return rs;

//跳转注册

@RequestMapping(“userPersonalInfo”)

public String gotoPersonalInfo(){

return “user/personalInfo”;

//加载个人信息界面

@RequestMapping(“userInfo”)

public String gotoUserInfo(){

return “user/userInfo”;

//跳转个人积分页面

@RequestMapping(“userIntegral”)

public String userIntegral(){

return “user/integral”;

//跳转个人图片

@RequestMapping(“userGerenImg”)

public String userGerenImg(){

return “user/gerenImg”;

//加载个人积分

@RequestMapping(“userIntegralLimit”)

@ResponseBody

public DataTables userIntegralLimit(HttpServletRequest request,int start,int length){

Map<Object,Object> map=new HashMap<Object, Object>();

map.put(“uId”,request.getSession().getAttribute(“frontuserId”));

map.put(“pageStart”,start);

map.put(“pageSize”,length);

PageHelp pageHelp= userService.selectIntegralLimit(map);

DataTables datatable=new DataTables();

datatable.setData(pageHelp.getList());

datatable.setRecordsFiltered(pageHelp.getRecord());

datatable.setRecordsTotal(pageHelp.getRecord());

return datatable;

//跳转个人账户页面

@RequestMapping(“userAccount”)

public String userAccount(){

return “user/account”;

//加载个人积分

@RequestMapping(“userAccountLimit”)

@ResponseBody

public DataTables userAccountLimit(HttpServletRequest request,int start,int length){

Map<Object,Object> map=new HashMap<Object, Object>();

map.put(“uId”,request.getSession().getAttribute(“frontuserId”));

map.put(“pageStart”,start);

map.put(“pageSize”,length);

PageHelp pageHelp= userService.selectAccountLimit(map);

DataTables datatable=new DataTables();

datatable.setData(pageHelp.getList());

datatable.setRecordsFiltered(pageHelp.getRecord());

datatable.setRecordsTotal(pageHelp.getRecord());

return datatable;

//获得金额

@RequestMapping(“getMoneyAcount”)

@ResponseBody

public Object getMoneyAcount(HttpServletRequest request){

return request.getSession().getAttribute(“money”);

//查看当前订单

@RequestMapping(“userOrderLimit”)

@ResponseBody

public DataTables userOrderLimit(HttpServletRequest request,int start,int length){

Map<Object,Object> map=new HashMap<Object, Object>();

map.put(“uId”,request.getSession().getAttribute(“frontuserId”));

map.put(“pageStart”,start);

map.put(“pageSize”,length);

PageHelp pageHelp= userService.selectOrderLimit(map);

DataTables datatable=new DataTables();

datatable.setData(pageHelp.getList());

datatable.setRecordsFiltered(pageHelp.getRecord());

datatable.setRecordsTotal(pageHelp.getRecord());

return datatable;

//跳转订单页面

@RequestMapping(“userGoOrder”)

public String userGoOrder(HttpSession session){

return “user/myOrder”;

//跳转历史订单

@RequestMapping(“userGoSuccessOrder”)

public String userGoSuccessOrder(){

return “user/myOrderSuccess”;

//查看当前订单

@RequestMapping(“userSucOrderLimit”)

@ResponseBody

public DataTables userSucOrderLimit(HttpServletRequest request,int start,int length){

Map<Object,Object> map=new HashMap<Object, Object>();

map.put(“uId”,request.getSession().getAttribute(“frontuserId”));

map.put(“pageStart”,start);

map.put(“pageSize”,length);

PageHelp pageHelp= userService.selectMySuccessOrderLimit(map);

DataTables datatable=new DataTables();

datatable.setData(pageHelp.getList());

datatable.setRecordsFiltered(pageHelp.getRecord());

datatable.setRecordsTotal(pageHelp.getRecord());

return datatable;

//请确认收货

@RequestMapping(“userOrderConfirm”)

@ResponseBody

public String userOrderConfirm(HttpServletRequest request,int id,int typeNum){

int eId;

if(typeNum==0){

eId = (int)request.getSession().getAttribute(“adminId”);

}else{

eId=0;

return ResponseUtil.successToClient(userService.upDateByorderConfirm(id,typeNum,eId));

//去付款

@RequestMapping(“userOrderPayMoney”)

@ResponseBody

public String userOrderPayMoney(HttpServletRequest request,String oId){

DoPayMoney dpm=new DoPayMoney();

Userinfo selectUserinfoMoney = userService.selectUserinfoMoney((int)request.getSession().getAttribute(“frontuserId”));

Double selectOrderdetailPayMoney = sorderService.selectOrderdetailPayMoney(oId);

dpm.setPayMoney(selectOrderdetailPayMoney.toString());

dpm.setuMoney(selectUserinfoMoney.getuMoney());

return ResponseUtil.successToClient(dpm);

//确认付款

@RequestMapping(“userOrderPayMoneyConfirm”)

@ResponseBody

public String userOrderPayMoneyConfirm(HttpServletRequest request,Float payNumber,Float uMoney,String uPasword,String oId){

Userinfo userinfo = (Userinfo)request.getSession().getAttribute(“exituser”);

if(userinfo.getuPassword().equals(uPasword)){

sorderService.updateOrderByoId(oId);

userService.updateUserinfoBypay(userinfo.getuId(), uMoney-payNumber);

}else{

return ResponseUtil.errorToClient();

return ResponseUtil.successToClient();

//删除订单

@RequestMapping(“deleteMyOrder”)

@ResponseBody

public String deleteAdminOrder(String oId){

return ResponseUtil.successToClient(adminOrderService.deleteAdminOrder(oId));

//跳转管理员信息

@RequestMapping(“mainToAdminuser”)

public String mainToAdminuser(){

return “admin/persionInfo/adminInfo”;

//加载管理员信息

@RequestMapping(“mainSelectAdminuser”)

@ResponseBody

public String mainSelectAdminuser(HttpServletRequest request){

int adId =(int)request.getSession().getAttribute(“adminId”);

return ResponseUtil.successToClient(userService.selectAdminInfo(adId));

//更新管理员信息

@RequestMapping(“mainUpdateAdminuser”)

@ResponseBody

public String mainUpdateAdminuser(DoAdminInfo admin){

return ResponseUtil.successToClient(userService.updateAdminInfo(admin));

购物管理控制层:

@Controller

@RequestMapping(“/shop/“)

public class ShopControll {

@Autowired

public shopService shopService=null;

@Autowired

public typeService typeService;

//主页

@RequestMapping(“index”)

public String gotoIndex(HttpServletRequest request){

List HotSnackList = shopService.getHotSnack();

List newSnackList = shopService.getNewSnack();

List typeList = typeService.getall();

request.setAttribute(“HotSnackList”,HotSnackList);

request.setAttribute(“newSnackList”,newSnackList);

request.getSession().setAttribute(“type”, typeList);

System.out.println(“00”);

return “user/index”;

//登录

@RequestMapping(“userLoginGet”)

public String gotoUserLogin(){

return “user/userLogin”;

@RequestMapping(“userLoginPost”)

public String gotoUserLogin(Userinfo userinfo,HttpServletRequest request){

Userinfo exituser = shopService.userLogin(userinfo);

if(exituser ==null){

request.setAttribute(“msg”,”用户名或密码错误”);

return “user/userLogin”;

request.getSession().setAttribute(“exituser”, exituser);

request.getSession().setAttribute(“frontuser”, exituser.getuUsername());

request.getSession().setAttribute(“frontuserId”, exituser.getuId());

request.getSession().setAttribute(“money”, exituser.getuMoney());

return “redirect:index”;

//退出登录

@RequestMapping(“userlogout”)

public String showlogin(HttpServletRequest request){

HttpSession session = request.getSession();

session.removeAttribute(“frontuser”);

session.removeAttribute(“frontuserId”);

return “redirect:userLoginGet”;

//商品详情

@RequestMapping(“proDatail”)

public String gotoProDatail(HttpServletRequest request,Snackinfo snack){

Snackinfo sck = shopService.selectById(snack);

request.setAttribute(“sck”, sck);

return “product/proDetail”;

//查询订单

@RequestMapping(“selectOrderSnack”)

@ResponseBody

public DataTables selectOrderSnack(String oId,int start,int length){

Map<Object,Object> map=new HashMap<Object, Object>();

map.put(“oId”, oId);

map.put(“pageStart”,start);

map.put(“pageSize”,length);

PageHelp pageHelp = shopService.selectOrderSnack(map);

DataTables datatable=new DataTables();

datatable.setData(pageHelp.getList());

datatable.setRecordsFiltered(pageHelp.getRecord());

datatable.setRecordsTotal(pageHelp.getRecord());

return datatable;

//type页面

@RequestMapping(“puffingType”)

public String puffing(HttpServletRequest request,DoSnackType doSnackType){

List TypeSnackList=shopService.selectPuffing(doSnackType.getType(),doSnackType.getSnackName());

Type type = typeService.getOne(doSnackType.getType());

request.setAttribute(“TypeSnackTitle”,type.getName());

request.setAttribute(“TypeNum”,doSnackType.getType());

request.setAttribute(“TypeSnackList”,TypeSnackList);

return “user/typePage”;

后台订单管理控制层: 

@Controller

@RequestMapping(“/admin/order/“)

public class AdminOrderControll {

@Autowired

private adminOrderService adminOrderService;

@Autowired

private userService userService;

@RequestMapping(“mainToAdminOrder”)

public String mainToAdminOrder(){

return “admin/order/adminOrder”;

//订单

@RequestMapping(“adminOrderLimit”)

@ResponseBody

public DataTables adminOrderLimit(int start,int length,

String oId,String oTimeStart,String oTimeEnd,String adUserName){

Map<Object,Object> map=new HashMap<Object, Object>();

map.put(“pageStart”,start);

map.put(“pageSize”,length);

map.put(“oId”,oId);

map.put(“oTimeStart”,oTimeStart);

map.put(“oTimeEnd”,oTimeEnd);

map.put(“adUserName”,adUserName);

PageHelp pageHelp= adminOrderService.selectAdminOrderLimit(map);

DataTables datatable=new DataTables();

datatable.setData(pageHelp.getList());

datatable.setRecordsFiltered(pageHelp.getRecord());

datatable.setRecordsTotal(pageHelp.getRecord());

return datatable;

//删除订单

@RequestMapping(“deleteAdminOrder”)

@ResponseBody

public String deleteAdminOrder(String oId){

return ResponseUtil.successToClient(adminOrderService.deleteAdminOrder(oId));

//update加载订单

@RequestMapping(“updateSelectAdminOrder”)

@ResponseBody

public String updateSelectAdminOrder(int rId){

return ResponseUtil.successToClient(adminOrderService.updateSelectAdminOrder(rId));

//update订单

@RequestMapping(“updateAdminOrder”)

@ResponseBody

public String updateAdminOrder(Receiptinfo receiptinfo){

return ResponseUtil.successToClient(adminOrderService.updateAdminOrder(receiptinfo));

//updateOrderDetial加载订单

@RequestMapping(“updateSelectAdminOrderDetial”)

@ResponseBody

public String updateSelectAdminOrderDetial(int dId){

return ResponseUtil.successToClient(adminOrderService.updateSelectAdminOrderDetial(dId));

//updateOrderDetial订单

@RequestMapping(“updateOrderdetail”)

@ResponseBody

public String updateOrderdetail(Orderdetail orderdetail){

return ResponseUtil.successToClient(adminOrderService.updateOrderdetail(orderdetail));

//删除OrderDetial

@RequestMapping(“deleteOrderdetail”)

@ResponseBody

public String deleteOrderdetail(int dId,String oId){

List orderdetailList = adminOrderService.selectOrderdetailByoId(oId);

if(orderdetailList.size()>=2){

adminOrderService.deleteOrderdetailBydId(dId);

return ResponseUtil.successToClient(1);

}else{

adminOrderService.deleteAdminOrder(oId);

return ResponseUtil.successToClient(2);

//导出订单详情

@RequestMapping(“outExcelOrder”)

@ResponseBody

public void outExcelOrder(HttpServletResponse response,String oId){

SXSSFWorkbook workbook = new SXSSFWorkbook();

reportSheet(workbook,oId);

outputExcel(response, workbook, “订单详情”);

private void reportSheet(SXSSFWorkbook workbook,String oId) {

List outExcelOrderDetail = adminOrderService.outExcelOrderDetail(oId);

for (int i = 0; i < outExcelOrderDetail.size(); i++) {

if(i!=0){

outExcelOrderDetail.get(i).setOId(“”);

outExcelOrderDetail.get(i).setOName(“”);

outExcelOrderDetail.get(i).setOPhone(“”);

outExcelOrderDetail.get(i).setOAddress(“”);

outExcelOrderDetail.get(i).setMoney(outExcelOrderDetail.get(i).getMoney()+”元”);

ExcelUtil2 excelUtil=new ExcelUtil2();

List columns = new ArrayList<>();

columns.add(excelUtil.defaultGetColumn(“订单号”, “oId”, 15 * 256, false, false));

columns.add(excelUtil.defaultGetColumn(“收货人”, “oName”, 15 * 256, false, false));

columns.add(excelUtil.defaultGetColumn(“电话”, “oPhone”, 15 * 256, false, false));

columns.add(excelUtil.defaultGetColumn(“地址”, “oAddress”, 26 * 256, false, false));

columns.add(excelUtil.defaultGetColumn(“商品名”, “sName”, 15 * 256, false, false));

columns.add(excelUtil.defaultGetColumn(“数量”, “num”, 12 * 256, false, false));

columns.add(excelUtil.defaultGetColumn(“单价”, “money”, 12 * 256, false, false));

excelUtil.createSheet(workbook, outExcelOrderDetail, columns, “订单详情”);

private void outputExcel(HttpServletResponse response, SXSSFWorkbook workbook, String excelName) {

response.setContentType(“application/vnd.ms-excel”);

try {

// 进行转码,使其支持中文文件名

response.setHeader(“content-disposition”, “attachment;filename=” + new String(excelName.getBytes(“GB2312”), “ISO-8859-1”) + “.xlsx”);

workbook.write(response.getOutputStream());

} catch (IOException e) {

e.printStackTrace();

//请确认收货

@RequestMapping(“userOrderConfirm”)

@ResponseBody

public String userOrderConfirm(HttpServletRequest request,int id,int typeNum){

int eId;

if(typeNum==0){

eId = (int)request.getSession().getAttribute(“adminId”);

}else{

eId=0;

return ResponseUtil.successToClient(userService.upDateByorderConfirm(id,typeNum,eId));

后台登录管理控制层:

@Controller

@RequestMapping(“/admin/login/“)

public class AdminLogin {

@Autowired

private adminLoginService adminLoginService;

@Autowired

private AccountMapper accountMapper;

@Autowired

private typeService typeService;

//登录login

@RequestMapping(“adminLogin”)

public String adminLogin(){

System.out.println(“存储过程相加:”+accountMapper.selectNum(4, 6));

return “admin/adminLogin”;

//登录

@RequestMapping(“adminGoLogin”)

public String adminGoLogin(HttpServletRequest request,Admin admin){

List adminSelect = adminLoginService.adminLogin(admin);

if(adminSelect.size()==1){

request.getSession().setAttribute(“adminName”, adminSelect.get(0).getAdUsername());

request.getSession().setAttribute(“adminId”, adminSelect.get(0).getAdId());

List allPer = adminLoginService.selectAllPermission();

List userPer = adminLoginService.selectRolePermission(adminSelect.get(0).getRoleId());

request.getSession().setAttribute(“allPer”, allPer);

request.getSession().setAttribute(“userPer”, userPer);

return “redirect:adminGoMain”;

request.setAttribute(“msg”,”用户名或密码错误”);

return “admin/adminLogin”;

//登录Main

@RequestMapping(“adminGoMain”)

public String adminLogin(HttpServletRequest request){

List typeList = typeService.getall();

request.setAttribute(“adminMenu”,adminLoginService.selectAllAdminMenu());

request.setAttribute(“adminMenuChild”,adminLoginService.selectAllAdminMenuChild());

request.getSession().setAttribute(“type”,typeList);

return “admin/adminMain”;

//退出

@RequestMapping(“adminMainToLoginOut”)

@ResponseBody

public String adminMainToLoginOut(HttpServletRequest request){

request.getSession().removeAttribute(“adminName”);

return ResponseUtil.successToClient();


项目链接:
https://javayms.github.io?id=131524190701201jx
https://javayms.pages.dev?id=131524190701201jx