using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.UI.WebControls; using SuperMap.RealEstate.CoreFrameWork; using SuperMap.RealEstate.CoreFrameWork.Dictionary.Business; using SuperMap.RealEstate.ServiceModel; using SuperMap.RealEstate.Web.UI.WebControls; using SuperMap.RealEstate.Web.Utility; using Business = SuperMap.RealEstate.HighWay.Storage.Business; using HZQR.Common; namespace SuperMap.RealEstate.HighWay.Modules.MerchantsManage { public partial class BasePage : SuperMap.RealEstate.Web.UI.PageValid { protected string _PROVINCE_ID = Business.CommonHelper.GetConfigValue("UmiformCommodity").Split('|')[2]; protected string _PROVINCE_CODE = Business.CommonHelper.GetConfigValue("PROVINCE_CODE"); /// /// 省份编码 /// public string GoodsProvinceCode { get; set; } /// /// 省份编码 /// public string GoodsProvinceID { get; set; } /// /// 用户业主单位 /// public string UserProvinceUnit { get; set; } /// /// 统一定价服务区 /// public string WholeServerpartID { get; set; } protected override void OnInit(EventArgs e) { GoodsProvinceCode = ""; WholeServerpartID = Business.CommonHelper.GetConfigValue("UmiformCommodity").Split('|')[0]; try { if (string.IsNullOrWhiteSpace(PassportInfo.ProvinceCode)) { //获取平台账号关联手机号码、省份编码、业主单位 DataTable UserTable = new SuperMap.RealEstate.FrameWork.Business.User(Transaction).ExecuteDataTable( "SELECT USER_MOBILEPHONE,USER_PROVINCE,PROVINCE_UNIT FROM T_USER WHERE User_ID = " + PassportInfo.ID); if (UserTable.Rows.Count > 0) { PassportInfo.ProvinceUnit = UserTable.Rows[0]["PROVINCE_UNIT"].ToString(); PassportInfo.UserMobilephone = UserTable.Rows[0]["USER_MOBILEPHONE"].ToString(); PassportInfo.ProvinceCode = UserTable.Rows[0]["USER_PROVINCE"].ToString(); } } if (!string.IsNullOrWhiteSpace(PassportInfo.ProvinceCode)) { FieldEnum _DIVISION_CODE = DictionaryHelper.GetFieldEnum("DIVISION_CODE", PassportInfo.ProvinceCode, Transaction); GoodsProvinceID = _DIVISION_CODE.FieldEnum_ID.ToString(); } if (!string.IsNullOrWhiteSpace(Request["PROVINCE_CODE"])) { if (Request["PROVINCE_CODE"] == PassportInfo.ProvinceCode.ToEncrypt()) { //判断传入的省份参数是否为本地配置文件省份编码 if (Request["PROVINCE_CODE"] != _PROVINCE_CODE.ToEncrypt()) { GoodsProvinceCode = Request["PROVINCE_CODE"].ToDecrypt(); } //根据省份参数获取统一定价服务区 FieldExplain _FieldExplain = DictionaryHelper.GetFieldExplain("DIVISION_CODE", Transaction); FieldEnum _FieldEnum = new FieldEnum(Transaction); _FieldEnum.AddSearchParameter("FieldExplain_ID", _FieldExplain.FieldExplain_ID); _FieldEnum.AddSearchParameter("FIELDENUM_VALUE", Request["PROVINCE_CODE"].ToDecrypt()); if (_FieldEnum.Search()) { Business.SERVERPART _TSERVERPART = new Business.SERVERPART(Transaction); _TSERVERPART.AddSearchParameter("STATISTIC_TYPE", "4000"); _TSERVERPART.AddSearchParameter("PROVINCE_CODE", _FieldEnum.FieldEnum_ID); if (_TSERVERPART.Search()) { WholeServerpartID = _TSERVERPART.KeyID; } } } else { //判断传入的省份参数是否为本地配置文件省份内码 if (Request["PROVINCE_CODE"] != _PROVINCE_ID.ToEncrypt()) { GoodsProvinceCode = Business.CommonHelper.GetProvinceCode(Request["PROVINCE_CODE"].ToDecryptInt32(), Transaction); } //根据省份参数获取统一定价服务区 Business.SERVERPART _TSERVERPART = new Business.SERVERPART(Transaction); _TSERVERPART.AddSearchParameter("STATISTIC_TYPE", "4000"); _TSERVERPART.AddSearchParameter("PROVINCE_CODE", Request["PROVINCE_CODE"].ToDecrypt()); if (_TSERVERPART.Search()) { WholeServerpartID = _TSERVERPART.KeyID; } } } else if (!string.IsNullOrWhiteSpace(Request["SERVERPART_ID"]) && !Request["SERVERPART_ID"].ToDecrypt().Contains(",")) { //根据服务区参数获取统一定价服务区 Business.SERVERPART _SERVERPART = new Business.SERVERPART(Transaction); _SERVERPART.SERVERPART_ID_Encrypt = Request["SERVERPART_ID"]; if (_SERVERPART.Select()) { Business.SERVERPART _TSERVERPART = new Business.SERVERPART(Transaction); _TSERVERPART.AddSearchParameter("STATISTIC_TYPE", "4000"); _TSERVERPART.AddSearchParameter("PROVINCE_CODE", _SERVERPART.PROVINCE_CODE); if (_TSERVERPART.Search()) { WholeServerpartID = _TSERVERPART.KeyID; } if (_SERVERPART.PROVINCE_CODE.ToString() != _PROVINCE_ID.ToEncrypt()) { GoodsProvinceCode = Business.CommonHelper.GetProvinceCode(_SERVERPART.PROVINCE_CODE, Transaction); } } } else { GoodsProvinceCode = PassportInfo.ProvinceCode; //根据省份编码获取统一定价服务区 FieldEnum _FieldEnum = DictionaryHelper.GetFieldEnum("DIVISION_CODE", GoodsProvinceCode, Transaction); if (_FieldEnum.PropertyObject != null && _FieldEnum.FieldEnum_ID != null) { Business.SERVERPART _TSERVERPART = new Business.SERVERPART(Transaction); _TSERVERPART.AddSearchParameter("STATISTIC_TYPE", "4000"); _TSERVERPART.AddSearchParameter("PROVINCE_CODE", _FieldEnum.FieldEnum_ID); if (_TSERVERPART.Search()) { WholeServerpartID = _TSERVERPART.KeyID; } } } if (!string.IsNullOrWhiteSpace(GoodsProvinceCode) && GoodsProvinceCode != _PROVINCE_CODE) { GoodsProvinceCode = "_" + GoodsProvinceCode; } else { GoodsProvinceCode = ""; } UserProvinceUnit = GetOwnerUnit(PassportInfo.ProvinceUnit); } catch { } base.OnInit(e); } public string GetOwnerUnit(string _UserProvinceUnit) { //如果业主单位为空,则取配置中的业主单位 if (string.IsNullOrEmpty(_UserProvinceUnit)) { string _bReportTitle = ""; try { _bReportTitle = ConfigurationManager.AppSettings["bReportTiTle"].TryParseToString(); if (_bReportTitle.Contains("|") || _bReportTitle.Contains(",")) { string[] _str = _bReportTitle.Split(','); for (int i = 0; i < _str.Length; i++) { string strProvince = _str[i]; if (strProvince.Contains(GoodsProvinceCode)) { _UserProvinceUnit = strProvince.Split('|')[0]; } } } else { _UserProvinceUnit = _bReportTitle.Split('|')[0]; } } catch (Exception ex) { LogUtil.WriteLog(ex, "获取配置bReportTiTle异常", DateTime.Now.ToString("yyyyMMddHHmmss_") + "Ex"); } try { if (string.IsNullOrEmpty(_bReportTitle)) { _UserProvinceUnit = ConfigurationManager.AppSettings["bCompanyName"].TryParseToString(); } } catch (Exception ex) { LogUtil.WriteLog(ex, "获取配置bCompanyName异常", DateTime.Now.ToString("yyyyMMddHHmmss_") + "Ex"); } } return _UserProvinceUnit; } #region BindingDropDownList public void BindingDropDownList(List items, int AutoType_TypeID, string DataSource_Type) { this.BindingDropDownList(items, AutoType_TypeID, DataSource_Type, ""); } public void BindingDropDownList(List items, int AutoType_TypeID, string DataSource_Type, string disabledValue, bool status = true, string Serverpart_ID = "", bool ShowServerpart = false) { DataTable bindingDataSource = this.GetBindingDataSource(AutoType_TypeID, DataSource_Type, disabledValue, status, " ASC", Serverpart_ID); this.BindingDropDownList(items, AutoType_TypeID, DataSource_Type, "-1", disabledValue, 0, status, bindingDataSource, Serverpart_ID, ShowServerpart); } private void BindingDropDownList(List items, int AutoType_TypeID, string DataSource_Type, string pid, string disabledValue, int level, bool status = true, DataTable _DataAll = null, string Serverpart_ID = "", bool ShowServerpart = false, string SPName = "") { if (_DataAll == null) { _DataAll = this.GetBindingDataSource(AutoType_TypeID, DataSource_Type, disabledValue, status, " ASC", Serverpart_ID); } if (ShowServerpart) { foreach (Business.SERVERPART _SERVERPART in new Business.SERVERPART(Transaction).FillCollection( "WHERE SERVERPART_ID IN (" + (string.IsNullOrWhiteSpace(Serverpart_ID) ? "0" : Serverpart_ID) + ") ORDER BY SERVERPART_INDEX,SERVERPART_CODE")) { //ListItemEx listItemEx = new ListItemEx(); //listItemEx.Value = _SERVERPART.SERVERPART_ID.ToString(); //listItemEx.Text = _SERVERPART.SERVERPART_NAME; //listItemEx.Level = level; //listItemEx.Enabled = false; //items.Add(listItemEx); DataRow[] dataRows = _DataAll.Select("AUTOTYPE_PID = " + pid + " AND SERVERPART_ID = " + _SERVERPART.SERVERPART_ID); foreach (DataRow dataRow in dataRows) { ListItemEx listItemEx = new ListItemEx(); listItemEx.Value = dataRow["AUTOTYPE_ID"].ToString(); listItemEx.Text = (string.IsNullOrEmpty(dataRow["AUTOTYPE_CODE"].ToString()) ? "" : "[" + dataRow["AUTOTYPE_CODE"].ToString() + "]") + dataRow["AUTOTYPE_NAME"].ToString() + "【" + _SERVERPART.SERVERPART_NAME.Replace("服务区", "") + "】"; listItemEx.Level = level; if (!status && dataRow["AUTOTYPE_VALID"].ToString() != "0") { listItemEx.Enabled = false; } items.Add(listItemEx); this.BindingDropDownList(items, AutoType_TypeID, DataSource_Type, listItemEx.Value, disabledValue, level + 1, status, _DataAll, "", false, "【" + _SERVERPART.SERVERPART_NAME.Replace("服务区", "") + "】"); } } } else { DataRow[] dataRows = _DataAll.Select("AUTOTYPE_PID = " + pid); foreach (DataRow dataRow in dataRows) { ListItemEx listItemEx = new ListItemEx(); listItemEx.Value = dataRow["AUTOTYPE_ID"].ToString(); listItemEx.Text = (string.IsNullOrEmpty(dataRow["AUTOTYPE_CODE"].ToString()) ? "" : "[" + dataRow["AUTOTYPE_CODE"].ToString() + "]") + dataRow["AUTOTYPE_NAME"].ToString() + SPName; listItemEx.Level = level; if (!status && dataRow["AUTOTYPE_VALID"].ToString() != "0") { listItemEx.Enabled = false; } items.Add(listItemEx); this.BindingDropDownList(items, AutoType_TypeID, DataSource_Type, dataRow["AUTOTYPE_ID"].ToString(), disabledValue, level + 1, status, _DataAll, "", false, SPName); } } } #endregion #region BindingTreeView /// /// 绑定商户自定义类别 /// /// 树节点 /// 自定义类型 /// 数据类型 /// 父级内码 /// 查询内容 /// 是否包含子节点 /// 跳转路由 /// 是否仅显示有效数据 /// 数据源列表 /// 服务区集合 /// /// 是否显示服务区树 /// 是否显示空白节点 public void BindingTreeView(TreeNodeCollection nodes, int AutoType_TypeID, string DataSource_Type = "", string pid = "-1", string obscureName = "", bool withChildNodes = true, string CanUrl = "", bool IsValid = false, DataTable _DataAll = null, string Serverpart_ID = "", bool IsIndent = false, bool ShowServerpart = false, bool displayAll = false) { string _AutoType_Level = ""; DataRow[] _DataRowList = null; if (_DataAll == null) { _DataAll = GetBindingDataSource(AutoType_TypeID, DataSource_Type, "", IsValid, " DESC", Serverpart_ID); } if (ShowServerpart) { foreach (Business.SERVERPART _SERVERPART in new Business.SERVERPART(Transaction).FillCollection( "WHERE SERVERPART_ID IN (" + (string.IsNullOrWhiteSpace(Serverpart_ID) ? "0" : Serverpart_ID) + ") ORDER BY SERVERPART_INDEX,SERVERPART_CODE")) { TreeNode ServerpartNode = new TreeNode(); ServerpartNode.Text = _SERVERPART.SERVERPART_NAME; ServerpartNode.Value = _SERVERPART.SERVERPART_ID.ToString(); if (CanUrl == "") { ServerpartNode.NavigateUrl = UriHelper.AddRequestToUrl("AUTOTYPEPage.aspx", "SERVERPART_ID", _SERVERPART.SERVERPART_ID_Encrypt); } else { ServerpartNode.NavigateUrl = UriHelper.AddRequestToUrl(CanUrl, new Dictionary { { "DEFINETYPE", AutoType_TypeID .ToString()}, { "SERVERPART_ID", _SERVERPART.SERVERPART_ID_Encrypt } }); } ServerpartNode.ImageToolTip = "Serverpart"; ServerpartNode.ImageUrl = ""; ServerpartNode.Expanded = false; #region 绑定服务区商户自定义类别 foreach (DataRow dataRow in _DataAll.Select("SERVERPART_ID = " + ServerpartNode.Value + (pid == "" ? "" : " AND AUTOTYPE_PID = " + pid))) { _AutoType_Level = _AutoType_Level == "" ? dataRow["AUTOTYPE_LEVEL"].ToString() : _AutoType_Level; if (_AutoType_Level != dataRow["AUTOTYPE_LEVEL"].ToString()) { continue; } TreeNode treeNode = new TreeNode(); treeNode.Text = (string.IsNullOrEmpty(dataRow["AUTOTYPE_CODE"].ToString()) ? "" : "【" + dataRow["AUTOTYPE_CODE"].ToString() + "】") + dataRow["AUTOTYPE_NAME"].ToString(); if (IsIndent && treeNode.Text.Length > 18) { treeNode.ToolTip = treeNode.Text; treeNode.Text = treeNode.Text.Substring(0, 18) + "..."; } treeNode.Value = dataRow["AUTOTYPE_ID"].ToString(); if (CanUrl == "") { treeNode.NavigateUrl = UriHelper.AddRequestToUrl("AUTOTYPEPage.aspx?ID=" + treeNode.Value.ToEncrypt() + "&SERVERPART_ID=" + _SERVERPART.SERVERPART_ID_Encrypt, "", ""); } else { treeNode.NavigateUrl = UriHelper.AddRequestToUrl(CanUrl + (CanUrl.Contains("?") ? "" : "?") + "&DEFINETYPE=" + AutoType_TypeID + "&ID=" + treeNode.Value.ToEncrypt() + "&SERVERPART_ID=" + _SERVERPART.SERVERPART_ID_Encrypt, "", ""); } treeNode.ImageToolTip = "AUTOTYPE"; treeNode.ImageUrl = ""; treeNode.Expanded = new bool?(false); ServerpartNode.ChildNodes.AddAt(0, treeNode); treeNode.PopulateOnDemand = true; if (!string.IsNullOrEmpty(obscureName) || withChildNodes) { this.BindingTreeView(treeNode.ChildNodes, AutoType_TypeID, DataSource_Type, dataRow["AUTOTYPE_ID"].ToString(), obscureName, withChildNodes, CanUrl, IsValid, _DataAll, _SERVERPART.SERVERPART_ID.ToString()); treeNode.PopulateOnDemand = false; } if (!string.IsNullOrEmpty(obscureName)) { if (treeNode.ChildNodes.Count == 0) { if (treeNode.Text.IndexOf(obscureName, StringComparison.CurrentCultureIgnoreCase) < 0) { ServerpartNode.ChildNodes.Remove(treeNode); } } else { treeNode.Expanded = new bool?(true); } } } #endregion //添加服务区节点 if (ServerpartNode.ChildNodes.Count > 0 || displayAll) { nodes.Add(ServerpartNode); } } } else { #region 绑定商户自定义类别 _DataRowList = _DataAll.Select(pid == "" ? "1 = 1" : "AUTOTYPE_PID = " + pid); foreach (DataRow dataRow in _DataRowList) { _AutoType_Level = _AutoType_Level == "" ? dataRow["AUTOTYPE_LEVEL"].ToString() : _AutoType_Level; if (_AutoType_Level != dataRow["AUTOTYPE_LEVEL"].ToString()) continue; TreeNode treeNode = new TreeNode(); treeNode.Text = (string.IsNullOrEmpty(dataRow["AUTOTYPE_CODE"].ToString()) ? "" : "【" + dataRow["AUTOTYPE_CODE"].ToString() + "】") + dataRow["AUTOTYPE_NAME"].ToString(); if (IsIndent && treeNode.Text.Length > 18) { treeNode.ToolTip = treeNode.Text; treeNode.Text = treeNode.Text.Substring(0, 18) + "..."; } treeNode.Value = dataRow["AUTOTYPE_ID"].ToString(); if (CanUrl == "") { treeNode.NavigateUrl = UriHelper.AddRequestToUrl("AUTOTYPEPage.aspx?ID=" + treeNode.Value.ToEncrypt() + "&SERVERPART_ID=" + Serverpart_ID.ToEncrypt(), "", ""); } else { treeNode.NavigateUrl = UriHelper.AddRequestToUrl(CanUrl + (CanUrl.Contains("?") ? "" : "?") + "&ID=" + treeNode.Value.ToEncrypt() + "&SERVERPART_ID=" + Serverpart_ID.ToEncrypt(), "", ""); } treeNode.ImageToolTip = "AUTOTYPE"; treeNode.ImageUrl = ""; treeNode.Expanded = new bool?(false); nodes.AddAt(0, treeNode); treeNode.PopulateOnDemand = true; if (!string.IsNullOrEmpty(obscureName) || withChildNodes) { this.BindingTreeView(treeNode.ChildNodes, AutoType_TypeID, DataSource_Type, dataRow["AUTOTYPE_ID"].ToString(), obscureName, withChildNodes, CanUrl, IsValid, _DataAll, Serverpart_ID, IsIndent); treeNode.PopulateOnDemand = false; } if (!string.IsNullOrEmpty(obscureName)) { if (treeNode.ChildNodes.Count == 0) { if (treeNode.Text.IndexOf(obscureName, StringComparison.CurrentCultureIgnoreCase) < 0) { nodes.Remove(treeNode); } } else { treeNode.Expanded = new bool?(true); } } } #endregion } } #endregion #region GetBindingDataSource public DataTable GetBindingDataSource(int AutoType_TypeID, string DataSource_Type, string orderbysql = " ASC", string Serverpart_ID = "") { return this.GetBindingDataSource(AutoType_TypeID, DataSource_Type, "", false, orderbysql, Serverpart_ID); } public DataTable GetBindingDataSource(int AutoType_TypeID, string DataSource_Type, string obscureName = "", bool JudgeValid = false, string orderbysql = " ASC", string Serverpart_ID = "") { string format = "SELECT * FROM HIGHWAY_STORAGE.T_AUTOTYPE WHERE {0} {1} {2} ORDER BY AUTOTYPE_LEVEL,AUTOTYPE_INDEX" + orderbysql + ",AUTOTYPE_CODE" + orderbysql + ",AUTOTYPE_NAME" + orderbysql; string arg = "AutoType_TypeID = " + AutoType_TypeID; string arg2 = string.IsNullOrEmpty(obscureName) ? "" : " AND (AUTOTYPE_NAME LIKE '%" + obscureName + "%' OR AUTOTYPE_CODE LIKE '%" + obscureName + "%')"; string arg3 = (string.IsNullOrEmpty(DataSource_Type) ? "" : " AND DATASOURCE_TYPE IN (" + DataSource_Type + ")") + (string.IsNullOrEmpty(Serverpart_ID) ? "" : " AND SERVERPART_ID IN (" + Serverpart_ID + ")"); if (JudgeValid == true) { arg3 += " and AUTOTYPE_VALID = 1"; } string fullSQLString = string.Format(format, arg, arg2, arg3); return new Business.AUTOTYPE(Transaction).ExecuteDataTable(fullSQLString); } #endregion #region 方法 -> 获取/绑定省份信息 /// /// 绑定省份下拉框 /// /// /// /// /// 是否显示内码 public static void BindingProvinceDDL(Transaction transaction, List items, string obscureName = "", bool HasId = false) { FieldExplain _FieldExplain = DictionaryHelper.GetFieldExplain("DIVISION_CODE", transaction); foreach (FieldEnum _FieldEnum in (new FieldEnum(transaction)).FillCollection("WHERE FIELDEXPLAIN_ID = " + _FieldExplain.FieldExplain_ID + obscureName + " AND FIELDENUM_PID = -1 ORDER BY FIELDENUM_INDEX")) { ListItemEx _ListItemEx = new ListItemEx(); _ListItemEx.Text = _FieldEnum.FieldEnum_Name; if (HasId) { _ListItemEx.Text += "【" + _FieldEnum.FieldEnum_ID + "】"; } _ListItemEx.Value = _FieldEnum.FieldEnum_Value; items.Add(_ListItemEx); } } /// /// 根据枚举内码获取省份 /// /// /// /// public static string GetProvinceCode(int? Province_ID, Transaction _Transaction) { string _ProvinceCode = ""; if (Province_ID != null) { FieldEnum _FieldEnum = new FieldEnum(_Transaction); _FieldEnum.FieldEnum_ID = Province_ID; if (_FieldEnum.Select()) { _ProvinceCode = _FieldEnum.FieldEnum_Value; } } return _ProvinceCode; } /// /// 根据用户权限获取省份 /// /// /// /// public static string GetProvinceCode(string CityAuthority, Transaction _Transaction) { string _ProvinceCode = ""; if (!string.IsNullOrEmpty(CityAuthority)) { Business.SERVERPART _SERVERPART = new Business.SERVERPART(_Transaction); _SERVERPART.AddSearchParameter("SERVERPART_CODE", CityAuthority.Split(',')[0]); if (_SERVERPART.Search()) { FieldEnum _FieldEnum = new FieldEnum(_Transaction); _FieldEnum.FieldEnum_ID = _SERVERPART.PROVINCE_CODE; if (_FieldEnum.Select()) { _ProvinceCode = _FieldEnum.FieldEnum_Value; } } } return _ProvinceCode; } #endregion } }