hongbao.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. }
  50. export default new Hongbao()