ting_model 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (229) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +4 -0
  3. data/README.md +41 -0
  4. data/Rakefile +1 -0
  5. data/gen_shards.rb +59 -0
  6. data/lib/extenders/album_extender.rb +9 -0
  7. data/lib/extenders/block_avatar_extender.rb +5 -0
  8. data/lib/extenders/chat_extender.rb +5 -0
  9. data/lib/extenders/class_node.rb +21 -0
  10. data/lib/extenders/comment_extender.rb +5 -0
  11. data/lib/extenders/favorite_album_extender.rb +5 -0
  12. data/lib/extenders/favorite_extender.rb +5 -0
  13. data/lib/extenders/following_extender.rb +13 -0
  14. data/lib/extenders/following_group_extender.rb +5 -0
  15. data/lib/extenders/following_tag_extender.rb +5 -0
  16. data/lib/extenders/followingx2_group_extender.rb +5 -0
  17. data/lib/extenders/inbox_extender.rb +5 -0
  18. data/lib/extenders/linkman_extender.rb +5 -0
  19. data/lib/extenders/outbox_extender.rb +5 -0
  20. data/lib/extenders/track_block_extender.rb +5 -0
  21. data/lib/extenders/track_extender.rb +5 -0
  22. data/lib/extenders/track_in_record_extender.rb +76 -0
  23. data/lib/extenders/track_picture_extender.rb +5 -0
  24. data/lib/extenders/track_record_extender.rb +5 -0
  25. data/lib/extenders/track_rich_extender.rb +5 -0
  26. data/lib/extenders/track_set_extender.rb +79 -0
  27. data/lib/extenders/track_set_rich_extender.rb +5 -0
  28. data/lib/extenders/user_tag_extender.rb +5 -0
  29. data/lib/ting_model.rb +1 -0
  30. data/lib/ting_model/advertisement.rb +5 -0
  31. data/lib/ting_model/advertisement_new.rb +4 -0
  32. data/lib/ting_model/album.rb +31 -0
  33. data/lib/ting_model/album_node.rb +9 -0
  34. data/lib/ting_model/album_origin.rb +137 -0
  35. data/lib/ting_model/album_pod.rb +8 -0
  36. data/lib/ting_model/album_podcat.rb +8 -0
  37. data/lib/ting_model/android_channel.rb +4 -0
  38. data/lib/ting_model/android_channel_binding.rb +7 -0
  39. data/lib/ting_model/announcement.rb +12 -0
  40. data/lib/ting_model/app_recommend.rb +55 -0
  41. data/lib/ting_model/application_v_category.rb +5 -0
  42. data/lib/ting_model/approve_group.rb +4 -0
  43. data/lib/ting_model/approving_track.rb +4 -0
  44. data/lib/ting_model/approving_track_log.rb +4 -0
  45. data/lib/ting_model/audit_log.rb +5 -0
  46. data/lib/ting_model/baidu_count.rb +4 -0
  47. data/lib/ting_model/bind_user.rb +7 -0
  48. data/lib/ting_model/binding_app.rb +4 -0
  49. data/lib/ting_model/biting.rb +4 -0
  50. data/lib/ting_model/black_user.rb +9 -0
  51. data/lib/ting_model/block_avatar.rb +31 -0
  52. data/lib/ting_model/block_avatar_node.rb +10 -0
  53. data/lib/ting_model/block_avatar_origin.rb +24 -0
  54. data/lib/ting_model/category.rb +20 -0
  55. data/lib/ting_model/category_icon_version.rb +12 -0
  56. data/lib/ting_model/chat.rb +31 -0
  57. data/lib/ting_model/chat_node.rb +10 -0
  58. data/lib/ting_model/chat_origin.rb +32 -0
  59. data/lib/ting_model/comment.rb +80 -0
  60. data/lib/ting_model/comment_node.rb +10 -0
  61. data/lib/ting_model/comment_origin.rb +116 -0
  62. data/lib/ting_model/dead_album.rb +8 -0
  63. data/lib/ting_model/dead_track.rb +8 -0
  64. data/lib/ting_model/dead_user.rb +7 -0
  65. data/lib/ting_model/default_follow.rb +6 -0
  66. data/lib/ting_model/delayed_album.rb +26 -0
  67. data/lib/ting_model/delayed_publish.rb +4 -0
  68. data/lib/ting_model/delayed_track.rb +43 -0
  69. data/lib/ting_model/discovery_page.rb +17 -0
  70. data/lib/ting_model/editor_recommend.rb +5 -0
  71. data/lib/ting_model/favorite.rb +59 -0
  72. data/lib/ting_model/favorite_album.rb +50 -0
  73. data/lib/ting_model/favorite_album_node.rb +9 -0
  74. data/lib/ting_model/favorite_album_origin.rb +88 -0
  75. data/lib/ting_model/favorite_node.rb +10 -0
  76. data/lib/ting_model/favorite_origin.rb +138 -0
  77. data/lib/ting_model/feed.rb +159 -0
  78. data/lib/ting_model/file_upload.rb +4 -0
  79. data/lib/ting_model/file_upload_record.rb +4 -0
  80. data/lib/ting_model/focus.rb +16 -0
  81. data/lib/ting_model/focus_album.rb +9 -0
  82. data/lib/ting_model/focus_current.rb +10 -0
  83. data/lib/ting_model/focus_track.rb +17 -0
  84. data/lib/ting_model/focus_user.rb +7 -0
  85. data/lib/ting_model/follower.rb +27 -0
  86. data/lib/ting_model/follower_node.rb +10 -0
  87. data/lib/ting_model/follower_origin.rb +34 -0
  88. data/lib/ting_model/follower_tag.rb +27 -0
  89. data/lib/ting_model/follower_tag_node.rb +10 -0
  90. data/lib/ting_model/follower_tag_origin.rb +14 -0
  91. data/lib/ting_model/followerx2_group.rb +27 -0
  92. data/lib/ting_model/followerx2_group_node.rb +10 -0
  93. data/lib/ting_model/followerx2_group_origin.rb +12 -0
  94. data/lib/ting_model/following.rb +57 -0
  95. data/lib/ting_model/following_group.rb +31 -0
  96. data/lib/ting_model/following_group_node.rb +10 -0
  97. data/lib/ting_model/following_group_origin.rb +29 -0
  98. data/lib/ting_model/following_node.rb +10 -0
  99. data/lib/ting_model/following_origin.rb +72 -0
  100. data/lib/ting_model/following_tag.rb +52 -0
  101. data/lib/ting_model/following_tag_node.rb +10 -0
  102. data/lib/ting_model/following_tag_origin.rb +59 -0
  103. data/lib/ting_model/followingx2_group.rb +31 -0
  104. data/lib/ting_model/followingx2_group_node.rb +10 -0
  105. data/lib/ting_model/followingx2_group_origin.rb +23 -0
  106. data/lib/ting_model/human_category.rb +17 -0
  107. data/lib/ting_model/human_recommend_album.rb +8 -0
  108. data/lib/ting_model/human_recommend_album_category_tag.rb +4 -0
  109. data/lib/ting_model/human_recommend_album_tag.rb +4 -0
  110. data/lib/ting_model/human_recommend_category_album.rb +7 -0
  111. data/lib/ting_model/human_recommend_category_tag.rb +6 -0
  112. data/lib/ting_model/human_recommend_category_tag_album.rb +7 -0
  113. data/lib/ting_model/human_recommend_category_tag_track.rb +11 -0
  114. data/lib/ting_model/human_recommend_category_tag_user.rb +7 -0
  115. data/lib/ting_model/human_recommend_category_track.rb +11 -0
  116. data/lib/ting_model/human_recommend_category_user.rb +7 -0
  117. data/lib/ting_model/human_recommend_tag.rb +5 -0
  118. data/lib/ting_model/human_recommend_tag_album.rb +7 -0
  119. data/lib/ting_model/human_recommend_tag_track.rb +9 -0
  120. data/lib/ting_model/human_recommend_tag_user.rb +7 -0
  121. data/lib/ting_model/human_recommend_track.rb +9 -0
  122. data/lib/ting_model/human_recommend_user.rb +7 -0
  123. data/lib/ting_model/icon_version.rb +7 -0
  124. data/lib/ting_model/inbox.rb +31 -0
  125. data/lib/ting_model/inbox_node.rb +10 -0
  126. data/lib/ting_model/inbox_origin.rb +59 -0
  127. data/lib/ting_model/latest_album.rb +9 -0
  128. data/lib/ting_model/latest_favorite.rb +10 -0
  129. data/lib/ting_model/latest_track.rb +10 -0
  130. data/lib/ting_model/linkman.rb +30 -0
  131. data/lib/ting_model/linkman_node.rb +10 -0
  132. data/lib/ting_model/linkman_origin.rb +26 -0
  133. data/lib/ting_model/liteapp.rb +7 -0
  134. data/lib/ting_model/liteapp_album.rb +4 -0
  135. data/lib/ting_model/liteapp_tag.rb +4 -0
  136. data/lib/ting_model/lover.rb +27 -0
  137. data/lib/ting_model/lover_album.rb +27 -0
  138. data/lib/ting_model/lover_album_node.rb +9 -0
  139. data/lib/ting_model/lover_album_origin.rb +39 -0
  140. data/lib/ting_model/lover_node.rb +10 -0
  141. data/lib/ting_model/lover_origin.rb +45 -0
  142. data/lib/ting_model/m_user.rb +8 -0
  143. data/lib/ting_model/message_log.rb +4 -0
  144. data/lib/ting_model/message_picture.rb +5 -0
  145. data/lib/ting_model/meta.rb +4 -0
  146. data/lib/ting_model/mixing_album.rb +7 -0
  147. data/lib/ting_model/mobad_stat.rb +9 -0
  148. data/lib/ting_model/news.rb +16 -0
  149. data/lib/ting_model/out_link.rb +7 -0
  150. data/lib/ting_model/outbox.rb +31 -0
  151. data/lib/ting_model/outbox_node.rb +10 -0
  152. data/lib/ting_model/outbox_origin.rb +59 -0
  153. data/lib/ting_model/outlink_stat.rb +4 -0
  154. data/lib/ting_model/personal_setting.rb +26 -0
  155. data/lib/ting_model/push_message.rb +4 -0
  156. data/lib/ting_model/receive_laya.rb +9 -0
  157. data/lib/ting_model/recommend_album.rb +7 -0
  158. data/lib/ting_model/recommend_category_album.rb +7 -0
  159. data/lib/ting_model/recommend_category_tag.rb +5 -0
  160. data/lib/ting_model/recommend_category_tag_album.rb +7 -0
  161. data/lib/ting_model/recommend_category_tag_track.rb +9 -0
  162. data/lib/ting_model/recommend_category_tag_user.rb +7 -0
  163. data/lib/ting_model/recommend_category_track.rb +9 -0
  164. data/lib/ting_model/recommend_category_user.rb +7 -0
  165. data/lib/ting_model/recommend_tag.rb +15 -0
  166. data/lib/ting_model/recommend_tag_album.rb +7 -0
  167. data/lib/ting_model/recommend_tag_track.rb +9 -0
  168. data/lib/ting_model/recommend_tag_user.rb +7 -0
  169. data/lib/ting_model/recommend_track.rb +9 -0
  170. data/lib/ting_model/recommend_user.rb +7 -0
  171. data/lib/ting_model/reject_reason.rb +17 -0
  172. data/lib/ting_model/report.rb +33 -0
  173. data/lib/ting_model/report_information.rb +29 -0
  174. data/lib/ting_model/search_black_uid.rb +7 -0
  175. data/lib/ting_model/search_key.rb +6 -0
  176. data/lib/ting_model/send_msg.rb +4 -0
  177. data/lib/ting_model/shards.rb +2626 -0
  178. data/lib/ting_model/sms.rb +19 -0
  179. data/lib/ting_model/special.rb +17 -0
  180. data/lib/ting_model/special_album.rb +4 -0
  181. data/lib/ting_model/special_track.rb +4 -0
  182. data/lib/ting_model/sub_app_advertisement_new.rb +4 -0
  183. data/lib/ting_model/subappad_stat.rb +9 -0
  184. data/lib/ting_model/system_configuration.rb +5 -0
  185. data/lib/ting_model/temp_blob.rb +5 -0
  186. data/lib/ting_model/track.rb +30 -0
  187. data/lib/ting_model/track_block.rb +46 -0
  188. data/lib/ting_model/track_block_node.rb +10 -0
  189. data/lib/ting_model/track_block_origin.rb +69 -0
  190. data/lib/ting_model/track_in_record.rb +27 -0
  191. data/lib/ting_model/track_in_record_node.rb +10 -0
  192. data/lib/ting_model/track_in_record_origin.rb +134 -0
  193. data/lib/ting_model/track_node.rb +9 -0
  194. data/lib/ting_model/track_origin.rb +224 -0
  195. data/lib/ting_model/track_picture.rb +32 -0
  196. data/lib/ting_model/track_picture_node.rb +10 -0
  197. data/lib/ting_model/track_picture_origin.rb +26 -0
  198. data/lib/ting_model/track_record.rb +31 -0
  199. data/lib/ting_model/track_record_node.rb +9 -0
  200. data/lib/ting_model/track_record_origin.rb +64 -0
  201. data/lib/ting_model/track_rich.rb +30 -0
  202. data/lib/ting_model/track_rich_node.rb +10 -0
  203. data/lib/ting_model/track_rich_origin.rb +31 -0
  204. data/lib/ting_model/track_set.rb +27 -0
  205. data/lib/ting_model/track_set_node.rb +9 -0
  206. data/lib/ting_model/track_set_origin.rb +147 -0
  207. data/lib/ting_model/track_set_rich.rb +30 -0
  208. data/lib/ting_model/track_set_rich_node.rb +10 -0
  209. data/lib/ting_model/track_set_rich_origin.rb +24 -0
  210. data/lib/ting_model/uid_approve_group.rb +4 -0
  211. data/lib/ting_model/upload_track_share_temp.rb +6 -0
  212. data/lib/ting_model/user_link.rb +10 -0
  213. data/lib/ting_model/user_log.rb +33 -0
  214. data/lib/ting_model/user_tag.rb +31 -0
  215. data/lib/ting_model/user_tag_node.rb +10 -0
  216. data/lib/ting_model/user_tag_origin.rb +23 -0
  217. data/lib/ting_model/user_v_category.rb +8 -0
  218. data/lib/ting_model/v_application.rb +35 -0
  219. data/lib/ting_model/v_category.rb +7 -0
  220. data/lib/ting_model/v_user.rb +7 -0
  221. data/lib/ting_model/varification_code.rb +6 -0
  222. data/lib/ting_model/web_advertisement.rb +6 -0
  223. data/lib/ting_model/web_discovery_page.rb +10 -0
  224. data/lib/ting_model/web_recommend.rb +6 -0
  225. data/lib/ting_model/weixin_account.rb +8 -0
  226. data/lib/ting_model/weixin_keyword.rb +4 -0
  227. data/lib/ting_model/weixin_monitor.rb +4 -0
  228. data/ting_model.gemspec +251 -0
  229. metadata +313 -0
@@ -0,0 +1,52 @@
1
+ require File.expand_path('../following_tag_node', __FILE__)
2
+ require File.expand_path('../following_tag_origin', __FILE__)
3
+
4
+ class FollowingTag < FollowingTagOrigin
5
+
6
+ def self.shard(key)
7
+ Object.const_get(FollowingTagNode.seek(key).class_name)
8
+ end
9
+
10
+ def self.gtn(key)
11
+ FollowingTagNode.seek(key).table_name
12
+ end
13
+
14
+ def self.stn(key)
15
+ self.table_name = self.gtn(key)
16
+ self
17
+ end
18
+
19
+ before_save do |r|
20
+ r.class.table_name = FollowingTag.gtn(r.uid)
21
+
22
+ unless r.id
23
+ r.id = FollowingTag.next_id
24
+ end
25
+ end
26
+
27
+ after_save do |r|
28
+ hash = r.attributes
29
+ hash.delete_if{|k,v| %w(id created_at updated_at).include? k }
30
+
31
+ follower_tag = FollowerTag.shard(r.tname).where(id: r.id).first
32
+ unless follower_tag
33
+ # 创建
34
+ follower_tag = FollowerTag.shard(r.tname).new
35
+ follower_tag.id = r.id
36
+ follower_tag.created_at = r.created_at
37
+ follower_tag.updated_at = r.updated_at
38
+ end
39
+ follower_tag.update_attributes(hash)
40
+ end
41
+
42
+ before_destroy do |r|
43
+ r.class.table_name = FollowingTag.gtn(r.uid)
44
+ end
45
+
46
+ after_destroy do |r|
47
+ # 删副本
48
+ follower_tag = FollowerTag.shard(r.tname).where(id: r.id).first
49
+ follower_tag.destroy if follower_tag
50
+ end
51
+
52
+ end
@@ -0,0 +1,10 @@
1
+ require File.expand_path('../../extenders/class_node', __FILE__)
2
+
3
+ class FollowingTagNode < ActiveRecord::Base
4
+ extend ClassNode
5
+
6
+ self.table_name = 'tb_following_tag_node'
7
+
8
+ attr_accessible :node, :table_name, :class_name
9
+
10
+ end
@@ -0,0 +1,59 @@
1
+ require File.expand_path('../../extenders/following_tag_extender', __FILE__)
2
+ require File.expand_path('../follower_tag', __FILE__)
3
+
4
+ class FollowingTagOrigin < ActiveRecord::Base
5
+ extend FollowingTagExtender
6
+
7
+ # 关注标签 根据uid分表
8
+ self.table_name = 'tb_follow_tag'
9
+
10
+ attr_accessible :uid, :tag_id,
11
+ :tname, :cover_path
12
+
13
+ # uid --- 用户id
14
+ # tag_id --- 未使用
15
+ # tname --- 标签
16
+ # cover_path --- 标签图标
17
+
18
+ validates :uid, presence: true
19
+
20
+ before_save do |r|
21
+ unless r.id
22
+ r.id = FollowingTag.next_id
23
+ end
24
+ end
25
+
26
+ after_save do |r|
27
+ hash = r.attributes
28
+ hash.delete_if{|k,v| %w(id created_at updated_at).include? k }
29
+
30
+ follower_tag = FollowerTag.shard(r.tname).where(id: r.id).first
31
+ unless follower_tag
32
+ # 创建
33
+ follower_tag = FollowerTag.shard(r.tname).new
34
+ follower_tag.id = r.id
35
+ follower_tag.created_at = r.created_at
36
+ follower_tag.updated_at = r.updated_at
37
+ end
38
+ follower_tag.update_attributes(hash)
39
+ end
40
+
41
+ after_destroy do |r|
42
+ # 删副本
43
+ follower_tag = FollowerTag.shard(r.tname).where(id: r.id).first
44
+ follower_tag.destroy if follower_tag
45
+ end
46
+
47
+ def to_topic_hash
48
+ {
49
+ created_at: self.created_at,
50
+ updated_at: self.updated_at,
51
+ id: self.id,
52
+ uid: self.uid,
53
+ tag_id: self.tag_id,
54
+ tname: self.tname,
55
+ cover_path: self.cover_path
56
+ }
57
+ end
58
+
59
+ end
@@ -0,0 +1,31 @@
1
+ require File.expand_path('../followingx2_group_node', __FILE__)
2
+ require File.expand_path('../followingx2_group_origin', __FILE__)
3
+
4
+ class Followingx2Group < Followingx2GroupOrigin
5
+
6
+ def self.shard(key)
7
+ Object.const_get(Followingx2GroupNode.seek(key).class_name)
8
+ end
9
+
10
+ def self.gtn(key)
11
+ Followingx2GroupNode.seek(key).table_name
12
+ end
13
+
14
+ def self.stn(key)
15
+ self.table_name = self.gtn(key)
16
+ self
17
+ end
18
+
19
+ before_save do |r|
20
+ r.class.table_name = Followingx2Group.gtn(r.uid)
21
+
22
+ unless r.id
23
+ r.id = Followingx2Group.next_id
24
+ end
25
+ end
26
+
27
+ before_destroy do |r|
28
+ r.class.table_name = Followingx2Group.gtn(r.uid)
29
+ end
30
+
31
+ end
@@ -0,0 +1,10 @@
1
+ require File.expand_path('../../extenders/class_node', __FILE__)
2
+
3
+ class Followingx2GroupNode < ActiveRecord::Base
4
+ extend ClassNode
5
+
6
+ self.table_name = 'tb_followingx2_group_node'
7
+
8
+ attr_accessible :node, :table_name, :class_name
9
+
10
+ end
@@ -0,0 +1,23 @@
1
+ require File.expand_path('../../extenders/followingx2_group_extender', __FILE__)
2
+
3
+ class Followingx2GroupOrigin < ActiveRecord::Base
4
+ extend Followingx2GroupExtender
5
+
6
+ self.table_name = 'tb_followingx2_group' # 关注 一对多 分组
7
+
8
+ attr_accessible :uid, :following_id, :following_group_id, :is_deleted
9
+
10
+ # uid --- 用户id
11
+ # following_id --- 关注id
12
+ # following_group_id --- 分组id
13
+ # is_deleted --- 未使用
14
+
15
+ validates :uid, presence: true
16
+
17
+ before_save do |r|
18
+ unless r.id
19
+ r.id = Followingx2Group.next_id
20
+ end
21
+ end
22
+
23
+ end
@@ -0,0 +1,17 @@
1
+ class HumanCategory < ActiveRecord::Base
2
+ self.table_name = 'tb_human_category' # 人的分类
3
+
4
+ attr_accessible :name, :title, :parent_id, :order_num, :is_deleted, :icon_ios_low_path, :icon_ios_high_path, :icon_android_low_path, :icon_android_high_path, :is_display
5
+
6
+ # name --- 分类名
7
+ # title --- 显示标题
8
+ # parent_id --- 父id
9
+ # order_num --- 排序号
10
+ # is_deleted --- 是否已删除
11
+ # icon_ios_low_path --- ios低清图标
12
+ # icon_ios_high_path --- ios高清图标
13
+ # icon_android_low_path --- android低清图标
14
+ # icon_android_high_path --- android高清图标
15
+ # is_display --- 是否显示
16
+
17
+ end
@@ -0,0 +1,8 @@
1
+ class HumanRecommendAlbum < ActiveRecord::Base
2
+ self.table_name = 'tb_human_recommend_album'
3
+ attr_accessible :album_id, :position, :begin_at, :end_at,
4
+ :album_uid, :album_nickname, :tags, :title, :intro,
5
+ :cover_path, :cover_path_small, :cover_path_middle, :cover_path_large, :cover_path_wide,
6
+ :album_created_at
7
+
8
+ end
@@ -0,0 +1,4 @@
1
+ class HumanRecommendAlbumCategoryTag < ActiveRecord::Base
2
+ self.table_name = 'tb_human_recommend_album_category_tag' # 人工推荐专辑分类下的标签
3
+ attr_accessible :category_id, :cover_path, :position, :tname, :ios_low, :ios_high, :android_low, :android_high
4
+ end
@@ -0,0 +1,4 @@
1
+ class HumanRecommendAlbumTag < ActiveRecord::Base
2
+ self.table_name = 'tb_human_recommend_album_tag' # 人工推荐专辑全局下的标签
3
+ attr_accessible :cover_path, :position, :tname
4
+ end
@@ -0,0 +1,7 @@
1
+ class HumanRecommendCategoryAlbum < ActiveRecord::Base
2
+ self.table_name = 'tb_human_recommend_category_album' # 人工推荐分类专辑
3
+ attr_accessible :category_id, :album_id, :position, :begin_at, :end_at,
4
+ :album_uid, :album_nickname, :tags, :title, :intro,
5
+ :cover_path, :cover_path_small, :cover_path_middle, :cover_path_large, :cover_path_wide,
6
+ :album_created_at
7
+ end
@@ -0,0 +1,6 @@
1
+ class HumanRecommendCategoryTag < ActiveRecord::Base
2
+ self.table_name = 'tb_human_recommend_category_tag' # 人工推荐分类标签
3
+
4
+ attr_accessible :category_id, :tag_id, :position, :begin_at, :end_at, :tname, :cover_path, :ios_low, :ios_high, :android_low, :android_high
5
+
6
+ end
@@ -0,0 +1,7 @@
1
+ class HumanRecommendCategoryTagAlbum < ActiveRecord::Base
2
+ self.table_name = 'tb_human_recommend_category_tag_album' # 人工推荐分类标签专辑
3
+ attr_accessible :category_id, :tag_id, :tname, :album_id, :position, :begin_at, :end_at,
4
+ :album_uid, :album_nickname, :tags, :title, :intro,
5
+ :cover_path, :cover_path_small, :cover_path_middle, :cover_path_large, :cover_path_wide,
6
+ :album_created_at
7
+ end
@@ -0,0 +1,11 @@
1
+ class HumanRecommendCategoryTagTrack < ActiveRecord::Base
2
+ self.table_name = 'tb_human_recommend_category_tag_track' # 人工推荐分类标签声音
3
+
4
+ attr_accessible :category_id, :tag_id, :tname, :track_id, :position, :begin_at, :end_at,
5
+ :track_uid, :track_nickname, :title, :duration,
6
+ :cover_path, :cover_path_small, :cover_path_middle, :cover_path_large, :cover_path_wide,
7
+ :tags, :intro, :play_path, :play_path_128, :play_path_64, :play_path_32, :download_path,
8
+ :track_created_at, :allow_download, :allow_comment, :album_id, :album_title, :album_cover_path
9
+ belongs_to :track
10
+ belongs_to :category
11
+ end
@@ -0,0 +1,7 @@
1
+ class HumanRecommendCategoryTagUser < ActiveRecord::Base
2
+ self.table_name = 'tb_human_recommend_category_tag_user' # 人工推荐分类标签用户
3
+
4
+ attr_accessible :category_id, :tag_id, :tname, :uid, :position, :begin_at, :end_at,
5
+ :nickname, :avatar_path, :avatar_path_small, :avatar_path_middle,
6
+ :avatar_path_large, :personal_signature, :country, :province, :city, :town, :reason
7
+ end
@@ -0,0 +1,11 @@
1
+ class HumanRecommendCategoryTrack < ActiveRecord::Base
2
+ self.table_name = 'tb_human_recommend_category_track' # 人工推荐分类声音
3
+
4
+ attr_accessible :track_id, :begin_at, :category_id, :end_at, :position,
5
+ :track_uid, :track_nickname, :title, :duration,
6
+ :cover_path, :cover_path_small, :cover_path_middle, :cover_path_large, :cover_path_wide,
7
+ :tags, :intro, :play_path, :play_path_128, :play_path_64, :play_path_32, :download_path,
8
+ :track_created_at, :allow_download, :allow_comment, :album_id, :album_title, :album_cover_path
9
+ belongs_to :track
10
+ belongs_to :category
11
+ end
@@ -0,0 +1,7 @@
1
+ class HumanRecommendCategoryUser < ActiveRecord::Base
2
+ self.table_name = 'tb_human_recommend_category_user' # 人工推荐分类用户
3
+
4
+ attr_accessible :category_id, :uid, :position, :begin_at, :end_at,
5
+ :nickname, :avatar_path, :avatar_path_small, :avatar_path_middle,
6
+ :avatar_path_large, :personal_signature, :country, :province, :city, :town, :reason
7
+ end
@@ -0,0 +1,5 @@
1
+ class HumanRecommendTag < ActiveRecord::Base
2
+ self.table_name = 'tb_human_recommend_tag' # 人工推荐标签
3
+
4
+ attr_accessible :tag_id, :position, :begin_at, :end_at, :tname, :cover_path
5
+ end
@@ -0,0 +1,7 @@
1
+ class HumanRecommendTagAlbum < ActiveRecord::Base
2
+ self.table_name = 'tb_human_recommend_tag_album' # 人工推荐标签声音
3
+ attr_accessible :tag_id, :tname, :album_id, :position, :begin_at, :end_at,
4
+ :album_uid, :album_nickname, :tags, :title, :intro,
5
+ :cover_path, :cover_path_small, :cover_path_middle, :cover_path_large, :cover_path_wide,
6
+ :album_created_at
7
+ end
@@ -0,0 +1,9 @@
1
+ class HumanRecommendTagTrack < ActiveRecord::Base
2
+ self.table_name = 'tb_human_recommend_tag_track' # 人工推荐标签声音
3
+
4
+ attr_accessible :track_id, :begin_at, :tag_id, :tname, :end_at, :position,
5
+ :track_uid, :track_nickname, :title, :duration,
6
+ :cover_path, :cover_path_small, :cover_path_middle, :cover_path_large, :cover_path_wide,
7
+ :tags, :intro, :play_path, :play_path_128, :play_path_64, :play_path_32, :download_path,
8
+ :track_created_at, :allow_download, :allow_comment, :album_id, :album_title, :album_cover_path
9
+ end
@@ -0,0 +1,7 @@
1
+ class HumanRecommendTagUser < ActiveRecord::Base
2
+ self.table_name = 'tb_human_recommend_tag_user' # 人工推荐标签用户
3
+
4
+ attr_accessible :tag_id, :tname, :uid, :position, :begin_at, :end_at,
5
+ :nickname, :avatar_path, :avatar_path_small, :avatar_path_middle,
6
+ :avatar_path_large, :personal_signature, :country, :province, :city, :town, :reason
7
+ end
@@ -0,0 +1,9 @@
1
+ class HumanRecommendTrack < ActiveRecord::Base
2
+ self.table_name = 'tb_human_recommend_track' # 人工推荐声音
3
+
4
+ attr_accessible :track_id, :begin_at, :end_at, :position,
5
+ :track_uid, :track_nickname, :title, :duration,
6
+ :cover_path, :cover_path_small, :cover_path_middle, :cover_path_large, :cover_path_wide,
7
+ :tags, :intro, :play_path, :play_path_128, :play_path_64, :play_path_32, :download_path,
8
+ :track_created_at, :allow_download, :allow_comment, :album_id, :album_title, :album_cover_path
9
+ end
@@ -0,0 +1,7 @@
1
+ class HumanRecommendUser < ActiveRecord::Base
2
+ self.table_name = 'tb_human_recommend_user' # 人工推荐用户
3
+
4
+ attr_accessible :uid, :position, :begin_at, :end_at,
5
+ :nickname, :avatar_path, :avatar_path_small, :avatar_path_middle,
6
+ :avatar_path_large, :personal_signature, :country, :province, :city, :town, :reason
7
+ end
@@ -0,0 +1,7 @@
1
+ class IconVersion < ActiveRecord::Base
2
+ self.table_name = 'tb_icon_version' # 图标版本号
3
+
4
+ attr_accessible :remark
5
+
6
+ # remark --- 备注
7
+ end
@@ -0,0 +1,31 @@
1
+ require File.expand_path('../inbox_node', __FILE__)
2
+ require File.expand_path('../inbox_origin', __FILE__)
3
+
4
+ class Inbox < InboxOrigin
5
+
6
+ def self.shard(key)
7
+ Object.const_get(InboxNode.seek(key).class_name)
8
+ end
9
+
10
+ def self.gtn(key)
11
+ InboxNode.seek(key).table_name
12
+ end
13
+
14
+ def self.stn(key)
15
+ self.table_name = self.gtn(key)
16
+ self
17
+ end
18
+
19
+ before_save do |r|
20
+ r.class.table_name = Inbox.gtn(r.to_uid)
21
+
22
+ unless r.id
23
+ r.id = Inbox.next_id
24
+ end
25
+ end
26
+
27
+ before_destroy do |r|
28
+ r.class.table_name = Inbox.gtn(r.to_uid)
29
+ end
30
+
31
+ end
@@ -0,0 +1,10 @@
1
+ require File.expand_path('../../extenders/class_node', __FILE__)
2
+
3
+ class InboxNode < ActiveRecord::Base
4
+ extend ClassNode
5
+
6
+ self.table_name = 'tb_inbox_node'
7
+
8
+ attr_accessible :node, :table_name, :class_name
9
+
10
+ end
@@ -0,0 +1,59 @@
1
+ require File.expand_path('../../extenders/inbox_extender', __FILE__)
2
+
3
+ class InboxOrigin < ActiveRecord::Base
4
+ extend InboxExtender
5
+
6
+ # 消息 根据to_uid分表
7
+ self.table_name = 'tb_message'
8
+
9
+ attr_accessible :message_type,
10
+ :upload_source,
11
+ :uid, :nickname, :avatar_path,
12
+ :to_uid, :to_nickname, :to_avatar_path,
13
+ :content,
14
+ :extra_json,
15
+ :has_read,
16
+ :track_id, :track_title, :track_cover_path, :track_uid, :track_nickname, :track_upload_source,
17
+ :comment_id, :second, :pcomment_id, :pcomment_content,
18
+ :anno_id, :anno_created_at
19
+
20
+
21
+ # message_type ---
22
+ # 1: 私信(已废弃)
23
+ # 2: 你评论了 发件箱
24
+ # 3: 你的评论被回复了 收件箱
25
+ # 4: 你的评论被@了 收件箱
26
+ # 5: 有一个公告(喜马发的) 收件箱
27
+ # 6: 有一封系统私信(加v通过等,喜马发的) 收件箱
28
+ # 7: 你的声音被喜欢了 收件箱
29
+ # 8: 你的声音被转发了 收件箱
30
+ # 9: 主动推 默认类型
31
+ # 10: 主动推 系统通知
32
+ # 11: 主动推 声音详情页
33
+ # 12: 主动推 个人主页
34
+ # 13: 主动推 专辑详情页
35
+ # 14: 你的声音被@到了 收件箱
36
+ # 15: 主动推 自定义url
37
+ # 16: 主播发来了私信 收件箱
38
+
39
+ # upload_source --- 发自 1:iphone/2:电脑/3:android
40
+ # uid nickname avatar_path --- 用户id 昵称 头像
41
+ # to_uid to_nickname to_avatar_path --- 发给用户id 昵称 头像
42
+ # content --- 内容
43
+ # extra_json --- 额外json
44
+ # has_read --- 是否已读
45
+ # track_id track_title track_cover_path --- 声音id 标题 封面
46
+ # track_uid track_nickname track_upload_source --- 声音用户id 昵称 上传自
47
+ # comment_id second --- 评论id 第几秒
48
+ # pcomment_id pcomment_content --- 父评论id 内容
49
+ # anno_id anno_created_at --- 公告id 创建时间
50
+
51
+ validates :to_uid, presence: true
52
+
53
+ before_save do |r|
54
+ unless r.id
55
+ r.id = Inbox.next_id
56
+ end
57
+ end
58
+
59
+ end