123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324 |
- <?php
- namespace App\Services\Auth;
- use App\Exceptions\ResponseException;
- use App\Models\LotteryWin;
- use App\Models\Thirdlogin;
- use App\Repositories\CompanyRepository;
- use App\Repositories\MemberInfoRepository;
- use App\Repositories\MemberLogRepository;
- use App\Repositories\MemberRepository;
- use App\Repositories\OrganizationRepository;
- use App\Repositories\TplRepository;
- use Illuminate\Support\Facades\Auth;
- use Illuminate\Support\Facades\Hash;
- use Illuminate\Support\Facades\Session;
- use Illuminate\Support\Str;
- class RegisterService
- {
- /**
- * @var MemberRepository
- */
- protected $memberRepository;
- /**
- * @var CompanyRepository
- */
- protected $companyRepository;
- protected $organizationRepository;
- /**
- * @var MemberLogRepository
- */
- private $memberLogRepository;
- private $memberInfoRepository;
- /**
- * AuthService constructor.
- * @param MemberRepository $memberRepository
- * @param CompanyRepository $companyRepository
- * @param MemberLogRepository $memberLogRepository
- */
- public function __construct(MemberRepository $memberRepository, CompanyRepository $companyRepository, OrganizationRepository $organizationRepository, MemberLogRepository $memberLogRepository, MemberInfoRepository $memberInfoRepository)
- {
- $this->memberRepository = $memberRepository;
- $this->companyRepository = $companyRepository;
- $this->memberLogRepository = $memberLogRepository;
- $this->memberInfoRepository = $memberInfoRepository;
- $this->organizationRepository = $organizationRepository;
- }
- /**
- * 检查字段惟一
- * @param $utype 1企业,2个人
- * @param $key
- * @param $value
- * @return bool
- */
- public function checkUnique($utype, $key, $value)
- {
- if (empty($value)) {
- return true;
- }
- if ($utype == 1) {
- if (config('aix.companyset.comset.other_set.company_repeat', 0) == 1 && $key == 'companyname') {
- return true;
- }
- return $this->companyRepository->checkUniaue($key, $value);
- }
- if ($utype == 2 && $key == 'id_card') {
- if (isset(request()->vail) && !empty(request()->vail)) {
- if (isCreditNo($value)) {
- return true;
- }
- } else {
- if ($this->memberInfoRepository->checkUniaue($key, $value)) {
- return true;
- }
- }
- } else {
- if ($this->memberRepository->checkUniaue($key, $value)) {
- return true;
- }
- }
- return false;
- }
- /**
- * 企业注册
- * @param array $data
- * @return mixed
- * @throws \ErrorException
- * @throws \Prettus\Validator\Exceptions\ValidatorException
- */
- public function registerCompany(array $data)
- {
- $data = array_only($data, ['companyname', 'contact', 'company_mobile', 'username',
- 'email', 'company_password', 'utype', 'reg_type', 'reg_source', 'landline_tel']);
- $data['reg_source_cn'] = $this->getRegSource($data['reg_source']);
- $data['reg_time'] = time();
- $data['short_name'] = \Illuminate\Support\Str::substr($data['companyname'], 0, 25);
- $data['last_login_time'] = time();
- $data['refresh_time'] = time();
- $data['mobile'] = $data['company_mobile'];
- unset($data['company_mobile']);
- $data['reg_ip'] = ip2long(request()->ip());
- $data['password'] = Hash::make($data['company_password']);
- unset($data['company_password']);
- $data['subsite_id'] = get_subsite_id();
- $company = $this->companyRepository->create($data);
- $this->memberLogRepository->createLog($company, 1000, []);
- return $company;
- }
- public function registerCompany1(array $data)
- {
- $data = array_only($data, ['orgname', 'contact', 'mobile', 'username',
- 'email', 'password', 'utype', 'reg_type', 'reg_source', 'landline_tel']);
- $data['reg_source_cn'] = $this->getRegSource($data['reg_source']);
- $data['reg_time'] = time();
- $data['short_name'] = \Illuminate\Support\Str::substr($data['orgname'], 0, 25);
- $data['companyname'] = $data['orgname'];
- unset($data['orgname']);
- $data['last_login_time'] = time();
- $data['refresh_time'] = time();
- $data['reg_ip'] = ip2long(request()->ip());
- $data['subsite_id'] = get_subsite_id();
- $data['utype'] = 1;
- $data['mobile_audit'] = 1;
- $company = $this->companyRepository->create($data);
- $this->memberLogRepository->createLog($company, 1000, []);
- return $company;
- }
- /**
- * 机构注册 zmw
- * @param array $data
- * @return mixed
- * @throws \ErrorException
- * @throws \Prettus\Validator\Exceptions\ValidatorException
- */
- public function registerOrg(array $data)
- {
- $data = array_only($data, ['orgname', 'contact', 'org_mobile', 'username',
- 'email', 'org_password', 'utype', 'reg_type', 'reg_source', 'landline_tel']);
- $data['reg_source_cn'] = $this->getRegSource($data['reg_source']);
- $data['reg_time'] = time();
- $data['short_name'] = \Illuminate\Support\Str::substr($data['orgname'], 0, 25);
- $data['last_login_time'] = time();
- $data['refresh_time'] = time();
- $data['mobile'] = $data['org_mobile'];
- unset($data['org_mobile']);
- $data['reg_ip'] = ip2long(request()->ip());
- $data['password'] = Hash::make($data['org_password']);
- unset($data['org_password']);
- $data['subsite_id'] = get_subsite_id();
- $org = $this->organizationRepository->create($data);
- $this->memberLogRepository->createLog($org, 1000, []);
- return $org;
- }
- /**
- * 个人注册
- * @param array $data
- * @return mixed
- * @throws \Prettus\Validator\Exceptions\ValidatorException
- * @throws \ErrorException
- */
- public function registerPerson(array $data)
- {
- $talent = $data;
- if ($data['reg_type'] == 1) {//手机号码注册
- // $id_card = $data['id_card'];
- $data = array_only($data, ['mobile', 'password', 'utype', 'reg_type', 'reg_source', 'member_status']);
- $data['reg_source_cn'] = $this->getRegSource($data['reg_source']);
- $data['mobile_audit'] = 1;
- $data['username'] = $this->getRandomName();
- $data['reg_time'] = time();
- $data['last_login_time'] = time();
- $data['reg_ip'] = ip2long(request()->ip());
- $data['password'] = Hash::make($data['password']);
- // $data['subsite_id']=get_subsite_id();
- // unset($data['id_card']);
- $member = $this->memberRepository->create($data);
- if (false != $member) {
- // $member_info_data['id_card'] = $id_card;
- $member_info_data['card_t_cn'] = 306;
- // $sex = get_sex($id_card);
- // $member_info_data['sex'] = $sex == '男' ? 1 : 2;
- // $member_info_data['sex_cn'] = $sex;
- // $member_info_data['birthday'] = get_birthday($id_card);
- $member_info_data['uid'] = $member->id;
- $member_info_data['phone'] = $data['mobile'];
- $this->memberInfoRepository->createInfo($member_info_data);
- }
- } elseif ($data['reg_type'] == 2) {//邮箱注册
- // $id_card = $data['id_card'];
- $data = array_only($data, ['username', 'email', 'password', 'utype', 'reg_type', 'reg_source', 'member_status']);
- $data['reg_source_cn'] = $this->getRegSource($data['reg_source']);
- $data['reg_time'] = time();
- $data['username'] = $this->getRandomName();
- $data['reg_ip'] = ip2long(request()->ip());
- $data['password'] = Hash::make($data['password']);
- // $data['subsite_id']=get_subsite_id();
- // unset($data['id_card']);
- $member = $this->memberRepository->create($data);
- if (false != $member) {
- // $member_info_data['id_card'] = $id_card;
- $member_info_data['card_t_cn'] = 306;
- // $sex = get_sex($id_card);
- // $member_info_data['sex'] = $sex == '男' ? 1 : 2;
- // $member_info_data['sex_cn'] = $sex;
- // $member_info_data['birthday'] = get_birthday($id_card);
- $member_info_data['uid'] = $member->id;
- $member_info_data['email'] = $data['email'];
- $this->memberInfoRepository->createInfo($member_info_data);
- }
- } elseif ($data['reg_type'] == 3) {//身份证注册--平板。
- $data = array_only($data, ['username', 'password', 'utype', 'reg_type', 'reg_source', 'member_status']);
- $data['reg_source_cn'] = $this->getRegSource($data['reg_source']);
- $data['reg_time'] = time();
- $data['reg_ip'] = ip2long(request()->ip());
- $data['password'] = Hash::make($data['password']);
- // $data['subsite_id']=get_subsite_id();
- $member = $this->memberRepository->create($data);
- }
- //人才注册
- if (!empty($data['member_status']) && $data['member_status'] == 3) {
- $talent = array_only($talent, ['realname', 'card_t_cn', 'id_card']);
- $this->memberInfoRepository->updateInfo($talent, $member->id);
- }
- //绑定微信和中奖
- $open_id = Session::get('open_id');
- if (!empty($open_id)) {
- $union_id = Session::get('union_id', '');
- $data = [
- 'uid' => $member->id,
- 'utype' => 2,
- 'type' => 3,
- 'openid' => $open_id,
- 'unionid' => $union_id,
- ];
- Thirdlogin::create($data);
- $prize_id = Session::get('prize_id', 0);
- if (!empty($prize_id)) {
- $win = new LotteryWin();
- $win->member_id = $member->id;
- $win->prize_id = $prize_id;
- $win->created_at = date('Y-m-d H:i:s');
- $win->save();
- }
- Session::forget('open_id');
- Session::forget('union_id');
- Session::forget('prize_id');
- Session::save();
- }
- $this->memberLogRepository->createLog($member, 1000, []);
- return $member;
- }
- public function registerPersonScrm(array $data){
- $data = array_only($data, ['mobile', 'avatars', 'email', 'realname', 'sex','weixin']);
- $data['reg_type'] = 1;
- $data['utype'] = 2;
- $data['reg_source_cn'] = 'SCRM注册';
- $data['mobile_audit'] = 0;
- $data['username'] = $this->getRandomName();
- $data['reg_time'] = time();
- $data['last_login_time'] = time();
- $data['reg_ip'] = ip2long(request()->ip());
- $data['password'] = Hash::make(time());
- $member = $this->memberRepository->create($data);
- if (false != $member) {
- $member_info_data['card_t_cn'] = 306;
- $member_info_data['uid'] = $member->id;
- $member_info_data['phone'] = $data['mobile'];
- $member_info_data['email'] = $data['email'];
- $member_info_data['realname'] = array_key_exists('realname',$data) ? $data['realname'] : '';
- if(array_key_exists('sex',$data)){
- $member_info_data['sex'] = $data['sex'] == '男' ? 1 : 0;
- $member_info_data['sex_cn'] = $data['sex'];
- }
- $member_info_data['weixin'] = array_key_exists('weixin',$data) ? $data['weixin'] : '';
- $this->memberInfoRepository->createInfo($member_info_data);
- }
- return $member;
- }
- /**
- * @param $source_id
- * @return mixed
- */
- private function getRegSource($source_id)
- {
- $data = [
- 1 => '网页端',
- 2 => '手机端',
- 3 => '微信小程序',
- ];
- return $data[$source_id];
- }
- private function getRandomName()
- {
- //str_replace(substr($data['mobile'], 3, 4), "****", $data['mobile']);
- return uniqid();
- }
- public function valiLand($company_mobile, $landline_tel)
- {
- if (is_null($company_mobile) && is_null($landline_tel)) {
- return false;
- }
- return true;
- }
- }
|