ting_model 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
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,20 @@
1
+ class Category < ActiveRecord::Base
2
+ self.table_name = 'tb_category' # 分类
3
+
4
+ attr_accessible :name, :title, :cover_path, :parent_id, :order_num, :is_deleted, :is_checked, :is_display, :intro, :icon_version_id
5
+
6
+ # name --- 分类名
7
+ # title --- 显示标题
8
+ # cover_path --- 分类图片
9
+ # parent_id --- 父分类
10
+ # order_num --- 排序数字
11
+ # is_deleted --- 是否已删除
12
+ # is_checked --- 是否默认选中(后台用)
13
+ # is_display --- 是否显示
14
+ # intro --- 介绍
15
+ # icon_version_id --- 未使用
16
+
17
+ has_many :recommend_category_tags
18
+ has_many :tracks
19
+ has_many :albums
20
+ end
@@ -0,0 +1,12 @@
1
+ class CategoryIconVersion < ActiveRecord::Base
2
+ self.table_name = 'tb_category_icon_version' # 分类和图标版本关系表
3
+ attr_accessible :category_id, :icon_version_id, :pic_ios_low, :pic_ios_high, :pic_android_low, :pic_android_high
4
+
5
+ # category_id --- 分类id
6
+ # icon_version_id --- 图标版本id
7
+ # pic_ios_low --- ios低清图片
8
+ # pic_ios_high --- ios高清图片
9
+ # pic_android_low --- android低清图片
10
+ # pic_android_high --- android高清图片
11
+
12
+ end
@@ -0,0 +1,31 @@
1
+ require File.expand_path('../chat_node', __FILE__)
2
+ require File.expand_path('../chat_origin', __FILE__)
3
+
4
+ class Chat < ChatOrigin
5
+
6
+ def self.shard(key)
7
+ Object.const_get(ChatNode.seek(key).class_name)
8
+ end
9
+
10
+ def self.gtn(key)
11
+ ChatNode.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 = Chat.gtn(r.uid)
21
+
22
+ unless r.id
23
+ r.id = Chat.next_id
24
+ end
25
+ end
26
+
27
+ before_destroy do |r|
28
+ r.class.table_name = Chat.gtn(r.uid)
29
+ end
30
+
31
+ end
@@ -0,0 +1,10 @@
1
+ require File.expand_path('../../extenders/class_node', __FILE__)
2
+
3
+ class ChatNode < ActiveRecord::Base
4
+ extend ClassNode
5
+
6
+ self.table_name = 'tb_chat_node'
7
+
8
+ attr_accessible :node, :table_name, :class_name
9
+
10
+ end
@@ -0,0 +1,32 @@
1
+ require File.expand_path('../../extenders/chat_extender', __FILE__)
2
+
3
+ class ChatOrigin < ActiveRecord::Base
4
+ extend ChatExtender
5
+
6
+ # 聊天 分表 根据 uid
7
+ self.table_name = 'tb_chat'
8
+
9
+ attr_accessible :is_in, :upload_source,
10
+ :uid, :nickname, :avatar_path,
11
+ :with_uid, :with_nickname, :with_avatar_path,
12
+ :content,
13
+ :has_read,
14
+ :anno_id
15
+
16
+ # is_in --- true:收 /false:发
17
+ # upload_source --- 上传源 1:iphone /2:电脑 /3:android
18
+ # uid nickname avatar_path --- 用户id 昵称 头像
19
+ # with_uid with_nickname with_avatar_path --- 与用户id 昵称 头像
20
+ # content --- 内容
21
+ # has_read --- 是否已读
22
+ # anno_id --- 公告id(收取公告的场合)
23
+
24
+ validates :uid, presence: true
25
+
26
+ before_save do |r|
27
+ unless r.id
28
+ r.id = Chat.next_id
29
+ end
30
+ end
31
+
32
+ end
@@ -0,0 +1,80 @@
1
+ require File.expand_path('../comment_node', __FILE__)
2
+ require File.expand_path('../comment_origin', __FILE__)
3
+
4
+ class Comment < CommentOrigin
5
+
6
+ def self.shard(key)
7
+ Object.const_get(CommentNode.seek(key).class_name)
8
+ end
9
+
10
+ def self.gtn(key)
11
+ CommentNode.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 = Comment.gtn(r.track_id)
21
+
22
+ unless r.id
23
+ r.id = Comment.next_id
24
+ end
25
+ if r.second and r.second >= 0
26
+ tb = TrackBlock.shard(r.track_id).where(track_id: r.track_id).first
27
+ if tb
28
+ # 加分块计数
29
+ tb.increase_by_second(r.second)
30
+ # 加彩虹块头像
31
+ bidx = tb.get_block_idx_by_second(r.second)
32
+ if bidx
33
+ avatars = BlockAvatar.shard(r.track_id).where(track_id: r.track_id, block_id: bidx)
34
+ if avatars.count > 0 and avatars.count >= 30 / tb.blocks
35
+ avatars.first.destroy
36
+ end
37
+ BlockAvatar.shard(r.track_id).create(track_id: r.track_id, comment_id: r.id, block_id: bidx,
38
+ uid: r.uid, avatar_path: r.avatar_path)
39
+
40
+ r.block = bidx
41
+ end
42
+ end
43
+ end
44
+ end
45
+
46
+ before_destroy do |r|
47
+ r.class.table_name = Comment.gtn(r.track_id)
48
+ end
49
+
50
+ after_destroy do |r|
51
+ if r.second and r.second >= 0
52
+ tb = TrackBlock.shard(r.track_id).where(track_id: r.track_id).first
53
+ if tb
54
+ # 减分块计数
55
+ tb.increase_by_second(r.second, -1)
56
+ # 删掉对应彩虹块头像,再补一张
57
+ if r.block
58
+ avatar = BlockAvatar.shard(r.track_id).where(track_id: r.track_id, block_id: r.block, comment_id: r.id).first
59
+ if avatar
60
+ avatar.destroy
61
+
62
+ ba0 = BlockAvatar.shard(r.track_id).where(track_id: r.track_id, block_id: r.block).first
63
+ if ba0
64
+ alter = Comment.shard(r.track_id).where('track_id = ? and block = ? and id < ?', r.track_id, r.block, ba0.comment_id).last
65
+ else
66
+ alter = Comment.shard(r.track_id).where('track_id = ? and block = ?', r.track_id, r.block).last
67
+ end
68
+ if alter
69
+ alter_bidx = tb.get_block_idx_by_second(alter.second)
70
+ BlockAvatar.shard(r.track_id).create(track_id: alter.track_id, comment_id: alter.id, block_id: alter_bidx,
71
+ uid: alter.uid, avatar_path: alter.avatar_path)
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
77
+
78
+ end
79
+
80
+ end
@@ -0,0 +1,10 @@
1
+ require File.expand_path('../../extenders/class_node', __FILE__)
2
+
3
+ class CommentNode < ActiveRecord::Base
4
+ extend ClassNode
5
+
6
+ self.table_name = 'tb_comment_node'
7
+
8
+ attr_accessible :node, :table_name, :class_name
9
+
10
+ end
@@ -0,0 +1,116 @@
1
+ require File.expand_path('../../extenders/comment_extender', __FILE__)
2
+ require File.expand_path('../track_block', __FILE__)
3
+ require File.expand_path('../block_avatar', __FILE__)
4
+
5
+ class CommentOrigin < ActiveRecord::Base
6
+ extend CommentExtender
7
+
8
+ # 评论 分表 根据track_id
9
+ self.table_name = 'tb_comment'
10
+
11
+ attr_accessible :uid, :nickname, :avatar_path, :upload_source,
12
+ :track_id, :track_uid, :track_upload_source, :track_nickname, :track_title, :track_duration, :track_created_at, :track_avatar_path,
13
+ :second, :content, :parent_id,
14
+ :play_path, :play_path_32, :play_path_64, :play_path_128,
15
+ :user_source, :cover_path, :block, :audio_path
16
+
17
+ # uid nickname avatar_path --- 用户id 昵称 头像地址
18
+ # upload_source --- 发表自 1:iphone /2:电脑 /3:android
19
+ # track_id track_uid track_nickname track_title --- 声音id uid 昵称 标题
20
+ # track_upload_source --- 声音上传源 1:iphone /2:电脑 /3:android
21
+ # track_duration track_created_at track_avatar_path --- 声音时长 创建时间 头像
22
+ # second content parent_id --- 秒 内容 父id
23
+ # play_path play_path_32 play_path_64 play_path_128 --- 声音播放地址
24
+ # user_source --- 声音来源 1:原创/2:采集
25
+ # cover_path --- 声音封面
26
+ # block --- 在第几块
27
+ # audio_path --- 语音地址
28
+
29
+ validates :track_id, presence: true
30
+
31
+ belongs_to :track_origin
32
+
33
+ before_save do |r|
34
+ unless r.id
35
+ r.id = Comment.next_id
36
+ end
37
+
38
+ if r.second and r.second >= 0
39
+ tb = TrackBlock.shard(r.track_id).where(track_id: r.track_id).first
40
+ if tb
41
+ # 加分块计数
42
+ tb.increase_by_second(r.second)
43
+ # 加彩虹块头像
44
+ bidx = tb.get_block_idx_by_second(r.second)
45
+ if bidx
46
+ avatars = BlockAvatar.shard(r.track_id).where(track_id: r.track_id, block_id: bidx)
47
+ if avatars.count > 0 and avatars.count >= 30 / tb.blocks
48
+ avatars.first.destroy
49
+ end
50
+ BlockAvatar.shard(r.track_id).create(track_id: r.track_id, comment_id: r.id, block_id: bidx,
51
+ uid: r.uid, avatar_path: r.avatar_path)
52
+
53
+ r.block = bidx
54
+ end
55
+ end
56
+ end
57
+ end
58
+
59
+ after_destroy do |r|
60
+ if r.second and r.second >= 0
61
+ tb = TrackBlock.shard(r.track_id).where(track_id: r.track_id).first
62
+ if tb
63
+ # 减分块计数
64
+ tb.increase_by_second(r.second, -1)
65
+ # 删掉对应彩虹块头像,再补一张
66
+ if r.block
67
+ avatar = BlockAvatar.shard(r.track_id).where(track_id: r.track_id, block_id: r.block, comment_id: r.id).first
68
+ if avatar
69
+ avatar.destroy
70
+
71
+ ba0 = BlockAvatar.shard(r.track_id).where(track_id: r.track_id, block_id: r.block).first
72
+ if ba0
73
+ alter = Comment.shard(r.track_id).where('track_id = ? and block = ? and id < ?', r.track_id, r.block, ba0.comment_id).last
74
+ else
75
+ alter = Comment.shard(r.track_id).where('track_id = ? and block = ?', r.track_id, r.block).last
76
+ end
77
+ if alter
78
+ alter_bidx = tb.get_block_idx_by_second(alter.second)
79
+ BlockAvatar.shard(r.track_id).create(track_id: alter.track_id, comment_id: alter.id, block_id: alter_bidx,
80
+ uid: alter.uid, avatar_path: alter.avatar_path)
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end
86
+
87
+ end
88
+
89
+ def to_topic_hash
90
+ {
91
+ created_at: self.created_at,
92
+ updated_at: self.updated_at,
93
+ id: self.id,
94
+ uid: self.uid,
95
+ nickname: self.nickname,
96
+ avatar_path: self.avatar_path,
97
+ track_id: self.track_id,
98
+ track_uid: self.track_uid,
99
+ track_nickname: self.track_nickname,
100
+ track_title: self.track_title,
101
+ track_duration: self.track_duration,
102
+ track_created_at: self.track_created_at,
103
+ track_avatar_path: self.track_avatar_path,
104
+ second: self.second,
105
+ parent_id: self.parent_id,
106
+ content: self.content,
107
+ play_path: self.play_path,
108
+ play_path_32: self.play_path_32,
109
+ play_path_64: self.play_path_64,
110
+ play_path_128: self.play_path_128,
111
+ user_source: self.user_source,
112
+ cover_path: self.cover_path
113
+ }
114
+ end
115
+
116
+ end
@@ -0,0 +1,8 @@
1
+ class DeadAlbum < ActiveRecord::Base
2
+ self.table_name = 'tb_dead_album' # 死链接 专辑
3
+ attr_accessible :album_id, :uid
4
+
5
+ # album_id --- 专辑id
6
+ # uid --- 用户id
7
+
8
+ end
@@ -0,0 +1,8 @@
1
+ class DeadTrack < ActiveRecord::Base
2
+ self.table_name = 'tb_dead_track' # 死链接 声音
3
+ attr_accessible :track_id, :uid
4
+
5
+ # track_id --- 声音id
6
+ # uid --- 用户id
7
+
8
+ end
@@ -0,0 +1,7 @@
1
+ class DeadUser < ActiveRecord::Base
2
+ self.table_name = 'tb_dead_user' # 死链接 用户
3
+ attr_accessible :uid
4
+
5
+ # uid --- 用户id
6
+
7
+ end
@@ -0,0 +1,6 @@
1
+ class DefaultFollow < ActiveRecord::Base
2
+ self.table_name = "tb_default_follow" #默认关注账号
3
+ attr_accessible :uid
4
+
5
+ belongs_to :profile, foreign_key: "uid"
6
+ end
@@ -0,0 +1,26 @@
1
+ class DelayedAlbum < ActiveRecord::Base
2
+ # 定时发布专辑临时表
3
+ self.table_name = 'tb_delayed_album'
4
+
5
+ attr_accessible :op_type,
6
+ :is_publish,
7
+ :uid, :nickname, :avatar_path, :is_v, :human_category_id,
8
+ :title, :intro,
9
+ :user_source,
10
+ :category_id,
11
+ :cover_path,
12
+ :tags, :extra_tags,
13
+ :is_public,
14
+ :music_category,
15
+ :tracks_order,
16
+ :is_crawler,
17
+ :rich_intro, :short_intro,
18
+ :is_deleted,:created_at, :updated_at, :id,
19
+ :source_url,
20
+ :is_records_desc,
21
+ :last_uptrack_at, :last_uptrack_id, :last_uptrack_title, :last_uptrack_cover_path,
22
+ :status, :dig_status,
23
+ :publish_at
24
+
25
+ # publish_at 发布时间
26
+ end
@@ -0,0 +1,4 @@
1
+ class DelayedPublish < ActiveRecord::Base
2
+ self.table_name = 'tb_delayed_publish' #微信表
3
+ attr_accessible :acount, :count, :tcount
4
+ end
@@ -0,0 +1,43 @@
1
+ class DelayedTrack < ActiveRecord::Base
2
+ # 定时发布声音临时表
3
+ self.table_name = 'tb_delayed_track'
4
+
5
+ attr_accessible :is_publish,
6
+ :upload_source,
7
+ :uid, :nickname, :avatar_path, :is_v, :human_category_id,
8
+ :title, :intro,
9
+ :user_source,
10
+ :category_id,
11
+ :duration,
12
+ :download_path,
13
+ :play_path, :play_path_32, :play_path_64, :play_path_128,
14
+ :transcode_state,
15
+ :cover_path,
16
+ :album_id, :album_title,
17
+ :album_cover_path,
18
+ :tags, :ignore_tags, :extra_tags,
19
+ :singer, :singer_category, :author,
20
+ :composer, :arrangement, :post_production,
21
+ :lyric, :lyric_path,
22
+ :language, :resinger, :announcer,
23
+ :is_public, :access_password,
24
+ :allow_download, :allow_comment,
25
+ :is_crawler, :inet_aton_ip, :longitude, :latitude,
26
+ :music_category, :order_num, :is_pick,
27
+ :rich_intro, :short_intro,
28
+ :dig_status, :approved_at,
29
+ :is_deleted,
30
+ :mp3size, :mp3size_32, :mp3size_64,
31
+ :created_at, :updated_at, :id, :waveform, :upload_id,
32
+ :source_url, :status, :explore_height,
33
+ :fileid,
34
+ :delayed_album_id,
35
+ :publish_at,
36
+ :track_id,
37
+ :task_count_tag
38
+
39
+ # fileid --- 文件id
40
+ # delayed_album_id --- 定时发布专辑id
41
+ # publish_at --- 发布时间
42
+ # task_count_tag --- 统计发布用的参数
43
+ end
@@ -0,0 +1,17 @@
1
+ class DiscoveryPage < ActiveRecord::Base
2
+ self.table_name = "tb_discovery_page" #发现页配图表
3
+ attr_accessible :img1, :img2, :img3, :mobile_type, :position, :img4, :img5, :title
4
+
5
+ validates_presence_of :mobile_type, message: "不能为空!"
6
+
7
+ def mobile_type_disp
8
+ case self.mobile_type
9
+ when 1
10
+ "iphone"
11
+ when 2
12
+ "android"
13
+ else
14
+ ""
15
+ end
16
+ end
17
+ end