Browse Source

提交注册验证器

sandm 2 years ago
parent
commit
4fa3dfb641

+ 4 - 0
app/AbstractValidate.php

@@ -0,0 +1,4 @@
+<?php
+declare (strict_types = 1);
+
+namespace app;

+ 64 - 0
app/common/controller/Auth.php

@@ -3,8 +3,12 @@
 namespace app\common\controller;
 
 use app\BaseController;
+use app\common\api\ChuanglanSmsApi;
 use app\common\model\MessageRecord;
 use think\Facade\Cache;
+use app\common\validate\Enterprise;
+use think\exception\ValidateException;
+use think\facade\Request;
 
 class Auth extends BaseController
 {
@@ -12,11 +16,42 @@ class Auth extends BaseController
     public function register(){
         $msg = "";
         if($this->request->isPost()){
+            $source = intval($this->request['source']);
+            try {
+                $result = validate(Enterprise::class)->batch(true)->scene('add')->check(Request::post());
+            } catch (ValidateException $e){
+                dd($e->getError());
+            }
+            dd($result);
+            $username = \StrUtil::getRequestDecodeParam($this->request,'username');
+            $password = \StrUtil::getRequestDecodeParam($this->request,'password');
+            $name = \StrUtil::getRequestDecodeParam($this->request,'name');
+            $idCard = \StrUtil::getRequestDecodeParam($this->request,'idCard');
+            $agentName = \StrUtil::getRequestDecodeParam($this->request,'agentName');
+            $agentPhone = \StrUtil::getRequestDecodeParam($this->request,'agentPhone');
+            $verificationCode = \StrUtil::getRequestDecodeParam($this->request,'verificationCode');
+            $legal = \StrUtil::getRequestDecodeParam($this->request,'legal');
+            $street = \StrUtil::getRequestDecodeParam($this->request,'street');
+            $address = \StrUtil::getRequestDecodeParam($this->request,'address');
+            $type = intval($this->request['type']);
+            $talentType = \StrUtil::getRequestDecodeParam($this->request,'talentType');
+            $agentEmail = \StrUtil::getRequestDecodeParam($this->request,'agentEmail');
+            $ephone = \StrUtil::getRequestDecodeParam($this->request,'ephone');
+            $industryFieldNew = \StrUtil::getRequestDecodeParam($this->request,'industryFieldNew');
+            $industryFieldOld = \StrUtil::getRequestDecodeParam($this->request,'industryFieldOld');
+            $bankCard = \StrUtil::getRequestDecodeParam($this->request,'bankCard');
+            $bank = \StrUtil::getRequestDecodeParam($this->request,'bank');
+            $bankNetwork = \StrUtil::getRequestDecodeParam($this->request,'bankNetwork');
 
         }
         return view("", ["msg" => $msg]);
     }
 
+    public function enterpriseRegister()
+    {
+
+    }
+
     public function verificationCode()
     {
         $phone = $this->request["phone"];
@@ -49,6 +84,35 @@ class Auth extends BaseController
 
         $template = "【晋江市人才服务平台】尊敬的用户,您的短信验证码为{$code},5分钟内有效。若非本人操作请忽略。";
 
+        $smsapi = new ChuanglanSmsApi();
+
+        $result = $smsapi->sendSMS($phone,$template);
 
+        $result = json_decode($result,true);
+
+        $id = getStringId();
+
+        $record_data = [
+            'id' => $id,
+            'bizId' => $id,
+            'type' => 2,
+            'smsType' => 1,
+            'phone' => $phone,
+            'params' => $code,
+            'templateCode' => $template,
+            'state' => $result['code'] == 0 ? 2 : 3,
+            'sendingDate' => date("Y-m-d H:i:s",time()),
+            'createTime' => date("Y-m-d H:i:s",time()),
+            'msg' => $result['errorMsg']
+        ];
+
+        MessageRecord::create($record_data);
+
+        if($result['code'] == 0){
+            Cache::set("verify_{$type}_{$phone}",time());
+            return json(["msg" => '验证码发送成功'],200);
+        }else{
+            return json(["msg" => '验证码发送失败'],500);
+        }
     }
 }

