Django——在线教育项目总结YanceDev

通过互联技术,变革传统教育方式,依赖强大的导师服务系统,提高在线教育的效率与成功率。

项目策略:

团队构成:

周期:

简要描述如下:

Django中实现:

支付需求起始于用户点击立即支付或者加入购物车

当用户选择需要购买的课程和价格策略后,有两种方式购买课程:

将课程id和选择的价格策略放到redis中,跳到去支付页面,从redis中获取购买课程的id和价格策略id,如果该用户要使用优惠券和贝利,则选择当前用户所拥有并且未使用和没过期的优惠券,得到折后价格,点击去支付完成支付,

前端需要提供的数据包括:所选课程的id和所选择的价格策略id。约定的数据格式如下:

继续将该课程的所有信息主要包括:课程id,课程图片地址,课程标题,所有价格策略,默认价格策略封装在car_dict中

下面是redis中保存用户数据的key

SHOPPING_CART_KEY="luffy_shopping_cart_%s_%s"PAYMENT_KEY="luffy_payment_%s_%s"PAYMENT_COUPON_KEY="luffy_payment_coupon_%s"

car_key=settings.SHOPPING_CART_KEY%(request.auth.user_id,course_id,)car_dict={'title':course.name,'img':course.course_img,'default_policy':policy_id,'policy':json.dumps(price_policy_dict)}

完成后,在redis中用户购物车的数据如下:

{luffy_shopping_car_6_11:{'title':'21天入门到放弃','src':'xxx.png','policy':{1:{id:'xx'.....},2:{id:'xx'.....},3:{id:'xx'.....},4:{id:'xx'.....},},'default_policy':3},luffy_shopping_car_6_13:{...}}

购物车完整的CURD接口:

修改购物车总的价格策略(patch):

向后台发课程id和要修改为的价格策略id,判断课程是否在购物车中,判断传递过来的价格策略是否在当前课程的价格策略中,在的话将redis中的当前课程的默认价格策略修改为当前的价格策略具体将上面代码

在用户完成购物车的后,点击结算,前端服务器发送结算数据("courseids":["1","2"],1和2对应的就是课程的ID)给我们后端的Django服务器,约定的数据格如下:

{"courseids":["1","2"]}

1.获取用户提交的课程id,[1,2]

判断是否选择要结算的课程,没选择则抛出异常

course_id_list=request.data.get('course_list')ifnotcourse_id_listornotisinstance(course_id_list,list):raiseException('请选择要结算的课程')

2.检测购物车中检查是否已经有课程(应该有课程的)

product_dict=redis_pool.conn.hget(settings.LUFFY_SHOPPING_CAR,request.user.id)ifnotproduct_dict:raiseException('购物车无课程')

3.检测购物车中是否有用户要购买的课程

product_dict=json.loads(product_dict.decode('utf-8'))#######课程、价格和优惠券#######policy_course_dict={}#循环用户传递过来的要结算的课程ID列表forcourse_idincourse_id_list:course_id=str(course_id)product=product_dict.get(course_id)ifnotproduct:raiseException('购买的课程必须先加入购物车')如果所结算的课程在购物车中,

4.获取选中价格策略的价格详细,

选择购物车中当前课程下的所有价格策略和当前课程的所选择的价格策略相等的价格策略,获取其信息,

#c.购物车中是否有用户要购买的课程product_dict=json.loads(product_dict.decode('utf-8'))#######课程、价格和优惠券#######policy_course_dict={}#循环用户传递过来的要结算的课程ID列表forcourse_idincourse_id_list:course_id=str(course_id)product=product_dict.get(course_id)ifnotproduct:raiseException('购买的课程必须先加入购物车')#获取选中价格策略的价格详细policy_exist=Falseforpolicyinproduct['price_policy_list']:ifpolicy['id']==product['choice_policy_id']:policy_price=policy['price']policy_period=policy['period']policy_valid_period=policy['valid_period']policy_exist=Truebreakifnotpolicy_exist:raiseException('购物车中的课程无此价格')将上面我们获取的课程信息和价格策略信息封装在policy_course中

policy_course={'course_id':course_id,'course_name':product['name'],'course_img':product['course_img'],'policy_id':product['choice_policy_id'],'policy_price':policy_price,'policy_period':policy_period,'policy_valid_period':policy_valid_period,'default_coupon_id':0,'coupon_record_list':{0:{'id':0,'text':'请选择优惠券'},},}5.获取当前用户所有的优惠券

user_coupon_list=models.CouponRecord.objects.filter(account=request.user,status=0)6.区分用户的优惠券种类,课程优惠券添加到课程中;全局优惠券添加到全局

#######全局优惠券#######global_coupon_record_dict={}循环遍历当前用户的所有优惠券,判断他们是否过期

begin_date=record.coupon.valid_begin_dateend_date=record.coupon.valid_end_dateifbegin_date:ifcurrent_dateend_date:continue

,如果没过期,判断他们是全局优惠券还是针对某个课程的优惠券,区分好是什么优惠券以后还的区分该优惠券是什么类型,

如果是通用券

ifrecord.coupon.coupon_type==0:temp={'type':0,'text':"通用优惠券",'id':record.id,'begin_date':begin_date,'end_date':end_date,'money_equivalent_value':record.coupon.money_equivalent_value}如果是满减券:

elifrecord.coupon.coupon_type==1:temp={'type':1,'text':"满减券",'id':record.id,'begin_date':begin_date,'end_date':end_date,'minimum_consume':record.coupon.minimum_consume,'money_equivalent_value':record.coupon.money_equivalent_value}如果是折扣券:

elifrecord.coupon.coupon_type==2:temp={'type':2,'text':"折扣券",'id':record.id,'begin_date':begin_date,'end_date':end_date,'off_percent':record.coupon.off_percent}如果是全局优惠券,则

global_coupon_record_dict[record.id]=temp如果但是针对课程的优惠券:

policy_course_dict[cid]['coupon_record_list'][record.id]=temp最后将所有数据封装在user_pay中放到redis上

user_pay={'policy_course_dict':policy_course_dict,'global_coupon_record_dict':global_coupon_record_dict,'default_global_coupon_id':0,}redis_pool.conn.hset(settings.LUFFY_PAYMENT,request.user.id,json.dumps(user_pay))user_pay数据结构

2.循环遍历每一个课程

开始总价格totalprice和折扣价totaldiscount都为0,

总价=0总折扣=02.1.如果该课程没有使用优惠券,则总价格=totalprice+课程原价,totaldiscount=0,

如果使用了优惠券:去数据库查询:指定优惠券是否已经使用、是否已经过期如果优惠券可不用:raiseException('优惠券不可用')如果是通用优惠券:discount=通用优惠券(如果大于课程原价,课程原价)elif如果是满减优惠券:if价格是否大于最小满减要求:discount=通用优惠券(如果大于课程原价,课程原价)elif如果是折扣优惠券:discount=课程原价*(1-折扣)使用的优惠券ID列表.append(绑定可以的优惠券ID)temp={课程ID:1,原价:10,折扣价:9,有效期:30}课程信息.append(temp)总价+=课程原价折扣+=discount到此为止

pay=总价-总折扣3.继续计算看是否使用全局优惠券

全站优惠券ID=choice_global_coupon数据库获取并检查是否可用(优惠券是否已经使用、是否已经过期)如果优惠券可不用:raise('全站优惠券不可用')g_discount=0如果是通用优惠券:g_discount=通用优惠券(如果大于pay,pay)elif如果是满减优惠券:if价格是否大于最小满减要求:g_discount=通用优惠券(如果大于pay,pay)elif如果是折扣优惠券:g_discount=pay*(1-折扣)总折扣+=g_discount使用的优惠券ID列表.append(全站优惠券ID)4.贝利支付

ifbalance<=request.user.balance:总折扣+=balance5.总结算

总价-总折扣=alipayifalipay==0:贝里&优惠券pay_type=0else:支付宝支付pay_type=1如果最后支付=0,就直接修改支付状态为已支付,否则改为待支付

6.点击立即支付以后进行数据库操作

最后

ifpay_type==1:生成支付宝链接(自动生成自己的订单号),并返回给前端Vue######################################支付宝的回调######################################defcallback(request,*args,**kwargs):models.Order.objects.filter(订单号).update(status=0)

