CardDontUseViewController.m 11.6 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 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 40 41 42 43 44
//
//  CardDontUseViewController.m
//  Lighting
//
//  Created by 曹云霄 on 2016/10/19.
//  Copyright © 2016年 上海勾芒科技有限公司. All rights reserved.
//

#import "CardDontUseViewController.h"
#import "CardCollectionViewCell.h"
#import "CardOrderInformationReusableView.h"
#import "DeviceDirectionManager.h"
#import "CardAmplificationViewController.h"

@interface CardDontUseViewController ()<UICollectionViewDataSource,UICollectionViewDelegate,UploadReceiptsDelegate,UINavigationControllerDelegate,UIImagePickerControllerDelegate,DZNEmptyDataSetSource,DZNEmptyDataSetDelegate>


@property (nonatomic,strong) RsJingDongECardRequest *requestModel;

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

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

/**
 *  记录上传小票时的订单号
 */
@property (nonatomic,copy) NSString *orderNumber;

@end

@implementation CardDontUseViewController

#pragma mark - lazy
- (RsJingDongECardRequest *)requestModel
{
    if (!_requestModel) {
        _requestModel = [[RsJingDongECardRequest alloc]init];
        DataPage *page = [[DataPage alloc]init];
45
        page.page = ZERO;
46
        page.rows = KROWS;
47 48
        page.order = @"desc";
        _requestModel.guideIdEquals = [Shoppersmanager manager].Shoppers.employee.fid;
曹云霄's avatar
曹云霄 committed
49
        _requestModel.stateEquals = DISPENSED;
50 51 52 53 54 55 56 57 58 59 60 61 62
        _requestModel.page = page;
    }
    return _requestModel;
}

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

曹云霄's avatar
曹云霄 committed
63 64
- (void)viewDidAppear:(BOOL)animated
{
65 66 67 68
    [super viewDidAppear:animated];
    if (!self.isRefreshValue) {
        [self.dontUseCardCollectionView.mj_header beginRefreshing];
    }
曹云霄's avatar
曹云霄 committed
69 70
}

71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
- (void)viewDidLoad {
    [super viewDidLoad];
    
    [self setupCollectionView];
    [self setupRefreshAction];
}

#pragma mark - UICollectionView
- (void)setupCollectionView
{
    self.dontUseFlowLayout.itemSize = CGSizeMake((ScreenWidth-48-20*4)/3, 200);
    self.dontUseFlowLayout.sectionInset = UIEdgeInsetsMake(20, 20, 20, 20);
    self.dontUseFlowLayout.minimumLineSpacing = 20;
    self.dontUseFlowLayout.minimumInteritemSpacing = 20;
    [self.dontUseCardCollectionView registerNib:[UINib nibWithNibName:@"CardOrderInformationReusableView" bundle:nil] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"CardOrderInformationReusableView"];
}

#pragma mark - 设置刷新
- (void)setupRefreshAction
{
    WS(weakSelf);
    MjRefreshHeaderCustom *headerRefresh = [MjRefreshHeaderCustom headerWithRefreshingBlock:^{
93
        weakSelf.requestModel.page.page = ZERO;
94 95 96 97 98 99 100 101
        [weakSelf.dontUseCardCollectionView.mj_footer resetNoMoreData];
        [weakSelf getCardDatasAction:YES];
    }];
    headerRefresh.stateLabel.hidden = YES;
    headerRefresh.lastUpdatedTimeLabel.hidden = YES;
    self.dontUseCardCollectionView.mj_header = headerRefresh;
    
    MJRefreshAutoNormalFooter *footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
102
        if (++ weakSelf.requestModel.page.page > weakSelf.totalPage) {
103 104 105 106 107 108 109 110 111 112 113 114 115 116
            [weakSelf.dontUseCardCollectionView.mj_footer endRefreshingWithNoMoreData];
        }else
        {
            [weakSelf getCardDatasAction:NO];
        }
    }];
    footer.automaticallyHidden = YES;
    self.dontUseCardCollectionView.mj_footer = footer;
}

