| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463 |
- //
- // MOFirstRechargeCell.m
- // MiMoLive
- //
- // Created by SuperC on 2024/9/9.
- //
- #import "MOFirstRechargeCell.h"
- #import "MOFirstRechargeRulesView.h"
- #import "MOTopUpStatusView.h"
- #import "MOCongratulationsView.h"
- #import <AdjustSdk/ADJEvent.h>
- @interface MOFirstRechargeCell ()<UITableViewDelegate,UITableViewDataSource>
- @property (weak, nonatomic) IBOutlet UILabel *titleLab;
- @property (weak, nonatomic) IBOutlet UILabel *bottomTipLab;
- @property (weak, nonatomic) IBOutlet UILabel *topTipLab;
- @property (weak, nonatomic) IBOutlet UIImageView *oneTimeImgView;
- @property (weak, nonatomic) IBOutlet UIImageView *selectImgView;
- @property (weak, nonatomic) IBOutlet NSLayoutConstraint *selectImgCenterX;
- @property (weak, nonatomic) IBOutlet UIButton *fisrtBtn;
- @property (weak, nonatomic) IBOutlet UIButton *secondBtn;
- @property (weak, nonatomic) IBOutlet UIButton *thirdBtn;
- @property (weak, nonatomic) IBOutlet UITableView *tableView;
- @property (nonatomic, strong) NSArray *dataArr;
- @property (weak, nonatomic) IBOutlet UIView *payView;
- @property (weak, nonatomic) IBOutlet UILabel *payOldLab;
- @property (weak, nonatomic) IBOutlet UILabel *payNewLab;
- @property (weak, nonatomic) IBOutlet UIView *purchasedTagView;
- @property (weak, nonatomic) IBOutlet UIButton *purchasedBtn;
- @property (nonatomic, strong) MOGiftPackList *selectPackListModel;
- @property (weak, nonatomic) IBOutlet UIView *offView;
- @property (weak, nonatomic) IBOutlet UILabel *offNumLab;
- @property (weak, nonatomic) IBOutlet UILabel *offTagLab;
- @property (weak, nonatomic) IBOutlet UIButton *purchasedStatusBtn;
- @end
- @implementation MOFirstRechargeCell
- - (void)awakeFromNib {
- [super awakeFromNib];
- // Initialization code
-
- self.titleLab.font = [MOTextTools getTheFontWithSize:24.0 AndFontName:kNormalTitleFontStr];
- self.topTipLab.font = [MOTextTools getTheFontWithSize:12.0 AndFontName:kNormalTitleFontStr];
-
- [self.fisrtBtn setFont:[MOTextTools getTheFontWithSize:10.0 AndFontName:kNormalContentBlodFontStr]];
- [self.secondBtn setFont:[MOTextTools getTheFontWithSize:10.0 AndFontName:kNormalContentBlodFontStr]];
- [self.thirdBtn setFont:[MOTextTools getTheFontWithSize:10.0 AndFontName:kNormalContentBlodFontStr]];
-
- self.offNumLab.font = [MOTextTools getTheFontWithSize:17.0 AndFontName:kNormalContentFontStr];
- self.offTagLab.font = [MOTextTools getTheFontWithSize:12.0 AndFontName:kNormalContentFontStr];
-
- self.bottomTipLab.font = [MOTextTools getTheFontWithSize:10.0 AndFontName:kNormalContentBlodFontStr];
- self.payOldLab.font = [MOTextTools getTheFontWithSize:16.0 AndFontName:kNormalContentBlodFontStr];
- self.payNewLab.font = [MOTextTools getTheFontWithSize:26.0 AndFontName:kNormalContentBlodFontStr];
- [self.purchasedBtn setFont:[MOTextTools getTheFontWithSize:24.0 AndFontName:kNormalContentFontStr]];
- [self.purchasedStatusBtn setFont:[MOTextTools getTheFontWithSize:10.0 AndFontName:kNormalContentFontStr]];
-
- self.tableView.layer.cornerRadius = 10.0;
- self.tableView.layer.masksToBounds = YES;
-
- self.fisrtBtn.titleEdgeInsets = UIEdgeInsetsMake(0, 0, 5, 0);
- self.secondBtn.titleEdgeInsets = UIEdgeInsetsMake(0, 0, 5, 0);
- self.thirdBtn.titleEdgeInsets = UIEdgeInsetsMake(0, 0, 5, 0);
-
- self.purchasedBtn.titleEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);
- self.purchasedBtn.layer.cornerRadius = 45.0 / 2.0;
- self.purchasedBtn.layer.masksToBounds = YES;
- [self.purchasedBtn setTitle:NSLocalString(@"mimo_first_recharge_purchased") forState:UIControlStateNormal];
-
- self.tableView.delegate = self;
- self.tableView.dataSource = self;
- self.tableView.rowHeight = 58.0;
- self.tableView.estimatedRowHeight = 0;
- self.tableView.estimatedSectionHeaderHeight = 0;
- self.tableView.estimatedSectionFooterHeight = 0;
- //iOS15适配
- if (@available(iOS 15.0, *))
- {
- self.tableView.sectionHeaderTopPadding = 0;
- }
-
- [self.tableView registerNib:[UINib nibWithNibName:@"MOFirstRechargeTableViewCell" bundle:nil] forCellReuseIdentifier:MOFirstRechargeTableViewCell_ID];
-
- [self changePayTypeClick:self.fisrtBtn];
-
- self.offView.hidden = YES;
-
- }
- - (IBAction)payBtnClick:(id)sender {
- //付款按钮
-
- if(self.selectPackListModel){
- if(!self.selectPackListModel.bought){
- //礼包还未购买
- if(self.selectPackListModel.id.length == 0){
- return;
- }
-
- [self payWith:self.selectPackListModel.payCode];
- }
- }
-
- }
- - (void)payWith:(NSString *)productId{
- if(productId.length == 0){
- return;
- }
-
- [MBProgressHUD showActivityMessageInWindow:NSLocalString(@"mimo_money_Purchasing")];
-
- WEAKSELF
- MOInAppPurchaseManager *inAppPurchase = [MOInAppPurchaseManager shareManager];
- [inAppPurchase queryByPuoductId:productId productInfoReuslts:^(SKProductsResponse * _Nonnull resp) {
-
- //如果商品不为空, 则发起请求
- if(resp){
- if(weakSelf.selectPackListModel.id.length > 0){
- NSDictionary *dict = @{@"id":weakSelf.selectPackListModel.id};
- [weakSelf toCreateOrderIdWith:dict];
- }
- else{
- [MBProgressHUD hideHUD];
- }
- }
- else{
- [MBProgressHUD hideHUD];
- }
- }];
-
- inAppPurchase.IAPurchaseResult = ^(MOIAPurchaseStatusType status) {
- MOLogV(@"当前状态是.....%zd",status);
- kMainThreadBlock(^{
- [MBProgressHUD hideHUD];
-
- if(status == MOIAPurchaseSuccess){
- //下方的回调 有购买成功的提示
-
- NSString *userId = GetUserId;
- //首次购买
- // ADJEvent *event = [ADJEvent eventWithEventToken:@"ckukpp"];
- ADJEvent *event = [[ADJEvent alloc] initWithEventToken:@"ckukpp"];
- if(userId.length != 0){
- [event addCallbackParameter:@"userId" value:userId];
- }
- [Adjust trackEvent:event];
-
- //应用内购买 与 充值埋点一样
- // ADJEvent *eventTwo = [ADJEvent eventWithEventToken:@"5fbkeh"];
- ADJEvent *eventTwo = [[ADJEvent alloc] initWithEventToken:@"5fbkeh"];
- if(userId.length != 0){
- [eventTwo addCallbackParameter:@"userId" value:userId];
- }
-
- if(productId.length != 0){
- [eventTwo addCallbackParameter:@"productId" value:productId];
- }
-
- [eventTwo setRevenue:(weakSelf.selectPackListModel.amount ? weakSelf.selectPackListModel.amount : 0.0) currency:@"IDR"];
-
- [Adjust trackEvent:eventTwo];
- }
- else{
- MOTopUpStatusView *view = [MOTopUpStatusView moTopUpStatusView];
- view.viewType = 2;
- [view showTopUpStatusView];
- }
- })
-
- };
-
- inAppPurchase.buyGiftSuccessBlock = ^(MOBuyGiftData * _Nonnull giftData) {
- MOCongratulationsView *view = [MOCongratulationsView moCongratulationsView];
- view.viewData = giftData;
- [view showCongratulationsView];
-
- weakSelf.selectPackListModel.bought = YES;
- [weakSelf updataBuyStatusWith:weakSelf.selectPackListModel];
- };
-
- }
- - (void)toCreateOrderIdWith:(NSDictionary *)dict{
- WEAKSELF
- [kHttpManager toGetTheGiftPackPreOrderWithParams:dict andBlock:^(id _Nonnull data, NSError * _Nonnull error) {
- if(kCode_Success){
- MOLogV(@"%@",[[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:data options:0 error:nil] encoding:NSUTF8StringEncoding]);
-
- [MOInAppPurchaseManager shareManager].orderId = [MODataManager objectOrNilForKey:@"orderId" fromDictionary:data[@"data"]];
-
- [[MOInAppPurchaseManager shareManager] createInPurchasePay];
-
- //预下单
- // ADJEvent *event = [ADJEvent eventWithEventToken:@"gvw84q"];
- ADJEvent *event = [[ADJEvent alloc] initWithEventToken:@"gvw84q"];
- NSString *userId = GetUserId;
- if(userId.length != 0){
- [event addCallbackParameter:@"userId" value:userId];
- }
- [Adjust trackEvent:event];
- }
- else{
- [MBProgressHUD hideHUD];
- MOLogV(@"toGetTheGiftPackPreOrderWithParams 接口报错了");
- kShowNetError(data)
- }
- }];
- }
- - (IBAction)changePayTypeClick:(UIButton *)sender {
-
- CGFloat stackWidth = 300.0 - 40.0 * 2.0;
- CGFloat theSpacing = (stackWidth - 10.0 * 2) / 3.0;
- for (MOGiftPackList *model in self.viewData.giftPackList) {
- model.isChoose = NO;
- }
-
- MOGiftPackList *chooseModel;
- if(sender == self.fisrtBtn){
- self.selectImgCenterX.constant = theSpacing + 10.0;
-
- [self.fisrtBtn setBackgroundImage:[UIImage imageNamed:@""] forState:UIControlStateNormal];
- [self.secondBtn setBackgroundImage:[UIImage imageNamed:@"icon_f_t_u_no_select"] forState:UIControlStateNormal];
- [self.thirdBtn setBackgroundImage:[UIImage imageNamed:@"icon_f_t_u_no_select"] forState:UIControlStateNormal];
-
- if(self.viewData.giftPackList.count >= 1){
- MOGiftPackList *model = self.viewData.giftPackList[0];
- model.isChoose = YES;
- chooseModel = model;
- }
- }
- else if (sender == self.secondBtn){
- self.selectImgCenterX.constant = 0.0;
-
- [self.fisrtBtn setBackgroundImage:[UIImage imageNamed:@"icon_f_t_u_no_select"] forState:UIControlStateNormal];
- [self.secondBtn setBackgroundImage:[UIImage imageNamed:@""] forState:UIControlStateNormal];
- [self.thirdBtn setBackgroundImage:[UIImage imageNamed:@"icon_f_t_u_no_select"] forState:UIControlStateNormal];
-
- if(self.viewData.giftPackList.count >= 2){
- MOGiftPackList *model = self.viewData.giftPackList[1];
- model.isChoose = YES;
- chooseModel = model;
- }
- }
- else if (sender == self.thirdBtn){
-
- self.selectImgCenterX.constant = -theSpacing - 10.0;
-
- [self.fisrtBtn setBackgroundImage:[UIImage imageNamed:@"icon_f_t_u_no_select"] forState:UIControlStateNormal];
- [self.secondBtn setBackgroundImage:[UIImage imageNamed:@"icon_f_t_u_no_select"] forState:UIControlStateNormal];
- [self.thirdBtn setBackgroundImage:[UIImage imageNamed:@""] forState:UIControlStateNormal];
-
- if(self.viewData.giftPackList.count == 3){
- MOGiftPackList *model = self.viewData.giftPackList[2];
- model.isChoose = YES;
- chooseModel = model;
- }
- }
-
- if(chooseModel){
- [self updataBuyStatusWith:chooseModel];
- }
-
- [UIView animateWithDuration:0.3 animations:^{
- [self layoutIfNeeded];
- }];
-
- }
- - (IBAction)ruleBtnClick:(id)sender {
- //规则
- MOFirstRechargeRulesView *view = [MOFirstRechargeRulesView moFirstRechargeRulesView];
- [view showFirstRechargeRulesView];
- }
- #pragma mark - UITableViewDelegate,UITableViewDataSource
- - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
- return 1;
- }
- - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
- return self.dataArr.count;
- }
- - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
- MOGiftPackItems *model = self.dataArr[indexPath.row];
- MOFirstRechargeTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MOFirstRechargeTableViewCell_ID];
- cell.bought = self.selectPackListModel.bought;
- cell.cellModel = model;
- return cell;
- }
- - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
- [tableView deselectRowAtIndexPath:indexPath animated:YES];
- }
- - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
- UIView *view = [[UIView alloc] init];
- view.backgroundColor = [UIColor clearColor];
- return view;
- }
- - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
-
- return 0.01;
- }
- - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
-
- return 0.01;
- }
- - (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{
- UIView *view = [[UIView alloc] init];
- view.backgroundColor = [UIColor clearColor];
- return view;
- }
- - (void)toGetViewData{
- if(!self.viewData){
- [self toGetTheGiftPackInfoListData];
- }
- else{
- [self updataAllView];
- }
-
- [self.tableView reloadData];
- }
- #pragma mark - Http
- - (void)toGetTheGiftPackInfoListData{
- WEAKSELF
- [kHttpManager toGetTheGiftPackListWithParams:nil andBlock:^(id _Nonnull data, NSError * _Nonnull error) {
- if(kCode_Success){
- MOLogV(@"%@",[[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:data options:0 error:nil] encoding:NSUTF8StringEncoding]);
- weakSelf.viewData = [MOGiftPackData modelObjectWithDictionary:data[@"data"]];
- weakSelf.viewDataBlock ? weakSelf.viewDataBlock(weakSelf.viewData) : nil;
- [weakSelf updataAllView];
- }
- else{
- MOLogV(@"toGetTheGiftPackListWithParams 接口报错了");
- kShowNetError(data)
- }
- }];
- }
- - (void)updataAllView{
- self.titleLab.text = self.viewData.title;
- if(self.viewData.giftPackList.count == 2){
- self.thirdBtn.hidden = YES;
- }
-
- if(self.viewData.giftPackList.count == 1){
- self.thirdBtn.hidden = YES;
- self.secondBtn.hidden = YES;
- }
-
- if(self.viewData.giftPackList.count >= 1){
-
- NSInteger selectIndex = 0;
- for (MOGiftPackList *model in self.viewData.giftPackList) {
- if(model.isChoose){
- break;
- }
- selectIndex ++;
- }
-
- if(selectIndex > (self.viewData.giftPackList.count - 1)){
- [self changePayTypeClick:self.fisrtBtn];
- }
- else{
- if(selectIndex == 0){
- [self changePayTypeClick:self.fisrtBtn];
- }
- else if (selectIndex == 1){
- [self changePayTypeClick:self.secondBtn];
- }
- else if (selectIndex == 2){
- [self changePayTypeClick:self.thirdBtn];
- }
- }
- }
-
-
- for (int x = 0; x < self.viewData.giftPackList.count; x ++) {
- MOGiftPackList *dataModel = self.viewData.giftPackList[x];
-
- if(x == 0){
- [self.fisrtBtn setTitle:[NSString stringWithFormat:@"%.f USD",dataModel.amount] forState:UIControlStateNormal];
- }
- else if (x == 1){
- [self.secondBtn setTitle:[NSString stringWithFormat:@"%.f USD",dataModel.amount] forState:UIControlStateNormal];
- }
- else if (x == 2){
- [self.thirdBtn setTitle:[NSString stringWithFormat:@"%.f USD",dataModel.amount] forState:UIControlStateNormal];
- }
- }
-
-
- }
- - (void)updataBuyStatusWith:(MOGiftPackList *)packModel{
-
- self.selectPackListModel = packModel;
-
- self.dataArr = [packModel.giftPackItems copy];
- [self.tableView reloadData];
-
- if(packModel.bought){
- self.purchasedTagView.hidden = NO;
- self.purchasedBtn.hidden = NO;
- self.oneTimeImgView.hidden = YES;
- self.payView.hidden = YES;
-
- self.offView.hidden = YES;
- }
- else{
- self.purchasedTagView.hidden = YES;
- self.purchasedBtn.hidden = YES;
- self.oneTimeImgView.hidden = NO;
- self.payView.hidden = NO;
-
- self.offView.hidden = NO;
- }
-
- NSString *oldText = [MOTextTools formatNumberDecimalValue:packModel.costPrice];
- self.payOldLab.text = [NSString stringWithFormat:@"%@ USD",oldText];
-
- NSString *newText = [MOTextTools formatNumberDecimalValue:packModel.amount];
- self.payNewLab.text = [NSString stringWithFormat:@"%@ USD",newText];
-
- if(packModel.costPrice > 0){
- NSInteger offNum = (packModel.costPrice - packModel.amount) / packModel.costPrice * 100;
- self.offNumLab.text = [NSString stringWithFormat:@"%zd%%",offNum];
- }
-
-
- }
- @end
|