// // FKEditIdCardItem.m // FirstLink // // Created by jack on 15/11/2. // Copyright © 2015年 FirstLink. All rights reserved. // #import "FKIdCardCenter.h" #import "MWIDCardValidate.h" #import "UploadFileModel.h" #import "FKAddIdCardCenter.h" #import "FKEditIdCardCenter.h" #import "FKPacketIdCardCenter.h" #import "FKOrderIdCardCenter.h" @interface FKIdCardCenter () @end @implementation FKIdCardCenter - (instancetype)init{ if (self = [super init]) { self.selectedIndex = 0; } return self; } - (void)removeImgAtLocation:(BOOL)isFace{ if (isFace) { self.facePicUrl = nil; self.inputIdCardNum = nil; }else{ self.inversePicUrl = nil; } } - (NSArray *)attributeIdCardNumArray{ if (self.idCardItemList.count == 0) return nil; NSMutableArray *titleArray = [NSMutableArray arrayWithCapacity:self.idCardItemList.count]; for (FKIdCardItem *item in self.idCardItemList) { NSAttributedString *att = [[NSAttributedString alloc]initWithString:item.idCardNum]; [titleArray addObject:att]; } return titleArray; } - (void)setDefaultIdCard{ [self savePickedIdCardAtIndex:0]; } - (void)savePickedIdCardAtIndex:(NSUInteger)index{ if (index < self.idCardItemList.count) { FKIdCardItem *item = self.idCardItemList[index]; self.selectedIndex = index; self.inputIdCardNum = item.idCardNum; self.facePicUrl = item.facePic; self.inversePicUrl = item.inversePic; } } - (BOOL)checkIdInfoCompleteWithError:(NSError **)error{ BOOL isComplete = YES; NSString *tempErrorStr = @""; if ([self numberOfImgInput] < 2){ isComplete = NO; tempErrorStr = @"请上传身份证正反面照片"; } else { BOOL validate = [MWIDCardValidate validateIdentityCard:self.inputIdCardNum]; BOOL repeatFalse = [self checkIdCardRepeatError]; if (self.inputIdCardNum.length == 0) { isComplete = NO; tempErrorStr = @"请输入身份证号码"; } else if (!validate) { isComplete = NO; tempErrorStr = @"身份证号码不正确, 请重新输入"; } else if (repeatFalse){ isComplete = NO; tempErrorStr = @"身份证号码已存在"; } else { isComplete = YES; tempErrorStr = @""; } } if (!isComplete && tempErrorStr.length){ *error = [NSError errorWithDomain:@"FirstLinkErrorDomain" code:0 userInfo:@{NSLocalizedDescriptionKey:tempErrorStr}]; } return isComplete; } /** 检查用户输入身份证号是否和已有的重复(添加和编辑需要检查,清关上传身份信息可覆盖) 子类重写 */ - (BOOL)checkIdCardRepeatError{ return NO; } /** 有几张照片 */ - (NSUInteger)numberOfImgInput{ NSUInteger num = 0; if (self.facePicUrl.length) num++; if (self.inversePicUrl.length) num++; return num; } - (NSString *)getOrderId{ // 子类实现 return nil; } - (void)saveAllInfoWithDelegate:(id )delegate{ [self modifyIdCardInfoWithDelegate:delegate]; } - (void)modifyIdCardInfoWithDelegate:(id )delegate{ NSString *URLString = [NSString stringWithFormat:@"%@/link-site/api/user_id_card/modify_user_id_card_for_payment_order.json", [[FKServerUtil sharedInstance] apiServer]]; NSString *jsonStr = [FLRequestHelper JSONStringWithKeys:@[@"id_card_num", @"a_pic", @"b_pic"] values:@[self.inputIdCardNum.uppercaseString, self.facePicUrl, self.inversePicUrl]]; NSString *orderId = [self getOrderId]; if (orderId.length > 0) { jsonStr = [FLRequestHelper JSONStringWithKeys:@[@"id_card_num", @"a_pic", @"b_pic", @"order_id"] values:@[self.inputIdCardNum, self.facePicUrl, self.inversePicUrl, orderId]]; } NSMutableDictionary *para = [NSMutableDictionary dictionaryWithDictionary:[FLRequestHelper commonParamater]]; [para setValue:jsonStr forKey:@"params_json"]; [[FLDataCenter sharedDataCenter] POST:URLString para:para identify:UPLOAD_IDCARD_INFO_REQUEST delegate:delegate]; } - (void)upLoadImg:(UIImage *)image isFace:(BOOL)isFace delegate:(id )delegate{ if (!image) return; NSData *data = UIImageJPEGRepresentation(image, 0.8); WeakSelf(weakSelf); __block typeof(delegate) block_delegate = delegate; void(^upLoadSuccess)(MSGHeader *, id) = ^(MSGHeader *header, id responseObject){ if (header.code.intValue == RESPONSE_MSG_NORMAL && [responseObject isKindOfClass:[NSString class]]) { if (isFace) { weakSelf.facePicUrl = responseObject; if ([block_delegate respondsToSelector:@selector(networkDidSuccessResponse:identify:header:)]) { [block_delegate networkDidSuccessResponse:responseObject identify:UPLOAD_IDCARD_FACE_REQUEST header:header]; } } else { weakSelf.inversePicUrl = responseObject; if ([block_delegate respondsToSelector:@selector(networkDidSuccessResponse:identify:header:)]) { [block_delegate networkDidSuccessResponse:responseObject identify:UPLOAD_IDCARD_INVERSE_REQUEST header:header]; } } } }; void(^upLoadFail)(MSGHeader *header, NSError *error) = ^(MSGHeader *header, NSError *error){ if ([block_delegate respondsToSelector:@selector(networkDidReceiveError:identify:header:)]) { [block_delegate networkDidReceiveError:error identify:UPLOAD_IDCARD_INFO_REQUEST header:header]; } }; [self upLoadImgData:data success:upLoadSuccess failure:upLoadFail]; } - (void)upLoadImgData:(NSData *)data success:(void (^)(MSGHeader *header, id responseObject))success failure:(void (^)(MSGHeader *header, NSError *error))failure{ [UploadFileModel uploadFile:data fileType:@"pic" contentType:@"image/jpeg" parameters:@{@"watermark": @"1"} success:^(MSGHeader *header, id responseObject) { success(header, responseObject); } progress:^(NSUInteger bytesWritten, NSInteger totalBytesWritten, NSInteger totalBytesExpectedToWrite) { } failure:^(MSGHeader *header, NSError *error) { failure(header, error); }]; } @end