hongbao.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. 'use strict'
  2. import HongbaoModel from '../../models/promotion/hongbao'
  3. import BaseComponent from '../../prototype/baseComponent'
  4. class Hongbao extends BaseComponent{
  5. constructor(){
  6. super()
  7. this.getHongbao = this.getHongbao.bind(this);
  8. this.getExpiredHongbao = this.getExpiredHongbao.bind(this);
  9. }
  10. async getHongbao(req, res, next){
  11. this.hongbaoHandle(req, res, 'intime')
  12. }
  13. async getExpiredHongbao(req, res, next){
  14. this.hongbaoHandle(req, res, 'expired')
  15. }
  16. async hongbaoHandle(req, res, type){
  17. const present_status = type == 'intime'? 1 : 4;
  18. const user_id = req.params.user_id;
  19. const {limit = 0, offset = 0} = req.query;
  20. try{
  21. if(!user_id || !Number(user_id)){
  22. throw new Error('user_id参数错误')
  23. }else if(!Number(limit)){
  24. throw new Error('limit参数错误')
  25. }else if(typeof Number(offset) !== 'number'){
  26. throw new Error('offset参数错误')
  27. }
  28. }catch(err){
  29. console.log(err.message, err);
  30. res.send({
  31. status: 0,
  32. type: 'ERROR_PARAMS',
  33. message: err.message
  34. })
  35. return
  36. }
  37. try{
  38. const hongbaos = await HongbaoModel.find({present_status}, '-_id').limit(Number(limit)).skip(Number(offset));
  39. res.send(hongbaos)
  40. }catch(err){
  41. console.log('获取红包数据失败');
  42. res.send({
  43. status: 0,
  44. type: 'ERROR_TO_GET_HONGBAO_DATA',
  45. message: '获取红包数据失败'
  46. })
  47. }
  48. }
  49. async exchange(req, res, next){
  50. res.send({
  51. status: 0,
  52. type: 'NOT_ALLOWD_API',
  53. message: '无效的兑换码'
  54. })
  55. }
  56. }
  57. export default new Hongbao()