家族收入流水

This commit is contained in:
fengshuo
2022-04-11 20:51:38 +08:00
parent cd2d463ece
commit ff87d5a80b
39 changed files with 2335 additions and 3 deletions

View File

@@ -246,6 +246,18 @@
9BEE3D11278584FE00C83219 /* XPNobleCenterEmptyView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BEE3D10278584FE00C83219 /* XPNobleCenterEmptyView.m */; };
9BEE3D142785884A00C83219 /* XPNobleCenterResidueView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BEE3D132785884A00C83219 /* XPNobleCenterResidueView.m */; };
9BEE3D1727858E5700C83219 /* XPNobleAuthorityDescView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BEE3D1627858E5700C83219 /* XPNobleAuthorityDescView.m */; };
E80016232803CA5D00D6D17A /* XPMineGuildIncomeRecordViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E80016222803CA5D00D6D17A /* XPMineGuildIncomeRecordViewController.m */; };
E80016262803CB2800D6D17A /* XPGuildIncomeHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = E80016252803CB2800D6D17A /* XPGuildIncomeHeaderView.m */; };
E80016292803D5C500D6D17A /* XPGuildIncomeRecordTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E80016282803D5C500D6D17A /* XPGuildIncomeRecordTableViewCell.m */; };
E800162C2803FE4900D6D17A /* GuildIncomeRecordModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E800162B2803FE4900D6D17A /* GuildIncomeRecordModel.m */; };
E800162F2803FF6200D6D17A /* GuildPersonIncomeRecordModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E800162E2803FF6200D6D17A /* GuildPersonIncomeRecordModel.m */; };
E8001632280409FD00D6D17A /* XPGuildPersonIncomeTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E8001631280409FD00D6D17A /* XPGuildPersonIncomeTableViewCell.m */; };
E8001635280410BD00D6D17A /* XPGuildIncomeSectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8001634280410BD00D6D17A /* XPGuildIncomeSectionView.m */; };
E80016382804140D00D6D17A /* XPMineGuildIncomeStatisViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E80016372804140D00D6D17A /* XPMineGuildIncomeStatisViewController.m */; };
E800163B28041F7B00D6D17A /* XPGuildSingleRoomIncomeTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E800163A28041F7B00D6D17A /* XPGuildSingleRoomIncomeTableViewCell.m */; };
E80016422804228100D6D17A /* XPGuildIncomePresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = E80016412804228100D6D17A /* XPGuildIncomePresenter.m */; };
E80016452804268E00D6D17A /* XPMineClanIncomeStatisViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E80016442804268E00D6D17A /* XPMineClanIncomeStatisViewController.m */; };
E8001648280426CB00D6D17A /* XPMineAnchorIncomeStatisViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E8001647280426CB00D6D17A /* XPMineAnchorIncomeStatisViewController.m */; };
E800805A27FD34DE0055A8AB /* XPMineClanViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E800805927FD34DE0055A8AB /* XPMineClanViewController.m */; };
E800805D27FD34E90055A8AB /* XPMineGuildViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E800805C27FD34E90055A8AB /* XPMineGuildViewController.m */; };
E800806227FD373D0055A8AB /* XPClanMemberTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E800806127FD373D0055A8AB /* XPClanMemberTableViewCell.m */; };
@@ -1146,6 +1158,31 @@
9BEE3D1627858E5700C83219 /* XPNobleAuthorityDescView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPNobleAuthorityDescView.m; sourceTree = "<group>"; };
B66633E061B1B34177CD011C /* Pods-xplan-ios.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-xplan-ios.release.xcconfig"; path = "Target Support Files/Pods-xplan-ios/Pods-xplan-ios.release.xcconfig"; sourceTree = "<group>"; };
CACF623970097D653132D69A /* Pods_xplan_ios.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_xplan_ios.framework; sourceTree = BUILT_PRODUCTS_DIR; };
E80016212803CA5D00D6D17A /* XPMineGuildIncomeRecordViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineGuildIncomeRecordViewController.h; sourceTree = "<group>"; };
E80016222803CA5D00D6D17A /* XPMineGuildIncomeRecordViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineGuildIncomeRecordViewController.m; sourceTree = "<group>"; };
E80016242803CB2800D6D17A /* XPGuildIncomeHeaderView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPGuildIncomeHeaderView.h; sourceTree = "<group>"; };
E80016252803CB2800D6D17A /* XPGuildIncomeHeaderView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPGuildIncomeHeaderView.m; sourceTree = "<group>"; };
E80016272803D5C500D6D17A /* XPGuildIncomeRecordTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPGuildIncomeRecordTableViewCell.h; sourceTree = "<group>"; };
E80016282803D5C500D6D17A /* XPGuildIncomeRecordTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPGuildIncomeRecordTableViewCell.m; sourceTree = "<group>"; };
E800162A2803FE4900D6D17A /* GuildIncomeRecordModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GuildIncomeRecordModel.h; sourceTree = "<group>"; };
E800162B2803FE4900D6D17A /* GuildIncomeRecordModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GuildIncomeRecordModel.m; sourceTree = "<group>"; };
E800162D2803FF6200D6D17A /* GuildPersonIncomeRecordModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GuildPersonIncomeRecordModel.h; sourceTree = "<group>"; };
E800162E2803FF6200D6D17A /* GuildPersonIncomeRecordModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GuildPersonIncomeRecordModel.m; sourceTree = "<group>"; };
E8001630280409FD00D6D17A /* XPGuildPersonIncomeTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPGuildPersonIncomeTableViewCell.h; sourceTree = "<group>"; };
E8001631280409FD00D6D17A /* XPGuildPersonIncomeTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPGuildPersonIncomeTableViewCell.m; sourceTree = "<group>"; };
E8001633280410BD00D6D17A /* XPGuildIncomeSectionView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPGuildIncomeSectionView.h; sourceTree = "<group>"; };
E8001634280410BD00D6D17A /* XPGuildIncomeSectionView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPGuildIncomeSectionView.m; sourceTree = "<group>"; };
E80016362804140D00D6D17A /* XPMineGuildIncomeStatisViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineGuildIncomeStatisViewController.h; sourceTree = "<group>"; };
E80016372804140D00D6D17A /* XPMineGuildIncomeStatisViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineGuildIncomeStatisViewController.m; sourceTree = "<group>"; };
E800163928041F7B00D6D17A /* XPGuildSingleRoomIncomeTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPGuildSingleRoomIncomeTableViewCell.h; sourceTree = "<group>"; };
E800163A28041F7B00D6D17A /* XPGuildSingleRoomIncomeTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPGuildSingleRoomIncomeTableViewCell.m; sourceTree = "<group>"; };
E800163F2804226500D6D17A /* XPGuildIncomeProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPGuildIncomeProtocol.h; sourceTree = "<group>"; };
E80016402804228100D6D17A /* XPGuildIncomePresenter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPGuildIncomePresenter.h; sourceTree = "<group>"; };
E80016412804228100D6D17A /* XPGuildIncomePresenter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPGuildIncomePresenter.m; sourceTree = "<group>"; };
E80016432804268E00D6D17A /* XPMineClanIncomeStatisViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineClanIncomeStatisViewController.h; sourceTree = "<group>"; };
E80016442804268E00D6D17A /* XPMineClanIncomeStatisViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineClanIncomeStatisViewController.m; sourceTree = "<group>"; };
E8001646280426CB00D6D17A /* XPMineAnchorIncomeStatisViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineAnchorIncomeStatisViewController.h; sourceTree = "<group>"; };
E8001647280426CB00D6D17A /* XPMineAnchorIncomeStatisViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineAnchorIncomeStatisViewController.m; sourceTree = "<group>"; };
E800805827FD34DE0055A8AB /* XPMineClanViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineClanViewController.h; sourceTree = "<group>"; };
E800805927FD34DE0055A8AB /* XPMineClanViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineClanViewController.m; sourceTree = "<group>"; };
E800805B27FD34E90055A8AB /* XPMineGuildViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineGuildViewController.h; sourceTree = "<group>"; };
@@ -3394,6 +3431,7 @@
E8834E4928003E390029CCC1 /* XPGuildManagerListProtocol.h */,
E8834E4D28003E660029CCC1 /* XPGuildSetManagerProtocol.h */,
E8834E572800586C0029CCC1 /* XPGuildManagerPerProtocol.h */,
E800163F2804226500D6D17A /* XPGuildIncomeProtocol.h */,
);
path = Protocol;
sourceTree = "<group>";
@@ -3417,6 +3455,8 @@
E8834E4B28003E4E0029CCC1 /* XPMineManagerSetPresenter.m */,
E8834E542800585A0029CCC1 /* XPGuildManagerPerPresenter.h */,
E8834E552800585A0029CCC1 /* XPGuildManagerPerPresenter.m */,
E80016402804228100D6D17A /* XPGuildIncomePresenter.h */,
E80016412804228100D6D17A /* XPGuildIncomePresenter.m */,
);
path = Presenter;
sourceTree = "<group>";
@@ -3442,6 +3482,14 @@
E8834E4128003A270029CCC1 /* XPMineGuildManagerSetViewController.m */,
E8834E4E280051600029CCC1 /* XPMineGuildManagerPerViewController.h */,
E8834E4F280051600029CCC1 /* XPMineGuildManagerPerViewController.m */,
E80016212803CA5D00D6D17A /* XPMineGuildIncomeRecordViewController.h */,
E80016222803CA5D00D6D17A /* XPMineGuildIncomeRecordViewController.m */,
E80016362804140D00D6D17A /* XPMineGuildIncomeStatisViewController.h */,
E80016372804140D00D6D17A /* XPMineGuildIncomeStatisViewController.m */,
E80016432804268E00D6D17A /* XPMineClanIncomeStatisViewController.h */,
E80016442804268E00D6D17A /* XPMineClanIncomeStatisViewController.m */,
E8001646280426CB00D6D17A /* XPMineAnchorIncomeStatisViewController.h */,
E8001647280426CB00D6D17A /* XPMineAnchorIncomeStatisViewController.m */,
);
path = View;
sourceTree = "<group>";
@@ -3461,6 +3509,10 @@
E8834E3127FFD64F0029CCC1 /* GuildAuthModel.m */,
E8834E3628000CB50029CCC1 /* GuildSearchUserInfoModel.h */,
E8834E3728000CB50029CCC1 /* GuildSearchUserInfoModel.m */,
E800162A2803FE4900D6D17A /* GuildIncomeRecordModel.h */,
E800162B2803FE4900D6D17A /* GuildIncomeRecordModel.m */,
E800162D2803FF6200D6D17A /* GuildPersonIncomeRecordModel.h */,
E800162E2803FF6200D6D17A /* GuildPersonIncomeRecordModel.m */,
);
path = Model;
sourceTree = "<group>";
@@ -3487,6 +3539,12 @@
E8834E34280009090029CCC1 /* XPMineGuildSearchMemberTableViewCell.m */,
E8834E51280052580029CCC1 /* XPMineGuildManagerPerTableViewCell.h */,
E8834E52280052580029CCC1 /* XPMineGuildManagerPerTableViewCell.m */,
E80016272803D5C500D6D17A /* XPGuildIncomeRecordTableViewCell.h */,
E80016282803D5C500D6D17A /* XPGuildIncomeRecordTableViewCell.m */,
E8001630280409FD00D6D17A /* XPGuildPersonIncomeTableViewCell.h */,
E8001631280409FD00D6D17A /* XPGuildPersonIncomeTableViewCell.m */,
E800163928041F7B00D6D17A /* XPGuildSingleRoomIncomeTableViewCell.h */,
E800163A28041F7B00D6D17A /* XPGuildSingleRoomIncomeTableViewCell.m */,
);
path = Cell;
sourceTree = "<group>";
@@ -3502,6 +3560,10 @@
E800808727FDA5100055A8AB /* XPClanSectionView.m */,
E851E45D27FF0FEB002F3ACB /* XPGuildSearchNavView.h */,
E851E45E27FF0FEB002F3ACB /* XPGuildSearchNavView.m */,
E80016242803CB2800D6D17A /* XPGuildIncomeHeaderView.h */,
E80016252803CB2800D6D17A /* XPGuildIncomeHeaderView.m */,
E8001633280410BD00D6D17A /* XPGuildIncomeSectionView.h */,
E8001634280410BD00D6D17A /* XPGuildIncomeSectionView.m */,
);
path = SubViews;
sourceTree = "<group>";
@@ -5776,6 +5838,7 @@
180116F9279E8C4C00F2CBC0 /* PLTimeUtil.m in Sources */,
E8834E4828003E1E0029CCC1 /* XPGuildMangerListPresenter.m in Sources */,
E8ACEFF227C8E8F000F66D1A /* HomePlayRoomModel.m in Sources */,
E80016232803CA5D00D6D17A /* XPMineGuildIncomeRecordViewController.m in Sources */,
E8252FEE27687DF1002B3164 /* ActivityInfoModel.m in Sources */,
E84BF7D1277BFCDD00EF8877 /* RoomTagModel.m in Sources */,
E8AC723526F49939007D6E91 /* XPMineNotificaPresenter.m in Sources */,
@@ -5804,6 +5867,7 @@
E8A1E45B27620F4900B294CA /* XPRoomHalfWebView.m in Sources */,
9B7D80562753C595003DAC0C /* SendMessageView.m in Sources */,
E8A86E0527BA38DB001C21F9 /* NSString+RW.m in Sources */,
E800162C2803FE4900D6D17A /* GuildIncomeRecordModel.m in Sources */,
E84B0E3F2727EDF6008818C6 /* XPRoomMessageTableViewCell.m in Sources */,
E8E5E18B27C332EE00F457D8 /* XPHomeViewController.m in Sources */,
E82325FC274E4735003A3332 /* XPUserCardItemModel.m in Sources */,
@@ -5846,6 +5910,7 @@
186A534926FC6ED900D67B2C /* TTAlertMessageAttributedConfig.m in Sources */,
E81C27AE26EF39AB0031E639 /* AppDelegate+ThirdConfig.m in Sources */,
E877A7F127842B2F00EFACED /* XPRoomDatingWebAlertView.m in Sources */,
E80016382804140D00D6D17A /* XPMineGuildIncomeStatisViewController.m in Sources */,
E8E70D8326F2F51A00F03460 /* XPMineHeadView.m in Sources */,
E8B825D026EA3825009E8E9F /* LoginPasswordViewController.m in Sources */,
9BEE3D142785884A00C83219 /* XPNobleCenterResidueView.m in Sources */,
@@ -5892,6 +5957,7 @@
9B0E1C5926E77022005D4442 /* BaseNavigationController.m in Sources */,
E8C6FFD027548256004DC9F0 /* XPHomeListCollectionViewCell.m in Sources */,
E84BF7DD277C765400EF8877 /* XPRoomRoleEmptyTableViewCell.m in Sources */,
E800162F2803FF6200D6D17A /* GuildPersonIncomeRecordModel.m in Sources */,
E8E5E1A027C36E3F00F457D8 /* HomeBannerInfoModel.m in Sources */,
E800807F27FD859E0055A8AB /* ClanDetailInfoModel.m in Sources */,
E8EEB8F426FC2050007C6EBA /* SDBrowserImageView.m in Sources */,
@@ -5930,6 +5996,7 @@
E8B825C226EA00DF009E8E9F /* LoginVerifCodePresent.m in Sources */,
9B9EEF4E27C8755C006B0EB3 /* XPSkillCardResourcePropModel.m in Sources */,
E88B5CB026FB1C6500DA9178 /* XPMineTeenagerPresenter.m in Sources */,
E800163B28041F7B00D6D17A /* XPGuildSingleRoomIncomeTableViewCell.m in Sources */,
E899C68927508F4E00E189E5 /* XPUserCardInfoModel.m in Sources */,
9B6B3AAB278C2EA7005551EC /* XPRoomNobleLevelUpView.m in Sources */,
E8834E3828000CB50029CCC1 /* GuildSearchUserInfoModel.m in Sources */,
@@ -5993,6 +6060,7 @@
E800807627FD6D930055A8AB /* Api+Guild.m in Sources */,
18F404C3276098F100A6C548 /* Api+Message.m in Sources */,
E8C6FFED27550CC2004DC9F0 /* HomeSearchResultModel.m in Sources */,
E80016292803D5C500D6D17A /* XPGuildIncomeRecordTableViewCell.m in Sources */,
9BB549592782E6A30090CD26 /* XPNobleCenterPresenter.m in Sources */,
9B85B6D7279FDABA00A0A1AC /* XPUserCardSkillCardView.m in Sources */,
E800808827FDA5100055A8AB /* XPClanSectionView.m in Sources */,
@@ -6029,6 +6097,7 @@
9BE9F0FC27FED2E100667200 /* XPAnchorFansJoinModel.m in Sources */,
9B92A352279807F300AD168F /* XPSkillCardViewController.m in Sources */,
186A534A26FC6ED900D67B2C /* TTActionSheetConfig.m in Sources */,
E80016262803CB2800D6D17A /* XPGuildIncomeHeaderView.m in Sources */,
9BBC028B2786E05A0007C24B /* XPNobleCenterEntranceView.m in Sources */,
E8834E4228003A270029CCC1 /* XPMineGuildManagerSetViewController.m in Sources */,
E81C279326EB394D0031E639 /* LoginForgetPasswordViewController.m in Sources */,
@@ -6071,6 +6140,7 @@
E8AC721C26F4720B007D6E91 /* XPMineSettingPresent.m in Sources */,
E88B5CA526FB088600DA9178 /* XPMineTeenagerViewController.m in Sources */,
E80CBDF027D0E2C8001E1EC2 /* XPHomeRecommendOtherRoomView.m in Sources */,
E8001648280426CB00D6D17A /* XPMineAnchorIncomeStatisViewController.m in Sources */,
E8F9168427EC913C00F10D8F /* XPHomeLittleGameViewController.m in Sources */,
E8E5E1B327C397A400F457D8 /* HomeMenuInfoModel.m in Sources */,
E8AEAEF027141C430017FCE0 /* XPRoomMenuContainerView.m in Sources */,
@@ -6154,6 +6224,7 @@
E8A6C28C27CF436300AC7442 /* XPHomeLikeViewController.m in Sources */,
9BCF586227995426008401A4 /* XPSkillCardSelectPropCell.m in Sources */,
E8E70D8F26F2F5DB00F03460 /* XPMineMenuTableViewCell.m in Sources */,
E80016422804228100D6D17A /* XPGuildIncomePresenter.m in Sources */,
E8E5E1A927C3850400F457D8 /* XPHomeHotRoomCollectionViewCell.m in Sources */,
9B0997A327F19DE500EB8F14 /* QGHWDShaders.metal in Sources */,
187EEEE126E89BFB002833B2 /* AccountModel.m in Sources */,
@@ -6176,6 +6247,8 @@
189DD75026E21D9000AB55B1 /* GCDHelper.m in Sources */,
E82D5C76276AEB5100858D6D /* NameplateModel.m in Sources */,
E800806227FD373D0055A8AB /* XPClanMemberTableViewCell.m in Sources */,
E81AF32827F1EE69003B9E43 /* XPRoomPKPanelUserView.m in Sources */,
E80016452804268E00D6D17A /* XPMineClanIncomeStatisViewController.m in Sources */,
E84150BF27747BD300A7F548 /* Api+FirstRecharge.m in Sources */,
E84B0E422727EE0A008818C6 /* XPRoomMessageHeaderView.m in Sources */,
E8C6FFDD2754CF5D004DC9F0 /* HomeRecommendRoomModel.m in Sources */,
@@ -6188,6 +6261,7 @@
E872308926E89BE000B90D4F /* LoginPhoneViewController.m in Sources */,
E8C6FFEA2755040B004DC9F0 /* XPHomeSearchNavView.m in Sources */,
E877A7EB2783E24700EFACED /* DatingStageView.m in Sources */,
E8001635280410BD00D6D17A /* XPGuildIncomeSectionView.m in Sources */,
E8395339276A0CC100CF2F24 /* XPMineHeadwearTableViewCell.m in Sources */,
E875FA8727D619820086ED04 /* ClientDataModel.m in Sources */,
18E7B29026EA0E6B0064BC9B /* FlutterBoost+Xplan.m in Sources */,
@@ -6239,6 +6313,8 @@
9BB5495F2782E9DB0090CD26 /* NobleAuthInfo.m in Sources */,
9B85F3562806DD8A006EDF51 /* XPAnchorPKFinishView.m in Sources */,
E89DA67227008D59008483C1 /* WalletInfoModel.m in Sources */,
E8001632280409FD00D6D17A /* XPGuildPersonIncomeTableViewCell.m in Sources */,
E801274727E3241700BAC3F2 /* Api+RoomPK.m in Sources */,
E80CBDEA27D0C53F001E1EC2 /* XPWeakTimer.m in Sources */,
189DD55026DE37F900AB55B1 /* MvpViewController.m in Sources */,
E81366F326F0B7C80076364C /* LoginFullInfoViewController.m in Sources */,

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "mine_guild_income_header_bg@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "mine_guild_income_header_bg@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "mine_guild_income_record_arrow@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "mine_guild_income_record_arrow@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 375 B