+ 12 - 0
app/common/model/Enterprise.php

@@ -0,0 +1,12 @@
+<?php
+
+namespace app\common\model;
+
+use think\Model;
+
+class Enterprise extends Model{
+
+    protected $table = "new_enterprise";
+
+
+}

+ 66 - 0
app/common/validate/Enterprise.php

@@ -0,0 +1,66 @@
+<?php
+namespace app\common\validate;
+
+use think\Validate;
+
+class Enterprise extends Validate{
+    protected $rule =   [
+        'username' => 'require|max:50|unique:new_enterprise',
+        'password' => 'require|min:6|regex:/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,}$/',
+        're_password' => 'require|confirm:password',
+        'name' => 'require|max:100|unique:new_enterprise',
+        'idCard' => ['require','unique:new_enterprise','regex:/^([0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}|[1-9]\d{14})$/'],
+        'type' => 'require',
+        'industryFieldNew' => 'require',
+        'talentType' => 'require',
+        'agentName' => 'require',
+        'agentPhone' => 'require|unique:new_enterprise',
+        'verificationCode' => 'require',
+        'legal' => 'require',
+        'street' => 'require',
+        'address' => 'require',
+        'ephone' => 'require',
+        'agentEmail' => 'require|email',
+        'bankCard' => 'require',
+        'bank' => 'require',
+        'bankNetwork' => 'require'
+    ];
+
+    protected $message  =   [
+        'username.require' => '请填写账号!',
+        'username.max' => '账号最多50个字符!',
+        'username.unique' => '该账号已被注册',
+        'password.require' => '请填写密码!',
+        'password.min' => '密码最少长度6位',
+        'password.regex' => '密码应包含字母与数字两种字符',
+        're_password.require' => '请输入重复密码',
+        're_password.confirm' => '两次密码输入不一致',
+        'name.require' => '请输入单位名称',
+        'name.max'     => '单位名称最多100个字符!',
+        'name.unique' => '该单位名称已存在',
+        'idCard.require'   => '请填写社会信用代码!',
+        'idCard.regex'  => '社会信用代码不正确!',
+        'idCard.unique' => '该社会信用代码已存在',
+        'type.require' => '申报类型必须选择',
+        'industryFieldNew.require' => '产业领域必须选择',
+        'talentType.require' => '单位标签必须选择',
+        'agentName.require' => '请填写经办人',
+        'agentPhone.require' => '请填写经办人手机号',
+        'agentPhone.unique' => '该经办人手机号已存在',
+        'verificationCode.require' => '请输入手机验证码',
+        'legal.require' => '请输入单位法人',
+        'street.require' => '请选择所属镇(街道)',
+        'address.require' => '请输入单位地址',
+        'ephone.require' => '请输入单位电话',
+        'agentEmail|require' => '请输入邮箱',
+        'agentEmail.email'        => '邮箱格式错误',
+        'bankCard.require' => '请输入企业银行账号',
+        'bank.require' => '请输入企业开户银行',
+        'bankNetwork.require' => '请输入企业开户银行网点'
+
+    ];
+
+    protected $scene = [
+        'add'  =>  ['username','password','re_password','name','idCard','type','industryFieldNew','talentType','agentName','agentPhone','verificationCode','legal','street','address','ephone','agentEmail','bankCard','bank','bankNetwork'],
+    ];
+}

+ 33 - 8
app/common/view/auth/register.html

@@ -20,7 +20,7 @@
                         <div class="tab-content">
                             <div id="tab-1" class="tab-pane active">
                                 <br/>
