//获得楼盘信息 public string GetDatProject(int cityId, string projectName, string sDate, string eDate, int pageSize, int pageIndex) { MSSQLDBDAL _mssqldbDal = new MSSQLDBDAL(); DATProject datProject = new DATProject() { CityID = cityId, ProjectName = projectName }; SYSCity _sysctiy = new SYSCity() { CityId = datProject.CityID }; var sysCity = UtilityDALHelper.GetCity(_mssqldbDal, _sysctiy); var sysCityTable = UtilityDALHelper.GetCityTable(_mssqldbDal, _sysctiy); string hsql = string.Format(" {0} {1}", Utility.GetMSSQL_HSQL(sysCityTable.ProjectTable), Utility.GetModelFieldKeyValue(datProject)); UtilityPager pager = new UtilityPager(pageSize, pageIndex); var listDatProject = _mssqldbDal.HQueryPagerList <DATProject>(pager, hsql); return("[{" + string.Format("\"List\":{0},\"PageCount\":{1}", JsonConvert.SerializeObject(listDatProject), pager.Count) + "}]"); }
public DATProjectView(DATProject proj, IList <SYSCity> cityList, IList <SYSArea> areaList) { this.ProjectId = proj.ProjectId; this.ProjectName = proj.ProjectName;; this.AreaID = proj.AreaID; SYSArea area = areaList.Where(p => p.AreaId == proj.AreaID).FirstOrDefault(); if (area != null) { this.AreaName = area.AreaName; } this.CityID = proj.CityID; SYSCity city = cityList.Where(p => p.CityId == proj.CityID).FirstOrDefault(); if (city != null) { this.CityName = city.CityName; } }
/// <summary> /// 获取楼盘下拉列表 /// </summary> /// <param name="key">搜索关键字</param> /// <param name="cityId">当前城市</param> /// <param name="username">当前调用api的username</param> /// <param name="signname">当前调用api的signname</param> /// <param name="appList">当前用户拥有的api集合</param> /// <returns></returns> public static IList <DATProject> GetProjectByLikeName(string key, int cityId, string username, string signname, List <UserCenter_Apps> appList) { var para = new { cityid = cityId, key = key }; DataCenterResult result = Common.PostDataCenter(username, signname, Common.projectdropdownlist, para, appList); IList <DATProject> list = new List <DATProject>(); if (!string.IsNullOrEmpty(result.data)) { JArray _jarray = JArray.Parse(result.data); foreach (JToken jt in _jarray) { JObject _jobject = (JObject)jt; DATProject proj = new DATProject(); proj = _jobject.ToJSONjss().ParseJSONjss <DATProject>(); proj.BuildingNum = Convert.ToInt32(_jobject.Value <JValue>("buildingtotal").Value); proj.TotalNum = Convert.ToInt32(_jobject.Value <JValue>("housetotal").Value); list.Add(proj); } } return(list); }
/// <summary> /// 调出 /// </summary> /// <param name="projects"></param> /// <returns></returns> public static bool Call(List <CAS.Entity.DBEntity.DATProject> projects) { DataBase db = new DataBase(); using (ITransaction tran = db.DB.BeginTransaction()) { try { foreach (var item in projects) { string json = item.ToJSONjss(); DATProject project = JsonHelp.ParseJSONjss <DATProject>(json); project.Status = SYSCodeManager.STATECODE_1; project.FxtProjectId = item.projectid; //db.DB.Create(project, tran); //string buildingJson = item.buildinglist.ToJson(); //List<DATBuilding> buildings = JsonHelp.ParseJSONList<DATBuilding>(buildingJson); ////db.DB.Create<DATBuilding>(buildings, tran); //foreach (var buildingItem in item.buildinglist) //{ // //buildingItem.houselist.GroupBy(m=>m.) // string houseJson = buildingItem.houselist.ToJson(); // List<DATHouse> houses = JsonHelp.ParseJSONList<DATHouse>(houseJson); // //db.DB.Create<DATHouse>(houses, tran); //} } tran.Commit(); } catch (Exception ex) { log.Error(ex.Message, ex); return(false); } } db.Close(); return(true); }
/// <summary> /// 根据楼盘ID获取楼盘详细信息,(根据查勘权限和字表) /// </summary> /// <param name="projectId"></param> /// <param name="cityId"></param> /// <param name="companyId"></param> /// <param name="_lnkpaList"></param> /// <param name="_lnkpcList"></param> /// <param name="phCount"></param> /// <param name="_fxtApi"></param> /// <returns></returns> public static DATProject GetProjectDetailByProjectIdAndCityIdAndCompanyId(int projectId, int cityId, int companyId, out IList <LNKPAppendage> _lnkpaList, out IList <LNKPCompany> _lnkpcList, out int phCount, FxtAPIClientExtend _fxtApi = null) { _lnkpaList = new List <LNKPAppendage>(); _lnkpcList = new List <LNKPCompany>(); phCount = 0; DATProject proj = null; FxtAPIClientExtend fxtApi = new FxtAPIClientExtend(_fxtApi); try { string name = "GetProjectDetailByProjectIdAndCityIdAndCompanyId"; var para = new { projectId = projectId, cityId = cityId, companyId = companyId }; string jsonStr = Convert.ToString(EntranceApi.Entrance(name, para.ToJSONjss(), _fxtApi: fxtApi)); //log.Info(string.Format("获取正式库楼盘信息(wcf):fxtcompanyid:{0},fxtprojectid:{1},cityid:{2},jsonstri:{3}", companyId, projectId, cityId,jsonStr)); FxtApi_PublicResult result = jsonStr.ParseJSONjss <FxtApi_PublicResult>(); if (result == null || string.IsNullOrEmpty(Convert.ToString(result.data))) { fxtApi.Abort(); return(proj); } JObject jobj = JObject.Parse(Convert.ToString(result.data)); proj = jobj.Value <string>("project").ParseJSONjss <DATProject>(); _lnkpaList = jobj.Value <string>("appendage").ParseJSONList <LNKPAppendage>(); phCount = jobj.Value <int>("phcount"); _lnkpcList = jobj.Value <string>("pcompany").ParseJSONList <LNKPCompany>(); fxtApi.Abort(); } catch (Exception ex) { fxtApi.Abort(); log.Error("GetProjectDetailByProjectIdAndCityIdAndCompanyId()", ex); } return(proj); }
//抓取导入,备注,要与SYS_City_Table关联操作添加楼信息 2013.11.29 16:56 public string SpiderExport(string data) { int fxtCompanyId = 25; List <JObject> rList = new List <JObject>(); JArray _jarray = JArray.Parse(data);//解析导入数据 int i = 0; MSSQLDBDAL _dbDal = new MSSQLDBDAL(); while (_jarray.Count > i) { JObject _jobject = (JObject)_jarray[i]; i++; string _jobjectID = _jobject["ID"].Value <string>(); string _jobjectCity = _jobject["城市"].Value <string>(); string _jobjectArea = _jobject["行政区"].Value <string>(); string _jobjectSubArea = _jobject["片区"].Value <string>(); string _jobjectProject = _jobject["楼盘名"].Value <string>(); SYSCity modelSyscity = new SYSCity() { CityName = _jobjectCity }; //验证城市 var vSysCity = UtilityDALHelper.GetCity(_dbDal, modelSyscity); if (vSysCity == null) { rList.Add(SetResult(_jobjectID, string.Format("城市{0}找不到", _jobjectCity))); continue; } //验证城市楼盘 modelSyscity.CityId = vSysCity.CityId; var vSysCityTable = UtilityDALHelper.GetCityTable(_dbDal, vSysCity); if (vSysCityTable == null) { rList.Add(SetResult(_jobjectID, "城市楼盘表找不到")); continue; } //验证行政区 var vSysArea = UtilityDALHelper.GetSYSArea(_dbDal, vSysCity, _jobjectArea); //if (vSysArea == null) //{ // rList.Add(SetResult(_jobjectID, string.Format("行政区:{0}找不到", _jobjectArea))); // continue; //} object _datCase = new DATCase(); //默认案例(楼信息) string datProjectId = string.Empty; //楼盘ID //检索把 楼信息(案例) 添加到所属分区中 if (!string.IsNullOrEmpty(vSysCityTable.ProjectTable.Trim())) { //相关区域楼盘是否找到 //根据全名 //string hsql = // string.Format("{0} Valid=1 and ProjectName='{1}' and CityID={2}", // Utility.GetMSSQL_SQL(typeof(DATProject), // vSysCityTable.ProjectTable.Trim()), // _jobjectProject, // modelSyscity.CityId); //DATProject datProject = _dbDal.GetCustomSQLQueryEntity<DATProject>(hsql); DATProject datProject = UtilityDALHelper.GetProjectByCompanyIdAndCityIdAndProjectName(_dbDal, vSysCityTable.ProjectTable, fxtCompanyId, vSysCity.CityId, _jobjectProject); //根据别名 if (datProject == null) { //string hsql2 = string.Format("{0} Valid=1 and OtherName='{1}' and CityID={2}", // Utility.GetMSSQL_SQL(typeof(DATProject), // vSysCityTable.ProjectTable.Trim()), // _jobjectProject, // modelSyscity.CityId); //datProject = _dbDal.GetCustomSQLQueryEntity<DATProject>(hsql2); datProject = UtilityDALHelper.GetProjectByCompanyIdAndCityIdAndOtherName(_dbDal, vSysCityTable.ProjectTable, fxtCompanyId, vSysCity.CityId, _jobjectProject); } //如果不存在,继续下一个检索 //根据网络名 if (datProject == null)//楼盘不存在要记录 { var sysProjectMatch = UtilityDALHelper.GetListSYSProjectMatch_Fxt(_dbDal, _jobjectProject, vSysCity.CityId); if (sysProjectMatch == null || sysProjectMatch.Count < 1)//检测网络名是否存在 { rList.Add(SetResult(_jobjectID, "1")); continue; } else { datProject = UtilityDALHelper.GetProjectByTableNameAndProjectId(_dbDal, vSysCityTable.ProjectTable.Trim(), Convert.ToInt32(sysProjectMatch[0].ProjectNameId)); //网络名关联的楼盘不存在||可能存在多个 if (datProject == null || !CheckProjectMatchJoinProjectName(datProject.ProjectName)) { rList.Add(SetResult(_jobjectID, "1")); continue; } datProjectId = sysProjectMatch[0].ProjectNameId.ToString(); } } else { datProjectId = datProject.ProjectId.ToString(); } } else { rList.Add(SetResult(_jobjectID, string.Format("城市ID:{0}对应表不存在", _jobjectCity == null ? "null" : _jobjectCity))); continue; } if (!string.IsNullOrEmpty(vSysCityTable.CaseTable.Trim()))//案例(楼信息) { string strCityTable = vSysCityTable.CaseTable.Trim(); //反射创建动态创建对象 _datCase = Utility.LoadAssembly("FxtNHibernate.DATProjectDomain", string.Format("FxtNHibernate.DATProjectDomain.Entities.{0}", strCityTable)); } foreach (var _vobject in _jobject) { string key = _vobject.Key; //去除相关无效信息 if (FilterField().Where(filter => filter.ToLower().Contains(key.ToLower())) .Any()) { continue; } object value = _vobject.Value.Value <string>(); string[] tableArray = GetTableDictionary(key).Split(',');//与外表有关系的列 string tableDictionaryValue = GetTableDictionary(key); string pTypeKey = tableArray.Length == 1 ? GetTableDictionary(key) : tableArray[0]; var propertyObj = _datCase.GetType() .GetProperties() .Where(pInfo => pInfo.Name.Equals(pTypeKey)).FirstOrDefault(); if (propertyObj == null) { continue; } bool convertResult = true; object defaultValue = null; JObject resultObjict = null; int inull = 0; if (tableArray.Length > 1 && !tableArray[1].Equals("notNull"))//是否与其他表有关系 { switch (tableArray[1]) { case "SYS_City": //城市 //根据 城市名称 找到相应的ID value = modelSyscity != null?modelSyscity.CityId.ToString() : null; value = valueType(propertyObj.PropertyType, value.ToString(), out convertResult, out defaultValue); //城市ID break; case "DAT_Project": //楼盘(楼宇) value = valueType(propertyObj.PropertyType, datProjectId, out convertResult, out defaultValue); //楼盘(楼宇)ID break; case "SYS_Area": //行政区 //根据 行政区 找到相应的ID if (vSysArea != null && vSysArea.AreaId == 0) { Utility.ModelSetValue(_datCase, "AreaName", value); } value = vSysArea != null?vSysArea.AreaId.ToString() : null; value = valueType(propertyObj.PropertyType, value.ToString(), out convertResult, out defaultValue); //行政区ID break; case "DAT_Building": //楼宇 //传递名称为空 if (string.IsNullOrEmpty(Convert.ToString(value))) { value = null; inull = 1; break; } //找ID var vdatBuilding = _dbDal.GetCustom <DATBuilding>( (Expression <Func <DATBuilding, bool> >)(datBuilding => datBuilding.BuildingName == value.ToString()) ); value = vdatBuilding != null?vdatBuilding.BuildingId.ToString() : ""; value = valueType(propertyObj.PropertyType, value.ToString(), out convertResult, out defaultValue); //楼宇ID break; case "SYS_Code": //Code //如果Code为户型 if (int.Parse(tableArray[3]) == 4001) { if (!string.IsNullOrEmpty(Convert.ToString(value))) { value = value.ToString().Replace("房", "室"); } } if (string.IsNullOrEmpty(Convert.ToString(value)) || string.IsNullOrEmpty(value.ToString().Trim())) { inull = 1; break; } //根据 Code 找到相应的ID var vsysCode = _dbDal.GetCustom <SYSCode>( (Expression <Func <SYSCode, bool> >)(sysCode => sysCode.CodeName == value.ToString() && sysCode.ID == int.Parse(tableArray[3])) ); //相应Code必须存在,否则退出 if (vsysCode == null && !string.IsNullOrEmpty(value.ToString())) { resultObjict = SetResult(_jobjectID, string.Format("{0}找不到!", key)); //rList.Add(SetResult(_jobjectID, string.Format("{0}找不到!", key))); inull = 1; break; } ////案例类型、用途不能为空 3001 案例类型 1002 用途 //if (vsysCode == null && (key.Contains("3001") || key.Contains("1002"))) //{ // resultObjict = SetResult(_jobjectID, string.Format("{0}不允许为空!", key)); // //rList.Add(SetResult(_jobjectID, string.Format("{0}不允许为空!", key))); // inull = 1; //} if (vsysCode != null && vsysCode.Code == 0 && key.Contains("装修")) { Utility.ModelSetValue(_datCase, "ZhuangXiu", value); } value = vsysCode != null?vsysCode.Code.ToString() : ""; value = valueType(propertyObj.PropertyType, value.ToString(), out convertResult, out defaultValue); //Code break; default: break; } //if (inull > 0)//如果有必填项且为空就跳出 // break; } else { if (key.Contains("配套设施")) { //附属物业 string[] arraySubHouse = { "储藏室", "阁楼", "地下室", "阳光房", "储藏室/地下室" }; StringBuilder sbSubHouse = new StringBuilder(); arraySubHouse.Where(sh => value.ToString().Split(',') .Where(keyval => keyval.Equals(sh)).Any()) .ToList <string>().ForEach(val => { sbSubHouse.AppendFormat("{0},", val); }); Utility.ModelSetValue(_datCase, "SubHouse", sbSubHouse.ToString().TrimEnd(',')); } value = valueType(propertyObj.PropertyType, value.ToString(), out convertResult, out defaultValue); } //有值为空 if (inull > 0) { //并且为必填 if (tableDictionaryValue.Contains("notNull")) { if (resultObjict == null) { resultObjict = SetResult(_jobjectID, string.Format("{0}不允许为空!", key)); } rList.Add(resultObjict); break; } value = defaultValue; } else if (!convertResult)//数据类型转换失败 { //并且为必填 if (tableDictionaryValue.Contains("notNull")) { if (resultObjict == null) { resultObjict = SetResult(_jobjectID, string.Format("{0}格式错误!值:{1}", key, Convert.ToString(value))); } rList.Add(resultObjict); break; } value = defaultValue; } propertyObj.SetValue(_datCase, value, null); } var propertyObjValid = _datCase.GetType() .GetProperties() .Where(pInfo => pInfo.Name.Equals("Valid")).FirstOrDefault(); propertyObjValid.SetValue(_datCase, 1, null); var propertyObjFXTCompanyId = _datCase.GetType() .GetProperties() .Where(pInfo => pInfo.Name.Equals("FXTCompanyId")).FirstOrDefault(); propertyObjFXTCompanyId.SetValue(_datCase, 25, null); var propertyObjCompanyId = _datCase.GetType() .GetProperties() .Where(pInfo => pInfo.Name.Equals("CompanyId")).FirstOrDefault(); propertyObjCompanyId.SetValue(_datCase, 25, null); var propertyObjCreator = _datCase.GetType() .GetProperties() .Where(pInfo => pInfo.Name.Equals("Creator")).FirstOrDefault(); propertyObjCreator.SetValue(_datCase, "网上析取", null); var propertyObjSourceLink = _datCase.GetType() .GetProperties() .Where(pInfo => pInfo.Name.Equals("SourceLink")).FirstOrDefault(); string sourceLike = Convert.ToString(propertyObjSourceLink.GetValue(_datCase, null)); if (!string.IsNullOrEmpty(sourceLike) && sourceLike.Length >= 200) { propertyObjSourceLink.SetValue(_datCase, null, null); } try { Utility.ModelSetValue(_datCase, "CreateDate", DateTime.Now); Utility.ModelSetValue(_datCase, "SaveDateTime", DateTime.Now); DATCase case2 = JsonConvert.DeserializeObject <DATCase>(JsonConvert.SerializeObject(_datCase)); DATCase existsObj = GetCaseIdentical(_dbDal, case2, vSysCityTable.CaseTable); object _obj = null; //如果未导入过 if (existsObj == null) { if (case2.PurposeCode == null || case2.PurposeCode == 0) { rList.Add(SetResult(_jobjectID, "用途不能为null")); continue; } //为别墅类型 if (UtilityDALHelper.GetVillaPurposeCodes().Contains(Convert.ToInt32(case2.PurposeCode))) { //超过范围 if (Convert.ToDecimal(case2.UnitPrice) <= 3000 || Convert.ToDecimal(case2.UnitPrice) >= 200000) { rList.Add(SetResult(_jobjectID, "价格超过范围", true, fxtId: -1)); continue; } } else { int buildingAreaTypeCode = GetSpiderExportBuildingAreaTypeCode(case2.BuildingArea); int avgPrice = 0; DATAvgPriceDay dvgPriceObj = UtilityDALHelper.GetDATAvgPriceDayByProjectIdAndCityIdAndBuildingAreaType(_dbDal, Convert.ToInt32(case2.ProjectId), vSysCity.CityId, buildingAreaTypeCode); if (dvgPriceObj == null && buildingAreaTypeCode != 1005000) { dvgPriceObj = UtilityDALHelper.GetDATAvgPriceDayByProjectIdAndCityIdAndBuildingAreaType(_dbDal, Convert.ToInt32(case2.ProjectId), vSysCity.CityId, buildingAreaTypeCode); } if (dvgPriceObj != null) { avgPrice = dvgPriceObj.AvgPrice; } int maxAvgPrice = avgPrice + Convert.ToInt32(avgPrice * 0.15); int minAvgPrice = avgPrice = Convert.ToInt32(avgPrice * 0.15); //超过范围 if (Convert.ToDecimal(case2.UnitPrice) < minAvgPrice || Convert.ToDecimal(case2.UnitPrice) > maxAvgPrice) { rList.Add(SetResult(_jobjectID, "价格超过范围", true, fxtId: -1)); continue; } } _obj = _dbDal.Create(_datCase); } else { _obj = existsObj.CaseID; } if (!string.IsNullOrEmpty(_obj.ToString()) && long.Parse(_obj.ToString()) > 0) { rList.Add(SetResult(_jobjectID, "", true, fxtId: Convert.ToInt32(_obj))); } else { rList.Add(SetResult(_jobjectID, "添加信息失败")); } } catch (Exception ex) { rList.Add(SetResult(_jobjectID, ex.Message)); } log.Debug("导入案例:" + JsonConvert.SerializeObject(_datCase)); } _dbDal.Close(); return(JsonConvert.SerializeObject(rList)); }