CNLiveDigitalAuthController.swift 12.6 KB
//
//  CNLiveDigitalAuthController.swift
//  metaCode
//
//  Created by zx on 2024/4/29.
//  数字认证页面-选择身份

import Foundation
import SnapKit

class CNLiveDigitalAuthController:CNLiveBaseViewController,UITableViewDataSource, UITableViewDelegate{
    
    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 whiteTopView :UIView = {
        let whiteTopView = UIView()
        whiteTopView.backgroundColor = HexColor("#E8EFFE")
        whiteTopView.clipsToBounds = true
        return whiteTopView
    }()
    lazy var changeLabel: UILabel = {
        let changeLabel = UILabel()
        changeLabel.textColor = HexColor("#333333")
        changeLabel.text = "请选择您本人当前真实身份"
        changeLabel.font = Font_16
        return changeLabel
    }()
    
    lazy var dataArray :NSMutableArray = {
        let dataArray = NSMutableArray()
        return dataArray
    }()
    let kCNLiveDigitalAuthCellIdentifier = "kCNLiveDuanjuTitleCellIdentifier"

    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(CNLiveDigitalAuthCell.self, forCellReuseIdentifier: kCNLiveDigitalAuthCellIdentifier)
        return tableView
    }()
    var currentSeleIndex = 0
    var currentSeleCollectionIndex = 0
    
    lazy var chengnuoLabel: UILabel = {
        let changeLabel = UILabel()
        changeLabel.textColor = HexColor("#999999")
        changeLabel.text = "您承诺信息真实,元码将记录该次承诺"
        changeLabel.font = Font_12
        changeLabel.textAlignment = .center
        return changeLabel
    }()
    lazy var xuanzeLabel: 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 channelId:String = "0"
    var vsid:String = ""
    var sid:String = ""
    init(channelId: String, vsid: String, sid: String) {
        super.init(nibName: nil, bundle: nil)
        self.channelId = channelId
        self.vsid = vsid
        self.sid = sid
    }
    
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        navigationBarHidden = false
        titleName = "元码数字认证"
        self.initUI()
        self.getAuthenticationsApi(channelId: self.channelId, vsid: self.vsid, sid: self.sid)
    }
    
    deinit {
        
    }
    
    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.whiteTopView)
        self.whiteTopView.snp.makeConstraints { make in
            make.height.equalTo(53)
            make.top.left.right.equalToSuperview()
        }

        self.whiteTopView.addSubview(self.changeLabel)
        self.changeLabel.snp.makeConstraints { make in
            make.centerY.equalToSuperview()
            make.height.equalTo(23)
            make.left.equalTo(20)
            make.right.equalToSuperview().offset(-20)
        }
        
        self.whiteBgView.addSubview(self.tableView)
        self.tableView.snp.makeConstraints { make in
            make.top.equalTo(53)
            make.left.equalTo(0)
            make.width.equalToSuperview()
            make.bottom.equalTo(self.whiteBgView.snp.bottom).offset(-110)
        }
        self.whiteBgView.addSubview(self.nextBtn)
        self.nextBtn.snp.makeConstraints { make in
            make.bottom.equalToSuperview().offset(-15)
            make.height.equalTo(44)
            make.left.equalTo(15)
            make.right.equalToSuperview().offset(-15)
        }
        
        self.whiteBgView.addSubview(self.xuanzeLabel)
        self.xuanzeLabel.snp.makeConstraints { make in
            make.bottom.equalTo(self.nextBtn.snp.top).offset(-10)
            make.height.equalTo(17)
            make.left.equalTo(10)
            make.right.equalToSuperview().offset(-10)
        }
        
        self.whiteBgView.addSubview(self.chengnuoLabel)
        self.chengnuoLabel.snp.makeConstraints { make in
            make.bottom.equalTo(self.xuanzeLabel.snp.top).offset(-5)
            make.height.equalTo(17)
            make.left.equalTo(10)
            make.right.equalToSuperview().offset(-10)
        }

    }
    
    func numberOfSections(in tableView: UITableView) -> Int {
        1
    }
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return self.dataArray.count
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        guard let cell = tableView.dequeueReusableCell(withIdentifier: kCNLiveDigitalAuthCellIdentifier) as? CNLiveDigitalAuthCell
        else {
            let cell = CNLiveDigitalAuthCell()
            return cell
        }
        if self.currentSeleIndex == indexPath.row{
            cell.tblCellIsSelect = true
        }else{
            cell.tblCellIsSelect = false
        }
        let model = self.dataArray[indexPath.row] as! MineAuthenticationsChildModel
        cell.childModel = model
        cell.selectBlock = {[weak self] currCell,identitiesId in
            if let idxPath = self?.tableView.indexPath(for: currCell){
                self!.currentSeleIndex = idxPath.row
                self!.currentSeleCollectionIndex = currCell.currentSeleIndex
                self!.channelId = identitiesId
                self!.tableView.reloadData()
            }
        }
        return cell
    }
    
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    }
    
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 160
    }
    
    
    @objc func nextBtnAction(){
        if let model = self.dataArray[self.currentSeleIndex] as? MineAuthenticationsChildModel{
            let collModel = model.identities[self.currentSeleCollectionIndex]
            if collModel.userAuth == 0{//正在审核
                showMessage(message: "您已认证过该身份,不能重复认证")
                return 
            }else if collModel.userAuth == 1{//审核成功
                //进入身份认证页面
                
            }else if collModel.userAuth == -1{//审核失败
                
            }
        }

        if UserInfoManager.shared.userInfo.userMsgUsers?.verifyUsers.count ?? 0 > 0{
            //实名认证过->身份管理页面
            
            //身份管理页面->身份认证页面            
            let listModel = StandListModel()
            listModel.id = Int(self.channelId) ?? 0
            listModel.name = ""
            self.navigationController?.pushViewController(CNLiveMineInputViewController.init(listModel: listModel, authType: .person), animated: pushAnimated)

        }else{
            //未实名认证->实名认证
            let vc = CNLiveRealNameAuthController()
            vc.channelId = self.channelId
            vc.vsid = self.vsid
            vc.sid = self.sid
            self.navigationController?.pushViewController(vc, animated: true)
        }
    }
    
    //行业认证列表
    func getAuthenticationsApi(channelId:String ,vsid:String,sid:String)
    {
        showLoading(message: "")
        CNLiveMineViewModel.requestsIndustryInfo(channelId: channelId, sid: sid, vsid: vsid) { result, respStatue in
            if respStatue == .success{//UserInfoManager.shared.userInfo.uid   vsid  "1342671"  "2"
                if let res = result as? [MineAuthenticationsChildModel]{
                    //添加每个MineAuthenticationsBaseModel到self.dataArray对应的 频道列表model里
                    if res.count > 0{
                        //所有二级行业
                        var totalTwoChildsArr = Array<MineAuthenticationsChildModel>()
                        res.forEach { twoChildModels in
                            twoChildModels.child.forEach { twoChildModel in
                                totalTwoChildsArr.append(twoChildModel)
                            }
                        }
                        self.dataArray = NSMutableArray(array: totalTwoChildsArr)
                        self.tableView.reloadData()
                    }else{
                        
                    }
                }
            }else{

            }
        }
    }
    
    func setDataUI(){
        var lieNum = 0//列
        var hangNum = 0//行
        let padding = adapt_length(length: 55)//水平方向
        let topMargin = self.changeLabel.bottom + adapt_length(length: 15.5)
        let btnPadding = adapt_length(length: 30)//垂直方向
        let W = (KSreenWidth - 30 - 3*adapt_length(length: 55))/2
        let H = W*136/90.0
        
        for str in self.dataArray {
            let iconBtn = UIButton(frame: CGRect(x: padding+CGFloat(lieNum)*(padding+W), y: topMargin+CGFloat(hangNum)*(btnPadding+H), width: W, height: H))
            iconBtn.setupButtonImageAndTitlePossitionWith(padding: 10, style: .top)
            iconBtn.setTitle(str as? String, for: .normal)
            iconBtn.setTitleColor(HexColor("#1F64E3"), for: .normal)
            iconBtn.setTitleColor(HexColor("#333333"), for: .selected)
            iconBtn.setImage(UIImage(named: ""), for: .normal)
            iconBtn.setImage(UIImage(named: ""), for: .selected)
            iconBtn.backgroundColor = .red
            self.whiteBgView.addSubview(iconBtn)
            
            iconBtn.snp.makeConstraints { make in
                make.left.equalTo(padding+CGFloat(lieNum)*(padding+W))
                make.top.equalTo(self.changeLabel.snp.bottom).offset(adapt_length(length: 15.5)+CGFloat(hangNum)*(btnPadding+H))
                make.width.equalTo(W)
                make.height.equalTo(H)
            }
            
            lieNum = lieNum + 1
            if lieNum == 2{
                hangNum = hangNum + 1
                lieNum = 0
            }
        }
    }
}