OrganizationService.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: michaelwu
  5. * Date: 2018/10/31
  6. * Time: 10:03
  7. */
  8. namespace App\Services\Organization;
  9. use App\Exceptions\ResponseException;
  10. use App\Repositories\MemberLogRepository;
  11. use App\Repositories\OrganizationRepository;
  12. use Illuminate\Support\Facades\Cache;
  13. use Illuminate\Support\Facades\Hash;
  14. class OrganizationService
  15. {
  16. protected $organizationRepository;
  17. protected $memberLogRepository;
  18. public function __construct(OrganizationRepository $organizationRepository,MemberLogRepository $memberLogRepository)
  19. {
  20. $this->organizationRepository = $organizationRepository;
  21. $this->memberLogRepository = $memberLogRepository;
  22. }
  23. /**
  24. * 企业资料页面
  25. * @return array
  26. * @throws ResponseException
  27. */
  28. public function organizationInfo($user)
  29. {
  30. $orgInfo = $this->organizationRepository->getOrgInfoByID($user->id);
  31. if ($orgInfo->subsite_id) {
  32. $subsiteInfo = $this->subsiteRepository->find($orgInfo->subsite_id);
  33. } else {
  34. $subsiteInfo = '';
  35. }
  36. $orgInfo->subsite_name = $subsiteInfo?$subsiteInfo->sitename:'总站';
  37. //企业性质
  38. $companyType = Category::categoryType('AIX_company_type');
  39. //企业规模
  40. $scale = Category::categoryType('AIX_scale');
  41. //企业行业
  42. $trade = Category::categoryType('AIX_trade');
  43. //单位性质
  44. $unit_character = Category::categoryType('AIX_dwxz');
  45. $industry = Category::categoryType('AIX_cylb');
  46. $economy = Category::categoryType('AIX_jjlx');
  47. if ($jump_certificate = config('aix.companyset.audit.checkset.login_com_audit_certificate')==1 && $orgInfo->audit==0) {
  48. $jump_certificate= 1;
  49. } else {
  50. $jump_certificate= 0;
  51. }
  52. $res = [
  53. 'companyInfo' => $orgInfo,
  54. 'companyType' => $companyType,
  55. 'scale' =>$scale,
  56. 'trade' =>$trade,
  57. 'unit_character' =>$unit_character,
  58. 'industry' =>$industry,
  59. 'economy' =>$economy,
  60. 'jump_certificate'=>$jump_certificate,
  61. ];
  62. return $res;
  63. }
  64. /**
  65. * 账号安全
  66. * @return array
  67. * @throws ResponseException
  68. */
  69. public function orgSecurity($user)
  70. {
  71. $orgInfo = $this->organizationRepository->getOrgInfoByID($user->id);
  72. $res = [
  73. 'organizationInfo' => $orgInfo
  74. ];
  75. return $res;
  76. }
  77. public function verifyEmail($newEmail)
  78. {
  79. $organization=Cache::pull($newEmail, null);
  80. if ($organization) {
  81. $this->organizationRepository->changeEmail($organization->id, $newEmail);
  82. return true;
  83. }
  84. return false;
  85. }
  86. /**
  87. * 企业登录日志
  88. * @return mixed
  89. */
  90. public function orgLoginLog($user)
  91. {
  92. return $this->memberLogRepository->getMemberLog($user->id, 1, 1001);
  93. }
  94. public function savePwd($user, $oldpassword, $pwd, $pwd1)
  95. {
  96. $com_info = $this->organizationRepository->getOrganizationColumn($user->id, ['password']);
  97. if (!Hash::check($oldpassword, $com_info['password'])) {
  98. throw new ResponseException('原密码不正确!');
  99. }
  100. if ($oldpassword == $pwd) {
  101. throw new ResponseException('新密码与原密码一致!');
  102. }
  103. if ($pwd!= $pwd1) {
  104. throw new ResponseException('新密码与确认密码不一致');
  105. }
  106. if (!$this->organizationRepository->save(['password'=>bcrypt($pwd)], $user->id)) {
  107. return false;
  108. }
  109. return true;
  110. }
  111. public function authEmail($user)
  112. {
  113. return $this->organizationRepository->getOrganizationColumn($user->id, ['email', 'email_audit']);
  114. }
  115. public function checkEmailAudit($id, $email)
  116. {
  117. return $this->organizationRepository->findByField(['id'=>$id, 'email'=>$email, 'email_audit'=>1]);
  118. }
  119. public function sendAuthEmailHook($newEmail, $company)
  120. {
  121. Cache::put($newEmail, $company, 24*60);
  122. }
  123. }