🔥作者:雨晨源码🔥
💖简介:java、微信小程序、安卓;定制开发,远程调试 代码讲解,文档指导,ppt制作💖
精彩专栏推荐订阅:在下方专栏👇🏻👇🏻👇🏻👇🏻
Java精彩实战毕设项目案例
小程序精彩项目案例
Python实战项目案例

​💕💕文末获取源码


本次文章主要是介绍SpringBoot外卖点餐小程序的功能,系统分为二个角色,分别是用户和管理员

外卖点餐小程序-系统前言简介

小程序外卖扫码点餐为客户提供的是最方便的饮食方式,以快速、便捷的点餐业务送货上门为 -客户服务,这省去了客户很多不必要的时间和麻烦,给商家带来更多利益。同时,小程序外卖扫码点餐可以辅助餐饮企业营销,通过信息管理,可以记录餐饮企业方方面面的数据。
与传统的电话点餐相比,网络点餐有着诸多优点。比如,电话点餐时,往在由于客户对餐饮企业提供的信息不够了解,就会进行相关的咨询,造成一定程度上的时间浪费。电话接收人员在同一天反复重复相同的信息,也造成了人力资源的浪费,相比而言,网络点餐提供图文并茂,及时更新的丰富信息,让客户就像在超市里挑选商品一样选订自己喜爱的餐品,这在一定程度上给了客户更多的选择权和自由权。本文设计了一套基于小程序的小程序外卖扫码点餐管理系统,该系统的平台开发语言是基于面向对象思想的Java语言,在windows环境下,集成了SpringBoot框架作为项目的骨架,采用了小程序+BootStrap等前端技术,并使用MySQL作为本项目的后台数据库,目的是对网络点餐信息进行管理,开发一款能信息化的管理点餐的平台。

外卖点餐小程序-开发技术与环境

  • 开发语言:Java
  • 后端框架:SpringBoot(spring+springmvc+mybatis)
  • 前端:微信小程序
  • 数据库:MySQL
  • 系统架构:B/S
  • 开发工具:jdk1.8、Tomcat8.5(内置)、Navicat,IDEA(Eclipse、MyEclipse )选其一

外卖点餐小程序-功能介绍

2个角色:用户/管理员(亮点:redis缓存,购物车功能)

用户:登录注册,我的地址,我的订单,购物车,点菜,订单结算,评价(好评,中评,差评)等。
管理员:商品管理,菜品管理,订单管理,老板查帐,评价管理,店铺信息。
​​​​​​

外卖点餐小程序-演示图片

1.用户端页面:
☀️点餐界面☀️
在这里插入图片描述

☀️菜品详情.☀️
在这里插入图片描述

☀️购物车☀️
在这里插入图片描述

☀️商家信息☀️
在这里插入图片描述

☀️我的订单☀️
在这里插入图片描述

☀️我的地址☀️
在这里插入图片描述

2.管理员端页面:

☀️菜品管理☀️
在这里插入图片描述

☀️分类管理☀️
在这里插入图片描述

☀️订单管理☀️
在这里插入图片描述

☀️评价总览☀️
在这里插入图片描述

☀️收入统计☀️
在这里插入图片描述

☀️店铺信息☀️
在这里插入图片描述

外卖点餐小程序-代码展示

1.订单管理【代码如下(示例):】

