完善上传

FFIB 6 jaren geleden
bovenliggende
commit
badb49f17e

+ 1 - 1
PaiAi/Paiai.xcodeproj/project.pbxproj

@@ -1179,9 +1179,9 @@
1179 1179
 				A69FFAA31E7004700006FEE0 /* PhotoDetailViewController.swift */,
1180 1180
 				A69FFA9E1E7004700006FEE0 /* PhotoDetailCommentCell.swift */,
1181 1181
 				05594C022240E94E002D4910 /* PhotoDetailImageCell.swift */,
1182
-				A69FFAA61E7004700006FEE0 /* ImageCell.swift */,
1183 1182
 				A69FFAA81E7004700006FEE0 /* ShareController.swift */,
1184 1183
 				A69FFAA91E7004700006FEE0 /* PhotoPreviewViewController.swift */,
1184
+				A69FFAA61E7004700006FEE0 /* ImageCell.swift */,
1185 1185
 				A69FFB881E7018CC0006FEE0 /* PhotoDetail.storyboard */,
1186 1186
 			);
1187 1187
 			path = PhotoDetail;

BIN
PaiAi/Paiai.xcodeproj/project.xcworkspace/xcuserdata/FFIB.xcuserdatad/UserInterfaceState.xcuserstate


+ 1 - 1
PaiAi/PaiaiDataKit/DataLayer/Model/PhotoItem.swift

@@ -88,7 +88,7 @@ extension PhotoItem: Mappable {
88 88
     }
