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

#import "IntegralDetailsViewController.h"
10 11
#import "IntegralDetailsTableViewCell.h"
#import "prizeDetailsTableViewCell.h"
曹云霄's avatar
曹云霄 committed
12
#import "PrizeExchangeDetailsViewController.h"
13

14
@interface IntegralDetailsViewController ()<UITableViewDelegate,UITableViewDataSource,DZNEmptyDataSetSource,DZNEmptyDataSetDelegate>
15 16 17 18
/**
 数据源
 */
@property (nonatomic,strong) NSMutableArray *datasArray;
19

20 21 22 23
/**
 顶部约束
 */
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *topConstraint;
曹云霄's avatar
曹云霄 committed
24

25 26 27 28
@end

@implementation IntegralDetailsViewController

29 30 31 32 33
- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    [self setUpRefreshAction];
}
34

35 36
- (void)viewDidLoad {
    [super viewDidLoad];
37 38
    
    [self uiConfigAction];
39 40
}

41 42 43
#pragma mark - UI
- (void)uiConfigAction
{
曹云霄's avatar
曹云霄 committed
44
    self.integralDetailsTableView.rowHeight = (self.cellType == PrizeTableView)?90:70;
45
    self.integralDetailsTableView.tableFooterView = [UIView new];
46
    if (self.cellType == PrizeTableView) {
47
        self.topConstraint.constant = NavigationHeight;
曹云霄's avatar
曹云霄 committed
48 49
        self.integralDetailsTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
        self.integralDetailsTableView.backgroundColor = RGB(237, 238, 239, 1);
50
    }
51 52 53 54 55 56 57 58 59
}

#pragma mark - 设置刷新
- (void)setUpRefreshAction
{
    WS(weakSelf);
    MjRefreshHeaderCustom *headerRefresh = [MjRefreshHeaderCustom headerWithRefreshingBlock:^{
        [weakSelf.integralDetailsTableView.mj_footer resetNoMoreData];
        switch (weakSelf.cellType) {
60
            case IntrgralTableView:
61
            {
62
                [weakSelf.integralDetailsTableView.mj_footer resetNoMoreData];
63 64 65
                [weakSelf queryIntegralDetails:YES];
            }
                break;
66
            case PrizeTableView:
67 68 69 70 71 72 73 74 75 76 77 78
            {
                [weakSelf queryPrizeDetails:YES];
            }
                break;
                
            default:
                break;
        }
    }];
    headerRefresh.stateLabel.hidden = YES;
    headerRefresh.lastUpdatedTimeLabel.hidden = YES;
    self.integralDetailsTableView.mj_header = headerRefresh;
曹云霄's avatar
曹云霄 committed
79
     [self.integralDetailsTableView.mj_header beginRefreshing];
80 81
    MJRefreshAutoNormalFooter *footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
        switch (weakSelf.cellType) {
82
            case IntrgralTableView:
83
            {
84
                [weakSelf.integralDetailsTableView.mj_footer endRefreshingWithNoMoreData];
85 86
            }
                break;
87
            case PrizeTableView:
88
            {
曹云霄's avatar
曹云霄 committed
89
                [weakSelf.integralDetailsTableView.mj_footer endRefreshingWithNoMoreData];
90 91 92 93 94 95 96 97 98
            }
                break;
                
            default:
                break;
        }
    }];
    footer.automaticallyHidden = YES;
    self.integralDetailsTableView.mj_footer = footer;
99
}
100 101 102 103
#pragma mark - 查询积分明细
- (void)queryIntegralDetails:(BOOL)isRemove
{
    WS(weakSelf);
104
    [XBLoadingView showHUDViewWithDefault];;
105
    NSString *url = [NSString stringWithFormat:SERVERREQUESTURL(INTEGRALQUERY),[Shoppersmanager manager].shoppers.employee.fid];
曹云霄's avatar
曹云霄 committed
106
    [HTTP networkWithDictionaryRequestWithURL:url withRequestType:ONE withParameter:nil withReturnValueBlock:^(id returnValue) {
107
        
108
        [XBLoadingView hideHUDViewWithDefault];
109
        [weakSelf endRefreshingForTableView:weakSelf.integralDetailsTableView];
110 111
        weakSelf.integralDetailsTableView.emptyDataSetSource = weakSelf;
        weakSelf.integralDetailsTableView.emptyDataSetDelegate = weakSelf;
曹云霄's avatar
曹云霄 committed
112
        if (RESULT(returnValue)) {
113 114 115
            if (isRemove) {
                [weakSelf.datasArray removeAllObjects];
            }
曹云霄's avatar
曹云霄 committed
116
            RsScoreDetails *integralDatas = [[RsScoreDetails alloc]initWithDictionary:RESPONSE(returnValue) error:nil];
117 118 119 120 121
            [weakSelf.datasArray addObjectsFromArray:integralDatas.recoreds];
            if (weakSelf.returnIntegralDetailsBlock) {
                weakSelf.returnIntegralDetailsBlock(integralDatas);
            }
        }else {
122
            [XBLoadingView showHUDViewWithText:MESSAGE(returnValue)];
123 124 125
        }
        [weakSelf.integralDetailsTableView reloadData];
        
126
    }withFailureBlock:^(NSError *error) {
127
        [weakSelf endRefreshingForTableView:weakSelf.integralDetailsTableView];
128
        [XBLoadingView showHUDViewWithText:error.localizedDescription];
129 130 131 132 133 134
    }];
}

