reserve.java

来自「一个日本流行的,功能较全的开源Web办公管理(Groupware)系统。」· Java 代码 · 共 1,098 行 · 第 1/3 页

JAVA
1,098
字号
package jp.co.sjts.gsession.reserve;

/*
 * Reserve 偺儊僀儞  Reserve.java
 * Copyright (C) 1999-2000 Japan Total System Co,LTD
 *	  Masakatu O	<ookubo@sjts.co.jp>
 */

import java.io.PrintWriter;
import java.io.IOException;
import java.io.File;
import java.util.Hashtable;
import java.util.Properties;
import javax.servlet.ServletException;
import javax.servlet.ServletConfig;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import jp.co.sjts.gsession.tools.*;

public class Reserve extends ModBaseServlet
{
	private Hashtable hsInitData=null;
	private Properties properties=null;
	private REMainConfFile conf=null;
	private REGpFile gfile = null;
	private REGpData godata = null;
	private REValueFile vfile = null;
	private REValueData vdata = null;
	private REItemFile ifile = null;
	private REItemData idata = null;
	private REPlantFile pfile = null;
	private REPlantData pdata = null;
	private GSDate cal = null;
	private GSHtml cnv = null;
	private String[] bu1f = null;
	private File file = null;
	private String today =  null;
	private String MapUrl =  null;
	private IUserManager UM=null;

	public void init(ServletConfig config) throws ServletException
	{
		cal = new GSDate();

		super.init(config);
		properties = System.getProperties();
		hsInitData = new Hashtable();

		try{
			String ReserveDir = getInitParameter(RECmd.RE_DIR);
			if(ReserveDir!=null){
  				if(!ReserveDir.endsWith("/"))
  					ReserveDir+="/";
				String DataDir = ReserveDir+"data/";
				String UserDir = ReserveDir+"user/";
				ReserveDir = ReserveDir.replace('/',this.properties.getProperty("file.separator").charAt(0));
				DataDir = DataDir.replace('/',this.properties.getProperty("file.separator").charAt(0));
				UserDir = UserDir.replace('/',this.properties.getProperty("file.separator").charAt(0));

				// 儊僀儞乮儚乕僋僼儘乕乯僨傿儗僋僩儕偺桳岠惈傪僠僃僢僋
				try{
					File file = new File(ReserveDir);
					if(!file.exists())		// 僼傽僀儖偑懚嵼偡傞偐
					{
						if(!file.mkdirs())	// 僼傽僀儖偑懚嵼偟側偄応崌偼丄嶌惉傪帋傒傞
							throw new ServletException("僨傿儗僋僩儕嶌惉偵帋傒偨偑幐攕偟傑偟偨丅");
					}
				} catch (SecurityException e) {
					throw new ServletException("傾僋僙僗尃僄儔乕:"+ReserveDir);
				}

				// 僨乕僞僨傿儗僋僩儕偺桳岠惈傪僠僃僢僋
				try{
					File file1 = new File(DataDir);
					if(!file1.exists())		// 僼傽僀儖偑懚嵼偡傞偐
					{
						if(!file1.mkdirs())	// 僼傽僀儖偑懚嵼偟側偄応崌偼丄嶌惉傪帋傒傞
							throw new ServletException("僨傿儗僋僩儕嶌惉偵帋傒偨偑幐攕偟傑偟偨丅");
					}
				} catch (SecurityException e) {
					throw new ServletException("傾僋僙僗尃僄儔乕:"+DataDir);
				}

				// 儐乕僓乕僨傿儗僋僩儕偺桳岠惈傪僠僃僢僋
				try{
					File file2 = new File(UserDir);
					if(!file2.exists())	     // 僼傽僀儖偑懚嵼偡傞偐
					{
						if(!file2.mkdirs())     // 僼傽僀儖偑懚嵼偟側偄応崌偼丄嶌惉傪帋傒傞
							throw new ServletException("僨傿儗僋僩儕嶌惉偵帋傒偨偑幐攕偟傑偟偨丅");
					}
				} catch (SecurityException e) {
					throw new ServletException("傾僋僙僗尃僄儔乕:"+UserDir);
				}

				hsInitData.put(RECmd.RE_DIR,ReserveDir);
			}
			else
				throw new ServletException("InitParameter not find \"ReserveDir\"");

			// 儅僢僾梡偺url傪庢摼
			MapUrl = getMapURL();
			if(MapUrl!=null)
				hsInitData.put(RECmd.RE_MAP,MapUrl);
			else
				throw new ServletException("InitParameter not find \"MapDir\"");

            // 梡偺url傪庢摼
            String HelpUrl = getHelpURL();
            if(HelpUrl!=null)
                hsInitData.put("help",HelpUrl);
            else
                throw new ServletException("InitParameter not find \"HelpUrl\"");

			// 婎杮愝掕僼傽僀儖庢摼
			conf = new REMainConfFile((String)hsInitData.get(RECmd.RE_DIR));
			conf.Load();

		} catch (Exception e) {
			throw new ServletException(e.toString());
		}
	}


