南鑫林 5 роки тому
батько
коміт
18f93e023f

+ 84 - 87
RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj

@@ -15,6 +15,13 @@
 		A70B2C6D2288815E00B2449F /* PickViewOneComponentsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70B2C6C2288815E00B2449F /* PickViewOneComponentsView.swift */; };
 		A70B8430228FF6D400882BC5 /* ProductCartCountModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70B842F228FF6D400882BC5 /* ProductCartCountModel.swift */; };
 		A70DE55222E7E53F009E06BE /* KeyBoardInputView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70DE55122E7E53F009E06BE /* KeyBoardInputView.swift */; };
+		A70E3F30236FF9530039D7FC /* PublishConfirmPhotoNewViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70E3F2F236FF9520039D7FC /* PublishConfirmPhotoNewViewController.swift */; };
+		A70E3F33236FF9AD0039D7FC /* AliyunOSSManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70E3F32236FF9AD0039D7FC /* AliyunOSSManager.swift */; };
+		A70E3F3D236FF9CD0039D7FC /* AliyunVodUptoyouDBManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70E3F36236FF9CD0039D7FC /* AliyunVodUptoyouDBManager.swift */; };
+		A70E3F3E236FF9CD0039D7FC /* AliyunVodUptoyouEffectsModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70E3F38236FF9CD0039D7FC /* AliyunVodUptoyouEffectsModel.swift */; };
+		A70E3F3F236FF9CD0039D7FC /* AliyunVodupToyoPublishManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70E3F3A236FF9CD0039D7FC /* AliyunVodupToyoPublishManager.swift */; };
+		A70E3F40236FF9CD0039D7FC /* AliyunVodUpToYoPublishModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70E3F3B236FF9CD0039D7FC /* AliyunVodUpToYoPublishModel.swift */; };
+		A70E3F41236FF9CD0039D7FC /* PublishUploadProgressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70E3F3C236FF9CD0039D7FC /* PublishUploadProgressView.swift */; };
 		A70EBBC022561179000AD74F /* Extension+UITableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70EBBBF22561179000AD74F /* Extension+UITableView.swift */; };
 		A714348722DD9D4700132DA9 /* RedemptionAreaViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A714348622DD9D4700132DA9 /* RedemptionAreaViewController.swift */; };
 		A714348C22DDA3E400132DA9 /* CMSRedemptionAreaModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A714348B22DDA3E300132DA9 /* CMSRedemptionAreaModel.swift */; };
@@ -452,7 +459,6 @@
 		A7E19FAC22BA2D01009BCCE1 /* SearchTopicListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7E19FAB22BA2D01009BCCE1 /* SearchTopicListViewController.swift */; };
 		A7E19FAE22BA2D16009BCCE1 /* SearchContentListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7E19FAD22BA2D16009BCCE1 /* SearchContentListViewController.swift */; };
 		A7E19FB122BA3A0D009BCCE1 /* SearchTopicListTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7E19FB022BA3A0D009BCCE1 /* SearchTopicListTableViewCell.swift */; };
-		A7EE5AE5236C131D00309931 /* PublishConfirmPhotoNewViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7EE5AC4236C131A00309931 /* PublishConfirmPhotoNewViewController.swift */; };
 		A7EE5AE6236C131D00309931 /* PublishNewViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7EE5AC7236C131C00309931 /* PublishNewViewModel.swift */; };
 		A7EE5AE7236C131D00309931 /* PublishNewProgressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7EE5ACA236C131C00309931 /* PublishNewProgressView.swift */; };
 		A7EE5AE8236C131D00309931 /* PublishNewPopView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7EE5ACC236C131C00309931 /* PublishNewPopView.swift */; };
@@ -470,13 +476,7 @@
 		A7EE5AF4236C131D00309931 /* PublishNewEffectFilterBeautyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7EE5ADF236C131C00309931 /* PublishNewEffectFilterBeautyView.swift */; };
 		A7EE5AF5236C131D00309931 /* PublishNewViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7EE5AE1236C131C00309931 /* PublishNewViewController.swift */; };
 		A7EE5AF6236C131D00309931 /* PublishRecommendMusicNewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7EE5AE4236C131D00309931 /* PublishRecommendMusicNewController.swift */; };
-		A7EE5B05236C13B900309931 /* AliyunVodUptoyouDBManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7EE5AFA236C13B700309931 /* AliyunVodUptoyouDBManager.swift */; };
-		A7EE5B06236C13B900309931 /* AliyunVodUptoyouEffectsModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7EE5AFC236C13B700309931 /* AliyunVodUptoyouEffectsModel.swift */; };
-		A7EE5B07236C13B900309931 /* AliyunVodupToyoPublishManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7EE5AFE236C13B700309931 /* AliyunVodupToyoPublishManager.swift */; };
-		A7EE5B08236C13B900309931 /* AliyunVodUpToYoPublishModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7EE5AFF236C13B700309931 /* AliyunVodUpToYoPublishModel.swift */; };
-		A7EE5B09236C13B900309931 /* PublishUploadProgressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7EE5B00236C13B700309931 /* PublishUploadProgressView.swift */; };
 		A7EE5B0A236C13B900309931 /* AliPlayerManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7EE5B02236C13B900309931 /* AliPlayerManager.swift */; };
-		A7EE5B0B236C13B900309931 /* AliyunOSSManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7EE5B04236C13B900309931 /* AliyunOSSManager.swift */; };
 		A7EE5BC8236C14B400309931 /* AliyunFiltersModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7EE5B79236C14B400309931 /* AliyunFiltersModel.swift */; };
 		A7EE5BC9236C14B400309931 /* NewFilter.json in Resources */ = {isa = PBXBuildFile; fileRef = A7EE5B7A236C14B400309931 /* NewFilter.json */; };
 		A7EE5BCB236C14CB00309931 /* FilterResource in Resources */ = {isa = PBXBuildFile; fileRef = A7EE5BCA236C14CB00309931 /* FilterResource */; };
