首充激励的UI

This commit is contained in:
fengshuo
2021-12-23 20:08:13 +08:00
parent 155ba0687e
commit 59c95a82a3
13 changed files with 417 additions and 0 deletions

View File

@@ -197,6 +197,11 @@
E83DB481274649FB00D8CBD1 /* XPGiftBannerUserInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E83DB480274649FB00D8CBD1 /* XPGiftBannerUserInfoModel.m */; };
E83DB4842746661800D8CBD1 /* XPRoomGiftBroadcastView.m in Sources */ = {isa = PBXBuildFile; fileRef = E83DB4832746661800D8CBD1 /* XPRoomGiftBroadcastView.m */; };
E83DB487274670DA00D8CBD1 /* XPRoomGiftBroadCastModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E83DB486274670DA00D8CBD1 /* XPRoomGiftBroadCastModel.m */; };
E84150B827747B8B00A7F548 /* XPFirstRechargeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E84150B727747B8B00A7F548 /* XPFirstRechargeViewController.m */; };
E84150BB27747BAF00A7F548 /* XPFirstRechargePresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = E84150BA27747BAF00A7F548 /* XPFirstRechargePresenter.m */; };
E84150BF27747BD300A7F548 /* Api+FirstRecharge.m in Sources */ = {isa = PBXBuildFile; fileRef = E84150BE27747BD300A7F548 /* Api+FirstRecharge.m */; };
E84150C227747BF700A7F548 /* FirstRechargeModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E84150C127747BF700A7F548 /* FirstRechargeModel.m */; };
E84150C527747E0900A7F548 /* FirstRechargeRewardModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E84150C427747E0900A7F548 /* FirstRechargeRewardModel.m */; };
E84B0E3F2727EDF6008818C6 /* XPRoomMessageTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E84B0E3E2727EDF6008818C6 /* XPRoomMessageTableViewCell.m */; };
E84B0E422727EE0A008818C6 /* XPRoomMessageHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = E84B0E412727EE0A008818C6 /* XPRoomMessageHeaderView.m */; };
E84B0E462727EF9D008818C6 /* XPRoomMessageParser.m in Sources */ = {isa = PBXBuildFile; fileRef = E84B0E452727EF9D008818C6 /* XPRoomMessageParser.m */; };
@@ -769,6 +774,17 @@
E83DB4832746661800D8CBD1 /* XPRoomGiftBroadcastView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomGiftBroadcastView.m; sourceTree = "<group>"; };
E83DB485274670DA00D8CBD1 /* XPRoomGiftBroadCastModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomGiftBroadCastModel.h; sourceTree = "<group>"; };
E83DB486274670DA00D8CBD1 /* XPRoomGiftBroadCastModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomGiftBroadCastModel.m; sourceTree = "<group>"; };
E84150B627747B8B00A7F548 /* XPFirstRechargeViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPFirstRechargeViewController.h; sourceTree = "<group>"; };
E84150B727747B8B00A7F548 /* XPFirstRechargeViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPFirstRechargeViewController.m; sourceTree = "<group>"; };
E84150B927747BAF00A7F548 /* XPFirstRechargePresenter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPFirstRechargePresenter.h; sourceTree = "<group>"; };
E84150BA27747BAF00A7F548 /* XPFirstRechargePresenter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPFirstRechargePresenter.m; sourceTree = "<group>"; };
E84150BC27747BBD00A7F548 /* XPFirstRechargeProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPFirstRechargeProtocol.h; sourceTree = "<group>"; };
E84150BD27747BD300A7F548 /* Api+FirstRecharge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+FirstRecharge.h"; sourceTree = "<group>"; };
E84150BE27747BD300A7F548 /* Api+FirstRecharge.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+FirstRecharge.m"; sourceTree = "<group>"; };
E84150C027747BF700A7F548 /* FirstRechargeModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FirstRechargeModel.h; sourceTree = "<group>"; };
E84150C127747BF700A7F548 /* FirstRechargeModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FirstRechargeModel.m; sourceTree = "<group>"; };
E84150C327747E0900A7F548 /* FirstRechargeRewardModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FirstRechargeRewardModel.h; sourceTree = "<group>"; };
E84150C427747E0900A7F548 /* FirstRechargeRewardModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FirstRechargeRewardModel.m; sourceTree = "<group>"; };
E84B0E3D2727EDF6008818C6 /* XPRoomMessageTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomMessageTableViewCell.h; sourceTree = "<group>"; };
E84B0E3E2727EDF6008818C6 /* XPRoomMessageTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomMessageTableViewCell.m; sourceTree = "<group>"; };
E84B0E402727EE0A008818C6 /* XPRoomMessageHeaderView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomMessageHeaderView.h; sourceTree = "<group>"; };
@@ -2209,6 +2225,64 @@
path = Model;
sourceTree = "<group>";
};
E84150B027747A7400A7F548 /* FirstRecharge */ = {
isa = PBXGroup;
children = (
E84150B527747AAD00A7F548 /* Model */,
E84150B427747AA400A7F548 /* Api */,
E84150B327747A9E00A7F548 /* View */,
E84150B227747A9500A7F548 /* Presenter */,
E84150B127747A8D00A7F548 /* Protocol */,
);
path = FirstRecharge;
sourceTree = "<group>";
};
E84150B127747A8D00A7F548 /* Protocol */ = {
isa = PBXGroup;
children = (
E84150BC27747BBD00A7F548 /* XPFirstRechargeProtocol.h */,
);
path = Protocol;
sourceTree = "<group>";
};
E84150B227747A9500A7F548 /* Presenter */ = {
isa = PBXGroup;
children = (
E84150B927747BAF00A7F548 /* XPFirstRechargePresenter.h */,
E84150BA27747BAF00A7F548 /* XPFirstRechargePresenter.m */,
);
path = Presenter;
sourceTree = "<group>";
};
E84150B327747A9E00A7F548 /* View */ = {
isa = PBXGroup;
children = (
E84150B627747B8B00A7F548 /* XPFirstRechargeViewController.h */,
E84150B727747B8B00A7F548 /* XPFirstRechargeViewController.m */,
);
path = View;
sourceTree = "<group>";
};
E84150B427747AA400A7F548 /* Api */ = {
isa = PBXGroup;
children = (
E84150BD27747BD300A7F548 /* Api+FirstRecharge.h */,
E84150BE27747BD300A7F548 /* Api+FirstRecharge.m */,
);
path = Api;
sourceTree = "<group>";
};
E84150B527747AAD00A7F548 /* Model */ = {
isa = PBXGroup;
children = (
E84150C027747BF700A7F548 /* FirstRechargeModel.h */,
E84150C127747BF700A7F548 /* FirstRechargeModel.m */,
E84150C327747E0900A7F548 /* FirstRechargeRewardModel.h */,
E84150C427747E0900A7F548 /* FirstRechargeRewardModel.m */,
);
path = Model;
sourceTree = "<group>";
};
E84B0E3C2727EDD4008818C6 /* View */ = {
isa = PBXGroup;
children = (
@@ -2686,6 +2760,7 @@
E8AEAED8271413530017FCE0 /* View */ = {
isa = PBXGroup;
children = (
E84150B027747A7400A7F548 /* FirstRecharge */,
E81C1B1327705EF00020D1E4 /* ArrangeMic */,
E8A1E4462761F8EA00B294CA /* CandyTree */,
E8DEC9962764A51F0078CB70 /* MoreView */,
@@ -3407,6 +3482,7 @@
E88B5CB526FB20B800DA9178 /* XPMineTeenagerPwdView.m in Sources */,
E81C279826EB3AC40031E639 /* LoginForgetPasswordProtocol.h in Sources */,
E8C6FFD42754AA87004DC9F0 /* XPNoteView.m in Sources */,
E84150BB27747BAF00A7F548 /* XPFirstRechargePresenter.m in Sources */,
E82325F9274E2E42003A3332 /* Api+UserCard.m in Sources */,
E82109B026F1D83500FC3319 /* LoginBindPhonePresent.m in Sources */,
E81C1B1F27705F7A0020D1E4 /* XPArrangeMicViewController.m in Sources */,
@@ -3556,6 +3632,7 @@
E8680718271967B00024F48F /* MicroView.m in Sources */,
E896EF942771AAC100AD2CC1 /* XPMineFansPresenter.m in Sources */,
E8B825CD26EA18C8009E8E9F /* ThemeColor.m in Sources */,
E84150B827747B8B00A7F548 /* XPFirstRechargeViewController.m in Sources */,
E88B5CBD26FB3BDF00DA9178 /* XPTeenagerAlertView.m in Sources */,
E82D5C70276AE60000858D6D /* HeadwearModel.m in Sources */,
E8A03DEC276301EF0098D9EA /* XPCandyTreeRankView.m in Sources */,
@@ -3575,6 +3652,7 @@
E8AC722C26F49580007D6E91 /* XPMineNotificaViewController.m in Sources */,
189DD52E26DE255300AB55B1 /* AppDelegate.m in Sources */,
E83DB4842746661800D8CBD1 /* XPRoomGiftBroadcastView.m in Sources */,
E84150C527747E0900A7F548 /* FirstRechargeRewardModel.m in Sources */,
E8A1E4572762092700B294CA /* XPCandyTreePresenter.m in Sources */,
E86596542701A55500846EBD /* StatisticsServiceHelper.m in Sources */,
E8E70D8C26F2F5A500F03460 /* XPMineMatchCollectionViewCell.m in Sources */,
@@ -3589,6 +3667,7 @@
189DD56526DE465A00AB55B1 /* LoginViewController.m in Sources */,
E824544B26F5BBB800BE8163 /* XPMineModifPayPwdViewController.m in Sources */,
E81C1B2227705F950020D1E4 /* Api+ArrangeMic.m in Sources */,
E84150C227747BF700A7F548 /* FirstRechargeModel.m in Sources */,
E8A1E4512762082A00B294CA /* Api+CandyTree.m in Sources */,
E839533C276A0CCD00CF2F24 /* XPMineCarTableViewCell.m in Sources */,
E8EEB8FE26FC2DF8007C6EBA /* XPMineUserInfoCustomNavView.m in Sources */,
@@ -3664,6 +3743,7 @@
E80487652717DDD9008595F2 /* XPRoomMenuItem.m in Sources */,
189DD75026E21D9000AB55B1 /* GCDHelper.m in Sources */,
E82D5C76276AEB5100858D6D /* NameplateModel.m in Sources */,
E84150BF27747BD300A7F548 /* Api+FirstRecharge.m in Sources */,
E84B0E422727EE0A008818C6 /* XPRoomMessageHeaderView.m in Sources */,
E8C6FFDD2754CF5D004DC9F0 /* HomeRecommendRoomModel.m in Sources */,
E890BC10273D23F00007C46B /* GiftInfoModel.m in Sources */,

View File

@@ -34,6 +34,8 @@ typedef NS_ENUM(NSUInteger, CustomMessageType) {
CustomMessageType_Room_GiftValue = 42,
///福袋消息
CustomMessageType_LuckyBag = 61,
///首充奖励
CustomMessageType_First_Recharge_Reward = 76,
};
@@ -146,12 +148,19 @@ typedef NS_ENUM(NSUInteger, CustomMessageSubLuckyBag) {
Custom_Message_Sub_Room_Gift_LuckBag_Server = 611,
};
///跳转类型
typedef NS_ENUM(NSUInteger, CustomMessageRouter) {
/// 跳转H5
Custom_Message_Router_H5 = 2,
};
///first = CustomMessageType_First_Recharge_Reward
typedef NS_ENUM(NSUInteger, CustomMessageSubFirstRecharge) {
/// 首充完成
Custom_Message_Sub_Room_First_Recharge_Reward= 761,
};
@interface AttachmentModel : NSObject<NIMCustomAttachment>
@property (nonatomic,assign) int first;
@property (nonatomic,assign) int second;

View File

@@ -0,0 +1,21 @@
//
// Api+FirstRecharge.h
// xplan-ios
//
// Created by 冯硕 on 2021/12/23.
//
#import "Api.h"
NS_ASSUME_NONNULL_BEGIN
@interface Api (FirstRecharge)
/// 获取首充奖励列表
/// @param completion 完成
/// @param channelType 渠道 目前是3
+ (void)firstRechargeRewardList:(HttpRequestHelperCompletion)completion channelType:(NSString *)channelType;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,20 @@
//
// Api+FirstRecharge.m
// xplan-ios
//
// Created by on 2021/12/23.
//
#import "Api+FirstRecharge.h"
@implementation Api (FirstRecharge)
///
/// @param completion
/// @param channelType 3
+ (void)firstRechargeRewardList:(HttpRequestHelperCompletion)completion channelType:(NSString *)channelType {
[self makeRequest:@"first/charge/list" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, channelType, nil];
}
@end

View File

@@ -0,0 +1,24 @@
//
// FirstRechargeModel.h
// xplan-ios
//
// Created by 冯硕 on 2021/12/23.
//
#import <Foundation/Foundation.h>
#import "FirstRechargeRewardModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface FirstRechargeModel : NSObject
@property(nonatomic, assign) NSInteger chargeMoney;
@property(nonatomic, strong) NSString *chargeProdId;
@property(nonatomic, strong) NSString *chargeProdDesc;
@property(nonatomic, strong) NSString *chargeProdTitle;
@property(nonatomic, strong) NSArray<FirstRechargeRewardModel *> *firstChargeRewardList;
@property (nonatomic, assign) NSInteger giveMoney;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,18 @@
//
// FirstRechargeModel.m
// xplan-ios
//
// Created by on 2021/12/23.
//
#import "FirstRechargeModel.h"
@implementation FirstRechargeModel
///
///
+ (NSDictionary *)objectClassInArray {
return @{@"firstChargeRewardList": FirstRechargeRewardModel.class};
}
@end

View File

@@ -0,0 +1,23 @@
//
// FirstRechargeRewardModel.h
// xplan-ios
//
// Created by 冯硕 on 2021/12/23.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface FirstRechargeRewardModel : NSObject
@property (nonatomic, assign) long rewardId;
@property(nonatomic, strong) NSString *showPir;
@property(nonatomic, strong) NSString *showText;
@property(nonatomic, assign) NSInteger rewardDay;
@property (nonatomic, assign) NSInteger rewardType;
@property(nonatomic, strong) NSNumber *rewardNum;
@property (nonatomic, assign) NSInteger firstChargeLevelId;
@property (nonatomic, strong) NSString *rid;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,17 @@
//
// FirstRechargeRewardModel.m
// xplan-ios
//
// Created by on 2021/12/23.
//
#import "FirstRechargeRewardModel.h"
@implementation FirstRechargeRewardModel
/// id -> ID name -> other.name
+ (NSDictionary *)replacedKeyFromPropertyName {
return @{@"id": @"fid"};
}
@end

View File

@@ -0,0 +1,16 @@
//
// XPFirstRechargePresenter.h
// xplan-ios
//
// Created by 冯硕 on 2021/12/23.
//
#import "BaseMvpPresenter.h"
NS_ASSUME_NONNULL_BEGIN
@interface XPFirstRechargePresenter : BaseMvpPresenter
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,22 @@
//
// XPFirstRechargePresenter.m
// xplan-ios
//
// Created by on 2021/12/23.
//
#import "XPFirstRechargePresenter.h"
#import "Api+FirstRecharge.h"
#import "FirstRechargeModel.h"
#import "XPFirstRechargeProtocol.h"
@implementation XPFirstRechargePresenter
- (void)getFirstRechargeRewardList {
[Api firstRechargeRewardList:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
NSArray * array = [FirstRechargeModel modelsWithArray:data.data];
[[self getView] getFirstRechargeListSuccess:array];
} showLoading:YES] channelType:@"3"];
}
@end

View File

@@ -0,0 +1,19 @@
//
// XPFirstRechargeProtocol.h
// xplan-ios
//
// Created by 冯硕 on 2021/12/23.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@protocol XPFirstRechargeProtocol <NSObject>
///获取首充列表成功
- (void)getFirstRechargeListSuccess:(NSArray *)array;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,16 @@
//
// XPFirstRechargeViewController.h
// xplan-ios
//
// Created by 冯硕 on 2021/12/23.
//
#import "MvpViewController.h"
NS_ASSUME_NONNULL_BEGIN
@interface XPFirstRechargeViewController : MvpViewController
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,132 @@
//
// XPFirstRechargeViewController.m
// xplan-ios
//
// Created by on 2021/12/23.
//
#import "XPFirstRechargeViewController.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "XPMacro.h"
///Model
#import "FirstRechargeRewardModel.h"
///P
#import "XPFirstRechargePresenter.h"
#import "XPFirstRechargeProtocol.h"
@interface XPFirstRechargeViewController ()<XPFirstRechargeProtocol>
///View
@property (nonatomic,strong) UIView * topView;
///View
@property (nonatomic,strong) UIView * bottomView;
///
@property (nonatomic,strong) UIView * contentView;
///
@property (nonatomic,strong) UIImageView *backImageView;
///tab
@property (nonatomic,strong) UIView * segmentView;
///
@property (nonatomic,strong) UILabel *rewardLabel;
///
@property (nonatomic,strong) UIButton *rewardHelpButton;
///
@property (nonatomic, strong) UIImageView *rewardBgView;
///
@property (nonatomic, strong) UITextView *descripLabel;
///
@property (nonatomic,strong) UICollectionView *collectionView;
///
@property (nonatomic, strong) UIButton *rechargeButton;
///
@property (nonatomic,strong) NSMutableArray<FirstRechargeRewardModel *> *datasource;
@end
@implementation XPFirstRechargeViewController
- (XPFirstRechargePresenter *)createPresenter {
return [[XPFirstRechargePresenter alloc] init];
}
- (void)viewDidLoad {
[super viewDidLoad];
}
#pragma mark - Private Method
- (void)initSubViews {
[self.view addSubview:self.topView];
[self.view addSubview:self.contentView];
[self.view addSubview:self.bottomView];
[self.contentView addSubview:self.backImageView];
[self.contentView addSubview:self.rechargeButton];
[self.backImageView addSubview:self.rewardHelpButton];
[self.backImageView addSubview:self.rewardBgView];
[self.backImageView addSubview:self.segmentView];
[self.backImageView addSubview:self.collectionView];
[self.rewardBgView addSubview:self.rewardLabel];
}
- (void)initSubViewConstraints {
[self.topView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.mas_equalTo(self.view);
make.bottom.mas_equalTo(self.contentView.mas_top);
}];
[self.contentView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(439);
make.center.mas_equalTo(self.view);
make.bottom.mas_equalTo(self.rechargeButton.mas_bottom);
}];
[self.bottomView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.bottom.mas_equalTo(self.view);
make.top.mas_equalTo(self.contentView.mas_bottom);
}];
[self.backImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.top.mas_equalTo(self.contentView);
make.height.mas_equalTo(290);
}];
[self.rechargeButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(185, 45));
make.centerX.mas_equalTo(self.contentView);
make.centerY.mas_equalTo(self.rewardBgView.mas_bottom);
}];
[self.segmentView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self.contentView);
make.top.mas_equalTo(self.rewardBgView).offset(129);
make.height.mas_equalTo(35);
}];
[self.rewardHelpButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(self.rewardBgView).mas_offset(-12);
make.top.mas_equalTo(self.rewardBgView).mas_offset(99);
make.width.height.mas_equalTo(22);
}];
[self.rewardBgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(self.rewardHelpButton).mas_offset(-10);
make.top.mas_equalTo(self.rewardHelpButton.mas_bottom).mas_offset(5);
make.width.mas_equalTo(145);
make.height.mas_equalTo(77);
}];
[self.rewardLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(self.rewardBgView.mas_left).inset(2);
make.bottom.mas_equalTo(self.rewardBgView.mas_bottom).mas_offset(-6);
}];
}
#pragma mark - XPFirstRechargeProtocol
- (void)getFirstRechargeListSuccess:(NSArray *)array {
}
@end