Index: forgon-core/src/main/java/com/forgon/java_websocket/service/PushRecordManagerImpl.java =================================================================== diff -u -r35664 -r35729 --- forgon-core/src/main/java/com/forgon/java_websocket/service/PushRecordManagerImpl.java (.../PushRecordManagerImpl.java) (revision 35664) +++ forgon-core/src/main/java/com/forgon/java_websocket/service/PushRecordManagerImpl.java (.../PushRecordManagerImpl.java) (revision 35729) @@ -2,6 +2,7 @@ import java.util.Date; import java.util.List; +import java.util.Map; import net.sf.json.JSONArray; import net.sf.json.JSONObject; @@ -35,22 +36,24 @@ } @Override - public void save(String entityName, Long entityId, List userNameList, String remindMessage,List noticeType) { + public void save(String entityName, Long entityId, List userNameList, String remindMessage,Map> userNameToNoticeTypeListMap) { if(CollectionUtils.isNotEmpty(userNameList)){ for(String userName : userNameList){ super.save(new PushRecord(entityName, entityId, userName)); + List noticeTypeList = userNameToNoticeTypeListMap.get(userName); + if(CollectionUtils.isNotEmpty(noticeTypeList)){ + if(javaWebSocketServer != null){ + JSONObject contentJson = new JSONObject(); + contentJson.put("entityName", entityName); + contentJson.put("message", remindMessage); + contentJson.put("noticeTypeList", JSONArray.fromObject(noticeTypeList)); + contentJson.put("userNameList", JSONArray.fromObject(userNameList)); + javaWebSocketServer.sendMessage(contentJson, userNameList); + } + } } } - if(CollectionUtils.isNotEmpty(noticeType)){ - if(javaWebSocketServer != null){ - JSONObject contentJson = new JSONObject(); - contentJson.put("entityName", entityName); - contentJson.put("message", remindMessage); - contentJson.put("noticeTypeList", JSONArray.fromObject(noticeType)); - contentJson.put("userNameList", JSONArray.fromObject(userNameList)); - javaWebSocketServer.sendMessage(contentJson, userNameList); - } - } + } } Index: forgon-core/src/main/java/com/forgon/java_websocket/service/PushRecordManager.java =================================================================== diff -u -r35666 -r35729 --- forgon-core/src/main/java/com/forgon/java_websocket/service/PushRecordManager.java (.../PushRecordManager.java) (revision 35666) +++ forgon-core/src/main/java/com/forgon/java_websocket/service/PushRecordManager.java (.../PushRecordManager.java) (revision 35729) @@ -1,6 +1,7 @@ package com.forgon.java_websocket.service; import java.util.List; +import java.util.Map; import com.forgon.java_websocket.model.PushRecord; import com.forgon.tools.hibernate.BasePoManager; @@ -26,8 +27,8 @@ * @param entityId 实体记录的id * @param userNameList 用户名的集合 * @param remindMessage 提醒信息内容(比如针对待预回记录对应申请单就取invoicePlan类的getRemindContent()方法返回的值,以后扩展到其它数据依此类推) - * @param noticeType 提醒方式(如文字提醒、语音提醒、弹出提醒) + * @param userNameToNoticeTypeListMap 用户名对应的提醒方式集合(如文字提醒、语音提醒、弹出提醒)的map(key为用户名即工号、value为该用户对应的提醒方式) */ - public void save(String entityName, Long entityId ,List userNameList, String remindMessage,List noticeType); + public void save(String entityName, Long entityId ,List userNameList, String remindMessage,Map> userNameToNoticeTypeListMap); } Index: forgon-core/src/main/java/com/forgon/java_websocket/core/JavaWebSocketServer.java =================================================================== diff -u -r35664 -r35729 --- forgon-core/src/main/java/com/forgon/java_websocket/core/JavaWebSocketServer.java (.../JavaWebSocketServer.java) (revision 35664) +++ forgon-core/src/main/java/com/forgon/java_websocket/core/JavaWebSocketServer.java (.../JavaWebSocketServer.java) (revision 35729) @@ -1,5 +1,6 @@ package com.forgon.java_websocket.core; +import java.net.BindException; import java.net.InetSocketAddress; import java.util.ArrayList; import java.util.Collections; @@ -103,8 +104,12 @@ @Override public void onError(WebSocket conn, Exception ex) { - logger.info("JavaWebSocketServer发生错误,客户端ip地址为:" + getClientHost(conn)); + //logger.info("JavaWebSocketServer发生错误,客户端ip地址为:" + getClientHost(conn)); ex.printStackTrace(); + if(ex instanceof BindException){ + logger.info("java-websocket端口号" + javaWebsocketPort + "已被占用,请更换java-websocket端口"); + throw new RuntimeException(ex); + } } @Override @@ -151,8 +156,4 @@ this.broadcast(contentJson.toString()); } - public static void main(String[] args) { - JavaWebSocketServer ws = new JavaWebSocketServer(8888); - ws.start(); - } }