HomeHotMusicModel.m 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413
  1. //
  2. // HomeHotMusicModel.m
  3. //
  4. // Created by Steven on 2022/8/5
  5. // Copyright (c) 2022 __MyCompanyName__. All rights reserved.
  6. //
  7. #import "HomeHotMusicModel.h"
  8. NSString *const kHomeHotMusicModelMetronomeUrl = @"metronomeUrl";
  9. NSString *const kHomeHotMusicModelMusicSheetName = @"musicSheetName";
  10. NSString *const kHomeHotMusicModelNotation = @"notation";
  11. NSString *const kHomeHotMusicModelId = @"id";
  12. NSString *const kHomeHotMusicModelXmlFileUrl = @"xmlFileUrl";
  13. NSString *const kHomeHotMusicModelShowFingering = @"showFingering";
  14. NSString *const kHomeHotMusicModelRemark = @"remark";
  15. NSString *const kHomeHotMusicModelState = @"state";
  16. NSString *const kHomeHotMusicModelFavoriteCount = @"favoriteCount";
  17. NSString *const kHomeHotMusicModelUrl = @"url";
  18. NSString *const kHomeHotMusicModelMusicPrice = @"musicPrice";
  19. NSString *const kHomeHotMusicModelSortNumber = @"sortNumber";
  20. NSString *const kHomeHotMusicModelPlay = @"play";
  21. NSString *const kHomeHotMusicModelAddUserAvatar = @"addUserAvatar";
  22. NSString *const kHomeHotMusicModelAudioType = @"audioType";
  23. NSString *const kHomeHotMusicModelCanEvaluate = @"canEvaluate";
  24. NSString *const kHomeHotMusicModelDelFlag = @"delFlag";
  25. NSString *const kHomeHotMusicModelMusicTagNames = @"musicTagNames";
  26. NSString *const kHomeHotMusicModelSubjectNames = @"subjectNames";
  27. NSString *const kHomeHotMusicModelChargeType = @"chargeType";
  28. NSString *const kHomeHotMusicModelUpdateTime = @"updateTime";
  29. NSString *const kHomeHotMusicModelUpdateBy = @"updateBy";
  30. NSString *const kHomeHotMusicModelMusicTag = @"musicTag";
  31. NSString *const kHomeHotMusicModelExtConfigJson = @"extConfigJson";
  32. NSString *const kHomeHotMusicModelAddName = @"addName";
  33. NSString *const kHomeHotMusicModelFavorite = @"favorite";
  34. NSString *const kHomeHotMusicModelAuditStatus = @"auditStatus";
  35. NSString *const kHomeHotMusicModelCreateBy = @"createBy";
  36. NSString *const kHomeHotMusicModelMidiUrl = @"midiUrl";
  37. NSString *const kHomeHotMusicModelTopFlag = @"topFlag";
  38. NSString *const kHomeHotMusicModelComposer = @"composer";
  39. NSString *const kHomeHotMusicModelSourceType = @"sourceType";
  40. NSString *const kHomeHotMusicModelHotFlag = @"hotFlag";
  41. NSString *const kHomeHotMusicModelMp3Type = @"mp3Type";
  42. NSString *const kHomeHotMusicModelCreateTime = @"createTime";
  43. NSString *const kHomeHotMusicModelPlaySpeed = @"playSpeed";
  44. NSString *const kHomeHotMusicModelHasBeat = @"hasBeat";
  45. NSString *const kHomeHotMusicModelAudioFileUrl = @"audioFileUrl";
  46. NSString *const kHomeHotMusicModelReason = @"reason";
  47. NSString *const kHomeHotMusicModelAuditVersion = @"auditVersion";
  48. NSString *const kHomeHotMusicModelMusicSubject = @"musicSubject";
  49. NSString *const kHomeHotMusicModelUserId = @"userId";
  50. NSString *const kHomeHotMusicModelSubmitAuditTime = @"submitAuditTime";
  51. NSString *const kHomeHotMusicModelExquisiteFlag = @"exquisiteFlag";
  52. NSString *const kMusicMessageModelPaymentType = @"paymentType";
  53. NSString *const kHomeHotMusicModelAlbumNums = @"albumNums";
  54. @interface HomeHotMusicModel ()
  55. - (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict;
  56. @end
  57. @implementation HomeHotMusicModel
  58. @synthesize metronomeUrl = _metronomeUrl;
  59. @synthesize musicSheetName = _musicSheetName;
  60. @synthesize notation = _notation;
  61. @synthesize internalBaseClassIdentifier = _internalBaseClassIdentifier;
  62. @synthesize xmlFileUrl = _xmlFileUrl;
  63. @synthesize showFingering = _showFingering;
  64. @synthesize remark = _remark;
  65. @synthesize state = _state;
  66. @synthesize favoriteCount = _favoriteCount;
  67. @synthesize url = _url;
  68. @synthesize musicPrice = _musicPrice;
  69. @synthesize sortNumber = _sortNumber;
  70. @synthesize play = _play;
  71. @synthesize addUserAvatar = _addUserAvatar;
  72. @synthesize audioType = _audioType;
  73. @synthesize canEvaluate = _canEvaluate;
  74. @synthesize delFlag = _delFlag;
  75. @synthesize musicTagNames = _musicTagNames;
  76. @synthesize subjectNames = _subjectNames;
  77. @synthesize chargeType = _chargeType;
  78. @synthesize updateTime = _updateTime;
  79. @synthesize updateBy = _updateBy;
  80. @synthesize musicTag = _musicTag;
  81. @synthesize extConfigJson = _extConfigJson;
  82. @synthesize addName = _addName;
  83. @synthesize favorite = _favorite;
  84. @synthesize auditStatus = _auditStatus;
  85. @synthesize createBy = _createBy;
  86. @synthesize midiUrl = _midiUrl;
  87. @synthesize topFlag = _topFlag;
  88. @synthesize composer = _composer;
  89. @synthesize sourceType = _sourceType;
  90. @synthesize hotFlag = _hotFlag;
  91. @synthesize mp3Type = _mp3Type;
  92. @synthesize createTime = _createTime;
  93. @synthesize playSpeed = _playSpeed;
  94. @synthesize hasBeat = _hasBeat;
  95. @synthesize audioFileUrl = _audioFileUrl;
  96. @synthesize reason = _reason;
  97. @synthesize auditVersion = _auditVersion;
  98. @synthesize musicSubject = _musicSubject;
  99. @synthesize userId = _userId;
  100. @synthesize submitAuditTime = _submitAuditTime;
  101. @synthesize exquisiteFlag = _exquisiteFlag;
  102. @synthesize paymentType = _paymentType;
  103. @synthesize albumNums = _albumNums;
  104. + (instancetype)modelObjectWithDictionary:(NSDictionary *)dict
  105. {
  106. return [[self alloc] initWithDictionary:dict];
  107. }
  108. - (instancetype)initWithDictionary:(NSDictionary *)dict
  109. {
  110. self = [super init];
  111. // This check serves to make sure that a non-NSDictionary object
  112. // passed into the model class doesn't break the parsing.
  113. if(self && [dict isKindOfClass:[NSDictionary class]]) {
  114. self.metronomeUrl = [self objectOrNilForKey:kHomeHotMusicModelMetronomeUrl fromDictionary:dict];
  115. self.musicSheetName = [self objectOrNilForKey:kHomeHotMusicModelMusicSheetName fromDictionary:dict];
  116. self.notation = [[self objectOrNilForKey:kHomeHotMusicModelNotation fromDictionary:dict] doubleValue];
  117. self.internalBaseClassIdentifier = [self objectOrNilForKey:kHomeHotMusicModelId fromDictionary:dict];
  118. self.xmlFileUrl = [self objectOrNilForKey:kHomeHotMusicModelXmlFileUrl fromDictionary:dict];
  119. self.showFingering = [[self objectOrNilForKey:kHomeHotMusicModelShowFingering fromDictionary:dict] doubleValue];
  120. self.remark = [self objectOrNilForKey:kHomeHotMusicModelRemark fromDictionary:dict];
  121. self.state = [[self objectOrNilForKey:kHomeHotMusicModelState fromDictionary:dict] doubleValue];
  122. self.favoriteCount = [[self objectOrNilForKey:kHomeHotMusicModelFavoriteCount fromDictionary:dict] doubleValue];
  123. self.url = [self objectOrNilForKey:kHomeHotMusicModelUrl fromDictionary:dict];
  124. self.musicPrice = [[self objectOrNilForKey:kHomeHotMusicModelMusicPrice fromDictionary:dict] doubleValue];
  125. self.sortNumber = [[self objectOrNilForKey:kHomeHotMusicModelSortNumber fromDictionary:dict] doubleValue];
  126. self.play = [self objectOrNilForKey:kHomeHotMusicModelPlay fromDictionary:dict];
  127. self.addUserAvatar = [self objectOrNilForKey:kHomeHotMusicModelAddUserAvatar fromDictionary:dict];
  128. self.audioType = [self objectOrNilForKey:kHomeHotMusicModelAudioType fromDictionary:dict];
  129. self.canEvaluate = [[self objectOrNilForKey:kHomeHotMusicModelCanEvaluate fromDictionary:dict] doubleValue];
  130. self.delFlag = [[self objectOrNilForKey:kHomeHotMusicModelDelFlag fromDictionary:dict] boolValue];
  131. self.musicTagNames = [self objectOrNilForKey:kHomeHotMusicModelMusicTagNames fromDictionary:dict];
  132. self.subjectNames = [self objectOrNilForKey:kHomeHotMusicModelSubjectNames fromDictionary:dict];
  133. self.chargeType = [self objectOrNilForKey:kHomeHotMusicModelChargeType fromDictionary:dict];
  134. self.updateTime = [self objectOrNilForKey:kHomeHotMusicModelUpdateTime fromDictionary:dict];
  135. self.updateBy = [[self objectOrNilForKey:kHomeHotMusicModelUpdateBy fromDictionary:dict] doubleValue];
  136. self.musicTag = [self objectOrNilForKey:kHomeHotMusicModelMusicTag fromDictionary:dict];
  137. self.extConfigJson = [self objectOrNilForKey:kHomeHotMusicModelExtConfigJson fromDictionary:dict];
  138. self.addName = [self objectOrNilForKey:kHomeHotMusicModelAddName fromDictionary:dict];
  139. self.favorite = [self objectOrNilForKey:kHomeHotMusicModelFavorite fromDictionary:dict];
  140. self.auditStatus = [self objectOrNilForKey:kHomeHotMusicModelAuditStatus fromDictionary:dict];
  141. self.createBy = [[self objectOrNilForKey:kHomeHotMusicModelCreateBy fromDictionary:dict] doubleValue];
  142. self.midiUrl = [self objectOrNilForKey:kHomeHotMusicModelMidiUrl fromDictionary:dict];
  143. self.topFlag = [[self objectOrNilForKey:kHomeHotMusicModelTopFlag fromDictionary:dict] doubleValue];
  144. self.composer = [self objectOrNilForKey:kHomeHotMusicModelComposer fromDictionary:dict];
  145. self.sourceType = [self objectOrNilForKey:kHomeHotMusicModelSourceType fromDictionary:dict];
  146. self.hotFlag = [self objectOrNilForKey:kHomeHotMusicModelHotFlag fromDictionary:dict];
  147. self.mp3Type = [self objectOrNilForKey:kHomeHotMusicModelMp3Type fromDictionary:dict];
  148. self.createTime = [self objectOrNilForKey:kHomeHotMusicModelCreateTime fromDictionary:dict];
  149. self.playSpeed = [[self objectOrNilForKey:kHomeHotMusicModelPlaySpeed fromDictionary:dict] doubleValue];
  150. self.hasBeat = [self objectOrNilForKey:kHomeHotMusicModelHasBeat fromDictionary:dict];
  151. self.audioFileUrl = [self objectOrNilForKey:kHomeHotMusicModelAudioFileUrl fromDictionary:dict];
  152. self.reason = [self objectOrNilForKey:kHomeHotMusicModelReason fromDictionary:dict];
  153. self.auditVersion = [[self objectOrNilForKey:kHomeHotMusicModelAuditVersion fromDictionary:dict] doubleValue];
  154. self.musicSubject = [self objectOrNilForKey:kHomeHotMusicModelMusicSubject fromDictionary:dict];
  155. self.userId = [[self objectOrNilForKey:kHomeHotMusicModelUserId fromDictionary:dict] doubleValue];
  156. self.submitAuditTime = [self objectOrNilForKey:kHomeHotMusicModelSubmitAuditTime fromDictionary:dict];
  157. self.exquisiteFlag = [[self objectOrNilForKey:kHomeHotMusicModelExquisiteFlag fromDictionary:dict]
  158. boolValue];
  159. self.paymentType = [self objectOrNilForKey:kMusicMessageModelPaymentType fromDictionary:dict];
  160. self.albumNums = [[self objectOrNilForKey:kHomeHotMusicModelAlbumNums fromDictionary:dict] integerValue];
  161. }
  162. return self;
  163. }
  164. - (NSDictionary *)dictionaryRepresentation
  165. {
  166. NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary];
  167. [mutableDict setValue:self.metronomeUrl forKey:kHomeHotMusicModelMetronomeUrl];
  168. [mutableDict setValue:self.musicSheetName forKey:kHomeHotMusicModelMusicSheetName];
  169. [mutableDict setValue:[NSNumber numberWithDouble:self.notation] forKey:kHomeHotMusicModelNotation];
  170. [mutableDict setValue:self.internalBaseClassIdentifier forKey:kHomeHotMusicModelId];
  171. [mutableDict setValue:self.xmlFileUrl forKey:kHomeHotMusicModelXmlFileUrl];
  172. [mutableDict setValue:[NSNumber numberWithDouble:self.showFingering] forKey:kHomeHotMusicModelShowFingering];
  173. [mutableDict setValue:self.remark forKey:kHomeHotMusicModelRemark];
  174. [mutableDict setValue:[NSNumber numberWithDouble:self.state] forKey:kHomeHotMusicModelState];
  175. [mutableDict setValue:[NSNumber numberWithDouble:self.favoriteCount] forKey:kHomeHotMusicModelFavoriteCount];
  176. [mutableDict setValue:self.url forKey:kHomeHotMusicModelUrl];
  177. [mutableDict setValue:[NSNumber numberWithDouble:self.musicPrice] forKey:kHomeHotMusicModelMusicPrice];
  178. [mutableDict setValue:[NSNumber numberWithDouble:self.sortNumber] forKey:kHomeHotMusicModelSortNumber];
  179. [mutableDict setValue:self.play forKey:kHomeHotMusicModelPlay];
  180. [mutableDict setValue:self.addUserAvatar forKey:kHomeHotMusicModelAddUserAvatar];
  181. [mutableDict setValue:self.audioType forKey:kHomeHotMusicModelAudioType];
  182. [mutableDict setValue:[NSNumber numberWithDouble:self.canEvaluate] forKey:kHomeHotMusicModelCanEvaluate];
  183. [mutableDict setValue:[NSNumber numberWithBool:self.delFlag] forKey:kHomeHotMusicModelDelFlag];
  184. [mutableDict setValue:self.musicTagNames forKey:kHomeHotMusicModelMusicTagNames];
  185. [mutableDict setValue:self.subjectNames forKey:kHomeHotMusicModelSubjectNames];
  186. [mutableDict setValue:self.chargeType forKey:kHomeHotMusicModelChargeType];
  187. [mutableDict setValue:self.updateTime forKey:kHomeHotMusicModelUpdateTime];
  188. [mutableDict setValue:[NSNumber numberWithDouble:self.updateBy] forKey:kHomeHotMusicModelUpdateBy];
  189. [mutableDict setValue:self.musicTag forKey:kHomeHotMusicModelMusicTag];
  190. [mutableDict setValue:self.extConfigJson forKey:kHomeHotMusicModelExtConfigJson];
  191. [mutableDict setValue:self.addName forKey:kHomeHotMusicModelAddName];
  192. [mutableDict setValue:self.favorite forKey:kHomeHotMusicModelFavorite];
  193. [mutableDict setValue:self.auditStatus forKey:kHomeHotMusicModelAuditStatus];
  194. [mutableDict setValue:[NSNumber numberWithDouble:self.createBy] forKey:kHomeHotMusicModelCreateBy];
  195. [mutableDict setValue:self.midiUrl forKey:kHomeHotMusicModelMidiUrl];
  196. [mutableDict setValue:[NSNumber numberWithDouble:self.topFlag] forKey:kHomeHotMusicModelTopFlag];
  197. [mutableDict setValue:self.composer forKey:kHomeHotMusicModelComposer];
  198. [mutableDict setValue:self.sourceType forKey:kHomeHotMusicModelSourceType];
  199. [mutableDict setValue:self.hotFlag forKey:kHomeHotMusicModelHotFlag];
  200. [mutableDict setValue:self.mp3Type forKey:kHomeHotMusicModelMp3Type];
  201. [mutableDict setValue:self.createTime forKey:kHomeHotMusicModelCreateTime];
  202. [mutableDict setValue:[NSNumber numberWithDouble:self.playSpeed] forKey:kHomeHotMusicModelPlaySpeed];
  203. [mutableDict setValue:self.hasBeat forKey:kHomeHotMusicModelHasBeat];
  204. [mutableDict setValue:self.audioFileUrl forKey:kHomeHotMusicModelAudioFileUrl];
  205. [mutableDict setValue:self.reason forKey:kHomeHotMusicModelReason];
  206. [mutableDict setValue:[NSNumber numberWithDouble:self.auditVersion] forKey:kHomeHotMusicModelAuditVersion];
  207. [mutableDict setValue:self.musicSubject forKey:kHomeHotMusicModelMusicSubject];
  208. [mutableDict setValue:[NSNumber numberWithDouble:self.userId] forKey:kHomeHotMusicModelUserId];
  209. [mutableDict setValue:self.submitAuditTime forKey:kHomeHotMusicModelSubmitAuditTime];
  210. [mutableDict setValue:[NSNumber numberWithBool:self.exquisiteFlag] forKey:kHomeHotMusicModelExquisiteFlag];
  211. [mutableDict setValue:self.paymentType forKey:kMusicMessageModelPaymentType];
  212. [mutableDict setValue:[NSNumber numberWithInteger:self.albumNums] forKey:kHomeHotMusicModelAlbumNums];
  213. return [NSDictionary dictionaryWithDictionary:mutableDict];
  214. }
  215. - (NSString *)description
  216. {
  217. return [NSString stringWithFormat:@"%@", [self dictionaryRepresentation]];
  218. }
  219. #pragma mark - Helper Method
  220. - (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict
  221. {
  222. id object = [dict objectForKey:aKey];
  223. if ([object isKindOfClass:[NSNumber class]]) {
  224. NSNumber *number = object;
  225. object = [number stringValue];
  226. }
  227. return [object isEqual:[NSNull null]] ? nil : object;
  228. }
  229. #pragma mark - NSCoding Methods
  230. - (id)initWithCoder:(NSCoder *)aDecoder
  231. {
  232. self = [super init];
  233. self.metronomeUrl = [aDecoder decodeObjectForKey:kHomeHotMusicModelMetronomeUrl];
  234. self.musicSheetName = [aDecoder decodeObjectForKey:kHomeHotMusicModelMusicSheetName];
  235. self.notation = [aDecoder decodeDoubleForKey:kHomeHotMusicModelNotation];
  236. self.internalBaseClassIdentifier = [aDecoder decodeObjectForKey:kHomeHotMusicModelId];
  237. self.xmlFileUrl = [aDecoder decodeObjectForKey:kHomeHotMusicModelXmlFileUrl];
  238. self.showFingering = [aDecoder decodeDoubleForKey:kHomeHotMusicModelShowFingering];
  239. self.remark = [aDecoder decodeObjectForKey:kHomeHotMusicModelRemark];
  240. self.state = [aDecoder decodeDoubleForKey:kHomeHotMusicModelState];
  241. self.favoriteCount = [aDecoder decodeDoubleForKey:kHomeHotMusicModelFavoriteCount];
  242. self.url = [aDecoder decodeObjectForKey:kHomeHotMusicModelUrl];
  243. self.musicPrice = [aDecoder decodeDoubleForKey:kHomeHotMusicModelMusicPrice];
  244. self.sortNumber = [aDecoder decodeDoubleForKey:kHomeHotMusicModelSortNumber];
  245. self.play = [aDecoder decodeObjectForKey:kHomeHotMusicModelPlay];
  246. self.addUserAvatar = [aDecoder decodeObjectForKey:kHomeHotMusicModelAddUserAvatar];
  247. self.audioType = [aDecoder decodeObjectForKey:kHomeHotMusicModelAudioType];
  248. self.canEvaluate = [aDecoder decodeDoubleForKey:kHomeHotMusicModelCanEvaluate];
  249. self.delFlag = [aDecoder decodeBoolForKey:kHomeHotMusicModelDelFlag];
  250. self.musicTagNames = [aDecoder decodeObjectForKey:kHomeHotMusicModelMusicTagNames];
  251. self.subjectNames = [aDecoder decodeObjectForKey:kHomeHotMusicModelSubjectNames];
  252. self.chargeType = [aDecoder decodeObjectForKey:kHomeHotMusicModelChargeType];
  253. self.updateTime = [aDecoder decodeObjectForKey:kHomeHotMusicModelUpdateTime];
  254. self.updateBy = [aDecoder decodeDoubleForKey:kHomeHotMusicModelUpdateBy];
  255. self.musicTag = [aDecoder decodeObjectForKey:kHomeHotMusicModelMusicTag];
  256. self.extConfigJson = [aDecoder decodeObjectForKey:kHomeHotMusicModelExtConfigJson];
  257. self.addName = [aDecoder decodeObjectForKey:kHomeHotMusicModelAddName];
  258. self.favorite = [aDecoder decodeObjectForKey:kHomeHotMusicModelFavorite];
  259. self.auditStatus = [aDecoder decodeObjectForKey:kHomeHotMusicModelAuditStatus];
  260. self.createBy = [aDecoder decodeDoubleForKey:kHomeHotMusicModelCreateBy];
  261. self.midiUrl = [aDecoder decodeObjectForKey:kHomeHotMusicModelMidiUrl];
  262. self.topFlag = [aDecoder decodeDoubleForKey:kHomeHotMusicModelTopFlag];
  263. self.composer = [aDecoder decodeObjectForKey:kHomeHotMusicModelComposer];
  264. self.sourceType = [aDecoder decodeObjectForKey:kHomeHotMusicModelSourceType];
  265. self.hotFlag = [aDecoder decodeObjectForKey:kHomeHotMusicModelHotFlag];
  266. self.mp3Type = [aDecoder decodeObjectForKey:kHomeHotMusicModelMp3Type];
  267. self.createTime = [aDecoder decodeObjectForKey:kHomeHotMusicModelCreateTime];
  268. self.playSpeed = [aDecoder decodeDoubleForKey:kHomeHotMusicModelPlaySpeed];
  269. self.hasBeat = [aDecoder decodeObjectForKey:kHomeHotMusicModelHasBeat];
  270. self.audioFileUrl = [aDecoder decodeObjectForKey:kHomeHotMusicModelAudioFileUrl];
  271. self.reason = [aDecoder decodeObjectForKey:kHomeHotMusicModelReason];
  272. self.auditVersion = [aDecoder decodeDoubleForKey:kHomeHotMusicModelAuditVersion];
  273. self.musicSubject = [aDecoder decodeObjectForKey:kHomeHotMusicModelMusicSubject];
  274. self.userId = [aDecoder decodeDoubleForKey:kHomeHotMusicModelUserId];
  275. self.submitAuditTime = [aDecoder decodeObjectForKey:kHomeHotMusicModelSubmitAuditTime];
  276. self.exquisiteFlag = [aDecoder decodeBoolForKey:kHomeHotMusicModelExquisiteFlag];
  277. self.paymentType = [aDecoder decodeObjectForKey:kMusicMessageModelPaymentType];
  278. self.albumNums = [aDecoder decodeIntegerForKey:kHomeHotMusicModelAlbumNums];
  279. return self;
  280. }
  281. - (void)encodeWithCoder:(NSCoder *)aCoder
  282. {
  283. [aCoder encodeObject:_metronomeUrl forKey:kHomeHotMusicModelMetronomeUrl];
  284. [aCoder encodeObject:_musicSheetName forKey:kHomeHotMusicModelMusicSheetName];
  285. [aCoder encodeDouble:_notation forKey:kHomeHotMusicModelNotation];
  286. [aCoder encodeObject:_internalBaseClassIdentifier forKey:kHomeHotMusicModelId];
  287. [aCoder encodeObject:_xmlFileUrl forKey:kHomeHotMusicModelXmlFileUrl];
  288. [aCoder encodeDouble:_showFingering forKey:kHomeHotMusicModelShowFingering];
  289. [aCoder encodeObject:_remark forKey:kHomeHotMusicModelRemark];
  290. [aCoder encodeDouble:_state forKey:kHomeHotMusicModelState];
  291. [aCoder encodeDouble:_favoriteCount forKey:kHomeHotMusicModelFavoriteCount];
  292. [aCoder encodeObject:_url forKey:kHomeHotMusicModelUrl];
  293. [aCoder encodeDouble:_musicPrice forKey:kHomeHotMusicModelMusicPrice];
  294. [aCoder encodeDouble:_sortNumber forKey:kHomeHotMusicModelSortNumber];
  295. [aCoder encodeObject:_play forKey:kHomeHotMusicModelPlay];
  296. [aCoder encodeObject:_addUserAvatar forKey:kHomeHotMusicModelAddUserAvatar];
  297. [aCoder encodeObject:_audioType forKey:kHomeHotMusicModelAudioType];
  298. [aCoder encodeDouble:_canEvaluate forKey:kHomeHotMusicModelCanEvaluate];
  299. [aCoder encodeBool:_delFlag forKey:kHomeHotMusicModelDelFlag];
  300. [aCoder encodeObject:_musicTagNames forKey:kHomeHotMusicModelMusicTagNames];
  301. [aCoder encodeObject:_subjectNames forKey:kHomeHotMusicModelSubjectNames];
  302. [aCoder encodeObject:_chargeType forKey:kHomeHotMusicModelChargeType];
  303. [aCoder encodeObject:_updateTime forKey:kHomeHotMusicModelUpdateTime];
  304. [aCoder encodeDouble:_updateBy forKey:kHomeHotMusicModelUpdateBy];
  305. [aCoder encodeObject:_musicTag forKey:kHomeHotMusicModelMusicTag];
  306. [aCoder encodeObject:_extConfigJson forKey:kHomeHotMusicModelExtConfigJson];
  307. [aCoder encodeObject:_addName forKey:kHomeHotMusicModelAddName];
  308. [aCoder encodeObject:_favorite forKey:kHomeHotMusicModelFavorite];
  309. [aCoder encodeObject:_auditStatus forKey:kHomeHotMusicModelAuditStatus];
  310. [aCoder encodeDouble:_createBy forKey:kHomeHotMusicModelCreateBy];
  311. [aCoder encodeObject:_midiUrl forKey:kHomeHotMusicModelMidiUrl];
  312. [aCoder encodeDouble:_topFlag forKey:kHomeHotMusicModelTopFlag];
  313. [aCoder encodeObject:_composer forKey:kHomeHotMusicModelComposer];
  314. [aCoder encodeObject:_sourceType forKey:kHomeHotMusicModelSourceType];
  315. [aCoder encodeObject:_hotFlag forKey:kHomeHotMusicModelHotFlag];
  316. [aCoder encodeObject:_mp3Type forKey:kHomeHotMusicModelMp3Type];
  317. [aCoder encodeObject:_createTime forKey:kHomeHotMusicModelCreateTime];
  318. [aCoder encodeDouble:_playSpeed forKey:kHomeHotMusicModelPlaySpeed];
  319. [aCoder encodeObject:_hasBeat forKey:kHomeHotMusicModelHasBeat];
  320. [aCoder encodeObject:_audioFileUrl forKey:kHomeHotMusicModelAudioFileUrl];
  321. [aCoder encodeObject:_reason forKey:kHomeHotMusicModelReason];
  322. [aCoder encodeDouble:_auditVersion forKey:kHomeHotMusicModelAuditVersion];
  323. [aCoder encodeObject:_musicSubject forKey:kHomeHotMusicModelMusicSubject];
  324. [aCoder encodeDouble:_userId forKey:kHomeHotMusicModelUserId];
  325. [aCoder encodeObject:_submitAuditTime forKey:kHomeHotMusicModelSubmitAuditTime];
  326. [aCoder encodeBool:_exquisiteFlag forKey:kHomeHotMusicModelExquisiteFlag];
  327. [aCoder encodeObject:_paymentType forKey:kMusicMessageModelPaymentType];
  328. [aCoder encodeInteger:_albumNums forKey:kHomeHotMusicModelAlbumNums];
  329. }
  330. - (id)copyWithZone:(NSZone *)zone
  331. {
  332. HomeHotMusicModel *copy = [[HomeHotMusicModel alloc] init];
  333. if (copy) {
  334. copy.metronomeUrl = [self.metronomeUrl copyWithZone:zone];
  335. copy.musicSheetName = [self.musicSheetName copyWithZone:zone];
  336. copy.notation = self.notation;
  337. copy.internalBaseClassIdentifier = [self.internalBaseClassIdentifier copyWithZone:zone];
  338. copy.xmlFileUrl = [self.xmlFileUrl copyWithZone:zone];
  339. copy.showFingering = self.showFingering;
  340. copy.remark = [self.remark copyWithZone:zone];
  341. copy.state = self.state;
  342. copy.favoriteCount = self.favoriteCount;
  343. copy.url = [self.url copyWithZone:zone];
  344. copy.musicPrice = self.musicPrice;
  345. copy.sortNumber = self.sortNumber;
  346. copy.play = [self.play copyWithZone:zone];
  347. copy.addUserAvatar = [self.addUserAvatar copyWithZone:zone];
  348. copy.audioType = [self.audioType copyWithZone:zone];
  349. copy.canEvaluate = self.canEvaluate;
  350. copy.delFlag = self.delFlag;
  351. copy.musicTagNames = [self.musicTagNames copyWithZone:zone];
  352. copy.subjectNames = [self.subjectNames copyWithZone:zone];
  353. copy.chargeType = [self.chargeType copyWithZone:zone];
  354. copy.updateTime = [self.updateTime copyWithZone:zone];
  355. copy.updateBy = self.updateBy;
  356. copy.musicTag = [self.musicTag copyWithZone:zone];
  357. copy.extConfigJson = [self.extConfigJson copyWithZone:zone];
  358. copy.addName = [self.addName copyWithZone:zone];
  359. copy.favorite = [self.favorite copyWithZone:zone];
  360. copy.auditStatus = [self.auditStatus copyWithZone:zone];
  361. copy.createBy = self.createBy;
  362. copy.midiUrl = [self.midiUrl copyWithZone:zone];
  363. copy.topFlag = self.topFlag;
  364. copy.composer = [self.composer copyWithZone:zone];
  365. copy.sourceType = [self.sourceType copyWithZone:zone];
  366. copy.hotFlag = [self.hotFlag copyWithZone:zone];
  367. copy.mp3Type = [self.mp3Type copyWithZone:zone];
  368. copy.createTime = [self.createTime copyWithZone:zone];
  369. copy.playSpeed = self.playSpeed;
  370. copy.hasBeat = [self.hasBeat copyWithZone:zone];
  371. copy.audioFileUrl = [self.audioFileUrl copyWithZone:zone];
  372. copy.reason = [self.reason copyWithZone:zone];
  373. copy.auditVersion = self.auditVersion;
  374. copy.musicSubject = [self.musicSubject copyWithZone:zone];
  375. copy.userId = self.userId;
  376. copy.submitAuditTime = [self.submitAuditTime copyWithZone:zone];
  377. copy.exquisiteFlag = self.exquisiteFlag;
  378. copy.paymentType = [self.paymentType copyWithZone:zone];
  379. copy.albumNums = self.albumNums;
  380. }
  381. return copy;
  382. }
  383. @end