reckonserviceimpl.java

来自「电信计费项目 该系统在Sun Solaris下开发,运行于Apache Tom」· Java 代码 · 共 171 行

JAVA
171
字号
package com.tarena.netctoss.model.biz;import java.util.*;import java.sql.*;import com.tarena.netctoss.model.biz.entity.*;import com.tarena.netctoss.model.persist.*;import com.tarena.util.*;public class ReckonServiceImpl implements IReckonService {	public List findAllByDay(String user_login_name, int year, int month) {		Connection con = JDBCFactoryManager.getConnection();		List lists = null;		IReckonDAO dao = DAOFactory.getReckonDAO();		try {			con.setAutoCommit(false);			List list=dao.findAllByDay(user_login_name, year, month);			List<ServiceUser> s_users=dao.findAllByName(user_login_name);			con.commit();			lists = doProcessDay(list, s_users);		} catch (Exception e) {			e.printStackTrace();			try {				if(con!=null)					con.rollback();			} catch (SQLException e1) {				e1.printStackTrace();			}		} finally{			JDBCFactoryManager.release(con);		}		return lists;	}	public List findAllByMonth(String user_login_name, int year, int month) {		Connection con = JDBCFactoryManager.getConnection();		List lists = null;		IReckonDAO dao = DAOFactory.getReckonDAO();		try {			con.setAutoCommit(false);			List list= dao.findAllByMonth(user_login_name, year, month);			List<User> users = dao.findByName(user_login_name);			con.commit();			lists = doProcessMonth(list,users);		} catch (Exception e) {			e.printStackTrace();			try {				if(con!=null)					con.rollback();			} catch (SQLException e1) {				e1.printStackTrace();			}		} finally{			JDBCFactoryManager.release(con);		}		return lists;	}	public List findAllByMonth(int year,int month){		Connection con = JDBCFactoryManager.getConnection();		List lists = null;		IReckonDAO dao = DAOFactory.getReckonDAO();		try {			con.setAutoCommit(false);			List list=dao.findAllByMonth(year, month);			List<User> users = dao.findAll();			con.commit();			lists = doProcessMonth(list,users);		} catch (Exception e) {			e.printStackTrace();			try {				if(con!=null)					con.rollback();			} catch (SQLException e1) {				e1.printStackTrace();			}		} finally{			JDBCFactoryManager.release(con);		}		return lists;	}		@SuppressWarnings("unchecked")	private List doProcessMonth(List list,List<User> users){		List lists = new ArrayList();		for(User user: users){			double time = 0.0;			double total =0.0;			boolean flag1=false;			boolean flag2=false;			boolean flag3=false;			boolean flag4=false;			boolean flag5=false;         boolean flag6=false;			Iterator it = list.iterator();			while(it.hasNext()){				UserSelf self = (UserSelf)it.next();				if(user.getUser_id().equals(self.getUser_id())){					time+=self.getTime_duration()/60;					if(self.getLab_ip().equals("192.168.0.21") && !flag1){						total +=self.getBase_fee();						flag1=true;					}					if(self.getLab_ip().equals("192.168.0.22") && !flag2){						total +=self.getBase_fee();						flag2=true;					}					if(self.getLab_ip().equals("192.168.0.23") && !flag3){						total +=self.getBase_fee();						flag3=true;					}					if(self.getLab_ip().equals("192.168.0.24") && !flag4){						total +=self.getBase_fee();						flag4=true;					}					if(self.getLab_ip().equals("192.168.0.25") && !flag5){						total +=self.getBase_fee();						flag5=true;					}               if(self.getLab_ip().equals("172.16.0.6") && !flag6){                  total +=self.getBase_fee();                  flag6=true;                                        }					total+=(self.getTime_duration()/60)*self.getRate_fee();				}			}			ReckonProcess reckon = new ReckonProcess();			reckon.setTime(time);			reckon.setTotal(total);			reckon.setUser(user);			lists.add(reckon);		}		return lists;	}		@SuppressWarnings("unchecked")	private List doProcessDay(List lists,List<ServiceUser> s_users){		List[] list=new ArrayList[s_users.size()];		double[] time = new double[s_users.size()];		double[] total = new double[s_users.size()];		int i=0;		List<UserSelfProcess> userSelf = new ArrayList<UserSelfProcess>();		for(ServiceUser s_user : s_users){			Iterator it = lists.iterator();			boolean flag=false;			list[i] = new ArrayList();			time[i]=0.0;			total[i]=0.0;			while(it.hasNext()){				UserDetail detail = (UserDetail)it.next();				if(detail.getLogin_name().equals(s_user.getLab_login_name())){					list[i].add(detail);					time[i]+=detail.getTime_duration();					if(!flag){						total[i]+=detail.getBase_fee();						flag=true;					}					total[i]+=detail.getRate_fee()*(detail.getTime_duration()/60);				}			}			UserSelfProcess self = new UserSelfProcess();			self.setDetails(list[i]);			self.setS_user(s_user);			self.setTime(time[i]/60);			self.setTotal(total[i]);			userSelf.add(self);			i++;		}		return userSelf;	}}

⌨️ 快捷键说明

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