com.sjc.cc.login.action.LoginAction.java Source code

Java tutorial

Introduction

Here is the source code for com.sjc.cc.login.action.LoginAction.java

Source

package com.sjc.cc.login.action;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeSet;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import org.apache.commons.lang.StringUtils;
import org.apache.commons.net.telnet.TelnetClient;
import org.apache.log4j.Logger;
import org.apache.struts2.ServletActionContext;

import com.sjc.cc.activity.service.ActivityAssignmentService;
import com.sjc.cc.activity.vo.ActivityAlertInfo;
import com.sjc.cc.back.home.service.BackHomeService;
import com.sjc.cc.back.home.vo.ApplicationStatistics;
import com.sjc.cc.back.home.vo.LoginInfo;
import com.sjc.cc.back.home.vo.ResourceStatistics;
import com.sjc.cc.back.home.vo.SystemInfo;
import com.sjc.cc.back.home.vo.TaskStatistics;
import com.sjc.cc.base.BusinessEnvironment;
import com.sjc.cc.base.LoginUserInfoHolder;
import com.sjc.cc.base.SessionUserAccessor;
import com.sjc.cc.base.action.BaseBusinessAction;
import com.sjc.cc.base.service.OperationLogService;
import com.sjc.cc.base.service.ParametersValueService;
import com.sjc.cc.base.service.js.DynamicJSService;
import com.sjc.cc.base.util.LicenseValidator;
import com.sjc.cc.base.util.StringUtil;
import com.sjc.cc.base.vo.HostConnectionStatus;
import com.sjc.cc.base.vo.LoginUserInfo;
import com.sjc.cc.base.vo.ViewPage;
import com.sjc.cc.capacity.service.OutService;
import com.sjc.cc.entity.MenuPO;
import com.sjc.cc.entity.TCcBasicCfg;
import com.sjc.cc.entity.TccApplyedHostResource;
import com.sjc.cc.entity.TccConfigCase;
import com.sjc.cc.entity.TccEmployee;
import com.sjc.cc.entity.TccOrgan;
import com.sjc.cc.entity.TccPhysiscResourceInfo;
import com.sjc.cc.entity.TccRole;
import com.sjc.cc.entity.TccSkin;
import com.sjc.cc.host.service.HostService;
import com.sjc.cc.login.VO.AnalysisVo;
import com.sjc.cc.login.VO.FrontViewVO;
import com.sjc.cc.login.service.LoginService;
import com.sjc.cc.mail.util.Config;
import com.sjc.cc.pf.util.JsonResponseUtil;
import com.sjc.cc.resrcrelease.service.ResrcReleaseService;
import com.sjc.cc.resrcrelease.vo.ResrcreleaseVO;
import com.sjc.cc.role.vo.RoleVO;
import com.sjc.cc.service.service.ConfigService;
import com.sjc.cc.user.service.UserService;

public class LoginAction extends BaseBusinessAction {
    private SessionUserAccessor sessionUserAccessor;
    private Logger logger = Logger.getLogger(LoginAction.class);
    /** ?Service */
    private ParametersValueService parametersValueService;
    /** ?JS? */
    private DynamicJSService dynamicJSService;
    private LoginService loginService;
    private BackHomeService backHomeService;
    private OutService outService;
    private UserService userService;
    private LoginUserInfo loginUserInfo;
    private ConfigService configService;
    private HostService hostService;
    private ResrcReleaseService resrcReleaseService;
    /**
     * ?
     */
    protected OperationLogService logService;
    /**
     * ??
     */
    private ActivityAssignmentService actAssignmentService;
    private static final long serialVersionUID = 5860178879655357222L;
    public static final String COOKIE_CC_USER_ID = "CCUserId";

    public String loginInit() {
        /**
         * 
         */
        /**
         *  1. 2.
         */
        HttpServletRequest request = ServletActionContext.getRequest();
        TccSkin tCcSkin = loginService.getSkindflt();

        if (null != tCcSkin) {
            String dirString = tCcSkin.getSkinDir();
            if (null == dirString || dirString.equals("")) {
                dirString = "";
            }
            request.getSession().setAttribute("changeskin", dirString);
        } else {
            request.getSession().setAttribute("changeskin", "");
        }
        TCcBasicCfg basicCfg = loginService.getBasicCfg();
        request.getSession().setAttribute("basicCfg", basicCfg);
        return "login";
    }

    public String sessionTimeout() {
        return "sessionTimeout";
    }