-                                <form id="ep_form" action="${ctxPath}/api/enterpriseUser/register" method="post" class="form-horizontal" enctype="multipart/form-data" target="hiddenIframe">
+                                <form id="ep_form" action="/common/auth/register" method="post" class="form-horizontal" enctype="multipart/form-data" target="hiddenIframe">
                                     <div class="col-sm-12 form-group-sm">
                                         <input type="hidden" id="source" name="source" value="1">
                                         <div class="row">
@@ -39,7 +39,7 @@
                                             <div class="rowGroup"  >
                                                 <label class="col-sm-2 control-label spacing"><span class="text-danger">*</span>重复密码</label>
                                                 <div class="col-sm-4 spacing">
-                                                    <input autocomplete="off" type="password" class="form-control" id="re_password" name="re_password" placeholder="密码由字母、数字及特殊字符组成且字符个数为8-20""/>
+                                                    <input autocomplete="off" type="password" class="form-control" id="re_password" name="re_password" placeholder="密码由字母、数字及特殊字符组成且字符个数为8-20"/>
                                                 </div>
                                             </div>
                                             <div class="rowGroup"  >
@@ -66,13 +66,20 @@
                                                 </div>
                                             </div>
                                             <div class="rowGroup"  style="display: none">
-                                                <label class="col-sm-2 control-label spacing"><span class="text-danger">*</span>业领域</label>
+                                                <label class="col-sm-2 control-label spacing"><span class="text-danger">*</span>业领域</label>
                                                 <div class="col-sm-4 spacing">
-                                                    <select autocomplete="off" type="text" class="form-control" id="industryField" name="industryField"></select>
+                                                    <select autocomplete="off" type="text" class="form-control" id="industryFieldNew" name="industryFieldNew" onchange="Register.industryChange()"></select>
                                                 </div>
                                             </div>
                                             <div class="rowGroup"  style="display: none">
-                                                <label class="col-sm-2 control-label spacing"><span class="text-danger">*</span>企业标签</label>
+                                                <label class="col-sm-2 control-label spacing">行业领域</label>
+                                                <div class="col-sm-4 spacing">
+                                                    <select class="form-control" id="industryFieldOld" name="industryFieldOld">
+                                                    </select>
+                                                </div>
+                                            </div>
+                                            <div class="rowGroup"  style="display: none">
+                                                <label class="col-sm-2 control-label spacing"><span class="text-danger">*</span>单位标签</label>
                                                 <div class="col-sm-4 spacing">
                                                     <select class="form-control" id="talentType" name="talentType">
                                                     </select>
@@ -128,9 +135,27 @@
                                                 </div>
                                             </div>
                                             <div class="rowGroup"  >
-                                                <label class="col-sm-2 control-label spacing"><span class="text-danger">*</span>营业执照照片</label>
+                                                <label class="col-sm-2 control-label spacing"><span class="text-danger">*</span>企业银行账号</label>
+                                                <div class="col-sm-4 spacing">
+                                                    <input autocomplete="off" type="text" class="form-control" id="bankCard" name="bankCard" />
+                                                </div>
+                                            </div>
+                                            <div class="rowGroup"  >
+                                                <label class="col-sm-2 control-label spacing"><span class="text-danger">*</span>企业开户银行</label>
+                                                <div class="col-sm-4 spacing">
+                                                    <input autocomplete="off" type="text" class="form-control" id="bank" name="bank" />
+                                                </div>
+                                            </div>
+                                            <div class="rowGroup"  >
+                                                <label class="col-sm-2 control-label spacing"><span class="text-danger">*</span>企业开户银行网点</label>
+                                                <div class="col-sm-4 spacing">
+                                                    <input autocomplete="off" type="text" class="form-control" id="bankNetwork" name="bankNetwork" />
+                                                </div>
+                                            </div>
+                                            <div class="rowGroup"  >
+                                                <label class="col-sm-2 control-label spacing"><span class="text-danger">*</span>附件上传</label>
                                                 <div class="col-sm-4 spacing">
