【苍穹外卖 | 项目日记】第二天

本文介绍了在项目开发中如何通过AOP优化公共字段处理,使用自定义注解拦截并填充字段,同时实现了一个文件上传接口,利用阿里云OSS服务。还涉及了Java注解如@Target和@Retention,以及通过反射处理不同类型的对象方法调用。

前言:

        坦率的讲今天有点水,课也多,上了一天课,中午下课后和晚上十一点多跑完步回来写了两个接口

0f526593ea354ea69e92d64dcbf9e025.png

目录

前言:

今日完结任务:

 今日收获:

1.实现了公共字段填充功能

2.实现了文件上传接口

杂项知识点:

总结:


 

 

今日完结任务:

  • 实现了公共字段填充功能
  • 实现了文件上传接口

 今日收获:

1.实现了公共字段填充功能

我们的项目开发中会牵扯大量的数据表,而这些数据表中有一些重叠的字段,我们把他们叫做公共字段,例如菜品种类表和员工表里面都有修改人/时间 以及 创建人/时间 四个公共的字段,而且代码也基本一致,都是给对象赋值然后传递到mapper层进行数据库操作,而大量相似的代码会造成代码的冗余,因此我们对此方面进行优化:
优化前:

### 苍穹外卖第二天配送逻辑的IT实现 在苍穹外卖项目的业务场景中,“第二天配送”的功能涉及多个模块之间的协同工作,包括订单管理、库存控制以及时间调度等。以下是关于该功能的具体实现细节: #### 1. 时间规则的设计与应用 为了支持“第二天配送”,系统需要引入明确的时间规则来区分当前时间和目标配送日期。通常情况下,可以通过设置一个截止时间(如当天晚上23:59),在此之后提交的订单会被标记为次日配送。 - **订单创建阶段** 当用户下单时,系统会判断当前时间是否超过预设的截止时间。如果未超出,则默认当日配送;否则自动调整为目标日期的次日配送[^1]。 - **数据库字段扩展** 在订单表中新增`delivery_date`字段用于存储具体的配送日期,并通过后台服务动态计算其值。例如: ```sql ALTER TABLE orders ADD COLUMN delivery_date DATE; ``` #### 2. 缓存机制的作用 缓存在此流程中的主要作用是提升性能并减少重复查询的压力。对于经常访问的数据项(比如热门菜品列表或套餐组合),可以预先加载至内存级高速缓冲区以便快速响应前端请求[^3]。 - **缓存更新策略** 需要制定合理的失效周期或者事件驱动型刷新方案以确保展示给用户的始终是最新的可用选项。当管理员修改某道菜的价格或是下架某些商品时,关联的缓存记录也应同步清除重置。 #### 3. 后台任务队列处理 考虑到实际操作可能存在大量并发写入的情况,建议采用异步消息传递架构来进行后续步骤的通知推送。这样不仅可以缓解高峰期服务器负载过高问题,还能保障事务一致性。 - **示例代码片段** 下面是一个简单的Python脚本演示如何利用Celery框架执行延时任务: ```python from celery import Celery app = Celery('tasks', broker='pyamqp://guest@localhost//') @app.task def schedule_delivery(order_id, target_time): """安排指定订单在未来某一时刻发货""" sleep((target_time - datetime.now()).total_seconds()) process_order_shipping(order_id) # 调用方法 tomorrow = date.today() + timedelta(days=1) schedule_delivery.apply_async(args=[order.id], eta=tomorrow) ``` #### 4. 商户系统的集成考量 最后一点值得注意的是,在跨平台交互方面也需要做好充分准备。假设外部合作方提供了RESTful API接口供我们调取店铺信息或其他资源链接,则应当遵循标准协议格式发起HTTP调用获取所需资料[^4]。 --- ###
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是一盘牛肉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值