CNLiveRealNameAuthController.swift 13.6 KB
//
//  CNLiveRealNameAuthController.swift
//  metaCode
//
//  Created by zx on 2024/6/7.
//  实名认证页面

import Foundation
import SnapKit
import QMUIKit

class CNLiveRealNameAuthController:CNLiveBaseViewController,UITableViewDataSource,UITableViewDelegate{
    
    var channelId:String = "0"
    var isResume:Bool = false//是否跳转到数字简历页面
    var vsid:String = ""
    var sid:String = ""
    
    lazy var bgImgView :UIImageView = {
        let iconImgView = UIImageView()
        iconImgView.image = UIImage(named: "auth_blueBg")
        return iconImgView
    }()
    
    lazy var yuanmaLabel: UILabel = {
        let titleLabel = UILabel()
        titleLabel.textColor = .white
        titleLabel.text = "元码数字认证"
        titleLabel.font = Font_24
        titleLabel.adjustsFontSizeToFitWidth=true
        return titleLabel
    }()

    lazy var yuanmaDescLabel: UILabel = {
        let titleLabel = UILabel()
        titleLabel.textColor = .white
        titleLabel.text = "真我,连接世界\n实名认证,让信任搭建沟通的桥梁"
        titleLabel.numberOfLines = 2
        titleLabel.font = Font_13
        return titleLabel
    }()
    
    lazy var whiteBgView :UIView = {
        let whiteBgView = UIView()
        whiteBgView.backgroundColor = .white
        whiteBgView.layer.cornerRadius = 12
        whiteBgView.clipsToBounds = true
        return whiteBgView
    }()
    
    lazy var whiteTopBgView :UIImageView = {
        let whiteBgView = UIImageView()
        whiteBgView.image = UIImage(named: "realName_bg")
        return whiteBgView
    }()
    lazy var whiteTopBgZGWView :UIImageView = {
        let whiteBgView = UIImageView()
        whiteBgView.image = UIImage(named: "realName_zgw")
        return whiteBgView
    }()
    lazy var whiteTopBgSFZView :UIImageView = {
        let whiteBgView = UIImageView()
        whiteBgView.image = UIImage(named: "realName_jumin")
        return whiteBgView
    }()
    lazy var tishiDescLabel: UILabel = {
        let titleLabel = UILabel()
        titleLabel.textColor = HexColor("#748DC1")
        titleLabel.text = "公安部推出的法定身份证件,由中国网元码根据国家相关法律法规要求,由特定行政机关签发,请放心使用"
        titleLabel.numberOfLines = 2
        titleLabel.font = Font_12
        titleLabel.adjustsFontSizeToFitWidth = true
        return titleLabel
    }()
    
    lazy var dataArray :NSMutableArray = {
        let dataArray = NSMutableArray()
        return dataArray
    }()
    let kCNLiveRealNameCellIdentifier = "kCNLiveRealNameCellIdentifier"
    lazy var tableView : UITableView = {
        let tableView = UITableView(frame: .zero, style: .plain)
        tableView.dataSource = self
        tableView.delegate = self
        tableView.separatorStyle = .none
        tableView.tableFooterView = UIView.init()
        tableView.register(CNLiveRealNameCell.self, forCellReuseIdentifier: kCNLiveRealNameCellIdentifier)
        return tableView
    }()
    
