Search in sources :

Example 16 with Message

use of com.bc.pmpheep.general.po.Message 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;
}
Also used : UserMessage(com.bc.pmpheep.back.po.UserMessage) WebScocketMessage(com.bc.pmpheep.websocket.WebScocketMessage) Message(com.bc.pmpheep.general.po.Message) OrgUser(com.bc.pmpheep.back.po.OrgUser) ArrayList(java.util.ArrayList) CheckedServiceException(com.bc.pmpheep.service.exception.CheckedServiceException) UserMessage(com.bc.pmpheep.back.po.UserMessage) WebScocketMessage(com.bc.pmpheep.websocket.WebScocketMessage) WriterUser(com.bc.pmpheep.back.po.WriterUser)

Example 17 with Message

use of com.bc.pmpheep.general.po.Message 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);
}
Also used : UserMessage(com.bc.pmpheep.back.po.UserMessage) WebScocketMessage(com.bc.pmpheep.websocket.WebScocketMessage) Message(com.bc.pmpheep.general.po.Message) PmphGroupMemberVO(com.bc.pmpheep.back.vo.PmphGroupMemberVO) PmphGroup(com.bc.pmpheep.back.po.PmphGroup) ArrayList(java.util.ArrayList) CheckedServiceException(com.bc.pmpheep.service.exception.CheckedServiceException) UserMessage(com.bc.pmpheep.back.po.UserMessage) WebScocketMessage(com.bc.pmpheep.websocket.WebScocketMessage)

Example 18 with Message

use of com.bc.pmpheep.general.po.Message 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);
}
Also used : UserMessage(com.bc.pmpheep.back.po.UserMessage) WebScocketMessage(com.bc.pmpheep.websocket.WebScocketMessage) Message(com.bc.pmpheep.general.po.Message) ArrayList(java.util.ArrayList) CheckedServiceException(com.bc.pmpheep.service.exception.CheckedServiceException) Material(com.bc.pmpheep.back.po.Material) UserMessage(com.bc.pmpheep.back.po.UserMessage) WebScocketMessage(com.bc.pmpheep.websocket.WebScocketMessage) Declaration(com.bc.pmpheep.back.po.Declaration)

Example 19 with Message

use of com.bc.pmpheep.general.po.Message in project pmph by BCSquad.

the class SystemMessageService method sendWhenReceiptAudit.

/**
 * 出版社收到纸质表 审核
 *
 * @author Mryang
 * @createDate 2017年11月17日 下午5:08:49
 * @param declarationId
 * @param isPass
 *            true收到资质表 / false退回资质表
 * @throws CheckedServiceException
 * @throws IOException
 */
public void sendWhenReceiptAudit(Long declarationId, boolean isPass) 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 orgMsgContent = "抱歉,贵校老师[<font color='red'>" + declaration.getRealname() + "</font>]在《<font color='red'>" + material.getMaterialName() + "</font>》提交的申报纸质表被退回";
    String writerMsgContent = "抱歉,您在《<font color='red'>" + material.getMaterialName() + "</font>》提交的申报纸质表被退回,请您核对后重试";
    if (isPass) {
        // 收到
        orgMsgContent = "您好,人民卫生出版社已收到贵校老师[<font color='red'>" + declaration.getRealname() + "</font>]在《<font color='red'>" + material.getMaterialName() + "</font>》提交的申报纸质表";
        writerMsgContent = "您好,人民卫生出版社已收到您在《<font color='red'>" + material.getMaterialName() + "</font>》提交的申报纸质表,感谢您的参与,请耐心等待遴选结果";
    } else {
        // 取消收到
        orgMsgContent = "抱歉,贵校老师[<font color='red'>" + declaration.getRealname() + "</font>]在《<font color='red'>" + material.getMaterialName() + "</font>》提交的申报纸质表被退回";
        writerMsgContent = "抱歉,您在《<font color='red'>" + material.getMaterialName() + "</font>》提交的申报纸质表被退回,请您核对后重试";
    }
    // 存入消息主体
    Message orgUserMessage = new Message(orgMsgContent);
    orgUserMessage = messageService.add(orgUserMessage);
    String orgMsg_id = orgUserMessage.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>(1);
    for (OrgUser orgUser : OrgUserList) {
        userMessageList.add(new UserMessage(orgMsg_id, messageTitle, new Short("0"), 0L, new Short("0"), orgUser.getId(), new Short("3"), null));
        userIds.add("3_" + orgUser.getId());
    }
    // 有学校管理员发信息
    if (null != OrgUserList && OrgUserList.size() > 0) {
        // 发送消息给管理员
        userMessageService.addUserMessageBatch(userMessageList);
        // websocket推送页面消息
        WebScocketMessage webScocketMessage = new WebScocketMessage(orgMsg_id, Const.MSG_TYPE_0, 0L, "系统", Const.SENDER_TYPE_0, Const.SEND_MSG_TYPE_0, RouteUtil.DEFAULT_USER_AVATAR, messageTitle, orgMsgContent, DateUtil.getCurrentTime());
        myWebSocketHandler.sendWebSocketMessageToUser(userIds, webScocketMessage);
    }
    // ------------------------给申报者发送消息--------------------
    // 存入消息主体
    Message writerUserMessage = new Message(writerMsgContent);
    writerUserMessage = messageService.add(writerUserMessage);
    String writerMsg_id = writerUserMessage.getId();
    // 发送消息给申报者
    userMessageService.addUserMessage(new UserMessage(writerMsg_id, messageTitle, new Short("0"), 0L, new Short("0"), declaration.getUserId(), new Short("2"), null));
    // websocket推送页面消息
    WebScocketMessage webScocketMessage = new WebScocketMessage(writerMsg_id, Const.MSG_TYPE_0, 0L, "系统", Const.SENDER_TYPE_0, Const.SEND_MSG_TYPE_0, RouteUtil.DEFAULT_USER_AVATAR, messageTitle, writerMsgContent, DateUtil.getCurrentTime());
    userIds = new ArrayList<String>(1);
    userIds.add("2_" + declaration.getUserId());
    myWebSocketHandler.sendWebSocketMessageToUser(userIds, webScocketMessage);
}
Also used : UserMessage(com.bc.pmpheep.back.po.UserMessage) WebScocketMessage(com.bc.pmpheep.websocket.WebScocketMessage) Message(com.bc.pmpheep.general.po.Message) OrgUser(com.bc.pmpheep.back.po.OrgUser) ArrayList(java.util.ArrayList) CheckedServiceException(com.bc.pmpheep.service.exception.CheckedServiceException) Material(com.bc.pmpheep.back.po.Material) UserMessage(com.bc.pmpheep.back.po.UserMessage) WebScocketMessage(com.bc.pmpheep.websocket.WebScocketMessage) Declaration(com.bc.pmpheep.back.po.Declaration)

Example 20 with Message

use of com.bc.pmpheep.general.po.Message in project pmph by BCSquad.

the class SystemMessageService method sendWhenPositionChooserLoss.

/**
 * 给教材已结束并且未遴选上的作家推送消息
 *
 * @param materialId
 * @param declaration
 * @throws CheckedServiceException
 * @throws IOException
 */
public void sendWhenPositionChooserLoss(Long materialId, List<Declaration> declarations) throws CheckedServiceException, IOException {
    Material material = materialService.getMaterialById(materialId);
    if (ObjectUtil.isNull(material)) {
        throw new CheckedServiceException(CheckedExceptionBusiness.MATERIAL, CheckedExceptionResult.ILLEGAL_PARAM, "教材为空");
    }
    String msg = null;
    if (material.getIsAllTextbookPublished() && declarations.size() > 0) {
        msg = "《<font color='red'>" + material.getMaterialName() + "</font>》教材遴选已结束,未选中,感谢您的支持与参与。";
    }
    // 当消息不为空时才进行下面操作
    if (StringUtil.notEmpty(msg)) {
        // 存入消息主体
        Message message = new Message(msg);
        message = messageService.add(message);
        String msg_id = message.getId();
        for (Declaration declaration : declarations) {
            // 发送消息给申报者
            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, msg, DateUtil.getCurrentTime());
            List<String> userIds = new ArrayList<String>(1);
            userIds.add("2_" + declaration.getUserId());
            myWebSocketHandler.sendWebSocketMessageToUser(userIds, webScocketMessage);
        }
    }
}
Also used : UserMessage(com.bc.pmpheep.back.po.UserMessage) WebScocketMessage(com.bc.pmpheep.websocket.WebScocketMessage) Message(com.bc.pmpheep.general.po.Message) ArrayList(java.util.ArrayList) Material(com.bc.pmpheep.back.po.Material) CheckedServiceException(com.bc.pmpheep.service.exception.CheckedServiceException) UserMessage(com.bc.pmpheep.back.po.UserMessage) WebScocketMessage(com.bc.pmpheep.websocket.WebScocketMessage) Declaration(com.bc.pmpheep.back.po.Declaration)

Aggregations

Message (com.bc.pmpheep.general.po.Message)27 UserMessage (com.bc.pmpheep.back.po.UserMessage)21 CheckedServiceException (com.bc.pmpheep.service.exception.CheckedServiceException)20 WebScocketMessage (com.bc.pmpheep.websocket.WebScocketMessage)20 ArrayList (java.util.ArrayList)19 Declaration (com.bc.pmpheep.back.po.Declaration)7 Material (com.bc.pmpheep.back.po.Material)7 OrgUser (com.bc.pmpheep.back.po.OrgUser)7 PmphUser (com.bc.pmpheep.back.po.PmphUser)6 WriterUser (com.bc.pmpheep.back.po.WriterUser)5 BaseTest (com.bc.pmpheep.test.BaseTest)4 Test (org.junit.Test)4 MessageAttachment (com.bc.pmpheep.back.po.MessageAttachment)3 PmphGroup (com.bc.pmpheep.back.po.PmphGroup)3 Textbook (com.bc.pmpheep.back.po.Textbook)3 PageResult (com.bc.pmpheep.back.plugin.PageResult)2 CmsContent (com.bc.pmpheep.back.po.CmsContent)2 DecPosition (com.bc.pmpheep.back.po.DecPosition)2 DecPositionPublished (com.bc.pmpheep.back.po.DecPositionPublished)2 MyMessageVO (com.bc.pmpheep.back.vo.MyMessageVO)2