Commit ca53b00b authored by Alex朱枝文's avatar Alex朱枝文

发布动态调整

parent eaa52bbe
...@@ -329,6 +329,7 @@ class YHCirclePublishViewController: YHBaseViewController { ...@@ -329,6 +329,7 @@ class YHCirclePublishViewController: YHBaseViewController {
} }
@objc private func publishButtonTapped() { @objc private func publishButtonTapped() {
view.endEditing(true)
guard hasContent() else { guard hasContent() else {
YHHUD.flash(message: "请至少添加一张图片") YHHUD.flash(message: "请至少添加一张图片")
return return
...@@ -372,17 +373,46 @@ class YHCirclePublishViewController: YHBaseViewController { ...@@ -372,17 +373,46 @@ class YHCirclePublishViewController: YHBaseViewController {
let content = detailTextView.text ?? "" let content = detailTextView.text ?? ""
// 调用你的发布接口 // 调用你的发布接口
YHHUD.show(.progress(message: "发布中..."))
viewModel.publishCircle(title, content, resources: resources) { [weak self] success, error in viewModel.publishCircle(title, content, resources: resources) { [weak self] success, error in
guard let self = self else { return } guard let self = self else { return }
if success { YHHUD.hide()
self.completion?() if let success = success, !success.isEmpty {
self.dismiss(animated: true) // self.completion?()
self.dismiss(animated: true) { [weak self] in
guard let self = self else { return }
self.gotoCircleDetailPage(id: success)
}
} else { } else {
YHHUD.flash(message: error?.errorMsg ?? "发布失败") YHHUD.flash(message: error?.errorMsg ?? "发布失败")
} }
} }
} }
private func gotoCircleDetailPage(id: String) {
var url = YHBaseUrlManager.shared.businessH5Url() + "/community/activity/\(id)"
if YHLoginManager.shared.isLogin() {
let token = YHLoginManager.shared.h5Token
let urlHasParam = String.hasQueryParameters(urlString: url)
if urlHasParam {
url = url + "&param=" + token
} else {
url = url + "?param=" + token
}
}
var tUrl = url
if !url.contains("navigationH=") {
tUrl = url + "?navigationH=\(k_Height_NavigationtBarAndStatuBar)"
if url.contains("?") {
tUrl = url + "&navigationH=\(k_Height_NavigationtBarAndStatuBar)"
}
}
let vc = YHH5WebViewVC()
vc.url = tUrl
UIViewController.current?.navigationController?.pushViewController(vc)
}
// MARK: - Keyboard Handling // MARK: - Keyboard Handling
@objc private func keyboardWillShow(notification: NSNotification) { @objc private func keyboardWillShow(notification: NSNotification) {
guard let keyboardFrame = notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? CGRect, guard let keyboardFrame = notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? CGRect,
...@@ -569,19 +599,16 @@ extension YHCirclePublishViewController: UICollectionViewDataSource, UICollectio ...@@ -569,19 +599,16 @@ extension YHCirclePublishViewController: UICollectionViewDataSource, UICollectio
item.uploadState = .uploading item.uploadState = .uploading
viewModel.uploadImage(image, true) { [weak self, weak item] success, error in viewModel.uploadImage(image, true) { [weak item] success, error in
guard let self = self, let item = item else { return } guard let item = item else { return }
if let error = error {
item.uploadState = .failed
item.uploadError = error
printLog("上传失败: \(item.name), error: \(error)")
return
}
let imageUrl = (success ?? "").getCdnUrl() let imageUrl = (success ?? "").getCdnUrl()
guard !imageUrl.isEmpty else { guard !imageUrl.isEmpty else {
item.uploadState = .failed item.uploadState = .failed
if let error = error {
item.uploadError = error
printLog("上传失败: \(item.name), error: \(error)")
return
}
return return
} }
......
...@@ -109,13 +109,16 @@ private extension YHCircleViewController { ...@@ -109,13 +109,16 @@ private extension YHCircleViewController {
guard let self = self else { guard let self = self else {
return return
} }
DispatchQueue.global().async { DispatchQueue.global().async {
self.arr.removeAll() let tempArr = self.viewModel.dynamicArr
self.arr.append(contentsOf: (self.viewModel.dynamicArr)) for item in tempArr {
for item in self.arr {
item.calHeightParam() item.calHeightParam()
} }
DispatchQueue.main.async { DispatchQueue.main.async {
self.arr.removeAll()
self.arr.append(contentsOf: tempArr)
self.noDataView.isHidden = self.arr.count > 0 self.noDataView.isHidden = self.arr.count > 0
self.circleCollectView.reloadData() self.circleCollectView.reloadData()
self.circleCollectView.es.stopLoadingMore() self.circleCollectView.es.stopLoadingMore()
......
...@@ -22,6 +22,7 @@ class YHDynamicListModel: SmartCodable { ...@@ -22,6 +22,7 @@ class YHDynamicListModel: SmartCodable {
class YHResourceURLs: SmartCodable { class YHResourceURLs: SmartCodable {
var name: String = "" var name: String = ""
var url: String = "" var url: String = ""
// 1图片2视频
var type: Int = 0 var type: Int = 0
var width: String = "0" var width: String = "0"
var height: String = "0" var height: String = "0"
......
...@@ -109,7 +109,7 @@ extension YHDynamicViewModel { ...@@ -109,7 +109,7 @@ extension YHDynamicViewModel {
/// - content: 内容 /// - content: 内容
/// - resources:图片/视频数组 /// - resources:图片/视频数组
/// - callBackBlock: 回调 /// - callBackBlock: 回调
func publishCircle(_ title: String, _ content: String, resources: [YHResourceURLs], callBackBlock: @escaping (_ success: Bool, _ error: YHErrorModel?) -> Void) { func publishCircle(_ title: String, _ content: String, resources: [YHResourceURLs], callBackBlock: @escaping (_ success: String?, _ error: YHErrorModel?) -> Void) {
var params: [String: Any] = ["title": title, "content": content] var params: [String: Any] = ["title": title, "content": content]
params["resource_urls"] = resources.map { resource in params["resource_urls"] = resources.map { resource in
[ [
...@@ -124,13 +124,13 @@ extension YHDynamicViewModel { ...@@ -124,13 +124,13 @@ extension YHDynamicViewModel {
_ = YHNetRequest.postRequest(url: strUrl, params: params) { json, _ in _ = YHNetRequest.postRequest(url: strUrl, params: params) { json, _ in
if json.code == 200 { if json.code == 200 {
callBackBlock(true, nil) callBackBlock(json.data?.peel as? String, nil)
} else { } else {
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(nil, error)
} }
} failBlock: { err in } failBlock: { err in
callBackBlock(false, err) callBackBlock(nil, err)
} }
} }
} }
...@@ -97,12 +97,13 @@ class YHOSSManager: NSObject, URLSessionDelegate { ...@@ -97,12 +97,13 @@ class YHOSSManager: NSObject, URLSessionDelegate {
func putObject(image: UIImage, _ isPublic: Bool = false, callBackBlock: @escaping (_ success: String?, _ error: YHErrorModel?) -> Void) { func putObject(image: UIImage, _ isPublic: Bool = false, callBackBlock: @escaping (_ success: String?, _ error: YHErrorModel?) -> Void) {
let request = OSSPutObjectACLRequest() let request = OSSPutObjectACLRequest()
let size = picMaxSize let size = picMaxSize
guard let imageData = image.compressOriginalImage(size) else {
callBackBlock(nil, YHErrorModel())
return
}
DispatchQueue.global().async { DispatchQueue.global().async {
guard let imageData = image.compressOriginalImage(size) else {
DispatchQueue.main.async {
callBackBlock(nil, YHErrorModel())
}
return
}
request.uploadingData = imageData request.uploadingData = imageData
if isPublic { if isPublic {
...@@ -116,7 +117,7 @@ class YHOSSManager: NSObject, URLSessionDelegate { ...@@ -116,7 +117,7 @@ class YHOSSManager: NSObject, URLSessionDelegate {
let dateFormatter = DateFormatter() let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyyMMdd" dateFormatter.dateFormat = "yyyyMMdd"
let currentDateMMdd = dateFormatter.string(from: Date()) let currentDateMMdd = dateFormatter.string(from: Date())
self.fileName.append(name) // self.fileName.append(name)
if isPublic { if isPublic {
request.acl = "public-read-write" request.acl = "public-read-write"
request.objectKey = "5000000" + "/" + currentDateMMdd + "/" + "\(name)" request.objectKey = "5000000" + "/" + currentDateMMdd + "/" + "\(name)"
...@@ -138,19 +139,19 @@ class YHOSSManager: NSObject, URLSessionDelegate { ...@@ -138,19 +139,19 @@ class YHOSSManager: NSObject, URLSessionDelegate {
let result = t let result = t
if result.error != nil { if result.error != nil {
callBackBlock(nil, YHErrorModel()) callBackBlock(nil, YHErrorModel())
self.fileName.removeFirst() // self.fileName.removeFirst()
} else { } else {
let dateFormatter = DateFormatter() let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyyMMdd" dateFormatter.dateFormat = "yyyyMMdd"
let currentDateMMdd = dateFormatter.string(from: Date()) let currentDateMMdd = dateFormatter.string(from: Date())
var string = "" var string = ""
if isPublic { if isPublic {
string = "https://" + self.publicModel.bucket + "." + "oss-cn-shenzhen.aliyuncs.com/" + "5000000" + "/" + currentDateMMdd + "/" + "\(self.fileName.first ?? "")" string = "https://" + self.publicModel.bucket + "." + "oss-cn-shenzhen.aliyuncs.com/" + "5000000" + "/" + currentDateMMdd + "/" + "\(name)"
} else { } else {
string = "https://" + self.model.bucket + "." + "oss-cn-shenzhen.aliyuncs.com/" + "4001001" + "/" + currentDateMMdd + "/" + "\(self.fileName.first ?? "")" string = "https://" + self.model.bucket + "." + "oss-cn-shenzhen.aliyuncs.com/" + "4001001" + "/" + currentDateMMdd + "/" + "\(name)"
} }
callBackBlock(string.getPrivateUrl(), YHErrorModel()) callBackBlock(string.getPrivateUrl(), YHErrorModel())
self.fileName.removeFirst() // self.fileName.removeFirst()
} }
return return
}).waitUntilFinished() }).waitUntilFinished()
......
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