LuckyDrawDetailsViewController.m 7.32 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12
//
//  LuckyDrawDetailsViewController.m
//  Lighting
//
//  Created by 曹云霄 on 2016/11/6.
//  Copyright © 2016年 上海勾芒科技有限公司. All rights reserved.
//

#import "LuckyDrawDetailsViewController.h"
#import "NotDrawTableViewCell.h"
#import "CustomWKWebViewController.h"
#import "UsedDrawTableViewCell.h"
13
#import "PromotionLuckDrawResultModel.h"
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39


@interface LuckyDrawDetailsViewController ()<UITableViewDataSource,UITableViewDelegate,DZNEmptyDataSetSource,DZNEmptyDataSetDelegate>


@property (nonatomic,strong) RsLotteryRequest *drawModel;

/**
 *  总页数
 */
@property (nonatomic,assign) NSInteger totalPage;

/**
 *  数据源
 */
@property (nonatomic,strong) NSMutableArray *datasArray;

@end

@implementation LuckyDrawDetailsViewController

#pragma mark - lazy
- (RsLotteryRequest *)drawModel
{
    if (!_drawModel) {
        _drawModel = [[RsLotteryRequest alloc]init];
40
        _drawModel.winnerIdEquals = [Shoppersmanager manager].shoppers.employee.fid;
41
        DataPage *page = [[DataPage alloc]init];
曹云霄's avatar
曹云霄 committed
42
        page.rows = KROWS;
43
        page.page = ONE;
曹云霄's avatar
曹云霄 committed
44
        page.order = SORTDIRECTION_DESC;
45 46
        _drawModel.page = page;
        switch (self.drawValue) {
47
            case ALLDRAW:
48 49 50 51
            {
                _drawModel.stateEquals = nil;
            }
                break;
52
            case NOTDRAW:
53 54 55 56
            {
                _drawModel.stateEquals = INITIAL;
            }
                break;
57
            case USEDDRAW:
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
            {
                _drawModel.stateEquals = ACCOMPLISHED;
            }
                break;
            default:
                break;
        }
    }
    return _drawModel;
}

- (NSMutableArray *)datasArray
{
    if (!_datasArray) {
        _datasArray = [NSMutableArray array];
    }
    return _datasArray;
}

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
曹云霄's avatar
曹云霄 committed
80
    [self.drawDetailsTableView.mj_header beginRefreshing];
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
}

- (void)viewDidLoad {
    [super viewDidLoad];
    
    [self uiConfigAction];
    [self setupRefreshAction];
}

#pragma mark - UI
- (void)uiConfigAction
{
    self.drawDetailsTableView.tableFooterView = [UIView new];
    self.drawDetailsTableView.delegate = self;
    self.drawDetailsTableView.dataSource = self;
}

#pragma mark - 设置刷新
- (void)setupRefreshAction
{
    WS(weakSelf);
    MjRefreshHeaderCustom *headerRefresh = [MjRefreshHeaderCustom headerWithRefreshingBlock:^{
103
        weakSelf.drawModel.page.page = ONE;
104 105 106 107 108 109 110
        [weakSelf.drawDetailsTableView.mj_footer resetNoMoreData];
        [weakSelf getDrawDatas:YES];
    }];
    headerRefresh.stateLabel.hidden = YES;
    headerRefresh.lastUpdatedTimeLabel.hidden = YES;
    self.drawDetailsTableView.mj_header = headerRefresh;
    MJRefreshAutoNormalFooter *footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
111
        if (++ weakSelf.drawModel.page.page > weakSelf.totalPage) {
112 113 114 115 116 117 118 119 120 121 122 123 124 125
            [weakSelf.drawDetailsTableView.mj_footer endRefreshingWithNoMoreData];
        }else
        {
            [weakSelf getDrawDatas:NO];
        }
    }];
    footer.automaticallyHidden = YES;
    self.drawDetailsTableView.mj_footer = footer;
}

