sms_controller.js 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. /**
  2. * 短信相关控制器
  3. *
  4. * @author EllisRan
  5. * @date 2018/4/17
  6. * @version
  7. */
  8. import SmsModel from "../models/sms_model";
  9. const SMS = require('../models/sms');
  10. class SmsController {
  11. /**
  12. * 发送短信验证码
  13. *
  14. * @param {object} request
  15. * @param {object} response
  16. * @return {void}
  17. */
  18. async code(request, response) {
  19. let responseData = {
  20. err: 0,
  21. msg: ''
  22. };
  23. let mobile = request.body.mobile;
  24. let type = request.body.type;
  25. try {
  26. let smsModel = new SmsModel();
  27. if (parseInt(type) === 3) {
  28. const Sms = new SMS();
  29. const code = Sms.generateRandomString(6,2);
  30. await Sms.send(mobile, code);
  31. // console.log(JSON.stringify(returnStatus));
  32. // if (parseInt(JSON.stringify(returnStatus).statusCode) !== 200) {
  33. // throw '短信发送失败!';
  34. // }
  35. request.session.code = code + '_' + Date.parse(new Date())/1000;
  36. } else {
  37. let returnStatus = await smsModel.sendSmsFromSSO(mobile, type);
  38. if (returnStatus === null) {
  39. throw '获取数据失败!';
  40. }
  41. if(returnStatus != 1){
  42. responseData.err = 1;
  43. responseData.msg = await smsModel.getStatusMsg(returnStatus);
  44. }
  45. }
  46. } catch (error) {
  47. console.log(error);
  48. responseData.err = 1;
  49. responseData.msg = error;
  50. }
  51. response.json(responseData);
  52. }
  53. /**
  54. * 手机和验证码验证并更新sso
  55. *
  56. * @param {object} request
  57. * @param {object} response
  58. * @return {void}
  59. */
  60. async setMobile(request, response) {
  61. let responseData = {
  62. err: 0,
  63. msg: ''
  64. };
  65. let ssoId = request.body.ssoId;
  66. let mobile = request.body.mobile;
  67. let code = request.body.code;
  68. try {
  69. let smsModel = new SmsModel();
  70. let returnStatus = await smsModel.checkCodeFromSSO(ssoId, mobile, code);
  71. if (returnStatus === null) {
  72. throw '获取数据失败!';
  73. }
  74. if(returnStatus != 1){
  75. responseData.err = 1;
  76. responseData.msg = await smsModel.getStatusMsg(returnStatus);
  77. }
  78. } catch (error) {
  79. console.log(error);
  80. responseData.err = 1;
  81. responseData.msg = error;
  82. }
  83. response.json(responseData);
  84. }
  85. }
  86. export default SmsController;