Commit 5d75db48 authored by Steven杜宇's avatar Steven杜宇

Merge branch 'dev_1013' of http://gitlab.galaxy-immi.com/mobile-group/galaxy-iOS into dev_1013

parents bdfddd18 4bebd8ee
......@@ -160,9 +160,19 @@ class YHCirclePublishViewController: YHBaseViewController {
return view
}()
init(currentUser: UserInfo? = nil, id: String? = nil) {
init(currentUser: UserInfo? = nil, id: String? = nil, mediaItems: [YHSelectMediaItem]? = nil, title: String? = nil, content: String? = nil) {
self.currentUser = currentUser
self.circleId = id
if let mediaItems = mediaItems {
self.mediaItems = mediaItems
}
if let title = title {
//
}
if let content = content {
//
}
super.init(nibName: nil, bundle: nil)
}
......@@ -329,6 +339,7 @@ class YHCirclePublishViewController: YHBaseViewController {
}
@objc private func publishButtonTapped() {
view.endEditing(true)
guard hasContent() else {
YHHUD.flash(message: "请至少添加一张图片")
return
......@@ -372,17 +383,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 +609,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)
}
}
}
......@@ -12,6 +12,7 @@ class YHSelectMediaItem {
var name: String
var type: YHMediaType
var image: UIImage?
var imageURL: URL?
var videoURL: URL?
var duration: TimeInterval?
......@@ -27,10 +28,11 @@ class YHSelectMediaItem {
case failed // 上传失败
}
init(name: String = "", type: YHMediaType = .image, image: UIImage? = nil, videoURL: URL? = nil, duration: TimeInterval? = nil) {
init(name: String = "", type: YHMediaType = .image, image: UIImage? = nil, imageURL: URL? = nil, videoURL: URL? = nil, duration: TimeInterval? = nil) {
self.name = name
self.type = type
self.image = image
self.imageURL = imageURL
self.videoURL = videoURL
self.duration = duration
}
......
......@@ -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