use of com.bc.pmpheep.back.po.UserMessage in project pmph by BCSquad.
the class SystemMessageService method sendWhenSubmitDeclarationForm.
/**
* 作家教材申报表 给学校管理员发送或者人卫教材相关人员发送消息
*
* @author Mryang
* @createDate 2017年11月17日 下午4:31:19
* @param declarationId
* 申报id
* @throws CheckedServiceException
* @throws IOException
*/
public void sendWhenSubmitDeclarationForm(Long declarationId) throws CheckedServiceException, IOException {
// 获取申报表
Declaration declaration = declarationService.getDeclarationById(declarationId);
if (null == declaration) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "申报表不存在");
}
if (null == declaration.getOrgId()) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "认证的管理员为空");
}
Material material = materialService.getMaterialById(declaration.getMaterialId());
if (declaration.getOrgId() == 0) {
// 提交的人卫社
// 项目编辑 策划编辑 主任 id
String msgContent = "[<font color='red'>" + declaration.getRealname() + "</font>]提交了《<font color='red'>" + material.getMaterialName() + "</font>》申报表,请及时进行资料审核";
// 存入消息主体
Message message = new Message(msgContent);
message = messageService.add(message);
String msg_id = message.getId();
// 主任id
Long directorId = material.getDirector();
// 项目编辑列表
List<MaterialProjectEditorVO> materialProjectEditorList = materialProjectEditorService.listMaterialProjectEditors(material.getId());
// 批量保存的消息集合
List<UserMessage> userMessageList = new ArrayList<UserMessage>(materialProjectEditorList.size() + 1);
List<String> userIds = new ArrayList<String>(materialProjectEditorList.size() + 1);
userMessageList.add(new UserMessage(msg_id, messageTitle, new Short("0"), 0L, new Short("0"), directorId, new Short("1"), null));
userIds.add("1_" + directorId);
for (MaterialProjectEditorVO materialProjectEditor : materialProjectEditorList) {
UserMessage userMessage = new UserMessage(msg_id, messageTitle, new Short("0"), 0L, new Short("0"), materialProjectEditor.getEditorId(), new Short("1"), null);
userMessageList.add(userMessage);
userIds.add("1_" + materialProjectEditor.getEditorId());
}
// 策划编辑
// 我申报的书籍
List<DecPosition> decPositionList = decPositionService.listDecPositions(declarationId);
for (DecPosition decPosition : decPositionList) {
Textbook textbook = textbookService.getTextbookById(decPosition.getTextbookId());
if (null != textbook && null != textbook.getPlanningEditor()) {
UserMessage userMessage = new UserMessage(msg_id, messageTitle, new Short("0"), 0L, new Short("0"), textbook.getPlanningEditor(), new Short("1"), null);
userMessageList.add(userMessage);
userIds.add("1_" + textbook.getPlanningEditor());
}
}
// 发送消息
userMessageService.addUserMessageBatch(userMessageList);
// websocket推送页面消息
WebScocketMessage webScocketMessage = new WebScocketMessage(msg_id, Const.MSG_TYPE_0, 0L, "系统", Const.SENDER_TYPE_0, Const.SEND_MSG_TYPE_0, RouteUtil.DEFAULT_USER_AVATAR, messageTitle, msgContent, DateUtil.getCurrentTime());
myWebSocketHandler.sendWebSocketMessageToUser(userIds, webScocketMessage);
} else {
// 提交的机构
String msgContent = "贵校老师[<font color='red'>" + declaration.getRealname() + "</font>]提交了《<font color='red'>" + material.getMaterialName() + "</font>》申报表,请及时进行资料审核、打印并快递申报纸质表";
// 存入消息主体
Message message = new Message(msgContent);
message = messageService.add(message);
String msg_id = message.getId();
// 获取机构用户
List<Long> orgIds = new ArrayList<Long>(1);
orgIds.add(declaration.getOrgId());
List<OrgUser> orgUserList = orgUserService.getOrgUserListByOrgIds(orgIds);
List<UserMessage> userMessageList = new ArrayList<UserMessage>(orgUserList.size());
List<String> userIds = new ArrayList<String>(orgUserList.size());
for (OrgUser orgUser : orgUserList) {
UserMessage userMessage = new UserMessage(msg_id, messageTitle, new Short("0"), 0L, new Short("0"), orgUser.getId(), new Short("3"), null);
userMessageList.add(userMessage);
userIds.add("3_" + orgUser.getId());
}
// 发送消息
userMessageService.addUserMessageBatch(userMessageList);
// websocket推送页面消息
WebScocketMessage webScocketMessage = new WebScocketMessage(msg_id, Const.MSG_TYPE_0, 0L, "系统", Const.SENDER_TYPE_0, Const.SEND_MSG_TYPE_0, RouteUtil.DEFAULT_USER_AVATAR, messageTitle, msgContent, DateUtil.getCurrentTime());
myWebSocketHandler.sendWebSocketMessageToUser(userIds, webScocketMessage);
}
}
use of com.bc.pmpheep.back.po.UserMessage in project pmph by BCSquad.
the class SystemMessageService method sendWhenConfirmFirstEditor.
/**
* 遴选主编副主编时点击发布按钮之后向主编、副主编发送消息
*
* @author Mryang
* @createDate 2017年11月17日 下午1:57:04
* @param bookId
* 教材书籍id
* @throws CheckedServiceException
* @throws IOException
*/
public void sendWhenConfirmFirstEditor(Long bookId, List<DecPositionPublished> newMessage) throws CheckedServiceException, IOException {
// 获取教材书籍
Textbook textbook = textbookService.getTextbookById(bookId);
if (textbook.getIsPublished()) {
sendWhenPubfinalResult(bookId, newMessage);
return;
}
// 获取教材
Material material = materialService.getMaterialById(textbook.getMaterialId());
if (null == material) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "该书籍没有找到对应的教材");
}
// 获取这本书的申报遴选列表
for (DecPositionPublished decPosition : newMessage) {
if (null != decPosition && null != decPosition.getChosenPosition() && null != decPosition.getRank()) {
// 筛选出主编、副主编
Declaration declaration = declarationService.getDeclarationById(decPosition.getDeclarationId());
// 消息内容
String msgContent = "";
if (decPosition.getChosenPosition() == 4 || decPosition.getChosenPosition() == 12) {
if (decPosition.getRank() == 1) {
if (decPosition.getChosenPosition() == 12) {
msgContent = "恭喜您被选为《<font color='red'>" + material.getMaterialName() + "</font>》<font color='red'>[" + textbook.getTextbookName() + "</font>]的第一主编和数字编委,您现在可以开始遴选编委了,最终结果以遴选结果公告为准";
} else {
msgContent = "恭喜您被选为《<font color='red'>" + material.getMaterialName() + "</font>》<font color='red'>[" + textbook.getTextbookName() + "</font>]的第一主编,您现在可以开始遴选编委了,最终结果以遴选结果公告为准";
}
} else {
if (decPosition.getChosenPosition() == 12) {
msgContent = "恭喜您被选为《<font color='red'>" + material.getMaterialName() + "</font>》<font color='red'>[" + textbook.getTextbookName() + "</font>]的主编与数字编委,最终结果以遴选结果公告为准";
} else {
msgContent = "恭喜您被选为《<font color='red'>" + material.getMaterialName() + "</font>》<font color='red'>[" + textbook.getTextbookName() + "</font>]的主编,最终结果以遴选结果公告为准";
}
}
}
if (decPosition.getChosenPosition() == 2 || decPosition.getChosenPosition() == 10) {
if (decPosition.getChosenPosition() == 10) {
msgContent = "恭喜您被选为《<font color='red'>" + material.getMaterialName() + "</font>》<font color='red'>[" + textbook.getTextbookName() + "</font>]的副主编和数字编委,最终结果以遴选结果公告为准";
} else {
msgContent = "恭喜您被选为《<font color='red'>" + material.getMaterialName() + "</font>》<font color='red'>[" + textbook.getTextbookName() + "</font>]的副主编,最终结果以遴选结果公告为准";
}
}
Message message = new Message(msgContent);
message = messageService.add(message);
String msg_id = message.getId();
UserMessage userMessage = new UserMessage(msg_id, messageTitle, new Short("0"), 0L, new Short("0"), declaration.getUserId(), new Short("2"), null);
userMessageService.addUserMessage(userMessage);
// websocket推送页面消息
WebScocketMessage webScocketMessage = new WebScocketMessage(msg_id, Const.MSG_TYPE_0, 0L, "系统", Const.SENDER_TYPE_0, Const.SEND_MSG_TYPE_0, RouteUtil.DEFAULT_USER_AVATAR, messageTitle, msgContent, DateUtil.getCurrentTime());
List<String> userIds = new ArrayList<String>(1);
userIds.add("2_" + declaration.getUserId());
myWebSocketHandler.sendWebSocketMessageToUser(userIds, webScocketMessage);
}
}
}
use of com.bc.pmpheep.back.po.UserMessage in project pmph by BCSquad.
the class SystemMessageService method materialSend.
/**
* 遴选公告发布时,给学校管理员和学校教师发送消息,通知他们留意报名情况或者是参加报名
*
* @author Mryang
* @createDate 2017年11月17日 上午9:28:13
* @param materialName
* 教材名称
* @param ids
* 发送的机构id集合(新增或者增加的机构)
* @param msgId
* 消息id,没有发布过 则为null
* @param isOnlyManager
* 是否只发给管理员
* @throws CheckedServiceException
* @throws IOException
* @return
*/
public void materialSend(Long materialId, List<Long> ids, boolean isOnlyManager) throws CheckedServiceException, IOException {
String materialName = materialService.getMaterialNameById(materialId);
if (StringUtils.isEmpty(materialName)) {
throw new CheckedServiceException(CheckedExceptionBusiness.MESSAGE, CheckedExceptionResult.NULL_PARAM, "消息体为空");
}
if (null == ids || ids.size() == 0) {
throw new CheckedServiceException(CheckedExceptionBusiness.MESSAGE, CheckedExceptionResult.NULL_PARAM, "消息接收对象为空");
}
// 向教师发送消息
if (!isOnlyManager) {
String tercherMsg = "《<font color='red'>" + materialName + "</font>》已经开始申报,请您留意";
String msg_id = null;
// mogodb保存消息体
Message message = new Message(tercherMsg);
message = messageService.add(message);
msg_id = message.getId();
// 获取这些机构启用的作家用户
List<WriterUser> writerUserList = writerUserService.getWriterUserListByOrgIds(ids);
if (null != writerUserList && writerUserList.size() > 0) {
List<UserMessage> userMessageList = new ArrayList<UserMessage>(writerUserList.size());
List<String> userIds = new ArrayList<String>(writerUserList.size());
for (WriterUser writerUser : writerUserList) {
// 信息是由系统发出
UserMessage userMessage = new UserMessage(msg_id, messageTitle, new Short("0"), 0L, new Short("0"), writerUser.getId(), new Short("2"), materialId);
userMessageList.add(userMessage);
userIds.add("2_" + writerUser.getId());
}
// 批量插入消息
userMessageService.addUserMessageBatch(userMessageList);
// websocket推送页面消息
WebScocketMessage webScocketMessage = new WebScocketMessage(msg_id, Const.MSG_TYPE_0, 0L, "系统", Const.SENDER_TYPE_0, Const.SEND_MSG_TYPE_0, RouteUtil.DEFAULT_USER_AVATAR, messageTitle, tercherMsg, DateUtil.getCurrentTime());
myWebSocketHandler.sendWebSocketMessageToUser(userIds, webScocketMessage);
}
}
// 向管理员发送消息
String managerMsg = "《<font color='red'>" + materialName + "</font>》已经开始申报,请您留意教职工的报名情况";
Message message = new Message(managerMsg);
message = messageService.add(message);
String msg_id = message.getId();
// 获取这些机构的管理员
List<OrgUser> orgUserList = orgUserService.getOrgUserListByOrgIds(ids);
if (null != orgUserList && orgUserList.size() > 0) {
List<UserMessage> userMessageList = new ArrayList<UserMessage>(orgUserList.size());
List<String> userIds = new ArrayList<String>(orgUserList.size());
for (OrgUser orgUser : orgUserList) {
UserMessage userMessage = new UserMessage(msg_id, messageTitle, new Short("0"), 0L, new Short("0"), orgUser.getId(), new Short("3"), materialId);
userMessageList.add(userMessage);
userIds.add("3_" + orgUser.getId());
}
// 批量插入消息
userMessageService.addUserMessageBatch(userMessageList);
// websocket推送页面消息
WebScocketMessage webScocketMessage = new WebScocketMessage(msg_id, Const.MSG_TYPE_0, 0L, "系统", Const.SENDER_TYPE_0, Const.SEND_MSG_TYPE_0, RouteUtil.DEFAULT_USER_AVATAR, messageTitle, managerMsg, DateUtil.getCurrentTime());
myWebSocketHandler.sendWebSocketMessageToUser(userIds, webScocketMessage);
}
return;
}
use of com.bc.pmpheep.back.po.UserMessage in project pmph by BCSquad.
the class SystemMessageService method sendWhenQuitGroup.
/**
* 任意用户退出小组 给小组创建者和管理员发送消息
*
* @author Mryang
* @createDate 2017年11月17日 下午2:41:26
* @param exitPersonName
* 退出人姓名
* @param groupId
* 退出的小组id
* @throws CheckedServiceException
* @throws IOException
*/
public void sendWhenQuitGroup(String exitPersonName, Long groupId) throws CheckedServiceException, IOException {
if (StringUtils.isEmpty(exitPersonName)) {
throw new CheckedServiceException(CheckedExceptionBusiness.GROUP, CheckedExceptionResult.NULL_PARAM, "退出人为空");
}
// 获取小组
PmphGroup pmphGroup = pmphGroupService.getPmphGroupById(groupId);
if (null == pmphGroup) {
throw new CheckedServiceException(CheckedExceptionBusiness.GROUP, CheckedExceptionResult.NULL_PARAM, "小组不存在");
}
List<PmphGroupMemberVO> PmphGroupMemberVOList = pmphGroupMemberService.listPmphGroupMember(groupId, null);
if (null == PmphGroupMemberVOList || PmphGroupMemberVOList.size() == 0) {
throw new CheckedServiceException(CheckedExceptionBusiness.GROUP, CheckedExceptionResult.NULL_PARAM, "小组没有成员");
}
// 存入消息主体
String msgContent = "[<font color='red'>" + exitPersonName + "</font>]退出了[" + pmphGroup.getGroupName() + "]小组";
Message message = new Message(msgContent);
message = messageService.add(message);
String msg_id = message.getId();
// 组装消息和消息对象
List<UserMessage> userMessageList = new ArrayList<UserMessage>(PmphGroupMemberVOList.size());
List<String> userIds = new ArrayList<String>(PmphGroupMemberVOList.size());
for (PmphGroupMemberVO pmphGroupMemberVO : PmphGroupMemberVOList) {
if (pmphGroupMemberVO.getIsFounder() || pmphGroupMemberVO.getIsAdmin()) {
// 给创建者和管理员发送
UserMessage userMessage = new UserMessage(msg_id, messageTitle, new Short("0"), 0L, new Short("0"), pmphGroupMemberVO.getUserId(), pmphGroupMemberVO.getUserType(), null);
userMessageList.add(userMessage);
userIds.add(pmphGroupMemberVO.getUserType() + "_" + pmphGroupMemberVO.getUserId());
}
}
// 发送消息
userMessageService.addUserMessageBatch(userMessageList);
// websocket推送页面消息
WebScocketMessage webScocketMessage = new WebScocketMessage(msg_id, Const.MSG_TYPE_0, 0L, "系统", Const.SENDER_TYPE_0, Const.SEND_MSG_TYPE_0, RouteUtil.DEFAULT_USER_AVATAR, messageTitle, msgContent, DateUtil.getCurrentTime());
myWebSocketHandler.sendWebSocketMessageToUser(userIds, webScocketMessage);
}
use of com.bc.pmpheep.back.po.UserMessage in project pmph by BCSquad.
the class SystemMessageService method sendWhenDeclarationFormAudit.
/**
* 教材申报表审核 向作家用户发送消息
*
* @author Mryang
* @createDate 2017年11月17日 下午4:42:14
* @param declarationId
* 申报id
* @param isPass
* true 通过/false 退回
* @throws CheckedServiceException
* @throws IOException
*/
public void sendWhenDeclarationFormAudit(Long declarationId, boolean isPass, String returnCause) throws CheckedServiceException, IOException {
// 获取申报表
Declaration declaration = declarationService.getDeclarationById(declarationId);
if (null == declaration) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "申报表不存在");
}
if (null == declaration.getOrgId()) {
throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.NULL_PARAM, "认证的管理员为空");
}
// 获取教材
Material material = materialService.getMaterialById(declaration.getMaterialId());
String msgContent = "";
if (declaration.getOrgId() == 0) {
// 提交的人卫社
msgContent = "抱歉,您提交的《<font color='red'>" + material.getMaterialName() + "</font>》申报表被[<font color='red'>出版社</font>]退回,退回原因:" + returnCause + ",请您核对后重试";
if (isPass) {
// 通过
msgContent = "恭喜!您提交的《<font color='red'>" + material.getMaterialName() + "</font>》申报表已通过[<font color='red'>出版社</font>]审核";
}
} else {
// 提交的机构
msgContent = "抱歉,您提交的《<font color='red'>" + material.getMaterialName() + "</font>》申报表被[<font color='red'>学校管理员</font>]退回,退回原因:" + returnCause + ",请您核对后重试";
if (isPass) {
// 通过
msgContent = "恭喜!您提交的《<font color='red'>" + material.getMaterialName() + "</font>》申报表已通过[<font color='red'>学校管理员</font>]审核";
}
}
// 存入消息主体
Message message = new Message(msgContent);
message = messageService.add(message);
String msg_id = message.getId();
// 发送消息
userMessageService.addUserMessage(new UserMessage(msg_id, messageTitle, new Short("0"), 0L, new Short("0"), declaration.getUserId(), new Short("2"), null));
// websocket推送页面消息
WebScocketMessage webScocketMessage = new WebScocketMessage(msg_id, Const.MSG_TYPE_0, 0L, "系统", Const.SENDER_TYPE_0, Const.SEND_MSG_TYPE_0, RouteUtil.DEFAULT_USER_AVATAR, messageTitle, msgContent, DateUtil.getCurrentTime());
List<String> userIds = new ArrayList<String>(1);
userIds.add("2_" + declaration.getUserId());
myWebSocketHandler.sendWebSocketMessageToUser(userIds, webScocketMessage);
}
Aggregations