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,5 @@
1
+ module UserTagExtender
2
+ def next_id
3
+ ID_SERVICE.getNextId("ting.tb_user_tag")
4
+ end
5
+ end
data/lib/ting_model.rb ADDED
@@ -0,0 +1 @@
1
+ Dir[ File.expand_path('../ting_model/*.rb', __FILE__) ].each{|file| require file }
@@ -0,0 +1,5 @@
1
+ class Advertisement < ActiveRecord::Base
2
+ self.table_name = 'tb_advertisement' #广告表
3
+ belongs_to :app_recommend
4
+ attr_accessible :channel, :column_type, :position, :terminal, :time_at, :app_recommend_id, :link_url
5
+ end
@@ -0,0 +1,4 @@
1
+ class AdvertisementNew < ActiveRecord::Base
2
+ self.table_name = 'tb_advertisement_new'
3
+ attr_accessible :description, :end_at, :name, :start_at, :status, :sub_app_advertisement_new
4
+ end
@@ -0,0 +1,31 @@
1
+ require File.expand_path('../album_node', __FILE__)
2
+ require File.expand_path('../album_origin', __FILE__)
3
+
4
+ class Album < AlbumOrigin
5
+
6
+ def self.shard(key)
7
+ Object.const_get(AlbumNode.seek(key).class_name)
8
+ end
9
+
10
+ def self.gtn(key)
11
+ AlbumNode.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 = Album.gtn(r.uid)
21
+
22
+ unless r.id
23
+ r.id = Album.next_id
24
+ end
25
+ end
26
+
27
+ before_destroy do |r|
28
+ r.class.table_name = Album.gtn(r.uid)
29
+ end
30
+
31
+ end
@@ -0,0 +1,9 @@
1
+ require File.expand_path('../../extenders/class_node', __FILE__)
2
+
3
+ class AlbumNode < ActiveRecord::Base
4
+ extend ClassNode
5
+
6
+ self.table_name = 'tb_album_node'
7
+
8
+ attr_accessible :node, :table_name, :class_name
9
+ end
@@ -0,0 +1,137 @@
1
+ require File.expand_path('../../extenders/album_extender', __FILE__)
2
+ require File.expand_path('../track_set', __FILE__)
3
+
4
+ class AlbumOrigin < ActiveRecord::Base
5
+ extend AlbumExtender
6
+
7
+ # 专辑 根据uid分表
8
+ self.table_name = 'tb_album'
9
+
10
+ attr_accessible :op_type,
11
+ :is_publish,
12
+ :uid, :nickname, :avatar_path, :is_v, :human_category_id,
13
+ :title, :intro, :short_intro, :rich_intro,
14
+ :user_source,
15
+ :category_id,
16
+ :cover_path,
17
+ :tags, :extra_tags,
18
+ :is_public,
19
+ :music_category,
20
+ :tracks_order,
21
+ :is_crawler,
22
+ :is_deleted,:created_at, :updated_at, :id,
23
+ :source_url,
24
+ :is_records_desc,
25
+ :last_uptrack_at, :last_uptrack_id, :last_uptrack_title, :last_uptrack_cover_path,
26
+ :status, :dig_status, :is_finished
27
+
28
+ # op_type --- 1:自己传的 /2:转发
29
+ # is_publish --- 是否发布
30
+ # uid nickname avatar_path is_v human_category_id --- 用户id 昵称 头像地址 是否加v 用户分类id
31
+ # title intro short_intro rich_intro --- 标题 简介(不带格式) 短简介(不带格式) 收起的富简介(展开见track_set_rich.rich_intro)
32
+ # user_source --- 专辑来源 1:原创/2:采集
33
+ # category_id --- 分类id
34
+ # cover_path --- 专辑专辑封面路径原
35
+ # tags extra_tags --- 标签(逗号分隔) 额外标签
36
+ # is_public --- 是否公开
37
+ # music_category --- 音乐归类
38
+ # tracks_order --- 声音记录id排序 '3,2,1'(非爬虫专辑的排序依据)
39
+ # is_crawler --- 是否爬虫
40
+ # is_deleted --- 是否已删除
41
+ # source_url --- 专辑来源地址
42
+ # is_records_desc --- 真人专辑:新上传声音是否插在第一个, 爬虫专辑:声音记录是否倒序取
43
+ # last_uptrack_at last_uptrack_id last_uptrack_title last_uptrack_cover_path --- 最后更新声音 时间 id 标题 封面
44
+ # status --- 0: 待审核 1: 已通过 2: 已拒绝
45
+ # dig_status --- 去发现页状态 0:待审核/1:去发现页/2:不去
46
+
47
+ validates :uid, presence: true
48
+
49
+ belongs_to :category
50
+ belongs_to :profile, foreign_key: 'uid'
51
+
52
+ before_save do |r|
53
+ unless r.id
54
+ r.id = Album.next_id
55
+ end
56
+ end
57
+
58
+ after_save do |r|
59
+ hash = r.attributes
60
+ hash.delete_if{|k,v| %w(id created_at).include? k }
61
+ trackset = TrackSet.shard(r.id).where(id: r.id).first
62
+ unless trackset
63
+ # 创建
64
+ trackset = TrackSet.shard(r.id).new
65
+ trackset.id = r.id
66
+ trackset.created_at = r.created_at
67
+ trackset.updated_at = r.updated_at
68
+ end
69
+ trackset.update_attributes(hash)
70
+ end
71
+
72
+ after_destroy do |r|
73
+ trackset = TrackSet.shard(r.id).where(id: r.id).first
74
+ trackset.destroy if trackset
75
+
76
+ # 用户的专辑数 -1
77
+ Album.decr_user_albums_count(r.uid)
78
+ end
79
+
80
+ def to_topic_hash
81
+ {
82
+ created_at: self.created_at,
83
+ updated_at: self.updated_at,
84
+ id: self.id,
85
+ uid: self.uid,
86
+ nickname: self.nickname,
87
+ avatar_path: self.avatar_path,
88
+ is_v: self.is_v,
89
+ human_category_id: self.human_category_id,
90
+ is_public: self.is_public,
91
+ is_publish: self.is_publish,
92
+ user_source: self.user_source,
93
+ category_id: self.category_id,
94
+ tags: self.tags,
95
+ title: self.title,
96
+ intro: self.intro,
97
+ cover_path: self.cover_path,
98
+ music_category: self.music_category,
99
+ is_deleted: self.is_deleted,
100
+ status: self.status,
101
+ dig_status: self.dig_status,
102
+ extra_tags: self.extra_tags
103
+ }
104
+ end
105
+
106
+ def is_publish_disp
107
+ case self.is_publish
108
+ when true
109
+ '审核通过'
110
+ when false
111
+ '审核不通过'
112
+ else
113
+ '审核通过'
114
+ end
115
+ end
116
+
117
+ def user_source_disp
118
+ case user_source
119
+ when 1
120
+ '原创'
121
+ when 2
122
+ '采集'
123
+ else
124
+ ''
125
+ end
126
+ end
127
+
128
+ def is_crawler_disp
129
+ case self.is_crawler
130
+ when true
131
+ '爬虫'
132
+ when false
133
+ '用户'
134
+ end
135
+ end
136
+
137
+ end
@@ -0,0 +1,8 @@
1
+ class AlbumPod < ActiveRecord::Base
2
+ self.table_name = 'tb_album_pod' # 专辑podcast属性 一对一
3
+ attr_accessible :album_id, :explicit, :title
4
+
5
+ # album_id --- 专辑id
6
+ # explicit --- 家长控制 yes, clean, no
7
+ # title podcast ---标题
8
+ end
@@ -0,0 +1,8 @@
1
+ class AlbumPodcat < ActiveRecord::Base
2
+ self.table_name = 'tb_album_podcat' # 专辑podcast分类 一对多
3
+ attr_accessible :album_id, :category, :sub_category
4
+
5
+ # album_id --- 专辑id
6
+ # category --- podcast分类
7
+ # sub_category --- podcast子分类
8
+ end
@@ -0,0 +1,4 @@
1
+ class AndroidChannel < ActiveRecord::Base
2
+ self.table_name = 'tb_android_channel' # 安卓渠道
3
+ attr_accessible :impl, :title
4
+ end
@@ -0,0 +1,7 @@
1
+ class AndroidChannelBinding < ActiveRecord::Base
2
+ self.table_name = 'tb_android_channel_binding' # 安卓渠道绑定应用
3
+ attr_accessible :android_channel_id, :impl, :is_active, :version, :order_num, :binding_app_id
4
+
5
+ # impl 客户端渠道号
6
+ # version 客户端版本号
7
+ end
@@ -0,0 +1,12 @@
1
+ class Announcement < ActiveRecord::Base
2
+ self.table_name = 'tb_announcement' # 公告
3
+ attr_accessible :uid, :nickname, :avatar_path, :content, :begin_at, :end_at
4
+ belongs_to :profile, foreign_key: :uid
5
+
6
+ # uid --- 用户id
7
+ # nickname --- 用户昵称
8
+ # avatar_path --- 用户头像
9
+ # content --- 内容
10
+ # begin_at --- 开始于
11
+ # end_at --- 结束于
12
+ end
@@ -0,0 +1,55 @@
1
+ class AppRecommend < ActiveRecord::Base
2
+ self.table_name = "tb_app_recommend" #推荐app
3
+
4
+ attr_accessible :app_name, :channel, :cover_path, :end_time, :intro, :column_type,
5
+ :is_deleted, :link_url, :name, :position, :start_time, :terminal, :url_type
6
+
7
+ has_many :advertisements, dependent: :destroy
8
+ validates_uniqueness_of :name, message: "广告名称已经存在!"
9
+
10
+ def terminal_disp
11
+ case self.terminal
12
+ when 1
13
+ "ios"
14
+ when 2
15
+ "android"
16
+ else
17
+ ""
18
+ end
19
+ end
20
+
21
+ def channel_disp
22
+ case self.channel
23
+ when 1
24
+ "应用推荐"
25
+ when 2
26
+ "Feed广告"
27
+ else
28
+ ""
29
+ end
30
+ end
31
+
32
+ def is_deleted_disp
33
+ case self.is_deleted
34
+ when true
35
+ "是"
36
+ when false
37
+ "否"
38
+ else
39
+ ""
40
+ end
41
+ end
42
+
43
+ def column_type_disp
44
+ case self.column_type
45
+ when 1
46
+ "今日推荐"
47
+ when 2
48
+ "热门推荐"
49
+ when 3
50
+ "装机必备"
51
+ else
52
+ ""
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,5 @@
1
+ class ApplicationVCategory < ActiveRecord::Base
2
+ self.table_name = 'tb_application_v_category' # V用户分类
3
+
4
+ attr_accessible :v_application_id, :v_category_id
5
+ end
@@ -0,0 +1,4 @@
1
+ class ApproveGroup < ActiveRecord::Base
2
+ self.table_name = 'tb_approve_group' # 审核分组
3
+ attr_accessible :is_active, :is_specialized, :title
4
+ end
@@ -0,0 +1,4 @@
1
+ class ApprovingTrack < ActiveRecord::Base
2
+ self.table_name = 'tb_approving_track' # 待审声音
3
+ attr_accessible :album_cover_path, :album_id, :album_title, :approve_group_id, :category_id, :cover_path, :duration, :intro, :is_deleted, :is_public, :nickname, :play_path, :play_path_64, :status, :title, :track_created_at, :track_id, :transcode_state, :uid, :user_source, :tags
4
+ end
@@ -0,0 +1,4 @@
1
+ class ApprovingTrackLog < ActiveRecord::Base
2
+ self.table_name = 'tb_approving_track_log' # 声音审核日志
3
+ attr_accessible :approve_group_id, :approver, :duration, :nickname, :title, :track_created_at, :track_id, :uid, :status, :last_approved_at
4
+ end
@@ -0,0 +1,5 @@
1
+ class AuditLog < ActiveRecord::Base
2
+ self.table_name = 'tb_audit_log' # 后台操作日志
3
+
4
+ attr_accessible :target_type, :content, :auditer_id, :auditer_name
5
+ end
@@ -0,0 +1,4 @@
1
+ class BaiduCount < ActiveRecord::Base
2
+ self.table_name = 'tb_baidu_counts' #百度点击统计
3
+ attr_accessible :count, :up_date, :day_count
4
+ end
@@ -0,0 +1,7 @@
1
+ class BindUser < ActiveRecord::Base
2
+ self.table_name = 'tb_bind_user' #后台绑定用户关系表
3
+
4
+ attr_accessible :bind_account, :uid
5
+
6
+ belongs_to :profile, foreign_key: "uid"
7
+ end
@@ -0,0 +1,4 @@
1
+ class BindingApp < ActiveRecord::Base
2
+ self.table_name = 'tb_binding_app' # 绑定用App
3
+ attr_accessible :cover_path, :package, :remark, :title, :url
4
+ end
@@ -0,0 +1,4 @@
1
+ class Biting < ActiveRecord::Base
2
+ self.table_name = 'tb_biting' # 必听最后一次推送
3
+ attr_accessible :last_pushed_at, :uid
4
+ end
@@ -0,0 +1,9 @@
1
+ class BlackUser < ActiveRecord::Base
2
+ self.table_name = 'tb_black_user' # 屏蔽用户
3
+
4
+ attr_accessible :black_uid, :uid
5
+
6
+ # black_uid --- 屏蔽用户id
7
+ # uid --- 用户id
8
+
9
+ end
@@ -0,0 +1,31 @@
1
+ require File.expand_path('../block_avatar_node', __FILE__)
2
+ require File.expand_path('../block_avatar_origin', __FILE__)
3
+
4
+ class BlockAvatar < BlockAvatarOrigin
5
+
6
+ def self.shard(key)
7
+ Object.const_get(BlockAvatarNode.seek(key).class_name)
8
+ end
9
+
10
+ def self.gtn(key)
11
+ BlockAvatarNode.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 = BlockAvatar.gtn(r.track_id)
21
+
22
+ unless r.id
23
+ r.id = BlockAvatar.next_id
24
+ end
25
+ end
26
+
27
+ before_destroy do |r|
28
+ r.class.table_name = BlockAvatar.gtn(r.track_id)
29
+ end
30
+
31
+ end
@@ -0,0 +1,10 @@
1
+ require File.expand_path('../../extenders/class_node', __FILE__)
2
+
3
+ class BlockAvatarNode < ActiveRecord::Base
4
+ extend ClassNode
5
+
6
+ self.table_name = 'tb_block_avatar_node'
7
+
8
+ attr_accessible :node, :table_name, :class_name
9
+
10
+ end
@@ -0,0 +1,24 @@
1
+ require File.expand_path('../../extenders/block_avatar_extender', __FILE__)
2
+
3
+ class BlockAvatarOrigin < ActiveRecord::Base
4
+ extend BlockAvatarExtender
5
+
6
+ self.table_name = 'tb_block_avatar' # 彩虹块头像
7
+
8
+ attr_accessible :track_id, :block_id, :comment_id, :uid, :avatar_path
9
+
10
+ # track_id --- 声音id
11
+ # block_id --- 第几块
12
+ # comment_id --- 评论id
13
+ # uid --- 用户id
14
+ # avatar_path --- 用户头像
15
+
16
+ validates :track_id, presence: true
17
+
18
+ before_save do |r|
19
+ unless r.id
20
+ r.id = BlockAvatar.next_id
21
+ end
22
+ end
23
+
24
+ end