License.php 4.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. namespace app\inter\controller;
  3. use think\Controller;
  4. use think\Db;
  5. use think\Session;
  6. use think\Log;
  7. use think\Request;
  8. use think\Cache;
  9. use app\common\library\UUIDs;
  10. use app\common\library\Verify;
  11. use think\Validate;
  12. use app\common\library\send_message;
  13. class License extends Controller
  14. {
  15. public function _initialize(){
  16. /*$admin = Cache::get('doctor');
  17. if($admin){
  18. //已经登陆过
  19. return json_encode(array('status'=>'fail','code'=>'1001','msg'=>'您已登陆,请勿重复登录'));
  20. }*/
  21. }
  22. /**
  23. * 医生登录
  24. *
  25. * @ApiTitle (医生登录)
  26. * @ApiSummary (医生登录)
  27. * @ApiSector (医生接口)
  28. * @ApiMethod (POST)
  29. * @ApiRoute (/inter/login/index)
  30. * @ApiHeaders (name="sign", type="string", required=true, description="请求头-校验key")
  31. * @ApiHeaders (name="nonce", type="string", required=true, description="请求头-随机数")
  32. * @ApiHeaders (name="timestamp", type=string, required=true, description="请求头-时间戳s")
  33. * @ApiParams (name="param", type="string", required=true, description="参数json字符串")
  34. * @ApiParams (name="param[userName]", type="string", sample="", description="用户账号<必填>")
  35. * @ApiParams (name="param[pwd]", type="string", sample="", description="用户密码<必填>")
  36. * @ApiParams (name="param[capture]", type="string", sample="", description="验证码<选填>")
  37. * @ApiReturnParams (name="status", type="integer", required=true, sample="0", description="返回码 fail 失败 ok成功"))
  38. * @ApiReturnParams (name="code", type="integer", required=true, sample="0", description="返回状态码")
  39. * @ApiReturnParams (name="info", type="string", required=true, sample="返回成功", description="返回信息")
  40. * @ApiReturnParams (name="sessionid", type="object", sample="{}", description="缓存的数据key")
  41. * @ApiReturn (data="
  42. {
  43. 'status': ok,
  44. 'code': '0000',
  45. 'sessionid': 'a17z7a7a8f9g9rh9d89jio',
  46. 'info' : ''
  47. }
  48. *")
  49. **/
  50. //登录功能
  51. public function index(){
  52. try{
  53. $param = $_REQUEST['param'];
  54. $license = $param['license'] ?? false;
  55. Log::record("$license");
  56. Log::record($license);
  57. $license_info = Db::table('license')->where('license', $license)->where('status',1)->find();
  58. Log::record($license_info);
  59. if(empty($license_info)) {
  60. return json_encode(['status'=>'fail','code'=>'2001','msg'=>'授权码校验失败']);
  61. }
  62. $info = Db::table('doctors')->where('id', $license_info['uid'])->find();
  63. $sessionid = (time()+86400).rand(0,1000);
  64. log::record($sessionid);
  65. log::record($_REQUEST);
  66. //医生信息
  67. log::record($info);
  68. if(!$info){
  69. return json_encode(['status'=>'fail','code'=>'1004','msg'=>'用户名信息不存在']);
  70. }
  71. //医生类
  72. $class_info = DB::table('doctor_class')->where('doctor_id',$info['id'])->cache(300)->find();
  73. $institution = DB::table('institution')->where('id',$info['institution_id'])->cache(300)->field('name')->find();
  74. $info['institution_name'] = $institution['name'];
  75. $info['doctor_class_info'] = $class_info;
  76. //医生权限菜单
  77. $sql = "SELECT m.id,m.name,m.url,m.parent_id,m.icon_name from menu as m,dr_cla_permission as d where d.type=1 and d.doctor_id='".$info['id']."' and d.pass=m.id order by m.ordernum ";
  78. $permission = DB::query($sql);
  79. $info['permission'] = $permission;
  80. Cache::set($sessionid, $info);
  81. log::record('----登录信息----');
  82. log::record(Cache::get($sessionid));
  83. log::record('----登录信息----');
  84. unset($info['password']);
  85. return json_encode(['status'=>'ok','code'=>'0000','info'=>$info,'sessionid'=>$sessionid]);
  86. }catch(\Exception $e){
  87. Log::record(2);
  88. return json_encode(['status'=>'fail','code'=>'2000','msg'=>$e->getMessage()]);
  89. }
  90. }
  91. }