站内信,群发与全部发送。Gson解析result
/**
* 发送站内信
*/
@Permission(Module.TZGL)
@RequestMapping(value = "/sendznx", method = RequestMethod.POST)
@ResponseBody
public String sendZnx(HttpSession session, Model model,
@RequestParam(defaultValue = "") String[] userList,
@RequestParam(defaultValue = "") String content) throws Exception {
int rows = 0; //记录发送数量
String msg = ""; //记录返回信息
System.out.println("length--->"+userList.length);
System.out.println("content--->"+content);
try{
if(userList.length == 0){ //给全体成员发送系统通知
//全体成员发送
try{
String result = Jsoup.connect(NMApi.url() + "/message/userlist").timeout(10000)
.get()
.text();
//--->使用Gson把请求回来的数据转成MAP结构
Map<String,Object> data = new Gson().fromJson(result,new TypeToken<Map<String,Object>>() {}.getType());
//--->把MAP中需要的Object类型数据取出来,并转成List
List list = (List)data.get("RecList");
//--->使用Gson把List转成Json
String str = new Gson().toJson(list);
//--->再次使用Gson把Json转成需要的类型
List<UserInfo> userInfoList = new Gson().fromJson(str,new TypeToken<List<UserInfo>>() {}.getType());
try{
for(UserInfo userInfo : userInfoList){
WebMessage webMessage = new WebMessage();
webMessage.setClientId(userInfo.getIcid());
webMessage.setReceiveTime(new Date());
webMessage.setType("系统通知");
webMessage.setContent(content);
webMessage.setStatus(0);
webMessageService.add(webMessage);
rows ++;
}
msg = "发送站内信成功,成功条数:"+rows;
}catch (Exception e){
e.printStackTrace();
return "群发站内信出错";
}
} catch (Exception e) {
e.printStackTrace();
return "查询用户列表出错";
}
}else{
for (int i = 0;i < userList.length;i++){ //给部分成员发送管理员消息
WebMessage webMessage = new WebMessage();
webMessage.setClientId(Integer.parseInt(userList[i]));
webMessage.setReceiveTime(new Date());
webMessage.setType("管理员消息");
webMessage.setContent(content);
webMessage.setStatus(0);
webMessageService.add(webMessage);
rows ++;
}
msg = "发送站内信成功,成功条数:"+rows;
//发件记录
try {
User user = (User)session.getAttribute("user");
MessageLog messageLog = new MessageLog();
messageLog.setSendTime(new Date());
messageLog.setType("站内信");
messageLog.setSender(user.getUnitName());
messageLog.setReceiver(userList.toString());
messageLog.setContent(content);
messageLog.setResult(msg);
messageLog.setError("");
int num = messageLogService.add(messageLog);
System.out.println("生成记录--->"+num);
}catch (Exception e){
e.printStackTrace();
return "生成发信记录出错";
}
}
} catch (Exception e) {
e.printStackTrace();
return "系统出错";
}
return msg;
}
站内信,群发与全部发送。Gson解析result的更多相关文章
- ASP.NET 实现站内信功能(点对点发送,管理员群发)
正好这段时间在研究这个功能,还是得感谢这位大神,没有他的引路,我就不可能把站内信做出来. http://www.cnblogs.com/grenet/archive/2010/03/08/168065 ...
- 站内信DB设计实现
两年前,万仓一黍在博客园发了两篇关于站内信的设计实现博文,<群发"站内信"的实现>.<群发"站内信"的实现(续)>,其中阐述了他关于站内 ...
- 开源 免费 java CMS - FreeCMS2.1 会员站内信
项目地址:http://www.freeteam.cn/ 站内信 1.1.1 写信 从左側管理菜单点击写信进入. 输入收信人.标题.内容后点击发送button. 1.1.2 收件箱 从左側管理菜单点击 ...
- 2. SharePoint Online 开发,请联系qq512800530。加好备注。(不要发站内信。。。)
///(不要发站内信...) <meta name="keywords" content="SharePoint Online, SP Online, SPO, S ...
- ThinkPHP---thinkphp完善站内信功能
[一]收件箱 分析 控制器:EmailController.class.php 方法:recBox(全称receive box收件箱) 模板文件:recBox.html 分步操作: 第一步:创建方法r ...
- c++小学期大作业攻略(四)任务系统+站内信
虽然比最早的预定晚了整整一个星期但这核心功能最后一篇终于还是来了. 如果你已经经历了用户系统的洗礼,相信代码实现应该已经没有太大的难度,所以我们重点关注一下设计好的流程. 一.任务系统 首先是新建任务 ...
- 站内信对话列表sql语句
- SharePoint 2010 类似人人网站内信功能实施
简介:用SharePoint代码加实施的方式,完成类似人人网站内信功能,当然,实现的比较简单,样式也比较难看,只为给大家一个实施的简单思路,如有谬误,还请见谅.当然,还有就是截图比较长,当然为了让大家 ...
- SNF开发平台WinForm之十四-站内发送系统信息-SNF快速开发平台3.3-Spring.Net.Framework
1运行效果: 2开发实现: .组装站内信息发送实体对象. SNFService SNFService = new SNFService(); if (this.ucUser.SelectedIds ! ...
随机推荐
- 支付宝支付错误 系统忙:错误代码AE150002999
今天出现支付宝支付错误,支付系统繁忙请稍等,错误码AE150002999.测试了其他连个收款方,可跳转到正常扫码支付页面,排除了代码错误. 在登录支付宝商家中,也签约了“即时到帐”功能.度娘和查看都找 ...
- javascript获取div高度
DOM的: 获得了div的高度值 = document.getElementById("目标id").offsetHeight;
- ecshop数据库操作类
ECShop v2.7.2没有使用一些开源的数据库操作类,比如adodb或者PEAR,而是封装了自己的实现. 好处:实现非常轻量,只有一个文件,27Kb,大大减小了分发包的文件大小. 当网站需要做me ...
- js操作Cookie,实现历史浏览记录
/** * history_teacher.jsp中的js,最近浏览名师 * @version: 1.0 * @author: mingming */ $(function(){ getHistory ...
- 通过Java代码浅谈HTTP协议
最近刚看了http协议,想写点东西加深一下理解,如果哪儿写错了,请指正. 1 介绍 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写.它的发展是万维网协会(W ...
- ios入门之c语言篇——基本函数——5——素数判断
参数返回值解析: 参数: m:int,需要判断的值: 返回值: 0:非素数 1:素数 函数解析: 注意:函数没有对输入进行判断,请自己屏蔽非法输入 int prime(int m) { int tem ...
- html里的table如何在表格内部保留表格横线的同时去掉表格里的竖线
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- STL中的Traits编程技法
最近在看读<STL源码剖析>,看到Traits编程技法这节时,不禁感慨STL源码作者的创新能力.那么什么是Traits编程技法呢?且听我娓娓道来: 我们知道容器的许多操作都是通过迭代器展开 ...
- AlgorithmsI PA2: Randomized Queues and Deques Subset
本题的bonus是 因此方法是queue的size 达到了K, 就停止增加元素,保证queue.size() 最大时只有k. Java code: import edu.princeton.cs.al ...
- bzoj3295
没什么好说的,树套树应该随便搞我在128MB空间下大胆的写了主席树当然要把原树和修改树分开来建没有然后了 type node=record l,r,s:longint; end; ..] of nod ...