@@ -752,6 +752,13 @@
 		A70B2C6C2288815E00B2449F /* PickViewOneComponentsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PickViewOneComponentsView.swift; sourceTree = "<group>"; };
 		A70B842F228FF6D400882BC5 /* ProductCartCountModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductCartCountModel.swift; sourceTree = "<group>"; };
 		A70DE55122E7E53F009E06BE /* KeyBoardInputView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyBoardInputView.swift; sourceTree = "<group>"; };
+		A70E3F2F236FF9520039D7FC /* PublishConfirmPhotoNewViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PublishConfirmPhotoNewViewController.swift; sourceTree = "<group>"; };
+		A70E3F32236FF9AD0039D7FC /* AliyunOSSManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AliyunOSSManager.swift; sourceTree = "<group>"; };
+		A70E3F36236FF9CD0039D7FC /* AliyunVodUptoyouDBManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AliyunVodUptoyouDBManager.swift; sourceTree = "<group>"; };
+		A70E3F38236FF9CD0039D7FC /* AliyunVodUptoyouEffectsModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AliyunVodUptoyouEffectsModel.swift; sourceTree = "<group>"; };
+		A70E3F3A236FF9CD0039D7FC /* AliyunVodupToyoPublishManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AliyunVodupToyoPublishManager.swift; sourceTree = "<group>"; };
+		A70E3F3B236FF9CD0039D7FC /* AliyunVodUpToYoPublishModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AliyunVodUpToYoPublishModel.swift; sourceTree = "<group>"; };
+		A70E3F3C236FF9CD0039D7FC /* PublishUploadProgressView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PublishUploadProgressView.swift; sourceTree = "<group>"; };
 		A70EBBBF22561179000AD74F /* Extension+UITableView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Extension+UITableView.swift"; sourceTree = "<group>"; };
 		A714348622DD9D4700132DA9 /* RedemptionAreaViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RedemptionAreaViewController.swift; sourceTree = "<group>"; };
 		A714348B22DDA3E300132DA9 /* CMSRedemptionAreaModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CMSRedemptionAreaModel.swift; sourceTree = "<group>"; };
@@ -1216,7 +1223,6 @@
 		A7E19FAB22BA2D01009BCCE1 /* SearchTopicListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchTopicListViewController.swift; sourceTree = "<group>"; };
 		A7E19FAD22BA2D16009BCCE1 /* SearchContentListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchContentListViewController.swift; sourceTree = "<group>"; };
 		A7E19FB022BA3A0D009BCCE1 /* SearchTopicListTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchTopicListTableViewCell.swift; sourceTree = "<group>"; };
-		A7EE5AC4236C131A00309931 /* PublishConfirmPhotoNewViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PublishConfirmPhotoNewViewController.swift; sourceTree = "<group>"; };
 		A7EE5AC7236C131C00309931 /* PublishNewViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PublishNewViewModel.swift; sourceTree = "<group>"; };
 		A7EE5ACA236C131C00309931 /* PublishNewProgressView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PublishNewProgressView.swift; sourceTree = "<group>"; };
 		A7EE5ACC236C131C00309931 /* PublishNewPopView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PublishNewPopView.swift; sourceTree = "<group>"; };
@@ -1234,13 +1240,7 @@
 		A7EE5ADF236C131C00309931 /* PublishNewEffectFilterBeautyView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PublishNewEffectFilterBeautyView.swift; sourceTree = "<group>"; };
 		A7EE5AE1236C131C00309931 /* PublishNewViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PublishNewViewController.swift; sourceTree = "<group>"; };
 		A7EE5AE4236C131D00309931 /* PublishRecommendMusicNewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PublishRecommendMusicNewController.swift; sourceTree = "<group>"; };
-		A7EE5AFA236C13B700309931 /* AliyunVodUptoyouDBManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AliyunVodUptoyouDBManager.swift; sourceTree = "<group>"; };
-		A7EE5AFC236C13B700309931 /* AliyunVodUptoyouEffectsModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AliyunVodUptoyouEffectsModel.swift; sourceTree = "<group>"; };
-		A7EE5AFE236C13B700309931 /* AliyunVodupToyoPublishManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AliyunVodupToyoPublishManager.swift; sourceTree = "<group>"; };
-		A7EE5AFF236C13B700309931 /* AliyunVodUpToYoPublishModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AliyunVodUpToYoPublishModel.swift; sourceTree = "<group>"; };
-		A7EE5B00236C13B700309931 /* PublishUploadProgressView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PublishUploadProgressView.swift; sourceTree = "<group>"; };
 		A7EE5B02236C13B900309931 /* AliPlayerManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AliPlayerManager.swift; sourceTree = "<group>"; };
-		A7EE5B04236C13B900309931 /* AliyunOSSManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AliyunOSSManager.swift; sourceTree = "<group>"; };
 		A7EE5B79236C14B400309931 /* AliyunFiltersModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AliyunFiltersModel.swift; sourceTree = "<group>"; };
 		A7EE5B7A236C14B400309931 /* NewFilter.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = NewFilter.json; sourceTree = "<group>"; };
 		A7EE5BCA236C14CB00309931 /* FilterResource */ = {isa = PBXFileReference; lastKnownFileType = folder; path = FilterResource; sourceTree = "<group>"; };
@@ -1606,6 +1606,66 @@
 			path = PickView;
 			sourceTree = "<group>";
 		};
