/**
* 发送站内信
*/
@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;
}