Commit 6f5990b4 authored by pete谢兆麟's avatar pete谢兆麟

续期证件管理通行证接口逻辑

parent 3e6a60c5
...@@ -86,6 +86,7 @@ class YHResignCertificateDetailEVisaViewController: YHBaseViewController { ...@@ -86,6 +86,7 @@ class YHResignCertificateDetailEVisaViewController: YHBaseViewController {
@objc func nextStep() { @objc func nextStep() {
if file.count != 0 { if file.count != 0 {
let eVisa: [String: Any] = ["name": "电子签证", let eVisa: [String: Any] = ["name": "电子签证",
"file_name": file.first?.fileName ?? "",
"e_visa_url": file.first?.fileUrl ?? "", "e_visa_url": file.first?.fileUrl ?? "",
"upload_at": file.first?.uploadedAt ?? ""] "upload_at": file.first?.uploadedAt ?? ""]
let params : [String : Any] = [ let params : [String : Any] = [
......
...@@ -23,7 +23,8 @@ class YHResignCertificateDetailHkViewController: YHBaseViewController { ...@@ -23,7 +23,8 @@ class YHResignCertificateDetailHkViewController: YHBaseViewController {
var urls: [String] = ["",""] var urls: [String] = ["",""]
var data: [YHItemModel] = [] var data: [YHItemModel] = []
var isShowPrompt = false var isShowPrompt = false
var failString: String = ""
lazy var tableView: UITableView = { lazy var tableView: UITableView = {
let tableView = UITableView(frame:.zero, style:.grouped) let tableView = UITableView(frame:.zero, style:.grouped)
tableView.estimatedSectionHeaderHeight = 0.01 tableView.estimatedSectionHeaderHeight = 0.01
...@@ -143,80 +144,26 @@ class YHResignCertificateDetailHkViewController: YHBaseViewController { ...@@ -143,80 +144,26 @@ class YHResignCertificateDetailHkViewController: YHBaseViewController {
func checkInfo() -> Bool { func checkInfo() -> Bool {
var errorItemCount = 0 var errorItemCount = 0
// if item.type == .certificate { if urls.first?.count == 0 {
// var hasSubmitError = false failString = "请港澳通行证正面"
// var isDateValidate = true return false
// item.cerDetailModel.isNeedCheckCer = false }
// item.cerDetailModel.isNeedCheckDate = false if urls.last?.count == 0 {
// failString = "请港澳通行证背面"
// if item.cerDetailModel.isOCR_failed { return false
// // 无法识别不能当做无法提交的错误 所以 此处 hasError 不必设置为true }
// item.cerDetailModel.isNeedCheckCer = true if self.viewModel.dataModel.cert_info.issue_start.count == 0 {
// item.cerDetailModel.checkTips = "无法识别,请核查文件" return false
// }
// } else { if self.viewModel.dataModel.cert_info.issue_end.count == 0 {
// var noCerInfo = false return false
// if item.cerDetailModel.type == 3 { // 只有港澳通行证有正反面 }
// noCerInfo = (item.cerDetailModel.img_front.isEmpty || item.cerDetailModel.img_back.isEmpty) if self.viewModel.dataModel.cert_info.validate_start.count == 0 {
// } else { return false
// noCerInfo = item.cerDetailModel.img_front.isEmpty }
// } if self.viewModel.dataModel.cert_info.validate_end.count == 0 {
// return false
// if noCerInfo { }
// hasSubmitError = true
// item.cerDetailModel.isNeedCheckCer = true
// if item.cerDetailModel.type == 3 { // 港澳通行证
// item.cerDetailModel.checkTips = item.cerDetailModel.img_front.isEmpty ? "请上传港澳通行证正面" : "请上传港澳通行证反面"
//
// } else if item.cerDetailModel.type == 1 { // 中国护照
// item.cerDetailModel.checkTips = "请上传护照"
//
// } else if item.cerDetailModel.type == 2 { // 中国居留许可签证
// item.cerDetailModel.checkTips = "请上传中国居留许可签证"
// }
//
// } else {
// item.cerDetailModel.isNeedCheckDate = false
// if item.cerDetailModel.issue_start.isEmpty || item.cerDetailModel.issue_end.isEmpty {
// hasSubmitError = true
// item.cerDetailModel.isNeedCheckDate = true
//
// } else {
// let isValidCertificate = item.cerDetailModel.isValidCer()
// if !isValidCertificate {
// if item.cerDetailModel.type == 2, item.cerDetailModel.china_travel_latest_validaty_date.isEmpty {
// // 这个情况直接弹toast
// hasSubmitError = true
// YHHUD.flash(message: "赴港行程尚未成功预约,请前往检查")
//
// } else {
// // 有效期不足也能提交
// isDateValidate = false
// item.cerDetailModel.isNeedCheckCer = true
// let deadDate: String = (item.cerDetailModel.type == 2 ? item.cerDetailModel.china_travel_latest_validaty_date : item.cerDetailModel.latest_validaty_date)
// item.cerDetailModel.checkTips = "有效期不足,需要为\(deadDate)或以后"
// }
// }
// }
// }
// }
// if !hasSubmitError {
// // 无法识别或有效期不足也要可以提交
// if !item.cerDetailModel.isOCR_failed && isDateValidate {
// item.cerDetailModel.isNeedCheckCer = false
// item.cerDetailModel.isNeedCheckDate = false
// }
//
// } else {
// errorItemCount += 1
// }
// }
self.tableView.reloadData()
return true return true
} }
} }
...@@ -225,31 +172,32 @@ class YHResignCertificateDetailHkViewController: YHBaseViewController { ...@@ -225,31 +172,32 @@ class YHResignCertificateDetailHkViewController: YHBaseViewController {
private extension YHResignCertificateDetailHkViewController { private extension YHResignCertificateDetailHkViewController {
//1、获取详情信息 //1、获取详情信息
func loadDetailInfo() { func loadDetailInfo() {
self.updateData()
// let params = [
// "order_id": orderId,
// "user_id": dataModel.id,
// "user_type": dataModel.type
// ] as [String : Any]
//
// YHHUD.show(.progress(message: "加载中..."))
// viewModel.getTravelDocsDetailInfo(param: params) { success, error in
// YHHUD.hide()
// if success {
// // TODO: 杜宇哥 UI刷新
self.updateData()
//
// } else {
//
// }
// }
} }
//2、保存旅行证件 //2、保存旅行证件
func saveAllTravelCertificate() { func saveAllTravelCertificate() {
let passPort: [String: Any] = ["name": "护照",
"issue_start": self.viewModel.dataModel.cert_info.issue_start,
"issue_end": self.viewModel.dataModel.cert_info.issue_end,
"img_front": urls[0],
"img_back": urls[1],
"validate_start": self.viewModel.dataModel.cert_info.validate_start,
"validate_end": self.viewModel.dataModel.cert_info.validate_end]
let params : [String : Any] = [
"passPort": passPort,
"id": dataModel.id
]
viewModel.submitResignCertificateUpdate(params) { success, error in
if success {
YHHUD.flash(message: "保存成功")
self.navigationController?.popViewController()
} else {
let msg = error?.errorMsg ?? "保存失败,请重试"
YHHUD.flash(message: msg)
}
}
} }
} }
...@@ -277,19 +225,39 @@ extension YHResignCertificateDetailHkViewController: UITableViewDelegate, UITabl ...@@ -277,19 +225,39 @@ extension YHResignCertificateDetailHkViewController: UITableViewDelegate, UITabl
cell.lastImageName = "service_adopter_card_travel_back" cell.lastImageName = "service_adopter_card_travel_back"
cell.firstLabelName = "证件页1" cell.firstLabelName = "证件页1"
cell.lastLabelName = "证件页2" cell.lastLabelName = "证件页2"
cell.failString = failString
cell.urls = urls cell.urls = urls
cell.data = data cell.data = data
cell.dataModel = dataModel
cell.urlBlock = { [weak self] url, index in cell.urlBlock = { [weak self] url, index in
guard let self = self else { return } guard let self = self else { return }
self.urls[index] = url self.urls[index] = url
self.viewModel.getPublicImageUrl(url) {[weak self] success, error in self.viewModel.getPublicImageUrl(url) {[weak self] success, error in
guard let self = self else { return } guard let self = self else { return }
guard let url = success else { return } guard let url = success else { return }
// self.viewModel.requestHkIDCardMessage(url, isBack: 0) {[weak self] success, error in self.viewModel.getHKCardBackInfoByOcr(url, isBack: index) { success, result in
// guard let self = self else { return } YHHUD.hide()
// self.data = viewModel.getBaseDataSource(isShowPrompt) if success, let result = result {
// self.tableView.reloadData() if !result.term_begins.isEmpty {
// } if index == 0 {
self.dataModel.cert_info.issue_start = result.term_begins
} else {
self.dataModel.cert_info.validate_start = result.term_begins
}
}
if !result.end_of_term.isEmpty {
if index == 0 {
self.dataModel.cert_info.issue_end = result.end_of_term
} else {
self.dataModel.cert_info.validate_end = result.term_begins
}
}
} else {
// OCR 无法识别
self.failString = "无法识别,请核查文件"
}
self.updateData()
}
} }
} }
cell.deleteBlock = { [weak self] url, index in cell.deleteBlock = { [weak self] url, index in
...@@ -298,12 +266,8 @@ extension YHResignCertificateDetailHkViewController: UITableViewDelegate, UITabl ...@@ -298,12 +266,8 @@ extension YHResignCertificateDetailHkViewController: UITableViewDelegate, UITabl
} }
cell.block = {[weak self] model in cell.block = {[weak self] model in
guard let self = self else { return } guard let self = self else { return }
// self.viewModel.updateModel(model) self.viewModel.updateModel(model)
// let id = model.id self.dataModel = self.viewModel.dataModel
// if id != .id2 && id != .id3 && id != .id4 {
// self.data = viewModel.getBaseDataSource(isShowPrompt)
// self.tableView.reloadData()
// }
} }
return cell return cell
} }
......
...@@ -43,6 +43,7 @@ class YHResignCertificateModel: SmartCodable { ...@@ -43,6 +43,7 @@ class YHResignCertificateModel: SmartCodable {
} }
class YHResignCertificateInfoModel: SmartCodable { class YHResignCertificateInfoModel: SmartCodable {
var file_name: String = ""
var e_visa_url: String = "" //电子签证的url var e_visa_url: String = "" //电子签证的url
var name: String = "" //电子签证名称 var name: String = "" //电子签证名称
var upload_at: String = "" var upload_at: String = ""
...@@ -59,6 +60,8 @@ class YHResignCertificateInfoModel: SmartCodable { ...@@ -59,6 +60,8 @@ class YHResignCertificateInfoModel: SmartCodable {
var img_front: String = "" var img_front: String = ""
var issue_end: String = "" var issue_end: String = ""
var issue_start: String = "" var issue_start: String = ""
var validate_start: String = ""
var validate_end: String = ""
required init() { required init() {
} }
......
...@@ -38,6 +38,12 @@ class YHResignCertificateHKTableViewCell: UITableViewCell { ...@@ -38,6 +38,12 @@ class YHResignCertificateHKTableViewCell: UITableViewCell {
var viewModel: YHBaseViewModel = YHBaseViewModel() var viewModel: YHBaseViewModel = YHBaseViewModel()
var firstUrl: String = "" var firstUrl: String = ""
var lastUrl: String = "" var lastUrl: String = ""
var dataModel: YHResignCertificateModel = YHResignCertificateModel()
var failString: String = "" {
didSet {
showMessageLabel.text = failString
}
}
var firstImageName: String = "" { var firstImageName: String = "" {
didSet { didSet {
frontImageButton.setBackgroundImage(UIImage(named: firstImageName), for: .normal) frontImageButton.setBackgroundImage(UIImage(named: firstImageName), for: .normal)
...@@ -412,6 +418,11 @@ class YHResignCertificateHKTableViewCell: UITableViewCell { ...@@ -412,6 +418,11 @@ class YHResignCertificateHKTableViewCell: UITableViewCell {
guard let self = self else { return } guard let self = self else { return }
if let block = self.block { if let block = self.block {
block(model) block(model)
if self.compareDates(dateString1: model.message ?? "", dateString2: self.dataModel.valid_date) {
} else {
failString = "有效期不足,需要为\(self.dataModel.valid_date)或以后"
}
} }
} }
centerView.addSubview(cardEndView) centerView.addSubview(cardEndView)
...@@ -549,4 +560,19 @@ class YHResignCertificateHKTableViewCell: UITableViewCell { ...@@ -549,4 +560,19 @@ class YHResignCertificateHKTableViewCell: UITableViewCell {
block("", 1) block("", 1)
} }
} }
func compareDates(dateString1: String, dateString2: String) -> Bool {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
guard let date1 = dateFormatter.date(from: dateString1),
let date2 = dateFormatter.date(from: dateString2) else {
return false
}
if date1 < date2 {
return false
}
return true
}
} }
...@@ -32,8 +32,8 @@ class YHResignCertificateDetailViewModel: YHBaseViewModel { ...@@ -32,8 +32,8 @@ class YHResignCertificateDetailViewModel: YHBaseViewModel {
func getBaseDataSource(_ isShowPrompt: Bool) -> [YHItemModel] { func getBaseDataSource(_ isShowPrompt: Bool) -> [YHItemModel] {
let item1 = YHItemModel(id: .id1, isNeed: true, title: "开始时间", isUserKeyBoard: false, prompts: "请选择", message: dataModel.cert_info.issue_start, type: .time, isShowPrompts: isShowPrompt, alertMessage:"请选择开始时间") let item1 = YHItemModel(id: .id1, isNeed: true, title: "开始时间", isUserKeyBoard: false, prompts: "请选择", message: dataModel.cert_info.issue_start, type: .time, isShowPrompts: isShowPrompt, alertMessage:"请选择开始时间")
let item2 = YHItemModel(id: .id2, isNeed: true, title: "到期时间", isUserKeyBoard: false, prompts: "请选择", message: dataModel.cert_info.issue_end, type: .time, isShowPrompts: isShowPrompt, alertMessage:"请选择到期时间") let item2 = YHItemModel(id: .id2, isNeed: true, title: "到期时间", isUserKeyBoard: false, prompts: "请选择", message: dataModel.cert_info.issue_end, type: .time, isShowPrompts: isShowPrompt, alertMessage:"请选择到期时间")
let item3 = YHItemModel(id: .id3, isNeed: true, title: "开始时间", isUserKeyBoard: false, prompts: "请选择", message: dataModel.cert_info.issue_start, type: .time, isShowPrompts: isShowPrompt, alertMessage:"请选择开始时间") let item3 = YHItemModel(id: .id3, isNeed: true, title: "开始时间", isUserKeyBoard: false, prompts: "请选择", message: dataModel.cert_info.validate_start, type: .time, isShowPrompts: isShowPrompt, alertMessage:"请选择开始时间")
let item4 = YHItemModel(id: .id4, isNeed: true, title: "到期时间", isUserKeyBoard: false, prompts: "请选择", message: dataModel.cert_info.issue_end, type: .time, isShowPrompts: isShowPrompt, alertMessage:"请选择到期时间") let item4 = YHItemModel(id: .id4, isNeed: true, title: "到期时间", isUserKeyBoard: false, prompts: "请选择", message: dataModel.cert_info.validate_end, type: .time, isShowPrompts: isShowPrompt, alertMessage:"请选择到期时间")
return [item1, item2, item3, item4] return [item1, item2, item3, item4]
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment