ting_model 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Gemfile +4 -0
- data/README.md +41 -0
- data/Rakefile +1 -0
- data/gen_shards.rb +59 -0
- data/lib/extenders/album_extender.rb +9 -0
- data/lib/extenders/block_avatar_extender.rb +5 -0
- data/lib/extenders/chat_extender.rb +5 -0
- data/lib/extenders/class_node.rb +21 -0
- data/lib/extenders/comment_extender.rb +5 -0
- data/lib/extenders/favorite_album_extender.rb +5 -0
- data/lib/extenders/favorite_extender.rb +5 -0
- data/lib/extenders/following_extender.rb +13 -0
- data/lib/extenders/following_group_extender.rb +5 -0
- data/lib/extenders/following_tag_extender.rb +5 -0
- data/lib/extenders/followingx2_group_extender.rb +5 -0
- data/lib/extenders/inbox_extender.rb +5 -0
- data/lib/extenders/linkman_extender.rb +5 -0
- data/lib/extenders/outbox_extender.rb +5 -0
- data/lib/extenders/track_block_extender.rb +5 -0
- data/lib/extenders/track_extender.rb +5 -0
- data/lib/extenders/track_in_record_extender.rb +76 -0
- data/lib/extenders/track_picture_extender.rb +5 -0
- data/lib/extenders/track_record_extender.rb +5 -0
- data/lib/extenders/track_rich_extender.rb +5 -0
- data/lib/extenders/track_set_extender.rb +79 -0
- data/lib/extenders/track_set_rich_extender.rb +5 -0
- data/lib/extenders/user_tag_extender.rb +5 -0
- data/lib/ting_model.rb +1 -0
- data/lib/ting_model/advertisement.rb +5 -0
- data/lib/ting_model/advertisement_new.rb +4 -0
- data/lib/ting_model/album.rb +31 -0
- data/lib/ting_model/album_node.rb +9 -0
- data/lib/ting_model/album_origin.rb +137 -0
- data/lib/ting_model/album_pod.rb +8 -0
- data/lib/ting_model/album_podcat.rb +8 -0
- data/lib/ting_model/android_channel.rb +4 -0
- data/lib/ting_model/android_channel_binding.rb +7 -0
- data/lib/ting_model/announcement.rb +12 -0
- data/lib/ting_model/app_recommend.rb +55 -0
- data/lib/ting_model/application_v_category.rb +5 -0
- data/lib/ting_model/approve_group.rb +4 -0
- data/lib/ting_model/approving_track.rb +4 -0
- data/lib/ting_model/approving_track_log.rb +4 -0
- data/lib/ting_model/audit_log.rb +5 -0
- data/lib/ting_model/baidu_count.rb +4 -0
- data/lib/ting_model/bind_user.rb +7 -0
- data/lib/ting_model/binding_app.rb +4 -0
- data/lib/ting_model/biting.rb +4 -0
- data/lib/ting_model/black_user.rb +9 -0
- data/lib/ting_model/block_avatar.rb +31 -0
- data/lib/ting_model/block_avatar_node.rb +10 -0
- data/lib/ting_model/block_avatar_origin.rb +24 -0
- data/lib/ting_model/category.rb +20 -0
- data/lib/ting_model/category_icon_version.rb +12 -0
- data/lib/ting_model/chat.rb +31 -0
- data/lib/ting_model/chat_node.rb +10 -0
- data/lib/ting_model/chat_origin.rb +32 -0
- data/lib/ting_model/comment.rb +80 -0
- data/lib/ting_model/comment_node.rb +10 -0
- data/lib/ting_model/comment_origin.rb +116 -0
- data/lib/ting_model/dead_album.rb +8 -0
- data/lib/ting_model/dead_track.rb +8 -0
- data/lib/ting_model/dead_user.rb +7 -0
- data/lib/ting_model/default_follow.rb +6 -0
- data/lib/ting_model/delayed_album.rb +26 -0
- data/lib/ting_model/delayed_publish.rb +4 -0
- data/lib/ting_model/delayed_track.rb +43 -0
- data/lib/ting_model/discovery_page.rb +17 -0
- data/lib/ting_model/editor_recommend.rb +5 -0
- data/lib/ting_model/favorite.rb +59 -0
- data/lib/ting_model/favorite_album.rb +50 -0
- data/lib/ting_model/favorite_album_node.rb +9 -0
- data/lib/ting_model/favorite_album_origin.rb +88 -0
- data/lib/ting_model/favorite_node.rb +10 -0
- data/lib/ting_model/favorite_origin.rb +138 -0
- data/lib/ting_model/feed.rb +159 -0
- data/lib/ting_model/file_upload.rb +4 -0
- data/lib/ting_model/file_upload_record.rb +4 -0
- data/lib/ting_model/focus.rb +16 -0
- data/lib/ting_model/focus_album.rb +9 -0
- data/lib/ting_model/focus_current.rb +10 -0
- data/lib/ting_model/focus_track.rb +17 -0
- data/lib/ting_model/focus_user.rb +7 -0
- data/lib/ting_model/follower.rb +27 -0
- data/lib/ting_model/follower_node.rb +10 -0
- data/lib/ting_model/follower_origin.rb +34 -0
- data/lib/ting_model/follower_tag.rb +27 -0
- data/lib/ting_model/follower_tag_node.rb +10 -0
- data/lib/ting_model/follower_tag_origin.rb +14 -0
- data/lib/ting_model/followerx2_group.rb +27 -0
- data/lib/ting_model/followerx2_group_node.rb +10 -0
- data/lib/ting_model/followerx2_group_origin.rb +12 -0
- data/lib/ting_model/following.rb +57 -0
- data/lib/ting_model/following_group.rb +31 -0
- data/lib/ting_model/following_group_node.rb +10 -0
- data/lib/ting_model/following_group_origin.rb +29 -0
- data/lib/ting_model/following_node.rb +10 -0
- data/lib/ting_model/following_origin.rb +72 -0
- data/lib/ting_model/following_tag.rb +52 -0
- data/lib/ting_model/following_tag_node.rb +10 -0
- data/lib/ting_model/following_tag_origin.rb +59 -0
- data/lib/ting_model/followingx2_group.rb +31 -0
- data/lib/ting_model/followingx2_group_node.rb +10 -0
- data/lib/ting_model/followingx2_group_origin.rb +23 -0
- data/lib/ting_model/human_category.rb +17 -0
- data/lib/ting_model/human_recommend_album.rb +8 -0
- data/lib/ting_model/human_recommend_album_category_tag.rb +4 -0
- data/lib/ting_model/human_recommend_album_tag.rb +4 -0
- data/lib/ting_model/human_recommend_category_album.rb +7 -0
- data/lib/ting_model/human_recommend_category_tag.rb +6 -0
- data/lib/ting_model/human_recommend_category_tag_album.rb +7 -0
- data/lib/ting_model/human_recommend_category_tag_track.rb +11 -0
- data/lib/ting_model/human_recommend_category_tag_user.rb +7 -0
- data/lib/ting_model/human_recommend_category_track.rb +11 -0
- data/lib/ting_model/human_recommend_category_user.rb +7 -0
- data/lib/ting_model/human_recommend_tag.rb +5 -0
- data/lib/ting_model/human_recommend_tag_album.rb +7 -0
- data/lib/ting_model/human_recommend_tag_track.rb +9 -0
- data/lib/ting_model/human_recommend_tag_user.rb +7 -0
- data/lib/ting_model/human_recommend_track.rb +9 -0
- data/lib/ting_model/human_recommend_user.rb +7 -0
- data/lib/ting_model/icon_version.rb +7 -0
- data/lib/ting_model/inbox.rb +31 -0
- data/lib/ting_model/inbox_node.rb +10 -0
- data/lib/ting_model/inbox_origin.rb +59 -0
- data/lib/ting_model/latest_album.rb +9 -0
- data/lib/ting_model/latest_favorite.rb +10 -0
- data/lib/ting_model/latest_track.rb +10 -0
- data/lib/ting_model/linkman.rb +30 -0
- data/lib/ting_model/linkman_node.rb +10 -0
- data/lib/ting_model/linkman_origin.rb +26 -0
- data/lib/ting_model/liteapp.rb +7 -0
- data/lib/ting_model/liteapp_album.rb +4 -0
- data/lib/ting_model/liteapp_tag.rb +4 -0
- data/lib/ting_model/lover.rb +27 -0
- data/lib/ting_model/lover_album.rb +27 -0
- data/lib/ting_model/lover_album_node.rb +9 -0
- data/lib/ting_model/lover_album_origin.rb +39 -0
- data/lib/ting_model/lover_node.rb +10 -0
- data/lib/ting_model/lover_origin.rb +45 -0
- data/lib/ting_model/m_user.rb +8 -0
- data/lib/ting_model/message_log.rb +4 -0
- data/lib/ting_model/message_picture.rb +5 -0
- data/lib/ting_model/meta.rb +4 -0
- data/lib/ting_model/mixing_album.rb +7 -0
- data/lib/ting_model/mobad_stat.rb +9 -0
- data/lib/ting_model/news.rb +16 -0
- data/lib/ting_model/out_link.rb +7 -0
- data/lib/ting_model/outbox.rb +31 -0
- data/lib/ting_model/outbox_node.rb +10 -0
- data/lib/ting_model/outbox_origin.rb +59 -0
- data/lib/ting_model/outlink_stat.rb +4 -0
- data/lib/ting_model/personal_setting.rb +26 -0
- data/lib/ting_model/push_message.rb +4 -0
- data/lib/ting_model/receive_laya.rb +9 -0
- data/lib/ting_model/recommend_album.rb +7 -0
- data/lib/ting_model/recommend_category_album.rb +7 -0
- data/lib/ting_model/recommend_category_tag.rb +5 -0
- data/lib/ting_model/recommend_category_tag_album.rb +7 -0
- data/lib/ting_model/recommend_category_tag_track.rb +9 -0
- data/lib/ting_model/recommend_category_tag_user.rb +7 -0
- data/lib/ting_model/recommend_category_track.rb +9 -0
- data/lib/ting_model/recommend_category_user.rb +7 -0
- data/lib/ting_model/recommend_tag.rb +15 -0
- data/lib/ting_model/recommend_tag_album.rb +7 -0
- data/lib/ting_model/recommend_tag_track.rb +9 -0
- data/lib/ting_model/recommend_tag_user.rb +7 -0
- data/lib/ting_model/recommend_track.rb +9 -0
- data/lib/ting_model/recommend_user.rb +7 -0
- data/lib/ting_model/reject_reason.rb +17 -0
- data/lib/ting_model/report.rb +33 -0
- data/lib/ting_model/report_information.rb +29 -0
- data/lib/ting_model/search_black_uid.rb +7 -0
- data/lib/ting_model/search_key.rb +6 -0
- data/lib/ting_model/send_msg.rb +4 -0
- data/lib/ting_model/shards.rb +2626 -0
- data/lib/ting_model/sms.rb +19 -0
- data/lib/ting_model/special.rb +17 -0
- data/lib/ting_model/special_album.rb +4 -0
- data/lib/ting_model/special_track.rb +4 -0
- data/lib/ting_model/sub_app_advertisement_new.rb +4 -0
- data/lib/ting_model/subappad_stat.rb +9 -0
- data/lib/ting_model/system_configuration.rb +5 -0
- data/lib/ting_model/temp_blob.rb +5 -0
- data/lib/ting_model/track.rb +30 -0
- data/lib/ting_model/track_block.rb +46 -0
- data/lib/ting_model/track_block_node.rb +10 -0
- data/lib/ting_model/track_block_origin.rb +69 -0
- data/lib/ting_model/track_in_record.rb +27 -0
- data/lib/ting_model/track_in_record_node.rb +10 -0
- data/lib/ting_model/track_in_record_origin.rb +134 -0
- data/lib/ting_model/track_node.rb +9 -0
- data/lib/ting_model/track_origin.rb +224 -0
- data/lib/ting_model/track_picture.rb +32 -0
- data/lib/ting_model/track_picture_node.rb +10 -0
- data/lib/ting_model/track_picture_origin.rb +26 -0
- data/lib/ting_model/track_record.rb +31 -0
- data/lib/ting_model/track_record_node.rb +9 -0
- data/lib/ting_model/track_record_origin.rb +64 -0
- data/lib/ting_model/track_rich.rb +30 -0
- data/lib/ting_model/track_rich_node.rb +10 -0
- data/lib/ting_model/track_rich_origin.rb +31 -0
- data/lib/ting_model/track_set.rb +27 -0
- data/lib/ting_model/track_set_node.rb +9 -0
- data/lib/ting_model/track_set_origin.rb +147 -0
- data/lib/ting_model/track_set_rich.rb +30 -0
- data/lib/ting_model/track_set_rich_node.rb +10 -0
- data/lib/ting_model/track_set_rich_origin.rb +24 -0
- data/lib/ting_model/uid_approve_group.rb +4 -0
- data/lib/ting_model/upload_track_share_temp.rb +6 -0
- data/lib/ting_model/user_link.rb +10 -0
- data/lib/ting_model/user_log.rb +33 -0
- data/lib/ting_model/user_tag.rb +31 -0
- data/lib/ting_model/user_tag_node.rb +10 -0
- data/lib/ting_model/user_tag_origin.rb +23 -0
- data/lib/ting_model/user_v_category.rb +8 -0
- data/lib/ting_model/v_application.rb +35 -0
- data/lib/ting_model/v_category.rb +7 -0
- data/lib/ting_model/v_user.rb +7 -0
- data/lib/ting_model/varification_code.rb +6 -0
- data/lib/ting_model/web_advertisement.rb +6 -0
- data/lib/ting_model/web_discovery_page.rb +10 -0
- data/lib/ting_model/web_recommend.rb +6 -0
- data/lib/ting_model/weixin_account.rb +8 -0
- data/lib/ting_model/weixin_keyword.rb +4 -0
- data/lib/ting_model/weixin_monitor.rb +4 -0
- data/ting_model.gemspec +251 -0
- 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,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,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,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,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
|