Commit d15c81e6 authored by David黄金龙's avatar David黄金龙

Merge branch 'qmas-1130' of http://gitlab.galaxy-immi.com/mobile-group/galaxy-iOS into qmas-1130

* 'qmas-1130' of http://gitlab.galaxy-immi.com/mobile-group/galaxy-iOS:
  工作经验步骤流程接口
parents 9740701d 2f5b9ae2
......@@ -112,12 +112,25 @@ class YHWorkExperienceViewController: YHBaseViewController {
guard let self = self else { return }
self.updateDataSource()
}
viewModel.requestWorkStep("\(orderID)", workExperienceID ?? "") { success, error in
if self.stepView.currentIndex < 3 {
self.stepView.currentIndex = self.viewModel.stepModel.step
self.stepView.maxIndex = self.viewModel.mainModel.step
} else {
self.stepView.currentIndex = 3
self.stepView.maxIndex = 3
}
self.stepView.dataSource = ["基本信息", "工作职责", "工作亮点", "简历/工作总结"]
}
viewModel.requestworkDutyDetail(workExperienceID ?? "") {[weak self] success, error in
guard let self = self else { return }
}
viewModel.requestWorkHighlightsDetail(workExperienceID ?? "") {[weak self] success, error in
guard let self = self else { return }
}
viewModel.requestWorkDetail("\(orderID)", workExperienceID ?? "") {[weak self] success, error in
guard let self = self else { return }
self.stepView.currentIndex = self.viewModel.mainModel.step
self.stepView.maxIndex = self.viewModel.mainModel.step
self.updateDataSource()
self.stepView.dataSource = ["基本信息", "工作职责", "工作亮点", "简历/工作总结"]
self.viewModel.requestWorkInfoProject("\(self.viewModel.mainModel.word_id)") {[weak self] success, error in
guard let self = self else { return }
self.introductionDataSource = success
......@@ -125,7 +138,6 @@ class YHWorkExperienceViewController: YHBaseViewController {
self.updateDataSource()
}
}
updateDataSource()
}
......@@ -227,23 +239,56 @@ class YHWorkExperienceViewController: YHBaseViewController {
bottom.nextButton.isEnabled = false
guard let self = self else { return }
if self.viewModel.isCanNext(self.stepView.currentIndex) {
self.viewModel.mainModel.step = self.stepView.currentIndex
self.viewModel.saveWorkDetail(1, orderID: self.orderID, callBackBlock: {[weak self] flag, error in
guard let self = self else { return }
bottom.nextButton.isEnabled = true
if let error = error {
YHHUD.flash(message: error.errorMsg )
} else {
YHHUD.hideFlashMessage()
if self.stepView.currentIndex == 3 {
YHHUD.flash(message: "提交成功")
self.navigationController?.popViewController()
if self.stepView.currentIndex == 0 {
self.viewModel.saveWorkData(orderID, workId: workExperienceID?.intValue() ?? 0) {[weak self] success, error in
guard let self = self else { return }
bottom.nextButton.isEnabled = true
if let error = error {
YHHUD.flash(message: error.errorMsg )
} else {
self.stepView.currentIndex = self.stepView.currentIndex + 1
self.updateDataSource()
}
}
})
} else if self.stepView.currentIndex == 1 {
self.viewModel.saveWorkDuty(workId: workExperienceID?.intValue() ?? 0) {[weak self] success, error in
guard let self = self else { return }
bottom.nextButton.isEnabled = true
if let error = error {
YHHUD.flash(message: error.errorMsg )
} else {
self.stepView.currentIndex = self.stepView.currentIndex + 1
self.updateDataSource()
}
}
} else if self.stepView.currentIndex == 2 {
self.viewModel.saveWorkHighlights(workId: workExperienceID?.intValue() ?? 0) {[weak self] success, error in
guard let self = self else { return }
bottom.nextButton.isEnabled = true
if let error = error {
YHHUD.flash(message: error.errorMsg )
} else {
self.stepView.currentIndex = self.stepView.currentIndex + 1
self.updateDataSource()
}
}
} else {
self.viewModel.saveWorkDetail(1, orderID: self.orderID, callBackBlock: {[weak self] flag, error in
guard let self = self else { return }
bottom.nextButton.isEnabled = true
if let error = error {
YHHUD.flash(message: error.errorMsg )
} else {
YHHUD.hideFlashMessage()
if self.stepView.currentIndex == 3 {
YHHUD.flash(message: "提交成功")
self.navigationController?.popViewController()
} else {
self.stepView.currentIndex = self.stepView.currentIndex + 1
}
}
})
}
} else {
bottom.nextButton.isEnabled = true
self.isShowPrompt = true
......@@ -253,14 +298,47 @@ class YHWorkExperienceViewController: YHBaseViewController {
}
bottom.saveBlock = { [weak self] in
guard let self = self else { return }
self.viewModel.saveWorkDetail(0, orderID: self.orderID, callBackBlock: {[weak self] flag, error in
guard let self = self else { return }
if let error = error {
YHHUD.flash(message: error.errorMsg )
} else {
YHHUD.flash(message: "保存成功")
if self.stepView.currentIndex == 0 {
self.viewModel.saveWorkData(orderID, workId: workExperienceID?.intValue() ?? 0) {[weak self] success, error in
guard let self = self else { return }
bottom.nextButton.isEnabled = true
if let error = error {
YHHUD.flash(message: error.errorMsg )
} else {
YHHUD.flash(message: "保存成功")
}
}
})
} else if self.stepView.currentIndex == 1 {
self.viewModel.saveWorkDuty(workId: workExperienceID?.intValue() ?? 0) {[weak self] success, error in
guard let self = self else { return }
bottom.nextButton.isEnabled = true
if let error = error {
YHHUD.flash(message: error.errorMsg )
} else {
YHHUD.flash(message: "保存成功")
}
}
} else if self.stepView.currentIndex == 2 {
self.viewModel.saveWorkHighlights(workId: workExperienceID?.intValue() ?? 0) {[weak self] success, error in
guard let self = self else { return }
bottom.nextButton.isEnabled = true
if let error = error {
YHHUD.flash(message: error.errorMsg )
} else {
self.stepView.currentIndex = self.stepView.currentIndex + 1
self.updateDataSource()
}
}
} else {
self.viewModel.saveWorkDetail(0, orderID: self.orderID, callBackBlock: {[weak self] flag, error in
guard let self = self else { return }
if let error = error {
YHHUD.flash(message: error.errorMsg )
} else {
YHHUD.flash(message: "保存成功")
}
})
}
}
return bottom
}()
......@@ -482,7 +560,7 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if stepView.currentIndex == 1 {
let cell = tableView.dequeueReusableCell(withClass: YHWorkResponsibilitiesTableViewCell.self)
cell.dataSource = viewModel.mainModel.wduty
cell.dataSource = viewModel.dutyModel.work_duty
cell.exampleBlock = {[weak self] in
guard let self = self else { return }
let mainVc = YHWorkExampleViewController()
......@@ -518,7 +596,7 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
return cell
} else if stepView.currentIndex == 2 {
let cell = tableView.dequeueReusableCell(withClass: YHWorkHighlightsTableViewCell.self)
cell.dataSource = viewModel.mainModel.highlights
cell.dataSource = viewModel.helightModel.work_highlights
cell.exampleBlock = {[weak self] in
guard let self = self else { return }
let mainVc = YHWorkExampleViewController()
......@@ -772,7 +850,6 @@ extension YHWorkExperienceViewController: UITableViewDelegate, UITableViewDataSo
}
return CGFloat(h + 52 + 14 + 386)
} else {
let number = viewModel.positionList.count
var height = 23 + 154
for item in viewModel.positionList {
if item.position_name == "" {
......
......@@ -16,6 +16,8 @@ class YHWorkExperienceDetailModel: SmartCodable {
var professional_level: Int = 0
var work_certificate: String = ""
var has_finish_basic_question: Int = 0
var work_duty: String = ""
var work_highlights: String = ""
var is_famous_enterprise: Int = 0
var duty: String = ""
......@@ -73,3 +75,11 @@ class YHWorkExperienceFileModel: SmartCodable {
required init() {
}
}
class YHWorkExperienceStepModel: SmartCodable {
var step: Int = 0
var step_name: String = ""
required init() {
}
}
......@@ -18,7 +18,7 @@ class YHWorkExperiencePositionModel: SmartCodable {
var entry_time: String = ""
var departure_time: String = ""
var experience_scope: String = ""
var experience_sub_scope: String = ""
var experience_sub_scope: String = " "
var is_international_work_experience: Int = 0
var provide_certificate_type: Int = 0
var work_country: String = ""
......
......@@ -15,6 +15,9 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
var projectModels: [YHWorkExperienceProjectModel]?
var fileList: [YHWorkExperienceFileModel] = []
var positionList: [YHWorkExperiencePositionModel] = []
var stepModel: YHWorkExperienceStepModel = YHWorkExperienceStepModel()
var dutyModel: YHWorkExperienceDetailModel = YHWorkExperienceDetailModel()
var helightModel: YHWorkExperienceDetailModel = YHWorkExperienceDetailModel()
override init() {
super.init()
}
......@@ -35,7 +38,7 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
case .id1: // 用人单位
mainModel.company_name = item.message ?? ""
case .id2: // 用人单位性质
mainModel.industry = item.message ?? ""
mainModel.has_finish_basic_question = 1
case .id3: // 职位水平类型
mainModel.professional_level = Int(item.value?.first ?? "0") ?? 0
default : break
......@@ -43,15 +46,11 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
}
func updateWduty(_ value: String) {
mainModel.wduty = value
dutyModel.work_duty = value
}
func updateHighlights(_ value: String) {
mainModel.highlights = value
}
func updateNotNeedUploadFile(value: Int) {
mainModel.not_need_upload_file = value
helightModel.work_highlights = value
}
func requestWorkExample(callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) {
......@@ -100,6 +99,30 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
}
}
func requestWorkStep(_ orderId: String, _ workId: String, callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) {
// let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.WorkExperience.detail + "?id=\(workId)"
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.WorkExperience.workStep
let param: [String: Any] = ["work_id": workId, "order_id": orderId]
let _ = YHNetRequest.getRequest(url: strUrl,params: param) { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
if json.code == 200 {
guard let dic = json.data?.peel as? [String : Any], let result = YHWorkExperienceStepModel.deserialize(from: dic) else {
callBackBlock(false,nil)
return
}
self.stepModel = result
callBackBlock(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
callBackBlock(false,err)
}
}
// 0保存 1下一步
func saveWorkDetail(_ saveType: Int, orderID: Int, callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) {
if mainModel.location.country.contains("中国") {
......@@ -279,50 +302,20 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
func isCanNext(_ step: Int) -> Bool {
if step == 0 {
let companyName = mainModel.company_name //公司名称
let industry = mainModel.industry //用人单位性质
let country = mainModel.location.country //工作国家
let area = mainModel.location.area //工作城市
let foreign = mainModel.location.foreign //工作城市 国外
let entryTime = mainModel.entry_time //入职年月
let departureTime = mainModel.departure_time //离职年月
let workCertificate = mainModel.work_certificate //工作证明文件
let duty = mainModel.duty //职责性质
let companyMemberTotal = mainModel.company_member_total //企业人数规模
let companyManageTotal = mainModel.company_manage_total //下属管理人数
let professionalLevel = mainModel.professional_level //职位水平类别
let executivesCertificate = mainModel.executives_certificate //高管证明文件
let topManagerStartAt = mainModel.top_manager_start_at //高管在职开始时间
let topManagerEndAt = mainModel.top_manager_end_at //高管在职开始时间
let professional_level = mainModel.professional_level
let work_certificate = mainModel.work_certificate
guard companyName.count > 0 else { return false }
guard industry.count > 0 else { return false }
guard country.count > 0 else { return false }
guard entryTime.count > 0 else { return false }
guard workCertificate.count > 0 else { return false }
guard duty.count > 0 else { return false }
guard companyMemberTotal >= 0 else { return false }
guard companyManageTotal >= 0 else { return false }
guard professionalLevel > 0 else { return false }
if country.contains("中国") {
guard area.count > 0 else { return false }
} else {
guard foreign.count > 0 else { return false }
}
if professionalLevel == 1 {
guard executivesCertificate.count > 0 else { return false }
guard topManagerStartAt.count > 0 else { return false }
guard topManagerEndAt.count > 0 else { return false }
}
guard professional_level > 0 else { return false }
guard work_certificate.count > 0 else { return false }
return true
} else if step == 1 {
let message = mainModel.wduty
let message = dutyModel.work_duty
guard message.count > 0 else { return false }
return true
} else if step == 2 {
let message = mainModel.highlights
let message = helightModel.work_highlights
guard message.count > 0 else { return false }
return true
} else if step == 3 {
return true
} else {
return true
}
......@@ -350,4 +343,128 @@ class YHWorkExperienceViewModel: YHBaseViewModel {
callBackBlock(false,err)
}
}
func saveWorkData(_ orderId: Int, workId: Int, callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) {
let params: [String : Any] = ["order_id": orderId,
"work_id": workId,
"company_name":mainModel.company_name,
"professional_level": mainModel.professional_level,
"work_certificate": mainModel.work_certificate,
"next_step": 1,
]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.WorkExperience.saveWorkData
let _ = YHNetRequest.postRequest(url: strUrl, params: params) { [weak self] json, code in
guard let self = self else { return }
if json.code == 200 {
guard let dic = json.data?.peel as? [String : Any], let result = YHWorkExperienceDetailModel.deserialize(from: dic) else {
callBackBlock(false,nil)
return
}
self.mainModel.word_id = result.word_id
callBackBlock(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
callBackBlock(false, err)
}
}
func requestworkDutyDetail(_ workId: String, callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) {
// let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.WorkExperience.detail + "?id=\(workId)"
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.WorkExperience.workDutyDetail
let param: [String: Any] = ["work_id": workId]
let _ = YHNetRequest.getRequest(url: strUrl,params: param) { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
if json.code == 200 {
guard let dic = json.data?.peel as? [String : Any], let result = YHWorkExperienceDetailModel.deserialize(from: dic) else {
callBackBlock(false,nil)
return
}
self.dutyModel = result
callBackBlock(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
callBackBlock(false,err)
}
}
func saveWorkDuty(workId: Int, callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) {
let params: [String : Any] = ["work_id": workId,
"work_duty":dutyModel.duty,
"next_step": 2,
]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.WorkExperience.saveWorkDuty
let _ = YHNetRequest.postRequest(url: strUrl, params: params) { [weak self] json, code in
guard let self = self else { return }
if json.code == 200 {
guard let dic = json.data?.peel as? [String : Any], let result = YHWorkExperienceDetailModel.deserialize(from: dic) else {
callBackBlock(false,nil)
return
}
self.mainModel.word_id = result.word_id
callBackBlock(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
callBackBlock(false, err)
}
}
func requestWorkHighlightsDetail(_ workId: String, callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) {
// let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.WorkExperience.detail + "?id=\(workId)"
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.WorkExperience.workHighlightsDetail
let param: [String: Any] = ["work_id": workId]
let _ = YHNetRequest.getRequest(url: strUrl,params: param) { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
if json.code == 200 {
guard let dic = json.data?.peel as? [String : Any], let result = YHWorkExperienceDetailModel.deserialize(from: dic) else {
callBackBlock(false,nil)
return
}
self.helightModel = result
callBackBlock(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
callBackBlock(false,err)
}
}
func saveWorkHighlights(workId: Int, callBackBlock:@escaping (_ success: Bool?, _ error:YHErrorModel?)->()) {
let params: [String : Any] = ["work_id": workId,
"work_highlights": helightModel.work_highlights,
"next_step": 4,
]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.WorkExperience.saveWorkHighlights
let _ = YHNetRequest.postRequest(url: strUrl, params: params) { [weak self] json, code in
guard let self = self else { return }
if json.code == 200 {
guard let dic = json.data?.peel as? [String : Any], let result = YHWorkExperienceDetailModel.deserialize(from: dic) else {
callBackBlock(false,nil)
return
}
self.mainModel.word_id = result.word_id
callBackBlock(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
callBackBlock(false, err)
}
}
}
......@@ -229,6 +229,7 @@ class YHAllApiName {
static let list = "infoflow/work/v1/list"
//工作经验详情
static let detail = "infoflow/work/v1/workDetail"
static let workStep = "infoflow/work/v1/WorkStep"
//工作经验保存
static let save = "infoflow/work/save"
static let saveAll = "infoflow/work/save-all"
......@@ -260,6 +261,12 @@ class YHAllApiName {
static let workQuestionDetail = "infoflow/work/v1/workQuestionDetail"
static let saveWorkQuestion = "infoflow/work/v1/SaveWorkQuestion"
static let saveWorkData = "infoflow/work/v1/saveWorkData"
static let workDutyDetail = "infoflow/work/v1/workDutyDetail"
static let saveWorkDuty = "infoflow/work/v1/saveWorkDuty"
static let workHighlightsDetail = "infoflow/work/v1/workHighlightsDetail"
static let saveWorkHighlights = "infoflow/work/v1/saveWorkHighlights"
}
//登录
......
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