TeacherInfo.m 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337
  1. //
  2. // TeacherInfo.m
  3. //
  4. // Created by Steven on 2022/4/11
  5. // Copyright (c) 2022 __MyCompanyName__. All rights reserved.
  6. //
  7. #import "TeacherInfo.h"
  8. NSString *const kTeacherInfoBirthdate = @"birthdate";
  9. NSString *const kTeacherInfoGraduateSchool = @"graduateSchool";
  10. NSString *const kTeacherInfoWorkUnit = @"workUnit";
  11. NSString *const kTeacherInfoHeardUrl = @"heardUrl";
  12. NSString *const kTeacherInfoSubject = @"subject";
  13. NSString *const kTeacherInfoGradCertificate = @"gradCertificate";
  14. NSString *const kTeacherInfoDegreeCertificate = @"degreeCertificate";
  15. NSString *const kTeacherInfoTeacherCertificate = @"teacherCertificate";
  16. NSString *const kTeacherInfoMusicianAuthStatus = @"musicianAuthStatus";
  17. NSString *const kTeacherInfoEducationBackground = @"educationBackground";
  18. NSString *const kTeacherInfoUpdateTime = @"updateTime";
  19. NSString *const kTeacherInfoMusicianDate = @"musicianDate";
  20. NSString *const kTeacherInfoIsBank = @"isBank";
  21. NSString *const kTeacherInfoRealName = @"realName";
  22. NSString *const kTeacherInfoIntroduction = @"introduction";
  23. NSString *const kTeacherInfoStarGrade = @"starGrade";
  24. NSString *const kTeacherInfoUnExpTime = @"unExpTime";
  25. NSString *const kTeacherInfoEntryStatus = @"entryStatus";
  26. NSString *const kTeacherInfoEntryAuthDate = @"entryAuthDate";
  27. NSString *const kTeacherInfoSubjectId = @"subjectId";
  28. NSString *const kTeacherInfoUsername = @"username";
  29. NSString *const kTeacherInfoEntryFlag = @"entryFlag";
  30. NSString *const kTeacherInfoGender = @"gender";
  31. NSString *const kTeacherInfoFansNum = @"fansNum";
  32. NSString *const kTeacherInfoMusicianFlag = @"musicianFlag";
  33. NSString *const kTeacherInfoLiveFlag = @"liveFlag";
  34. NSString *const kTeacherInfoCreateTime = @"createTime";
  35. NSString *const kTeacherInfoExpTime = @"expTime";
  36. NSString *const kTeacherInfoTechnicalTitles = @"technicalTitles";
  37. NSString *const kTeacherInfoSubjectName = @"subjectName";
  38. NSString *const kTeacherInfoPhone = @"phone";
  39. NSString *const kTeacherInfoMemo = @"memo";
  40. NSString *const kTeacherInfoIsReal = @"isReal";
  41. NSString *const kTeacherInfoIdCardNo = @"idCardNo";
  42. NSString *const kTeacherInfoUserId = @"userId";
  43. @interface TeacherInfo ()
  44. - (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict;
  45. @end
  46. @implementation TeacherInfo
  47. @synthesize birthdate = _birthdate;
  48. @synthesize graduateSchool = _graduateSchool;
  49. @synthesize workUnit = _workUnit;
  50. @synthesize heardUrl = _heardUrl;
  51. @synthesize subject = _subject;
  52. @synthesize gradCertificate = _gradCertificate;
  53. @synthesize degreeCertificate = _degreeCertificate;
  54. @synthesize teacherCertificate = _teacherCertificate;
  55. @synthesize musicianAuthStatus = _musicianAuthStatus;
  56. @synthesize educationBackground = _educationBackground;
  57. @synthesize updateTime = _updateTime;
  58. @synthesize musicianDate = _musicianDate;
  59. @synthesize isBank = _isBank;
  60. @synthesize realName = _realName;
  61. @synthesize introduction = _introduction;
  62. @synthesize starGrade = _starGrade;
  63. @synthesize unExpTime = _unExpTime;
  64. @synthesize entryStatus = _entryStatus;
  65. @synthesize entryAuthDate = _entryAuthDate;
  66. @synthesize subjectId = _subjectId;
  67. @synthesize username = _username;
  68. @synthesize entryFlag = _entryFlag;
  69. @synthesize gender = _gender;
  70. @synthesize fansNum = _fansNum;
  71. @synthesize musicianFlag = _musicianFlag;
  72. @synthesize liveFlag = _liveFlag;
  73. @synthesize createTime = _createTime;
  74. @synthesize expTime = _expTime;
  75. @synthesize technicalTitles = _technicalTitles;
  76. @synthesize subjectName = _subjectName;
  77. @synthesize phone = _phone;
  78. @synthesize memo = _memo;
  79. @synthesize isReal = _isReal;
  80. @synthesize idCardNo = _idCardNo;
  81. @synthesize userId = _userId;
  82. + (instancetype)modelObjectWithDictionary:(NSDictionary *)dict
  83. {
  84. return [[self alloc] initWithDictionary:dict];
  85. }
  86. - (instancetype)initWithDictionary:(NSDictionary *)dict
  87. {
  88. self = [super init];
  89. // This check serves to make sure that a non-NSDictionary object
  90. // passed into the model class doesn't break the parsing.
  91. if(self && [dict isKindOfClass:[NSDictionary class]]) {
  92. self.birthdate = [self objectOrNilForKey:kTeacherInfoBirthdate fromDictionary:dict];
  93. self.graduateSchool = [self objectOrNilForKey:kTeacherInfoGraduateSchool fromDictionary:dict];
  94. self.workUnit = [self objectOrNilForKey:kTeacherInfoWorkUnit fromDictionary:dict];
  95. self.heardUrl = [self objectOrNilForKey:kTeacherInfoHeardUrl fromDictionary:dict];
  96. self.subject = [self objectOrNilForKey:kTeacherInfoSubject fromDictionary:dict];
  97. self.gradCertificate = [self objectOrNilForKey:kTeacherInfoGradCertificate fromDictionary:dict];
  98. self.degreeCertificate = [self objectOrNilForKey:kTeacherInfoDegreeCertificate fromDictionary:dict];
  99. self.teacherCertificate = [self objectOrNilForKey:kTeacherInfoTeacherCertificate fromDictionary:dict];
  100. self.musicianAuthStatus = [self objectOrNilForKey:kTeacherInfoMusicianAuthStatus fromDictionary:dict];
  101. self.educationBackground = [self objectOrNilForKey:kTeacherInfoEducationBackground fromDictionary:dict];
  102. self.updateTime = [self objectOrNilForKey:kTeacherInfoUpdateTime fromDictionary:dict];
  103. self.musicianDate = [self objectOrNilForKey:kTeacherInfoMusicianDate fromDictionary:dict];
  104. self.isBank = [[self objectOrNilForKey:kTeacherInfoIsBank fromDictionary:dict] doubleValue];
  105. self.realName = [self objectOrNilForKey:kTeacherInfoRealName fromDictionary:dict];
  106. self.introduction = [self objectOrNilForKey:kTeacherInfoIntroduction fromDictionary:dict];
  107. self.starGrade = [[self objectOrNilForKey:kTeacherInfoStarGrade fromDictionary:dict] doubleValue];
  108. self.unExpTime = [[self objectOrNilForKey:kTeacherInfoUnExpTime fromDictionary:dict] doubleValue];
  109. self.entryStatus = [self objectOrNilForKey:kTeacherInfoEntryStatus fromDictionary:dict];
  110. self.entryAuthDate = [self objectOrNilForKey:kTeacherInfoEntryAuthDate fromDictionary:dict];
  111. self.subjectId = [self objectOrNilForKey:kTeacherInfoSubjectId fromDictionary:dict];
  112. self.username = [self objectOrNilForKey:kTeacherInfoUsername fromDictionary:dict];
  113. self.entryFlag = [self objectOrNilForKey:kTeacherInfoEntryFlag fromDictionary:dict];
  114. self.gender = [self objectOrNilForKey:kTeacherInfoGender fromDictionary:dict];
  115. self.fansNum = [[self objectOrNilForKey:kTeacherInfoFansNum fromDictionary:dict] doubleValue];
  116. self.musicianFlag = [self objectOrNilForKey:kTeacherInfoMusicianFlag fromDictionary:dict];
  117. self.liveFlag = [self objectOrNilForKey:kTeacherInfoLiveFlag fromDictionary:dict];
  118. self.createTime = [self objectOrNilForKey:kTeacherInfoCreateTime fromDictionary:dict];
  119. self.expTime = [[self objectOrNilForKey:kTeacherInfoExpTime fromDictionary:dict] doubleValue];
  120. self.technicalTitles = [self objectOrNilForKey:kTeacherInfoTechnicalTitles fromDictionary:dict];
  121. self.subjectName = [self objectOrNilForKey:kTeacherInfoSubjectName fromDictionary:dict];
  122. self.phone = [self objectOrNilForKey:kTeacherInfoPhone fromDictionary:dict];
  123. self.memo = [self objectOrNilForKey:kTeacherInfoMemo fromDictionary:dict];
  124. self.isReal = [[self objectOrNilForKey:kTeacherInfoIsReal fromDictionary:dict] doubleValue];
  125. self.idCardNo = [self objectOrNilForKey:kTeacherInfoIdCardNo fromDictionary:dict];
  126. self.userId = [self objectOrNilForKey:kTeacherInfoUserId fromDictionary:dict];
  127. }
  128. return self;
  129. }
  130. - (NSDictionary *)dictionaryRepresentation
  131. {
  132. NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
  133. [mutableDict setValue:self.birthdate forKey:kTeacherInfoBirthdate];
  134. [mutableDict setValue:self.graduateSchool forKey:kTeacherInfoGraduateSchool];
  135. [mutableDict setValue:self.workUnit forKey:kTeacherInfoWorkUnit];
  136. [mutableDict setValue:self.heardUrl forKey:kTeacherInfoHeardUrl];
  137. [mutableDict setValue:self.subject forKey:kTeacherInfoSubject];
  138. [mutableDict setValue:self.gradCertificate forKey:kTeacherInfoGradCertificate];
  139. [mutableDict setValue:self.degreeCertificate forKey:kTeacherInfoDegreeCertificate];
  140. [mutableDict setValue:self.teacherCertificate forKey:kTeacherInfoTeacherCertificate];
  141. [mutableDict setValue:self.musicianAuthStatus forKey:kTeacherInfoMusicianAuthStatus];
  142. [mutableDict setValue:self.educationBackground forKey:kTeacherInfoEducationBackground];
  143. [mutableDict setValue:self.updateTime forKey:kTeacherInfoUpdateTime];
  144. [mutableDict setValue:self.musicianDate forKey:kTeacherInfoMusicianDate];
  145. [mutableDict setValue:[NSNumber numberWithDouble:self.isBank] forKey:kTeacherInfoIsBank];
  146. [mutableDict setValue:self.realName forKey:kTeacherInfoRealName];
  147. [mutableDict setValue:self.introduction forKey:kTeacherInfoIntroduction];
  148. [mutableDict setValue:[NSNumber numberWithDouble:self.starGrade] forKey:kTeacherInfoStarGrade];
  149. [mutableDict setValue:[NSNumber numberWithDouble:self.unExpTime] forKey:kTeacherInfoUnExpTime];
  150. [mutableDict setValue:self.entryStatus forKey:kTeacherInfoEntryStatus];
  151. [mutableDict setValue:self.entryAuthDate forKey:kTeacherInfoEntryAuthDate];
  152. [mutableDict setValue:self.subjectId forKey:kTeacherInfoSubjectId];
  153. [mutableDict setValue:self.username forKey:kTeacherInfoUsername];
  154. [mutableDict setValue:self.entryFlag forKey:kTeacherInfoEntryFlag];
  155. [mutableDict setValue:self.gender forKey:kTeacherInfoGender];
  156. [mutableDict setValue:[NSNumber numberWithDouble:self.fansNum] forKey:kTeacherInfoFansNum];
  157. [mutableDict setValue:self.musicianFlag forKey:kTeacherInfoMusicianFlag];
  158. [mutableDict setValue:self.liveFlag forKey:kTeacherInfoLiveFlag];
  159. [mutableDict setValue:self.createTime forKey:kTeacherInfoCreateTime];
  160. [mutableDict setValue:[NSNumber numberWithDouble:self.expTime] forKey:kTeacherInfoExpTime];
  161. [mutableDict setValue:self.technicalTitles forKey:kTeacherInfoTechnicalTitles];
  162. [mutableDict setValue:self.subjectName forKey:kTeacherInfoSubjectName];
  163. [mutableDict setValue:self.phone forKey:kTeacherInfoPhone];
  164. [mutableDict setValue:self.memo forKey:kTeacherInfoMemo];
  165. [mutableDict setValue:[NSNumber numberWithDouble:self.isReal] forKey:kTeacherInfoIsReal];
  166. [mutableDict setValue:self.idCardNo forKey:kTeacherInfoIdCardNo];
  167. [mutableDict setValue:self.userId forKey:kTeacherInfoUserId];
  168. return [NSDictionary dictionaryWithDictionary:mutableDict];
  169. }
  170. - (NSString *)description
  171. {
  172. return [NSString stringWithFormat:@"%@", [self dictionaryRepresentation]];
  173. }
  174. #pragma mark - Helper Method
  175. - (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict
  176. {
  177. id object = [dict objectForKey:aKey];
  178. if ([object isKindOfClass:[NSNumber class]]) {
  179. NSNumber *number = object;
  180. object = [number stringValue];
  181. }
  182. return [object isEqual:[NSNull null]] ? nil : object;
  183. }
  184. #pragma mark - NSCoding Methods
  185. - (id)initWithCoder:(NSCoder *)aDecoder
  186. {
  187. self = [super init];
  188. self.birthdate = [aDecoder decodeObjectForKey:kTeacherInfoBirthdate];
  189. self.graduateSchool = [aDecoder decodeObjectForKey:kTeacherInfoGraduateSchool];
  190. self.workUnit = [aDecoder decodeObjectForKey:kTeacherInfoWorkUnit];
  191. self.heardUrl = [aDecoder decodeObjectForKey:kTeacherInfoHeardUrl];
  192. self.subject = [aDecoder decodeObjectForKey:kTeacherInfoSubject];
  193. self.gradCertificate = [aDecoder decodeObjectForKey:kTeacherInfoGradCertificate];
  194. self.degreeCertificate = [aDecoder decodeObjectForKey:kTeacherInfoDegreeCertificate];
  195. self.teacherCertificate = [aDecoder decodeObjectForKey:kTeacherInfoTeacherCertificate];
  196. self.musicianAuthStatus = [aDecoder decodeObjectForKey:kTeacherInfoMusicianAuthStatus];
  197. self.educationBackground = [aDecoder decodeObjectForKey:kTeacherInfoEducationBackground];
  198. self.updateTime = [aDecoder decodeObjectForKey:kTeacherInfoUpdateTime];
  199. self.musicianDate = [aDecoder decodeObjectForKey:kTeacherInfoMusicianDate];
  200. self.isBank = [aDecoder decodeDoubleForKey:kTeacherInfoIsBank];
  201. self.realName = [aDecoder decodeObjectForKey:kTeacherInfoRealName];
  202. self.introduction = [aDecoder decodeObjectForKey:kTeacherInfoIntroduction];
  203. self.starGrade = [aDecoder decodeDoubleForKey:kTeacherInfoStarGrade];
  204. self.unExpTime = [aDecoder decodeDoubleForKey:kTeacherInfoUnExpTime];
  205. self.entryStatus = [aDecoder decodeObjectForKey:kTeacherInfoEntryStatus];
  206. self.entryAuthDate = [aDecoder decodeObjectForKey:kTeacherInfoEntryAuthDate];
  207. self.subjectId = [aDecoder decodeObjectForKey:kTeacherInfoSubjectId];
  208. self.username = [aDecoder decodeObjectForKey:kTeacherInfoUsername];
  209. self.entryFlag = [aDecoder decodeObjectForKey:kTeacherInfoEntryFlag];
  210. self.gender = [aDecoder decodeObjectForKey:kTeacherInfoGender];
  211. self.fansNum = [aDecoder decodeDoubleForKey:kTeacherInfoFansNum];
  212. self.musicianFlag = [aDecoder decodeObjectForKey:kTeacherInfoMusicianFlag];
  213. self.liveFlag = [aDecoder decodeObjectForKey:kTeacherInfoLiveFlag];
  214. self.createTime = [aDecoder decodeObjectForKey:kTeacherInfoCreateTime];
  215. self.expTime = [aDecoder decodeDoubleForKey:kTeacherInfoExpTime];
  216. self.technicalTitles = [aDecoder decodeObjectForKey:kTeacherInfoTechnicalTitles];
  217. self.subjectName = [aDecoder decodeObjectForKey:kTeacherInfoSubjectName];
  218. self.phone = [aDecoder decodeObjectForKey:kTeacherInfoPhone];
  219. self.memo = [aDecoder decodeObjectForKey:kTeacherInfoMemo];
  220. self.isReal = [aDecoder decodeDoubleForKey:kTeacherInfoIsReal];
  221. self.idCardNo = [aDecoder decodeObjectForKey:kTeacherInfoIdCardNo];
  222. self.userId = [aDecoder decodeObjectForKey:kTeacherInfoUserId];
  223. return self;
  224. }
  225. - (void)encodeWithCoder:(NSCoder *)aCoder
  226. {
  227. [aCoder encodeObject:_birthdate forKey:kTeacherInfoBirthdate];
  228. [aCoder encodeObject:_graduateSchool forKey:kTeacherInfoGraduateSchool];
  229. [aCoder encodeObject:_workUnit forKey:kTeacherInfoWorkUnit];
  230. [aCoder encodeObject:_heardUrl forKey:kTeacherInfoHeardUrl];
  231. [aCoder encodeObject:_subject forKey:kTeacherInfoSubject];
  232. [aCoder encodeObject:_gradCertificate forKey:kTeacherInfoGradCertificate];
  233. [aCoder encodeObject:_degreeCertificate forKey:kTeacherInfoDegreeCertificate];
  234. [aCoder encodeObject:_teacherCertificate forKey:kTeacherInfoTeacherCertificate];
  235. [aCoder encodeObject:_musicianAuthStatus forKey:kTeacherInfoMusicianAuthStatus];
  236. [aCoder encodeObject:_educationBackground forKey:kTeacherInfoEducationBackground];
  237. [aCoder encodeObject:_updateTime forKey:kTeacherInfoUpdateTime];
  238. [aCoder encodeObject:_musicianDate forKey:kTeacherInfoMusicianDate];
  239. [aCoder encodeDouble:_isBank forKey:kTeacherInfoIsBank];
  240. [aCoder encodeObject:_realName forKey:kTeacherInfoRealName];
  241. [aCoder encodeObject:_introduction forKey:kTeacherInfoIntroduction];
  242. [aCoder encodeDouble:_starGrade forKey:kTeacherInfoStarGrade];
  243. [aCoder encodeDouble:_unExpTime forKey:kTeacherInfoUnExpTime];
  244. [aCoder encodeObject:_entryStatus forKey:kTeacherInfoEntryStatus];
  245. [aCoder encodeObject:_entryAuthDate forKey:kTeacherInfoEntryAuthDate];
  246. [aCoder encodeObject:_subjectId forKey:kTeacherInfoSubjectId];
  247. [aCoder encodeObject:_username forKey:kTeacherInfoUsername];
  248. [aCoder encodeObject:_entryFlag forKey:kTeacherInfoEntryFlag];
  249. [aCoder encodeObject:_gender forKey:kTeacherInfoGender];
  250. [aCoder encodeDouble:_fansNum forKey:kTeacherInfoFansNum];
  251. [aCoder encodeObject:_musicianFlag forKey:kTeacherInfoMusicianFlag];
  252. [aCoder encodeObject:_liveFlag forKey:kTeacherInfoLiveFlag];
  253. [aCoder encodeObject:_createTime forKey:kTeacherInfoCreateTime];
  254. [aCoder encodeDouble:_expTime forKey:kTeacherInfoExpTime];
  255. [aCoder encodeObject:_technicalTitles forKey:kTeacherInfoTechnicalTitles];
  256. [aCoder encodeObject:_subjectName forKey:kTeacherInfoSubjectName];
  257. [aCoder encodeObject:_phone forKey:kTeacherInfoPhone];
  258. [aCoder encodeObject:_memo forKey:kTeacherInfoMemo];
  259. [aCoder encodeDouble:_isReal forKey:kTeacherInfoIsReal];
  260. [aCoder encodeObject:_idCardNo forKey:kTeacherInfoIdCardNo];
  261. [aCoder encodeObject:_userId forKey:kTeacherInfoUserId];
  262. }
  263. - (id)copyWithZone:(NSZone *)zone
  264. {
  265. TeacherInfo *copy = [[TeacherInfo alloc] init];
  266. if (copy) {
  267. copy.birthdate = [self.birthdate copyWithZone:zone];
  268. copy.graduateSchool = [self.graduateSchool copyWithZone:zone];
  269. copy.workUnit = [self.workUnit copyWithZone:zone];
  270. copy.heardUrl = [self.heardUrl copyWithZone:zone];
  271. copy.subject = [self.subject copyWithZone:zone];
  272. copy.gradCertificate = [self.gradCertificate copyWithZone:zone];
  273. copy.degreeCertificate = [self.degreeCertificate copyWithZone:zone];
  274. copy.teacherCertificate = [self.teacherCertificate copyWithZone:zone];
  275. copy.musicianAuthStatus = [self.musicianAuthStatus copyWithZone:zone];
  276. copy.educationBackground = [self.educationBackground copyWithZone:zone];
  277. copy.updateTime = [self.updateTime copyWithZone:zone];
  278. copy.musicianDate = [self.musicianDate copyWithZone:zone];
  279. copy.isBank = self.isBank;
  280. copy.realName = [self.realName copyWithZone:zone];
  281. copy.introduction = [self.introduction copyWithZone:zone];
  282. copy.starGrade = self.starGrade;
  283. copy.unExpTime = self.unExpTime;
  284. copy.entryStatus = [self.entryStatus copyWithZone:zone];
  285. copy.entryAuthDate = [self.entryAuthDate copyWithZone:zone];
  286. copy.subjectId = [self.subjectId copyWithZone:zone];
  287. copy.username = [self.username copyWithZone:zone];
  288. copy.entryFlag = [self.entryFlag copyWithZone:zone];
  289. copy.gender = [self.gender copyWithZone:zone];
  290. copy.fansNum = self.fansNum;
  291. copy.musicianFlag = [self.musicianFlag copyWithZone:zone];
  292. copy.liveFlag = [self.liveFlag copyWithZone:zone];
  293. copy.createTime = [self.createTime copyWithZone:zone];
  294. copy.expTime = self.expTime;
  295. copy.technicalTitles = [self.technicalTitles copyWithZone:zone];
  296. copy.subjectName = [self.subjectName copyWithZone:zone];
  297. copy.phone = [self.phone copyWithZone:zone];
  298. copy.memo = [self.memo copyWithZone:zone];
  299. copy.isReal = self.isReal;
  300. copy.idCardNo = [self.idCardNo copyWithZone:zone];
  301. copy.userId = [self.userId copyWithZone:zone];
  302. }
  303. return copy;
  304. }
  305. @end