View File

@@ -19,6 +19,9 @@ NS_ASSUME_NONNULL_BEGIN
- (NSString *)MD5String;
+ (BOOL)versionCompareOldStr:(NSString *)first andNewStr: (NSString *)second;
///数字转化为万
+ (NSString *)getDealNumwithstring:(NSString *)string;
@end
NS_ASSUME_NONNULL_END

View File

@@ -41,4 +41,16 @@
}
}
///
+ (NSString *)getDealNumwithstring:(NSString *)string{
NSDecimalNumber *numberA = [NSDecimalNumber decimalNumberWithString:string];
NSDecimalNumber *numberB = [NSDecimalNumber decimalNumberWithString:@"10000"];
//NSDecimalNumberBehaviors 1.RoundingMode 2.scale 3.raiseOnExactness 4.raiseOnOverflow 4.raiseOnUnderflow 5.raiseOnDivideByZero 0
NSDecimalNumberHandler *roundingBehavior = [NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundDown scale:2 raiseOnExactness:NO raiseOnOverflow:NO raiseOnUnderflow:NO raiseOnDivideByZero:NO];
/// Multiply
NSDecimalNumber *numResult = [numberA decimalNumberByDividingBy:numberB withBehavior:roundingBehavior];
NSString *strResult = [numResult stringValue];
return [NSString stringWithFormat:@"%@万", strResult];
}
@end

View File

