基于javaweb和mysql的springboot在线点餐系统(java+springboot+maven+mybatis+vue+mysql+redis)

私信源码获取及调试交流

私信源码获取及调试交流

运行环境

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

开发工具

后端:eclipse/idea/myeclipse/sts等均可配置运行

前端:WebStorm/VSCode/HBuilderX等均可

适用

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

功能说明

基于javaweb的SpringBoot在线点餐系统(java+springboot+maven+mybatis+vue+mysql+redis)

项目描述:

这是一个基于SpringBoot+Vue框架开发的在线点餐系统。首先,这是一个前后端分离的项目。具有一个在线点餐系统该有的所有功能。

项目功能:

此项目分为两个角色:普通用户和管理员。普通用户有登录注册、浏览商品信息、添加购物车、结算订单、查看个人信息、查看个人订单详情等等功能。管理员有管理所有商品信息、管理所有订单信息、管理所有用户信息、查看收益数据图表等等功能。

应用技术:SpringBoot + VueCli + MySQL + MyBatis + Redis + ElementUI

运行环境:IntelliJ IDEA2019.3.5 + MySQL5.7+ Redis5.0.5 + JDK1.8 + Maven3.6.3+ Node14.16.1

        return userService.getOnlineUser();
    }

    /**
     * 后台用户登录
     * @param userDTO
     * @return
     */
    @PostMapping("/login")
    public ResponseDTO<UserDTO> login(@RequestBody UserDTO userDTO){
        return userService.adminLogin(userDTO);
    }

    /**
     * 后台检查管理员是否登录
     * @param userDTO
     * @return
     */
    @PostMapping("/check_login")
    public ResponseDTO<UserDTO> checkLogin(@RequestBody UserDTO userDTO){
        return userService.checkLogin(userDTO);
    }

    /**
     * 后台用户退出登录
     * @return
     */
    @PostMapping("/logout")
    public ResponseDTO<Boolean> logout(@RequestBody UserDTO userDTO){
        return userService.logout(userDTO);
    }

}

    }

    /**
     * 前台根据商品id获取商品信息
     * @param productDTO
     * @return
     */
    @PostMapping("/get")
    public ResponseDTO<ProductDTO> getById(@RequestBody ProductDTO productDTO){
        return productService.getById(productDTO);
    }
}

/**
 */
@RestController("AdminCategoryController")
@RequestMapping("/admin/category")
public class CategoryController {

    @Resource
    private ICategoryService categoryService;

    /**
     * 后台保存商品分类数据(添加、修改)
     * @param categoryDTO
     * @return
     */
    @PostMapping("/save")
    public ResponseDTO<Boolean> saveCategory(@RequestBody CategoryDTO categoryDTO){
        return categoryService.saveCategory(categoryDTO);
    }

    /**
     * 获取首页热销商品数据
     * @return
     */
    @PostMapping("/sale_list")
    public ResponseDTO<List<ProductDTO>> getSaleList(){
        return productService.getSaleList();
    }

    /**
     * 获取首页高人气商品数据
     * @return
     */
    @PostMapping("/view_list")
    public ResponseDTO<List<ProductDTO>> getViewList(){
        return productService.getViewList();
    }

    /**
     * 首页获取全部菜单数据
     * @param productDTO
     * @return
     */
    @PostMapping("/list")
    public ResponseDTO<List<ProductDTO>> getProductList(@RequestBody ProductDTO productDTO){
        return productService.getProductList(productDTO);
    }

    /**
     * 前台获取最新上线菜单数据
     * @return
     */
    @PostMapping("/new")
    public ResponseDTO<List<ProductDTO>> listByCreateTime(){
        return productService.listByCreateTime();
    }

    /**
     * 前台根据商品id获取商品信息
     * @param productDTO
     * @return
     */
    @PostMapping("/get")
    public ResponseDTO<ProductDTO> getById(@RequestBody ProductDTO productDTO){
        return productService.getById(productDTO);
    }
}

     * @param categoryDTO
     * @return
     */
    @PostMapping("/save")
    public ResponseDTO<Boolean> saveCategory(@RequestBody CategoryDTO categoryDTO){
        return categoryService.saveCategory(categoryDTO);
    }

    /**
     * 后台分页获取商品分类数据
     * @param pageDTO
     * @return
     */
    @PostMapping("/list")
    public ResponseDTO<PageDTO<CategoryDTO>> getCategoryListByPage(@RequestBody PageDTO<CategoryDTO> pageDTO){
        return categoryService.getCategoryListByPage(pageDTO);
    }

    /**
     * 后台删除商品分类数据
     * @param categoryDTO
     * @return
     */
    @PostMapping("/remove")
    public ResponseDTO<Boolean> removeCategory(@RequestBody CategoryDTO categoryDTO){
        return categoryService.removeCategory(categoryDTO);
    }

    /**
     * 后台获取所有商品分类数据
     * @return
     */
    @PostMapping("/all")
    public ResponseDTO<List<CategoryDTO>> getAllCategoryList(){
        return categoryService.getAllCategoryList();
    }

    /**
     * 获取五个成交额最高的商品分类
     * @return
     */
    @PostMapping("/total-price")
    public ResponseDTO<List<CategoryDTO>> getCategoryListByPrice(){
        return categoryService.getCategoryListByPrice();
    }

}

        return productService.getProductTotal();
    }

    /**
     * 获取访问量最多的三个商品
     * @return
     */
    @PostMapping("/view_num")
    public ResponseDTO<List<ProductDTO>> getProductListByViewNum(){
        return productService.getProductListByViewNum();
    }
}

/**
 * 前台用户登录拦截器
 *
 */
@Component
public class UserLoginInterceptor implements HandlerInterceptor {

	private Logger log = LoggerFactory.getLogger(UserLoginInterceptor.class);

	@Resource
	private IUserService userService;

	@Override
	public boolean  preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
		String type = request.getHeader("type");
		response.setCharacterEncoding("UTF-8");
    }

    /**
     * 获取五个成交额最高的商品分类
     * @return
     */
    @PostMapping("/total-price")
    public ResponseDTO<List<CategoryDTO>> getCategoryListByPrice(){
        return categoryService.getCategoryListByPrice();
    }

}

/**
 */
@RestController("AdminProductController")
@RequestMapping("/admin/product")
public class ProductController {

    @Resource
    private IProductService productService;

    /**
     * 后台保存商品数据(添加、修改)
     * @param productDTO
     * @return
     */
    @PostMapping("/save")
    public ResponseDTO<Boolean> saveProduct(@RequestBody ProductDTO productDTO){
        return productService.saveProduct(productDTO);
    }
    }

    /**
     * 后台获取所有商品分类数据
     * @return
     */
    @PostMapping("/all")
    public ResponseDTO<List<CategoryDTO>> getAllCategoryList(){
        return categoryService.getAllCategoryList();
    }

    /**
     * 获取五个成交额最高的商品分类
     * @return
     */
    @PostMapping("/total-price")
    public ResponseDTO<List<CategoryDTO>> getCategoryListByPrice(){
        return categoryService.getCategoryListByPrice();
    }

}

/**
 */
@RestController("AdminProductController")
@RequestMapping("/admin/product")
public class ProductController {
    }
}

/**
 */
@RestController("WebProductController")
@RequestMapping("/web/product")
public class ProductController {

    @Resource
    private IProductService productService;

    /**
     * 获取首页推荐商品数据
     * @return
     */
    @PostMapping("/recommend_list")
    public ResponseDTO<List<ProductDTO>> getRecommendList(){
        return productService.getRecommendList();
    }

    /**
     * 获取首页热销商品数据
     * @return
     */
    @PostMapping("/sale_list")
    public ResponseDTO<List<ProductDTO>> getSaleList(){
        return productService.getSaleList();
    }

    /**
     * 获取首页高人气商品数据
     * @return
     */
    @PostMapping("/view_list")
    public ResponseDTO<List<ProductDTO>> getViewList(){
        return productService.getViewList();
    }

    private IUserService userService;

    /**
     * 后台保存用户数据(添加、修改)
     * @param userDTO
     * @return
     */
    @PostMapping("/save")
    public ResponseDTO<Boolean> saveUser(@RequestBody UserDTO userDTO){
        return userService.saveUser(userDTO);
    }

    /**
     * 后台分页获取用户数据
     * @param pageDTO
     * @return
     */
    @PostMapping("/list")
    public ResponseDTO<PageDTO<UserDTO>> getUserListByPage(@RequestBody PageDTO<UserDTO> pageDTO){
        return userService.getUserListByPage(pageDTO);
    }

    /**
     * 后台删除用户数据
     * @param userDTO
     * @return
     */
    @PostMapping("/remove")
    public ResponseDTO<Boolean> removeUser(@RequestBody UserDTO userDTO){
        return userService.removeUser(userDTO);
    }

    /**
     * 后台获取用户总数
     * @return
     */
    @PostMapping("/total")
    public ResponseDTO<Long> getUserTotal(){
        return userService.getUserTotal();
    }

    /**
     * 后台获取在线用户
     * @return
     */
    @PostMapping("/online")
    public ResponseDTO<List<UserDTO>> getOnlineUser(){
        return userService.getOnlineUser();
    }

    /**
     * 后台用户登录
            return ResponseEntity.notFound().build();
        }
    }

    /**
     * 自定义上传图片处理
     *
     * @param photo
     * @param request
     * @return
     */
    @PostMapping(value = "/upload_photo")
    public ResponseDTO<String> uploadPhoto(MultipartFile photo, HttpServletRequest request) {
        if (photo == null) {
            return ResponseDTO.errorByMsg(CodeMsg.PHOTO_EMPTY);
        }
        //检查上传文件大小 不能超过2MB
        if (photo.getSize() > 2 * 1024 * 1024) {
            return ResponseDTO.errorByMsg(CodeMsg.PHOTO_SURPASS_MAX_SIZE);
        }
        //获取文件后缀
        String suffix = photo.getOriginalFilename().substring(photo.getOriginalFilename().lastIndexOf(".") + 1, photo.getOriginalFilename().length());
        if (!CommonUtil.isPhoto(suffix)) {
            return ResponseDTO.errorByMsg(CodeMsg.PHOTO_FORMAT_NOT_CORRECT);
        }
        String path = request.getContextPath();
        String savePath = uploadPhotoPath + CommonUtil.getFormatterDate(new Date(), "yyyyMMdd") + "\\";
        File savePathFile = new File(savePath);
        if (!savePathFile.exists()) {
            //若不存在改目录,则创建目录
            savePathFile.mkdir();
        }
        String filename = new Date().getTime() + "." + suffix;
        logger.info("保存图片的路径:{}", savePath + filename);
        try {
            //将文件保存至指定目录
            photo.transferTo(new File(savePath + filename));
        } catch (Exception e) {
            e.printStackTrace();
            return ResponseDTO.errorByMsg(CodeMsg.SAVE_FILE_EXCEPTION);
        }
        String filepath = CommonUtil.getFormatterDate(new Date(), "yyyyMMdd") + "/" + filename;
        return ResponseDTO.successByMsg(filepath, "图片上传成功!");
    }
}


    @Resource
    private ICategoryService categoryService;

    /**
     * 后台保存商品分类数据(添加、修改)
     * @param categoryDTO
     * @return
     */
    @PostMapping("/save")
    public ResponseDTO<Boolean> saveCategory(@RequestBody CategoryDTO categoryDTO){
        return categoryService.saveCategory(categoryDTO);
    }

    /**
     * 后台分页获取商品分类数据
     * @param pageDTO
     * @return
     */
    @PostMapping("/list")
    public ResponseDTO<PageDTO<CategoryDTO>> getCategoryListByPage(@RequestBody PageDTO<CategoryDTO> pageDTO){
        return categoryService.getCategoryListByPage(pageDTO);
    }

    /**
     * 后台删除商品分类数据
     * @param categoryDTO
     * @return
     */
    @PostMapping("/remove")
    public ResponseDTO<Boolean> removeCategory(@RequestBody CategoryDTO categoryDTO){
        return categoryService.removeCategory(categoryDTO);
    }

    /**
     * 后台获取所有商品分类数据
     * @return
     */
    @PostMapping("/all")
    public ResponseDTO<List<CategoryDTO>> getAllCategoryList(){
        return categoryService.getAllCategoryList();
    }

    /**
     * 获取五个成交额最高的商品分类
     * @return
     */
    @PostMapping("/total-price")
    public ResponseDTO<List<CategoryDTO>> getCategoryListByPrice(){
        return categoryService.getCategoryListByPrice();
    }

}

/**
 */
@RestController("AdminCategoryController")
@RequestMapping("/admin/category")
public class CategoryController {

    @Resource
    private ICategoryService categoryService;

    /**
     * 后台保存商品分类数据(添加、修改)
     * @param categoryDTO
     * @return
     */
    @PostMapping("/save")
    public ResponseDTO<Boolean> saveCategory(@RequestBody CategoryDTO categoryDTO){
        return categoryService.saveCategory(categoryDTO);
    }

    /**
     * 后台分页获取商品分类数据
     * @param pageDTO
     * @return
     */
    @PostMapping("/list")
    public ResponseDTO<PageDTO<CategoryDTO>> getCategoryListByPage(@RequestBody PageDTO<CategoryDTO> pageDTO){
        return categoryService.getCategoryListByPage(pageDTO);
    }

    /**
     * 后台删除商品分类数据
     * @param categoryDTO
     * @return
     */
    @PostMapping("/remove")
    public ResponseDTO<Boolean> removeCategory(@RequestBody CategoryDTO categoryDTO){
        return categoryService.removeCategory(categoryDTO);
    }

    /**
     * 后台获取所有商品分类数据
     * @return
     */
    @PostMapping("/all")
    public ResponseDTO<List<CategoryDTO>> getAllCategoryList(){
        return categoryService.getAllCategoryList();
    }

    /**

/**
 * 前台用户登录拦截器
 *
 */
@Component
public class UserLoginInterceptor implements HandlerInterceptor {

	private Logger log = LoggerFactory.getLogger(UserLoginInterceptor.class);

	@Resource
	private IUserService userService;

	@Override
	public boolean  preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
		String type = request.getHeader("type");
		response.setCharacterEncoding("UTF-8");
		if("axios".equals(type)){
			// 说明是axios请求
			String token = request.getHeader("token");
			if(CommonUtil.isEmpty(token)){
				try {
					response.getWriter().write(JSON.toJSONString(CodeMsg.USER_SESSION_EXPIRED));
				} catch (IOException e) {
					e.printStackTrace();
				}
				return false;
			}else {
				// 和Redis中数据进行校验
     */
    @PostMapping("/total-price")
    public ResponseDTO<List<CategoryDTO>> getCategoryListByPrice(){
        return categoryService.getCategoryListByPrice();
    }

}

/**
 */
@RestController("AdminProductController")
@RequestMapping("/admin/product")
public class ProductController {

    @Resource
    private IProductService productService;

    /**
     * 后台保存商品数据(添加、修改)
     * @param productDTO
     * @return
     */
    @PostMapping("/save")
    public ResponseDTO<Boolean> saveProduct(@RequestBody ProductDTO productDTO){
        return productService.saveProduct(productDTO);
    }

    /**
     * 后台分页获取商品数据
     * @param pageDTO
     * @return
     */

/**
 */
@RestController("AdminProductController")
@RequestMapping("/admin/product")
public class ProductController {

    @Resource
    private IProductService productService;

    /**
     * 后台保存商品数据(添加、修改)
     * @param productDTO
     * @return
     */
    @PostMapping("/save")
    public ResponseDTO<Boolean> saveProduct(@RequestBody ProductDTO productDTO){
        return productService.saveProduct(productDTO);
    }

    /**
     * 后台分页获取商品数据
     * @param pageDTO
     * @return
     */
    @PostMapping("/list")
    public ResponseDTO<PageDTO<ProductDTO>> getProductListByPage(@RequestBody PageDTO<ProductDTO> pageDTO){
        return productService.getProductListByPage(pageDTO);
    }

    /**
     * 后台删除商品数据
     * @param productDTO
     * @return
     */
    @PostMapping("/remove")
    public ResponseDTO<Boolean> removeProduct(@RequestBody ProductDTO productDTO){
        return productService.removeProduct(productDTO);
    }

    /**
     * 后台获取商品总数
     * @return
     */

    /**
     * 前台获取最新上线菜单数据
     * @return
     */
    @PostMapping("/new")
    public ResponseDTO<List<ProductDTO>> listByCreateTime(){
        return productService.listByCreateTime();
    }

    /**
     * 前台根据商品id获取商品信息
     * @param productDTO
     * @return
     */
    @PostMapping("/get")
    public ResponseDTO<ProductDTO> getById(@RequestBody ProductDTO productDTO){
        return productService.getById(productDTO);
    }
}

/**
 */
@RestController("AdminCategoryController")
@RequestMapping("/admin/category")
public class CategoryController {

    @Resource
    private ICategoryService categoryService;

    /**
     * 后台保存商品分类数据(添加、修改)
     * @param categoryDTO
     * @return
}

/**
 */
@RestController("AdminUserController")
@RequestMapping("/admin/user")
public class UserController {

    @Resource
    private IUserService userService;

    /**
     * 后台保存用户数据(添加、修改)
     * @param userDTO
     * @return
     */
    @PostMapping("/save")
    public ResponseDTO<Boolean> saveUser(@RequestBody UserDTO userDTO){
        return userService.saveUser(userDTO);
    }

    /**
     * 后台分页获取用户数据
     * @param pageDTO
     * @return
     */
    @PostMapping("/list")
    public ResponseDTO<PageDTO<UserDTO>> getUserListByPage(@RequestBody PageDTO<UserDTO> pageDTO){
        return userService.getUserListByPage(pageDTO);

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