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

// 上传照片

parent 261350f7
...@@ -146,11 +146,11 @@ class YHResignMaterialUploadVC: YHBaseViewController { ...@@ -146,11 +146,11 @@ class YHResignMaterialUploadVC: YHBaseViewController {
sheetView.uploadImageBlock = { sheetView.uploadImageBlock = {
[weak self] targetImgArr in [weak self] targetImgArr in
guard let self = self else { return } guard let self = self else { return }
// self.viewModel.uploadImageArr(targetImgArr, supplementId: supplementId) { self.viewModel.uploadImageArr(targetImgArr, material: self.materialModel) {
// [weak self] in [weak self] in
// guard let self = self else { return } guard let self = self else { return }
// self.requestList() self.requestMaterialDetail()
// } }
} }
sheetView.show() sheetView.show()
} }
......
...@@ -252,6 +252,7 @@ class YHResignMaterialViewModel: YHBaseViewModel { ...@@ -252,6 +252,7 @@ class YHResignMaterialViewModel: YHBaseViewModel {
} }
} }
// OSS上传资料后再进行服务器后台更新
func uploadFilesWithMaterial(material: YHMaterialModel, fileUrl: URL, callback: (()->())?) { func uploadFilesWithMaterial(material: YHMaterialModel, fileUrl: URL, callback: (()->())?) {
if let fileData = try? Data(contentsOf: fileUrl) { if let fileData = try? Data(contentsOf: fileUrl) {
...@@ -309,4 +310,82 @@ class YHResignMaterialViewModel: YHBaseViewModel { ...@@ -309,4 +310,82 @@ class YHResignMaterialViewModel: YHBaseViewModel {
YHHUD.flash(message: "识别文件失败") YHHUD.flash(message: "识别文件失败")
} }
} }
func uploadImageArr(_ targetImgArr:[YHSelectImageItem], material: YHMaterialModel, successBlock:(()->())?) {
let ossGroup = DispatchGroup()
var ossArr:[YHMaterialModelItemModel] = []
YHHUD.show(.progress(message: "上传中..."))
// 先将所有图片组上传到OSS
for item in targetImgArr {
if let image = item.data {
ossGroup.enter()
uploadImage(image, imageName:item.name) {
success, urlModel in
if success, let model = urlModel {
ossArr.append(model)
}
ossGroup.leave()
}
}
}
// 再将OSS上传信息组上传到服务器
ossGroup.notify(queue: .main) {
if ossArr.count <= 0 {
YHHUD.hide()
YHHUD.flash(message: "上传失败")
return
}
self.updateMaterials(material: material, addInfoArr: ossArr) {
[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)张照片上传失败")
}
successBlock?()
} else {
YHHUD.flash(message: "上传失败")
}
}
}
}
func uploadImage(_ img: UIImage, imageName:String, callBack:((Bool, YHMaterialModelItemModel?)->())?) {
// 先OSS上传得到URL
self.uploadImage(img) {
[weak self] url, error in
guard let self = self else { return }
if let url = url, !url.isEmpty {
var suffix = "jpg"
let suffixName = url.pathExtension.lowercased()
if !suffixName.isEmpty {
suffix = suffixName
}
// 再调用业务接口
let model = YHMaterialModelItemModel()
model.name = imageName
model.naming = imageName
model.url = url
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "YYYY-MM-dd"
let dateString = dateFormatter.string(from: Date())
model.updated_at = dateString
callBack?(true, model)
} else {
callBack?(false, nil)
}
}
}
} }
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