基于javaweb+mysql的springboot点餐系统(java+springboot+ssm+mysql+maven)

基于javaweb+mysql的springboot点餐系统(java+springboot+ssm+mysql+maven)

运行环境

Java≥8、MySQL≥5.7

开发工具

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

适用

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

功能说明

基于javaweb+mysql的SpringBoot点餐系统(java+springboot+ssm+mysql+maven)

一、项目简述

功能:数据库采用mysq昨为数据存储,系统中涉及到的关 键表有,用户表、用户详情表、商品表、订单表、商品订 单关联表、评价表等等。本系统分为前端和后端,前端功 能有:登录注册、修改个人信息、修改收货地址、查看商 品、加购商品、结算商品,对订单进行评价、用户留言等 功能;后端功能有:登录、商品管理、用户管理、订单管 理、留言公告管理等功能。本系统中的购物车功能设计、io流读写图片存放本地、订单导出、“echarts插件实现订单信 息统计、后台批量操作、pagehelper实现分页等细节值得 学习。

二、项目运行

环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)

项目技术: JSP +Springboot+ SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + Layui+ maven等等。

     * @param model 数据
     * @return
     */
    @RequestMapping("/savePassword")
    public String  saveAddress(
            String oldPwd, String newPwd, String comfirmPwd,Model model,HttpSession session){
       /* User user = (User) session.getAttribute("user");
        if(user == null){
            return "/login";
        }
        User userInfo = userService.findUserInfo(user.getUserId());
        String dbPwd = userInfo.getPassword();
        if(StringUtils.isEmpty(oldPwd) && StringUtils.isEmpty(newPwd) && StringUtils.isEmpty(comfirmPwd)){
            //输入为空
            model.addAttribute("errorInfo","输入为空!");
            return "/pages/user/user_password";
        }else if(!dbPwd.equals(oldPwd)){
            //旧密码不对
            model.addAttribute("errorInfo","旧密码不对!");
            return "/pages/user/user_password";
        }else if(!newPwd.equals(comfirmPwd)){
            //两次密码输入不一致
            model.addAttribute("errorInfo","两次输入密码不一致!");
            return "/pages/user/user_password";
        }else{
            //输入合法,进入修改密码
            userService.updatePwd(comfirmPwd);*/
            return "redirect:/userAccount";
    }

    /**
     * 跳转修改更换手机号界面
     * @return
     */
    @RequestMapping("/updateTel")
    public String updateTel(){
        return "/pages/user/user_telephone";
    }

    /*
     * 更换手机号
    private EvaService evaService;
    @Autowired
    private LeaveService leaveService;

    /**
     * 去用户中心
     */
    @GetMapping("/toUserCenter")
    public String userCenter(Model model,HttpSession session){
        User user = (User) session.getAttribute("user");
        if(user == null){
            return "/login";
        }
        User userInfos = userService.findUserInfo(user.getId());
        model.addAttribute("userInfos",userInfos);
        return "/pages/user/user_center";
    }

    /**
     * 去我的订单
     */
    @RequestMapping("/toUserOrder")
    public String toUserOrder(@RequestParam(required=true,defaultValue="1") Integer page, HttpSession session, Model model){
        User users = (User) session.getAttribute("user");
        User user = userService.findUserInfo(users.getId());
        //PageHelper.startPage(page, pageSize);这段代码表示,程序开始分页了,page默认值是1,pageSize默认是10,意思是从第1页开始,每页显示10条记录。
        PageHelper.startPage(page, 3);
        List<Order> orderList = orderService.findOrderListByUserId(users.getId());
        PageInfo<Order> p = new PageInfo<Order>(orderList);
        model.addAttribute("page", p);
        model.addAttribute("orderList",orderList);
        model.addAttribute("user",user);
        return "/pages/user/user_orderlist";
    }    /**
     * 显示收货地址
     * @param model
     * @return
     */
    @RequestMapping("/userAddress")
    public String userAddress(Model model, HttpSession session) {
@Controller
public class Back_AdminController {

    @Autowired
    private UserService userService;
    @Autowired
    private RoleService roleService;

    @GetMapping("/admin/toMemberList")
    public String toMemberList(Model model){

        List<User> allUser = userService.findAllUser();
        List<Role> roleList  = roleService.findRoleList();
        model.addAttribute("userList",allUser);
        model.addAttribute("roleList", roleList);
        return "/admin/member/member_list";
    }

    /**
     *
     * @param session  前台传过来的管理员的session,里面存有user对象
     */
    @GetMapping("/admin/personalInfo")
    public String findUserByUserId(HttpSession session, Model model){
        Integer userId = ((User) session.getAttribute("user")).getId();
        User user = userService.findUserInfo(userId);
        model.addAttribute("user", user);
        return "/admin/member/personal_info";
    }

    @PostMapping("/admin/updateAdmin")
    public String updateUser(User user) {
        userService.updateUser(user);
        return "redirect:/personal_info";
    }

    @GetMapping("/admin/updateAdminById")
    public String updateUserById(User user) {
        userService.updateUserById(user);
        return "redirect:/personal_info";
    }
/*
        return "redirect:/index";
    }

    /**
     * 获取验证码
     * @param response
     * @param request
     */
    @GetMapping(value = "getCode")
    public void getCode(HttpServletResponse response, HttpServletRequest request) {
        VerifyCode vc = new VerifyCode();
        try {
            vc.drawImage(response.getOutputStream());
        } catch (IOException e) {
            e.printStackTrace();
        }
        String code = vc.getCode();
        request.getSession().setAttribute("code", code);
    }

    /**
     * 校验验证码是否正确
     */
    @PostMapping("inputCode")
    @ResponseBody
    public Integer inputCode(HttpServletRequest request) {
        String code = (String) request.getSession().getAttribute("code");
        String inputCode = request.getParameter("inputCode");
        System.out.println("> > >" + code);
        System.out.println("input> > >" + inputCode);
        if (!code.toLowerCase().equals(inputCode.toLowerCase())) {
            return ResponseMessageEnum.FAIL.getCode();
        }
        return ResponseMessageEnum.SUCCESS.getCode();
    }

}


/**
         后端product模块相关的controller
 */
@Controller
public class Back_ProductController {

    @Autowired
    private ProductService productService;

    @Autowired
    private ProductKindService productKindService;

    /**
     * 按条件查找数据--模糊查询
     * @return
     */

/**
         后端product模块相关的controller
 */
@Controller
public class Back_ProductController {

    @Autowired
    private ProductService productService;

    @Autowired
    private ProductKindService productKindService;

    /**
     * 按条件查找数据--模糊查询
     * @return
     */
    @RequestMapping("/admin/toSelect")
    public String toSelect(@RequestParam("Pname") String Pname, Model model) {
        List<Product> list = productService.findAllProductCondition(Pname);
        model.addAttribute("productList", list);
        return "/admin/product/product_list";
    }

    public String adminLogin() {
       return "/admin/common/login";
    }

    @PostMapping("/admin/backLogin")
    public String backLogin(User user, Model model){
        User dbUser = userMapper.findUserByU_P(user.getUserName(),user.getPassword());
        //1-如果登录账号不存在 直接返回
        if(dbUser == null){
            model.addAttribute("errorInfo","用户名或密码错误~~");
            return "/admin/common/login";
        }
        //2-如果登录账号存在  判断是否为管理员身份
        if(dbUser.getRoleId() == 1){
            Subject subject = SecurityUtils.getSubject();
            //2-1-查询未读的留言
            List<Leave> messageList = leaveMapper.findAllLeaveList()
                    .stream().filter(leave -> leave.getStatus() == 0).collect(Collectors.toList());
            model.addAttribute("messageNum",messageList.size());
            subject.getSession().setAttribute("user",dbUser);
            return "/admin/common/index";
        }
        //3-如果不是管理员  返回登录界面
        model.addAttribute("errorInfo","非管理员不能登录后台管理系统~~");
        return "/admin/common/login";
    }

    @RequestMapping("/admin/home")
    public String home() {
        //跳转回用户列表页面
        return "/admin/common/home";
    }

    @RequestMapping("/brandManage")
    public String brandManage() {
        return "/admin/Brand_Manage";
    }

    @RequestMapping("toProduct_category_add")
    public String toProduct_category_add(){
        return "/admin/product-category-add";
    }

 */
@Controller
public class ProductController {

    @Autowired
    private ProductService productService;

    @RequestMapping("/toList")
    public String toList(@RequestParam(required = true, defaultValue = "1") Integer page, Model model) {
        PageHelper.startPage(page, 6);
        List<Product> productList = productService.findAllProductListByStatus(1);
        List<Product> hotProductList = productService.findHotProductList();
        model.addAttribute("productList", productList);
        model.addAttribute("hotProductList", hotProductList);
        PageInfo<Product> p = new PageInfo<>(productList);
        model.addAttribute("page", p);
        return "/pages/list/list1";
    }

    /**
     * 查询商品种类名信息;查询热门商品信息;
     * 获取数据,然后跳转到list.jsp页面并回显数据
     * 根据输入的查询条件查询商品,然后跳转到list.jsp页面并回显数据
     * 获取查询条件(商品的名称(product_name), 商品的种类(name))
     * 商品的最低价格(minprice)及最高价格(maxprice)
     */
    @PostMapping("/findProductByCondition")
    public String findProductByCondition(@RequestParam(required = true, defaultValue = "1") Integer page, String product_name, String name, Double minprice, Double maxprice, Model model) {
        PageHelper.startPage(page, 4);
        List<Product> productConditionList = productService.findProductByCondition(product_name,name,minprice,maxprice);
        List<Product> HotProductList = productService.findHotProductList();
        PageInfo<Product> p = new PageInfo<Product>(productConditionList);
        model.addAttribute("productList", productConditionList);
        model.addAttribute("HotProductList", HotProductList);
        model.addAttribute("pages", p);
        return "/pages/list/list";
    }
    @GetMapping("/searchByConditition")
    public String searchByConditition(@RequestParam(required = true, defaultValue = "1") Integer page,String keyword, Model model){
        PageHelper.startPage(page, 4);
        List<Product> productConditionList = productService.searchByConditition(keyword);
        List<Product> HotProductList = productService.findHotProductList();
        PageInfo<Product> p = new PageInfo<Product>(productConditionList);
        model.addAttribute("productList", productConditionList);
     */
    @RequestMapping("/admin/createNotice")
    public  String createNotice(String title,String content,int status){
        noticeService.addNotice(title,content,status);
        return "redirect:/admin/toNoticeList";
    }

    /**
     * 修改公告
     */
    @RequestMapping("/admin/updateNotice")
    public  String updateNotice(Integer id,String utitle,String ucontent,int ustatus){
        noticeService.updateNotice(id,utitle,ucontent,ustatus);
        return "redirect:/admin/toNoticeList";
    }

    /**
     * 批量删除公告
     */
    @RequestMapping("/admin/deleteBatchNotice")
    public  String deleteBatchNotice(@RequestParam("id") Integer[] id){
        noticeService.deleteNotices(id);
        return "redirect:/admin/toNoticeList";
    }

    /**
     * 批量显示公告
     */
    @RequestMapping("/admin/showBatchNotice")
    public  String showBatchNotice(@RequestParam("id") Integer[] id){
        noticeService.showNotices(id);
        return "redirect:/admin/toNoticeList";
    }

    /**
     * 批量关闭公告
     */
    @RequestMapping("/admin/closeBatchNotice")
    public  String closeBatchNotice(@RequestParam("id") Integer[] id){
        noticeService.closeNotices(id);
        return "redirect:/admin/toNoticeList";
    }

}
       /* userService.updateEmail(user.getUserId(),newEmail);*/
        return "redirect:/userAccount";
    }

    /**
     * 修改订单状态
     * @param status
     * @param orderId
     * @return
     */
    @RequestMapping("/updateOrderStatus")
    public String updateOrderStatus(Integer status,String orderId){
        orderService.updateOrderStatus(status,orderId);
        return "redirect:/toUserOrder";
    }

    /**
     * 跳转评价页面
     */
    @RequestMapping("/toEvaluate")
    public String toEvaluate(String orderId,Integer status,Model model){
        List<String> productNameList = new ArrayList<>();
        orderService.findProductByOrderId(orderId).forEach((product) -> {
            productNameList.add(product.getProductName());
        });
        model.addAttribute("productNameList",productNameList);
        model.addAttribute("orderId",orderId);
        model.addAttribute("status",status);
        return "/pages/user/evaluate";
    }

    /**
     * 发布评论
     */
    @RequestMapping("/saveEva")
    public String saveEva(String orderId,String content,Integer status){
        evaService.saveEva(orderId,content,status);
        return "redirect:/toEvaList";
    }

    /**
     * 用户评价列表
     * @return
     */
    @RequestMapping("/toEvaList")
    public String toEvaList(@RequestParam(required=true,defaultValue="1") Integer page,Model model){
        PageHelper.startPage(page, 4);
        List<Evaluate> evaList = evaService.findAllEvaList();
        //PageHelper.startPage(page, pageSize);这段代码表示,程序开始分页了,page默认值是1,pageSize默认是10,意思是从第1页开始,每页显示10条记录。
        PageInfo<Evaluate> p=new PageInfo<Evaluate>(evaList);
        model.addAttribute("page", p);
        model.addAttribute("evaList",evaList);
        return "/pages/user/evaluate_list";
        return "/pages/user/user_center";
    }

    /**
     * 去我的订单
     */
    @RequestMapping("/toUserOrder")
    public String toUserOrder(@RequestParam(required=true,defaultValue="1") Integer page, HttpSession session, Model model){
        User users = (User) session.getAttribute("user");
        User user = userService.findUserInfo(users.getId());
        //PageHelper.startPage(page, pageSize);这段代码表示,程序开始分页了,page默认值是1,pageSize默认是10,意思是从第1页开始,每页显示10条记录。
        PageHelper.startPage(page, 3);
        List<Order> orderList = orderService.findOrderListByUserId(users.getId());
        PageInfo<Order> p = new PageInfo<Order>(orderList);
        model.addAttribute("page", p);
        model.addAttribute("orderList",orderList);
        model.addAttribute("user",user);
        return "/pages/user/user_orderlist";
    }    /**
     * 显示收货地址
     * @param model
     * @return
     */
    @RequestMapping("/userAddress")
    public String userAddress(Model model, HttpSession session) {

        User user = (User) session.getAttribute("user");
        User userInfos = userService.findUserInfo(user.getId());
        model.addAttribute("userInfos",userInfos);
        return "/pages/user/user_address";
    }
    /**
     *
     *更新收货地址
     */
    @RequestMapping("/updateAddress")
    public String updateAddress(User user,Model model){
        userService.updateAddress(user);
        return "redirect:/userAddress";
    }

    /**
     * 显示个人中心信息
     * @param model
     * @return
     */
    @RequestMapping("/userAccount")
    public String userAccount(Model model,HttpSession session){
        User user = (User) session.getAttribute("user");
    public  String registerToLogin(){
        return  "/login";
    }
/*
    *//**
     * 跳转到user_center.jsp页面
     *//*
    @RequestMapping("/toUser_center")
    public String toUser_center(){
        return "/pages/user/user_center";
    }*/
/*
    *//**
     * 跳转到user_orderlist.jsp页面
     *//*
    @RequestMapping("/toUser_orderlist")
    public String toUser_orderlist(){
        return "/pages/user/user_orderlist";
    }*/
}

public class Uploader {
	private HttpServletRequest request = null;
	private Map<String, Object> conf = null;

	public Uploader(HttpServletRequest request, Map<String, Object> conf) {
		this.request = request;
		this.conf = conf;

public class ActionEnter {
	
	private HttpServletRequest request = null;
	
	private String rootPath = null;
	private String contextPath = null;
	
	private String actionType = null;
	
	private ConfigManager configManager = null;

	public ActionEnter ( HttpServletRequest request, String rootPath ) {
		
		this.request = request;
		this.rootPath = rootPath;
		this.actionType = request.getParameter( "action" );
		this.contextPath = request.getContextPath();
		this.configManager = ConfigManager.getInstance( this.rootPath, this.contextPath, request.getRequestURI() );
		
	}
	
	public String exec () {
		
		String callbackName = this.request.getParameter("callback");
		
		if ( callbackName != null ) {

			if ( !validCallbackName( callbackName ) ) {
				return new BaseState( false, AppInfo.ILLEGAL ).toJSONString();
			}
			
			return callbackName+"("+this.invoke()+");";
			
		} else {
			return this.invoke();
		}

	}
	
        return "redirect:/index";
    }
    @RequestMapping("/aboutUs")
    public String aboutUs(){
        return "/pages/other/about_us";
    }
    @RequestMapping("/userLogout")
    public String userLogout(HttpSession httpSession){
        //将user对象从session域中删除
        httpSession.removeAttribute("user");
        //页面应该跳转到登陆页面
        return "redirect:/index";
    }
}

/**
  后台订单相关controller
 */

@Controller
public class Back_OrderController {
}

public class ActionEnter {
	
	private HttpServletRequest request = null;
	
	private String rootPath = null;
	private String contextPath = null;
	
	private String actionType = null;
	
	private ConfigManager configManager = null;

	public ActionEnter ( HttpServletRequest request, String rootPath ) {
		
		this.request = request;
		this.rootPath = rootPath;
		this.actionType = request.getParameter( "action" );
		this.contextPath = request.getContextPath();
		this.configManager = ConfigManager.getInstance( this.rootPath, this.contextPath, request.getRequestURI() );
		
	}
	
	public String exec () {
		
		String callbackName = this.request.getParameter("callback");
		
		if ( callbackName != null ) {
        model.addAttribute("evaList",evaList);
        return "/pages/user/evaluate_list";
    }

    @RequestMapping("/createLeave")
    public String createLeave(String content,HttpSession session){
        User user = (User)session.getAttribute("user");
        leaveService.createLeave(content,user);
        return "redirect:/index";
    }
    @RequestMapping("/aboutUs")
    public String aboutUs(){
        return "/pages/other/about_us";
    }
    @RequestMapping("/userLogout")
    public String userLogout(HttpSession httpSession){
        //将user对象从session域中删除
        httpSession.removeAttribute("user");
        //页面应该跳转到登陆页面
        return "redirect:/index";
    }
}


		return list.contains(type);
	}
}

/**

 */

@Controller
public class Back_LeaveController {

    //留言信息处理
    @Autowired
    private LeaveService leaveService;
    @Autowired
    private UserService userService;

    @RequestMapping("/admin/toLeaveList")
    public String guestBook(Model model) {
        List<Leave> list=leaveService.findAllLeaveList();
        model.addAttribute("list",list);
        return "/admin/leave/leave_list";
    }
    @RequestMapping("/admin/delete")
    public String  deleteById(String leaveId){
        leaveService.deleteById(leaveId);
        return "redirect:/admin/toLeaveList";
    }

    @RequestMapping("/admin/deleteAll")
    public String  deleteAll(@RequestParam("id") Integer[] leaveIds){
        System.out.println(Arrays.toString(leaveIds));
        leaveService.deleteAll(leaveIds);

@Controller
public class HeadController {

    /**
     * 跳转到residter.jsp页面
     */
    @GetMapping("/toRegister")
    public String toRegister(){
        return "/register";
    }

    /**
     * 跳转到login.jsp页面
     */
    @GetMapping("/toLogin")
    public String toLogin(){
        return "/login";
    }

    /**
     * 跳转到residter.jsp页面
     */
    @GetMapping("/loginToRegister")
    public String loginToRegister(){
        return "/register";
    }

    /**
     * 从注册页面跳转到登陆页面
     */
    @GetMapping("/registerToLogin")
    public  String registerToLogin(){
        return  "/login";
    }
/*
    *//**
     * 跳转到user_center.jsp页面
     *//*
    @RequestMapping("/toUser_center")
    public String toUser_center(){
        return "/pages/user/user_center";
    }*/
/*
    *//**
     * 跳转到user_orderlist.jsp页面
     *//*
    @RequestMapping("/toUser_orderlist")
    public String toUser_orderlist(){

请添加图片描述

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值