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

发布动态调整

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