📄 messageserviceimpl.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 + -