外卖小程序实战

简介: 外卖小程序实战
    /**
     * 商家端APP接单
     * @param param
     * @param userId
     * @return
     */
    @Override
    public Object acceptOrder(acceptOrderDto param, Integer userId) throws Exception {
 
        //1.检查参数
        if (param == null || param.getShopId() == null) {
            throw new TakeOutException("shopId 为空");
        }
 
        // 2. 获取分布式锁,key设置为订单 ID
        RLock lock = redissonClient.getLock("order_lock:" + param.getOrderId());
        try {
            // 2.1 尝试获取锁,等待超时时间30秒
            boolean lockAcquired = lock.tryLock(30, TimeUnit.SECONDS);
            if (!lockAcquired) {
                throw new TakeOutException("获取订单锁失败");
            }
            //3.得到订单信息
            Order order = orderMapper.selectById(param.getOrderId());
 
            //订单不存在
            if (order == null) {
                throw new TakeOutException("订单不存在");
            }
 
            //4.改变订单状态
            order.setStatus(2); // 设置订单状态为“已接单”
            orderMapper.updateById(order);
 
            //5.返回处理结果
            acceptedOrderResp acceptedOrderResp = new acceptedOrderResp();
            acceptedOrderResp.setStatus(2);
            acceptedOrderResp.setShopId(param.getShopId());
            return Result.ok(acceptedOrderResp);
        }finally {
            // 6. 无论如何,在方法结束时都要释放锁
            lock.unlock();
        }
 
    }
    @PostMapping("/acceptedOrder")
    @Operation(summary = "商家端APP接受订单")
    public Result acceptOrder(@RequestBody @Valid acceptOrderDto param) throws Exception {
        log.info("/api/order/acceptedOrder ", JSONUtil.toJsonStr(param));
        Integer userId = super.getUserId();
        return Result.ok(orderService.acceptOrder(param, userId));
    }


目录
相关文章
|
4月前
|
小程序 JavaScript 前端开发
基于微信小程序的校园外卖订餐配送系统
本研究针对校园外卖配送效率低、体验差等问题,设计并实现基于微信小程序的智能配送平台。融合SSM、Vue、uni-app等技术,优化点餐、支付与配送流程,提升师生用餐体验与餐饮管理效率。
|
5月前
|
缓存 小程序 前端开发
商城/点餐/家政类小程序源码合集_微信抖音小程序源码开发从入门到精通实战
本文系统讲解如何利用现有源码快速开发商城、点餐、家政类微信/抖音小程序,涵盖环境搭建、核心功能实现、多平台部署与优化,提供完整技术方案。实战导向,助力开发者高效入门与落地。
|
5月前
|
小程序 PHP 图形学
热门小游戏源码(Python+PHP)下载-微信小程序游戏源码Unity发实战指南​
本文详解如何结合Python、PHP与Unity开发并部署小游戏至微信小程序。涵盖技术选型、Pygame实战、PHP后端对接、Unity转换适配及性能优化,提供从原型到发布的完整指南,助力开发者快速上手并发布游戏。
|
9月前
|
JSON 监控 小程序
微信百度字节小程序包过大解决方案(实战经验总结)-优雅草卓伊凡|果果|小无
微信百度字节小程序包过大解决方案(实战经验总结)-优雅草卓伊凡|果果|小无
1071 14
微信百度字节小程序包过大解决方案(实战经验总结)-优雅草卓伊凡|果果|小无
|
12月前
|
人工智能 自然语言处理 小程序
让小程序拥有“视觉之眼“:DeepSeek图像识别实战指南
本文介绍如何通过DeepSeek计算机视觉技术,赋予小程序“看懂世界”的能力。从构建视觉感知系统、训练专属视觉词典到创造会思考的界面,详细讲解了实现智能相册、植物识别器和老旧照片修复等功能的步骤。最后探讨性能优化与安全合规要点,展望未来视觉智能应用的无限可能。
|
JavaScript 小程序 开发者
uni-app开发实战:利用Vue混入(mixin)实现微信小程序全局分享功能,一键发送给朋友、分享到朋友圈、复制链接
uni-app开发实战:利用Vue混入(mixin)实现微信小程序全局分享功能,一键发送给朋友、分享到朋友圈、复制链接
2624 0
|
小程序 安全 搜索推荐
【微信小程序开发实战项目】——个人中心页面的制作
本文介绍了如何设计和实现一个网上花店的微信小程序,包括个人中心、我的订单和我的地址等功能模块。个人中心让用户能够查看订单历史、管理地址和与客服互动。代码示例展示了`own.wxml`、`own.wxss`和`own.js`文件,用于构建个人中心界面,包括用户信息、订单链接、收藏、地址、客服和版本信息。我的订单部分展示了订单详情,包括商品图片、名称、销量、价格和订单状态,用户可以查看和管理订单。我的地址功能允许用户输入和编辑收货信息,包括联系人、性别、电话、城市和详细地址。每个功能模块都附有相应的WXML和WXSS代码,以及简洁的样式设计。
1038 0
【微信小程序开发实战项目】——个人中心页面的制作
|
小程序 开发者
uniapp实战 —— 开发微信小程序的调试技巧
uniapp实战 —— 开发微信小程序的调试技巧
1417 1
|
前端开发 小程序
【微信小程序-原生开发】实用教程20 - 生成海报(实战范例为生成活动海报,内含生成指定页面的小程序二维码,保存图片到手机,canvas 系列教程)
【微信小程序-原生开发】实用教程20 - 生成海报(实战范例为生成活动海报,内含生成指定页面的小程序二维码,保存图片到手机,canvas 系列教程)
978 0
|
小程序
【微信小程序】实战案例 -- 向订阅用户发送消息(范例:报名提醒)
【微信小程序】实战案例 -- 向订阅用户发送消息(范例:报名提醒)
765 0

热门文章

最新文章