@@ -110,6 +110,38 @@ NS_ASSUME_NONNULL_BEGIN
/// @param managerUid 管理的uid
/// @param authStr 权限的字段
+ (void)setGuildManagerAuthCompletion:(HttpRequestHelperCompletion)completion uid:(NSString *)uid managerUid:(NSString *)managerUid hallId:(NSString *)hallId authStr:(NSString *)authStr;
/// 家族收入列表
/// @param completion 完成
/// @param uid 用户的uid
/// @param clanId 家族的id
/// @param startTime 开始时间
/// @param endTime 结束时间
+ (void)getClanIncomeRecord:(HttpRequestHelperCompletion)completion uid:(NSString *)uid clanId:(NSString *)clanId startTime:(NSString *)startTime endTime:(NSString *)endTime;
/// 公会收入列表
/// @param completion 完成
/// @param uid 用户的uid
/// @param hallId 家族的id
/// @param startTime 开始时间
/// @param endTime 结束时间
+ (void)getGuildIncomeRecord:(HttpRequestHelperCompletion)completion uid:(NSString *)uid hallId:(NSString *)hallId startTime:(NSString *)startTime endTime:(NSString *)endTime;
/// 家族个播收入列表
/// @param completion 完成
/// @param uid 用户的uid
/// @param clanId 家族的id
/// @param startTime 开始时间
/// @param endTime 结束时间
+ (void)getClanSingleRoomIncomeRecord:(HttpRequestHelperCompletion)completion uid:(NSString *)uid clanId:(NSString *)clanId startTime:(NSString *)startTime endTime:(NSString *)endTime;
/// 公会个播收入列表
/// @param completion 完成
/// @param uid 用户的uid
/// @param hallId 公会的id
/// @param startTime 开始时间
/// @param endTime 结束时间
+ (void)getHallSingleRoomIncomeRecord:(HttpRequestHelperCompletion)completion uid:(NSString *)uid hallId:(NSString *)hallId startTime:(NSString *)startTime endTime:(NSString *)endTime;
@end
NS_ASSUME_NONNULL_END

View File

@@ -127,7 +127,7 @@
/// @param uid uid
/// @param managerUid uid
+ (void)guildManagerAuthCompletion:(HttpRequestHelperCompletion)completion uid:(NSString *)uid managerUid:(NSString *)managerUid {
[self makeRequest:@"hallAuth/getHallManagerAuths" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, managerUid, uid, nil];
[self makeRequest:@"hallAuth/getHallManagerAuths" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, managerUid, nil];
}
///
@@ -139,4 +139,46 @@
[self makeRequest:@"hallAuth/setHallManagerAuths" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, managerUid, hallId,authStr, nil];
}
#pragma mark -
///
/// @param completion
/// @param uid uid
/// @param clanId id
/// @param startTime
/// @param endTime
+ (void)getClanIncomeRecord:(HttpRequestHelperCompletion)completion uid:(NSString *)uid clanId:(NSString *)clanId startTime:(NSString *)startTime endTime:(NSString *)endTime {
[self makeRequest:@"clan/income/totalList" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, clanId, startTime, endTime, nil];
}
///
/// @param completion
/// @param uid uid
/// @param hallId id
/// @param startTime
/// @param endTime
+ (void)getGuildIncomeRecord:(HttpRequestHelperCompletion)completion uid:(NSString *)uid hallId:(NSString *)hallId startTime:(NSString *)startTime endTime:(NSString *)endTime {
[self makeRequest:@"income/incomeTotal" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, hallId, startTime, endTime, nil];
}
///
/// @param completion
/// @param uid uid
/// @param clanId id
/// @param startTime
/// @param endTime
+ (void)getClanSingleRoomIncomeRecord:(HttpRequestHelperCompletion)completion uid:(NSString *)uid clanId:(NSString *)clanId startTime:(NSString *)startTime endTime:(NSString *)endTime {
[self makeRequest:@"income/singleroom/incomeTotalV2" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, clanId, startTime, endTime, nil];
}
///
/// @param completion
/// @param uid uid
/// @param hallId id
/// @param startTime
/// @param endTime
+ (void)getHallSingleRoomIncomeRecord:(HttpRequestHelperCompletion)completion uid:(NSString *)uid hallId:(NSString *)hallId startTime:(NSString *)startTime endTime:(NSString *)endTime {
[self makeRequest:@"income/singleroom/incomeTotalV2" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, hallId, startTime, endTime, nil];
}
@end

View File

@@ -0,0 +1,33 @@
//
// GuildIncomeRecordModel.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/11.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@class GuildIncomeRecordUserInfoModel;
@interface GuildIncomeRecordModel : NSObject
///总的价值
@property (nonatomic,copy) NSString *total;
///
@property (nonatomic,strong) NSArray<GuildIncomeRecordUserInfoModel *> *income;
@end
@interface GuildIncomeRecordUserInfoModel : NSObject
///工会的头像
@property (nonatomic,copy) NSString *hallAvatar;
///公会的昵称
@property (nonatomic,copy) NSString *hallName;
///房间流水
@property (nonatomic,copy) NSString * roomIncome;
///房间流水
@property (nonatomic,copy) NSString * normalGiftIncome;
///房间流水
@property (nonatomic,copy) NSString * bagIncome;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,20 @@
//
// GuildIncomeRecordModel.m
// xplan-ios
//
// Created by on 2022/4/11.
//
#import "GuildIncomeRecordModel.h"
@implementation GuildIncomeRecordModel
+ (NSDictionary *)objectClassInArray {
return @{@"income":GuildIncomeRecordUserInfoModel.class};
}
@end
@implementation GuildIncomeRecordUserInfoModel
@end

View File

@@ -0,0 +1,45 @@
//
// GuildPersonIncomeRecordModel.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/11.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@class GuildPersonIncomeUserInfoModel;
@interface GuildPersonIncomeRecordModel : NSObject
///总共的价值
@property (nonatomic,copy) NSString *total;
///数据源
@property (nonatomic,strong) NSArray<GuildPersonIncomeUserInfoModel *> *vos;
///个播数据
@property (nonatomic,strong) NSArray<GuildPersonIncomeUserInfoModel *> *incomes;
///个播收入查询
@property (nonatomic,copy) NSString *totalDiamond;
@end
@interface GuildPersonIncomeUserInfoModel : NSObject
///排名
@property (nonatomic,copy) NSString *rowNum;
///接收者的uid
@property (nonatomic,copy) NSString *reciveUid;
///总的价值
@property (nonatomic,copy) NSString *totalGoldNum;
///头像
@property (nonatomic,copy) NSString *avatar;
///昵称
@property (nonatomic,copy) NSString *nick;
///平台id
@property (nonatomic,copy) NSString *erbanNo;
#pragma mark - 个播收入查询
///个播收入
@property (nonatomic,copy) NSString *anchorDiamondNum;
///房间收入
@property (nonatomic,copy) NSString *roomDiamondNum;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,25 @@
//
// GuildPersonIncomeRecordModel.m
// xplan-ios
//
// Created by on 2022/4/11.
//
#import "GuildPersonIncomeRecordModel.h"
@implementation GuildPersonIncomeRecordModel
+ (NSDictionary *)objectClassInArray {
return @{@"vos":GuildPersonIncomeUserInfoModel.class,
@"incomes":GuildPersonIncomeUserInfoModel.class
};
}
@end
@implementation GuildPersonIncomeUserInfoModel
@end

View File

@@ -0,0 +1,35 @@
//
// XPGuildIncomePresenter.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/11.
//
#import "BaseMvpPresenter.h"
NS_ASSUME_NONNULL_BEGIN
@interface XPGuildIncomePresenter : BaseMvpPresenter
/// 获取家族所有的收入记录
/// @param clanId 家族的id
/// @param startTime 开始时间
/// @param endTime 结束时间
- (void)getClanTotalIncome:(NSString *)clanId startTime:(NSString *)startTime endTime:(NSString *)endTime;
/// 获取工会所有的收入记录
/// @param hallId 工会的id
/// @param startTime 开始时间
/// @param endTime 结束时间
- (void)getHallTotalIncome:(NSString *)hallId startTime:(NSString *)startTime endTime:(NSString *)endTime;
/// 获取家族所有个播的收入记录
/// @param clanId 家族的id
/// @param startTime 开始时间
/// @param endTime 结束时间
- (void)getClanAnchorTotalIncome:(NSString *)clanId startTime:(NSString *)startTime endTime:(NSString *)endTime;
/// 获取公会所有个播的收入记录
/// @param hallId 家族的id
/// @param startTime 开始时间
/// @param endTime 结束时间
- (void)getHallAnchorTotalIncome:(NSString *)hallId startTime:(NSString *)startTime endTime:(NSString *)endTime;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,66 @@
//
// XPGuildIncomePresenter.m
// xplan-ios
//
// Created by on 2022/4/11.
//
#import "XPGuildIncomePresenter.h"
#import "Api+Guild.h"
#import "AccountInfoStorage.h"
#import "GuildIncomeRecordModel.h"
#import "GuildPersonIncomeRecordModel.h"
#import "XPGuildIncomeProtocol.h"
@implementation XPGuildIncomePresenter
///
/// @param clanId id
/// @param startTime
/// @param endTime
- (void)getClanTotalIncome:(NSString *)clanId startTime:(NSString *)startTime endTime:(NSString *)endTime {
NSString * uid = [AccountInfoStorage instance].getUid;
[Api getClanIncomeRecord:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
GuildIncomeRecordModel * incomeModel = [GuildIncomeRecordModel modelWithDictionary:data.data];
[[self getView] getClanTotalIncomeScuess:incomeModel];
}] uid:uid clanId:clanId startTime:startTime endTime:endTime];
}
///
/// @param hallId id
/// @param startTime
/// @param endTime
- (void)getHallTotalIncome:(NSString *)hallId startTime:(NSString *)startTime endTime:(NSString *)endTime {
NSString * uid = [AccountInfoStorage instance].getUid;
[Api getGuildIncomeRecord:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
GuildPersonIncomeRecordModel * incomeModel = [GuildPersonIncomeRecordModel modelWithDictionary:data.data];
[[self getView] getHallTotalIncomeScuess:incomeModel];
}] uid:uid hallId:hallId startTime:startTime endTime:endTime];
}
///
/// @param clanId id
/// @param startTime
/// @param endTime
- (void)getClanAnchorTotalIncome:(NSString *)clanId startTime:(NSString *)startTime endTime:(NSString *)endTime {
NSString * uid = [AccountInfoStorage instance].getUid;
[Api getClanSingleRoomIncomeRecord:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
GuildPersonIncomeRecordModel * incomeModel = [GuildPersonIncomeRecordModel modelWithDictionary:data.data];
[[self getView] getHallTotalIncomeScuess:incomeModel];
}] uid:uid clanId:clanId startTime:startTime endTime:endTime];
}
///
/// @param hallId id
/// @param startTime
/// @param endTime
- (void)getHallAnchorTotalIncome:(NSString *)hallId startTime:(NSString *)startTime endTime:(NSString *)endTime {
NSString * uid = [AccountInfoStorage instance].getUid;
[Api getHallSingleRoomIncomeRecord:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
GuildPersonIncomeRecordModel * incomeModel = [GuildPersonIncomeRecordModel modelWithDictionary:data.data];
[[self getView] getHallAnchorTotalIncomeSuccess:incomeModel];
}] uid:uid hallId:hallId startTime:startTime endTime:endTime];
}
@end

View File

