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.
- 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,16 @@
|
|
|
1
|
+
class Focus < ActiveRecord::Base
|
|
2
|
+
self.table_name = "tb_focus" # 焦点图
|
|
3
|
+
attr_accessible :android_pic, :channel, :content_type, :end_time,
|
|
4
|
+
:ios_pic, :long_title, :position, :short_title, :start_time,
|
|
5
|
+
:status, :url, :web_pic, :num_type
|
|
6
|
+
|
|
7
|
+
# ios_pic android_pic web_pic --- ios图 android图 web图
|
|
8
|
+
# start_time end_time --- 开始时间 结束时间
|
|
9
|
+
# long_title short_title --- 长标题 短标题
|
|
10
|
+
# position --- 待放位置
|
|
11
|
+
# url --- 跳转地址
|
|
12
|
+
# status --- 发布状态 0:新建未发布 1:发布 2:下架
|
|
13
|
+
# content_type --- 内容类型 1:用户 2:专辑 3:声音 4:链接
|
|
14
|
+
# num_type --- 数量类型 1:多个 2:单个
|
|
15
|
+
# channel --- 渠道 1:web 2:手机
|
|
16
|
+
end
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
class FocusAlbum < ActiveRecord::Base
|
|
2
|
+
self.table_name = "tb_focus_album" # 焦点图对应的专辑
|
|
3
|
+
attr_accessible :album_id, :category_id, :cover_path, :focus_id, :intro, :is_v, :nickname, :title, :uid, :user_source
|
|
4
|
+
|
|
5
|
+
# focus_id --- 焦点图id
|
|
6
|
+
# album_id category_id cover_path title intro --- 专辑id 分类id 封面 标题 介绍
|
|
7
|
+
# uid nickname is_v --- 专辑用户id 昵称 是否加V
|
|
8
|
+
# user_source --- 专辑来源 1:原创 /2:采集
|
|
9
|
+
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
class FocusCurrent < ActiveRecord::Base
|
|
2
|
+
self.table_name = "tb_focus_current" #焦点图当前的配置
|
|
3
|
+
attr_accessible :channel, :focus_id, :position, :title, :cover_path
|
|
4
|
+
|
|
5
|
+
# channel --- 渠道 1:web 2:手机
|
|
6
|
+
# focus_id --- 焦点图id
|
|
7
|
+
# position --- 位置号
|
|
8
|
+
# title --- 标题
|
|
9
|
+
# cover_path --- 图片
|
|
10
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
class FocusTrack < ActiveRecord::Base
|
|
2
|
+
self.table_name = "tb_focus_track" # 焦点图对应声音
|
|
3
|
+
attr_accessible :album_id, :album_title, :category_id, :cover_path, :duration,
|
|
4
|
+
:focus_id, :intro, :is_v, :nickname, :title, :track_id, :uid, :user_source,
|
|
5
|
+
:track_created_at, :play_path_64, :play_path_32, :album_cover_path,
|
|
6
|
+
:small_logo
|
|
7
|
+
|
|
8
|
+
# focus_id --- 焦点图id
|
|
9
|
+
# track_id title intro cover_path --- 声音id 标题 简介 封面
|
|
10
|
+
# duration category_id --- 声音时长 分类id
|
|
11
|
+
# uid nickname small_logo is_v --- 用户id 昵称 头像 是否加V
|
|
12
|
+
# user_source --- 声音来源 1:原创/2:采集
|
|
13
|
+
# track_created_at --- 声音创建时间
|
|
14
|
+
# play_path_64 play_path_32 --- 声音播放地址
|
|
15
|
+
# album_id album_title album_cover_path --- 专辑id 标题 封面
|
|
16
|
+
|
|
17
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
require File.expand_path('../follower_node', __FILE__)
|
|
2
|
+
require File.expand_path('../follower_origin', __FILE__)
|
|
3
|
+
|
|
4
|
+
class Follower < FollowerOrigin
|
|
5
|
+
|
|
6
|
+
def self.shard(key)
|
|
7
|
+
Object.const_get(FollowerNode.seek(key).class_name)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def self.gtn(key)
|
|
11
|
+
FollowerNode.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 = Follower.gtn(r.following_uid)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
before_destroy do |r|
|
|
24
|
+
r.class.table_name = Follower.gtn(r.following_uid)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
class FollowerOrigin < ActiveRecord::Base
|
|
2
|
+
# 关注人 根据following_uid分表,记录依赖following
|
|
3
|
+
self.table_name = 'tb_follow'
|
|
4
|
+
|
|
5
|
+
attr_accessible :uid, :following_uid,
|
|
6
|
+
:nickname, :avatar_path,
|
|
7
|
+
:avatar_path_small, :avatar_path_middle, :avatar_path_large,
|
|
8
|
+
:personal_signature,
|
|
9
|
+
:country, :province, :city, :town,
|
|
10
|
+
:following_nickname, :following_avatar_path,
|
|
11
|
+
:following_avatar_path_small, :following_avatar_path_middle, :following_avatar_path_large,
|
|
12
|
+
:following_personal_signature,
|
|
13
|
+
:following_country, :following_province, :following_city, :following_town, :following_is_v,
|
|
14
|
+
:is_blocked, :is_public, :is_mutual,
|
|
15
|
+
:following_group_id, :following_group_title, :is_auto_download, :is_auto_push
|
|
16
|
+
|
|
17
|
+
# uid nickname avatar_path personal_signature --- 用户id 昵称 头像 签名
|
|
18
|
+
# avatar_path_small avatar_path_middle avatar_path_large --- 未使用
|
|
19
|
+
# country province city town --- 用户所在地
|
|
20
|
+
# following_uid following_nickname following_avatar_path following_personal_signature --- 关注用户id 昵称 头像 签名
|
|
21
|
+
# following_avatar_path_small following_avatar_path_middle following_avatar_path_large --- 未使用
|
|
22
|
+
# following_country following_province following_city following_town --- 关注用户所在地
|
|
23
|
+
# following_is_v --- 关注用户是否加V
|
|
24
|
+
# is_blocked --- 是否拉黑
|
|
25
|
+
# is_public --- 是否公开
|
|
26
|
+
# is_mutual --- 是否相互关注
|
|
27
|
+
# following_group_id --- 未使用
|
|
28
|
+
# following_group_title --- 未使用
|
|
29
|
+
# is_auto_download --- 未使用
|
|
30
|
+
# is_auto_push --- 对方上传了一个声音是否推提醒
|
|
31
|
+
|
|
32
|
+
validates :following_uid, presence: true
|
|
33
|
+
|
|
34
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
require File.expand_path('../follower_tag_node', __FILE__)
|
|
2
|
+
require File.expand_path('../follower_tag_origin', __FILE__)
|
|
3
|
+
|
|
4
|
+
class FollowerTag < FollowerTagOrigin
|
|
5
|
+
|
|
6
|
+
def self.shard(key)
|
|
7
|
+
Object.const_get(FollowerTagNode.seek(key).class_name)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def self.gtn(key)
|
|
11
|
+
FollowerTagNode.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 = FollowerTag.gtn(r.tname)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
before_destroy do |r|
|
|
24
|
+
r.class.table_name = FollowerTag.gtn(r.tname)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
class FollowerTagOrigin < ActiveRecord::Base
|
|
2
|
+
# 关注标签 根据tname分表,记录依赖followings_tag
|
|
3
|
+
self.table_name = 'tb_follow_tag'
|
|
4
|
+
|
|
5
|
+
attr_accessible :uid, :tag_id,
|
|
6
|
+
:tname, :cover_path
|
|
7
|
+
|
|
8
|
+
# uid --- 用户id
|
|
9
|
+
# tag_id --- 未使用
|
|
10
|
+
# tname --- 标签
|
|
11
|
+
# cover_path --- 标签图标
|
|
12
|
+
|
|
13
|
+
validates :tname, presence: true
|
|
14
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
require File.expand_path('../followerx2_group_node', __FILE__)
|
|
2
|
+
require File.expand_path('../followerx2_group_origin', __FILE__)
|
|
3
|
+
|
|
4
|
+
class Followerx2Group < Followerx2GroupOrigin
|
|
5
|
+
|
|
6
|
+
def self.shard(key)
|
|
7
|
+
Object.const_get(Followerx2GroupNode.seek(key).class_name)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def self.gtn(key)
|
|
11
|
+
Followerx2GroupNode.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 = Followerx2Group.gtn(r.uid)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
before_destroy do |r|
|
|
24
|
+
r.class.table_name = Followerx2Group.gtn(r.uid)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
class Followerx2GroupOrigin < ActiveRecord::Base
|
|
2
|
+
self.table_name = 'tb_followerx2_group' # 关注 一对多 分组
|
|
3
|
+
|
|
4
|
+
attr_accessible :uid, :following_id, :following_group_id, :is_deleted
|
|
5
|
+
|
|
6
|
+
# uid --- 用户id
|
|
7
|
+
# following_id --- 关注id
|
|
8
|
+
# following_group_id --- 分组id
|
|
9
|
+
# is_deleted --- 未使用
|
|
10
|
+
|
|
11
|
+
validates :uid, presence: true
|
|
12
|
+
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
require File.expand_path('../following_node', __FILE__)
|
|
2
|
+
require File.expand_path('../following_origin', __FILE__)
|
|
3
|
+
|
|
4
|
+
class Following < FollowingOrigin
|
|
5
|
+
|
|
6
|
+
def self.shard(key)
|
|
7
|
+
Object.const_get(FollowingNode.seek(key).class_name)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def self.gtn(key)
|
|
11
|
+
FollowingNode.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 = Following.gtn(r.uid)
|
|
21
|
+
unless r.id
|
|
22
|
+
r.id = Following.next_id
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
after_save do |r|
|
|
27
|
+
hash = r.attributes
|
|
28
|
+
hash.delete_if{|k,v| %w(id created_at updated_at).include? k }
|
|
29
|
+
|
|
30
|
+
follower = Follower.shard(r.following_uid).where(uid: r.uid, following_uid: r.following_uid).first
|
|
31
|
+
|
|
32
|
+
unless follower
|
|
33
|
+
# 创建
|
|
34
|
+
follower = Follower.shard(r.following_uid).new
|
|
35
|
+
end
|
|
36
|
+
follower.id = r.id
|
|
37
|
+
follower.update_attributes(hash)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
before_destroy do |r|
|
|
41
|
+
r.class.table_name = Following.gtn(r.uid)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
after_destroy do |r|
|
|
45
|
+
# 关注数 - 1
|
|
46
|
+
Following.decr_user_followings_count(r.uid)
|
|
47
|
+
|
|
48
|
+
follower = Follower.shard(r.following_uid).where(uid: r.uid, following_uid: r.following_uid).first
|
|
49
|
+
|
|
50
|
+
if follower
|
|
51
|
+
follower.destroy
|
|
52
|
+
# 粉丝数 - 1
|
|
53
|
+
Following.decr_user_followers_count(follower.following_uid)
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require File.expand_path('../following_group_node', __FILE__)
|
|
2
|
+
require File.expand_path('../following_group_origin', __FILE__)
|
|
3
|
+
|
|
4
|
+
class FollowingGroup < FollowingGroupOrigin
|
|
5
|
+
|
|
6
|
+
def self.shard(key)
|
|
7
|
+
Object.const_get(FollowingGroupNode.seek(key).class_name)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def self.gtn(key)
|
|
11
|
+
FollowingGroupNode.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 = FollowingGroup.gtn(r.uid)
|
|
21
|
+
|
|
22
|
+
unless r.id
|
|
23
|
+
r.id = FollowingGroup.next_id
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
before_destroy do |r|
|
|
28
|
+
r.class.table_name = FollowingGroup.gtn(r.uid)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
require File.expand_path('../../extenders/following_group_extender', __FILE__)
|
|
2
|
+
|
|
3
|
+
class FollowingGroupOrigin < ActiveRecord::Base
|
|
4
|
+
extend FollowingGroupExtender
|
|
5
|
+
|
|
6
|
+
# 关注分组
|
|
7
|
+
self.table_name = 'tb_following_group'
|
|
8
|
+
|
|
9
|
+
attr_accessible :uid,
|
|
10
|
+
:is_public,
|
|
11
|
+
:title,
|
|
12
|
+
:is_auto_download,
|
|
13
|
+
:order_num
|
|
14
|
+
|
|
15
|
+
# uid --- 用户id
|
|
16
|
+
# is_public --- 是否公开
|
|
17
|
+
# title --- 分组名,一个用户不能有重名的组
|
|
18
|
+
# is_auto_download --- 是否自动离线下载,一个用户只能有一个自动离线下载的组
|
|
19
|
+
# order_num --- 排序号
|
|
20
|
+
|
|
21
|
+
validates :uid, presence: true
|
|
22
|
+
|
|
23
|
+
before_save do |r|
|
|
24
|
+
unless r.id
|
|
25
|
+
r.id = FollowingGroup.next_id
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
require File.expand_path('../../extenders/following_extender', __FILE__)
|
|
2
|
+
require File.expand_path('../follower', __FILE__)
|
|
3
|
+
|
|
4
|
+
class FollowingOrigin < ActiveRecord::Base
|
|
5
|
+
extend FollowingExtender
|
|
6
|
+
|
|
7
|
+
# 关注人 分表 根据 uid > followings | following_uid > followers
|
|
8
|
+
self.table_name = 'tb_follow'
|
|
9
|
+
|
|
10
|
+
attr_accessible :uid, :following_uid,
|
|
11
|
+
:nickname, :avatar_path,
|
|
12
|
+
:avatar_path_small, :avatar_path_middle, :avatar_path_large,
|
|
13
|
+
:personal_signature,
|
|
14
|
+
:country, :province, :city, :town,
|
|
15
|
+
:following_nickname, :following_avatar_path,
|
|
16
|
+
:following_avatar_path_small, :following_avatar_path_middle, :following_avatar_path_large,
|
|
17
|
+
:following_personal_signature,
|
|
18
|
+
:following_country, :following_province, :following_city, :following_town, :following_is_v,
|
|
19
|
+
:is_blocked, :is_public, :is_mutual,
|
|
20
|
+
:following_group_id, :following_group_title, :is_auto_download, :is_auto_push
|
|
21
|
+
|
|
22
|
+
# uid nickname avatar_path personal_signature --- 用户id 昵称 头像 签名
|
|
23
|
+
# avatar_path_small avatar_path_middle avatar_path_large --- 未使用
|
|
24
|
+
# country province city town --- 用户所在地
|
|
25
|
+
# following_uid following_nickname following_avatar_path following_personal_signature --- 关注用户id 昵称 头像 签名
|
|
26
|
+
# following_avatar_path_small following_avatar_path_middle following_avatar_path_large --- 未使用
|
|
27
|
+
# following_country following_province following_city following_town --- 关注用户所在地
|
|
28
|
+
# following_is_v --- 关注用户是否加V
|
|
29
|
+
# is_blocked --- 是否拉黑
|
|
30
|
+
# is_public --- 是否公开
|
|
31
|
+
# is_mutual --- 是否相互关注
|
|
32
|
+
# following_group_id --- 未使用
|
|
33
|
+
# following_group_title --- 未使用
|
|
34
|
+
# is_auto_download --- 未使用
|
|
35
|
+
# is_auto_push --- 对方上传了一个声音是否推提醒
|
|
36
|
+
|
|
37
|
+
validates :uid, presence: true
|
|
38
|
+
|
|
39
|
+
before_save do |r|
|
|
40
|
+
unless r.id
|
|
41
|
+
r.id = Following.next_id
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
after_save do |r|
|
|
46
|
+
hash = r.attributes
|
|
47
|
+
hash.delete_if{|k,v| %w(id created_at updated_at).include? k }
|
|
48
|
+
|
|
49
|
+
follower = Follower.shard(r.following_uid).where(uid: r.uid, following_uid: r.following_uid).first
|
|
50
|
+
|
|
51
|
+
unless follower
|
|
52
|
+
# 创建
|
|
53
|
+
follower = Follower.shard(r.following_uid).new
|
|
54
|
+
end
|
|
55
|
+
follower.id = r.id
|
|
56
|
+
follower.update_attributes(hash)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
after_destroy do |r|
|
|
60
|
+
# 关注数 - 1
|
|
61
|
+
Following.decr_user_followings_count(r.uid)
|
|
62
|
+
|
|
63
|
+
follower = Follower.shard(r.following_uid).where(uid: r.uid, following_uid: r.following_uid).first
|
|
64
|
+
|
|
65
|
+
if follower
|
|
66
|
+
follower.destroy
|
|
67
|
+
# 粉丝数 - 1
|
|
68
|
+
Following.decr_user_followers_count(follower.following_uid)
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
end
|