//
|
// MatchDetailVC.swift
|
// WanPai
|
//
|
// Created by 无故事王国 on 2024/2/29.
|
//
|
|
import UIKit
|
import JQTools
|
import HandyJSON
|
|
class MatchDetailVC: BaseVC {
|
|
@IBOutlet weak var view_red1: UIView!
|
@IBOutlet weak var view_red1Img: UIImageView!
|
@IBOutlet weak var view_red2: UIView!
|
@IBOutlet weak var view_red2Img: UIImageView!
|
@IBOutlet weak var view_red3: UIView!
|
@IBOutlet weak var view_red3Img: UIImageView!
|
|
@IBOutlet weak var view_blue1: UIView!
|
@IBOutlet weak var view_blue1Img: UIImageView!
|
@IBOutlet weak var view_blue2: UIView!
|
@IBOutlet weak var view_blue2Img: UIImageView!
|
@IBOutlet weak var view_blue3: UIView!
|
@IBOutlet weak var view_blue3Img: UIImageView!
|
|
@IBOutlet weak var view_device: UIView!
|
@IBOutlet weak var label_deviceTitle: UILabel!
|
@IBOutlet weak var label_matchPoint: UILabel!
|
@IBOutlet weak var label_mathYard: UILabel!
|
|
@IBOutlet weak var redStackView: UIStackView!
|
@IBOutlet weak var blueStackView: UIStackView!
|
@IBOutlet weak var btn_handle: UIButton!
|
|
private var redTeamItems = [WorldCupPeopleModel]()
|
private var blueTeamItems = [WorldCupPeopleModel]()
|
private var model:WorldCupJudgeModel!
|
private var deviceModel:ActivityDetailStoreModel?
|
private var deviceQRCode:String?
|
|
required init(model:WorldCupJudgeModel) {
|
super.init(nibName: nil, bundle: nil)
|
self.model = model
|
}
|
|
required init?(coder: NSCoder) {
|
fatalError("init(coder:) has not been implemented")
|
}
|
|
override func viewDidLoad() {
|
super.viewDidLoad()
|
title = model.name
|
view.backgroundColor = .white
|
}
|
|
override func setUI() {
|
view_red1.isHidden = true
|
view_red2.isHidden = true
|
view_red3.isHidden = true
|
|
view_blue1.isHidden = true
|
view_blue2.isHidden = true
|
view_blue3.isHidden = true
|
|
label_deviceTitle.isHidden = true
|
label_matchPoint.isHidden = true
|
label_mathYard.isHidden = true
|
}
|
|
@IBAction func addRedTeam(_ sender: UIButton) {
|
|
guard redTeamItems.count < 3 else {
|
alert(msg: "红队已满员");return
|
}
|
|
let scan = CommonScanQRCodeVC {[weak self] text, status in
|
guard let weakSelf = self else { return }
|
if status{
|
if let _ = WorldCupUserInfoQRCodel.deserialize(from: text){
|
Services.getWorldCupPeople(code: text, worldCupId: weakSelf.model.id).subscribe(onNext: {data in
|
if let model = data.data{
|
if weakSelf.checkMutable(model: model){
|
weakSelf.redTeamItems.append(model)
|
weakSelf.updateUserView()
|
}
|
}
|
}).disposed(by: weakSelf.disposeBag)
|
}else{
|
alert(msg: "无效二维码")
|
}
|
}
|
}
|
present(scan, animated: true)
|
}
|
|
@IBAction func addBlueTeam(_ sender: UIButton) {
|
guard blueTeamItems.count < 3 else {
|
alert(msg: "蓝队已满员");return
|
}
|
|
let scan = CommonScanQRCodeVC {[weak self] text, status in
|
guard let weakSelf = self else { return }
|
if status{
|
if let _ = WorldCupUserInfoQRCodel.deserialize(from: text){
|
Services.getWorldCupPeople(code: text, worldCupId: weakSelf.model.id).subscribe(onNext: {data in
|
if let model = data.data{
|
if weakSelf.checkMutable(model: model){
|
weakSelf.blueTeamItems.append(model)
|
weakSelf.updateUserView()
|
}
|
}
|
}).disposed(by: weakSelf.disposeBag)
|
}else{
|
alert(msg: "无效二维码")
|
}
|
}
|
}
|
present(scan, animated: true)
|
}
|
|
@IBAction func deleRedUserAction(_ sender: UIButton) {
|
let index = sender.tag - 10
|
|
if index > redTeamItems.count{
|
redTeamItems.removeLast()
|
}else if redTeamItems.count == 1{
|
redTeamItems.removeAll()
|
}else{
|
redTeamItems.remove(at: index)
|
}
|
if index == 0{
|
view_red1.isHidden = true
|
}
|
if index == 1{
|
view_red2.isHidden = true
|
}
|
if index == 2{
|
view_red3.isHidden = true
|
}
|
|
}
|
|
@IBAction func deleBlueUserAction(_ sender: UIButton) {
|
let index = sender.tag - 20
|
if index > blueTeamItems.count{
|
blueTeamItems.removeLast()
|
}else if redTeamItems.count == 1{
|
blueTeamItems.removeAll()
|
}else{
|
blueTeamItems.remove(at: index)
|
}
|
if index == 0{
|
view_blue1.isHidden = true
|
}
|
if index == 1{
|
view_blue2.isHidden = true
|
}
|
if index == 2{
|
view_blue3.isHidden = true
|
}
|
}
|
|
private func updateUserView(){
|
|
view_red1.isHidden = true
|
view_red2.isHidden = true
|
view_red3.isHidden = true
|
view_blue1.isHidden = true
|
view_blue2.isHidden = true
|
view_blue3.isHidden = true
|
|
for (index,item) in redTeamItems.enumerated() {
|
if index == 0{
|
view_red1.isHidden = false
|
view_red1Img.sd_setImage(with: URL(string: item.avatar))
|
}
|
if index == 1{
|
view_red2.isHidden = false
|
view_red2Img.sd_setImage(with: URL(string: item.avatar))
|
}
|
|
if index == 2{
|
view_red3.isHidden = false
|
view_red3Img.sd_setImage(with: URL(string: item.avatar))
|
}
|
}
|
|
for (index,item) in blueTeamItems.enumerated() {
|
if index == 0{
|
view_blue1.isHidden = false
|
view_blue1Img.sd_setImage(with: URL(string: item.avatar))
|
}
|
if index == 1{
|
view_blue2.isHidden = false
|
view_blue2Img.sd_setImage(with: URL(string: item.avatar))
|
}
|
|
if index == 2{
|
view_blue3.isHidden = false
|
view_blue3Img.sd_setImage(with: URL(string: item.avatar))
|
}
|
}
|
|
btn_handle.isSelected = deviceModel != nil
|
}
|
|
private func checkMutable(model:WorldCupPeopleModel)->Bool{
|
let red = redTeamItems.contains(where: {$0.id == model.id})
|
let blue = blueTeamItems.contains(where: {$0.id == model.id})
|
|
if red{
|
alert(msg: "红队已存在")
|
return false
|
}
|
|
if blue{
|
alert(msg: "蓝队已存在")
|
return false
|
}
|
return true
|
}
|
|
@IBAction func handleAction(_ sender: UIButton) {
|
|
if deviceModel != nil{
|
guard redTeamItems.count == 3 else{alert(msg: "红队人数不足");return}
|
guard blueTeamItems.count == 3 else{alert(msg: "蓝队人数不足");return}
|
guard let devCode = deviceQRCode else{alert(msg: "请扫描设备二维码");return}
|
|
struct TempModel:HandyJSON{
|
var id = 0
|
var participantType = 0
|
var type = ""
|
}
|
|
var tempArray = [Dictionary<String,Any>]()
|
|
for red in redTeamItems {
|
tempArray.append(TempModel(id: red.id, participantType: red.participantType, type: "red").toJSON()!)
|
}
|
|
for blue in blueTeamItems {
|
tempArray.append(TempModel(id: blue.id, participantType: blue.participantType, type: "blue").toJSON()!)
|
}
|
|
CommonAlertView.show(title: "提示", content: "确认开启当前比赛吗?",cancelStr: "关闭") {[weak self] status in
|
guard let weakSelf = self else { return }
|
if status{
|
Services.startWorldCup(code: devCode, people: tempArray.jq_toJson1(), worldCupId: weakSelf.model.id).subscribe(onNext: {data in
|
if let _ = data.data{
|
alert(msg: "比赛开始")
|
sender.isSelected = true
|
weakSelf.redTeamItems.removeAll()
|
weakSelf.blueTeamItems.removeAll()
|
weakSelf.updateUserView()
|
}
|
}).disposed(by: weakSelf.disposeBag)
|
}
|
}
|
|
|
}else{
|
let scan = CommonScanQRCodeVC {[weak self] text, status in
|
guard let weakSelf = self else { return }
|
if status{
|
Services.getDeviceInformation(text: text).subscribe(onNext: {data in
|
if let model = data.data{
|
sender.isSelected = true
|
weakSelf.deviceQRCode = text
|
weakSelf.label_deviceTitle.isHidden = false
|
weakSelf.label_matchPoint.isHidden = false
|
weakSelf.label_mathYard.isHidden = false
|
weakSelf.label_matchPoint.text = "所属赛点:" + model.name
|
weakSelf.label_mathYard.text = "所属场地:" + model.address
|
weakSelf.deviceModel = model
|
}
|
}).disposed(by: weakSelf.disposeBag)
|
}
|
}
|
present(scan, animated: true)
|
}
|
}
|
|
}
|