/// <summary> /// /// </summary> /// <param name="_obj"></param> /// <param name="过滤信息">输出过滤掉的案例</param> /// <returns></returns> public static bool 发布需要整理的数据到服务器(VIEW_案例信息_城市表_网站表 _obj, out 案例库上传信息过滤表 过滤信息, out int fxtId, FxtAPIClientExtend _fxtApi = null) { fxtId = 0; bool result = true; Dictionary <long, int> dic = new Dictionary <long, int>(); List <VIEW_案例信息_城市表_网站表> _list = new List <VIEW_案例信息_城市表_网站表>(); List <案例库上传信息过滤表> 过滤信息List = new List <案例库上传信息过滤表>(); 过滤信息 = null; if (_obj == null) { return(true); } _list.Add(_obj); FxtAPIClientExtend fxtApi = new FxtAPIClientExtend(_fxtApi); try { result = 发布需要整理的数据到服务器(_list, out 过滤信息List, out dic, _fxtApi: fxtApi); if (过滤信息List != null && 过滤信息List.Count > 0) { 过滤信息 = 过滤信息List[0]; } if (dic.ContainsKey(_obj.ID)) { fxtId = dic[_obj.ID]; } fxtApi.Abort(); } catch (Exception ex) { log.Error("发布需要整理的数据到服务器(VIEW_案例信息_城市表_网站表 _obj, out 案例库上传信息过滤表 过滤信息,out int fxtId)", ex); fxtApi.Abort(); return(false); } return(result); }
/// <summary> /// /// </summary> /// <param name="_list"></param> /// <param name="caseIds">输出过滤掉的案例ID</param> /// <returns></returns> public static bool 发布需要整理的数据到服务器(List <VIEW_案例信息_城市表_网站表> _list, out List <案例库上传信息过滤表> 过滤信息, out Dictionary <long, int> 原始库ID对应成功的房讯通ID, FxtAPIClientExtend _fxtApi = null) { 原始库ID对应成功的房讯通ID = new Dictionary <long, int>(); 过滤信息 = new List <案例库上传信息过滤表>(); string json = ""; string nowIp = WcfCheck.GetWcfCheckIp(); string validate = WcfCheck.GetWcfCheckValidData(); if (_list == null || _list.Count < 1) { return(true); } FxtAPIClientExtend fxtServer = new FxtAPIClientExtend(_fxtApi); try { json = _list.FxtApi_GetJson(); if (string.IsNullOrEmpty(json)) { fxtServer.Abort(); return(true); } string name = "SpiderExport"; var para = new { data = json }; string jsonStr = Convert.ToString(EntranceApi.Entrance_FxtSpider(name, para.ToJSONjss(), _fxtApi: fxtServer)); List <SpiderExportResult> list = JsonHelp.ParseJSONList <SpiderExportResult>(jsonStr); foreach (SpiderExportResult obj in list) { if (obj.Success.ToLower().Equals("false")) { VIEW_案例信息_城市表_网站表 obj2 = _list.Find(delegate(VIEW_案例信息_城市表_网站表 _obj2) { return(_obj2.ID == Convert.ToInt64(obj.ID)); }); if (obj2 != null) { int 错误类型ID = StaticValue.其他_ID; string 错误说明 = ""; if (obj.Remark.Equals(SpiderExportResult.Remark_楼盘名不存在)) { 错误类型ID = StaticValue.楼盘名不存在_ID; 错误说明 = "楼盘名不存在"; } else if (obj.Remark.Equals(SpiderExportResult.Remark_系统异常)) { 错误类型ID = StaticValue.系统异常_ID; 错误说明 = "系统异常"; } else { 错误类型ID = StaticValue.其他_ID; 错误说明 = obj.Remark; } 案例库上传信息过滤表 obj3 = new 案例库上传信息过滤表 { 案例ID = obj2.ID, 城市ID = obj2.城市ID, 网站ID = obj2.网站ID, 错误类型ID = 错误类型ID, 错误说明 = 错误说明, 过滤时间 = DateTime.Now }; 过滤信息.Add(obj3); } } else { 原始库ID对应成功的房讯通ID.Add(Convert.ToInt64(obj.ID), obj.FxtId); } } fxtServer.Abort(); } catch (Exception ex) { log.Error("发布需要整理的数据到服务器(List<VIEW_案例信息_城市表_网站表> _list, out List<案例库上传信息过滤表> 过滤信息,out Dictionary<long,int> 原始库ID对应成功的房讯通ID)", ex); fxtServer.Abort(); return(false); } return(true); }
/// <summary> /// /// </summary> /// <param name="list"></param> /// <param name="failList">返回失败的案例</param> /// <returns></returns> public static bool ImportCase(List <VIEW_案例信息_城市表_网站表> list, out List <VIEW_案例信息_城市表_网站表> failList, out string message) { message = ""; failList = new List <VIEW_案例信息_城市表_网站表>(); List <案例库上传信息过滤表> 过滤案例List = null; Dictionary <long, int> dic = new Dictionary <long, int>(); if (!CaseApi.发布需要整理的数据到服务器(list, out 过滤案例List, out dic)) { message = "fxt服务异常"; log.Debug(string.Format("发布需要整理的数据到服务器_异常:(案例ID个数:{0})", list.Count)); return(false); } using (DataClassesDataContext db = new DataClassesDataContext()) { db.Connection.Open(); //开始事务 var tran = db.Connection.BeginTransaction(); try { db.Transaction = tran; //删除此次案例的滤记录 List <long> caseIdList = new List <long>(); if (list != null) { foreach (VIEW_案例信息_城市表_网站表 caseView in list) { caseIdList.Add(caseView.ID); } if (!CaseFilterLogManager.DeleteCaseFilterByCaseIds(caseIdList.ToArray(), db: db)) { message = "系统异常"; log.Debug(string.Format("删除此次案例的滤记录_异常:(案例ID个数:{0},过滤ID数组个数:{1})", list.Count, 过滤案例List.Count)); tran.Rollback(); return(false); } } //记录过滤掉的案例ID if (过滤案例List != null && 过滤案例List.Count > 0) { foreach (案例库上传信息过滤表 obj in 过滤案例List) { VIEW_案例信息_城市表_网站表 obj2 = list.Find(delegate(VIEW_案例信息_城市表_网站表 obj3) { return(obj3.ID == obj.案例ID); }); if (obj2 != null) { failList.Add(obj2); } } if (!CaseFilterLogManager.将上传时被过滤的信息记录到表中(过滤案例List, db)) { message = "将上传时被过滤的信息记录到表中_系统异常"; log.Debug(string.Format("将上传时被过滤的信息记录到表中_异常:(案例ID个数:{0},过滤ID数组个数:{1})", list.Count, 过滤案例List.Count)); tran.Rollback(); return(false); } } //统计入库失败的案例个数 if (!ProjectCaseCountManager.UpdateNotImportCaseCount(list, 过滤案例List, out message, new DAL.DB.DataClass(db))) { log.Debug(string.Format("统计入库失败的案例个数_系统异常:(案例ID个数{0})", list.Count)); tran.Rollback(); return(false); } //记录上传成功的案例ID if (!CaseLogManager.将当前已经整理入库的案例记录表中(list, dic, db)) { message = "将当前已经整理入库的案例记录表中_系统异常"; log.Debug(string.Format("将当前已经整理入库的案例记录表中_系统异常:(案例ID个数{0})", list.Count)); tran.Rollback(); return(false); } db.Transaction.Commit(); } catch (Exception ex) { message = "系统异常"; log.Error(string.Format("系统异常ImportCase(List<VIEW_案例信息_城市表_网站表> list, out List<VIEW_案例信息_城市表_网站表> failList)", list.Count), ex); tran.Rollback(); return(false); } } return(true); }
/// <summary> /// 设置案例楼盘ID,行政区ID,片区ID /// </summary> /// <param name="_list"></param> /// <param name="_dc"></param> /// <returns></returns> public static List <VIEW_案例信息_城市表_网站表> SetProjectId(List <VIEW_案例信息_城市表_网站表> _list, DataClass _dc = null) { if (_list != null && _list.Count > 0) { List <long> longs = new List <long>(); _list.ForEach(delegate(VIEW_案例信息_城市表_网站表 obj) { if ((!string.IsNullOrEmpty(obj.楼盘名.TrimBlank()) && obj.ProjectId == null) || (!string.IsNullOrEmpty(obj.行政区.TrimBlank()) && obj.AreaId == null) || !string.IsNullOrEmpty(obj.片区.TrimBlank()) && obj.SubAreaId == null) { longs.Add(obj.ID); } }); if (longs != null && longs.Count > 0) { DataClass dc = new DataClass(_dc); List <案例信息> list = dc.DB.案例信息.Where(p => longs.Contains(p.ID)).ToList(); list.ForEach(delegate(案例信息 obj) { if (!string.IsNullOrEmpty(obj.楼盘名.TrimBlank()) && obj.ProjectId == null) { SysData_Project project = ProjectManager.GetProjectByProjectNameAndCityId(obj.楼盘名.TrimBlank(), obj.城市ID, _db: dc); if (project == null) { project = ProjectManager.InsertProject(obj.楼盘名, obj.城市ID, Convert.ToInt32(obj.网站ID), _db: dc); } obj.ProjectId = project.ID; obj.楼盘名 = null; } if (!string.IsNullOrEmpty(obj.行政区.TrimBlank()) && obj.AreaId == null) { SysData_Area areaObj = AreaManager.GetAreaByAreaNameLikeByCityId(obj.行政区, obj.城市ID, _db: dc); if (areaObj == null) { areaObj = AreaManager.InsertArea(obj.行政区, obj.城市ID, Convert.ToInt32(obj.网站ID), _db: dc); } obj.AreaId = areaObj.ID; obj.行政区 = null; } else if (string.IsNullOrEmpty(obj.行政区.TrimBlank()) && obj.AreaId == null) { obj.AreaId = 0; obj.行政区 = null; } if (!string.IsNullOrEmpty(obj.片区.TrimBlank()) && obj.SubAreaId == null) { SysData_SubArea subAreaObj = SubAreaManager.GetAreaByAreaNameByCityId(obj.片区, obj.城市ID, _db: dc); if (subAreaObj == null) { subAreaObj = SubAreaManager.InsertArea(obj.片区, obj.城市ID, Convert.ToInt32(obj.网站ID), _db: dc); } obj.SubAreaId = subAreaObj.ID; obj.片区 = null; } VIEW_案例信息_城市表_网站表 vObj = _list.Where(p => p.ID == obj.ID).FirstOrDefault(); if (vObj != null) { vObj.ProjectId = obj.ProjectId; vObj.楼盘名 = obj.楼盘名; vObj.AreaId = obj.AreaId; vObj.行政区 = obj.行政区; vObj.SubAreaId = obj.SubAreaId; vObj.片区 = obj.片区; } }); dc.DB.SubmitChanges(); dc.Connection_Close(); dc.Dispose(); } } return(_list); }
public static string FxtApi_GetJson(this VIEW_案例信息_城市表_网站表 view) { if (view == null) { return(null); } string projectName = ""; string areaName = ""; string subAreaName = ""; if (view.ProjectName == null) { if (!string.IsNullOrEmpty(view.楼盘名)) { projectName = view.楼盘名; } } else { projectName = view.ProjectName; } if (view.AreaName == null) { if (!string.IsNullOrEmpty(view.行政区)) { areaName = view.行政区; } } else { areaName = view.AreaName; } if (view.SubAreaName == null) { if (!string.IsNullOrEmpty(view.片区)) { subAreaName = view.片区; } } else { subAreaName = view.SubAreaName; } StringBuilder sb = new StringBuilder(); sb.Append("{"); sb.Append("\"ID\":\"").Append(view.ID.ToString()).Append("\","); sb.Append("\"楼盘名\":\"").Append(projectName).Append("\","); sb.Append("\"案例时间\":\"").Append(view.案例时间 == null ? "" : view.案例时间.ToString()).Append("\","); sb.Append("\"行政区\":\"").Append(areaName).Append("\","); sb.Append("\"片区\":\"").Append(subAreaName).Append("\","); sb.Append("\"楼栋\":\"").Append(view.楼栋 == null ? "" : view.楼栋).Append("\","); sb.Append("\"房号\":\"").Append(view.房号 == null ? "" : view.房号.ToString()).Append("\","); sb.Append("\"用途\":\"").Append(view.SysData用途 == null ? "" : view.SysData用途.ToString()).Append("\","); sb.Append("\"面积\":\"").Append(view.面积 == null ? "" : Convert.ToString(view.面积)).Append("\","); sb.Append("\"单价\":\"").Append(view.单价 == null ? "" : Convert.ToString(view.单价)).Append("\","); sb.Append("\"案例类型\":\"").Append(view.SysData案例类型 == null ? "" : view.SysData案例类型).Append("\","); sb.Append("\"结构\":\"").Append(view.SysData结构 == null ? "" : view.SysData结构).Append("\","); sb.Append("\"建筑类型\":\"").Append(view.SysData建筑类型 == null ? "" : view.SysData建筑类型).Append("\","); sb.Append("\"总价\":\"").Append(view.总价 == null ? "" : Convert.ToString(view.总价)).Append("\","); sb.Append("\"所在楼层\":\"").Append(view.所在楼层 == null ? "" : Convert.ToString(view.所在楼层)).Append("\","); sb.Append("\"总楼层\":\"").Append(view.总楼层 == null ? "" : Convert.ToString(view.总楼层)).Append("\","); sb.Append("\"户型\":\"").Append(view.SysData户型 == null ? "" : view.SysData户型.Replace("房", "室")).Append("\","); sb.Append("\"朝向\":\"").Append(view.SysData朝向 == null ? "" : view.SysData朝向).Append("\","); sb.Append("\"装修\":\"").Append(view.SysData装修 == null ? "" : view.SysData装修).Append("\","); sb.Append("\"建筑年代\":\"").Append(view.建筑年代 == null ? "" : view.建筑年代).Append("\","); sb.Append("\"信息\":\"").Append(view.信息 == null ? "" : view.信息).Append("\","); sb.Append("\"电话\":\"").Append(view.电话 == null ? "" : view.电话).Append("\","); sb.Append("\"URL\":\"").Append(view.URL == null ? "" : view.URL).Append("\","); sb.Append("\"币种\":\"").Append(view.SysData币种 == null ? "" : view.SysData币种).Append("\","); sb.Append("\"地址\":\"").Append(view.地址 == null ? "" : view.地址).Append("\","); sb.Append("\"创建时间\":\"").Append(view.创建时间 == null ? "" : view.创建时间.ToString()).Append("\","); sb.Append("\"建筑形式\":\"").Append(view.建筑形式 == null ? "" : view.建筑形式).Append("\","); sb.Append("\"花园面积\":\"").Append(view.花园面积 == null ? "" : Convert.ToString(view.花园面积)).Append("\","); sb.Append("\"厅结构\":\"").Append(view.厅结构 == null ? "" : view.厅结构).Append("\","); sb.Append("\"车位数量\":\"").Append(view.车位数量 == null ? "" : Convert.ToString(view.车位数量)).Append("\","); sb.Append("\"配套设施\":\"").Append(view.配套设施 == null ? "" : view.配套设施).Append("\","); sb.Append("\"地下室面积\":\"").Append(view.地下室面积 == null ? "" : Convert.ToString(view.地下室面积)).Append("\","); sb.Append("\"城市\":\"").Append(view.城市 == null ? "" : view.城市).Append("\","); sb.Append("\"网站\":\"").Append(view.网站 == null ? "" : view.网站).Append("\""); sb.Append("}"); return(sb.ToString()); }
public static string Web_GetJson(this VIEW_案例信息_城市表_网站表 view) { if (view == null) { return(null); } string projectName = ""; string areaName = ""; string subAreaName = ""; if (view.ProjectName == null) { if (!string.IsNullOrEmpty(view.楼盘名)) { projectName = view.楼盘名; } } else { projectName = view.ProjectName; } if (view.AreaName == null) { if (!string.IsNullOrEmpty(view.行政区)) { areaName = view.行政区; } } else { areaName = view.AreaName; } if (view.SubAreaName == null) { if (!string.IsNullOrEmpty(view.片区)) { subAreaName = view.片区; } } else { subAreaName = view.SubAreaName; } StringBuilder sb = new StringBuilder(); sb.Append("{"); sb.Append("\"ID\":\"").Append(view.ID.ToString()).Append("\","); sb.Append("\"projectName\":\"").Append(JsonHelp.EncodeField(projectName)).Append("\","); sb.Append("\"caseDate\":\"").Append(JsonHelp.EncodeField(view.案例时间 == null ? "" : view.案例时间.ToString())).Append("\","); sb.Append("\"areaName\":\"").Append(JsonHelp.EncodeField(areaName)).Append("\","); sb.Append("\"areaName2\":\"").Append(JsonHelp.EncodeField(subAreaName)).Append("\","); sb.Append("\"building\":\"").Append(JsonHelp.EncodeField(view.楼栋 == null ? "" : view.楼栋)).Append("\","); sb.Append("\"houseNumber\":\"").Append(JsonHelp.EncodeField(view.房号 == null ? "" : view.房号.ToString())).Append("\","); sb.Append("\"purpose\":\"").Append(JsonHelp.EncodeField(view.SysData用途 == null ? "" : view.SysData用途)).Append("\","); sb.Append("\"are\":\"").Append(JsonHelp.EncodeField(view.面积 == null ? "" : Convert.ToString(view.面积))).Append("\","); sb.Append("\"unitPrice\":\"").Append(JsonHelp.EncodeField(view.单价 == null ? "" : Convert.ToString(view.单价))).Append("\","); sb.Append("\"caseType\":\"").Append(JsonHelp.EncodeField(view.SysData案例类型 == null ? "" : view.SysData案例类型)).Append("\","); sb.Append("\"structure\":\"").Append(JsonHelp.EncodeField(view.SysData结构 == null ? "" : view.SysData结构)).Append("\","); sb.Append("\"buildingType\":\"").Append(JsonHelp.EncodeField(view.SysData建筑类型 == null ? "" : view.SysData建筑类型)).Append("\","); sb.Append("\"totalPrice\":\"").Append(JsonHelp.EncodeField(view.总价 == null ? "" : Convert.ToString(view.总价))).Append("\","); sb.Append("\"floorNumber\":\"").Append(JsonHelp.EncodeField(view.所在楼层 == null ? "" : Convert.ToString(view.所在楼层))).Append("\","); sb.Append("\"totalFloor\":\"").Append(JsonHelp.EncodeField(view.总楼层 == null ? "" : Convert.ToString(view.总楼层))).Append("\","); sb.Append("\"houseType\":\"").Append(JsonHelp.EncodeField(view.SysData户型 == null ? "" : view.SysData户型)).Append("\","); sb.Append("\"front\":\"").Append(JsonHelp.EncodeField(view.SysData朝向 == null ? "" : view.SysData朝向)).Append("\","); sb.Append("\"fitment\":\"").Append(JsonHelp.EncodeField(view.SysData装修 == null ? "" : view.SysData装修)).Append("\","); sb.Append("\"buildingDate\":\"").Append(JsonHelp.EncodeField(view.建筑年代 == null ? "" : view.建筑年代)).Append("\","); sb.Append("\"title\":\"").Append(JsonHelp.EncodeField(view.信息 == null ? "" : view.信息)).Append("\","); sb.Append("\"phone\":\"").Append(JsonHelp.EncodeField(view.电话 == null ? "" : view.电话)).Append("\","); sb.Append("\"url\":\"").Append(JsonHelp.EncodeField(view.URL == null ? "" : view.URL)).Append("\","); sb.Append("\"moneyUnit\":\"").Append(JsonHelp.EncodeField(view.SysData币种 == null ? "" : view.SysData币种)).Append("\","); sb.Append("\"address\":\"").Append(JsonHelp.EncodeField(view.地址 == null ? "" : view.地址)).Append("\","); sb.Append("\"createDate\":\"").Append(JsonHelp.EncodeField(view.创建时间 == null ? "" : view.创建时间.ToString())).Append("\","); sb.Append("\"xingshi\":\"").Append(JsonHelp.EncodeField(view.建筑形式 == null ? "" : view.建筑形式)).Append("\","); sb.Append("\"huayuan\":\"").Append(JsonHelp.EncodeField(view.花园面积 == null ? "" : Convert.ToString(view.花园面积))).Append("\","); sb.Append("\"tingjiegou\":\"").Append(JsonHelp.EncodeField(view.厅结构 == null ? "" : view.厅结构)).Append("\","); sb.Append("\"chewei\":\"").Append(JsonHelp.EncodeField(view.车位数量 == null ? "" : Convert.ToString(view.车位数量))).Append("\","); sb.Append("\"peitao\":\"").Append(JsonHelp.EncodeField(view.配套设施 == null ? "" : view.配套设施)).Append("\","); sb.Append("\"dixiashi\":\"").Append(JsonHelp.EncodeField(view.地下室面积 == null ? "" : Convert.ToString(view.地下室面积))).Append("\","); sb.Append("\"city\":\"").Append(JsonHelp.EncodeField(view.城市 == null ? "" : view.城市)).Append("\","); sb.Append("\"web\":\"").Append(JsonHelp.EncodeField(view.网站 == null ? "" : view.网站)).Append("\","); sb.Append("\"count\":\"").Append(JsonHelp.EncodeField(view.动态排序字段 == null ? "" : view.动态排序字段.ToString())).Append("\","); sb.Append("\"fxtId\":\"").Append(view.fxtId == null ? "" : view.fxtId.ToString()).Append("\""); sb.Append("}"); return(sb.ToString()); }