项目的一般思路

时间:2021-09-20 08:53:30

商品模块如何实现?

具体实现的功能:
1、商品的增删查改
2、商品扩展分类的更新和删除
3、商品相册的关联
4、商品属性的关联,通过属性的类型来选择,在商品添加页面写一个下拉框,里面存放商品属性的类型,通过选择这些类型来向后台发送ajax请求,展示该类型下的所有属性,如果是单选属性则显示一个下拉框,有默认值提供选择,而唯一属性就直接指定其值即可

RBAC模块如何实现?
留着

购物车模块如何实现?

1、首先建表,要有id字段、商品id字段、用户id字段、商品单选属性组合值、商品数量
2、考虑两种情况,登录状态下存入数据库或者redis,未登录状态下存入cookie(节省服务器资源),注意在存储和取出时需要进行序列化和反序列化操作,因为肯定要在cookie里存储一个数组,数组元素为:商品id-属性值组合=>商品数量
3、在添加购物车时要检查库存
4、登录后要把cookie中的购物车数据进行转移

订单模块如何实现?

1、购物车页面提交后进入结算页面,结算页面计算价格确认之后确认库存,库存足够则下单
2、订单模块两张表:订单总表和商品订单表
订单总表:id、用户id、商品数量、商品总价、支付状态、收件人信息
商品订单表:id、订单id、商品id、属性id、商品单价、商品属性
3、下单成功清空购物车内容,进入支付宝接入流程
4、支付成功更新订单总表的支付状态为已支付
5、在后台对所有订单进行管理,进行发货处理,接入订单查询接口地图接口

项目基于什么架构,如何实现业务逻辑?

基于MVC三层架构
1、先分析需求,然后建表,建立相对应的模型(Model),继承一个公共模型类
2、建立业务对应的控制器,通过在控制器里的方法调用模型获取数据,然后注入到视图中并输出到浏览器端

项目如何部署的?

因为是多人合作,因此我们先将彼此写好的代码上传到SVN服务器上进行整合,由测试人员进行测试,确认无误后上传到服务器上

项目的前后台是如何交互的?

前台通过表单、超链接、ajax等方式携带一定的参数请求后台页面,后台进行参数接收并验证,如果是ajax请求则直接将要返回的内容转化成json格式进行输出,然后前台通过一个回调函数对响应的数据进行接收并展示,如果不是ajax请求,那么就通过模板引擎先将数据注入到前台模版中,然后加载该模版

促销功能如何实现?

商品表中有促销价格字段、开始促销时间、结束促销时间

支付宝接入流程?

1、用户下单完成
2、携带订单号等参数发送请求到支付宝支付网关
3、跳转到支付页面,用户进行支付操作
4、用户支付成功后跳转到商户同步回调页面,对用户订单进行处理
5、为确保对用户订单进行正确的处理,支付宝还会像异步回调页面发送多次请求进行确认

项目哪些地方用到了内存缓存?

数据量大且频繁使用的情况下
memcache:
1、后台权限的信息获取可以用缓存,因为每个页面都要获取权限信息判断权限
2、前端楼层信息(分类信息)
3、分类详情页信息
redis:
4、秒杀功能
5、显示最新登录用户
6、排行榜

项目中遇到了哪些问题?如何解决的?

1、更新商品扩展分类、或者更新其它关系表时,都是先删除后插入,导致主键id自增长过快,造成大量的id空洞,可以在删除之前先把原来对应id查到,然后用replace插入,有冲突的主键就替换其值,没冲突的就直接插入

项目前台实现了哪些,后台实现了哪些模块?

后台主要实现分类管理、商品管理、商品相册、商品属性的管理、RBAC权限控制、订单的发货处理
前台主要实现分类商品的展示以及筛选、购物车模块、下单并接入支付宝支付接口