WxEmployeeService.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. namespace App\Service\Wx;
  3. use App\Model\Employee;
  4. use App\Model\WxEmployee;
  5. class WxEmployeeService extends Service
  6. {
  7. public function setUser($data){
  8. if(empty($data['code'])) return [false, '用户登录凭证(code)不能为空'];
  9. $code = $data['code'];
  10. $service = new WxService();
  11. list($status,$openid) = $service->getOpenid($code);
  12. if(!$status) return [false,$openid];
  13. $user = WxEmployee::where('openid',$openid)->where('appid',$service->appid)->first();
  14. if(empty($user)) {
  15. $user = new WxEmployee();
  16. $user->mobile = '';
  17. $user->openid = $openid;
  18. $user->appid = $service->appid;
  19. $user->save();
  20. $state = 0;
  21. }else{
  22. $state = 1;
  23. if(empty($user->mobile)){
  24. $state = 0;
  25. }else{
  26. $bool = Employee::where('del_time',0)
  27. ->where('mobile',$user->mobile)
  28. ->where('is_wx_admin', Employee::USE)
  29. ->exists();
  30. if(! $bool) $state = 0;
  31. }
  32. }
  33. return [true,['openid'=>$openid, 'state'=> $state]];
  34. }
  35. public function setMobile($data){
  36. if(empty($data['code'])) return [false, '用户登录凭证(code)不能为空'];
  37. if(empty($data['openid'])) return [false, 'openID不能为空'];
  38. $code = $data['code'];
  39. $openid = $data['openid'];
  40. $service = new WxService();
  41. list($status,$mobile) = $service->getMobile($code);
  42. if(!$status) return [false,$mobile];
  43. $user = WxEmployee::where('openid',$openid)->where('appid',$service->appid)->first();
  44. if(empty($user)) return [false,'openID在系统中暂无记录'];
  45. $user->mobile = $mobile;
  46. $user->save();
  47. return [true, ['mobile' => $mobile]];
  48. }
  49. public static function checkWxUser($userId){
  50. $res = Employee::where('id', $userId)
  51. ->where('del_time',0)
  52. ->first();
  53. if(empty($res)) return [false, '该系统账号不存在'];
  54. $res = $res->toArray();
  55. if(! $res['is_wx_admin']) return [false, '该系统账号不允许登录微信小程序'];
  56. return [true, $res];
  57. }
  58. }