xhWxOpenAdminService.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. namespace common\services;
  3. use Yii;
  4. use common\components\dict;
  5. use common\models\xhWxOpenAdmin;
  6. class xhWxOpenAdminService {
  7. /**
  8. * 手机号登陆
  9. */
  10. public static function loginByMobile($mobile,$password,$autoLogin = false)
  11. {
  12. $admin = self::getByMobile($mobile);
  13. $dbPwd = isset($admin['password']) ? $admin['password'] : '';
  14. if(md5($password) != $dbPwd){
  15. return false;
  16. }
  17. $session = Yii::$app->session;
  18. $session['isLogin'] = 1;
  19. $session['id'] = $admin['id'];
  20. return true;
  21. }
  22. public static function isLogin()
  23. {
  24. $session = Yii::$app->session;
  25. if(isset($session['isLogin']) && !empty($session['isLogin'])){
  26. return true;
  27. }
  28. return false;
  29. }
  30. public static function getId()
  31. {
  32. $session = Yii::$app->session;
  33. $userId = $session['id'];
  34. return $userId;
  35. }
  36. public static function logout()
  37. {
  38. Yii::$app->session->destroy();//销毁session中所有已注册的数据
  39. }
  40. public static function getByMobile($mobile)
  41. {
  42. $admin = xhWxOpenAdmin::find()->where(['mobile' => $mobile])->asArray()->one();
  43. return $admin;
  44. }
  45. public static function getById($id)
  46. {
  47. $cacheKey = dict::getCacheKey('openAdmin').$id;
  48. $admin = Yii::$app->redis->executeCommand('HGETALL', [$cacheKey]);
  49. if(!empty($admin)){
  50. $arr = [];
  51. $i = 0;
  52. $x = 0;
  53. foreach($admin as $key => $val){
  54. $i++;
  55. if($i%2 == 0){
  56. $arr[$x]['value'] = $val;
  57. $x++;
  58. }else{
  59. $arr[$x]['key'] = $val;
  60. }
  61. }
  62. $adminArr = [];
  63. foreach($arr as $key => $val){
  64. $adminArr[$val['key']] = $val['value'];
  65. }
  66. unset($adminArr['info_already_get_by_sql']);
  67. return $adminArr;
  68. }
  69. $admin = xhWxOpenAdmin::find()->where(['id' => $id])->asArray()->one();
  70. $params = [$cacheKey];
  71. $params[] = 'info_already_get_by_sql';
  72. $params[] = 'ok';//redis没有办法设置带空值的键,加此可以数据空时表示取过
  73. if(!empty($admin)){
  74. foreach($admin as $key => $val){
  75. $params[] = $key;
  76. $params[] = $val;
  77. }
  78. }
  79. Yii::$app->redis->executeCommand('HMSET',$params);//将xhAdmin信息放入缓存
  80. return $admin;
  81. }
  82. public static function refreshById($id)
  83. {
  84. $adminKey = dict::getCacheKey('openAdmin').$id;
  85. Yii::$app->redis->executeCommand('DEL', [$adminKey]);
  86. $admin = self::getById($id);
  87. $mobileKey = dict::getCacheKey('mobileOpenAdmin').$admin['mobile'];
  88. Yii::$app->redis->executeCommand('DEL', [$mobileKey]);
  89. self::getByMobile($admin['mobile']);
  90. }
  91. public static function add($data)
  92. {
  93. $data = xhWxOpenAdmin::add($data);
  94. $id = $data['id'];
  95. self::refreshById($id);
  96. return $data;
  97. }
  98. }