ShoppingViewController.m 22 KB
Newer Older
曹云霄's avatar
曹云霄 committed
1 2 3 4 5 6 7 8 9
//
//  ShoppingViewController.m
//  Lighting
//
//  Created by 曹云霄 on 16/4/27.
//  Copyright © 2016年 上海勾芒科技有限公司. All rights reserved.
//

#import "ShoppingViewController.h"
曹云霄's avatar
曹云霄 committed
10 11
#import "ShoppingTableViewCell.h"
#import "AppDelegate.h"
曹云霄's avatar
曹云霄 committed
12
#import "GenerateOrdersViewController.h"
勾芒's avatar
勾芒 committed
13
#import "ShopcarModel.h"
勾芒's avatar
勾芒 committed
14
#import "AddressModel.h"
曹云霄's avatar
曹云霄 committed
15
#import "ProductDetailsViewController.h"
曹云霄's avatar
曹云霄 committed
16

17
@interface ShoppingViewController ()<UITableViewDelegate,UITableViewDataSource,ChangeGoodsNumberDelegate,DZNEmptyDataSetSource,UITextFieldDelegate>
曹云霄's avatar
曹云霄 committed
18 19

@property (weak, nonatomic) IBOutlet UITableView *shoppingTableview;
曹云霄's avatar
曹云霄 committed
20

勾芒's avatar
勾芒 committed
21 22 23 24
/**
 *  购物车数据源
 */
@property (nonatomic,strong) NSMutableArray *shopResponseArray;
勾芒's avatar
勾芒 committed
25

26 27 28 29 30
/**
 *  折扣比例输入
 */
@property (nonatomic,strong) UITextField *textField;

勾芒's avatar
勾芒 committed
31

曹云霄's avatar
曹云霄 committed
32 33 34 35
@end

@implementation ShoppingViewController

曹云霄's avatar
曹云霄 committed
36 37 38 39

/**
 *  数据源
 */
勾芒's avatar
勾芒 committed
40
- (NSMutableArray *)shopResponseArray
曹云霄's avatar
曹云霄 committed
41
{
勾芒's avatar
勾芒 committed
42
    if (_shopResponseArray == nil) {
曹云霄's avatar
曹云霄 committed
43
        
勾芒's avatar
勾芒 committed
44
        _shopResponseArray = [NSMutableArray array];
曹云霄's avatar
曹云霄 committed
45
    }
勾芒's avatar
勾芒 committed
46
    return _shopResponseArray;
曹云霄's avatar
曹云霄 committed
47 48
}

曹云霄's avatar
曹云霄 committed
49 50
- (void)viewDidLoad {
    [super viewDidLoad];
曹云霄's avatar
曹云霄 committed
51
    
曹云霄's avatar
曹云霄 committed
52 53 54
    [self uiConfigAction];
}

勾芒's avatar
勾芒 committed
55
#pragma mark -渲染完成
56 57 58
- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
曹云霄's avatar
曹云霄 committed
59
    self.navigationController.fd_fullscreenPopGestureRecognizer.enabled = NO;
60 61 62
    if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
        self.navigationController.interactivePopGestureRecognizer.enabled = NO;
    }
勾芒's avatar
勾芒 committed
63 64 65
    [self.shopResponseArray removeAllObjects];
    [self InitializeState];
    [self getShoppingCardata];
66
    [self QueryShoppingCarNumber];
67 68
}

勾芒's avatar
勾芒 committed
69
#pragma mark -视图即将消失
70 71 72
- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
曹云霄's avatar
曹云霄 committed
73
    self.navigationController.fd_fullscreenPopGestureRecognizer.enabled = YES;
74 75 76
    if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
        self.navigationController.interactivePopGestureRecognizer.enabled = YES;
    }
77 78
}

勾芒's avatar
勾芒 committed
79 80 81 82 83 84
#pragma mark -初始化状态
- (void)InitializeState
{
    [self.settlementButton setTitle:@"去结算(0)" forState:UIControlStateNormal];
    self.allSelectedButton.selected = NO;
    self.totalpriceLabe.text = nil;
曹云霄's avatar
曹云霄 committed
85
    self.discountTextField.text = nil;
勾芒's avatar
勾芒 committed
86 87
}