    public void queryOrderbySortList() {
        JsonResponseUtil.writeJsonObject(loginService.queryOrderbySort());
    }

    /**
     * 
     * 
     * @return
     */
    public String login() throws Exception {
        HttpServletResponse response = ServletActionContext.getResponse();
        HttpServletRequest request = ServletActionContext.getRequest();
        // 
        TccSkin tCcSkin = loginService.getSkindflt();
        if (null != tCcSkin) {
            String dirString = tCcSkin.getSkinDir();
            if (null == dirString || dirString.equals("")) {
                dirString = "";
            }
            request.getSession().setAttribute("changeskin", dirString);
        } else {
            request.getSession().setAttribute("changeskin", "");
        }
        TCcBasicCfg basicCfg = loginService.getBasicCfg();
        request.getSession().setAttribute("basicCfg", basicCfg);

        response.setHeader("Cache-Control", "no-cache");
        response.setHeader("Pragma", "no-cache");
        response.setDateHeader("Expires ", -1);
        if (null == loginUserInfo) {
            return "login";
        }

        // ladp?
        // Properties properties =
        // ResourceUtil.getInstance().getProperties("ldap_configinfos.properties");
        // String url = properties.getProperty("url");
        // String root = properties.getProperty("root");
        SessionUserAccessor.logoutSession(request.getSession());
        // if(LdapHelper.getCtx(loginUserInfo.getAccountNo(),
        // loginUserInfo.getAccountPassword(), root, url)){
        /**
         * ******************************************?*******************
         * ************
         */
        // TccEmployee tccEmployee =
        // loginService.getUserByAccountNo(loginUserInfo);
        // if(tccEmployee==null){
        // String accountNo = loginUserInfo.getAccountNo();
        // List<LdapUserBean> ldapUserBeans =
        // LdapHelper.getLdapUserInfos("uid="+accountNo);
        // if(ldapUserBeans!=null&&ldapUserBeans.size()>0){
        // TccEmployee newTccEmployee = new TccEmployee();
        // newTccEmployee.setAccountNo(ldapUserBeans.get(0).getUid());
        // newTccEmployee.setAccountPassword(loginUserInfo.getAccountPassword())
        // }
        // }
        /**
         * *********************************************************************
         * ***************
         */
        if (null == LoginUserInfoHolder.getInstance()
                || null == LoginUserInfoHolder.getInstance().getCurrentUser()) {

            /** ??password */
            // MD5 md5Password=new MD5(loginUserInfo.getAccountPassword());
            // String passWord = md5Password.compute();
            // loginUserInfo.setAccountPassword(passWord);

            if (StringUtils.isEmpty(loginUserInfo.getAccountNo())
                    && StringUtils.isEmpty(loginUserInfo.getAccountPassword())) {
                request.setAttribute("errorMessage", "???");
                return "login";
            }

            if (StringUtils.isEmpty(loginUserInfo.getAccountNo())) {
                request.setAttribute("errorMessage", "??");
                return "login";
            }
            if (StringUtils.isEmpty(loginUserInfo.getAccountPassword())) {
                request.setAttribute("errorMessage", "?");
                return "login";
            }

            try {
                loginUserInfo.setLoginIP(request.getRemoteAddr());
                logger.debug("<<<<<<<<<<<<<<<<<<?IP?:" + loginUserInfo.getLoginIP());
                loginUserInfo = loginService.verifyUserPassword(loginUserInfo);
            } catch (Exception ex) {
                // logger.error("<<<<<<<<<<<LDAP?!", ex);
                if ("Pool not open".equals(ex.getMessage())) {
                    if (LicenseValidator.getErrorType() == 1) {
                        request.setAttribute("errorMessage",
                                "?Licese???");
                    } else {
                        request.setAttribute("errorMessage",
                                "Licese?????");
                    }
                } else {
                    if (StringUtil.isContainChinese(ex.getMessage())) {
                        request.setAttribute("errorMessage", ex.getMessage());
                    } else {
                        request.setAttribute("errorMessage",
                                "?????? ");
                    }
                }
                return "login";
            }
            sessionUserAccessor.setSessionUser(request.getSession(), loginUserInfo);
            setCloudUserIdCookie(loginUserInfo.getUserPartyId());
            loginUserInfo.setLoginTime(new Long(new Date().getTime()));
            // ?JS??
            List<?> jsFileList = dynamicJSService.getDynamicJSList(loginUserInfo);
            if (logger.isDebugEnabled()) {
                logger.debug(
                        "[" + loginUserInfo.getAccountNo() + "]?JS" + jsFileList);
            }
            request.setAttribute("jsFileList", jsFileList);
            // }else{
            // loginUserInfo=LoginUserInfoHolder.getInstance().getCurrentUser();
            // }
            request.getSession().setAttribute("loginUserInfo", loginUserInfo);
            logService.saveOperLog("?", "" + loginUserInfo.getEmpName() + ""
                    + BusinessEnvironment.OPER_RESULT_SUCCESS, loginUserInfo, 3);
            return "main";
        } else {
            logService.saveOperLog("?", "" + loginUserInfo.getEmpName() + ""
                    + BusinessEnvironment.OPER_RESULT_SUCCESS, loginUserInfo, 3);
            return "login";
        }
    }

    public String getCloudstackurl() {
        return loginService.getCloudstackurl();
    }

    public String serviceFrame() {

        HttpServletRequest request = ServletActionContext.getRequest();
        request.setAttribute("showType", "serviceFrame");
        return "serviceFrame";
    }

    public String manageFrame() {

        HttpServletRequest request = ServletActionContext.getRequest();
        request.setAttribute("showType", "manageFrame");
        return "manageFrame";
    }

    public String switchRole() {

        if (null == LoginUserInfoHolder.getInstance() || null == LoginUserInfoHolder.getInstance().getCurrentUser())
            return "login";

        HttpServletRequest request = ServletActionContext.getRequest();
        loginUserInfo = LoginUserInfoHolder.getInstance().getCurrentUser();

        if (null == loginUserInfo || request.getSession().getAttribute("loginUserInfo") == null) {
            return "login";
        }

        String roleid = request.getParameter("role");

        if (StringUtils.isBlank(roleid)) {
            return "login";
        }

        if (roleid == loginUserInfo.getCurrentRoleid() + "") {
            return null;
        }

        loginUserInfo.setCurrentRoleid(Long.valueOf(roleid));
        loginService.refreshUserRole();
        request.setAttribute("role", roleid);

        return "main";
    }

    /**
     * CookieID
     * 
     * @param userId
     */
    private void setCloudUserIdCookie(Long userId) {
        HttpServletResponse response = ServletActionContext.getResponse();
        Cookie loginInfo = new Cookie(COOKIE_CC_USER_ID, userId + "");
        loginInfo.setMaxAge(-1);
        if (logger.isDebugEnabled()) {
            logger.debug("The Cookie Cloud is :" + loginInfo + "," + loginInfo.getValue());
        }
        response.addCookie(loginInfo);
    }

    /**
     * 
     * 
     * @return
     * @exception Exception can be thrown by subclasses.
     */
    public String logout() throws Exception {
        LoginUserInfo loginUserInfo = LoginUserInfoHolder.getInstance().getCurrentUser();
        if (loginUserInfo != null && loginUserInfo.getEmpName() != null) {
            logService.saveOperLog("?", "" + loginUserInfo.getEmpName() + ""
                    + BusinessEnvironment.OPER_RESULT_SUCCESS, loginUserInfo, 3);
        }
        sessionUserAccessor.logoutUser(ServletActionContext.getRequest().getSession());
        HttpServletRequest request = ServletActionContext.getRequest();
        HttpServletResponse response = ServletActionContext.getResponse();
        Cookie cookies[] = request.getCookies();
        if (cookies != null) {
            for (int i = 0; i < cookies.length; i++) {
                if (logger.isDebugEnabled()) {
                    logger.debug(
                            "Cookiecookies[" + i + "].getName()==========[" + cookies[i].getName() + "]");
                }
                if (LoginAction.COOKIE_CC_USER_ID.equals(cookies[i].getName())) {
                    cookies[i].setMaxAge(0);
                    response.addCookie(cookies[i]);// cookie
                    break;
                }
            }
        }
        TccSkin tCcSkin = loginService.getSkindflt();
        if (null != tCcSkin) {
            String dirString = tCcSkin.getSkinDir();
            if (null == dirString || dirString.equals("")) {
                dirString = "";
            }
            request.getSession().setAttribute("changeskin", dirString);
        } else {
            request.getSession().setAttribute("changeskin", "");
        }
        TCcBasicCfg basicCfg = loginService.getBasicCfg();
        request.getSession().setAttribute("basicCfg", basicCfg);
        return "logout";
    }

