Commit 7c33db01 authored by David黄金龙's avatar David黄金龙

1、首页缓存

2、修改提示
parent 0b9718a9
...@@ -36,8 +36,8 @@ class YHBaseViewModel { ...@@ -36,8 +36,8 @@ class YHBaseViewModel {
// } // }
if YHNetworkStatusManager.shared.isNetWorkOK == false { if YHNetworkStatusManager.shared.isNetWorkOK == false {
DispatchQueue.main.async { DispatchQueue.main.async {
YHHUD.flash(message: "网络异常") YHHUD.flash(message: "网络不可用,请检查网络设置")
let errorModel = YHErrorModel(errorCode: 0, errorMsg: "网络异常") let errorModel = YHErrorModel(errorCode: 0, errorMsg: "网络不可用,请检查网络设置")
callBackBlock(nil, errorModel) callBackBlock(nil, errorModel)
return return
} }
...@@ -72,8 +72,8 @@ class YHBaseViewModel { ...@@ -72,8 +72,8 @@ class YHBaseViewModel {
// } // }
if YHNetworkStatusManager.shared.isNetWorkOK == false { if YHNetworkStatusManager.shared.isNetWorkOK == false {
DispatchQueue.main.async { DispatchQueue.main.async {
YHHUD.flash(message: "网络异常") YHHUD.flash(message: "网络不可用,请检查网络设置")
let errorModel = YHErrorModel(errorCode: 0, errorMsg: "网络异常") let errorModel = YHErrorModel(errorCode: 0, errorMsg: "网络不可用,请检查网络设置")
callBackBlock(nil, errorModel) callBackBlock(nil, errorModel)
return return
} }
...@@ -130,8 +130,8 @@ class YHBaseViewModel { ...@@ -130,8 +130,8 @@ class YHBaseViewModel {
// } // }
if YHNetworkStatusManager.shared.isNetWorkOK == false { if YHNetworkStatusManager.shared.isNetWorkOK == false {
DispatchQueue.main.async { DispatchQueue.main.async {
YHHUD.flash(message: "网络异常") YHHUD.flash(message: "网络不可用,请检查网络设置")
let errorModel = YHErrorModel(errorCode: 0, errorMsg: "网络异常") let errorModel = YHErrorModel(errorCode: 0, errorMsg: "网络不可用,请检查网络设置")
callBackBlock(nil, errorModel) callBackBlock(nil, errorModel)
return return
} }
......
...@@ -42,6 +42,12 @@ class YHHomePageViewController: YHBaseViewController { ...@@ -42,6 +42,12 @@ class YHHomePageViewController: YHBaseViewController {
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
setupUI() setupUI()
//1、加载默认数据
homeHeaderView.homeBannerView.dataArr = getCacheDataForBanner()
getCacheDataForHomeNewsData()
//2、请求新的数据
getData() getData()
} }
...@@ -118,12 +124,12 @@ private extension YHHomePageViewController { ...@@ -118,12 +124,12 @@ private extension YHHomePageViewController {
} }
func getData() { func getData() {
homeHeaderView.homeBannerView.dataArr = getLastBannerData()
loadFirstData() loadFirstData()
getHomeBannerData() getHomeBannerData()
} }
func getLastBannerData()->[YHBannerModel] { //获取缓存的 banner数据
func getCacheDataForBanner() -> [YHBannerModel] {
let arrString2 = UserDefaults.standard.value(forKey: "homeBannerData") let arrString2 = UserDefaults.standard.value(forKey: "homeBannerData")
if let tmp = arrString2 as? String,let dic = tmp.toArray() { if let tmp = arrString2 as? String,let dic = tmp.toArray() {
guard let result = [YHBannerModel].deserialize(from: dic as? [Any]) else { guard let result = [YHBannerModel].deserialize(from: dic as? [Any]) else {
...@@ -146,12 +152,40 @@ private extension YHHomePageViewController { ...@@ -146,12 +152,40 @@ private extension YHHomePageViewController {
return [YHBannerModel.localDefaultItem()] return [YHBannerModel.localDefaultItem()]
} }
//获取缓存的 第一页page数据
func getCacheDataForHomeNewsData() {
let arrString2 = UserDefaults.standard.value(forKey: "homeFirstPageNewsData")
if let tmp = arrString2 as? String,let dic = tmp.toArray() {
guard let result = [YHHomeListModel].deserialize(from: dic) else {
return
}
if self.viewModel.hasMoreForHomeNews == false {
self.homeCollectView.es.noticeNoMoreData()
self.homeCollectView.footer?.alpha = 1
}
if let arrData = result as? [YHHomeListModel] {
for item in arrData {
item.calHeightParam()
}
self.viewModel.arrHomeNewsData = arrData
self.homeCollectView.reloadData()
}
}
}
func getHomeBannerData() { func getHomeBannerData() {
DispatchQueue.global().async { DispatchQueue.global().async {
self.viewModel.getHomeBanner(0) {[weak self] success, error in self.viewModel.getHomeBanner(0) {[weak self] success, error in
guard let self = self else { return } guard let self = self else { return }
DispatchQueue.main.async { DispatchQueue.main.async {
self.homeHeaderView.homeBannerView.dataArr = self.viewModel.banners ?? self.getLastBannerData() self.homeHeaderView.homeBannerView.dataArr = self.viewModel.banners ?? self.getCacheDataForBanner()
if let arrB = self.viewModel.banners,arrB.count > 0 { if let arrB = self.viewModel.banners,arrB.count > 0 {
let arrString = arrB.toJSONString() let arrString = arrB.toJSONString()
UserDefaults.standard.set(arrString, forKey: "homeBannerData") UserDefaults.standard.set(arrString, forKey: "homeBannerData")
...@@ -186,6 +220,12 @@ private extension YHHomePageViewController { ...@@ -186,6 +220,12 @@ private extension YHHomePageViewController {
self.viewModel.getHomeNewsList(firstPageFlag : true) {[weak self] success, error in self.viewModel.getHomeNewsList(firstPageFlag : true) {[weak self] success, error in
guard let self = self else { return } guard let self = self else { return }
if let arrB = self.viewModel.arrHomeNewsData,arrB.count > 0 {
let arrString = arrB.toJSONString()
UserDefaults.standard.set(arrString, forKey: "homeFirstPageNewsData")
UserDefaults.standard.synchronize()
}
DispatchQueue.main.asyncAfter(deadline: .now()+0.5, execute: { DispatchQueue.main.asyncAfter(deadline: .now()+0.5, execute: {
self.homeCollectView.es.stopPullToRefresh() self.homeCollectView.es.stopPullToRefresh()
}) })
......
...@@ -47,7 +47,7 @@ extension YHHomePageViewModel { ...@@ -47,7 +47,7 @@ extension YHHomePageViewModel {
} }
/* /*
firstPageFlag true - 首 false - 更多 firstPageFlag true - 首 false - 更多
*/ */
func getHomeNewsList(firstPageFlag : Bool,callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) { func getHomeNewsList(firstPageFlag : Bool,callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
var params: [String : Any] = ["page": curPageIndex, var params: [String : Any] = ["page": curPageIndex,
...@@ -99,12 +99,12 @@ extension YHHomePageViewModel { ...@@ -99,12 +99,12 @@ extension YHHomePageViewModel {
callBackBlock(true, nil) callBackBlock(true, nil)
} else { } else {
self.arrHomeNewsData = [] // self.arrHomeNewsData = []
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg) let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error) callBackBlock(false, error)
} }
} failBlock: { err in } failBlock: { err in
// self.arrHomeNewsData = []
callBackBlock(false,err) callBackBlock(false,err)
} }
} }
...@@ -205,7 +205,7 @@ extension YHHomePageViewModel { ...@@ -205,7 +205,7 @@ extension YHHomePageViewModel {
if json.code == 200 { if json.code == 200 {
let dic = json.data let dic = json.data
guard let result = YHHomeListTotalModel.deserialize(from: dic as? Dictionary) else { guard let result = YHHomeListTotalModel.deserialize(from: dic as? Dictionary) else {
self.arrHomeNewsData = [] // self.arrHomeNewsData = []
callBackBlock(false,nil) callBackBlock(false,nil)
return return
} }
...@@ -233,7 +233,7 @@ extension YHHomePageViewModel { ...@@ -233,7 +233,7 @@ extension YHHomePageViewModel {
callBackBlock(true, nil) callBackBlock(true, nil)
} else { } else {
self.arrHomeNewsData = [] // self.arrHomeNewsData = []
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg) let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error) callBackBlock(false, error)
} }
......
...@@ -154,9 +154,9 @@ class YHNetRequest: NSObject { ...@@ -154,9 +154,9 @@ class YHNetRequest: NSObject {
func startRequest() -> Request? { func startRequest() -> Request? {
if YHNetworkStatusManager.shared.isNetWorkOK == false { if YHNetworkStatusManager.shared.isNetWorkOK == false {
DispatchQueue.main.async { DispatchQueue.main.async {
YHHUD.flash(message: "网络异常") YHHUD.flash(message: "网络不可用,请检查网络设置")
guard let errorBlock = self.failure else { return } guard let errorBlock = self.failure else { return }
let errorModel = YHErrorModel(errorCode: 0, errorMsg: "网络异常") let errorModel = YHErrorModel(errorCode: 0, errorMsg: "网络不可用,请检查网络设置")
errorBlock(errorModel) errorBlock(errorModel)
return return
} }
...@@ -192,9 +192,9 @@ class YHNetRequest: NSObject { ...@@ -192,9 +192,9 @@ class YHNetRequest: NSObject {
func uploadRequest(_ headers: HTTPHeaders,_ image: UIImage) -> Request? { func uploadRequest(_ headers: HTTPHeaders,_ image: UIImage) -> Request? {
if YHNetworkStatusManager.shared.isNetWorkOK == false { if YHNetworkStatusManager.shared.isNetWorkOK == false {
DispatchQueue.main.async { DispatchQueue.main.async {
YHHUD.flash(message: "网络异常") YHHUD.flash(message: "网络不可用,请检查网络设置")
guard let errorBlock = self.failure else { return } guard let errorBlock = self.failure else { return }
let errorModel = YHErrorModel(errorCode: 0, errorMsg: "网络异常") let errorModel = YHErrorModel(errorCode: 0, errorMsg: "网络不可用,请检查网络设置")
errorBlock(errorModel) errorBlock(errorModel)
return return
} }
...@@ -232,9 +232,9 @@ class YHNetRequest: NSObject { ...@@ -232,9 +232,9 @@ class YHNetRequest: NSObject {
func uploadFileRequest(_ headers: HTTPHeaders, _ url: String) -> Request? { func uploadFileRequest(_ headers: HTTPHeaders, _ url: String) -> Request? {
if YHNetworkStatusManager.shared.isNetWorkOK == false { if YHNetworkStatusManager.shared.isNetWorkOK == false {
DispatchQueue.main.async { DispatchQueue.main.async {
YHHUD.flash(message: "网络异常") YHHUD.flash(message: "网络不可用,请检查网络设置")
guard let errorBlock = self.failure else { return } guard let errorBlock = self.failure else { return }
let errorModel = YHErrorModel(errorCode: 0, errorMsg: "网络异常") let errorModel = YHErrorModel(errorCode: 0, errorMsg: "网络不可用,请检查网络设置")
errorBlock(errorModel) errorBlock(errorModel)
return return
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment