| 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);    }}
 |