mindpin / TouchIdea

0 stars 1 forks source link

Notification #29

Closed destinyd closed 9 years ago

destinyd commented 9 years ago

目前有四种触发通知的时机:

2.1 我参加的议题增加了选项 2.2 我创建的选项被人投票了 2.3 我创建的议题增加了选项 2.4 我创建的议题中有任意选项被人投票了

至于通知里写什么,宋亮考虑。

这些东西打算写在controller里。 至于通知模型使用原来的 Message,模型字段没有改变,考虑添加类函数,处理不同通知。

destinyd commented 9 years ago

Message方法:

2.1 我参加的议题增加了选项

  def self.notify_voted_vote_has_new_select(vote_item)
  end

2.2 我创建的选项被人投票了

  def self.notify_vote_item_owner_be_selected(vote_item)
  end

2.3 我创建的议题增加了选项

  def self.notify_vote_has_new_select(vote_item)
  end

2.4 我创建的议题中有任意选项被人投票了

  def self.notify_vote_item_be_selected(vote_item)
  end

在需要提醒的点放入方法即会对对应用户进行提醒。

暂为这样,到时候看还能怎样优化。

ben7th commented 9 years ago

建议把创建 message 记录的触发放在模型层里,原因如下:

  1. 可能后续版本会有不同的控制器(比如 ApiController )会调用同样的模型方法;所以把回调放在模型层比较好
  2. 用户数如果更多之后,可能消息通知会改用 sidekiq 等消息队列去创建 message 记录以提升性能。所以把这个逻辑放在模型层较好。
ben7th commented 9 years ago

2015 年 4 月 10 日,UI 初稿已提交,可以进行逻辑层面集成

在线观看地址: http://www.mindpin.com/ui-design/pinidea/dist/html/notification-0-list.html


集成注意事项:

destinyd commented 9 years ago

Message模型

字段名

field :read_at, type: Time # 阅读时间
# 提醒类型 in %i[voted_vote_has_new_select own_vote_item_be_selected vote_has_new_select vote_item_be_selected]
field :style,    type: Symbol 
field :total,    type: Integer, default: 1 # 数目记录

方法

def read! # 标记为已读
end

def read? # 返回是否已读
end

类方法

  def self.notify to_user, vote, style # 创建对于style的提醒
  end

  def self.notify_voted_vote_has_new_select vote_item, from_user #2.1 我参加的议题增加了选项
  end

  def self.notify_vote_item_owner_be_selected vote_item, from_user #2.2 我创建的选项被人投票了
  end

  def self.notify_vote_has_new_select vote_item, from_user #2.3 我创建的议题增加了选项
  end

  def self.notify_vote_item_be_selected vote_item, from_user #2.4 我创建的议题中有任意选项被人投票了
  end
destinyd commented 9 years ago

4个事件触发已经集成到模型层内

destinyd commented 9 years ago

提醒规则进一步细化,防止过多重复的提醒:

  1. 我参加的(别人创建的)议题增加了(别人创建的)选项
  2. 我(在别人的议题中)(自己)创建的选项被(别人)投票了
  3. 我(自己)创建的议题增加了(别人创建的)选项
  4. 我(自己)创建的议题中有任意(不管是谁创建的)选项被(别人)投票了
ben7th commented 9 years ago

已集成到 0.2