123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- <?php
- /**
- * Created by PhpStorm.
- * User: michaelwu
- * Date: 2018/10/31
- * Time: 10:03
- */
- namespace App\Services\Organization;
- use App\Exceptions\ResponseException;
- use App\Repositories\MemberLogRepository;
- use App\Repositories\OrganizationRepository;
- use Illuminate\Support\Facades\Cache;
- use Illuminate\Support\Facades\Hash;
- class OrganizationService
- {
- protected $organizationRepository;
- protected $memberLogRepository;
- public function __construct(OrganizationRepository $organizationRepository,MemberLogRepository $memberLogRepository)
- {
- $this->organizationRepository = $organizationRepository;
- $this->memberLogRepository = $memberLogRepository;
- }
- /**
- * 企业资料页面
- * @return array
- * @throws ResponseException
- */
- public function organizationInfo($user)
- {
- $orgInfo = $this->organizationRepository->getOrgInfoByID($user->id);
- if ($orgInfo->subsite_id) {
- $subsiteInfo = $this->subsiteRepository->find($orgInfo->subsite_id);
- } else {
- $subsiteInfo = '';
- }
- $orgInfo->subsite_name = $subsiteInfo?$subsiteInfo->sitename:'总站';
- //企业性质
- $companyType = Category::categoryType('AIX_company_type');
- //企业规模
- $scale = Category::categoryType('AIX_scale');
- //企业行业
- $trade = Category::categoryType('AIX_trade');
- //单位性质
- $unit_character = Category::categoryType('AIX_dwxz');
- $industry = Category::categoryType('AIX_cylb');
- $economy = Category::categoryType('AIX_jjlx');
- if ($jump_certificate = config('aix.companyset.audit.checkset.login_com_audit_certificate')==1 && $orgInfo->audit==0) {
- $jump_certificate= 1;
- } else {
- $jump_certificate= 0;
- }
- $res = [
- 'companyInfo' => $orgInfo,
- 'companyType' => $companyType,
- 'scale' =>$scale,
- 'trade' =>$trade,
- 'unit_character' =>$unit_character,
- 'industry' =>$industry,
- 'economy' =>$economy,
- 'jump_certificate'=>$jump_certificate,
- ];
- return $res;
- }
- /**
- * 账号安全
- * @return array
- * @throws ResponseException
- */
- public function orgSecurity($user)
- {
- $orgInfo = $this->organizationRepository->getOrgInfoByID($user->id);
- $res = [
- 'organizationInfo' => $orgInfo
- ];
- return $res;
- }
- public function verifyEmail($newEmail)
- {
- $organization=Cache::pull($newEmail, null);
- if ($organization) {
- $this->organizationRepository->changeEmail($organization->id, $newEmail);
- return true;
- }
- return false;
- }
- /**
- * 企业登录日志
- * @return mixed
- */
- public function orgLoginLog($user)
- {
- return $this->memberLogRepository->getMemberLog($user->id, 1, 1001);
- }
- public function savePwd($user, $oldpassword, $pwd, $pwd1)
- {
- $com_info = $this->organizationRepository->getOrganizationColumn($user->id, ['password']);
- if (!Hash::check($oldpassword, $com_info['password'])) {
- throw new ResponseException('原密码不正确!');
- }
- if ($oldpassword == $pwd) {
- throw new ResponseException('新密码与原密码一致!');
- }
- if ($pwd!= $pwd1) {
- throw new ResponseException('新密码与确认密码不一致');
- }
- if (!$this->organizationRepository->save(['password'=>bcrypt($pwd)], $user->id)) {
- return false;
- }
- return true;
- }
- public function authEmail($user)
- {
- return $this->organizationRepository->getOrganizationColumn($user->id, ['email', 'email_audit']);
- }
- public function checkEmailAudit($id, $email)
- {
- return $this->organizationRepository->findByField(['id'=>$id, 'email'=>$email, 'email_audit'=>1]);
- }
- public function sendAuthEmailHook($newEmail, $company)
- {
- Cache::put($newEmail, $company, 24*60);
- }
- }
|