/// <summary>
        /// 更新项目信息
        /// </summary>
        /// <param name="model"></param>
        /// <param name="log"></param>
        /// <returns></returns>
        public static bool UpdateProject(USER_SHARE_PROJECTMODEL model, USER_SHARE_LOGMODEL log)
        {
            bool          blSuccess = false;
            StringBuilder strSql    = new StringBuilder();

            strSql.Append("update USER_SHARE_PROJECT set ");
            strSql.Append("PROJECTNAME=:PROJECTNAME,");
            strSql.Append("APISERVICEKEY=:APISERVICEKEY,");
            strSql.Append("CREATEDATE=:CREATEDATE,");
            strSql.Append("PROJECTREMARK=:PROJECTREMARK,");
            strSql.Append("STATUS=:STATUS");
            strSql.Append(" where PROJECTID=:PROJECTID ");
            ParamList param = new ParamList();

            param["PROJECTID"]     = model.PROJECTID;
            param["PROJECTNAME"]   = model.PROJECTNAME;
            param["APISERVICEKEY"] = model.APISERVICEKEY;
            param["CREATEDATE"]    = model.CREATEDATE;
            param["PROJECTREMARK"] = model.PROJECTREMARK;
            param["STATUS"]        = model.STATUS;

            IConnectionProvider connection = ConnectionProviderBuilder.CreateConnectionProvider();

            try
            {
                using (connection)
                {
                    connection.BeginTranscation();

                    //增加项目信息
                    connection.ExecuteNonQuery(strSql.ToString(), param);
                    param.Clear();
                    //操作日志
                    strSql = new StringBuilder();
                    strSql.Append("insert into USER_SHARE_LOG(");
                    strSql.Append("LOGID,OPERATETYPE,OPERATORID,PROJECTID,COMPANYID,OPERATECONTENT,OPERATEDATE)");
                    strSql.Append(" values (");
                    strSql.Append(":LOGID,:OPERATETYPE,:OPERATORID,:PROJECTID,:COMPANYID,:OPERATECONTENT,:OPERATEDATE)");

                    param["LOGID"]          = log.LOGID;
                    param["OPERATETYPE"]    = log.OPERATETYPE;
                    param["OPERATORID"]     = log.OPERATORID;
                    param["PROJECTID"]      = log.PROJECTID;
                    param["COMPANYID"]      = log.COMPANYID;
                    param["OPERATECONTENT"] = log.OPERATECONTENT;
                    param["OPERATEDATE"]    = log.OPERATEDATE;
                    connection.ExecuteNonQuery(strSql.ToString(), param);

                    connection.CommitTranscation();
                    blSuccess = true;
                }
            }
            catch (Exception ex)
            {
                connection.RollbackTranscation();
                LogHelper.WriteErr("修改项目信息时发生错误:项目ID" + model.PROJECTID, ex);
            }

            return(blSuccess);
        }
        protected void btnSave_Click(object sender, EventArgs e)
        {
            bool isEdit = Request.QueryString["id"] != null;

            //项目信息
            USER_SHARE_PROJECTMODEL projectModel = null;

            //日志记录
            USER_SHARE_LOGMODEL logModel = new USER_SHARE_LOGMODEL();

            logModel.LOGID       = CommonBusiness.GetSeqID("S_USER_SHARE_LOG");
            logModel.OPERATEDATE = DateTime.Now;
            logModel.OPERATORID  = AccountId;
            logModel.PROJECTID   = ProjectId;
            logModel.COMPANYID   = CompanyId;
            if (!isEdit)
            {
                projectModel               = new USER_SHARE_PROJECTMODEL();
                projectModel.PROJECTID     = CommonBusiness.GetSeqID("S_USER_SHARE_PROJECT");
                projectModel.PROJECTNAME   = txtProjectName.Text.Trim();
                projectModel.APISERVICEKEY = lblProjectKey.Text.Trim();
                projectModel.PROJECTREMARK = txtProjectDesc.Text.Trim();
                projectModel.STATUS        = int.Parse(ShareEnum.ProjectStatus.Normal.ToString("d"));
                projectModel.CREATEDATE    = DateTime.Now;

                logModel.OPERATETYPE    = int.Parse(ShareEnum.LogType.AddProject.ToString("d"));
                logModel.OPERATECONTENT = "注册新项目,Id:" + projectModel.PROJECTID + ",名称:" + projectModel.PROJECTNAME;
                if (ProjectBusiness.AddProject(projectModel, logModel))
                {
                    Alert("项目注册成功!");
                }
                else
                {
                    Alert("项目注册失败,请重试!");
                }
            }
            else
            {
                projectModel               = ProjectBusiness.GetProjectModel(ValidatorHelper.ToInt(Enc.Decrypt(Request.QueryString["id"], UrlEncKey), 0));
                projectModel.PROJECTNAME   = txtProjectName.Text.Trim();
                projectModel.PROJECTREMARK = txtProjectDesc.Text.Trim();
                logModel.OPERATETYPE       = int.Parse(ShareEnum.LogType.EditProject.ToString("d"));
                logModel.OPERATECONTENT    = "修改项目信息,项目Id:" + projectModel.PROJECTID + ",修改后的名称:" + projectModel.PROJECTNAME;
                if (ProjectBusiness.UpdateProject(projectModel, logModel))
                {
                    Alert("项目信息修改成功!");
                }
                else
                {
                    Alert("项目信息修改失败,请重试!");
                }
            }

            ExecScript("parent.__doPostBack('ctl00$MainContent$btnSearch','');");
        }
        private void LoadProjectInfo(string strId)
        {
            USER_SHARE_PROJECTMODEL projectModel = ProjectBusiness.GetProjectModel(ValidatorHelper.ToInt(strId, 0));

            if (projectModel != null)
            {
                txtProjectName.Text = projectModel.PROJECTNAME;
                lblProjectKey.Text  = projectModel.APISERVICEKEY;
                txtProjectDesc.Text = projectModel.PROJECTREMARK;
            }
        }
        /// <summary>
        /// 对象实体绑定数据
        /// </summary>
        public static USER_SHARE_PROJECTMODEL ReaderBind(DataRow dataReader)
        {
            USER_SHARE_PROJECTMODEL model = new USER_SHARE_PROJECTMODEL();
            object ojb;

            ojb                 = dataReader["PROJECTID"];
            model.PROJECTID     = ValidatorHelper.ToInt(ojb, 0);
            model.PROJECTNAME   = CommonMethod.FinalString(dataReader["PROJECTNAME"]);
            model.APISERVICEKEY = CommonMethod.FinalString(dataReader["APISERVICEKEY"]);
            ojb                 = dataReader["CREATEDATE"];
            model.CREATEDATE    = ValidatorHelper.ToDateTime(ojb, DateTime.Now);
            model.PROJECTREMARK = CommonMethod.FinalString(dataReader["PROJECTREMARK"]);
            ojb                 = dataReader["STATUS"];
            model.STATUS        = ValidatorHelper.ToInt(ojb, 0);
            return(model);
        }
        /// <summary>
        /// 得到一个对象实体 根据密钥
        /// <param name="strProjectId"></param>
        /// </summary>
        public static USER_SHARE_PROJECTMODEL GetProjectModelByKey(string strAppKey)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select PROJECTID,PROJECTNAME,APISERVICEKEY,CREATEDATE,PROJECTREMARK,STATUS from USER_SHARE_PROJECT ");
            strSql.Append(" where APISERVICEKEY=:APISERVICEKEY AND STATUS=" + ShareEnum.ProjectStatus.Normal.ToString("d"));
            USER_SHARE_PROJECTMODEL model = null;
            ParamList param = new ParamList();

            param["APISERVICEKEY"] = strAppKey;
            DataTable dt = StaticConnectionProvider.ExecuteDataTable(strSql.ToString(), param);

            if (dt != null && dt.Rows.Count > 0)
            {
                model = ReaderBind(dt.Rows[0]);
            }

            return(model);
        }
        /// <summary>
        /// 得到一个对象实体
        /// <param name="strProjectId"></param>
        /// </summary>
        public static USER_SHARE_PROJECTMODEL GetProjectModel(int nProjectId)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select PROJECTID,PROJECTNAME,APISERVICEKEY,CREATEDATE,PROJECTREMARK,STATUS from USER_SHARE_PROJECT ");
            strSql.Append(" where PROJECTID=:PROJECTID ");
            USER_SHARE_PROJECTMODEL model = null;
            ParamList param = new ParamList();

            param["PROJECTID"] = nProjectId;
            DataTable dt = StaticConnectionProvider.ExecuteDataTable(strSql.ToString(), param);

            if (dt != null && dt.Rows.Count > 0)
            {
                model = ReaderBind(dt.Rows[0]);
            }

            return(model);
        }
        /// <summary>
        /// 修改密码
        /// </summary>
        /// <param name="context"></param>
        /// <param name="xmlDoc"></param>
        /// <param name="sResponse"></param>
        private void EditAccountPwd(HttpContext context, XmlDocument xmlDoc, ServiceResponse sResponse)
        {
            XmlNode xnKey       = xmlDoc.SelectSingleNode("request/appkey");
            XmlNode xnAccountId = xmlDoc.SelectSingleNode("request/accountid");
            XmlNode xnOldPwd    = xmlDoc.SelectSingleNode("request/oldpwd");
            XmlNode xnNewPwd    = xmlDoc.SelectSingleNode("request/newpwd");


            USER_SHARE_PROJECTMODEL projectModel = ProjectBusiness.GetProjectModelByKey(xnKey.InnerText.Trim());

            if (projectModel == null)
            {
                sResponse.ErrorType = ShareEnum.ApiResultStatus.KeyErr;
                sResponse.ErrorDesc = "不存在的密钥KEY";
                return;
            }

            else
            {
                //oldpwd参数验证
                if (xnOldPwd == null || xnOldPwd.InnerText.Trim().Length == 0)
                {
                    sResponse.ErrorType = ShareEnum.ApiResultStatus.InputParaErr;
                    sResponse.ErrorDesc = "缺少传入参数oldpwd";
                    return;
                }

                //newpwd参数验证
                if (xnNewPwd == null || xnNewPwd.InnerText.Trim().Length == 0)
                {
                    sResponse.ErrorType = ShareEnum.ApiResultStatus.InputParaErr;
                    sResponse.ErrorDesc = "缺少传入参数oldpwd";
                    return;
                }

                //账号Id
                int nAccountId = ValidatorHelper.ToInt(xnAccountId.InnerText.Trim(), 0);

                //accountid参数验证
                if (xnAccountId == null || nAccountId <= 0)
                {
                    sResponse.ErrorType = ShareEnum.ApiResultStatus.InputParaErr;
                    sResponse.ErrorDesc = "缺少传入参数accountid";
                    return;
                }

                string strAppKey = xnKey.InnerText.Trim();

                string strPwd = xnNewPwd.InnerText.Trim();


                USER_SHARE_ACCOUNTMODEL accountModel = AccountBusiness.GetAccountModel(nAccountId);
                if (accountModel == null || accountModel.ACCOUNTPWD != xnOldPwd.InnerText.Trim())
                {
                    sResponse.ErrorType = ShareEnum.ApiResultStatus.OldPassUnCorrect;
                    sResponse.ErrorDesc = "旧密码不正确";
                    return;
                }

                USER_SHARE_COMPANYRELATEMODEL companyModel = CompanyBusiness.GetModel(accountModel.COMPANYID);
                if (companyModel == null)
                {
                    sResponse.ErrorType = ShareEnum.ApiResultStatus.CompanyNotMatchAccount;
                    sResponse.ErrorDesc = "公司信息和账号信息不匹配";
                    return;
                }

                //得到原始密码
                string strOrignalPwd = Enc.Decrypt(strPwd, companyModel.COMPANYCODE.ToString().PadLeft(8, '0'));

                //更新账号密码
                if (!AccountBusiness.UpdatePwd(accountModel.ACCOUNTID, strPwd, strOrignalPwd))
                {
                    sResponse.ErrorType = ShareEnum.ApiResultStatus.ExceptionErr;
                    sResponse.ErrorDesc = "更改密码时出现并发错误,请重试!";
                    return;
                }
            }
        }
        /// <summary>
        /// 账号登陆
        /// </summary>
        /// <param name="context"></param>
        /// <param name="xmlDoc"></param>
        /// <param name="sResponse"></param>
        private void AccountLogin(HttpContext context, XmlDocument xmlDoc, ServiceResponse sResponse)
        {
            XmlNode xnKey         = xmlDoc.SelectSingleNode("request/appkey");
            XmlNode xnCompanyCode = xmlDoc.SelectSingleNode("request/companycode");
            XmlNode xnAccountName = xmlDoc.SelectSingleNode("request/accountname");
            XmlNode xnAccountPwd  = xmlDoc.SelectSingleNode("request/accountpwd");

            USER_SHARE_PROJECTMODEL projectModel = null;

            //appkey参数验证
            if (xnKey.InnerText.Trim().Length > 0)
            {
                projectModel = ProjectBusiness.GetProjectModelByKey(xnKey.InnerText.Trim());
                if (projectModel == null)
                {
                    sResponse.ErrorType = ShareEnum.ApiResultStatus.KeyErr;
                    sResponse.ErrorDesc = "不存在的密钥KEY";
                    context.Response.Write(sResponse.GetXML());
                    return;
                }
                else
                {
                    //companycode参数验证
                    if (xnCompanyCode == null || xnCompanyCode.InnerText.Trim().Length == 0)
                    {
                        sResponse.ErrorType = ShareEnum.ApiResultStatus.InputParaErr;
                        sResponse.ErrorDesc = "缺少传入参数companycode";
                        return;
                    }

                    if (!CompanyBusiness.IsCompanyCodeExists(xnCompanyCode.InnerText.Trim()))
                    {
                        sResponse.ErrorType = ShareEnum.ApiResultStatus.UnValidCompanyCode;
                        sResponse.ErrorDesc = "不存在的公司编码信息";
                        return;
                    }

                    //accountpwd参数验证
                    if (xnAccountPwd == null || xnAccountPwd.InnerText.Trim().Length == 0)
                    {
                        sResponse.ErrorType = ShareEnum.ApiResultStatus.InputParaErr;
                        sResponse.ErrorDesc = "缺少传入参数accountpwd";
                        return;
                    }

                    //accountname参数验证
                    if (xnAccountName == null || xnAccountName.InnerText.Trim().Length == 0)
                    {
                        sResponse.ErrorType = ShareEnum.ApiResultStatus.InputParaErr;
                        sResponse.ErrorDesc = "缺少传入参数accountname";
                        return;
                    }

                    string strAppKey      = xnKey.InnerText.Trim();
                    string strCompanyCode = xnCompanyCode.InnerText.Trim();
                    string strAccountName = xnAccountName.InnerText.Trim();

                    string strPwd = xnAccountPwd.InnerText.Trim();

                    USER_SHARE_ACCOUNTMODEL accountModel = AccountBusiness.GetAccountModel(strCompanyCode, strAccountName, strPwd);

                    if (accountModel == null)
                    {
                        sResponse.ErrorType = ShareEnum.ApiResultStatus.UnValidUser;
                        sResponse.ErrorDesc = "用户名和密码不匹配";
                        return;
                    }
                    if (accountModel.STATUS != int.Parse(ShareEnum.AccountStatus.Normal.ToString("d")))
                    {
                        sResponse.ErrorType = ShareEnum.ApiResultStatus.UnValidUser;
                        sResponse.ErrorDesc = "此用户已停用";
                        return;
                    }

                    USER_SHARE_COMPANYRELATEMODEL companyModel = CompanyBusiness.GetModel(accountModel.COMPANYID);

                    //不存在公司信息或 公司编码和传入的编码不一致
                    if (companyModel == null || companyModel.COMPANYCODE.ToString() != strCompanyCode)
                    {
                        sResponse.ErrorType = ShareEnum.ApiResultStatus.CompanyNotMatchAccount;
                        sResponse.ErrorDesc = "公司信息和账号信息不匹配";
                        return;
                    }
                    if (companyModel.STATUS != int.Parse(ShareEnum.CompanyRelateStatus.Normal.ToString("d")))
                    {
                        sResponse.ErrorType = ShareEnum.ApiResultStatus.CompanyStopUse;
                        sResponse.ErrorDesc = "此公司已停用";
                        return;
                    }
                    StringBuilder sbContent = new StringBuilder();
                    sbContent.AppendFormat("<accountid>{0}</accountid>", accountModel.ACCOUNTID);
                    sbContent.AppendFormat("<truename>{0}</truename>", accountModel.REALNAME);
                    sbContent.AppendFormat("<companyid>{0}</companyid>", companyModel.COMPANYID);
                    sbContent.AppendFormat("<companyname>{0}</companyname>", companyModel.COMPANYNAME);
                    sbContent.AppendFormat("<sharecompanyid>{0}</sharecompanyid>", companyModel.SHARECOMPANYID);
                    sbContent.AppendFormat("<sharecompanyname>{0}</sharecompanyname>", companyModel.COMPANYNAME);
                    sbContent.AppendFormat("<productids>{0}</productids>", companyModel.PRODUCTIDS);
                    sbContent.AppendFormat("<groupid>{0}</groupid>", companyModel.GROUPID);
                    sbContent.AppendFormat("<groupname>{0}</groupname>", companyModel.COMPANYNAME);
                    sbContent.AppendFormat("<groupidn>{0}</groupidn>", companyModel.GROUPIDN);
                    sbContent.Append("<accountmenu>");
                    //账户拥有的菜单返回
                    DataTable dt = CompanyFunBusiness.GetAccountFunMenu(accountModel.ACCOUNTID, accountModel.ISADMIN, projectModel.PROJECTID, accountModel.COMPANYID);
                    if (dt != null && dt.Rows.Count > 0)
                    {
                        foreach (DataRow dr in dt.Rows)
                        {
                            sbContent.AppendFormat(@"<menuitem><menuid>{0}</menuid><name>{1}</name>
                                                 <linkurl>{2}</linkurl><parentid>{3}</parentid><sortnum>{4}</sortnum>
                                                <desc>{5}</desc></menuitem>", dr["FMID"], dr["CFANOTHERNAME"],
                                                   dr["CFPAGEURL"], dr["CFPARENTID"], dr["CFSORTNUM"], dr["CFDESC"]);
                        }
                    }

                    sbContent.Append("</accountmenu>");
                    sResponse.Result = sbContent.ToString();
                }
            }
        }
        /// <summary>
        /// 新开通账号
        /// </summary>
        /// <param name="context"></param>
        /// <param name="xmlDoc"></param>
        /// <param name="sResponse"></param>
        private void AddAccount(HttpContext context, XmlDocument xmlDoc, ServiceResponse sResponse)
        {
            XmlNode xnKey         = xmlDoc.SelectSingleNode("request/appkey");
            XmlNode xnCompanyCode = xmlDoc.SelectSingleNode("request/companycode");
            XmlNode xnAccountName = xmlDoc.SelectSingleNode("request/accountname");
            XmlNode xnAccountPwd  = xmlDoc.SelectSingleNode("request/accountpwd");
            XmlNode xnRealName    = xmlDoc.SelectSingleNode("request/realname");
            XmlNode xnEmail       = xmlDoc.SelectSingleNode("request/email");
            XmlNode xnCreatorId   = xmlDoc.SelectSingleNode("request/creatorid");

            USER_SHARE_PROJECTMODEL projectModel = null;

            //appkey参数验证
            if (xnKey.InnerText.Trim().Length > 0)
            {
                projectModel = ProjectBusiness.GetProjectModelByKey(xnKey.InnerText.Trim());
                if (projectModel == null)
                {
                    sResponse.ErrorType = ShareEnum.ApiResultStatus.KeyErr;
                    sResponse.ErrorDesc = "不存在的密钥KEY";
                    context.Response.Write(sResponse.GetXML());
                    return;
                }
                else
                {
                    //companycode参数验证
                    if (xnCompanyCode == null || xnCompanyCode.InnerText.Trim().Length == 0)
                    {
                        sResponse.ErrorType = ShareEnum.ApiResultStatus.InputParaErr;
                        sResponse.ErrorDesc = "缺少传入参数companycode";
                        return;
                    }

                    if (!CompanyBusiness.IsCompanyCodeExists(xnCompanyCode.InnerText.Trim()))
                    {
                        sResponse.ErrorType = ShareEnum.ApiResultStatus.UnValidCompanyCode;
                        sResponse.ErrorDesc = "不存在的公司编码信息";
                        return;
                    }

                    //accountpwd参数验证
                    if (xnAccountPwd == null || xnAccountPwd.InnerText.Trim().Length == 0)
                    {
                        sResponse.ErrorType = ShareEnum.ApiResultStatus.InputParaErr;
                        sResponse.ErrorDesc = "缺少传入参数accountpwd";
                        return;
                    }

                    //accountname参数验证
                    if (xnAccountName == null || xnAccountName.InnerText.Trim().Length == 0)
                    {
                        sResponse.ErrorType = ShareEnum.ApiResultStatus.InputParaErr;
                        sResponse.ErrorDesc = "缺少传入参数accountname";
                        return;
                    }

                    //判断账号是否重复
                    USER_SHARE_ACCOUNTMODEL accountModel = AccountBusiness.GetAccountModel(xnAccountName.InnerText.Trim(), xnCompanyCode.InnerText.Trim());
                    if (accountModel != null)
                    {
                        sResponse.ErrorType = ShareEnum.ApiResultStatus.AccountNameExists;
                        sResponse.ErrorDesc = "已经存在此账号,请确认!";
                        return;
                    }

                    //realname参数验证
                    if (xnRealName == null || xnRealName.InnerText.Trim().Length == 0)
                    {
                        sResponse.ErrorType = ShareEnum.ApiResultStatus.InputParaErr;
                        sResponse.ErrorDesc = "缺少传入参数realname";
                        return;
                    }

                    //email参数验证
                    if (xnEmail == null || xnEmail.InnerText.Trim().Length == 0)
                    {
                        sResponse.ErrorType = ShareEnum.ApiResultStatus.InputParaErr;
                        sResponse.ErrorDesc = "缺少传入参数email";
                        return;
                    }

                    //creatorid参数验证
                    if (xnCreatorId == null || xnCreatorId.InnerText.Trim().Length == 0 || ValidatorHelper.ToInt(xnCreatorId.InnerText.Trim(), 0) == 0)
                    {
                        sResponse.ErrorType = ShareEnum.ApiResultStatus.InputParaErr;
                        sResponse.ErrorDesc = "缺少传入参数creatorid";
                        return;
                    }

                    //账号信息
                    accountModel             = new USER_SHARE_ACCOUNTMODEL();
                    accountModel.ACCOUNTID   = CommonBusiness.GetSeqID("S_USER_SHARE_ACCOUNT");
                    accountModel.ACCOUNTNAME = xnAccountName.InnerText.Trim();
                    accountModel.ACCOUNTPWD  = xnAccountPwd.InnerText.Trim();
                    accountModel.COMPANYID   = Convert.ToInt32(xnCompanyCode.InnerText.Trim());
                    accountModel.ORIGNALPWD  = Enc.Decrypt(accountModel.ACCOUNTPWD, accountModel.COMPANYID.ToString().PadLeft(8, '0'));
                    accountModel.CREATEDATE  = DateTime.Now;
                    accountModel.REALNAME    = xnRealName.InnerText.Trim();
                    accountModel.EMAIL       = xnEmail.InnerText.Trim();
                    accountModel.STATUS      = int.Parse(ShareEnum.AccountStatus.Normal.ToString("d"));
                    accountModel.ISADMIN     = 0;
                    accountModel.CREATORID   = Convert.ToInt32(xnCreatorId.InnerText.Trim());

                    //日志信息
                    USER_SHARE_LOGMODEL logModel = new USER_SHARE_LOGMODEL();
                    logModel.LOGID          = CommonBusiness.GetSeqID("S_USER_SHARE_LOG");
                    logModel.OPERATEDATE    = DateTime.Now;
                    logModel.OPERATORID     = accountModel.CREATORID;
                    logModel.PROJECTID      = projectModel.PROJECTID;
                    logModel.COMPANYID      = accountModel.COMPANYID;
                    logModel.OPERATETYPE    = int.Parse(ShareEnum.LogType.AddAccount.ToString("d"));
                    logModel.OPERATECONTENT = string.Format("通过接口新增账号信息,账号名称:{0},公司ID:{1} ", xnAccountName.InnerText.Trim(), accountModel.COMPANYID);

                    if (AccountBusiness.AddAccount(accountModel, logModel))
                    {
                        sResponse.Result = string.Format("<accountid>{0}</accountid>", accountModel.ACCOUNTID);
                    }
                }
            }
        }
Example #10
0
        private void SysLogin(int nAccountId, string strAccount, string strPwd, string strAppKey, string strCompanyCode)
        {
            #region 登录

            USER_SHARE_ACCOUNTMODEL account = null;
            if (nAccountId > 0)
            {
                account = AccountBusiness.GetAccountModel(nAccountId);
            }
            else
            {
                account = AccountBusiness.GetAccountModel(strCompanyCode, strAccount, strPwd);
            }
            if (account == null)
            {
                Alert(nAccountId > 0 ? "不存在此账号!" : "用户名密码不匹配!");
                return;
            }
            else
            {
                if (account.STATUS != int.Parse(ShareEnum.AccountStatus.Normal.ToString("d")))
                {
                    Alert("此账号已无效,请确认!");
                    return;
                }

                USER_SHARE_PROJECTMODEL project = null;
                if (strAppKey.Length > 0)
                {
                    project = ProjectBusiness.GetProjectModelByKey(strAppKey);
                    if (project == null)
                    {
                        Alert("不存在的项目密钥,请确认!");
                        return;
                    }
                    if (project.STATUS == int.Parse(ShareEnum.ProjectStatus.StopUse.ToString("d")))
                    {
                        Alert("此项目已停用,请确认!");
                        return;
                    }
                }

                USER_SHARE_COMPANYRELATEMODEL company = CompanyBusiness.GetModel(account.COMPANYID);

                if (company == null)
                {
                    Alert("不存在的公司信息,请确认!");
                    return;
                }
                if (company.STATUS.ToString() == ShareEnum.CompanyRelateStatus.StopUse.ToString("d"))
                {
                    Alert("此公司信息已无效,请确认!");
                    return;
                }
                if (company.COMPANYCODE.ToString() != strCompanyCode)
                {
                    Alert("公司信息和账号信息不匹配");
                    return;
                }

                int nProjectId = ValidatorHelper.ToInt(CommonMethod.GetConfigValue("SYSPROJECTID"), 0);

                HttpCookie ck = new HttpCookie("USP");
                ck.Values.Add("AccountId", account.ACCOUNTID.ToString());
                ck.Values.Add("RealName", Server.UrlEncode(account.REALNAME));
                ck.Values.Add("ProjectId", project == null ? "0" : project.PROJECTID.ToString());
                ck.Values.Add("CompanyId", account.COMPANYID.ToString());
                ck.Values.Add("GroupId", CommonMethod.FinalString(company.GROUPID));
                ck.Values.Add("CompanyName", Server.UrlEncode(company.COMPANYNAME));
                ck.Values.Add("CompanyCode", company.COMPANYCODE.ToString());
                Response.Cookies.Add(ck);

                //由登录页面进入
                if (strAppKey.Length == 0)
                {
                    //公司编码记录到Cookie
                    HttpCookie ckCode = new HttpCookie("CompanyCode");
                    ckCode.Values.Add("CompanyCode", txtCompanyCode.Text.Trim());
                    Response.Cookies.Add(ckCode);
                }

                //获取菜单
                DataTable dt = CompanyFunBusiness.GetAccountFunMenu(account.ACCOUNTID, account.ISADMIN, nProjectId, account.COMPANYID);
                if (dt != null)
                {
                    DataRow[] rows = dt.Select("PROJECTID=" + nProjectId, "");
                    if (rows != null && rows.Length > 0)
                    {
                        Response.Redirect(rows[0]["CFPAGEURL"].ToString());
                    }
                    else
                    {
                        Alert("您没有此系统权限!");
                        return;
                    }
                }
                else
                {
                    Alert("您没有此系统权限!");
                    return;
                }
            }
            #endregion
        }