@@ -0,0 +1,24 @@
//
// XPGuildIncomeProtocol.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/11.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@class GuildIncomeRecordModel, GuildPersonIncomeRecordModel;
@protocol XPGuildIncomeProtocol <NSObject>
///获取家族所有的收入记录成功
- (void)getClanTotalIncomeScuess:(GuildIncomeRecordModel *)incomeInfo;
///获取公会所有成员收入记录
- (void)getHallTotalIncomeScuess:(GuildPersonIncomeRecordModel *)incomeInfo;
///获取家族所有个播收入成功
- (void)getClanAnchorTotalIncomeSuccess:(GuildPersonIncomeRecordModel *)incomeInfo;
///获取公会所有个播收入成功
- (void)getHallAnchorTotalIncomeSuccess:(GuildPersonIncomeRecordModel *)incomeInfo;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,17 @@
//
// XPGuildIncomeRecordTableViewCell.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/11.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@class GuildIncomeRecordUserInfoModel;
@interface XPGuildIncomeRecordTableViewCell : UITableViewCell
///用户信息
@property (nonatomic,strong) GuildIncomeRecordUserInfoModel *userInfo;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,290 @@
//
// XPGuildIncomeRecordTableViewCell.m
// xplan-ios
//
// Created by on 2022/4/11.
//
#import "XPGuildIncomeRecordTableViewCell.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "NetImageView.h"
#import "ThemeColor.h"
#import "XPMacro.h"
#import "NSString+Utils.h"
///Model
#import "GuildIncomeRecordModel.h"
@interface XPGuildIncomeRecordTableViewCell ()
///
@property (nonatomic,strong) UIStackView *stackView;
///
@property (nonatomic,strong) UIStackView *incomStackView;
///
@property (nonatomic,strong) UILabel *rankLabel;
///
@property (nonatomic,strong) UIStackView *avatarView;
///
@property (nonatomic,strong) NetImageView *avatarImageView;
///id
@property (nonatomic,strong) UILabel *idLabel;
///
@property (nonatomic,strong) UIStackView *roomIncomeStackView;
///
@property (nonatomic,strong) UILabel *roomIncomeLabel;
///
@property (nonatomic,strong) UILabel *roomIncomeCoinLabel;
///
@property (nonatomic,strong) UIStackView *normalGiftStackView;
///
@property (nonatomic,strong) UILabel *normalGiftLabel;
///
@property (nonatomic,strong) UILabel *normalGiftcoinLabel;
///
@property (nonatomic,strong) UIStackView *packGiftStackView;
///
@property (nonatomic,strong) UILabel *packGiftLabel;
///
@property (nonatomic,strong) UILabel *packGiftCoinLabel;
@end
@implementation XPGuildIncomeRecordTableViewCell
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
self.backgroundColor = [ThemeColor appCellBackgroundColor];
self.selectionStyle = UITableViewCellSelectionStyleNone;
[self.contentView addSubview:self.stackView];
[self.stackView addArrangedSubview:self.rankLabel];
[self.stackView addArrangedSubview:self.avatarView];
[self.stackView addArrangedSubview:self.incomStackView];
[self.avatarView addArrangedSubview:self.avatarImageView];
[self.avatarView addArrangedSubview:self.idLabel];
[self.incomStackView addArrangedSubview:self.roomIncomeStackView];
[self.incomStackView addArrangedSubview:self.normalGiftStackView];
[self.incomStackView addArrangedSubview:self.packGiftStackView];
[self.roomIncomeStackView addArrangedSubview:self.roomIncomeCoinLabel];
[self.roomIncomeStackView addArrangedSubview:self.roomIncomeLabel];
[self.normalGiftStackView addArrangedSubview:self.normalGiftcoinLabel];
[self.normalGiftStackView addArrangedSubview:self.normalGiftLabel];
[self.packGiftStackView addArrangedSubview:self.packGiftCoinLabel];
[self.packGiftStackView addArrangedSubview:self.packGiftLabel];
}
- (void)initSubViewConstraints {
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.bottom.mas_equalTo(self.contentView);
}];
[self.rankLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(52);
make.height.mas_equalTo(50);
}];
[self.avatarView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(50);
make.height.mas_equalTo(65);
}];
[self.incomStackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(50);
}];
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(50);
}];
}
#pragma mark - Getters And Setters
- (void)setUserInfo:(GuildIncomeRecordUserInfoModel *)userInfo {
_userInfo = userInfo;
if (_userInfo) {
self.avatarImageView.imageUrl = _userInfo.hallAvatar;
self.idLabel.text = _userInfo.hallName;
self.roomIncomeCoinLabel.text = [NSString stringWithFormat:@"+%@", [NSString getDealNumwithstring:_userInfo.roomIncome]];
self.normalGiftcoinLabel.text = [NSString stringWithFormat:@"+%@", [NSString getDealNumwithstring:_userInfo.normalGiftIncome]];
self.packGiftCoinLabel.text = [NSString stringWithFormat:@"+%@", [NSString getDealNumwithstring:_userInfo.bagIncome]];
}
}
- (UIStackView *)stackView {
if (!_stackView) {
_stackView = [[UIStackView alloc] init];
_stackView.axis = UILayoutConstraintAxisHorizontal;
_stackView.distribution = UIStackViewDistributionFill;
_stackView.alignment = UIStackViewAlignmentCenter;
_stackView.spacing = 10;
}
return _stackView;
}
- (UILabel *)rankLabel {
if (!_rankLabel) {
_rankLabel = [[UILabel alloc] init];
_rankLabel.font = [UIFont systemFontOfSize:15];
_rankLabel.text = @"1";
_rankLabel.textColor = [ThemeColor mainTextColor];
_rankLabel.textAlignment = NSTextAlignmentCenter;
}
return _rankLabel;
}
- (UIStackView *)avatarView {
if (!_avatarView) {
_avatarView = [[UIStackView alloc] init];
_avatarView.axis = UILayoutConstraintAxisVertical;
_avatarView.distribution = UIStackViewDistributionFillProportionally;
_avatarView.alignment = UIStackViewAlignmentFill;
_avatarView.spacing = 3;
}
return _avatarView;
}
- (NetImageView *)avatarImageView {
if (!_avatarImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.imageType = ImageTypeUserIcon;
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
_avatarImageView.layer.masksToBounds = YES;
_avatarImageView.layer.cornerRadius = 8;
}
return _avatarImageView;
}
- (UILabel *)idLabel {
if (!_idLabel) {
_idLabel = [[UILabel alloc] init];
_idLabel.font = [UIFont systemFontOfSize:11];
_idLabel.textColor = [ThemeColor mainTextColor];
_idLabel.textAlignment = NSTextAlignmentCenter;
}
return _idLabel;
}
- (UIStackView *)incomStackView {
if (!_incomStackView) {
_incomStackView = [[UIStackView alloc] init];
_incomStackView.axis = UILayoutConstraintAxisHorizontal;
_incomStackView.distribution = UIStackViewDistributionFillEqually;
_incomStackView.alignment = UIStackViewAlignmentCenter;
_incomStackView.spacing = 10;
}
return _incomStackView;
}
- (UIStackView *)roomIncomeStackView {
if (!_roomIncomeStackView) {
_roomIncomeStackView = [[UIStackView alloc] init];
_roomIncomeStackView.axis = UILayoutConstraintAxisVertical;
_roomIncomeStackView.distribution = UIStackViewDistributionFill;
_roomIncomeStackView.alignment = UIStackViewAlignmentFill;
_roomIncomeStackView.spacing = 3;
}
return _roomIncomeStackView;
}
- (UILabel *)roomIncomeLabel {
if (!_roomIncomeLabel) {
_roomIncomeLabel = [[UILabel alloc] init];
_roomIncomeLabel.text = @"房间流水";
_roomIncomeLabel.font = [UIFont systemFontOfSize:12];
_roomIncomeLabel.textColor = [ThemeColor mainTextColor];
_roomIncomeLabel.textAlignment = NSTextAlignmentCenter;
}
return _roomIncomeLabel;
}
- (UILabel *)roomIncomeCoinLabel {
if (!_roomIncomeCoinLabel) {
_roomIncomeCoinLabel = [[UILabel alloc] init];
_roomIncomeCoinLabel.font = [UIFont boldSystemFontOfSize:12];
_roomIncomeCoinLabel.textColor = [ThemeColor secondTextColor];
_roomIncomeCoinLabel.textAlignment = NSTextAlignmentCenter;
}
return _roomIncomeCoinLabel;
}
- (UIStackView *)normalGiftStackView {
if (!_normalGiftStackView) {
_normalGiftStackView = [[UIStackView alloc] init];
_normalGiftStackView.axis = UILayoutConstraintAxisVertical;
_normalGiftStackView.distribution = UIStackViewDistributionFill;
_normalGiftStackView.alignment = UIStackViewAlignmentFill;
_normalGiftStackView.spacing = 3;
}
return _normalGiftStackView;
}
- (UILabel *)normalGiftLabel {
if (!_normalGiftLabel) {
_normalGiftLabel = [[UILabel alloc] init];
_normalGiftLabel.text = @"普通礼物流水";
_normalGiftLabel.font = [UIFont systemFontOfSize:12];
_normalGiftLabel.textColor = [ThemeColor mainTextColor];
_normalGiftLabel.textAlignment = NSTextAlignmentCenter;
}
return _normalGiftLabel;
}
- (UILabel *)normalGiftcoinLabel {
if (!_normalGiftcoinLabel) {
_normalGiftcoinLabel = [[UILabel alloc] init];
_normalGiftcoinLabel.font = [UIFont boldSystemFontOfSize:12];
_normalGiftcoinLabel.textColor = [ThemeColor secondTextColor];
_normalGiftcoinLabel.textAlignment = NSTextAlignmentCenter;
}
return _normalGiftcoinLabel;
}
- (UIStackView *)packGiftStackView {
if (!_packGiftStackView) {
_packGiftStackView = [[UIStackView alloc] init];
_packGiftStackView.axis = UILayoutConstraintAxisVertical;
_packGiftStackView.distribution = UIStackViewDistributionFill;
_packGiftStackView.alignment = UIStackViewAlignmentFill;
_packGiftStackView.spacing = 3;
}
return _packGiftStackView;
}
- (UILabel *)packGiftLabel {
if (!_packGiftLabel) {
_packGiftLabel = [[UILabel alloc] init];
_packGiftLabel.text = @"背包礼物流水";
_packGiftLabel.font = [UIFont systemFontOfSize:12];
_packGiftLabel.textColor = [ThemeColor mainTextColor];
_packGiftLabel.textAlignment = NSTextAlignmentCenter;
}
return _packGiftLabel;
}
- (UILabel *)packGiftCoinLabel {
if (!_packGiftCoinLabel) {
_packGiftCoinLabel = [[UILabel alloc] init];
_packGiftCoinLabel.font = [UIFont boldSystemFontOfSize:12];
_packGiftCoinLabel.textColor = [ThemeColor secondTextColor];
_packGiftCoinLabel.textAlignment = NSTextAlignmentCenter;
}
return _packGiftCoinLabel;
}
@end

View File

@@ -0,0 +1,17 @@
//
// XPGuildPersonIncomeTableViewCell.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/11.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@class GuildPersonIncomeUserInfoModel;
@interface XPGuildPersonIncomeTableViewCell : UITableViewCell
///用户信息
@property (nonatomic,strong) GuildPersonIncomeUserInfoModel *userInfo;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,186 @@
//
// XPGuildPersonIncomeTableViewCell.m
// xplan-ios
//
// Created by on 2022/4/11.
//
#import "XPGuildPersonIncomeTableViewCell.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "ThemeColor.h"
#import "NetImageView.h"
#import "XPMacro.h"
#import "NSString+Utils.h"
///Model
#import "GuildPersonIncomeRecordModel.h"
@interface XPGuildPersonIncomeTableViewCell ()
///
@property (nonatomic,strong) UIStackView *stackView;
///
@property (nonatomic,strong) UILabel *rankLabel;
///
@property (nonatomic,strong) NetImageView *avatarImageView;
///
@property (nonatomic,strong) UIStackView *nickStackView;
///
@property (nonatomic,strong) UILabel *nickLabel;
///id
@property (nonatomic,strong) UILabel *idLabel;
///
@property (nonatomic,strong) UILabel *incomeLabel;
///
@property (nonatomic,strong) UIImageView *arrowImageView;
@end
@implementation XPGuildPersonIncomeTableViewCell
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
self.backgroundColor = [ThemeColor appCellBackgroundColor];
self.selectionStyle = UITableViewCellSelectionStyleNone;
[self.contentView addSubview:self.stackView];
[self.stackView addArrangedSubview:self.rankLabel];
[self.stackView addArrangedSubview:self.avatarImageView];
[self.stackView addArrangedSubview:self.nickStackView];
[self.stackView addArrangedSubview:self.incomeLabel];
[self.stackView addArrangedSubview:self.arrowImageView];
[self.nickStackView addArrangedSubview:self.nickLabel];
[self.nickStackView addArrangedSubview:self.idLabel];
}
- (void)initSubViewConstraints {
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.contentView);
make.right.mas_equalTo(self.contentView).offset(-15);
make.top.bottom.mas_equalTo(self.contentView);
}];
[self.rankLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(52, 20));
}];
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(45);
}];
[self.nickStackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(90, 44));
}];
[self.incomeLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(KScreenWidth - 52 - 45 - 90 - 15 - 10);
make.height.mas_equalTo(30);
}];
[self.arrowImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(10, 8));
}];
}
#pragma mark - Getters And Setters
- (void)setUserInfo:(GuildPersonIncomeUserInfoModel *)userInfo {
_userInfo = userInfo;
if (_userInfo) {
self.rankLabel.text = _userInfo.rowNum;
self.avatarImageView.imageUrl = _userInfo.avatar;
self.nickLabel.text = _userInfo.nick;
self.idLabel.text = [NSString stringWithFormat:@"ID:%@", _userInfo.erbanNo];
self.incomeLabel.text = [NSString getDealNumwithstring:_userInfo.totalGoldNum];
}
}
- (UIStackView *)stackView {
if (!_stackView) {
_stackView = [[UIStackView alloc] init];
_stackView.axis = UILayoutConstraintAxisHorizontal;
_stackView.distribution = UIStackViewDistributionFill;
_stackView.alignment = UIStackViewAlignmentCenter;
_stackView.spacing = 0;
}
return _stackView;
}
- (UILabel *)rankLabel {
if (!_rankLabel) {
_rankLabel = [[UILabel alloc] init];
_rankLabel.text = @"1";
_rankLabel.font = [UIFont systemFontOfSize:15];
_rankLabel.textAlignment = NSTextAlignmentCenter;
_rankLabel.textColor = [ThemeColor mainTextColor];
}
return _rankLabel;
}
- (NetImageView *)avatarImageView {
if (!_avatarImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.imageType = ImageTypeUserIcon;
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
_avatarImageView.layer.masksToBounds = YES;
_avatarImageView.layer.cornerRadius = 45/2;
}
return _avatarImageView;
}
- (UIStackView *)nickStackView {
if (!_nickStackView) {
_nickStackView = [[UIStackView alloc] init];
_nickStackView.axis = UILayoutConstraintAxisVertical;
_nickStackView.distribution = UIStackViewDistributionFill;
_nickStackView.alignment = UIStackViewAlignmentLeading;
_nickStackView.spacing = 4 ;
}
return _nickStackView;
}
- (UILabel *)nickLabel {
if (!_nickLabel) {
_nickLabel = [[UILabel alloc] init];
_nickLabel.font = [UIFont boldSystemFontOfSize:14];
_nickLabel.textColor = [ThemeColor mainTextColor];
}
return _nickLabel;
}
- (UILabel *)idLabel {
if (!_idLabel) {
_idLabel = [[UILabel alloc] init];
_idLabel.font = [UIFont systemFontOfSize:14];
_idLabel.textColor = [ThemeColor secondTextColor];
}
return _idLabel;
}
- (UILabel *)incomeLabel {
if (!_incomeLabel) {
_incomeLabel = [[UILabel alloc] init];
_incomeLabel.font = [UIFont boldSystemFontOfSize:14];
_incomeLabel.textColor = [ThemeColor mainTextColor];
}
return _incomeLabel;
}
- (UIImageView *)arrowImageView {
if (!_arrowImageView) {
_arrowImageView = [[UIImageView alloc] init];
_arrowImageView.userInteractionEnabled = YES;
_arrowImageView.image = [UIImage imageNamed:@"common_right_arrow"];
}
return _arrowImageView;
}
@end

View File

@@ -0,0 +1,16 @@
//
// XPGuildSingleRoomIncomeTableViewCell.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/11.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@class GuildPersonIncomeUserInfoModel;
@interface XPGuildSingleRoomIncomeTableViewCell : UITableViewCell
@property (nonatomic,strong) GuildPersonIncomeUserInfoModel *userInfo;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,180 @@
//
// XPGuildSingleRoomIncomeTableViewCell.m
// xplan-ios
//
// Created by on 2022/4/11.
//
#import "XPGuildSingleRoomIncomeTableViewCell.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "ThemeColor.h"
#import "NetImageView.h"
#import "XPMacro.h"
#import "NSString+Utils.h"
///Model
#import "GuildPersonIncomeRecordModel.h"
@interface XPGuildSingleRoomIncomeTableViewCell ()
///
@property (nonatomic,strong) UIStackView *stackView;
///
@property (nonatomic,strong) UILabel *rankLabel;
///
@property (nonatomic,strong) NetImageView *avatarImageView;
///
@property (nonatomic,strong) UIStackView *nickStackView;
///
@property (nonatomic,strong) UILabel *nickLabel;
///id
@property (nonatomic,strong) UILabel *idLabel;
///
@property (nonatomic,strong) UILabel *singleRoomIncomeLabel;
///
@property (nonatomic,strong) UILabel *roomIncomeLabel;
@end
@implementation XPGuildSingleRoomIncomeTableViewCell
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
self.backgroundColor = [ThemeColor appCellBackgroundColor];
self.selectionStyle = UITableViewCellSelectionStyleNone;
[self.contentView addSubview:self.stackView];
[self.stackView addArrangedSubview:self.rankLabel];
[self.stackView addArrangedSubview:self.avatarImageView];
[self.stackView addArrangedSubview:self.nickStackView];
[self.stackView addArrangedSubview:self.singleRoomIncomeLabel];
[self.stackView addArrangedSubview:self.roomIncomeLabel];
[self.nickStackView addArrangedSubview:self.nickLabel];
[self.nickStackView addArrangedSubview:self.idLabel];
}
- (void)initSubViewConstraints {
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.contentView);
make.right.mas_equalTo(self.contentView).offset(-15);
make.top.bottom.mas_equalTo(self.contentView);
}];
[self.rankLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(52, 20));
}];
[self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(45);
}];
[self.nickStackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(90, 44));
}];
[self.singleRoomIncomeLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(KScreenWidth - 52 - 45 - 90 - 15 - 10);
make.height.mas_equalTo(30);
}];
}
#pragma mark - Getters And Setters
- (void)setUserInfo:(GuildPersonIncomeUserInfoModel *)userInfo {
_userInfo = userInfo;
if (_userInfo) {
self.avatarImageView.imageUrl = _userInfo.avatar;
self.nickLabel.text = _userInfo.nick;
self.idLabel.text = [NSString stringWithFormat:@"ID:%@", _userInfo.erbanNo];
self.singleRoomIncomeLabel.text = [NSString getDealNumwithstring: _userInfo.anchorDiamondNum];
self.roomIncomeLabel.text = [NSString getDealNumwithstring:_userInfo.anchorDiamondNum];
}
}
- (UIStackView *)stackView {
if (!_stackView) {
_stackView = [[UIStackView alloc] init];
_stackView.axis = UILayoutConstraintAxisHorizontal;
_stackView.distribution = UIStackViewDistributionFill;
_stackView.alignment = UIStackViewAlignmentCenter;
_stackView.spacing = 0;
}
return _stackView;
}
- (UILabel *)rankLabel {
if (!_rankLabel) {
_rankLabel = [[UILabel alloc] init];
_rankLabel.text = @"1";
_rankLabel.font = [UIFont systemFontOfSize:15];
_rankLabel.textAlignment = NSTextAlignmentCenter;
_rankLabel.textColor = [ThemeColor mainTextColor];
}
return _rankLabel;
}
- (NetImageView *)avatarImageView {
if (!_avatarImageView) {
NetImageConfig * config = [[NetImageConfig alloc]init];
config.imageType = ImageTypeUserIcon;
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_avatarImageView = [[NetImageView alloc] initWithConfig:config];
_avatarImageView.layer.masksToBounds = YES;
_avatarImageView.layer.cornerRadius = 45/2;
}
return _avatarImageView;
}
- (UIStackView *)nickStackView {
if (!_nickStackView) {
_nickStackView = [[UIStackView alloc] init];
_nickStackView.axis = UILayoutConstraintAxisVertical;
_nickStackView.distribution = UIStackViewDistributionFill;
_nickStackView.alignment = UIStackViewAlignmentLeading;
_nickStackView.spacing = 4 ;
}
return _nickStackView;
}
- (UILabel *)nickLabel {
if (!_nickLabel) {
_nickLabel = [[UILabel alloc] init];
_nickLabel.font = [UIFont boldSystemFontOfSize:14];
_nickLabel.textColor = [ThemeColor mainTextColor];
}
return _nickLabel;
}
- (UILabel *)idLabel {
if (!_idLabel) {
_idLabel = [[UILabel alloc] init];
_idLabel.font = [UIFont systemFontOfSize:14];
_idLabel.textColor = [ThemeColor secondTextColor];
}
return _idLabel;
}
- (UILabel *)singleRoomIncomeLabel {
if (!_singleRoomIncomeLabel) {
_singleRoomIncomeLabel = [[UILabel alloc] init];
_singleRoomIncomeLabel.font = [UIFont boldSystemFontOfSize:14];
_singleRoomIncomeLabel.textColor = [ThemeColor mainTextColor];
}
return _singleRoomIncomeLabel;
}
- (UILabel *)roomIncomeLabel {
if (!_roomIncomeLabel) {
_roomIncomeLabel = [[UILabel alloc] init];
_roomIncomeLabel.font = [UIFont boldSystemFontOfSize:14];
_roomIncomeLabel.textColor = [ThemeColor mainTextColor];
}
return _roomIncomeLabel;
}
@end

View File

@@ -10,10 +10,22 @@
NS_ASSUME_NONNULL_BEGIN
@class ClanDetailInfoModel, XPGuildHeaderView, GuildInfoModel;
typedef NS_ENUM(NSInteger, GuildHeaderMenuType) {
///工会流水
GuildHeaderMenuType_Hall_Income = 1,
///主播收入
GuildHeaderMenuType_Anchor_Income = 2,
///超管
GuildHeaderMenuType_Super_Admin,
};
@protocol XPGuildHeaderViewDelegate <NSObject>
///选择了族长
- (void)xPGuildHeaderView:(XPGuildHeaderView *)view dicSelectOwner:(ClanDetailInfoModel *)guildInfo;
///选择了工会的某个房间
- (void)xPGuildHeaderView:(XPGuildHeaderView *)view dicSelectGuild:(GuildInfoModel *)guildInfo;
///菜单栏的点击
- (void)xPGuildHeaderView:(XPGuildHeaderView *)view dicTapMenuItem:(GuildHeaderMenuType)menuType;
@end
@interface XPGuildHeaderView : UIView

View File

