sms_controller.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. /**
  2. * 短信相关控制器
  3. *
  4. * @author EllisRan
  5. * @date 2018/4/17
  6. * @version
  7. */
  8. const UserModel = require("../models/user_model");
  9. const SmsModel = require("../models/sms_model");
  10. const SMS = require('../models/sms');
  11. class SmsController {
  12. /**
  13. * 发送短信验证码
  14. *
  15. * @param {object} request
  16. * @param {object} response
  17. * @return {void}
  18. */
  19. async code(request, response) {
  20. let responseData = {
  21. err: 0,
  22. msg: ''
  23. };
  24. let mobile = request.body.mobile;
  25. let type = request.body.type;
  26. try {
  27. let smsModel = new SmsModel();
  28. if (parseInt(type) === 3) {
  29. const Sms = new SMS();
  30. const code = Sms.generateRandomString(6,2);
  31. await Sms.send(mobile, code);
  32. // console.log(JSON.stringify(returnStatus));
  33. // if (parseInt(JSON.stringify(returnStatus).statusCode) !== 200) {
  34. // throw '短信发送失败!';
  35. // }
  36. request.session.code = mobile + '_' + code + '_' + Date.parse(new Date())/1000;
  37. } else {
  38. let returnStatus = await smsModel.sendSmsFromSSO(mobile, type);
  39. if (returnStatus === null) {
  40. throw '获取数据失败!';
  41. }
  42. if(returnStatus != 1){
  43. responseData.err = 1;
  44. responseData.msg = await smsModel.getStatusMsg(returnStatus);
  45. }
  46. }
  47. } catch (error) {
  48. console.log(error);
  49. responseData.err = 1;
  50. responseData.msg = error;
  51. }
  52. response.json(responseData);
  53. }
  54. /**
  55. * 手机和验证码验证并更新sso
  56. *
  57. * @param {object} request
  58. * @param {object} response
  59. * @return {void}
  60. */
  61. async setMobile(request, response) {
  62. let responseData = {
  63. err: 0,
  64. msg: ''
  65. };
  66. let ssoId = request.body.ssoId;
  67. let mobile = request.body.mobile;
  68. let code = request.body.code;
  69. try {
  70. let smsModel = new SmsModel();
  71. let returnStatus = await smsModel.checkCodeFromSSO(ssoId, mobile, code);
  72. if (returnStatus === null) {
  73. throw '获取数据失败!';
  74. }
  75. if(returnStatus != 1){
  76. responseData.err = 1;
  77. responseData.msg = await smsModel.getStatusMsg(returnStatus);
  78. }
  79. } catch (error) {
  80. console.log(error);
  81. responseData.err = 1;
  82. responseData.msg = error;
  83. }
  84. response.json(responseData);
  85. }
  86. /**
  87. * 检测通行账号是否已存在该手机号码注册
  88. *
  89. * @param {object} request
  90. * @param {object} response
  91. * @return {void}
  92. */
  93. async checkMobile (request, response) {
  94. let responseData = {
  95. err: 0,
  96. msg: ''
  97. };
  98. let mobile = request.body.mobile;
  99. try {
  100. let userModel = new UserModel();
  101. let responseData = await userModel.getInfoFromSSOMobile(mobile, 0);
  102. if ( responseData === '-2') {
  103. throw '参数有误或手机号码不正确';
  104. }
  105. responseData = JSON.parse(responseData);
  106. if (typeof responseData !== 'object') {
  107. throw '该手机号未注册通行账号';
  108. }
  109. responseData.msg = 'success';
  110. } catch (error) {
  111. console.log(error);
  112. responseData.err = 1;
  113. responseData.msg = error;
  114. }
  115. response.json(responseData);
  116. }
  117. }
  118. module.exports = SmsController;