WxEmployeeService.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. namespace App\Service\Weixin;
  3. use App\Model\Employee;
  4. use App\Model\WxEmployeeOfficial;
  5. use App\Service\Service;
  6. use App\Model\WxEmployee;
  7. use Illuminate\Support\Facades\Hash;
  8. class WxEmployeeService extends Service
  9. {
  10. public function setUser($data){
  11. $openid = $data['openid'];
  12. $user = WxEmployeeOfficial::where('openid',$openid)->first();
  13. if(empty($user)) {
  14. $user = new WxEmployeeOfficial();
  15. $user->openid = $openid;
  16. $user->appid = WeixinService::APPID;
  17. $user->save();
  18. $state = 0;
  19. }else{
  20. $state = 1;
  21. if(empty($user->employee_id)) $state = 0;
  22. }
  23. return [true,['openid'=>$openid, 'state'=>$state ]];
  24. }
  25. public function login($data,$openid){
  26. $account = $data['account'];
  27. $password = $data['password'];
  28. list($status,$data) = $this->loginRule([
  29. 'account' => $account,
  30. 'password' => $password,
  31. ]);
  32. if(!$status) return [false,$data];
  33. $user_id = $data['id'];
  34. $user = WxEmployeeOfficial::where('openid',$openid)->first();
  35. if(empty($user)) {
  36. $bool = WxEmployeeOfficial::where('employee_id',$user_id)->exists();
  37. if($bool) return [false,'该账号已经与其他微信用户绑定!'];
  38. $user = new WxEmployeeOfficial();
  39. $user->openid = $openid;
  40. $user->appid = WeixinService::APPID;
  41. $user->employee_id = $user_id;
  42. $user->save();
  43. }else{
  44. if(! empty($user->employee_id) && $user->employee_id != $user_id) return [false,'该账号已经与其他微信用户绑定!'];
  45. }
  46. return [true, $data];
  47. }
  48. public function loginRule($data){
  49. if($this->isEmpty($data,'account')) return [false,'账号不能为空!'];
  50. if($this->isEmpty($data,'password')) return [false,'密码不存在!'];
  51. $res = Employee::where('del_time',0)
  52. ->where('number', $data['account'])
  53. ->get()->toArray();
  54. if(empty($res)) return [false,'账号不存在或已被删除!'];
  55. $res = reset($res);
  56. if($res['state'] == Employee::NOT_USE) return [false,'账号停用!'];
  57. if(! Hash::check($data['password'], $res['password'])) return [false,'密码错误!'];
  58. return [true, ['id'=>$res['id'], 'name'=>$res['emp_name'], 'account' => $res['number']]];
  59. }
  60. }