加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
思路.txt 4.32 KB
一键复制 编辑 原始数据 按行查看 历史
思路整理:
1:问题
管理后台:http://geekhelp.cn:3030/#/course/video/7016f2deba?_=1559410839000
前提:如果用户发布完课程后紧接着为课程添加了两个视频章节,那么在进入 更新视频章节 的页面的时候
页面上会显示两条已发布的视频章节信息。
需要解决的问题:
1:如果管理员没有继续增加更多视频,只是对已经存在的 两条 视频其中一个进行视频的更新,如果都把两条
数据都进行据库的update,那样在视频章节数据较多的时候会有很多多余update操作,浪费性能。
2:如果管理员没有动之前已发布的 两条视频 数据,而新增了三条视频数据,那么 我们程序应该只提交新增的三条数据到
数据库进行 insert操作。
3:还存在一种情况,管理员同时进行了 1,2 操作,那么我只想提交 1操作 中被变更修改的数据进行数据库update,
同时我还想对 2操作 的数据进行数据库 insert 操作
我想要的:
1:如果已存在的数据被修改,不管有多少数据,只向后端提交被修改的数据进行update,其他未修改数据忽略
2:如果有新增数据那么提交新增数据,但同时检查老数据是否被动过,如果动过,那么遵守 1 的方案
解决思路:
1:实现 [我想要的 1] 需要使用 proxy 代理器,Object.prototype.watch(),Object.defineProperty,来监听
[ { key:vale },{ key:vale } ] 的变化,单独从数组中提取被修改的数据
2:实现 [我想要的 2] 提交数据前,监听判断 新数据 与 旧数据 的长度,拿出长度之差的新数据,同时结合 [解决思路 1]
的数据但是以为两种 数据 需要进行的操作不同,所以需要 对思路1 & 思路2 的数据进行 操作标识
2:问题
收费课程中有些章节的视频是可以被免费试听的,需要实现试听章节可以正常播放,非试听章节需要跳转到购物车购买课程。
解决思路:
1:播放页面地址规律如下:/play/2e47f9de7e(课程id)/2cf51328b0(课程章节视频id,下面简称章id)
2:首先拿到 章id 判断是否可以试听,如果可以那么直接进行视频的播放,如果不可以则不是试听章节,那么将课程id,
用户id存到购物车表中,并标记为未付款订单,然后跳转到购物车界面,当用户点击付款按钮后跳转到支付宝进行支付。
3:支付成功后,通过支付宝付款回调清除购物车对应课程数据,然后将数据存放到订单表中
3: 课程购买后直接观看
如果课程已经购买了,那么点击收费章节的非试听课程的时候应该直接允许播放视频
任务记录:
完成 1:处理网站非法地址,做错误页面
完成 2:优化访问速度
完成 3:按照 问题2 的思路将已经写好的nodejs sdk 集成到项目里面
4:实现网站视频章节相关课件(ppt,代码)的管理后台上传和前端下载
完成 5:实现 首页 最新公告的 新闻栏目
6:实现 修改账号主题的信息和密码功能
支付宝回调结果:
{
gmt_create: '2019-07-12 09:30:55',
charset: 'utf-8',
gmt_payment: '2019-07-12 09:31:10',
notify_time: '2019-07-12 09:31:11',
subject: '课程购买',
sign: 'rNHvmkLUD4OpssdhIbEgf9g6p9Gy/wvXnsZcWX4U6zPfAhP9EAMbEbjFw0mkKKHj6GzKeHGneLWyikwhYWaR5nxTh4FggfjB4PCRZe71rjDHy/jS0HxnezV184rXNleXVTk13mW7/ZwP1rPCvgtHI5CvCNihvYXtp6iTqiTXkAIZr1ceNp6/xqjAD6WM+fx33hk6xaHWBsNGPKJ5k3nPGRVDVonM4ND5ewqA5qHngGp4e6SQEoHdgA41c7FhmoVu9xWDm1bRSF8Hns231eHSoApGD2W78jnLSXwysQ1Fbd+S4OXdQ/pjWzutZjxEZvg/DBQgQUmUTU5rwekUDA1QOw==',
buyer_id: '2088032323748875',
body: '怪客课堂课程购买',
invoice_amount: '0.01',
version: '1.0',
notify_id: '2019071200222093110048871046598237',
fund_bill_list: '[{"amount":"0.01","fundChannel":"ALIPAYACCOUNT"}]',
notify_type: 'trade_status_sync',
out_trade_no: '1562895016606',
total_amount: '0.01',
trade_status: 'TRADE_SUCCESS',
trade_no: '2019071222001448871052072548',
auth_app_id: '2019070365762545',
receipt_amount: '0.01',
point_amount: '0.00',
app_id: '2019070365762545',
buyer_pay_amount: '0.01',
sign_type: 'RSA2',
seller_id: '2088531614042820'
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化