Java项目:网上书城管理系统(java+Springboot+Vue+ElementUI+Axios+mysql)

Java项目:网上书城管理系统(java+Springboot+Vue+ElementUI+Axios+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项目:是;

6.是否为前后端分离项目:是

技术栈

后台:SpringBoot+Mybatis-plus+Mybatis+lombok插件

前台:Vue+Vue Router+ELementUI+Axios

使用说明

**先启动后端再启动前端**

后端:

1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件;

2. 使用IDEA/Eclipse/MyEclipse导入后端项目end文件夹,导入成功后请执行maven clean;maven install命令,然后运行;

3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;

4. 运行项目,后端运行成功后再运行前端项目;

前端:

1、确保安装好node及npm,命令行切换到front所在路径

2、执行npm run serve启动项目

后台地址:http://localhost:8001/login

用户: tom/123456

管理员: admin/admin

书城首页展示:

添加购物车展示:

订单页面列表展示:

收藏夹页面展示:

后台管理统计页面:

后台管理订单管理页面:

轮播图展示管理:

后台商品管理展示:

后台登录页面展示:

用户管理控制层:

@Controller

@RequestMapping("/users")

@SessionAttributes({"userId","userName","password","adminId","adminName","adminpassword"})

public class UserController {

@Autowired

private IUserService iUserService;

/**

* 跳转用户登录页面

* @return

*/

@GetMapping("/login")

public String login() {

return "/frontdesk/login";

}

/**

* 用户登录

* @return

* @param u

*/

@PostMapping("/toLogin")

public String toLogin(User u,Model model) {

User user = iUserService.toLogin(u);

if (user == null) {

return "redirect:/users/register";

}

model.addAttribute("userId",user.getId());

model.addAttribute("userName",user.getName());

model.addAttribute("password",user.getPassword());

return "redirect:/book/qiantai";

}

/**

* 跳转用户注册页面

* @return

*/

@GetMapping("/register")

public String register() {

return "/frontdesk/register";

}

/**

* 用户注册

* @return

*/

@PostMapping("/toRegister")

public String toRegister(User u) {

// System.out.println("注册信息:"+u);

int i = iUserService.toRegister(u);

if (i != 1 ) {

return "redirect:/users/register";

}

return "redirect:/users/login";

}

/**

* 跳转管理员登录页面

* @return

*/

@GetMapping("/adminLogin")

public String adminLogin() {

return "/backstage/login";

}

/**

* 管理员登录

* @return

*/

@PostMapping("/toAdminLogin")

public String toAdminLogin(User u,Model model) {

// System.out.println("User==:"+u);

User user = iUserService.toLogin(u);

if (user == null) {

model.addAttribute("message","邮箱或密码错误,请确认后重试!");

return "/backstage/login";

}

model.addAttribute("adminId",user.getId());

model.addAttribute("adminName",user.getName());

model.addAttribute("adminpassword",user.getPassword());

return "redirect:/book/home";

}

/**

* 根据tag查看全部用户或管理员

* @param tag

* @return

*/

@GetMapping("/findByTag/{tag}")

public String findByTag(

@PathVariable Integer tag,

@RequestParam(defaultValue = "1") Integer num,

@RequestParam(defaultValue = "5") Integer size,

Model model) {

List userList = iUserService.findByTag(tag,num,size);

PageInfo userPageInfo = new PageInfo<>(userList);

model.addAttribute("userPageInfo",userPageInfo);

return "/backstage/user_control";

}

/**

* 返回JSON类型

* 根据tag查看全部用户或管理员

* @param tag

* @return

*/

@GetMapping("/findByTag1/{tag}")

public @ResponseBody PageInfo findByTag1(

@PathVariable Integer tag,

@RequestParam(defaultValue = "1") Integer num,

@RequestParam(defaultValue = "5") Integer size

) {

List userList = iUserService.findByTag(tag,num,size);

PageInfo userPageInfo = new PageInfo<>(userList);

return userPageInfo;

}

/**

* 查看个人信息

* @return

*/

@GetMapping("/findById/{id}/{tag}")

public String findById(@PathVariable int id,@PathVariable int tag,Model model) {

User user = iUserService.findById(id,tag);

model.addAttribute("user",user);

if (user.getTag() != 1) {

return "/frontdesk/person_detail";

} else {

return "/backstage/person_detail";

}

}

/**

* 管理员查看他人信息

* @return

*/

@GetMapping("/adminFindById/{id}/{tag}")

public @ResponseBody User adminFindById(@PathVariable int id,@PathVariable int tag,Model model) {

User user = iUserService.findById(id,tag);

return user;

}

/**

* 新增用户

* @param u

* @return

*/

@PostMapping("/saveUser")

public String saveUser(User u) {

// System.out.println("1User==="+u);

int i = iUserService.saveUser(u);

return "redirect:/users/findByTag/0";

}

/**

* 修改个人信息

* @return

*/

@PostMapping("/updateUser")

public String updateUser(User u) {

// System.out.println("User:"+u);

int i = iUserService.updateUser(u);

// System.out.println("i=="+i);

if (i != 1) {

System.out.println("个人信息修改失败");

return "redirect:/users/findById/"+u.getId()+"/"+u.getTag();

}

if (u.getTag() != 1) {

return "redirect:/book/qiantai";

}

return "redirect:/book/home";

}

/**

* 修改他人信息

* @return

*/

@PostMapping("/adminUpdateUser")

public String adminUpdateUser(User u) {

// System.out.println("User:"+u);

int i = iUserService.updateUser(u);

// System.out.println("i=="+i);

if (i != 1) {

System.out.println("个人信息修改失败");

}

return "redirect:/users/findByTag/0";

}

/**

* 修改个人密码

* @return

*/

@PostMapping("/updatePwd")

public String updatePwd(User u) {

// System.out.println("User:"+u);

// 判断是否为管理员还是用户

if (u.getTag() != 1) {

int i = iUserService.updatePwd(u);

// System.out.println("ipwd=="+i);

if (i != 1) {

System.out.println("个人信息修改失败");

return "/frontdesk/update_pwd";

}

return "redirect:/users/toLoginOut";

}

// System.out.println("User:"+u);

int i = iUserService.updatePwd(u);

// System.out.println("ipwd=="+i);

if (i != 1) {

System.out.println("个人信息修改失败");

return "/backstage/update_pwd";

}

return "redirect:/users/toAdminLoginOut";

}

/**

* 退出登录

* @return

*/

@GetMapping("/toLoginOut")

public String toLoginOut(SessionStatus status) {

status.setComplete();

boolean complete = status.isComplete();

if (complete) {

System.out.println("退出成功");

}

return "redirect:/book/qiantai";

}

/**

* 管理员退出登录

* @return

*/

@GetMapping("/toAdminLoginOut")

public String toAdminLoginOut(SessionStatus status) {

status.setComplete();

boolean complete = status.isComplete();

if (complete) {

System.out.println("退出成功");

}

return "redirect:/users/adminLogin";

}

/**

* 根据主键Id删除某一用户

* @return

*/

@PostMapping("/deleteUser/{id}")

public @ResponseBody int deleteUser(@PathVariable Integer id) {

int i = iUserService.deleteUser(id);

return i;

}

}

订单管理控制层:

@Controller

@RequestMapping("/orderForm")

public class OrderFormController {

@Autowired

private IOrderFormService iOrderFormService;

/**

* 获取所有用户订单

* @param model

* @return

*/

@GetMapping("/findAllOrderForm")

public String findAllOrderForm(

@RequestParam(defaultValue = "1") Integer num,

@RequestParam(defaultValue = "5") Integer size,

Model model) {

List orderFormList = iOrderFormService.findAllOrderForm(num,size);

PageInfo orderFormPageInfo = new PageInfo<>(orderFormList);

model.addAttribute("orderFormPageInfo",orderFormPageInfo);

return "/backstage/order_form";

}

/**

* 获取所有用户订单返回JSON数据

* @return

*/

@GetMapping("/findAllOrderForm1")

public @ResponseBody PageInfo findAllOrderForm1(

@RequestParam(defaultValue = "1") Integer num,

@RequestParam(defaultValue = "5") Integer size

) {

List orderFormList = iOrderFormService.findAllOrderForm(num,size);

PageInfo orderFormPageInfo = new PageInfo<>(orderFormList);

return orderFormPageInfo;

}

/**

* 新增订单

* 1、将商品销售增加

* 2、剩余量减少

* 3、产生订单

* @param orderForm

* @return

*/

@PostMapping("/saveOrderForm")

public @ResponseBody int saveOrderForm(OrderForm orderForm) {

// System.out.println("OrderForm:"+orderForm);

int i = iOrderFormService.saveOrderForm(orderForm);

return i;

}

/**

* 搜索指定用户的订单列表

* @param uid

* @param num

* @param size

* @param model

* @return

*/

@GetMapping("/findByUid/{uid}")

public String findByUid(

@PathVariable Integer uid,

@RequestParam(defaultValue = "1") Integer num,

@RequestParam(defaultValue = "5") Integer size,

Model model) {

List orderFormList = iOrderFormService.findByUid(uid,num,size);

PageInfo orderFormPageInfo = new PageInfo<>(orderFormList);

model.addAttribute("orderFormPageInfo",orderFormPageInfo);

return "/frontdesk/order_form";

}

/**

* 是否发货

* @param orderForm

* @return

*/

@PostMapping("/updateOrderForm")

public @ResponseBody int updateOrderForm(OrderForm orderForm) {

int i = iOrderFormService.updateOrderForm(orderForm);

return i;

}

/**

* 移除该用户的某一订单

* @param id

* @return

*/

@PostMapping("/deleteShopping/{uid}/{id}")

public @ResponseBody int findByUid(@PathVariable Integer uid,@PathVariable Integer id) {

int i = iOrderFormService.deleteOrderForm(uid,id);

// System.out.println("返回的i="+i);

return i;

}

}

图书类型管理控制层:

@Controller

@RequestMapping("/bookType")

public class BookTypeController {

@Autowired

private IBookTypeService iBookTypeService;

/**

* 查询所有图书类型

*/

@GetMapping("/findAllBookType")

public String findAllBookType(

@RequestParam(defaultValue = "1") Integer num,

@RequestParam(defaultValue = "5")Integer size,

Model model

) {

List bookTypeList = iBookTypeService.findAllBookType(num,size);

PageInfo bookTypePageInfo = new PageInfo<>(bookTypeList);

model.addAttribute("bookTypePageInfo",bookTypePageInfo);

return "/backstage/book_type";

}

/**

* 返回JSON

* 查询所有图书类型

*/

@GetMapping("/findAllBookType1")

public @ResponseBody PageInfo findAllBookType1(

@RequestParam(defaultValue = "1") Integer num,

@RequestParam(defaultValue = "5")Integer size

) {

List bookTypeList = iBookTypeService.findAllBookType(num,size);

PageInfo bookTypePageInfo = new PageInfo<>(bookTypeList);

return bookTypePageInfo;

}

/**

* 新增图书类型

* @param bookType

* @return

*/

@PostMapping("/saveBookType")

public String saveBookType(BookType bookType) {

iBookTypeService.saveBookType(bookType);

return "redirect:/bookType/findAllBookType";

}

/**

* 查询单独图书类型

* @param id

* @return

*/

@PostMapping("/findById/{id}")

public @ResponseBody BookType findById(@PathVariable Integer id) {

BookType bookType = iBookTypeService.findById(id);

return bookType;

}

/**

* 修改图书类型

* @param bookType

* @return

*/

@PostMapping("/updateBookType")

public @ResponseBody int updateBookType(BookType bookType) {

// System.out.println("bookType:"+bookType);

int i = iBookTypeService.updateBookType(bookType);

return i;

}

/**

* 根据Id删除

* @param id

* @return

*/

@PostMapping("/deleteBookType/{id}")

public int deleteBookType (@PathVariable Integer id) {

int i = iBookTypeService.deleteBookType(id);

return i;

}

}

图书信息管理控制层:

@Controller

@RequestMapping("/book")

@SessionAttributes({"bookTypeList"})

public class BookController {

@Autowired

private IBookTypeService iBookTypeService;

@Autowired

private IBookService iBookService;

@Autowired

private ISupplierService iSupplierService;

/**

* 图书列表

* @param model

* @return

*/

@GetMapping("/home")

public String toAdminHome(

@RequestParam(defaultValue = "1") Integer num,

@RequestParam(defaultValue = "5")Integer size,

Model model

) {

// 获取导航栏

List bookTypeList = iBookTypeService.findAllBookType(1,100 );

model.addAttribute("bookTypeList", bookTypeList);

// 获取供应商

List supplierList = iSupplierService.findAllSupplier(1,100);

model.addAttribute("supplierList", supplierList);

// 获取图书

List booksList = iBookService.findAllBook(num,size);

PageInfo booksPageInfo = new PageInfo<>(booksList);

model.addAttribute("booksPageInfo", booksPageInfo);

return "/backstage/home";

}

/**

* 图书列表

* @param model

* @return

*/

@GetMapping("/home1")

public @ResponseBody PageInfo toAdminHome1(

@RequestParam(defaultValue = "1") Integer num,

@RequestParam(defaultValue = "5")Integer size,

Model model

) {

// 获取导航栏

List bookTypeList = iBookTypeService.findAllBookType(1,100);

model.addAttribute("bookTypeList", bookTypeList);

// 获取供应商

List supplierList = iSupplierService.findAllSupplier(1,100 );

model.addAttribute("supplierList", supplierList);

// 获取图书

List booksList = iBookService.findAllBook(num,size);

PageInfo booksPageInfo = new PageInfo<>(booksList);

return booksPageInfo;

}

/**

* 上传图书图片

* @param request

* @param file

* @return

*/

@PostMapping("/uploadimg")

public @ResponseBody int uploadimg(HttpServletRequest request, MultipartFile file) {

int i = iBookService.uploadImage(request,file);

return i;

}

/**

* 上传详情图片

* @param request

* @param file

* @return

*/

@PostMapping("/uploaddetail")

public @ResponseBody int uploaddetail(HttpServletRequest request, MultipartFile file) {

int i = iBookService.uploaddetail(request,file);

return i;

}

/**

*新增图书

* @return

*/

@PostMapping("/saveBook")

public String saveBook(Books books) {

// System.out.println("Books:="+books);

iBookService.saveBook(books);

return "redirect:/book/home";

}

/**

* 前台首页

*

* @return

*/

@GetMapping("/qiantai")

public String toHome(

@RequestParam(defaultValue = "1") Integer num,

@RequestParam(defaultValue = "10")Integer size,

Model model) {

// 获取导航栏

List bookTypeList = iBookTypeService.findAllBookType(1,100);

model.addAttribute("bookTypeList", bookTypeList);

// 获取全部图书

List booksList = iBookService.findAllBook(num,size );

PageInfo booksPageInfo = new PageInfo<>(booksList);

model.addAttribute("booksPageInfo", booksPageInfo);

return "/frontdesk/home";

}

/**

* 通过Id查询图书详情

* @param id

* @param model

* @return

*/

@GetMapping("/findById/{id}")

public String findById(@PathVariable Integer id,Model model) {

Books books = iBookService.findById(id);

model.addAttribute("books",books);

return "/frontdesk/book_detail";

}

/**

* 管理员通过Id查询图书详情

* @param id

* @param model

* @return

*/

@GetMapping("/adminfindById/{id}")

public String adminfindById(@PathVariable Integer id,Model model) {

// 获取供应商

List supplierList = iSupplierService.findAllSupplier(1,100 );

model.addAttribute("supplierList", supplierList);

// 获取图书详情

Books books = iBookService.findById(id);

model.addAttribute("books",books);

return "/backstage/update_book";

}

/**

* 修改图书信息

* @param books

* @return

*/

@PostMapping("/updateBook")

public String updateBook(Books books) {

// System.out.println("返回的图书:"+books);

iBookService.updateBook(books);

return "redirect:/book/home";

}

/**

* 通过图书类型Id查询图书

* @param tid

* @param model

* @return

*/

@GetMapping("/findByTid/{tid}")

public String findByTid(@PathVariable Integer tid,@RequestParam(defaultValue = "1") Integer num,@RequestParam(defaultValue = "10")Integer size,Model model) {

List booksList = iBookService.findByTid(tid,num,size);

PageInfo booksPageInfo = new PageInfo<>(booksList);

model.addAttribute("booksPageInfo", booksPageInfo);

model.addAttribute("tid",tid);

return "/frontdesk/home";

}

@PostMapping("/deleteBook/{id}")

public @ResponseBody int deleteBook(@PathVariable("id") Integer id) {

int i = iBookService.deleteBook(id);

return i;

}

}

源码获取:俺的博客首页 "资源" 里下载!

相关推荐

iPad枪战单机游戏推荐及介绍
bat365中文官方网站

iPad枪战单机游戏推荐及介绍

📅 09-09 👁️ 8016
诛仙法宝一览表终极指南,2025年隐藏数据与实战搭配
77365bet体育在线投注

诛仙法宝一览表终极指南,2025年隐藏数据与实战搭配

📅 10-03 👁️ 9662
台灣地區活體肉牛產地每週行情表
77365bet体育在线投注

台灣地區活體肉牛產地每週行情表

📅 10-06 👁️ 2406