/**
* 发送站内信
*/
@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. 手机端QQ客服直接跳转到QQ

    企业QQ呼出QQ对话框方法 1.手机端链接是这样的:mqqwpa://im/chat?chat_type=wpa&uin=386807630&version=1&src_typ ...

  2. pytesser的使用

    pytesser以及其依赖插件下载地址:链接: http://pan.baidu.com/s/1i3zgpjJ 密码: ueyy 在学习Webdriver的过程中遇到验证码的识别问题,问了度娘知道了p ...

  3. C# 程序性能提升篇-2、类型(字段类型、class和struct)的错误定义所影响性能浅析

    前景提要: 编写程序时,也许你不经意间,就不知不觉的定义了错误的类型,从而发生了额外的性能消耗,从而降低了效率,不要说就发生那么一次两次,如果说是程序中发生了循环.网络程序(不断请求处理的)等这些时候 ...

  4. List<T> ForEach break

    有没有方法扩展跳出 list.foreach循环? 理论上它其实不是一个循环,而是一个方法 代理调用内部循环   public delegate void ForEachAction<T> ...

  5. SharePoint 2013 弹窗效果之URL打开方式(一)

    在SharePoint中想做一个弹出效果其实很简单,仅仅在js中使用SharePoint Modal Dialog, 以下做一个简单的例子:很多情况下我们会通过linkButton弹出一个详细页面,那 ...

  6. 化简复杂逻辑,编写紧凑的if条件语句

    当业务逻辑很复杂,涉及多个条件的真假,或者多种条件下都会执行同一动作时,如何编写紧凑的if语句呢?本文借由一个实际例子,利用数学的布尔逻辑整理条件,最终产生if语句. 问题 在<X3 重聚> ...

  7. BZOJ 1021 循环的债务

    Description Alice.Bob和Cynthia总是为他们之间混乱的债务而烦恼,终于有一天,他们决定坐下来一起解决这个问题.不过,鉴别钞票的真伪是一件很麻烦的事情,于是他们决定要在清还债务的 ...

  8. 哟哟哟,JAVA组装的聊天室,最简单的实现

    太码多码码,总是多些感觉~~~ 打了快一个小时啊, 但看着一行一行的出来, 还是有成就感的~~:) VerySimpleChatServer.java import java.io.*; import ...

  9. c#分支语句;循环语句(随堂练习)

    1. 输入月份,日期号,输出是今年的第几天    平年,2月28天     switch (变量名) {case "": break} 2. 循环语句:    for(int i ...

  10. Linux Kernel 'MSR' Driver Local Privilege Escalation

    本站提供程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负! // PoC exploit for /dev/cpu/*/msr, 32bit userland on a 64bit hos ...