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

#import "AllCustomerViewController.h"
#import "AllCutomerTableViewCell.h"
勾芒's avatar
勾芒 committed
11 12
#import "DateSelectedViewController.h"
#import "MyclientEntityModel.h"
勾芒's avatar
勾芒 committed
13 14
#import "ClientdetailsViewController.h"

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

勾芒's avatar
勾芒 committed
17 18 19 20
/**
 *  数据源
 */
@property (nonatomic,strong) NSMutableArray *CustomerresultArray;
勾芒's avatar
勾芒 committed
21 22 23 24 25 26


/**
 *  总页数
 */
@property (nonatomic,assign) int totalPages;
27

28

29

曹云霄's avatar
曹云霄 committed
30 31 32 33
@end

@implementation AllCustomerViewController

勾芒's avatar
勾芒 committed
34 35 36 37 38 39 40 41 42 43 44 45 46

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

47 48 49 50 51 52 53
/**
 *  初始化参数模型
 */
- (ConsumerQueryCondition *)conditionModel
{
    if (!_conditionModel) {
        _conditionModel = [[ConsumerQueryCondition alloc]init];
54 55 56 57 58
        DataPage *page = [[DataPage alloc]init];
        page.page = ONE;
        page.rows = KROWS;
        _conditionModel.page = page;
        _conditionModel.resellerCodeEquals = [[Shoppersmanager manager].Shoppers.employee.currentDepart  orgCode];
59 60 61 62
    }
    return _conditionModel;
}

勾芒's avatar
勾芒 committed
63

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

勾芒's avatar
勾芒 committed
70

曹云霄's avatar
曹云霄 committed
71 72 73 74 75
#pragma mark -UI
- (void)uiConfigAction
{
    self.allCustomerTableview.dataSource = self;
    self.allCustomerTableview.delegate = self;
勾芒's avatar
勾芒 committed
76
    self.searchTextfield.delegate = self;
勾芒's avatar
勾芒 committed
77 78
    self.view.backgroundColor = kMainGrayColor;
    self.allCustomerTableview.backgroundColor = [UIColor clearColor];
勾芒's avatar
勾芒 committed
79 80 81 82 83 84 85 86 87
    self.searchTextfield.returnKeyType = UIReturnKeySearch;
    
    //设置按钮时间
    [self.begindateButton setTitle:[self dateAsString:[NSDate date]] forState:UIControlStateNormal];
    [self.enddateButton setTitle:[self dateAsString:[NSDate date]] forState:UIControlStateNormal];
    self.begindateButton.layer.masksToBounds = YES;
    self.begindateButton.layer.cornerRadius = 10;
    self.enddateButton.layer.masksToBounds = YES;
    self.enddateButton.layer.cornerRadius = 10;
88
    WS(weakSelf);
勾芒's avatar
勾芒 committed
89 90
    //下拉刷新
    MjRefreshHeaderCustom *headerRefresh = [MjRefreshHeaderCustom headerWithRefreshingBlock:^{
91 92 93 94

        weakSelf.conditionModel.page.page = ONE;
        [weakSelf.allCustomerTableview.mj_footer resetNoMoreData];
        [weakSelf getShoppersAssociatedCustomer:weakSelf.conditionModel isRemove:YES];
勾芒's avatar
勾芒 committed
95 96 97 98 99 100 101
    }];
    headerRefresh.stateLabel.hidden = YES;
    headerRefresh.lastUpdatedTimeLabel.hidden = YES;
    self.allCustomerTableview.mj_header = headerRefresh;
    [self.allCustomerTableview.mj_header beginRefreshing];
    self.allCustomerTableview.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
        
102 103
        if ( ++ weakSelf.conditionModel.page.page > weakSelf.totalPages) {
            [weakSelf.allCustomerTableview.mj_footer endRefreshingWithNoMoreData];
勾芒's avatar
勾芒 committed
104 105
        }else
        {
106
            [weakSelf getShoppersAssociatedCustomer:weakSelf.conditionModel isRemove:NO];
勾芒's avatar
勾芒 committed
107 108
        }
    }];
