MUserCenterLogin.Class.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <?php
  2. /**
  3. * 用户中心登陆管理Model
  4. * Created by PhpStorm.
  5. * User: 小威
  6. * Date: 2019/11/04
  7. * Time: 09:00
  8. */
  9. namespace JinDouYun\Model\UserCenter;
  10. use Mall\Framework\Core\ErrorCode;
  11. use Mall\Framework\Core\StatusCode;
  12. use Mall\Framework\Core\ResultWrapper;
  13. use Mall\Framework\Core\Jwt;
  14. use JinDouYun\Dao\UserCenter\DUserCenter;
  15. use JinDouYun\Dao\Enterprise\DUserBindEnterprise;
  16. use JinDouYun\Model\Enterprise\MEnterprise;
  17. class MUserCenterLogin
  18. {
  19. private $objDUserCenter;
  20. private $objMEnterprise;
  21. private $objDUserBindEnterprise;
  22. public function __construct()
  23. {
  24. $this->objDUserCenter = new DUserCenter('default');
  25. $this->objMEnterprise = new MEnterprise();
  26. $this->objDUserBindEnterprise = new DUserBindEnterprise('default');
  27. }
  28. /**
  29. * 后台用户中心登陆 判断账号密码
  30. * @param $params
  31. * @return ResultWrapper
  32. */
  33. public function login($params)
  34. {
  35. $where = [
  36. 'mobile' => $params['mobile'],
  37. 'deleteStatus' => StatusCode::$standard,
  38. ];
  39. $userInfoData = $this->objDUserCenter->get($where);
  40. if($userInfoData === false){
  41. return ResultWrapper::fail($this->objDUserCenter->error(), ErrorCode::$dberror);
  42. }
  43. if( empty($userInfoData)){
  44. return ResultWrapper::fail('当前手机号未注册系统', ErrorCode::$accountfail);
  45. }
  46. if(password_verify($params['password'], $userInfoData['password'] ) !== true){
  47. return ResultWrapper::fail('账号密码错误', ErrorCode::$accountfail);
  48. }
  49. $returnData = self::createToken($userInfoData);
  50. $objMEnterprise = new MEnterprise();
  51. $modelResult = $objMEnterprise->getAllEnterprise($userInfoData['id'], $params['source']);
  52. if(!$modelResult->isSuccess()){
  53. return ResultWrapper::fail($modelResult->getData(), $modelResult->getErrorCode());
  54. }
  55. $returnData['enterprise'] = $modelResult->getData();
  56. return ResultWrapper::success($returnData);
  57. }
  58. /**
  59. * 创建token
  60. */
  61. public function createToken($userInfo)
  62. {
  63. //jwt过期时间
  64. $expireTime = time() + 7200;
  65. $payload = array(
  66. 'uid' => $userInfo['id'],
  67. 'expireTime' => $expireTime,
  68. );
  69. $encoded = JWT::encode($payload, SITE_SECRET);
  70. return [
  71. 'expireTime' => $expireTime,
  72. 'token' => $encoded,
  73. ];
  74. }
  75. /**
  76. * 刷新token方法
  77. * @param $userId
  78. * @return ResultWrapper
  79. */
  80. public function flushToken($userId)
  81. {
  82. $userInfo = $this->objDUserCenter->get(['id'=>$userId]);
  83. if($userInfo === false){
  84. return ResultWrapper::fail($this->objDUserCenter->error(), ErrorCode::$dberror);
  85. }
  86. if(empty($userInfo)){
  87. return ResultWrapper::fail('用户不存在', ErrorCode::$contentNotExists);
  88. }
  89. $returnData = self::createToken($userInfo);
  90. return ResultWrapper::success($returnData);
  91. }
  92. }