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 + -
显示快捷键?