曹云霄's avatar
曹云霄 committed
88 89 90
#pragma mark - UI
- (void)uiConfigAction
{
勾芒's avatar
勾芒 committed
91 92
    self.settlementButton.layer.masksToBounds = YES;
    self.settlementButton.layer.cornerRadius = kCornerRadius;
勾芒's avatar
勾芒 committed
93
    self.view.backgroundColor = kTCColor(238, 238, 238);
曹云霄's avatar
曹云霄 committed
94 95
    self.shoppingTableview.dataSource = self;
    self.shoppingTableview.delegate = self;
勾芒's avatar
勾芒 committed
96
    self.shoppingTableview.backgroundColor = [UIColor clearColor];
曹云霄's avatar
曹云霄 committed
97
    self.shoppingTableview.tableFooterView = [UIView new];
98
    self.discountTextField.delegate = self;
曹云霄's avatar
曹云霄 committed
99 100
}

101 102 103
#pragma mark -<UITextFieldDelegate>
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
104 105 106
    if (![textField isEqual:self.discountTextField]) {
        return YES;
    }
107 108 109 110 111 112 113 114 115 116 117 118
    if (self.shopResponseArray.count == 0) {
        [self ErrorMBProgressView:@"请先添加商品到购物车"];return NO;
    }
    NSMutableArray *array = [NSMutableArray array];
    for (ShopcarModel *model in self.shopResponseArray) {
        if (model.isSelected) {
            [array addObject:model];
        }
    }
    if (array.count == 0) {
        [self ErrorMBProgressView:@"没有选中任何商品"];return NO;
    }
119 120
    [self inputDiscountNumber];
    return NO;
121 122
}

123 124
#pragma mark - 输入折扣金额
- (void)inputDiscountNumber
125
{
126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
    WS(weakSelf);
    UIAlertController *alertControl = [UIAlertController alertControllerWithTitle:@"提示" message:@"请输入折扣比例(%)" preferredStyle:UIAlertControllerStyleAlert];
    [alertControl addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
        weakSelf.textField.text = nil;
         [weakSelf textFieldEndEditing];
    }]];
    [alertControl addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
        
        weakSelf.textField = textField;
        textField.placeholder = @"请输入";
        textField.keyboardType = UIKeyboardTypeNumberPad;
        textField.delegate = self;
    }];
    [alertControl addAction:[UIAlertAction actionWithTitle:@"确认" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {
        [weakSelf textFieldEndEditing];
    }]];
    [self presentViewController:alertControl animated:YES completion:nil];
}

#pragma mark - 结束编辑
- (void)textFieldEndEditing
{
    if ([BaseViewController isBlankString:self.textField.text]) {
        return;
    }
151
    Shoppersmanager *user = [Shoppersmanager manager];
152
    if ([self.textField.text integerValue] < [user.Shoppers.lowestDiscount integerValue] && ![[self class] isBlankString:self.textField.text])
153
    {
154 155 156 157 158
        [self SHOWPrompttext:@"当前价格低于你的价格权限!"];
        self.textField.text = nil;
    }else {
        self.discountTextField.text = self.textField.text;
        [self unifiedChangeDiscount:self.textField.text];
159 160
    }
}
勾芒's avatar
勾芒 committed
161

162 163 164 165 166 167 168 169 170 171 172 173 174
#pragma mark - 输入折扣比例
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    return [self validateNumber:string];
}

#pragma mark - 判断输入是否有效<两位整数、第一位不能为0>
- (BOOL)validateNumber:(NSString*)number
{
    BOOL res = YES;
    if ([number isEqualToString:@""]) {
        return YES;
    }
175
    if (self.textField.text.length == 2) {
176 177
        return NO;
    }
178
    if([[self class] isBlankString:self.textField.text] && [number isEqualToString:@"0"])
179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201
    {
        if([number isEqualToString:@"0"]){
            return NO;
        }
    }
    NSCharacterSet* tmpSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
    int i = 0;
    while (i < number.length) {
        NSString * string = [number substringWithRange:NSMakeRange(i, 1)];
        NSRange range = [string rangeOfCharacterFromSet:tmpSet];
        if (range.length == 0) {
            res = NO;
            break;
        }
        i++;
    }
    return res;
}

