基于微信小程序的食堂窗口自助点餐系统

这篇具有很好参考价值的文章主要介绍了基于微信小程序的食堂窗口自助点餐系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

末尾获取源码
开发语言:Java
Java开发工具:JDK1.8
后端框架:SSM
前端框架:VUE
数据库:MySQL5.7
服务器:Tomcat8.5
开发软件:IDEA / Eclipse

小程序运行软件:Wechat
是否Maven项目:是


目录

一、项目简介

二、系统功能

三、系统项目截图

3.1小程序端

3.2商家

3.3管理员

四、核心代码

4.1登录相关

4.2文件上传

4.3封装


一、项目简介

基于微信小程序的食堂窗口自助点餐系统利用网络沟通、计算机信息存储管理,有着与传统的方式所无法替代的优点。比如计算检索速度特别快、可靠性特别高、存储容量特别大、保密性特别好、可保存时间特别长、成本特别低等。在工作效率上,能够得到极大地提高,延伸至服务水平也会有好的收获,有了网络,基于微信小程序的食堂窗口自助点餐系统的各方面的管理更加科学和系统,更加规范和简便。


二、系统功能

基于微信小程序的食堂窗口自助点餐系统主要包括三大功能模块,即管理员、商家、用户。

(1)管理员模块:系统中的核心用户是管理员,管理员登录后,通过管理员来管理后台系统。主要功能有:用户管理、商家管理、店铺信息管理、菜品分类管理 、菜品信息管理、系统管理、订单管理。

(2)商家:店铺信息管理、菜品信息管理、订单管理。

(3)用户:首页、公告信息、购物车、我的功能模块


三、系统项目截图

3.1小程序端

用户在此可以进行登录,点击注册用户填写个人信息可以进行注册。 

基于微信小程序的食堂窗口自助点餐系统

注册页面。

基于微信小程序的食堂窗口自助点餐系统

用户登录成功后可以看到有 首页、公告信息、购物车、我的功能模块,其中在首页有店铺信息和菜品信息,点击相应的模块会跳转到相应的模块页面。

 基于微信小程序的食堂窗口自助点餐系统

在我的,可以进行充值以方便购物下单、购物车可以查看自己的购物车的商品、我的订单可以查看自己购买的商品、点击头像可以跳转到个人信息页面可以进行修改。

 基于微信小程序的食堂窗口自助点餐系统

在首页,点击店铺信息可以查看目前现有的店铺信息,有店铺的名称、账号、姓名、经营范围、详情等。 

 基于微信小程序的食堂窗口自助点餐系统

点击菜品信息会跳转到相应的页面,可以选择自己想要的菜品或者搜索自己想要的菜品进行下单。

基于微信小程序的食堂窗口自助点餐系统

选择好自己想要的菜品点击菜品可以跳转到菜品的信息页面,进行收藏或者下单都可以。

 基于微信小程序的食堂窗口自助点餐系统

 

3.2商家

 管理员和商家在后台可以进行登录并且管理一些相关的功能模块。

基于微信小程序的食堂窗口自助点餐系统

商家登录成功后可以在个人中心修改自己的个人信息。 

基于微信小程序的食堂窗口自助点餐系统

商家如果没有店铺的话需要在店铺信息管理中添加店铺信息又管理员进行审核并且显示在页面上。

基于微信小程序的食堂窗口自助点餐系统

菜品信息也是如此,店铺审核通过后可以添加菜品。

基于微信小程序的食堂窗口自助点餐系统

在订单管理中可以查看用户下单的菜品信息。

基于微信小程序的食堂窗口自助点餐系统

3.3管理员

管理员登录成功后可以看到有 用户管理、商家管理、店铺信息管理、菜品分类管理 、菜品信息管理、系统管理、订单管理。

基于微信小程序的食堂窗口自助点餐系统

基于微信小程序的食堂窗口自助点餐系统

基于微信小程序的食堂窗口自助点餐系统

基于微信小程序的食堂窗口自助点餐系统文章来源地址https://www.toymoban.com/news/detail-509799.html


四、核心代码

4.1登录相关


package com.controller;


import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;

/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;

	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }

    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }

    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
        userService.updateById(user);//全部更新
        return R.ok();
    }

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

4.2文件上传

package com.controller;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.UUID;

import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.ConfigEntity;
import com.entity.EIException;
import com.service.ConfigService;
import com.utils.R;

/**
 * 上传文件映射表
 */
@RestController
@RequestMapping("file")
@SuppressWarnings({"unchecked","rawtypes"})
public class FileController{
	@Autowired
    private ConfigService configService;
	/**
	 * 上传文件
	 */
	@RequestMapping("/upload")
	public R upload(@RequestParam("file") MultipartFile file,String type) throws Exception {
		if (file.isEmpty()) {
			throw new EIException("上传文件不能为空");
		}
		String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1);
		File path = new File(ResourceUtils.getURL("classpath:static").getPath());
		if(!path.exists()) {
		    path = new File("");
		}
		File upload = new File(path.getAbsolutePath(),"/upload/");
		if(!upload.exists()) {
		    upload.mkdirs();
		}
		String fileName = new Date().getTime()+"."+fileExt;
		File dest = new File(upload.getAbsolutePath()+"/"+fileName);
		file.transferTo(dest);
		FileUtils.copyFile(dest, new File("C:\\Users\\Desktop\\jiadian\\springbootl7own\\src\\main\\resources\\static\\upload"+"/"+fileName));
		if(StringUtils.isNotBlank(type) && type.equals("1")) {
			ConfigEntity configEntity = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile"));
			if(configEntity==null) {
				configEntity = new ConfigEntity();
				configEntity.setName("faceFile");
				configEntity.setValue(fileName);
			} else {
				configEntity.setValue(fileName);
			}
			configService.insertOrUpdate(configEntity);
		}
		return R.ok().put("file", fileName);
	}
	
	/**
	 * 下载文件
	 */
	@IgnoreAuth
	@RequestMapping("/download")
	public ResponseEntity<byte[]> download(@RequestParam String fileName) {
		try {
			File path = new File(ResourceUtils.getURL("classpath:static").getPath());
			if(!path.exists()) {
			    path = new File("");
			}
			File upload = new File(path.getAbsolutePath(),"/upload/");
			if(!upload.exists()) {
			    upload.mkdirs();
			}
			File file = new File(upload.getAbsolutePath()+"/"+fileName);
			if(file.exists()){
				/*if(!fileService.canRead(file, SessionManager.getSessionUser())){
					getResponse().sendError(403);
				}*/
				HttpHeaders headers = new HttpHeaders();
			    headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);    
			    headers.setContentDispositionFormData("attachment", fileName);    
			    return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
		return new ResponseEntity<byte[]>(HttpStatus.INTERNAL_SERVER_ERROR);
	}
	
}

4.3封装

package com.utils;

import java.util.HashMap;
import java.util.Map;

/**
 * 返回数据
 */
public class R extends HashMap<String, Object> {
	private static final long serialVersionUID = 1L;
	
	public R() {
		put("code", 0);
	}
	
	public static R error() {
		return error(500, "未知异常,请联系管理员");
	}
	
	public static R error(String msg) {
		return error(500, msg);
	}
	
	public static R error(int code, String msg) {
		R r = new R();
		r.put("code", code);
		r.put("msg", msg);
		return r;
	}

	public static R ok(String msg) {
		R r = new R();
		r.put("msg", msg);
		return r;
	}
	
	public static R ok(Map<String, Object> map) {
		R r = new R();
		r.putAll(map);
		return r;
	}
	
	public static R ok() {
		return new R();
	}

	public R put(String key, Object value) {
		super.put(key, value);
		return this;
	}
}