-                                                    <img id="photoImg" src="${ctxPath}/static/img/yyzz.png" style="height: 60px;" onclick="$('#imgurl').click()" >
+                                                    <img id="photoImg" src="/static/img/yyzz.png" style="height: 60px;" onclick="$('#imgurl').click()" >
                                                     <input style="display: none" autocomplete="off" type="file" class="form-control" id="imgurl" name="imgurl" />
                                                 </div>
                                             </div>
@@ -233,6 +258,6 @@
 </div>
 <iframe id="hiddenIframe" name="hiddenIframe" style="display: none;"></iframe>
 
-<script src="/static/js/register.js"></script>
+<script src="/static/js/register.js?v=4"></script>
 
 {/block}

+ 33 - 14
public/static/js/register.js

@@ -93,7 +93,10 @@ Register.enterpriseUserRegister = function() {
     var agentEmail = $("#agentEmail").val();
     var talentType = $("#talentType").val();
     var ephone = $("#ephone").val();
-    var industryField = $("#industryField").val();
+    var industryFieldNew = $("#industryFieldNew").val();
+    var bankCard = $("#bankCard").val();
+    var bank = $("#bank").val();
+    var bankNetwork = $("#bankNetwork").val();
     if (username==null || username=='') {
         Feng.info("请填写账号!");
         return;
@@ -180,13 +183,25 @@ Register.enterpriseUserRegister = function() {
         Feng.info("请填写电子邮箱!");
         return;
     }
+    if (bankCard==null || bankCard=='') {
+        Feng.info("请填写企业银行账号!");
+        return;
+    }
+    if (bank==null || bank=='') {
+        Feng.info("请填写企业开户银行!");
+        return;
+    }
+    if (bankNetwork==null || bankNetwork=='') {
+        Feng.info("请填写企业开户银行网点");
+        return;
+    }
     if(type==1 ){
         if(talentType==null||talentType==''){
             Feng.info("请选择企业标签!");
             return;
         }
-        if(industryField == null || industryField ==''){
-            Feng.info("请选择行业领域");
+        if(industryFieldNew == null || industryFieldNew ==''){
+            Feng.info("请选择业领域");
             return ;
         }
     }
@@ -207,12 +222,12 @@ Register.enterpriseUserRegister = function() {
         Feng.info("电子邮箱格式不合法!");
         return;
     }
-    if(!lock){
-        lock = true;
-    }else{
-        Feng.info("不能重复点击");
-        return;
-    }
+    // if(!lock){
+    //     lock = true;
+    // }else{
+    //     Feng.info("不能重复点击");
+    //     return;
+    // }
     $("#ep_form")[0].submit();
 };
 
@@ -381,13 +396,17 @@ Register.typeChange = function(){
     $("#type").removeAttr("disabled");
     var type = $("#type").val();
     if(type==1){
-        $("#talentType,#industryField").parent().parent().attr("style","display:block");
+        $("#talentType,#industryFieldNew,#industryFieldOld").parent().parent().attr("style","display:block");
     }else{
-        $("#talentType,#industryField").val("");
-        $("#talentType,#industryField").parent().parent().attr("style","display:none");
+        $("#talentType,#industryFieldNew,#industryFieldOld").val("");
+        $("#talentType,#industryFieldNew,#industryFieldOld").parent().parent().attr("style","display:none");
     }
 }
-
+Register.industryChange = function(){
+    var industryNew = $("#industryFieldNew").val();
+    var arr = [{"name":"industryFieldOld","code":industryNew}];
+    Feng.findChildDictBatch(JSON.stringify(arr));
+}
 
 $(function(){
     $('#ep_form').bootstrapValidator({
@@ -431,7 +450,7 @@ $(function(){
     var arr = [
         {"name":"street","code":"street"},
         {"name":"talentType","code":"enterprise_tag"},
-        {"name":"industryField","code":"industry_field"}];
+        {"name":"industryFieldNew","code":"industry_field"}];
     Feng.findChildDictBatch(JSON.stringify(arr));
     $("#imgurl").change(function (e) {
         var tag = e.target;