| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230 |
- <?php
- /**
- * 重庆赤晓店信息科技有限公司
- * https://www.chixiaodian.com
- * Copyright (c) 2023 赤店商城 All rights reserved.
- */
- namespace app\modules\client\models\v1;
- use app\constants\OptionSetting;
- use app\jobs\LgApplyJob;
- use app\models\Address;
- use app\models\District;
- use app\models\Lg;
- use app\models\Option;
- use app\utils\LgApi;
- class LgForm extends \yii\base\Model
- {
- public $lg_id;
- public $store_id;
- public $user_id;
- public $audit_time;
- public $refuse_desc;
- public $name;
- public $mobile;
- public $bank_phone;
- public $cert_card;
- public $park_codes;
- public $acc_no;
- public $bank_code;
- public $id_card_front;
- public $id_card_back;
- public $alipay_acc;
- public $id_card_start;
- public $id_card_end;
- public $bank_pic;
- public function rules()
- {
- return [
- [['name', 'mobile'], 'trim'],
- [['name', 'mobile','bank_phone','cert_card','acc_no','bank_code','id_card_front','id_card_back','bank_pic'], 'required'],
- [['user_id', 'audit_time','lg_id'], 'integer'],
- [['alipay_acc', 'refuse_desc','bank_pic','mobile','bank_phone','cert_card','acc_no','bank_code','id_card_front','id_card_back','name','bank_phone','id_card_start','id_card_end'], 'string'],
- [['latitude','longitude'], 'safe'],
- ];
- }
- public function attributeLabels()
- {
- return [
- 'name' => '收货人',
- '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(),
- ];
- }
- }
- }
|