/**
	 * 根据订单id得到订单详情
	 * 
	 * @param orderId
	 * @return
	 */
	@RequestMapping("/getOrderDetailByOrderId")
	public Result getOrderDetailByOrderId(String orderId) {
		OrderDetail detail = orderMainService.getOrderDetailByOrderId(orderId);
		return Result.ok(detail);
	}

	/**
	 * 商家获取所有订单
	 * 
	 * @return
	 */
	@RequestMapping("/getOrders")
	public Map<String, Object> getOrders(@RequestParam(defaultValue = "1") Integer page,
			@RequestParam(defaultValue = "10") Integer rows, @RequestParam(defaultValue = "0") Integer status) {
		Map<String, Object> map = orderMainService.getOrders(page, rows, status);
		return map;
	}

	/**
	 * 根据orderId得到菜单商品列表
	 */
	@RequestMapping("/getDisksByOrderId")
	public Result getDisksByOrderId(String orderId) {
		List<OrderItem> list = orderItemService.getOrderItemByOrderId(orderId);
		return Result.ok(list);
	}

	@RequestMapping("/getStatistics")
	public Result getStatistics(Map<String, Object> params) throws ParseException {

		// 查取消 未付款取消
		params.put("status", OrderConstant.CANCEL_NO_PAY);
		Statistics CANCEL_NO_PAY = orderMainService.getStatistics(new Query(params));

		// 查取消 付款后取消
		params.put("status", OrderConstant.CANCEL_PAY);
		Statistics CANCEL_PAY = orderMainService.getStatistics(new Query(params));

		Statistics cancel = new Statistics();
		cancel.setSum(CANCEL_NO_PAY.getSum() + CANCEL_PAY.getSum());
		double c1 = Double.parseDouble(CANCEL_NO_PAY.getTotal() == null ? "0" : CANCEL_NO_PAY.getTotal());
		double c2 = Double.parseDouble(CANCEL_PAY.getTotal() == null ? "0" : CANCEL_PAY.getTotal());
		cancel.setTotal(PIPIUtils.formatMoney(String.valueOf(c1 + c2)));

		// 查完成
		params.put("status", OrderConstant.COMPLETE);
		Statistics complete = orderMainService.getStatistics(new Query(params));
		complete.setTotal(complete.getTotal() == null ? "0" : PIPIUtils.formatMoney(complete.getTotal()));

		Map<String, Statistics> map = new HashMap<String, Statistics>();
		map.put("cancel", cancel);
		map.put("complete", complete);

		return Result.ok(map);
	}

2.评价管理【代码如下(示例):】

@Autowired
   private EvaluateService evaluateService;

   /**
    * 根据菜的id得到该菜所有评价
    * 
    * @param diskId
    * @return
    */
   @RequestMapping("/getEvalsByDiskId")
   public Result getEvalsByDiskId(Integer diskId) {
   	Evals evals = evaluateService.getEvalsByDiskId(diskId);
   	return Result.ok(evals);
   }

   /**
    * 得到所有的评价
    * 
    * @param pageNum
    * @param pageSize
    * @return
    */
   @RequestMapping("/getEvals")
   public Map<String, Object> getEvals(@RequestParam(defaultValue = "1") Integer page,
   		@RequestParam(defaultValue = "10") Integer rows, @RequestParam(defaultValue = "0") Integer evalValue) {
   	Map<String, Object> evals = evaluateService.getEvals(page, rows, evalValue);
   	return evals;
   }

   @RequestMapping("/saveEvals")
   public Result saveEvals(String evals, Integer isAnonymous, String avatarUrl, String nickname) {
   	List<Evaluate> evalss = JsonUtils.jsonToList(evals, Evaluate.class);
   	evaluateService.saveEvals(evalss, isAnonymous, avatarUrl, nickname);
   	return Result.ok();
   }
3.图片上传【代码如下(示例):】
/**
* 图片上传
*/
@Controller
@RequestMapping("/pic")
public class PictureController {

   @Value("${server.port}")
   private String port;

   @Value("${server.servlet-path}")
   private String servletPath;

   @Value("${upload.img.path}")
   private String imgPath;

   @RequestMapping(value = "/upload", method = RequestMethod.POST)
   @ResponseBody
   public String fileUpload(MultipartFile uploadFile) {
   	// 接受上传的文件
   	// 取扩展名
   	String originFilename = uploadFile.getOriginalFilename();
   	String etc = originFilename.substring(originFilename.lastIndexOf("."));
   	// 上传到图片服务器
   	if (uploadFile == null || uploadFile.getSize() <= 0) {
   		throw new ImageException("图片不能为空");
   	}
   	try {
   		File f= new File("");
   		File file = new File(imgPath);
   		//判断文件夹是否存在
   		if (!file.exists()&&!file.isDirectory()){
   			file.mkdir();
   		}
   		//判断文件是否为空
   		if (!uploadFile.isEmpty()){
   			String fileName=uploadFile.getOriginalFilename();
   			//文件上传
   			uploadFile.transferTo(new File(file.getAbsolutePath()+"\\"+fileName));
   		}
   		Map<String, Object> result = new HashMap<>();
   		result.put("error", 0);
           String url = "http://localhost:"+port+"/img/"+originFilename;
   		result.put("url", url);
   		return JsonUtils.objectToJson(result);

外卖点餐小程序-结语(文末获取源码)

💕💕
Java精彩实战毕设项目案例
小程序精彩项目案例
Python实战项目集
💟💟如果大家有任何疑虑,欢迎在下方位置详细交流。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