⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 messageserviceimpl.java

📁 oa办公系统
💻 JAVA
字号:
/**
 * FileName:MessageServerImpl.java,v 1.0 created in 2008-11-7 下午02:55:57
 * Created by Ruf
 * Copyright (c) 2008 wanczy
 * All Rights Reserved.
 */


package cn.jx.ecjtu.oa.services.impl;
import cn.jx.ecjtu.oa.ps.pojo.Message;
import cn.jx.ecjtu.oa.services.MessageService;
import cn.jx.ecjtu.oa.services.Result;  
import cn.jx.ecjtu.oa.services.ResultType;

import cn.jx.ecjtu.oa.ps.dao.DaoFactory;
import cn.jx.ecjtu.oa.ps.dao.MessageDao;

import java.sql.Timestamp;
import java.util.List;

//import cn.jx.ecjtu.oa.services.ServiceFactory;//test

import cn.jx.ecjtu.oa.services.ServiceFactory;
/**
 * @todo:Description
 * @author Ruf
 * @version $Revision: 1.23 $
 * @since 1.0
 */

public class MessageServiceImpl implements MessageService
{
	private MessageDao msgDao = null;
	
	public MessageServiceImpl()
	{
		msgDao = (MessageDao)DaoFactory.getDao(MessageDao.class);
		if(msgDao == null)
		{
			System.out.println("createWrong!");
		}
	}
		
//通过测试
	public boolean cleanMsg() {
		System.out.println(msgDao.findNewMsgId());
		// TODO Auto-generated method stub
		boolean ret = false;
		try
		{
			ret = msgDao.cleanMsg();
		}
		catch(Exception e)
		{
			ret = false;
		}
		return ret;
	}
// 通过测试
	public boolean delAccMsg(int accId, int msgId) {
		// TODO Auto-generated method stub
		boolean ret = false;
		try
		{
			ret = msgDao.delAccMsg(accId,msgId);
			int num = msgDao.getAccNum(msgId);
			num--;
			if(num < 0)
			{
				num = 0;
			}
			msgDao.updateAccNum(num, msgId);
		}
		catch(Exception e)
		{
			ret = false;
		}
		return ret;
	}
//通过测试
	public boolean delSendMsg(int msgId) {
		// TODO Auto-generated method stub
		boolean ret = false;
		try
		{
			ret = msgDao.delSendMsg(msgId);
		}
		catch(Exception e)
		{
			ret = false;
		}
		return ret;
	}
//通过测试
	public Result getAccMsg(int accId, int page) {
		// TODO Auto-generated method stub
		
		Result result = null;
		
		int num = 10;
		int offset = 0;//查询的偏移位置
		int pages = 0;//共有多少页
		int currentPage = 0;//当前页
		int numMsg = msgDao.getNumAccMsg(accId);
		if(numMsg <= 0)
		{
			return null;
		}
		if(numMsg%10 == 0)
		{
			pages = numMsg/10;
			if(page <= 0)
			{
				currentPage = 1;
			}
			else if(page > pages)
			{
				currentPage = pages;
			}
			else
			{
				currentPage = page;
			}
			num = 10;
		}
		else
		{
			pages = numMsg/10+1;
			if(page <= 0)
			{
				currentPage = 1;
				if(numMsg > 10)
				{
					num = 10;
				}
				else
				{
					num = numMsg;
				}
			}
			else if(page >= pages)
			{
				currentPage = pages;
				num = numMsg%10;
			}
			else
			{
				currentPage = page;
				num = 10;
			}
		}
		offset = (currentPage-1)*10;
		List<Message> msgList = msgDao.getAccMsg(accId, offset, num);
		if(msgList.size() == 0)
		{
			result = new Result(ResultType.RET_FAIL, "查询失败!");
			return result;
		}
		else
		{
			result = new Result(ResultType.RET_SUCCESS, "成功查出信息");
			result.setAttribute("listMessage", msgList);
			result.setAttribute("numMsg", numMsg);
			result.setAttribute("numPages", pages);
			result.setAttribute("currentPage", currentPage);
		}
		return result;
	}
//通过测试
	public Result getNewAccMsg(int accId) {
		// TODO Auto-generated method stub
		List<Message>msgList = msgDao.findNewMsgById(accId);
		Result result = null;
		if(msgList.size() > 0)
		{
			result = new Result(ResultType.RET_SUCCESS, "成功查出信息!");
			result.setAttribute("message", msgList.get(0));
			result.setAttribute("msgNum", msgList.size());
		}
		else
		{
			result = new Result(ResultType.RET_FAIL, "查询失败!");
		}
		return result;
	}
//通过测试
	public Result getSendMsg(int sendId, int page) {
		// TODO Auto-generated method stub
		
		int num = 10;
		int offset = 0;
		int pages = 0;
		int currentPage = 0;
		int numMsg = msgDao.getNumSendedMsg(sendId);
		if(numMsg <= 0)
		{
			return null;
		}
		if(numMsg%10 == 0)
		{
			pages = numMsg/10;
			if(page <= 0)
			{
				currentPage = 1;
			}
			else if(page > pages)
			{
				currentPage = pages;
			}
			else
			{
				currentPage = page;
			}
			num = 10;
		}
		else
		{
			pages = numMsg/10+1;
			if(page <= 0)
			{
				currentPage = 1;
				if(numMsg > 10)
				{
					num = 10;
				}
				else
				{
					num = numMsg;
				}
			}
			else if(page >= pages)
			{
				currentPage = pages;
				num = numMsg%10;
			}
			else
			{
				currentPage = page;
				num = 10;
			}
		}
		offset = (currentPage-1)*10;
		List<Message> msgList = msgDao.findSendedMessage(sendId, offset, num);
		
		Result result = null;
		if(msgList.size() == 0)
		{
			result = new Result(ResultType.RET_FAIL, "查询失败!");
			return result;
		}
		else
		{
			result = new Result(ResultType.RET_SUCCESS, "成功查出信息");
			result.setAttribute("listMsg", msgList);
			result.setAttribute("msgNum", numMsg);
			result.setAttribute("numPages", pages);
			result.setAttribute("currentPage", currentPage);
		}
		return result;
	}

//	通过测试。。
	public boolean hasNewMsg(int accId) {
		// TODO Auto-generated method stub
		boolean ret = true;
		List<Message> list = null;
		try
		{
			list = msgDao.findNewMsgById(accId);
		}
		catch(Exception e)
		{
			ret = false;
		}
		if(list.size() == 0)
			ret = false;
		return ret;
	}
//通过测试
	public boolean sendMsg(Message msg, int[] accIds) 
	{
		// TODO Auto-generated method stub
		boolean ret = true;
		try
		{
			if(!msgDao.addsendmessage(msg))
			{
				ret = false;
			}

			int num = 0;
			long msgid = msgDao.findNewMsgId();
			//System.out.println(msgid);
			for(int i=0; i<accIds.length; i++)
			{
				if(msgDao.addAcceptMessage(msgid, accIds[i]))
				{
					num++;
				}
			}
			ret = msgDao.updateAccNum(num, msgid);
		}
		catch(Exception e)
		{
			return false;
		}
		if(msgDao.getTypeNameById(msg.getMsgTypeId()) == null)
		{
			try
			{
				msgDao.addMsgType(msg.getMsgTypeId(),"未知消息类型",
						msg.getMsgImagePath(), msg.getMsgUrl());
			}
			catch(Exception e)
			{
				System.out.println("插入新消息类型失败!");
				ret = false;
			}
		}
		return ret;	
	}