+		A70E3F2D236FF9520039D7FC /* PublishConfirmPhotoNew */ = {
+			isa = PBXGroup;
+			children = (
+				A70E3F2E236FF9520039D7FC /* ViewController */,
+			);
+			path = PublishConfirmPhotoNew;
+			sourceTree = "<group>";
+		};
+		A70E3F2E236FF9520039D7FC /* ViewController */ = {
+			isa = PBXGroup;
+			children = (
+				A70E3F2F236FF9520039D7FC /* PublishConfirmPhotoNewViewController.swift */,
+			);
+			path = ViewController;
+			sourceTree = "<group>";
+		};
+		A70E3F31236FF9AD0039D7FC /* AliyunOSSManager */ = {
+			isa = PBXGroup;
+			children = (
+				A70E3F32236FF9AD0039D7FC /* AliyunOSSManager.swift */,
+			);
+			path = AliyunOSSManager;
+			sourceTree = "<group>";
+		};
+		A70E3F34236FF9CD0039D7FC /* AliyunVodManager */ = {
+			isa = PBXGroup;
+			children = (
+				A70E3F35236FF9CD0039D7FC /* AliyunVodUptoyouDBManager */,
+				A70E3F39236FF9CD0039D7FC /* AliyunVodUpToyoPublishManager */,
+			);
+			path = AliyunVodManager;
+			sourceTree = "<group>";
+		};
+		A70E3F35236FF9CD0039D7FC /* AliyunVodUptoyouDBManager */ = {
+			isa = PBXGroup;
+			children = (
+				A70E3F36236FF9CD0039D7FC /* AliyunVodUptoyouDBManager.swift */,
+				A70E3F37236FF9CD0039D7FC /* Model */,
+			);
+			path = AliyunVodUptoyouDBManager;
+			sourceTree = "<group>";
+		};
+		A70E3F37236FF9CD0039D7FC /* Model */ = {
+			isa = PBXGroup;
+			children = (
+				A70E3F38236FF9CD0039D7FC /* AliyunVodUptoyouEffectsModel.swift */,
+			);
+			path = Model;
+			sourceTree = "<group>";
+		};
+		A70E3F39236FF9CD0039D7FC /* AliyunVodUpToyoPublishManager */ = {
+			isa = PBXGroup;
+			children = (
+				A70E3F3A236FF9CD0039D7FC /* AliyunVodupToyoPublishManager.swift */,
+				A70E3F3B236FF9CD0039D7FC /* AliyunVodUpToYoPublishModel.swift */,
+				A70E3F3C236FF9CD0039D7FC /* PublishUploadProgressView.swift */,
+			);
+			path = AliyunVodUpToyoPublishManager;
+			sourceTree = "<group>";
+		};
 		A714348822DD9E2800132DA9 /* ViewController */ = {
 			isa = PBXGroup;
 			children = (
@@ -2505,9 +2565,9 @@
 		A747D8072359B8C6007F4E33 /* AliyunManager */ = {
 			isa = PBXGroup;
 			children = (
+				A70E3F34236FF9CD0039D7FC /* AliyunVodManager */,
 				A7EE5B01236C13B900309931 /* AliPlayerManager */,
-				A7EE5B03236C13B900309931 /* AliyunOSSManager */,
-				A7EE5AF8236C13B700309931 /* AliyunVodManager */,
+				A70E3F31236FF9AD0039D7FC /* AliyunOSSManager */,
 			);
 			path = AliyunManager;
 			sourceTree = "<group>";
@@ -3381,7 +3441,7 @@
 		A7811CCC2323D25A00C2D8DE /* PublishNewModule */ = {
 			isa = PBXGroup;
 			children = (
-				A7EE5AC3236C131A00309931 /* PublishConfirmPhotoNew */,
+				A70E3F2D236FF9520039D7FC /* PublishConfirmPhotoNew */,
 				A7EE5AC5236C131C00309931 /* PublishNew */,
 				A7EE5AE2236C131D00309931 /* PublishRecommendMusicNewController */,
 			);
@@ -4445,15 +4505,6 @@
 			path = View;
 			sourceTree = "<group>";
 		};
-		A7EE5AC3236C131A00309931 /* PublishConfirmPhotoNew */ = {
-			isa = PBXGroup;
-			children = (
-				A7EE5AF7236C136200309931 /* ViewController */,
-			);
-			name = PublishConfirmPhotoNew;
-			path = ../../../../../../../Desktop/RainbowPlanet/RainbowPlanet/Modules/PublishNewModule/PublishConfirmPhotoNew;
-			sourceTree = "<group>";
-		};
 		A7EE5AC5236C131C00309931 /* PublishNew */ = {
 			isa = PBXGroup;
 			children = (
@@ -4589,51 +4640,6 @@
 			path = ViewController;
 			sourceTree = "<group>";
 		};
-		A7EE5AF7236C136200309931 /* ViewController */ = {
-			isa = PBXGroup;
-			children = (
-				A7EE5AC4236C131A00309931 /* PublishConfirmPhotoNewViewController.swift */,
-			);
-			path = ViewController;
-			sourceTree = "<group>";
-		};
-		A7EE5AF8236C13B700309931 /* AliyunVodManager */ = {
-			isa = PBXGroup;
-			children = (
-				A7EE5AF9236C13B700309931 /* AliyunVodUptoyouDBManager */,
-				A7EE5AFD236C13B700309931 /* AliyunVodUpToyoPublishManager */,
-			);
-			name = AliyunVodManager;
-			path = ../../../../../../../Desktop/RainbowPlanet/RainbowPlanet/Manager/AliyunManager/AliyunVodManager;
-			sourceTree = "<group>";
-		};
-		A7EE5AF9236C13B700309931 /* AliyunVodUptoyouDBManager */ = {
-			isa = PBXGroup;
-			children = (
-				A7EE5AFA236C13B700309931 /* AliyunVodUptoyouDBManager.swift */,
-				A7EE5AFB236C13B700309931 /* Model */,
-			);
-			path = AliyunVodUptoyouDBManager;
-			sourceTree = "<group>";
-		};
-		A7EE5AFB236C13B700309931 /* Model */ = {
-			isa = PBXGroup;
-			children = (
-				A7EE5AFC236C13B700309931 /* AliyunVodUptoyouEffectsModel.swift */,
-			);
-			path = Model;
-			sourceTree = "<group>";
-		};
-		A7EE5AFD236C13B700309931 /* AliyunVodUpToyoPublishManager */ = {
-			isa = PBXGroup;
-			children = (
-				A7EE5AFE236C13B700309931 /* AliyunVodupToyoPublishManager.swift */,
-				A7EE5AFF236C13B700309931 /* AliyunVodUpToYoPublishModel.swift */,
-				A7EE5B00236C13B700309931 /* PublishUploadProgressView.swift */,
-			);
-			path = AliyunVodUpToyoPublishManager;
-			sourceTree = "<group>";
-		};
 		A7EE5B01236C13B900309931 /* AliPlayerManager */ = {
 			isa = PBXGroup;
 			children = (
@@ -4642,15 +4648,6 @@
 			path = AliPlayerManager;
 			sourceTree = "<group>";
 		};
-		A7EE5B03236C13B900309931 /* AliyunOSSManager */ = {
-			isa = PBXGroup;
-			children = (
-				A7EE5B04236C13B900309931 /* AliyunOSSManager.swift */,
-			);
-			name = AliyunOSSManager;
-			path = ../../../../../../../Desktop/RainbowPlanet/RainbowPlanet/Manager/AliyunManager/AliyunOSSManager;
-			sourceTree = "<group>";
-		};
 		A7EE5B0C236C14B400309931 /* AliyunResource */ = {
 			isa = PBXGroup;
 			children = (
@@ -6228,7 +6225,6 @@
 				A7F6891023572D15000C313F /* CircleLeavingMessageCommentListContentTableViewCell.swift in Sources */,
 				A77FAEF823584EC8002A1D08 /* CircleCommentListCommentReplyTableViewCell.swift in Sources */,
 				A7F6891423572D69000C313F /* CircleLeavingMessageCommentListFooterView.swift in Sources */,
-				A7EE5B05236C13B900309931 /* AliyunVodUptoyouDBManager.swift in Sources */,
 				A7D07CC922B7769600186014 /* RainbowBeanPhysicalCollectionViewCell.swift in Sources */,
 				BD61229922C3605C00D3F513 /* AliyunDBHelper.m in Sources */,
 				A7EE5AED236C131D00309931 /* PublishNewMusicListView.swift in Sources */,
@@ -6261,6 +6257,7 @@
 				A7C0FE0022B66E5A00BC1E86 /* CommunityFeaturedTopicsViewController.swift in Sources */,
 				A747D825235C8FA8007F4E33 /* TLPhotopickerDataSourcesProtocol.swift in Sources */,
 				A7EE5AEC236C131D00309931 /* PublishNewMusicView.swift in Sources */,
+				A70E3F33236FF9AD0039D7FC /* AliyunOSSManager.swift in Sources */,
 				BDD9377522DEF371002D11B3 /* PublishMusicListCell.swift in Sources */,
 				A76893A2233A0BB000819EC3 /* DrawCircleProgressButton.m in Sources */,
 				A7A98E12227ECA11005306E9 /* ProductSearchModel.swift in Sources */,
@@ -6315,7 +6312,6 @@
 				A784F2C923544CA500E49140 /* CircleRouterModuleType.swift in Sources */,
 				A77BB45B2329EDEF00DCAE32 /* NXLPermissionPhotoLibrary.swift in Sources */,
 				A7EE6E1223055A5A00628D39 /* MemoryManager.swift in Sources */,
-				A7EE5B07236C13B900309931 /* AliyunVodupToyoPublishManager.swift in Sources */,
 				BD61225422C355C800D3F513 /* AliyunMagicCameraViewController.m in Sources */,
 				BDAF83A222B330540004BCC3 /* RecommendSimilarCell.swift in Sources */,
 				BD2FCBE222B21CF70006D974 /* CommunityRecommendController.swift in Sources */,
@@ -6381,7 +6377,6 @@
 				BD6122BB22C3639E00D3F513 /* AlivcEditIconButton.m in Sources */,
 				A72A72D522321E2700B21995 /* ColorMacro.swift in Sources */,
 				BD0FAA5C22C4C32E00DDFB37 /* AliyunCropViewController.m in Sources */,
-				A7EE5B08236C13B900309931 /* AliyunVodUpToYoPublishModel.swift in Sources */,
 				BD1DC6CD228D160D00B89C57 /* OrderPurchaseModel.swift in Sources */,
 				A7EE5AEB236C131D00309931 /* PublishNewVideoPhotoView.swift in Sources */,
 				A784F2CC23547C9600E49140 /* CommunityCircleModel.swift in Sources */,
@@ -6434,6 +6429,7 @@
 				A72E685422F2D7580063D967 /* ATAuthSDKManager.swift in Sources */,
 				A7D5F26322C0CF8600F8E9AF /* UserFansModel.swift in Sources */,
 				BD13B6E122BA03BC008BB323 /* PublishSelTopicCollectionCell.swift in Sources */,
+				A70E3F3D236FF9CD0039D7FC /* AliyunVodUptoyouDBManager.swift in Sources */,
 				A7D5F25F22C0614400F8E9AF /* CommunityTopicCategoryModel.swift in Sources */,
 				A7778CDF22461BAD00C7C47A /* PhoneCountryAreaSectionHeaderView.swift in Sources */,
 				A7AA9F5A22C5FB1E0086498B /* SwiftMoyaNetWorkServiceVirus.swift in Sources */,
@@ -6558,9 +6554,10 @@
 				BD2FCBEA22B267280006D974 /* RecommendNoneCommentCell.swift in Sources */,
 				A7E19FB122BA3A0D009BCCE1 /* SearchTopicListTableViewCell.swift in Sources */,
 				A7B4E73A228192D20012914A /* CMSTemplateModel.swift in Sources */,
+				A70E3F30236FF9530039D7FC /* PublishConfirmPhotoNewViewController.swift in Sources */,
 				A76068E722E48DC5008DF18F /* BrowsePictureRouterModuleType.swift in Sources */,
+				A70E3F40236FF9CD0039D7FC /* AliyunVodUpToYoPublishModel.swift in Sources */,
 				BD12B66922B47D4800AEB10B /* RecommendSubCommentTableViewCell.swift in Sources */,
-				A7EE5B09236C13B900309931 /* PublishUploadProgressView.swift in Sources */,
 				A784F2B32350337D00E49140 /* ShareH5LinkView.swift in Sources */,
 				A7931E1822AFC1DF00297D0A /* CommunityFollowViewController.swift in Sources */,
 				BDBC0AF422DDE9BC00CA788E /* PublishRouterModuleType.swift in Sources */,
@@ -6600,7 +6597,6 @@
 				BD61227522C35A9500D3F513 /* AliyunIConfig.m in Sources */,
 				A770E5E922D383E500CBD0A4 /* CommunityCustomCommnetModel.swift in Sources */,
 				A77BB4562329EBD800DCAE32 /* NXLPermissionType.swift in Sources */,
-				A7EE5B06236C13B900309931 /* AliyunVodUptoyouEffectsModel.swift in Sources */,
 				A7D07CC722B774D600186014 /* RainbowBeanPhysicalView.swift in Sources */,
 				A71CAB4122CB32C700D908A8 /* VirusViewModel.swift in Sources */,
 				BD61226122C3561C00D3F513 /* MagicCameraPressCircleView.m in Sources */,
@@ -6660,6 +6656,7 @@
 				A7F2D6C622B0DC7B0093000B /* CommunityCommonSectionHeaderView.swift in Sources */,
 				A77BB4692329EFB500DCAE32 /* NXLPermissionMicrophone.swift in Sources */,
 				A770E61622D6625700CBD0A4 /* ShareCollectionViewCell.swift in Sources */,
+				A70E3F41236FF9CD0039D7FC /* PublishUploadProgressView.swift in Sources */,
 				BD01B1FA22BC673900CE9F36 /* PublishConfirmPhotoController.swift in Sources */,
 				BD10CD0C22BFCC7C0040796E /* PublishMusicView.swift in Sources */,
 				A7F2D6DF22B25B5D0093000B /* CardContentPicVideoCollectionViewLayout.swift in Sources */,
@@ -6672,6 +6669,7 @@
 				A7D07CCF22B77E0200186014 /* UserPersonalCenterOrderCollectionViewCell.swift in Sources */,
 				BD0808EC22C5BA3100D12E6A /* AliyunCompositionInfo.m in Sources */,
 				A72A72D222321E2700B21995 /* Common.swift in Sources */,
+				A70E3F3F236FF9CD0039D7FC /* AliyunVodupToyoPublishManager.swift in Sources */,
 				BD1FC17F22B08D3C00D55081 /* CommunityMyFollowTopicController.swift in Sources */,
 				A71AF0A6226EDDC8001730FE /* SearchViewController.swift in Sources */,
 				A7EE5AF0236C131D00309931 /* PublishNewEffectBeautyView.swift in Sources */,
@@ -6692,7 +6690,6 @@
 				A7CC751F227190C5003C4F38 /* AccountSecurityViewController.swift in Sources */,
 				BD13B6C422BA034D008BB323 /* PublishEditDefaultCollectionCell.swift in Sources */,
 				A770E5E022CF19FA00CBD0A4 /* CommunityRouterModuleType.swift in Sources */,
-				A7EE5B0B236C13B900309931 /* AliyunOSSManager.swift in Sources */,
 				BD29A92E228F99780018CFC3 /* OrderCommentParameterModel.swift in Sources */,
 				A7284440224DFACD00F82F30 /* InfoModel.swift in Sources */,
 				A7F6890923571B9D000C313F /* CommunityCircleMessagesModel.swift in Sources */,
@@ -6733,7 +6730,6 @@
 				A747D821235C8FA8007F4E33 /* TLPhotoLibrary.swift in Sources */,
 				A71901692275464000104A50 /* ProvinceCityAreaView.swift in Sources */,
 				BD12204422AF996E0051C7C2 /* MessageListController.swift in Sources */,
-				A7EE5AE5236C131D00309931 /* PublishConfirmPhotoNewViewController.swift in Sources */,
 				A7EE5AF4236C131D00309931 /* PublishNewEffectFilterBeautyView.swift in Sources */,
 				A73A56D922DC8378004920FE /* UpdateVersionView.swift in Sources */,
 				BD477F6322C23D66008BE2CB /* AliyunReachability.m in Sources */,
@@ -6756,6 +6752,7 @@
 				A72A72BF22321DE000B21995 /* Extension+UIButton.swift in Sources */,
 				A7B77496236B2E5600BF26F1 /* WKWebView+PAWebCookie.m in Sources */,
 				BDE376DA22C22A260055E2EA /* UIButton+AliyunBlock.m in Sources */,
+				A70E3F3E236FF9CD0039D7FC /* AliyunVodUptoyouEffectsModel.swift in Sources */,
 				A7F304B523331B0800A4850F /* IMChatRoomViewController.swift in Sources */,
 				A7D07CBF22B73EE600186014 /* UserPersonalCenterViewController.swift in Sources */,
 				BD27F0AD22CC5E4D00A6514D /* CommunityVideoListController.swift in Sources */,

+ 281 - 0
RainbowPlanet/RainbowPlanet/Manager/AliyunManager/AliyunOSSManager/AliyunOSSManager.swift

@@ -0,0 +1,281 @@
+//
+//  AliyunOSSManager.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/10/18.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+import AliyunOSSiOS
+
+let kAliyunOSSAccessKeyId: String = "LTAIG2eCY5UdheM1"
+let kAliyunOSSAccessKeySecret: String = "4RJTcJkZsOJIby2oewUFHqUJxUR1vm"
+let kAliyunOSSBucketPublic: String = "uptoyo"
+let kAliyunOSSBucketPrivate: String = "uptoyo"
+let kAliyunOSSEndpoint: String = "https://oss-cn-zhangjiakou.aliyuncs.com"
+let kAliyunOSSImageEndpoint: String = "http://oss.uptoyo.com"
+let kAliyunOSSSecurityToken: String = "SecurityToken"
+
+
+
+typealias AliyunOSSManagerProgressBlock = (Float) -> Void
+typealias AliyunOSSManagerResultBlockUrl = (Bool, String?) -> Void
+typealias AliyunOSSManagerResultBlockUrls = (Bool, Array<String>?) -> Void
+
+class AliyunOSSManager: NSObject {
+
+    deinit {
+        NXLLog("deinit")
+    }
+    
+    static let shared : AliyunOSSManager = AliyunOSSManager()
+    
+    var client : OSSClient?
+    
+    var configOSSStsModel : ConfigOSSStsModel?
+    
+    /// 初始化AliyunOSS
+    func initAliyunOSSManager(completion: @escaping successCallBack) {
+        
+        SwiftMoyaNetWorkServiceConfig.shared().configOSSStsApi(completion: {
+            [weak self] (configOSSStsModel) -> (Void) in
+            self?.configOSSStsModel = configOSSStsModel as? ConfigOSSStsModel
+            // 1. credential
+            let credential = OSSStsTokenCredentialProvider(accessKeyId: self?.configOSSStsModel?.accessKeyId ?? "", secretKeyId: self?.configOSSStsModel?.accessKeySecret ?? "", securityToken: self?.configOSSStsModel?.stsToken ?? "")
+            
+
+            // 2. OSSClient配置参数
+            let configuration = OSSClientConfiguration()
+            configuration.maxRetryCount = 3
+            configuration.timeoutIntervalForRequest = 20
+//            configuration.isHttpdnsEnable = false
+//            configuration.crc64Verifiable = false
+            // 3. 初始OSS化客户端
+            self?.client = OSSClient(endpoint: kAliyunOSSEndpoint, credentialProvider: credential, clientConfiguration: configuration)
+            completion(nil)
+            
+        }) { (loadingStatus) in
+            SwiftProgressHUD.shared().showText("获取token失败")
+            return
+        }
+        
+    }
+    
+    
+    /// 创建请求
+    ///
+    /// - Parameters:
+    ///   - image: 图片
+    ///   - progressBlock: 进度条
+    /// - Returns: 返回
+    func getPut(image:UIImage,
+                progressBlock:@escaping AliyunOSSManagerProgressBlock)-> OSSPutObjectRequest {
+        
+        // 0.初始化客户端
+        initAliyunOSSManager { (_) -> (Void) in
+            
+        }
+        // 1.上传请求
+        let put = OSSPutObjectRequest()
+        
+        // 1.1.设置bucketName (文件夹名,与OSS对应)
+        put.bucketName = configOSSStsModel?.bucket ?? ""
+        
+        // 1.2.文件名路径
+        put.objectKey = AliyunOSSManager.objectKey()
+        
+        // 1.3.上传对象(图片data)
+        put.uploadingData = Data.imageCompressForSize(sourceImage: image, targetPx: 750.0) ?? image.pngData()!
+        
+        // 1.4.上传进度
+        put.uploadProgress = { (bytesSent , totalByteSent , totalBytesExpectedToSend) in
+            let progress = totalByteSent/totalBytesExpectedToSend
+            progressBlock(Float(progress))
+        }
+        return put
+        
+    }
+    
+    
+    /// 异步上传 单张图片
+    ///
+    /// - Parameters:
+    ///   - image: 图片
+    ///   - progressBlock: 进度
+    ///   - resultBlockUrl: 完成返回的url
+    func uploadPhotoAsync(image:UIImage,
+                          progressBlock:@escaping AliyunOSSManagerProgressBlock,
+                          resultBlockUrl:@escaping AliyunOSSManagerResultBlockUrl) {
+        
+        // 1. 创建请求
+        let put = getPut(image: image, progressBlock: progressBlock)
+        
+        // 2. 上传
+        let putTast = client?.putObject(put)
+        
+        putTast?.continue({ (task) -> Any? in
+            if (task.error != nil) {
+                NXLLog("上传失败:\(String(describing: task.error))")
+                DispatchQueue.main.async {
+                    resultBlockUrl(false,nil)
+                }
+            }else {
+                NXLLog("上传成功")
+                DispatchQueue.main.async {
+                    // 上传成功后的图片UrlStr
+                    let urlSting = kAliyunOSSImageEndpoint + "/" + put.objectKey
+                    resultBlockUrl(true,urlSting)
+                }
+            }
+            return nil
+        })
+        
+    }
+    
+    /// 同步上传 单张图片
+    ///
+    /// - Parameters:
+    ///   - image: 图片
+    ///   - progressBlock: 进度
+    ///   - resultBlockUrl: 完成返回的url
+    func uploadPhotoSync(image:UIImage,
+                          progressBlock:@escaping AliyunOSSManagerProgressBlock,
+                          resultBlockUrl:@escaping AliyunOSSManagerResultBlockUrl){
+        
+        // 1. 创建请求
+        let put = getPut(image: image, progressBlock: progressBlock)
+        
+        // 2. 上传
+        let putTast = client?.putObject(put)
+        
+        putTast?.continue({ (task) -> Any? in
+            if (task.error != nil) {
+                NXLLog("上传成功")
+                DispatchQueue.main.async {
+                    // 上传成功后的图片UrlStr
+                    // 上传成功后的图片UrlStr
+                    let urlSting = kAliyunOSSImageEndpoint + "/" + put.objectKey
+                    resultBlockUrl(true,urlSting)
+                }
+            }else {
+                NXLLog("上传失败:\(String(describing: task.error))")
+                DispatchQueue.main.async {
+                    resultBlockUrl(false,nil)
+                }
+            }
+            return nil
+        }).waitUntilFinished()
+    }
+    
+    
+    /// 多图上传
+    ///
+    /// - Parameters:
+    ///   - images: 多图
+    ///   - progressBlock: 进度
+    ///   - resultBlockUrl: 返回url
+    ///   - isAsync: 是否异步
+    func uploadPhotos(images:Array<UIImage>,
+                      progressBlock:@escaping AliyunOSSManagerProgressBlock,
+                      resultBlockUrls:@escaping AliyunOSSManagerResultBlockUrls,
+                      isAsync:Bool)  {
+        // 0.初始化客户端
+        initAliyunOSSManager { (_) -> (Void) in
+            // 1.线程队列
+            let queue = OperationQueue()
+            // 1.1最大线程数
+            queue.maxConcurrentOperationCount = images.count
+            var imageUrls = Array<String>()
+            
+            for image in images {
+                //创建operation
+                let operation = BlockOperation { [weak self] () -> Void in
+                    // 1.上传请求
+                    let put = OSSPutObjectRequest()
+                    
+                    // 1.1.设置bucketName (文件夹名,与OSS对应)
+                    put.bucketName = self?.configOSSStsModel?.bucket ?? ""
+                    
+                    // 1.2.文件名路径
+                    put.objectKey = AliyunOSSManager.objectKey()
+                    
+                    // 1.3.上传对象(图片data)
+                    put.uploadingData = Data.imageCompressForSize(sourceImage: image, targetPx: 1280.0) ?? image.pngData()!
+                    
+                    // 图片url
+                    // 上传成功后的图片UrlStr
+                    let urlSting = kAliyunOSSImageEndpoint + "/" + put.objectKey
+                    imageUrls.append(urlSting)
+                    
+                    // 1.4.上传进度
+                    //                put.uploadProgress = { (bytesSent , totalByteSent , totalBytesExpectedToSend) in
+                    //                    let progress = totalByteSent/totalBytesExpectedToSend
+                    //                    progressBlock(Float(progress))
+                    //                }
+                    
+                    // 1.5.上传
+                    let putTast = self?.client?.putObject(put)
+                    
+                    putTast?.continue({ (task) -> Any? in
+                        if (task.error != nil) {
+                            NXLLog("上传失败:\(String(describing: task.error))")
+                            
+                        }else {
+                            let result = task.result as? OSSPutObjectResult
+                            NXLLog("上传成功")
+                            NXLLog("Result - requestId: \(result?.requestId ?? ""),headerFields:\(String(describing: result?.httpResponseHeaderFields))")
+                            
+                        }
+                        return nil
+                    }).waitUntilFinished()
+                    
+                    // 异步
+                    if isAsync {
+                        if image == images.last {
+                            NXLLog("上传完成")
+                            resultBlockUrls(true,imageUrls)
+                        }
+                    }
+                    
+                }
+                if queue.operations.count != 0 {
+                    operation.addDependency(queue.operations.last!)
+                }
+                
+                queue.addOperation(operation)
+            }
+            
+            //同步
+            if !isAsync {
+                queue.waitUntilAllOperationsAreFinished()
+                resultBlockUrls(true,imageUrls)
+            }
+        }
+        
+    }
+}
+
+extension AliyunOSSManager {
+    
+    
+    /// 图片路径
+    static func objectKey() -> String {
+        
+        /// 时间文件夹
+        let dateStr = Date.dateToString(Date(), dateFormat: "yyyyMM")
+        
+        /// 时间戳
+        let dateTimeStamp = Date().timeStamp()
+        
+        /// 随机字符串
+        let randomString = PathManager.randomString()!
+        
+        /// 图片名
+        let imgName = "\(Int(dateTimeStamp))" + "_" + randomString + ".png"
+        
+        /// 路径
+        let objectKey = dateStr + "/" + imgName
+        return objectKey
+    }
+}

+ 50 - 0
RainbowPlanet/RainbowPlanet/Manager/AliyunManager/AliyunVodManager/AliyunVodUpToyoPublishManager/AliyunVodUpToYoPublishModel.swift

@@ -0,0 +1,50 @@
+//
+//  AliyunVodupToYoPublishModel.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/8/10.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class AliyunVodUpToYoPublishModel: NSObject {
+    
+    /// 发布类型
+    ///
+    /// - image: 图片
+    /// - video: 视频
+    enum PublishType {
+        case image
+        case video
+    }
+    
+    /// 上传到后端
+    var title: String?
+    var content: String?
+    var locationString: String?
+    // 纬度
+    var latitude: String = ""
+    // 经度
+    var longitude: String = ""
+    var topicIds: Array<String>?
+    
+    //图片/视频
+    var publishType : PublishType?
+    
+    //图片
+    var images: Array<UIImage>?
+    var imageUrlPaths:Array<String>?
+    var imageUrls = Array<String>()
+    
+    //视频
+    var videoPath: String?
+    var videoCoverImage: UIImage?
+    var videoCoverImageUrlPath: String?
+    var pushVideoId: String?
+    var pushVideoCoverImageUrl: String?
+    
+    /// 授权凭证
+    var uploadAuth : String?
+    
+}

Різницю між файлами не показано, бо вона завелика
+ 344 - 0
RainbowPlanet/RainbowPlanet/Manager/AliyunManager/AliyunVodManager/AliyunVodUpToyoPublishManager/AliyunVodupToyoPublishManager.swift


+ 188 - 0
RainbowPlanet/RainbowPlanet/Manager/AliyunManager/AliyunVodManager/AliyunVodUpToyoPublishManager/PublishUploadProgressView.swift

@@ -0,0 +1,188 @@
+//
+//  PublishUploadProgressView.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/7/21.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//  发布进度のView
+
+import UIKit
+import FWPopupView
+import RxSwift
+import RxCocoa
+
+/// 跳转方式
+///
+/// - none: 默认
+/// - push: push
+enum UploadStatus{
+    case uploading
+    case success
+    case failure
+}
+
+class PublishUploadProgressView: FWPopupView {
+    
+    
+    
+    let disposeBag = DisposeBag()
+    
+    override init(frame: CGRect) {
+        super.init(frame: frame)
+        setupViews()
+        setupLayouts()
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    
+    func setupViews() {
+        self.backgroundColor = kffffffColor
+        addSubview(imageView)
+        addSubview(progressLabel)
+        addSubview(progressView)
+        addSubview(failedLabel)
+        addSubview(failedCloseButton)
+    }
+    
+    func setupLayouts() {
+        imageView.snp.makeConstraints { (make) in
+            make.left.equalTo(14)
+            make.centerY.equalToSuperview()
+            make.size.equalTo(44)
+        }
+        progressLabel.snp.makeConstraints { (make) in
+            make.left.equalTo(imageView.snp.right).offset(10)
+            make.top.equalTo(14)
+            make.height.equalTo(20)
+        }
+        progressView.snp.makeConstraints { (make) in
+            make.top.equalTo(progressLabel.snp.bottom).offset(10)
+            make.left.equalTo(imageView.snp.right).offset(10)
+            make.right.equalTo(-15)
+            make.height.equalTo(4)
+        }
+        failedLabel.snp.makeConstraints { (make) in
+            make.left.equalTo(imageView.snp.right).offset(10)
+            make.centerY.equalToSuperview()
+            make.height.equalTo(20)
+        }
+        failedCloseButton.snp.makeConstraints { (make) in
+            make.right.equalTo(-3)
+            make.centerY.equalToSuperview()
+            make.size.equalTo(44)
+        }
+    }
+    
+    lazy var imageView: UIImageView = {
+        let imageView = UIImageView()
+        imageView.image = kImage(name: "default_pic")
+        imageView.contentMode =  .scaleAspectFill
+        imageView.clipsToBounds = true
+        return imageView
+    }()
+    
+    private lazy var progressLabel: UILabel = {
+        let progressLabel = UILabel()
+        progressLabel.textColor = k333333Color
+        progressLabel.font = kRegularFont14
+        progressLabel.textAlignment = .left
+        return progressLabel
+    }()
+    
+    private lazy var progressView: UIProgressView = {
+        let progressView = UIProgressView(progressViewStyle: .default)
+        progressView.setProgress(0, animated: false)
+        progressView.progressTintColor = kThemeColor //进度颜色
+        progressView.trackTintColor = kd8d8d8Color //剩余进度颜色
+        progressView.cornerRadius = 2
+        progressView.masksToBounds = true
+        return progressView
+    }()
+    
+    private lazy var failedLabel: UILabel = {
+        let failedLabel = UILabel()
+        failedLabel.text = "发布失败..."
+        failedLabel.textColor = k333333Color
+        failedLabel.font = kRegularFont14
+        failedLabel.textAlignment = .left
+        return failedLabel
+    }()
+    
+    private lazy var failedCloseButton: UIButton = {
+        let failedCloseButton = UIButton(type: UIButton.ButtonType.custom)
+        failedCloseButton.setImage(kImage(name: "popup_btn_close_black"), for: .normal)
+        failedCloseButton.rx.tap.subscribe(onNext: { [weak self] (data) in
+            self?.hide()
+            self?.attachedView?.isHidden = true
+            
+        }).disposed(by: disposeBag)
+        return failedCloseButton
+    }()
+    
+    var curUploadStatus : UploadStatus? {
+        didSet {
+            if curUploadStatus != nil {
+                judgeShowStatus()
+            }
+        }
+    }
+    
+    var uploadProgress: CGFloat? {
+        didSet {
+            progressView.setProgress(Float(self.uploadProgress ?? 0), animated: true)
+            
+            var progressValue: Float = Float(self.uploadProgress ?? 0)
+            progressValue = progressValue * 100
+            let proValueStr: String = String(format: "正在上传中%.0f%%", progressValue)
+            progressLabel.text = proValueStr
+        }
+    }
+    
+    class func publishUploadProgressView(attachedView:UIView?) -> PublishUploadProgressView {
+        let view = PublishUploadProgressView(frame: CGRect(x: 0, y: 0, width: kScreenWidth, height: 62))
+        view.curUploadStatus = .uploading
+        let vProperty = FWPopupViewProperty()
+        vProperty.popupCustomAlignment = .topCenter
+        vProperty.popupViewEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0 )
+        vProperty.popupAnimationType = .frame
+        vProperty.maskViewColor = UIColor(white: 0, alpha: 0.5)
+        vProperty.touchWildToHide = "0"
+        vProperty.maskViewColor = UIColor.clear
+        view.vProperty = vProperty
+        view.attachedView = attachedView
+        view.show()
+        return view
+    }
+    
+}
+
+extension PublishUploadProgressView {
+    
+    
+    func judgeShowStatus() -> Void {
+        switch curUploadStatus {
+        case .uploading?:
+            progressLabel.isHidden = false
+            progressView.isHidden = false
+            failedLabel.isHidden = true
+            failedCloseButton.isHidden = true
+            progressLabel.text = "正在上传中..."
+        case .success?:
+            progressLabel.isHidden = false
+            progressView.isHidden = false
+            failedLabel.isHidden = true
+            failedCloseButton.isHidden = true
+            progressLabel.text = "上传成功!发布中..."
+        case .failure?:
+            progressLabel.isHidden = true
+            progressView.isHidden = true
+            failedLabel.isHidden = false
+            failedCloseButton.isHidden = false
+        case .none:
+            break
+        }
+    }
+}

Різницю між файлами не показано, бо вона завелика
+ 155 - 0
RainbowPlanet/RainbowPlanet/Manager/AliyunManager/AliyunVodManager/AliyunVodUptoyouDBManager/AliyunVodUptoyouDBManager.swift


+ 170 - 0
RainbowPlanet/RainbowPlanet/Manager/AliyunManager/AliyunVodManager/AliyunVodUptoyouDBManager/Model/AliyunVodUptoyouEffectsModel.swift

@@ -0,0 +1,170 @@
+//
+//  AliyunVodUptoyouEffectsDBModel.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/9/30.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+/// 素材类别
+///
+/// - font: 字体
+/// - paster: 动图
+/// - mv: imv
+/// - filter: 滤镜
+/// - music: 音乐
+/// - caption: 字幕
+/// - specialFilter: 特殊过滤器
+enum AliyunEffectsType : Int {
+    case font = 1
+    case paster = 2
+    case mv = 3
+    case filter = 4
+    case music = 5
+    case caption = 6
+    case specialFilter = 7
+}
+
+/// 滤镜效果
+///
+/// - none: 无效果
+/// - face: 人物
+/// - food: 食物
+/// - scenery: 风景
+/// - pet: 宠物
+/// - specialStyle: 特殊风格
+enum AliyunFilterType : Int {
+    case none = 0
+    case face = 1
+    case food = 2
+    case scenery = 3
+    case pet = 4
+    case specialStyle  = 5
+}
+
+
+class AliyunVodUptoyouEffectsModel: NSObject {
+
+    /*
+     * Local
+     */
+    
+    //素材类别
+    var effectsType: AliyunEffectsType?
+    // 用于判断数据库是否包含该资源
+    var isDBContain = false
+    // 资源路径
+    var resourcePath: String?
+    // 字体在字体库中的名称
+    var fontName : String?
+    // 字幕在config中的字体id
+    var configFontId : Int?
+    // 字幕在config中的字体name
+    var configFontName : String?
+    //滤镜的类型
+    var filterType : AliyunFilterType?
+    
+    /*
+     * 以下均为server返回字段
+     */
+    
+    // id
+    var eid : Int?
+    var isNew : Bool?
+    var level : Int?
+    
+    // 名称
+    var name : String?
+    var cnName : String?
+    var key : String?
+    var category : String?
+    
+    // 下载路径 动图 MV 字幕等在第二层
+    var url : String?
+    var md5 : String?
+    var banner : String?
+    var icon : String?
+    // 描述
+    var edescription : String?
+    var preview : String?
+    var tag : String?
+    var cat : String?
+    var previewPic : String?
+    var previewMp4 : String?
+    var duration : String?
+    var type : String?
+    var sort : String?
+    var mvList : Array<AliyunEffectMvInfoModel>?
+    
+}
+
+class AliyunEffectMvInfoModel: NSObject {
+    var resourcePath : String?
+    var aspect : String?
+    var download : String?
+    var md5 : String?
+}
+
+class AliyunEffectInfoModel: NSObject {
+    
+    /**
+     数据ID
+     */
+    var eid : Int?
+    
+    /**
+     数据类型
+     */
+    var effectType : Int?
+    
+    /**
+     滤镜类型
+     */
+    var filterType : Int?
+    
+    /**
+     滤镜分类名称
+     */
+    var filterTypeName : String?
+    /**
+     滤镜分组id
+     */
+    var groupId : Int?
+    
+    /**
+     图标
+     */
+    var icon : String??
+    
+    /**
+     名称
+     */
+    var name : String?
+    
+    /**
+     滤镜描述
+     */
+    var edescription : String?
+    
+    /**
+     是否在数据库里包含
+     */
+    var isDBContain : Bool?
+    
+    /**
+     分组名称
+     */
+    var groupName : String?
+    
+    /**
+     download URL
+     */
+    var url : String?
+    var md5 : String?
+    
+    /**
+     资源路径
+     */
+    var resourcePath : String?
+}

+ 121 - 0
RainbowPlanet/RainbowPlanet/Modules/PublishNewModule/PublishConfirmPhotoNew/ViewController/PublishConfirmPhotoNewViewController.swift

@@ -0,0 +1,121 @@
+//
+//  PublishConfirmPhotoNewViewController.swift
+//  RainbowPlanet
+//
+//  Created by 南鑫林 on 2019/9/16.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+
+class PublishConfirmPhotoNewViewController: BaseViewController {
+
+   override func didReceiveMemoryWarning() {
+        super.didReceiveMemoryWarning()
+    }
+    
+    var photoImg: UIImage? {
+        didSet {
+            photoImageView.image = self.photoImg
+        }
+    }
+    
+    typealias PubImgClosure = (_ selectedAssetArray: Array<UIImage>) -> Void
+    var pubImgClosure: PubImgClosure?
+    
+    typealias BackClosure = () -> Void
+    var backClosure: BackClosure?
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        setupViews()
+        setupLayouts()
+        setupData()
+    }
+    
+    override var shouldAutorotate: Bool {
+        return false
+    }
+    
+    override func setupViews() {
+        navigationBar.isHidden = true
+        statusBarStyle = .lightContent
+        self.view.backgroundColor = UIColor.black
+        
+        view.addSubview(photoImageView)
+        view.addSubview(retakeBtn)
+        view.addSubview(usePhotoBtn)
+    }
+    
+    override func setupLayouts() {
+        photoImageView.snp.makeConstraints { (make) in
+            make.center.equalToSuperview()
+            make.width.equalTo(kScreenWidth)
+            make.height.equalTo(kScreenWidth * 16 / 9)
+        }
+        retakeBtn.snp.makeConstraints { (make) in
+            make.left.equalTo(photoImageView.snp.left)
+            make.bottom.equalTo(-kSafeTabBarHeight)
+            make.width.equalTo(125)
+            make.height.equalTo(48)
+        }
+        usePhotoBtn.snp.makeConstraints { (make) in
+            make.right.equalTo(photoImageView.snp.right)
+            make.bottom.equalTo(-kSafeTabBarHeight)
+            make.width.equalTo(125)
+            make.height.equalTo(48)
+        }
+    }
+    
+    override func setupData() {
+        retakeBtn.rx.tap.subscribe(onNext: { [weak self] (data) in
+            self?.navigationController?.popViewController(animated: true)
+        }).disposed(by: disposeBag)
+        
+        usePhotoBtn.rx.tap.subscribe(onNext: { [weak self] (data) in
+            PHPhotoLibrary.shared().performChanges({
+                
+            }, completionHandler: { [weak self] (success, error) in
+                    // 写入相册成功后,回到主线程进行流程
+                    DispatchQueue.main.async {
+                         [weak self] in
+                        if success != true{
+                            SwiftProgressHUD.shared().showText("保存失败")
+                            return
+                        }
+                        let imageArr: Array<UIImage> = [(self?.photoImg)!]
+                        if let pubImgClosure = self?.pubImgClosure {
+                            pubImgClosure(imageArr)
+                        }
+                    }
+            })
+            
+        }).disposed(by: disposeBag)
+    }
+    
+    private lazy var photoImageView: UIImageView = {
+        let photoImageView = UIImageView()
+        photoImageView.contentMode = .scaleAspectFit
+        return photoImageView
+    }()
+    
+    private lazy var retakeBtn: UIButton = {
+        let retakeBtn = UIButton(type: UIButton.ButtonType.custom)
+        retakeBtn.setTitle("重拍", for: .normal)
+        retakeBtn.setTitleColor(kffffffColor, for: .normal)
+        retakeBtn.titleLabel?.font = kMediumFont15
+       
+        return retakeBtn
+    }()
+    
+    private lazy var usePhotoBtn: UIButton = {
+        let usePhotoBtn = UIButton(type: UIButton.ButtonType.custom)
+        usePhotoBtn.setTitle("使用照片", for: .normal)
+        usePhotoBtn.setTitleColor(kffffffColor, for: .normal)
+        usePhotoBtn.titleLabel?.font = kMediumFont15
+        
+        return usePhotoBtn
+    }()
+
+}