日期:2014-05-20  浏览次数:20658 次

如何实现OA中短消息机制
我要做一个OA短消息机制,可以向其他人发送信息,也可以全体发送,我当时想的是,一个文本框里写上发送人的名字,然后判断该用户在不在,之后提交到一个消息表中,用ajax技术提示信息,但是我觉得这样做,不够好,最好是能选择发送人是谁,是几个人,可以向多人发送,也可以向一个人发送的,我用的是struts2技术,想到了标签,希望有大侠可以提示一下,详细一点的,谢谢,告诉我用到的技术名称以及编写流程,谢谢!!
越详细越好!!
struts2 ajax oa

------解决方案--------------------
一般的消息发送不难,主要问题是:群发。

群发一般两种解决方案:
1、拆分信息,也就是发给多少个人,就实际生成多少条消息;好处是查询起来简单,大家都只需要查询自己的消息记录。
2、建立组,比如有个组,包含了10个人,发送给这个组,到时候10个人都能查询到;好处是能节省空间,尤其是发送给所有人的时候,缺点就是查询消息麻烦点,要组合。
实际系统设计时,两种方案一般都会用。


不知道你系统用户规模如何,如果1W人以下的,直接用方案1得了。


不太清楚有没有成熟的开源组件,自己搜索看看吧。
------解决方案--------------------
用两张表就可以了
message消息信息表
readlog消息阅读信息表(message_id,接收人,阅读时间)
保存message表时,将所有的接收人写到readlog表中
如果用户查看了消息,就改变readlog的相关信息

------解决方案--------------------
引用:
漏了点:

◎ 主键,增加一个字段ID自增序列做主键就行了。

◎ 索引,要建立几个复合索引,否则检索性能很差:
接收者查询索引:(receiver, sendtime desc)
发送者查询索引:(sender, sendtime desc)

◎ 查询,查询消息的时候注意排序:Order By sendtime Desc




我看到了你的博客http://blog.csdn.net/ldh911/article/details/7346262这篇文章后,自己也写了一个实现,代码在http://bbs.csdn.net/topics/390627199?page=1 ,我发现了一个死锁的问题,在8楼找出了原因。
但是我运行你的代码多次都没有死锁的现象产生。 但是从代码上面来看,你的代码也可能会出现我那样的问题 , 你去看一下, 看是不是 ?  能不能给我解释一下你的代码为什么没有死锁,我的却会有死锁