Commit b44d61c4 authored by Steven杜宇's avatar Steven杜宇

// OSS优化

parent 3c44964c
......@@ -208,7 +208,7 @@ extension YHCertificateListVC {
}
}
func uploadImage(_ img: UIImage, imageName:String, supplementInfo:YHSupplementInfo, callBack:((Bool)->())?) {
func uploadImage(_ img: UIImage, imageName:String, supplementInfo:YHSupplementInfo, callBack:((Bool, YHContentUrl?)->())?) {
// 先OSS上传得到URL
self.viewModel.uploadImage(img) {
......@@ -226,15 +226,10 @@ extension YHCertificateListVC {
model.name = imageName
model.url = url
model.suffix = suffix
self.viewModel.updateCertificateItem(supplementsId:supplementInfo.id, urlModel:model, operation: "add", rename: "") {
success, error in
self.requestList(status: self.status)
callBack?(success)
}
return
callBack?(true, model)
} else {
callBack?(false, nil)
}
callBack?(false)
}
}
......@@ -260,7 +255,7 @@ extension YHCertificateListVC {
model.url = successUrl
model.suffix = suffixName
YHHUD.show(.progress(message: "上传中..."))
self.viewModel.updateCertificateItem(supplementsId:supplementInfo.id, urlModel:model, operation: "add", rename: "") {
self.viewModel.updateCertificateItem(supplementsId:supplementInfo.id, urlModels:[model], operation: "add", rename: "") {
success, error in
YHHUD.hide()
self.requestList(status:self.status)
......@@ -311,49 +306,58 @@ extension YHCertificateListVC {
}
}
sheetView.uploadImageBlock = {
[weak self] imgArr in
[weak self] targetImgArr in
guard let self = self else { return }
var successArr:[YHSelectImageItem] = []
var failArr:[YHSelectImageItem] = []
let group = DispatchGroup()
let ossGroup = DispatchGroup()
var ossArr:[YHContentUrl] = []
YHHUD.show(.progress(message: "上传中..."))
for item in imgArr {
// 先将所有图片组上传到OSS
for item in targetImgArr {
if let image = item.data {
group.enter()
ossGroup.enter()
uploadImage(image, imageName:item.name, supplementInfo: supplementInfo) {
success in
if success {
successArr.append(item)
} else {
failArr.append(item)
success, urlModel in
if success, let model = urlModel {
ossArr.append(model)
}
group.leave()
ossGroup.leave()
}
}
}
// 等待所有任务完成
group.notify(queue: .main) {
YHHUD.hide()
// 所有任务完成,回到主线程继续执行
print("所有任务完成")
if imgArr.count == successArr.count {
YHHUD.flash(message: "上传成功")
} else {
YHHUD.flash(message: "\(successArr.count)张照片上传成功\n\(failArr.count)张照片上传失败")
// 再将OSS上传信息组上传到服务器
ossGroup.notify(queue: .main) {
if ossArr.count <= 0 {
YHHUD.hide()
YHHUD.flash(message: "上传失败")
return
}
if successArr.count > 0 {
let vc = YHCertificateUploadContentListVC()
vc.orderId = self.orderId
vc.categoryInfo = self.categoryInfo
vc.supplementInfo = supplementInfo
self.navigationController?.pushViewController(vc)
self.viewModel.updateCertificateItem(supplementsId:supplementInfo.id, urlModels:ossArr, operation: "add", rename: "") {
[weak self] success, error in
guard let self = self else { return }
YHHUD.hide()
if success {
if ossArr.count == targetImgArr.count {
YHHUD.flash(message: "上传成功")
} else {
YHHUD.flash(message: "\(ossArr.count)张照片上传成功\n\(targetImgArr.count-ossArr.count)张照片上传失败")
}
let vc = YHCertificateUploadContentListVC()
vc.orderId = self.orderId
vc.categoryInfo = self.categoryInfo
vc.supplementInfo = supplementInfo
self.navigationController?.pushViewController(vc)
} else {
YHHUD.flash(message: "上传失败")
}
}
}
}
sheetView.show()
}
}
......@@ -223,7 +223,7 @@ extension YHCertificateSearchViewController {
}
}
func uploadImage(_ img: UIImage, imageName:String, supplementInfo:YHSupplementInfo, callBack:((Bool)->())?) {
func uploadImage(_ img: UIImage, imageName:String, supplementInfo:YHSupplementInfo, callBack:((Bool, YHContentUrl?)->())?) {
// 先OSS上传得到URL
self.viewModel.uploadImage(img) {
......@@ -235,21 +235,16 @@ extension YHCertificateSearchViewController {
if !suffixName.isEmpty {
suffix = suffixName
}
// 再调用业务接口
let model = YHContentUrl()
model.name = imageName
model.url = url
model.suffix = suffix
self.viewModel.updateCertificateItem(supplementsId:supplementInfo.id, urlModel:model, operation: "add", rename: "") {
success, error in
self.requestList(keyWord: self.searchBar.textField.text)
callBack?(success)
}
return
callBack?(true, model)
} else {
callBack?(false, nil)
}
callBack?(false)
}
}
......@@ -273,7 +268,7 @@ extension YHCertificateSearchViewController {
model.url = successUrl
model.suffix = suffixName
YHHUD.show(.progress(message: "上传中..."))
self.viewModel.updateCertificateItem(supplementsId:supplementInfo.id, urlModel:model, operation: "add", rename: "") {
self.viewModel.updateCertificateItem(supplementsId:supplementInfo.id, urlModels:[model], operation: "add", rename: "") {
success, error in
YHHUD.hide()
if success {
......@@ -325,48 +320,58 @@ extension YHCertificateSearchViewController {
}
sheetView.uploadImageBlock = {
[weak self] imgArr in
guard let self = self else { return }
var successArr:[YHSelectImageItem] = []
var failArr:[YHSelectImageItem] = []
let group = DispatchGroup()
[weak self] targetImgArr in
guard let self = self else { return }
let ossGroup = DispatchGroup()
var ossArr:[YHContentUrl] = []
YHHUD.show(.progress(message: "上传中..."))
for item in imgArr {
if let image = item.data {
group.enter()
uploadImage(image, imageName:item.name, supplementInfo: supplementInfo) {
success in
if success {
successArr.append(item)
} else {
failArr.append(item)
YHHUD.show(.progress(message: "上传中..."))
// 先将所有图片组上传到OSS
for item in targetImgArr {
if let image = item.data {
ossGroup.enter()
uploadImage(image, imageName:item.name, supplementInfo: supplementInfo) {
success, urlModel in
if success, let model = urlModel {
ossArr.append(model)
}
ossGroup.leave()
}
group.leave()
}
}
}
// 等待所有任务完成
group.notify(queue: .main) {
// 所有任务完成,回到主线程继续执行
print("所有任务完成")
YHHUD.hide()
if imgArr.count == successArr.count {
YHHUD.flash(message: "上传成功")
} else {
YHHUD.flash(message: "\(successArr.count)张照片上传成功\n\(failArr.count)张照片上传失败")
}
if successArr.count > 0 {
let vc = YHCertificateUploadContentListVC()
vc.orderId = self.orderId
vc.categoryInfo = self.categoryInfo
vc.supplementInfo = supplementInfo
self.navigationController?.pushViewController(vc)
}
}
// 再将OSS上传信息组上传到服务器
ossGroup.notify(queue: .main) {
if ossArr.count <= 0 {
YHHUD.hide()
YHHUD.flash(message: "上传失败")
return
}
self.viewModel.updateCertificateItem(supplementsId:supplementInfo.id, urlModels:ossArr, operation: "add", rename: "") {
[weak self] success, error in
guard let self = self else { return }
YHHUD.hide()
if success {
let vc = YHCertificateUploadContentListVC()
vc.orderId = self.orderId
vc.categoryInfo = self.categoryInfo
vc.supplementInfo = supplementInfo
self.navigationController?.pushViewController(vc)
if ossArr.count == targetImgArr.count {
YHHUD.flash(message: "上传成功")
} else {
YHHUD.flash(message: "\(ossArr.count)张照片上传成功\n\(targetImgArr.count-ossArr.count)张照片上传失败")
}
} else {
YHHUD.flash(message: "上传失败")
}
}
}
}
sheetView.show()
}
......
......@@ -107,7 +107,7 @@ class YHCertificateUploadContentListVC: YHBaseViewController {
// 重命名
text = text + "." + selectEditItem.getFileSuffixName()
YHHUD.show(.progress(message: "重命名中..."))
self.viewModel.updateCertificateItem(supplementsId:supplementInfo.id, urlModel:selectEditItem, operation: "rename", rename: text) {
self.viewModel.updateCertificateItem(supplementsId:supplementInfo.id, urlModels:[selectEditItem], operation: "rename", rename: text) {
success, error in
YHHUD.hide()
if success {
......@@ -145,39 +145,51 @@ class YHCertificateUploadContentListVC: YHBaseViewController {
uploadFile(fileUrl)
}
sheetView.uploadImageBlock = {
[weak self] imgArr in
[weak self] targetImgArr in
guard let self = self else { return }
let group = DispatchGroup()
var successArr:[YHSelectImageItem] = []
var failArr:[YHSelectImageItem] = []
let ossGroup = DispatchGroup()
var ossArr:[YHContentUrl] = []
YHHUD.show(.progress(message: "上传中..."))
for item in imgArr {
// 先将所有图片组上传到OSS
for item in targetImgArr {
if let image = item.data {
group.enter()
ossGroup.enter()
uploadImage(image, imageName:item.name) {
success in
if success {
successArr.append(item)
} else {
failArr.append(item)
success, urlModel in
if success, let model = urlModel {
ossArr.append(model)
}
group.leave()
ossGroup.leave()
}
}
}
// 等待所有任务完成
group.notify(queue: .main) {
// 所有任务完成,回到主线程继续执行
print("所有任务完成")
if imgArr.count == successArr.count {
YHHUD.flash(message: "上传成功")
} else {
YHHUD.flash(message: "\(successArr.count)张照片上传成功\n\(failArr.count)张照片上传失败")
// 再将OSS上传信息组上传到服务器
ossGroup.notify(queue: .main) {
if ossArr.count <= 0 {
YHHUD.hide()
YHHUD.flash(message: "上传失败")
return
}
self.viewModel.updateCertificateItem(supplementsId:self.supplementInfo.id, urlModels:ossArr, operation: "add", rename: "") {
[weak self] success, error in
guard let self = self else { return }
YHHUD.hide()
self.requestList()
if success {
if ossArr.count == targetImgArr.count {
YHHUD.flash(message: "上传成功")
} else {
YHHUD.flash(message: "\(ossArr.count)张照片上传成功\n\(targetImgArr.count-ossArr.count)张照片上传失败")
}
} else {
YHHUD.flash(message: "上传失败")
}
}
YHHUD.hide()
}
}
sheetView.show()
......@@ -279,7 +291,7 @@ extension YHCertificateUploadContentListVC: UITableViewDelegate, UITableViewData
if !sure { return }
// 删除
YHHUD.show(.progress(message: "删除中..."))
self.viewModel.updateCertificateItem(supplementsId:self.supplementInfo.id, urlModel:contentItem, operation: "del", rename:"") {
self.viewModel.updateCertificateItem(supplementsId:self.supplementInfo.id, urlModels:[contentItem], operation: "del", rename:"") {
success, error in
YHHUD.hide()
if success {
......@@ -639,7 +651,7 @@ extension YHCertificateUploadContentListVC {
func uploadImage(_ img: UIImage, imageName:String, callBack:((Bool)->())?) {
func uploadImage(_ img: UIImage, imageName:String, callBack:((Bool, YHContentUrl?)->())?) {
// 先OSS上传得到URL
self.viewModel.uploadImage(img) {
......@@ -651,21 +663,15 @@ extension YHCertificateUploadContentListVC {
if !suffixName.isEmpty {
suffix = suffixName
}
// 再调用业务接口
let model = YHContentUrl()
model.name = imageName
model.url = url
model.suffix = suffix
self.viewModel.updateCertificateItem(supplementsId:supplementInfo.id, urlModel:model, operation: "add", rename: "") {
success, error in
callBack?(success)
self.requestList()
}
return
callBack?(true, model)
} else {
callBack?(false, nil)
}
callBack?(false)
}
}
......@@ -692,7 +698,7 @@ extension YHCertificateUploadContentListVC {
model.url = successUrl
model.suffix = suffixName
YHHUD.show(.progress(message: "上传中..."))
self.viewModel.updateCertificateItem(supplementsId:supplementInfo.id, urlModel:model, operation: "add", rename: "") {
self.viewModel.updateCertificateItem(supplementsId:supplementInfo.id, urlModels:[model], operation: "add", rename: "") {
success, error in
YHHUD.hide()
if success {
......
......@@ -478,10 +478,9 @@ extension YHCertificateUploadSheetView: PHPickerViewControllerDelegate {
}
let group = DispatchGroup()
let queue = DispatchQueue.global()
var imageArr:[YHSelectImageItem] = []
YHHUD.show(.progress(message:"加载中..."))
YHHUD.show(.progress(message:"上传中..."))
for result in results {
group.enter()
// 此方法是异步操作
......
......@@ -211,20 +211,21 @@ class YHCertificateViewModel: YHBaseViewModel {
// 更改证件
// operation参数必填,必须是:add(上传)、del(删除)、rename(重命名)
func updateCertificateItem(supplementsId:Int, urlModel: YHContentUrl, operation:String, rename:String, callBack:((Bool, YHErrorModel?)->())?) {
func updateCertificateItem(supplementsId:Int, urlModels: [YHContentUrl], operation:String, rename:String, callBack:((Bool, YHErrorModel?)->())?) {
var name = urlModel.name
if operation == "rename" {
name = rename
var files:[[String: Any]] = []
for model in urlModels {
let dic:[String : Any] = [
"id" : supplementsId,
"content_url": [
"name": operation == "rename" ? rename: model.name,
"url": model.url,
"suffix": model.suffix]]
files.append(dic)
}
let dic:[String : Any] = [
"id" : supplementsId,
"content_url": [
"name": name,
"url": urlModel.url,
"suffix": urlModel.suffix]]
let params: [String: Any] = [
"file_info" : [dic],
"file_info" : files,
"operation" : operation,
]
......
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