webuserlogic.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. <?php
  2. namespace app\app\logic;
  3. use app\app\model\smscoderecordmodel;
  4. use app\app\model\webusermodel;
  5. /**
  6. * 登记记录表
  7. *
  8. * @author wj
  9. * @date 2022-07-22
  10. */
  11. class webuserlogic extends baselogic
  12. {
  13. /**
  14. * 设置请求数据规则
  15. * 20220107
  16. * wj
  17. */
  18. protected function setrules()
  19. {
  20. $list = [
  21. 'login' => [
  22. ['name' => 'telno', 'title' => '手机号', 'require' => true, 'type' => 'numeric'],
  23. ['name' => 'code', 'title' => '验证码', 'require' => true, 'type' => 'numeric'],
  24. ],
  25. 'sendsms' => [
  26. ['name' => 'telno', 'title' => '手机号', 'require' => true, 'type' => 'numeric'],
  27. ],
  28. ];
  29. return $list;
  30. }
  31. //后台或数据库直接添加数据
  32. public function login($arr)
  33. {
  34. $result = $this->checkparam(__FUNCTION__, $arr);
  35. if (1 != $result['status']) {
  36. return $result;
  37. }
  38. $data = $result['data'];
  39. $telno = $data['telno'];
  40. $code = $data['code'];
  41. //验证用户
  42. $m_w = new webusermodel();
  43. $winfo = $m_w->getinfobytelno($telno);
  44. if (empty($winfo)) {
  45. return backarr(0, "无用户数据");
  46. }
  47. $wid = $winfo['id'];
  48. //验证code
  49. $m_s = new smscoderecordmodel();
  50. $result = $m_s->checkcode($telno, $code);
  51. if (!$result['status']) {
  52. return $result;
  53. }
  54. $row = $m_w->settoken($wid, $telno);
  55. if (empty($row)) {
  56. return backarr(0, "用户token修改失败");
  57. }
  58. $winfo = $m_w->getinfobyid($wid, ['token']);
  59. return backarr(1, "用户登录成功", $winfo);
  60. }
  61. /**
  62. * 校验token
  63. *
  64. * @param [type] $token
  65. * @return void
  66. * @author wj
  67. * @date 2022-07-25
  68. */
  69. public function checktoken($token)
  70. {
  71. $m_w = new webusermodel();
  72. $info = $m_w->getinfobytoken($token);
  73. return $info ? true : false;
  74. }
  75. /**
  76. * 发送短信
  77. *
  78. * @return void
  79. * @author wj
  80. * @date 2022-07-25
  81. */
  82. public function sendsms($arr)
  83. {
  84. $result = $this->checkparam(__FUNCTION__, $arr);
  85. if (1 != $result['status']) {
  86. return $result;
  87. }
  88. $data = $result['data'];
  89. $telno = $data['telno'];
  90. if (!isMoblid($telno)) {
  91. return backarr(0, "手机号格式错误");
  92. }
  93. //查未使用的验证码
  94. $m_s = new smscoderecordmodel();
  95. $where = ['telno' => $telno];
  96. $list = $m_s->getList($where, 'smscode', 1, 0)->toArray();
  97. if (empty($list)) {
  98. //发送短信
  99. //$code = randomStr();
  100. $code = "8888";
  101. $smsData = [
  102. 'telno' => $telno,
  103. 'smscode' => $code,
  104. ];
  105. $row = $m_s->insertData($smsData);
  106. if (empty($row)) {
  107. return backarr(0, "验证码添加失败");
  108. }
  109. } else {
  110. $code = $list[0]['smscode'];
  111. }
  112. //发送验证码
  113. $sendresult = true;
  114. if (!$sendresult) {
  115. return backarr(0, "验证码发送失败");
  116. }
  117. return backarr(1, "验证码发送成功");
  118. }
  119. }