    /**
     * ?top?
     */
    public String top() throws Exception {
        HttpServletRequest request = ServletActionContext.getRequest();
        LoginUserInfo loginUserInfo = LoginUserInfoHolder.getInstance().getCurrentUser();
        TccRole role = loginService.getTccRoleByUserID(loginUserInfo.getUserPartyId());
        if (role.getRoleTypeCd() == null) {
            role.setRoleTypeCd("0");
        }
        // ?
        String orgFullnamelv2 = null;
        orgFullnamelv2 = loginUserInfo.getOrgan().getPartyFullname();

        if (null != loginUserInfo.getOrgan().getTccOrgan()
                && null != loginUserInfo.getOrgan().getTccOrgan().getOrganPartyId()
                && 0 != loginUserInfo.getOrgan().getTccOrgan().getOrganPartyId()) {
            String orgid = loginUserInfo.getOrgan().getTccOrgan().getOrganPartyId().toString();
            TccOrgan org = loginService.getOrganByOrganPartyId(orgid);
            orgFullnamelv2 = org.getPartyFullname() + "/" + orgFullnamelv2;
        }
        request.setAttribute("orgFullnamelv2", orgFullnamelv2);
        request.setAttribute("loginUserInfo", loginUserInfo);
        request.setAttribute("role", role);

        return "top";
    }

    public void interfaceState() {
        this.outJSON(this.getInterfaceStrs());
    }

    private String getInterfaceStrs() {

        StringBuffer buf = new StringBuffer();
        buf.append("<table>");
        HostConnectionStatus hostStatus = new HostConnectionStatus();
        String proxyIp = Config.getProperty("mail.send.host");
        try {

            TelnetClient telnet = new TelnetClient();
            telnet.connect(proxyIp, 25);// ????
            telnet.disconnect();
            hostStatus.setOaGatewayConStatus(true);
        } catch (Exception ex) {

            logger.error("<<<<<<<<<<<?.", ex);
            hostStatus.setOaGatewayConStatus(false);
        }

        try {

            /*CPIC_InterfaceForm_ChangeRequest_CreateGet_WSServiceStub sub1 = new CPIC_InterfaceForm_ChangeRequest_CreateGet_WSServiceStub();
            sub1._getServiceClient().getServiceContext();
            sub1 = null;*/
            hostStatus.setRemedyConStatus(true);
        } catch (Exception ex) {

            logger.error("<<<<<<<<<<<Remedy?.", ex);
            hostStatus.setRemedyConStatus(false);
        }

        hostStatus.setCmdbConStatus(outService.cmdbValidation());
        hostStatus.setNewResStatus(outService.csValidation());

        if (hostStatus.isCmdbConStatus()) {

            buf.append("<tr>");
            buf.append("<td><font>CMDB</font></td><td><span class='Rstate_green' title=''></span></td>");
            buf.append("</tr>");
        } else {

            buf.append("<tr>");
            buf.append("<td><font>CMDB</font></td><td><span class='Rstate_red' title=''></span></td>");
            buf.append("</tr>");
        }

        if (hostStatus.isNewResStatus()) {

            buf.append("<tr>");
            buf.append(
                    "<td><font>?</font></td><td><span class='Rstate_green' title=''></span></td>");
            buf.append("</tr>");
        } else {

            buf.append("<tr>");
            buf.append(
                    "<td><font>?</font></td><td><span class='Rstate_red' title=''></span></td>");
            buf.append("</tr>");
        }

        Map<String, Boolean> map = outService.vcValidation();
        Set<String> set = map.keySet();
        buf.append("<tr><td><font>??</font></td><td>");
        for (String ip : set) {
            if (map.get(ip).booleanValue()) {

                buf.append("<span class='Rstate_green' title='" + ip + "'></span>");
            } else {

                buf.append("<span class='Rstate_red' title='" + ip + "'></span>");
            }
        }
        buf.append("</td></tr>");

        if (hostStatus.isRemedyConStatus()) {

            buf.append("<tr>");
            buf.append("<td><font>Remedy</font></td><td><span class='Rstate_green' title=''></span></td>");
            buf.append("</tr>");
        } else {

            buf.append("<tr>");
            buf.append("<td><font>Remedy</font></td><td><span class='Rstate_red' title=''></span></td>");
            buf.append("</tr>");
        }

        if (hostStatus.isOaGatewayConStatus()) {

            buf.append("<tr>");
            buf.append(
                    "<td><font>OA</font></td><td><span class='Rstate_green' title=''></span></td>");
            buf.append("</tr>");
        } else {
            buf.append("<tr>");
            buf.append("<td><font>OA</font></td><td><span class='Rstate_red' title=''></span></td>");
            buf.append("</tr>");
        }
        buf.append("</table>");

        return buf.toString();
    }