曹云霄's avatar
曹云霄 committed
109
    self.allCustomerTableview.mj_footer.automaticallyHidden = YES;
曹云霄's avatar
曹云霄 committed
110 111 112
}


勾芒's avatar
勾芒 committed
113 114

#pragma mark -获取导购关联客户
勾芒's avatar
勾芒 committed
115
- (void)getShoppersAssociatedCustomer:(ConsumerQueryCondition *)condition isRemove:(BOOL)remove
勾芒's avatar
勾芒 committed
116
{
曹云霄's avatar
曹云霄 committed
117
    [XBLoadingView showHUDViewWithDefault];
曹云霄's avatar
曹云霄 committed
118
    WS(weakSelf);
曹云霄's avatar
曹云霄 committed
119
    [HTTP networkRequestWithURL:SERVERREQUESTURL(GETSHOPPERSCONSUMER)  withRequestType:ZERO withParameter:condition withReturnValueBlock:^(id returnValue) {
勾芒's avatar
勾芒 committed
120
        
曹云霄's avatar
曹云霄 committed
121 122
        weakSelf.allCustomerTableview.emptyDataSetSource = weakSelf;
        weakSelf.allCustomerTableview.emptyDataSetDelegate = weakSelf;
曹云霄's avatar
曹云霄 committed
123
        [XBLoadingView hideHUDViewWithDefault];
124
        [weakSelf endRefreshingForTableView:weakSelf.allCustomerTableview];
曹云霄's avatar
曹云霄 committed
125
        if (RESULT(returnValue)) {
勾芒's avatar
勾芒 committed
126
            if (remove) {
曹云霄's avatar
曹云霄 committed
127
                [weakSelf.CustomerresultArray removeAllObjects];
勾芒's avatar
勾芒 committed
128
            }
勾芒's avatar
勾芒 committed
129
            ConsumerPageResult *Customerresult = [[ConsumerPageResult alloc]initWithDictionary:returnValue[@"data"] error:nil];
曹云霄's avatar
曹云霄 committed
130
            weakSelf.totalPages = [returnValue[@"data"][@"totalpages"] intValue];
勾芒's avatar
勾芒 committed
131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
            for (TOConsumerEntity *objc in Customerresult.results) {
                
                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;
勾芒's avatar
勾芒 committed
146
                myclientModel.company = objc.company;
勾芒's avatar
勾芒 committed
147
                myclientModel.lastVisitedTime = objc.lastVisitedTime;
曹云霄's avatar
曹云霄 committed
148
                [weakSelf.CustomerresultArray addObject:myclientModel];
勾芒's avatar
勾芒 committed
149
            }
曹云霄's avatar
曹云霄 committed
150
            [weakSelf.allCustomerTableview reloadData];
勾芒's avatar
勾芒 committed
151 152 153
        }
        else
        {
曹云霄's avatar
曹云霄 committed
154
            [XBLoadingView showHUDViewWithText:returnValue[@"message"]];
勾芒's avatar
勾芒 committed
155
        }
156
    }withFailureBlock:^(id error) {
勾芒's avatar
勾芒 committed
157
        
曹云霄's avatar
曹云霄 committed
158
        [weakSelf endRefreshingForTableView:weakSelf.allCustomerTableview];
曹云霄's avatar
曹云霄 committed
159
        [XBLoadingView hideHUDViewWithDefault];
勾芒's avatar
勾芒 committed
160 161 162 163
    }];
}


曹云霄's avatar
曹云霄 committed
164 165 166 167 168 169
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    AllCutomerTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"allcustomercell" forIndexPath:indexPath];
    cell.contentBackView.layer.masksToBounds = YES;
    cell.contentBackView.layer.cornerRadius = kCornerRadius;
    cell.backgroundColor = [UIColor clearColor];
