service = new BocCommonService(); if (in_array($this->request->action(true), ['preApply', 'applyOfficial'])) { $this->data = $this->request->post(); Log::debug('data:'); Log::debug($this->data); $common_validate = new CommonValidate(); // 1.验证公共请求参数字段 if (!$common_validate->check($this->data)) { Log::error('请求参数错误:'); Log::error($common_validate->getError()); return $this->service->buildResponseData(-1, '请求参数错误', []); } // 2.验签 if (!$this->service->verifySign($this->data['cipherkey'], $this->data['ciphertext'], $this->data['sign'])) { return $this->service->buildResponseData(-1, '验签失败', $this->data); } // 3.解析数据明文 $this->plain_data = json_decode($this->service->getPlainText(), true); Log::debug('plain_data:'); Log::debug($this->plain_data); } } public function preApply() { $validate = new PreApplyValidate(); if (!$validate->check($this->plain_data)) { Log::error("preApply请求参数错误:"); Log::error($validate->getError()); return $this->service->buildResponseData(-1, '请求参数错误', $this->data); } if (($res = $this->service->savePreApply($this->plain_data)) !== true) { return $this->service->buildResponseData(-1, $res, $this->data); } return $this->service->buildResponseData(0, '保存预评估数据成功', $this->data); } public function applyOfficial() { $validate = new ApplyOfficialValidate(); if (!$validate->check($this->plain_data)) { Log::error("preApply请求参数错误:"); Log::error($validate->getError()); return $this->service->buildResponseData(-1, '请求参数错误', $this->data); } if (($res = $this->service->saveApplyOfficial($this->plain_data)) !== true) { return $this->service->buildResponseData(-1, $res, $this->data); } return $this->service->buildResponseData(0, '保存预评估数据成功', $this->data); } public function getPreApplyList() { $param = $this->request->param(); $page = $param['page'] ?? 1; $limit = $param['limit'] ?? 10; $where = []; if (!empty($param['is_related'])) { //1未关联 2=已关联 $where['bcm.is_related'] = $param['is_related']; } if (!empty($param['bankPreEstimateNo'])) { //银行预评估申请编号 $where['bcp.bankPreEstimateNo'] = ['like', '%' . $param['bankPreEstimateNo'] . '%']; } if (!empty($param['bankerName'])) { //客户经理名字 $where['bcp.bankerName'] = ['like', '%' . $param['bankerName'] . '%']; } if (!empty($param['bankerPhone'])) { //客户经理电话 $where['bcp.bankerPhone'] = ['like', '%' . $param['bankerPhone'] . '%']; } if (!empty($param['propertyName'])) { //物业名称 $where['bcp.propertyName'] = ['like', '%' . $param['propertyName'] . '%']; } $estimateType = ['1' => '人工', '2' => '自动']; $channelCode = ['XJ' => '消金', 'PH' => '普惠']; $list = Db::name('boc_common_preapply')->alias('bcp') ->field('bcm.id boc_common_id, bcp.id boc_common_preapply_id, bcm.bankPreEstimateNo, bcp.bankerName, bcp.bankerPhone, bcp.estimateType, bcp.propertyName, bcp.channelCode, bcm.is_related') ->leftJoin("boc_common_main bcm", "bcp.boc_common_id = bcm.id") ->where($where) ->order('bcm.id desc') ->paginate([ 'list_rows' => $limit, 'page' => $page, ])->each(function ($item, $key) use ($estimateType, $channelCode) { $item['estimateTypeStr'] = $item['estimateType'] ? $estimateType[$item['estimateType']] : ''; $item['channelCodeStr'] = $item['channelCode'] ? $channelCode[$item['channelCode']] : ''; $item['attachmentList'] = Db::name('boc_common_preapply_property_card') ->field('propertyCardFileUrl url') ->where('boc_common_id', $item['boc_common_id']) ->where('boc_common_preapply_id', $item['boc_common_preapply_id']) ->select(); $item['is_related_text'] = $item['is_related'] == 1 ? '未关联' : '已关联'; return $item; }); return $this->buildSuccess($list); } public function getApplyOfficialList() { $param = $this->request->param(); $page = $param['page'] ?? 1; $limit = $param['limit'] ?? 10; $where = []; if (!empty($param['is_related'])) { //1已关联 2=未关联 $where['bcm.is_related'] = $param['is_related']; } if (!empty($param['bankEstimateNo'])) { //银行正式评估申请编号 $where['bcao.bankEstimateNo'] = ['like', '%' . $param['bankEstimateNo'] . '%']; } if (!empty($param['bankPreEstimateNo'])) { //银行预评估申请编号 $where['bcaope.bankPreEstimateNo'] = ['like', '%' . $param['bankPreEstimateNo'] . '%']; } $reportType = ['01' => '简易评估报告', '02' => '正式评估报告', '04' => '询价单']; $channelCode = ['XJ' => '消金', 'PH' => '普惠']; $list = Db::name('boc_common_apply_official')->alias('bcao') ->field('bcm.id boc_common_id, bcao.id boc_common_apply_official_id, bcao.bankEstimateNo, bcao.reportType, bcao.channelCode, bcm.is_related') ->leftJoin('boc_common_main bcm', "bcao.boc_common_id = bcm.id") ->leftJoin("boc_common_apply_official_pre_estimate bcaope", "bcaope.boc_common_id = bcm.id") ->where($where) ->where('bcao.bankEstimateNo is not null and bcao.bankEstimateNo != ""') ->order('bcm.id desc') ->group('bcao.id') ->paginate([ 'list_rows' => $limit, 'page' => $page, ])->each(function ($item, $key) use ($reportType, $channelCode) { $item['reportTypeStr'] = $item['reportType'] ? $reportType[$item['reportType']] : ''; $item['channelCodeStr'] = $item['channelCode'] ? $channelCode[$item['channelCode']] : ''; $item['bankPreEstimateList'] = Db::name('boc_common_apply_official_pre_estimate')->alias('a') ->field("d.bankPreEstimateNo, IF(c.is_related = 1, '未关联', '已关联') is_related, pci.property_full_name propertyName, d.bankerName, d.bankerPhone") ->leftJoin("boc_common_main b", 'a.boc_common_id = b.id') ->leftJoin("boc_common_main c", 'b.order_no = c.order_no') ->leftJoin("boc_common_preapply d", "d.boc_common_id = c.id") ->leftJoin('inquiry i', 'i.order_no = b.order_no') ->leftJoin('property_cert_info pci', 'i.id = pci.quot_id') ->where('a.boc_common_id', $item['boc_common_id']) ->where('a.boc_common_apply_official_id', $item['boc_common_apply_official_id']) ->group('a.boc_common_apply_official_id') ->select(); $item['is_related_text'] = $item['is_related'] == 1 ? '未关联' : '已关联'; return $item; }); return $this->buildSuccess($list); } public function sendPreResult() { $quot_id = $this->request->post('quot_id'); if (empty($quot_id)) return $this->buildFailed("缺少询价ID"); if (($res = $this->service->sendPreResult($quot_id)) !== true) { return $this->buildFailed($res); } $res = Db::name('inquiry')->where('id', $quot_id)->update(['is_send_estimate_to_boc' => 1]); if ($res === false) { return $this->buildFailed("更新发送预估单状态失败"); } return $this->buildSuccess(); } public function sendApplyOfficial() { ini_set("memory_limit", "1024M"); set_time_limit(0); $quot_id = $this->request->post('quot_id'); if (empty($quot_id)) return $this->buildFailed("缺少询价ID"); if (($res = $this->service->sendApplyOfficialResult($quot_id)) !== true) { return $this->buildFailed($res); } $res = Db::name('inquiry')->where('id', $quot_id)->where('is_send_report_to_boc', 2)->update(['is_send_report_to_boc' => 1]); if ($res === false) { return $this->buildFailed("更新发送报告状态失败"); } return $this->buildSuccess(); } public function isRelatedInquiry() { $boc_common_id = $this->request->post('boc_common_id'); $bankPreEstimateNo = $this->request->post('bankPreEstimateNo'); if (empty($boc_common_id)) return $this->buildFailed('参数错误'); if (empty($bankPreEstimateNo)) return $this->buildFailed('参数错误'); $res = Db::name('boc_common_main')->where('id', $boc_common_id)->where('bankPreEstimateNo', $bankPreEstimateNo)->find(); if (!$res) { return $this->buildFailed('未找到中行的询价申请'); } return $this->buildSuccess(['is_related' => $res['is_related'] == 2]); } /**************业务后台接口**************/ }