    lazy var xinxiLabel: UILabel = {
        let changeLabel = UILabel()
        changeLabel.textColor = HexColor("#999999")
        changeLabel.text = "中国网元码保障您的信息安全备份"
        changeLabel.font = Font_12
        changeLabel.textAlignment = .center
        return changeLabel
    }()
    lazy var nextBtn: UIButton = {
        let  nextBtn = UIButton(type: .custom)
        nextBtn.setTitle("下一步", for: .normal)
        nextBtn.setTitleColor(.white, for: .normal)
        nextBtn.backgroundColor = HexColor("#1961FE")
        nextBtn.layer.cornerRadius = 22
        nextBtn.clipsToBounds = true
        nextBtn.addTarget(self, action: #selector(nextBtnAction), for: .touchUpInside)
        return nextBtn
    }()

    var nameTextStr:String = ""
    var numberTextStr:String = ""

    override func viewDidLoad() {
        super.viewDidLoad()
        navigationBarHidden = false
        titleName = "元码数字认证"
        self.initUI()
    }
    
    func initUI(){
        self.view.backgroundColor = .white
        self.view.addSubview(self.bgImgView)
        self.bgImgView.snp.makeConstraints { make in
            make.top.equalTo(KNavigationHeight)
            make.left.right.equalToSuperview()
            make.height.equalTo(KSreenWidth*457/375)
        }
        
        self.view.addSubview(self.yuanmaLabel)
        self.yuanmaLabel.snp.makeConstraints { make in
            make.top.equalTo(KNavigationHeight+adapt_length(length: 45))
            make.left.equalTo(adapt_length(length: 30))
        }
        
        self.view.addSubview(self.yuanmaDescLabel)
        self.yuanmaDescLabel.snp.makeConstraints { make in
            make.top.equalTo(self.yuanmaLabel.snp.bottom).offset(adapt_length(length: 10))
            make.left.equalTo(adapt_length(length: 30))
        }
        
        self.view.addSubview(self.whiteBgView)
        self.whiteBgView.snp.makeConstraints { make in
            make.top.equalTo(self.yuanmaDescLabel.snp.bottom).offset(adapt_length(length: 31))
            make.bottom.equalToSuperview()
            make.left.equalTo(15)
            make.right.equalToSuperview().offset(-15)
        }
        
        self.whiteBgView.addSubview(self.whiteTopBgView)
        self.whiteTopBgView.snp.makeConstraints { make in
            make.centerX.equalToSuperview()
            make.top.equalToSuperview()
            make.width.equalTo(KSreenWidth*235/375)
            make.height.equalTo(KSreenWidth*45/375)
        }
        
        self.whiteTopBgView.addSubview(self.whiteTopBgZGWView)
        self.whiteTopBgZGWView.snp.makeConstraints { make in
            make.left.equalTo(KSreenWidth*44.5/375)
            make.centerY.equalToSuperview()
            make.width.equalTo(KSreenWidth*40.5/375)
            make.height.equalTo(KSreenWidth*30/375)
        }
        
        self.whiteTopBgView.addSubview(self.whiteTopBgSFZView)
        self.whiteTopBgSFZView.snp.makeConstraints { make in
            make.right.equalToSuperview().offset(-KSreenWidth*44.5/375)
            make.centerY.equalToSuperview()
            make.width.equalTo(KSreenWidth*84.5/375)
            make.height.equalTo(KSreenWidth*25.5/375)
        }
        self.whiteBgView.addSubview(self.tishiDescLabel)
        self.tishiDescLabel.snp.makeConstraints { make in
            make.top.equalTo(self.whiteTopBgView.snp.bottom).offset(10)
            make.left.equalTo(15)
            make.right.equalToSuperview().offset(-15)
            make.height.equalTo(33)
        }
        
        self.whiteBgView.addSubview(self.tableView)
        self.tableView.snp.makeConstraints { make in
            make.top.equalTo(self.tishiDescLabel.snp.bottom).offset(10)
            make.left.equalTo(15)
            make.right.equalToSuperview().offset(-15)
            make.height.equalTo(122*2+50)
        }
        self.whiteBgView.addSubview(self.xinxiLabel)
        self.xinxiLabel.snp.makeConstraints { make in
            make.bottom.equalToSuperview().offset(-30)
            make.height.equalTo(17)
            make.left.equalTo(10)
            make.right.equalToSuperview().offset(-10)
        }
        self.whiteBgView.addSubview(self.nextBtn)
        self.nextBtn.snp.makeConstraints { make in
            make.bottom.equalTo(self.xinxiLabel.snp.top).offset(-10)
            make.height.equalTo(44)
            make.left.equalTo(15)
            make.right.equalToSuperview().offset(-15)
        }
        
    }
    
    deinit {
        
    }
    
    @objc func nextBtnAction(){
        if self.nameTextStr.isEmpty{
            showMessage(message: "请输入姓名")
            return
        }
        if self.numberTextStr.isEmpty{
            showMessage(message: "请输入证件号码")
            return
        }
        if self.isResume == true{
            //进入数字简历页面
            let is_agree = UserDefaults.standard.bool(forKey: "is_agree_shuzijianlixieyi")
            if is_agree{
                //跳转数字简历页面
                let vc = CNLiveDigitalResumeController()
                self.navigationController?.pushViewController(vc, animated: true)
            }else{
                self.showXieyiAlert()
            }
        }else{
            //进入人脸识别页面
            let vc = CNLiveFaceAuthController()
            vc.realName = self.nameTextStr
            vc.realNumber = self.numberTextStr
            vc.channelId = self.channelId
            self.navigationController?.pushViewController(vc, animated: true)
        }
    }
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 3
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        guard let cell = tableView.dequeueReusableCell(withIdentifier: kCNLiveRealNameCellIdentifier) as? CNLiveRealNameCell
        else {
            let cell = CNLiveRealNameCell()
            return cell
        }
        cell.type = indexPath.row+100
        cell.tfTextUpdateBlock = { cell,type,textStr in
            if type == 10{
                self.nameTextStr = textStr
            }else if type == 11{
                self.numberTextStr = textStr
            }else{
                
            }
        }
        cell.tfReturnBlock = {
            self.view.endEditing(true)
        }
        return cell
    }
    
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        
    }
    
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 122
    }

    
    
    // MARK: - 数字简历协议
    let delegate = UIApplication.shared.delegate as! AppDelegate
    /// 未认证-inputType17时弹窗背景图
    lazy var alertBgImgView:UIImageView = {
        let alertBgImgView:UIImageView = UIImageView()
        alertBgImgView.tag = 20001
        alertBgImgView.isUserInteractionEnabled = true
        alertBgImgView.contentMode = .scaleAspectFit
        alertBgImgView.backgroundColor = .white
        return alertBgImgView
    }()
    lazy var agreeBtn: UIButton = {
        let  nextBtn = UIButton(type: .custom)
        nextBtn.width = 285
        nextBtn.height = 44
        nextBtn.setTitle("同意协议 领取一下", for: .normal)
        nextBtn.setTitleColor(.white, for: .normal)
        nextBtn.layer.cornerRadius = 22
        nextBtn.clipsToBounds = true
        nextBtn.addTarget(self, action: #selector(agreeBtnAction), for: .touchUpInside)
        nextBtn.backgroundColor = HexColor("#8E8BFB")
        // fillCode
        let bgLayer1 = CAGradientLayer()
        bgLayer1.colors = [UIColor(red: 0.1, green: 0.38, blue: 1, alpha: 1).cgColor, UIColor(red: 0.56, green: 0.55, blue: 0.98, alpha: 1).cgColor]
        bgLayer1.locations = [0, 1]
        bgLayer1.frame = nextBtn.bounds
        bgLayer1.startPoint = CGPoint(x: 0.5, y: 1)
        bgLayer1.endPoint = CGPoint(x: 0, y: 0)
        nextBtn.layer.addSublayer(bgLayer1)
        return nextBtn
    }()
    lazy var xieyiLabel: UILabel = {
        let label = UILabel()
        let attrString = NSMutableAttributedString(string: "查看《元码数字简历服务协议》")
        label.frame = CGRect(x: 0, y: 0, width: KSreenWidth, height: 20)
        let attr1: [NSAttributedString.Key : Any] = [.font: Font_14,.foregroundColor: HexColor("#20252A")!]
        attrString.addAttributes(attr1, range: NSRange(location: 0, length: 2))
        let attr: [NSAttributedString.Key : Any] = [.font: Font_14,.foregroundColor: HexColor("#1961FE")!]
        attrString.addAttributes(attr, range: NSRange(location: 2, length: attrString.length-2))
        label.attributedText = attrString
        label.textAlignment = .center
        label.isUserInteractionEnabled = true
        label.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(xieyiAction)))
        return label
    }()
    //弹出数字简历协议alert
    func showXieyiAlert(){
        delegate.window?.addSubview(self.alertBgImgView)
        alertBgImgView.snp.makeConstraints { make in
            make.centerX.equalToSuperview()
            make.centerY.equalToSuperview()
            make.width.equalToSuperview()
            make.height.equalToSuperview()
        }
        self.alertBgImgView.image = UIImage(named: "mine_jianli_xieyiBg")
        alertBgImgView.addSubview(self.agreeBtn)
        self.agreeBtn.snp.makeConstraints { make in
            make.bottom.equalToSuperview().offset(-50)
            make.width.equalTo(285)
            make.centerX.equalToSuperview()
            make.height.equalTo(44)
        }
        alertBgImgView.addSubview(self.xieyiLabel)
        self.xieyiLabel.snp.makeConstraints { make in
            make.bottom.equalTo(self.agreeBtn.snp.top).offset(-10)
            make.left.right.equalToSuperview()
            make.height.equalTo(20)
        }
    }
    @objc func xieyiAction(){
        //查看数字简历协议
        let webVC = CNWebViewController()
        webVC.url = URL(string: "https://wjj.ys1.cnliveimg.com/term/ymRlsbyhxxcjxy.html")
        self.navigationController?.pushViewController(webVC, animated: true)
        
        delegate.window?.subviews.forEach({ view in
            if view.tag >= 20000{
                view.isHidden = true
            }
        })
    }
    @objc func agreeBtnAction(){
        //同意协议按钮
        delegate.window?.subviews.forEach({ view in
            if view.tag >= 20000{
                view.removeFromSuperview()
            }
        })
        //本地存储已同意
        UserDefaults.standard.set(true,forKey: "is_agree_shuzijianlixieyi")

        //跳转数字简历页面
        let vc = CNLiveDigitalResumeController()
        self.navigationController?.pushViewController(vc, animated: true)
    }
    
}