using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using CommonHelper; using GasolineBlend.BLL; using GasolineBlend.Entity; using GasolineBlend.Filter; using Pissa.Service.DbService; using Operator = NPOI.Util.Operator; namespace GasolineBlend.Controllers { public class PatentSearchController:BaseController { private PatentSearchBLL _acc = new PatentSearchBLL(); private SysService _sysService = new SysService(); /// /// 简单搜索 /// /// /// /// /// /// /// [LoginChecked()] [HttpPost] public ActionResult GetPatentList(string keyWord, List sortFields, string keyWordField="", int pageNo=1,int pageSize=10) { try { PatentSearchAll patentSearchAll = new PatentSearchAll(); patentSearchAll.keyword = keyWord; patentSearchAll.keywordField = keyWordField; patentSearchAll.sortFields = sortFields; patentSearchAll.pageNo = pageNo; patentSearchAll.pageSize = pageSize; var list = _acc.GetPatentSearchResult(patentSearchAll); if (list != null && list.success) { var log = new SysPatentSearchLog(); log.UserId = OperatorProvider.Instance.Current.UserId; log.Keyword = patentSearchAll.keyword; log.KeywordField = patentSearchAll.ToJson(); log.SearchType = "智能搜索"; _sysService.AddPatentSearchLog(log); } return !list.success ? Error("获取智能搜索专利列表失败!"+list.message) : SuccessNoShow(data: list.result); } catch (Exception e) { LogHelper.Write(Level.Error, "获取智能搜索专利列表失败 GetPatentList", e, OperatorProvider.Instance.Current.LoginName); return Error(); } } /// /// 智能/高级搜索 /// /// /// [LoginChecked()] [HttpPost] public ActionResult GetPatentListbyAdvance(PatentSearchAdvance patentSearchAdvance) { try { var list = _acc.GetAdvanceSearchResult(patentSearchAdvance); if (list != null && list.success) { var log = new SysPatentSearchLog(); log.UserId = OperatorProvider.Instance.Current.UserId; log.Keyword = ""; log.KeywordField = "";//待优化patentSearchAdvance.ToJson(); log.SearchType = "高级搜索"; _sysService.AddPatentSearchLog(log); } return !list.success ? Error("获取高级搜索专利列表失败!" + list.message) : SuccessNoShow(data: list.result); } catch (Exception e) { LogHelper.Write(Level.Error, "获取高级搜索专利列表失败 GetPatentListbyAdvance", e, OperatorProvider.Instance.Current.LoginName); return Error(); } } /// /// 获取专利详情 /// /// /// [LoginChecked()] [HttpGet] public ActionResult GetPatentListbyId(string id) { try { PatentSearchDetail patentSearchDetail=new PatentSearchDetail(); patentSearchDetail.id = id; var list = _acc.GetDetailSearchResult(patentSearchDetail); return !list.success ? Error("获取专利详情失败!" + list.message) : SuccessNoShow(data: list.result); } catch (Exception e) { LogHelper.Write(Level.Error, "获取专利详情失败 GetPatentListbyId", e, OperatorProvider.Instance.Current.LoginName); return Error(); } } /// /// 批量搜索 /// /// /// /// /// /// /// [HttpPost] public ActionResult GetPatentListbyPatch(string content,string keywordField,List sortFields, int pageNo = 1, int pageSize = 10) { try { PatentSearchAll patentSearchAll = new PatentSearchAll(); patentSearchAll.content=content.Replace(",",",").Replace(";", ";"); patentSearchAll.keywordField = keywordField; patentSearchAll.sortFields = sortFields; patentSearchAll.pageNo = pageNo; patentSearchAll.pageSize = pageSize; var list = _acc.GetPatchSearchResult(patentSearchAll); return !list.success ? Error("获取批量搜索专利列表失败!" + list.message) : SuccessNoShow(data: list.result); } catch (Exception e) { LogHelper.Write(Level.Error, "获取批量搜索专利列表失败 GetPatentListbyPatch", e, OperatorProvider.Instance.Current.LoginName); return Error(); } } /// /// 获取专利列表相关数据 /// /// /// [HttpPost] public ActionResult GetPatentListCount(PatentSearchCount patentSearchCount) { try { var list = _acc.GetPatentCountResult(patentSearchCount); return !list.success ? Error("获取专利列表相关数据失败!" + list.message) : SuccessNoShow(data: list.result); } catch (Exception e) { LogHelper.Write(Level.Error, "获取专利列表相关数据失败 GetPatentListCount", e, OperatorProvider.Instance.Current.LoginName); return Error(); } } /// /// 获取特色专利分类列表 /// /// [LoginChecked(false)] [HttpGet] public ActionResult GetSpePatentTypeList() { try { var list = _acc.GetSpePatentTypeList(); return !list.success ? ErrorNoShow("获取特色专利分类列表失败!" + list.message) : SuccessNoShow(data: list.result); } catch (Exception e) { LogHelper.Write(Level.Error, "获取特色专利分类列表失败 GetSpePatentTypeList", e, OperatorProvider.Instance.Current.LoginName); return Error(); } } /// /// 专利下载(待完善) /// /// /// /// /// /// [LoginChecked()] [HttpPost] public ActionResult GetPatentDownload(string keyWord, string keyWordField = "", int startNo = 1, int endNo = 10) { try { PatentSearchAll patentSearchAll = new PatentSearchAll(); patentSearchAll.keyword = keyWord; patentSearchAll.keywordField = keyWordField; patentSearchAll.pageNo = 1; patentSearchAll.pageSize = endNo; var list = _acc.GetPatentSearchResult(patentSearchAll); //if (list != null && list.success) //{ // //} return !(list != null && list.success) ? Error("下载智能搜索专利列表失败!" + list.message) : SuccessNoShow(data: list.result); } catch (Exception e) { LogHelper.Write(Level.Error, "下载智能搜索专利列表失败 GetPatentDownload", e, OperatorProvider.Instance.Current.LoginName); return Error(); } } /// /// 查询搜索记录(待完善) /// /// /// /// /// [LoginChecked()] [HttpPost] public ActionResult GetPatentSearchLog(int pageNo, int pageSize,string searchType="") { var userId = OperatorProvider.Instance.Current.UserId; var page = _sysService.GetPatentSearchLog(userId, pageNo, pageSize,searchType); return Success(data: page); } /// /// 法律搜索(暂时不用) /// /// /// /// /// [HttpPost] public ActionResult GetPatentListbyLaw(string lawStatus, int pageNo = 1, int pageSize = 10) { try { PatentSearchAll patentSearchAll = new PatentSearchAll(); patentSearchAll.lawStatus = lawStatus; patentSearchAll.keywordField = ""; patentSearchAll.pageNo = pageNo; patentSearchAll.pageSize = pageSize; var list = _acc.GetLawSearchResult(patentSearchAll); return !list.success ? Error("获取法律搜索专利列表失败!" + list.message) : SuccessNoShow(data: list.result); } catch (Exception e) { LogHelper.Write(Level.Error, "获取法律搜索专利列表失败 GetPatentListbyLaw", e, OperatorProvider.Instance.Current.LoginName); return Error(); } } } }