['name'=>'福州狸车汽车销售有限公司','code'=>'FJ0011'], 350200 => ['name'=>'厦门狸车汽车销售有限公司','code'=>'FJ0007'], 350500 => ['name'=>'泉州狸车汽车销售有限公司','code'=>'FJ0009'], ]; const COLOR_UN_UPLOAD = '#f9394d'; //未传 const COLOR_IS_UPLOAD = '#fd9737'; //已传 const COLOR_UN_CHECK = '#f9394d'; //未通过 const COLOR_CHECK = '#36afa2'; //通过 public function __construct(){ $this->ci = & get_instance(); $this->ci->load->model('receiver/order/receiver_orders_v2_model'); $this->ci->load->model('receiver/order/receiver_order_contracts_model','order_contracts_model'); $this->ci->load->model('receiver/order/receiver_order_datas_model'); $this->ci->load->model('receiver/order/receiver_order_agents_model'); $this->ci->load->model('app/app_checkdata_model'); $this->ci->load->model('app/licheb/app_licheb_users_model'); $this->ci->load->model('app/licheb/app_licheb_channel_biz_model'); $this->ci->load->model("biz/biz_model"); $this->ci->load->model('auto/auto_brand_model'); $this->ci->load->model('auto/auto_series_model'); $this->ci->load->model('auto/auto_attr_model'); $this->ci->load->model("items/items_model"); $this->ci->load->library('TcOrc'); $this->ci->load->library('qiniuorc'); $this->ci->load->library('tcmarket'); $this->ci->load->library('pdftk'); $this->ci->load->library('pdf'); } public function data_status($o_data){ $result = [ 'cardida' => ['text'=>'未传','type'=>1,'color'=>self::COLOR_UN_UPLOAD], //身份证 'business_licence' => ['text'=>'未传','type'=>1,'color'=>self::COLOR_UN_UPLOAD], //营业执照 'register_img' => ['text'=>'未传','type'=>2,'color'=>self::COLOR_UN_UPLOAD], //登记证 'car_img' => ['text'=>'未传','type'=>3,'color'=>self::COLOR_UN_UPLOAD], //行驶证 'ins_img' => ['text'=>'未传','type'=>4,'color'=>self::COLOR_UN_UPLOAD], //保单证 'other_img' => ['text'=>'未传','type'=>5,'color'=>self::COLOR_UN_UPLOAD], //交车合照 ]; foreach ($result as $key=>$item) { if($key=='ins_img'){ if($o_data['ins_img'] || $o_data['insurance_img'] || $o_data['business_img']){ $result[$key]['text'] = '已传'; $result[$key]['color'] = self::COLOR_IS_UPLOAD; } }else{ if($o_data[$key]){ $result[$key]['text'] = '已传'; $result[$key]['color'] = self::COLOR_IS_UPLOAD; } } } return $result; } //获取图片审核状态 public function data_ckinfo($o_data,$main_type=0){ if($main_type){ $result = [ 'business_licence' => ['text'=>'营业执照','type'=>1,'up_status'=>0,'status'=>0,'status_cn'=>'未审核','imgs' => []], //公司营业执照 'register_img' => ['text'=>'登记证','type'=>2,'up_status'=>0,'status'=>0,'status_cn'=>'未审核','imgs' => []], //登记证 'car_img' => ['text'=>'行驶证','type'=>3,'up_status'=>0,'status'=>0,'status_cn'=>'未审核','imgs'=>[]], //行驶证 'ins_img' => ['text'=>'保单证','type'=>4,'up_status'=>0,'status'=>0,'status_cn'=>'未审核','imgs'=>[]], //保单证 'insurance_img' => ['text'=>'交强险','type'=>4,'up_status'=>0,'status'=>0,'status_cn'=>'未审核','imgs'=>[]], //交强险图片 'business_img' => ['text'=>'商业险','type'=>4,'up_status'=>0,'status'=>0,'status_cn'=>'未审核','imgs'=>[]], //商业险图片 'other_img' => ['text'=>'交车合照','type'=>5,'up_status'=>0,'status'=>0,'status_cn'=>'未审核','imgs'=>[]], //交车合照 'delivery_ck_img' => ['text'=>'交车合照','type'=>6,'up_status'=>0,'status'=>0,'status_cn'=>'未审核','imgs'=>[]], //交车确认图片 'wx_img' => ['text'=>'企业微','type'=>7,'up_status'=>0,'status'=>0,'status_cn'=>'未审核','imgs'=>[]], //企业微图片 'mut_wx_img' => ['text'=>'企业微多对一','type'=>7,'up_status'=>0,'status'=>0,'status_cn'=>'未审核','imgs'=>[]], //企业微多对一图片 'destory_img' => ['text'=>'实名认证资料','type'=>7,'up_status'=>0,'status'=>0,'status_cn'=>'未审核','imgs'=>[]], //实名认证资料图片 'accident_img' => ['text'=>'意外险','type'=>8,'up_status'=>0,'status'=>0,'status_cn'=>'未审核','imgs'=>[]], //意外险图片 ]; }else{ $result = [ 'cardida' => ['text'=>'身份证正面','type'=>1,'up_status'=>0,'status'=>0,'status_cn'=>'未审核','imgs' => []], //身份证 'register_img' => ['text'=>'登记证','type'=>2,'up_status'=>0,'status'=>0,'status_cn'=>'未审核','imgs' => []], //登记证 'car_img' => ['text'=>'行驶证','type'=>3,'up_status'=>0,'status'=>0,'status_cn'=>'未审核','imgs'=>[]], //行驶证 'ins_img' => ['text'=>'保单证','type'=>4,'up_status'=>0,'status'=>0,'status_cn'=>'未审核','imgs'=>[]], //保单证 'insurance_img' => ['text'=>'交强险','type'=>4,'up_status'=>0,'status'=>0,'status_cn'=>'未审核','imgs'=>[]], //交强险图片 'business_img' => ['text'=>'商业险','type'=>4,'up_status'=>0,'status'=>0,'status_cn'=>'未审核','imgs'=>[]], //商业险图片 'other_img' => ['text'=>'交车合照','type'=>5,'up_status'=>0,'status'=>0,'status_cn'=>'未审核','imgs'=>[]], //交车合照 'delivery_ck_img' => ['text'=>'交车合照','type'=>6,'up_status'=>0,'status'=>0,'status_cn'=>'未审核','imgs'=>[]], //交车确认图片 'wx_img' => ['text'=>'企业微','type'=>7,'up_status'=>0,'status'=>0,'status_cn'=>'未审核','imgs'=>[]], //企业微图片 'mut_wx_img' => ['text'=>'企业微多对一','type'=>7,'up_status'=>0,'status'=>0,'status_cn'=>'未审核','imgs'=>[]], //企业微多对一图片 'destory_img' => ['text'=>'实名认证资料','type'=>7,'up_status'=>0,'status'=>0,'status_cn'=>'未审核','imgs'=>[]], //实名认证资料图片 'accident_img' => ['text'=>'意外险','type'=>8,'up_status'=>0,'status'=>0,'status_cn'=>'未审核','imgs'=>[]], //意外险图片 ]; } $where = [ 'cf_id'=>$o_data['id'], 'app_id'=>2, 'type in (1,2,3,4,5)'=>null, 'datatype'=>'img' ]; $check_data = $this->ci->app_checkdata_model->map('type','',$where,'','','','id,cf_id,type,ifcheck'); foreach ($result as $key=>$item) { $result[$key]['up_status'] = 1; $ifcheck = $check_data[$item['type']][0]['ifcheck']; $imgs = []; if($key=='ins_img'||$key=='other_img'){ $img_data = json_decode($o_data[$key],true); if(is_array($img_data)){ foreach ($img_data as $v) { $imgs[] = build_qiniu_image_url($v); } } }elseif($key=='insurance_img'||$key=='business_img' || $key=='accident_img'){ $img_data = json_decode($o_data[$key],true); $img_data['img'] && $imgs[] = build_qiniu_image_url($img_data['img']); }else{ $o_data[$key] && $imgs[] = build_qiniu_image_url($o_data[$key]); if($key=='cardida' && $o_data['cardidb']){ $imgs[1] = build_qiniu_image_url($o_data['cardidb']); } } $result[$key]['imgs'] = $imgs; if($ifcheck==1){ $result[$key]['status_cn'] = '已通过'; $result[$key]['status'] = 1; }elseif($ifcheck==-1){ $result[$key]['status_cn'] = '未通过'; $result[$key]['status'] = -1; }else{ $result[$key]['status_cn'] = '未审核'; $result[$key]['status'] = 0; } } return $result; } /** * 更新数据 * @param $oid * @param $data * @return void */ public function up_data($oid,$data){ if(!$data){ return false; } $row = $this->ci->receiver_order_datas_model->get(['o_id'=>$oid]); if(!$row){ $this->ci->receiver_order_datas_model->add(['o_id'=>$oid,'c_time'=>time()]); } $res = $this->ci->receiver_order_datas_model->update($data,['o_id'=>$oid]); return $res; } /** * 识别行驶证 * @param $oid * @return bool */ public function orc_car_img($oid){ $row = $this->ci->receiver_order_datas_model->get(['o_id'=>$oid]); if(!$row['car_img']){ return false; } $img_url = build_qiniu_image_url($row['car_img']); $result = $this->ci->tcorc->VehicleLicense($img_url); if (!$result['code']) { return false; } $jsondata = json_decode($row['jsondata'],true); $jsondata['car_info'] = $result['data']['FrontInfo']; $update = [ 'jsondata' => json_encode($jsondata,JSON_UNESCAPED_UNICODE) ]; $res = $this->ci->receiver_order_datas_model->update($update,['id'=>$row['id']]); return $res; } /** * 识别保单图片 * @param $oid * @return false */ public function orc_ins_img($oid){ $row = $this->ci->receiver_order_datas_model->get(['o_id'=>$oid]); $ins_img = json_decode($row['ins_img'],true); $jsondata = json_decode($row['jsondata'],true); $ins_info = $jsondata['ins_info'] ? $jsondata['ins_info'] : []; if($ins_img){ $img_keys = []; foreach ($ins_img as $key=>$value) { $value && $url = build_qiniu_image_url($value); $url && $img_keys[] = md5($url); $ins_key = md5($url); if($url && !$ins_info[$ins_key]){ $result = $this->ci->qiniuorc->car_insure($url); if ($result['code']) { $ins_info[$ins_key]['msg'] = $result['msg']; $ins_info[$ins_key]['data'] = $result['data']; $ins_info[$ins_key]['img_url'] = $url; }else{ $ins_info[$ins_key]['msg'] = $result['msg']; $ins_info[$ins_key]['img_url'] = $url; } } } $ins_time = $company = ''; $ins_risk = $business_risk = 0; foreach ($ins_info as $key=>$value) { if(!in_array($key,$img_keys)){ unset($ins_info[$key]); }else{ $money = floatval($value['data']['合计保费']); if($money==950){ $ins_risk = $money; }else{ $company = $value['data']['保险公司']; $ins_time = date('Y-m-d',strtotime($value['data']['投保确认时间'])+365*12*24*60*60); $business_risk += $money; } } } $agent = $this->ci->receiver_order_agents_model->get(['o_id'=>$oid]); $agent_jsondata = $agent ? json_decode($agent['jsondata'],true) : []; $company && $agent_jsondata['company'] = $company; $ins_risk && $agent_jsondata['ins_risk'] = $ins_risk; $business_risk && $agent_jsondata['business_risk'] = $business_risk; if(!$agent){ $add = [ 'o_id' => $oid, 'jsondata' => json_encode($agent_jsondata,JSON_UNESCAPED_UNICODE), 'c_time' => time(), ]; $ins_time && $add['ins_time'] = $ins_time; $this->ci->receiver_order_agents_model->add($add); }else{ $update['jsondata'] = json_encode($agent_jsondata,JSON_UNESCAPED_UNICODE); $ins_time && $update['ins_time'] = $ins_time; $this->ci->receiver_order_agents_model->update($update,['id'=>$agent['id']]); } } $jsondata['ins_info'] = $ins_info; $update = [ 'jsondata' => json_encode($jsondata,JSON_UNESCAPED_UNICODE) ]; $res = $this->ci->receiver_order_datas_model->update($update,['id'=>$row['id']]); return $res; } /** * 识别保单图片 * @param $oid * @return false */ public function orc_ins_img_2($oid){ $row = $this->ci->receiver_order_datas_model->get(['o_id'=>$oid]); $insurance_img = json_decode($row['insurance_img'],true); $business_img = json_decode($row['business_img'],true); $accident_img = json_decode($row['accident_img'],true); $jsondata = json_decode($row['jsondata'],true); $ins_info = $jsondata['ins_info'] ? $jsondata['ins_info'] : []; if($insurance_img['img']){ $url = build_qiniu_image_url($insurance_img['img']); // $ins_key = md5($url); // if(!$ins_info[$ins_key]){ //// $result = $this->ci->qiniuorc->car_insure($url); // $result = $this->ci->tcmarket->autoInsurance($url); // if ($result['code']) { // $ins_info[$ins_key]['msg'] = $result['msg']; // $ins_info[$ins_key]['data'] = $result['data']; // $ins_info[$ins_key]['img_url'] = $url; // $jsondata['ins_info'] = $ins_info; // $insurance_img['price'] = floatval($result['data']['premium']); // $insurance_img['date'] = $result['data']['policyStartDate']; // $insurance_img['product'] = $result['data']['companyName']; // }else{ // $ins_info[$ins_key]['msg'] = $result['msg']; // $ins_info[$ins_key]['img_url'] = $url; // return false; // } // } } if($business_img['img']){ $url = build_qiniu_image_url($business_img['img']); $ins_key = md5($url); // if(!$ins_info[$ins_key]){ //// $result = $this->ci->qiniuorc->car_insure($url); // $result = $this->ci->tcmarket->autoInsurance($url); // if ($result['code']) { // $ins_info[$ins_key]['msg'] = $result['msg']; // $ins_info[$ins_key]['data'] = $result['data']; // $ins_info[$ins_key]['img_url'] = $url; // $jsondata['ins_info'] = $ins_info; // $business_img['price'] = floatval($result['data']['premium']); // $business_img['date'] = $result['data']['policyStartDate']; // $business_img['product'] = $result['data']['companyName']; // }else{ // $ins_info[$ins_key]['msg'] = $result['msg']; // $ins_info[$ins_key]['img_url'] = $url; // return false; // } // } } if($accident_img['img']){ $url = build_qiniu_image_url($accident_img['img']); // $ins_key = md5($url); // if(!$ins_info[$ins_key]){ // $result = $this->ci->tcmarket->autoInsurance($url); // if ($result['code']) { // $ins_info[$ins_key]['msg'] = $result['msg']; // $ins_info[$ins_key]['data'] = $result['data']; // $ins_info[$ins_key]['img_url'] = $url; // $jsondata['ins_info'] = $ins_info; // $accident_img['price'] = floatval($result['data']['premium']); // $accident_img['date'] = $result['data']['policyStartDate']; // $accident_img['product'] = $result['data']['companyName']; // }else{ // $ins_info[$ins_key]['msg'] = $result['msg']; // $ins_info[$ins_key]['img_url'] = $url; // return false; // } // } } return true; $update = [ 'jsondata' => json_encode($jsondata,JSON_UNESCAPED_UNICODE), 'insurance_img' => json_encode($insurance_img,JSON_UNESCAPED_UNICODE), 'business_img' => json_encode($business_img,JSON_UNESCAPED_UNICODE), 'accident_img' => json_encode($accident_img,JSON_UNESCAPED_UNICODE), ]; $res = $this->ci->receiver_order_datas_model->update($update,['id'=>$row['id']]); return $res; } /** * 更新车牌号 * @return void */ public function up_car_num($oid){ $row = $this->ci->receiver_order_datas_model->get(['o_id'=>$oid]); $jsondata = json_decode($row['jsondata'],true); $car_num = $jsondata['car_info']['PlateNo']; $res = false; if($car_num){ $agent = $this->ci->receiver_order_agents_model->get(['o_id'=>$oid]); if(!$agent){ $add = [ 'o_id' => $oid, 'car_num' => $car_num, 'c_time' => time(), ]; $res = $this->ci->receiver_order_agents_model->add($add); }else{ $update['car_num'] = $car_num; $res = $this->ci->receiver_order_agents_model->update($update,['id'=>$agent['id']]); } } return $res; } /** * 生成确认交车合同 * @param $oid * @return array */ public function fill_finsh_pdf($oid){ $order = $this->ci->receiver_orders_v2_model->get(['id'=>$oid]); if(!$order){ return ['code'=>0,'msg'=>'参数错误']; } $biz = $this->ci->biz_model->get(['id'=>$order['biz_id']],'city_id'); $wd = $this->wd_config[$biz['city_id']] ? $this->wd_config[$biz['city_id']] : $this->wd_config['350200']; //车辆信息 $brand = $this->ci->auto_brand_model->get(['id'=>$order['brand_id']],'name'); $series = $this->ci->auto_series_model->get(['id'=>$order['s_id']],'name'); $version = $this->ci->auto_attr_model->get(['id'=>$order['v_id']],'title'); $color = $this->ci->auto_attr_model->get(['id'=>$order['cor_id']],'title'); $_version = $version['title'] ? $version['title'] : ''; $item = $this->ci->items_model->get(['id'=>$order['item_id']],'vin'); $sale_row = $this->ci->app_licheb_users_model->get(['id'=>$order['sale_id']],'uname'); $qd_row = $this->ci->app_licheb_users_model->get(['biz_id'=>$order['biz_id'],'status'=>1,'group_id in (2,3)'=>null],'uname'); if(in_array($order['v_id'],[173,176,327,330])){ $fill_2 = "/"; }else{ $fill_2 = "√"; } $fill_data = [ 'code_name' => $wd['name'], 'code' => $wd['code'], 'car' => "{$brand['name']} {$series['name']} $_version", 'name' => $order['owner_name'], 'color' => $color['title'] ? $color['title'] : '', 'vin' => $item['vin'] ? $item['vin'] : '', 'sale_name' => $sale_row['uname'] ? $sale_row['uname'] : '', 'channel_name' => $qd_row['uname'] ? $qd_row['uname'] : $sale_row['uname'], 'time' => date('Y-m-d'), 'fill_2' => $fill_2 ]; $pdf_path = 'pdf/finish_tpl.pdf'; $save_path = "pdf/{$order['sid']}/finish.pdf"; $req = $this->ci->pdftk->esign_fill_pdf($pdf_path,$save_path,$fill_data); if(!$req['code']){ return ['code'=>0,'msg'=>$req['msg']]; } $where = [ 'o_id' => $oid, 'type' => 6 ]; $row = $this->ci->order_contracts_model->get($where); $up_data = [ 'file' => $req['data']['file_path'] ? $req['data']['file_path'] : '', ]; //pdf转图片 if($up_data['file']){ $pdf_url = http_host_com('api').'/'.$up_data['file']; $imgs = $this->ci->pdf->pdf2img($pdf_url); if($imgs){ $up_data['imgs'] = json_encode($imgs,JSON_UNESCAPED_UNICODE); } } if($row){ $result = $this->ci->order_contracts_model->update($up_data,['id'=>$row['id']]); }else{ $up_data['o_id'] = $oid; $up_data['type'] = 6; $up_data['c_time'] = time(); $result = $this->ci->order_contracts_model->add($up_data); } if($result){ return ['code'=>1,'msg'=>'保存成功']; }else{ return ['code'=>0,'msg'=>'保存失败']; } } public function sign_finsh_pdf($oid,$sign_img){ $where = [ 'o_id' => $oid, 'type' => 6 ]; $row = $this->ci->order_contracts_model->get($where); $imgs = json_decode($row['imgs'],true); $jsondata = json_decode($row['jsondata'],true); if(!$row || !$imgs){ return ['code'=>0,'msg'=>'数据不存在']; } $origin_img = $imgs['0']; $this->ci->load->library('receiver/sign_entity'); $res = $this->ci->sign_entity->merge_img($origin_img,$sign_img,300,1250); if(!$res){ return ['code'=>0,'msg'=>'图片合并失败']; } $img_url = http_host_com('api').'/'.$res; $this->ci->load->library('qiniu'); $file_name = md5($img_url).'.jpg'; $result = $this->ci->qiniu->fetch($img_url,$file_name); if(!$result['file']){ $imgs[0] = $img_url; }else{ @unlink(FCPATH.$res); $imgs[0] = build_qiniu_image_url($result['file']); $this->ci->receiver_order_datas_model->update(['delivery_ck_img'=>$result['file']],['o_id'=>$oid]); } $jsondata['sign_img'] = $sign_img; $update = [ 'imgs' => json_encode($imgs,JSON_UNESCAPED_UNICODE), 'jsondata' => json_encode($jsondata,JSON_UNESCAPED_UNICODE), 'status' => 1, 'sign_time' => date('Y-m-d H:i:s') ]; $result = $this->ci->order_contracts_model->update($update,['id'=>$row['id']]); if($result){ return ['code'=>1,'msg'=>'保存成功']; }else{ return ['code'=>0,'msg'=>'保存失败']; } } }