到了这里,关于基于微信小程序的食堂窗口自助点餐系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java计算机毕业设计基于安卓Android/微信小程序的食堂线上预约点餐系统APP

    我们生活的各个领域都涉及到计算机的应用,其中包括食堂线上预约点餐系统的网络应用,在外国线上管理系统已经是很普遍的方式,不过国内的线上管理系统可能还处于起步阶段。食堂线上预约点餐系统具有食堂线上预约点餐信息管理功能的选择。食堂线上预约点餐系统采

    2024年02月09日
    浏览(68)
  • 微信小程序nodejs+vue高校食堂餐厅点餐订餐系统ja221

    本文以实际运用为开发背景,运用软件工程原理和开发方法,它主要是采用 语言 node.js 框架:Express 前端:Vue.js 数据库:mysql  数据库工具:Navicat 开发软件:VScode  前端vue+elementui, (1) vue引入elementui 1.使用npm安装element-ui npm i element-ui -S 2.在main.js中导入使用vue import \\\'element-ui/li

    2024年02月06日
    浏览(53)
  • 微信小程序nodejs+vue+uniapp高校食堂线上预约点餐系统

    本次设计任务是要设计一个食堂线上预约点餐系统,通过这个系统能够满足管理员及学生的食堂线上预约点餐分享功能。系统的主要包括首页、个人中心、学生管理、菜品分类管理、菜品管理、关于我们管理、意见反馈、系统管理、订单管理等功能。  开发语言 node.js 框架:

    2024年02月12日
    浏览(60)
  • springboot+mysql+微信小程序智慧食堂预点餐管理系统-计算机毕业设计源码48846

    随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,餐饮业当然也不例外。智慧食堂预点餐管理系统小程序是以实际运用为开发背景,运用软件工程原理和开发方法,采用Java技术构建的一个管理系统。整个

    2024年02月03日
    浏览(49)
  • Nodejs+Vue校园餐厅外卖订餐点餐系统 PHP高校食堂 微信小程序_0u4hl 多商家

    对于校园订餐小程序将是又一个传统管理到智能化信息管理的改革,对于传统的校园订餐管理,所包括的信息内容比较多,对于用户想要对这些数据进行管理维护需要花费很大的时间信息,而且对于数据的存储比较麻烦,想要查找某一相关的数据信息比较繁琐,随着互联网大

    2024年01月16日
    浏览(50)
  • 微信食堂点餐小程序系统设计与实现

    目的 :本课题主要目标是设计并能够实现一个基于微信小程序预约订座小程序,前台用户使用小程序,后台管理使用基PHP+MySql的B/S架构;通过后台添加座位类型、座位号,用户通过小程序登录,查看座位、提交座位预约信息。 意义 :微信小程序预约订座小程序系统是计算机

    2024年02月11日
    浏览(51)
  • 基于微信小程序食堂订餐系统源码(微信小程序毕业设计)

    项目获取请看文章最底下官网 食堂订餐系统后台是基于java编程语言,mysql数据库,ssm框架,idea工具开发,用户端是采用微信小程序端开发,本系统主要分为用户,管理员,商家三个端,用户可以注册登陆微信小程序,查看菜品,购买菜品下订单,查看订单,查看订单配送,

    2024年02月08日
    浏览(59)
  • (微信小程序毕业设计源码)基于微信小程序食堂订餐系统源码

    项目获取请看文章最底下官网 食堂订餐系统后台是基于java编程语言,mysql数据库,ssm框架,idea工具开发,用户端是采用微信小程序端开发,本系统主要分为用户,管理员,商家三个端,用户可以注册登陆微信小程序,查看菜品,购买菜品下订单,查看订单,查看订单配送,

    2024年02月16日
    浏览(72)
  • 基于安卓android微信小程序的食堂订餐系统

    随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,食堂订餐小程序被用户普遍使用,为方便用户能够可以随时进行食堂订餐小程序的数据信息管理,特开发了基

    2024年02月04日
    浏览(48)
  • 微信小程序餐饮奶茶扫码点餐小程序堂食外卖桌台自助下单源码

    系统产品主要功能:【外卖】【堂食】【会员】【优惠券】【营销功能】【积分商城】【手机接单管理】【奶茶店】【餐饮店】【私房外卖】【酒吧/酒店】【小吃店】【便利店】【超市】全方位..... 餐饮5种场景 一、【桌台号/房问/包厢下单】扫码下单,服务员送餐上桌 二、

    2024年02月02日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包