	public void readMsg(int accId, int msgId) {
		try
		{
			msgDao.setReadState(accId, msgId);
		}
		catch(Exception e)
		{
			
		}
	}

	public boolean sendMsg(int msgTyped, int sendId, String msgInfo, int[] accIds) {
		// TODO Auto-generated method stub
		boolean ret = true;
		Timestamp sendtime=new Timestamp(System.currentTimeMillis());	
		String msgName = null;
		try
		{
			msgName = msgDao.getTypeNameById(msgTyped);
		}
		catch(Exception e)
		{
			msgName = null;
		}
        Message msg= new Message(0, msgTyped, sendId,  sendtime,  msgInfo, false,  msgName, "",  "");
		ret= sendMsg(msg, accIds);
		if(msgTyped != 1)
		{
			long msgId = msgDao.findNewMsgId();
			msgDao.delSendMsg(msgId);
		}
		return ret;
	}

	public boolean sendMsg(int msgTyped, int sendId, String msgInfo, String msgTypeName, String msgImagePath, String msgUrl, int[] accIds) {
		// TODO Auto-generated method stub
		boolean ret = true;
		Timestamp sendtime=new Timestamp(System.currentTimeMillis());
		String msgName = null;
		try
		{
			msgName = msgDao.getTypeNameById(msgTyped);
		}
		catch(Exception e)
		{
			msgName = null;
		}
        Message msg= new Message(0, msgTyped, sendId,  sendtime,  msgInfo, false,  msgName, msgImagePath,  msgUrl);
		ret = sendMsg(msg, accIds);
		if(msgTyped != 1)
		{
			long msgId = msgDao.findNewMsgId();
			msgDao.delSendMsg(msgId);
		}
		return ret;
	}
	
