基于javaweb和mysql的springboot在线点餐系统(java+springboot+maven+mybatis+vue+mysql+redis)
·
基于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);







更多推荐
所有评论(0)