89 89
     mutating public func mapping(map: Map) {
90 90
         let dateFormatter = DateFormatter()
91
-        dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
91
+        dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss'Z'"
92 92
         created_at               <-  (map["created_at"], DateFormatterTransform(dateFormatter:dateFormatter))
93 93
         avatar                  <-  map["avatar"]
94 94
         comment_num             <-  map["comment_num"]

+ 2 - 2
PaiAi/PaiaiDataKit/DataLayer/Model/Reusable/FileModel.swift

@@ -14,9 +14,9 @@ struct FileModel {
14 14
     let fileData: Data
15 15
     let mimeType: String
16 16
 
17
-    init(name: String, fileName: String? = nil, fileData: Data, mimeType: String = "image/jpeg") {
17
+    init(name: String = "photo", fileName: String, fileData: Data, mimeType: String = "image/jpeg") {
18 18
         self.name = name
19
-        self.fileName = fileName ?? name
19
+        self.fileName = fileName
20 20
         self.fileData = fileData
21 21
         self.mimeType = mimeType
22 22
     }

+ 3 - 2
PaiAi/PaiaiDataKit/DataLayer/Repositories/Remote/GroupPhotoRemoteAPI.swift

@@ -33,8 +33,9 @@ struct GroupPhotoRemoteAPI {
33 33
     }
34 34
     
35 35
     func uploadPhoto(data: Data) -> Single<[PhotoItem]> {
36
-//        let name = groupId + "" + "\(Date.timeIntervalSinceReferenceDate)"
37
-        let file = FileModel(name: "photo", fileData: data)
36
+        let name = ShareUserId + "\(Date.timeIntervalSinceReferenceDate)"
37
+        print(name)
38
+        let file = FileModel(fileName: name, fileData: data)
38 39
         let uploadResource = UploadResource<[PhotoItem]>(path: .photoUpload,
39 40
                                                        parameter: ["user_id": ShareUserId,
40 41
                                                                    "group_id": groupId,

+ 8 - 1
PaiAi/PaiaiDataKit/DataLayer/Repositories/Remote/Reusable/NetWork/NetworkApi.swift

@@ -143,11 +143,18 @@ class NetworkApi {
143 143
                     switch res.result {
144 144
                     case .success(let json):
145 145
                         guard let json = json as? [String: AnyObject],
146
+                            let status = json["status"] as? Int,
146 147
                             let data = resource.parse(json) else {
148
+                                Toast.show(message: "解析失败")
147 149
                                 observer(.error(ParseError()))
148 150
                                 return
149 151
                         }
150
-                        observer(.success(data))
152
+                        if status == 200 {
153
+                            observer(.success(data))
154
+                        } else {
155
+                            Toast.show(message: (json["description"]  as? String) ?? "")
156
+                            observer(.error(BusinessError(id: status)))
157
+                        }
151 158
                     case .failure(let error):
152 159
                         observer(.error(error))
153 160
                     }

+ 0 - 1
PaiAi/PaiaiDataKit/PresentLayer/Group/GroupViewModel.swift

@@ -77,7 +77,6 @@ public class GroupViewModel {
77 77
     }
78 78
 
79 79
     public func submit(data: Data) {
80
-        Toast.showActivity(message: "正在上传照片")
81 80
         repository.upload(data: data).subscribe(onSuccess: { [weak self] result in
82 81
             guard let `self` = self else { return }
83 82
             self.items.accept(result)

+ 3 - 3
PaiAi/PaiaiDataKit/PresentLayer/PhotoDetail/PhotoDetailViewModel.swift

@@ -33,9 +33,9 @@ public final class PhotoDetailViewModel {
33 33
         })
34 34
     }
35 35
     
36
-    public var groupAvatar: Observable<String> {
36
+    public var groupAvatar: Observable<Int> {
37 37
         return item.map({ v in
38
-            return v.group_avatar
38
+            return v.group_default_avatar
39 39
         })
40 40
     }
41 41
     
@@ -53,7 +53,7 @@ public final class PhotoDetailViewModel {
53 53
     
54 54
     public var photoTime: Observable<String> {
55 55
         return item.map({ v in
56
-            return v.create_at
56
+            return v.create_at_time_interval
57 57
         })
58 58
     }
59 59
     

+ 1 - 2
PaiAi/PaiaiDataKit/Resuable/Extension/DateExt.swift

@@ -29,8 +29,7 @@ extension Date {
29 29
     
30 30
     public func getTimeInfoFromDate() -> String {
31 31
         let dateNow = Date()
32
-        let time = dateNow.timeIntervalSince(self)
33
-        
32
+        let time = dateNow.timeIntervalSince(self) - 28800
34 33
         var retTime: TimeInterval = 1.0
35 34
         if time < 3600 {
36 35
             retTime = time / 60

+ 4 - 2
PaiAi/PaiaiUIKit/Reusable/Extension/UIKit/UIImageExt.swift

@@ -19,9 +19,11 @@ public extension UIImage {
19 19
     func scaledImage(length: CGFloat, with quality: CGFloat) -> Data? {
20 20
         let edge = size.width > size.height ? size.height : size.width
21 21
         let outputSize = size * (length / edge)
22
-        
23 22
         let renderer = UIGraphicsImageRenderer(size: outputSize)
24
-        return renderer.image(actions: {_ in }).jpegData(compressionQuality: quality)
23
+        return renderer.jpegData(withCompressionQuality: quality) { _ in
24
+            let content = UIGraphicsGetCurrentContext()
25
+            content?.draw(cgImage!, in: CGRect.init(origin: CGPoint.zero, size: outputSize))
26
+        }        
25 27
     }
26 28
 }
27 29
 

+ 6 - 4
PaiAi/Paiai_iOS/App/Group/GroupViewController.swift

@@ -252,11 +252,13 @@ extension GroupViewController: UIImagePickerControllerDelegate, UINavigationCont
252 252
     }
253 253
 
254 254
     func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
255
-        dismiss(animated: true, completion: nil)
256
-        guard let image = info[.originalImage] as? UIImage,
257
-            let data = image.scaledImage(length: 1280, with: 0.4) else { return }
255
+        Toast.showActivity(message: "正在上传照片")
256
+        dismiss(animated: true) {
257
+            guard let image = info[.originalImage] as? UIImage,
258
+                let data = image.scaledImage(length: 1280, with: 0.4) else { return }
259
+            self.viewModel.submit(data: data)
260
+        }
258 261
         
259
-        viewModel.submit(data: data)
260 262
     }
261 263
     
262 264
     func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {

+ 5 - 5
PaiAi/Paiai_iOS/App/PhotoDetail/PhotoDetailViewController.swift

@@ -151,6 +151,7 @@ extension PhotoDetailViewController {
151 151
         
152 152
         bindViewModelToUserName()
153 153
         bindgingViewModelToUserAvatar()
154
+        bindViewModelToPhotoTime()
154 155
         
155 156
         bindViewModelToThumbupCount()
156 157
         bindViewModelToThumbupView()
@@ -183,10 +184,9 @@ extension PhotoDetailViewController {
183 184
     
184 185
     func bindViewModelToGroupAvatar() {
185 186
         viewModel.groupAvatar
186
-            .subscribe(onNext: {[weak self] (avatar) in
187
-            guard let `self` = self else { return }
188
-            self.groupAvatar.setImage(avatar)
189
-        }).disposed(by: disposeBag)
187
+            .map { UIImage(named: #"Group\#($0)"#)}
188
+            .bind(to: groupAvatar.rx.image)
189
+            .disposed(by: disposeBag)
190 190
     }
191 191
     
192 192
     func bindgingViewModelToUserAvatar() {
@@ -198,7 +198,7 @@ extension PhotoDetailViewController {
198 198
     }
199 199
     
200 200
     func bindViewModelToUserName() {
201
-        viewModel.groupName.bind(to: userName.rx.text).disposed(by: disposeBag)
201
+        viewModel.userName.bind(to: userName.rx.text).disposed(by: disposeBag)
202 202
     }
203 203
     
204 204
     func bindViewModelToPhotoTime() {

+ 1 - 1
PaiAi/Paiai_iOS/App/PhotoDetail/PhotoPreviewViewController.swift

@@ -94,7 +94,7 @@ extension PhotoPreviewViewController {
94 94
 /// storyboard button action
95 95
 extension PhotoPreviewViewController {
96 96
     @IBAction  func back() {
97
-        navigationController?.popViewController(animated: true)
97
+        dismissController()
98 98
     }
99 99
     
100 100
     @IBAction func rotateTheImage(_ sender: UIButton) {