57 lines
1.7 KiB
Swift
57 lines
1.7 KiB
Swift
//
|
||
// MPPositive_LoadSearchResultsViewModel.swift
|
||
// MusicPlayer
|
||
//
|
||
// Created by Mr.Zhou on 2024/5/13.
|
||
//
|
||
|
||
import UIKit
|
||
///搜索结果数据管理模型
|
||
class MPPositive_SearchResultsLoadViewModel: NSObject {
|
||
///模块组
|
||
var sectionLists:[MPPositive_SearchResultListViewModel]!{
|
||
didSet{
|
||
DispatchQueue.main.async {
|
||
[weak self] in
|
||
guard let self = self else {return}
|
||
//得到了搜索结果
|
||
if let block = resultReloadBlock {
|
||
block()
|
||
}
|
||
}
|
||
}
|
||
}
|
||
var resultReloadBlock:(() -> Void)?
|
||
//用户输入的搜索文本
|
||
init(_ text:String){
|
||
super.init()
|
||
getSearchResults(text)
|
||
}
|
||
//根据用户输入文本内容请求搜索接口
|
||
private func getSearchResults(_ text:String) {
|
||
MP_HUD.loading()
|
||
|
||
//判断是否重复搜索历史
|
||
MPPositive_SearchTagModel.fetch(predicate: .init(format: "text==%@", text)) { results in
|
||
if results.count == 0 {
|
||
//不是重复搜索
|
||
//同时新增一个搜索历史
|
||
let tag = MPPositive_SearchTagModel.create()
|
||
tag.date = Date()
|
||
tag.text = text
|
||
MPPositive_SearchTagModel.save()
|
||
}else if let first = results.first {
|
||
//是同一个,更改日期
|
||
first.date = Date()
|
||
MPPositive_SearchTagModel.save()
|
||
}
|
||
|
||
}
|
||
MP_NetWorkManager.shared.requestSearchPreviewResults(text) { [weak self] results in
|
||
guard let self = self else {return}
|
||
MP_HUD.hideNow()
|
||
sectionLists = results
|
||
}
|
||
}
|
||
}
|