勾芒's avatar
勾芒 committed
170 171
    cell.Model = [self.CustomerresultArray objectAtIndex_opple:indexPath.row];
    
曹云霄's avatar
曹云霄 committed
172 173 174 175 176
    return cell;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
勾芒's avatar
勾芒 committed
177
    return self.CustomerresultArray.count;
曹云霄's avatar
曹云霄 committed
178 179 180
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
勾芒's avatar
勾芒 committed
181
    return 125;
曹云霄's avatar
曹云霄 committed
182 183
}

勾芒's avatar
勾芒 committed
184 185
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
曹云霄's avatar
曹云霄 committed
186
    ClientdetailsViewController *clientdetails = [[[self class] getMainStoryboardClass] instantiateViewControllerWithIdentifier:@"clientdetails"];
勾芒's avatar
勾芒 committed
187 188
    clientdetails.model = [self.CustomerresultArray objectAtIndex_opple:indexPath.row];
    clientdetails.cellindex = indexPath.row;
勾芒's avatar
勾芒 committed
189
    //设置当前客户
曹云霄's avatar
曹云霄 committed
190
    WS(weakSelf);
勾芒's avatar
勾芒 committed
191 192 193 194
    [clientdetails setCurrentUserBlock:^(NSInteger index,NSString *title) {
        
        NSString *customerID = [[weakSelf.CustomerresultArray objectAtIndex_opple:indexPath.row] fid];
        NSDictionary *dict = @{@"customerid":customerID,@"title":title,@"model":[weakSelf.CustomerresultArray objectAtIndex_opple:indexPath.row]};
195
        [Notification postNotificationName:@"SETUPCURRENTCUSTOMER" object:dict];
勾芒's avatar
勾芒 committed
196
    }];
勾芒's avatar
勾芒 committed
197 198 199
    [self.navigationController pushViewController:clientdetails animated:YES];
}

曹云霄's avatar
曹云霄 committed
200 201


勾芒's avatar
勾芒 committed
202
#pragma mark -开始筛选时间
203
- (IBAction)StartScreeningButtonClick:(UIButton *)sender {
勾芒's avatar
勾芒 committed
204 205 206
    
    DateSelectedViewController *datevc = [[DateSelectedViewController alloc]init];
    //选中时间回调
207
    WS(weakSelf);
勾芒's avatar
勾芒 committed
208
    [datevc setSelectedDateBlock:^(NSDate *selectedDate) {
209 210
        [weakSelf.begindateButton setTitle:[weakSelf dateAsString:selectedDate] forState:UIControlStateNormal];
        [weakSelf CalltimeSearch];
勾芒's avatar
勾芒 committed
211 212 213 214 215 216 217
    }];
    
    datevc.preferredContentSize = CGSizeMake(300, 250);
    datevc.modalPresentationStyle = UIModalPresentationFormSheet;
    UIPopoverPresentationController *pop = datevc.popoverPresentationController;
    pop.permittedArrowDirections = UIPopoverArrowDirectionAny;
    pop.sourceView = datevc.view;
曹云霄's avatar
曹云霄 committed
218 219 220
    dispatch_async(dispatch_get_main_queue(), ^{
        [self presentViewController:datevc animated:YES completion:nil];
    });
勾芒's avatar
勾芒 committed
221 222 223 224 225 226 227 228 229 230 231 232 233
}


