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

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

parent 3e6a60c5
......@@ -86,6 +86,7 @@ class YHResignCertificateDetailEVisaViewController: YHBaseViewController {
@objc func nextStep() {
if file.count != 0 {
let eVisa: [String: Any] = ["name": "电子签证",
"file_name": file.first?.fileName ?? "",
"e_visa_url": file.first?.fileUrl ?? "",
"upload_at": file.first?.uploadedAt ?? ""]
let params : [String : Any] = [
......
......@@ -23,6 +23,7 @@ class YHResignCertificateDetailHkViewController: YHBaseViewController {
var urls: [String] = ["",""]
var data: [YHItemModel] = []
var isShowPrompt = false
var failString: String = ""
lazy var tableView: UITableView = {
let tableView = UITableView(frame:.zero, style:.grouped)
......@@ -143,80 +144,26 @@ class YHResignCertificateDetailHkViewController: YHBaseViewController {
func checkInfo() -> Bool {
var errorItemCount = 0
// if item.type == .certificate {
// var hasSubmitError = false
// var isDateValidate = true
// item.cerDetailModel.isNeedCheckCer = false
// item.cerDetailModel.isNeedCheckDate = false
//
// if item.cerDetailModel.isOCR_failed {
// // 无法识别不能当做无法提交的错误 所以 此处 hasError 不必设置为true
// item.cerDetailModel.isNeedCheckCer = true
// item.cerDetailModel.checkTips = "无法识别,请核查文件"
//
// } else {
// var noCerInfo = false
// if item.cerDetailModel.type == 3 { // 只有港澳通行证有正反面
// noCerInfo = (item.cerDetailModel.img_front.isEmpty || item.cerDetailModel.img_back.isEmpty)
// } else {
// noCerInfo = item.cerDetailModel.img_front.isEmpty
// }
//
// 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()
if urls.first?.count == 0 {
failString = "请港澳通行证正面"
return false
}
if urls.last?.count == 0 {
failString = "请港澳通行证背面"
return false
}
if self.viewModel.dataModel.cert_info.issue_start.count == 0 {
return false
}
if self.viewModel.dataModel.cert_info.issue_end.count == 0 {
return false
}
if self.viewModel.dataModel.cert_info.validate_start.count == 0 {
return false
}
if self.viewModel.dataModel.cert_info.validate_end.count == 0 {
return false
}
return true
}
}
......@@ -225,31 +172,32 @@ class YHResignCertificateDetailHkViewController: YHBaseViewController {
private extension YHResignCertificateDetailHkViewController {
//1、获取详情信息
func loadDetailInfo() {
// 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、保存旅行证件
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
cell.lastImageName = "service_adopter_card_travel_back"
cell.firstLabelName = "证件页1"
cell.lastLabelName = "证件页2"
cell.failString = failString
cell.urls = urls
cell.data = data
cell.dataModel = dataModel
cell.urlBlock = { [weak self] url, index in
guard let self = self else { return }
self.urls[index] = url
self.viewModel.getPublicImageUrl(url) {[weak self] success, error in
guard let self = self else { return }
guard let url = success else { return }
// self.viewModel.requestHkIDCardMessage(url, isBack: 0) {[weak self] success, error in
// guard let self = self else { return }
// self.data = viewModel.getBaseDataSource(isShowPrompt)
// self.tableView.reloadData()
// }
self.viewModel.getHKCardBackInfoByOcr(url, isBack: index) { success, result in
YHHUD.hide()
if success, let result = result {
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
......@@ -298,12 +266,8 @@ extension YHResignCertificateDetailHkViewController: UITableViewDelegate, UITabl
}
cell.block = {[weak self] model in
guard let self = self else { return }
// self.viewModel.updateModel(model)
// let id = model.id
// if id != .id2 && id != .id3 && id != .id4 {
// self.data = viewModel.getBaseDataSource(isShowPrompt)
// self.tableView.reloadData()
// }
self.viewModel.updateModel(model)
self.dataModel = self.viewModel.dataModel
}
return cell
}
......
......@@ -43,6 +43,7 @@ class YHResignCertificateModel: SmartCodable {
}
class YHResignCertificateInfoModel: SmartCodable {
var file_name: String = ""
var e_visa_url: String = "" //电子签证的url
var name: String = "" //电子签证名称
var upload_at: String = ""
......@@ -59,6 +60,8 @@ class YHResignCertificateInfoModel: SmartCodable {
var img_front: String = ""
var issue_end: String = ""
var issue_start: String = ""
var validate_start: String = ""
var validate_end: String = ""
required init() {
}
......
......@@ -38,6 +38,12 @@ class YHResignCertificateHKTableViewCell: UITableViewCell {
var viewModel: YHBaseViewModel = YHBaseViewModel()
var firstUrl: String = ""
var lastUrl: String = ""
var dataModel: YHResignCertificateModel = YHResignCertificateModel()
var failString: String = "" {
didSet {
showMessageLabel.text = failString
}
}
var firstImageName: String = "" {
didSet {
frontImageButton.setBackgroundImage(UIImage(named: firstImageName), for: .normal)
......@@ -412,6 +418,11 @@ class YHResignCertificateHKTableViewCell: UITableViewCell {
guard let self = self else { return }
if let block = self.block {
block(model)
if self.compareDates(dateString1: model.message ?? "", dateString2: self.dataModel.valid_date) {
} else {
failString = "有效期不足,需要为\(self.dataModel.valid_date)或以后"
}
}
}
centerView.addSubview(cardEndView)
......@@ -549,4 +560,19 @@ class YHResignCertificateHKTableViewCell: UITableViewCell {
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 {
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 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 item4 = YHItemModel(id: .id4, 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.validate_start, 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]
}
......
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