LoginBus.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. /**
  3. *
  4. *User:Administrator
  5. *Date:2021/10/8
  6. */
  7. namespace app\api\business;
  8. use app\api\model\Jcdw;
  9. use app\api\model\Jgry;
  10. use app\common\lib\auth\JwtAuth;
  11. use app\common\model\mysql\Ry;
  12. use app\api\exception\ApiException;
  13. use think\facade\Cache;
  14. class LoginBus
  15. {
  16. public function login($username,$password)
  17. {
  18. //从人员表中查询数据
  19. $jgry_info=(new Jgry())->getUserInfoByRybh($username);
  20. //从检测单位表中查询数据
  21. $jcdw_info=(new Jcdw())->getInfoByLoginName($username);
  22. //用户名都不存在则抛出异常
  23. if (!$jgry_info && !$jcdw_info) {
  24. throw new ApiException(config('status.err_user_not_exist'));
  25. }
  26. //在ry表中查询到数据,则验证用户名和密码
  27. if (isset($jgry_info['rybh']) && $jgry_info['kl']==$password) {
  28. $data=[
  29. 'id' => $jgry_info['id'],
  30. 'groupname'=>$jgry_info['groupname'],
  31. 'rymc'=>$jgry_info['rymc'],
  32. 'name'=>'',
  33. 'rybh'=>$jgry_info['rybh'],
  34. 'qydm'=>$jgry_info['qydm'],
  35. ];
  36. }
  37. //在jcdw表中查询到数据,则验证用户名和密码
  38. if (isset($jcdw_info['login_name']) && $jcdw_info['pwd'] == $password) {
  39. //return '正确2';
  40. $data=[
  41. 'id' => $jcdw_info['id'],
  42. 'groupname'=>$jcdw_info['groupname'],
  43. 'rymc'=>$jcdw_info['login_name'],
  44. 'name'=>$jcdw_info['name'],
  45. 'rybh'=>'',
  46. 'qydm'=>$jcdw_info['qydm'],
  47. ];
  48. }
  49. //实例化JwtAuth,生成token
  50. $jwt_auth=JwtAuth::getInstance();
  51. $token = $jwt_auth
  52. ->setGroupname($data['groupname'])
  53. ->setRymc($data['rymc'])
  54. ->setName($data['name'])
  55. ->setRybh($data['rybh'])
  56. ->setQydm($data['qydm'])
  57. ->setUid($data['id'])
  58. ->encode()
  59. ->getToken();
  60. //将ip存到redis中,通过middleware验证 todo
  61. $real_ip = request()->ip();
  62. Cache::store('redis')->set($real_ip,$token,1 * 24 * 3600);
  63. //data数组添加两条数据
  64. $data['token']=$token;
  65. $data['re_ip']=$real_ip;
  66. return $data;
  67. }
  68. }