    /**
     * ????
     */
    public void loadMenu() throws Exception {

        HttpServletRequest request = ServletActionContext.getRequest();
        LoginUserInfo loginUserInfo = LoginUserInfoHolder.getInstance().getCurrentUser();
        Map<MenuPO, TreeSet<MenuPO>> menuMap = null;
        if ("serviceFrame".equals(request.getParameter("showType"))) {
            menuMap = loginUserInfo.getServiceMenuMap();// ????
        } else {
            menuMap = loginUserInfo.getManageMenuMap();// ????
        }
        JSONArray jsonArr = new JSONArray();
        if (null == menuMap || menuMap.size() == 0) {
            this.outJSONArray(jsonArr);
            // JsonResponseUtil.writeJsonArray(jsonArr);
            return;
        }
        JSONObject jsonObj = null;
        JSONArray jsonArrTemp;
        JSONObject jsonObjTemp = null;
        Set<Entry<MenuPO, TreeSet<MenuPO>>> set = menuMap.entrySet();
        Iterator<Map.Entry<MenuPO, TreeSet<MenuPO>>> it = set.iterator();
        while (it.hasNext()) {
            jsonObj = new JSONObject();
            Map.Entry<MenuPO, TreeSet<MenuPO>> entry = it.next();
            jsonObj.put("privilegeId", entry.getKey().getPrivilegeId());
            jsonObj.put("privilegeName", entry.getKey().getPrivilegeName());
            jsonObj.put("privilegeUrl", entry.getKey().getPrivilegeUrl());
            jsonArr.add(jsonObj);

            jsonArrTemp = new JSONArray();
            jsonObjTemp = new JSONObject();
            TreeSet<MenuPO> hste = entry.getValue();
            for (MenuPO menuPO : hste) {
                jsonObjTemp.put("privilegeId", menuPO.getPrivilegeId());
                jsonObjTemp.put("privilegeName", menuPO.getPrivilegeName());
                jsonObjTemp.put("privilegeUrl", menuPO.getPrivilegeUrl());
                jsonArrTemp.add(jsonObjTemp);
            }
            jsonArr.add(jsonArrTemp);
        }

        this.outJSONArray(jsonArr);

    }

    /**
     * ??
     * 
     * @return
     * @exception Exception can be thrown by subclasses.
     */
    public String welcome() throws Exception {
        return "index";
    }

    public String index() throws Exception {
        try {
            HttpServletRequest request = ServletActionContext.getRequest();
            LoginUserInfo loginUserInfo = LoginUserInfoHolder.getInstance().getCurrentUser();
            List<FrontViewVO> list = new ArrayList<FrontViewVO>();
            FrontViewVO vo = new FrontViewVO();
            // List<Map<String, Long>>
            // maplist=loginService.validateUserRole(loginUserInfo.getUserPartyId());
            List<FrontViewVO> flist = new ArrayList<FrontViewVO>();
            List<ResrcreleaseVO> rlist = new ArrayList<ResrcreleaseVO>();
            /** ?? ******************************************** */
            TccRole tccRole = new TccRole();
            tccRole = loginService.getRoleById(loginUserInfo.getCurrentRoleid());

            if (null == tccRole) {
                return "callManagePage";
            }

            List<RoleVO> roleList = loginUserInfo.getRoleList();
            RoleVO roleVo = new RoleVO();
            if (roleList != null && roleList.size() >= 1) {
                for (int k = 0; k < roleList.size(); k++) {
                    roleVo = roleList.get(k);
                    if (roleVo.getRoleTypeCd().equalsIgnoreCase(String.valueOf(tccRole.getRoleTypeCd()))) {
                        roleList.remove(k);
                        break;
                    }
                }
                roleList.add(0, roleVo);
            }
            loginUserInfo.setRoleList(roleList);
            //TODO
            // tccRole = loginService.getTccRoleByUserID(loginUserInfo
            // .getUserPartyId());
            if (tccRole.getRoleTypeCd() == null) {
                vo.setUserFlag("0");
            } else {
                vo.setUserFlag(tccRole.getRoleTypeCd());
                vo.setRoleID(tccRole.getRoleId());
            }
            // ?????
            if ("112".equals(tccRole.getRoleTypeCd()) || "113".equals(tccRole.getRoleTypeCd())) {
                flist = loginService.getAppResource("2", loginUserInfo.getUserPartyId());
                // list = loginService.getHostResource("2", loginUserInfo
                // .getUserPartyId());
            }
            if ("111".equals(tccRole.getRoleTypeCd()) || "116".equals(tccRole.getRoleTypeCd())
                    || "115".equals(tccRole.getRoleTypeCd())) {
                flist = loginService.getAppResource("1", loginUserInfo.getUserPartyId());
                // list = loginService.getHostResource("1", loginUserInfo
                // .getUserPartyId());
                rlist = loginService.getProjectResource(loginUserInfo.getUserPartyId(), 5);
            }
            list = loginService.getHostResourceWithRole(tccRole.getRoleTypeCd(), loginUserInfo.getUserPartyId());
            request.setAttribute("flist", flist);
            request.setAttribute("vo", vo);
            request.setAttribute("env", parametersValueService.getParametersValuesByClassficationId("135"));
            request.setAttribute("list", list);
            request.setAttribute("rlist", rlist);
            List list2 = actAssignmentService.getPersonalAndGrpActivityCount(
                    LoginUserInfoHolder.getInstance().getCurrentUser().getUserPartyId());
            ActivityAlertInfo activityAlertInfo = new ActivityAlertInfo();
            if (null != list2) {
                activityAlertInfo.setGrpActCount(new Long(list2.get(0).toString()));
                activityAlertInfo.setPersonalStartActCount(new Long(list2.get(1).toString()));
                activityAlertInfo.setPersonalProcessActCount(new Long(list2.get(2).toString()));
                activityAlertInfo.setProcessiongSrtCount(new Long(list2.get(3).toString()));
                activityAlertInfo.setDoneSrtCount(new Long(list2.get(4).toString()));
                page = new ViewPage();
                page.setPageSize(5);//??
                if ("111".equals(tccRole.getRoleTypeCd())) {
                    //??
                    page = resrcReleaseService.getReleaseOfResource3(page, "", "1", "3",
                            loginUserInfo.getUserPartyId(), loginUserInfo.getCurrentRoleid(), 0);
                    activityAlertInfo.setCreateApplyResource(new Long(page.getTotalSize()));
                    page = resrcReleaseService.getReleaseOfResource3(page, "", "1", "0",
                            loginUserInfo.getUserPartyId(), loginUserInfo.getCurrentRoleid(), 1);
                    activityAlertInfo.setMyApplyResource(new Long(page.getTotalSize()));
                } else if ("113".equals(tccRole.getRoleTypeCd())) {
                    //??
                    page = resrcReleaseService.getReleaseOfResource3(page, "", "0", "3",
                            loginUserInfo.getUserPartyId(), loginUserInfo.getCurrentRoleid(), 0);
                    activityAlertInfo.setCreateApplyResource(new Long(page.getTotalSize()));
                    page = resrcReleaseService.getReleaseOfResource3(page, "", "0", "2",
                            loginUserInfo.getUserPartyId(), loginUserInfo.getCurrentRoleid(), 0);
                    activityAlertInfo.setReleaseApplyResource(new Long(page.getTotalSize()));
                }
            }

            /*         //???
                     List<ResrcreleaseVO> vmList=new ArrayList<ResrcreleaseVO>();
                     if("111".equals(tccRole.getRoleTypeCd())||"113".equals(tccRole.getRoleTypeCd())){
                        //?
                        ViewPage vmPage=new ViewPage();
                        vmPage.setPageSize(5);//??
                        vmPage=resrcReleaseService.getReleaseOfResource3(vmPage, "", "1", "", loginUserInfo.getUserPartyId(), loginUserInfo.getCurrentRoleid());
                            
                     }*/
            request.setAttribute("activityAlertInfo", activityAlertInfo);

            if ("112".equals(tccRole.getRoleTypeCd())) {
                request.setAttribute("analysisResult", getAnalysisResult());
            }

            if ("112".equals(tccRole.getRoleTypeCd()) || "113".equals(tccRole.getRoleTypeCd())
                    || "111".equals(tccRole.getRoleTypeCd()) || "115".equals(tccRole.getRoleTypeCd())
                    || "116".equals(tccRole.getRoleTypeCd())

            ) {
                return "welcomePage";
            } else {
                return "callManagePage";
            }
        } catch (RuntimeException e) {

            e.printStackTrace();
        }
        return null;
    }

