_index.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. const express = require('express');
  2. const router = express.Router();
  3. const { body, query } = require('express-validator');
  4. const paramCheck = require('../../../middleware/check');
  5. const { inviteCheck, buyCourse, buyCheck } = require('../../../models/page');
  6. const { onError } = require('../../../utils');
  7. /**
  8. * showdoc
  9. * @catalog v1/前台/购买
  10. * @title 购买课程
  11. * @description
  12. * @method post
  13. * @url /api/order
  14. * @param cid 1 number 课程id
  15. * @return {"code":0,"data": {"url":"zgHXZfQ==,"id": 123}}
  16. * @return_param url number 支付url
  17. * @return_param id number 订单id
  18. * @remark
  19. * @number
  20. */
  21. router.post('/order', paramCheck([body(['cid']).notEmpty()]), async (req, res) => {
  22. if (!req.uid) {
  23. return res.send(onError('用户未登录'));
  24. }
  25. req.body.uid = req.uid;
  26. const info = await buyCourse(req.body);
  27. res.send(info);
  28. });
  29. /**
  30. * showdoc
  31. * @catalog v1/前台/购买
  32. * @title 邀请码查看
  33. * @description
  34. * @method post
  35. * @url /api/inviter
  36. * @param code 1 string 邀请码
  37. * @param cid 1 string 课程id
  38. * @return {"code":0,"data": {"price":"123,"discountPrice": 123}}
  39. * @return_param price number 支付价
  40. * @return_param discountPrice number 优惠价
  41. * @remark
  42. * @number
  43. */
  44. router.post('/inviter', paramCheck([body(['code', 'cid']).notEmpty()]), async (req, res) => {
  45. // if (!req.uid) {
  46. // return res.send(onError('用户未登录'));
  47. // }
  48. req.body.uid = req.uid;
  49. const info = await inviteCheck(req.body);
  50. res.send(info);
  51. });
  52. /**
  53. * showdoc
  54. * @catalog v1/前台/购买
  55. * @title 购买轮询
  56. * @description
  57. * @method get
  58. * @url /api/order/check
  59. * @param oid 1 number 订单id
  60. * @return {"code":0,"data": {"url":"zgHXZfQ==,"id": 123}}
  61. * @return_param data boolean 是否支付成功
  62. * @remark
  63. * @number
  64. */
  65. router.get('/order/check', paramCheck([body(['oid']).notEmpty()]), async (req, res) => {
  66. if (!req.uid) {
  67. return res.send(onError('用户未登录'));
  68. }
  69. const info = await buyCheck(req.query.oid);
  70. res.send(info);
  71. });
  72. module.exports = router;