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