<#case event_type_rule_project_view>
<#case event_type_rule_project_collect>
<#case event_type_rule_project_reward>
<@event_project_macro event event.source/>
<#break>
<#case event_type_rule_comment_create>
<@event_comment_macro event event.target/>
<#break>
<#case event_type_rule_answer_create>
<@event_answer_macro event event.target/>
<#break>
<#case event_type_rule_answer_get>
<#case event_type_rule_answer_been_set_perfect>
<@event_answer_macro event event.source/>
<#break>
<#case event_type_rule_mention_comment>
<@event_comment_macro event event.target/>
<#break>
<#case event_type_rule_mention_post>
<@event_post_macro event.source/>
<#break>
#switch>
比如其中一种event type的freemarker macro代码如下:
<#macro event_post_macro post>
${post.contentExt}
#macro>
这样的设计符合高内聚低耦合的设计思路,未来可以根据业务实现无限扩张,当然代价就是event表越来越大,但可以通过分库分表来分担压力,大家可以参考下,有好的意见可以留言。