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,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