APIClient.js 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. import Consts from '../Consts';
  2. import AJAXHelper from './AJAXHelper';
  3. import userDataStorage from '../userDataStorage';
  4. import Utils from '../Utils';
  5. class APIClient {
  6. constructor() { }
  7. // 添加缓存参数,安卓截获带有此参数的请求
  8. static addCacheParam(params, cacheKeySrc=null, cacheKey=null){
  9. let eid = userDataStorage.getEid();
  10. if (eid) {
  11. params.eid = eid;
  12. params.cache = true;
  13. if (cacheKey) {
  14. params.cacheKey = cacheKey;
  15. } else if (cacheKeySrc) {
  16. let cacheHash = CryptoJS.SHA1(cacheKeySrc + eid);
  17. params.cacheKey = cacheHash.toString(CryptoJS.enc.Base64).toUpperCase();
  18. }
  19. }
  20. return params;
  21. }
  22. // 账户登录,获取token,绑定设备
  23. static userLoginAndBindDevice(data, callback) {
  24. let deviceCode = localStorage.getItem('deviceCode');
  25. if (!deviceCode) {
  26. if (window.efunbox) {
  27. deviceCode = window.efunbox.getUuidForDevice();
  28. } else {
  29. deviceCode = Utils.getUuidForWeb();
  30. }
  31. localStorage.setItem('deviceCode', deviceCode);
  32. }
  33. let params = {
  34. deviceCode,
  35. eid: data.usercode,
  36. password: data.password,
  37. };
  38. AJAXHelper.post('/token', params, callback);
  39. }
  40. // 退出登录,解除设备绑定
  41. static userLogoutAndUnbindDevice(callback) {
  42. AJAXHelper.delete('/token', null, callback);
  43. }
  44. // 通过deviceCode登录刷新token
  45. static refreshTokenByDeviceCode(callback) {
  46. let params = {
  47. deviceCode: localStorage.getItem('deviceCode'),
  48. };
  49. AJAXHelper.put('/token', params, callback);
  50. }
  51. // 获取终端详情
  52. static getTerminalInfo(callback) {
  53. let params = APIClient.addCacheParam({});
  54. AJAXHelper.get('/user', params, callback);
  55. }
  56. // 获取首页推荐列表
  57. static getRecommendList(callback) {
  58. let params = APIClient.addCacheParam({});
  59. AJAXHelper.get('/recommend/courses', params, callback);
  60. }
  61. // 获取标签组下的标签列表(标签组概念已去除,改用标签类型)
  62. static getTagListByGroupCode(type, callback) {
  63. const typeToCode = {
  64. 'RESOURCE': 'RESOURCE',
  65. 'TRAINING': 'TRAINING',
  66. 'PERIPHERY': 'SUPPORT',
  67. 'GUIDANCE': 'GUIDANCE',
  68. };
  69. let params = APIClient.addCacheParam({});
  70. //AJAXHelper.get(`/tagGroup/${typeToCode[type]}`, params, callback);
  71. AJAXHelper.get(`/tagType/${typeToCode[type]}`, params, callback);
  72. }
  73. // 获取标签下的课程/配套列表
  74. static getProductListByTagId(tagId, pageNo, callback) {
  75. let params = { pageNo, pageSize: 20 };
  76. params = APIClient.addCacheParam(params);
  77. AJAXHelper.get(`/tag/${tagId}`, params, callback);
  78. }
  79. // 获取推荐海报列表
  80. static getRecommendPosters(callback) {
  81. let params = APIClient.addCacheParam({});
  82. AJAXHelper.get('/recommend/posters', params, callback);
  83. }
  84. // 获取瀑布流内数据
  85. static getWaterfallList(callback) {
  86. let params = APIClient.addCacheParam({});
  87. AJAXHelper.get('/tagType/waterfall/INDEX_WATERFALL', params, callback);
  88. }
  89. // 获取待续费产品列表
  90. static getRenewProductList(callback) {
  91. let params = APIClient.addCacheParam({});
  92. AJAXHelper.get('/user/messages/productExpiredAlert', params, callback);
  93. }
  94. // 获取还未过期产品列表
  95. static getValidProductList(callback) {
  96. let params = APIClient.addCacheParam({});
  97. AJAXHelper.get('/user/product/valid', params, callback);
  98. }
  99. // 根据courseId获取相关的课程包列表
  100. static getRelatedPackageList(productId, callback) {
  101. let params = APIClient.addCacheParam({ productId });
  102. AJAXHelper.get(`/product/${productId}/relatedPkg`, params, callback);
  103. }
  104. // 根据课程获取课列表
  105. static getLessonList(courseId, callback) {
  106. let params = APIClient.addCacheParam({});
  107. AJAXHelper.get(`/course/${courseId}/lessons`, params, callback);
  108. }
  109. // 获取课程详情
  110. static getCourseDetail(courseId, callback) {
  111. let params = APIClient.addCacheParam({});
  112. AJAXHelper.get(`/course/${courseId}/detail`, params, callback);
  113. }
  114. // 获取课内的课件列表
  115. static getWareList(lessonId, courseId, callback) {
  116. let params = { courseId };
  117. params = APIClient.addCacheParam(params);
  118. AJAXHelper.get(`/lesson/${lessonId}`, params, callback);
  119. }
  120. // 获取该课程相关配套列表
  121. static getCourseAboutSupport(courseId, callback) {
  122. let params = APIClient.addCacheParam({});
  123. AJAXHelper.get(`/course/${courseId}/supports`, params, callback);
  124. }
  125. // 获取配套详情
  126. static getSupportDetail(supportId, callback) {
  127. let params = APIClient.addCacheParam({});
  128. AJAXHelper.get(`/support/${supportId}`, params, callback);
  129. }
  130. // 获取购物车列表
  131. static getShopCartList(callback) {
  132. let params = { pageNo: 1, pageSize: 100 };
  133. AJAXHelper.get('/user/shopcart', params, callback);
  134. }
  135. // 添加到购物车
  136. static addToShopCart(goodsId, callback) {
  137. let params = { goodsId };
  138. AJAXHelper.put('/user/shopcart', params, callback);
  139. }
  140. // 从购物车中删除
  141. static removeFromShopCart(goodsId, callback) {
  142. AJAXHelper.delete(`/user/shopcart/${goodsId}`, null, callback);
  143. }
  144. // 获取购物车内商品数量
  145. static getShopCartCount(callback) {
  146. AJAXHelper.get('/user/shopcart/totalNum', null, callback);
  147. }
  148. // 发送购物车
  149. static postShopCart(callback) {
  150. AJAXHelper.post('/user/shopcart/buymsg', null, callback);
  151. }
  152. // 获取收藏列表
  153. static getCollectionList(tagId, pageNo, callback) {
  154. let params = { tagId, pageNo, pageSize: 20 };
  155. params = APIClient.addCacheParam(params);
  156. AJAXHelper.get('/user/collection', params, callback);
  157. }
  158. // 添加收藏操作
  159. static addToCollection(pid, callback) {
  160. let params = { pid };
  161. AJAXHelper.post('/user/collection', params, callback);
  162. }
  163. // 取消收藏操作
  164. static removeFromCollection(pid, callback) {
  165. AJAXHelper.delete(`/user/collection/${pid}`, null, callback);
  166. }
  167. // 发送用户行为数据
  168. static putUserAction(eventType, tarName, tarId, value, callback) {
  169. let params = { eventType, tarName, tarId, value };
  170. AJAXHelper.post('/callback/event', params, callback);
  171. }
  172. }
  173. module.exports = APIClient;