APIClient.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  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. };
  68. let params = APIClient.addCacheParam({});
  69. //AJAXHelper.get(`/tagGroup/${typeToCode[type]}`, params, callback);
  70. AJAXHelper.get(`/tagType/${typeToCode[type]}`, params, callback);
  71. }
  72. // 获取标签下的课程/配套列表
  73. static getProductListByTagId(tagId, pageNo, callback) {
  74. let params = { pageNo, pageSize: 20 };
  75. params = APIClient.addCacheParam(params);
  76. AJAXHelper.get(`/tag/${tagId}`, params, callback);
  77. }
  78. // 根据课程获取课列表
  79. static getLessonList(courseId, callback) {
  80. let params = APIClient.addCacheParam({});
  81. AJAXHelper.get(`/course/${courseId}/lessons`, params, callback);
  82. }
  83. // 获取课程详情
  84. static getCourseDetail(courseId, callback) {
  85. let params = APIClient.addCacheParam({});
  86. AJAXHelper.get(`/course/${courseId}/detail`, params, callback);
  87. }
  88. // 获取课内的课件列表
  89. static getWareList(lessonId, courseId, callback) {
  90. let params = { courseId };
  91. params = APIClient.addCacheParam(params);
  92. AJAXHelper.get(`/lesson/${lessonId}`, params, callback);
  93. }
  94. // 获取该课程相关配套列表
  95. static getCourseAboutSupport(courseId, callback) {
  96. let params = APIClient.addCacheParam({});
  97. AJAXHelper.get(`/course/${courseId}/supports`, params, callback);
  98. }
  99. // 获取配套详情
  100. static getSupportDetail(supportId, callback) {
  101. let params = APIClient.addCacheParam({});
  102. AJAXHelper.get(`/support/${supportId}`, params, callback);
  103. }
  104. // 获取购物车列表
  105. static getShopCartList(callback) {
  106. let params = { pageNo: 1, pageSize: 100 };
  107. AJAXHelper.get('/user/shopcart', params, callback);
  108. }
  109. // 添加到购物车
  110. static addToShopCart(goodsId, callback) {
  111. let params = { goodsId };
  112. AJAXHelper.put('/user/shopcart', params, callback);
  113. }
  114. // 从购物车中删除
  115. static removeFromShopCart(goodsId, callback) {
  116. AJAXHelper.delete(`/user/shopcart/${goodsId}`, null, callback);
  117. }
  118. // 获取购物车内商品数量
  119. static getShopCartCount(callback) {
  120. AJAXHelper.get('/user/shopcart/totalNum', null, callback);
  121. }
  122. // 发送购物车
  123. static postShopCart(callback) {
  124. AJAXHelper.post('/user/shopcart/buymsg', null, callback);
  125. }
  126. // 获取收藏列表
  127. static getCollectionList(tagId, pageNo, callback) {
  128. let params = { tagId, pageNo, pageSize: 20 };
  129. params = APIClient.addCacheParam(params);
  130. AJAXHelper.get('/user/collection', params, callback);
  131. }
  132. // 添加收藏操作
  133. static addToCollection(pid, callback) {
  134. let params = { pid };
  135. AJAXHelper.post('/user/collection', params, callback);
  136. }
  137. // 取消收藏操作
  138. static removeFromCollection(pid, callback) {
  139. AJAXHelper.delete(`/user/collection/${pid}`, null, callback);
  140. }
  141. // 发送用户行为数据
  142. static putUserAction(eventType, tarName, tarId, value, callback) {
  143. let params = { eventType, tarName, tarId, value };
  144. AJAXHelper.post('/callback/event', params, callback);
  145. }
  146. }
  147. module.exports = APIClient;