	public List<Message> newMsg(int userId,int maxMsgId){
		return msgDao.getNewAccMsg(userId, maxMsgId); 		
	}



	
/*	public static void main(String arr[])
	{
		MessageService m = (MessageService)ServiceFactory.getService(MessageService.class);
		
		/*Timestamp sendtime=new Timestamp(System.currentTimeMillis());	
        Message msg= new Message(0, 1, 1,  sendtime,  "111", false,  "12", "21",  "21");
        int accIds[] = new int[2];
        accIds[0] = 1;
        accIds[1] = 2;
        m.sendMsg(msg, accIds);
		m.getSendMsg(2, 14);		
	}*/
}
		//Result rs = m.getAccMsg(3, 0);
		//int n = (Integer)rs.getAttribute("numMsg");
		//System.out.print(n);
		//m.delAccMsg(1, 10);
		/*if(m.hasNewMsg(4))
		{
			System.out.print("11");
		}*/
		//m.cleanMsg();
		//m.delAccMsg(accId, msgId);
		//当前页消息列表(“listMessage”),消息条数("numMsg"),总页数("numPages"),当前所在页("currentPage")
		/*Result rs = m.getAccMsg(3, 3);
		int numMsg = (Integer)rs.getAttribute("numMsg");
		int numPages = (Integer)rs.getAttribute("numPages");
		int currentPage = (Integer)rs.getAttribute("currentPage");
		List<Message> msgList = (List<Message>)rs.getAttribute("listMessage");
		System.out.println(numMsg);
		System.out.println(numPages);
		System.out.println(currentPage);
		for(int i=0; i<msgList.size(); i++)
		{
			System.out.println(msgList.get(i).getMsgId());
			System.out.println(msgList.get(i).getMsgImagePath());
			System.out.println(msgList.get(i).getMsgInfo());
			System.out.println(msgList.get(i).getMsgTypeName());
		}*/
		//最新的消息(“message”),未读消息的总数("msgNum")
		/*Result rs = m.getNewAccMsg(3);
		int num = (Integer)rs.getAttribute("msgNum");
		System.out.println(num);
		Message msg = (Message)rs.getAttribute("message");
		System.out.println(msg.getMsgId());
		System.out.println(msg.getMsgImagePath());
		System.out.println(msg.getMsgInfo());
		System.out.println(msg.getMsgTypeName());*/
		//当前消息列表(“listMsg”),消息总数("msgNum"),消息总页数("numPages"),当前所在页("currentPage")
		/*Result rs = m.getSendMsg(2, 1);
		List<Message> msgList = (List<Message>)rs.getAttribute("listMsg");
		System.out.println(msgList.size());*/
	//}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -