作者主页:夜未央5788

 简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

项目介绍

本项目分为前后台,包含管理员与普通用户两种角色,普通用户登录前台,管理员登录后台;
前台包含以下功能:
登录、注册、图书列表、商品详情、加入购物车、订单列表、订单详情等功能。

后台包含以下功能:

书籍管理、分类管理、订单管理、用户管理、上架书籍等功能。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 
5.数据库:MySql 8.0版本;

6.是否Maven项目:是;

技术栈

1. 后端:SpringBoot

2. 前端:模板引擎thymeleaf+前端框架采用Layui

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中application-pro.yml配置文件中的数据库配置改为自己的配置;
4. 运行项目,前台访问地址:http://localhost:8082
前台登录用户通过注册功能自行注册即可;
后台访问地址:http://localhost:8082/admin/login

管理员账号/密码:admin/123456

运行截图

 

 

 

 

 

 

 

 

 代码相关

书籍管理控制器

@RestController
@RequestMapping("/book")
public class BookController {

    @Autowired
    private BookService bookService;


    @GetMapping("/searchid")
    public ResultVO bookSearchByBookId(Integer bookId) {
        // Book books=bookMapper.selectByBookId(bookIde);
        Book books = bookService.bookSearchById(bookId);
        if (books != null)
            return new ResultVO(ResultCode.SUCCESS,books);
        else
            return new ResultVO(ResultCode.RECORD_NOT_FOUND, null);
    }


    @PostMapping("/delete")
    public ResultVO bookDelete(Integer bookId) {
        int books = bookService.bookDeleteSearchById(bookId);
        return new ResultVO(ResultCode.SUCCESS, null);
    }

    //添加验证注解
    @PostMapping("/insert")
    public ResultVO bookInsert(@Valid Book record) {
        int books = bookService.bookInsert(record);
        return new ResultVO(ResultCode.SUCCESS, null);
    }



    @GetMapping("/searchcode")
  public ResultVO bookSerchByCategoryCode(String catrgoryCode,Integer page,Integer limit) {
      List<Book> books = bookService.bookSearchByCode(catrgoryCode,page,limit);
        PageInfo pageInfo = new PageInfo(books);
     if(books.size()!=0)
     {
      return new ResultVO(ResultCode.SUCCESS,(int)pageInfo.getTotal(), books);
     }
     else
    	 return new ResultVO(ResultCode.RECORD_NOT_FOUND, null);

  }


    //添加验证注解
    @PostMapping("/update")
    public ResultVO bookUpdate(@Valid Book record) {
        int books = bookService.bookUpdate(record);
        return new ResultVO(ResultCode.SUCCESS, null);
    }

    /**
     * 多条件搜索   ----by guozongchao
     * @param book
     * @param page
     * @param limit
     * @return
     */
    @GetMapping("/search")
    public ResultVO searchBooks(Book book,Integer page, Integer limit) {
        if(book.getBookName().isEmpty()){
            book.setBookName(null);
        }
        if(book.getIsbn().isEmpty()){
            book.setIsbn(null);
        }
        List<Book> books = bookService.searchBooks(book, page, limit);
        PageInfo pageInfo = new PageInfo(books);
        return new ResultVO(ResultCode.SUCCESS, (int) pageInfo.getTotal(), books);
    }


}

分类管理控制器

@RestController
@RequestMapping("category")
public class CategoryController {
	@Autowired
	private CategoryService categoryService;
	@Resource
	private CategoryMapper categoryMapper;
	@GetMapping("/searchcode")
	public ResultVO categorySearchByCode(String categoryCode)
	{
		
		Category categories = categoryService.selectByByCategoryCode(categoryCode);
		if(categories!=null)
		return new ResultVO(ResultCode.SUCCESS,categories);
		else
			return new ResultVO(ResultCode.RECORD_NOT_FOUND,null);
	}
	@PostMapping("/delete")
	public ResultVO categoryDelete(String categoryCode)
	{
		int categories = categoryService.deleteByByCategoryCode(categoryCode);
		return new ResultVO(ResultCode.SUCCESS,null);
	}

	//添加验证
	@PostMapping("/insert")
	public ResultVO categoryInsert(@Valid Category record)
	{
		
		int categories = categoryService.insert(record);
		return new ResultVO(ResultCode.SUCCESS,null);
	}

	//添加验证
	@PostMapping("/update")
	public  ResultVO categoryUpdate(@Valid Category record)
	{
		int categories = categoryService.updateByCategoryCode(record);
		return new ResultVO(ResultCode.SUCCESS,null);
	}

	//添加分页
	@GetMapping("/searchall")
	public  ResultVO categorySearchAll(Integer page,Integer limit)
	{
		List<Category> categories = categoryService.selectAll(page==null?0:page,limit==null?10:limit);
		if(categories.size()!=0)
			return new ResultVO(ResultCode.SUCCESS,categories);
		else
			return new ResultVO(ResultCode.RECORD_NOT_FOUND,null);
	}	
}

购物车管理控制器

@RestController
@RequestMapping("/cart")
public class ShoppingCartController {

    @Autowired
    private ShoppingCartService shoppingCartService;
    /**
     * 根据用户ID获取该用户的购物车
     * @param session
     * @return
     */
    @GetMapping("/list")
    public ResultVO getCartByUserId(HttpSession session) {
        User user = (User) session.getAttribute("user");
        List<ShoppingCart> carts = shoppingCartService.getShoppingCartsByUserId(user.getUserId());
        return new ResultVO(ResultCode.SUCCESS, carts);
    }

    /**
     * 更新购物车的商品数量
     * @param cartId  购物车Id
     * @param quantity  商品购买数量
     * @return
     */
    @PutMapping("/list/{cartId}")
    public ResultVO updateCartItem(@PathVariable("cartId") Integer cartId,Integer quantity) {
        if(quantity<=0){
            throw new CustomizeException(ResultCode.FAILED,"购物数量必须大于0");
        }
        if(quantity>10){
            throw new CustomizeException(ResultCode.FAILED,"每件商品限购10件");
        }
        ShoppingCart cart = new ShoppingCart();
        cart.setCartId(cartId);
        cart.setQuantity(quantity);
        shoppingCartService.updateShoppingCart(cart);
        return new ResultVO(ResultCode.SUCCESS);
    }

    /**
     * 添加到购物车请求处理
     *
     * @param cart 接收前台传来的参数
     * @return
     */
    @PostMapping("/list")
    public ResultVO addToShoppingCart(@Valid ShoppingCart cart, HttpSession session) {
        User user = (User) session.getAttribute("user");
        cart.setUserId(user.getUserId());
        shoppingCartService.addToShoppingCart(cart);
        return new ResultVO(ResultCode.SUCCESS);
    }

    /**
     * 删除前台传来的cartId的购物车项
     * @param cartId
     * @return
     */
    @DeleteMapping("/list/{cartId}")
    public ResultVO deleteCartItem(@PathVariable("cartId") Integer cartId) {
        shoppingCartService.deleteShoppingCartByCartId(cartId);
        return new ResultVO(ResultCode.SUCCESS);
    }

    /**
     * 批量删除购物车
     * @param cartIds
     * @return
     */
    @DeleteMapping("/list")
    public ResultVO deleteCartItem(@RequestBody int[] cartIds) {
        shoppingCartService.deleteShoppingCarts(cartIds);
        return new ResultVO(ResultCode.SUCCESS);
    }


}

如果也想学习本系统,下面领取。回复:076springboot

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