/**
* 发送站内信
*/
@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的更多相关文章

  1. ASP.NET 实现站内信功能(点对点发送,管理员群发)

    正好这段时间在研究这个功能,还是得感谢这位大神,没有他的引路,我就不可能把站内信做出来. http://www.cnblogs.com/grenet/archive/2010/03/08/168065 ...

  2. 站内信DB设计实现

    两年前,万仓一黍在博客园发了两篇关于站内信的设计实现博文,<群发"站内信"的实现>.<群发"站内信"的实现(续)>,其中阐述了他关于站内 ...

  3. 开源 免费 java CMS - FreeCMS2.1 会员站内信

    项目地址:http://www.freeteam.cn/ 站内信 1.1.1 写信 从左側管理菜单点击写信进入. 输入收信人.标题.内容后点击发送button. 1.1.2 收件箱 从左側管理菜单点击 ...

  4. 2. SharePoint Online 开发,请联系qq512800530。加好备注。(不要发站内信。。。)

    ///(不要发站内信...) <meta name="keywords" content="SharePoint Online, SP Online, SPO, S ...

  5. ThinkPHP---thinkphp完善站内信功能

    [一]收件箱 分析 控制器:EmailController.class.php 方法:recBox(全称receive box收件箱) 模板文件:recBox.html 分步操作: 第一步:创建方法r ...

  6. c++小学期大作业攻略(四)任务系统+站内信

    虽然比最早的预定晚了整整一个星期但这核心功能最后一篇终于还是来了. 如果你已经经历了用户系统的洗礼,相信代码实现应该已经没有太大的难度,所以我们重点关注一下设计好的流程. 一.任务系统 首先是新建任务 ...

  7. 站内信对话列表sql语句

  8. SharePoint 2010 类似人人网站内信功能实施

    简介:用SharePoint代码加实施的方式,完成类似人人网站内信功能,当然,实现的比较简单,样式也比较难看,只为给大家一个实施的简单思路,如有谬误,还请见谅.当然,还有就是截图比较长,当然为了让大家 ...

  9. SNF开发平台WinForm之十四-站内发送系统信息-SNF快速开发平台3.3-Spring.Net.Framework

    1运行效果: 2开发实现: .组装站内信息发送实体对象. SNFService SNFService = new SNFService(); if (this.ucUser.SelectedIds ! ...

随机推荐

  1. Magento 编译 php5.6.21 命令

    ./configure  '--prefix=/alidata/server/php' '--enable-opcache' '--with-config-file-path=/alidata/ser ...

  2. css杂项,清除浮动

    在写HTML代码的时候,发现在Firefox等符合W3C标准的浏览器中,如果有一个DIV作为外部容器,内部的DIV如果设置了float样式,则外部的容器DIV因为内部没有clear,导致不能被撑开.看 ...

  3. 再次深入理解delphi的类

    property WindowState: TWindowState read FWindowState write SetWindowState; {声明一个属性WindowState,它从字段FW ...

  4. B题 - A+B for Input-Output Practice (I)

      Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u   Description You ...

  5. WebForm

    ASP开发方式 格式 <%  %> C#代码可以写在里面 <%= %>  往外输出一个值,可以放一个变量,一个方法(这个方法是有返回值的直接打印到界面上去) <%@ %& ...

  6. 关于ueditor1.4.3版复制section标签丢失class和style样式问题

    在复制微信的文章格式到ueditor时发现section标签中的style和class属性丢失,严重影响美观. 原文格式,排版清晰段落分明赏心悦目: 复制到ueditor后的格式...这跟原文是没法比 ...

  7. linux中bin和xbin下可执行程序的区别

    /bin下的都是Linux最基础的,所有用户都可以使用的外部命令 /sbin下的都是只有超级用户root才能使用的.管理Linux系统的外部命令 /usr/bin以及/usr/local/bin下的都 ...

  8. IIS短文件名漏洞修补方法之一改注册表一个注意项

    1)1.png 为漏洞存在没有做任何修复的时候的扫描 修复:2) 修改注册表键值: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSy ...

  9. JavaScript DES 加密

    最近做网页数据加密工作, 使用CryptoJS v3.1.2 这个JavaScript脚本,网上比较有质量的文章实在太少,经验证加密结果与Asp.net DES加密结果一致 参考文章 https:// ...

  10. The top 100 papers Nature explores the most-cited research of all time.

    The top 100 papers Nature explores the most-cited research of all time. The discovery of high-temper ...