//
|
// UpdatePhoneVC.swift
|
// XQMuse
|
//
|
// Created by 无故事王国 on 2024/8/13.
|
//
|
|
import UIKit
|
import AuthenticationServices
|
import QMUIKit
|
import JQTools
|
|
class UpdatePhoneVC: BaseVC {
|
private var credential:ASAuthorizationAppleIDCredential?
|
private var wechatInfoModel:WechatUserInfoModel?
|
private var firstAccessToken:String? //后端问题,要把上次的token带过来
|
@IBOutlet weak var tf_phone: QMUITextField!
|
@IBOutlet weak var tf_code: QMUITextField!
|
@IBOutlet weak var btn_code: UIButton!
|
@IBOutlet weak var btn_isRead: UIButton!
|
|
|
init(credential:ASAuthorizationAppleIDCredential? = nil,wechatInfoModel:WechatUserInfoModel? = nil,firstAccessToken:String?) {
|
super.init(nibName: nil, bundle: nil)
|
self.credential = credential
|
self.wechatInfoModel = wechatInfoModel
|
self.firstAccessToken = firstAccessToken
|
}
|
|
required init?(coder: NSCoder) {
|
fatalError("init(coder:) has not been implemented")
|
}
|
|
override func viewDidLoad() {
|
super.viewDidLoad()
|
title = "验证手机号"
|
}
|
|
@IBAction func isReadAction(_ sender: UIButton) {
|
btn_isRead.isSelected = !btn_isRead.isSelected
|
}
|
|
@IBAction func getCodeAction(_ sender: UIButton) {
|
view.endEditing(true)
|
guard tf_phone.text!.jq_isPhone else {
|
alertError(msg: "请输入正确的手机号");return
|
}
|
|
Services.sendCode(phone:tf_phone.text!,type: .threePlantform).subscribe(onNext: {data in
|
if data.code == 200{
|
sender.jq_openCountDown(60, defultTitle: "获取验证码") {
|
sender.titleLabel?.font = UIFont.systemFont(ofSize: 12)
|
sender.setTitleColor(.black.withAlphaComponent(0.3), for: .normal)
|
} completeClouse: {
|
sender.titleLabel?.font = UIFont.systemFont(ofSize: 14, weight: .medium)
|
sender.setTitleColor(UIColor(hexStr: "#96AD81"), for: .normal)
|
}
|
}
|
}).disposed(by: disposeBag)
|
}
|
|
@IBAction func userRegisterTreatyAction(_ sender: UIButton) {
|
let vc = LoginTreatyVC()
|
vc.topIndex = 0
|
vc.clickHandle {[unowned self] state in
|
self.btn_isRead.isSelected = state
|
}
|
vc.modalPresentationStyle = .custom
|
present(vc, animated: true)
|
}
|
|
@IBAction func userPrivateTreatyAction(_ sender: UIButton) {
|
let vc = LoginTreatyVC()
|
vc.topIndex = 1
|
vc.clickHandle {[unowned self] state in
|
self.btn_isRead.isSelected = state
|
}
|
vc.modalPresentationStyle = .custom
|
present(vc, animated: true)
|
}
|
|
@IBAction func loginAction(_ sender: UIButton) {
|
view.endEditing(true)
|
|
guard btn_isRead.isSelected else {
|
alertError(msg: "请先阅读并同意《用户注册协议》《用户隐私协议》");return
|
}
|
|
guard tf_phone.text!.jq_isPhone else {
|
alertError(msg: "请输入正确的手机号");return
|
}
|
|
guard tf_code.text!.count == 6 else {
|
alertError(msg: "请输入6位验证码");return
|
}
|
|
var threePlantformLoginType:ThreePlantformLoginType!
|
var formatName:String!
|
var unionId:String!
|
|
if credential != nil{
|
threePlantformLoginType = .apple
|
guard let credentialUser = credential?.user else {
|
alertError(msg: "Apple登录授权异常");return
|
}
|
|
formatName = String(format: "%@%@%@", credential?.fullName?.familyName ?? "",credential?.fullName?.middleName ?? "", credential?.fullName?.middleName ?? "")
|
|
unionId = credential!.user
|
}
|
|
if wechatInfoModel != nil{
|
threePlantformLoginType = .wechat
|
guard !(wechatInfoModel?.openid.isEmpty ?? true) else {
|
alertError(msg: "Apple登录授权异常");return
|
}
|
formatName = wechatInfoModel?.nickname ?? ""
|
unionId = wechatInfoModel!.openid
|
}
|
|
|
Services.confirmByApple(cellPhone: tf_phone.text!, captcha: tf_code.text!, loginType: threePlantformLoginType, wxOrAppleId: unionId,name: formatName, mail: credential!.email).subscribe(onNext: {data in
|
if var model = data.data{
|
model.loginByAppleToken = String(data: self.credential!.identityToken!, encoding: .utf8)
|
model.accessToken = model.accessToken
|
model.appleId = self.credential!.user
|
UserViewModel.saveLoginInfo(model)
|
|
Services.getUserInfo().subscribe(onNext: {data in
|
if let model = data.data{
|
UserViewModel.saveAvatarInfo(model)
|
sceneDelegate?.loginSuccess()
|
NotificationCenter.default.post(name: LoginDismiss_Noti, object: nil, userInfo: nil)
|
}
|
}).disposed(by: self.disposeBag)
|
}
|
}).disposed(by: disposeBag)
|
}
|
|
|
|
|
}
|