    /**
     * ??
     * 
     * @return
     * @exception Exception can be thrown by subclasses.
     */
    public String welBackcome() throws Exception {
        try {
            HttpServletRequest request = ServletActionContext.getRequest();
            LoginUserInfo user = LoginUserInfoHolder.getInstance().getCurrentUser();
            if (null != user) {
                LoginInfo loginInfo = backHomeService.getLoginInfo(user);
                request.setAttribute("loginInfo", loginInfo);
            }
            SystemInfo systemInfo = backHomeService.getSystemInfo(request);
            request.setAttribute("systemInfo", systemInfo);

            /*
             * TechnicalSupport technicalSupport = backHomeService
             * .getTechnicalSupport(); request.setAttribute("technicalSupport",
             * technicalSupport);
             */

            ApplicationStatistics appStats = backHomeService.getApplicationStatistics();
            request.setAttribute("appStats", appStats);

            TaskStatistics taskStats = backHomeService.getTaskStatistics();
            request.setAttribute("taskStats", taskStats);

            ResourceStatistics resourceStats = backHomeService.getResourceStatistics();
            request.setAttribute("resourceStats", resourceStats);
        } catch (RuntimeException e) {
            e.printStackTrace();
        }
        return "welcomebackPage";
    }

    /**
     * ??Excel?
     * 
     * @return
     */
    public String downLoadTemplate() {
        return "downloadtemplate";
    }