#pragma mark - 统一修改折扣率
- (void)unifiedChangeDiscount:(NSString *)discount
{
    WS(weakSelf);
202
    NSLog(@"----->%@",discount);
203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223
    NSDecimalNumber *discountNumber = [NSDecimalNumber decimalNumberWithString:discount];
    NSDecimalNumber *number = [discountNumber decimalNumberByDividingBy:[NSDecimalNumber decimalNumberWithString:@"100"]];
    for (ShopcarModel *model in self.shopResponseArray) {
        if (model.isSelected) {
            NSNumber *constPrice = model.goods.tagPrice;
            model.costPrice = [number decimalNumberByMultiplyingBy:[NSDecimalNumber decimalNumberWithString:[constPrice stringValue]]];
        }
    }
    //** boolValue为false表示修改失败 */
    [self modifyMultipleGoodsNnumberOrPrice:self.shopResponseArray completeModify:^(BOOL boolValue) {
        if (!boolValue) {
            for (ShopcarModel *model in weakSelf.shopResponseArray) {
                if (model.isSelected) {
                    model.costPrice = model.goods.tagPrice;
                    model.goodsNum = 1;
                }
            }
        }
        [weakSelf.shoppingTableview reloadData];
    }];
}
勾芒's avatar
勾芒 committed
224

勾芒's avatar
勾芒 committed
225 226 227 228 229 230 231 232
#pragma mark -获取购物车商品
- (void)getShoppingCardata
{
    //判断是否需要请求数据-通过当前客户ID
    if (![Shoppersmanager manager].currentCustomer) {
        return;
    }
    ShopCartFilter *shopcarNumber = [[ShopCartFilter alloc]init];
勾芒's avatar
勾芒 committed
233
    shopcarNumber.consumerId = [Customermanager manager].model.fid;
勾芒's avatar
勾芒 committed
234
    DataPage *Newpage = [[DataPage alloc]init];
勾芒's avatar
勾芒 committed
235 236
    Newpage.page = 1;
    Newpage.rows = 99999;
勾芒's avatar
勾芒 committed
237 238
    shopcarNumber.dp = Newpage;
    [self CreateMBProgressHUDLoding];
曹云霄's avatar
曹云霄 committed
239
    WS(weakSelf);
240
    [[NetworkRequestClassManager Manager] NetworkRequestWithURL:SERVERREQUESTURL(SHOPPINGBAG) WithCallClass:weakSelf WithRequestType:0 WithParameter:shopcarNumber WithReturnValueBlock:^(id returnValue) {
勾芒's avatar
勾芒 committed
241
        
曹云霄's avatar
曹云霄 committed
242 243 244
        weakSelf.shoppingTableview.emptyDataSetSource = weakSelf;
        [weakSelf endRefreshingForTableView:weakSelf.shoppingTableview];
        [weakSelf RemoveMBProgressHUDLoding];
勾芒's avatar
勾芒 committed
245
        if ([returnValue[@"code"] isEqualToNumber:@0]) {
勾芒's avatar
勾芒 committed
246
  
勾芒's avatar
勾芒 committed
247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262
            ShopCartResponse *shopcar = [[ShopCartResponse alloc]initWithDictionary:returnValue[@"data"] error:nil];
            //自定义属性
            for (TOShopcartEntity *objc in shopcar.shopcart) {
                
                ShopcarModel *model = [[ShopcarModel alloc]init];
                model.goods = objc.goods;
                model.fid = objc.fid;
                model.createName = objc.createName;
                model.createBy = objc.createBy;
                model.createDate = objc.createDate;
                model.updateName = objc.updateName;
                model.updateBy = objc.updateBy;
                model.updateDate = objc.updateDate;
                model.goodsId = objc.goodsId;
                model.goodsNum = objc.goodsNum;
                model.consumerId = objc.consumerId;
勾芒's avatar
勾芒 committed
263
                model.costPrice = objc.costPrice;
曹云霄's avatar
曹云霄 committed
264
                [weakSelf.shopResponseArray addObject:model];
勾芒's avatar
勾芒 committed
265
            }
曹云霄's avatar
曹云霄 committed
266
            [weakSelf.shoppingTableview reloadData];
勾芒's avatar
勾芒 committed
267 268
        }else
        {
曹云霄's avatar
曹云霄 committed
269
            [weakSelf ErrorMBProgressView:returnValue[@"message"]];
勾芒's avatar
勾芒 committed
270 271
        }
    } WithErrorCodeBlock:^(id errorCodeValue) {
272 273 274
        [weakSelf endRefreshingForTableView:weakSelf.shoppingTableview];
        [weakSelf ErrorMBProgressView:NETWORK];
    } WithFailureBlock:^(NSError *error) {
曹云霄's avatar
曹云霄 committed
275
        [weakSelf endRefreshingForTableView:weakSelf.shoppingTableview];
276
        [weakSelf ErrorMBProgressView:error.localizedDescription];
勾芒's avatar
勾芒 committed
277 278 279 280
    }];
}


曹云霄's avatar
曹云霄 committed
281 282 283
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    ShoppingTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Shopping" forIndexPath:indexPath];
勾芒's avatar
勾芒 committed
284 285
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    cell.model = [self.shopResponseArray objectAtIndex_opple:indexPath.row];
勾芒's avatar
勾芒 committed
286
    cell.delegate = self;
勾芒's avatar
勾芒 committed
287 288
    cell.cellindex = indexPath.row;
    //cell选中回调
289 290
    __weak typeof(cell) weakCell = cell;
    WS(weakSelf);
勾芒's avatar
勾芒 committed
291
    [cell setReturnCellblock:^(NSInteger index) {
勾芒's avatar
勾芒 committed
292
        [weakSelf setSelectedButton:index];
勾芒's avatar
勾芒 committed
293
    }];
勾芒's avatar
勾芒 committed
294 295
    //提示框回调
    [cell setPromptStringBlock:^(NSString *string) {
296 297 298
        [weakSelf SHOWPrompttext:string ComcpleteBlock:^{
            [weakCell.clinchTextfield becomeFirstResponder];
        }];
勾芒's avatar
勾芒 committed
299
    }];
曹云霄's avatar
曹云霄 committed
300 301 302 303 304
    return  cell;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
勾芒's avatar
勾芒 committed
305
    return self.shopResponseArray.count;
曹云霄's avatar
曹云霄 committed
306 307 308 309 310 311 312 313
}


- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 80;
}

曹云霄's avatar
曹云霄 committed
314 315
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
曹云霄's avatar
曹云霄 committed
316
    ProductDetailsViewController *productDetails = [[[self class] getMainStoryboardClass] instantiateViewControllerWithIdentifier:@"productdetails"];
曹云霄's avatar
曹云霄 committed
317 318 319
    productDetails.goodsID = [[self.shopResponseArray objectAtIndex_opple:indexPath.row] goodsId];
    [self.navigationController pushViewController:productDetails animated:YES];
}
曹云霄's avatar
曹云霄 committed
320 321 322 323 324 325

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self.shoppingTableview deselectRowAtIndexPath:indexPath animated:YES];
}

勾芒's avatar
勾芒 committed
326
#pragma mark -选中商品回调
勾芒's avatar
勾芒 committed
327 328 329
- (void)setSelectedButton:(NSInteger)index;
{
    ShopcarModel *model = [self.shopResponseArray objectAtIndex_opple:index];
勾芒's avatar
勾芒 committed
330
    model.isSelected = !model.isSelected;
勾芒's avatar
勾芒 committed
331 332 333 334 335 336
    
    NSInteger goodsNumber = 0;
    for (ShopcarModel *model in self.shopResponseArray) {
        if (model.isSelected) {
            goodsNumber ++;
        }
勾芒's avatar
勾芒 committed
337 338 339 340 341 342
    }
    if (goodsNumber == self.shopResponseArray.count) {
        self.allSelectedButton.selected = YES;
    }else
    {
        self.allSelectedButton.selected = NO;
勾芒's avatar
勾芒 committed
343
    }
勾芒's avatar
勾芒 committed
344
    [self CalculateSelectedGoodsAllprice];
勾芒's avatar
勾芒 committed
345
    [self.settlementButton setTitle:[NSString stringWithFormat:@"去结算(%ld)",goodsNumber] forState:UIControlStateNormal];
勾芒's avatar
勾芒 committed
346 347 348
}