#pragma mark - 查询兑奖明细
- (void)queryPrizeDetails:(BOOL)isRemove
{
135
    WS(weakSelf);
136
    [XBLoadingView showHUDViewWithDefault];;
137
    NSString *url = [NSString stringWithFormat:SERVERREQUESTURL(ALLEXCHANGERECORD),[Shoppersmanager manager].shoppers.employee.fid];
曹云霄's avatar
曹云霄 committed
138
    [HTTP networkWithDictionaryRequestWithURL:url withRequestType:ONE withParameter:nil withReturnValueBlock:^(id returnValue) {
139
        
140
        [XBLoadingView hideHUDViewWithDefault];
141 142 143
        [weakSelf endRefreshingForTableView:weakSelf.integralDetailsTableView];
        weakSelf.integralDetailsTableView.emptyDataSetSource = weakSelf;
        weakSelf.integralDetailsTableView.emptyDataSetDelegate = weakSelf;
曹云霄's avatar
曹云霄 committed
144
        if (RESULT(returnValue)) {
曹云霄's avatar
曹云霄 committed
145 146
            if (isRemove) {
                [weakSelf.datasArray removeAllObjects];
147
            }
曹云霄's avatar
曹云霄 committed
148
            RsPrizeBillResponse *integralDatas = [[RsPrizeBillResponse alloc]initWithDictionary:RESPONSE(returnValue) error:nil];
曹云霄's avatar
曹云霄 committed
149
            [weakSelf.datasArray addObjectsFromArray:integralDatas.bills];
150
        }else {
151
            [XBLoadingView showHUDViewWithText:MESSAGE(returnValue)];
152 153 154
        }
        [weakSelf.integralDetailsTableView reloadData];
        
155
    } withFailureBlock:^(NSError *error) {
156
        [weakSelf endRefreshingForTableView:weakSelf.integralDetailsTableView];
157
        [XBLoadingView showHUDViewWithText:error.localizedDescription];
158
    }];
159 160 161 162 163
}

#pragma mark - <UITableViewDataSource,UITableViewDelegate>
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
164 165 166 167 168 169 170 171 172 173 174 175
    switch (self.cellType) {
        case IntrgralTableView:
        {
            IntegralDetailsTableViewCell *integralCell = [tableView dequeueReusableCellWithIdentifier:@"IntegralDetailsTableViewCell" forIndexPath:indexPath];
            integralCell.integralEntity = self.datasArray[indexPath.row];
            integralCell.selectionStyle = UITableViewCellSelectionStyleNone;
            return integralCell;
        }
            break;
        case PrizeTableView:
        {
            prizeDetailsTableViewCell *prizeCell = [tableView dequeueReusableCellWithIdentifier:@"prizeDetailsTableViewCell" forIndexPath:indexPath];
曹云霄's avatar
曹云霄 committed
176 177
            prizeCell.prizeListModel = self.datasArray[indexPath.row];
            prizeCell.backgroundColor = [UIColor clearColor];
178 179 180 181 182 183 184 185
            return prizeCell;
        }
            break;
            
        default:
            break;
    }
    return nil;
186 187 188 189 190 191 192 193 194
}

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

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
曹云霄's avatar
曹云霄 committed
195 196 197 198
    switch (self.cellType) {
        case PrizeTableView:
        {
            PrizeExchangeDetailsViewController *exchangeDetails = [[[self class] getGuideIntegralStoryboardClass] instantiateViewControllerWithIdentifier:@"PrizeExchangeDetailsViewController"];
199 200
            RsPrizeBill *bill = self.datasArray[indexPath.row];
            exchangeDetails.isDelivery = ![bill.bill.state isEqualToString:TOPRIZEBILLENTITYSTATE_REQUESTED];
201
            exchangeDetails.prizeBillNumber = bill.bill.billnumber;
曹云霄's avatar
曹云霄 committed
202 203 204 205 206 207 208
            [self.navigationController pushViewController:exchangeDetails animated:YES];
        }
            break;
            
        default:
            break;
    }
209 210
}

211 212 213 214 215 216 217 218 219 220
#pragma mark -友好界面
- (UIImage *)imageForEmptyDataSet:(UIScrollView *)scrollView
{
    return kNoDataImage;
}

- (BOOL)emptyDataSetShouldAllowScroll:(UIScrollView *)scrollView
{
    return YES;
}
221

222 223 224 225
- (NSAttributedString *)titleForEmptyDataSet:(UIScrollView *)scrollView
{
    return [[NSAttributedString alloc]initWithString:@"暂无数据~" attributes:nil];
}
226 227


228 229 230 231 232 233 234
#pragma mark - lazy
- (NSMutableArray *)datasArray
{
    if (!_datasArray) {
        _datasArray = [NSMutableArray array];
    }
    return _datasArray;
235 236 237
}

@end