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

📄 createlastlog.java

📁 一个日本流行的,功能较全的开源Web办公管理(Groupware)系统。
💻 JAVA
字号:
package jp.co.sjts.gsession.main;

/*
 * 嵟廔儘僌僀儞帪娫堦棗  CreateLastlog.java
 * Copyright (C) 1999-2000 Japan Total System Co,LTD
 *	  Satoru K	   	<koni@sjts.co.jp>
 *	  Masakatu O	<ookubo@sjts.co.jp>
 */

import java.util.Iterator;
import java.util.Hashtable;
import java.util.Arrays;
import java.util.Vector;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import jp.co.sjts.gsession.tools.*;

public class CreateLastlog extends CreatePage {

	private final String title = "嵟廔儘僌僀儞帪娫";
	private final String bgcolor = "#ffffff";
	private final String text = "#000000";
	private final String link = "#0000ff";
	private final String alink = "#800080";
	private final String vlink = "#0000ff";

	private final int ID = 0;
	private final int NAME = 1;
	private final int LASTLOG = 2;
	private final int DATEKEY = 3;

	private Hashtable hsPara;
	private String mapURL = null;
	private IUserManager UM;

	public CreateLastlog(Hashtable hsPara,String mapURL,IUserManager UM) {
		this.hsPara = hsPara;
		this.mapURL = mapURL;
		this.UM = UM;
	}


