package com.iamberry.app.service;

import java.util.Date;
import java.util.List;

import org.springframework.stereotype.Service;

import com.iamberry.app.core.entity.Message;
import com.iamberry.app.core.entity.User;
import com.iamberry.app.core.serch.SerchParam;
import com.iamberry.app.face.MessageService;
import com.iamberry.wechat.core.entity.PageBean;

/**
 * LogService
 * 
 * @author Moon Cheng
 * @date 2016年3月23日 下午2:34:45
 */
@Service
public class MessageServiceImpl extends BaseService implements MessageService  {

	/**
	 * 查询符合条件的用户列表
	 * @return
	 */
	public List<User> selectUser(PageBean page){
		page.initRecordBegin();
		return messageMapper.selectUser(page);
	}
	
	/**
	 * 获取用户总条数
	 * @return
	 */
	public int selectUserCount(SerchParam params){
		return messageMapper.selectUserCount(params);
	}

	
	/**
	 * 修改一条消息
	 * @return 影响的行数
	 */
	public int updateMessage(Message message){
		return messageMapper.updateMessage(message);
	}
	
	/**
	 * 添加一条消息
	 * @return 影响的行数
	 */
	public int insertMessage(Message message){
		message.setCreate_date(new Date());//添加时间
		message.setIs_read(Long.valueOf("2"));//未读
		return messageMapper.insertMessage(message);
	}
	
	/**
	 * 获取符合条件所有消息的总条数
	 * @return 所有的消息条数
	 */
	public int selectMessageCount(SerchParam params){
		return messageMapper.selectMessageCount(params);
	}
	
	/**
	 * 获取符合条件所有消息
	 * @return 所有的消息
	 */
	public List<Message> selectMessageRecoreds(PageBean page){
		page.initRecordBegin();
		return messageMapper.selectMessageRecoreds(page);
	}

	
	/**
	 * 获取系统的所有消息
	 * @param userid 用户id
	 * @return 用户下所有的消息
	 */
	public List<Message> selectSysMessageRecoreds(){
		return messageMapper.selectSysMessageRecoreds();
	}
	
	/**
	 * 根据信息id获取信息实体类
	 * @param id 信息id
	 * @return 信息实体类
	 */
	public Message selectUserMessageByid(Long id){
		Message message = messageMapper.selectUserMessageByid(id);
		if (message == null) {
			return null;
		}
		//修改为已读
		message.setRead_date(new Date());
		message.setIs_read(Long.valueOf("1"));
		messageMapper.updateMessage(message);
		return message;
	}
	
	/**
	 * 根据用户id获取该用户的所有消息
	 * @param userid 用户id
	 * @return 用户下所有的消息
	 */
	public List<Message> selectUserMessageRecoreds(String token){
		
		User userInfo = validateUserToken(token);
		if (userInfo == null) {
			return null;
		}
		return messageMapper.selectUserMessageRecoreds(userInfo.getId());
	}
	
	/**
	 * 获取用户消息
	 * @param userid 用户id 
	 * @param isread 1已读，2 未读
	 * @return 用户消息集合
	 */
	public int selectUserMessageByisread(String token,
			 Long isread){
		User userInfo = validateUserToken(token);
		if (userInfo == null) {
			return -1;
		}
		
		return messageMapper.selectUserMessageByisread(userInfo.getId(),isread);
	}
}
