diff --git a/yinmeng-ios/DingDangApp.xcodeproj/project.pbxproj b/yinmeng-ios/DingDangApp.xcodeproj/project.pbxproj index 0b57985..7fa693e 100644 --- a/yinmeng-ios/DingDangApp.xcodeproj/project.pbxproj +++ b/yinmeng-ios/DingDangApp.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 53; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -692,8 +692,50 @@ 18F5C6B72A5BB4E400D284AF /* UIButton+DDAction.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F5C6B62A5BB4E400D284AF /* UIButton+DDAction.m */; }; 18FC19D62A481A07006FC925 /* RoomEditPassWordView.m in Sources */ = {isa = PBXBuildFile; fileRef = 18FC19D52A481A07006FC925 /* RoomEditPassWordView.m */; }; 18FDEDCF2A50353A005EB21D /* DynamicSendLocationView.m in Sources */ = {isa = PBXBuildFile; fileRef = 18FDEDCE2A50353A005EB21D /* DynamicSendLocationView.m */; }; - 2358F57D2B230B4A0038453C /* DDVideoEncodeManage.m in Sources */ = {isa = PBXBuildFile; fileRef = 2358F57C2B230B4A0038453C /* DDVideoEncodeManage.m */; }; - 2358F5812B230C350038453C /* UILabel+DDFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 2358F5802B230C350038453C /* UILabel+DDFactory.m */; }; + 23B2A7B02B283A76001C0913 /* DDAppColor.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7622B283A75001C0913 /* DDAppColor.m */; }; + 23B2A7B12B283A76001C0913 /* DDBaseVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7662B283A75001C0913 /* DDBaseVC.m */; }; + 23B2A7B22B283A76001C0913 /* DDHUDManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7692B283A75001C0913 /* DDHUDManager.m */; }; + 23B2A7B32B283A76001C0913 /* DDUIImageFixedManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A76D2B283A75001C0913 /* DDUIImageFixedManager.m */; }; + 23B2A7B42B283A76001C0913 /* DDDownloadImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A76E2B283A75001C0913 /* DDDownloadImageView.m */; }; + 23B2A7B52B283A76001C0913 /* DDDownloadImageFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A76F2B283A75001C0913 /* DDDownloadImageFile.m */; }; + 23B2A7B62B283A76001C0913 /* UIImage+ImageEffects.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7732B283A76001C0913 /* UIImage+ImageEffects.m */; }; + 23B2A7B72B283A76001C0913 /* DDSVGAAnimationManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7752B283A76001C0913 /* DDSVGAAnimationManager.m */; }; + 23B2A7B82B283A76001C0913 /* UILabel+DDFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7782B283A76001C0913 /* UILabel+DDFactory.m */; }; + 23B2A7B92B283A76001C0913 /* UIView+UIView_DDAngleRoundedTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A77B2B283A76001C0913 /* UIView+UIView_DDAngleRoundedTool.m */; }; + 23B2A7BA2B283A76001C0913 /* DDBaseNavVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A77E2B283A76001C0913 /* DDBaseNavVC.m */; }; + 23B2A7BB2B283A76001C0913 /* UIButton+TouchRegion.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7812B283A76001C0913 /* UIButton+TouchRegion.m */; }; + 23B2A7BC2B283A76001C0913 /* DDBaseButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7842B283A76001C0913 /* DDBaseButton.m */; }; + 23B2A7BD2B283A76001C0913 /* DDVideoEncodeManage.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7872B283A76001C0913 /* DDVideoEncodeManage.m */; }; + 23B2A7BE2B283A76001C0913 /* TTPopup.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7892B283A76001C0913 /* TTPopup.m */; }; + 23B2A7BF2B283A76001C0913 /* TTAlertConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A78B2B283A76001C0913 /* TTAlertConfig.m */; }; + 23B2A7C02B283A76001C0913 /* TTAlertButtonConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7902B283A76001C0913 /* TTAlertButtonConfig.m */; }; + 23B2A7C12B283A76001C0913 /* TTAlertMessageAttributedConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7912B283A76001C0913 /* TTAlertMessageAttributedConfig.m */; }; + 23B2A7C22B283A76001C0913 /* TTActionSheetConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7922B283A76001C0913 /* TTActionSheetConfig.m */; }; + 23B2A7C32B283A76001C0913 /* TTPopupManagerService.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7962B283A76001C0913 /* TTPopupManagerService.m */; }; + 23B2A7C42B283A76001C0913 /* TTAlertView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7992B283A76001C0913 /* TTAlertView.m */; }; + 23B2A7C52B283A76001C0913 /* TTActionSheetView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A79C2B283A76001C0913 /* TTActionSheetView.m */; }; + 23B2A7C62B283A76001C0913 /* TTPopupService.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A79E2B283A76001C0913 /* TTPopupService.m */; }; + 23B2A7C72B283A76001C0913 /* DDFloatScreenAdvertiseModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7A42B283A76001C0913 /* DDFloatScreenAdvertiseModel.m */; }; + 23B2A7C82B283A76001C0913 /* DDFloatScreenAdvertiseManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7A62B283A76001C0913 /* DDFloatScreenAdvertiseManager.m */; }; + 23B2A7C92B283A76001C0913 /* DDFloatScreenAdvertiseView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7A82B283A76001C0913 /* DDFloatScreenAdvertiseView.m */; }; + 23B2A7CA2B283A76001C0913 /* DDCurVCManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7AC2B283A76001C0913 /* DDCurVCManager.m */; }; + 23B2A7CB2B283A76001C0913 /* UIImage+DDFilletCorner.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7AF2B283A76001C0913 /* UIImage+DDFilletCorner.m */; }; + 23B2A7F52B283ACA001C0913 /* BaseMvpPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7CF2B283ACA001C0913 /* BaseMvpPresenter.m */; }; + 23B2A7F62B283ACA001C0913 /* UserPhoto.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7D32B283ACA001C0913 /* UserPhoto.m */; }; + 23B2A7F72B283ACA001C0913 /* NSObject+AutoCoding.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7D52B283ACA001C0913 /* NSObject+AutoCoding.m */; }; + 23B2A7F82B283ACA001C0913 /* AccountInfoStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7D72B283ACA001C0913 /* AccountInfoStorage.m */; }; + 23B2A7F92B283ACA001C0913 /* BaseModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7D92B283ACA001C0913 /* BaseModel.m */; }; + 23B2A7FA2B283ACA001C0913 /* UserInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7DA2B283ACA001C0913 /* UserInfoModel.m */; }; + 23B2A7FB2B283ACA001C0913 /* UserVipInfoVo.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7DB2B283ACA001C0913 /* UserVipInfoVo.m */; }; + 23B2A7FC2B283ACA001C0913 /* UserExpand.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7DD2B283ACA001C0913 /* UserExpand.m */; }; + 23B2A7FD2B283ACA001C0913 /* UserGameInfoVo.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7DF2B283ACA001C0913 /* UserGameInfoVo.m */; }; + 23B2A7FE2B283ACA001C0913 /* UserLevelVo.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7E52B283ACA001C0913 /* UserLevelVo.m */; }; + 23B2A7FF2B283ACA001C0913 /* LoginTicketInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7E72B283ACA001C0913 /* LoginTicketInfo.m */; }; + 23B2A8002B283ACA001C0913 /* AccountModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7E82B283ACA001C0913 /* AccountModel.m */; }; + 23B2A8012B283ACA001C0913 /* UserInfoSkillVo.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7EA2B283ACA001C0913 /* UserInfoSkillVo.m */; }; + 23B2A8022B283ACA001C0913 /* MvpViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7ED2B283ACA001C0913 /* MvpViewController.m */; }; + 23B2A8032B283ACA001C0913 /* Api.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7EF2B283ACA001C0913 /* Api.m */; }; + 23B2A8042B283ACA001C0913 /* HttpRequestHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 23B2A7F22B283ACA001C0913 /* HttpRequestHelper.m */; }; 8C2C3EC92B277E7F002C3C34 /* DDIAPHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C2C3EC82B277E7F002C3C34 /* DDIAPHelper.m */; }; 8C2C3ECC2B2784DE002C3C34 /* DDIAPRechargeStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C2C3ECB2B2784DE002C3C34 /* DDIAPRechargeStorage.m */; }; 8C2C3ED02B278C9E002C3C34 /* DDUploadImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C2C3ECF2B278C9E002C3C34 /* DDUploadImage.m */; }; @@ -1987,10 +2029,100 @@ 18FC19D52A481A07006FC925 /* RoomEditPassWordView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RoomEditPassWordView.m; sourceTree = ""; }; 18FDEDCD2A50353A005EB21D /* DynamicSendLocationView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DynamicSendLocationView.h; sourceTree = ""; }; 18FDEDCE2A50353A005EB21D /* DynamicSendLocationView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DynamicSendLocationView.m; sourceTree = ""; }; - 2358F57B2B230B4A0038453C /* DDVideoEncodeManage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDVideoEncodeManage.h; sourceTree = ""; }; - 2358F57C2B230B4A0038453C /* DDVideoEncodeManage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDVideoEncodeManage.m; sourceTree = ""; }; - 2358F57F2B230C350038453C /* UILabel+DDFactory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UILabel+DDFactory.h"; sourceTree = ""; }; - 2358F5802B230C350038453C /* UILabel+DDFactory.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UILabel+DDFactory.m"; sourceTree = ""; }; + 23B2A7622B283A75001C0913 /* DDAppColor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDAppColor.m; sourceTree = ""; }; + 23B2A7632B283A75001C0913 /* DDAppColor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDAppColor.h; sourceTree = ""; }; + 23B2A7652B283A75001C0913 /* DDBaseVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDBaseVC.h; sourceTree = ""; }; + 23B2A7662B283A75001C0913 /* DDBaseVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDBaseVC.m; sourceTree = ""; }; + 23B2A7682B283A75001C0913 /* DDHUDManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDHUDManager.h; sourceTree = ""; }; + 23B2A7692B283A75001C0913 /* DDHUDManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDHUDManager.m; sourceTree = ""; }; + 23B2A76B2B283A75001C0913 /* DDDownloadImageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDDownloadImageView.h; sourceTree = ""; }; + 23B2A76C2B283A75001C0913 /* DDDownloadImageFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDDownloadImageFile.h; sourceTree = ""; }; + 23B2A76D2B283A75001C0913 /* DDUIImageFixedManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDUIImageFixedManager.m; sourceTree = ""; }; + 23B2A76E2B283A75001C0913 /* DDDownloadImageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDDownloadImageView.m; sourceTree = ""; }; + 23B2A76F2B283A75001C0913 /* DDDownloadImageFile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDDownloadImageFile.m; sourceTree = ""; }; + 23B2A7702B283A75001C0913 /* DDUIImageFixedManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDUIImageFixedManager.h; sourceTree = ""; }; + 23B2A7722B283A76001C0913 /* UIImage+ImageEffects.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+ImageEffects.h"; sourceTree = ""; }; + 23B2A7732B283A76001C0913 /* UIImage+ImageEffects.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+ImageEffects.m"; sourceTree = ""; }; + 23B2A7752B283A76001C0913 /* DDSVGAAnimationManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDSVGAAnimationManager.m; sourceTree = ""; }; + 23B2A7762B283A76001C0913 /* DDSVGAAnimationManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDSVGAAnimationManager.h; sourceTree = ""; }; + 23B2A7782B283A76001C0913 /* UILabel+DDFactory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UILabel+DDFactory.m"; sourceTree = ""; }; + 23B2A7792B283A76001C0913 /* UILabel+DDFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UILabel+DDFactory.h"; sourceTree = ""; }; + 23B2A77B2B283A76001C0913 /* UIView+UIView_DDAngleRoundedTool.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+UIView_DDAngleRoundedTool.m"; sourceTree = ""; }; + 23B2A77C2B283A76001C0913 /* UIView+UIView_DDAngleRoundedTool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+UIView_DDAngleRoundedTool.h"; sourceTree = ""; }; + 23B2A77E2B283A76001C0913 /* DDBaseNavVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDBaseNavVC.m; sourceTree = ""; }; + 23B2A77F2B283A76001C0913 /* DDBaseNavVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDBaseNavVC.h; sourceTree = ""; }; + 23B2A7812B283A76001C0913 /* UIButton+TouchRegion.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIButton+TouchRegion.m"; sourceTree = ""; }; + 23B2A7822B283A76001C0913 /* DDBaseButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDBaseButton.h; sourceTree = ""; }; + 23B2A7832B283A76001C0913 /* UIButton+TouchRegion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIButton+TouchRegion.h"; sourceTree = ""; }; + 23B2A7842B283A76001C0913 /* DDBaseButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDBaseButton.m; sourceTree = ""; }; + 23B2A7862B283A76001C0913 /* DDVideoEncodeManage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDVideoEncodeManage.h; sourceTree = ""; }; + 23B2A7872B283A76001C0913 /* DDVideoEncodeManage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDVideoEncodeManage.m; sourceTree = ""; }; + 23B2A7892B283A76001C0913 /* TTPopup.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TTPopup.m; sourceTree = ""; }; + 23B2A78B2B283A76001C0913 /* TTAlertConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TTAlertConfig.m; sourceTree = ""; }; + 23B2A78C2B283A76001C0913 /* TTAlertMessageAttributedConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TTAlertMessageAttributedConfig.h; sourceTree = ""; }; + 23B2A78D2B283A76001C0913 /* TTAlertButtonConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TTAlertButtonConfig.h; sourceTree = ""; }; + 23B2A78E2B283A76001C0913 /* TTActionSheetConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TTActionSheetConfig.h; sourceTree = ""; }; + 23B2A78F2B283A76001C0913 /* TTAlertConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TTAlertConfig.h; sourceTree = ""; }; + 23B2A7902B283A76001C0913 /* TTAlertButtonConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TTAlertButtonConfig.m; sourceTree = ""; }; + 23B2A7912B283A76001C0913 /* TTAlertMessageAttributedConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TTAlertMessageAttributedConfig.m; sourceTree = ""; }; + 23B2A7922B283A76001C0913 /* TTActionSheetConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TTActionSheetConfig.m; sourceTree = ""; }; + 23B2A7942B283A76001C0913 /* TTPopupManagerServiceProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TTPopupManagerServiceProtocol.h; sourceTree = ""; }; + 23B2A7952B283A76001C0913 /* TTPopupManagerService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TTPopupManagerService.h; sourceTree = ""; }; + 23B2A7962B283A76001C0913 /* TTPopupManagerService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TTPopupManagerService.m; sourceTree = ""; }; + 23B2A7972B283A76001C0913 /* TTPopup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TTPopup.h; sourceTree = ""; }; + 23B2A7992B283A76001C0913 /* TTAlertView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TTAlertView.m; sourceTree = ""; }; + 23B2A79A2B283A76001C0913 /* TTActionSheetView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TTActionSheetView.h; sourceTree = ""; }; + 23B2A79B2B283A76001C0913 /* TTAlertView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TTAlertView.h; sourceTree = ""; }; + 23B2A79C2B283A76001C0913 /* TTActionSheetView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TTActionSheetView.m; sourceTree = ""; }; + 23B2A79E2B283A76001C0913 /* TTPopupService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TTPopupService.m; sourceTree = ""; }; + 23B2A79F2B283A76001C0913 /* TTPopupServiceProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TTPopupServiceProtocol.h; sourceTree = ""; }; + 23B2A7A02B283A76001C0913 /* TTPopupService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TTPopupService.h; sourceTree = ""; }; + 23B2A7A22B283A76001C0913 /* TTPopupConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TTPopupConstants.h; sourceTree = ""; }; + 23B2A7A42B283A76001C0913 /* DDFloatScreenAdvertiseModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDFloatScreenAdvertiseModel.m; sourceTree = ""; }; + 23B2A7A52B283A76001C0913 /* DDFloatScreenAdvertiseView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDFloatScreenAdvertiseView.h; sourceTree = ""; }; + 23B2A7A62B283A76001C0913 /* DDFloatScreenAdvertiseManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDFloatScreenAdvertiseManager.m; sourceTree = ""; }; + 23B2A7A72B283A76001C0913 /* DDFloatScreenAdvertiseManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDFloatScreenAdvertiseManager.h; sourceTree = ""; }; + 23B2A7A82B283A76001C0913 /* DDFloatScreenAdvertiseView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDFloatScreenAdvertiseView.m; sourceTree = ""; }; + 23B2A7A92B283A76001C0913 /* DDFloatScreenAdvertiseModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDFloatScreenAdvertiseModel.h; sourceTree = ""; }; + 23B2A7AB2B283A76001C0913 /* DDCurVCManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDCurVCManager.h; sourceTree = ""; }; + 23B2A7AC2B283A76001C0913 /* DDCurVCManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDCurVCManager.m; sourceTree = ""; }; + 23B2A7AE2B283A76001C0913 /* UIImage+DDFilletCorner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+DDFilletCorner.h"; sourceTree = ""; }; + 23B2A7AF2B283A76001C0913 /* UIImage+DDFilletCorner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+DDFilletCorner.m"; sourceTree = ""; }; + 23B2A7CE2B283ACA001C0913 /* BaseMvpPresenter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseMvpPresenter.h; sourceTree = ""; }; + 23B2A7CF2B283ACA001C0913 /* BaseMvpPresenter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseMvpPresenter.m; sourceTree = ""; }; + 23B2A7D12B283ACA001C0913 /* BaseMvpProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseMvpProtocol.h; sourceTree = ""; }; + 23B2A7D32B283ACA001C0913 /* UserPhoto.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UserPhoto.m; sourceTree = ""; }; + 23B2A7D42B283ACA001C0913 /* UserGameInfoVo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UserGameInfoVo.h; sourceTree = ""; }; + 23B2A7D52B283ACA001C0913 /* NSObject+AutoCoding.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSObject+AutoCoding.m"; sourceTree = ""; }; + 23B2A7D62B283ACA001C0913 /* UserLevelVo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UserLevelVo.h; sourceTree = ""; }; + 23B2A7D72B283ACA001C0913 /* AccountInfoStorage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AccountInfoStorage.m; sourceTree = ""; }; + 23B2A7D82B283ACA001C0913 /* LoginTicketInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoginTicketInfo.h; sourceTree = ""; }; + 23B2A7D92B283ACA001C0913 /* BaseModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseModel.m; sourceTree = ""; }; + 23B2A7DA2B283ACA001C0913 /* UserInfoModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UserInfoModel.m; sourceTree = ""; }; + 23B2A7DB2B283ACA001C0913 /* UserVipInfoVo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UserVipInfoVo.m; sourceTree = ""; }; + 23B2A7DC2B283ACA001C0913 /* UserInfoSkillVo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UserInfoSkillVo.h; sourceTree = ""; }; + 23B2A7DD2B283ACA001C0913 /* UserExpand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UserExpand.m; sourceTree = ""; }; + 23B2A7DE2B283ACA001C0913 /* AccountModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AccountModel.h; sourceTree = ""; }; + 23B2A7DF2B283ACA001C0913 /* UserGameInfoVo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UserGameInfoVo.m; sourceTree = ""; }; + 23B2A7E02B283ACA001C0913 /* UserPhoto.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UserPhoto.h; sourceTree = ""; }; + 23B2A7E12B283ACA001C0913 /* NSObject+AutoCoding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+AutoCoding.h"; sourceTree = ""; }; + 23B2A7E22B283ACA001C0913 /* UserVipInfoVo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UserVipInfoVo.h; sourceTree = ""; }; + 23B2A7E32B283ACA001C0913 /* UserInfoModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UserInfoModel.h; sourceTree = ""; }; + 23B2A7E42B283ACA001C0913 /* BaseModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseModel.h; sourceTree = ""; }; + 23B2A7E52B283ACA001C0913 /* UserLevelVo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UserLevelVo.m; sourceTree = ""; }; + 23B2A7E62B283ACA001C0913 /* AccountInfoStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AccountInfoStorage.h; sourceTree = ""; }; + 23B2A7E72B283ACA001C0913 /* LoginTicketInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LoginTicketInfo.m; sourceTree = ""; }; + 23B2A7E82B283ACA001C0913 /* AccountModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AccountModel.m; sourceTree = ""; }; + 23B2A7E92B283ACA001C0913 /* UserExpand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UserExpand.h; sourceTree = ""; }; + 23B2A7EA2B283ACA001C0913 /* UserInfoSkillVo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UserInfoSkillVo.m; sourceTree = ""; }; + 23B2A7EC2B283ACA001C0913 /* MvpViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MvpViewController.h; sourceTree = ""; }; + 23B2A7ED2B283ACA001C0913 /* MvpViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MvpViewController.m; sourceTree = ""; }; + 23B2A7EF2B283ACA001C0913 /* Api.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Api.m; sourceTree = ""; }; + 23B2A7F02B283ACA001C0913 /* Api.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Api.h; sourceTree = ""; }; + 23B2A7F22B283ACA001C0913 /* HttpRequestHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HttpRequestHelper.m; sourceTree = ""; }; + 23B2A7F32B283ACA001C0913 /* ApiHost.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ApiHost.h; sourceTree = ""; }; + 23B2A7F42B283ACA001C0913 /* HttpRequestHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HttpRequestHelper.h; sourceTree = ""; }; + 23B2A8062B2843B6001C0913 /* DDMacroHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDMacroHeader.h; sourceTree = ""; }; 2411BE5187E529C085E77220 /* libPods-DingDangAppTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-DingDangAppTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 42F5E7CEE31217A32E19E10E /* Pods-DingDangApp-DingDangAppUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-DingDangApp-DingDangAppUITests.debug.xcconfig"; path = "Target Support Files/Pods-DingDangApp-DingDangAppUITests/Pods-DingDangApp-DingDangAppUITests.debug.xcconfig"; sourceTree = ""; }; 688E5912F2E950A95FC1EE55 /* Pods-DingDangAppTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-DingDangAppTests.release.xcconfig"; path = "Target Support Files/Pods-DingDangAppTests/Pods-DingDangAppTests.release.xcconfig"; sourceTree = ""; }; @@ -4945,6 +5077,7 @@ 2358F5732B23085F0038453C /* YingMeng */ = { isa = PBXGroup; children = ( + 23B2A8052B2843B6001C0913 /* DDGlobalManager */, 2358F5742B23085F0038453C /* DDBaseCompilation */, ); path = YingMeng; @@ -4953,6 +5086,8 @@ 2358F5742B23085F0038453C /* DDBaseCompilation */ = { isa = PBXGroup; children = ( + 23B2A7CC2B283ACA001C0913 /* MVP */, + 23B2A7F12B283ACA001C0913 /* Net */, 2358F5752B23085F0038453C /* DDBaseUI */, 8CE493952B23F2B400CA14D5 /* DDBaseTool */, ); @@ -4962,28 +5097,323 @@ 2358F5752B23085F0038453C /* DDBaseUI */ = { isa = PBXGroup; children = ( - 2358F57E2B230C1C0038453C /* DDBaseUILabel */, - 2358F57A2B230B4A0038453C /* DDVideoEncodeManage */, + 23B2A7612B283A75001C0913 /* DDAppColor */, + 23B2A77D2B283A76001C0913 /* DDBaseNavVC */, + 23B2A7802B283A76001C0913 /* DDBaseUIButton */, + 23B2A7AD2B283A76001C0913 /* DDBaseUIimage */, + 23B2A7772B283A76001C0913 /* DDBaseUILabel */, + 23B2A7642B283A75001C0913 /* DDBaseVC */, + 23B2A7AA2B283A76001C0913 /* DDCurVCManager */, + 23B2A7A32B283A76001C0913 /* DDFloatScreenAdvertisingView */, + 23B2A7672B283A75001C0913 /* DDHUDManager */, + 23B2A7742B283A76001C0913 /* DDSVGAAnimation */, + 23B2A76A2B283A75001C0913 /* DDUIImageFixed */, + 23B2A77A2B283A76001C0913 /* DDUIView */, + 23B2A7852B283A76001C0913 /* DDVideoEncodeManage */, + 23B2A7882B283A76001C0913 /* TTPopup */, + 23B2A7712B283A76001C0913 /* VagueImageView */, ); path = DDBaseUI; sourceTree = ""; }; - 2358F57A2B230B4A0038453C /* DDVideoEncodeManage */ = { + 23B2A7612B283A75001C0913 /* DDAppColor */ = { isa = PBXGroup; children = ( - 2358F57B2B230B4A0038453C /* DDVideoEncodeManage.h */, - 2358F57C2B230B4A0038453C /* DDVideoEncodeManage.m */, + 23B2A7622B283A75001C0913 /* DDAppColor.m */, + 23B2A7632B283A75001C0913 /* DDAppColor.h */, + ); + path = DDAppColor; + sourceTree = ""; + }; + 23B2A7642B283A75001C0913 /* DDBaseVC */ = { + isa = PBXGroup; + children = ( + 23B2A7652B283A75001C0913 /* DDBaseVC.h */, + 23B2A7662B283A75001C0913 /* DDBaseVC.m */, + ); + path = DDBaseVC; + sourceTree = ""; + }; + 23B2A7672B283A75001C0913 /* DDHUDManager */ = { + isa = PBXGroup; + children = ( + 23B2A7682B283A75001C0913 /* DDHUDManager.h */, + 23B2A7692B283A75001C0913 /* DDHUDManager.m */, + ); + path = DDHUDManager; + sourceTree = ""; + }; + 23B2A76A2B283A75001C0913 /* DDUIImageFixed */ = { + isa = PBXGroup; + children = ( + 23B2A76C2B283A75001C0913 /* DDDownloadImageFile.h */, + 23B2A76F2B283A75001C0913 /* DDDownloadImageFile.m */, + 23B2A76B2B283A75001C0913 /* DDDownloadImageView.h */, + 23B2A76E2B283A75001C0913 /* DDDownloadImageView.m */, + 23B2A7702B283A75001C0913 /* DDUIImageFixedManager.h */, + 23B2A76D2B283A75001C0913 /* DDUIImageFixedManager.m */, + ); + path = DDUIImageFixed; + sourceTree = ""; + }; + 23B2A7712B283A76001C0913 /* VagueImageView */ = { + isa = PBXGroup; + children = ( + 23B2A7722B283A76001C0913 /* UIImage+ImageEffects.h */, + 23B2A7732B283A76001C0913 /* UIImage+ImageEffects.m */, + ); + path = VagueImageView; + sourceTree = ""; + }; + 23B2A7742B283A76001C0913 /* DDSVGAAnimation */ = { + isa = PBXGroup; + children = ( + 23B2A7752B283A76001C0913 /* DDSVGAAnimationManager.m */, + 23B2A7762B283A76001C0913 /* DDSVGAAnimationManager.h */, + ); + path = DDSVGAAnimation; + sourceTree = ""; + }; + 23B2A7772B283A76001C0913 /* DDBaseUILabel */ = { + isa = PBXGroup; + children = ( + 23B2A7782B283A76001C0913 /* UILabel+DDFactory.m */, + 23B2A7792B283A76001C0913 /* UILabel+DDFactory.h */, + ); + path = DDBaseUILabel; + sourceTree = ""; + }; + 23B2A77A2B283A76001C0913 /* DDUIView */ = { + isa = PBXGroup; + children = ( + 23B2A77B2B283A76001C0913 /* UIView+UIView_DDAngleRoundedTool.m */, + 23B2A77C2B283A76001C0913 /* UIView+UIView_DDAngleRoundedTool.h */, + ); + path = DDUIView; + sourceTree = ""; + }; + 23B2A77D2B283A76001C0913 /* DDBaseNavVC */ = { + isa = PBXGroup; + children = ( + 23B2A77E2B283A76001C0913 /* DDBaseNavVC.m */, + 23B2A77F2B283A76001C0913 /* DDBaseNavVC.h */, + ); + path = DDBaseNavVC; + sourceTree = ""; + }; + 23B2A7802B283A76001C0913 /* DDBaseUIButton */ = { + isa = PBXGroup; + children = ( + 23B2A7812B283A76001C0913 /* UIButton+TouchRegion.m */, + 23B2A7822B283A76001C0913 /* DDBaseButton.h */, + 23B2A7832B283A76001C0913 /* UIButton+TouchRegion.h */, + 23B2A7842B283A76001C0913 /* DDBaseButton.m */, + ); + path = DDBaseUIButton; + sourceTree = ""; + }; + 23B2A7852B283A76001C0913 /* DDVideoEncodeManage */ = { + isa = PBXGroup; + children = ( + 23B2A7862B283A76001C0913 /* DDVideoEncodeManage.h */, + 23B2A7872B283A76001C0913 /* DDVideoEncodeManage.m */, ); path = DDVideoEncodeManage; sourceTree = ""; }; - 2358F57E2B230C1C0038453C /* DDBaseUILabel */ = { + 23B2A7882B283A76001C0913 /* TTPopup */ = { isa = PBXGroup; children = ( - 2358F57F2B230C350038453C /* UILabel+DDFactory.h */, - 2358F5802B230C350038453C /* UILabel+DDFactory.m */, + 23B2A7892B283A76001C0913 /* TTPopup.m */, + 23B2A78A2B283A76001C0913 /* Config */, + 23B2A7932B283A76001C0913 /* Manager */, + 23B2A7972B283A76001C0913 /* TTPopup.h */, + 23B2A7982B283A76001C0913 /* View */, + 23B2A79D2B283A76001C0913 /* Service */, + 23B2A7A12B283A76001C0913 /* Header */, ); - path = DDBaseUILabel; + path = TTPopup; + sourceTree = ""; + }; + 23B2A78A2B283A76001C0913 /* Config */ = { + isa = PBXGroup; + children = ( + 23B2A78B2B283A76001C0913 /* TTAlertConfig.m */, + 23B2A78C2B283A76001C0913 /* TTAlertMessageAttributedConfig.h */, + 23B2A78D2B283A76001C0913 /* TTAlertButtonConfig.h */, + 23B2A78E2B283A76001C0913 /* TTActionSheetConfig.h */, + 23B2A78F2B283A76001C0913 /* TTAlertConfig.h */, + 23B2A7902B283A76001C0913 /* TTAlertButtonConfig.m */, + 23B2A7912B283A76001C0913 /* TTAlertMessageAttributedConfig.m */, + 23B2A7922B283A76001C0913 /* TTActionSheetConfig.m */, + ); + path = Config; + sourceTree = ""; + }; + 23B2A7932B283A76001C0913 /* Manager */ = { + isa = PBXGroup; + children = ( + 23B2A7942B283A76001C0913 /* TTPopupManagerServiceProtocol.h */, + 23B2A7952B283A76001C0913 /* TTPopupManagerService.h */, + 23B2A7962B283A76001C0913 /* TTPopupManagerService.m */, + ); + path = Manager; + sourceTree = ""; + }; + 23B2A7982B283A76001C0913 /* View */ = { + isa = PBXGroup; + children = ( + 23B2A7992B283A76001C0913 /* TTAlertView.m */, + 23B2A79A2B283A76001C0913 /* TTActionSheetView.h */, + 23B2A79B2B283A76001C0913 /* TTAlertView.h */, + 23B2A79C2B283A76001C0913 /* TTActionSheetView.m */, + ); + path = View; + sourceTree = ""; + }; + 23B2A79D2B283A76001C0913 /* Service */ = { + isa = PBXGroup; + children = ( + 23B2A79E2B283A76001C0913 /* TTPopupService.m */, + 23B2A79F2B283A76001C0913 /* TTPopupServiceProtocol.h */, + 23B2A7A02B283A76001C0913 /* TTPopupService.h */, + ); + path = Service; + sourceTree = ""; + }; + 23B2A7A12B283A76001C0913 /* Header */ = { + isa = PBXGroup; + children = ( + 23B2A7A22B283A76001C0913 /* TTPopupConstants.h */, + ); + path = Header; + sourceTree = ""; + }; + 23B2A7A32B283A76001C0913 /* DDFloatScreenAdvertisingView */ = { + isa = PBXGroup; + children = ( + 23B2A7A42B283A76001C0913 /* DDFloatScreenAdvertiseModel.m */, + 23B2A7A52B283A76001C0913 /* DDFloatScreenAdvertiseView.h */, + 23B2A7A62B283A76001C0913 /* DDFloatScreenAdvertiseManager.m */, + 23B2A7A72B283A76001C0913 /* DDFloatScreenAdvertiseManager.h */, + 23B2A7A82B283A76001C0913 /* DDFloatScreenAdvertiseView.m */, + 23B2A7A92B283A76001C0913 /* DDFloatScreenAdvertiseModel.h */, + ); + path = DDFloatScreenAdvertisingView; + sourceTree = ""; + }; + 23B2A7AA2B283A76001C0913 /* DDCurVCManager */ = { + isa = PBXGroup; + children = ( + 23B2A7AB2B283A76001C0913 /* DDCurVCManager.h */, + 23B2A7AC2B283A76001C0913 /* DDCurVCManager.m */, + ); + path = DDCurVCManager; + sourceTree = ""; + }; + 23B2A7AD2B283A76001C0913 /* DDBaseUIimage */ = { + isa = PBXGroup; + children = ( + 23B2A7AE2B283A76001C0913 /* UIImage+DDFilletCorner.h */, + 23B2A7AF2B283A76001C0913 /* UIImage+DDFilletCorner.m */, + ); + path = DDBaseUIimage; + sourceTree = ""; + }; + 23B2A7CC2B283ACA001C0913 /* MVP */ = { + isa = PBXGroup; + children = ( + 23B2A7CD2B283ACA001C0913 /* Presenter */, + 23B2A7D02B283ACA001C0913 /* Protocol */, + 23B2A7D22B283ACA001C0913 /* Model */, + 23B2A7EB2B283ACA001C0913 /* View */, + 23B2A7EE2B283ACA001C0913 /* Api */, + ); + path = MVP; + sourceTree = ""; + }; + 23B2A7CD2B283ACA001C0913 /* Presenter */ = { + isa = PBXGroup; + children = ( + 23B2A7CE2B283ACA001C0913 /* BaseMvpPresenter.h */, + 23B2A7CF2B283ACA001C0913 /* BaseMvpPresenter.m */, + ); + path = Presenter; + sourceTree = ""; + }; + 23B2A7D02B283ACA001C0913 /* Protocol */ = { + isa = PBXGroup; + children = ( + 23B2A7D12B283ACA001C0913 /* BaseMvpProtocol.h */, + ); + path = Protocol; + sourceTree = ""; + }; + 23B2A7D22B283ACA001C0913 /* Model */ = { + isa = PBXGroup; + children = ( + 23B2A7D32B283ACA001C0913 /* UserPhoto.m */, + 23B2A7D42B283ACA001C0913 /* UserGameInfoVo.h */, + 23B2A7D52B283ACA001C0913 /* NSObject+AutoCoding.m */, + 23B2A7D62B283ACA001C0913 /* UserLevelVo.h */, + 23B2A7D72B283ACA001C0913 /* AccountInfoStorage.m */, + 23B2A7D82B283ACA001C0913 /* LoginTicketInfo.h */, + 23B2A7D92B283ACA001C0913 /* BaseModel.m */, + 23B2A7DA2B283ACA001C0913 /* UserInfoModel.m */, + 23B2A7DB2B283ACA001C0913 /* UserVipInfoVo.m */, + 23B2A7DC2B283ACA001C0913 /* UserInfoSkillVo.h */, + 23B2A7DD2B283ACA001C0913 /* UserExpand.m */, + 23B2A7DE2B283ACA001C0913 /* AccountModel.h */, + 23B2A7DF2B283ACA001C0913 /* UserGameInfoVo.m */, + 23B2A7E02B283ACA001C0913 /* UserPhoto.h */, + 23B2A7E12B283ACA001C0913 /* NSObject+AutoCoding.h */, + 23B2A7E22B283ACA001C0913 /* UserVipInfoVo.h */, + 23B2A7E32B283ACA001C0913 /* UserInfoModel.h */, + 23B2A7E42B283ACA001C0913 /* BaseModel.h */, + 23B2A7E52B283ACA001C0913 /* UserLevelVo.m */, + 23B2A7E62B283ACA001C0913 /* AccountInfoStorage.h */, + 23B2A7E72B283ACA001C0913 /* LoginTicketInfo.m */, + 23B2A7E82B283ACA001C0913 /* AccountModel.m */, + 23B2A7E92B283ACA001C0913 /* UserExpand.h */, + 23B2A7EA2B283ACA001C0913 /* UserInfoSkillVo.m */, + ); + path = Model; + sourceTree = ""; + }; + 23B2A7EB2B283ACA001C0913 /* View */ = { + isa = PBXGroup; + children = ( + 23B2A7EC2B283ACA001C0913 /* MvpViewController.h */, + 23B2A7ED2B283ACA001C0913 /* MvpViewController.m */, + ); + path = View; + sourceTree = ""; + }; + 23B2A7EE2B283ACA001C0913 /* Api */ = { + isa = PBXGroup; + children = ( + 23B2A7EF2B283ACA001C0913 /* Api.m */, + 23B2A7F02B283ACA001C0913 /* Api.h */, + ); + path = Api; + sourceTree = ""; + }; + 23B2A7F12B283ACA001C0913 /* Net */ = { + isa = PBXGroup; + children = ( + 23B2A7F22B283ACA001C0913 /* HttpRequestHelper.m */, + 23B2A7F32B283ACA001C0913 /* ApiHost.h */, + 23B2A7F42B283ACA001C0913 /* HttpRequestHelper.h */, + ); + path = Net; + sourceTree = ""; + }; + 23B2A8052B2843B6001C0913 /* DDGlobalManager */ = { + isa = PBXGroup; + children = ( + 23B2A8062B2843B6001C0913 /* DDMacroHeader.h */, + ); + path = DDGlobalManager; sourceTree = ""; }; 32CE1ADC954F476C1C94DB40 /* Frameworks */ = { @@ -5756,6 +6186,7 @@ 1802B3CB2A540F870036DCEF /* DDProtocolView.m in Sources */, 18660CD92A21921F0032D0C9 /* NetTipView.m in Sources */, 188AF5982A273CE9004DD4CF /* DDStorePageVC.m in Sources */, + 23B2A7C22B283A76001C0913 /* TTActionSheetConfig.m in Sources */, 188AF5BF2A275C57004DD4CF /* RoomPublicScreenModel.m in Sources */, 188EC1212A47CF3200060F03 /* HXPhotoModel.m in Sources */, 188EC1132A47CF3200060F03 /* HXPhotoCommon.m in Sources */, @@ -5790,6 +6221,7 @@ 189569B32A235C4400DCF149 /* RoomOnlineUserListCell.m in Sources */, 188EC0E42A47CF3200060F03 /* DDMToolView.m in Sources */, 18660CEB2A2193050032D0C9 /* WLRefreshNormalHeader.m in Sources */, + 23B2A7C02B283A76001C0913 /* TTAlertButtonConfig.m in Sources */, 188CA9662A4FCD5D00DAFC86 /* DDV2BannerImgView.m in Sources */, 189569A62A232EB300DCF149 /* RoomMoreManagementView.m in Sources */, 188EC1092A47CF3200060F03 /* NSBundle+HXPhotoPicker.m in Sources */, @@ -5806,6 +6238,7 @@ 181F754B2A5409AB006FA7F5 /* DDGradientView.m in Sources */, 188EC11C2A47CF3200060F03 /* HXPhotoViewController.m in Sources */, 8CE493B02B2404E000CA14D5 /* DDGCDHelper.m in Sources */, + 23B2A7B22B283A76001C0913 /* DDHUDManager.m in Sources */, 188EBF742A47CEA500060F03 /* DDSystemXiaoXiInfoVC.m in Sources */, 18660D4A2A2193C50032D0C9 /* UIViewController+Custom.m in Sources */, 188EBF762A47CEA500060F03 /* DDLiveListCell.m in Sources */, @@ -5820,10 +6253,11 @@ 1812EC842A54FD4700FF2AC0 /* DDRoomGiftMicView.m in Sources */, 18AFFECA2A4BE798008F6478 /* DDMineModel.m in Sources */, 188EC0EA2A47CF3200060F03 /* DDMEmojisCell.m in Sources */, + 23B2A7B92B283A76001C0913 /* UIView+UIView_DDAngleRoundedTool.m in Sources */, 18660D992A21A08A0032D0C9 /* AppUserModel.m in Sources */, 188EBF772A47CEA500060F03 /* DDMLiveListVC.m in Sources */, - 2358F57D2B230B4A0038453C /* DDVideoEncodeManage.m in Sources */, 18C833602A25A12A0090BF65 /* DDMyInfoGiftWallCollectionViewCell.m in Sources */, + 23B2A7FD2B283ACA001C0913 /* UserGameInfoVo.m in Sources */, 8C2C3F272B2803CA002C3C34 /* DDSpriteSheeImagetManager.m in Sources */, 18660DCD2A21E54B0032D0C9 /* RoomViewController.m in Sources */, 8C2C3EE62B27CC7D002C3C34 /* DDDESEncrypt.m in Sources */, @@ -5847,6 +6281,7 @@ 18E659CA2A5654FD0017854A /* DDFollowFansCell.m in Sources */, 18660CB12A21907B0032D0C9 /* AppDelegate+CYLTabBar.m in Sources */, 1812EC8A2A54FD7600FF2AC0 /* DDRoomLuckyGiftDescriptionView.m in Sources */, + 23B2A7BF2B283A76001C0913 /* TTAlertConfig.m in Sources */, 186C9CEB2A29D96C00209BB5 /* DDDynamicSendViewController.m in Sources */, 183864442A28A17B005BF235 /* ZLPlayer.m in Sources */, 188AF59F2A273D28004DD4CF /* DDStoreBottomView.m in Sources */, @@ -5874,12 +6309,15 @@ 18660CBD2A21913E0032D0C9 /* WRCustomNavigationBar.m in Sources */, 188EC13A2A47CF3300060F03 /* HX_PhotoEditViewController.m in Sources */, 1812EC7E2A54FC9300FF2AC0 /* DDRoomSendGiftsView.m in Sources */, + 23B2A7BC2B283A76001C0913 /* DDBaseButton.m in Sources */, 1838643D2A28A17B005BF235 /* ZLAnimateTransition.m in Sources */, 183864552A28A17B005BF235 /* ZLPhotoModel.m in Sources */, 18660CDB2A21921F0032D0C9 /* AFmanager.m in Sources */, 1899569C2A21F00C002ABEEB /* RoomUserMicroCell.m in Sources */, + 23B2A8032B283ACA001C0913 /* Api.m in Sources */, 188AF5CB2A27648A004DD4CF /* RoomPublicScreenTextCell.m in Sources */, 18660CE22A2192A80032D0C9 /* AppMessageManager.m in Sources */, + 23B2A8042B283ACA001C0913 /* HttpRequestHelper.m in Sources */, 188EC0F62A47CF3200060F03 /* DDChatHelper.m in Sources */, 18660D942A2195600032D0C9 /* DynamicViewController.m in Sources */, 18B1EA3B2A273F0F00DDE889 /* DDSearchPageNoDataView.m in Sources */, @@ -5902,7 +6340,10 @@ 188EBF6E2A47CEA500060F03 /* DDInteractiveCell.m in Sources */, 186615FF2A21F09D00A2044C /* UploadOSSTool.m in Sources */, 183864402A28A17B005BF235 /* ZLProgressView.m in Sources */, + 23B2A7F62B283ACA001C0913 /* UserPhoto.m in Sources */, + 23B2A7B02B283A76001C0913 /* DDAppColor.m in Sources */, 188EC10B2A47CF3200060F03 /* UIFont+HXExtension.m in Sources */, + 23B2A7FB2B283ACA001C0913 /* UserVipInfoVo.m in Sources */, 180BE11D2A24357800DF59E3 /* RoomMoreManagementHeaderView.m in Sources */, 188EC1082A47CF3200060F03 /* NSArray+HXExtension.m in Sources */, 1826C6072A24A47200A5AFDB /* DDBasePagerHomeListViewController.m in Sources */, @@ -5910,6 +6351,7 @@ 188EC1592A47CF3300060F03 /* RKNotificationHub.m in Sources */, 183864472A28A17B005BF235 /* ZLEditViewController.m in Sources */, 1802B3DB2A541B6B0036DCEF /* DDLoginTextView.m in Sources */, + 23B2A7B72B283A76001C0913 /* DDSVGAAnimationManager.m in Sources */, 186A897B2A41B272001DE99E /* DDAuthorStatusTableViewCell.m in Sources */, 186A88E42A415291001DE99E /* DDMyLevelViewController.m in Sources */, 18C905042A2305A600F7CAFD /* ResourcePickerToolsObject.m in Sources */, @@ -5974,6 +6416,7 @@ 188EC1522A47CF3300060F03 /* HXPhotoEditGraffitiColorViewCell.m in Sources */, 188EC1182A47CF3200060F03 /* HXCustomCameraViewController.m in Sources */, 18660DA52A21AF390032D0C9 /* DDSocketTool.m in Sources */, + 23B2A7C92B283A76001C0913 /* DDFloatScreenAdvertiseView.m in Sources */, 186C9D1C2A2A15CE00209BB5 /* DDPasswordTextView.m in Sources */, 18FC19D62A481A07006FC925 /* RoomEditPassWordView.m in Sources */, 18F46DA92A288B2D00CD2B7E /* RoomSendGiftCountView.m in Sources */, @@ -6002,6 +6445,7 @@ 8C2C3F162B27ED7C002C3C34 /* DDUtility+App.m in Sources */, 18D348252A25F3A40011D61C /* DDMyInfoCommonListViewController.m in Sources */, 188EBF6C2A47CEA500060F03 /* DDChatVC.m in Sources */, + 23B2A7B42B283A76001C0913 /* DDDownloadImageView.m in Sources */, 188EC14E2A47CF3300060F03 /* HXPhotoEditStickerItemContentView.m in Sources */, 188EC14D2A47CF3300060F03 /* HXPhotoEditDrawView.m in Sources */, 188EC14B2A47CF3300060F03 /* HXPhotoEditSplashMaskLayer.m in Sources */, @@ -6022,11 +6466,13 @@ 183864542A28A17B005BF235 /* ZLPhotoActionSheet.m in Sources */, 188EC1362A47CF3300060F03 /* HXCircleProgressView.m in Sources */, 188EC11B2A47CF3200060F03 /* HXPhotoPreviewViewController.m in Sources */, + 23B2A8012B283ACA001C0913 /* UserInfoSkillVo.m in Sources */, 18660D7F2A21947B0032D0C9 /* WLBlockTableView.m in Sources */, 18AFFEC62A4BE706008F6478 /* DDMineCell.m in Sources */, 188EBF9C2A47CF0C00060F03 /* DDKeyBoardTextView.m in Sources */, 188EC0E22A47CF3200060F03 /* DDMInputView.m in Sources */, 18DA64892A68D6BD0086F600 /* DDAFJSONResponseSerializer.m in Sources */, + 23B2A7F82B283ACA001C0913 /* AccountInfoStorage.m in Sources */, 18D7862B2A23087D00C9875F /* RoomUserInfoView.m in Sources */, 18D348342A2613800011D61C /* DDMyInfoSettingViewController.m in Sources */, 1826C6192A24C4EE00A5AFDB /* DDMyInformationDynamicViewController.m in Sources */, @@ -6086,13 +6532,17 @@ 18660D512A2193C50032D0C9 /* NSObject+Custom.m in Sources */, 188583432A4281F800657AEC /* DDMyBlackListViewController.m in Sources */, 188EC0F32A47CF3200060F03 /* DDMInputHelper.m in Sources */, + 23B2A7F92B283ACA001C0913 /* BaseModel.m in Sources */, 188EC13E2A47CF3300060F03 /* HXPhotoEditResizeControl.m in Sources */, 1867776F2A4292F70096D802 /* CreatRoomBgImageViewCell.m in Sources */, 181F75482A5407AF006FA7F5 /* DDLabelModel.m in Sources */, + 23B2A7F72B283ACA001C0913 /* NSObject+AutoCoding.m in Sources */, 186C9D0D2A29EE3500209BB5 /* ZLShowMultimedia.m in Sources */, 1894A2D42A5811870085ADAB /* DDMyRechargeCell.m in Sources */, + 23B2A7CB2B283A76001C0913 /* UIImage+DDFilletCorner.m in Sources */, 188EC1202A47CF3200060F03 /* HXVideoEditViewController.m in Sources */, 188EBF932A47CF0C00060F03 /* DDMTableView.m in Sources */, + 23B2A7C12B283A76001C0913 /* TTAlertMessageAttributedConfig.m in Sources */, 186EBFA92A3FE6A3005623CC /* DDKuoLieTableViewCell.m in Sources */, 188AF5832A271F01004DD4CF /* DDExchangeModel.m in Sources */, 186EBFC72A40363A005623CC /* XPSemiModalTransitioningDelegate.m in Sources */, @@ -6105,6 +6555,7 @@ 1826C61C2A24C50D00A5AFDB /* DDMyInformationGiftWallViewController.m in Sources */, 188EC1442A47CF3300060F03 /* HX_PhotoEditBottomView.m in Sources */, 18ECBD152A29C9F400C42DAA /* SVGATool.m in Sources */, + 23B2A7B32B283A76001C0913 /* DDUIImageFixedManager.m in Sources */, 188EC0F82A47CF3200060F03 /* DDBaseInputView.m in Sources */, 183864572A28A17B005BF235 /* ZLPhotoConfiguration.m in Sources */, 1826C5FE2A24A1A400A5AFDB /* DDEditMyInfoViewController.m in Sources */, @@ -6114,10 +6565,14 @@ 1838643A2A28A17B005BF235 /* ZLPhotoBrowserCell.m in Sources */, 18E94E7D2A271D2E0055E8F0 /* AgoraTool.m in Sources */, 1838644C2A28A17B005BF235 /* ZLBrushBoardImageView.m in Sources */, + 23B2A7BA2B283A76001C0913 /* DDBaseNavVC.m in Sources */, 188EC10C2A47CF3200060F03 /* UIView+HXExtension.m in Sources */, + 23B2A7C82B283A76001C0913 /* DDFloatScreenAdvertiseManager.m in Sources */, 188EC12E2A47CF3200060F03 /* HXPreviewLivePhotoView.m in Sources */, 188CA9762A50000600DAFC86 /* DDV2HomeVerticalCell.m in Sources */, + 23B2A7C52B283A76001C0913 /* TTActionSheetView.m in Sources */, 189569AC2A2339DE00DCF149 /* RoomPopView.m in Sources */, + 23B2A8022B283ACA001C0913 /* MvpViewController.m in Sources */, 186C9D0B2A29EE3500209BB5 /* UIImage+ZLGIF.m in Sources */, 1812EC932A54FDB900FF2AC0 /* DDRoomGiftLuckyView.m in Sources */, 8CE493A02B23F5FA00CA14D5 /* DDUploadFile.m in Sources */, @@ -6126,6 +6581,7 @@ 188EC1152A47CF3200060F03 /* HXAssetManager.m in Sources */, 186A88F62A415884001DE99E /* DDNobleExpModel.m in Sources */, 188EC1002A47CF3200060F03 /* HXPhotoConfiguration.m in Sources */, + 23B2A7FC2B283ACA001C0913 /* UserExpand.m in Sources */, 1848C2322A4D13640031F734 /* NSTimer+WeakTimer.m in Sources */, 183863F02A28A0CB005BF235 /* NSMutableAttributedString+DDAppendString.m in Sources */, 18C833662A25A30E0090BF65 /* DDGiftWallModel.m in Sources */, @@ -6134,6 +6590,7 @@ 18A7E6882A4E7C250078E659 /* DDDecoratePVC.m in Sources */, 187AE1132A496EAC00B427CB /* RoomConfigModel.m in Sources */, 18660D722A21942F0032D0C9 /* BaseCollectionViewHorizontalLayout.m in Sources */, + 23B2A7FE2B283ACA001C0913 /* UserLevelVo.m in Sources */, 8C2C3F202B2801AC002C3C34 /* DDStatisticsService.m in Sources */, 183864522A28A17B005BF235 /* ZLShowBigImgViewController.m in Sources */, 186EBFC32A40363A005623CC /* XPSemiModalPresentationController.m in Sources */, @@ -6146,6 +6603,7 @@ 188EC15E2A47CF3300060F03 /* PlaneView.m in Sources */, 1826C5F62A244C3500A5AFDB /* DDMyInfoCollectionViewCell.m in Sources */, 183864462A28A17B005BF235 /* ToastUtils.m in Sources */, + 23B2A7C72B283A76001C0913 /* DDFloatScreenAdvertiseModel.m in Sources */, 18B1EA3E2A274EC300DDE889 /* DDRoomAvatarListView.m in Sources */, 189956962A21ECC9002ABEEB /* RoomInfoModel.m in Sources */, 1826C6132A24B7DE00A5AFDB /* DDMyInfoInsertDynamicView.m in Sources */, @@ -6163,8 +6621,10 @@ 188EC1252A47CF3200060F03 /* HXPhotoPreviewLivePhotoCell.m in Sources */, 1826C5F32A244B8C00A5AFDB /* DDHoriCollectionView.m in Sources */, 18660D5C2A2193C50032D0C9 /* UILabel+YBAttributeTextTapAction.m in Sources */, + 23B2A7C62B283A76001C0913 /* TTPopupService.m in Sources */, 187AE0FC2A491BF300B427CB /* RoomDetailView.m in Sources */, 18E659C02A564EED0017854A /* DDSearchListVC.m in Sources */, + 23B2A7B12B283A76001C0913 /* DDBaseVC.m in Sources */, 188EC1292A47CF3200060F03 /* HXPhotoCustomNavigationBar.m in Sources */, 188EBF942A47CF0C00060F03 /* DDKeyBoardFaceBaseView.m in Sources */, 18792C0F2A565AC500683D6B /* DDUpdateVersionView.m in Sources */, @@ -6186,6 +6646,7 @@ 18869D132A4811A200152BD6 /* DDMCommonTool.m in Sources */, 18660D5E2A2193C50032D0C9 /* NSBundle+Language.m in Sources */, 188EBF9B2A47CF0C00060F03 /* DDKeyBoardView+TextView.m in Sources */, + 23B2A7BB2B283A76001C0913 /* UIButton+TouchRegion.m in Sources */, 188EC1262A47CF3200060F03 /* HXCollectionView.m in Sources */, 1802B3C72A540A620036DCEF /* DDV2LoginVC.m in Sources */, 188EC1102A47CF3200060F03 /* NSTimer+HXExtension.m in Sources */, @@ -6199,6 +6660,7 @@ 18C9050B2A233F0600F7CAFD /* DDLunboModel.m in Sources */, 188EBF672A47CEA500060F03 /* DDChatVC+KeyBoardTool.m in Sources */, 187AE10D2A4943C400B427CB /* RoomBlackListCell.m in Sources */, + 23B2A7B52B283A76001C0913 /* DDDownloadImageFile.m in Sources */, 18660D912A2195500032D0C9 /* MainViewController.m in Sources */, 188EC15C2A47CF3300060F03 /* SDWaitingView.m in Sources */, ECA5314A2A20EB64006E6D04 /* main.m in Sources */, @@ -6206,11 +6668,13 @@ 188EC1552A47CF3300060F03 /* HXPhotoEditGridLayer.m in Sources */, 188EC1122A47CF3200060F03 /* UILabel+HXExtension.m in Sources */, 188EBF952A47CF0C00060F03 /* DDKeyBoardFaceItemCell.m in Sources */, + 23B2A7C42B283A76001C0913 /* TTAlertView.m in Sources */, 188EC1022A47CF3200060F03 /* HXPhotoInteractiveTransition.m in Sources */, 188EC1042A47CF3200060F03 /* HXPhotoPersentInteractiveTransition.m in Sources */, 188AF5992A273CE9004DD4CF /* DDStoreVC.m in Sources */, 188EC0E62A47CF3200060F03 /* DDMEmojisKeyboard.m in Sources */, 188EC1192A47CF3200060F03 /* HXPhoto3DTouchViewController.m in Sources */, + 23B2A7B62B283A76001C0913 /* UIImage+ImageEffects.m in Sources */, 1812ECAB2A55561800FF2AC0 /* DDRoomGiftMessageAlert.m in Sources */, 186777852A429D0C0096D802 /* RoomBgCollectionViewCell.m in Sources */, 183864382A28A17B005BF235 /* ZLBigImageCell.m in Sources */, @@ -6238,6 +6702,7 @@ 18660DCF2A21E54B0032D0C9 /* RoomUserMicroView.m in Sources */, 188AF58E2A272AEB004DD4CF /* DDRechargeCell.m in Sources */, 18B5E5AB2A4D89380089CEB1 /* DDShoppingListVC.m in Sources */, + 23B2A7F52B283ACA001C0913 /* BaseMvpPresenter.m in Sources */, 18A7E69A2A4E81EB0078E659 /* DDDecotateShowView.m in Sources */, 188EC1382A47CF3300060F03 /* HXPhotoPreviewImageViewCell.m in Sources */, 186EBFC52A40363A005623CC /* XPSemiModalAnimatedTransitioning.m in Sources */, @@ -6245,7 +6710,6 @@ 188EC13D2A47CF3300060F03 /* HXPhotoEditGraffitiColorModel.m in Sources */, 1826C5E92A2431CA00A5AFDB /* DDCellModel.m in Sources */, 186A88E72A4152AA001DE99E /* DDMyLevelView.m in Sources */, - 2358F5812B230C350038453C /* UILabel+DDFactory.m in Sources */, 18F46D9D2A28409600CD2B7E /* RoomSendGiftTopView.m in Sources */, 18660D532A2193C50032D0C9 /* UIView+Common.m in Sources */, 18D348372A26144B0011D61C /* DDMyInfoSettingTableViewCell.m in Sources */, @@ -6265,8 +6729,10 @@ 18B00BF92A21E874001232DF /* DDRoomPartyViewCell.m in Sources */, 18A63FD92A55060200A5F57B /* DDMyInfoReportViewController.m in Sources */, 18F46DA02A2840B500CD2B7E /* RoomSendGiftCollectionView.m in Sources */, + 23B2A7BE2B283A76001C0913 /* TTPopup.m in Sources */, 186A89752A41B23A001DE99E /* DDAuthorNameCardTableViewCell.m in Sources */, 8CE493B42B240B0600CA14D5 /* DDTimerStamp.m in Sources */, + 23B2A7C32B283A76001C0913 /* TTPopupManagerService.m in Sources */, 18660CEF2A2193370032D0C9 /* CLLocations.m in Sources */, 188EBF6F2A47CEA500060F03 /* ConversationListVC.m in Sources */, 18D348312A2608E00011D61C /* DDMyInfoFootRoomListTableViewCell.m in Sources */, @@ -6280,11 +6746,14 @@ 188CA9792A50003C00DAFC86 /* DDV2HomeHorizontalCell.m in Sources */, 1885834C2A42CC6100657AEC /* DDHandlePhoneCodeViewController.m in Sources */, 188EC0FF2A47CF3200060F03 /* DDChatToast.m in Sources */, + 23B2A7BD2B283A76001C0913 /* DDVideoEncodeManage.m in Sources */, 188EC1452A47CF3300060F03 /* HXPhotoEditGridMaskLayer.m in Sources */, 186A890D2A4193C5001DE99E /* DDMyRoomListViewController.m in Sources */, 188EC1032A47CF3200060F03 /* HXPhotoViewPresentTransition.m in Sources */, 186A89022A415FF0001DE99E /* DDNobleListCollectionViewCell.m in Sources */, 188EC1562A47CF3300060F03 /* HXPhotoEditTextView.m in Sources */, + 23B2A7CA2B283A76001C0913 /* DDCurVCManager.m in Sources */, + 23B2A8002B283ACA001C0913 /* AccountModel.m in Sources */, 188EC1312A47CF3300060F03 /* HXFullScreenCameraPlayView.m in Sources */, 188EC0E32A47CF3200060F03 /* DDMInputBtn.m in Sources */, 180BE1292A2496BB00DF59E3 /* RoomSocketMsgModel.m in Sources */, @@ -6295,10 +6764,13 @@ 188EC1492A47CF3300060F03 /* HXPhotoEditChartletContentViewCell.m in Sources */, 188EC15D2A47CF3300060F03 /* SDBrowserImageView.m in Sources */, 188EC1112A47CF3200060F03 /* UIButton+HXExtension.m in Sources */, + 23B2A7FF2B283ACA001C0913 /* LoginTicketInfo.m in Sources */, 18660D8B2A21952F0032D0C9 /* HomeViewController.m in Sources */, + 23B2A7B82B283A76001C0913 /* UILabel+DDFactory.m in Sources */, 188EC1392A47CF3300060F03 /* HXPhotoEditConfiguration.m in Sources */, 18AFFEB52A4BCAF3008F6478 /* DDMineVC.m in Sources */, 18CF77DE2A4ECCC60009B602 /* RoomEventCell.m in Sources */, + 23B2A7FA2B283ACA001C0913 /* UserInfoModel.m in Sources */, 189569A92A232EF700DCF149 /* RoomOnlineUserListView.m in Sources */, 18660D4C2A2193C50032D0C9 /* UITextView+Placeholder.m in Sources */, 189569A32A232EA100DCF149 /* RoomUserManagementView.m in Sources */, diff --git a/yinmeng-ios/DingDangApp/PrefixHeader.pch b/yinmeng-ios/DingDangApp/PrefixHeader.pch index 3cc625a..06cd847 100644 --- a/yinmeng-ios/DingDangApp/PrefixHeader.pch +++ b/yinmeng-ios/DingDangApp/PrefixHeader.pch @@ -10,8 +10,11 @@ #import "WLCustomHeader.h" #import "RequestUrl.h" -#import "DDMacroHeader.h" +#import "NSObject+DDExtension.h" #import "UIImage+DDFilletCorner.h" #import "DDAppColor.h" #import "DDHUDManager.h" +#import "DDUIImageFixedManager.h" +#import "DDUtility.h" +#import "DDMacroHeader.h" #endif /* PrefixHeader_pch */ diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/DDBaseTool/DDThirdTool/DDUtility/DDUtility+App.m b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/DDBaseTool/DDThirdTool/DDUtility/DDUtility+App.m index cfbb545..55398cc 100644 --- a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/DDBaseTool/DDThirdTool/DDUtility/DDUtility+App.m +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/DDBaseTool/DDThirdTool/DDUtility/DDUtility+App.m @@ -5,8 +5,8 @@ // Created by 触海 on 2023/12/11. // -#import "DDUtility+App.h" +#import "DDUtility.h" static NSString * const kMobileFrameworkResourceBundleName = @"YYMobileFrameworkRes"; static NSString *_from = nil; @implementation DDUtility (App) diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/DDBaseTool/DDThirdTool/DDUtility/DDUtility+Carrier.m b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/DDBaseTool/DDThirdTool/DDUtility/DDUtility+Carrier.m index e380bbb..55fd3d3 100644 --- a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/DDBaseTool/DDThirdTool/DDUtility/DDUtility+Carrier.m +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/DDBaseTool/DDThirdTool/DDUtility/DDUtility+Carrier.m @@ -5,7 +5,7 @@ // Created by 触海 on 2023/12/11. // -#import "DDUtility+Carrier.h" +#import "DDUtility.h" #import #import #import "DDCarrierIdentifier.h" diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/DDBaseUI/TTPopup/Config/TTActionSheetConfig.m b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/DDBaseUI/TTPopup/Config/TTActionSheetConfig.m index 7505103..d54ecf7 100644 --- a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/DDBaseUI/TTPopup/Config/TTActionSheetConfig.m +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/DDBaseUI/TTPopup/Config/TTActionSheetConfig.m @@ -6,7 +6,7 @@ // #import "TTActionSheetConfig.h" -#import "ThemeColor.h" +#import "DDAppColor.h" @implementation TTActionSheetConfig @@ -24,7 +24,7 @@ + (TTActionSheetConfig *)normalTitle:(NSString *)title selectColorType:(TTItemSelectType)type clickAction:(TTActionSheetClickAction)clickAction { - UIColor *color = type == TTItemSelectHighLight ? [ThemeColor alertTitleColor] : [ThemeColor alertTitleColor]; + UIColor *color = type == TTItemSelectHighLight ? [DDAppColor dd_popUpTextColor] :[DDAppColor dd_popUpTextColor]; TTActionSheetConfig *config = [self actionWithTitle:title color:color handler:clickAction]; config.type = type; diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/DDBaseUI/TTPopup/Config/TTAlertConfig.m b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/DDBaseUI/TTPopup/Config/TTAlertConfig.m index a13a322..501d762 100644 --- a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/DDBaseUI/TTPopup/Config/TTAlertConfig.m +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/DDBaseUI/TTPopup/Config/TTAlertConfig.m @@ -7,8 +7,7 @@ // #import "TTAlertConfig.h" -#import "UIImage+Utils.h" -#import "ThemeColor.h" +#import "DDAppColor.h" static CGFloat kAlertTitleFont = 18.f; static CGFloat kAlertButtonFont = 15.f; @@ -24,7 +23,7 @@ static CGFloat kAlertButtonCornerRadius = 8.f; self = [super init]; if (self) { - _backgroundColor = [ThemeColor alertBackgroundColor]; + _backgroundColor = [DDAppColor dd_appBgColor]; //背景颜色 kAlertTitleFont = 16.f; @@ -36,12 +35,12 @@ static CGFloat kAlertButtonCornerRadius = 8.f; // title _title = @"";// 标题 _titleFont = [UIFont fontWithName:@"PingFangSC-Medium" size:kAlertTitleFont];// 字体 - _titleColor = [ThemeColor alertTitleColor];// 颜色 + _titleColor = [DDAppColor dd_MajorTitleColor];// 颜色 // message _message = @""; _messageFont = [UIFont systemFontOfSize:kAlertMessageFont];// 内容 - _messageColor = [ThemeColor alertMessageColor];// 颜色 + _messageColor = [DDAppColor dd_popUpMsgColor];// 颜色 _messageLineSpacing = kAlertMessageFontLineSpace;// 字体行间距 _messageAttributedConfig = @[];// 自定义富文本样式 @@ -49,16 +48,16 @@ static CGFloat kAlertButtonCornerRadius = 8.f; _cancelButtonConfig = [[TTAlertButtonConfig alloc] init]; _cancelButtonConfig.title = @"取消";// 取消按钮 _cancelButtonConfig.font = [UIFont systemFontOfSize:kAlertButtonFont];// 按钮字体 - _cancelButtonConfig.titleColor = [ThemeColor cancelButtonTextColor];// 字体颜色 - _cancelButtonConfig.backgroundImage = [UIImage gradientColorImageFromColors:@[[ThemeColor cancelButtonGradientStartColor], [ThemeColor cancelButtonGradientEndColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(10, 10)]; + _cancelButtonConfig.titleColor = [DDAppColor dd_abolishBtnTitleColor];// 字体颜色 + _cancelButtonConfig.backgroundImage = [UIImage dd_CreateGradualChangeImage:@[[DDAppColor dd_abolishCommonBgColor], [DDAppColor dd_abolishBtnGradientFinishColor]] type:DDFilletCornerTypeLeftToRight size:CGSizeMake(10, 10)]; _cancelButtonConfig.cornerRadius = kAlertButtonCornerRadius;// 按钮背景图 // confirm button _confirmButtonConfig = [[TTAlertButtonConfig alloc] init]; _confirmButtonConfig.title = @"确定"; _confirmButtonConfig.font = [UIFont systemFontOfSize:kAlertButtonFont]; - _confirmButtonConfig.titleColor = [ThemeColor confirmButtonTextColor]; - _confirmButtonConfig.backgroundImage = [UIImage gradientColorImageFromColors:@[[ThemeColor confirmButtonGradientStartColor], [ThemeColor confirmButtonGradientEndColor]] gradientType:GradientTypeLeftToRight imgSize:CGSizeMake(10, 10)]; + _confirmButtonConfig.titleColor = [DDAppColor dd_abolishBtnTitleColor]; + _confirmButtonConfig.backgroundImage = [UIImage dd_CreateGradualChangeImage:@[[DDAppColor dd_sureBtnGradientFinishColor], [DDAppColor dd_sureBtnGradientBeginColor]] type:DDFilletCornerTypeLeftToRight size:CGSizeMake(10, 10)]; _confirmButtonConfig.cornerRadius = kAlertButtonCornerRadius; _cornerRadius = kAlertCornerRadius;// 默认圆角 diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/DDBaseUI/TTPopup/View/TTActionSheetView.m b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/DDBaseUI/TTPopup/View/TTActionSheetView.m index 84119c8..6d19185 100644 --- a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/DDBaseUI/TTPopup/View/TTActionSheetView.m +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/DDBaseUI/TTPopup/View/TTActionSheetView.m @@ -8,7 +8,7 @@ #import "TTActionSheetView.h" #import "TTActionSheetConfig.h" -#import "ThemeColor.h" +#import "DDAppColor.h" #import static CGFloat const kSheetViewCellHeight = 51.f; @@ -104,7 +104,7 @@ static NSString *const kSheetViewCellConst = @"kSheetViewCellConst"; _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; _tableView.delegate = self; _tableView.dataSource = self; - _tableView.separatorColor = [ThemeColor actionSeparatorColor]; + _tableView.separatorColor = [DDAppColor dd_popUpSeparatorColor]; _tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine; _tableView.rowHeight = kSheetViewCellHeight; _tableView.tableFooterView = [[UIView alloc] init]; @@ -122,7 +122,7 @@ static NSString *const kSheetViewCellConst = @"kSheetViewCellConst"; _cancelButton = [UIButton buttonWithType:UIButtonTypeCustom]; [_cancelButton setTitle:@"取消" forState:UIControlStateNormal]; [_cancelButton setBackgroundColor:UIColor.whiteColor]; - [_cancelButton setTitleColor:[ThemeColor alertMessageColor] forState:UIControlStateNormal]; + [_cancelButton setTitleColor:[DDAppColor dd_popUpMsgColor] forState:UIControlStateNormal]; [_cancelButton.titleLabel setFont:[UIFont systemFontOfSize:16]]; _cancelButton.layer.cornerRadius = kSheetViewCornerRadius; _cancelButton.layer.masksToBounds = YES; diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/DDBaseUI/TTPopup/View/TTAlertView.m b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/DDBaseUI/TTPopup/View/TTAlertView.m index 1875381..e4bb687 100644 --- a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/DDBaseUI/TTPopup/View/TTAlertView.m +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/DDBaseUI/TTPopup/View/TTAlertView.m @@ -8,7 +8,7 @@ #import "TTAlertView.h" #import "TTAlertConfig.h" -#import "ThemeColor.h" +#import "DDAppColor.h" #import static CGFloat const kMargin = 25.f; @@ -180,9 +180,9 @@ static CGFloat const kBtnHeight = 38.f; _messageLabel.text = config.message; } - _cancelButton.layer.borderColor = [ThemeColor dividerColor].CGColor; + _cancelButton.layer.borderColor = [DDAppColor dd_lineColor].CGColor; _cancelButton.layer.borderWidth = 2.f; - _confirmButton.layer.borderColor = [ThemeColor dividerColor].CGColor; + _confirmButton.layer.borderColor = [DDAppColor dd_lineColor].CGColor; _confirmButton.layer.borderWidth = 2.f; } @@ -190,15 +190,15 @@ static CGFloat const kBtnHeight = 38.f; _isConfigBoard = isConfigBoard; if (isConfigBoard) { //需要边框 - _cancelButton.layer.borderColor = [ThemeColor dividerColor].CGColor; + _cancelButton.layer.borderColor = [DDAppColor dd_lineColor].CGColor; _cancelButton.layer.borderWidth = 2.f; - _confirmButton.layer.borderColor = [ThemeColor dividerColor].CGColor; + _confirmButton.layer.borderColor = [DDAppColor dd_lineColor].CGColor; _confirmButton.layer.borderWidth = 2.f; }else { //不需要边框 - _cancelButton.layer.borderColor = [ThemeColor dividerColor].CGColor; + _cancelButton.layer.borderColor = [DDAppColor dd_lineColor].CGColor; _cancelButton.layer.borderWidth = 0; - _confirmButton.layer.borderColor = [ThemeColor dividerColor].CGColor; + _confirmButton.layer.borderColor = [DDAppColor dd_lineColor].CGColor; _confirmButton.layer.borderWidth = 0; } } diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Api/Api.h b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Api/Api.h new file mode 100644 index 0000000..213cf3d --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Api/Api.h @@ -0,0 +1,90 @@ +// +// Api.h +// xplan-ios +// +// Created by zu on 2021/9/6. +// + +#import +#import "HttpRequestHelper.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface Api : NSObject + +/** + route : 接口路径 + method : http 请求方法(POST、GET等) + completion : 网络请求完成的回调 + ... : 可变参数,第一个为 __FUNCTION__ ,接下来依次为该接口的协议参数 + */ ++ (void)makeRequest:(NSString *)route method:(HttpRequestHelperMethod)method completion:(HttpRequestHelperCompletion)completion, ...; + ++ (void)getUserInfo:(HttpRequestHelperCompletion)completion uid:(NSString *)uid; + +/// 获取手机号的验证码 +/// @param completion 请求完成 +/// @param mobile 手机号 +/// @param type 类型 请看XPEunm中的枚举 ++ (void)phoneSmsCode:(HttpRequestHelperCompletion)completion mobile:(NSString *)mobile type:(NSString *)type; + +/// 校验手机号码 +/// @param complection 完成 +/// @param mobile 手机号 +/// @param code 验证码 +/// @param uid 用户的uid +/// @param ticket ticket ++ (void)checkMoblieCode:(HttpRequestHelperCompletion)complection + mobile:(NSString *)mobile + code:(NSString *)code + uid:(NSString *)uid + ticket:(NSString *)ticket; + +/// 补全用户资料 +/// @param complection 完成 +/// @param userInfo 需要更新的用户信息 ++ (void)completeUserInfo:(HttpRequestHelperCompletion)complection + userInfo:(NSDictionary *)userInfo; +/// 获取用户钱包余额信息 +/// @param complection 完成 +/// @param uid 用户uid +/// @param ticket ticketg ++ (void)getUserWalletInfo:(HttpRequestHelperCompletion)complection + uid:(NSString *)uid + ticket:(NSString *)ticket; +/// 批量验证 +/// @param complection 完成 +/// @param transcationIdStr 需要验证的数据 ++ (void)requestCheckTranscationIds:(HttpRequestHelperCompletion)complection + transcationIdStr:(NSString *)transcationIdStr; + +/// 锁麦/开麦 +/// @param complection 完成 +/// @param roomUid 房主的uid +/// @param state 0 开麦 1 锁麦 +/// @param position 坑位 +/// @param ticket 用户的ticket +/// @param uid uid ++ (void)microMuteCompletion:(HttpRequestHelperCompletion)complection + roomUid:(NSString *)roomUid + state:(NSString *)state + position:(NSString *)position + ticket:(NSString *)ticket + uid:(NSString *)uid; + +/// 锁坑/开锁 +/// @param complection 完成 +/// @param roomUid 房主的uid +/// @param state 1锁坑位,0取消锁(即取消锁坑位) +/// @param position 坑位 +/// @param ticket 用户的ticket +/// @param uid uid ++ (void)microLockCompletion:(HttpRequestHelperCompletion)complection + roomUid:(NSString *)roomUid + state:(NSString *)state + position:(NSString *)position + ticket:(NSString *)ticket + uid:(NSString *)uid; +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Api/Api.m b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Api/Api.m new file mode 100644 index 0000000..ff2aa18 --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Api/Api.m @@ -0,0 +1,118 @@ +// +// Api.m +// xplan-ios +// +// Created by zu on 2021/9/6. +// + +#import "Api.h" + +@implementation Api + ++ (void)makeRequest:(NSString *)route method:(HttpRequestHelperMethod)method completion:(HttpRequestHelperCompletion)completion, ... { + va_list arg_lists; + va_start(arg_lists, completion); + + // 获取第一个参数 __FUNCTION__ ,然后解析出来 key 。 + const char *functionName = va_arg(arg_lists, const char *); + NSString *fn = [[NSString alloc] initWithUTF8String:functionName]; + // NSLog 一下 __FUNCTION__ 就知道为什么这么截取了。 + NSRange blankRange = [fn rangeOfString:@":"]; + NSUInteger start = blankRange.location + 1; + NSUInteger length; + if ((start + 2) < fn.length) { + length = fn.length - start - 2; + } else if ((start + 1) < fn.length) { + length = fn.length -start - 1; + } else { + length = fn.length -start; + } + + NSString *fromatParamKeys = [fn substringWithRange:NSMakeRange(start, length)]; + // 构造请求的 NSMutableDictionary *params 。 + NSMutableDictionary *params = [NSMutableDictionary dictionary]; + + NSArray *paramKeys = [fromatParamKeys componentsSeparatedByString:@":"]; + NSEnumerator *enumerator = [paramKeys objectEnumerator]; + NSString *value = nil; + while((value = va_arg(arg_lists, NSString*))){ + [params setValue:value forKey:enumerator.nextObject]; + }; + va_end(arg_lists); + + [HttpRequestHelper request:route method:method params:params completion:completion]; +} + ++ (void)getUserInfo:(HttpRequestHelperCompletion)completion uid:(NSString *)uid { + [self makeRequest:@"user/get" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, nil]; +} + +/// 获取手机号的验证码 +/// @param completion 请求完成 +/// @param mobile 手机号 +/// @param type 类型 请看XPEunm中的枚举 ++ (void)phoneSmsCode:(HttpRequestHelperCompletion)completion mobile:(NSString *)mobile type:(NSString *)type { + [self makeRequest:@"sms/getCode" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, mobile, type, nil]; +} + +/// 校验手机号码 +/// @param complection 完成 +/// @param mobile 手机号 +/// @param code 验证码 +/// @param uid 用户的uid +/// @param ticket ticket ++ (void)checkMoblieCode:(HttpRequestHelperCompletion)complection + mobile:(NSString *)mobile + code:(NSString *)code + uid:(NSString *)uid + ticket:(NSString *)ticket { + [self makeRequest:@"sms/verify" method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, mobile, code, uid, ticket,nil]; +} + +/// 补全用户资料 +/// @param complection 完成 +/// @param userInfo 需要更新的用户信息 ++ (void)completeUserInfo:(HttpRequestHelperCompletion)complection + userInfo:(NSDictionary *)userInfo { + [HttpRequestHelper request:@"user/v2/update" method:HttpRequestHelperMethodPOST params:userInfo completion:complection]; +} + + +/// 获取用户钱包余额信息 +/// @param complection 完成 +/// @param uid 用户uid +/// @param ticket ticketg ++ (void)getUserWalletInfo:(HttpRequestHelperCompletion)complection uid:(NSString *)uid ticket:(NSString *)ticket { + [self makeRequest:@"purse/query" method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, uid, ticket,nil]; +} + +/// 批量验证 +/// @param complection 完成 +/// @param transcationIdStr 需要验证的数据 ++ (void)requestCheckTranscationIds:(HttpRequestHelperCompletion)complection + transcationIdStr:(NSString *)transcationIdStr { + [self makeRequest:@"verify/checkIOSChargeRecord" method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__,transcationIdStr, nil]; +} + +/// 锁麦/开麦 +/// @param complection 完成 +/// @param roomUid 房主的uid +/// @param state 0 开麦 1 锁麦 +/// @param position 坑位 +/// @param ticket 用户的ticket +/// @param uid uid ++ (void)microMuteCompletion:(HttpRequestHelperCompletion)complection roomUid:(NSString *)roomUid state:(NSString *)state position:(NSString *)position ticket:(NSString *)ticket uid:(NSString *)uid { + [self makeRequest:@"room/mic/lockmic" method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, roomUid, state, position, ticket, uid, nil]; +} + +/// 锁坑/开锁 +/// @param complection 完成 +/// @param roomUid 房主的uid +/// @param state 1锁坑位,0取消锁(即取消锁坑位) +/// @param position 坑位 +/// @param ticket 用户的ticket +/// @param uid uid ++ (void)microLockCompletion:(HttpRequestHelperCompletion)complection roomUid:(NSString *)roomUid state:(NSString *)state position:(NSString *)position ticket:(NSString *)ticket uid:(NSString *)uid { + [self makeRequest:@"room/mic/lockpos" method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, roomUid, state, position, ticket, uid, nil]; +} +@end diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/AccountInfoStorage.h b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/AccountInfoStorage.h new file mode 100644 index 0000000..ae7b4e4 --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/AccountInfoStorage.h @@ -0,0 +1,28 @@ +// +// DataUtils.h +// YYFaceAuth +// +// Created by chenran on 16/10/18. +// Copyright © 2016年 zhangji. All rights reserved. +// + +#import + +@class AccountModel, ThirdUserInfo; +@interface AccountInfoStorage : NSObject +@property (nonatomic, strong, readonly) AccountModel *accountModel; +///如果是第三方登录的话 保存一下用户信息 +@property (nonatomic,strong) ThirdUserInfo *thirdUserInfo; ++ (instancetype)instance; + +- (instancetype)init NS_UNAVAILABLE; ++ (instancetype)new NS_UNAVAILABLE; +- (id)copy NS_UNAVAILABLE; +- (id)mutableCopy NS_UNAVAILABLE; + +- (AccountModel *)getCurrentAccountInfo; +- (void)saveAccountInfo:(AccountModel *)accountInfo; +- (void)saveTicket:(NSString *)ticket; +- (NSString *)getTicket; +- (NSString *)getUid; +@end diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/AccountInfoStorage.m b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/AccountInfoStorage.m new file mode 100644 index 0000000..c23f353 --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/AccountInfoStorage.m @@ -0,0 +1,94 @@ +// +// DataUtils.m +// YYFaceAuth +// +// Created by chenran on 16/10/18. +// Copyright © 2016年 zhangji. All rights reserved. +// +#define kFileName @"AccountInfo.data" +#define kDataKey @"accountInfo" +#import "AccountInfoStorage.h" +#import "AccountModel.h" + + + +@interface AccountInfoStorage() + +@property (nonatomic, copy) NSString *ticket; +@property (nonatomic, strong) AccountModel *accountModel; + +@end + +@implementation AccountInfoStorage + +static AccountInfoStorage *_instance = nil; + ++ (AccountInfoStorage *)instance { + + static dispatch_once_t onceToken; + + dispatch_once(&onceToken, ^{ + _instance = [[self alloc] init]; + }) ; + + return _instance; +} + +-(NSString *) getFilePath{ + NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); + NSString *path = [[array objectAtIndex:0] stringByAppendingPathComponent:kFileName]; + if (![[NSFileManager defaultManager] fileExistsAtPath:path]) { + [[NSFileManager defaultManager] createFileAtPath:path contents:nil attributes:nil]; + } + return path; +} + +- (AccountModel *)getCurrentAccountInfo +{ + if (self.accountModel != nil) { + return self.accountModel; + } + NSData *data = [[NSData alloc] initWithContentsOfFile:[self getFilePath]]; + + NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data]; + //解档出数据模型 + self.accountModel = [unarchiver decodeObjectForKey:kDataKey]; + [unarchiver finishDecoding];//一定不要忘记finishDecoding,否则会报错 + return self.accountModel; +} + +- (void)saveAccountInfo:(AccountModel *)accountInfo +{ + if (accountInfo == nil) { + accountInfo = [[AccountModel alloc] init]; + } + self.accountModel = accountInfo; + NSMutableData *data = [[NSMutableData alloc] init]; + NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; + [archiver encodeObject:accountInfo forKey:kDataKey]; + [archiver finishEncoding]; + [data writeToFile:[self getFilePath] atomically:YES]; +} + +- (void)saveTicket:(NSString *)t +{ + self.ticket = t; +} + +- (NSString *)getTicket +{ + if (self.ticket == nil) { + return @""; + } + return self.ticket; +} + +- (NSString *)getUid +{ + AccountModel *am = [self getCurrentAccountInfo]; + if (am == nil) { + return @""; + } + return am.uid; +} +@end diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/AccountModel.h b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/AccountModel.h new file mode 100644 index 0000000..1d3ed0f --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/AccountModel.h @@ -0,0 +1,24 @@ +// +// TokenModel.h +// xplan-ios +// +// Created by zu on 2021/9/8. +// + +#import "NSObject+DDExtension.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface AccountModel : NSObject + +@property (nonatomic , assign) NSString *uid; +@property (nonatomic , copy) NSString *jti; +@property (nonatomic , copy) NSString *token_type; +@property (nonatomic , copy) NSString *refresh_token; +@property (nonatomic , copy) NSString *netEaseToken; +@property (nonatomic , copy) NSString *access_token; +@property (nonatomic , assign) NSNumber *expires_in; + +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/AccountModel.m b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/AccountModel.m new file mode 100644 index 0000000..de7f90e --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/AccountModel.m @@ -0,0 +1,12 @@ +// +// TokenModel.m +// xplan-ios +// +// Created by zu on 2021/9/8. +// + +#import "AccountModel.h" + +@implementation AccountModel + +@end diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/BaseModel.h b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/BaseModel.h new file mode 100644 index 0000000..3df6ce4 --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/BaseModel.h @@ -0,0 +1,26 @@ +// +// BaseModel.h +// xplan-ios +// +// Created by zu on 2021/9/8. +// + +#import "NSObject+DDExtension.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface BaseModel : NSObject + +@property (nonatomic , strong) id data; +@property (nonatomic , assign) NSInteger code; +@property (nonatomic , copy) NSString *message; +///注销的时间戳 因为后端返回的内容和code在同一层级 安卓已经发出去了 兼容就写在这里吧 请不要模仿 +@property (nonatomic,assign) long long cancelDate; +///账号封禁返回的code +///时间 +@property (nonatomic,copy) NSString * date; +///封禁的理由 +@property (nonatomic,copy) NSString *reason; +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/BaseModel.m b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/BaseModel.m new file mode 100644 index 0000000..d158734 --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/BaseModel.m @@ -0,0 +1,12 @@ +// +// BaseModel.m +// xplan-ios +// +// Created by zu on 2021/9/8. +// + +#import "BaseModel.h" + +@implementation BaseModel + +@end diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/LoginTicketInfo.h b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/LoginTicketInfo.h new file mode 100644 index 0000000..ed6f63c --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/LoginTicketInfo.h @@ -0,0 +1,20 @@ +// +// LoginTicketInfo.h +// xplan-ios +// +// Created by 冯硕 on 2021/9/9. +// + +#import "NSObject+DDExtension.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface LoginTicketInfo : NSObject + +@property(nonatomic, strong) NSString *issue_type; +///数组中的第一个 就是ticket 历史遗留问题 +@property(nonatomic, strong) NSArray* tickets; + +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/LoginTicketInfo.m b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/LoginTicketInfo.m new file mode 100644 index 0000000..7006036 --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/LoginTicketInfo.m @@ -0,0 +1,12 @@ +// +// LoginTicketInfo.m +// xplan-ios +// +// Created by 冯硕 on 2021/9/9. +// + +#import "LoginTicketInfo.h" + +@implementation LoginTicketInfo + +@end diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/NSObject+AutoCoding.h b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/NSObject+AutoCoding.h new file mode 100644 index 0000000..76b615f --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/NSObject+AutoCoding.h @@ -0,0 +1,25 @@ +// +// NSObject+AutoCoding.h +// YYMobileFramework +// +// Created by wuwei on 14/6/13. +// Copyright (c) 2014年 YY Inc. All rights reserved. +// + +#import + +@interface NSObject (AutoCoding) + +// Coding ++ (NSDictionary *)codableProperties; +- (void)setWithCoder:(NSCoder *)aDecoder; + +// Properties access +- (NSDictionary *)codableProperties; +- (NSDictionary *)dictionaryRepresentation; + +// Loading / Saving ++ (instancetype)objectWithContentsOfFile:(NSString *)path; +- (BOOL)writeToFile:(NSString *)filePath atomically:(BOOL)useAuxiliaryFile; + +@end \ No newline at end of file diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/NSObject+AutoCoding.m b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/NSObject+AutoCoding.m new file mode 100644 index 0000000..b66e955 --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/NSObject+AutoCoding.m @@ -0,0 +1,245 @@ +// +// NSObject+AutoCoding.m +// YYMobileFramework +// +// Created by wuwei on 14/6/13. +// Copyright (c) 2014年 YY Inc. All rights reserved. +// + +#import "NSObject+AutoCoding.h" +#import + +#pragma GCC diagnostic ignored "-Wgnu" + +static NSString *const AutocodingException = @"AutocodingException"; + +@implementation NSObject (AutoCoding) + ++ (BOOL)supportsSecureCoding +{ + return YES; +} + ++ (instancetype)objectWithContentsOfFile:(NSString *)filePath +{ + //load the file + NSData *data = [NSData dataWithContentsOfFile:filePath]; + + //attempt to deserialise data as a plist + id object = nil; + if (data) + { + NSPropertyListFormat format; + object = [NSPropertyListSerialization propertyListWithData:data options:NSPropertyListImmutable format:&format error:NULL]; + + //success? + if (object) + { + //check if object is an NSCoded unarchive + if ([object respondsToSelector:@selector(objectForKey:)] && [(NSDictionary *)object objectForKey:@"$archiver"]) + { + object = [NSKeyedUnarchiver unarchiveObjectWithData:data]; + } + } + else + { + //return raw data + object = data; + } + } + + //return object + return object; +} + +- (BOOL)writeToFile:(NSString *)filePath atomically:(BOOL)useAuxiliaryFile +{ + //note: NSData, NSDictionary and NSArray already implement this method + //and do not save using NSCoding, however the objectWithContentsOfFile + //method will correctly recover these objects anyway + + //archive object + NSData *data = [NSKeyedArchiver archivedDataWithRootObject:self]; + return [data writeToFile:filePath atomically:useAuxiliaryFile]; +} + ++ (NSDictionary *)codableProperties +{ + unsigned int propertyCount; + __autoreleasing NSMutableDictionary *codableProperties = [NSMutableDictionary dictionary]; + objc_property_t *properties = class_copyPropertyList(self, &propertyCount); + for (unsigned int i = 0; i < propertyCount; i++) + { + //get property name + objc_property_t property = properties[i]; + const char *propertyName = property_getName(property); + __autoreleasing NSString *key = @(propertyName); + + //check if codable + //get property type + Class propertyClass = nil; + char *typeEncoding = property_copyAttributeValue(property, "T"); + switch (typeEncoding[0]) + { + case '@': + { + if (strlen(typeEncoding) >= 3) + { + char *className = strndup(typeEncoding + 2, strlen(typeEncoding) - 3); + __autoreleasing NSString *name = @(className); + NSRange range = [name rangeOfString:@"<"]; + if (range.location != NSNotFound) + { + name = [name substringToIndex:range.location]; + } + propertyClass = NSClassFromString(name) ?: [NSObject class]; + free(className); + } + break; + } + case 'c': + case 'i': + case 's': + case 'l': + case 'q': + case 'C': + case 'I': + case 'S': + case 'L': + case 'Q': + case 'f': + case 'd': + case 'B': + { + propertyClass = [NSNumber class]; + break; + } + case '{': + { + propertyClass = [NSValue class]; + break; + } + default: + break; + } + free(typeEncoding); + + if (propertyClass && [propertyClass conformsToProtocol:@protocol(NSSecureCoding)]) + { + //check if there is a backing ivar + char *ivar = property_copyAttributeValue(property, "V"); + if (ivar) + { + //check if ivar has KVC-compliant name + __autoreleasing NSString *ivarName = @(ivar); + if ([ivarName isEqualToString:key] || [ivarName isEqualToString:[@"_" stringByAppendingString:key]]) + { + //no setter, but setValue:forKey: will still work + codableProperties[key] = propertyClass; + } + free(ivar); + } + else + { + //check if property is dynamic and readwrite + char *dynamic = property_copyAttributeValue(property, "D"); + char *readonly = property_copyAttributeValue(property, "R"); + if (dynamic && !readonly) + { + //no ivar, but setValue:forKey: will still work + codableProperties[key] = propertyClass; + } + free(dynamic); + free(readonly); + } + } + } + + free(properties); + return codableProperties; +} + +- (NSDictionary *)codableProperties +{ + __autoreleasing NSDictionary *codableProperties = objc_getAssociatedObject([self class], _cmd); + if (!codableProperties) + { + codableProperties = [NSMutableDictionary dictionary]; + Class subclass = [self class]; + while (subclass != [NSObject class]) + { + [(NSMutableDictionary *)codableProperties addEntriesFromDictionary:[subclass codableProperties]]; + subclass = [subclass superclass]; + } + codableProperties = [NSDictionary dictionaryWithDictionary:codableProperties]; + + //make the association atomically so that we don't need to bother with an @synchronize + objc_setAssociatedObject([self class], _cmd, codableProperties, OBJC_ASSOCIATION_RETAIN); + } + return codableProperties; +} + +- (NSDictionary *)dictionaryRepresentation +{ + NSMutableDictionary *dict = [NSMutableDictionary dictionary]; + for (__unsafe_unretained NSString *key in [self codableProperties]) + { + id value = [self valueForKey:key]; + if (value) + dict[key] = value; + else + dict[key] = @"nil"; + } + return dict; +} + +- (void)setWithCoder:(NSCoder *)aDecoder +{ + BOOL secureAvailable = [aDecoder respondsToSelector:@selector(decodeObjectOfClass:forKey:)]; + BOOL secureSupported = [[self class] supportsSecureCoding]; + NSDictionary *properties = [self codableProperties]; + for (NSString *key in properties) + { + id object = nil; + Class propertyClass = properties[key]; + if (secureAvailable) + { + if ([propertyClass isEqual:[NSMutableAttributedString class]]) { + continue; + } + object = [aDecoder decodeObjectOfClass:propertyClass forKey:key]; + } + else + { + if ([propertyClass isEqual:[NSMutableAttributedString class]]) { + continue; + } + object = [aDecoder decodeObjectForKey:key]; + } + if (object) + { + if (secureSupported && ![object isKindOfClass:propertyClass]) + { + [NSException raise:AutocodingException format:@"Expected '%@' to be a %@, but was actually a %@", key, propertyClass, [object class]]; + } + [self setValue:object forKey:key]; + } + } +} + +- (instancetype)initWithCoder:(NSCoder *)aDecoder +{ + [self setWithCoder:aDecoder]; + return self; +} + +- (void)encodeWithCoder:(NSCoder *)aCoder +{ + for (NSString *key in [self codableProperties]) + { + id object = [self valueForKey:key]; + if (object) [aCoder encodeObject:object forKey:key]; + } +} + +@end diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserExpand.h b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserExpand.h new file mode 100644 index 0000000..81e35b3 --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserExpand.h @@ -0,0 +1,21 @@ +// +// UserExpand.h +// xplan-ios +// +// Created by zu on 2021/9/14. +// + +#import "NSObject+DDExtension.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface UserExpand : NSObject +@property (nonatomic , assign) NSInteger id; +@property (nonatomic , assign) BOOL showLocation; +@property (nonatomic , assign) NSInteger uid; +@property (nonatomic , assign) BOOL showAge; +@property (nonatomic , assign) BOOL matchChat; +@property (nonatomic , assign) BOOL sysMsgNotify; +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserExpand.m b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserExpand.m new file mode 100644 index 0000000..4b54d64 --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserExpand.m @@ -0,0 +1,12 @@ +// +// UserExpand.m +// xplan-ios +// +// Created by zu on 2021/9/14. +// + +#import "UserExpand.h" + +@implementation UserExpand + +@end diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserGameInfoVo.h b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserGameInfoVo.h new file mode 100644 index 0000000..4d013f3 --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserGameInfoVo.h @@ -0,0 +1,53 @@ +// +// UserGameInfoVo.h +// xplan-ios +// +// Created by duoban on 2023/8/23. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class UserGameTagInfo; +@interface UserGameInfoVo : NSObject +@property(nonatomic,copy) NSString *firstGameName; +@property(nonatomic,copy) NSString *firstLogo; +@property(nonatomic,copy) NSString *secondGameName; +@property(nonatomic,copy) NSArray *tags; +@property(nonatomic,copy) NSString *finishNum; +@property(nonatomic,copy) NSString *gameId; +@property(nonatomic,copy) NSString *gameName; +@property(nonatomic,copy) NSString *logo; +@property(nonatomic,copy) NSString *gameLogo; +@property(nonatomic,copy) NSString *price; +@property(nonatomic,copy) NSString *seq; +@property(nonatomic,copy) NSString *uid; +@property(nonatomic,copy) NSString *background; +@property(nonatomic,copy) NSString *tier; +@property(nonatomic,copy) NSString *amount; +@property(nonatomic,copy) NSString *orderNo; +@property(nonatomic,copy) NSString *inning; +@property(nonatomic,copy) NSString *toErBanNo; +@property(nonatomic,copy) NSString *toNick; +@property(nonatomic,copy) NSString *toAvatar; +@property(nonatomic,copy) NSString *fromNick; +@property(nonatomic,copy) NSString *fromAvatar; +@property(nonatomic,copy) NSString *createTime; +@property(nonatomic,copy) NSString *orderTime; +@property(nonatomic,copy) NSString *toUid; +@property(nonatomic,copy) NSString *fromUid; +@property(nonatomic,copy) NSString *tagRgb; +@property(nonatomic,copy) NSString *tagBg; +@property(nonatomic,copy) NSString *btnRgb; +@property(nonatomic,copy) NSString *btnBg; +@end + + + +@interface UserGameTagInfo : NSObject +@property(nonatomic,copy) NSString *seq; +@property(nonatomic,copy) NSString *tagName; +@property(nonatomic,copy) NSString *tagVal; +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserGameInfoVo.m b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserGameInfoVo.m new file mode 100644 index 0000000..3883d0d --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserGameInfoVo.m @@ -0,0 +1,24 @@ +// +// UserGameInfoVo.m +// xplan-ios +// +// Created by duoban on 2023/8/23. +// + +#import "UserGameInfoVo.h" + +@implementation UserGameInfoVo ++ (NSDictionary *)objectClassInArray { + return @{ + @"tags":UserGameTagInfo.class, + + }; +} +@end + + + + +@implementation UserGameTagInfo + +@end diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserInfoModel.h b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserInfoModel.h new file mode 100644 index 0000000..3b32f23 --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserInfoModel.h @@ -0,0 +1,139 @@ +// +// UserInfoModel.h +// xplan-ios +// +// Created by zu on 2021/9/14. +// + +#import "NSObject+DDExtension.h" +#import "UserExpand.h" +#import "UserLevelVo.h" +#import "UserInfoSkillVo.h" +#import "UserVipInfoVo.h" +#import "UserPhoto.h" +#import "UserGameInfoVo.h" +NS_ASSUME_NONNULL_BEGIN + + +@interface UserInfoModel : NSObject +@property (nonatomic , assign) NSInteger bindType; +@property (nonatomic , assign) NSInteger createTime; +@property (nonatomic , assign) BOOL parentMode; +@property (nonatomic , assign) BOOL isBindPhone; +@property (nonatomic , strong) UserExpand * userExpand; +@property (nonatomic , assign) NSInteger erbanNo; +@property (nonatomic , assign) NSInteger registerDay; +@property (nonatomic , assign) BOOL isFirstCharge; +@property (nonatomic , assign) BOOL hasPrettyErbanNo; +@property (nonatomic , strong) UserLevelVo * userLevelVo; +@property (nonatomic , assign) BOOL isBindApple; +@property (nonatomic , assign) NSInteger fansNum; +@property (nonatomic , assign) BOOL isBindBankCard; +@property (nonatomic , assign) BOOL hasRegPacket; +@property (nonatomic , assign) NSInteger platformRole; +@property (nonatomic , assign) NSInteger uid; +@property (nonatomic , assign) NSInteger defUser; +@property (nonatomic , copy) NSString * phone; +@property (nonatomic , copy) NSString * nick; +@property (nonatomic , assign) NSInteger remainDay; +@property (nonatomic , copy) NSString * avatar; +@property (nonatomic , copy) NSString * reviewingAvatar; +@property (nonatomic , assign) BOOL isReview; +@property (nonatomic , strong) UserInfoSkillVo * userInfoSkillVo; +@property (nonatomic , assign) BOOL newUser; +@property (nonatomic , assign) NSInteger followNum; +@property (nonatomic , assign) BOOL isBindPaymentPwd; +@property (nonatomic , assign) BOOL isBindXCZAccount; +@property (nonatomic , assign) BOOL isBindAlipay; +///是否绑定了密码 +@property (nonatomic , assign) BOOL isBindPasswd; +@property (nonatomic, assign) NSInteger visitNum;///访客数量 +@property (nonatomic, assign) NSInteger inRoomNum;///足迹 +///是否需要展示限时首充列表 +@property (nonatomic, assign) BOOL showLimitCharge; +///限时首充结束时间 +@property (nonatomic, assign) long limitChargeEndTime; +///相册 +@property (nonatomic, strong) NSArray *privatePhoto;//相册 +///签名 +@property (nonatomic,copy) NSString *userDesc; +///出生日期 +@property (nonatomic,assign) long birth; +///是否实名认证 +@property (nonatomic,assign) BOOL isCertified; +///铭牌背景 +@property (nonatomic, copy) NSString *nameplatePic; +///铭牌名称 +@property (nonatomic, copy) NSString *nameplateWord; +///如果在房间有直播中字段 +@property(nonatomic, copy) NSString * roomUid; +///如果在房间,房间的标题 +@property (nonatomic, copy) NSString *roomTitle; +///用户信息中的 座驾 并不需要CarModel 映射一下吧 +@property (nonatomic,copy) NSString *carEffect; +///座驾特效类型 0:普通, 1:VAP特效 +@property (nonatomic, assign) NSInteger otherViewType; +///用户信息中需要用VAP播放的座驾, 映射一下 +@property (nonatomic, copy) NSString *viewUrl; +///用户信息中的 座驾昵称 并不需要CarModel 映射一下吧 +@property (nonatomic,copy) NSString *carName; +///用户信息中的 头饰的动画 并不需要HeadwearModel 映射一下吧 +@property (nonatomic,copy) NSString *headwearEffect; +///用户信息中的 头饰的动画 如果没有的话 就用这个 并不需要HeadwearModel 映射一下吧 +@property (nonatomic,copy) NSString *headwearPic; +///头饰(新字段) 上麦的时候 在扩展字段中的 只用在坑位上 +@property (nonatomic,copy) NSString *headWearUrl; +/// 是否在房间,用在发现新朋友 +@property (nonatomic, copy) NSString * inRoomUid; +/// 是否在麦位,用在发现新朋友 +@property (nonatomic, assign) BOOL inMic; + +#pragma mark - 相亲房的字段 +///是否为相亲模式VIP坑位 +@property (nonatomic,assign) BOOL vipMic; +///帽子 相亲中收到礼物值最高的那个人 男神 女神都有 +@property (nonatomic,copy) NSString *capUrl; +///是不是选择了人 +@property (nonatomic,assign) BOOL hasSelectUser; +///所选择的麦序 +@property (nonatomic,assign) int selectMicPosition; +///贵族信息 +@property (nonatomic, strong) UserVipInfoVo *userVipInfoVO; +///当前使用的资料卡装扮 +@property (nonatomic, copy) NSString *userInfoCardPic; +///麦位光圈链接 +@property (nonatomic, copy) NSString *micCircle; +///麦位昵称颜色 +@property (nonatomic, copy) NSString *micNickColor; + +///技能卡图标列表 +@property (nonatomic, strong) NSArray *absCardPics; + +///跟随的 本地添加的字段 +@property (nonatomic,copy) NSString *fromNick; +@property (nonatomic,copy) NSString *fromUid; +///安卓房间公屏气泡 +@property (nonatomic, copy) NSString *androidBubbleUrl; +///iOS房间公屏气泡 +@property (nonatomic, copy) NSString *iosBubbleUrl; +#pragma mark - 小游戏 +/// 小游戏状态 0 未加入游戏;1 加入游戏未准备;2 加入游戏已准备 3 游戏中 +///用户的参加PK的类型 + + +///是否防被踢 +@property (nonatomic, assign) BOOL preventKick; +///是否符合渠道打招呼 +@property (nonatomic,assign) BOOL fromSayHelloChannel; +///是否是封号用户 +@property (nonatomic,assign) BOOL banAccount; + +///首页点单游戏信息 +@property(nonatomic,strong) UserGameInfoVo *userGamePartnerVo; +///个人详情资料的点单游戏信息 +@property(nonatomic,strong) NSArray *userGamePartner; +///pk时不能禁麦 +@property(nonatomic,assign) BOOL isNoProhibitMic; +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserInfoModel.m b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserInfoModel.m new file mode 100644 index 0000000..dd63a4d --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserInfoModel.m @@ -0,0 +1,34 @@ +// +// UserInfoModel.m +// xplan-ios +// +// Created by zu on 2021/9/14. +// + +#import "UserInfoModel.h" + +@implementation UserInfoModel + +//+ (NSDictionary *)objectClassInArray { +// return @{ +// @"privatePhoto":UserPhoto.class, +// @"userGiftWall":UserGiftWallInfoModel.class, +// @"userLuckyBagGiftWall":UserGiftWallInfoModel.class, +// @"dynamicInfo":MonentsInfoModel.class, +// @"userGamePartner":UserGameInfoVo.class +// }; +//} + +///如果一个模型中需要字段映射的话 比如id -> ID name -> other.name ++ (NSDictionary *)replacedKeyFromPropertyName { + return @{@"carEffect": @"carport.effect", + @"viewUrl": @"carport.viewUrl", + @"otherViewType": @"carport.otherViewType", + @"headwearEffect" : @"userHeadwear.effect", + @"headwearPic" : @"userHeadwear.pic", + @"carName": @"carport.name", + @"reviewingAvatar" : @"newAvatar" + }; +} + +@end diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserInfoSkillVo.h b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserInfoSkillVo.h new file mode 100644 index 0000000..28f484a --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserInfoSkillVo.h @@ -0,0 +1,16 @@ +// +// UserInfoSkillVo.h +// xplan-ios +// +// Created by zu on 2021/9/14. +// + +#import "NSObject+DDExtension.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface UserInfoSkillVo : NSObject +@property (nonatomic , assign) BOOL liveTag; +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserInfoSkillVo.m b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserInfoSkillVo.m new file mode 100644 index 0000000..c242b02 --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserInfoSkillVo.m @@ -0,0 +1,12 @@ +// +// UserInfoSkillVo.m +// xplan-ios +// +// Created by zu on 2021/9/14. +// + +#import "UserInfoSkillVo.h" + +@implementation UserInfoSkillVo + +@end diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserLevelVo.h b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserLevelVo.h new file mode 100644 index 0000000..e8d5353 --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserLevelVo.h @@ -0,0 +1,35 @@ +// +// UserLevelVo.h +// xplan-ios +// +// Created by zu on 2021/9/14. +// + +#import "NSObject+DDExtension.h" + +NS_ASSUME_NONNULL_BEGIN +typedef NS_ENUM(NSInteger, UserLevelType) { + UserLevelType_Common = 1,///普通人 + UserLevelType_Offical = 2,///官方 + UserLevelType_Robot = 3, ///机器人 +}; + +@interface UserLevelVo : NSObject +@property (nonatomic , copy) NSString * experUrl; +@property (nonatomic , copy) NSString * experNewUrl; +@property (nonatomic , copy) NSString * charmNewUrl; +@property (nonatomic , assign) NSInteger charmLevelSeq; +@property (nonatomic , copy) NSString * experLevelName; +@property (nonatomic , copy) NSString * charmLevelName; +@property (nonatomic , assign) NSInteger charmAmount; +@property (nonatomic , copy) NSString * experLevelGrp; +@property (nonatomic , copy) NSString * charmUrl; + +@property (nonatomic , assign) NSInteger experLevelSeq; +@property (nonatomic , assign) NSInteger experAmount; +@property (nonatomic , copy) NSString * charmLevelGrp; +///账号类型 +@property(nonatomic, assign) UserLevelType defUser; //账号类型 +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserLevelVo.m b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserLevelVo.m new file mode 100644 index 0000000..fef3bd3 --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserLevelVo.m @@ -0,0 +1,18 @@ +// +// UserLevelVo.m +// xplan-ios +// +// Created by zu on 2021/9/14. +// + +#import "UserLevelVo.h" + +@implementation UserLevelVo +//- (NSString *)charmNewUrl{ +// return [NSString getCharmImageUrl:_charmUrl];; +//} +//- (NSString *)experNewUrl{ +// return [NSString getWealthImageUrl:_experUrl]; +//} + +@end diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserPhoto.h b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserPhoto.h new file mode 100644 index 0000000..565b1e1 --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserPhoto.h @@ -0,0 +1,18 @@ +// +// UserPhoto.h +// xplan-ios +// +// Created by 冯硕 on 2021/9/23. +// + +#import "NSObject+DDExtension.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface UserPhoto : NSObject +@property (copy, nonatomic) NSString *photoUrl; +@property (copy, nonatomic) NSString *pid; +@property (nonatomic, assign) BOOL isReview; +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserPhoto.m b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserPhoto.m new file mode 100644 index 0000000..59326f4 --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserPhoto.m @@ -0,0 +1,13 @@ +// +// UserPhoto.m +// xplan-ios +// +// Created by 冯硕 on 2021/9/23. +// + +#import "UserPhoto.h" + +@implementation UserPhoto + + +@end diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserVipInfoVo.h b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserVipInfoVo.h new file mode 100644 index 0000000..8e2f08c --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserVipInfoVo.h @@ -0,0 +1,33 @@ +// +// UserVipInfoVo.h +// xplan-ios +// +// Created by GreenLand on 2022/1/4. +// 贵族信息 + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface UserVipInfoVo : NSObject + +///贵族图标 +@property (nonatomic, copy) NSString *vipIcon; +///贵族等级 +@property (nonatomic, assign) NSInteger vipLevel; +//用户好友昵称颜色 +@property (nonatomic, copy) NSString *friendNickColour; +///是否防被踢 +@property (nonatomic, assign) BOOL preventKick; +///是否隐身进房 +@property (nonatomic, assign) BOOL enterHide; +///贵族进房特效 +@property (nonatomic, copy) NSString *enterRoomEffects; +///贵族名称 +@property (nonatomic, copy) NSString *vipName; +///隐身访问主页 +@property (nonatomic,assign) BOOL lookHomepageHide; + +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserVipInfoVo.m b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserVipInfoVo.m new file mode 100644 index 0000000..4e55622 --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Model/UserVipInfoVo.m @@ -0,0 +1,12 @@ +// +// UserVipInfoVo.m +// xplan-ios +// +// Created by GreenLand on 2022/1/4. +// + +#import "UserVipInfoVo.h" + +@implementation UserVipInfoVo + +@end diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Presenter/BaseMvpPresenter.h b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Presenter/BaseMvpPresenter.h new file mode 100644 index 0000000..882c4c0 --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Presenter/BaseMvpPresenter.h @@ -0,0 +1,36 @@ +// +// BaseMvpPresenter.h +// xplan-ios +// +// Created by zu on 2021/8/31. +// + +#import +#import "BaseMvpProtocol.h" +#import "HttpRequestHelper.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef void(^HttpSuccess)(BaseModel *data); +typedef void(^HttpFail)(NSInteger code, NSString * _Nullable msg); + +@interface BaseMvpPresenter : NSObject + +- (void)attatchView:(id)view; +- (id)getView; +- (void)detatchView; +- (void)logout; +- (HttpRequestHelperCompletion)createHttpCompletion:(HttpSuccess _Nonnull)success; +- (HttpRequestHelperCompletion)createHttpCompletion:(HttpSuccess _Nonnull)success showLoading:(BOOL)loading; +- (HttpRequestHelperCompletion)createHttpCompletion:(HttpSuccess _Nonnull)success errorToast:(BOOL)toast; +- (HttpRequestHelperCompletion)createHttpCompletion:(HttpSuccess _Nonnull)success showLoading:(BOOL)loading errorToast:(BOOL)toast; +- (HttpRequestHelperCompletion)createHttpCompletion:(HttpSuccess _Nonnull)success fail:(HttpFail _Nullable)fail; +- (HttpRequestHelperCompletion)createHttpCompletion:(HttpSuccess _Nonnull)success fail:(HttpFail _Nullable)fail showLoading:(BOOL)loading; +- (HttpRequestHelperCompletion)createHttpCompletion:(HttpSuccess _Nonnull)success fail:(HttpFail _Nullable)fail errorToast:(BOOL)toast; +- (HttpRequestHelperCompletion)createHttpCompletion:(HttpSuccess _Nonnull)success fail:(HttpFail _Nullable)fail showLoading:(BOOL)loading errorToast:(BOOL)toast; + + + +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Presenter/BaseMvpPresenter.m b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Presenter/BaseMvpPresenter.m new file mode 100644 index 0000000..cb4792e --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Presenter/BaseMvpPresenter.m @@ -0,0 +1,142 @@ +// +// BaseMvpPresenter.m +// xplan-ios +// +// Created by zu on 2021/8/31. +// + +#import "BaseMvpPresenter.h" +#import "AccountInfoStorage.h" +#import +#import +//#import "ClientConfig.h" + +@interface BaseMvpPresenter() + +@property (nonatomic, weak) id view; + +@end + +@implementation BaseMvpPresenter + +- (void)attatchView:(id)view { + self.view = view; +} + +- (id)getView { + return self.view; +} + +- (void)logout { + // 1. 数据logout + [[AccountInfoStorage instance] saveAccountInfo:nil]; + [[AccountInfoStorage instance] saveTicket:nil]; + if ([NIMSDK sharedSDK].loginManager.isLogined) { + [[NIMSDK sharedSDK].loginManager logout:nil]; + } + + [[QYSDK sharedSDK] logout:^(BOOL success) { + + }]; + + ///关闭心跳 +// [[ClientConfig shareConfig] resetHeartBratTimer]; + + // 2. 跳登录页面 + [[self getView] tokenInvalid]; +} + +- (HttpRequestHelperCompletion)createHttpCompletion:(HttpSuccess)success { + return [self createHttpCompletion:success fail:nil]; +} + +- (HttpRequestHelperCompletion)createHttpCompletion:(HttpSuccess)success showLoading:(BOOL)loading { + return [self createHttpCompletion:success fail:nil showLoading:loading]; +} + +- (HttpRequestHelperCompletion)createHttpCompletion:(HttpSuccess)success errorToast:(BOOL)toast { + return [self createHttpCompletion:success fail:nil errorToast:toast]; +} + +- (HttpRequestHelperCompletion)createHttpCompletion:(HttpSuccess)success showLoading:(BOOL)loading errorToast:(BOOL)toast { + return [self createHttpCompletion:success fail:nil showLoading:loading errorToast:toast]; +} + +- (HttpRequestHelperCompletion)createHttpCompletion:(HttpSuccess)success fail:(HttpFail)fail { + return [self createHttpCompletion:success fail:fail showLoading:NO errorToast:YES]; +} + +- (HttpRequestHelperCompletion)createHttpCompletion:(HttpSuccess)success fail:(HttpFail)fail showLoading:(BOOL)loading { + return [self createHttpCompletion:success fail:fail showLoading:loading errorToast:YES]; +} + +- (HttpRequestHelperCompletion)createHttpCompletion:(HttpSuccess)success fail:(HttpFail)fail errorToast:(BOOL)toast { + return [self createHttpCompletion:success fail:fail showLoading:NO errorToast:toast]; +} + +- (HttpRequestHelperCompletion)createHttpCompletion:(HttpSuccess)success fail:(HttpFail)fail showLoading:(BOOL)loading errorToast:(BOOL)toast { + if (loading) { + [self.view dd_showAnchorGIFWaitView]; + } + return ^(BaseModel *data, NSInteger code, NSString * _Nullable msg) { + if (loading) { + [self.view dd_HideWaitView]; + } + if (code == 200) { + success(data); + return; + } + +// switch (code) { +// case 401: // 登录过期 +// [self logout]; +// return; +// case 407: +// case 408: +// [[self getView] accountBanned:data]; +// return; +// case 1415: // 未完善用户信息 +// [[self getView] completeUserInfo]; +// return; +// case 3009: // 账号已注销 +// [[self getView] accountCanceled:data.model2dictionary]; +// return; +// case 31005: {//余额不足 +// } +// break; +// case 30000: {// 青少年模式进房错误,进行弹窗处理,同时不显示 toast。 +// } +// break; +// case 10111: // 提现时,金额过大,需要先实名认证 +// [self.view hideHUD]; +// [[self getView] showRealNameAuthenticationTipsAlertView]; +// if (fail) { +// fail(code, msg); +// } +// return; +// case 10108: // 未实名认证 +// [self.view hideHUD]; +// [[self getView] showRealNameAuthenticationTipsAlertView]; +// if (fail) { +// fail(code, msg); +// } +// return; +// case 25000: {// 在青少年模式下,充值已达上限 +// } +// } + + if (toast) { + [self.view dd_showErrorWithText:msg]; + } + + if (fail) { + fail(code, msg); + } + }; +} + +- (void)detatchView { + +} + +@end diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Protocol/BaseMvpProtocol.h b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Protocol/BaseMvpProtocol.h new file mode 100644 index 0000000..dc85b8a --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/Protocol/BaseMvpProtocol.h @@ -0,0 +1,27 @@ +// +// BaseMvpProtocol.h +// xplan-ios +// +// Created by zu on 2021/8/31. +// + +#import +#import "DDBaseVC.h" + +NS_ASSUME_NONNULL_BEGIN +@class BaseModel; +@protocol BaseMvpProtocol + +- (void)tokenInvalid; +- (void)completeUserInfo; +- (void)accountCanceled:(NSDictionary *)data; + +///实名认证弹窗 +- (void)showRealNameAuthenticationTipsAlertView; + +///封禁账号 +- (void)accountBanned:(BaseModel *)data; + +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/View/MvpViewController.h b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/View/MvpViewController.h new file mode 100644 index 0000000..f529d98 --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/View/MvpViewController.h @@ -0,0 +1,21 @@ +// +// MvpViewController.h +// xplan-ios +// +// Created by zu on 2021/8/31. +// + +#import "DDBaseVC.h" +#import "BaseMvpPresenter.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface MvpViewController : DDBaseVC + +@property (nonatomic, strong) __kindof T presenter; + +- (__kindof T)createPresenter; + +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/View/MvpViewController.m b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/View/MvpViewController.m new file mode 100644 index 0000000..1fa7f0b --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/MVP/View/MvpViewController.m @@ -0,0 +1,110 @@ +// +// MvpViewController.m +// xplan-ios +// +// Created by zu on 2021/8/31. +// + +#import "MvpViewController.h" +#import "BaseMvpProtocol.h" +#import "BaseMvpPresenter.h" + + + + +//Tool +#import "TTPopup.h" + +#import "DDAppColor.h" + + + +@interface MvpViewController () + +@end + +@implementation MvpViewController + +- (__kindof id)presenter { + if (_presenter == nil) { + _presenter = [self createPresenter]; + [_presenter attatchView:self]; + } + return _presenter; +} + +- (__kindof id)createPresenter { + return [[BaseMvpPresenter alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; +} + +- (void)tokenInvalid { + +// LoginViewController *loginVC = [[LoginViewController alloc] init]; +// BaseNavigationController * nav = [[BaseNavigationController alloc] initWithRootViewController:loginVC]; +// nav.modalPresentationStyle = UIModalPresentationFullScreen; +// [self.navigationController presentViewController:nav animated:YES completion:nil]; +} + +- (void)accountCanceled:(NSDictionary *)data { + +} + +- (void)completeUserInfo { + +} + +///实名认证弹窗 +- (void)showRealNameAuthenticationTipsAlertView { +// TTAlertConfig *config = [[TTAlertConfig alloc] init]; +// config.message = @"为了营造更安全的网络环境\n保护您和他人的财产安全\n请先进行实名认证"; +// config.messageLineSpacing = 4; +// config.confirmButtonConfig.title = @"前往认证"; +// config.confirmButtonConfig.titleColor = UIColor.whiteColor; +// config.confirmButtonConfig.backgroundColor = [DDAppColor appMainColor]; +// +// TTAlertMessageAttributedConfig *nameAttrConf = [[TTAlertMessageAttributedConfig alloc] init]; +// nameAttrConf.text = @"实名认证"; +// nameAttrConf.color = [DDAppColor appMainColor]; +// config.messageAttributedConfig = @[nameAttrConf]; +// +// @kWeakify(self); +// [TTPopup alertWithConfig:config confirmHandler:^{ +// @kStrongify(self); +// XPWebViewController * webVC = [[XPWebViewController alloc] init]; +// webVC.url = URLWithType(kIdentityURL); +// if([self isKindOfClass:[XPMineHalfRechargeViewController class]]){ +// XPMineHalfRechargeViewController *payVC = (XPMineHalfRechargeViewController *)self; +// [payVC dismissViewControllerAnimated:YES completion:nil]; +// [payVC.currentNav pushViewController:webVC animated:YES]; +// return; +// } +// +// [self.navigationController pushViewController:webVC animated:YES]; +// } cancelHandler:^{ +// }]; +} + +///封禁账号 +- (void)accountBanned:(BaseModel *)data { +// TTAlertConfig * config = [[TTAlertConfig alloc] init]; +// config.title = @"您被封号了"; +// NSString *dateDes = [PLTimeUtil getDateWithYYMMDD:data.date]; +// NSString * title = [NSString stringWithFormat:@"您的账号因%@被封禁\n解封时间:%@", data.reason,dateDes]; +// TTAlertMessageAttributedConfig * inviteAlertConfig = [[TTAlertMessageAttributedConfig alloc] init]; +// inviteAlertConfig.text = dateDes; +// inviteAlertConfig.color = [DDAppColor appMainColor]; +// inviteAlertConfig.font = [UIFont systemFontOfSize:15]; +// config.message = title; +// config.messageAttributedConfig = @[inviteAlertConfig]; +// [TTPopup alertWithConfig:config confirmHandler:^{ +// +// } cancelHandler:^{ +// +// }]; +} + +@end diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/Net/ApiHost.h b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/Net/ApiHost.h new file mode 100644 index 0000000..e653517 --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/Net/ApiHost.h @@ -0,0 +1,19 @@ +// +// ApiHost.h +// xplan-ios +// +// Created by zu on 2021/9/6. +// + +#ifndef ApiHost_h +#define ApiHost_h + +#ifdef DEBUG +#define API_HOST_H5_URL @"http://beta.h5.nnbc123.cn" +#define API_HOST_URL @"http://beta.api.nnbc123.cn" +#else +#define API_HOST_H5_URL @"https://h5.nnbc123.cn" +#define API_HOST_URL @"https://api.nnbc123.cn" +#endif + +#endif /* ApiHost_h */ diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/Net/HttpRequestHelper.h b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/Net/HttpRequestHelper.h new file mode 100644 index 0000000..3cfb33e --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/Net/HttpRequestHelper.h @@ -0,0 +1,64 @@ +// +// HttpRequestHelper.h +// xplan-ios +// +// Created by zu on 2021/9/3. +// + +#import +#import "BaseModel.h" + +typedef NS_ENUM(NSUInteger, HttpRequestHelperMethod) { + HttpRequestHelperMethodPOST, + HttpRequestHelperMethodGET, + HttpRequestHelperMethodDELETE +}; + +static dispatch_once_t onceToken; + +typedef void(^HttpRequestHelperCompletion)(BaseModel* _Nullable data, NSInteger code, NSString * _Nullable msg); + +NS_ASSUME_NONNULL_BEGIN + +@interface HttpRequestHelper : NSObject + ++ (NSDictionary*)configBaseParmars:(NSDictionary *)parmars; + ++ (void)GET:(NSString *)method +params:(NSDictionary *)params +success:(void (^)(BaseModel *data))success + failure:(void (^)(NSInteger resCode, NSString *message))failure; + ++ (void)POST:(NSString *)method + params:(NSDictionary *)params + success:(void (^)(BaseModel *data))success + failure:(void (^)(NSInteger resCode, NSString *message))failure; + ++ (void)DELETE:(NSString *)method + params:(NSDictionary *)params + success:(void (^)(BaseModel *data))success + failure:(void (^)(NSInteger resCode, NSString *message))failure; + ++ (void)request:(NSString *)url + method:(HttpRequestHelperMethod)method + params:(NSDictionary *)params + success:(void (^)(BaseModel *data))success + failure:(void (^)(NSInteger resCode, NSString *message))failure; + ++ (void)request:(NSString *)path + method:(HttpRequestHelperMethod)method + params:(NSDictionary *)params + completion:(HttpRequestHelperCompletion)completion; + + +/// 增加或编辑技能卡专用接口 Post 请求参数放入到 body 里 使用 application/json 类型传递 +/// @param path 请求地址 +/// @param params 参数 +/// @param completion 回调 ++ (void)postSkillCard:(NSString *)path + params:(NSString *)params + completion:(HttpRequestHelperCompletion)completion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/Net/HttpRequestHelper.m b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/Net/HttpRequestHelper.m new file mode 100644 index 0000000..94bd67a --- /dev/null +++ b/yinmeng-ios/DingDangApp/YingMeng/DDBaseCompilation/Net/HttpRequestHelper.m @@ -0,0 +1,346 @@ +// +// HttpRequestHelper.m +// xplan-ios +// +// Created by zu on 2021/9/3. +// + +#import "HttpRequestHelper.h" +#import "ApiHost.h" +#import "DDUtility.h" +#import "AccountInfoStorage.h" +#import "DDReachability.h" +#import +#import +#import "TTAlertView.h" +#import "DDCurVCManager.h" + +@implementation HttpRequestHelper + +static BOOL isShowing = NO; + ++(AFHTTPSessionManager *)requestManager +{ + static AFHTTPSessionManager *manager = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + manager = [[AFHTTPSessionManager manager]initWithBaseURL:[NSURL URLWithString:API_HOST_URL]]; + manager.responseSerializer = [AFJSONResponseSerializer serializer]; + manager.requestSerializer.HTTPShouldHandleCookies = YES; + // 客户端是否信任非法证书 + manager.securityPolicy.allowInvalidCertificates = YES; + AFSecurityPolicy *securityPolicy= [AFSecurityPolicy defaultPolicy]; + manager.securityPolicy = securityPolicy; + // 是否在证书域字段中验证域名 + [manager.securityPolicy setValidatesDomainName:NO]; + manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html",@"text/plain",@"image/jpeg",@"image/png", nil]; + manager.requestSerializer.timeoutInterval = 60; + }); + return manager; +} + ++ (void)showNoNetAlert { + if (isShowing == NO) { + UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"温馨提示" message:@"请检查网络配置或确定设备是否联网" preferredStyle:UIAlertControllerStyleAlert]; + [alert addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) { + isShowing = NO; + }]]; + [alert addAction:[UIAlertAction actionWithTitle:@"设置" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { + isShowing = NO; + NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; + if ([[UIApplication sharedApplication] canOpenURL:url]) { + [[UIApplication sharedApplication] openURL:url options:nil completionHandler:^(BOOL success) { + + }]; + } + }]]; + [[DDCurVCManager share].dd_getCurVC presentViewController:alert animated:YES completion:nil]; + isShowing = YES; + } +} + ++ (void)GET:(NSString *)method + params:(NSDictionary *)params + success:(void (^)(BaseModel *data))success + failure:(void (^)(NSInteger resCode, NSString *message))failure +{ + if ([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == 0) { + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.01 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [self showNoNetAlert]; + failure(-1, @"请检查网络连接。"); + NSException * extrion= [NSException exceptionWithName:method reason:@"接口没有网络" userInfo:nil]; + [Bugly reportException:extrion]; + + }); + return; + } + + [self configHeaders]; + params = [self configBaseParmars:params]; +#ifdef DEBUG + NSLog(@"\nmethod:\n%@\nparameter:\n%@", method, params); +#endif + + AFHTTPSessionManager *manager = [HttpRequestHelper requestManager]; + [manager GET:method parameters:params headers:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { + BaseModel *baseModel = [BaseModel DD_ModelWithDict:responseObject]; +#ifdef DEBUG + NSLog(@"\n%@", [baseModel dd_toJSONString]); +#endif + success(baseModel); + } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { + [self handleNetError:error method:method failure:failure]; + }]; +} + ++ (void)POST:(NSString *)method + params:(NSDictionary *)params + success:(void (^)(BaseModel *data))success + failure:(void (^)(NSInteger resCode, NSString *message))failure +{ + if ([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == 0) { + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.01 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + failure(-1, @"请检查网络连接。"); + NSException * extrion= [NSException exceptionWithName:method reason:@"接口没有网络" userInfo:nil]; + [Bugly reportException:extrion]; + }); + return; + } + + [self configHeaders]; + params = [self configBaseParmars:params]; +#ifdef DEBUG + NSLog(@"\nmethod:\n%@\nparameter:\n%@", method, params); +#endif + + AFHTTPSessionManager *manager = [HttpRequestHelper requestManager]; + [manager POST:method parameters:params headers:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { + BaseModel *baseModel = [BaseModel DD_ModelWithDict:responseObject]; +#ifdef DEBUG + NSLog(@"\n%@", [baseModel dd_toJSONString]); +#endif + success(baseModel); + } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { + [self handleNetError:error method:method failure:failure]; + }]; +} + ++ (void)DELETE:(NSString *)method + params:(NSDictionary *)params + success:(void (^)(BaseModel *data))success + failure:(void (^)(NSInteger resCode, NSString *message))failure +{ + if ([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == 0) { + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.01 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + failure(-1, @"请检查网络连接。"); + NSException * extrion= [NSException exceptionWithName:method reason:@"接口没有网络" userInfo:nil]; + [Bugly reportException:extrion]; + }); + return; + } + + [self configHeaders]; + params = [self configBaseParmars:params]; +#ifdef DEBUG + NSLog(@"\nmethod:\n%@\nparameter:\n%@", method, params); +#endif + + AFHTTPSessionManager *manager = [HttpRequestHelper requestManager]; + [manager DELETE:method parameters:params headers:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { + BaseModel *baseModel = [BaseModel DD_ModelWithDict:responseObject]; +#ifdef DEBUG + NSLog(@"\n%@", [baseModel dd_toJSONString]); +#endif + success(baseModel); + } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { + [self handleNetError:error method:method failure:failure]; + }]; +} + ++ (void)request:(NSString *)url + method:(HttpRequestHelperMethod)method + params:(NSDictionary *)params + success:(void (^)(BaseModel *data))success + failure:(void (^)(NSInteger resCode, NSString *message))failure +{ + switch (method) { + case HttpRequestHelperMethodGET: { + [self GET:url params:params success:success failure:failure]; + } + break; + case HttpRequestHelperMethodPOST:{ + [self POST:url params:params success:success failure:failure]; + } + break; + case HttpRequestHelperMethodDELETE:{ + [self DELETE:url params:params success:success failure:failure]; + } + break; + } +} + ++ (void)request:(NSString *)path + method:(HttpRequestHelperMethod)method + params:(NSDictionary *)params + completion:(HttpRequestHelperCompletion)completion +{ + [self request:path method:method params:params success:^(BaseModel *data) { + if (completion) { + completion(data, data.code, data.message); + } + } failure:^(NSInteger resCode, NSString *message) { + if (completion) { + completion(nil, resCode, message); + } + }]; +} + ++ (void)configHeaders +{ + AFHTTPSessionManager *client = [HttpRequestHelper requestManager]; + if ([[AccountInfoStorage instance] getUid].length > 0) { + [client.requestSerializer setValue:[[AccountInfoStorage instance] getUid] forHTTPHeaderField:@"pub_uid"]; + } else { + [client.requestSerializer setValue:nil forHTTPHeaderField:@"pub_uid"]; + } + if ([[AccountInfoStorage instance] getTicket].length > 0) { + [client.requestSerializer setValue:[[AccountInfoStorage instance] getTicket] forHTTPHeaderField:@"pub_ticket"]; + }else { + [client.requestSerializer setValue:nil forHTTPHeaderField:@"pub_ticket"]; + } +} + ++ (NSDictionary*)configBaseParmars:(NSDictionary *)parmars +{ + NSDictionary *defaultBasciParame = @{ + @"os" : @"iOS", + @"osVersion" : [DDUtility DD_SystemVersion], + @"netType" : ([DDUtility DD_NetworkStatus] == ReachableViaWiFi) ? @2 : @1, + @"ispType" : @([DDUtility DD_CarrierIdentifier]), + @"channel" : [DDUtility DD_GetAppSource] ? : @"", + @"model" : [DDUtility DD_ModelName], + @"deviceId" : [DDUtility DD_DeviceUniqueIdentification], + @"appVersion" : [DDUtility DD_AppVersion], + @"app" : [DDUtility DD_AppName] + }; + if (!parmars||![parmars isKindOfClass:[NSDictionary class]]){ + NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithDictionary:defaultBasciParame]; + return dic; + } + NSMutableDictionary * dic = [NSMutableDictionary dictionaryWithDictionary:parmars]; + for (NSString *parameKey in defaultBasciParame.allKeys) { + [dic setObject:defaultBasciParame[parameKey] forKey:parameKey]; + } + return dic; +} + ++ (void)handleNetError:(NSError *)error method:(NSString *)method + failure:(void (^)(NSInteger resCode, NSString *message))failure +{ +#ifdef DEBUG + NSLog(@"\n%@", error); +#endif + // 别问,反正 oauth/ticket 接口要通过这种方式取错误码。 + NSHTTPURLResponse *response = error.userInfo[@"com.alamofire.serialization.response.error.response"]; + if (response && response.statusCode == 401) { + failure(response.statusCode, @"登录已过期。"); + } else { + + if (error.code == -1009 || error.code == -1001 || error.code == -1004 || error.code == -1003 || error.code == -1002 || error.code == 3840) { + failure(error.code, @""); + } else { + failure(error.code, error.localizedDescription.length > 0 ? error.localizedDescription : @"音萌开小差中~请稍后再试"); + } + NSString * code = error.code ? [NSString stringWithFormat:@"%ld", error.code] : @"9999"; + NSString * des = error.description.length > 0 ? error.description : @"接口报错信息未知"; + NSException *exception = [NSException exceptionWithName:@"229181" + reason:method + userInfo:@{@"code":code, @"desc":des}]; + [Bugly reportException:exception]; + } +} + +/// 增加或编辑技能卡专用接口 Post 请求参数放入到 body 里 使用 application/json 类型传递 +/// @param path 请求地址 +/// @param params 参数 +/// @param completion 回调 ++ (void)postSkillCard:(NSString *)path + params:(NSString *)params + completion:(HttpRequestHelperCompletion)completion{ + + if ([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == 0) { + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.01 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + completion(nil, -1, @"请检查网络连接。"); + }); + return; + } + + [self configHeaders]; + NSDictionary *baseParams = [self configBaseParmars:nil]; +#ifdef DEBUG +// NSLog(@"\nmethod:\n%@\nparameter:\n%@", method, params); +#endif + + AFHTTPSessionManager *manager = [HttpRequestHelper requestManager]; + NSString *url = API_HOST_URL; + NSString *urlPath = [NSString stringWithFormat:@"%@/%@", url ,path]; + + #ifdef DEBUG + NSLog(@"url:%@,parameter:%@",urlPath, baseParams); + #endif + + __block NSString *requestUrl = @""; + [baseParams.allKeys enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + NSString *value = baseParams[obj]; + requestUrl = [requestUrl stringByAppendingString:[NSString stringWithFormat:@"%@=%@&", obj, value]]; + }]; + + urlPath = [NSString stringWithFormat:@"%@?%@", urlPath, requestUrl]; + + NSMutableURLRequest *request = [[AFJSONRequestSerializer serializer] requestWithMethod:@"POST" URLString:urlPath parameters:baseParams error:nil]; + request.timeoutInterval= [[[NSUserDefaults standardUserDefaults] valueForKey:@"timeoutInterval"] longValue]; + + [request setValue:@"application/json; charset=UTF-8" forHTTPHeaderField:@"Content-Type"]; + + if ([[AccountInfoStorage instance] getUid].length > 0) { + [request setValue:[[AccountInfoStorage instance] getUid] forHTTPHeaderField:@"pub_uid"]; + [manager.requestSerializer setValue:[[AccountInfoStorage instance] getUid] forHTTPHeaderField:@"pub_uid"]; + } else { + [request setValue:nil forHTTPHeaderField:@"pub_uid"]; + } + if ([[AccountInfoStorage instance] getTicket].length > 0) { + [request setValue:[[AccountInfoStorage instance] getTicket] forHTTPHeaderField:@"pub_ticket"]; + [manager.requestSerializer setValue:[[AccountInfoStorage instance] getTicket] forHTTPHeaderField:@"pub_ticket"]; + }else { + [request setValue:nil forHTTPHeaderField:@"pub_ticket"]; + } + + NSError *error; + + [request setHTTPBody:[params dataUsingEncoding:NSUTF8StringEncoding]]; + + [[manager dataTaskWithRequest:request uploadProgress:nil downloadProgress:nil completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) { + if (responseObject) { + BaseModel *baseModel = [BaseModel DD_ModelWithDict:responseObject]; + #ifdef DEBUG + NSLog(@"\n%@", [baseModel dd_toJSONString]); + #endif + if (baseModel.code == 200) { + if (completion) { + completion(baseModel, 200, nil); + } + } else { + if (completion) { + completion(nil, baseModel.code, baseModel.message); + } + } + } + if (error) { + [self handleNetError:error method:path failure:^(NSInteger resCode, NSString *message) { + completion(nil, resCode, message); + }]; + } + }] resume]; +} + +@end diff --git a/yinmeng-ios/Podfile.lock b/yinmeng-ios/Podfile.lock index de00cc7..a1bebb0 100644 --- a/yinmeng-ios/Podfile.lock +++ b/yinmeng-ios/Podfile.lock @@ -591,4 +591,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 4a3e8c3e3691165802b43178346af03c39e4ae9b -COCOAPODS: 1.14.2 +COCOAPODS: 1.12.1