Commit fe67c63a authored by pete谢兆麟's avatar pete谢兆麟

Merge commit '936d9e9e' into xiezhaolin

# Conflicts:
#	galaxy/galaxy/Classes/Modules/Login(登录)/VM/YHLoginViewModel.swift
#	galaxy/galaxy/Classes/Tools/NetWork/YHNetRequest.swift
parents d6fefd9e 936d9e9e
...@@ -39,6 +39,8 @@ ...@@ -39,6 +39,8 @@
044CC6252B873F330083FF76 /* YHCollegeSearchViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044CC6242B873F330083FF76 /* YHCollegeSearchViewController.swift */; }; 044CC6252B873F330083FF76 /* YHCollegeSearchViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044CC6242B873F330083FF76 /* YHCollegeSearchViewController.swift */; };
044CC6272B8740340083FF76 /* YHCollegeNameCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044CC6262B8740340083FF76 /* YHCollegeNameCell.swift */; }; 044CC6272B8740340083FF76 /* YHCollegeNameCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044CC6262B8740340083FF76 /* YHCollegeNameCell.swift */; };
044CC6292B8741AC0083FF76 /* YHSearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044CC6282B8741AC0083FF76 /* YHSearchBar.swift */; }; 044CC6292B8741AC0083FF76 /* YHSearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044CC6282B8741AC0083FF76 /* YHSearchBar.swift */; };
044CC62B2B876A230083FF76 /* YHSheetPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044CC62A2B876A230083FF76 /* YHSheetPickerView.swift */; };
044CC62D2B876C980083FF76 /* YHSheetPickerViewType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044CC62C2B876C980083FF76 /* YHSheetPickerViewType.swift */; };
0468D4202B49320900CFB916 /* YHVerificationCodeLoginController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0468D41F2B49320900CFB916 /* YHVerificationCodeLoginController.swift */; }; 0468D4202B49320900CFB916 /* YHVerificationCodeLoginController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0468D41F2B49320900CFB916 /* YHVerificationCodeLoginController.swift */; };
0468D4222B493A5E00CFB916 /* YHPhoneMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0468D4212B493A5E00CFB916 /* YHPhoneMessageView.swift */; }; 0468D4222B493A5E00CFB916 /* YHPhoneMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0468D4212B493A5E00CFB916 /* YHPhoneMessageView.swift */; };
0468D4242B494BEA00CFB916 /* YHCodeResultViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0468D4232B494BEA00CFB916 /* YHCodeResultViewController.swift */; }; 0468D4242B494BEA00CFB916 /* YHCodeResultViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0468D4232B494BEA00CFB916 /* YHCodeResultViewController.swift */; };
...@@ -323,6 +325,8 @@ ...@@ -323,6 +325,8 @@
044CC6242B873F330083FF76 /* YHCollegeSearchViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCollegeSearchViewController.swift; sourceTree = "<group>"; }; 044CC6242B873F330083FF76 /* YHCollegeSearchViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCollegeSearchViewController.swift; sourceTree = "<group>"; };
044CC6262B8740340083FF76 /* YHCollegeNameCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCollegeNameCell.swift; sourceTree = "<group>"; }; 044CC6262B8740340083FF76 /* YHCollegeNameCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCollegeNameCell.swift; sourceTree = "<group>"; };
044CC6282B8741AC0083FF76 /* YHSearchBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSearchBar.swift; sourceTree = "<group>"; }; 044CC6282B8741AC0083FF76 /* YHSearchBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSearchBar.swift; sourceTree = "<group>"; };
044CC62A2B876A230083FF76 /* YHSheetPickerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSheetPickerView.swift; sourceTree = "<group>"; };
044CC62C2B876C980083FF76 /* YHSheetPickerViewType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSheetPickerViewType.swift; sourceTree = "<group>"; };
0468D41F2B49320900CFB916 /* YHVerificationCodeLoginController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHVerificationCodeLoginController.swift; sourceTree = "<group>"; }; 0468D41F2B49320900CFB916 /* YHVerificationCodeLoginController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHVerificationCodeLoginController.swift; sourceTree = "<group>"; };
0468D4212B493A5E00CFB916 /* YHPhoneMessageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHPhoneMessageView.swift; sourceTree = "<group>"; }; 0468D4212B493A5E00CFB916 /* YHPhoneMessageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHPhoneMessageView.swift; sourceTree = "<group>"; };
0468D4232B494BEA00CFB916 /* YHCodeResultViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCodeResultViewController.swift; sourceTree = "<group>"; }; 0468D4232B494BEA00CFB916 /* YHCodeResultViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCodeResultViewController.swift; sourceTree = "<group>"; };
...@@ -660,6 +664,8 @@ ...@@ -660,6 +664,8 @@
042FBBD22B67A2F900F9DE23 /* PickerView */ = { 042FBBD22B67A2F900F9DE23 /* PickerView */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
044CC62C2B876C980083FF76 /* YHSheetPickerViewType.swift */,
044CC62A2B876A230083FF76 /* YHSheetPickerView.swift */,
042FBBD32B67A2F900F9DE23 /* YHFormPickerView.swift */, 042FBBD32B67A2F900F9DE23 /* YHFormPickerView.swift */,
043955202B70955200955D49 /* YHFormPickerViewType.swift */, 043955202B70955200955D49 /* YHFormPickerViewType.swift */,
); );
...@@ -1727,6 +1733,7 @@ ...@@ -1727,6 +1733,7 @@
0468D4202B49320900CFB916 /* YHVerificationCodeLoginController.swift in Sources */, 0468D4202B49320900CFB916 /* YHVerificationCodeLoginController.swift in Sources */,
043955252B70D20300955D49 /* YHFormItemQuestionsCell.swift in Sources */, 043955252B70D20300955D49 /* YHFormItemQuestionsCell.swift in Sources */,
0468D4532B6782BE00CFB916 /* YHCardExampleView.swift in Sources */, 0468D4532B6782BE00CFB916 /* YHCardExampleView.swift in Sources */,
044CC62B2B876A230083FF76 /* YHSheetPickerView.swift in Sources */,
A596C3A12B84D9100067BBB8 /* YHOtherTextViewItemView.swift in Sources */, A596C3A12B84D9100067BBB8 /* YHOtherTextViewItemView.swift in Sources */,
04010B952B6A1DE90093F3BB /* YHSaveAndSubmitView.swift in Sources */, 04010B952B6A1DE90093F3BB /* YHSaveAndSubmitView.swift in Sources */,
A5ACE9362B4564F7002C94D2 /* YHNetworkStatusManager.swift in Sources */, A5ACE9362B4564F7002C94D2 /* YHNetworkStatusManager.swift in Sources */,
...@@ -1907,6 +1914,7 @@ ...@@ -1907,6 +1914,7 @@
0468D42B2B55019900CFB916 /* YHAnalytics.swift in Sources */, 0468D42B2B55019900CFB916 /* YHAnalytics.swift in Sources */,
A5ACE93C2B4564F7002C94D2 /* UIColor+Extension.swift in Sources */, A5ACE93C2B4564F7002C94D2 /* UIColor+Extension.swift in Sources */,
04E86E4F2B8479B700A35F4B /* YHWorkIntroductionItemView.swift in Sources */, 04E86E4F2B8479B700A35F4B /* YHWorkIntroductionItemView.swift in Sources */,
044CC62D2B876C980083FF76 /* YHSheetPickerViewType.swift in Sources */,
04E86E5B2B84BF2000A35F4B /* YHWorkExampleTypeView.swift in Sources */, 04E86E5B2B84BF2000A35F4B /* YHWorkExampleTypeView.swift in Sources */,
042FBBBD2B63519C00F9DE23 /* YHFormItemSelectSheetCell.swift in Sources */, 042FBBBD2B63519C00F9DE23 /* YHFormItemSelectSheetCell.swift in Sources */,
A5FD63C32B63438A00D1D9DA /* YHContactMainItemStatusModel.swift in Sources */, A5FD63C32B63438A00D1D9DA /* YHContactMainItemStatusModel.swift in Sources */,
...@@ -2140,7 +2148,7 @@ ...@@ -2140,7 +2148,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.0; MARKETING_VERSION = 0.1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.intelligence.galaxy; PRODUCT_BUNDLE_IDENTIFIER = com.intelligence.galaxy;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
...@@ -2182,7 +2190,7 @@ ...@@ -2182,7 +2190,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.0; MARKETING_VERSION = 0.1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.intelligence.galaxy; PRODUCT_BUNDLE_IDENTIFIER = com.intelligence.galaxy;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
......
...@@ -40,7 +40,11 @@ class AppDelegate: UIResponder, UIApplicationDelegate { ...@@ -40,7 +40,11 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
//3.其他第三方sdk设置 //3.其他第三方sdk设置
thirdSetting() thirdSetting()
//4.本地用户信息加载
YHLoginManager.shared.loadLocalUserInfoData()
// YHAnalytics.analyticsStart(launchOptions: launchOptions) // YHAnalytics.analyticsStart(launchOptions: launchOptions)
return true return true
} }
...@@ -91,7 +95,6 @@ extension AppDelegate { ...@@ -91,7 +95,6 @@ extension AppDelegate {
print("Ali Cloud login completed : /(dic) " ) print("Ali Cloud login completed : /(dic) " )
} }
} }
} }
......
...@@ -357,10 +357,11 @@ extension YHEducationDetailVC : UITableViewDelegate, UITableViewDataSource { ...@@ -357,10 +357,11 @@ extension YHEducationDetailVC : UITableViewDelegate, UITableViewDataSource {
} }
} else if detailItem.type == .degreeType { // 学位类型 } else if detailItem.type == .degreeType { // 学位类型
YHFormPickerView.show(type: .degreeCategory, selectType: .degreeCategory(.accountantOrFinance)) {
[weak self] selectType in YHSheetPickerView.show(type: .degreeCategory, selectTitle:"工程学") {
[weak self] selectItem in
guard let self = self else { return } guard let self = self else { return }
detailInfo.degreeType = selectType.title detailInfo.degreeType = selectItem.title
loadInfo() loadInfo()
if detailId != 0 { if detailId != 0 {
saveDetailInfo(isNeedPop: false) saveDetailInfo(isNeedPop: false)
......
...@@ -318,10 +318,14 @@ extension YHEducationInfoListVC : UITableViewDelegate, UITableViewDataSource { ...@@ -318,10 +318,14 @@ extension YHEducationInfoListVC : UITableViewDelegate, UITableViewDataSource {
cell.isShowDeleteBtn = (isDegreeEditMode == .canCancel) cell.isShowDeleteBtn = (isDegreeEditMode == .canCancel)
cell.detailLabel.textColor = (isNeedShowError && eduInfo.vacantNum > 0 ? .failColor : .labelTextColor2) cell.detailLabel.textColor = (isNeedShowError && eduInfo.vacantNum > 0 ? .failColor : .labelTextColor2)
cell.deleteBlock = { cell.deleteBlock = {
[weak self] in var title = "确定要删除该学历吗?"
guard let self = self else { return } YHTwoOptionAlertView.showAlertView(message:title) {
isDegreeEditMode = .none [weak self] sure in
deleteEducationInfo(id:eduInfo.id) guard let self = self else { return }
if !sure { return }
isDegreeEditMode = .none
deleteEducationInfo(id:eduInfo.id)
}
} }
return cell return cell
...@@ -339,10 +343,14 @@ extension YHEducationInfoListVC : UITableViewDelegate, UITableViewDataSource { ...@@ -339,10 +343,14 @@ extension YHEducationInfoListVC : UITableViewDelegate, UITableViewDataSource {
} }
cell.isShowDeleteBtn = (isDegreeEditMode == .canCancel) cell.isShowDeleteBtn = (isDegreeEditMode == .canCancel)
cell.deleteBlock = { cell.deleteBlock = {
[weak self] in var title = "确定要删除该学历吗?"
guard let self = self else { return } YHTwoOptionAlertView.showAlertView(message:title) {
isDegreeEditMode = .none [weak self] sure in
deleteEducationInfo(id:eduInfo.id) guard let self = self else { return }
if !sure { return }
isDegreeEditMode = .none
deleteEducationInfo(id:eduInfo.id)
}
} }
return cell return cell
} }
...@@ -366,10 +374,14 @@ extension YHEducationInfoListVC : UITableViewDelegate, UITableViewDataSource { ...@@ -366,10 +374,14 @@ extension YHEducationInfoListVC : UITableViewDelegate, UITableViewDataSource {
cell.detailLabel.textColor = (isNeedShowError && quaInfo.vacantNum > 0 ? .failColor : .labelTextColor2) cell.detailLabel.textColor = (isNeedShowError && quaInfo.vacantNum > 0 ? .failColor : .labelTextColor2)
cell.isShowDeleteBtn = (isQualificationEditMode == .canCancel) cell.isShowDeleteBtn = (isQualificationEditMode == .canCancel)
cell.deleteBlock = { cell.deleteBlock = {
[weak self] in var title = "确定要删除该证书吗?"
guard let self = self else { return } YHTwoOptionAlertView.showAlertView(message:title) {
isQualificationEditMode = .none [weak self] sure in
deleteQualificationInfo(id:quaInfo.id) guard let self = self else { return }
if !sure { return }
isQualificationEditMode = .none
deleteQualificationInfo(id:quaInfo.id)
}
} }
return cell return cell
} }
......
//
// YHSheetPickerViewType.swift
// galaxy
//
// Created by edy on 2024/2/22.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
enum YHSheetPickerViewType: Int {
// 按自然顺序递增
case none = 0
// 学位
case degree
// 学位有无
case ownDegree
// 婚姻
case marriage
// 授课形式
case edution
// 职业
case occupation
// 职业2
case profession
// 性别
case gender
// 证件
case certificate
// 在港身份
case identity
// 颁发地区
case degreeLocation
// 专业证书
case professionCertificate
// 学位类型
case degreeCategory
}
class YHSheetPickerViewItem {
var index:Int = -1
var title:String = ""
init(title: String, index: Int) {
self.title = title
self.index = index
}
}
...@@ -192,7 +192,7 @@ extension YHScorePersonInfoCell { ...@@ -192,7 +192,7 @@ extension YHScorePersonInfoCell {
return return
} }
nameLable.text = "DavidHuang for test"//model.user_info?.username ?? "-" nameLable.text = model.user_info?.username ?? "-"
phoneLable.text = model.user_info?.mobile ?? "-" phoneLable.text = model.user_info?.mobile ?? "-"
let score : String = String(model.total_score?.sum_score ?? 0) let score : String = String(model.total_score?.sum_score ?? 0)
......
...@@ -94,13 +94,20 @@ class YHCodeSueecssViewController: YHBaseViewController { ...@@ -94,13 +94,20 @@ class YHCodeSueecssViewController: YHBaseViewController {
let view = YHSmsCodeInputView(config: YHSmsCodeViewConfig()) let view = YHSmsCodeInputView(config: YHSmsCodeViewConfig())
view.complete = { [weak self] code in view.complete = { [weak self] code in
guard let self = self else { return } guard let self = self else { return }
self.viewModel?.login(self.phoneNumber ?? "", code: code, callBackBlock: {[weak self] success in
guard let self = self else { return } if let phone = self.phoneNumber {
YHLoginManager.shared.userModel = success self.viewModel?.login(phone : phone, code: code, callBackBlock: {[weak self] success,error in
if success?.token?.count != 0 { guard let self = self else { return }
self.dismiss(animated: true) if success == false {
} YHHUD.flash(message: "登录失败")
}) } else {
YHHUD.flash(message: "登录成功")
self.dismiss(animated: true)
}
})
} else {
printLog("errror : 电话号码为空")
}
} }
return view return view
}() }()
...@@ -183,9 +190,17 @@ class YHCodeSueecssViewController: YHBaseViewController { ...@@ -183,9 +190,17 @@ class YHCodeSueecssViewController: YHBaseViewController {
@objc func startClicked() { @objc func startClicked() {
viewModel?.getLoginCode(phoneNumber ?? "", callBackBlock: {[weak self] success in viewModel?.getLoginCode(phoneNumber ?? "", callBackBlock: {[weak self] success,error in
guard let self = self else { return } guard let self = self else { return }
self.startTime()
if success == true {
// YHHUD.flash(message: "验证码已下发,请注意查收")
self.startTime()
} else {
YHHUD.flash(message: "获取验证码失败,请重试~")
}
}) })
} }
......
...@@ -175,11 +175,18 @@ class YHPhoneLoginViewController: YHBaseViewController { ...@@ -175,11 +175,18 @@ class YHPhoneLoginViewController: YHBaseViewController {
return return
} }
if privacyView.isAgree { if privacyView.isAgree {
viewModel?.getLoginCode(phoneNumer, callBackBlock: {[weak self] success in viewModel?.getLoginCode(phoneNumer, callBackBlock: {[weak self] success,error in
guard let self = self else { return } guard let self = self else { return }
let vc = YHCodeSueecssViewController()
vc.phoneNumber = self.phoneMessageView.phoneTextField.text if success == true {
self.navigationController?.pushViewController(vc) YHHUD.flash(message: "验证码已下发,请注意查收")
let vc = YHCodeSueecssViewController()
vc.phoneNumber = self.phoneMessageView.phoneTextField.text
self.navigationController?.pushViewController(vc)
} else {
YHHUD.flash(message: "获取验证码失败,请重试~")
}
}) })
} else { } else {
let view = YHPrivacyAlertView(frame: view.bounds) let view = YHPrivacyAlertView(frame: view.bounds)
......
...@@ -16,9 +16,20 @@ class YHLoginManager: NSObject { ...@@ -16,9 +16,20 @@ class YHLoginManager: NSObject {
private override init() {} private override init() {}
func isLogin() -> Bool { func isLogin() -> Bool {
if userModel?.token?.count != 0 { let ttt = userModel?.token?.count ?? 0
if ttt != 0 {
return true return true
} }
return false return false
} }
func loadLocalUserInfoData() {
let dic = UserDefaults.standard.value(forKey: YhConstant.KLoginedInfoKey)
guard let resultModel = YHUserModel.deserialize(dict: dic as? [AnyHashable : Any]) else {
return
}
self.userModel = resultModel
}
} }
...@@ -45,7 +45,7 @@ class YHLoginPrivacyView: UIView { ...@@ -45,7 +45,7 @@ class YHLoginPrivacyView: UIView {
let label = UILabel() let label = UILabel()
label.text = "我已阅读并同意" label.text = "我已阅读并同意"
label.font = UIFont.PFSC_R(ofSize: 12) label.font = UIFont.PFSC_R(ofSize: 12)
label.textColor = UIColor.contentBkgColor label.textColor = UIColor.labelTextColor2
label.textAlignment = .left label.textAlignment = .left
return label return label
}() }()
...@@ -62,6 +62,7 @@ class YHLoginPrivacyView: UIView { ...@@ -62,6 +62,7 @@ class YHLoginPrivacyView: UIView {
button.contentHorizontalAlignment = .center button.contentHorizontalAlignment = .center
button.setTitle("《隐私协议》", for: .normal) button.setTitle("《隐私协议》", for: .normal)
button.setTitleColor(UIColor(hex: 0x2f7ef6), for: .normal) button.setTitleColor(UIColor(hex: 0x2f7ef6), for: .normal)
button.addTarget(self, action: #selector(firstUrlClick), for: .touchUpInside)
return button return button
}() }()
addSubview(serviceButton) addSubview(serviceButton)
...@@ -75,7 +76,7 @@ class YHLoginPrivacyView: UIView { ...@@ -75,7 +76,7 @@ class YHLoginPrivacyView: UIView {
let label = UILabel() let label = UILabel()
label.text = "和" label.text = "和"
label.font = UIFont.PFSC_R(ofSize: 12) label.font = UIFont.PFSC_R(ofSize: 12)
label.textColor = UIColor.contentBkgColor label.textColor = UIColor.labelTextColor2
label.textAlignment = .left label.textAlignment = .left
return label return label
}() }()
...@@ -91,6 +92,7 @@ class YHLoginPrivacyView: UIView { ...@@ -91,6 +92,7 @@ class YHLoginPrivacyView: UIView {
button.contentHorizontalAlignment = .center button.contentHorizontalAlignment = .center
button.setTitle("《用户条款》", for: .normal) button.setTitle("《用户条款》", for: .normal)
button.setTitleColor(UIColor(hex: 0x2f7ef6), for: .normal) button.setTitleColor(UIColor(hex: 0x2f7ef6), for: .normal)
button.addTarget(self, action: #selector(secondUrlClick), for: .touchUpInside)
return button return button
}() }()
addSubview(privacyButton) addSubview(privacyButton)
...@@ -106,4 +108,16 @@ class YHLoginPrivacyView: UIView { ...@@ -106,4 +108,16 @@ class YHLoginPrivacyView: UIView {
agreeButton.isSelected = !agreeButton.isSelected agreeButton.isSelected = !agreeButton.isSelected
isAgree = agreeButton.isSelected isAgree = agreeButton.isSelected
} }
@objc func firstUrlClick() {
let vc = YHWebViewViewController()
vc.url = url
UIViewController.current?.navigationController?.pushViewController(vc)
}
@objc func secondUrlClick() {
let vc = YHWebViewViewController()
vc.url = url
UIViewController.current?.navigationController?.pushViewController(vc)
}
} }
...@@ -19,22 +19,33 @@ class YHLoginViewModel: YHBaseViewModel { ...@@ -19,22 +19,33 @@ class YHLoginViewModel: YHBaseViewModel {
//接口 //接口
extension YHLoginViewModel { extension YHLoginViewModel {
//发送验证码 //发送验证码
func getLoginCode(_ phone: String, callBackBlock: @escaping (_ success: Bool)->()) { func getLoginCode(_ phone: String, callBackBlock: @escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let params: [String : Any] = ["type": "Phone", let params: [String : Any] = ["type": "Phone",
"value": phone] "value": phone,
"extend":"register"]
let strUrl = "http://test-cuser.galaxy-immi.com/" + "user/verify-code" let strUrl = "http://test-cuser.galaxy-immi.com/" + "user/verify-code"
let _ = YHNetRequest.postRequest(url: strUrl, params: params) {[weak self] json, code in let _ = YHNetRequest.postRequest(url: strUrl, params: params) {[weak self] json, code in
guard let self = self else { return } guard let self = self else { return }
guard let model = NetBaseModel.deserialize(dict: json) else {
let error : YHErrorModel = YHErrorModel(errorCode:YHErrorCode.dictParseError.rawValue,errorMsg: YHErrorCode.dictParseError.description())
callBackBlock( false,error)
return
}
//1. json字符串 转 对象 //1. json字符串 转 对象
if code == 200 { if model.code == 200 {
callBackBlock(true) callBackBlock(true,nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(model.code),errorMsg: model.msg)
callBackBlock(false,error)
} }
} failBlock: { err in } failBlock: { err in
callBackBlock(false) callBackBlock(false,err)
} }
} }
func login(_ phone: String, code: String,callBackBlock: @escaping (_ success: YHUserModel?)->()) { func login(phone: String, code: String,callBackBlock: @escaping (_ success: Bool,_ error: YHErrorModel?)->()) {
let params: [String : Any] = ["mobile": phone, let params: [String : Any] = ["mobile": phone,
"sms_code": code, "sms_code": code,
"channel": "app", "channel": "app",
...@@ -46,18 +57,35 @@ extension YHLoginViewModel { ...@@ -46,18 +57,35 @@ extension YHLoginViewModel {
guard let model = NetBaseModel.deserialize(dict: json) else { guard let model = NetBaseModel.deserialize(dict: json) else {
let error : YHErrorModel = YHErrorModel(errorCode:YHErrorCode.dictParseError.rawValue,errorMsg: YHErrorCode.dictParseError.description()) let error : YHErrorModel = YHErrorModel(errorCode:YHErrorCode.dictParseError.rawValue,errorMsg: YHErrorCode.dictParseError.description())
callBackBlock(nil) callBackBlock(false,error)
return return
} }
let dic = model.data?.peel let dic = model.data?.peel
guard let resultModel = YHUserModel.deserialize(dict: dic as? [AnyHashable : Any]) else { guard let resultModel = YHUserModel.deserialize(dict: dic as? [AnyHashable : Any]) else {
callBackBlock(nil) let error : YHErrorModel = YHErrorModel(errorCode:-1,errorMsg: "数据解析不成功")
callBackBlock(false,error)
return return
} }
self.userModel = resultModel
callBackBlock(resultModel) if resultModel.token?.count != 0 {
//token 正常
self.userModel = resultModel
YHLoginManager.shared.userModel = resultModel
//数据保存到本地
UserDefaults.standard.set(resultModel.toDictionary(), forKey: YhConstant.KLoginedInfoKey)
UserDefaults.standard.synchronize()
NotificationCenter.default.post(name: YhConstant.YhNotification.didLoginSuccessNotifiction, object: nil)
//回调
callBackBlock(true,nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:-2,errorMsg: "token 不合法")
callBackBlock(false,error)
}
} failBlock: { err in } failBlock: { err in
callBackBlock(nil) callBackBlock(false,err)
} }
} }
} }
...@@ -78,6 +78,8 @@ class YHMyViewController: YHBaseViewController, ConstraintRelatableTarget { ...@@ -78,6 +78,8 @@ class YHMyViewController: YHBaseViewController, ConstraintRelatableTarget {
tableView.snp.makeConstraints { make in tableView.snp.makeConstraints { make in
make.edges.equalTo(0) make.edges.equalTo(0)
} }
NotificationCenter.default.addObserver(self, selector: #selector(loginSuccess), name: YhConstant.YhNotification.didLoginSuccessNotifiction, object: nil)
} }
} }
...@@ -99,15 +101,16 @@ extension YHMyViewController : UITableViewDelegate, UITableViewDataSource { ...@@ -99,15 +101,16 @@ extension YHMyViewController : UITableViewDelegate, UITableViewDataSource {
} }
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if (indexPath.row >= items.count) { return } if (indexPath.row >= items.count) { return }
let vc = UINavigationController(rootVC: YHPhoneLoginViewController())
vc.modalPresentationStyle = .custom if YHLoginManager.shared.isLogin() == false {
self.navigationController?.present(vc, animated: true) let vc = UINavigationController(rootVC: YHPhoneLoginViewController())
// let vc = YHFamilyMemberFormVC(orderId: 133971) vc.modalPresentationStyle = .custom
// self.navigationController?.pushViewController(vc) self.navigationController?.present(vc, animated: true)
return } else {
YHHUD.flash(message: "已登录: 功能完善中...")
}
return //for test hjl
let item: PersonalModuleItem = items[indexPath.row]; let item: PersonalModuleItem = items[indexPath.row];
...@@ -134,9 +137,15 @@ extension YHMyViewController : UITableViewDelegate, UITableViewDataSource { ...@@ -134,9 +137,15 @@ extension YHMyViewController : UITableViewDelegate, UITableViewDataSource {
} else { } else {
let vc = YHLoginViewController() // let vc = YHLoginViewController()
self.navigationController?.pushViewController(vc) // self.navigationController?.pushViewController(vc)
} }
} }
} }
extension YHMyViewController {
@objc func loginSuccess() {
printLog("登录成功,进行相应的 UI刷新操作")
}
}
...@@ -159,6 +159,10 @@ class YhConstant { ...@@ -159,6 +159,10 @@ class YhConstant {
} }
extension YhConstant { extension YhConstant {
//登录后的用户信息
static let kLoginUserInfo = "loginUserInfo"
// MARK: - 友盟相关 // MARK: - 友盟相关
struct Wechat { struct Wechat {
static let appKey = "wx57b2a7469d15ff8f" static let appKey = "wx57b2a7469d15ff8f"
......
...@@ -93,13 +93,7 @@ class YHNetRequest: NSObject { ...@@ -93,13 +93,7 @@ class YHNetRequest: NSObject {
print("sign = \(sign)") print("sign = \(sign)")
requestHeader.add(name:"sign",value:sign) requestHeader.add(name:"sign",value:sign)
requestHeader.add(name: "token", value: YHLoginManager.shared.userModel?.token ?? "-")
//杜宇的账号
requestHeader.add(name: "token", value: "eyJpdiI6InhISTlXZjA2cXE5Z2pqMDZDa2NrTkE9PSIsInZhbHVlIjoiR3NkRVR0dVdjWE5GN2N3UmNiU0xobVYzZTR6SXlGXC9XVEhWV0xcL1F1YXVBOU9jRDlFZ2pOanBcL1RBMUVkUDlRQ2xhREx0c3dKeHNJQjMwaVVuYkloZHBiUXQzZkJlS2dTWDJrTE90K2FpM0FDWm10a3FFUGZpdW90TDNscStud0tSenRRV2kyV3JVbEZ6eXppUHZ5ajFQMXpBejh0YUZ4Z0VPZkwwdEtwXC9mNjh4bWQySGpSS2pzVkJ1Y3ZrbGFKdGVsMkhkRXJrTlRHbzkxcVdkcE1yWXRja2xDRHVmRUhhdU9ybkJmXC9VRVJnY2RXeVpXMzZVc2h2eUsxYVRmSXR0QXB1WjVsaDBLTllVOEtKWUhSTE5yNXFvYWlaQzdQSWZ0T0V2VTZwTFJjb25OZGdYbE1lNHZOZ0ZWcWhWWkhnUm8rWGJqSE1Jdm1DY3hlWVliY2F0YkplZFwvQ0pMMndtdHFBQUF0MjJYTFNZYk14Tzh0d0g1K2c2M1U2bXFZY3JUbXptbEhCSXR5R3hFZ0JHNmpXTHgzeTJvc0Z2UXpENk5LOTlBN0VjWE8rNmYzTklBN3d0YVVPb2VyS0lNK3FINUZlTmR6UTlBdENuZEtDKzE3emwxMGxvaEc1Sm1mc0E3Y251cU5xcjd4ZzdSbHNNQ2xoRUc4VUJTR24zQ1lRSE5VRGtUd0s0ZTljSlRxRmdwMFVqY0RsMjQwcm1SaVdSN29lNjYrd1JDSlwvSUtiSWpneFpuR2VzeUFBbzNBUUh2MnNVTFZ5bXVLTGVLNFM5TjdzdXpaM1ZFRDdvRUVlRFF0QUY4d2pXcmF4NkFwMGVodXRVUFlxVGhVRmVpYlwvRUJFT05idFhyeXp4TUtcLzN0MlVcL3ZIc2dWSncxaW55TDVUVXFIWjZZMUdHakJKVnpzRkxGeE52RWdLaW9WT0tCb3pTQW1xelNwaTRaQmtGeEpITjVEUU44Q3VGSnBGdzdOcFRyTE9sYmFTT3RrMDJYU3l0XC9PcVJ1OXo2MUpJdm5XSHZFZ0lIMGh5OGR2TEJkNTZjVHFKM1hSYnVEbm9vVFU1VUUzcmRDZ3JhZWRYQWZ1cU9aajVKMHdOMGpxczBSVU5GejNrNzk3bnVBa210dFdCblVBaUs5Y0VIWmxCdE04UlV6T2NEN3ZTN2E0MEhRYmlCNGk3V2xZN1R2ZUM4cVVZZ1Rlb1BndmFcL2phemNnbEhKb05QeHhxa1BldFFqK2ErcWZmYWs1RnNPWEpNK0x4MFo4MTU4OEttZTNxeDMrcCtkNUVwSUd4b1krOXRFdU1UNVFxZyszXC9Lb21TSG5hSFI2OVRVWmxIRm9UcTRlU2kyNWF6K1pQR3lMK1MyS0FvQ2ZFaTViTmdybm1xQ1BscVMzM2tjeUFCQVlvZFdPMTJTb2ttZDl2Q3BuTXVvTnJkUDRpa0g5cE4rWlRcL1l2MWdNdmY0MFVsMFArWWYzWVNmMW5oUnkwWk1mTVc3WUluU3dyQUM4TTZBbHJac0lOMDNiYVhVWks2TCs3QnN0VDlOXC9xaEwyUEtmblVmOXpcL3hoekQ1K3JKWVozVWxrdElKbTdWTHpaMnk2bXFQQ0VJalR1TVpIc1d4bmJjVVIwdTR1VXY1M1wvMEJMODVTWkNreVpCVmh3MWRDeERROGh5YnVsMkVKV2poMFwvYnZHakMycHJmQjUycDQ3b3laUUlTSjdmaDdFMnFtTHhIN1RvUnhhcUhCWXkybkhoMlFwZUVtM0VPUVZrcXp3S0lLMFwvOUtvZnhibE1ZUnp0bGVkcGdqTlp0dGV0cGhCa3hjUmxZXC96SWRFXC83OWxEUnRma1MyYnZqWGhMN0lSM0x2Z0NCTWxIR0pUYjByWDN4Y3JCT3JLTzFzUWkzS3NYTDVDZVJ3MmhEbXlXSENqYWc9PSIsIm1hYyI6Ijc1YmU5YTE4ZGEwNzExZGJlZWQ0MzZhNGVkNWE1NGMzYmE1YWFjNjBhYTgxYjFlYjUyN2M1Yzc4ZjkwNTcyNmMifQ==")
//明杰的账号
// requestHeader.add(name: "token", value: "eyJpdiI6InM0a3dcL1hQYUtPOENKOXNJYzRoMHJnPT0iLCJ2YWx1ZSI6Ik12dW9PUWI2SGRIZDF1cGVrREZ0b2tyd3ZLeUJkVXp5am9vRWhhYVVNRnRyT0FNNWdlNW9cL1BpMFBSS1RKd3B6Y2dyaVM0aHV0NXlIcXJkc1MxdG11d3hMZ3RsZHJ4aGNiRnZLZDJ0Q0NSYndUMUNuODRaYW1lQk1KZ0FqTFFVbTZ1TllMTGdtY1dlV0ZkRm5TeW9Vc1FYY09ZMFMrbGo4TmRnZ0syOWRhUFFRbjBjWDFDKzEwQWxLWjExNWJ5R3VxRGNEbWN0K0Z6Z1VieFIrMmdSbTZ6dU9CZGdFcDJlTktPMTY2cHYyeGhKVXpSNVhxT0VTQjRCa05OTE9aalQzWVFPczRpS1lldk16Zk9BUmZYbnRybDVoVXdRZWM3V1BUV3J0NkIxRHBCT3JDd1czQ0Q3YjU4cnVxVE5Lb0ZnbnlmMWN1RU9ocnU1ZE5pUmVDS21CbmhWTDdxTmYrRCtNNHZLQzdNXC9Bb0lRWXdNcE5HNW5ielwvWGtCZmpKNlNHWW9MaE94TXNSOURlemVSSkNkUXVveFJkUHVWbFIyeXNVZFJ3K0pXNElUWVhLSXpvUGNQek1cLzRBc3BaRE1lUVdKSENCS0FJdjFyeUVBSnNXeTZcL0RNajJIeFF0QUdndzBWRllOQ2R5UzZMK3lqdFZTanRxbXhmeGFrRVRJOE95enA1cUl0VzVjUytpVnBkRTFXMm9uQytobG1vWTlRQWhvNGN4THdRSTUyS0tub29xK25VZkNIb1FVOEh6YktGbjgzdjQ0NlA1cVc0aWNqYWp6OElSb3Vlb0ZPWmVzdVRLQW5SejVJa09kUDIrZW5jbmVtTzYyOFwvQnRTV3ExZVFhOWh4XC9BbDUxaHNRSDlIXC96QThkVGlBcEVkOUZCelBIV21WVXZ0OFlQaWtsclFPOXJzOXFoeGc1QXcyeEgwU2NqcWxXb2g4aTJBK2tCZkxoNjBTU1VrNDEwWWxVUW50STcyMFwvQjlCU2lxc3RSRGFOemdJTDN5NGRhN1RLSHVXVlFVRHdWN1dIVGppTVFNZEkzMWU4ckpXZ1lcL3BKRENnZGpuR0ZaTlpBVFowMVRWc1dpOFEzcERUY3RjXC9nUGYrTkxLdkFGSlc3b0dSUWVuQkRVR2tzZVN2UDFEdCtKNnNMMHNQZnJaT0tGV293OHMxXC9WZ1V5Z0dmM1VLeFM5QVdvVGVcL2IrS0Y3M0Zya0tQbXl6ZTNkWm00V1hZUUdiY3p5UVwvZWthUVlkNGV6cVlNaDMwazJNS0FoejlLT3FlZlBzWklnWkRZclhwUmFqTzk1VWF2eHJ1c1pqYzI2eThqOEJVZDZIbUt1dE81VjZoM0xiWm1NOVBrcjlhM1djOUJvb3VLTjJ2VTJvMzd3MHA1cmRuSWxTMGgzclYrUHF0NnFRN1BPSE4rM1ZTWWF5VlBTWE56aTV0U3Y5M0NrcDNBYVFHTTJvOUsyR1Y4S2k3N05CZUFDMk4xUVwvVWZKSUdiMjdmOXIxSXZjSTdvaGhMSHFISk12N2xDdlRrZUloaVBMS0cyMkVrclhcL3loenQ1MTF2V0lORDZyVmZMaytiWVJyMnk4SzhDRktQSFRQR1FoTFpQZHBzUllRbUUza3NaXC9lMXFSSFZud05JTWo1UkVTTXZjZmZucUF3Mzh2OVpkT2QyaVQ2VXRFVHltRW1MQjlzaHh1Ym02YW1LRUphSVNUeEltMWN5WGxRdlgzSE96V0ErbDdldnQ0ZkRjdGxsQVVpRFZCdnlMSnVrSW5aS3BrT3FRbDh0NWR0TWoxdjNMb3ZUVEJwbkVMbzJjeHRibGJJTGlMOHhSU0tNaTk5VHJxSk9xanRIOTMreVVmZm5lXC82SThIXC9iVXFudW9VOVd1S1RNYlwvbzF5b2V0bDVtRWNkalBTdkVVRGFPVlE9PSIsIm1hYyI6IjNkOTZlZDhiOTVlNmUxZmVlMzZmNDIyYmMzYTc4N2Y2ZmE0ZTI3MGI2YjQxZGVkZGRmMTY0N2IyOGZiM2RhNjYifQ==")
headers = requestHeader headers = requestHeader
} }
...@@ -146,7 +140,7 @@ class YHNetRequest: NSObject { ...@@ -146,7 +140,7 @@ class YHNetRequest: NSObject {
///不使用缓存 ///不使用缓存
AF.sessionConfiguration.requestCachePolicy = .reloadIgnoringCacheData AF.sessionConfiguration.requestCachePolicy = .reloadIgnoringCacheData
AF.sessionConfiguration.timeoutIntervalForRequest = 20 AF.sessionConfiguration.timeoutIntervalForRequest = 20
let encoding = (self.requestType == .get ? URLEncoding(destination: .queryString) : JSONEncoding()) as ParameterEncoding let encoding = (self.requestType == .get ? URLEncoding(destination: .queryString) : JSONEncoding()) as ParameterEncoding
httpRequest = AF.request(self.url!, method: self.requestType,parameters: self.params, encoding:encoding, headers: requestHeaders, interceptor: nil, requestModifier: nil) httpRequest = AF.request(self.url!, method: self.requestType,parameters: self.params, encoding:encoding, headers: requestHeaders, interceptor: nil, requestModifier: nil)
......
...@@ -2,6 +2,11 @@ ...@@ -2,6 +2,11 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
<key>NSCameraUsageDescription</key> <key>NSCameraUsageDescription</key>
<string>cameraDesciption</string> <string>cameraDesciption</string>
<key>NSPhotoLibraryUsageDescription</key> <key>NSPhotoLibraryUsageDescription</key>
......
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