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

#import "ClientViewController.h"
曹云霄's avatar
曹云霄 committed
10
#import "InformationTableViewCell.h"
曹云霄's avatar
曹云霄 committed
11
#import "ClientdetailsViewController.h"
勾芒's avatar
勾芒 committed
12
#import "MyclientEntityModel.h"
13
#import "DeviceDirectionManager.h"
勾芒's avatar
勾芒 committed
14

15
@interface ClientViewController ()<UITableViewDelegate,UITableViewDataSource,UITextFieldDelegate,DZNEmptyDataSetSource,DZNEmptyDataSetDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate>
曹云霄's avatar
曹云霄 committed
16

曹云霄's avatar
曹云霄 committed
17 18 19 20 21
/**
 *  客户数据源
 */
@property (nonatomic,strong) NSMutableArray *CustomerresultArray;

勾芒's avatar
勾芒 committed
22 23 24 25 26
/**
 *  当前页数
 */
@property (nonatomic,assign) int indexPage;

勾芒's avatar
勾芒 committed
27 28 29 30 31
/**
 *  总页数
 */
@property (nonatomic,assign) int totalPages;

曹云霄's avatar
曹云霄 committed
32 33 34 35 36
/**
 *  查询条件
 */
@property (nonatomic,strong) ConsumerQueryCondition *condition;

曹云霄's avatar
曹云霄 committed
37 38 39 40
@end

@implementation ClientViewController

曹云霄's avatar
曹云霄 committed
41 42 43 44 45 46 47 48 49 50 51 52 53

/**
 *  初始化客户数据源
 */
- (NSMutableArray *)CustomerresultArray
{
    if (_CustomerresultArray == nil) {
        
        _CustomerresultArray = [NSMutableArray array];
    }
    return _CustomerresultArray;
}

曹云霄's avatar
曹云霄 committed
54 55 56 57
- (ConsumerQueryCondition *)condition
{
    if (!_condition) {
        _condition = [[ConsumerQueryCondition alloc]init];
曹云霄's avatar
曹云霄 committed
58 59 60 61
        DataPage *page = [[DataPage alloc]init];
        page.sort = @"createDate";
        page.order = @"desc";
        self.condition.page = page;
曹云霄's avatar
曹云霄 committed
62 63 64 65
    }
    return _condition;
}

曹云霄's avatar
曹云霄 committed
66 67
- (void)viewDidLoad {
    [super viewDidLoad];
曹云霄's avatar
曹云霄 committed
68
    
曹云霄's avatar
曹云霄 committed
69 70 71
    [self uiConfigAction];
}

72 73 74
- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
曹云霄's avatar
曹云霄 committed
75
    self.navigationController.fd_fullscreenPopGestureRecognizer.enabled = NO;
76 77 78
    if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
        self.navigationController.interactivePopGestureRecognizer.enabled = NO;
    }
79 80 81 82 83
}

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
曹云霄's avatar
曹云霄 committed
84
    self.navigationController.fd_fullscreenPopGestureRecognizer.enabled = YES;
85 86 87
    if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
        self.navigationController.interactivePopGestureRecognizer.enabled = YES;
    }
88 89
}

曹云霄's avatar
曹云霄 committed
90 91 92
#pragma mark -布局
- (void)uiConfigAction
{
曹云霄's avatar
曹云霄 committed
93 94 95 96 97 98 99 100 101 102 103 104 105
    //圆角
    self.customerNameBack.layer.masksToBounds = YES;
    self.customerNameBack.layer.cornerRadius = kCornerRadius;
    self.phoneNumberBack.layer.masksToBounds = YES;
    self.phoneNumberBack.layer.cornerRadius = kCornerRadius;
    self.companyNameBack.layer.masksToBounds = YES;
    self.companyNameBack.layer.cornerRadius = kCornerRadius;
    self.customerAddressBack.layer.masksToBounds = YES;
    self.customerAddressBack.layer.cornerRadius = kCornerRadius;
    self.addpersonInformationButton.layer.masksToBounds = YES;
    self.addpersonInformationButton.layer.cornerRadius = kCornerRadius;
    self.changePersonInformationButton.layer.masksToBounds = YES;
    self.changePersonInformationButton.layer.cornerRadius = kCornerRadius;
勾芒's avatar
勾芒 committed
106
    self.indexPage = 1;
107 108
    self.customerHeader.userInteractionEnabled = YES;
    [self.customerHeader addGestureRecognizer:[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(customerHeaderClckAction:)]];
曹云霄's avatar
曹云霄 committed
109 110 111
    //隐藏更改客户按钮
    self.changePersonInformationButton.hidden = YES;
    //代理
曹云霄's avatar
曹云霄 committed
112
    self.informationTableview.delegate = self;
曹云霄's avatar
曹云霄 committed
113
    self.informationTableview.dataSource = self;
勾芒's avatar
勾芒 committed
114
    self.informationTableview.tableFooterView = [UIView new];
曹云霄's avatar
曹云霄 committed
115
    self.searchPersonInformationField.delegate = self;
勾芒's avatar
勾芒 committed
116 117
    //监听键盘落下的通知
    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(KeyboadrDismiss) name:UIKeyboardWillHideNotification object:nil];
勾芒's avatar
勾芒 committed
118 119
    //设置当前客户通知
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(SetupCurrentCustomer:) name:@"SETUPCURRENTCUSTOMER" object:nil];
120 121
    //清空当前客户数据
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(ChangeCustomerName:) name:@"EMPTYCUSTOMERNAME" object:nil];
曹云霄's avatar
曹云霄 committed
122
    WS(weakSelf);
勾芒's avatar
勾芒 committed
123 124
    //下拉刷新
    MjRefreshHeaderCustom *headerRefresh = [MjRefreshHeaderCustom headerWithRefreshingBlock:^{
曹云霄's avatar
曹云霄 committed
125
        
126
        weakSelf.condition.resellerCodeEquals = [Shoppersmanager manager].Shoppers.employee.currentDepart.orgCode;
曹云霄's avatar
曹云霄 committed
127 128
        weakSelf.condition.page.page = 1;
        weakSelf.condition.page.rows = KROWS;
曹云霄's avatar
曹云霄 committed
129 130 131
        weakSelf.indexPage = 1;
        [weakSelf.informationTableview.mj_footer resetNoMoreData];
        [weakSelf getShoppersAssociatedCustomer:weakSelf.condition isRemoveArray:YES];
勾芒's avatar
勾芒 committed
132 133 134 135 136 137 138 139 140
    }];
    headerRefresh.stateLabel.hidden = YES;
    headerRefresh.lastUpdatedTimeLabel.hidden = YES;
    self.informationTableview.mj_header =headerRefresh;
    //进入刷新状态
    [self.informationTableview.mj_header beginRefreshing];
    //上拉加载
    self.informationTableview.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
        
曹云霄's avatar
曹云霄 committed
141 142
        if (++ weakSelf.indexPage > weakSelf.totalPages) {
            [weakSelf.informationTableview.mj_footer endRefreshingWithNoMoreData];
勾芒's avatar
勾芒 committed
143 144
        }else
        {
曹云霄's avatar
曹云霄 committed
145 146
            weakSelf.condition.page.page = weakSelf.indexPage;
            weakSelf.condition.page.rows = KROWS;
曹云霄's avatar
曹云霄 committed
147
            [weakSelf getShoppersAssociatedCustomer:weakSelf.condition isRemoveArray:NO];
勾芒's avatar
勾芒 committed
148 149
        }
    }];
曹云霄's avatar
曹云霄 committed
150
    self.informationTableview.mj_footer.automaticallyHidden = YES;
曹云霄's avatar
曹云霄 committed
151 152
}

曹云霄's avatar
曹云霄 committed
153
#pragma mark -获取导购关联客户
勾芒's avatar
勾芒 committed
154
- (void)getShoppersAssociatedCustomer:(ConsumerQueryCondition *)condition isRemoveArray:(BOOL)remove
曹云霄's avatar
曹云霄 committed
155
{
156
    WS(weakSelf);
曹云霄's avatar
曹云霄 committed
157
    [self CreateMBProgressHUDLoding];
158
    [[NetworkRequestClassManager Manager] NetworkRequestWithURL:SERVERREQUESTURL(GETSHOPPERSCONSUMER) WithCallClass:weakSelf WithRequestType:0 WithParameter:condition WithReturnValueBlock:^(id returnValue) {
曹云霄's avatar
曹云霄 committed
159
        
曹云霄's avatar
曹云霄 committed
160 161 162 163
        weakSelf.informationTableview.emptyDataSetSource = weakSelf;
        weakSelf.informationTableview.emptyDataSetDelegate = weakSelf;
        [weakSelf RemoveMBProgressHUDLoding];
        [weakSelf endRefreshingForTableView:weakSelf.informationTableview];
曹云霄's avatar
曹云霄 committed
164 165
        if ([returnValue[@"code"] isEqualToNumber:@0]) {
            
勾芒's avatar
勾芒 committed
166
            if (remove) {
曹云霄's avatar
曹云霄 committed
167
                [weakSelf.CustomerresultArray removeAllObjects];
勾芒's avatar
勾芒 committed
168
            }
勾芒's avatar
勾芒 committed
169
            NSDictionary *datas = returnValue[@"data"];
勾芒's avatar
勾芒 committed
170
            
勾芒's avatar
勾芒 committed
171
            ConsumerPageResult *Customerresult = [[ConsumerPageResult alloc]initWithDictionary:datas error:nil];
曹云霄's avatar
曹云霄 committed
172
            weakSelf.totalPages = [datas[@"totalpages"] intValue];
勾芒's avatar
勾芒 committed
173
            for (TOConsumerEntity *objc in Customerresult.results) {
曹云霄's avatar
曹云霄 committed
174
                
勾芒's avatar
勾芒 committed
175 176 177 178 179 180 181 182 183 184 185 186 187 188
                 MyclientEntityModel *myclientModel = [[MyclientEntityModel alloc]init];
                 myclientModel.fid = objc.fid;
                 myclientModel.createName = objc.createName;
                 myclientModel.createBy = objc.createBy;
                 myclientModel.createDate = objc.createDate;
                 myclientModel.sysOrgCode = objc.sysOrgCode;
                 myclientModel.name = objc.name;
                 myclientModel.mobile = objc.mobile;
                 myclientModel.province = objc.province;
                 myclientModel.city = objc.city;
                 myclientModel.country = objc.country;
                 myclientModel.address = objc.address;
                 myclientModel.picture = objc.picture;
                 myclientModel.lastVisitedTime = objc.lastVisitedTime;
勾芒's avatar
勾芒 committed
189
                 myclientModel.company = objc.company;
勾芒's avatar
勾芒 committed
190
                
曹云霄's avatar
曹云霄 committed
191
                [weakSelf.CustomerresultArray addObject:myclientModel];
曹云霄's avatar
曹云霄 committed
192
            }
勾芒's avatar
勾芒 committed
193
            //刷新后添加选中状态
曹云霄's avatar
曹云霄 committed
194 195
            for (int i=0; i<weakSelf.CustomerresultArray.count; i++) {
                MyclientEntityModel *myclientModel = [weakSelf.CustomerresultArray objectAtIndex_opple:i];
勾芒's avatar
勾芒 committed
196
                if ([[Customermanager manager].model.fid isEqualToString:myclientModel.fid]) {
曹云霄's avatar
曹云霄 committed
197
                    InformationTableViewCell *cell = [weakSelf.informationTableview cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]];
勾芒's avatar
勾芒 committed
198 199 200 201
                    myclientModel.selectedState = YES;
                    cell.setCurrentCustomer.selected = YES;
                }
            }
曹云霄's avatar
曹云霄 committed
202
            [weakSelf.informationTableview reloadData];
曹云霄's avatar
曹云霄 committed
203 204 205
        }
        else
        {
曹云霄's avatar
曹云霄 committed
206
            [weakSelf ErrorMBProgressView:returnValue[@"message"]];
曹云霄's avatar
曹云霄 committed
207 208 209
        }
        
    } WithErrorCodeBlock:^(id errorCodeValue) {
曹云霄's avatar
曹云霄 committed
210
        [weakSelf RemoveMBProgressHUDLoding];
211
        [weakSelf promptCustomerWithString:NETWORK];
曹云霄's avatar
曹云霄 committed
212
        
213
    } WithFailureBlock:^(NSError *error) {
曹云霄's avatar
曹云霄 committed
214
        
曹云霄's avatar
曹云霄 committed
215 216
        [weakSelf RemoveMBProgressHUDLoding];
        [weakSelf endRefreshingForTableView:weakSelf.informationTableview];
217
        [weakSelf ErrorMBProgressView:error.localizedDescription];
曹云霄's avatar
曹云霄 committed
218 219 220 221
    }];
}


曹云霄's avatar
曹云霄 committed
222 223 224
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    InformationTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"information" forIndexPath:indexPath];
曹云霄's avatar
曹云霄 committed
225
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
勾芒's avatar
勾芒 committed
226
    cell.indexNumber = indexPath.row;
曹云霄's avatar
曹云霄 committed
227
    cell.model = [self.CustomerresultArray objectAtIndex_opple:indexPath.row];
勾芒's avatar
勾芒 committed
228
    //清空其他选中状态
229
    WS(weakSelf);
勾芒's avatar
勾芒 committed
230
    [cell setBlockSeletced:^(NSInteger index) {
曹云霄's avatar
曹云霄 committed
231
        [weakSelf SetCustomerButtonClick:index];
勾芒's avatar
勾芒 committed
232
    }];
曹云霄's avatar
曹云霄 committed
233
    return cell;
曹云霄's avatar
曹云霄 committed
234 235
}

曹云霄's avatar
曹云霄 committed
236 237
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
曹云霄's avatar
曹云霄 committed
238
    return self.CustomerresultArray.count;
曹云霄's avatar
曹云霄 committed
239
}
曹云霄's avatar
曹云霄 committed
240

曹云霄's avatar
曹云霄 committed
241
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
曹云霄's avatar
曹云霄 committed
242
{
曹云霄's avatar
曹云霄 committed
243
    return 100;
曹云霄's avatar
曹云霄 committed
244 245
}

曹云霄's avatar
曹云霄 committed
246

曹云霄's avatar
曹云霄 committed
247 248 249 250
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"StoryboardwithCYX" bundle:nil];
    ClientdetailsViewController *clientdetails = [storyboard instantiateViewControllerWithIdentifier:@"clientdetails"];
勾芒's avatar
勾芒 committed
251
    clientdetails.model = [self.CustomerresultArray objectAtIndex_opple:indexPath.row];
勾芒's avatar
勾芒 committed
252 253
    clientdetails.cellindex = indexPath.row;
    //设置当前客户
254
    WS(weakSelf);
勾芒's avatar
勾芒 committed
255 256
    [clientdetails setCurrentUserBlock:^(NSInteger index,NSString *title) {
        if ([title isEqualToString:@"设为当前客户"]) {
曹云霄's avatar
曹云霄 committed
257 258
            InformationTableViewCell *cell = [weakSelf.informationTableview cellForRowAtIndexPath:[NSIndexPath indexPathForRow:index inSection:0]];
            [weakSelf SetCustomerButtonClick:index];
勾芒's avatar
勾芒 committed
259 260 261
            cell.setCurrentCustomer.selected = YES;
        }else if ([title isEqualToString:@"退出当前客户"])
        {
曹云霄's avatar
曹云霄 committed
262 263
            [weakSelf ExitCurrentCustomer];
            [weakSelf.addpersonInformationButton setTitle:@"添加客户信息" forState:UIControlStateNormal];
勾芒's avatar
勾芒 committed
264
        }
勾芒's avatar
勾芒 committed
265
    }];
曹云霄's avatar
曹云霄 committed
266 267
    [self.navigationController pushViewController:clientdetails animated:YES];
}
曹云霄's avatar
曹云霄 committed
268 269


勾芒's avatar
勾芒 committed
270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294
#pragma mark -所有客户界面 设置当前客户通知回调
- (void)SetupCurrentCustomer:(NSNotification *)not
{
    NSDictionary *dict = not.object;
    for (InformationTableViewCell *cell in self.informationTableview.visibleCells) {
        
        cell.setCurrentCustomer.selected = NO;
    }
    for (MyclientEntityModel *model in self.CustomerresultArray) {
        
        if ([model.fid isEqualToString:dict[@"customerid"]]) {
            model.selectedState = YES;
        }else
        {
           model.selectedState = NO;
        }
    }
    if ([dict[@"title"] isEqualToString:@"设为当前客户"]) {
        MyclientEntityModel *model = dict[@"model"];
        self.customerNameField.text = model.name;
        self.phoneNumberField.text = model.mobile;
        self.customerAddress.text = model.address;
        [self.customerHeader sd_setImageWithURL:[NSURL URLWithString:model.picture] placeholderImage:TCImage(@"now")];
        //保存客户信息
        [Shoppersmanager manager].currentCustomer = YES;
勾芒's avatar
勾芒 committed
295
        [Customermanager manager].model = model;
勾芒's avatar
勾芒 committed
296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312
        [self.addpersonInformationButton setTitle:@"退出当前客户" forState:UIControlStateNormal];
        self.changePersonInformationButton.hidden = NO;
        [self SetupUserShoppingCarNumberRequest];
        [self SetupUserRequest];
        [self ChangeCustomerName];
        
        self.customerNameField.enabled = NO;
        self.customerAddress.enabled = NO;
        self.phoneNumberField.enabled = NO;
        self.companyNameField.enabled = NO;
    }else if ([dict[@"title"] isEqualToString:@"退出当前客户"])
    {
        [self ExitCurrentCustomer];
    }
}

#pragma mark -设置为当前客户回调2
勾芒's avatar
勾芒 committed
313
- (void)SetCustomerButtonClick:(NSInteger)index;
曹云霄's avatar
曹云霄 committed
314 315 316 317
{
    for (InformationTableViewCell *cell in self.informationTableview.visibleCells) {
        cell.setCurrentCustomer.selected = NO;
    }
勾芒's avatar
勾芒 committed
318 319 320 321 322 323 324 325
    for (MyclientEntityModel *model in self.CustomerresultArray) {
        model.selectedState = NO;
    }
    MyclientEntityModel *model = [self.CustomerresultArray objectAtIndex_opple:index];
    model.selectedState = YES;
    self.customerNameField.text = model.name;
    self.phoneNumberField.text = model.mobile;
    self.customerAddress.text = model.address;
勾芒's avatar
勾芒 committed
326
    self.companyNameField.text = model.company;
勾芒's avatar
勾芒 committed
327
    [self.customerHeader sd_setImageWithURL:[NSURL URLWithString:model.picture] placeholderImage:TCImage(@"now")];
勾芒's avatar
勾芒 committed
328
    //保存客户信息
勾芒's avatar
勾芒 committed
329
    [Shoppersmanager manager].currentCustomer = YES;
勾芒's avatar
勾芒 committed
330
    [Customermanager manager].model = model;
勾芒's avatar
勾芒 committed
331 332
    [self.addpersonInformationButton setTitle:@"退出当前客户" forState:UIControlStateNormal];
    self.changePersonInformationButton.hidden = NO;
勾芒's avatar
勾芒 committed
333
    [self SetupUserShoppingCarNumberRequest];
勾芒's avatar
勾芒 committed
334
    [self SetupUserRequest];
勾芒's avatar
勾芒 committed
335
    [self ChangeCustomerName];
勾芒's avatar
勾芒 committed
336 337 338 339 340
    
    self.customerNameField.enabled = NO;
    self.customerAddress.enabled = NO;
    self.phoneNumberField.enabled = NO;
    self.companyNameField.enabled = NO;
勾芒's avatar
勾芒 committed
341 342 343
}


344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360
#pragma mark -更改客户头像
- (void)customerHeaderClckAction:(UITapGestureRecognizer *)tap
{
    if (![Shoppersmanager manager].currentCustomer) {
        [self ErrorMBProgressView:@"请先设置当前客户"];
        return;
    }
    UIAlertController *alertView = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleAlert];
    UIImagePickerController *PcCamera = [[UIImagePickerController alloc]init];
    PcCamera.delegate = self;
    [DeviceDirectionManager instance].isHorizontal=YES;
    __weak typeof(self) weakSelf = self;
    [alertView addAction:[UIAlertAction actionWithTitle:@"拍照" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
        //拍照
        if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
            [PcCamera setSourceType:UIImagePickerControllerSourceTypeCamera];
            PcCamera.allowsEditing = YES;
曹云霄's avatar
曹云霄 committed
361 362 363
            dispatch_async(dispatch_get_main_queue(), ^{
                [weakSelf presentViewController:PcCamera animated:YES completion:nil];
            });
364 365 366 367 368 369 370 371 372 373 374
        }
        else
        {
            [weakSelf ErrorMBProgressView:@"相机无法使用"];
        }
    }]];
    [alertView addAction:[UIAlertAction actionWithTitle:@"从相册选择" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
        //从相册中选择
        if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
            [PcCamera setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
            PcCamera.allowsEditing = YES;
曹云霄's avatar
曹云霄 committed
375 376 377
            dispatch_async(dispatch_get_main_queue(), ^{
                [weakSelf presentViewController:PcCamera animated:YES completion:nil];
            });
378 379 380 381 382 383 384 385 386
        }
        else
        {
            [weakSelf ErrorMBProgressView:@"相册无法打开"];
        }
    }]];
    [alertView addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
        [alertView dismissViewControllerAnimated:YES completion:nil];
    }]];
曹云霄's avatar
曹云霄 committed
387 388 389
    dispatch_async(dispatch_get_main_queue(), ^{
        [weakSelf presentViewController:alertView animated:YES completion:nil];
    });
390 391 392 393 394 395 396 397 398 399 400 401 402 403
}

#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];
    __weak typeof(self) weskSelf = self;
    //修改并保存头像
    [self uploadUserHeader:Headimage completeBlock:^(NSString *string) {
        weskSelf.customerHeader.image = Headimage;
        [Customermanager manager].model.picture = string;
曹云霄's avatar
曹云霄 committed
404 405
        for (int i=0;i<weskSelf.CustomerresultArray.count;i++) {
            MyclientEntityModel *customerModel = (MyclientEntityModel *)[weskSelf.CustomerresultArray objectAtIndex_opple:i];
406 407 408
            if ([customerModel.fid isEqualToString:[Customermanager manager].model.fid]) {
                customerModel.picture = string;
                NSIndexPath *indexPath = [NSIndexPath indexPathForRow:i inSection:0];
曹云霄's avatar
曹云霄 committed
409
                [weskSelf.informationTableview reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationBottom];
410 411 412
                break;
            }
        }
413 414 415 416 417 418 419 420
    }];
}

#pragma mark -保存选中头像、并上传
- (void)uploadUserHeader:(UIImage *)image completeBlock:(void(^)(NSString *string))complete
{
    NSData *data = UIImageJPEGRepresentation(image, 0.5);
     __weak typeof(self) weskSelf = self;
421
    [[NetworkRequestClassManager Manager] UploadImageWithURL:SERVERREQUESTURL(UPLOADHEADER) WithRequestType:1 WithImageDatas:data WithParameter:nil WithReturnValueBlock:^(id returnValue) {
422 423 424 425 426 427 428 429 430 431 432 433
        
        if ([returnValue[@"code"] isEqualToNumber:@0]) {
            [weskSelf modifyshoppersInformation:returnValue[@"data"] complete:^{
                complete(returnValue[@"data"]);
            }];
        }else
        {
            [weskSelf ErrorMBProgressView:returnValue[@"message"]];
        }
        
    } WithprogressBlock:^(double progress) {
        if (progress >= 1) {
434 435
            weskSelf.TCHud.labelText = @"上传完成";
            [weskSelf RemoveMBProgressHUDLoding];
436 437
        }else
        {
438
            [weskSelf ShowProgressView:progress];
439 440
        }
    } WithErrorCodeBlock:^(id errorCodeValue) {
441 442
        weskSelf.TCHud.labelText = @"上传失败";
        [weskSelf RemoveMBProgressHUDLoding];
443
    } WithFailureBlock:^(NSError *error) {
444 445
        weskSelf.TCHud.labelText = @"上传失败";
        [weskSelf RemoveMBProgressHUDLoding];
446 447 448 449 450 451 452 453
    }];
}


#pragma mark -上传完成修改导购个人信息
- (void)modifyshoppersInformation:(NSString *)headerurl complete:(void(^)())block
{
    [self CreateMBProgressHUDLoding];
454
    MyclientEntityModel *customerEntity = nil;
455 456
    customerEntity = [Customermanager manager].model;
    customerEntity.picture = headerurl;
曹云霄's avatar
曹云霄 committed
457
    WS(weakSelf);
458
    [[NetworkRequestClassManager Manager] NetworkRequestWithURL:SERVERREQUESTURL(ADDCONSUMER) WithCallClass:weakSelf WithRequestType:0 WithParameter:customerEntity WithReturnValueBlock:^(id returnValue) {
459
        
曹云霄's avatar
曹云霄 committed
460
        [weakSelf RemoveMBProgressHUDLoding];
461 462
        if ([returnValue[@"code"] isEqualToNumber:@0]) {
            block();
曹云霄's avatar
曹云霄 committed
463
            [weakSelf SuccessMBProgressView:@"修改成功"];
464 465
        }else
        {
曹云霄's avatar
曹云霄 committed
466
            [weakSelf ErrorMBProgressView:returnValue[@"message"]];
467 468 469
        }
        
    } WithErrorCodeBlock:^(id errorCodeValue) {
曹云霄's avatar
曹云霄 committed
470 471
        [weakSelf RemoveMBProgressHUDLoding];
        [weakSelf ErrorMBProgressView:NETWORK];
472
    } WithFailureBlock:^(NSError *error) {
曹云霄's avatar
曹云霄 committed
473 474
        [weakSelf RemoveMBProgressHUDLoding];
        [weakSelf ErrorMBProgressView:error.localizedDescription];
475 476 477 478 479
    }];
}



勾芒's avatar
勾芒 committed
480 481 482
#pragma mark -更新用户名字
- (void)ChangeCustomerName
{
勾芒's avatar
勾芒 committed
483
    MyclientEntityModel *model = [Customermanager manager].model;
484
    [[NSNotificationCenter defaultCenter] postNotificationName:CHANGECUSTOMERNAME object:model.name];
曹云霄's avatar
曹云霄 committed
485
}
曹云霄's avatar
曹云霄 committed
486

曹云霄's avatar
曹云霄 committed
487

勾芒's avatar
勾芒 committed
488 489 490
#pragma mark -设置为当前客户、查询购物车数量
- (void)SetupUserShoppingCarNumberRequest
{
勾芒's avatar
勾芒 committed
491
    [self QueryShoppingCarNumber];
勾芒's avatar
勾芒 committed
492 493 494
}


勾芒's avatar
勾芒 committed
495

勾芒's avatar
勾芒 committed
496 497 498
#pragma mark -设置为当前用户请求、写入访问时间
- (void)SetupUserRequest
{
499
    WS(weakSelf);
勾芒's avatar
勾芒 committed
500
    MyclientEntityModel *model = [Customermanager manager].model;
501
    [[NetworkRequestClassManager Manager] NetworkWithDictionaryRequestWithURL:[NSString stringWithFormat:@"%@%@",SERVERREQUESTURL(SAVEVISITEDTIME),model.fid] WithCallClass:weakSelf WithRequestType:1 WithParameter:nil WithReturnValueBlock:^(id returnValue) {
勾芒's avatar
勾芒 committed
502 503 504 505 506 507 508
        
        if ([returnValue[@"code"] isEqualToNumber:@0]) {
            NSLog(@"写入客户访问时间成功");
        }
        
    } WithErrorCodeBlock:^(id errorCodeValue) {
        
509
        [weakSelf promptCustomerWithString:@"网络连接已断开"];
勾芒's avatar
勾芒 committed
510
        
勾芒's avatar
勾芒 committed
511 512 513 514 515 516 517
    } WithFailureBlock:^(id error) {
        
        NSLog(@"写入客户访问时间失败");
    }];
}


勾芒's avatar
勾芒 committed
518
#pragma mark -添加客户信息、或者退出当前客户
曹云霄's avatar
曹云霄 committed
519 520 521
- (IBAction)addCustomerInformationORExit:(UIButton *)sender {
    
    if ([sender.currentTitle isEqualToString:@"退出当前客户"]) {
勾芒's avatar
勾芒 committed
522
       
勾芒's avatar
勾芒 committed
523
        [self ExitCurrentCustomer];
曹云霄's avatar
曹云霄 committed
524 525 526
        [sender setTitle:@"添加客户信息" forState:UIControlStateNormal];
        return;
    }
勾芒's avatar
勾芒 committed
527
    [self addCustomerInformation:NO];
勾芒's avatar
勾芒 committed
528
    
曹云霄's avatar
曹云霄 committed
529 530
}

勾芒's avatar
勾芒 committed
531 532 533 534 535 536 537 538 539 540 541 542 543
#pragma mark -退出当前客户
- (void)ExitCurrentCustomer
{
    self.customerNameField.text = nil;
    self.customerAddress.text = nil;
    self.phoneNumberField.text = nil;
    self.companyNameField.text = nil;
    self.customerNameField.enabled = YES;
    self.customerAddress.enabled = YES;
    self.phoneNumberField.enabled = YES;
    self.companyNameField.enabled = YES;
    self.changePersonInformationButton.hidden = YES;
    [Shoppersmanager manager].currentCustomer = NO;
勾芒's avatar
勾芒 committed
544
    [Customermanager manager].model = nil;
勾芒's avatar
勾芒 committed
545
    self.customerHeader.image = TCImage(@"now");
勾芒's avatar
勾芒 committed
546 547 548 549 550 551 552 553 554 555 556 557 558
    [self.changePersonInformationButton setTitle:@"更改客户信息" forState:UIControlStateNormal];
    [self ChangeCustomerName];
    [self QueryShoppingCarNumber];
    //全部为为选中状态
    for (InformationTableViewCell *cell in self.informationTableview.visibleCells) {
        
        cell.setCurrentCustomer.selected = NO;
    }
    for (MyclientEntityModel *model in self.CustomerresultArray) {
        
        model.selectedState = NO;
    }
}
曹云霄's avatar
曹云霄 committed
559

勾芒's avatar
勾芒 committed
560
#pragma mark -添加客户信息请求 -新增、或者修改 ischange为真是新增
勾芒's avatar
勾芒 committed
561
- (void)addCustomerInformation:(BOOL)isChange
曹云霄's avatar
曹云霄 committed
562 563
{
    [self.view endEditing:YES];
564
    if ([BaseViewController isBlankString:self.customerNameField.text]) {
曹云霄's avatar
曹云霄 committed
565 566 567 568
        
        [self ErrorMBProgressView:@"客户名不能为空"];
        return;
    }
569
    if ([BaseViewController isBlankString:self.phoneNumberField.text]) {
曹云霄's avatar
曹云霄 committed
570 571 572 573 574 575 576 577 578 579
        
        [self ErrorMBProgressView:@"手机号码不能为空"];
        return;
    }
    NSString *phoneNumber = self.phoneNumberField.text;
    if (![HENLENSONG isValidateMobile:phoneNumber]) {
        
        [self ErrorMBProgressView:@"手机号码格式不正确"];
        return;
    }
580
    if ([BaseViewController isBlankString:self.customerAddress.text]) {
曹云霄's avatar
曹云霄 committed
581 582 583 584
        
        [self ErrorMBProgressView:@"地址不能为空"];
        return;
    }
曹云霄's avatar
曹云霄 committed
585
    //客户信息类
勾芒's avatar
勾芒 committed
586
    MyclientEntityModel *customerEntity = [[MyclientEntityModel alloc]init];
587
    customerEntity.createName = [Shoppersmanager manager].Shoppers.employee.realName;
曹云霄's avatar
曹云霄 committed
588 589
    customerEntity.mobile = self.phoneNumberField.text;
    customerEntity.address = self.customerAddress.text;
590
    customerEntity.name = self.customerNameField.text;
591
    customerEntity.company = self.companyNameField.text;
勾芒's avatar
勾芒 committed
592
    customerEntity.picture = [Customermanager manager].model.picture;
勾芒's avatar
勾芒 committed
593 594
    //修改
    if (isChange) {
勾芒's avatar
勾芒 committed
595
       customerEntity.fid = [Customermanager manager].model.fid;
勾芒's avatar
勾芒 committed
596
    }
597
    WS(weakSelf);
曹云霄's avatar
曹云霄 committed
598
    [self CreateMBProgressHUDLoding];
599
    [[NetworkRequestClassManager Manager] NetworkRequestWithURL:SERVERREQUESTURL(ADDCONSUMER) WithCallClass:weakSelf WithRequestType:0 WithParameter:customerEntity WithReturnValueBlock:^(id returnValue) {
曹云霄's avatar
曹云霄 committed
600
        
601
        [weakSelf RemoveMBProgressHUDLoding];
曹云霄's avatar
曹云霄 committed
602 603
        if ([returnValue[@"code"] isEqualToNumber:@0]) {
            
勾芒's avatar
勾芒 committed
604
            //进入刷新状态
605
            [weakSelf.informationTableview.mj_header beginRefreshing];
勾芒's avatar
勾芒 committed
606 607
            //新增保存ID
            if (!isChange) {
曹云霄's avatar
曹云霄 committed
608 609
                customerEntity.fid = returnValue[@"data"];
                [Customermanager manager].model = customerEntity;
610 611
                [weakSelf SuccessMBProgressView:@"新增成功"];
                [weakSelf addAddressInformationRequest];
勾芒's avatar
勾芒 committed
612 613
            }else
            {
614 615
                [weakSelf SuccessMBProgressView:@"修改成功"];
                [weakSelf.changePersonInformationButton setTitle:@"更改客户信息" forState:UIControlStateNormal];
勾芒's avatar
勾芒 committed
616
            }
勾芒's avatar
勾芒 committed
617
            //保存客户信息
勾芒's avatar
勾芒 committed
618
            [Customermanager manager].model = customerEntity;
勾芒's avatar
勾芒 committed
619
            [Shoppersmanager manager].currentCustomer = YES;
620 621 622 623 624 625 626 627 628
            [weakSelf.addpersonInformationButton setTitle:@"退出当前客户" forState:UIControlStateNormal];
            weakSelf.changePersonInformationButton.hidden = NO;
            weakSelf.customerNameField.enabled = NO;
            weakSelf.customerAddress.enabled = NO;
            weakSelf.phoneNumberField.enabled = NO;
            weakSelf.companyNameField.enabled = NO;
            [weakSelf SetupUserShoppingCarNumberRequest];
            [weakSelf SetupUserRequest];
            [weakSelf ChangeCustomerName];
曹云霄's avatar
曹云霄 committed
629 630 631
        }
        else
        {
632
            [weakSelf ErrorMBProgressView:returnValue[@"message"]];
曹云霄's avatar
曹云霄 committed
633 634 635 636
        }
        
    } WithErrorCodeBlock:^(id errorCodeValue) {
        
637 638
        [weakSelf RemoveMBProgressHUDLoding];
        [weakSelf promptCustomerWithString:@"网络连接已断开"];
曹云霄's avatar
曹云霄 committed
639 640
        
    } WithFailureBlock:^(id error) {
641
        [weakSelf RemoveMBProgressHUDLoding];
曹云霄's avatar
曹云霄 committed
642 643 644 645
    }];
}


勾芒's avatar
勾芒 committed
646 647 648 649
#pragma mark -新增客户成功写入默认地址信息
- (void)addAddressInformationRequest
{
    TOShippingAddrEntity *address = [[TOShippingAddrEntity alloc]init];
曹云霄's avatar
曹云霄 committed
650 651
    MyclientEntityModel *model = [Customermanager manager].model;
    address.consumerId = model.fid;
勾芒's avatar
勾芒 committed
652 653 654
    address.name = self.customerNameField.text;
    address.miblephone = self.phoneNumberField.text;
    address.address = self.customerAddress.text;
655 656
    WS(weakSelf);
    [[NetworkRequestClassManager Manager] NetworkRequestWithURL:SERVERREQUESTURL(ADDADDRESS) WithCallClass:weakSelf WithRequestType:0 WithParameter:address WithReturnValueBlock:^(id returnValue) {
勾芒's avatar
勾芒 committed
657 658 659 660 661 662 663
        
        if ([returnValue[@"code"] isEqualToNumber:@0]) {
            
            NSLog(@"写入默认收货地址成功");
        }
        else
        {
664
            [weakSelf ErrorMBProgressView:returnValue[@"message"]];
勾芒's avatar
勾芒 committed
665 666 667 668
        }
        
    } WithErrorCodeBlock:^(id errorCodeValue) {
        
669
        [weakSelf promptCustomerWithString:@"网络连接已断开"];
勾芒's avatar
勾芒 committed
670 671 672 673 674 675 676 677
        
    } WithFailureBlock:^(id error) {
        
        NSLog(@"写入默认收货地址失败");
    }];
}


曹云霄's avatar
曹云霄 committed
678 679
#pragma mark -更改客户信息
- (IBAction)changeCustomerInformation:(UIButton *)sender {
勾芒's avatar
勾芒 committed
680 681 682 683 684 685 686 687 688 689 690
    if ([sender.currentTitle isEqualToString:@"保存"]) {
        [self.customerNameField resignFirstResponder];
        [sender setTitle:@"更改客户信息" forState:UIControlStateNormal];
         [self addCustomerInformation:YES];
    }else
    {
        dispatch_async(dispatch_get_main_queue(), ^{
            [self.customerNameField becomeFirstResponder];
        });
        [sender setTitle:@"保存" forState:UIControlStateNormal];
    }
曹云霄's avatar
曹云霄 committed
691 692 693 694 695 696 697
    self.customerNameField.enabled = YES;
    self.customerAddress.enabled = YES;
    self.phoneNumberField.enabled = YES;
    self.companyNameField.enabled = YES;
}


勾芒's avatar
勾芒 committed
698

曹云霄's avatar
曹云霄 committed
699 700 701
#pragma mark -UITextFieldDelegate代理 ----搜索
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
曹云霄's avatar
曹云霄 committed
702
    [textField resignFirstResponder];
曹云霄's avatar
曹云霄 committed
703 704 705 706 707 708 709 710
    [self searchCustomerInforMation];
    return YES;
}


#pragma amrk -搜索客户信息
- (void)searchCustomerInforMation
{
711
    if ([BaseViewController isBlankString:self.searchPersonInformationField.text]) {
曹云霄's avatar
曹云霄 committed
712 713 714 715 716
        self.condition.nameEquals = nil;
        self.condition.mobileEquals = nil;
    }else {
        self.condition.nameEquals = self.searchPersonInformationField.text;
        self.condition.mobileEquals = self.searchPersonInformationField.text;
曹云霄's avatar
曹云霄 committed
717
    }
曹云霄's avatar
曹云霄 committed
718
    [self.informationTableview.mj_header beginRefreshing];
勾芒's avatar
勾芒 committed
719 720 721 722 723 724
}


#pragma mark -键盘落下,判断更改信息按钮是否可见,可见则取消输入框的响应
- (void)KeyboadrDismiss
{
勾芒's avatar
勾芒 committed
725
    if (!self.changePersonInformationButton.hidden) {
勾芒's avatar
勾芒 committed
726 727 728 729 730
     
        self.customerNameField.enabled = NO;
        self.customerAddress.enabled = NO;
        self.phoneNumberField.enabled = NO;
        self.companyNameField.enabled = NO;
731 732 733 734
        self.customerNameField.text = [Customermanager manager].model.name;
        self.customerAddress.text = [Customermanager manager].model.address;
        self.phoneNumberField.text = [Customermanager manager].model.mobile;
        self.companyNameField.text = [Customermanager manager].model.company;
735
        [self.changePersonInformationButton setTitle:@"更改客户信息" forState:UIControlStateNormal];
勾芒's avatar
勾芒 committed
736
    }
曹云霄's avatar
曹云霄 committed
737
}
曹云霄's avatar
曹云霄 committed
738

739 740 741 742 743 744 745
#pragma mark -清空当前客户的数据
- (void)ChangeCustomerName:(NSNotification *)not
{
    [self.informationTableview.mj_header beginRefreshing];
    [self ExitCurrentCustomer];
}

曹云霄's avatar
曹云霄 committed
746

曹云霄's avatar
曹云霄 committed
747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762
#pragma mark -友好界面
- (UIImage *)imageForEmptyDataSet:(UIScrollView *)scrollView
{
    return kNoDataImage;
}

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

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

曹云霄's avatar
曹云霄 committed
763 764 765 766 767
- (CGFloat)verticalOffsetForEmptyDataSet:(UIScrollView *)scrollView
{
    return 100;
}

曹云霄's avatar
曹云霄 committed
768 769 770


@end