路飞学成项目
为什么做路飞?
为什么要做路飞学城?
-提高在线 完课率(学成率).
-具体:
-购买时间周期
-闯关式的学习
-考核
-导师筛选
-导师监督(跟进记录)
-答疑时间(12小时)
-奖惩措施
-时间
-作业
开发周期和团队?
-开发团队
-导师后台 stark组件 +rbac 1人
-管理后台 stark组件 +rbac 1人
-主站
-vue 1人
- api 3人
-运维(1人)
-产品经理 (1人)
-UI设计 (1人)
-运营团队(1人)
-销售(4人)
-全职导师(2人)
-测试 (1人)
-签约导师()
周期:
-17年7月份
-11月份第一版上线
-11月份至18年5月份: 修bug, 活动支持 广告...
-6月份: 开发题库系统
路飞主站业务
- 课程 - 课程列表 - 课程详细 - 大纲、导师、推荐课程 - 价格策略 - 章节和课时 - 常见问题 - 深科技 - 文章列表 - 文章详细 - 收藏 - 评论 - 点赞 - 支付 - 购物车(4) - 结算中心(3) - 立即支付(1) 知识点: - redis - 支付宝 - 消息推送 - 构建数据结构 - 优惠券+贝里+支付宝 - 个人中心 - 课程中心
路飞表结构相关
路飞的课程结构?
.-课程(13张)
- -课程大类
- -课程子类
- -学位课
- -导师
- -奖学金
- -专题课
- - 课程详细
- -常见问题
- - 课时
- - 作业
- - 章节
- -课程大纲
- -价格策略
路飞的深科技结构?
- -文章来源
- -文章详细
- -收藏
- -点赞
- -评论
- -用户
- -用户token
路飞微信消息推送相关
微信消息推送的流程是什么?
1. 注册账号 appID:wx89085e915d351cae appsecret:64f87abfc664f1d4f11d0ac98b24c42d 网页授权获取用户基本信息:47.98.134.86 或 域名 2. 关注公众号(已认证的服务号) 3. 生成二维码,用户扫描; 将用户信息发送给微信,微信再将数据发送给设置redirect_uri地址(md5值) 4. 回调地址:47.98.134.86/callback/ - 授权 - 用户md5 - 获取wx_id 在数据库中更新设置:wx_id 5. 发送消息(模板消息) - wx_id - access_token(2小时有效期)
微信消息推送是用的是什么号?
- 微信消息推送 - 公众号 - 已认证公众号 - 服务号 - 已认证服务号 - 企业号 基于:微信认证服务号 主动推送微信消息。 前提:关注服务号 环境:沙箱环境
微信消息推送是什么消息?
模板消息
路飞支付宝接口相关
路飞学成的支付接口是怎样的流程?
路飞学成的支付接口用的是什么加密?
rsa
路飞学成的支付接口公匙和私匙?
商户私钥+支付宝公钥
路飞的购物车相关
路飞购物车为什么使用redis?
- 因为购物车只是一个暂时的状态,当结算完成的实收会删除购物车的内容.且购物车的操作可能比较频繁,因为客户会考虑的比较多
- 如果只用数据库的话,那么每次修改都对数据库进行修改,数据库的压力会比较大.
- 如果用redis+数据库,比如一天放到redis里,然后12点后存放到数据库.这个方案也是可以
- 但是如果存在数据库,那么就需要一个购物车的表结构.
- 而reids可以不用创建表结构,就能完成同样的事情,而且性能更高
路飞购物车字典是如何构造的?
{ # luffy_shopping_car_用户id_课程id luffy_shopping_car_6_1:{ 'title':'xxxxx', 'img':'xxx' 'prolicy':{ 10:{'name':'有效期1个月','price':123}, 11:{'name':'有效期1个月','price':123}, 12:{'name':'有效期1个月','price':123}, 'defalut_prolicy':10, }, }, luffy_shopping_car_6_2:{ ... }, luffy_shopping_car_6_3:{ ... } }
商品是否有个数?
我们设计的购物车商品是没有个数的,首先个数在这里没有多大的意义,
但是我们有类似于个数的设计,就是根据不同的时间有相应的价格
比如说一个月100,两个月199
购物车购买的数量有限制吗?
购物车的上限是200个,为什么要有上限,因为怕有非法用户恶意添加很多的购物车信息,
造成购物车取值的时候很慢.
购物车是否设置超时时间?
购物车我们不设置超时时间,
因为我们在购物车的购买数量上已经做了限制了,不会对redis造成压力
具体购物车的逻辑/路飞学成的购物车如何实现的?
1.用户选择:课程 价格策略,提交 2.获取课程 价格策略进行合法校验(数据库) 3.数据获取,构造结构: { shopping_car_用户id_课程id:{ 'title':'', img:'xxx', policy:{ }, default:'' } } 4. 将数据以字典的形式保存到redis中. 修改: 1.用户选择:课程 价格策略,提交 2.获取课程 价格策略进行合法校验(redis查询) 3.更新 删除: 1.用户选择:课程 价格策略,提交 2.获取课程 价格策略进行合法校验(redis查询) 3.删除 查看:1.构造key_shopping_car_用户ID_* 2.scan_iter
结算中心的数据结构
#结算中心 { payment_1_2:{ 'course_id':str(course_id), 'title':self.conn.hget(car_key, 'title').decode('utf-8'), 'img' :self.conn.hget(car_key, 'img').decode('utf-8'), 'coupon':{ 'coupon_id':coupon_id, 'coupon_type':coupon_type, 'coupon_type_display':item.coupon.get_coupon_type_display(), 'money_equivalent_value':item.coupon.money_equivalent_value, }, 'default_coupon':0, }, payment_1_3:{ 'course_id':str(course_id), 'title':self.conn.hget(car_key, 'title').decode('utf-8'), 'img' :self.conn.hget(car_key, 'img').decode('utf-8'), 'coupon':{ 'coupon_id':coupon_id, 'coupon_type':coupon_type, 'coupon_type_display':item.coupon.get_coupon_type_display(), 'money_equivalent_value':item.coupon.money_equivalent_value, }, 'default_coupon':0, }, } payment_global_coupon_1={ 'coupon':{ coupon_id:{ 'coupon_id':coupon_id, 'coupon_type':coupon_type, 'coupon_type_display':item.coupon.get_coupon_type_display(), 'money_equivalent_value':item.coupon.money_equivalent_value, }, }, 'defalut_coupon':0 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人