sms_controller.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  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. // console.log(request.session.code);
  38. } else {
  39. let returnStatus = await smsModel.sendSmsFromSSO(mobile, type);
  40. if (returnStatus === null) {
  41. throw '获取数据失败!';
  42. }
  43. if(returnStatus != 1){
  44. responseData.err = 1;
  45. responseData.msg = await smsModel.getStatusMsg(returnStatus);
  46. }
  47. }
  48. } catch (error) {
  49. console.log(error);
  50. responseData.err = 1;
  51. responseData.msg = error;
  52. }
  53. response.json(responseData);
  54. }
  55. /**
  56. * 手机和验证码验证并更新sso
  57. *
  58. * @param {object} request
  59. * @param {object} response
  60. * @return {void}
  61. */
  62. async setMobile(request, response) {
  63. let responseData = {
  64. err: 0,
  65. msg: ''
  66. };
  67. let ssoId = request.body.ssoId;
  68. let mobile = request.body.mobile;
  69. let code = request.body.code;
  70. try {
  71. let smsModel = new SmsModel();
  72. let returnStatus = await smsModel.checkCodeFromSSO(ssoId, mobile, code);
  73. if (returnStatus === null) {
  74. throw '获取数据失败!';
  75. }
  76. if(returnStatus != 1){
  77. responseData.err = 1;
  78. responseData.msg = await smsModel.getStatusMsg(returnStatus);
  79. }
  80. } catch (error) {
  81. console.log(error);
  82. responseData.err = 1;
  83. responseData.msg = error;
  84. }
  85. response.json(responseData);
  86. }
  87. /**
  88. * 检测通行账号是否已存在该手机号码注册
  89. *
  90. * @param {object} request
  91. * @param {object} response
  92. * @return {void}
  93. */
  94. async checkMobile (request, response) {
  95. let responseData = {
  96. err: 0,
  97. msg: ''
  98. };
  99. let mobile = request.body.mobile;
  100. try {
  101. let userModel = new UserModel();
  102. let responseData = await userModel.getInfoFromSSOMobile(mobile, 0);
  103. if ( responseData === '-2') {
  104. throw '参数有误或手机号码不正确';
  105. }
  106. responseData = JSON.parse(responseData);
  107. if (typeof responseData !== 'object') {
  108. throw '该手机号未注册通行账号';
  109. }
  110. responseData.msg = 'success';
  111. } catch (error) {
  112. console.log(error);
  113. responseData.err = 1;
  114. responseData.msg = error;
  115. }
  116. response.json(responseData);
  117. }
  118. }
  119. module.exports = SmsController;