CNLiveOrderViewModel.m 7.04 KB
//
//  CNLiveOrderViewModel.m
//  CNLiveMyOrderModule
//
//  Created by 殷巧娟 on 2019/11/15.
//

#import "CNLiveOrderViewModel.h"
#import "CNUserInfoManager.h"
#import "CNLiveEnvironment.h"
#import "CNLiveNetworking.h"
#import "CNLiveOrderModel.h"
#import "MJExtension.h"
#import "CNLiveOrderList.h"
#import "QMUIKit.h"
#import "AFNetworking.h"
@implementation CNLiveOrderViewModel
#pragma mark - 获取订单列表
+ (void)requestDataWithPage:(NSInteger)page status:(NSInteger)status success:(void (^)(NSMutableArray *dataSource,BOOL isHaveNet))success failure:(void (^)(NSError *error))failure {
    NSDictionary *param = @{@"appId":AppId,
                               @"sid":@"10511059",
                            @"status":[NSString stringWithFormat:@"%ld",(long)status],
                               @"pageNo":[NSString stringWithFormat:@"%ld", (long)page],
                            @"pageSize":@"15"
    };
//    [CNLiveNetworking setCacheVersion:page];
    [CNLiveNetworking setFilterArgument:@[@"pageNo"]];
    [CNLiveNetworking requestNetworkWithMethod:CNLiveRequestMethodPOST URLString:CNGetOrderListUrl Param:param CacheType:CNLiveNetworkCacheTypeNetworkOnly CompletionBlock:^(NSURLSessionTask *requestTask, id responseObject, NSError *error) {
        if (!error) {
            NSMutableArray *array = [NSMutableArray array];
            if (responseObject && [responseObject isKindOfClass:[NSDictionary class]]) {
                NSDictionary *dic = [responseObject objectForKey:@"data"];
                CNLiveOrderModel *model = [CNLiveOrderModel mj_objectWithKeyValues:dic];
                for (CNLiveOrderList *orderList in model.orderList) {
                    [array addObject:orderList];
                }
                !success ?  :success(array,model.hasNext);
            }
        }else {
            !failure ?  :failure(error);
        }
    }];
    
}
#pragma mark - 订单详情页面
+ (void)requestOrderDetaielWithOrderId:(NSString *)orderId success:(void (^)(CNLiveOrderList *list))success failure:(void (^)(NSError *error))failure {
    [CNLiveNetworking setupShowDataResult:NO];
    [CNLiveNetworking setAllowRequestDefaultArgument:YES];
    NSDictionary *param = @{
        @"appId":AppId,
        @"plat":@"i",
        @"orderId":orderId?orderId:@"",
        @"sid":@"10511059"
    };
    [CNLiveNetworking requestNetworkWithMethod:CNLiveRequestMethodPOST URLString:CNOrderCheckUrl Param:param CacheType:CNLiveNetworkCacheTypeNetworkOnly CompletionBlock:^(NSURLSessionTask *requestTask, id responseObject, NSError *error) {
        if (!error) {
            if (responseObject && [responseObject isKindOfClass:[NSDictionary class]]) {
                NSString *errMessage = [responseObject objectForKey:@"errorMessage"];
                NSString *errorCode =  [NSString stringWithFormat:@"%@",[responseObject objectForKey:@"errorCode"]];
                if ([errorCode isEqualToString:@"0"]) {
                    NSDictionary *data = [responseObject objectForKey:@"data"];
                    CNLiveOrderList *list = [CNLiveOrderList mj_objectWithKeyValues:data];
                    !success ?  :success(list);
                }
                
            }
        }else {
            !failure?  :failure(error);
        }
        
    }];
}
#pragma mark - 评价接口
+ (void)uploadEvaluationwithDarenId:(NSString *)darenId orderId:(NSString *)orderId score:(NSInteger)score comment:(NSString *)comment images:(NSArray *)images success:(void (^)(NSString *success))success failure:(void (^)(NSError *error))failure {
    NSDictionary *param = @{
        @"appId":AppId,
        @"sid":@"10511059",
        @"darenId":darenId,
        @"orderId":orderId,
        @"grade":[NSString stringWithFormat:@"%ld",score],
        @"comment":comment,
        @"plat":@"i"
    };
    [CNLiveNetworking uploadNetworkWithURLString:CNCommentDarenUrl Param:param FormDataBlock:^(id<AFMultipartFormData> formData) {
        [images enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
            UIImage *image = (UIImage *)obj;
            //压缩
            //图片视频压缩
            NSData *imageData = UIImageJPEGRepresentation(image, 0.6);//非原图压缩
            NSString *fileName = [NSString stringWithFormat:@"Image%d",(int)idx +1];
            NSString *name = [NSString stringWithFormat:@"Image%d",(int)idx+1];
            /*
            *该方法的参数
            1. appendPartWithFileData:要上传的照片[二进制流]
            2. name:对应网站上[upload.php中]处理文件的字段(比如upload)
            3. fileName:要保存在服务器上的文件名
            4. mimeType:上传的文件的类型
            */
            [formData appendPartWithFileData:imageData name:name fileName:fileName mimeType:@"image/jpeg"];
        }];
    } ProgressBlock:^(NSProgress *progress) {
        
    } CompletionBlock:^(NSURLSessionTask *requestTask, id responseObject, NSError *error) {
        if (!error) {
            if (responseObject && [responseObject isKindOfClass:[NSDictionary class]]) {
                if ([responseObject[@"errorCode"]integerValue] == 0) {
                    !success ?  : success(@"success");
                }else {
                    !success ?  :success(@"failure");
                }
            }
        }else {
            !failure ?  :failure(error);
        }
        
    }];
}
#pragma mark -申请退款接口
+ (void)requestRefundDataWithPage:(NSInteger)page success:(void (^)(NSMutableArray *array, BOOL haveNext))success failure:(void (^)(NSError *error))failure {
    NSDictionary *param = @{
                            @"appId":AppId,
                            @"plat":@"i",
                            @"sid":@"10511059",
                            @"status":@"4",
                            @"pageNo":[NSString stringWithFormat:@"%ld", (long)page],
                            @"pageSize":@"15"
                            };
    
    [CNLiveNetworking setupShowDataResult:NO];
    [CNLiveNetworking setAllowRequestDefaultArgument:YES];
    [CNLiveNetworking requestNetworkWithMethod:CNLiveRequestMethodPOST URLString:CNGetOrderListUrl Param:param CacheType:CNLiveNetworkCacheTypeNetworkOnly CompletionBlock:^(NSURLSessionTask *requestTask, id responseObject, NSError *error) {
        if (!error) {
            NSMutableArray *array = [NSMutableArray array];
            
            if (responseObject && [responseObject isKindOfClass:[NSDictionary class]]) {
                NSString *errorCode = [responseObject objectForKey:@"errorCode"];
                if ([errorCode isEqualToString:@"0"]) {
                    NSDictionary *data = [responseObject objectForKey:@"data"];
                    CNLiveOrderModel *model = [CNLiveOrderModel mj_objectWithKeyValues:data];
                    for (CNLiveOrderList *orderList in model.orderList) {
                        [array addObject:orderList];
                    }
                    !success ?  :success(array,model.hasNext);
                    
                }
            }
        }else {
            !failure ?  :failure(error);
        }
    }];
}
@end