	protected boolean writePage(HttpServletRequest req,HttpServletResponse res) throws GSException {
		String url = GSTool.removeParaFormURI(req.getRequestURI());
		HttpSession session = req.getSession(false);
		Integer sessionUID = (Integer)session.getAttribute(GSBase.SESSION_PARA_UID);
		int dfgid = 0;
		if(sessionUID.intValue()>0) {	
			IUser iuser = UM.getUser(sessionUID.intValue());
			dfgid = iuser.getDefaultGroup();
		}

		setCharset("iso-2022-jp");
		setTitle(title);
		setBodyColor(bgcolor,text,link,vlink,alink);

		/* 僞僀僩儖 */
		addBodyString("<TABLE WIDTH=\"100%\" BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"3\">");
		addBodyString("<TR BGCOLOR=\"#000080\">");
		addBodyString("<TD><FONT COLOR=\"#ffffff\"><B>"+title+"</B></FONT></TD>");
		addBodyString("<TD ALIGN=\"right\"><A HREF=\""+url+"?"+GSCmd.GS_PARA_CMD+"="+GSCmd.GS_ADMINTOOL+"\">");
		addBodyString("  <IMG SRC=\""+mapURL+GSFilename.GS_AD_TOOL_BACK
					  +"\" ALT=\"娗棟幰僣乕儖傊栠傞\" WIDTH=\"173\" HEIGHT=\"28\" BORDER=\"0\"></A></TD>");
		addBodyString("</TR>");
		addBodyString("</TABLE>");

		/* 僐儞儃 */
		/* 僌儖乕僾悢暘儖乕僾 */
		addBodyString("<TABLE WIDTH=\"100%\" BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"0\">");
		addBodyString("<TR>");
		addBodyString("<FORM METHOD=\"post\" ACTION=\""+url+"\">");
		addBodyString("<INPUT TYPE=\"hidden\" NAME=\""+GSCmd.GS_PARA_CMD+"\" VALUE=\""+GSCmd.GS_LASTLOG+"\">");
		addBodyString("<INPUT TYPE=\"hidden\" NAME=\"" + GSCmd.GS_PARA_SORTKEY + "\" VALUE=\""
					  + ((hsPara.get(GSCmd.GS_PARA_SORTKEY)!=null)?
						 ((String[])hsPara.get(GSCmd.GS_PARA_SORTKEY))[0]:"0") + "\">");
		addBodyString("<INPUT TYPE=\"hidden\" NAME=\"" + GSCmd.GS_PARA_SORTFLG+NAME+ "\" VALUE=\""
		 			  + ( (hsPara.get(GSCmd.GS_PARA_SORTFLG+NAME)!=null)?
						   ((String[])(hsPara.get(GSCmd.GS_PARA_SORTFLG+NAME)))[0]:"false")
						 + "\">");
		addBodyString("<INPUT TYPE=\"hidden\" NAME=\"" + GSCmd.GS_PARA_SORTFLG+LASTLOG + "\" VALUE=\""
		 			  + ( (hsPara.get(GSCmd.GS_PARA_SORTFLG+LASTLOG)!=null)?
							((String[])(hsPara.get(GSCmd.GS_PARA_SORTFLG+LASTLOG)))[0]:"false")
						 + "\">");

		addBodyString("<TD ALIGN=\"left\">");
		addBodyString("<SELECT NAME=\""+GSCmd.GS_PARA_GID+"\" onchange=\"document.forms[0].submit();\">");

		int workgid = dfgid;
		if( hsPara.get(GSCmd.GS_PARA_GID)!=null ) {
    		workgid = Integer.parseInt((String)((String[])hsPara.get(GSCmd.GS_PARA_GID))[0]) ;
        }

		int[] gids = UM.getGidArray();

		Object[] dspGrp = new Object[gids.length];
		//僜乕僩梡僥乕僽儖嶌惉
		for(int a=0;a<gids.length;a++) {
			Vector vec = new Vector(2);
			vec.add(Integer.toString(gids[a]));
			vec.add(UM.getGName(gids[a]));
			dspGrp[a] = vec;
		}
		
		//僜乕僩
		GSSort groupsort = new GSSort(true,NAME);
		Arrays.sort(dspGrp,groupsort);

		for(int i=0;i<dspGrp.length;i++) {
			Vector vec = (Vector)dspGrp[i];
			if(Integer.parseInt(((String)vec.get(ID))) == workgid ) {
				addBodyString("<OPTION SELECTED VALUE=\""+((String)vec.get(ID))+"\">" + ((String)vec.get(NAME)));
			} else {
				addBodyString("<OPTION VALUE=\""+((String)vec.get(ID))+"\">"+((String)vec.get(NAME)));
			}
		}

		addBodyString("</SELECT></TD>");

		addBodyString("<TD ALIGN=\"left\">");
		addBodyString("<INPUT TYPE=\"image\" NAME=\"go\" SRC=\""+mapURL+GSFilename.GS_GO_BTN+"\" ALT=\"GO\" BORDER=\"0\">");
		addBodyString("</TD>");

		addBodyString("<TD WIDTH=\"100%\"><BR>丂</TD>");

		addBodyString("</TR>");
		addBodyString("</FORM>");
		addBodyString("</TABLE>");

		/* 柧嵶僞僀僩儖 */
		addBodyString("<TABLE BGCOLOR=\"#ffffff\" WIDTH=\"100%\" BORDER=\"1\" CELLSPACING=\"1\" CELLPADDING=\"1\">");
		addBodyString("<TR>");
		addBodyString("<TD BGCOLOR=\"#ffffff\" WIDTH=\"11%\" ALIGN=\"center\" NOWRAP><B>崱擔</B></TD>");
		addBodyString("<TD BGCOLOR=\"#f0ffFf\" WIDTH=\"11%\" ALIGN=\"center\" NOWRAP><B>嶐擔</B></TD>");
		addBodyString("<TD BGCOLOR=\"#BFEFDF\" WIDTH=\"11%\" ALIGN=\"center\" NOWRAP><B>堦嶐擔</B></TD>");
		addBodyString("<TD BGCOLOR=\"#FFb6c1\" WIDTH=\"11%\" ALIGN=\"center\" NOWRAP><B>俁擔慜</B></TD>");
		addBodyString("<TD BGCOLOR=\"#dcdcdc\" WIDTH=\"11%\" ALIGN=\"center\" NOWRAP><B>係擔慜</B></TD>");
		addBodyString("<TD BGCOLOR=\"#f0e68c\" WIDTH=\"11%\" ALIGN=\"center\" NOWRAP><B>俆擔慜</B></TD>");
		addBodyString("<TD BGCOLOR=\"#ffffbf\" WIDTH=\"11%\" ALIGN=\"center\" NOWRAP><B>侾侽擔慜</B></TD>");
		addBodyString("<TD BGCOLOR=\"#c71585\" WIDTH=\"11%\" ALIGN=\"center\" NOWRAP><B>俀侽擔慜</B></TD>");
		addBodyString("<TD BGCOLOR=\"#00ff00\" WIDTH=\"11%\" ALIGN=\"center\" NOWRAP><B>俀侽擔埲崀</B></TD>");
		addBodyString("</TABLE>");

		addBodyString("<TABLE BGCOLOR=\"#ffffff\" WIDTH=\"100%\" BORDER=\"1\" CELLSPACING=\"1\" CELLPADDING=\"1\">");
		addBodyString("<TR BGCOLOR=\"#8080ff\">");

		int sortkey = (hsPara.get(GSCmd.GS_PARA_SORTKEY)!=null)?
			Integer.parseInt(((String[])hsPara.get(GSCmd.GS_PARA_SORTKEY))[0]):0;

		String nameSortflg="true";
		if( (sortkey==NAME) && (hsPara.get(GSCmd.GS_PARA_SORTFLG+NAME)!=null) ) 
			nameSortflg = (((String[])hsPara.get(GSCmd.GS_PARA_SORTFLG+NAME))[0]).equals("true")?"false":"true";
		String lastlogSortflg="true";
		if( (sortkey==LASTLOG) && (hsPara.get(GSCmd.GS_PARA_SORTFLG+LASTLOG)!=null) )
			lastlogSortflg = (((String[])hsPara.get(GSCmd.GS_PARA_SORTFLG+LASTLOG))[0]).equals("true")?"false":"true";

		if(sortkey == 0) {
			sortkey = NAME;
			nameSortflg = "false";
		}

		String nameTitle="<FONT COLOR=\"#ffffff\"><B>儐乕僓乕柤</B></FONT>";
		nameTitle=makeTitle(nameTitle,nameSortflg,sortkey,NAME);		
		addBodyString("<TD WIDTH=\"50%\" ALIGN=\"center\" NOWRAP><A HREF=\""+url
					  +"?"+GSCmd.GS_PARA_GID+"="+Integer.toString(workgid)
					  +"&"+GSCmd.GS_PARA_CMD+"="+GSCmd.GS_LASTLOG
					  +"&"+GSCmd.GS_PARA_SORTKEY+"="+Integer.toString(NAME)
					  +"&"+GSCmd.GS_PARA_SORTFLG+NAME+"="+nameSortflg
					  +"&"+GSCmd.GS_PARA_SORTFLG+LASTLOG+"="+lastlogSortflg
					  +"\">"
					  +nameTitle
					  +"</A></TD>");
		String lastlogTitle="<FONT COLOR=\"#ffffff\"><B>嵟廔儘僌僀儞夋柺</B></FONT>";
		lastlogTitle=makeTitle(lastlogTitle,lastlogSortflg,sortkey,LASTLOG);		
		addBodyString("<TD WIDTH=\"50%\" ALIGN=\"center\" NOWRAP><A HREF=\""+url
					  +"?"+GSCmd.GS_PARA_GID+"="+Integer.toString(workgid)
					  +"&"+GSCmd.GS_PARA_CMD+"="+GSCmd.GS_LASTLOG
					  +"&"+GSCmd.GS_PARA_SORTKEY+"="+Integer.toString(LASTLOG)
					  +"&"+GSCmd.GS_PARA_SORTFLG+NAME+"="+nameSortflg
					  +"&"+GSCmd.GS_PARA_SORTFLG+LASTLOG+"="+lastlogSortflg
					  +"\">"
					  +lastlogTitle
					  +"</A></TD>");

		addBodyString("</TR>");

		/* 僌儖乕僾柧嵶 */
		GSDate cal = new GSDate();
		GSDate cal2 = new GSDate();
		cal.setYMD(cal.getYear(),cal.getMonth(),cal.getDay());
        long today = cal.getTime();
		int[] uids = UM.getUidArray(workgid);

		Vector vecLog = new Vector();
		Object[] dspLog = null;
		//僜乕僩梡僥乕僽儖嶌惉
		for(int i=0;(uids != null) && (i<uids.length);i++) {
			cal.setYMDHM(UM.getLastLoginTime(uids[i]));
			IUser user = UM.getUser(uids[i]);
			Vector vec = new Vector(5);
			vec.add(Integer.toString(uids[i]));
			vec.add(UM.getUName(uids[i]));
			vec.add(Integer.toString(cal.getYear())+"擭"
					+Integer.toString(cal.getMonth())+"寧"
					+Integer.toString(cal.getDay())+"擔 "
					+Integer.toString(cal.getHour())+"帪"
					+Integer.toString(cal.getMinute())+"暘");
			if(uids[i] != 0) {
				vec.add(user.getKana());
			} else {
				vec.add("0");
			}
			Long time = new Long(cal.getTime());
			vec.add(time);
			vecLog.add(vec);
		}
		dspLog = vecLog.toArray();

		boolean sortflg=true;
		switch(sortkey){
		case NAME:
			sortflg = (hsPara.get(GSCmd.GS_PARA_SORTFLG+NAME)!=null)?
				(((String[])hsPara.get(GSCmd.GS_PARA_SORTFLG+NAME))[0]).equals("true"):true;
			break;
		case LASTLOG:
			sortflg = (hsPara.get(GSCmd.GS_PARA_SORTFLG+LASTLOG)!=null)?
				(((String[])hsPara.get(GSCmd.GS_PARA_SORTFLG+LASTLOG))[0]).equals("true"):true;
			break;
		}
		
		//僜乕僩
		GSSort logsort = (sortkey == NAME)?
			new GSSort(sortflg,3):
			(sortkey == LASTLOG)?new GSSort(sortflg,4):new GSSort(sortflg,sortkey);

		Arrays.sort(dspLog,logsort);

		for(int i=0;(dspLog != null) && (i<dspLog.length);i++) {
			Vector vec = (Vector)dspLog[i];
			cal2.setYMDHM(UM.getLastLoginTime(Integer.parseInt(((String)vec.get(ID)))));
			cal2.setYMD(cal2.getYear(),cal2.getMonth(),cal2.getDay());
			long last =  cal2.getTime();
            long sa = (today-last)/(1000*60*60*24);

			if( sa == 0 ) {
				addBodyString("<TR>");
			} else if(sa == 1) {
				addBodyString("<TR BGCOLOR=\"#f0ffFf\">");
			} else if(sa == 2) {
				addBodyString("<TR BGCOLOR=\"#BFEFDF\">");
			} else if(sa == 3) {
				addBodyString("<TR BGCOLOR=\"#FFb6c1\">");
			} else if(sa == 4) {
				addBodyString("<TR BGCOLOR=\"#dcdcdc\">");
			} else if(sa == 5) {
				addBodyString("<TR BGCOLOR=\"#f0e68c\">");
			} else if(sa < 10) {
				addBodyString("<TR BGCOLOR=\"#ffffbf\">");
			} else if(sa < 20) {
				addBodyString("<TR BGCOLOR=\"#c71585\">");
			} else {
				addBodyString("<TR BGCOLOR=\"#00ff00\">");
			}

			cal.setYMDHM(UM.getLastLoginTime(Integer.parseInt(((String)vec.get(ID)))));
			String space = "";
			addBodyString("<TD NOWRAP>"+((String)vec.get(NAME))+"</TD>");
			addBodyString("<TD NOWRAP>"+((String)vec.get(LASTLOG))+"</TD>");
			addBodyString("</TR>");
		}

		/* 僌儖乕僾廔椆 */
		addBodyString("</TABLE>");
		return true;
	}

	private String makeTitle(String title,String flag,int key,int sorttarget) {
		if(key == sorttarget) {
			if(flag.equals("true"))
				title = "<FONT COLOR=\"ffffff\"> 仴 </FONT>"+title;
			else
				title = title+"<FONT COLOR=\"ffffff\"> 仯 </FONT>";
		}

		return title;
	}
}

⌨️ 快捷键说明

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