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

📄 cerpsam.java

📁 哈工大CERP系统Java源码及开发说明.rar 内容十分详尽
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
			        session.setAttribute("year",year);                    session.setAttribute("mSysCode","sam");                    session.setAttribute("mProgCode","");                    // 设置当前用户状态 set customer                    ModelManager mm = (ModelManager) session.getAttribute("mm");                    CustomerWebImpl customer = mm.getCustomerWebImpl();                    customer.setUserId(userCode);                    customer.setCompanyCode(companyCode);                    customer.setCurrentYear(year);                    customer.setSessionCode(sessionCode);                    customer.setUserUniqueNo(userUniqueNo);                    customer.setUserName(userName);                    //以下关于部门的函数由cameran添加,用于提取用户所在部门代码2003-6-1                    customer.setUserDept(userDept);//added by cameran                    customer.setUserDeptName(userDeptName);//added by cameran                    //以上关于部门的函数由cameran添加,用于提取用户所在部门代码2003-6-1                    customer.setLanguage(language);                    customer.setLoggedIn(true);                    customer.setDefaultPage(defaultPage);                    //succeed                    request.setAttribute("flag",LoginStatusKeys.SUCCEED);                    return true  ;                }else // password does not match                {                    request.setAttribute("flag",LoginStatusKeys.WRONG_PASSWORD);                    return false ;                }            }else // no this user            {                request.setAttribute("flag",LoginStatusKeys.NO_USER);                return false ;            }        }        catch (Exception e)        {            request.setAttribute("flag",LoginStatusKeys.DB_ERROR);            return false ;        }    }    // log out    public synchronized void logout(String companyCode,String sessionCode)    {        if (!created())            return ;        try        {            CommonDate today = new CommonDate();            int curTime = (int)(System.currentTimeMillis()/60000);            int pageSize = 1000;            int time_out = getTimeout(companyCode);            String strFields = "login_datetime,log_no";            String strTables = "sam_session";            String strConditions = "company_code='" + companyCode                + "' and (session_code='" + sessionCode                + "' or visit_datetime<="+(curTime-time_out) + ")";            rs = pageQuery.getData(strFields,strTables,strConditions,pageSize);            Vector vct = pageQuery.dividePage(1,pageSize);            Debug.println("vct==null" + (vct==null) + ",vct.size()=" + vct.size());            if (vct != null)            {                int login_datetime = 0;                int visit_datetime = 0;                int log_no = 0;                int online_minutes = 0;                String mySql = null;                String logout_datetime = today.getYMD()+ " " + today.getHM();                for(int i=0;i<vct.size();i++)                {                    String[] value = (String[]) vct.elementAt(i);                    login_datetime = Integer.parseInt(value[0]);                    log_no = Integer.parseInt(value[1]);                    online_minutes = curTime - login_datetime;                    mySql = "update sam_access_log "                        + " set online_minutes=" + online_minutes                        + ", logout_datetime='" + logout_datetime                        + "' where company_code='" + companyCode                        + "' and log_no=" + log_no;                    Debug.println("mySql="+mySql);                    pageQuery.simpleUpdate(mySql);                }            }            // delete session            sql = "delete from sam_session "                + " where company_code='" + companyCode                + "' and (session_code='" + sessionCode                + "' or visit_datetime<="+(curTime-time_out) + ")";            Debug.println(sql);            pageQuery.simpleUpdate(sql);        }        catch (Exception e)        {        }    }    // to inhance efficiency, you can modify this method to get info from some class    private int getLogProgLevel(String companyCode)    {        if (!created())            return 0 ;        try        {            sql = "select log_prog_level from scg_run_info "                + " where company_code='" + companyCode + "'" ;            rs = pageQuery.getData(sql);            if (rs != null && rs.next())            {                return rs.getInt(1);            }            return 0;        }        catch (Exception e)        {            return 0 ;        }    }    // get this prog's level    private int getProgLevel(String companyCode,String sysCode,String progCode)    {        if (!created())            return 0 ;        try        {            sql = "select prog_level from scg_program "                + " where company_code='" + companyCode                + "' and sys_code='" + sysCode                + "' and prog_code='" + progCode + "'" ;            rs = pageQuery.getData(sql);            if (rs != null && rs.next())            {                return rs.getInt(1);            }            return 0;        }        catch (Exception e)        {            return 0 ;        }    }    // log prog visited    private void  m_logProg(String companyCode,String userUniqueNo,String sysCode,String progCode)    {        if (!created())            return ;        try        {            CommonDate today = new CommonDate();            sql = "insert into sam_prog_log(company_code,log_no,sys_code,prog_code,"                    + " user_unique_no,run_date,run_time,sys_name,prog_name,prog_value,"                    + " user_name) select '"                    + companyCode + "'," + CerpGetNo.getNo(companyCode,"sam_prog_log")                    + ", '" + sysCode + "','" + progCode + "','" + userUniqueNo                    + "','" + today.getYMD() + "','" + today.getHM()                    + "',sys.sys_name,prog.prog_name_cn,prog.prog_value,body.body_name "                    + " from scg_system sys,scg_program prog,epd_address_book body "                    + " where sys.sys_code='" + sysCode + "' and prog.sys_code='"                    + sysCode + "' and prog.prog_code='" + progCode                    + "' and body.user_unique_no='" + userUniqueNo + "'" ;            Debug.println("sql=" + sql);            pageQuery.simpleUpdate(sql);            return ;        }        catch (Exception e)        {            return ;        }    }    // decide log it or not    public void logProg(String companyCode,String userUniqueNo,String sysCode,String progCode)    {        if (getProgLevel(companyCode,sysCode,progCode)>=getLogProgLevel(companyCode))            m_logProg(companyCode,userUniqueNo,sysCode,progCode);        return ;    }    // has session , refresh session    public boolean hasSession(String sessionCode)    {        try        {            int curTime = (int)(System.currentTimeMillis()/60000);            sql = "select 1 from sam_session "                + " where session_code='" + sessionCode + "'" ;            rs = pageQuery.getData(sql);            if (rs != null && rs.next())            {                refreshSession(sessionCode);                return true ;            }            return false ;        }        catch (Exception e)        {            return false ;        }    }    // refresh session    private void refreshSession(String sessionCode)    {        try        {            int curTime = (int)(System.currentTimeMillis()/60000);            sql = "update sam_session set visit_datetime="                + curTime + " where session_code='" + sessionCode + "'" ;            pageQuery.simpleUpdate(sql);        }        catch (Exception e)        {}    }    /**从库中取出子系统代码,程序代码,程序参数     * @param progValue     * @param companyCode     * @return string[3]*/    public String[] getSysAndProgCode(String progValue,String companyCode)	{		String [] value = new String[3];        try        {		    sql = "select sys_code,prog_code,prog_params "			   + " from scg_program "			   + " where company_code='"+companyCode			   + "' and prog_value='"+progValue+"'";		    rs = pageQuery.getData(sql);		    if (rs != null && rs.next())		    {			    value[0] = rs.getString(1);                value[1] = rs.getString(2);                value[2] = rs.getString(3);			}        }catch(Exception e)        {        }        return value;	}    // whether has right    public boolean hasRight(String sysCode,String progCode,String companyCode,      String userUniqueNo)	{        try        {            sql = "select check_right,prog_code_father from scg_program "                + " where company_code='" + companyCode                + "' and sys_code='" + sysCode                + "' and prog_code='" + progCode + "'";            rs = pageQuery.getData(sql);		    if (rs != null && rs.next())		    {                String checkRight = rs.getString(1);                String progCodeFather = rs.getString(2);                checkRight = (checkRight==null?"":checkRight.trim());                progCodeFather =                  (progCodeFather==null?"":progCodeFather.trim());                //无须授权                if (checkRight.equals("N"))                    return true ;                //须授权                if (progCodeFather.length()<1) //无父                {                    sql = "select 1 from sam_user_prog_right "                        + " where company_code='" + companyCode                        + "' and sys_code='" + sysCode                        + "' and prog_code='" + progCode                        + "' and user_unique_no='" + userUniqueNo + "'";                    rs = pageQuery.getData(sql);                    if (rs!=null && rs.next())                        return  true  ;                    return false ;                }                else //有父                {                    sql = "select 1 from sam_user_prog_right "                        + " where company_code='" + companyCode                        + "' and sys_code='" + sysCode                        + "' and prog_code='" + progCodeFather                        + "' and user_unique_no='" + userUniqueNo + "'";                    rs = pageQuery.getData(sql);                    if (rs!=null && rs.next())                        return  true  ;                    sql = "select 1 from scg_program "                        + " where company_code='" + companyCode                        + "' and sys_code='" + sysCode                        + "' and prog_code='" + progCodeFather                        + "' and check_right='N'";                    rs = pageQuery.getData(sql);                    if (rs!=null && rs.next())                        return  true  ;                    return  false  ;                }            }            else            {                return true ;            }        }        catch(Exception e)        {            return true ;        }	}    // check right    public boolean hasRight(String progValue,String companyCode,String userUniqueNo)    {        String [] value = getSysAndProgCode(progValue,companyCode);        return hasRight(value[0],value[1],companyCode,userUniqueNo);    }}

⌨️ 快捷键说明

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