|
@@ -29,14 +29,9 @@ class PublishEditController: BaseViewController {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- var imgCount: Int = 0
|
|
|
var majorImageUrl: String?
|
|
|
var imageUrlArray: Array<String> = []
|
|
|
- var imageArr: Array<UIImage>? {
|
|
|
- didSet {
|
|
|
- imgCount = self.imageArr?.count ?? 0
|
|
|
- }
|
|
|
- }
|
|
|
+ var imageArr: Array<UIImage>?
|
|
|
|
|
|
// 选中的话题
|
|
|
var selTopicModelArr: Array<CommunityTopicDataModel> = []
|
|
@@ -54,7 +49,6 @@ class PublishEditController: BaseViewController {
|
|
|
var paraVideo: String = ""
|
|
|
|
|
|
var uploadManager: AlivcShortVideoUploadManager?
|
|
|
- var vUploadFinished: Bool?
|
|
|
|
|
|
// MARK: 控制器生命周期
|
|
|
override func viewDidLoad() {
|
|
@@ -64,32 +58,12 @@ class PublishEditController: BaseViewController {
|
|
|
|
|
|
// imageUrlArray每次进入页面需置空
|
|
|
imageUrlArray = []
|
|
|
- rightButton.isEnabled = false
|
|
|
- rightButton.backgroundColor = kd8d8d8Color
|
|
|
-
|
|
|
- if mediaType == .video {
|
|
|
- subLabel.text = "视频正在上传中(0/1)..."
|
|
|
- communityVideoUploadAuthApi()
|
|
|
- print("----上传视频")
|
|
|
- }
|
|
|
- if mediaType == .image {
|
|
|
- subLabel.text = "图片正在上传中(0/\(imageArr?.count ?? 0))..."
|
|
|
- uploadAllImages(totalTimes: 0)
|
|
|
- }
|
|
|
+// rightButton.backgroundColor = kd8d8d8Color
|
|
|
+ rightButton.backgroundColor = k62CC74Color
|
|
|
}
|
|
|
|
|
|
override func viewWillAppear(_ animated: Bool) {
|
|
|
|
|
|
-// let serialQueue = DispatchQueue(label: "serial_queue")
|
|
|
-// serialQueue.async {
|
|
|
-// print("----startUpLoad\n----\(Thread.current)")
|
|
|
-// self.uploadAllImages(totalTimes: 0)
|
|
|
-// }
|
|
|
-
|
|
|
-// DispatchQueue.main.async {
|
|
|
-// print("----startUpLoad\n----\(Thread.current)")
|
|
|
-// self.uploadAllImages(totalTimes: 0)
|
|
|
-// }
|
|
|
}
|
|
|
|
|
|
override func setupViews() {
|
|
@@ -103,7 +77,7 @@ class PublishEditController: BaseViewController {
|
|
|
|
|
|
}, confirmBlock: {
|
|
|
(popupView, index, string) in
|
|
|
- NotificationCenter.default.post(name: NSNotification.Name(rawValue: "DismissFromPublishEditVc"), object: nil)
|
|
|
+ self?.navigationController?.dismiss(animated: true, completion: nil)
|
|
|
})
|
|
|
}
|
|
|
|
|
@@ -115,28 +89,9 @@ class PublishEditController: BaseViewController {
|
|
|
make.height.equalTo(26)
|
|
|
}
|
|
|
|
|
|
- view.addSubview(progressBackView)
|
|
|
- progressBackView.addSubview(progressView)
|
|
|
- progressBackView.addSubview(subLabel)
|
|
|
-
|
|
|
- progressBackView.snp.makeConstraints { (make) in
|
|
|
- make.top.equalToSuperview().offset(kNavBarTotalHeight)
|
|
|
- make.left.right.equalToSuperview()
|
|
|
- make.height.equalTo(38)
|
|
|
- }
|
|
|
- progressView.snp.makeConstraints { (make) in
|
|
|
- make.top.left.right.equalToSuperview()
|
|
|
- make.height.equalTo(3)
|
|
|
- }
|
|
|
- subLabel.snp.makeConstraints { (make) in
|
|
|
- make.left.equalTo(14)
|
|
|
- make.centerY.equalToSuperview()
|
|
|
- make.height.equalTo(20)
|
|
|
- }
|
|
|
-
|
|
|
view.addSubview(tableView)
|
|
|
tableView.snp.makeConstraints { (make) in
|
|
|
- make.top.equalTo(progressBackView.snp_bottom)
|
|
|
+ make.top.equalTo(kNavBarTotalHeight)
|
|
|
make.left.right.bottom.equalToSuperview()
|
|
|
}
|
|
|
}
|
|
@@ -162,36 +117,16 @@ class PublishEditController: BaseViewController {
|
|
|
rightButton.setTitle("发布", for: UIControl.State.normal)
|
|
|
rightButton.setTitleColor(kffffffColor, for: UIControl.State.normal)
|
|
|
rightButton.titleLabel?.font = kMediumFont13
|
|
|
- rightButton.cornerRadius = 16
|
|
|
+ rightButton.cornerRadius = 13
|
|
|
rightButton.masksToBounds = true
|
|
|
rightButton.rx.tap.subscribe(onNext: { [weak self] (data) in
|
|
|
- self?.communityPublishApi()
|
|
|
+
|
|
|
+ self?.checkPublishStatus()
|
|
|
+
|
|
|
}).disposed(by: disposeBag)
|
|
|
return rightButton
|
|
|
}()
|
|
|
|
|
|
- private lazy var progressBackView: UIView = {
|
|
|
- let progressBackView = UIView()
|
|
|
- progressBackView.backgroundColor = kffffffColor
|
|
|
- return progressBackView
|
|
|
- }()
|
|
|
-
|
|
|
- private lazy var progressView: UIProgressView = {
|
|
|
- let progressView = UIProgressView(progressViewStyle: .default)
|
|
|
- progressView.setProgress(0, animated: false)
|
|
|
- progressView.progressTintColor = k62CC74Color //进度颜色
|
|
|
- progressView.trackTintColor = kd8d8d8Color //剩余进度颜色
|
|
|
- return progressView
|
|
|
- }()
|
|
|
-
|
|
|
- private lazy var subLabel: UILabel = {
|
|
|
- let subLabel = UILabel()
|
|
|
- subLabel.textColor = k333333Color
|
|
|
- subLabel.font = kRegularFont14
|
|
|
- subLabel.textAlignment = .left
|
|
|
- return subLabel
|
|
|
- }()
|
|
|
-
|
|
|
}
|
|
|
|
|
|
// MARK: - tableView dataSource && delegate
|
|
@@ -323,45 +258,7 @@ extension PublishEditController : UITableViewDelegate, UITableViewDataSource {
|
|
|
// MARK: - 逻辑处理
|
|
|
extension PublishEditController {
|
|
|
|
|
|
- func uploadAllImages(totalTimes: Int) {
|
|
|
-
|
|
|
- var curTimes: Int = totalTimes
|
|
|
-
|
|
|
- print("-----StartUpload,totalTimes == \(totalTimes)")
|
|
|
- SwiftMoyaNetWorkServiceConfig.shared().configUploadSingleImgWithoutHudApi(imageArray: [self.imageArr![totalTimes]]) {
|
|
|
- [weak self] (imgUrl) -> (Void) in
|
|
|
- let urlStr: String = imgUrl as! String
|
|
|
- self?.imageUrlArray.append(urlStr)
|
|
|
- if curTimes == 0 {
|
|
|
- // 设置主图
|
|
|
- self?.majorImageUrl = urlStr
|
|
|
- }
|
|
|
-
|
|
|
- print("-----FinishUpload,Times == \(curTimes)")
|
|
|
- curTimes += 1
|
|
|
- // 更新进度
|
|
|
- DispatchQueue.main.async {
|
|
|
- print("----\(Thread.current)")
|
|
|
- self?.progressView.setProgress(Float(curTimes/(self?.imageArr!.count)!), animated: true)
|
|
|
- }
|
|
|
- if curTimes == self?.imageArr!.count {
|
|
|
- self?.subLabel.text = "图片上传成功!"
|
|
|
- } else {
|
|
|
- self?.subLabel.text = "图片正在上传中(\(curTimes)/\(self?.imageArr?.count ?? 0))..."
|
|
|
- }
|
|
|
-
|
|
|
- if curTimes < self?.imageArr?.count ?? 0 {
|
|
|
- self?.uploadAllImages(totalTimes: curTimes)
|
|
|
- } else {
|
|
|
- self?.rightButton.isEnabled = true
|
|
|
- self?.rightButton.backgroundColor = k62CC74Color
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 发布Api
|
|
|
- func communityPublishApi() {
|
|
|
-
|
|
|
+ func checkPublishStatus() {
|
|
|
if pubTitle.count > 20 {
|
|
|
SwiftProgressHUD.shared().showText("标题最多输入20个字符")
|
|
|
return
|
|
@@ -377,128 +274,24 @@ extension PublishEditController {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- var typeStr: String = ""
|
|
|
- if mediaType == .image {
|
|
|
- typeStr = "image"
|
|
|
- } else {
|
|
|
- typeStr = "video"
|
|
|
- }
|
|
|
-
|
|
|
- let topicJsonStr = JSON(selTopicIdArr).description
|
|
|
- let imgsJsonStr = JSON(imageUrlArray).description
|
|
|
+ PublishUploadManager.shared().setPublishParas(self.selTopicIdArr, self.pubTitle, self.pubContent, self.locationStr)
|
|
|
|
|
|
- print("----mediaType == \(typeStr)\n----pubTitle = \(pubTitle)\n----topicJsonStr == \(topicJsonStr)\n----imgsJsonStr == \(imgsJsonStr)")
|
|
|
-
|
|
|
- SwiftMoyaNetWorkServiceCommunity.shared().communityPublishApi(type: typeStr, img: majorImageUrl ?? "", topic_ids: topicJsonStr, video: paraVideo, title: pubTitle, content: pubContent, location: locationStr, imgs: imgsJsonStr) {
|
|
|
- [weak self] (communityPublishModel) -> (Void) in
|
|
|
- let communityPublishModel = communityPublishModel as? CommunityPublishModel
|
|
|
- self?.publishSuccessAction(communityPublishModel!)
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- func publishSuccessAction(_ pubModel: CommunityPublishModel) {
|
|
|
- var typeStr: String = ""
|
|
|
- if mediaType == .image {
|
|
|
- typeStr = "image"
|
|
|
- } else {
|
|
|
- typeStr = "video"
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- VirusViewModel.shared.publishVirueRecordAddApi(postId: pubModel.postId, postType: typeStr, title: pubTitle, content: pubContent, postCover: majorImageUrl)
|
|
|
-
|
|
|
-
|
|
|
- let sucVc = PublishSuccessController()
|
|
|
- sucVc.postId = pubModel.postId
|
|
|
- sucVc.bean = pubModel.bean
|
|
|
- sucVc.H5UrlStr = pubModel.h5url
|
|
|
- sucVc.imgUrl = majorImageUrl
|
|
|
- sucVc.titleStr = pubTitle
|
|
|
- sucVc.contentStr = pubContent
|
|
|
- // 暂给已选首个
|
|
|
- sucVc.topicStr = selTopicModelArr[0].name ?? ""
|
|
|
-
|
|
|
- let userMdl = UserModel.shared().getModel()
|
|
|
- sucVc.nameStr = userMdl?.username
|
|
|
- sucVc.avatarStr = userMdl?.avatarurl
|
|
|
- sucVc.uid = userMdl?.uid
|
|
|
- sucVc.type = typeStr
|
|
|
-
|
|
|
- self.navigationController?.pushViewController(sucVc, animated: true)
|
|
|
- }
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
-// MARK: - 视频相关处理
|
|
|
-extension PublishEditController: AlivcShortVideoUploadManagerDelegate {
|
|
|
-
|
|
|
- // 获取上传地址和凭证
|
|
|
- func communityVideoUploadAuthApi() {
|
|
|
-
|
|
|
- var vTitle: String = ""
|
|
|
- if videoPath.count > 20 {
|
|
|
- vTitle = String(videoPath.suffix(20))
|
|
|
- } else {
|
|
|
- vTitle = videoPath
|
|
|
- }
|
|
|
- SwiftMoyaNetWorkServiceCommunity.shared().communityVideoUploadAuthApi(title: vTitle, filename: vTitle, cover_url: coverImagePath) {
|
|
|
- [weak self] (communityVideoAuthModel) -> (Void) in
|
|
|
- let communityVideoAuthModel = communityVideoAuthModel as? CommunityVideoAuthModel
|
|
|
- self?.paraVideo = communityVideoAuthModel?.videoId ?? ""
|
|
|
- self?.startUploadVideo(communityVideoAuthModel!)
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- // 上传视频
|
|
|
- func startUploadVideo(_ authModel: CommunityVideoAuthModel) {
|
|
|
- let info = AliyunUploadSVideoInfo()
|
|
|
- uploadManager = AlivcShortVideoUploadManager.shared()
|
|
|
- uploadManager?.setCoverImagePath(coverImagePath, videoInfo: info, videoPath: videoPath)
|
|
|
- uploadManager?.managerDelegate = self
|
|
|
- uploadManager?.uploadAddress = authModel.uploadAddress
|
|
|
- uploadManager?.videoId = authModel.videoId
|
|
|
- uploadManager?.uploadAuth = authModel.uploadAuth
|
|
|
- uploadManager?.startUpload()
|
|
|
- }
|
|
|
-
|
|
|
- // 上传进度回调
|
|
|
- func uploadManager(_ manager: AlivcShortVideoUploadManager!, updateProgress progress: CGFloat) {
|
|
|
- DispatchQueue.main.async(execute: {
|
|
|
- self.progressView.progress = Float(progress)
|
|
|
- })
|
|
|
- }
|
|
|
-
|
|
|
- // 上传状态回调
|
|
|
- func uploadManager(_ manager: AlivcShortVideoUploadManager!, uploadStatusChangedTo newStatus: AlivcUploadStatus) {
|
|
|
- switch newStatus {
|
|
|
- case AlivcUploadStatus.failure:
|
|
|
- DispatchQueue.main.async(execute: {
|
|
|
- self.subLabel.text = "上传失败!"
|
|
|
- SwiftProgressHUD.shared().showText("上传失败!")
|
|
|
- })
|
|
|
+ if self.mediaType == .video {
|
|
|
|
|
|
- case AlivcUploadStatus.success:
|
|
|
- // 上传封面图
|
|
|
- self.uploadVideoCoverImage()
|
|
|
+ PublishUploadManager.shared().setVideoPath(self.mediaType, self.videoPath, self.coverImagePath, self.videoImage!)
|
|
|
+// PublishUploadManager.shared().communityVideoUploadAuthApi()
|
|
|
|
|
|
- default:
|
|
|
- break
|
|
|
+ print("----上传视频")
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- // 上传视频封面图
|
|
|
- func uploadVideoCoverImage() {
|
|
|
- SwiftMoyaNetWorkServiceConfig.shared().configUploadSingleImgWithoutHudApi(imageArray: [videoImage!]) {
|
|
|
- [weak self] (imgUrl) -> (Void) in
|
|
|
- // 设置主图
|
|
|
- self?.majorImageUrl = imgUrl as? String
|
|
|
+ if self.mediaType == .image {
|
|
|
+ PublishUploadManager.shared().setImagesPath(self.imageArr!)
|
|
|
+// PublishUploadManager.shared().uploadAllImages(totalTimes: 0)
|
|
|
|
|
|
- self?.vUploadFinished = true
|
|
|
- self?.subLabel.text = "上传成功!"
|
|
|
- self?.rightButton.isEnabled = true
|
|
|
- self?.rightButton.backgroundColor = k62CC74Color
|
|
|
}
|
|
|
+
|
|
|
+ self.navigationController?.dismiss(animated: true, completion: {
|
|
|
+ NotificationCenter.default.post(name: NSNotification.Name(rawValue: "DismissFromPublishEditVc"), object: nil)
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
}
|