| Modified By | Date | Change | |----|----|:-----| |langxuchao| 20180514 | 1.增加 /tagType/ 2.增加/recommend/posters 3.增加/user/product/valid 4./support/增加shopQR, 5. 增加/product/relatedPkg 6./user/message/productExpiredAlert| --- 1.渠道加联系人,联系人电话 2.课程加subtitle, breadcrumb 1.token对path和公共参数做sign 2.token过期,返回状态码,重新获取token 3.登录时,token重新生成 ## 全局参数,参考资源平台全局参数 > 每个请求都要带 ``` { 'uid':'xxxx', 'eid':'xxxx', 'sign':'xxxx', 'requestId':'xxx' } 返回 { 'code':200, 'msg':'success', } ``` >请求参数说明 | field | type | null | value | desc | |----|:-----|:-------|:------|:------| | sign | string | no | /token-POST, 请求时值为'' | 用token对请求做的签名 | | uid | string | no | /token-POST, 请求时值为'' | 用户uid | | requestId | string | no | | 32位uuid, 客户端自己生成, 每次请求唯一, 表示请求的id | | terminal | string | no | | 表示客户端类型标识,比如‘tv’, 'mobile', 同一ip的一种客户端仅能登录一个账号 | ### 学号登录 ``` /token POST { 'deviceCode':'xxx', 'eid':'xxxx', 'password':'xxxx', } 返回 { 'code':200, 'msg':'success', 'data':{ 'uid':'xxx', 'eid':'xxx', 'name':'xxxx', 'token':'xxxx', ... <用户信息> } } ``` --- ### deviceCode登录 ``` /token PUT { 'deviceCode':'xxx', } 返回 { 'code':200, 'msg':'success' 'data':{ 'uid':'xxx', 'eid':'xxx', 'name':'xxxx', 'token':'xxxx', } } ``` | field | type | null | value | desc | |----|:-----|:-------|:------|:------| ### 退出登录 >删除device_code和eid的绑定关系 ``` /token DELETE { } 返回 { 'code':200, 'msg':'success' } ``` ### 首页推荐课程 ``` /recommend/courses {} 返回 { 'code':200, 'msg':'success' 'data':{ 'list':[ { 'id':'xxx', 'code':'xxx', 'title':'xxxx', 'subtitle':'xxxx', 'breadcrumb':'xxxx', }, ... ] } } ``` --- ### 海报 ``` /recommend/posters GET {} 返回 { 'code':200, 'msg':'success' 'data':{ 'num':3, 'recs':[ 'img':'http://xxxx', 'pid':'xxxx', 'type':'xxxx', ] } } ``` --- ### 用户详情 ``` /user GET { } 返回 { 'code':200, 'msg':'success' 'data':{ 'id':'xxx', 'eid':'xxx', 'name':'xxxx', 'merchantName':'xxx', 'merchantContactName':'xxx', 'merchantContactMobile':'xxxx', } } ``` --- ### 师训详情 时间 主题 封面图 小红点 ``` /training// GET { } 返回 { 'code':200, 'msg':'success' 'data':{ 'imgList':[ '/xx/xx', ], } } ``` --- ### 根据课程获取课列表 ``` /course//lessons/ GET { } 返回 { 'code':200, 'msg':'success' 'data':{ 'auth':1, 'collected':1, 'breadCrumb':'xxx', 'bgUrl': 'xxx', 'list':[ { 'id':'xxx', 'code':'xxx', 'name':'xxx', } ] } } ``` >请求参数说明 | field | type | null | value | desc | |----|:-----|:-------|:------|:------| | auth | int | no | | 取值{0,1}, 0表示无权限看此课,1表示有权限看此课 | | collected | int | no | | 取值{0,1}, 0表示未收藏,1已收藏 | --- ### 获取课程详情 ``` /course//detail GET { } 返回 { 'code':200, 'msg':'success' 'data':{ 'id':'xxx', 'code':'xxx', 'title':'xxx', 'subTitle': 'xxx', 'digest':'xxx', 'detail':'xxxx', 'bgUrl': 'xxx', 'auth':1, 'collected':1, 'beginTime':1243123, 'endTime':12341234, 'goods':[ { 'id':'xxx', 'chargeUnit':'xxx', 'terminalPrice':'xxx', 'isInCart':0, }, ... ], } } ``` ### 获取课程相关配套列表 ``` /course//supports GET { } 返回 { 'code':200, 'msg':'success' 'data': [ { 'id':'xxx', 'code':'xxx', 'title':'xxx', 'subTitle':'xxx', 'goods':[ { 'id':'xxx', 'chargeUnit':'xxx', 'terminalPrice':'xxx', }, ... ], } ] } ``` ### 配套详情 ``` /support/ GET {} 返回 { 'code':200, 'msg':'success' 'data':{ 'id':'xxx', 'code':'xxx', 'title':'xxx', 'detail':'xxxx', 'coverUrl':'/resource/b.jpg', 'imgList':[ '/resource/a.jpg', ... ], 'goods':[ { 'id':'xxx', 'chargeUnit':'xxx', 'terminalPrice':'xxx', 'isInCart':0, 'shopQR':'/resources/xxxx', }, ], 'relatedSupports':[ { 'id':'xxx', 'code':'xxx', 'coverUrl':'/xx/x.jpg', } ], 'relatedCourses':[ { 'id':'xxxx', 'code':'xxx', 'title':'xxx', 'subTitle': 'xxx', } ], } } ``` --- ### 课详情 ``` /lesson/ GET { 'courseId': 'xxx' } 返回 { 'code':200, 'msg':'success' 'data':{ 'id':'xxx', 'code':'xxx', 'title':'xxx', 'list':[ { 'id':'xxx', 'code':'xxx', 'category':'xxx', 'title':'xxx', 'type':0, 'resources':[ { 'id':'xxx', 'type':2, 'url':'http://xxxx', }, ... ] } ], ... } } ``` | field | type | null | value | desc | |----|:-----|:-------|:------|:------| | recs.type | int | no | | 取值{0,1}, 分别表示{'图片', '视频'} | --- ### 获取标签组中标签列表 ``` /tagGroup/ 返回 { 'code':200, 'msg':'success' 'data':{ 'name':'xxx', 'list':[ { 'id':'xxxx', 'name':'xxx', } ], } } ``` --- ### 获取特定标签类型下的标签及产品 ``` /tagType/ GET { } 返回 { 'code':200, 'msg':'success' 'data':[ { 'id':'xxxx', 'name':'xxx', 'recs':[ { 'id':'xxx', 'redDot':0, 'type':'COURSE', 'code':'xxx', 'title':'xxx', 'subTitle':'xxx', 'coverUrl':'/xxx/b.jpg', 'goods':[ { 'id':'xxx', 'chargeUnit':'xxx', 'terminalPrice':'xxx', }, ... ], }, ... ] }, ... ] } ``` --- ### 获取特定标签下的产品列表 ``` /tag/ GET { 'pageNum':0, 'pageSize':20, } 返回 { 'code':200, 'msg':'success' 'data':{ 'totalNum':50, 'pageNum':'xxx', 'pageSize':20, 'list':[ { 'id':'xxx', 'redDot':0, 'type':'COURSE', 'code':'xxx', 'title':'xxx', 'subTitle':'xxx', 'coverUrl':'/xxx/b.jpg', 'goods':[ { 'id':'xxx', 'chargeUnit':'xxx', 'terminalPrice':'xxx', }, ... ], }, ... ] } } ``` | field | type | null | desc | |----|:-----|:------|:------| | type | string | no | 取值{'COURSE', 'TRAINING'} | | redDot | int | no | 取值{0,1}, 分别表示{无更新,有更新} | --- ### 获取师训列表 ``` /tag/ GET { 'pageNum':0, 'pageSize':20, } 返回 { 'code':200, 'msg':'success' 'data':{ 'totalNum':50, 'pageNum':'xxx', 'pageSize':20, 'list':[ { 'id':'xxx', 'redDot':0, 'code':'xxx', 'type':'TRAINING', 'title':'xxx', 'coverUrl':'/xxx/b.jpg', 'dateDesc':'xxx', 'openTime':12423, 'closeTime':214213, 'goods':[ { 'id':'xxx', 'chargeUnit':'xxx', 'terminalPrice':'xxx', }, ], }, ... ] } } ``` --- ### 查询收藏列表 ``` /user/collection { 'tagId':'xxx', 'pageNum':0, 'pageSize':20, } 返回 { /*参考/tag/-GET请求*/ } ``` | field | type | null | value | desc | |----|:-----|:-------|:------|:------| | tagId | string | no | | 当tagId为空字符串时,返回所有收藏 | --- ### 购物车列表 ``` /user/shopcart GET { 'pageNum':0, 'pageSize':10, } 返回 { 'code':200, 'msg':'success' 'data':{ 'totalNum':3, 'pageNum':0, 'pageSize':10, 'goods':[ { 'id':'xxx', 'terminalPrice':22,0, 'chargeUnit': 'xxx', 'pid':'xxxx', 'coverUrl': 'xxx', 'title':'xxxx', 'subtitle':'xxx', }, ... ] } } ``` --- ### 添加商品到购物车 ``` /user/shopcart PUT { 'goodsId':'xxx', } 返回 { 'code':200, 'msg':'success' } ``` ### 从购物车删除商品 ``` /user/shopcart DELETE { 'goodsId':'xxx', } 返回 { 'code':200, 'msg':'success' } ``` --- ### 发送购买信息 ``` /user/shopcart/buymsg POST { } 返回 { 'code':200, 'msg':'success' } ``` --- ### 获取购物车商品数量 ``` /user/shopcart/totalNum GET {} 返回 { 'code':200, 'msg':'success', 'data':{ 'totalNum':20, } } ``` --- ### 权限还未到期的产品 ``` /user/product/valid GET {} 返回 { 'code':200, 'msg':'success', 'data':{ 'totalNum':3, 'recs':[ { 'id':'xxx', 'title':'xxxx', 'beginTime':'xxx', 'endTime':'xxx', }, ... ] } } ``` ### 产品关联的产品包 ``` /product//relatedPkg GET 返回 { 'code':200, 'msg':'success', 'data':{ 'totalNum':3, 'recs':[ { 'id':'xxx', 'name':'xxxx', 'totalNum':8, 'recs':[ { 'id':'xxxx', 'name':'xxxx', 'goods':[ { 'id':'xxx', 'chargeUnit':'周', 'terminalPrice':123421.2, 'isInCart':0, 'recommend':0, } ] }, ], 'goods':[ { 'id':'xxx', 'chargeUnit':'周', 'terminalPrice':123421.2, 'isInCart':0, 'recommend':0, 'shopQR':'xxxx', } ] }, ... ] ... } } ``` --- ### 产品过期提醒 ``` /user/message/productExpiredAlert GET 返回 { 'code':200, 'msg':'success', 'data':{ 'totalNum':3, 'recs':[ { 'id':'xxx', 'name':'xxxx', 'endTime':123423, 'type':'xxx', }, ... ] ... } } ``` ### 课程包详情 ``` /package/ GET 返回 { 'code':200, 'msg':'success', 'data':{ /*参考/product//relatedPkg中的课程包字段*/ } } ```