#pragma mark -时间转换NSDate转NSString
- (NSString*)dateAsString:(NSDate*)date {
    
    NSDateFormatter *formatter=[[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"yyyy-MM-dd"];
    NSString * timeString = [formatter stringFromDate:date];
    return timeString;
}

#pragma mark -结束筛选时间
234
- (IBAction)EndScreeningButtonClick:(UIButton *)sender {
勾芒's avatar
勾芒 committed
235
    
236
    WS(weakSelf);
勾芒's avatar
勾芒 committed
237 238
    DateSelectedViewController *datevc = [[DateSelectedViewController alloc]init];
    [datevc setSelectedDateBlock:^(NSDate *selectedDate) {
239 240
        [weakSelf.enddateButton setTitle:[weakSelf dateAsString:selectedDate] forState:UIControlStateNormal];
        [weakSelf CalltimeSearch];
勾芒's avatar
勾芒 committed
241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257
        
    }];
    datevc.preferredContentSize = CGSizeMake(300, 250);
    datevc.modalPresentationStyle = UIModalPresentationFormSheet;
    UIPopoverPresentationController *pop = datevc.popoverPresentationController;
    pop.permittedArrowDirections = UIPopoverArrowDirectionAny;
    pop.sourceView = datevc.view;
    [self presentViewController:datevc animated:YES completion:nil];
}


#pragma mark -调用时间段搜索
- (void)CalltimeSearch
{
    NSString *startString = self.begindateButton.currentTitle;
    NSString *endString = self.enddateButton.currentTitle;
    NSDateFormatter* formater = [[NSDateFormatter alloc] init];
258
    NSDateFormatter* endformater = [[NSDateFormatter alloc] init];
勾芒's avatar
勾芒 committed
259 260 261 262 263 264 265 266 267 268 269
    [formater setDateFormat:@"yyyy-MM-dd"];
    NSDate* date = [formater dateFromString:startString];
    [formater setDateFormat:@"yyyy-MM-dd"];
    NSDate* date1 = [formater dateFromString:endString];
    
    //比较结果
    NSInteger result = [self compareOneDay:date withAnotherDay:date1];
    //比较两个NSDate的大小
    switch (result) {
        case -1://start < end
        {
270 271 272 273
            [formater setDateFormat:@"yyyy-MM-dd 00:00:01"];
            [endformater setDateFormat:@"yyyy-MM-dd 23:59:59"];
            self.conditionModel.createTimeBegin = [formater stringFromDate:date];
            self.conditionModel.createTimeEnd = [endformater stringFromDate:date1];
勾芒's avatar
勾芒 committed
274 275 276 277
        }
            break;
        case 0://start == end
        {
278
            [formater setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
279 280
            self.conditionModel.createTimeBegin = nil;
            self.conditionModel.createTimeEnd = nil;
勾芒's avatar
勾芒 committed
281 282 283 284
        }
            break;
        case 1://start > end
        {
285 286 287 288
            [formater setDateFormat:@"yyyy-MM-dd 00:00:01"];
            [endformater setDateFormat:@"yyyy-MM-dd 23:59:59"];
            self.conditionModel.createTimeBegin = [formater stringFromDate:date1];
            self.conditionModel.createTimeEnd = [endformater stringFromDate:date];
勾芒's avatar
勾芒 committed
289 290 291 292 293 294
        }
            break;
            
        default:
            break;
    }
295 296 297 298
    self.conditionModel.nameEquals = nil;
    self.conditionModel.mobileEquals = nil;
    self.searchTextfield.text = nil;
    [self.allCustomerTableview.mj_header beginRefreshing];
勾芒's avatar
勾芒 committed
299 300 301 302 303 304
}

#pragma mark -Return键检测
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField resignFirstResponder];
305 306
    self.conditionModel.nameEquals = self.searchTextfield.text;
    self.conditionModel.mobileEquals = self.searchTextfield.text;
307
    if ([BaseViewController isBlankString:self.searchTextfield.text]) {
308 309
        self.conditionModel.nameEquals = nil;
        self.conditionModel.mobileEquals = nil;
勾芒's avatar
勾芒 committed
310
    }
311
    [self.allCustomerTableview.mj_header beginRefreshing];
勾芒's avatar
勾芒 committed
312 313 314
    return YES;
}

曹云霄's avatar
曹云霄 committed
315

曹云霄's avatar
曹云霄 committed
316 317 318 319 320 321 322 323 324 325 326 327 328 329 330
#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
331 332 333 334 335




@end