11.17 luffycity(7)完结
2018-11-17 15:59:01
路飞项目已经完结!后面已是flask的学习!然后还有十几天的课程等回学校再看
明天归校!! 开始全面整理自己学习的知识,整理博客!还有好多面试题!233333333333333333
越努力,越幸运!永远不要高估自己!!
放上github连接: https://github.com/TrueNewBee/luffycity_demo
说一下路飞项目的整体 思路
luffycity项目简介:
1. 一开始的课程和深科技用前后端结合用的vue
2. 后面只注重写接口,不写vue
3. 后面接口 购物车,支付相关,重点的使用了redis的方法
4. 剩下一个支付宝相关支付功能,只有伪代码未实现,有空实现一下
5. 其余的看代码 代码里有详细注释
也不算太难!主要有redis部分 ,详情可以看代码,代买里面有详细注释!
贴上笔记!
s9day114 内容回顾:
1. 为什么要开发“学城”?
- 提高在线 完课率(学成率)。
- 具体:
- 购买时间周期
- 闯关式学习
- 考核
- 导师筛选
- 导师监督(跟进记录)
- 答疑时间(12小时)
- 奖惩措施
- 时间
- 作业 2. 开发周期和团队?
团队:
- 开发
- 导师后台,stark组件+rbac : 1人
- 管理后台,stark组件+rbac : 1人
- 主站
- vue.js 1人
- api 村长+1/2文州+1/2Alex+其他 + 村长
- 运维(1人)
- 测试(1人)
- 产品经理(1人)
- UI设计(1人)
- 运营(1人)
- 销售(4人)
- 全职导师(2人)
- 签约讲师(...)
周期:
- 7月份
- 11月份上线
- 11月份~次年5月份: 修Bug,活动支持,广告。。。
- 6月份:开发题库系统 3. 购买流程
- 加入购物车
- 去结算
- 去支付 今日内容:
- 去支付
- Flask
- 基础
- 第三方组件
- 上下文管理聊源码 内容详细:
1. 去支付(面向专题课) POST请求:
URL:
https://www.luffycity.com/course/order/?token=123879shdfkjshdf123
请求体:
{
balance:1000,
money:900
}
业务处理:
...
2. Flask
- pip3 install flask - 短小精悍、可扩展强 的一个Web框架。 注意:上下文管理机制 - 依赖wsgi:werkzurg - 学习werkzurg:
示例一:
from werkzeug.wrappers import Request, Response
from werkzeug.serving import run_simple def run(environ,start_response): return [b"asdfasdf"] if __name__ == '__main__': run_simple('localhost', 4000, run) 示例二:
from werkzeug.wrappers import Request, Response @Request.application
def hello(request):
return Response('Hello World!') if __name__ == '__main__':
from werkzeug.serving import run_simple
run_simple('localhost', 4000, hello) - 学习Flask 作业:
"""
1. 获取用户提交数据
{
balance:1000,
money:900
}
balance = request.data.get("balance")
money = request.data.get("money") 2. 数据验证
- 大于等于0
- 个人账户是否有1000贝里 if user.auth.user.balance < balance:
账户贝里余额不足 优惠券ID_LIST = [1,3,4]
总价
实际支付
3. 去结算中获取课程信息
for course_dict in redis的结算中获取:
# 获取课程ID
# 根据course_id去数据库检查状态 # 获取价格策略
# 根据policy_id去数据库检查是否还依然存在 # 获取使用优惠券ID
# 根据优惠券ID检查优惠券是否过期 # 获取原价+获取优惠券类型
- 立减
0 = 获取原价 - 优惠券金额
或
折后价格 = 获取原价 - 优惠券金额
- 满减:是否满足限制
折后价格 = 获取原价 - 优惠券金额
- 折扣:
折后价格 = 获取原价 * 80 / 100 4. 全站优惠券
- 去数据库校验全站优惠券的合法性
- 应用优惠券:
- 立减
0 = 实际支付 - 优惠券金额
或
折后价格 =实际支付 - 优惠券金额
- 满减:是否满足限制
折后价格 = 实际支付 - 优惠券金额
- 折扣:
折后价格 = 实际支付 * 80 / 100
- 实际支付
5. 贝里抵扣 6. 总金额校验
实际支付 - 贝里 = money:900 7. 为当前课程生成订单 - 订单表创建一条数据 Order
- 订单详细表创建一条数据 OrderDetail EnrolledCourse
- 订单详细表创建一条数据 OrderDetail EnrolledCourse
- 订单详细表创建一条数据 OrderDetail EnrolledCourse - 如果有贝里支付
- 贝里金额扣除 Account
- 交易记录 TransactionRecord - 优惠券状态更新 CouponRecord 注意:
如果支付宝支付金额0, 表示订单状态:已支付
如果支付宝支付金额110,表示订单状态:未支付
- 生成URL(含订单号)
- 回调函数:更新订单状态 """
11.17 luffycity(7)完结的更多相关文章
- International Programming Retreat Day(2018.11.17)
时间:2018.11.17地点:北京国华投资大厦
- Notes of Daily Scrum Meeting(11.17)
Notes of Daily Scrum Meeting(11.17) 今天是第四周的周一,也就是说距离最后发布也只剩下一周的时间,但我们的工程里面还有很多的问题没有解决,我关注过 其他一两个小组,他 ...
- Beta周第8次Scrum会议(11/17)【王者荣耀交流协会】
一.小组信息 队名:王者荣耀交流协会 小组成员 队长:高远博 成员:王超,袁玥,任思佳,王磊,王玉玲,冉华 小组照片 今天拍照的人是王磊.因此他没有出现在照片中. 二.开会信息 时间:2017/11/ ...
- Java编程思想(11~17)
[注:此博客旨在从<Java编程思想>这本书的目录结构上来检验自己的Java基础知识,只为笔记之用] 第十一章 持有对象 11.1 泛型和类型安全的容器>eg: List<St ...
- C++98/11/17表达式类别
目标 以下代码能否编译通过,能否按照期望运行?(点击展开) #include <utility> #include <type_traits> namespace cpp98 ...
- 2016/11/17 周四 <javascript的封装简单示例>
这是一个简单的javascript代码封装的示例以及封装后的调用方法: var ticker={ n:0, add:function() { this.n++; }, show:function() ...
- Sprint1(第四天11.17)
Sprint1第一阶段 1.类名:软件工程-第一阶段 2.时间:11.14-11.23 3.选题内容:web版-餐厅到店点餐系统 4.团队博客地址: http://www.cnblogs.com/qu ...
- 【Alpha版本】 第九天 11.17
一.站立式会议照片: 二.项目燃尽图: 三.项目进展: 成 员 昨天完成任务 今天完成任务 明天要做任务 问题困难 心得体会 胡泽善 完成我要应聘的详情显示,解决头像不能显示的问题,完成了报名及取消操 ...
- 11.14 luffycity项目(6)
2018-11-14 21:26:45 实现了购物车功能! 涉及到了redis的使用 需要在pycharm中下载 django_redis 其他的看一下笔记,有购物车里面数据存储的结构才发现数据 ...
随机推荐
- Servlet(3)—Servlet
基本知识: java Servlet是和平台无关的服务端组件,它运行在Servlet容器中,Servlet容器负责Servlet和客户的通信以及调用Servlet方法,Servlet和客户的通信采用& ...
- C#设置WebBrowser IE浏览器版本
通过修改注册表的值,来指定winform程序打开的webBrowser的IE版本 1>方法一,通过程序修改注册表的值 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...
- arcgis 获得工具箱工具的个数
import arcgisscripting import string; gp = arcgisscripting.create(9.3); ##多少个工具箱 toolboxes = gp.list ...
- 更新 app 操作过期提示
增加的操作过期提示,再让用户选择是否登录,登录成功后自动返回上一次操作的面页
- [Web 前端] qs.parse()、qs.stringify()使用方法
cp from : https://blog.csdn.net/suwu150/article/details/78333452 qs是一个npm仓库所管理的包,可通过npm install qs命令 ...
- Spark(四十四):使用Java调用spark-submit.sh(支持 --deploy-mode client和cluster两种方式)并获取applicationId
之前也介绍过使用yarn api来submit spark任务,通过提交接口返回applicationId的用法,具体参考<Spark2.3(四十):如何使用java通过yarn api调度sp ...
- 【开源】C#信息抽取系统【招募C#队友】
FDDC2018金融算法挑战赛02-A股上市公司公告信息抽取 更新时间 2018年7月11日 By 带着兔子去旅行 信息抽取是NLP里的一个实用内容.该工具的目标是打造一个泛用的自动信息抽取工具.使得 ...
- 单片机 MCU 中 stack 使用的探讨
stack 的使用,是单片机开发中影响最大,但是最少被讨论的问题.而提及这个问题的地方,都是对这个问题含糊其辞. 今天花了点时间,使用最笨的办法,直接阅读汇编代码,来对这个问题就行探究,这里做一下记录 ...
- Oracle 学习笔记 10 -- 约束
本次笔记来学习约束,约束在表中无处不在. 比如,表中的数据不同意为空或者是表中id为设为主键,都是约束. 约束分类: 主键约束(PRIMARY KEY):主键表示表中一个唯一的标识,本 ...
- Linux-task_struct和文件系统及管道的关系
推荐:文件描述符和文件指针的关系 fs_struct 记录该进程所在文件系统等信息. files_struct 记录该进程当前打开的所有文件等信息,其中有一个元素为数组,数组索引是文件描述符,数组元素 ...