'收货人', 'mobile' => '联系电话', 'bank_phone' => '预留手机号', 'cert_card' => '身份证号', 'park_codes' => '园区编码', 'acc_no' => '银行卡号', 'bank_code' => '银行编码', 'id_card_front' => '身份证正面', 'id_card_back' => '身份证徽面', 'alipay_acc' => '支付宝账号', 'refuse_desc' => '拒绝原因', 'id_card_start' => '证件开始时间', 'id_card_end' => '证件结束时间', 'bank_pic' => '银行卡照片', ]; } public function save() { if (!$this->validate()) { return [ 'code' => 1, 'msg' => $this->getErrorSummary(false)[0], ]; } $t = \Yii::$app->db->beginTransaction(); try { $lg = Lg::findOne([ 'is_delete' => 0, 'user_id' => $this->user_id ]); if($lg && ($lg->status == 1 || $lg->status == 0)){ return [ 'code' => 1, 'msg' => '审核失败才能再次提交', ]; } if (!$lg) { $lg = new Lg(); $lg->store_id = $this->store_id; $lg->user_id = $this->user_id; $lg->is_delete = Address::DELETE_STATUS_FALSE; } //判断身份证号是否使用过 $ic_card_exists = Lg::find() ->where(['cert_card' => $this->cert_card, 'is_delete' =>0]) ->andWhere(['!=','user_id', $this->user_id]) ->exists(); if ($ic_card_exists){ return [ 'code' => 1, 'msg' => '身份证号已有人申请', ]; } $lg->name = trim($this->name); $lg->mobile = $this->mobile; $lg->bank_phone = trim($this->bank_phone); $lg->cert_card = trim($this->cert_card); $lg->park_codes = trim($this->park_codes); $lg->acc_no = trim($this->acc_no); $lg->bank_code = trim($this->bank_code); $lg->id_card_front = trim($this->id_card_front); $lg->id_card_back = trim($this->id_card_back); $lg->alipay_acc = trim($this->alipay_acc); $lg->id_card_start = $this->id_card_start?strtotime($this->id_card_start):''; $lg->id_card_end = $this->id_card_end == '长期' ? $this->id_card_end : ($this->id_card_end?(string)strtotime($this->id_card_end):''); $lg->bank_pic = $this->bank_pic; if ($lg->save()) { //调用灵工收款人进件接口 $lgApi = new LgApi($this->store_id); //先调用查询进件接口查询是否进件成功过,如果成功就改为修改银行卡信息接口 $query_data = []; $query_data['certCard'] = $this->cert_card; $query_res = $lgApi->FlexibleQuery($query_data); //走修改银行卡信息 if ($query_res[0]['status'] == 300){ $post_data['certCard'] = $this->cert_card;//收款人身份证 $post_data['accNo'] = $this->acc_no;//银行卡号 $post_data['bankCode'] = $this->bank_code;//收款人银行编码(调用 1006 此接口)(特殊可选) $post_data['bankPhone'] = $this->bank_phone;//预留手机号 $post_data['alipayAcc'] = '';//支付宝账号 $res = $lgApi->FlexibleMkd($post_data); if ($res['certCard']){ //更改进件信息 $lg_info = Lg::findOne($lg->id); $lg_info->status = 1; $lg_info->save(); $t->commit(); return [ 'code' => 0, 'msg' => '保存成功', 'data' => $res ]; }else{ $t->rollBack(); return [ 'code' => 1, 'msg' => $res['msg'], ]; } }else{ // print_r(222);die; //走进件 $post_data['name'] = $this->name;//收款人姓名 $post_data['certCard'] = $this->cert_card;//收款人身份证 $post_data['contractType'] = '100';//签约方式 100 快捷签约 $post_data['accNo'] = $this->acc_no;//银行卡号 $post_data['bankCode'] = $this->bank_code;//收款人银行编码(调用 1006 此接口)(特殊可选) $post_data['bankPhone'] = $this->bank_phone;//预留手机号 $post_data['idcardFront'] = $this->id_card_front;//身份证正面 $post_data['idcardBack'] = $this->id_card_back;//身份证徽面 $res = $lgApi->FlexibleRegister($post_data); //进件成功 if ($res['status'] == 200){ $t->commit(); //进件接口调用后消息队列查询进件状态 \queue_push(new LgApplyJob(['id'=>$lg->id,'store_id'=>$this->store_id,'retry' => 5]), 60); return [ 'code' => 0, 'msg' => '保存成功', 'data' => $res ]; }else{ $t->rollBack(); return [ 'code' => 1, 'msg' => $res['msg'], ]; } } } else { $t->rollBack(); foreach ($lg->errors as $error) { return [ 'code' => 1, 'msg' => $error[0], ]; } } }catch (\Exception $e){ \Yii::error($e); $t->rollBack(); return [ 'code' => 1, 'msg' => $e->getMessage(), ]; } } }