消息推送(选择全部用户和部分用户的保存)

1、前端页面参考千百回项目的(message/add.ftl)

2、Controller层代码的保存。这里分为部分用户和全部用户,选择不同保存的时候添加到消息推送表中的用户id是不一样的,当选择全部用户的时候就需要把当前的消息推送给所有的用户;当选择部分用户的时候需要把添加的该条消息推送给选择的用户。在消息推送表中只要用户id和消息的id。

 

Controller层的代码:

	/**消息实体和用户的id
	 * 保存
	 */
	@RequestMapping(value = "/save", method = RequestMethod.POST)
	public String save(Message message, RedirectAttributes redirectAttributes,String userId) {
		messageService.savePushMsg(message, userId);
		addFlashMessage(redirectAttributes, SUCCESS_MESSAGE);
		return "redirect:list.jhtml";
	}

Service层代码:
 public void savePushMsg(Message message, String userId);

ServiceImpl层代码:
@Override
	public void savePushMsg(Message message, String userId) {
		message.setType(Message.Type.System);
     //保存的是当前添加的该条消息
		messageDao.insert(message);
      //如果选择的是全部用户 ,就把当前用户的所有id存储到消息推送表中    
		if(message.getPushObj() == Message.PushObj.All) {
			messageDao.pushToAll(message.getId());
		}else {
        //当前用户的id是String类型
			String[] userIds = userId.split(",");
			messageDao.pushToPart(message.getId(), userIds);
		}
	}


dao层代码:
    public long pushToAll(Long id);
	public long pushToPart(@Param("id")Long id, @Param("userIds")String[] userIds);



 

xml文件代码:

		insert into t_message_push(user_id,message_id)
		select id user_id,#{id} message_id from t_app_user where status=1
	
	
		insert into t_message_push(user_id,message_id)
		values
		
			(#{userId},#{id})
		
	

 

你可能感兴趣的:(消息推送(选择全部用户和部分用户的保存))