曹云霄's avatar
曹云霄 committed
349 350 351
#pragma mark -结算
- (IBAction)settlementButtonClick:(UIButton *)sender {
    
勾芒's avatar
勾芒 committed
352 353 354 355 356 357 358 359 360 361 362
    NSMutableArray *array = [NSMutableArray array];
    for (ShopcarModel *model in self.shopResponseArray) {
        if (model.isSelected) {
            [array addObject:model];
        }
    }
    if (array.count == 0) {
        
        [self ErrorMBProgressView:@"没有选中任何商品"];
        return;
    }
勾芒's avatar
勾芒 committed
363 364
    //商品总信息占位
     ShopcarModel*ZhanweiModel = [[ShopcarModel alloc]init];
勾芒's avatar
勾芒 committed
365
    [array addObject:ZhanweiModel];
曹云霄's avatar
曹云霄 committed
366
    GenerateOrdersViewController *generateOrder = [[[self class] getMainStoryboardClass] instantiateViewControllerWithIdentifier:@"generateorders"];
勾芒's avatar
勾芒 committed
367
    generateOrder.settlementGoodsdatas = array;
勾芒's avatar
勾芒 committed
368 369 370 371 372
    //清除已经生成订单的商品
    [generateOrder setDelecteSelectedGoods:^(NSArray *goodsCode) {
        
        DeleteCartRequest *delecteGoods = [[DeleteCartRequest alloc]init];
        delecteGoods.cartIds = goodsCode;
曹云霄's avatar
曹云霄 committed
373
        WS(weakSelf);
374
        [[NetworkRequestClassManager Manager] NetworkRequestWithURL:SERVERREQUESTURL(REMOVESHOPPINGBAG) WithCallClass:weakSelf WithRequestType:0 WithParameter:delecteGoods WithReturnValueBlock:^(id returnValue) {
勾芒's avatar
勾芒 committed
375
            
曹云霄's avatar
曹云霄 committed
376
            [weakSelf RemoveMBProgressHUDLoding];
勾芒's avatar
勾芒 committed
377
            if ([returnValue[@"code"] isEqualToNumber:@0]) {
曹云霄's avatar
曹云霄 committed
378
                [weakSelf QueryShoppingCarNumber];
勾芒's avatar
勾芒 committed
379 380 381
                //商品cell
                NSMutableArray *cellArray = [NSMutableArray array];
                //删除商品
曹云霄's avatar
曹云霄 committed
382 383
                for (int i=0; i<weakSelf.shopResponseArray.count; i++) {
                    ShopcarModel *model = [weakSelf.shopResponseArray objectAtIndex_opple:i];
勾芒's avatar
勾芒 committed
384
                    if ([goodsCode containsObject:model.fid]) {
曹云霄's avatar
曹云霄 committed
385
                        [weakSelf.shopResponseArray removeObject:model];
勾芒's avatar
勾芒 committed
386 387 388 389
                        NSIndexPath *indexpath = [NSIndexPath indexPathForRow:i inSection:0];
                        [cellArray addObject:indexpath];
                    }
                }
曹云霄's avatar
曹云霄 committed
390
                [weakSelf.shoppingTableview deleteRowsAtIndexPaths:cellArray withRowAnimation:UITableViewRowAnimationTop];
勾芒's avatar
勾芒 committed
391 392
            }else
            {
曹云霄's avatar
曹云霄 committed
393
                [weakSelf ErrorMBProgressView:returnValue[@"message"]];
勾芒's avatar
勾芒 committed
394 395 396
            }
            
        } WithErrorCodeBlock:^(id errorCodeValue) {
397 398 399
            [weakSelf ErrorMBProgressView:NETWORK];
        } WithFailureBlock:^(NSError *error) {
            [weakSelf ErrorMBProgressView:error.localizedDescription];
勾芒's avatar
勾芒 committed
400 401
        }];
    }];
曹云霄's avatar
曹云霄 committed
402
    [self.navigationController pushViewController:generateOrder animated:YES];
曹云霄's avatar
曹云霄 committed
403
}
曹云霄's avatar
曹云霄 committed
404

曹云霄's avatar
曹云霄 committed
405
#pragma mark -全选
勾芒's avatar
勾芒 committed
406 407 408 409 410 411 412 413 414 415
- (IBAction)allSelectedButtonClick:(UIButton *)sender {
    sender.selected = !sender.selected;
    if (sender.selected) {
        //全部选中
        for (ShoppingTableViewCell *cell in self.shoppingTableview.visibleCells) {
            cell.selectedButton.selected = YES;
        }
        for (ShopcarModel *model in self.shopResponseArray) {
            model.isSelected = YES;
        }
勾芒's avatar
勾芒 committed
416
        [self.settlementButton setTitle:[NSString stringWithFormat:@"去结算(%ld)",self.shopResponseArray.count] forState:UIControlStateNormal];
勾芒's avatar
勾芒 committed
417 418 419 420 421 422 423 424 425
    }else
    {
        //取消全部选中
        for (ShoppingTableViewCell *cell in self.shoppingTableview.visibleCells) {
            cell.selectedButton.selected = NO;
        }
        for (ShopcarModel *model in self.shopResponseArray) {
            model.isSelected = NO;
        }
勾芒's avatar
勾芒 committed
426
        [self.settlementButton setTitle:@"去结算(0)" forState:UIControlStateNormal];
勾芒's avatar
勾芒 committed
427
    }
勾芒's avatar
勾芒 committed
428 429
    //计算总金额
    [self CalculateSelectedGoodsAllprice];
曹云霄's avatar
曹云霄 committed
430 431
}

勾芒's avatar
勾芒 committed
432 433 434
#pragma mark -计算选中后的商品总金额
- (void)CalculateSelectedGoodsAllprice
{
勾芒's avatar
勾芒 committed
435
    CGFloat allPrice = 0;
勾芒's avatar
勾芒 committed
436 437
    for (ShopcarModel *model in self.shopResponseArray) {
        if (model.isSelected) {
勾芒's avatar
勾芒 committed
438
            allPrice += ([model.costPrice floatValue]?[model.costPrice floatValue]:[model.goods.tagPrice floatValue]) * model.goodsNum;
勾芒's avatar
勾芒 committed
439 440
        }
    }
勾芒's avatar
勾芒 committed
441
    self.totalpriceLabe.text = [NSString stringWithFormat:@"¥%.2f",allPrice];
勾芒's avatar
勾芒 committed
442 443
}

曹云霄's avatar
曹云霄 committed
444

勾芒's avatar
勾芒 committed
445 446 447
#pragma mark -删除选中商品
- (IBAction)delecteSelectedGoods:(UIButton *)sender {

勾芒's avatar
勾芒 committed
448 449 450 451 452
    [self CreateMBProgressHUDLoding];
    DeleteCartRequest *delecteGoods = [[DeleteCartRequest alloc]init];
    //code数组
    NSMutableArray *codeArr = [NSMutableArray array];
    //需要删除的cell数组indexpath
勾芒's avatar
勾芒 committed
453
    NSMutableArray *delecteArray = [NSMutableArray array];
勾芒's avatar
勾芒 committed
454 455
    //模型数组
    NSMutableArray *delectemodel = [NSMutableArray array];
勾芒's avatar
勾芒 committed
456 457 458
    for (int i=0; i<self.shopResponseArray.count; i++) {
        ShopcarModel *model = [self.shopResponseArray objectAtIndex_opple:i];
        if (model.isSelected) {
勾芒's avatar
勾芒 committed
459 460
            [codeArr addObject:model.fid];
            [delectemodel addObject:model];
勾芒's avatar
勾芒 committed
461 462 463 464
            NSIndexPath *indexpath = [NSIndexPath indexPathForRow:i inSection:0];
            [delecteArray addObject:indexpath];
        }
    }
勾芒's avatar
勾芒 committed
465 466 467
    //没有选中任何商品
    if (codeArr.count == 0) {
        [self RemoveMBProgressHUDLoding];
468
        [self SHOWPrompttext:@"未选中商品"];
勾芒's avatar
勾芒 committed
469 470 471
        return;
    }
    delecteGoods.cartIds = codeArr;
曹云霄's avatar
曹云霄 committed
472
    WS(weakSelf);
473
    [[NetworkRequestClassManager Manager] NetworkRequestWithURL:SERVERREQUESTURL(REMOVESHOPPINGBAG) WithCallClass:weakSelf WithRequestType:0 WithParameter:delecteGoods WithReturnValueBlock:^(id returnValue) {
勾芒's avatar
勾芒 committed
474
        
曹云霄's avatar
曹云霄 committed
475
        [weakSelf RemoveMBProgressHUDLoding];
勾芒's avatar
勾芒 committed
476 477
        if ([returnValue[@"code"] isEqualToNumber:@0]) {
            
曹云霄's avatar
曹云霄 committed
478
            [weakSelf QueryShoppingCarNumber];
勾芒's avatar
勾芒 committed
479 480
            //删除商品
            for (ShopcarModel *model in delectemodel) {
曹云霄's avatar
曹云霄 committed
481
                [weakSelf.shopResponseArray removeObject:model];
勾芒's avatar
勾芒 committed
482
            }
曹云霄's avatar
曹云霄 committed
483
            [weakSelf.shoppingTableview deleteRowsAtIndexPaths:delecteArray withRowAnimation:UITableViewRowAnimationLeft];
曹云霄's avatar
曹云霄 committed
484
            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
曹云霄's avatar
曹云霄 committed
485
                [weakSelf.shoppingTableview reloadData];
曹云霄's avatar
曹云霄 committed
486
            });
曹云霄's avatar
曹云霄 committed
487 488 489 490
            [weakSelf SuccessMBProgressView:@"删除成功"];
            [weakSelf CalculateSelectedGoodsAllprice];
            weakSelf.allSelectedButton.selected = NO;
            [weakSelf.settlementButton setTitle:@"去结算(0)" forState:UIControlStateNormal];
勾芒's avatar
勾芒 committed
491 492
        }else
        {
曹云霄's avatar
曹云霄 committed
493
            [weakSelf ErrorMBProgressView:returnValue[@"message"]];
勾芒's avatar
勾芒 committed
494
        }
勾芒's avatar
勾芒 committed
495

勾芒's avatar
勾芒 committed
496
    } WithErrorCodeBlock:^(id errorCodeValue) {
497 498 499
        [weakSelf ErrorMBProgressView:NETWORK];
    } WithFailureBlock:^(NSError *error) {
        [weakSelf ErrorMBProgressView:error.localizedDescription];
勾芒's avatar
勾芒 committed
500
    }];
勾芒's avatar
勾芒 committed
501
}
曹云霄's avatar
曹云霄 committed
502

503 504 505 506 507 508 509 510
#pragma mark - 修改多个商品数量、价格
- (void)modifyMultipleGoodsNnumberOrPrice:(NSArray<ShopcarModel *> *)goodsArray completeModify:(void(^)(BOOL boolValue))finish
{
    WS(weakSelf);
    dispatch_group_t group = dispatch_group_create();
    static NSInteger number = ZERO;
    [self CreateMBProgressHUDLoding];
    [goodsArray enumerateObjectsUsingBlock:^(ShopcarModel * _Nonnull model, NSUInteger idx, BOOL * _Nonnull stop) {
曹云霄's avatar
曹云霄 committed
511

512 513
        dispatch_group_enter(group);
        NSLog(@"%@",[NSString stringWithFormat:@"%@%@/%@/%@/%ld",SERVERREQUESTURL(CHANGESHOPPINGBAGNUMBERPRICE),model.fid,model.goodsId,[model.costPrice stringValue],model.goodsNum]);
514
        [[NetworkRequestClassManager Manager] NetworkWithDictionaryRequestWithURL:[NSString stringWithFormat:@"%@%@/%@/%@/%ld",SERVERREQUESTURL(CHANGESHOPPINGBAGNUMBERPRICE),model.fid,model.goodsId,[model.costPrice stringValue],model.goodsNum] WithCallClass:weakSelf WithRequestType:1 WithParameter:nil WithReturnValueBlock:^(id returnValue) {
515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541
            
            dispatch_group_leave(group);
            if ([returnValue[@"code"] isEqualToNumber:@0]) {
                number ++;
            }
        } WithErrorCodeBlock:^(id errorCodeValue) {
            dispatch_group_leave(group);
        } WithFailureBlock:^(NSError *error) {
            dispatch_group_leave(group);
        }];
    }];
    
    dispatch_group_notify(group, dispatch_get_main_queue(), ^{
        
        [weakSelf RemoveMBProgressHUDLoding];
        if (number == goodsArray.count) {
            [weakSelf CalculateSelectedGoodsAllprice];
            [weakSelf QueryShoppingCarNumber];
            finish(YES);
        }else {
            [self SHOWPrompttext:@"修改失败" ComcpleteBlock:^{
                finish(NO);
            }];
        }
        number = ZERO;
    });
}
勾芒's avatar
勾芒 committed
542

543 544
#pragma mark -修改单个商品数量、价格
- (void)changeGoodsNumber:(NSInteger)goodsNumber WithcostPrice:(CGFloat)costprice Withcellindex:(NSInteger)cellindex returnValue:(void (^)(id))result
勾芒's avatar
勾芒 committed
545
{
勾芒's avatar
勾芒 committed
546
    [self CreateMBProgressHUDLoding];
勾芒's avatar
勾芒 committed
547 548 549 550
    //保存商品数量
    ShopcarModel *model = [self.shopResponseArray objectAtIndex_opple:cellindex];
    model.goodsNum = goodsNumber;
    //保存成交价格
551
    model.costPrice = [NSNumber numberWithFloat:costprice];
曹云霄's avatar
曹云霄 committed
552
    //在服务器保存数量、成交价
勾芒's avatar
勾芒 committed
553
    //购物车ID
554
    NSString *carid = model.fid;
勾芒's avatar
勾芒 committed
555
    //商品id
556
    NSString *goodsis = model.goodsId;
勾芒's avatar
勾芒 committed
557
    //成交价
勾芒's avatar
勾芒 committed
558
    NSString *costpriceString = [NSString stringWithFormat:@"%.2f",costprice];
勾芒's avatar
勾芒 committed
559
    //商品数量
曹云霄's avatar
曹云霄 committed
560 561
    NSString *goodsNumberString = [NSString stringWithFormat:@"%ld",(long)goodsNumber];
    WS(weakSelf);
562
    [[NetworkRequestClassManager Manager] NetworkWithDictionaryRequestWithURL:[NSString stringWithFormat:@"%@%@/%@/%@/%@",SERVERREQUESTURL(CHANGESHOPPINGBAGNUMBERPRICE),carid,goodsis,costpriceString,goodsNumberString] WithCallClass:weakSelf WithRequestType:1 WithParameter:nil WithReturnValueBlock:^(id returnValue) {
勾芒's avatar
勾芒 committed
563
        
曹云霄's avatar
曹云霄 committed
564 565
        [weakSelf RemoveMBProgressHUDLoding];
        result(returnValue);//提供是否支持修改的参数
勾芒's avatar
勾芒 committed
566
        if ([returnValue[@"code"] isEqualToNumber:@0]) {
曹云霄's avatar
曹云霄 committed
567 568 569 570 571
            [weakSelf CalculateSelectedGoodsAllprice];
            [weakSelf QueryShoppingCarNumber];
        }else{
            
            [weakSelf ErrorMBProgressView:returnValue[@"message"]];
勾芒's avatar
勾芒 committed
572 573 574
        }
        
    } WithErrorCodeBlock:^(id errorCodeValue) {
575 576 577
        [weakSelf ErrorMBProgressView:NETWORK];
    } WithFailureBlock:^(NSError *error) {
        [weakSelf ErrorMBProgressView:error.localizedDescription];
勾芒's avatar
勾芒 committed
578
    }];
勾芒's avatar
勾芒 committed
579
}
曹云霄's avatar
曹云霄 committed
580

曹云霄's avatar
曹云霄 committed
581 582 583 584 585 586 587 588 589 590 591
#pragma mark -友好界面
- (UIImage *)imageForEmptyDataSet:(UIScrollView *)scrollView
{
    return kNoDataImage;
}

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

勾芒's avatar
勾芒 committed
592

593

曹云霄's avatar
曹云霄 committed
594
@end