Commit b990201011557c9dced3871142dd1580b15ec70c

Authored by phong
1 parent 9ce31e4373
Exists in master

change request api createLog

Showing 2 changed files with 82 additions and 14 deletions Side-by-side Diff

LifeLog/LifeLog/HomeViewController.m
... ... @@ -15,6 +15,8 @@
15 15 #import <MBProgressHUD/MBProgressHUD.h>
16 16 #import "ServerAPI.h"
17 17  
  18 +static NSInteger maxRequest = 20;
  19 +
18 20 @interface HomeViewController ()
19 21 {
20 22 MBProgressHUD *progressHud;
21 23  
... ... @@ -229,15 +231,12 @@
229 231  
230 232 [weakSelf.motionActivityManager queryActivityStartingFromDate:startDate toDate:endDate toQueue:_operationQueue withHandler:^(NSArray<CMMotionActivity *> * _Nullable activities, NSError * _Nullable error) {
231 233 if (error || activities.count <= 0) {
232   - weakSelf.totalRequest = 0;
233   - weakSelf.countComplete = 0;
234 234 dispatch_async(dispatch_get_main_queue(), ^{
235 235 [weakSelf updateStepUI];
236 236 });
237 237 return ;
238 238 }
239 239 // set EndDate
240   - weakSelf.totalRequest = (int)activities.count;
241 240 NSMutableArray *arrayActivities = [[NSMutableArray alloc] init];
242 241 for (int i = 0; i < activities.count; i++) {
243 242 CMMotionActivity *activity = [activities objectAtIndex:i];
... ... @@ -253,9 +252,10 @@
253 252 [arrayActivities addObject:activityExtra];
254 253 }
255 254 // PhongNV
256   - // weakSelf.currentIndex = 0;
257   - // [weakSelf saveStepFromActivityExtras:arrayActivities];
258   -
  255 + weakSelf.currentIndex = 0;
  256 + [weakSelf save20objectOfActivityExtras:arrayActivities];
  257 + //[weakSelf saveStepFromActivityExtras:arrayActivities];
  258 + /*
259 259 for (CMMotionActivityExtra *activityExtra in arrayActivities) {
260 260 [weakSelf.pedometer queryPedometerDataFromDate:activityExtra.activity.startDate toDate:activityExtra.endDate withHandler:^(CMPedometerData * _Nullable pedometerData, NSError * _Nullable error) {
261 261 NSInteger numberStep = [pedometerData.numberOfSteps integerValue];
... ... @@ -277,7 +277,6 @@
277 277 else {
278 278 // unknown
279 279 }
280   - weakSelf.countComplete += 1;
281 280  
282 281 // save step to server
283 282 if (numberStep > 0) {
284 283  
... ... @@ -296,12 +295,84 @@
296 295 });
297 296 }];
298 297 }
299   -
  298 + */
300 299 }];
301 300 });
302 301 }
303 302 }
304 303  
  304 +- (void)complete20Request:(NSArray *)activities {
  305 + if (self.totalRequest == self.countComplete) {
  306 + self.totalRequest = 0;
  307 + self.countComplete = 0;
  308 + self.currentIndex++;
  309 + [self save20objectOfActivityExtras:activities];
  310 + }
  311 +}
  312 +- (void)save20objectOfActivityExtras:(NSArray *)activities
  313 +{
  314 + int result = floor(activities.count / maxRequest);
  315 + if (activities.count <= 0 || self.currentIndex > result) {
  316 + self.totalRequest = 0;
  317 + self.countComplete = 0;
  318 + self.currentIndex = 0;
  319 + dispatch_async(dispatch_get_main_queue(), ^{
  320 + [self updateStepUI];
  321 + });
  322 + return;
  323 + }
  324 +
  325 + HomeViewController __weak *weakSelf = self;
  326 + for (NSInteger index = self.currentIndex*maxRequest; index < self.currentIndex*maxRequest + maxRequest; index++) {
  327 + if ((self.currentIndex*maxRequest + maxRequest) >= activities.count) {
  328 + self.totalRequest = (int)(activities.count - self.currentIndex*maxRequest);
  329 + }
  330 + else {
  331 + self.totalRequest = (int)maxRequest;
  332 + }
  333 + if (index < activities.count) {
  334 + CMMotionActivityExtra *activityExtra = [activities objectAtIndex:index];
  335 + [self.pedometer queryPedometerDataFromDate:activityExtra.activity.startDate toDate:activityExtra.endDate withHandler:^(CMPedometerData * _Nullable pedometerData, NSError * _Nullable error) {
  336 + if (weakSelf == nil) {
  337 + return ;
  338 + }
  339 + NSInteger numberStep = [pedometerData.numberOfSteps integerValue];
  340 + int mode = 1;
  341 + if (activityExtra.activity.cycling) {
  342 + mode = 3;
  343 + }
  344 + else if (activityExtra.activity.walking) {
  345 + mode = 1;
  346 + }
  347 + else if (activityExtra.activity.running) {
  348 + mode = 2;
  349 + }
  350 + else {
  351 + // unknown
  352 + }
  353 + // save step to server
  354 + if (numberStep > 0) {
  355 + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  356 + [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
  357 + NSString *dateBegin = [dateFormatter stringFromDate:activityExtra.activity.startDate];
  358 + NSString *dateEnd = [dateFormatter stringFromDate:activityExtra.endDate];
  359 + [[ServerAPI server] requestCreateLog:mode withStep:(int)numberStep startDate:dateBegin endDate:dateEnd CompletionHandler:^(NSError *error) {
  360 + if (error) {
  361 + NSLog(@"Error: %@", error);
  362 + }
  363 + weakSelf.countComplete++;
  364 + [weakSelf complete20Request:activities];
  365 + }];
  366 + }
  367 + else {
  368 + weakSelf.countComplete++;
  369 + [weakSelf complete20Request:activities];
  370 + }
  371 + }];
  372 + }
  373 + }
  374 +}
  375 +
305 376 - (void)saveStepFromActivityExtras:(NSArray *)activities
306 377 {
307 378 if (self.currentIndex >= activities.count) {
... ... @@ -331,7 +402,6 @@
331 402 else {
332 403 // unknown
333 404 }
334   - self.countComplete += 1;
335 405 // save step to server
336 406 if (numberStep > 0) {
337 407 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
... ... @@ -355,11 +425,7 @@
355 425  
356 426 - (void)updateStepUI
357 427 {
358   - if (self.totalRequest == self.countComplete) {
359   - [self requestTopByDate:self.dateCurrent];
360   - self.countComplete = 0;
361   - self.totalRequest = 0;
362   - }
  428 + [self requestTopByDate:self.dateCurrent];
363 429 }
364 430  
365 431 - (void)saveDataStep7LastDay
LifeLog/LifeLog/ServerAPI.m
... ... @@ -1037,7 +1037,9 @@
1037 1037  
1038 1038 //NSURLSession *session = [NSURLSession sharedSession];
1039 1039 NSURLSessionConfiguration *defaultConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration];
  1040 + [defaultConfiguration setHTTPMaximumConnectionsPerHost:20];
1040 1041 NSOperationQueue *operationQueue = [NSOperationQueue mainQueue];
  1042 + operationQueue.maxConcurrentOperationCount = 20;
1041 1043 NSURLSession *session = [NSURLSession sessionWithConfiguration:defaultConfiguration delegate:nil delegateQueue:operationQueue];
1042 1044 NSURLSessionDataTask *task = [session dataTaskWithRequest:request
1043 1045 completionHandler: