use of com.bc.pmpheep.general.po.Message in project pmph by BCSquad.
the class SystemMessageService method sendWhenDeclarationFormAuditToOrgUser.
/**
* 人卫社审核教材申报表 向机构用户发送信息
*
* @introduction
* @author Mryang
* @createDate 2018年1月22日 上午10:12:34
* @param declarationId
* @param isPass
* @param returnCause 退回原因
* @param onlineProgress 4 == 退回给学校,5 == 退回给个人
* @throws CheckedServiceException
* @throws IOException
*/
public void sendWhenDeclarationFormAuditToOrgUser(Long declarationId, boolean isPass, String returnCause, Integer onlineProgress) 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 = null;
if (isPass) {
// 通过
msgContent = "恭喜!您校[" + declaration.getRealname() + "]提交的《<font color='red'>" + material.getMaterialName() + "</font>》申报表已通过[<font color='red'>出版社</font>]审核";
} else {
// 出版社退回给学校==4
if (4 == onlineProgress.intValue()) {
msgContent = "抱歉!您校[" + declaration.getRealname() + "]提交的《<font color='red'>" + material.getMaterialName() + "</font>》申报表被[<font color='red'>出版社</font>]退回,退回原因:" + returnCause + ",请核对后重试";
} else if (5 == onlineProgress.intValue()) {
// 出版社退回给个人==5
msgContent = "抱歉!您提交的《<font color='red'>" + material.getMaterialName() + "</font>》申报表被[<font color='red'>出版社</font>]退回,退回原因:" + returnCause + ",请您核对后重试";
}
}
WebScocketMessage webScocketMessage = null;
List<String> userIds = null;
if (4 == onlineProgress.intValue()) {
// 获取机构用户
List<Long> orgIds = new ArrayList<Long>(1);
if (CollectionUtil.isEmpty(orgIds) || orgIds.size() == 0) {
orgIds.add(declaration.getOrgId());
}
List<OrgUser> orgUserList = orgUserService.getOrgUserListByOrgIds(orgIds);
// 存入消息主体
Message message = new Message(msgContent);
message = messageService.add(message);
String msg_id = message.getId();
// 消息集合
List<UserMessage> userMessageList = new ArrayList<UserMessage>();
userIds = new ArrayList<String>();
for (OrgUser orgUser : orgUserList) {
userMessageList.add(new // 消息内容id
UserMessage(// 消息内容id
msg_id, // 消息标题
messageTitle, // 消息类型
new Short("0"), // 发送者id 0- 系统
0L, // 发送者类型 0- 系统
new Short("0"), // 接收者id
orgUser.getId(), // 接收者类型 (3- 机构用户 )
new Short("3"), // 教材id
null));
userIds.add("3_" + orgUser.getId().toString());
}
// 发送消息
// 批量插入消息
userMessageService.addUserMessageBatch(userMessageList);
// websocket推送页面消息
webScocketMessage = new // 消息id
WebScocketMessage(// 消息id
msg_id, // 消息类型 0=系统消息/1=站内群发/2=站内私信(作家和机构用户不能群发)/3 小组互动
Const.MSG_TYPE_0, // 发送者id 0=系统/其他=用户id
0L, // 发送者姓名
"系统", // 发送者类型 0=系统/1=社内用户/2=作家用户/3=机构用户
Const.SENDER_TYPE_0, // 发送类型 0 新增 1 撤回 2 删除
Const.SEND_MSG_TYPE_0, // 头像
"", // 消息标题
messageTitle, // 消息内容
msgContent, // 发送时间
DateUtil.getCurrentTime());
} else if (5 == onlineProgress.intValue()) {
// 存入消息主体
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 = 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());
userIds = new ArrayList<String>(1);
userIds.add("2_" + declaration.getUserId());
}
myWebSocketHandler.sendWebSocketMessageToUser(userIds, webScocketMessage);
}
use of com.bc.pmpheep.general.po.Message in project pmph by BCSquad.
the class MessageService method update.
/**
* 更新Message对象
*
* @param message 消息对象
*/
public void update(Message message) {
if (null == message) {
throw new CheckedServiceException(CheckedExceptionBusiness.MESSAGE, CheckedExceptionResult.NULL_PARAM, "消息更新对象为空");
}
if (null == message.getId() || message.getId().isEmpty()) {
throw new CheckedServiceException(CheckedExceptionBusiness.MESSAGE, CheckedExceptionResult.NULL_PARAM, "消息更新对象id为空");
}
if (null == message.getContent() || message.getContent().isEmpty()) {
throw new CheckedServiceException(CheckedExceptionBusiness.MESSAGE, CheckedExceptionResult.NULL_PARAM, "消息更新对象内容为空");
}
Message msg = get(message.getId());
if (null == msg) {
throw new CheckedServiceException(CheckedExceptionBusiness.MESSAGE, CheckedExceptionResult.OBJECT_NOT_FOUND, "未找到更新对象");
}
msg.setContent(message.getContent());
messageDao.save(msg);
}
use of com.bc.pmpheep.general.po.Message in project pmph by BCSquad.
the class UserMessageServiceImpl method listMessage.
@Override
public PageResult<UserMessageVO> listMessage(PageParameter<UserMessageVO> pageParameter, String sessionId) throws CheckedServiceException {
PmphUser pmphUser = SessionUtil.getPmphUserBySessionId(sessionId);
if (ObjectUtil.isNull(pmphUser)) {
throw new CheckedServiceException(CheckedExceptionBusiness.MESSAGE, CheckedExceptionResult.NULL_PARAM, "用户为空");
}
if (ObjectUtil.isNull(pmphUser.getId())) {
throw new CheckedServiceException(CheckedExceptionBusiness.MESSAGE, CheckedExceptionResult.NULL_PARAM, "用户为空");
}
// 如果是系统管理员,则查询所有,否则查询对应的消息
if (Const.FALSE == pmphUser.getIsAdmin()) {
List<Long> ids = new ArrayList<Long>();
// 如果是主任,获取主任所在部门下的所有用户
if (Const.TRUE == pmphUser.getIsDirector()) {
// 社内部门父级节点ID
Long parentId = 1L;
PmphDepartment pmphDepartment = pmphDepartmentService.getPmphDepartmentById(pmphUser.getDepartmentId());
// 如果是父级部门主任,则可以查看子级部门下的所有用户发送的消息
if (parentId.longValue() == pmphDepartment.getParentId().longValue()) {
PageParameter<PmphUserManagerVO> parameter = new PageParameter<>(1, 2000);
PmphUserManagerVO pmphUserManagerVO = new PmphUserManagerVO();
pmphUserManagerVO.setPath(pmphDepartment.getPath());
pmphUserManagerVO.setDepartmentId(pmphDepartment.getId());
parameter.setParameter(pmphUserManagerVO);
PageResult<PmphUserManagerVO> listPageResult = pmphUserService.getListPmphUser(parameter, null);
List<PmphUserManagerVO> listPmphUserManagerVOs = listPageResult.getRows();
for (PmphUserManagerVO pmManagerVO : listPmphUserManagerVOs) {
ids.add(pmManagerVO.getId());
}
} else {
// 如果是子级部门主任,则只可以查看子级部门下的用户发送的消息
List<PmphUser> pmphUsers = pmphUserService.listPmphUserByDepartmentId(pmphUser.getDepartmentId());
if (CollectionUtil.isNotEmpty(pmphUsers)) {
for (PmphUser user : pmphUsers) {
ids.add(user.getId());
}
}
}
} else {
ids.add(pmphUser.getId());
}
pageParameter.getParameter().setSenderIds(ids);
}
PageResult<UserMessageVO> pageResult = new PageResult<>();
PageParameterUitl.CopyPageParameter(pageParameter, pageResult);
Integer total = userMessageDao.getMessageTotal(pageParameter);
if (total > 0) {
List<UserMessageVO> list = userMessageDao.listMessage(pageParameter);
Message message;
for (UserMessageVO userMessageVO : list) {
message = messageService.get(userMessageVO.getMsgId());
if (ObjectUtil.notNull(message)) {
userMessageVO.setContent(message.getContent());
}
}
pageResult.setRows(list);
pageResult.setTotal(total);
}
return pageResult;
}
use of com.bc.pmpheep.general.po.Message in project pmph by BCSquad.
the class MessageServiceTest method createMessages.
private List<Message> createMessages(int number) {
List<Message> list = new ArrayList<>();
for (int i = 0; i < number; i++) {
Message message = new Message(str + " " + String.valueOf(i));
list.add(message);
}
return list;
}
use of com.bc.pmpheep.general.po.Message in project pmph by BCSquad.
the class MessageServiceTest method list.
@Test
@SuppressWarnings("deprecation")
public void list() {
int number = 10;
List<Message> list = createMessages(number);
List<String> ids = new ArrayList<>();
for (Message message : list) {
Message added = messageService.add(message);
ids.add(added.getId());
}
list = messageService.list(ids);
messageService.removeAll();
Assert.assertTrue("插入消息后返回的集合大小应为" + String.valueOf(number), list.size() == number);
for (Message message : list) {
logger.info("取得的List<Message>包含对象:id={}, content={}", message.getId(), message.getContent());
}
}
Aggregations