#pragma mark - 获取未使用卡劵
- (void)getCardDatasAction:(BOOL)isRemove
{
    WS(weakSelf);
曹云霄's avatar
曹云霄 committed
117
    [XBLoadingView showHUDViewWithDefault];
118
    NSLog(@"%@",[self.requestModel toDictionary]);
119
    [[NetworkRequestClassManager Manager] NetworkRequestWithURL:SERVERREQUESTURL(CARDINFORMATION)  WithRequestType:ZERO WithParameter:self.requestModel WithReturnValueBlock:^(id returnValue) {
120
        
曹云霄's avatar
曹云霄 committed
121
        [XBLoadingView hideHUDViewWithDefault];
122 123
        weakSelf.dontUseCardCollectionView.emptyDataSetSource = weakSelf;
        weakSelf.dontUseCardCollectionView.emptyDataSetDelegate = weakSelf;
124 125 126
        [weakSelf endRefreshingForTableView:weakSelf.dontUseCardCollectionView];
        if ([returnValue[@"code"] isEqualToNumber:@0]) {
            RsJingDongECardResponse *cardInformation = [[RsJingDongECardResponse alloc]initWithDictionary:returnValue[@"data"] error:nil];
127
            if (isRemove) {
曹云霄's avatar
曹云霄 committed
128 129
                [weakSelf.datasArray removeAllObjects];
            }
130
            weakSelf.totalPage = cardInformation.totalpages;
131
            [weakSelf.datasArray addObjectsFromArray:[NSMutableArray arrayWithArray:cardInformation.list]];
132 133
            [weakSelf.dontUseCardCollectionView reloadData];
        }else{
曹云霄's avatar
曹云霄 committed
134
            [XBLoadingView showHUDViewWithText:returnValue[@"message"]];
135
        }
136
    }WithFailureBlock:^(NSError *error) {
137
        [weakSelf endRefreshingForTableView:weakSelf.dontUseCardCollectionView];
曹云霄's avatar
曹云霄 committed
138
        [XBLoadingView showHUDViewWithText:error.localizedDescription];
139 140 141 142 143
    }];
}

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
曹云霄's avatar
曹云霄 committed
144
    CardCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"CardCollectionViewCell" forIndexPath:indexPath];
145 146
    GroupByOrderNumber *model = self.datasArray[indexPath.section];
    cell.Cardmodel = model.eCards[indexPath.row];
147 148 149 150 151 152
    return cell;
}

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
    GroupByOrderNumber *model = self.datasArray[section];
153
    return model.eCards.count;
154 155 156 157
}

- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{
曹云霄's avatar
曹云霄 committed
158 159 160 161 162
    CardOrderInformationReusableView *headerView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"CardOrderInformationReusableView" forIndexPath:indexPath];
    headerView.delegate = self;
    headerView.model = self.datasArray[indexPath.section];
    headerView.sectionIndex = indexPath.section;
    return headerView;
163 164 165 166 167 168 169 170 171 172 173 174 175 176
}

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section
{
    return CGSizeMake(0, 65);
}

- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
    return self.datasArray.count;
}

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
177 178
    GroupByOrderNumber *model = self.datasArray[indexPath.section];
    if ([[self class] isBlankString:model.orderReceiptUrl]) {
曹云霄's avatar
曹云霄 committed
179
        [XBLoadingView showHUDViewWithText:@"不能查看未激活卡劵,请先上传小票激活卡劵"];
180
    }
181 182 183 184 185 186
}


#pragma mark - <UploadReceiptsDelegate>
- (void)startUploadReceipts:(NSInteger)sectionIndex
{
187
    WS(weakSelf);
188 189 190 191 192 193 194 195 196 197
    self.orderNumber = [self.datasArray[sectionIndex] orderNumber];
    UIAlertController *alertView = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleAlert];
    UIImagePickerController *PcCamera = [[UIImagePickerController alloc]init];
    PcCamera.delegate = self;
    [DeviceDirectionManager instance].isHorizontal=YES;
    [alertView addAction:[UIAlertAction actionWithTitle:@"拍照" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
        //拍照
        if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
            [PcCamera setSourceType:UIImagePickerControllerSourceTypeCamera];
            PcCamera.allowsEditing = YES;
198
            [weakSelf presentViewController:PcCamera animated:YES completion:nil];
199 200 201 202
        }
        else
        {
            [DeviceDirectionManager instance].isHorizontal=NO;
曹云霄's avatar
曹云霄 committed
203
            [XBLoadingView showHUDViewWithText:@"相机无法使用"];
204 205 206 207 208 209 210
        }
    }]];
    [alertView addAction:[UIAlertAction actionWithTitle:@"从相册选择" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
        //从相册中选择
        if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
            [PcCamera setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
            PcCamera.allowsEditing = YES;
211
            [weakSelf presentViewController:PcCamera animated:YES completion:nil];
212 213 214 215
        }
        else
        {
            [DeviceDirectionManager instance].isHorizontal=NO;
曹云霄's avatar
曹云霄 committed
216
            [XBLoadingView showHUDViewWithText:@"相册无法打开"];
217 218 219 220 221 222
        }
    }]];
    [alertView addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
        [DeviceDirectionManager instance].isHorizontal=NO;
        [alertView dismissViewControllerAnimated:YES completion:nil];
    }]];
223
    self.isRefreshValue = YES;
224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241
    [self presentViewController:alertView animated:YES completion:nil];
}

#pragma mark -拍照、从相册选择
#pragma -mark -UIImagePickerControllerDelegate
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info
{
    [DeviceDirectionManager instance].isHorizontal=NO;
    [self dismissViewControllerAnimated:YES completion:nil];
    UIImage *Headimage = [info objectForKey:UIImagePickerControllerOriginalImage];
    [self uploadReceipts:Headimage];
}

#pragma mark -上传小票
- (void)uploadReceipts:(UIImage *)image
{
    WS(weakSelf);
    NSData *data = UIImageJPEGRepresentation(image, 0.5);
曹云霄's avatar
曹云霄 committed
242
    XBLoadingView *progressView = [XBLoadingView showHUDViewProgressLabel:@"上传小票中"];
曹云霄's avatar
曹云霄 committed
243
    [[NetworkRequestClassManager Manager] UploadImageWithURL:SERVERREQUESTURL(UPLOADHEADER) WithRequestType:ONE WithImageDatas:data WithParameter:nil WithReturnValueBlock:^(id returnValue) {
244 245 246 247 248
        
        if ([returnValue[@"code"] isEqualToNumber:@0]) {
            [weakSelf activationJDECard:returnValue[@"data"]];
        }else
        {
曹云霄's avatar
曹云霄 committed
249
            [XBLoadingView showHUDViewWithText:returnValue[@"message"]];
250 251
        }
    } WithprogressBlock:^(double progress) {
曹云霄's avatar
曹云霄 committed
252 253 254 255 256 257
        if (progress >= 1) {
            progressView.labelText = @"上传小票成功";
            [progressView hide:YES afterDelay:1];
        }else {
            progressView.progress = progress;
        }
258
    } WithFailureBlock:^(NSError *error) {
曹云霄's avatar
曹云霄 committed
259
        [XBLoadingView showHUDViewWithText:error.localizedDescription];
260 261 262 263 264 265 266
    }];
}

#pragma mark - 激活京东E卡
- (void)activationJDECard:(NSString *)imagePath
{
    WS(weakSelf);
曹云霄's avatar
曹云霄 committed
267
    [XBLoadingView showHUDViewWithDefault];
268
    [[NetworkRequestClassManager Manager] NetworkWithDictionaryRequestWithURL:[NSString stringWithFormat:SERVERREQUESTURL(ACTIVIATIONJDECARD),self.orderNumber,imagePath]  WithRequestType:ZERO WithParameter:nil WithReturnValueBlock:^(id returnValue) {
269
        
曹云霄's avatar
曹云霄 committed
270
        [XBLoadingView hideHUDViewWithDefault];
271
        if ([returnValue[@"code"] isEqualToNumber:@0]) {
272 273
            weakSelf.isRefreshValue = NO;
            [weakSelf.dontUseCardCollectionView.mj_header beginRefreshing];
曹云霄's avatar
曹云霄 committed
274
            [XBLoadingView showHUDViewWithSuccessText:@"激活成功"];
曹云霄's avatar
曹云霄 committed
275
            
276
        }else{
曹云霄's avatar
曹云霄 committed
277
            [XBLoadingView showHUDViewWithText:returnValue[@"message"]];
278 279
        }
    } WithFailureBlock:^(NSError *error) {
曹云霄's avatar
曹云霄 committed
280
        [XBLoadingView showHUDViewWithText:error.localizedDescription];
281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306
    }];
}

#pragma mark -友好界面
- (UIImage *)imageForEmptyDataSet:(UIScrollView *)scrollView
{
    return kNoDataImage;
}

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

- (NSAttributedString *)titleForEmptyDataSet:(UIScrollView *)scrollView
{
    return [[NSAttributedString alloc]initWithString:@"暂无数据" attributes:nil];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}



@end