    /**
     * ? ????
     * 
     * @return
     */
    public void getPrivilegeNameByLv2Name() {
        HttpServletRequest request = ServletActionContext.getRequest();
        String name2 = request.getParameter("name2");
        try {
            name2 = URLDecoder.decode(name2, "UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        String url = request.getParameter("url");
        url = url.split(".action")[0] + ".action";
        String fullname = loginService.getPrivilegeNameByNameAndUrl(name2, url);
        JsonResponseUtil.writeJsonString(fullname);
    }

    public void findSrtByUser() {
        //TODO
        boolean flag = false;
        LoginUserInfo loginUserInfo = LoginUserInfoHolder.getInstance().getCurrentUser();
        HttpServletRequest request = ServletActionContext.getRequest();
        String userPartyId = request.getParameter("userPartyId");
        TccEmployee employee = loginService.getUserByPartyId(Long.parseLong(userPartyId));
        List<String> roleIdList = loginService.findRoleByUser(userPartyId);

        for (String roleId : roleIdList) {
            TccRole tccRole = loginService.getRoleById(Long.parseLong(roleId));
            List<FrontViewVO> flist = new ArrayList<FrontViewVO>();
            // ?????
            if ("112".equals(tccRole.getRoleTypeCd()) || "113".equals(tccRole.getRoleTypeCd())) {
                flist = loginService.getAppResource("2", Long.parseLong(userPartyId));
            }
            if ("111".equals(tccRole.getRoleTypeCd()) || "116".equals(tccRole.getRoleTypeCd())
                    || "115".equals(tccRole.getRoleTypeCd())) {
                flist = loginService.getAppResource("1", Long.parseLong(userPartyId));
            }
            if (flist != null && !flist.isEmpty()) {
                for (FrontViewVO fv : flist) {
                    if ("01".equals(fv.getSrtStutasCd())) {
                        flag = true;
                    }
                }
            }
        }
        JSONArray jsonArr = new JSONArray();
        JSONObject json = new JSONObject();
        json.put("flag", flag);
        json.put("userName", employee.getEmployeeName());
        jsonArr.add(json);
        JsonResponseUtil.writeJsonArray(jsonArr);

    }

    public DynamicJSService getDynamicJSService() {
        return dynamicJSService;
    }

    public void setDynamicJSService(DynamicJSService dynamicJSService) {
        this.dynamicJSService = dynamicJSService;
    }

    public SessionUserAccessor getSessionUserAccessor() {
        return sessionUserAccessor;
    }

    public void setSessionUserAccessor(SessionUserAccessor sessionUserAccessor) {
        this.sessionUserAccessor = sessionUserAccessor;
    }

    public LoginService getLoginService() {
        return loginService;
    }

    public void setLoginService(LoginService loginService) {
        this.loginService = loginService;
    }

    public LoginUserInfo getLoginUserInfo() {
        return loginUserInfo;
    }

    public void setLoginUserInfo(LoginUserInfo loginUserInfo) {
        this.loginUserInfo = loginUserInfo;
    }

    public BackHomeService getBackHomeService() {
        return backHomeService;
    }

    public void setBackHomeService(BackHomeService backHomeService) {
        this.backHomeService = backHomeService;
    }

    public OutService getOutService() {
        return outService;
    }

    public void setOutService(OutService outService) {
        this.outService = outService;
    }

    public void setParametersValueService(ParametersValueService parametersValueService) {
        this.parametersValueService = parametersValueService;
    }

    public OperationLogService getLogService() {
        return logService;
    }

    public void setLogService(OperationLogService logService) {
        this.logService = logService;
    }

    public ActivityAssignmentService getActAssignmentService() {
        return actAssignmentService;
    }

    public void setActAssignmentService(ActivityAssignmentService actAssignmentService) {
        this.actAssignmentService = actAssignmentService;
    }

    public UserService getUserService() {
        return userService;
    }

    public void setUserService(UserService userService) {
        this.userService = userService;
    }

    public ResrcReleaseService getResrcReleaseService() {
        return resrcReleaseService;
    }

    public void setResrcReleaseService(ResrcReleaseService resrcReleaseService) {
        this.resrcReleaseService = resrcReleaseService;
    }

    public ConfigService getConfigService() {
        return configService;
    }

    public void setConfigService(ConfigService configService) {
        this.configService = configService;
    }

    public HostService getHostService() {
        return hostService;
    }

    public void setHostService(HostService hostService) {
        this.hostService = hostService;
    }

    public List<AnalysisVo> getAnalysisResult() {
        List<TccConfigCase> listTccConfigCase = configService.getConfigCaseDeduplicateAll();
        List<TccPhysiscResourceInfo> listTccPhysiscResourceInfo = hostService.listTccPhysiscResourceInfo();
        List<TccApplyedHostResource> listTccApplyHostResource = hostService.listTccApplyedHostResource();
        Long cpuCount = 0L;
        //cpu
        if (null != listTccPhysiscResourceInfo && !listTccPhysiscResourceInfo.isEmpty()) {
            for (TccPhysiscResourceInfo TccPhysiscResourceInfoT : listTccPhysiscResourceInfo) {
                Integer i = null != TccPhysiscResourceInfoT.getTccCluster()
                        ? TccPhysiscResourceInfoT.getTccCluster().getCpuExceedRate()
                        : null;
                if (null != i) {
                    cpuCount += null != TccPhysiscResourceInfoT.getCpuCoreTotalCount()
                            ? TccPhysiscResourceInfoT.getCpuCoreTotalCount() * i
                            : 0;
                } else {
                    cpuCount += null != TccPhysiscResourceInfoT.getCpuCoreTotalCount()
                            ? TccPhysiscResourceInfoT.getCpuCoreTotalCount()
                            : 0;
                }
            }
        }
        //CPU
        if (null != listTccApplyHostResource && !listTccApplyHostResource.isEmpty()) {
            for (TccApplyedHostResource TccApplyedHostResourceT : listTccApplyHostResource) {
                cpuCount -= null != TccApplyedHostResourceT.getCpuCoreCount()
                        ? TccApplyedHostResourceT.getCpuCoreCount()
                        : 0;
            }
        }

        List<AnalysisVo> listAnalysisVo = new ArrayList<AnalysisVo>();
        //????
        if (null != listTccConfigCase && !listTccConfigCase.isEmpty()) {
            for (int i = 0; i < listTccConfigCase.size(); i++) {

                AnalysisVo AnalysisVoT = new AnalysisVo();
                AnalysisVoT.setId(String.valueOf(i + 1));
                AnalysisVoT.setSpec(listTccConfigCase.get(i).getCpuCoreCount() + "/"
                        + listTccConfigCase.get(i).getRamSize() + "GB");
                if (null != listTccConfigCase.get(i).getCpuCoreCount()
                        && 0 != listTccConfigCase.get(i).getCpuCoreCount()) {
                    Long LongT = cpuCount / listTccConfigCase.get(i).getCpuCoreCount();
                    AnalysisVoT.setResult(LongT.toString());
                }
                if (listTccConfigCase.get(i).getCpuCoreCount() > 0 && listTccConfigCase.get(i).getRamSize() > 0) {
                    if ((cpuCount / listTccConfigCase.get(i).getCpuCoreCount()) <= 0) {
                        AnalysisVoT.setResult("0");
                    }
                    listAnalysisVo.add(AnalysisVoT);
                }
            }
        }
        return listAnalysisVo;
    }

}