#pragma mark - 抽奖数据
- (void)getDrawDatas:(BOOL)isRemove
{
    WS(weakSelf);
126
    [XBLoadingView showHUDViewWithDefaultWithView:self.view];
曹云霄's avatar
曹云霄 committed
127
    [HTTP networkRequestWithURL:SERVERREQUESTURL(LOTTERYED) withRequestType:ZERO withParameter:self.drawModel withReturnValueBlock:^(id returnValue) {
128 129 130 131
        
        [weakSelf endRefreshingForTableView:weakSelf.drawDetailsTableView];
        weakSelf.drawDetailsTableView.emptyDataSetSource = weakSelf;
        weakSelf.drawDetailsTableView.emptyDataSetDelegate = weakSelf;
132
        [XBLoadingView hideHUDViewWithDefaultWithView:weakSelf.view];
曹云霄's avatar
曹云霄 committed
133
        if (RESULT(returnValue)) {
134 135 136
            if (isRemove) {
                [weakSelf.datasArray removeAllObjects];
            }
曹云霄's avatar
曹云霄 committed
137
            RsLotteryResponse *drawRecord = [[RsLotteryResponse alloc]initWithDictionary:RESPONSE(returnValue) error:nil];
138
            [weakSelf.datasArray addObjectsFromArray:drawRecord.list];
曹云霄's avatar
曹云霄 committed
139
            weakSelf.totalPage = [RESPONSE(returnValue)[@"totalpages"] integerValue];
140 141
            [weakSelf.drawDetailsTableView reloadData];
        }else {
142
            [XBLoadingView showHUDViewWithText:MESSAGE(returnValue)];
143
        }
144
    } withFailureBlock:^(NSError *error) {
145 146
        [weakSelf endRefreshingForTableView:weakSelf.drawDetailsTableView];
        [XBLoadingView hideHUDViewWithDefaultWithView:weakSelf.view];
曹云霄's avatar
曹云霄 committed
147
        [XBLoadingView showHUDViewWithText:error.localizedDescription];
148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
    }];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    RsAwardDraw *drawEntity = self.datasArray[indexPath.row];
    if ([drawEntity.draw.state isEqualToString:@"initial"]) {
        NotDrawTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"NotDrawTableViewCell" forIndexPath:indexPath];
        cell.orderNumberLabel.text = drawEntity.draw.orderNumber;
        cell.drawButton.tag = indexPath.row;
        [cell.drawButton addTarget:self action:@selector(drawButtonClickAction:) forControlEvents:UIControlEventTouchUpInside];
        return cell;
    }
    UsedDrawTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UsedDrawTableViewCell" forIndexPath:indexPath];
    cell.orderNumber.text = drawEntity.draw.orderNumber;
163
    cell.drawTimeLabel.text = drawEntity.draw.drawDate;
164 165 166 167 168 169 170 171 172 173 174 175 176 177 178
    cell.trophyLabel.text = drawEntity.draw.awardDescription;
    return cell;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return self.datasArray.count;
}

#pragma mark - 去抽奖
- (void)drawButtonClickAction:(UIButton *)sender
{
    RsAwardDraw *drawEntity = self.datasArray[sender.tag];
    [self showLuckyDrawControl:drawEntity.draw.lotteryId andOrderNumber:drawEntity.draw.orderNumber andDrawid:drawEntity.draw.fid luckyDrawFinish:^(NSDictionary *dict) {
        
179 180
        if ([dict isKindOfClass:[NSDictionary class]]) {
            if ([BaseViewController isBlankString:dict[@"awardId"]]) {
曹云霄's avatar
曹云霄 committed
181
                [XBLoadingView showHUDViewWithText:@"未中奖"];
182
            }else {
曹云霄's avatar
曹云霄 committed
183
                [XBLoadingView showHUDViewWithText:[NSString stringWithFormat:@"恭喜你获得了 %@",dict[@"description"]]];
184 185 186 187 188 189 190 191 192 193 194
            }
        }
    }];
}

#pragma mark - 抽奖界面
- (void)showLuckyDrawControl:(NSString *)lotteryId andOrderNumber:(NSString *)orderNumber andDrawid:(NSString *)drawid luckyDrawFinish:(void(^)(NSDictionary *dict))complete
{
    CustomWKWebViewController *wkWebView = [[CustomWKWebViewController alloc]init];
    NSString *server = [NSString stringWithFormat:SERVERREQUESTURL(DRAW),lotteryId,drawid,orderNumber];
    NSString *newServer = [server stringByReplacingOccurrencesOfString:@"/app" withString:@""];
曹云霄's avatar
曹云霄 committed
195
    wkWebView.urlString = newServer;
196 197 198 199 200 201 202 203 204 205 206
    [wkWebView setLuckyDrawFinishBlock:^(NSDictionary *result) {
        complete(result);
    }];
    [wkWebView setDismissLuckyDrawController:^{
        
    }];
    [self presentViewController:wkWebView animated:YES completion:nil];
}


#pragma mark -友好界面
207
- (NSAttributedString *)titleForEmptyDataSet:(UIScrollView *)scrollView
208
{
209
    return [[NSAttributedString alloc]initWithString:@"暂无抽奖记录~" attributes:nil];
210 211
}

212
- (UIImage *)imageForEmptyDataSet:(UIScrollView *)scrollView
213
{
214
    return kNoDataImage;
215 216
}

217
- (CGFloat)verticalOffsetForEmptyDataSet:(UIScrollView *)scrollView
218
{
219
    return 64;
220 221 222 223
}


@end