	public void destroy()
	{
		super.destroy();
	}


	public void GSdoGet(Hashtable hsPara,HttpServletRequest req,HttpServletResponse res)
		throws ServletException, IOException
	{
		try {
			// 僷儔儊乕僞側偟偺帪偼MAIN儁乕僕偲偡傞
			if(hsPara == null) {
				hsPara = new Hashtable();
				String[] value = {Integer.toString(RECmd.RE_RESERVE)};
				hsPara.put(RECmd.PA_CMD,value);
				cal.ResetTime();
				String today =  cal.getYMD();
				String[] value2 = {today};
				hsPara.put(RECmd.PA_DATE,value2);
			}
			Dispatch(hsPara,req,res);
		} catch(Exception e) {
			log("Reserve::GSdoGet",e);
            CreateErrorPage epage = new CreateErrorPage(CreateErrorPage.ERR
														,MapUrl,GSTool.removeParaFormURI(req.getRequestURI()));
            epage.write(req,res);
		}
	}


	public void GSdoPost(Hashtable hsPara,HttpServletRequest req,HttpServletResponse res)
		throws ServletException, IOException
	{
		try {
			// 僷儔儊乕僞側偟偺帪偼MAIN儁乕僕偲偡傞
			if(hsPara == null) {
				hsPara = new Hashtable();
				String[] value = {Integer.toString(RECmd.RE_RESERVE)};
				hsPara.put(RECmd.PA_CMD,value);
				cal.ResetTime();
				String today =  cal.getYMD() ;
				String[] value2 = {today};
				hsPara.put(RECmd.PA_DATE,value2);
			}
			Dispatch(hsPara,req,res);
		} catch(Exception e) {
			log("Reserve::GSdoPost",e);
            CreateErrorPage epage = new CreateErrorPage(CreateErrorPage.ERR
														,MapUrl,GSTool.removeParaFormURI(req.getRequestURI()));
            epage.write(req,res);
		}
	}

    // 2002.7.22 嶍彍
	//public void GSMainBodyWrite(PrintWriter pw,String url,int uid)
	//	throws GSException
	//{
	//}


	public String getServletInfo()
	{
		return "Group Session Servlet ver. 1.1";
	}


	private void Dispatch(Hashtable hsPara,HttpServletRequest req,HttpServletResponse res)
		throws GSException
	{
		String messege = null;
		String name = null;
		String mode = null;
		String gid = null;
		String pid = null;
		String iid = null;
		String rid = null;
		String nexturl = null;

		UM = getUserManager(req);

		HttpSession session = req.getSession(false);
		Integer sessionUID = (Integer)session.getAttribute(GSBase.SESSION_PARA_UID);
		String sessionUNAME = (String)session.getAttribute(GSBase.SESSION_PARA_UNAME);
		String MainUrl = getMainURL();
		String url = GSTool.removeParaFormURI(req.getRequestURI());

		int cmd = Integer.parseInt((String)((String[])hsPara.get(RECmd.PA_CMD))[0]);
		String urlMap = (String)hsInitData.get(RECmd.RE_MAP);
		String dataDir = (String)hsInitData.get(RECmd.RE_DIR);
		CreatePage page=null;
		String[] buf;

		String year = (new GSDate()).getstrYear();
		if(hsPara.get(RECmd.PA_DATE) != null)
			year = ((String[])hsPara.get(RECmd.PA_DATE))[0].substring(0,4);

		String filePath = dataDir + "user" + File.separator + sessionUID.toString() ;
		File file1 = new File(filePath);
		if(!file1.exists())		// 僼傽僀儖偑懚嵼偡傞偐
			file1.mkdirs();		// 僼傽僀儖偑懚嵼偟側偄応崌偼丄嶌惉傪帋傒傞

		switch(cmd){


		case RECmd.RE_RESERVE:// 巤愝梊栺 儊僀儞
			page = new CreateReserve_week(hsInitData,hsPara,sessionUID.toString(),UM,conf,getHoliday(year));
			break;


		case RECmd.RE_WEEK://巤愝梊栺 (廡娫)
			String go  = (String)((String[])hsPara.get(RECmd.PA_HMOD))[0];	 //
			if( Integer.parseInt(go) == 1 ) {
				page = new CreateReserve_day(hsInitData,hsPara,sessionUID.toString(),UM,conf);
				break;
			}
			buf = (String[])hsPara.get("aset.x");		// 巤愝婎杮愝掕
			if(buf!=null) {
				page = new CreateReserve_setting(hsInitData,hsPara,conf);
				break;
			}
			buf = (String[])hsPara.get("gset.x");		// 巤愝僌儖乕僾愝掕
			if(buf!=null) {
				page = new CreateReserve_group(hsInitData,hsPara);
				break;
			}
			buf = (String[])hsPara.get("jset.x");		// 巤愝忣曬愝掕
			if(buf!=null) {
				page = new CreateReserve_shi_make(hsInitData,hsPara);
				break;
			}
			page = new CreateReserve_week(hsInitData,hsPara,sessionUID.toString(),UM,conf,getHoliday(year));
			break;


		case RECmd.RE_DAY://巤愝梊栺 (擔娫)
			go  = (String)((String[])hsPara.get(RECmd.PA_HMOD))[0];	 //
			if( Integer.parseInt(go) == 0 ) {
				page = new CreateReserve_week(hsInitData,hsPara,sessionUID.toString(),UM,conf,getHoliday(year));
				break;
			}
			buf = (String[])hsPara.get("aset.x");		// 巤愝婎杮愝掕
			if(buf!=null) {
				page = new CreateReserve_setting(hsInitData,hsPara,conf);
				break;
			}
			buf = (String[])hsPara.get("gset.x");		// 巤愝僌儖乕僾愝掕
			if(buf!=null) {
				page = new CreateReserve_group(hsInitData,hsPara);
				break;
			}
			buf = (String[])hsPara.get("jset.x");		// 巤愝忣曬愝掕
			if(buf!=null) {
				page = new CreateReserve_shi_make(hsInitData,hsPara);
				break;
			}
			page = new CreateReserve_day(hsInitData,hsPara,sessionUID.toString(),UM,conf);
			break;


		case RECmd.RE_GRP://巤愝僌儖乕僾愝掕
			buf = (String[])hsPara.get("cansel.x");		// 栠傞
			if(buf!=null) {
				mode = (String)((String[])hsPara.get(RECmd.PA_MO2))[0];	 //
				if( Integer.parseInt(mode) == 0 )
					page = new CreateReserve_week(hsInitData,hsPara,sessionUID.toString(),UM,conf,getHoliday(year));
				else
					page = new CreateReserve_day(hsInitData,hsPara,sessionUID.toString(),UM,conf);
				break;
			}
			buf = (String[])hsPara.get("new.x");		// 怴婯
			if(buf!=null) {
				REGpFile gfile = new REGpFile(dataDir,sessionUID.toString());
				gfile.Del(sessionUID.toString());
				gfile.Addmod( new REGpData(sessionUID.toString()," ","0","1"));
				gfile.Save();
				REItemFile ifile = new REItemFile(dataDir,sessionUID.toString(),1);
				ifile.init();
				ifile.Addmod( new REItemData("0","柤慜","0","0"));
				ifile.Save();

				page = new CreateReserve_grp_make(hsInitData,hsPara,sessionUID.toString());
				break;
			}
			buf = (String[])hsPara.get("edit.x");		// 曇廤
			if(buf!=null) {
				if( hsPara.get(RECmd.PA_GID) != null) {  //
					gid = (String)((String[])hsPara.get(RECmd.PA_GID))[0];	 //
					if( Integer.parseInt(gid) != -1 ) {
						String newpath = dataDir + "user" + File.separator + sessionUID.toString() ;
						String oldpath = dataDir + "data" + File.separator + gid ;

						GSTool.copyFile(new File(oldpath + File.separator + "items"),new File(newpath + File.separator + "items"));

						REGpFile gfile = new REGpFile(dataDir);
						REGpData wdata = gfile.DataChk(gid);
						REGpFile wfile = new REGpFile(dataDir,sessionUID.toString());
						wdata.SetId(sessionUID.toString());
						wfile.Del(sessionUID.toString());
						wfile.Addmod( wdata );
						wfile.Save();

						page = new CreateReserve_grp_edit(hsInitData,hsPara,sessionUID.toString());
						break;
					}
				}
			}
			buf = (String[])hsPara.get("del.x");		// 嶍彍
			if(buf!=null) {
				if( hsPara.get(RECmd.PA_GID) != null) {  //
					gid = (String)((String[])hsPara.get(RECmd.PA_GID))[0];   //
					if( Integer.parseInt(gid) != -1) {
						String msg =  "僨乕僞傪嶍彍偟傑偡丅傛傠偟偄偱偡偐丅";
						String title = "僨乕僞偺嶍彍";
						String IconName = "kakunin.gif";
						Para[] paras = new Para[6];
						paras[0] = new Para("action",url);
						paras[1] = new Para(RECmd.PA_CMD,Integer.toString(RECmd.RE_GRP_DEL));
						paras[2] = new Para(RECmd.PA_DATE,(String)((String[])hsPara.get(RECmd.PA_DATE))[0] );
						paras[3] = new Para(RECmd.PA_HGRP,(String)((String[])hsPara.get(RECmd.PA_HGRP))[0] );
						paras[4] = new Para(RECmd.PA_MO2,(String)((String[])hsPara.get(RECmd.PA_MO2))[0] );
						paras[5] = new Para(RECmd.PA_GID,gid);
						CreateMsgPage mpage = new CreateMsgPage(CreateMsgPage.MB_YESNO,CreateMsgPage.ID_POST ,title,msg,paras,urlMap+IconName);
						mpage.write(req,res);
						return;
					}
				}
			}
			page = new CreateReserve_group(hsInitData,hsPara);
			break;


		case RECmd.RE_GRP_DEL://巤愝僌儖乕僾愝掕 嶍彍
			if( hsPara.get("__submit.x") != null ) {	// 偼偄
				gid = (String)((String[])hsPara.get(RECmd.PA_GID))[0];   //
				REGpFile gfile = new REGpFile(dataDir);
				gfile.Del( gid );
				gfile.Save();
				/* data/gid/pid/僼僅儖僟乕傪嶍彍 */
				String GrpDir = dataDir + "data/" + gid ;
				File file = new File(GrpDir);

⌨️ 快捷键说明

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