Files
yingmeng-ios-switf/yinmeng-ios/Modules/Star/PlanetStarVC.swift
eggmanQQQ 157b67e5e0 1. 优化首页语言的播放效果
2. 优化首页收藏行为后,收藏列表的更新效果
3. 修复充值时的 crash
2024-07-17 15:38:37 +08:00

185 lines
7.9 KiB
Swift
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// PlanetStarVC.swift
// yinmeng-ios
//
// Created by yinmeng on 2024/2/25.
//
import UIKit
import NIMSDK
import Nuke
class PlanetStarVC: BaseViewController,HiddenNavigationBarProtocol {
var page:Int = 1
override func viewDidLoad() {
super.viewDidLoad()
yin_initUI()
requestData()
}
func requestData(){
RequestGet(path: "home/recommendUsers", parma: ["pageNum":"\(self.page)","pageSize":"60"]) { data in
if let list = Deserialized<PlanetStarModel>.toArray(with: data) {
var dataList:[PlanetStarModel] = []
guard list.isEmpty else {
for i in 0..<12 {
if i < list.count{
dataList.append(list[i])
}
}
self.dataArray = dataList
self.dealWithViewData()
return
}
self.page = 1
}
} fail: { code, data in
}
RequestGet(path: "special/gift/get", parma: [:]) { data in
if let model = Deserialized<PlanetStarModel>.toModel(with: data) {
self.giftModel = model
}
} fail: { code, data in
}
}
func dealWithViewData(){
self.bgRadiusView.dataList = dataArray
}
private func yin_initUI(){
view.addSubview(backgroundView)
view.addSubview(bgRadiusView)
bgRadiusView.frame = self.view.frame
activityView.center = self.view.center
activityView.startAnimating()
backgroundView.snp.makeConstraints { make in
make.edges.equalTo(self.view)
}
bgRadiusView.refreshBlcok = {[weak self] (uid,type,name) in
if type == 0{
self?.page = (self?.page ?? 1) + 1
self?.requestData()
}else if type == 1{
guard let _uid = uid else {return}
let session = NIMSession.init(_uid, type: .P2P)
let chatVC = ChatVC.init(session: session)
self?.navigationController?.pushViewController(chatVC, animated: true)
}else{
guard let _uid = uid else {return}
let giftName = self?.giftModel?.giftName ?? ""
let giftNum = self?.giftModel?.goldPrice ?? "0"
let text = "确认赠送 \(giftName)\(giftNum)钻石)给\(name)"
guard UserDefaults.standard.value(forKey: "kIsShowPopUp") == nil else{
RequestGet(path: "special/gift/get", parma: ["targetId":_uid]) { data in
self?.activityView.removeFromSuperview()
if let _ = Deserialized<PlanetStarModel>.toModel(with: data) {
HUDTool.show(with: "送礼成功")
let imageView = UIImageView(frame: CGRect(x: ScreenWidth/2-50, y: -100, width: 0, height: 0))
Nuke.loadImage(with: self?.giftModel?.picUrl ?? "", into: imageView)
self?.view.addSubview(imageView)
UIView.animate(withDuration: 2) {
imageView.frame = CGRect(x: ScreenWidth/2-50, y: ScreenHeight/3 * 2, width: 100, height: 100)
}completion: { isC in
DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
UIView.animate(withDuration: 1) {
let x = self?.bgRadiusView.imageView.frame.origin.x ?? 0
let y = self?.bgRadiusView.imageView.frame.origin.y ?? 0
imageView.frame = CGRect(x: x + 50, y: y + 50, width: 10, height: 10)
}completion: { isC in
imageView.removeFromSuperview()
}
}
}
}
} fail: { code, data in
self?.activityView.removeFromSuperview()
if code == 31005{
self?.showPayVC()
}
}
return
}
let popUpView = PlanetStarPopUpView.init(frame: CGRect(x: 0, y: 0, width: ScreenWidth, height: ScreenHeight))
self?.view.addSubview(popUpView)
popUpView.textView.text = text
popUpView.clickSendBlcok = {[weak self] in
self?.view.addSubview(self!.activityView)
RequestGet(path: "special/gift/get", parma: ["targetId":_uid]) { data in
self?.activityView.removeFromSuperview()
if let _ = Deserialized<PlanetStarModel>.toModel(with: data) {
HUDTool.show(with: "送礼成功")
let imageView = UIImageView(frame: CGRect(x: ScreenWidth/2-50, y: -100, width: 0, height: 0))
Nuke.loadImage(with: self?.giftModel?.picUrl ?? "", into: imageView)
self?.view.addSubview(imageView)
UIView.animate(withDuration: 2) {
imageView.frame = CGRect(x: ScreenWidth/2-50, y: ScreenHeight/3 * 2, width: 100, height: 100)
}completion: { isC in
DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
UIView.animate(withDuration: 1) {
let x = self?.bgRadiusView.imageView.frame.origin.x ?? 0
let y = self?.bgRadiusView.imageView.frame.origin.y ?? 0
imageView.frame = CGRect(x: x + 50, y: y + 50, width: 10, height: 10)
}completion: { isC in
imageView.removeFromSuperview()
}
}
}
}
} fail: { code, data in
self?.activityView.removeFromSuperview()
if code == 31005{
self?.showPayVC()
}
}
}
}
}
}
func showPayVC(){
let popUpView = PlanetStarPopUpView.init(frame: CGRect(x: 0, y: 0, width: ScreenWidth, height: ScreenHeight))
self.view.addSubview(popUpView)
popUpView.textView.text = "钻石余额不足"
popUpView.senderView.setTitle("去充值", for: .normal)
popUpView.bgPointView.isHidden = true
popUpView.pointTextView.isHidden = true
popUpView.clickSendBlcok = {[weak self] in
let vc = UserPayViewController()
self?.navigationController?.pushViewController(vc, animated: true)
}
}
let activityView:UIActivityIndicatorView = UIActivityIndicatorView(style: .medium)
var giftModel:PlanetStarModel?
private lazy var backgroundView:UIImageView = {
let _backgroundView = UIImageView()
_backgroundView.image = UIImage(named: "yin_plane_star_bg")
_backgroundView.isUserInteractionEnabled = true
return _backgroundView
}()
private var bgRadiusView:PlanetStarClickItemView = {
let _bgRadiusView = PlanetStarClickItemView.init(frame: CGRect(x: 0, y: 0, width: ScreenWidth , height: ScreenHeight))
_bgRadiusView.isUserInteractionEnabled = true
return _bgRadiusView
}()
private var dataArray:[PlanetStarModel] = []
}