THE END
1.卖资料课程去哪个平台选择一个合适的平台来卖资料和课程取决于你的目标受众、内容形式以及营销策略。以下是几个主流平台及其特点,供你参考: 知识付费平台 知乎盐选 适合:高质量的知识型内容,例如文档、电子书、音频、视频等。 优势:有大量用户,平台流量大,内容容易获得曝光。 https://www.jianshu.com/p/14301aaae55e
2.付费课程淘宝教育,以基础型小课服务规模化中小商家,以垂直定制课助力产业型商家成长。为商家提供立体化宣教体系,并以商家成长需求为出发点,为其在淘宝天猫平台的确定性增长归纳简单方法,并持续注入信心。https://daxue.taobao.com/payCenter/advance.jhtml
3.有哪些卖课程的平台对于教育培训机构而言,选择一个合适的课程销售平台,不仅能够拓宽市场边界,还能有效提升教学效果与品牌影响力。本文将为您汇总几个优质的卖课程平台,并重点介绍云朵课堂网校系统开发技术服务商,如何以其强大的功能体系,为教育机构搭建起高效、专业的在线教学与销售桥梁。https://www.yunduoketang.com/article/lry1851.html
4.十大学习网站排名网上学习平台哪个好在线网络学习网站推荐近年来,网络学习环境在网络接入性、学习支持服务方面表现优异,整体发展水平得到质的提升,已成为流行趋势。本文中maigoo网编辑为广大学子盘点了中国大学MOOC、Coursera、慕课网、网易公开课、EdX、学堂在线、TED、大学资源网、腾讯课堂等较受欢迎的网络学习平台,一起了解https://www.maigoo.com/citiao/list_56026.html
5.知识付费网课商城,现在做的比较好最火的几个平台致力于提供高质量的精品课程。该平台汇集了众多知名教育机构和行业专家,覆盖了语言、职业发展、兴趣爱好等多个领域的学习需求。有道精品课的课程内容丰富实用,讲师实力强大,深受用户的喜爱。以上是几个知识付费平台,不管加入哪一个,关键是能用心去学习。真正学到自己脑子才是有用的,不然课程再好也是浪费 https://baijiahao.baidu.com/s?id=1776932688923399249&wfr=spider&for=pc
6.昨天晚上在网上买了2980元的培训学习抖音做短视频课程,能不能退款昨晚在网上买了2980元的培训学习抖音做短视频课程,能退款吗 针对您的抖音短视频课程退款问题,您可以按照以下步骤操作:1.网上申请:登录购买课程的平台,找到退款选项,按照提示填写相关信息并提交申请。2.书面申请:撰写退款申 全部3个答案 > 1.6万 人咨询过 去咨询 子女抚养权变更条件 子女抚养资讯 570人浏览 https://www.findlaw.cn/wenda/q_45829656.html
7.购买课程天天心理网如何购买课程? 先确认您是否注册了天天心理网的账号,如果还没有账号,请先移步注册流程:注册学习账号 一、通过手机H5页面,如何购买课程?(在微信上,通过公众号进入或是直接打开课程链接) 1、找到想要购买的课程,点击“购买课程” 2、支付弹窗,输入手机号,如果信息有变,请及时修改。点击“去支付” https://www.mypsy365.com/page/buy
8.拍脉会原名微享铺子,是一个回收平台,在不知情情况下购买课程不能在拍脉会平台上面使用额度购买课程,但是课程无法回收兑换,在不知情的情况下也无法取消订单,客服回复一经售出不予退换,但是我购买的初衷也是为了回收兑换资金,如果不能兑换我购买课程没有任何意义。 黑猫消费者服务平台 2023-05-16 09:21:50 您投诉的商家 拍脉会 未匹配成功,我们将尽快帮您寻找商家,推进其处理投诉https://tousu.sina.cn/complaint/view/17366469935/
9.利用抖音平台,虚假宣传,购买课程,骗取钱财黑猫投诉在抖音平台,帝哥蓝海项目和人生感悟,其中他提及他之前创业项目的实施,最后介绍了其公司最近的蓝海项目搬运抖音的视频到视频号带货,视频又其公司提供,其提供的一些教程都可以在网上搜索的到,完全不提供任何其他服务,使用这种资源来诱骗与其合作,根本也做不到他们说的所谓的爆单。找他们退款也是推诿说无法退款。声明https://tj.tousu.sina.com.cn/complaint/view/17372987694/
10.[公开]金融科技实训平台及课程资源购置公开招标公告金融科技实训平台及课程资源购置 招标项目的潜在投标人应在北京市政府采购电子交易平台获取招标文件,并于2022-05-23 14:00(北京时间)前递交投标文件。 一、项目基本情况 项目编号:11000022210200008874-XM001 项目名称:金融科技实训平台及课程资源购置 预算金额:295 万元(人民币) http://www.ccgp-beijing.gov.cn/xxgg/sjzfcggg/sjzbgg/t20220429_1423516.html
11.临沂市专业技术人员继续教育学习平台临沂市继续教育购买专业课课程包操作方式 1、在浏览器输入网址http://upce.upc.edu.cn,或在百度里搜索“中国石油大学(华东)继续教育学院”,打开继续教育学院的网站,如下图所示。点击右侧的图片“专业技术人员继续教育”—临沂市专业技术人员继续教育,即可打开临沂市专业技术人员继续教育学习平台。https://sdly.treewises.com/info/634
12.小鹅通学员如何在多个平台上同步已购课程学员进入商家店铺的“微信端”、“QQ端”绑定同一个手机号,即可在两个平台内学习同一个店铺的课程。 二、场景举例 1、某商家的学员A一直在【微信店铺】购买并学习课程; 2、后来商家开通了【QQ店铺】,A进入【QQ店铺】后看不到微信中的课程; 3、A希望在QQ学习【微信店铺】的课程,于是在【QQ店铺】绑定微信店铺http://www.gkrbw.com/7617.html
13.已换购买平台IT互联网【已换购买平台-请看详情】C语言小游戏实战 11.9万次学习 ¥128温馨提示 如何购买课程? 为保障学习权益,请在CCtalk平台内完成支付,私下交易造成的任何损失及纠纷,CCtalk不承担任何责任。 购买课程后如何观看课程? 报名成功后登录CCtalk客户端,即可参与课程学习;部分课程须填写收货地址,以便联系。 售后问题https://www.cctalk.com/m/group/90459170
14.抖音购买的课程在哪里看?最全听课方法来啦!(3)选择课程即可在线观看 三、抖音小程序听课 为了更好地打造抖音在线教育线上店铺,承载更丰富的内容形式,满足用户的更多需求,很多优秀的知识创作个人或者企业选择可抖音知识付费小程序。通过抖音小程序来实现卖课变现,大大缩短变现路径。此时不需要借助第三方平台,在抖音小程序内就能享受到选课、买课、听课一整套https://www.ixunke.com/article/393
15.隐私政策互联网求职招聘找工作上拉勾招聘在您使用课程功能时,CC直播SDK需要收集、使用您的昵称、设备类型、设备型号、操作系统。如您不同意,你将无法观看直播课程及互动。 5.在线购买服务 (1)收集、使用的个人信息 当您使用在线支付功能购买平台各类付费增值服务时,我们会上传你的支付信息(支付金额、支付时间、购买明细、订单号等信息)、设备类型、设备型号https://www.lagou.com/policy.html
16.“校外培训家长端”APP(购课缴费平台)操作指南在想要购买的课程后点击“购买”(未提交合同签订人信息或关联孩子信息时会提示)→点击“立即支付”→签字并点击“○我已阅读”和“下一步”→选择支付方式并点击“确认支付”,支付成功后即成功购买课程。支付方式目前仅支持支付宝。 4.消课确认 培训课程结束后,机构会发送消课确认通知到家长端,家长进入“我的”http://yjz.jxjztv.com/content_html/html/534/p/wap/2024/01/130570292.html
17.超星尔雅优质网络通识课程项目单一来源采购公示(4)超星尔雅通识课程平台已在学校使用了六学期,且学生选课踊跃,反映良好,认可度高,并有效缓解了学校优质通识课程资源不足的现状;超星尔雅通识课可以保持资源使用、使用习惯、无时差使用的平台。 (5)超星尔雅通识课程平台拥有大批量的合作用户,截至目前超星尔雅通识课程平台全国合作高校达1680所,省内合作高校有85所https://www.xyafu.edu.cn/gyzc/info/1074/1407.htm