api.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661
  1. /**
  2. * desc: 接口请求类
  3. * author: wangyang
  4. * date: 2015-04-11
  5. */
  6. // define(['config', 'base', '$'], function(config, base, $) {
  7. define(['config', 'base'], function(config, base) {
  8. var API = function() {
  9. if (typeof API.instance === 'object') {
  10. return API.instance;
  11. }
  12. API.instance = this;
  13. this.isLoading = false;
  14. }
  15. API.prototype = new base();
  16. var apiErrorResult = {
  17. success: false,
  18. message: '加载哥遇到瓶颈再来一遍嘛 <( ̄︶ ̄)>'
  19. };
  20. //获取用户信息
  21. API.prototype.getUserInfo = function(data, callback) {
  22. var that = this;
  23. this.isLoading = true;
  24. $.signAjax({
  25. url: config.apiPath + '/index.php?r=api/user/info',
  26. data: data,
  27. dataType: 'JSON',
  28. success: function(res) {
  29. that.isLoading = false;
  30. if (callback) {
  31. callback(res);
  32. }
  33. },
  34. error: function(res) {
  35. that.isLoading = false;
  36. if (callback) {
  37. callback(apiErrorResult);
  38. }
  39. }
  40. });
  41. };
  42. API.prototype.getO2oUserInfo = function(data, callback) {
  43. var that = this;
  44. this.isLoading = true;
  45. $.signAjax({
  46. url: config.apiPath + '/index.php?r=o2o/user/info',
  47. data: data,
  48. dataType: 'JSON',
  49. success: function(res) {
  50. that.isLoading = false;
  51. if (callback) {
  52. callback(res);
  53. }
  54. },
  55. error: function(res) {
  56. that.isLoading = false;
  57. if (callback) {
  58. callback(apiErrorResult);
  59. }
  60. }
  61. });
  62. };
  63. API.prototype.getHelp = function(data, callback) {
  64. var that = this;
  65. this.isLoading = true;
  66. $.signAjax({
  67. url: config.apiPath + '/index.php?r=api/common/staticSource&key=help_center',
  68. data: data,
  69. dataType: 'JSON',
  70. success: function(res) {
  71. that.isLoading = false;
  72. if (callback) {
  73. callback(res);
  74. }
  75. },
  76. error: function(res) {
  77. that.isLoading = false;
  78. if (callback) {
  79. callback(apiErrorResult);
  80. }
  81. }
  82. });
  83. };
  84. API.prototype.getAbout = function(data, callback) {
  85. var that = this;
  86. this.isLoading = true;
  87. $.signAjax({
  88. url: config.apiPath + '/index.php?r=api/common/staticSource&key=about_us',
  89. data: data,
  90. dataType: 'JSON',
  91. success: function(res) {
  92. that.isLoading = false;
  93. if (callback) {
  94. callback(res);
  95. }
  96. },
  97. error: function(res) {
  98. that.isLoading = false;
  99. if (callback) {
  100. callback(apiErrorResult);
  101. }
  102. }
  103. });
  104. };
  105. //获取优惠券列表
  106. API.prototype.getCouponList = function(data, callback) {
  107. var that = this;
  108. $.signAjax({
  109. url: config.apiPath + '/index.php?r=o2o/order/usableCoupon',
  110. data: data,
  111. dataType: 'JSON',
  112. success: function(res) {
  113. that.isLoading = false;
  114. if (callback) {
  115. callback(res);
  116. }
  117. },
  118. error: function(res) {
  119. that.isLoading = false;
  120. if (callback) {
  121. callback(apiErrorResult);
  122. }
  123. }
  124. });
  125. };
  126. //兑换优惠券
  127. API.prototype.exchangeCoupon = function(data, callback) {
  128. var that = this;
  129. $.signAjax({
  130. url: config.apiPath + '/index.php?r=o2o/user/exchangeCoupon',
  131. data: data,
  132. dataType: 'JSON',
  133. success: function(res) {
  134. that.isLoading = false;
  135. if (callback) {
  136. callback(res);
  137. }
  138. },
  139. error: function(res) {
  140. that.isLoading = false;
  141. if (callback) {
  142. callback(apiErrorResult);
  143. }
  144. }
  145. });
  146. };
  147. //检查用户的地址是否在服务站内
  148. API.prototype.checkAddress = function (data, callback) {
  149. var that = this;
  150. $.signAjax({
  151. url: config.apiPath + '/index.php?r=o2o/order/checkAddress',
  152. data: data,
  153. dataType: 'JSON',
  154. success: function(res) {
  155. that.isLoading = false;
  156. if (callback) {
  157. callback(res);
  158. }
  159. },
  160. error: function(res) {
  161. that.isLoading = false;
  162. if (callback) {
  163. callback(apiErrorResult);
  164. }
  165. }
  166. });
  167. };
  168. //提交订单
  169. API.prototype.addOrder = function(data, callback) {
  170. var that = this;
  171. $.signAjax({
  172. url: config.apiPath + '/index.php?r=o2o/order/add',
  173. data: data,
  174. dataType: 'JSON',
  175. success: function(res) {
  176. that.isLoading = false;
  177. if (callback) {
  178. callback(res);
  179. }
  180. },
  181. error: function(res) {
  182. that.isLoading = false;
  183. if (callback) {
  184. callback(apiErrorResult);
  185. }
  186. }
  187. });
  188. };
  189. //取消订单
  190. API.prototype.cancelOrder = function(data, callback) {
  191. var that = this;
  192. $.signAjax({
  193. url: config.apiPath + '/index.php?r=o2o/order/del',
  194. data: data,
  195. dataType: 'JSON',
  196. success: function(res) {
  197. that.isLoading = false;
  198. if (callback) {
  199. callback(res);
  200. }
  201. },
  202. error: function(res) {
  203. that.isLoading = false;
  204. if (callback) {
  205. callback(apiErrorResult);
  206. }
  207. }
  208. });
  209. };
  210. // 追加订单
  211. API.prototype.appendOrder = function(data, callback) {
  212. var that = this;
  213. $.signAjax({
  214. url: config.apiPath + '/index.php?r=o2o/order/append',
  215. data: data,
  216. dataType: 'JSON',
  217. success: function(res) {
  218. that.isLoading = false;
  219. if (callback) {
  220. callback(res);
  221. }
  222. },
  223. error: function(res) {
  224. that.isLoading = false;
  225. if (callback) {
  226. callback(apiErrorResult);
  227. }
  228. }
  229. });
  230. };
  231. // 订单详情
  232. API.prototype.getOrderDetail = function(data, callback) {
  233. var that = this;
  234. $.signAjax({
  235. url: config.apiPath + '/index.php?r=o2o/order/detail',
  236. data: data,
  237. dataType: 'JSON',
  238. success: function(res) {
  239. that.isLoading = false;
  240. if (callback) {
  241. callback(res);
  242. }
  243. },
  244. error: function(res) {
  245. that.isLoading = false;
  246. if (callback) {
  247. callback(apiErrorResult);
  248. }
  249. }
  250. });
  251. };
  252. //获取支付信息
  253. API.prototype.getPayCharge = function(data, callback) {
  254. var that = this;
  255. $.signAjax({
  256. url: config.apiPath + '/index.php?r=o2o/order/pay',
  257. data: data,
  258. dataType: 'JSON',
  259. success: function(res) {
  260. that.isLoading = false;
  261. if (callback) {
  262. callback(res);
  263. }
  264. },
  265. error: function(res) {
  266. that.isLoading = false;
  267. if (callback) {
  268. callback(apiErrorResult);
  269. }
  270. }
  271. });
  272. };
  273. // 获取追加订单信息
  274. API.prototype.getAppendPayCharge = function(data, callback) {
  275. var that = this;
  276. $.signAjax({
  277. url: config.apiPath + '/index.php?r=o2o/order/appendPay',
  278. data: data,
  279. dataType: 'JSON',
  280. success: function(res) {
  281. that.isLoading = false;
  282. if (callback) {
  283. callback(res);
  284. }
  285. },
  286. error: function(res) {
  287. that.isLoading = false;
  288. if (callback) {
  289. callback(apiErrorResult);
  290. }
  291. }
  292. });
  293. };
  294. //获取我的订单列表
  295. API.prototype.getMyOrderList = function(data, callback) {
  296. var that = this;
  297. $.signAjax({
  298. url: config.apiPath + '/index.php?r=o2o/order/list',
  299. data: data,
  300. dataType: 'JSON',
  301. success: function(res) {
  302. that.isLoading = false;
  303. if (callback) {
  304. callback(res);
  305. }
  306. },
  307. error: function(res) {
  308. that.isLoading = false;
  309. if (callback) {
  310. callback(apiErrorResult);
  311. }
  312. }
  313. });
  314. };
  315. //发表评价
  316. API.prototype.postReview = function(data, callback) {
  317. var that = this;
  318. $.signAjax({
  319. url: config.apiPath + '/index.php?r=o2o/product/comment',
  320. data: data,
  321. dataType: 'JSON',
  322. success: function(res) {
  323. that.isLoading = false;
  324. if (callback) {
  325. callback(res);
  326. }
  327. },
  328. error: function(res) {
  329. that.isLoading = false;
  330. if (callback) {
  331. callback(apiErrorResult);
  332. }
  333. }
  334. });
  335. };
  336. //评价列表
  337. API.prototype.getReviewList = function(data, callback) {
  338. var that = this;
  339. $.signAjax({
  340. url: config.apiPath + '/index.php?r=o2o/product/commentList',
  341. data: data,
  342. dataType: 'JSON',
  343. success: function(res) {
  344. that.isLoading = false;
  345. if (callback) {
  346. callback(res);
  347. }
  348. },
  349. error: function(res) {
  350. that.isLoading = false;
  351. if (callback) {
  352. callback(apiErrorResult);
  353. }
  354. }
  355. });
  356. };
  357. //地址列表
  358. API.prototype.getAddressList = function(data, callback) {
  359. var that = this;
  360. $.signAjax({
  361. url: config.apiPath + '/index.php?r=api/shop/addressList',
  362. data: data,
  363. dataType: 'JSON',
  364. success: function(res) {
  365. that.isLoading = false;
  366. if (callback) {
  367. callback(res);
  368. }
  369. },
  370. error: function(res) {
  371. that.isLoading = false;
  372. if (callback) {
  373. callback(apiErrorResult);
  374. }
  375. }
  376. });
  377. };
  378. //新增地址
  379. API.prototype.addAddress = function(data, callback) {
  380. var that = this;
  381. $.signAjax({
  382. url: config.apiPath + '/index.php?r=api/shop/addAddress',
  383. data: data,
  384. dataType: 'JSON',
  385. success: function(res) {
  386. that.isLoading = false;
  387. if (callback) {
  388. callback(res);
  389. }
  390. },
  391. error: function(res) {
  392. that.isLoading = false;
  393. if (callback) {
  394. callback(apiErrorResult);
  395. }
  396. }
  397. });
  398. };
  399. //删除地址
  400. API.prototype.deleteAddress = function(data, callback) {
  401. var that = this;
  402. $.signAjax({
  403. url: config.apiPath + '/index.php?r=api/shop/delAddress',
  404. data: data,
  405. dataType: 'JSON',
  406. success: function(res) {
  407. that.isLoading = false;
  408. if (callback) {
  409. callback(res);
  410. }
  411. },
  412. error: function(res) {
  413. that.isLoading = false;
  414. if (callback) {
  415. callback(apiErrorResult);
  416. }
  417. }
  418. });
  419. };
  420. // 修改地址
  421. API.prototype.editAddress = function(data, callback) {
  422. var that = this;
  423. $.signAjax({
  424. url: config.apiPath + '/index.php?r=api/shop/editAddress',
  425. data: data,
  426. dataType: 'JSON',
  427. success: function(res) {
  428. that.isLoading = false;
  429. if (callback) {
  430. callback(res);
  431. }
  432. },
  433. error: function(res) {
  434. that.isLoading = false;
  435. if (callback) {
  436. callback(apiErrorResult);
  437. }
  438. }
  439. });
  440. };
  441. // 获取上传图片token
  442. API.prototype.gettoken = function(data, callback) {
  443. var that = this;
  444. $.signAjax({
  445. url: config.apiPath + '/index.php?r=api/upload/gettoken',
  446. data: data,
  447. dataType: 'JSON',
  448. success: function(res) {
  449. that.isLoading = false;
  450. if (callback) {
  451. callback(res);
  452. }
  453. },
  454. error: function(res) {
  455. that.isLoading = false;
  456. if (callback) {
  457. callback(apiErrorResult);
  458. }
  459. }
  460. });
  461. };
  462. // 退款
  463. API.prototype.refundOrder = function(data, callback) {
  464. var that = this;
  465. $.signAjax({
  466. url: config.apiPath + '/index.php?r=o2o/order/retrieve',
  467. data: data,
  468. dataType: 'JSON',
  469. success: function(res) {
  470. that.isLoading = false;
  471. if (callback) {
  472. callback(res);
  473. }
  474. },
  475. error: function(res) {
  476. that.isLoading = false;
  477. if (callback) {
  478. callback(apiErrorResult);
  479. }
  480. }
  481. });
  482. };
  483. // 确认完成
  484. API.prototype.finishOrder = function(data, callback) {
  485. var that = this;
  486. $.signAjax({
  487. url: config.apiPath + '/index.php?r=o2o/order/confirmComplete',
  488. data: data,
  489. dataType: 'JSON',
  490. success: function(res) {
  491. that.isLoading = false;
  492. if (callback) {
  493. callback(res);
  494. }
  495. },
  496. error: function(res) {
  497. that.isLoading = false;
  498. if (callback) {
  499. callback(apiErrorResult);
  500. }
  501. }
  502. });
  503. };
  504. // 触宝 获取加密支付信息
  505. API.prototype.getTradeStr = function(data, callback) {
  506. var that = this;
  507. $.signAjax({
  508. url: config.apiPath + '/index.php?r=o2o/chubao/chubaoPay',
  509. data: data,
  510. dataType: 'JSON',
  511. success: function(res) {
  512. that.isLoading = false;
  513. if (callback) {
  514. callback(res);
  515. }
  516. },
  517. error: function(res) {
  518. that.isLoading = false;
  519. if (callback) {
  520. callback(apiErrorResult);
  521. }
  522. }
  523. });
  524. };
  525. // 选择保洁师
  526. API.prototype.selectTech = function(data, callback) {
  527. var that = this;
  528. $.signAjax({
  529. url: config.apiPath + '/index.php?r=o2o/order/selectTech',
  530. data: data,
  531. dataType: 'JSON',
  532. success: function(res) {
  533. that.isLoading = false;
  534. if (callback) {
  535. callback(res);
  536. }
  537. },
  538. error: function(res) {
  539. that.isLoading = false;
  540. if (callback) {
  541. callback(apiErrorResult);
  542. }
  543. }
  544. });
  545. };
  546. API.prototype.techComment = function(data, callback) {
  547. var that = this;
  548. $.signAjax({
  549. url: config.apiPath + '/index.php?r=o2o/order/techComment',
  550. data: data,
  551. dataType: 'JSON',
  552. success: function(res) {
  553. that.isLoading = false;
  554. if (callback) {
  555. callback(res);
  556. }
  557. },
  558. error: function(res) {
  559. that.isLoading = false;
  560. if (callback) {
  561. callback(apiErrorResult);
  562. }
  563. }
  564. });
  565. };
  566. //创建充值卡订单
  567. API.prototype.addRechargeorder = function(data, callback) {
  568. var that = this;
  569. $.signAjax({
  570. url: config.apiPath + '/index.php?r=o2o/recharge/addRechargeorder',
  571. data: data,
  572. dataType: 'JSON',
  573. success: function(res) {
  574. that.isLoading = false;
  575. if (callback) {
  576. callback(res);
  577. }
  578. },
  579. error: function(res) {
  580. that.isLoading = false;
  581. if (callback) {
  582. callback(apiErrorResult);
  583. }
  584. }
  585. });
  586. };
  587. //充值卡支付
  588. API.prototype.payRecharge = function(data, callback) {
  589. var that = this;
  590. $.signAjax({
  591. url: config.apiPath + '/index.php?r=o2o/recharge/payRecharge',
  592. data: data,
  593. dataType: 'JSON',
  594. success: function(res) {
  595. that.isLoading = false;
  596. if (callback) {
  597. callback(res);
  598. }
  599. },
  600. error: function(res) {
  601. that.isLoading = false;
  602. if (callback) {
  603. callback(apiErrorResult);
  604. }
  605. }
  606. });
  607. };
  608. //充值卡列表
  609. API.prototype.getRechargeList = function(data, callback) {
  610. var that = this;
  611. $.signAjax({
  612. url: config.apiPath + '/index.php?r=o2o/recharge/rechargeList',
  613. data: data,
  614. dataType: 'JSON',
  615. success: function(res) {
  616. that.isLoading = false;
  617. if (callback) {
  618. callback(res);
  619. }
  620. },
  621. error: function(res) {
  622. that.isLoading = false;
  623. if (callback) {
  624. callback(apiErrorResult);
  625. }
  626. }
  627. });
  628. };
  629. return new API();
  630. })