java课设实现外卖点餐系统(小程序和后台管理)

概要

本系统是面向所有人的外卖点餐系统。系统用户角色可以分为管理员和用户。管理员可以登录后台管理端进行后台工作的管理,用户可以登录前台餐厅进行操作。
管理员可以管理员工信息、分类管理、导出分类信息数据表格、菜品信息管理、套餐信息管理、订单明细查询、订单管理、导出订单明细数据表格、修改个人信息等。用户可以查看菜品信息、查看菜品详情、选择菜品规格、管理购物车、收货地址管理、修改个人信息、查看订单信息、下单支付等。

整体架构流程

系统采用 Vue 前端框架加 AJAX 异步通信技术增加体验感。考虑当用户访问量过大时,数据库压力大,反应时间长,所以使用 Redis做缓存。本系统采用了前后端分离的方式,在后端框架中我们可将其看成三层结构 Web 服务层、业务逻辑服务层和持久层,前端则是用 Vue 搭建的 HTML 页面,前后端通过 Axios封装的 AJAX 技术跨域传值。数据则用 Json 格式封装,在这里前后端分离架构图如下所示。

在这里插入图片描述

核心业务设计

用户登录设计

微信小程序可以利用微信官方供应的登录能力,可以便利地获取用户身份标识和创立用户体系。开发者服务器根据用户标识生成自定义的登录态,用于识别用户身份然后在后续业务逻辑中进行前后端交互。为了确保应用数据的安全,开发者服务器不会将“session_key”发送到小程序,也不会向外部提供该密钥。临时登录凭证(“code” 只能使用一次。用户登录流程如下图所示。
在这里插入图片描述

用户下单设计

用户进入微信小程序后浏览菜品,然后添加菜品到购物车并进行下单,结算订单后用户选择是否确认订单,确认订单后将进入支付步骤,用户完成支付操作后并且商家同意接单后骑手就可以进行派送;如果商家拒绝订单,系统会自动进行退款步骤,订单将会被取消,订单费用会退还给用户。具体下单流程如下图所示。
在这里插入图片描述
具体代码如下:

@PostMapping("/submit")
    public R<Object> aliPay(@RequestBody Orders orders){
        Orders submit = ordersService.submit(orders);
        long orderId = IdWorker.getId(); //生成支付订单号
        AlipayBean bean = ordersService.getBean(submit,orderId);
        //获得初始化的 AlipayClient
        AlipayClient alipayClient = new DefaultAlipayClient(AliPayConfig.gatewayUrl,
                AliPayConfig.app_id, AliPayConfig.merchant_private_key, "json", AliPayConfig.charset,
                AliPayConfig.alipay_public_key, AliPayConfig.sign_type);
        //设置请求参数
        AlipayTradePagePayRequest aliPayRequest = new AlipayTradePagePayRequest();
        //商户订单号,后台可以写一个工具类生成一个订单号,必填
        String order_number = new String(bean.getOut_trade_no());
        //付款金额,从前台获取,必填
        String total_amount = new String(bean.getTotal_amount());
        //订单名称,必填
        String subject = new String(bean.getSubject());
        aliPayRequest.setNotifyUrl(AliPayConfig.notify_url);
        aliPayRequest.setReturnUrl(AliPayConfig.return_url);
        aliPayRequest.setBizContent("{\"out_trade_no\":\"" + order_number + "\","
                        + "\"total_amount\":\"" + total_amount + "\","
                        + "\"subject\":\"" + subject + "\","
                        + "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}");
        //请求
        String result = null;
        try {
            result = alipayClient.pageExecute(aliPayRequest).getBody();
        } catch (AlipayApiException e) {
            e.printStackTrace();
        }

支付系统设计

采用微信的 JSAPI 支付接口来实现支付功能,在支付场景中通过微信支付模块完成收款。JSAPI 支付适用于线下场所、公众号场景和 PC 网站场景。业务流程如下图所示
在这里插入图片描述

页面展示

小程序端用户登录授权界面
在这里插入图片描述
小程序端创建订单界面
在这里插入图片描述

后台管理系统——订单明细,支持条件查询,导出excel订单表
在这里插入图片描述

小结

在这里插入图片描述

` 提示:需要源码或文档的小伙伴请添加主页微信

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值