@@ -179,6 +179,20 @@
}
}
#pragma mark - Event Response
- (void)menuViewTapRecognizer:(UITapGestureRecognizer *)tap {
UIView * view = tap.view;
if (self.delegate && [self.delegate respondsToSelector:@selector(xPGuildHeaderView:dicTapMenuItem:)]) {
[self.delegate xPGuildHeaderView:self dicTapMenuItem:view.tag];
}
}
- (void)tapOwnerUserInfoView:(UITapGestureRecognizer *)tap {
if (self.delegate && [self.delegate respondsToSelector:@selector(xPGuildHeaderView:dicSelectOwner:)]) {
[self.delegate xPGuildHeaderView:self dicSelectOwner:self.clanInfo];
}
}
#pragma mark - Getters And Setters
- (void)setClanInfo:(ClanDetailInfoModel *)clanInfo {
_clanInfo = clanInfo;
@@ -235,6 +249,8 @@
if (!_userInfoView) {
_userInfoView = [[UIView alloc] init];
_userInfoView.backgroundColor = [UIColor clearColor];
UITapGestureRecognizer * tap= [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapOwnerUserInfoView:)];
[_userInfoView addGestureRecognizer:tap];
}
return _userInfoView;
}
@@ -305,6 +321,9 @@
_incomeView = [[XPClanMenuView alloc] init];
_incomeView.title = @"查看流水";
_incomeView.imageName = @"mine_guild_clan_header_income_bg";
_incomeView.tag = GuildHeaderMenuType_Hall_Income;
UITapGestureRecognizer * tap= [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(menuViewTapRecognizer:)];
[_incomeView addGestureRecognizer:tap];
}
return _incomeView;
}
@@ -314,6 +333,9 @@
_anchorIncomeView = [[XPClanMenuView alloc] init];
_anchorIncomeView.title = @"主播收入";
_anchorIncomeView.imageName = @"mine_guild_clan_header_anchor_income_bg";
_anchorIncomeView.tag = GuildHeaderMenuType_Anchor_Income;
UITapGestureRecognizer * tap= [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(menuViewTapRecognizer:)];
[_anchorIncomeView addGestureRecognizer:tap];
}
return _anchorIncomeView;
}
@@ -323,6 +345,9 @@
_superAdminSetView = [[XPClanMenuView alloc] init];
_superAdminSetView.title = @"工会超管设置";
_superAdminSetView.imageName = @"mine_guild_clan_header_superadmin_set_bg";
_superAdminSetView.tag = GuildHeaderMenuType_Super_Admin;
UITapGestureRecognizer * tap= [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(menuViewTapRecognizer:)];
[_superAdminSetView addGestureRecognizer:tap];
}
return _superAdminSetView;
}

View File

@@ -0,0 +1,22 @@
//
// XPGuildIncomeHeaderView.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/11.
//
#import <UIKit/UIKit.h>
#import "XPMineGuildIncomeRecordViewController.h"
NS_ASSUME_NONNULL_BEGIN
@interface XPGuildIncomeHeaderView : UIView
///显示
@property (nonatomic,assign) GuildIncomeRecrdTimeType timeType;
@property (nonatomic,copy) NSString *totalIncome;
- (void)configHeaderView:(NSDate *)startDate endTime:(NSDate *)endDate;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,249 @@
//
// XPGuildIncomeHeaderView.m
// xplan-ios
//
// Created by on 2022/4/11.
//
#import "XPGuildIncomeHeaderView.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "ThemeColor.h"
#import "XPMacro.h"
#import "NSString+Utils.h"
@interface XPGuildIncomeHeaderView ()
///
@property (nonatomic,strong) UIImageView *backImageView;
///
@property (nonatomic,strong) UILabel *yearLabel;
///
@property (nonatomic,strong) UIStackView *stackView;
///
@property (nonatomic,strong) UILabel *startLabel;
///
@property (nonatomic,strong) UILabel *endLabel;
///
@property (nonatomic,strong) UIButton *arrowButton;
///线
@property (nonatomic,strong) UIView * lineView;
///
@property (nonatomic,strong) UILabel *totalLabel;
///
@property (nonatomic,strong) UILabel *coinLabel;
@property (nonatomic,strong) NSDateFormatter *formatter;
@end
@implementation XPGuildIncomeHeaderView
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Public Method
- (void)configHeaderView:(NSDate *)startDate endTime:(NSDate *)endDate {
if (startDate) {
[self.formatter setDateFormat:@"yyyy年"];
NSString *currentYear = [self.formatter stringFromDate:startDate];
self.yearLabel.text = currentYear;
[self.formatter setDateFormat:@"MM月dd日"];
NSString * currentDay = [self.formatter stringFromDate:startDate];
self.startLabel.text = currentDay;
}
if (endDate) {
[self.formatter setDateFormat:@"MM月dd日"];
NSString * currentDay = [self.formatter stringFromDate:endDate];
self.endLabel.text = currentDay;
}
}
#pragma mark - Private Method
- (void)initSubViews {
[self addSubview:self.backImageView];
[self.backImageView addSubview:self.yearLabel];
[self.backImageView addSubview:self.stackView];
[self.backImageView addSubview:self.arrowButton];
[self.backImageView addSubview:self.lineView];
[self.backImageView addSubview:self.totalLabel];
[self.backImageView addSubview:self.coinLabel];
[self.stackView addArrangedSubview:self.startLabel];
[self.stackView addArrangedSubview:self.endLabel];
}
- (void)initSubViewConstraints {
[self mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(KScreenWidth);
make.bottom.mas_equalTo(self.backImageView.mas_bottom).offset(16);
}];
CGFloat kscale = 80.0 / 345.0;
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self).inset(15);
make.height.mas_equalTo((KScreenWidth - 30) * kscale);
make.top.mas_equalTo(self);
}];
[self.yearLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.top.mas_equalTo(self.backImageView).offset(12);
}];
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.yearLabel);
make.centerY.mas_equalTo(self.lineView);
}];
[self.arrowButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.stackView.mas_right).offset(5);
make.centerY.mas_equalTo(self.lineView);
make.size.mas_equalTo(CGSizeMake(12, 8));
}];
[self.lineView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(1, 19));
make.bottom.mas_equalTo(self.backImageView).offset(-12);
make.left.mas_equalTo(self.arrowButton.mas_right).offset(10);
}];
[self.totalLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.yearLabel.mas_right).offset(100);
make.centerY.mas_equalTo(self.yearLabel);
}];
[self.coinLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.totalLabel);
make.centerY.mas_equalTo(self.lineView);
}];
}
#pragma mark - Event Response
- (void)arrowButtonAction:(UIButton *)sender {
}
#pragma mark - Getters And Setters
- (void)setTotalIncome:(NSString *)totalIncome {
_totalIncome = totalIncome;
if (_totalIncome) {
NSString * title = [NSString stringWithFormat:@"%@钻石", [NSString getDealNumwithstring:_totalIncome]];
NSRange range = [title rangeOfString:@"钻石"];
NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:34],NSForegroundColorAttributeName:[UIColor whiteColor]}];
[attribute addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:18] range:range];
self.coinLabel.attributedText = attribute;
}
}
- (void)setTimeType:(GuildIncomeRecrdTimeType)timeType {
_timeType = timeType;
switch (_timeType) {
case GuildIncomeRecrdTimeType_Day:
self.endLabel.hidden = YES;
break;
case GuildIncomeRecrdTimeType_Week:
self.endLabel.hidden = NO;
break;
case GuildIncomeRecrdTimeType_Mouth:
self.endLabel.hidden = YES;
break;
default:
break;
}
}
- (UIImageView *)backImageView {
if (!_backImageView) {
_backImageView = [[UIImageView alloc] init];
_backImageView.userInteractionEnabled = YES;
_backImageView.image = [UIImage imageNamed:@"mine_guild_income_header_bg"];
}
return _backImageView;
}
- (UILabel *)yearLabel {
if (!_yearLabel) {
_yearLabel = [[UILabel alloc] init];
_yearLabel.font = [UIFont systemFontOfSize:12];
_yearLabel.textColor = [UIColor colorWithWhite:1 alpha:0.6];
}
return _yearLabel;
}
- (UIStackView *)stackView {
if (!_stackView) {
_stackView = [[UIStackView alloc] init];
_stackView.axis = UILayoutConstraintAxisVertical;
_stackView.distribution = UIStackViewDistributionFill;
_stackView.alignment = UIStackViewAlignmentFill;
_stackView.spacing = 3;
}
return _stackView;
}
- (UILabel *)startLabel {
if (!_startLabel) {
_startLabel = [[UILabel alloc] init];
_startLabel.font = [UIFont systemFontOfSize:18];
_startLabel.textColor = [UIColor whiteColor];
}
return _startLabel;
}
- (UILabel *)endLabel {
if (!_endLabel) {
_endLabel = [[UILabel alloc] init];
_endLabel.font = [UIFont systemFontOfSize:24];
_endLabel.textColor = [ThemeColor mainTextColor];
}
return _endLabel;
}
- (UIButton *)arrowButton {
if (!_arrowButton) {
_arrowButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_arrowButton setImage:[UIImage imageNamed:@"mine_guild_income_record_arrow"] forState:UIControlStateNormal];
[_arrowButton setImage:[UIImage imageNamed:@"mine_guild_income_record_arrow"] forState:UIControlStateSelected];
[_arrowButton addTarget:self action:@selector(arrowButtonAction:) forControlEvents:UIControlEventTouchUpInside];
}
return _arrowButton;
}
- (UIView *)lineView {
if (!_lineView) {
_lineView = [[UIView alloc] init];
_lineView.backgroundColor = [UIColor whiteColor];
}
return _lineView;
}
- (UILabel *)totalLabel {
if (!_totalLabel) {
_totalLabel = [[UILabel alloc] init];
_totalLabel.text = @"总收入";
_totalLabel.font = [UIFont systemFontOfSize:12];
_totalLabel.textColor = [UIColor colorWithWhite:1 alpha:0.6];
}
return _totalLabel;
}
- (UILabel *)coinLabel {
if (!_coinLabel) {
_coinLabel = [[UILabel alloc] init];
}
return _coinLabel;
}
- (NSDateFormatter *)formatter {
if (!_formatter) {
_formatter = [[NSDateFormatter alloc] init];
}
return _formatter;
}
@end

View File

@@ -0,0 +1,24 @@
//
// XPGuildIncomeSectionView.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/11.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSInteger, GuildIncomeSectionViewType) {
///工会流水
GuildIncomeSectionViewType_Guild,
///个人流水
GuildIncomeSectionViewType_Person
};
@interface XPGuildIncomeSectionView : UIView
@property (nonatomic,assign) GuildIncomeSectionViewType viewType;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,130 @@
//
// XPGuildIncomeSectionView.m
// xplan-ios
//
// Created by on 2022/4/11.
//
#import "XPGuildIncomeSectionView.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "ThemeColor.h"
@interface XPGuildIncomeSectionView ()
///rongqi
@property (nonatomic,strong) UIStackView *stackView;
///
@property (nonatomic,strong) UILabel *rankLabel;
////
@property (nonatomic,strong) UILabel *roomLabel;
///
@property (nonatomic,strong) UILabel *nickLabel;
///
@property (nonatomic,strong) UILabel *incomeLabel;
@end
@implementation XPGuildIncomeSectionView
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
self.backgroundColor = [UIColor clearColor];
[self addSubview:self.stackView];
[self.stackView addArrangedSubview:self.rankLabel];
[self.stackView addArrangedSubview:self.roomLabel];
[self.stackView addArrangedSubview:self.nickLabel];
[self.stackView addArrangedSubview:self.incomeLabel];
}
- (void)initSubViewConstraints {
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self);
}];
[self.rankLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(52);
}];
[self.roomLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(45);
}];
[self.nickLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(90);
}];
}
#pragma mark - Getters And Setters
- (void)setViewType:(GuildIncomeSectionViewType)viewType {
_viewType = viewType;
self.nickLabel.hidden = _viewType == GuildIncomeSectionViewType_Guild;
}
- (UIStackView *)stackView {
if (!_stackView) {
_stackView = [[UIStackView alloc] init];
_stackView.axis = UILayoutConstraintAxisHorizontal;
_stackView.distribution = UIStackViewDistributionFill;
_stackView.alignment = UIStackViewAlignmentFill;
_stackView.spacing = 10;
}
return _stackView;
}
- (UILabel *)rankLabel {
if (!_rankLabel) {
_rankLabel = [[UILabel alloc] init];
_rankLabel.text = @"排名";
_rankLabel.font = [UIFont systemFontOfSize:12];
_rankLabel.textColor = [ThemeColor textThirdColor];
_rankLabel.textAlignment = NSTextAlignmentCenter;
}
return _rankLabel;
}
- (UILabel *)roomLabel {
if (!_roomLabel) {
_roomLabel = [[UILabel alloc] init];
_roomLabel.text = @"昵称";
_roomLabel.font = [UIFont systemFontOfSize:12];
_roomLabel.textColor = [ThemeColor textThirdColor];
_roomLabel.textAlignment = NSTextAlignmentCenter;
}
return _roomLabel;
}
- (UILabel *)nickLabel {
if (!_nickLabel) {
_nickLabel = [[UILabel alloc] init];
_nickLabel.text = @"昵称";
_nickLabel.font = [UIFont systemFontOfSize:12];
_nickLabel.textColor = [ThemeColor textThirdColor];
_nickLabel.textAlignment = NSTextAlignmentCenter;
_nickLabel.hidden = YES;
}
return _nickLabel;
}
- (UILabel *)incomeLabel {
if (!_incomeLabel) {
_incomeLabel = [[UILabel alloc] init];
_incomeLabel.text = @"收入(钻石)";
_incomeLabel.font = [UIFont systemFontOfSize:12];
_incomeLabel.textColor = [ThemeColor textThirdColor];
_incomeLabel.textAlignment = NSTextAlignmentCenter;
}
return _incomeLabel;
}
@end

