|
@@ -0,0 +1,218 @@
|
|
|
+//
|
|
|
+// StudentInfoModel.m
|
|
|
+//
|
|
|
+// Created by Steven on 2022/4/15
|
|
|
+// Copyright (c) 2022 __MyCompanyName__. All rights reserved.
|
|
|
+//
|
|
|
+
|
|
|
+#import "StudentInfoModel.h"
|
|
|
+
|
|
|
+
|
|
|
+NSString *const kStudentInfoModelTestingNum = @"testingNum";
|
|
|
+NSString *const kStudentInfoModelStarTeacherNum = @"starTeacherNum";
|
|
|
+NSString *const kStudentInfoModelMembershipStartTime = @"membershipStartTime";
|
|
|
+NSString *const kStudentInfoModelExerciseDays = @"exerciseDays";
|
|
|
+NSString *const kStudentInfoModelMembershipDays = @"membershipDays";
|
|
|
+NSString *const kStudentInfoModelCloudStudySequenceDays = @"cloudStudySequenceDays";
|
|
|
+NSString *const kStudentInfoModelMembershipEndTime = @"membershipEndTime";
|
|
|
+NSString *const kStudentInfoModelSubjectId = @"subjectId";
|
|
|
+NSString *const kStudentInfoModelCloudStudyUseLastDay = @"cloudStudyUseLastDay";
|
|
|
+NSString *const kStudentInfoModelFinshClassHours = @"finshClassHours";
|
|
|
+NSString *const kStudentInfoModelUserId = @"userId";
|
|
|
+NSString *const kStudentInfoModelCreateTime = @"createTime";
|
|
|
+NSString *const kStudentInfoModelUnfinshClassHours = @"unfinshClassHours";
|
|
|
+NSString *const kStudentInfoModelHeardUrl = @"heardUrl";
|
|
|
+NSString *const kStudentInfoModelUsername = @"username";
|
|
|
+NSString *const kStudentInfoModelExerciseHours = @"exerciseHours";
|
|
|
+NSString *const kStudentInfoModelMemberRankSettingId = @"memberRankSettingId";
|
|
|
+NSString *const kStudentInfoModelUpdateTime = @"updateTime";
|
|
|
+
|
|
|
+
|
|
|
+@interface StudentInfoModel ()
|
|
|
+
|
|
|
+- (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict;
|
|
|
+
|
|
|
+@end
|
|
|
+
|
|
|
+@implementation StudentInfoModel
|
|
|
+
|
|
|
+@synthesize testingNum = _testingNum;
|
|
|
+@synthesize starTeacherNum = _starTeacherNum;
|
|
|
+@synthesize membershipStartTime = _membershipStartTime;
|
|
|
+@synthesize exerciseDays = _exerciseDays;
|
|
|
+@synthesize membershipDays = _membershipDays;
|
|
|
+@synthesize cloudStudySequenceDays = _cloudStudySequenceDays;
|
|
|
+@synthesize membershipEndTime = _membershipEndTime;
|
|
|
+@synthesize subjectId = _subjectId;
|
|
|
+@synthesize cloudStudyUseLastDay = _cloudStudyUseLastDay;
|
|
|
+@synthesize finshClassHours = _finshClassHours;
|
|
|
+@synthesize userId = _userId;
|
|
|
+@synthesize createTime = _createTime;
|
|
|
+@synthesize unfinshClassHours = _unfinshClassHours;
|
|
|
+@synthesize heardUrl = _heardUrl;
|
|
|
+@synthesize username = _username;
|
|
|
+@synthesize exerciseHours = _exerciseHours;
|
|
|
+@synthesize memberRankSettingId = _memberRankSettingId;
|
|
|
+@synthesize updateTime = _updateTime;
|
|
|
+
|
|
|
+
|
|
|
++ (instancetype)modelObjectWithDictionary:(NSDictionary *)dict
|
|
|
+{
|
|
|
+ return [[self alloc] initWithDictionary:dict];
|
|
|
+}
|
|
|
+
|
|
|
+- (instancetype)initWithDictionary:(NSDictionary *)dict
|
|
|
+{
|
|
|
+ self = [super init];
|
|
|
+
|
|
|
+ // This check serves to make sure that a non-NSDictionary object
|
|
|
+ // passed into the model class doesn't break the parsing.
|
|
|
+ if(self && [dict isKindOfClass:[NSDictionary class]]) {
|
|
|
+ self.testingNum = [[self objectOrNilForKey:kStudentInfoModelTestingNum fromDictionary:dict] doubleValue];
|
|
|
+ self.starTeacherNum = [[self objectOrNilForKey:kStudentInfoModelStarTeacherNum fromDictionary:dict] doubleValue];
|
|
|
+ self.membershipStartTime = [self objectOrNilForKey:kStudentInfoModelMembershipStartTime fromDictionary:dict];
|
|
|
+ self.exerciseDays = [[self objectOrNilForKey:kStudentInfoModelExerciseDays fromDictionary:dict] doubleValue];
|
|
|
+ self.membershipDays = [[self objectOrNilForKey:kStudentInfoModelMembershipDays fromDictionary:dict] doubleValue];
|
|
|
+ self.cloudStudySequenceDays = [[self objectOrNilForKey:kStudentInfoModelCloudStudySequenceDays fromDictionary:dict] doubleValue];
|
|
|
+ self.membershipEndTime = [self objectOrNilForKey:kStudentInfoModelMembershipEndTime fromDictionary:dict];
|
|
|
+ self.subjectId = [self objectOrNilForKey:kStudentInfoModelSubjectId fromDictionary:dict];
|
|
|
+ self.cloudStudyUseLastDay = [self objectOrNilForKey:kStudentInfoModelCloudStudyUseLastDay fromDictionary:dict];
|
|
|
+ self.finshClassHours = [[self objectOrNilForKey:kStudentInfoModelFinshClassHours fromDictionary:dict] doubleValue];
|
|
|
+ self.userId = [self objectOrNilForKey:kStudentInfoModelUserId fromDictionary:dict];
|
|
|
+ self.createTime = [self objectOrNilForKey:kStudentInfoModelCreateTime fromDictionary:dict];
|
|
|
+ self.unfinshClassHours = [[self objectOrNilForKey:kStudentInfoModelUnfinshClassHours fromDictionary:dict] doubleValue];
|
|
|
+ self.heardUrl = [self objectOrNilForKey:kStudentInfoModelHeardUrl fromDictionary:dict];
|
|
|
+ self.username = [self objectOrNilForKey:kStudentInfoModelUsername fromDictionary:dict];
|
|
|
+ self.exerciseHours = [[self objectOrNilForKey:kStudentInfoModelExerciseHours fromDictionary:dict] doubleValue];
|
|
|
+ self.memberRankSettingId = [[self objectOrNilForKey:kStudentInfoModelMemberRankSettingId fromDictionary:dict] doubleValue];
|
|
|
+ self.updateTime = [self objectOrNilForKey:kStudentInfoModelUpdateTime fromDictionary:dict];
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return self;
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+- (NSDictionary *)dictionaryRepresentation
|
|
|
+{
|
|
|
+ NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
|
|
|
+ [mutableDict setValue:[NSNumber numberWithDouble:self.testingNum] forKey:kStudentInfoModelTestingNum];
|
|
|
+ [mutableDict setValue:[NSNumber numberWithDouble:self.starTeacherNum] forKey:kStudentInfoModelStarTeacherNum];
|
|
|
+ [mutableDict setValue:self.membershipStartTime forKey:kStudentInfoModelMembershipStartTime];
|
|
|
+ [mutableDict setValue:[NSNumber numberWithDouble:self.exerciseDays] forKey:kStudentInfoModelExerciseDays];
|
|
|
+ [mutableDict setValue:[NSNumber numberWithDouble:self.membershipDays] forKey:kStudentInfoModelMembershipDays];
|
|
|
+ [mutableDict setValue:[NSNumber numberWithDouble:self.cloudStudySequenceDays] forKey:kStudentInfoModelCloudStudySequenceDays];
|
|
|
+ [mutableDict setValue:self.membershipEndTime forKey:kStudentInfoModelMembershipEndTime];
|
|
|
+ [mutableDict setValue:self.subjectId forKey:kStudentInfoModelSubjectId];
|
|
|
+ [mutableDict setValue:self.cloudStudyUseLastDay forKey:kStudentInfoModelCloudStudyUseLastDay];
|
|
|
+ [mutableDict setValue:[NSNumber numberWithDouble:self.finshClassHours] forKey:kStudentInfoModelFinshClassHours];
|
|
|
+ [mutableDict setValue:self.userId forKey:kStudentInfoModelUserId];
|
|
|
+ [mutableDict setValue:self.createTime forKey:kStudentInfoModelCreateTime];
|
|
|
+ [mutableDict setValue:[NSNumber numberWithDouble:self.unfinshClassHours] forKey:kStudentInfoModelUnfinshClassHours];
|
|
|
+ [mutableDict setValue:self.heardUrl forKey:kStudentInfoModelHeardUrl];
|
|
|
+ [mutableDict setValue:self.username forKey:kStudentInfoModelUsername];
|
|
|
+ [mutableDict setValue:[NSNumber numberWithDouble:self.exerciseHours] forKey:kStudentInfoModelExerciseHours];
|
|
|
+ [mutableDict setValue:[NSNumber numberWithDouble:self.memberRankSettingId] forKey:kStudentInfoModelMemberRankSettingId];
|
|
|
+ [mutableDict setValue:self.updateTime forKey:kStudentInfoModelUpdateTime];
|
|
|
+
|
|
|
+ return [NSDictionary dictionaryWithDictionary:mutableDict];
|
|
|
+}
|
|
|
+
|
|
|
+- (NSString *)description
|
|
|
+{
|
|
|
+ return [NSString stringWithFormat:@"%@", [self dictionaryRepresentation]];
|
|
|
+}
|
|
|
+
|
|
|
+#pragma mark - Helper Method
|
|
|
+- (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict
|
|
|
+{
|
|
|
+ id object = [dict objectForKey:aKey];
|
|
|
+ if ([object isKindOfClass:[NSNumber class]]) {
|
|
|
+ NSNumber *number = object;
|
|
|
+ object = [number stringValue];
|
|
|
+ }
|
|
|
+ return [object isEqual:[NSNull null]] ? nil : object;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+#pragma mark - NSCoding Methods
|
|
|
+
|
|
|
+- (id)initWithCoder:(NSCoder *)aDecoder
|
|
|
+{
|
|
|
+ self = [super init];
|
|
|
+
|
|
|
+ self.testingNum = [aDecoder decodeDoubleForKey:kStudentInfoModelTestingNum];
|
|
|
+ self.starTeacherNum = [aDecoder decodeDoubleForKey:kStudentInfoModelStarTeacherNum];
|
|
|
+ self.membershipStartTime = [aDecoder decodeObjectForKey:kStudentInfoModelMembershipStartTime];
|
|
|
+ self.exerciseDays = [aDecoder decodeDoubleForKey:kStudentInfoModelExerciseDays];
|
|
|
+ self.membershipDays = [aDecoder decodeDoubleForKey:kStudentInfoModelMembershipDays];
|
|
|
+ self.cloudStudySequenceDays = [aDecoder decodeDoubleForKey:kStudentInfoModelCloudStudySequenceDays];
|
|
|
+ self.membershipEndTime = [aDecoder decodeObjectForKey:kStudentInfoModelMembershipEndTime];
|
|
|
+ self.subjectId = [aDecoder decodeObjectForKey:kStudentInfoModelSubjectId];
|
|
|
+ self.cloudStudyUseLastDay = [aDecoder decodeObjectForKey:kStudentInfoModelCloudStudyUseLastDay];
|
|
|
+ self.finshClassHours = [aDecoder decodeDoubleForKey:kStudentInfoModelFinshClassHours];
|
|
|
+ self.userId = [aDecoder decodeObjectForKey:kStudentInfoModelUserId];
|
|
|
+ self.createTime = [aDecoder decodeObjectForKey:kStudentInfoModelCreateTime];
|
|
|
+ self.unfinshClassHours = [aDecoder decodeDoubleForKey:kStudentInfoModelUnfinshClassHours];
|
|
|
+ self.heardUrl = [aDecoder decodeObjectForKey:kStudentInfoModelHeardUrl];
|
|
|
+ self.username = [aDecoder decodeObjectForKey:kStudentInfoModelUsername];
|
|
|
+ self.exerciseHours = [aDecoder decodeDoubleForKey:kStudentInfoModelExerciseHours];
|
|
|
+ self.memberRankSettingId = [aDecoder decodeDoubleForKey:kStudentInfoModelMemberRankSettingId];
|
|
|
+ self.updateTime = [aDecoder decodeObjectForKey:kStudentInfoModelUpdateTime];
|
|
|
+ return self;
|
|
|
+}
|
|
|
+
|
|
|
+- (void)encodeWithCoder:(NSCoder *)aCoder
|
|
|
+{
|
|
|
+
|
|
|
+ [aCoder encodeDouble:_testingNum forKey:kStudentInfoModelTestingNum];
|
|
|
+ [aCoder encodeDouble:_starTeacherNum forKey:kStudentInfoModelStarTeacherNum];
|
|
|
+ [aCoder encodeObject:_membershipStartTime forKey:kStudentInfoModelMembershipStartTime];
|
|
|
+ [aCoder encodeDouble:_exerciseDays forKey:kStudentInfoModelExerciseDays];
|
|
|
+ [aCoder encodeDouble:_membershipDays forKey:kStudentInfoModelMembershipDays];
|
|
|
+ [aCoder encodeDouble:_cloudStudySequenceDays forKey:kStudentInfoModelCloudStudySequenceDays];
|
|
|
+ [aCoder encodeObject:_membershipEndTime forKey:kStudentInfoModelMembershipEndTime];
|
|
|
+ [aCoder encodeObject:_subjectId forKey:kStudentInfoModelSubjectId];
|
|
|
+ [aCoder encodeObject:_cloudStudyUseLastDay forKey:kStudentInfoModelCloudStudyUseLastDay];
|
|
|
+ [aCoder encodeDouble:_finshClassHours forKey:kStudentInfoModelFinshClassHours];
|
|
|
+ [aCoder encodeObject:_userId forKey:kStudentInfoModelUserId];
|
|
|
+ [aCoder encodeObject:_createTime forKey:kStudentInfoModelCreateTime];
|
|
|
+ [aCoder encodeDouble:_unfinshClassHours forKey:kStudentInfoModelUnfinshClassHours];
|
|
|
+ [aCoder encodeObject:_heardUrl forKey:kStudentInfoModelHeardUrl];
|
|
|
+ [aCoder encodeObject:_username forKey:kStudentInfoModelUsername];
|
|
|
+ [aCoder encodeDouble:_exerciseHours forKey:kStudentInfoModelExerciseHours];
|
|
|
+ [aCoder encodeDouble:_memberRankSettingId forKey:kStudentInfoModelMemberRankSettingId];
|
|
|
+ [aCoder encodeObject:_updateTime forKey:kStudentInfoModelUpdateTime];
|
|
|
+}
|
|
|
+
|
|
|
+- (id)copyWithZone:(NSZone *)zone
|
|
|
+{
|
|
|
+ StudentInfoModel *copy = [[StudentInfoModel alloc] init];
|
|
|
+
|
|
|
+ if (copy) {
|
|
|
+
|
|
|
+ copy.testingNum = self.testingNum;
|
|
|
+ copy.starTeacherNum = self.starTeacherNum;
|
|
|
+ copy.membershipStartTime = [self.membershipStartTime copyWithZone:zone];
|
|
|
+ copy.exerciseDays = self.exerciseDays;
|
|
|
+ copy.membershipDays = self.membershipDays;
|
|
|
+ copy.cloudStudySequenceDays = self.cloudStudySequenceDays;
|
|
|
+ copy.membershipEndTime = [self.membershipEndTime copyWithZone:zone];
|
|
|
+ copy.subjectId = [self.subjectId copyWithZone:zone];
|
|
|
+ copy.cloudStudyUseLastDay = [self.cloudStudyUseLastDay copyWithZone:zone];
|
|
|
+ copy.finshClassHours = self.finshClassHours;
|
|
|
+ copy.userId = [self.userId copyWithZone:zone];
|
|
|
+ copy.createTime = [self.createTime copyWithZone:zone];
|
|
|
+ copy.unfinshClassHours = self.unfinshClassHours;
|
|
|
+ copy.heardUrl = [self.heardUrl copyWithZone:zone];
|
|
|
+ copy.username = [self.username copyWithZone:zone];
|
|
|
+ copy.exerciseHours = self.exerciseHours;
|
|
|
+ copy.memberRankSettingId = self.memberRankSettingId;
|
|
|
+ copy.updateTime = [self.updateTime copyWithZone:zone];
|
|
|
+ }
|
|
|
+
|
|
|
+ return copy;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+@end
|