一个二手闲置商城,订单与商品模块之间的交互问题

购物车与商品用户的交互问题:

​1.首先,分析问题的背景:

​当用户在商品的界面点击立即购买的时候,如果没有购物车,那么现有的架构是:

​直接调用api传输商品详情+卖家Id+买家ID,直接跳转到支付界面上,例如填写个人信息,填写地址......

​上述的方式对于购买流程而言,需要设计的只有:服务之间的同步,那么就引发了一个问题:当我用户点击立即购买的时候,需要直接将商品的状态进行锁定吗?如果锁定的话,那么锁定的时间是多少?如果不锁定的话,商品被别人买走了怎么办?假如锁定的话,会不会出现恶意购买?如果不锁定的话,库存问题如何解决?

这是我目前项目中出现的问题,以前的架构是:

​假如我点击立即购买的时候,则锁定了商品,此时这个订单处于待支付状态,这也出现了我朋友的实际在应用层面的黑盒测试的时候,出现了这个问题,其他朋友就无法正确的访问这个商品了,此时虽然支付时间回调是5分钟,但是这个过程等待十分久,假如很多人同时只点击购买不支付,或者别人只想看看呢?这就是一个bug了

​针对这个bug,我的想法是这样的:

​前端: 携带 商品ID、数量、用户ID 请求订单服务。订单服务 收到请求后,不会立即操作数据库。它会先去查询 商品服务 获取商品信息(价格、名称等),并检查缓存中的可预扣减库存是否充足。如果 Redis 中的 `product:stock:123` 的值大于购买数量,订单服务就在 Redis 中将库存减掉,并生成一个有时效性的临时订单,有效期是 10分钟,返回临时订单号,前端跳转到支付确认页面。这个页面上会有一个倒计时,提醒用户在规定时间内完成支付。

​另外,我在想,二手闲置商城,需要购物车模块吗?

​欢迎大家评论讨论
#牛客解忧铺##如果再来一次,你还会选择这个工作吗?##技术人##牛客创作赏金赛#
#业务讨论#
全部评论
b2c和c2c还是不太一样的,可能以后会添加一种混合模式,即平台自身的商品,此时这个商品库存则不是c2c的唯一库存模式了,这个也是后面很后面才会考虑的问题了
点赞 回复 分享
发布于 06-09 19:23 广西

相关推荐

06-07 16:24
门头沟学院 Java
bg: 26届学院本,一段实习经历,从0-1开发了Web+移动端的二手闲置商城,目前离职,算法有点差,基础扎实5月20日离职的,期间自己沉淀和回顾了项目,并且复盘和更改了项目的遗存问题,然后24号开始到昨天,每天20+沟通ssob,然后面了5家,3家小厂oc,但是工资很低,说是实习生固定薪资,然后一家陌陌笔试(大概率挂了,算法不行,网络波动大,图书馆人来人往有点吵,下次去空教室),现在学校的课程下一周就上完了,目前自己的想法有三种,想让牛友们给点建议:1.继续投简历,然后约面试,在期间复盘项目+八股+算法(可能时间不太够,算法算是一个难点,工作期间都没怎么刷。忘了好多)2.沉淀到8-9月份,期间专心复盘项目+八股+算法,计网和基础都打牢3.9月份新生开学,去发传单和贴告示牌以及小卡片推销自己的二手闲置商城,暑假期间维护项目和测试,然后复习八股+项目+算法,但是项目的开发占大头(因为后台端部分没做完......)(ps:有个朋友有意向一起弄,但是感觉他更偏向于找实习,后面可能还是自己弄)项目的情况是:目前项目只是Web端和移动端,可能便携性不是很高,因为有营业执照,可以考虑往小程序部分扩展,目前商城的重构都算比较OK的,基础的购买支付,显示都没什么问题,自己也使用ngrok开发给舍友体验了,体验都很流畅(附上小部分UI图)基础的实现都是没什么问题,第一版因为对接的是第三方的聚合平台,每单都抽我百分之1.2,根本受不了,直接关了重构项目,现在想听听各位牛友的建议
投递挚文集团等公司10个岗位
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务