View File

@@ -0,0 +1,16 @@
//
// XPMineAnchorIncomeStatisViewController.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/11.
//
#import "BaseViewController.h"
NS_ASSUME_NONNULL_BEGIN
@interface XPMineAnchorIncomeStatisViewController : BaseViewController
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,31 @@
//
// XPMineAnchorIncomeStatisViewController.m
// xplan-ios
//
// Created by on 2022/4/11.
//
#import "XPMineAnchorIncomeStatisViewController.h"
@interface XPMineAnchorIncomeStatisViewController ()
@end
@implementation XPMineAnchorIncomeStatisViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end

View File

@@ -0,0 +1,19 @@
//
// XPMineClanStatisViewController.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/11.
// 家族收入统计
#import "BaseViewController.h"
NS_ASSUME_NONNULL_BEGIN
@interface XPMineClanIncomeStatisViewController : BaseViewController
///公会的id
@property (nonatomic,copy) NSString *hallId;
///家族的id
@property (nonatomic,copy) NSString *clanId;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,172 @@
//
// XPMineClanStatisViewController.m
// xplan-ios
//
// Created by on 2022/4/11.
//
#import "XPMineClanIncomeStatisViewController.h"
///Third
#import <Masonry/Masonry.h>
#import <JXCategoryView/JXCategoryView.h>
#import <JXCategoryView/JXCategoryIndicatorBackgroundView.h>
#import <JXCategoryView/JXCategoryListContainerView.h>
///Tool
#import "XPMacro.h"
#import "ThemeColor.h"
///View
#import "XPMineGuildIncomeRecordViewController.h"
@interface XPMineClanIncomeStatisViewController ()<JXCategoryViewDelegate, JXCategoryListContainerViewDelegate>
///
@property (nonatomic, strong) NSArray<NSString *> *titles;
///
@property (nonatomic, strong) JXCategoryTitleView *titleView;
///lineView
@property (nonatomic, strong) JXCategoryListContainerView *contentView;
///
@property (nonatomic,strong) XPMineGuildIncomeRecordViewController *dayRecordVC;
///
@property (nonatomic,strong) XPMineGuildIncomeRecordViewController *weekRecordVC;
///
@property (nonatomic,strong) XPMineGuildIncomeRecordViewController *mouthRecordVC;
@end
@implementation XPMineClanIncomeStatisViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"收入统计";
[self initSubViews];
[self initSubViewConstraints];
}
#pragma mark - Private Method
- (void)initSubViews {
self.titleView.defaultSelectedIndex = 0;
[self.view addSubview:self.titleView];
[self.view addSubview:self.contentView];
[self.contentView didClickSelectedItemAtIndex:0];
}
- (void)initSubViewConstraints {
[self.titleView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.view).offset(10);
make.left.right.mas_equalTo(self.view);
make.height.mas_equalTo(30);
}];
[self.contentView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.titleView.mas_bottom);
make.left.right.bottom.mas_equalTo(self.view);
}];
}
#pragma mark - JXCategoryViewDelegate
- (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView {
return self.titles.count;
}
- (id<JXCategoryListContentViewDelegate>)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index {
if (index == 0) {
return self.dayRecordVC;
} else if(index == 1) {
return self.weekRecordVC;
} else {
return self.mouthRecordVC;
}
}
- (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index {
if (index == 0) {
self.dayRecordVC.timeType = GuildIncomeRecrdTimeType_Day;
} else if(index == 1) {
self.weekRecordVC.timeType = GuildIncomeRecrdTimeType_Week;
} else {
self.mouthRecordVC.timeType = GuildIncomeRecrdTimeType_Mouth;
}
}
#pragma mark - Getters And Setters
- (void)setClanId:(NSString *)clanId {
_clanId = clanId;
self.dayRecordVC.guidId = _clanId;
self.weekRecordVC.guidId = _clanId;
self.mouthRecordVC.guidId = _clanId;
}
- (void)setHallId:(NSString *)hallId {
_hallId = hallId;
self.dayRecordVC.guidId = _hallId;
self.weekRecordVC.guidId = _hallId;
self.mouthRecordVC.guidId = _hallId;
}
- (JXCategoryTitleView *)titleView {
if (!_titleView) {
_titleView = [[JXCategoryTitleView alloc] init];
_titleView.delegate = self;
_titleView.titles = self.titles;
_titleView.backgroundColor = [ThemeColor appBackgroundColor];
_titleView.titleColor = [ThemeColor secondTextColor];
_titleView.titleSelectedColor = [ThemeColor mainTextColor];
_titleView.titleFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:16];
_titleView.titleSelectedFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:16];
_titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter;
_titleView.contentScrollViewClickTransitionAnimationEnabled = NO;
_titleView.defaultSelectedIndex = 0;
_titleView.cellSpacing = 5;
_titleView.cellWidthIncrement = 5;
_titleView.listContainer = self.contentView;
JXCategoryIndicatorLineView *lineView = [[JXCategoryIndicatorLineView alloc] init];
lineView.indicatorColor = [ThemeColor appMainColor];
lineView.indicatorWidth = 8.f;
lineView.indicatorHeight = 4.f;
lineView.indicatorCornerRadius = 2.f;
_titleView.indicators = @[lineView];
}
return _titleView;
}
- (JXCategoryListContainerView *)contentView {
if (!_contentView) {
_contentView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_ScrollView delegate:self];
_contentView.defaultSelectedIndex = 0;
}
return _contentView;
}
- (NSArray<NSString *> *)titles {
if (!_titles) {
_titles = @[@"每日统计", @"每周统计", @"每月统计"];
}
return _titles;
}
- (XPMineGuildIncomeRecordViewController *)dayRecordVC {
if (!_dayRecordVC) {
_dayRecordVC = [[XPMineGuildIncomeRecordViewController alloc] init];
_dayRecordVC.incomeType = GuildIncomeType_Clan;
_dayRecordVC.timeType = GuildIncomeRecrdTimeType_Day;
}
return _dayRecordVC;
}
- (XPMineGuildIncomeRecordViewController *)weekRecordVC {
if (!_weekRecordVC) {
_weekRecordVC = [[XPMineGuildIncomeRecordViewController alloc] init];
_weekRecordVC.incomeType = GuildIncomeType_Clan;
}
return _weekRecordVC;
}
- (XPMineGuildIncomeRecordViewController *)mouthRecordVC {
if (!_mouthRecordVC) {
_mouthRecordVC = [[XPMineGuildIncomeRecordViewController alloc] init];
_mouthRecordVC.incomeType = GuildIncomeType_Clan;
}
return _mouthRecordVC;
}
@end

View File

@@ -21,6 +21,7 @@
#import "XPClanSectionView.h"
#import "XPMineGuildViewController.h"
#import "XPMineGuildSearchViewController.h"
#import "XPMineClanIncomeStatisViewController.h"
///P
#import "XPClanPresenter.h"
#import "XPClanProtocol.h"
@@ -225,6 +226,25 @@
[self.navigationController pushViewController:guildVC animated:YES];
}
- (void)xPGuildHeaderView:(XPGuildHeaderView *)view dicSelectOwner:(ClanDetailInfoModel *)guildInfo {
}
- (void)xPGuildHeaderView:(XPGuildHeaderView *)view dicTapMenuItem:(GuildHeaderMenuType)menuType {
switch (menuType) {
case GuildHeaderMenuType_Hall_Income:
{
XPMineClanIncomeStatisViewController * clanIncomeVC = [[XPMineClanIncomeStatisViewController alloc] init];
clanIncomeVC.hallId = self.clanDetailInfo.clan.cid;
[self.navigationController pushViewController:clanIncomeVC animated:YES];
}
break;
default:
break;
}
}
#pragma mark - Event Response
- (void)backButtonAction:(UIButton *)sender {
[self.navigationController popViewControllerAnimated:YES];

View File

@@ -0,0 +1,41 @@
//
// XPMineGuildIncomeRecordViewController.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/11.
//
#import "MvpViewController.h"
#import <JXCategoryView/JXCategoryListContainerView.h>
NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSInteger, GuildIncomeRecrdTimeType) {
///每日
GuildIncomeRecrdTimeType_Day = 1,
///每周
GuildIncomeRecrdTimeType_Week,
///每月
GuildIncomeRecrdTimeType_Mouth,
};
typedef NS_ENUM(NSInteger, GuildIncomeType) {
///家族收入
GuildIncomeType_Clan = 1,
///工会收入
GuildIncomeType_Hall,
///个播
GuildIncomeType_Anchor,
};
@interface XPMineGuildIncomeRecordViewController : MvpViewController<JXCategoryListContentViewDelegate>
///时间的类型
@property (nonatomic,assign) GuildIncomeRecrdTimeType timeType;
///收入类型
@property (nonatomic,assign) GuildIncomeType incomeType;
///工会的id 或者是家族的id
@property (nonatomic,copy) NSString *guidId;
///个播的时候 传入一个家族的id
@property (nonatomic,copy) NSString *clanId;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,283 @@
//
// XPMineGuildIncomeRecordViewController.m
// xplan-ios
//
// Created by on 2022/4/11.
//
#import "XPMineGuildIncomeRecordViewController.h"
///Third
#import <Masonry/Masonry.h>
#import <MJRefresh/MJRefresh.h>
///Tool
#import "ThemeColor.h"
#import "PLTimeUtil.h"
///Model
#import "GuildIncomeRecordModel.h"
///View
#import "XPGuildIncomeRecordTableViewCell.h"
#import "XPGuildPersonIncomeTableViewCell.h"
#import "XPMineGuildEmptyTableViewCell.h"
#import "XPGuildSingleRoomIncomeTableViewCell.h"
#import "XPGuildIncomeSectionView.h"
#import "XPGuildIncomeHeaderView.h"
///P
#import "XPGuildIncomePresenter.h"
#import "XPGuildIncomeProtocol.h"
@interface XPMineGuildIncomeRecordViewController ()<UITableViewDelegate, UITableViewDataSource, XPGuildIncomeProtocol>
///
@property (nonatomic,strong) UITableView *tableView;
///view
@property (nonatomic,strong) XPGuildIncomeHeaderView *headerView;
///
@property (nonatomic,strong) XPGuildIncomeSectionView *sectionView;
///
@property (nonatomic,strong) NSArray *datasource;
///
@property (nonatomic,strong) NSDate *endDate;
///
@property (nonatomic,strong) NSDate *startDate;
///
@property (nonatomic,strong) NSDate *currentDate;
///
@property (nonatomic,copy) NSString *startTimeStr;
///
@property (nonatomic,copy) NSString *endTimeStr;
@end
@implementation XPMineGuildIncomeRecordViewController
- (__kindof id)createPresenter {
return [[XPGuildIncomePresenter alloc] init];
}
- (void)viewDidLoad {
[super viewDidLoad];
[self initSubViews];
[self initSubViewConstraints];
[self initHeaderAndFooterRrfresh];
}
#pragma mark - refresh
- (void)initHeaderAndFooterRrfresh {
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(headerRefresh)];
header.stateLabel.font = [UIFont systemFontOfSize:10.0];
header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0];
header.stateLabel.textColor = [ThemeColor secondTextColor];
header.lastUpdatedTimeLabel.textColor = [ThemeColor secondTextColor];
self.tableView.mj_header = header;
MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRefresh)];
footer.stateLabel.textColor = [ThemeColor secondTextColor];
footer.stateLabel.font = [UIFont systemFontOfSize:10.0];
self.tableView.mj_footer = footer;
[self headerRefresh];
}
- (void)headerRefresh {
if (self.incomeType == GuildIncomeType_Clan) {
[self.presenter getClanTotalIncome:self.guidId startTime:self.startTimeStr endTime:self.endTimeStr];
} else if(self.incomeType == GuildIncomeType_Hall) {
[self.presenter getHallTotalIncome:self.guidId startTime:self.startTimeStr endTime:self.endTimeStr];
} else {
if (self.clanId.length > 0) {
[self.presenter getClanAnchorTotalIncome:self.clanId startTime:self.startTimeStr endTime:self.endTimeStr];
} else {
[self.presenter getHallAnchorTotalIncome:self.guidId startTime:self.startTimeStr endTime:self.endTimeStr];
}
}
}
- (void)footerRefresh {
}
#pragma mark - Private Method
- (void)initSubViews {
[self.view addSubview:self.headerView];
[self.view addSubview:self.sectionView];
[self.view addSubview:self.tableView];
}
- (void)initSubViewConstraints {
[self.headerView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self.view);
make.top.mas_equalTo(self.view).offset(10);
}];
[self.sectionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.left.mas_equalTo(self.view);
make.height.mas_equalTo(30);
make.top.mas_equalTo(self.headerView.mas_bottom);
}];
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.bottom.mas_equalTo(self.view);
make.top.mas_equalTo(self.sectionView.mas_bottom);
}];
}
///
- (void)monthWithCurrentDate:(NSDate *)newDate {
if (newDate == nil) {
newDate = [NSDate date];
}
double interval = 0;
NSDate *beginDate = nil;
NSDate *endDate = nil;
NSCalendar *calendar = [NSCalendar currentCalendar];
[calendar setFirstWeekday:2];//
BOOL ok = [calendar rangeOfUnit:NSCalendarUnitMonth startDate:&beginDate interval:&interval forDate:newDate];
if (ok) {
endDate = [beginDate dateByAddingTimeInterval:interval-1];
} else {
return;
}
self.startDate = beginDate;
self.endDate = endDate;
}
- (void)weekDayWithCurrentDate:(NSDate *)date {
NSCalendar * calendar = [NSCalendar currentCalendar]; //
NSDateComponents *comps = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitWeekday | NSCalendarUnitDay fromDate:date];
//
// 1 2 3.
NSInteger weekDay = [comps weekday];
//
NSInteger day = [comps day];
long firstDiff,lastDiff;
if (weekDay == 1){
firstDiff = -6;
lastDiff = 0;
} else {
firstDiff = [calendar firstWeekday] - weekDay + 1;
lastDiff = 8 - weekDay;
}
// ()
NSDateComponents *baseDayComp = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:date];
//
[baseDayComp setDay:day + firstDiff];
NSDate *firstDayOfWeek = [calendar dateFromComponents:baseDayComp];
self.startDate = firstDayOfWeek;
//
[baseDayComp setDay:day + lastDiff];
NSDate *lastDayOfWeek = [calendar dateFromComponents:baseDayComp];
self.endDate = lastDayOfWeek;
}
#pragma mark - UITableViewDelegate And UITableViewDataSource
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return self.datasource.count > 0 ? self.datasource.count : 1;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return self.datasource.count > 0 ? 90 : 400;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if (self.datasource.count > 0) {
if (self.incomeType == GuildIncomeType_Clan) {
XPGuildIncomeRecordTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPGuildIncomeRecordTableViewCell class])];
if (cell == nil) {
cell = [[XPGuildIncomeRecordTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPGuildIncomeRecordTableViewCell class])];
}
cell.userInfo = [self.datasource objectAtIndex:indexPath.row];
return cell;
} else if(self.incomeType == GuildIncomeType_Hall) {
XPGuildPersonIncomeTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPGuildPersonIncomeTableViewCell class])];
if (cell == nil) {
cell = [[XPGuildPersonIncomeTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPGuildPersonIncomeTableViewCell class])];
}
return cell;
} else if(self.incomeType == GuildIncomeType_Anchor) {
XPGuildSingleRoomIncomeTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPGuildSingleRoomIncomeTableViewCell class])];
if (cell == nil) {
cell = [[XPGuildSingleRoomIncomeTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPGuildSingleRoomIncomeTableViewCell class])];
}
return cell;
}
}
XPMineGuildEmptyTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XPMineGuildEmptyTableViewCell class])];
if (cell == nil) {
cell = [[XPMineGuildEmptyTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XPMineGuildEmptyTableViewCell class])];
}
return cell;
}
#pragma mark - XPGuildIncomeProtocol
- (void)getClanTotalIncomeScuess:(GuildIncomeRecordModel *)incomeInfo {
self.headerView.totalIncome = incomeInfo.total;
self.datasource = incomeInfo.income;
[self.tableView reloadData];
}
#pragma mark - JXCategoryListContentViewDelegate
- (UIView *)listView {
return self.view;
}
#pragma mark - Getters And Setters
- (void)setTimeType:(GuildIncomeRecrdTimeType)timeType {
_timeType = timeType;
switch (_timeType) {
case GuildIncomeRecrdTimeType_Day:
self.startDate = [NSDate date];
self.endDate = [NSDate date];
self.startTimeStr = [PLTimeUtil getYYMMDDWithDate:self.startDate];
self.endTimeStr = [PLTimeUtil getYYMMDDWithDate:self.endDate];
break;
case GuildIncomeRecrdTimeType_Week:
[self weekDayWithCurrentDate:[NSDate date]];
self.startTimeStr = [PLTimeUtil getYYMMDDWithDate:self.startDate];
self.endTimeStr = [PLTimeUtil getYYMMDDWithDate:self.endDate];
break;
case GuildIncomeRecrdTimeType_Mouth:
[self monthWithCurrentDate:[NSDate date]];
self.startTimeStr = [PLTimeUtil getYYMMDDWithDate:self.startDate];
self.endTimeStr = [PLTimeUtil getYYMMDDWithDate:self.endDate];
break;
default:
break;
}
self.headerView.timeType = timeType;
[self.headerView configHeaderView:self.startDate endTime:self.endDate];
[self headerRefresh];
}
- (UITableView *)tableView {
if (!_tableView) {
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
_tableView.delegate = self;
_tableView.dataSource = self;
_tableView.tableFooterView = [UIView new];
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
_tableView.backgroundColor = [UIColor clearColor];
if (@available(iOS 11.0, *)) {
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}
[_tableView registerClass:[XPGuildIncomeRecordTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPGuildIncomeRecordTableViewCell class])];
[_tableView registerClass:[XPGuildPersonIncomeTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPGuildPersonIncomeTableViewCell class])];
[_tableView registerClass:[XPMineGuildEmptyTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPMineGuildEmptyTableViewCell class])];
[_tableView registerClass:[XPGuildSingleRoomIncomeTableViewCell class] forCellReuseIdentifier:NSStringFromClass([XPGuildSingleRoomIncomeTableViewCell class])];
}
return _tableView;
}
- (XPGuildIncomeHeaderView *)headerView {
if (!_headerView) {
_headerView = [[XPGuildIncomeHeaderView alloc] init];
}
return _headerView;
}
- (XPGuildIncomeSectionView *)sectionView {
if (!_sectionView) {
_sectionView = [[XPGuildIncomeSectionView alloc] init];
}
return _sectionView;
}
@end

View File

@@ -0,0 +1,16 @@
//
// XPMineGuildIncomeStatisViewController.h
// xplan-ios
//
// Created by 冯硕 on 2022/4/11.
// 家族收入统计
#import "BaseViewController.h"
NS_ASSUME_NONNULL_BEGIN
@interface XPMineGuildIncomeStatisViewController : BaseViewController
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,109 @@
////
//// XPMineGuildIncomeStatisViewController.m
//// xplan-ios
////
//// Created by on 2022/4/11.
////
//
//#import "XPMineGuildIncomeStatisViewController.h"
/////Third
//#import <Masonry/Masonry.h>
//#import <JXCategoryView/JXCategoryView.h>
//#import <JXCategoryView/JXCategoryIndicatorBackgroundView.h>
//#import <JXCategoryView/JXCategoryListContainerView.h>
/////Tool
//#import "XPMacro.h"
//#import "ThemeColor.h"
//
//@interface XPMineGuildIncomeStatisViewController ()<JXCategoryViewDelegate, JXCategoryListContainerViewDelegate>
/////
//@property (nonatomic, strong) NSArray<NSString *> *titles;
/////
//@property (nonatomic, strong) JXCategoryTitleView *titleView;
/////lineView
//@property (nonatomic, strong) JXCategoryListContainerView *contentView;
//@end
//
//@implementation XPMineGuildIncomeStatisViewController
//
//- (void)viewDidLoad {
// [super viewDidLoad];
// self.title = @"收入统计";
// [self initSubViews];
// [self initSubViewConstraints];
//}
//
//#pragma mark - Private Method
//- (void)initSubViews {
// [self.view addSubview:self.titleView];
// [self.view addSubview:self.contentView];
//}
//
//- (void)initSubViewConstraints {
// [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) {
// make.top.mas_equalTo(self.view).offset(10);
// make.left.right.mas_equalTo(self.view);
// make.height.mas_equalTo(30);
// }];
//
// [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) {
// make.top.mas_equalTo(self.titleView.mas_bottom);
// make.left.right.bottom.mas_equalTo(self.view);
// }];
//}
//
//#pragma mark - JXCategoryViewDelegate
//- (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView {
// return self.titles.count;
//}
//
//- (id<JXCategoryListContentViewDelegate>)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index {
//
//}
//
//- (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index {
//}
//#pragma mark - Getters And Setters
//- (JXCategoryTitleView *)titleView {
// if (!_titleView) {
// _titleView = [[JXCategoryTitleView alloc] init];
// _titleView.delegate = self;
// _titleView.titles = self.titles;
// _titleView.backgroundColor = [UIColor clearColor];
// _titleView.titleColor = [ThemeColor secondTextColor];
// _titleView.titleSelectedColor = [ThemeColor mainTextColor];
// _titleView.titleFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:16];
// _titleView.titleSelectedFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:16];
// _titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter;
// _titleView.contentScrollViewClickTransitionAnimationEnabled = NO;
// _titleView.defaultSelectedIndex = 0;
// _titleView.cellSpacing = 5;
// _titleView.cellWidthIncrement = 5;
// _titleView.listContainer = self.contentView;
//
// JXCategoryIndicatorBackgroundView * indocator = [[JXCategoryIndicatorBackgroundView alloc] init];
// indocator.indicatorColor = [ThemeColor appMainColor];
// indocator.indicatorHeight = 3;
// indocator.indicatorWidth = 25;
// indocator.indicatorCornerRadius = 1.5;
// _titleView.indicators = @[indocator];
// }
// return _titleView;
//}
//
//- (JXCategoryListContainerView *)contentView {
// if (!_contentView) {
// _contentView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_ScrollView delegate:self];
// _contentView.defaultSelectedIndex = 0;
// }
// return _contentView;
//}
//
//- (NSArray<NSString *> *)titles {
// if (!_titles) {
// _titles = @[@"每日统计", @"每周统计", @"每月统计"];
// }
// return _titles;
//}
//
//@end