Commit 072c7bb3 by 庄冰

Merge branch 'igirl-channel' of gitlab.gongsibao.com:jiangyong/zhichan into igirl-channel

parents bf4c109f 5a39c7e9
......@@ -12,6 +12,7 @@ class TmOrderAPI extends APIBase {
this.zcApiUrl = settings.reqZcApi();
this.pushFqbossDataUrl = settings.pushFqbossDataUrl();
this.pushlogSve = system.getObject("service.common.pushlogSve");
this.toolSve = system.getObject("service.trademark.toolSve");
}
/**
* 接口跳转-POST请求
......@@ -43,20 +44,36 @@ class TmOrderAPI extends APIBase {
async opActionProcess(action_process, action_type, action_body, pobj, req) {
action_body.app = req.app;
action_body.user = req.user;
// action_body.app = { id: 1, appPayType: "00", appDataOpType: "00" };
// action_body.user = { id: 1, app_id: 1, nickname: "测试用户",channelUserId:"channelUserIdtest01" };
var opResult = null;
if (["subTmOrder", "getTmOrderList", "getTmOrderInfo", "getTmApplyInfo", "getTmNclList", "getNeedInfo",
"tmConfirm", "updateTmInfo", "updateNclInfo", "updateContacts", "updateCustomerInfo",
"updateCustomerInfo"].indexOf(action_type) >= 0) {
if (!action_body.channelUserId) {
return system.getResult(null, "channelUserId is not empty");
}
}
switch (action_type) {
// sy
case "test"://测试
opResult = system.getResultSuccess(null, "测试成功");
break;
case "getChannelOrderInfo"://获取渠道订单信息
opResult = await this.ordertmproductSve.getChannelOrder(action_body);
opResult.itemCode = action_body.itemCode || "";
opResult.channelParams = action_body.channelParams || "";
case "decryptStr"://
opResult = await this.toolSve.decryptStr(req.app, action_body.opStr);
break;
case "op1688ChannelPushOrder"://处理渠道订单信息
opResult = await this.ordertmproductSve.op1688ChannelPushOrder(action_body);
if (opResult.status == 0) {
opResult.data = null;
var encryptResult = await this.toolSve.encryptStr(req.app, action_body.channelUserId);
if (encryptResult.status == 0 && encryptResult.data && encryptResult.data != "undefined") {
opResult.data = encryptResult.data;
}
}
break;
case "get1688ChannelOrderInfo"://获取渠道订单信息
opResult = await this.ordertmproductSve.get1688ChannelOrder(action_body);
break;
case "subTmOrder"://商标提报
case "subTmOrder"://商标提报
opResult = await this.ordertmproductSve.addTmOrder(action_body);
if (opResult && opResult.status == 0 && opResult.data) {
var returnTms = opResult.data.tm;
......@@ -71,8 +88,8 @@ class TmOrderAPI extends APIBase {
}
pobj.actionBody["deliveryOrderNo"] = opResult.data.deliveryOrderNo;
// await this.pushData(opResult, req, pobj);
var url=this.pushFqbossDataUrl+"api/channelaccessApi/createChannelOrder"
await this.pushData2(opResult, req, pobj,url);
var url = this.pushFqbossDataUrl + "api/channelaccessApi/createChannelOrder"
await this.pushData2(opResult, req, pobj, url);
}
break;
case "getTmOrderList"://商标交付列表
......@@ -91,40 +108,40 @@ class TmOrderAPI extends APIBase {
opResult = await this.trademarkSve.updateTmInfo(action_body);
if (opResult && opResult.status == 0) {
// await this.pushData(opResult, req, pobj);
var url=this.pushFqbossDataUrl+"api/channelaccessApi/updateChannelTmInfo"
await this.pushData2(opResult, req, pobj,url);
var url = this.pushFqbossDataUrl + "api/channelaccessApi/updateChannelTmInfo"
await this.pushData2(opResult, req, pobj, url);
}
break;
case "updateNclInfo"://修改商标订单-商标尼斯信息修改
opResult = await this.trademarkSve.updateNclInfo(action_body);
if (opResult && opResult.status == 0) {
// await this.pushData(opResult, req, pobj);
var url=this.pushFqbossDataUrl+"api/channelaccessApi/updateChannelNclInfo"
await this.pushData2(opResult, req, pobj,url);
var url = this.pushFqbossDataUrl + "api/channelaccessApi/updateChannelNclInfo"
await this.pushData2(opResult, req, pobj, url);
}
break;
case "updateContacts"://修改商标订单-修改商标交付单联系人
opResult = await this.customercontactsSve.updateContacts(action_body);
if (opResult && opResult.status == 0) {
// await this.pushData(opResult, req, pobj);
var url=this.pushFqbossDataUrl+"api/channelaccessApi/updateChannelContacts"
await this.pushData2(opResult, req, pobj,url);
var url = this.pushFqbossDataUrl + "api/channelaccessApi/updateChannelContacts"
await this.pushData2(opResult, req, pobj, url);
}
break;
case "updateCustomerInfo"://修改商标订单-修改申请人信息
opResult = await this.customerinfoSve.updateCustomerInfo(action_body);
if (opResult && opResult.status == 0) {
// await this.pushData(opResult, req, pobj);
var url=this.pushFqbossDataUrl+"api/channelaccessApi/updateChannelCustomerInfo"
await this.pushData2(opResult, req, pobj,url);
var url = this.pushFqbossDataUrl + "api/channelaccessApi/updateChannelCustomerInfo"
await this.pushData2(opResult, req, pobj, url);
}
break;
case "updateOfficial"://修改商标订单-修改交官文件
opResult = await this.customerinfoSve.updateOfficial(action_body);
if (opResult && opResult.status == 0) {
// await this.pushData(opResult, req, pobj);
var url=this.pushFqbossDataUrl+"api/channelaccessApi/updateChannelOfficial"
await this.pushData2(opResult, req, pobj,url);
var url = this.pushFqbossDataUrl + "api/channelaccessApi/updateChannelOfficial"
await this.pushData2(opResult, req, pobj, url);
}
break;
default:
......@@ -163,7 +180,7 @@ class TmOrderAPI extends APIBase {
}
//数据推送fqboss
async pushData2(opResult, req, pobj,url) {
async pushData2(opResult, req, pobj, url) {
var rc = system.getObject("util.execClient");
var obj = pobj.actionBody;
var user = obj.user;
......@@ -177,11 +194,11 @@ class TmOrderAPI extends APIBase {
} else {
rtn = await rc.execPost(obj, url);
}
var returnType ="0";
if(rtn.stdout){
var j=JSON.parse(rtn.stdout);
if(j && j.code==1){
returnType="1";
var returnType = "0";
if (rtn.stdout) {
var j = JSON.parse(rtn.stdout);
if (j && j.code == 1) {
returnType = "1";
}
}
this.pushlogSve.createDb({
......@@ -192,7 +209,7 @@ class TmOrderAPI extends APIBase {
content: JSON.stringify(obj),
resultInfo: JSON.stringify(rtn),
clientIp: req.clientIp,
returnType:returnType,
returnType: returnType,
agent: req.uagent,
opTitle: "数据推送",
});
......@@ -205,7 +222,7 @@ class TmOrderAPI extends APIBase {
content: JSON.stringify(obj),
resultInfo: JSON.stringify(e.stack),
clientIp: req.clientIp,
returnType:'0',
returnType: '0',
agent: req.uagent,
opTitle: "数据推送",
});
......
......@@ -4,7 +4,6 @@ class TmToolsAPI extends APIBase {
constructor() {
super();
this.toolSve = system.getObject("service.trademark.toolSve");
this.toolApi = system.getObject("api.tool.toolApi");
}
/**
* 接口跳转-POST请求
......@@ -22,10 +21,10 @@ class TmToolsAPI extends APIBase {
var result = null;
switch (pobj.actionProcess) {
case "jd"://京东
result = await this.opActionProcess(pobj.actionProcess, pobj.actionType, pobj.actionBody);
result = await this.opActionProcess(pobj.actionProcess, pobj.actionType, pobj.actionBody, req);
break;
case "1688":
result = await this.opActionProcess(pobj.actionProcess, pobj.actionType, pobj.actionBody);
result = await this.opActionProcess(pobj.actionProcess, pobj.actionType, pobj.actionBody, req);
break;
default:
result = system.getResult(null, "actionProcess参数错误");
......@@ -33,13 +32,19 @@ class TmToolsAPI extends APIBase {
}
return result;
}
async opActionProcess(action_process, action_type, action_body) {
async opActionProcess(action_process, action_type, action_body, req) {
var opResult = null;
switch (action_type) {
// sy
case "test"://测试
opResult = system.getResultSuccess(null, "测试成功");
break;
case "encryptStr"://
opResult = await this.toolSve.encryptStr(req.app, action_body.opStr);
break;
case "decryptStr"://
opResult = await this.toolSve.decryptStr(req.app, action_body.opStr);
break;
case "getOssConfig"://
opResult = await this.toolSve.getOssConfig();
break;
......
var System=require("../../../system");
var settings=require("../../../../config/settings");
const querystring = require('querystring');
const ApiBase =require("../../api.base");
class ChinaAffairSearchApi extends ApiBase{
constructor(){
super();
this.affairUrl = settings.reqEsAddrIc()+"bigdata_patent_affair_op/_search";
};
buildDate(date){
var date = new Date(date);
var time = Date.parse(date);
time=time / 1000;
return time;
};
async SearchbyFilingno(obj){//根据申请号查询并根据法律状态日期排序
var pagesize = obj.pagesize==null?10:obj.pagesize;
if(obj.page==null){
var from = 0;
}else{
var from = Number((obj.page-1)*obj.pagesize);
}
var filingno = obj.filingno==null?"":obj.filingno;
if(filingno==""){
return {status:-1,msg:"传入申请号信息为空",data:null,buckets:null};
}
var params= {
"query": {
"bool": {
"must": [
]
}
},
"sort": [
{
"aff_date": "asc"
}
]
};
var param = {
"term": {
"filing_no": filingno
}
}
params.query.bool.must.push(param);
var rc=System.getObject("util.execClient");
var rtn=null;
var requrl = this.affairUrl;
try{
rtn=await rc.execPost(params,requrl);
var j=JSON.parse(rtn.stdout);
return System.getResult2(j.hits,null);
}catch(e){
return rtn=System.getResult2(null,null);
}
};
}
module.exports = ChinaAffairSearchApi;
\ No newline at end of file
var System=require("../../../system");
var settings=require("../../../../config/settings");
const querystring = require('querystring');
const ApiBase =require("../../api.base");
class ChinaPatentSearchApi extends ApiBase{
constructor(){
super();
this.patentUrl = settings.reqEsAddrIc()+"bigdata_patent_op/_search";
};
buildDate(date){
var date = new Date(date);
var time = Date.parse(date);
time=time / 1000;
return time;
};
async ObtainChinaPatentInfo(obj){
console.log("----------------api-ObtainChinaPatentInfo----------------");
console.log(obj);
var params= {
"query": {
"bool": {
"must": []
}
},
};
var applynum=obj.applynum==null?"":obj.applynum;//专利申请号
if (applynum != null && applynum != ""){
var param = {
"term": {
"filing_no": applynum
}
}
params.query.bool.must.push(param)
}
var publishnum=obj.publishnum==null?"":obj.publishnum;//专利公开号
if (publishnum != null && publishnum != ""){
var arr= publishnum.split("");
if(arr[arr.length-1]=="A"){
var param = {
"term": {
"pub_no": publishnum
}
};
}else{
var param = {
"term": {
"gr_no": publishnum
}
};
}
params.query.bool.must.push(param)
}
var rc=System.getObject("util.execClient");
var rtn=null;
var requrl = this.patentUrl;
try{
rtn=await rc.execPost(params,requrl);
var j=JSON.parse(rtn.stdout);
return rtn = {
status:0,
msg:"操作成功",
data:j.hits.hits
};
}catch(e){
return rtn={
status:-1,
msg:"操作失败",
data:null
};
}
};
async CommomSearchbyTitle(obj){//根据标题查询聚合
console.log("--------CommomSearchbyTitle----------");
console.log(obj);
var pagesize = obj.pagesize==null?10:obj.pagesize;
if(obj.page==null){
var from = 0;
}else{
var from = Number((obj.page-1)*obj.pagesize);
}
var title = obj.title==null?"":obj.title;
if(title==""){
return {status:-1,msg:"传入标题信息为空",data:null,buckets:null};
}
var params= {
"query": {
"bool": {
"must": []
}
},
"from": from,
"size": pagesize,
"_source": [
"filing_no",
"filing_time",
"pub_no",
"pub_time",
"gr_no",
"gr_time",
"pub_type",
"applicant_name",
"inventor_name",
"filing_name",
"pub_status"
],
"aggregations": {
"group_by_pub_type": {
"terms": {
"field": "pub_type",
"size": 1000
}
},
"group_by_pub_status": {
"terms": {
"field": "pub_status",
"size": 1000
}
},
"group_by_filing_year": {
"terms": {
"field": "filing_year",
"size": 1000,
"order":{"_term":"desc"}
}
},
"group_by_pub_year": {
"terms": {
"field": "pub_year",
"size": 1000,
"order":{"_term":"desc"}
}
}
}
};
var param = {
"match": {
"filing_name": title
}
}
params.query.bool.must.push(param);
var pubtype=obj.pubtype==null?"":obj.pubtype;//专利类型
if (pubtype != null && pubtype != ""){
param = {
"term": {
"pub_type": pubtype
}
}
params.query.bool.must.push(param)
}
var pubstatus = obj.pubstatus==null?"":obj.pubstatus;//法律状态
if (pubstatus != null && pubstatus != ""){
param = {
"term": {
"pub_status": pubstatus
}
}
params.query.bool.must.push(param)
}
var filingyear = obj.filingyear==null?"":obj.filingyear;//申请年份
if (filingyear != null && filingyear !=""){
param = {
"term": {
"filing_year": filingyear
}
}
params.query.bool.must.push(param)
}
var pubyear = obj.pubyear==null?"":obj.pubyear;//公开年份
if (pubyear != null && pubyear != ""){
param = {
"term": {
"pub_year": pubyear
}
}
params.query.bool.must.push(param)
}
var rc=System.getObject("util.execClient");
var rtn=null;
var requrl = this.patentUrl;
try{
rtn=await rc.execPost(params,requrl);
var j=JSON.parse(rtn.stdout);
return rtn = {
status:0,
msg:"操作成功",
data:j.hits,
buckets:j.aggregations
};
}catch(e){
return rtn={
status:-1,
msg:"操作失败",
data:null,
buckets:null
};
}
};
async CommomSearchbyFilingno(obj){//根据申请号查询聚合
var pagesize = obj.pagesize==null?10:obj.pagesize;
if(obj.page==null){
var from = 0;
}else{
var from = Number((obj.page-1)*obj.pagesize);
}
var filingno = obj.filingno==null?"":obj.filingno;
if(filingno==""){
return {status:-1,msg:"传入的申请号信息为空",data:null,buckets:null};
}
else{
filingno = filingno.replace("CN","").replace("cn","").replace(".","");
if (filingno.length == 13){
filingno = filingno.substr(0,12);
}
else if (filingno.length == 9){
filingno = filingno.substr(0,8);
}
}
var params= {
"query": {
"bool": {
"must": []
}
},
"from": from,
"size": pagesize,
"_source": [
"filing_no",
"filing_time",
"pub_no",
"pub_time",
"gr_no",
"gr_time",
"pub_type",
"applicant_name",
"inventor_name",
"filing_name",
"pub_status"
],
"aggregations": {
"group_by_pub_type": {
"terms": {
"field": "pub_type",
"size": 1000
}
},
"group_by_pub_status": {
"terms": {
"field": "pub_status",
"size": 1000
}
},
"group_by_filing_year": {
"terms": {
"field": "filing_year",
"size": 1000,
"order":{"_term":"desc"}
}
},
"group_by_pub_year": {
"terms": {
"field": "pub_year",
"size": 1000,
"order":{"_term":"desc"}
}
}
}
};
var param = {
"wildcard": {
"filing_no": "*"+filingno+"*"
}
}
params.query.bool.must.push(param);
var pubtype=obj.pubtype==null?"":obj.pubtype;//专利类型
if (pubtype != null && pubtype != ""){
param = {
"term": {
"pub_type": pubtype
}
}
params.query.bool.must.push(param)
}
var pubstatus = obj.pubstatus==null?"":obj.pubstatus;//法律状态
if (pubstatus != null && pubstatus != ""){
param = {
"term": {
"pub_status": pubstatus
}
}
params.query.bool.must.push(param)
}
var filingyear = obj.filingyear==null?"":obj.filingyear;//申请年份
if (filingyear != null && filingyear !=""){
param = {
"term": {
"filing_year": filingyear
}
}
params.query.bool.must.push(param)
}
var pubyear = obj.pubyear==null?"":obj.pubyear;//公开年份
if (pubyear != null && pubyear != ""){
param = {
"term": {
"pub_year": pubyear
}
}
params.query.bool.must.push(param)
}
var rc=System.getObject("util.execClient");
var rtn=null;
var requrl = this.patentUrl;
try{
rtn=await rc.execPost(params,requrl);
var j=JSON.parse(rtn.stdout);
return rtn = {
status:0,
msg:"操作成功",
data:j.hits,
buckets:j.aggregations
};
}catch(e){
return rtn={
status:-1,
msg:"操作失败",
data:null,
buckets:null
};
}
};
async CommomSearchbyPubno(obj){//根据公开号查询聚合
var pagesize = obj.pagesize==null?10:obj.pagesize;
if(obj.page==null){
var from = 0;
}else{
var from = Number((obj.page-1)*obj.pagesize);
}
var pubno = obj.pubno==null?"":obj.pubno;
if(pubno==""){
return {status:-1,msg:"传入的公开号信息为空",data:null,buckets:null};
}
var params= {
"query": {
"bool": {
"must": []
}
},
"from": from,
"size": pagesize,
"_source": [
"filing_no",
"filing_time",
"pub_no",
"pub_time",
"gr_no",
"gr_time",
"pub_type",
"applicant_name",
"inventor_name",
"filing_name",
"pub_status"
],
"aggregations": {
"group_by_pub_type": {
"terms": {
"field": "pub_type",
"size": 1000
}
},
"group_by_pub_status": {
"terms": {
"field": "pub_status",
"size": 1000
}
},
"group_by_filing_year": {
"terms": {
"field": "filing_year",
"size": 1000,
"order":{"_term":"desc"}
}
},
"group_by_pub_year": {
"terms": {
"field": "pub_year",
"size": 1000,
"order":{"_term":"desc"}
}
}
}
};
var param = {
"bool": {
"should": [
]
}
}
var parr = {
"wildcard": {
"pub_no": "*"+pubno+"*"
}
}
param.bool.should.push(parr)
parr = {
"wildcard": {
"gr_no": "*"+pubno+"*"
}
}
param.bool.should.push(parr)
params.query.bool.must.push(param);
var pubtype=obj.pubtype==null?"":obj.pubtype;//专利类型
if (pubtype != null && pubtype != ""){
param = {
"term": {
"pub_type": pubtype
}
}
params.query.bool.must.push(param)
}
var pubstatus = obj.pubstatus==null?"":obj.pubstatus;//法律状态
if (pubstatus != null && pubstatus != ""){
param = {
"term": {
"pub_status": pubstatus
}
}
params.query.bool.must.push(param)
}
var filingyear = obj.filingyear==null?"":obj.filingyear;//申请年份
if (filingyear != null && filingyear !=""){
param = {
"term": {
"filing_year": filingyear
}
}
params.query.bool.must.push(param)
}
var pubyear = obj.pubyear==null?"":obj.pubyear;//公开年份
if (pubyear != null && pubyear != ""){
param = {
"term": {
"pub_year": pubyear
}
}
params.query.bool.must.push(param)
}
var rc=System.getObject("util.execClient");
var rtn=null;
var requrl = this.patentUrl;
try{
rtn=await rc.execPost(params,requrl);
var j=JSON.parse(rtn.stdout);
return rtn = {
status:0,
msg:"操作成功",
data:j.hits,
buckets:j.aggregations
};
}catch(e){
return rtn={
status:-1,
msg:"操作失败",
data:null,
buckets:null
};
}
};
async CommomSearchbyApplicant(obj){//根据申请人查询聚合
var pagesize = obj.pagesize==null?10:obj.pagesize;
if(obj.page==null){
var from = 0;
}else{
var from = Number((obj.page-1)*obj.pagesize);
}
var applicant = obj.applicant==null?"":obj.applicant;
if(applicant==""){
return {status:-1,msg:"传入的申请人信息为空",data:null,buckets:null};
}
var params= {
"query": {
"bool": {
"must": []
}
},
"from": from,
"size": pagesize,
"_source": [
"filing_no",
"filing_time",
"pub_no",
"pub_time",
"gr_no",
"gr_time",
"pub_type",
"applicant_name",
"inventor_name",
"filing_name",
"pub_status"
],
"aggregations": {
"group_by_pub_type": {
"terms": {
"field": "pub_type",
"size": 1000
}
},
"group_by_pub_status": {
"terms": {
"field": "pub_status",
"size": 1000
}
},
"group_by_filing_year": {
"terms": {
"field": "filing_year",
"size": 1000,
"order":{"_term":"desc"}
}
},
"group_by_pub_year": {
"terms": {
"field": "pub_year",
"size": 1000,
"order":{"_term":"desc"}
}
}
}
};
var param = {
"query_string": {
"default_field": "applicant_name",
"query": "\""+ applicant +"\""
}
}
params.query.bool.must.push(param);
var pubtype=obj.pubtype==null?"":obj.pubtype;//专利类型
if (pubtype != null && pubtype != ""){
param = {
"term": {
"pub_type": pubtype
}
}
params.query.bool.must.push(param)
}
var pubstatus = obj.pubstatus==null?"":obj.pubstatus;//法律状态
if (pubstatus != null && pubstatus != ""){
param = {
"term": {
"pub_status": pubstatus
}
}
params.query.bool.must.push(param)
}
var filingyear = obj.filingyear==null?"":obj.filingyear;//申请年份
if (filingyear != null && filingyear !=""){
param = {
"term": {
"filing_year": filingyear
}
}
params.query.bool.must.push(param)
}
var pubyear = obj.pubyear==null?"":obj.pubyear;//公开年份
if (pubyear != null && pubyear != ""){
param = {
"term": {
"pub_year": pubyear
}
}
params.query.bool.must.push(param)
}
var rc=System.getObject("util.execClient");
var rtn=null;
var requrl = this.patentUrl;
try{
rtn=await rc.execPost(params,requrl);
var j=JSON.parse(rtn.stdout);
return rtn = {
status:0,
msg:"操作成功",
data:j.hits,
buckets:j.aggregations
};
}catch(e){
return rtn={
status:-1,
msg:"操作失败",
data:null,
buckets:null
};
}
};
async CommomSearchbyInventor(obj){//根据发明人查询聚合
var pagesize = obj.pagesize==null?10:obj.pagesize;
if(obj.page==null){
var from = 0;
}else{
var from = Number((obj.page-1)*obj.pagesize);
}
var inventor = obj.inventor==null?"":obj.inventor;
if(inventor==""){
return {status:-1,msg:"传入的发明人信息为空",data:null,buckets:null};
}
var params= {
"query": {
"bool": {
"must": []
}
},
"from": from,
"size": pagesize,
"_source": [
"filing_no",
"filing_time",
"pub_no",
"pub_time",
"gr_no",
"gr_time",
"pub_type",
"applicant_name",
"inventor_name",
"filing_name",
"pub_status"
],
"aggregations": {
"group_by_pub_type": {
"terms": {
"field": "pub_type",
"size": 1000
}
},
"group_by_pub_status": {
"terms": {
"field": "pub_status",
"size": 1000
}
},
"group_by_filing_year": {
"terms": {
"field": "filing_year",
"size": 1000,
"order":{"_term":"desc"}
}
},
"group_by_pub_year": {
"terms": {
"field": "pub_year",
"size": 1000,
"order":{"_term":"desc"}
}
}
}
};
var param = {
"query_string": {
"default_field": "inventor_name",
"query": "\""+ inventor +"\""
}
}
params.query.bool.must.push(param);
var pubtype=obj.pubtype==null?"":obj.pubtype;//专利类型
if (pubtype != null && pubtype != ""){
param = {
"term": {
"pub_type": pubtype
}
}
params.query.bool.must.push(param)
}
var pubstatus = obj.pubstatus==null?"":obj.pubstatus;//法律状态
if (pubstatus != null && pubstatus != ""){
param = {
"term": {
"pub_status": pubstatus
}
}
params.query.bool.must.push(param)
}
var filingyear = obj.filingyear==null?"":obj.filingyear;//申请年份
if (filingyear != null && filingyear !=""){
param = {
"term": {
"filing_year": filingyear
}
}
params.query.bool.must.push(param)
}
var pubyear = obj.pubyear==null?"":obj.pubyear;//公开年份
if (pubyear != null && pubyear != ""){
param = {
"term": {
"pub_year": pubyear
}
}
params.query.bool.must.push(param)
}
var rc=System.getObject("util.execClient");
var rtn=null;
var requrl = this.patentUrl;
try{
rtn=await rc.execPost(params,requrl);
var j=JSON.parse(rtn.stdout);
return rtn = {
status:0,
msg:"操作成功",
data:j.hits,
buckets:j.aggregations
};
}catch(e){
return rtn={
status:-1,
msg:"操作失败",
data:null,
buckets:null
};
}
};
async ChinaPatentSrearch(obj){//根据条件查询
var params = {
"query": {
"bool": {
"must": []
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc=System.getObject("util.execClient");
var rtn=null;
var requrl = this.patentUrl;
try{
rtn=await rc.execPost(params,requrl);
var j=JSON.parse(rtn.stdout);
return rtn = {
status:0,
msg:"操作成功",
data:j.hits
};
}catch(e){
return rtn={
status:-1,
msg:"操作失败",
data:null
};
}
};
async seniorSearch(obj){//高级检索,根据用户输入的不同多条件进行检索
var pagesize = obj.pagesize==null?10:obj.pagesize;
if(obj.page==null){
var from = 0;
}else{
var from = Number((obj.page-1)*obj.pagesize);
}
var params = {
"query": {
"bool": {
"must": []
}
},
"from": from,
"size": pagesize,
"_source": [
"filing_no",
"filing_time",
"pub_no",
"pub_time",
"gr_no",
"gr_time",
"pub_type",
"applicant_name",
"inventor_name",
"filing_name",
"pub_status"
]
};
var param = null;
//对关键词
var title=obj.title==null?"":obj.title;
if (title != null && title != ""){
param ={
"match": {
"filing_name": title
}
}
params.query.bool.must.push(param)
}
var abstr = obj.abstr==null?"":obj.abstr;
if (abstr != null && abstr != ""){
param ={
"match": {
"abstr_text": abstr
}
}
params.query.bool.must.push(param)
}
var filingno=obj.filingno==null?"":obj.filingno;
if(filingno!=null && filingno!=""){
filingno = filingno.replace("CN","").replace("cn","").replace(".","");
if (filingno.length == 13){
filingno = filingno.substr(0,12);
}
else if (filingno.length == 9){
filingno = filingno.substr(0,8);
}
param= {
"term": {
"filing_no": filingno
}
}
params.query.bool.must.push(param)
}
var pubno=obj.pubno==null?"":obj.pubno;
if (pubno!=null && pubno!=""){
param = {
"bool": {
"should": [
]
}
}
var parr = {
"term": {
"pub_no": pubno
}
}
param.bool.should.push(parr)
parr = {
"term": {
"gr_no": pubno
}
}
param.bool.should.push(parr)
params.query.bool.must.push(param);
}
var priorno=obj.priorno==null?"":obj.priorno;
if (priorno != null && priorno != ""){
param= {
"nested": {
"path": "prior_info",
"query": {
"bool": {
"must": [
{ "term": { "prior_info.pri_no": priorno}}
]
}
}
}
};
params.query.bool.must.push(param)
}
var appl=obj.applname==null?"":obj.applname;
if (appl!=null && appl!=""){
param= {
"term": {
"applicant_name.raw": appl
}
}
params.query.bool.must.push(param)
}
var inv=obj.invname==null?"":obj.invname;
if (inv!=null && inv!=""){
param= {
"term": {
"inventor_name.raw": inv
}
}
params.query.bool.must.push(param)
}
var ipc=obj.ipcno==null?"":obj.ipcno;
if (ipc!=null && ipc!=""){
var param= {
"term": {
"other_ipc": ipc
}
}
params.query.bool.must.push(param)
}
if(obj.filingdate1!=null && obj.filingdate1!=""){
var filingdate1=obj.filingdate1;
}
else {
var filingdate1 ="";
}
if(obj.filingdate2!=null && obj.filingdate2!=""){
var filingdate2=obj.filingdate2;
}
else {
var filingdate2 = "";
}
if (filingdate1!="" || filingdate2!=""){
param={
"range": {
"filing_time": {
}
}
};
if (filingdate1!=""){
param.range.filing_time["gte"]=filingdate1;
}
if (filingdate2!=""){
param.range.filing_time["lte"]=filingdate2;
}
params.query.bool.must.push(param);
}
if(obj.pubdate1!=null && obj.pubdate1!=""){
var pubdate1=obj.pubdate1;
}
else {
var pubdate1 ="";
}
if(obj.pubdate2!=null && obj.pubdate2!=""){
var pubdate2=obj.pubdate2;
}
else {
var pubdate2 = "";
}
if (pubdate1!="" || pubdate2!=""){
param={
"range": {
"pub_time": {
}
}
};
if (pubdate1!=""){
param.range.pub_time["gte"]=pubdate1;
}
if (pubdate2!=""){
param.range.pub_time["lte"]=pubdate2;
}
params.query.bool.must.push(param);
}
if(obj.grdate1!=null && obj.grdate1!=""){
var grdate1=obj.grdate1;
}
else {
var grdate1 ="";
}
if(obj.grdate2!=null && obj.grdate2!=""){
var grdate2=obj.grdate2;
}
else {
var grdate2 = "";
}
if (grdate1!="" || grdate2!=""){
param={
"range": {
"gr_time": {
}
}
};
if (grdate1!=""){
param.range.gr_time["gte"]=grdate1;
}
if (grdate2!=""){
param.range.gr_time["lte"]=grdate2;
}
params.query.bool.must.push(param);
}
var rc=System.getObject("util.execClient");
var rtn=null;
var requrl = this.patentUrl;
try{
rtn=await rc.execPost(params,requrl);
var j=JSON.parse(rtn.stdout);
return System.getResult2(j.hits,null);
}catch(e){
return rtn=System.getResult2(null,null);
}
};
}
module.exports = ChinaPatentSearchApi;
var System = require("../../../system");
var settings = require("../../../../config/settings");
const querystring = require('querystring');
const ApiBase = require("../../api.base");
class CPatentAggregationsApi extends ApiBase {
constructor() {
super();
this.patentUrl = settings.reqEsAddrIc() + "bigdata_patent_op/_search";
};
buildDate(date) {
var date = new Date(date);
var time = Date.parse(date);
time = time / 1000;
return time;
};
async ApplicantAggs(obj) {//申请人排名聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "applicant_name.raw",
"size": 20,
"order": {
"_count": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AppCountryAggs(obj) {//申请人归属国聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "country_name",
"size": 20,
"order": {
"_count": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async filingyearAggs(obj) {//申请年份聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "filing_year",
"size": 20,
"order": {
"_term": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async PubTypeAggs(obj) {//专利类型聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "pub_type",
"size": 20,
"order": {
"_term": "desc"
}
}
}
}
};
if (obj && obj.length > 0) {
params.query.bool.must = obj;
} else {
return rtn = {
status: -100,
msg: "查询条件为空",
data: null,
buckets: null
};
}
// for (var x in obj) {
// if (obj[x]) {
// params.query.bool.must.push(obj[x]);
// }
// }
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async PubstatusAggs(obj) {//法律状态聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 20,
"aggregations": {
"types": {
"terms": {
"field": "pub_status",
"size": 20,
"order": {
"_term": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async PubstatusnowAggs(obj) {//当前法律状态聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "pub_status_now",
"size": 20,
"order": {
"_count": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async pubyearAggs(obj) {//公开年份聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "pub_year",
"size": 20,
"order": {
"_term": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async pubmonthAggs(obj) {//公开月份聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "pub_month",
"size": 12,
"order": {
"_term": "asc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async filingmonthAggs(obj) {//申请月份聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "filing_month",
"size": 12,
"order": {
"_term": "asc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async grmonthAggs(obj) {//授权月份聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "gr_month",
"size": 12,
"order": {
"_term": "asc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async FmpubyearAggs(obj) {//发明公开年份聚合
var params = {
"query": {
"bool": {
"must": [
{"bool": {"must_not":{"exists" : { "field" : "gr_no" }}}}
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "pub_year",
"size": 20,
"order": {
"_term": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async GryearAggs(obj) {//授权年份年份聚合
var params = {
"query": {
"bool": {
"must": [
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "gr_year",
"size": 20,
"order": {
"_term": "desc"
}
}
}
}
};
obj.push({ "exists": { "field": "gr_no" } });
params.query.bool.must = obj;
// for (var x in obj) {
// if (obj[x]) {
// params.query.bool.must.push(obj[x]);
// }
// }
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AgencyAggs(obj) {//代理机构聚合
var params = {
"query": {
"bool": {
"must": [
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "agency_name.raw",
"size": 20,
"order": {
"_count": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async TitleAggs(obj) {//标题聚合
var params = {
"query": {
"bool": {
"must": [
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "filing_name.raw",
"size": 20,
"order": {
"_count": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async KeyWordAggs(obj) {//关键词聚合聚合
var params = {
"query": {
"bool": {
"must": [
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "key_word",
"size": 40,
"order": {
"_count": "desc"
}
}
}
}
};
// //日志记录
// logCtl.info({
// optitle: "专利关键词聚合聚合ES返回结果--info222",
// op: "/igirl-web/app/base/api/impl/cpatentaggregations.js/KeyWordAggs",
// content: "reqUrl=" + this.patentUrl + ",params.query.bool.must=" +
// JSON.stringify(params.query.bool.must) + ",params.query.bool.must.length=" +
// params.query.bool.must.length + ",obj参数:" + JSON.stringify(obj),
// clientIp: ""
// });
if (obj && obj.length > 0) {
params.query.bool.must = obj;
}
else {
return rtn = {
status: -100,
msg: "参数错误",
data: null,
buckets: null
};
}
// for (var x in obj) {
// if (obj[x] && obj[x] != null && obj[x] != "undefined") {
// params.query.bool.must = obj;
// }
// }
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
//日志记录
// logCtl.info({
// optitle: "专利关键词聚合聚合ES返回结果--info",
// op: "/igirl-web/app/base/api/impl/cpatentaggregations.js/KeyWordAggs",
// content: "reqUrl=" + this.patentUrl + ",参数:" + JSON.stringify(params) + ",result:" + rtn.stdout,
// clientIp: ""
// });
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async CategoryNameAggs(obj) {//行业分类-门类聚合
var params = {
"query": {
"bool": {
"must": [
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "category_name",
"size": 10,
"order": {
"_count": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async BroadNameAggs(obj) {//行业分类-大类聚合
var params = {
"query": {
"bool": {
"must": [
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "broad_name",
"size": 20,
"order": {
"_count": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async MiddleNameAggs(obj) {//行业分类-中类聚合
var params = {
"query": {
"bool": {
"must": [
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "middle_name",
"size": 20,
"order": {
"_count": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async SmallNameAggs(obj) {//行业分类-小类聚合
var params = {
"query": {
"bool": {
"must": [
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "middle_name",
"size": 20,
"order": {
"_count": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AgentAggs(obj) {//代理人聚合
var params = {
"query": {
"bool": {
"must": [
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "agent_name1",
"size": 20,
"order": {
"_count": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AppIpclcAggs(obj) {//Ipc大类聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "large class",
"size": 20,
"order": {
"_count": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AppIpclcMutiAggs(obj) {//申请人Ipc大类聚合//Ipc小类聚合申请人Ipc大类聚合,业务逻辑,先查询申请排名前十的申请人,再加上前十申请人的条件查询排名前十的大类,再加上前十申请人条件和前十大类条件,多重聚合,这个是最后一次聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_appl": {
"terms": {
"field": "applicant_name.raw",
"size": 10,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "large class",
"size": 10,
"order": {
"_term": "desc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AppIpcscAggs(obj) {//Ipc小类聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "sub_class",
"size": 20,
"order": {
"_count": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AppIpcscMutiAggs(obj) {//Ipc小类聚合申请人Ipc小类聚合,业务逻辑,先查询申请排名前十的申请人,再加上前十申请人的条件查询排名前十的小类,再加上前十申请人条件和前十小类条件,多重聚合,这个是最后一次聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_appl": {
"terms": {
"field": "applicant_name.raw",
"size": 10,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "sub_class",
"size": 10,
"order": {
"_term": "desc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AppIpclgAggs(obj) {//Ipc大组聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "large_group",
"size": 20,
"order": {
"_count": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AppIpclgMutiAggs(obj) {//申请人Ipc大组聚合,业务逻辑,先查询申请排名前十的申请人,再加上前十申请人的条件查询排名前十的大组,再加上前十申请人条件和前十大组条件,多重聚合,这个是最后一次聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_appl": {
"terms": {
"field": "applicant_name.raw",
"size": 10,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "large_group",
"size": 10,
"order": {
"_term": "desc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AppIpcAggs(obj) {//Ipc聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "main_ipc",
"size": 20,
"order": {
"_count": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AppIpcMutiAggs(obj) {//申请人Ipc直属聚合,业务逻辑,先查询申请排名前十的申请人,再加上前十申请人的条件查询排名前十的IPC,再加上前十申请人条件和前十IPC条件,多重聚合,这个是最后一次聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_appl": {
"terms": {
"field": "applicant_name.raw",
"size": 10,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "main_ipc",
"size": 10,
"order": {
"_term": "desc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AppPubtypeAggs(obj) {//申请人专利类型聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_appl": {
"terms": {
"field": "applicant_name.raw",
"size": 10,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_pubtype": {
"terms": {
"field": "pub_type",
"size": 10,
"order": {
"_term": "desc"
}
}
}
}
}
}
};
for (var x in obj) {
if(obj[x]){
params.query.bool.must.push(obj[x]);
}
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AppPubstatusAggs(obj) {//申请人专利法律效力聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_appl": {
"terms": {
"field": "applicant_name.raw",
"size": 10,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_pubstatus": {
"terms": {
"field": "pub_status",
"size": 10,
"order": {
"_term": "desc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AppfilingyearAggs(obj) {//申请人申请趋势聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_appl": {
"terms": {
"field": "applicant_name.raw",
"size": 10,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_filingyear": {
"terms": {
"field": "filing_year",
"size": 10,
"order": {
"_term": "asc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AppfmsqAggs(obj) {//申请人发明授权聚合
var params = {
"query": {
"bool": {
"must": [
{"exists" : { "field" : "gr_no" }}
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "applicant_name.raw",
"size": 20,
"order": {
"_term": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async InventorAggs(obj) {//发明人排名聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "inventor_name.raw",
"size": 20,
"order": {
"_count": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async InvIpcMutiAggs(obj) {//发明人Ipc直属聚合,业务逻辑,先查询申请排名前十的发明人,再加上前十发明人的条件查询排名前十的IPC,再加上前十发明人条件和前十IPC条件,多重聚合,这个是最后一次聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_inv": {
"terms": {
"field": "inventor_name.raw",
"size": 10,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "main_ipc",
"size": 10,
"order": {
"_term": "desc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async InvPubtypeAggs(obj) {//发明人专利类型聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_inv": {
"terms": {
"field": "inventor_name.raw",
"size": 10,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_pubtype": {
"terms": {
"field": "pub_type",
"size": 10,
"order": {
"_term": "desc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async InvPubstatusAggs(obj) {//发明人专利法律效力聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_inv": {
"terms": {
"field": "inventor_name.raw",
"size": 10,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_pubstatus": {
"terms": {
"field": "pub_status",
"size": 10,
"order": {
"_term": "desc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async InvfilingyearAggs(obj) {//发明人申请趋势聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_inv": {
"terms": {
"field": "inventor_name.raw",
"size": 10,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_filingyear": {
"terms": {
"field": "filing_year",
"size": 10,
"order": {
"_term": "asc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async InvPubyearAggs(obj) {//发明人公开趋势聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_inv": {
"terms": {
"field": "inventor_name.raw",
"size": 10,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_pubyear": {
"terms": {
"field": "pub_year",
"size": 10,
"order": {
"_term": "asc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async ProvinceAggs(obj) {//省份聚合
var params = {
"query": {
"bool": {
"must": [
{"exists" : { "field" : "province_name" }}
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "province_name",
"size": 50,
"order": {
"_count": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async cityAggs(obj) {//二级地市聚合
var params = {
"query": {
"bool": {
"must": [
{"exists" : { "field" : "city_name" }}
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "city_name",
"size": 50,
"order": {
"_count": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async countyAggs(obj) {//三级县市聚合
var params = {
"query": {
"bool": {
"must": [
{"exists" : { "field" : "county_name" }}
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "county_name",
"size": 50,
"order": {
"_count": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async ForeignCountryAggs(obj) {//外国在华申请聚合
var params = {
"query": {
"bool": {
"must": [
{
"bool": {
"must_not": {
"term": {
"country_name": "中国"
}
}
}
}
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "country_name",
"size": 20,
"order": {
"_count": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async ForeignIpcAggs(obj) {//外国在华IPC聚合
var params = {
"query": {
"bool": {
"must": [
{
"bool": {
"must_not": {
"term": {
"country_name": "中国"
}
}
}
}
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_country": {
"terms": {
"field": "country_name",
"size": 20,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "main_ipc",
"size": 10,
"order": {
"_term": "desc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async ForeignLcAggs(obj) {//外国在华大类聚合
var params = {
"query": {
"bool": {
"must": [
{
"bool": {
"must_not": {
"term": {
"country_name": "中国"
}
}
}
}
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_country": {
"terms": {
"field": "country_name",
"size": 20,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "large class",
"size": 10,
"order": {
"_term": "desc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async ForeignScAggs(obj) {//外国在华小类聚合
var params = {
"query": {
"bool": {
"must": [
{
"bool": {
"must_not": {
"term": {
"country_name": "中国"
}
}
}
}
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_country": {
"terms": {
"field": "country_name",
"size": 20,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "sub_class",
"size": 10,
"order": {
"_term": "desc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async ForeignLgAggs(obj) {//外国在华大组聚合
var params = {
"query": {
"bool": {
"must": [
{
"bool": {
"must_not": {
"term": {
"country_name": "中国"
}
}
}
}
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_country": {
"terms": {
"field": "country_name",
"size": 20,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "large_group",
"size": 10,
"order": {
"_term": "desc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async IpcFilingyearAggs(obj) {//IPC申请趋势聚合
var params = {
"query": {
"bool": {
"must": [
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "main_ipc",
"size": 20,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_year": {
"terms": {
"field": "filing_year",
"size": 10,
"order": {
"_term": "asc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async IpcLgFilingyearAggs(obj) {//IPC大组申请趋势聚合
var params = {
"query": {
"bool": {
"must": [
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "large_group",
"size": 20,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_year": {
"terms": {
"field": "filing_year",
"size": 10,
"order": {
"_term": "asc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async IpcLcFilingyearAggs(obj) {//IPC大类申请趋势聚合
var params = {
"query": {
"bool": {
"must": [
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "large class",
"size": 20,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_year": {
"terms": {
"field": "filing_year",
"size": 10,
"order": {
"_term": "asc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async IpcScFilingyearAggs(obj) {//IPC小类申请趋势聚合
var params = {
"query": {
"bool": {
"must": [
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "sub_class",
"size": 20,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_year": {
"terms": {
"field": "filing_year",
"size": 10,
"order": {
"_term": "asc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async pubtypeFilingyearAggs(obj) {//专利类型申请趋势聚合
var params = {
"query": {
"bool": {
"must": [
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_type": {
"terms": {
"field": "pub_type",
"size": 20,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_year": {
"terms": {
"field": "filing_year",
"size": 10,
"order": {
"_term": "asc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async pubtypePubyearAggs(obj) {//专利类型公开趋势聚合
var params = {
"query": {
"bool": {
"must": [
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_type": {
"terms": {
"field": "pub_type",
"size": 20,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_year": {
"terms": {
"field": "pub_year",
"size": 10,
"order": {
"_term": "asc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AgencyPubtypeAggs(obj) {//代理机构类型趋势聚合
var params = {
"query": {
"bool": {
"must": [
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_agency": {
"terms": {
"field": "agency_name.raw",
"size": 10,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_type": {
"terms": {
"field": "pub_type",
"size": 10,
"order": {
"_term": "asc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AgencyFilingyearAggs(obj) {//代理机构申请趋势聚合
var params = {
"query": {
"bool": {
"must": [
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_agency": {
"terms": {
"field": "agency_name.raw",
"size": 10,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_year": {
"terms": {
"field": "filing_year",
"size": 10,
"order": {
"_term": "asc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AgencyPubyearAggs(obj) {//代理机构公开趋势聚合
var params = {
"query": {
"bool": {
"must": [
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_agency": {
"terms": {
"field": "agency_name.raw",
"size": 20,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_year": {
"terms": {
"field": "pub_year",
"size": 10,
"order": {
"_term": "asc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AgencyIpcAggs(obj) {//代理机构IPC趋势聚合
var params = {
"query": {
"bool": {
"must": [
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_agency": {
"terms": {
"field": "agency_name.raw",
"size": 10,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "main_ipc",
"size": 10,
"order": {
"_term": "asc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AgencyLcAggs(obj) {//代理机构大类趋势聚合
var params = {
"query": {
"bool": {
"must": [
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_agency": {
"terms": {
"field": "agency_name.raw",
"size": 10,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "large class",
"size": 10,
"order": {
"_term": "asc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AgencyfmsqAggs(obj) {//代理机构发明授权聚合
var params = {
"query": {
"bool": {
"must": [
{"exists" : { "field" : "gr_no" }}
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "agency_name.raw",
"size": 10,
"order": {
"_term": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AgencyScAggs(obj) {//代理机构小类趋势聚合
var params = {
"query": {
"bool": {
"must": [
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_agency": {
"terms": {
"field": "agency_name.raw",
"size": 10,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "sub_class",
"size": 10,
"order": {
"_term": "asc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AgencyLgAggs(obj) {//代理机构大组趋势聚合
var params = {
"query": {
"bool": {
"must": [
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_agency": {
"terms": {
"field": "agency_name.raw",
"size": 10,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "large_group",
"size": 10,
"order": {
"_term": "asc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AgentPubtypeAggs(obj) {//代理人类型趋势聚合
var params = {
"query": {
"bool": {
"must": [
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_agency": {
"terms": {
"field": "agent_name1",
"size": 10,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_type": {
"terms": {
"field": "pub_type",
"size": 10,
"order": {
"_term": "asc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async provincePubstatusAggs(obj,areaname,type) {//根据传的省|市|县信息不同类型聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_country": {
"terms": {
"field": "province_name",
"size": 50,
"order": {
"_count": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
if(type==2){
if(areaname=='北京市' || areaname=='天津市' ||areaname=='重庆市' ||areaname=='上海市')
{
params.aggregations.group_by_country.terms.field="county_name";
}
else{
params.aggregations.group_by_country.terms.field="city_name";
}
}
else if (type ==3 || type == 4){
params.aggregations.group_by_country.terms.field="county_name";
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
}
module.exports = CPatentAggregationsApi;
var System=require("../../../system");
var settings=require("../../../../config/settings");
const ApiBase = require("../../api.base");
var pinyin = require("pinyin");
class patentApi extends ApiBase{
constructor(){
super();
this.service=System.getObject("service.patent.patentycSve");
this.GsbByChinaPatentSearchApi = System.getObject("api.patent.chinapatentsearch");
this.GsbByWorldPatentSearchApi = System.getObject("api.patent.wordpatentsearch");
this.GsbByChinaAffairSearchApi = System.getObject("api.patent.chinaaffairsearch");
}
//专利价值评价
async patentrank(pobj,obj,req){
var result = await this.service.patentrank(obj);
return System.getResult2(result,null);
}
//专利价值评价报告
async obtainreport(pobj,obj,req){
var result = await this.service.obtainreport(obj);
return System.getResult2(result,null);
}
//申请人分析-申请人排名
async applierRank(pobj, obj, req) {
var result = await this.service.applierRank(obj);
return System.getResult2(result, null);
};
//申请人分析-申请人归属国分析
async applierCity(pobj, obj, req) {
var result = await this.service.applierCity(obj);
return System.getResult2(result, null);
};
//申请人分析-申请人IPC分析
async applierIpc(pobj, obj, req) {
var result = await this.service.applierIpc(obj);
return System.getResult2(result, null);
};
//申请人分析-申请人专利类型分布
async applierPatenttype(pobj, obj, req) {
var result = await this.service.applierPatenttype(obj);
return System.getResult2(result, null);
};
//申请人分析-申请人专利法律效力
async applierPatentStatus(pobj, obj, req) {
var result = await this.service.applierPatentStatus(obj);
return System.getResult2(result, null);
};
//申请人分析-申请人申请趋势分析
async applierTrend(pobj, obj, req) {
var result = await this.service.applierTrend(obj);
return System.getResult2(result, null);
};
//申请人分析-申请人发明授权率
async applierAuthRate(pobj, obj, req) {
var result = await this.service.applierAuthRate(obj);
return System.getResult2(result, null);
};
//发明人分析-发明人排名
async inventorRank(pobj, obj, req) {
var result = await this.service.inventorRank(obj);
return System.getResult2(result, null);
};
//发明人分析-主要发明人技术构成
async mainInventorIpc(pobj, obj, req) {
var result = await this.service.mainInventorIpc(obj);
return System.getResult2(result, null);
};
//发明人分析-主要发明人专利类型分布
async mainInventorPatenttype(pobj, obj, req) {
var result = await this.service.mainInventorPatenttype(obj);
return System.getResult2(result, null);
};
//发明人分析-主要发明人专利法律效力*/
async mainInventorPatentstatus(pobj, obj, req) {
var result = await this.service.mainInventorPatentstatus(obj);
return System.getResult2(result, null);
};
//发明人分析-主要发明人申请趋势
async mainInventorApplyTrend(pobj, obj, req) {
var result = await this.service.mainInventorApplyTrend(obj);
return System.getResult2(result, null);
};
//发明人分析-主要发明人公开趋势*/
async mainInventorPublicTrend(pobj, obj, req) {
var result = await this.service.mainInventorPublicTrend(obj);
return System.getResult2(result, null);
};
async countrywidePatnet(pobj, obj, req) {//*区域分析-全国专利分布
var result = await this.service.countrywidePatnet(obj);
return System.getResult2(result, null);
};
async everyCountryPatent(pobj, obj, req) {//区域分析-各国专利分布
var result = await this.service.everyCountryPatent(obj);
return System.getResult2(result, null);
};
async foreignApplyInChina(pobj, obj, req) {//区域分析-外国在华申请分布
var result = await this.service.foreignApplyInChina(obj);
return System.getResult2(result, null);
};
async mainCountryIpc(pobj, obj, req) {//区域分析-主要国家IPC分布
var result = await this.service.mainCountryIpc(obj);
return System.getResult2(result, null);
};
async reportGeneration(pobj, obj, req) {//导出报告
var result = await this.service.reportGeneration(obj);
return System.getResult2(result, null);
};
async mainCountryApplyTrend(pobj, obj, req) {//区域分析-主要国家申请趋势
var result = await this.service.mainCountryApplyTrend(obj);
return System.getResult2(result, null);
};
async patentIpc(pobj, obj, req) {//技术结构分析-专利IPC分析
var result = await this.service.patentIpc(obj);
return System.getResult2(result, null);
};
async wgsjPatent(pobj, obj, req) {//技术结构分析-外观设计分类分析
var result = await this.service.wgsjPatent(obj);
return System.getResult2(result, null);
};
async foreignInChinaPatent(pobj, obj, req) {//技术结构分析-外国在华专利IPC分布
var result = await this.service.foreignInChinaPatent(obj);
return System.getResult2(result, null);
};
async fmPatentIpc(pobj, obj, req) {//技术结构分析-发明专利IPC 分布
var result = await this.service.fmPatentIpc(obj);
return System.getResult2(result, null);
};
async mainIpcTrend(pobj, obj, req) {//技术结构分析-主要IPC趋势分析
var result = await this.service.mainIpcTrend(obj);
return System.getResult2(result, null);
};
async applyTrend(pobj, obj, req) {//趋势分析-申请趋势
var result = await this.service.applyTrend(obj);
return System.getResult2(result, null);
};
async publicTrend(pobj, obj, req) {//趋势分析-公开趋势
var result = await this.service.publicTrend(obj);
return System.getResult2(result, null);
};
async authorizeTrend(pobj, obj, req) {//趋势分析-授权趋势
var result = await this.service.authorizeTrend(obj);
return System.getResult2(result, null);
};
async patenttypeStatus(pobj, obj, req) {//法律状态分析-各专利类型分布
var result = await this.service.patenttypeStatus(obj);
return System.getResult2(result, null);
};
async statusEffect(pobj, obj, req) {//法律状态分析-法律效力分布
var result = await this.service.statusEffect(obj);
return System.getResult2(result, null);
};
async nowStatus(pobj, obj, req) {//法律状态分析-当前法律状态分布
var result = await this.service.nowStatus(obj);
return System.getResult2(result, null);
};
async authStatus(pobj, obj, req) {//法律状态分析-授权状态分布
var result = await this.service.authStatus(obj);
return System.getResult2(result, null);
};
async everyApplyTrend(pobj, obj, req) {//法律状态分析-各专利类型申请趋势
var result = await this.service.everyApplyTrend(obj);
return System.getResult2(result, null);
};
async everyPublicTrend(pobj, obj, req) {//法律状态分析-各专利类型公开趋势
var result = await this.service.everyPublicTrend(obj);
return System.getResult2(result, null);
};
async agentRank(pobj, obj, req) {//代理人/机构分析-代理机构排名
var result = await this.service.agentRank(obj);
return System.getResult2(result, null);
};
async agentApplyTrend(pobj, obj, req) { //代理人/机构分析-代理机构专利申请趋势
var result = await this.service.agentApplyTrend(obj);
return System.getResult2(result, null);
};
async agentPatenttype(pobj, obj, req) { //代理人/机构分析-代理机构专利类型分布
var result = await this.service.agentPatenttype(obj);
return System.getResult2(result, null);
};
async agentFmAuthorize(pobj, obj, req) {//代理人/机构分析-代理机构发明授权率
var result = await this.service.agentFmAuthorize(obj);
return System.getResult2(result, null);
};
async agentIpc(pobj, obj, req) {//代理人/机构分析-代理机构IPC分布
var result = await this.service.agentIpc(obj);
return System.getResult2(result, null);
};
async agentPersonRank(pobj, obj, req) {//代理人/机构分析-代理人排名
var result = await this.service.agentPersonRank(obj);
return System.getResult2(result, null);
};
async mainAgentPatenttype(pobj, obj, req){//代理人/机构分析-主要代理人专利类型分布
var result = await this.service.mainAgentPatenttype(obj);
return System.getResult2(result, null);
};
async advancedsearch(pobj, obj) {
console.log("--------------advancedsearch---------------");
console.log(obj);
var datalist = [];
var patent1 = [];
var patent2 = [];
var total = 0;
var total1 = 0;
var total2 = 0;
var range1 = obj.range.china.join();
var database = "";
if (range1.indexOf("香港") >= 0) {
if (database) {
database = database + "+" + "HKPATENT";
} else {
database = database + "HKPATENT";
}
}
if (range1.indexOf("台湾") >= 0) {
if (database) {
database = database + "+" + "TWZL";
} else {
database = database + "TWZL";
}
}
if (range1.indexOf("澳门") >= 0) {
if (database) {
database = database + "+" + "MACZL";
} else {
database = database + "MACZL";
}
}
for (var i = 0; i < obj.range.main.length; i++) {
if (obj.range.main[i] == "EPO") {
if (database) {
database = database + "+" + "EPPATENT";
} else {
database = database + "EPPATENT";
}
}
if (obj.range.main[i] == "WIPO") {
if (database) {
database = database + "+" + "WOPATENT";
} else {
database = database + "WOPATENT";
}
}
if (obj.range.main[i] == "美国") {
if (database) {
database = database + "+" + "USPATENT";
} else {
database = database + "USPATENT";
}
}
if (obj.range.main[i] == "日本") {
if (database) {
database = database + "+" + "JPPATENT";
} else {
database = database + "JPPATENT";
}
}
if (obj.range.main[i] == "韩国") {
if (database) {
database = database + "+" + "KRPATENT";
} else {
database = database + "KRPATENT";
}
}
if (obj.range.main[i] == "英国") {
if (database) {
database = database + "+" + "GBPATENT";
} else {
database = database + "GBPATENT";
}
}
if (obj.range.main[i] == "法国") {
if (database) {
database = database + "+" + "FRPATENT";
} else {
database = database + "FRPATENT";
}
}
if (obj.range.main[i] == "德国") {
if (database) {
database = database + "+" + "DEPATENT";
} else {
database = database + "DEPATENT";
}
}
if (obj.range.main[i] == "俄罗斯") {
if (database) {
database = database + "+" + "RUPATENT";
} else {
database = database + "RUPATENT";
}
}
if (obj.range.main[i] == "瑞士") {
if (database) {
database = database + "+" + "CHPATENT";
} else {
database = database + "CHPATENT";
}
}
}
for (var i = 0; i < obj.range.other.length; i++) {
if (obj.range.other[i] == "奥地利") {
if (database) {
database = database + "+" + "ATPATENT";
} else {
database = database + "ATPATENT";
}
}
if (obj.range.other[i] == "澳大利亚") {
if (database) {
database = database + "+" + "AUPATENT";
} else {
database = database + "AUPATENT";
}
}
if (obj.range.other[i] == "西班牙") {
if (database) {
database = database + "+" + "ESPATENT";
} else {
database = database + "ESPATENT";
}
}
if (obj.range.other[i] == "意大利") {
if (database) {
database = database + "+" + "ITPATENT";
} else {
database = database + "ITPATENT";
}
}
if (obj.range.other[i] == "加拿大") {
if (database) {
database = database + "+" + "CAPATENT";
} else {
database = database + "CAPATENT";
}
}
if (obj.range.other[i] == "瑞典") {
if (database) {
database = database + "+" + "SEPATENT";
} else {
database = database + "SEPATENT";
}
}
}
if (range1.indexOf("中国大陆") >= 0 && database.length != 0) {
var size = obj.pagesize / 2;
} else {
var size = obj.pagesize;
}
if (range1.indexOf("中国大陆") != -1) {
console.log("-----------------中国大陆--------");
var data1 = {
appKey: "9d9bcbb6a82f44dbbdb185afe28032bc",
pagesize: size,
page: obj.currentpage,
title: obj.patentname,
abstr: obj.abstract,
filingno: obj.applynum,
pubno: obj.publishnum,
priorno: obj.priornum,
applname: obj.applier,
invname: obj.inventor,
ipcno: obj.ipc,
filingdate1: obj.applydate1,
filingdate2: obj.applydate2,
pubdate1: obj.publishdate1,
pubdate2: obj.publishdate2,
grdate1: obj.grantdate1,
grdate2: obj.grantdate2
};
var patentinfo1 = await this.GsbByChinaPatentSearchApi.seniorSearch(data1);
}
if (range1.indexOf("香港") != -1 || range1.indexOf("澳门") != -1 || range1.indexOf("台湾") != -1
|| obj.range.main.length != 0 || obj.range.other.length != 0) {
console.log("-----------------国外--------");
var data2 = {
appKey: "9d9bcbb6a82f44dbbdb185afe28032bc",
pagesize: size,
page: obj.currentpage,
danames: database,
title: obj.patentname,
abstr: obj.abstract,
filingno: obj.applynum,
pubno: obj.publishnum,
priorno: obj.priornum,
applname: obj.applier,
invname: obj.inventor,
ipcno: obj.ipc,
filingdate1: obj.applydate1,
filingdate2: obj.applydate2,
pubdate1: obj.publishdate1,
pubdate2: obj.publishdate2,
grdate1: obj.grantdate1,
grdate2: obj.grantdate2
};
var patentinfo2 = await this.GsbByWorldPatentSearchApi.seniorSearch(data2);
}
if (patentinfo1) {
if (patentinfo1.status == 0) {
console.log("----------patentdata1-------------");
console.log(patentinfo1);
total1 = patentinfo1.data.total;
var patentdata1 = patentinfo1.data.hits;
for (var i = 0; i < patentinfo1.data.hits.length; i++) {
var publish_num = "";
var publish_date = "";
if (patentinfo1.data.hits[i]._source.pub_type == "发明") {
publish_num = patentinfo1.data.hits[i]._source.pub_no;
publish_date = patentinfo1.data.hits[i]._source.pub_time;
} else {
publish_num = patentinfo1.data.hits[i]._source.gr_no;
publish_date = patentinfo1.data.hits[i]._source.gr_time;
}
var applierinfo = "";
if (patentinfo1.data.hits[i]._source.applicant_name != null) {
for (var j = 0; j < patentinfo1.data.hits[i]._source.applicant_name.length; j++) {
if (applierinfo) {
applierinfo = applierinfo + "," + patentinfo1.data.hits[i]._source.applicant_name[j];
} else {
applierinfo = applierinfo + patentinfo1.data.hits[i]._source.applicant_name[j];
}
}
}
var inventorinfo = "";
if (patentinfo1.data.hits[i]._source.inventor_name != null) {
for (var j = 0; j < patentinfo1.data.hits[i]._source.inventor_name.length; j++) {
if (inventorinfo) {
inventorinfo = inventorinfo + "," + patentinfo1.data.hits[i]._source.inventor_name[j];
} else {
inventorinfo = inventorinfo + patentinfo1.data.hits[i]._source.inventor_name[j];
}
}
}
var pubstatus = "";
if (patentinfo1.data.hits[i]._source.pub_status != null) {
pubstatus = patentinfo1.data.hits[i]._source.pub_status;
}
var item = {
applynum: patentinfo1.data.hits[i]._source.filing_no,
publishnum: publish_num,
patentname: patentinfo1.data.hits[i]._source.filing_name,
applier: applierinfo,
inventor: inventorinfo,
applydate: patentinfo1.data.hits[i]._source.filing_time,
publishdate: publish_date,
articletype: patentinfo1.data.hits[i]._source.pub_type,
pubstatus: pubstatus
}
patent1.push(item);
}
}
}
if (patentinfo2) {
if (patentinfo2.status == 0) {
console.log("----------patentdata2-------------");
console.log(patentinfo2);
total2 = patentinfo2.data.total;
var patentdata2 = patentinfo2.data.hits;
for (var i = 0; i < patentinfo2.data.hits.length; i++) {
var applierinfo = "";
if (patentinfo2.data.hits[i]._source.applicant_name != null) {
for (var j = 0; j < patentinfo2.data.hits[i]._source.applicant_name.length; j++) {
if (applierinfo) {
applierinfo = applierinfo + "," + patentinfo2.data.hits[i]._source.applicant_name[j];
} else {
applierinfo = applierinfo + patentinfo2.data.hits[i]._source.applicant_name[j];
}
}
}
var inventorinfo = "";
if (patentinfo2.data.hits[i]._source.inventor_name != null) {
for (var j = 0; j < patentinfo2.data.hits[i]._source.inventor_name.length; j++) {
if (inventorinfo) {
inventorinfo = inventorinfo + "," + patentinfo2.data.hits[i]._source.inventor_name[j];
} else {
inventorinfo = inventorinfo + patentinfo2.data.hits[i]._source.inventor_name[j];
}
}
}
var item = {
applynum: patentinfo2.data.hits[i]._source.app_number,
publishnum: patentinfo2.data.hits[i]._source.pub_number,
patentname: patentinfo2.data.hits[i]._source.title_name,
applier: applierinfo,
inventor: inventorinfo,
applydate: patentinfo2.data.hits[i]._source.app_date,
publishdate: patentinfo2.data.hits[i]._source.pub_date,
articletype: patentinfo2.data.hits[i]._source.pub_type,
pubstatus: ""
}
patent2.push(item);
}
}
}
total = total1 + total2;
for (var i = 0; i < patent1.length; i++) {
datalist.push(patent1[i]);
}
for (var i = 0; i < patent2.length; i++) {
datalist.push(patent2[i]);
}
var result = {
total: total,
dataList: datalist,
}
console.log("----------result--------------");
console.log(result);
return System.getResult2(result, null);
};
async simplesearch(pobj, obj) {
console.log("--------------obtainpatentinfo---------------");
console.log(obj);
var datalist1 = { patenttype: [], status: [], applydate: [], publishdate: [] };
var datalist2 = [];
var juhe1 = { patenttype: [], status: [], applydate: [], publishdate: [] };
var patent1 = [];
var juhe2 = { patenttype: [], status: [], applydate: [], publishdate: [] };
var patent2 = [];
var range1 = obj.range.china.join();
var database = "";
var total = 0;
var total1 = 0;
var total2 = 0;
if (range1.indexOf("香港") >= 0) {
if (database) {
database = database + "+" + "HKPATENT";
} else {
database = database + "HKPATENT";
}
}
if (range1.indexOf("台湾") >= 0) {
if (database) {
database = database + "+" + "TWZL";
} else {
database = database + "TWZL";
}
}
if (range1.indexOf("澳门") >= 0) {
if (database) {
database = database + "+" + "MACZL";
} else {
database = database + "MACZL";
}
}
for (var i = 0; i < obj.range.main.length; i++) {
if (obj.range.main[i] == "EPO") {
if (database) {
database = database + "+" + "EPPATENT";
} else {
database = database + "EPPATENT";
}
}
if (obj.range.main[i] == "WIPO") {
if (database) {
database = database + "+" + "WOPATENT";
} else {
database = database + "WOPATENT";
}
}
if (obj.range.main[i] == "美国") {
if (database) {
database = database + "+" + "USPATENT";
} else {
database = database + "USPATENT";
}
}
if (obj.range.main[i] == "日本") {
if (database) {
database = database + "+" + "JPPATENT";
} else {
database = database + "JPPATENT";
}
}
if (obj.range.main[i] == "韩国") {
if (database) {
database = database + "+" + "KRPATENT";
} else {
database = database + "KRPATENT";
}
}
if (obj.range.main[i] == "英国") {
if (database) {
database = database + "+" + "GBPATENT";
} else {
database = database + "GBPATENT";
}
}
if (obj.range.main[i] == "法国") {
if (database) {
database = database + "+" + "FRPATENT";
} else {
database = database + "FRPATENT";
}
}
if (obj.range.main[i] == "德国") {
if (database) {
database = database + "+" + "DEPATENT";
} else {
database = database + "DEPATENT";
}
}
if (obj.range.main[i] == "俄罗斯") {
if (database) {
database = database + "+" + "RUPATENT";
} else {
database = database + "RUPATENT";
}
}
if (obj.range.main[i] == "瑞士") {
if (database) {
database = database + "+" + "CHPATENT";
} else {
database = database + "CHPATENT";
}
}
}
for (var i = 0; i < obj.range.other.length; i++) {
if (obj.range.other[i] == "奥地利") {
if (database) {
database = database + "+" + "ATPATENT";
} else {
database = database + "ATPATENT";
}
}
if (obj.range.other[i] == "澳大利亚") {
if (database) {
database = database + "+" + "AUPATENT";
} else {
database = database + "AUPATENT";
}
}
if (obj.range.other[i] == "西班牙") {
if (database) {
database = database + "+" + "ESPATENT";
} else {
database = database + "ESPATENT";
}
}
if (obj.range.other[i] == "意大利") {
if (database) {
database = database + "+" + "ITPATENT";
} else {
database = database + "ITPATENT";
}
}
if (obj.range.other[i] == "加拿大") {
if (database) {
database = database + "+" + "CAPATENT";
} else {
database = database + "CAPATENT";
}
}
if (obj.range.other[i] == "瑞典") {
if (database) {
database = database + "+" + "SEPATENT";
} else {
database = database + "SEPATENT";
}
}
}
if (range1.indexOf("中国大陆") >= 0 && database.length != 0) {
if (obj.status == "" && obj.patenttype == "") {
var size = obj.pagesize / 2;
} else {
var size = obj.pagesize;
}
} else {
var size = obj.pagesize;
}
if (obj.lable == "patentname") {
if (range1.indexOf("中国大陆") != -1) {
console.log("---------patentname---------中国大陆--------");
var data1 = {
appKey: "9d9bcbb6a82f44dbbdb185afe28032bc",
pagesize: size,
page: obj.currentpage,
title: obj.content,
pubtype: obj.patenttype,
pubstatus: obj.status,
filingyear: obj.applydate,
pubyear: obj.publishdate
};
console.log("----------data1------------");
console.log(data1);
var patentinfo1 = await this.GsbByChinaPatentSearchApi.CommomSearchbyTitle(data1);
}
if (range1.indexOf("香港") != -1 || range1.indexOf("澳门") != -1 || range1.indexOf("台湾") != -1
|| obj.range.main.length != 0 || obj.range.other.length != 0) {
console.log("---------patentname---------国外--------");
var data2 = {
appKey: "9d9bcbb6a82f44dbbdb185afe28032bc",
pagesize: size,
page: obj.currentpage,
title: obj.content,
danames: database,
pubtype: obj.patenttype,
pubstatus: obj.status,
filingyear: obj.applydate,
pubyear: obj.publishdate
};
console.log("------------data2--------------");
console.log(data2);
var patentinfo2 = await this.GsbByWorldPatentSearchApi.CommomSearchbyTitle(data2);
}
}
if (obj.lable == "applynum") {
if (range1.indexOf("中国大陆") != -1) {
console.log("---------applynum---------中国大陆--------");
var data1 = {
appKey: "9d9bcbb6a82f44dbbdb185afe28032bc",
pagesize: size,
page: obj.currentpage,
filingno: obj.content,
pubtype: obj.patenttype,
pubstatus: obj.status,
filingyear: obj.applydate,
pubyear: obj.publishdate
};
var patentinfo1 = await this.GsbByChinaPatentSearchApi.CommomSearchbyFilingno(data1);
}
if (range1.indexOf("香港") != -1 || range1.indexOf("澳门") != -1 || range1.indexOf("台湾") != -1
|| obj.range.main.length != 0 || obj.range.other.length != 0) {
console.log("---------applynum---------国外--------");
var data2 = {
appKey: "9d9bcbb6a82f44dbbdb185afe28032bc",
pagesize: size,
page: obj.currentpage,
filingno: obj.content,
danames: database,
pubtype: obj.patenttype,
pubstatus: obj.status,
filingyear: obj.applydate,
pubyear: obj.publishdate
};
var patentinfo2 = await this.GsbByWorldPatentSearchApi.CommomSearchbyFilingno(data2);
}
}
if (obj.lable == "publishnum") {
if (range1.indexOf("中国大陆") != -1) {
console.log("---------publishnum---------中国大陆--------");
var data1 = {
appKey: "9d9bcbb6a82f44dbbdb185afe28032bc",
pagesize: size,
page: obj.currentpage,
pubno: obj.content,
pubtype: obj.patenttype,
pubstatus: obj.status,
filingyear: obj.applydate,
pubyear: obj.publishdate
};
var patentinfo1 = await this.GsbByChinaPatentSearchApi.CommomSearchbyPubno(data1);
}
if (range1.indexOf("香港") != -1 || range1.indexOf("澳门") != -1 || range1.indexOf("台湾") != -1
|| obj.range.main.length != 0 || obj.range.other.length != 0) {
console.log("---------publishnum---------国外--------");
var data2 = {
appKey: "9d9bcbb6a82f44dbbdb185afe28032bc",
pagesize: size,
page: obj.currentpage,
pubno: obj.content,
danames: database,
pubtype: obj.patenttype,
pubstatus: obj.status,
filingyear: obj.applydate,
pubyear: obj.publishdate
};
var patentinfo2 = await this.GsbByWorldPatentSearchApi.CommomSearchbyPubno(data2);
}
}
if (obj.lable == "applier") {
if (range1.indexOf("中国大陆") != -1) {
console.log("---------applier---------中国大陆--------");
var data1 = {
appKey: "9d9bcbb6a82f44dbbdb185afe28032bc",
pagesize: size,
page: obj.currentpage,
applicant: obj.content,
pubtype: obj.patenttype,
pubstatus: obj.status,
filingyear: obj.applydate,
pubyear: obj.publishdate
};
var patentinfo1 = await this.GsbByChinaPatentSearchApi.CommomSearchbyApplicant(data1);
}
if (range1.indexOf("香港") != -1 || range1.indexOf("澳门") != -1 || range1.indexOf("台湾") != -1
|| obj.range.main.length != 0 || obj.range.other.length != 0) {
console.log("---------applier---------国外--------");
var data2 = {
appKey: "9d9bcbb6a82f44dbbdb185afe28032bc",
pagesize: size,
page: obj.currentpage,
applicant: obj.content,
danames: database,
pubtype: obj.patenttype,
pubstatus: obj.status,
filingyear: obj.applydate,
pubyear: obj.publishdate
};
var patentinfo2 = await this.GsbByWorldPatentSearchApi.CommomSearchbyApplicant(data2);
}
}
if (obj.lable == "inventor") {
if (range1.indexOf("中国大陆") != -1) {
console.log("---------inventor---------中国大陆--------");
var data1 = {
appKey: "9d9bcbb6a82f44dbbdb185afe28032bc",
pagesize: size,
page: obj.currentpage,
inventor: obj.content,
pubtype: obj.patenttype,
pubstatus: obj.status,
filingyear: obj.applydate,
pubyear: obj.publishdate
};
var patentinfo1 = await this.GsbByChinaPatentSearchApi.CommomSearchbyInventor(data1);
}
if (range1.indexOf("香港") != -1 || range1.indexOf("澳门") != -1 || range1.indexOf("台湾") != -1
|| obj.range.main.length != 0 || obj.range.other.length != 0) {
console.log("---------inventor---------国外--------");
var data2 = {
appKey: "9d9bcbb6a82f44dbbdb185afe28032bc",
pagesize: size,
page: obj.currentpage,
inventor: obj.content,
danames: database,
pubtype: obj.patenttype,
pubstatus: obj.status,
filingyear: obj.applydate,
pubyear: obj.publishdate
};
var patentinfo2 = await this.GsbByWorldPatentSearchApi.CommomSearchbyInventor(data2);
}
}
if (patentinfo1) {
if (patentinfo1.status == 0) {
console.log("----------patentdata1-------------");
console.log(patentinfo1);
total1 = patentinfo1.data.total;
var juhedata1 = patentinfo1.buckets;
for (var i = 0; i < patentinfo1.buckets.group_by_pub_type.buckets.length; i++) {
if (patentinfo1.buckets.group_by_pub_type.buckets[i].key == "发明") {
var item = {
code: "发明",
lable: "发明申请",
num: patentinfo1.buckets.group_by_pub_type.buckets[i].doc_count
};
juhe1.patenttype.push(item);
}
if (patentinfo1.buckets.group_by_pub_type.buckets[i].key == "实用新型") {
var item = {
code: "实用新型",
lable: "实用新型",
num: patentinfo1.buckets.group_by_pub_type.buckets[i].doc_count
};
juhe1.patenttype.push(item);
}
if (patentinfo1.buckets.group_by_pub_type.buckets[i].key == "外观设计") {
var item = {
code: "外观设计",
lable: "外观设计",
num: patentinfo1.buckets.group_by_pub_type.buckets[i].doc_count
};
juhe1.patenttype.push(item);
}
}
for (var i = 0; i < patentinfo1.buckets.group_by_pub_status.buckets.length; i++) {
if (patentinfo1.buckets.group_by_pub_status.buckets[i].key == "有效") {
var item = {
code: "有效",
lable: "有效",
num: patentinfo1.buckets.group_by_pub_status.buckets[i].doc_count
};
juhe1.status.push(item);
}
if (patentinfo1.buckets.group_by_pub_status.buckets[i].key == "在审") {
var item = {
code: "在审",
lable: "在审",
num: patentinfo1.buckets.group_by_pub_status.buckets[i].doc_count
};
juhe1.status.push(item);
}
if (patentinfo1.buckets.group_by_pub_status.buckets[i].key == "无效") {
var item = {
code: "无效",
lable: "无效",
num: patentinfo1.buckets.group_by_pub_status.buckets[i].doc_count
};
juhe1.status.push(item);
}
}
for (var i = 0; i < patentinfo1.buckets.group_by_filing_year.buckets.length; i++) {
var item = {
code: patentinfo1.buckets.group_by_filing_year.buckets[i].key,
lable: patentinfo1.buckets.group_by_filing_year.buckets[i].key + "年",
num: patentinfo1.buckets.group_by_filing_year.buckets[i].doc_count
};
juhe1.applydate.push(item);
}
for (var i = 0; i < patentinfo1.buckets.group_by_pub_year.buckets.length; i++) {
var item = {
code: patentinfo1.buckets.group_by_pub_year.buckets[i].key,
lable: patentinfo1.buckets.group_by_pub_year.buckets[i].key + "年",
num: patentinfo1.buckets.group_by_pub_year.buckets[i].doc_count
};
juhe1.publishdate.push(item);
}
var patentdata1 = patentinfo1.data.hits;
for (var i = 0; i < patentinfo1.data.hits.length; i++) {
var publish_num = "";
var publish_date = "";
if (patentinfo1.data.hits[i]._source.pub_type == "发明") {
publish_num = patentinfo1.data.hits[i]._source.pub_no;
publish_date = patentinfo1.data.hits[i]._source.pub_time;
} else {
publish_num = patentinfo1.data.hits[i]._source.gr_no;
publish_date = patentinfo1.data.hits[i]._source.gr_time;
}
var applierinfo = "";
if (patentinfo1.data.hits[i]._source.applicant_name != null) {
for (var j = 0; j < patentinfo1.data.hits[i]._source.applicant_name.length; j++) {
if (applierinfo) {
applierinfo = applierinfo + "," + patentinfo1.data.hits[i]._source.applicant_name[j];
} else {
applierinfo = applierinfo + patentinfo1.data.hits[i]._source.applicant_name[j];
}
}
}
var inventorinfo = "";
if (patentinfo1.data.hits[i]._source.inventor_name != null) {
for (var j = 0; j < patentinfo1.data.hits[i]._source.inventor_name.length; j++) {
if (inventorinfo) {
inventorinfo = inventorinfo + "," + patentinfo1.data.hits[i]._source.inventor_name[j];
} else {
inventorinfo = inventorinfo + patentinfo1.data.hits[i]._source.inventor_name[j];
}
}
}
var pubstatus = "";
if (patentinfo1.data.hits[i]._source.pub_status != null) {
pubstatus = patentinfo1.data.hits[i]._source.pub_status;
}
var item = {
applynum: patentinfo1.data.hits[i]._source.filing_no,
publishnum: publish_num,
patentname: patentinfo1.data.hits[i]._source.filing_name,
applier: applierinfo,
inventor: inventorinfo,
applydate: patentinfo1.data.hits[i]._source.filing_time,
publishdate: publish_date,
articletype: patentinfo1.data.hits[i]._source.pub_type,
pubstatus: pubstatus
}
patent1.push(item);
}
}
};
if (patentinfo2) {
if (patentinfo2.status == 0) {
console.log("----------patentinfo2-------------");
console.log(patentinfo2);
total2 = patentinfo2.data.total;
var juhedata2 = patentinfo2.buckets;
for (var i = 0; i < patentinfo2.buckets.group_by_filing_year.buckets.length; i++) {
var item = {
code: patentinfo2.buckets.group_by_filing_year.buckets[i].key,
lable: patentinfo2.buckets.group_by_filing_year.buckets[i].key + "年",
num: patentinfo2.buckets.group_by_filing_year.buckets[i].doc_count
};
juhe2.applydate.push(item);
}
for (var i = 0; i < patentinfo2.buckets.group_by_pub_year.buckets.length; i++) {
var item = {
code: patentinfo2.buckets.group_by_pub_year.buckets[i].key,
lable: patentinfo2.buckets.group_by_pub_year.buckets[i].key + "年",
num: patentinfo2.buckets.group_by_pub_year.buckets[i].doc_count
};
juhe2.publishdate.push(item);
}
var patentdata2 = patentinfo2.data.hits;
for (var i = 0; i < patentinfo2.data.hits.length; i++) {
var applierinfo = "";
if (patentinfo2.data.hits[i]._source.applicant_name != null) {
for (var j = 0; j < patentinfo2.data.hits[i]._source.applicant_name.length; j++) {
if (applierinfo) {
applierinfo = applierinfo + "," + patentinfo2.data.hits[i]._source.applicant_name[j];
} else {
applierinfo = applierinfo + patentinfo2.data.hits[i]._source.applicant_name[j];
}
}
}
var inventorinfo = "";
if (patentinfo2.data.hits[i]._source.inventor_name != null) {
for (var j = 0; j < patentinfo2.data.hits[i]._source.inventor_name.length; j++) {
if (inventorinfo) {
inventorinfo = inventorinfo + "," + patentinfo2.data.hits[i]._source.inventor_name[j];
} else {
inventorinfo = inventorinfo + patentinfo2.data.hits[i]._source.inventor_name[j];
}
}
}
var item = {
applynum: patentinfo2.data.hits[i]._source.app_number,
publishnum: patentinfo2.data.hits[i]._source.pub_number,
patentname: patentinfo2.data.hits[i]._source.title_name,
applier: applierinfo,
inventor: inventorinfo,
applydate: patentinfo2.data.hits[i]._source.app_date,
publishdate: patentinfo2.data.hits[i]._source.pub_date,
articletype: patentinfo2.data.hits[i]._source.pub_type,
pubstatus: ""
}
patent2.push(item);
}
}
}
total = total1 + total2;
datalist1.patenttype = juhe1.patenttype;
datalist1.status = juhe1.status;
datalist1.applydate = juhe2.applydate;
for (var i = 0; i < juhe1.applydate.length; i++) {
var a = datalist1.applydate.findIndex(f => f.code == juhe1.applydate[i].code);
if (a > -1) {
datalist1.applydate[a].num = datalist1.applydate[a].num + juhe1.applydate[i].num;
} else {
var item = {
code: juhe1.applydate[i].code,
lable: juhe1.applydate[i].lable,
num: juhe1.applydate[i].num
};
datalist1.applydate.push(item);
}
}
datalist1.applydate.sort(this.compare("code"))
console.log(datalist1.applydate);
datalist1.publishdate = juhe2.publishdate;
for (var i = 0; i < juhe1.publishdate.length; i++) {
var a = datalist1.publishdate.findIndex(f => f.code == juhe1.publishdate[i].code);
if (a > -1) {
datalist1.publishdate[a].num = datalist1.publishdate[a].num + juhe1.publishdate[i].num;
} else {
var item = {
code: juhe1.publishdate[i].code,
lable: juhe1.publishdate[i].lable,
num: juhe1.publishdate[i].num
};
datalist1.publishdate.push(item);
}
}
datalist1.publishdate.sort(this.compare("code"))
for (var i = 0; i < patent1.length; i++) {
datalist2.push(patent1[i]);
}
for (var i = 0; i < patent2.length; i++) {
datalist2.push(patent2[i]);
}
var result = {
total: total,
dataList1: datalist1,
dataList2: datalist2
}
console.log("----------result--------------");
console.log(result);
return System.getResult2(result, null);
};
compare(prop) {
return function (obj1, obj2) {
var val1 = obj1[prop];
var val2 = obj2[prop];
if (!isNaN(Number(val1)) && !isNaN(Number(val2))) {
val1 = Number(val1);
val2 = Number(val2);
}
if (val1 < val2) {
return 1;
} else if (val1 > val2) {
return -1;
} else {
return 0;
}
}
};
async obtainpatentinfo(pobj, obj) {
console.log("--------------obtainpatentinfo---------------");
console.log(obj);
var result = {
patentname: "",
patenttype: "",
baseinfo: {},
lawstatus: [],
abstract: "",
adstractpic: "",
claim: "",
instruction: "",
figure: ""
};
if (obj.publishnum.indexOf("CN") != -1) {
console.log("中国专利");
var data = {
appKey: "9d9bcbb6a82f44dbbdb185afe28032bc",
applynum: obj.applynum,
publishnum: obj.publishnum
};
var patentinfo = await this.GsbByChinaPatentSearchApi.ObtainChinaPatentInfo(data);
console.log("---------ctl----patentinfo-------------");
console.log(patentinfo);
if (patentinfo.status == 0) {
patentinfo = patentinfo.data[0]._source;
console.log("---------ctl----patentinfo-------------");
console.log(patentinfo);
result.patentname = patentinfo.filing_name;
result.patenttype = patentinfo.pub_type;
if (patentinfo.other_ipc) {
var otheripc = "";
for (var i = 0; i < patentinfo.other_ipc.length; i++) {
if (otheripc) {
otheripc = otheripc + "," + patentinfo.other_ipc[i];
} else {
otheripc = otheripc + patentinfo.other_ipc[i];
}
}
}
var publishdateinfo = "";
if (obj.publishnum == patentinfo.pub_no) {
publishdateinfo = patentinfo.pub_time;
}
if (obj.publishnum == patentinfo.gr_no) {
publishdateinfo = patentinfo.gr_time;
};
if (patentinfo.applicant_name) {
var applierinfo = "";
for (var i = 0; i < patentinfo.applicant_name.length; i++) {
if (applierinfo) {
applierinfo = applierinfo + "," + patentinfo.applicant_name[i];
} else {
applierinfo = applierinfo + patentinfo.applicant_name[i];
}
}
}
if (patentinfo.inventor_name) {
var inventorinfo = "";
for (var i = 0; i < patentinfo.inventor_name.length; i++) {
if (inventorinfo) {
inventorinfo = inventorinfo + "," + patentinfo.inventor_name[i];
} else {
inventorinfo = inventorinfo + patentinfo.inventor_name[i];
}
}
}
var agentinfo = ""
if (patentinfo.agent_name1) {
if (patentinfo.agent_name2) {
agentinfo = patentinfo.agent_name1 + patentinfo.agent_name2;
} else {
agentinfo = patentinfo.agent_name1;
}
}
result.baseinfo = {
applynum: patentinfo.filing_no,
mainclassnum: patentinfo.main_ipc,
applydate: patentinfo.filing_time,
classnum: otheripc,
publishnum: obj.publishnum,
address: patentinfo.appl_address,
publishdate: publishdateinfo,
countrycode: patentinfo.country_code,
applier: applierinfo,
agent: agentinfo,
inventor: inventorinfo,
agency: patentinfo.agency_name,
};
result.abstract = patentinfo.abstr_text;
var patentinfostring = JSON.stringify(patentinfo);
if (patentinfostring.indexOf("\"claim_text\":") != -1) {
result.claim = patentinfo.claim_text;
};
var imgpathinfo = ""
if (patentinfo.img_path) {
imgpathinfo = patentinfo.img_path;
}
result.adstractpic = imgpathinfo;
var affdata = {
appKey: "9d9bcbb6a82f44dbbdb185afe28032bc",
filingno: obj.applynum
};
var affairinfo = await this.GsbByChinaAffairSearchApi.SearchbyFilingno(affdata);
if (affairinfo.status == 0) {
console.log("---------ctl----affairinfo-------------");
affairinfo.data.hits.forEach(function (d) {
console.log(d);
var affobj = { date: d._source.aff_date, status: d._source.aff_info }
console.log(affobj);
result.lawstatus.push(affobj);
})
}
}
} else {
console.log("外国专利");
var data = {
appKey: "9d9bcbb6a82f44dbbdb185afe28032bc",
applynum: obj.applynum,
publishnum: obj.publishnum
};
var patentinfo = await this.GsbByWorldPatentSearchApi.ObtainWorldPatentInfo(data);
console.log("---------ctl----patentinfo-------------");
console.log(patentinfo);
if (patentinfo.status == 0) {
patentinfo = patentinfo.data[0]._source;
console.log("---------ctl----patentinfo-------------");
console.log(patentinfo);
result.patentname = patentinfo.title_name;
result.patenttype = patentinfo.pub_type;
if (patentinfo.other_ipc) {
var otheripc = "";
for (var i = 0; i < patentinfo.other_ipc.length; i++) {
if (otheripc) {
otheripc = otheripc + "," + patentinfo.other_ipc[i];
} else {
otheripc = otheripc + patentinfo.other_ipc[i];
}
}
}
if (patentinfo.applicant_name) {
var applierinfo = "";
for (var i = 0; i < patentinfo.applicant_name.length; i++) {
if (applierinfo) {
applierinfo = applierinfo + "," + patentinfo.applicant_name[i];
} else {
applierinfo = applierinfo + patentinfo.applicant_name[i];
}
}
}
if (patentinfo.inventor_name) {
var inventorinfo = "";
for (var i = 0; i < patentinfo.inventor_name.length; i++) {
if (inventorinfo) {
inventorinfo = inventorinfo + "," + patentinfo.inventor_name[i];
} else {
inventorinfo = inventorinfo + patentinfo.inventor_name[i];
}
}
}
result.baseinfo = {
applynum: patentinfo.app_number,
mainclassnum: patentinfo.main_ipc,
applydate: patentinfo.app_date,
classnum: otheripc,
publishnum: patentinfo.pub_number,
address: patentinfo.addr_name,
publishdate: patentinfo.pub_date,
countrycode: "",
applier: applierinfo,
agent: patentinfo.agent_name,
inventor: inventorinfo,
agency: patentinfo.agency_name,
};
result.abstract = patentinfo.abstr_text;
result.claim = patentinfo.claim_text;
var imgpathinfo = ""
if (patentinfo.img_path) {
imgpathinfo = patentinfo.img_path;
}
result.adstractpic = imgpathinfo;
}
}
return System.getResult2(result, null);
}
}
module.exports=patentApi;
var System=require("../../../system");
var settings=require("../../../../config/settings");
const querystring = require('querystring');
const ApiBase =require("../../api.base");
class WordPatentSearchApi extends ApiBase{
constructor(){
super();
this.patentUrl = settings.reqEsAddrIc()+"bigdata_world_patent_bib_op/_search";
};
buildDate(date){
var date = new Date(date);
var time = Date.parse(date);
time=time / 1000;
return time;
};
async ObtainWorldPatentInfo(obj){
console.log("-----------------api-ObtainWorldPatentInfo----------------");
console.log(obj);
var params= {
"query": {
"bool": {
"must": []
}
},
};
var applynum=obj.applynum==null?"":obj.applynum;//专利申请号
if (applynum != null && applynum != ""){
var param = {
"term": {
"app_number": applynum
}
}
params.query.bool.must.push(param)
}
var publishnum=obj.publishnum==null?"":obj.publishnum;//专利申请号
if (publishnum != null && publishnum != ""){
var param = {
"term": {
"pub_number": publishnum
}
}
params.query.bool.must.push(param)
}
var rc=System.getObject("util.execClient");
var rtn=null;
var requrl = this.patentUrl;
try{
rtn=await rc.execPost(params,requrl);
var j=JSON.parse(rtn.stdout);
return rtn = {
status:0,
msg:"操作成功",
data:j.hits.hits
};
}catch(e){
return rtn={
status:-1,
msg:"操作失败",
data:null
};
}
};
async CommomSearchbyTitle(obj){//根据标题查询聚合
var pagesize = obj.pagesize==null?10:obj.pagesize;
if(obj.page==null){
var from = 0;
}else{
var from = Number((obj.page-1)*obj.pagesize);
}
var title = obj.title==null?"":obj.title;
if(title==""){
return {status:-1,msg:"传入标题信息为空",data:null,buckets:null};
}
var params= {
"query": {
"bool": {
"must": []
}
},
"from": from,
"size": pagesize,
"_source": [
"app_number",
"app_date",
"pub_number",
"pub_type",
"pub_date",
"title_name",
"applicant_name",
"inventor_name"
],
"aggregations": {
"group_by_filing_year": {
"terms": {
"field": "app_year",
"size": 1000,
"order":{"_term":"desc"}
}
},
"group_by_pub_year": {
"terms": {
"field": "pub_year",
"size": 1000,
"order":{"_term":"desc"}
}
}
}
};
var param = {
"match": {
"title_name": title.toLowerCase()
}
}
params.query.bool.must.push(param);
var dbnames = obj.danames==null?"":obj.danames;
if (dbnames != null && dbnames != ""){
var dbarray = dbnames.split('+');
param = {
"bool": {
"should": []
}
}
dbarray.forEach(function(d){
var parr = {
"term": {
"db_name": d
}
}
param.bool.should.push(parr)
})
params.query.bool.must.push(param);
}
var pubtype=obj.pubtype==null?"":obj.pubtype;//专利类型
if (pubtype != null && pubtype != ""){
param = {
"term": {
"pub_type": pubtype
}
}
params.query.bool.must.push(param)
}
var pubstatus = obj.pubstatus==null?"":obj.pubstatus;//法律状态
if (pubstatus != null && pubstatus != ""){
param = {
"term": {
"status_code": pubstatus
}
}
params.query.bool.must.push(param)
}
var filingyear = obj.filingyear==null?"":obj.filingyear;//申请年份
if (filingyear != null && filingyear !=""){
param = {
"term": {
"app_year": filingyear
}
}
params.query.bool.must.push(param)
}
var pubyear = obj.pubyear==null?"":obj.pubyear;//公开年份
if (pubyear != null && pubyear != ""){
param = {
"term": {
"pub_year": pubyear
}
}
params.query.bool.must.push(param)
}
var rc=System.getObject("util.execClient");
var rtn=null;
var requrl = this.patentUrl;
try{
rtn=await rc.execPost(params,requrl);
var j=JSON.parse(rtn.stdout);
return rtn = {
status:0,
msg:"操作成功",
data:j.hits,
buckets:j.aggregations
};
}catch(e){
return rtn={
status:-1,
msg:"操作失败",
data:null,
buckets:null
};
}
};
async CommomSearchbyFilingno(obj){//根据申请号查询聚合
var pagesize = obj.pagesize==null?10:obj.pagesize;
if(obj.page==null){
var from = 0;
}else{
var from = Number((obj.page-1)*obj.pagesize);
}
var filingno = obj.filingno==null?"":obj.filingno;
if(filingno==""){
return {status:-1,msg:"传入的申请号信息为空",data:null,buckets:null};
}
var params= {
"query": {
"bool": {
"must": []
}
},
"from": from,
"size": pagesize,
"_source": [
"app_number",
"app_date",
"pub_number",
"pub_type",
"pub_date",
"title_name",
"applicant_name",
"inventor_name"
],
"aggregations": {
"group_by_filing_year": {
"terms": {
"field": "app_year",
"size": 1000,
"order":{"_term":"desc"}
}
},
"group_by_pub_year": {
"terms": {
"field": "pub_year",
"size": 1000,
"order":{"_term":"desc"}
}
}
}
};
var param = {
"wildcard": {
"app_number": "*"+filingno+"*"
}
}
params.query.bool.must.push(param);
var dbnames = obj.danames==null?"":obj.danames;
if (dbnames != null && dbnames != ""){
var dbarray = dbnames.split('+');
param = {
"bool": {
"should": []
}
}
dbarray.forEach(function(d){
var parr = {
"term": {
"db_name": d
}
}
param.bool.should.push(parr)
})
params.query.bool.must.push(param);
}
var pubtype=obj.pubtype==null?"":obj.pubtype;//专利类型
if (pubtype != null && pubtype != ""){
param = {
"term": {
"pub_type": pubtype
}
}
params.query.bool.must.push(param)
}
var pubstatus = obj.pubstatus==null?"":obj.pubstatus;//法律状态
if (pubstatus != null && pubstatus != ""){
param = {
"term": {
"status_code": pubstatus
}
}
params.query.bool.must.push(param)
}
var filingyear = obj.filingyear==null?"":obj.filingyear;//申请年份
if (filingyear != null && filingyear !=""){
param = {
"term": {
"app_year": filingyear
}
}
params.query.bool.must.push(param)
}
var pubyear = obj.pubyear==null?"":obj.pubyear;//公开年份
if (pubyear != null && pubyear != ""){
param = {
"term": {
"pub_year": pubyear
}
}
params.query.bool.must.push(param)
}
var rc=System.getObject("util.execClient");
var rtn=null;
var requrl = this.patentUrl;
try{
rtn=await rc.execPost(params,requrl);
var j=JSON.parse(rtn.stdout);
return rtn = {
status:0,
msg:"操作成功",
data:j.hits,
buckets:j.aggregations
};
}catch(e){
return rtn={
status:-1,
msg:"操作失败",
data:null,
buckets:null
};
}
};
async CommomSearchbyPubno(obj){//根据公开号查询聚合
var pagesize = obj.pagesize==null?10:obj.pagesize;
if(obj.page==null){
var from = 0;
}else{
var from = Number((obj.page-1)*obj.pagesize);
}
var pubno = obj.pubno==null?"":obj.pubno;
if(pubno==""){
return {status:-1,msg:"传入的公开号信息为空",data:null,buckets:null};
}
var params= {
"query": {
"bool": {
"must": []
}
},
"from": from,
"size": pagesize,
"_source": [
"app_number",
"app_date",
"pub_number",
"pub_type",
"pub_date",
"title_name",
"applicant_name",
"inventor_name"
],
"aggregations": {
"group_by_filing_year": {
"terms": {
"field": "app_year",
"size": 1000,
"order":{"_term":"desc"}
}
},
"group_by_pub_year": {
"terms": {
"field": "pub_year",
"size": 1000,
"order":{"_term":"desc"}
}
}
}
};
var param = {
"wildcard": {
"pub_number": "*"+pubno+"*"
}
}
params.query.bool.must.push(param);
var dbnames = obj.danames==null?"":obj.danames;
if (dbnames != null && dbnames != ""){
var dbarray = dbnames.split('+');
param = {
"bool": {
"should": []
}
}
dbarray.forEach(function(d){
var parr = {
"term": {
"db_name": d
}
}
param.bool.should.push(parr)
})
params.query.bool.must.push(param);
}
var pubtype=obj.pubtype==null?"":obj.pubtype;//专利类型
if (pubtype != null && pubtype != ""){
param = {
"term": {
"pub_type": pubtype
}
}
params.query.bool.must.push(param)
}
var pubstatus = obj.pubstatus==null?"":obj.pubstatus;//法律状态
if (pubstatus != null && pubstatus != ""){
param = {
"term": {
"status_code": pubstatus
}
}
params.query.bool.must.push(param)
}
var filingyear = obj.filingyear==null?"":obj.filingyear;//申请年份
if (filingyear != null && filingyear !=""){
param = {
"term": {
"app_year": filingyear
}
}
params.query.bool.must.push(param)
}
var pubyear = obj.pubyear==null?"":obj.pubyear;//公开年份
if (pubyear != null && pubyear != ""){
param = {
"term": {
"pub_year": pubyear
}
}
params.query.bool.must.push(param)
}
var rc=System.getObject("util.execClient");
var rtn=null;
var requrl = this.patentUrl;
try{
rtn=await rc.execPost(params,requrl);
var j=JSON.parse(rtn.stdout);
return rtn = {
status:0,
msg:"操作成功",
data:j.hits,
buckets:j.aggregations
};
}catch(e){
return rtn={
status:-1,
msg:"操作失败",
data:null,
buckets:null
};
}
};
async CommomSearchbyApplicant(obj){//根据申请人查询聚合
var pagesize = obj.pagesize==null?10:obj.pagesize;
if(obj.page==null){
var from = 0;
}else{
var from = Number((obj.page-1)*obj.pagesize);
}
var applicant = obj.applicant==null?"":obj.applicant;
if(applicant==""){
return {status:-1,msg:"传入的申请人信息为空",data:null,buckets:null};
}
var params= {
"query": {
"bool": {
"must": []
}
},
"from": from,
"size": pagesize,
"_source": [
"app_number",
"app_date",
"pub_number",
"pub_type",
"pub_date",
"title_name",
"applicant_name",
"inventor_name"
],
"aggregations": {
"group_by_filing_year": {
"terms": {
"field": "app_year",
"size": 1000,
"order":{"_term":"desc"}
}
},
"group_by_pub_year": {
"terms": {
"field": "pub_year",
"size": 1000,
"order":{"_term":"desc"}
}
}
}
};
var param = {
"query_string": {
"default_field": "applicant_name",
"query": "\"" + applicant.toLowerCase() + "\""
}
}
params.query.bool.must.push(param);
var dbnames = obj.danames==null?"":obj.danames;
if (dbnames != null && dbnames != ""){
var dbarray = dbnames.split('+');
param = {
"bool": {
"should": []
}
}
dbarray.forEach(function(d){
var parr = {
"term": {
"db_name": d
}
}
param.bool.should.push(parr)
})
params.query.bool.must.push(param);
}
var pubtype=obj.pubtype==null?"":obj.pubtype;//专利类型
if (pubtype != null && pubtype != ""){
param = {
"term": {
"pub_type": pubtype
}
}
params.query.bool.must.push(param)
}
var pubstatus = obj.pubstatus==null?"":obj.pubstatus;//法律状态
if (pubstatus != null && pubstatus != ""){
param = {
"term": {
"status_code": pubstatus
}
}
params.query.bool.must.push(param)
}
var filingyear = obj.filingyear==null?"":obj.filingyear;//申请年份
if (filingyear != null && filingyear !=""){
param = {
"term": {
"app_year": filingyear
}
}
params.query.bool.must.push(param)
}
var pubyear = obj.pubyear==null?"":obj.pubyear;//公开年份
if (pubyear != null && pubyear != ""){
param = {
"term": {
"pub_year": pubyear
}
}
params.query.bool.must.push(param)
}
var rc=System.getObject("util.execClient");
var rtn=null;
var requrl = this.patentUrl;
try{
rtn=await rc.execPost(params,requrl);
var j=JSON.parse(rtn.stdout);
return rtn = {
status:0,
msg:"操作成功",
data:j.hits,
buckets:j.aggregations
};
}catch(e){
return rtn={
status:-1,
msg:"操作失败",
data:null,
buckets:null
};
}
};
async CommomSearchbyInventor(obj){//根据发明人查询聚合
var pagesize = obj.pagesize==null?10:obj.pagesize;
if(obj.page==null){
var from = 0;
}else{
var from = Number((obj.page-1)*obj.pagesize);
}
var inventor = obj.inventor==null?"":obj.inventor;
if(inventor==""){
return {status:-1,msg:"传入的发明人信息为空",data:null,buckets:null};
}
var params= {
"query": {
"bool": {
"must": []
}
},
"from": from,
"size": pagesize,
"_source": [
"app_number",
"app_date",
"pub_number",
"pub_type",
"pub_date",
"title_name",
"applicant_name",
"inventor_name"
],
"aggregations": {
"group_by_filing_year": {
"terms": {
"field": "app_year",
"size": 1000,
"order":{"_term":"desc"}
}
},
"group_by_pub_year": {
"terms": {
"field": "pub_year",
"size": 1000,
"order":{"_term":"desc"}
}
}
}
};
var param = {
"query_string": {
"default_field": "inventor_name",
"query": "\"" + inventor.toLowerCase() + "\""
}
}
params.query.bool.must.push(param);
var dbnames = obj.danames==null?"":obj.danames;
if (dbnames != null && dbnames != ""){
var dbarray = dbnames.split('+');
param = {
"bool": {
"should": []
}
}
dbarray.forEach(function(d){
var parr = {
"term": {
"db_name": d
}
}
param.bool.should.push(parr)
})
params.query.bool.must.push(param);
}
var pubtype=obj.pubtype==null?"":obj.pubtype;//专利类型
if (pubtype != null && pubtype != ""){
param = {
"term": {
"pub_type": pubtype
}
}
params.query.bool.must.push(param)
}
var pubstatus = obj.pubstatus==null?"":obj.pubstatus;//法律状态
if (pubstatus != null && pubstatus != ""){
param = {
"term": {
"status_code": pubstatus
}
}
params.query.bool.must.push(param)
}
var filingyear = obj.filingyear==null?"":obj.filingyear;//申请年份
if (filingyear != null && filingyear !=""){
param = {
"term": {
"app_year": filingyear
}
}
params.query.bool.must.push(param)
}
var pubyear = obj.pubyear==null?"":obj.pubyear;//公开年份
if (pubyear != null && pubyear != ""){
param = {
"term": {
"pub_year": pubyear
}
}
params.query.bool.must.push(param)
}
var rc=System.getObject("util.execClient");
var rtn=null;
var requrl = this.patentUrl;
try{
rtn=await rc.execPost(params,requrl);
var j=JSON.parse(rtn.stdout);
return rtn = {
status:0,
msg:"操作成功",
data:j.hits,
buckets:j.aggregations
};
}catch(e){
return rtn={
status:-1,
msg:"操作失败",
data:null,
buckets:null
};
}
};
async seniorSearch(obj){//高级检索,根据用户输入的不同多条件进行检索
var pagesize = obj.pagesize==null?10:obj.pagesize;
if(obj.page==null){
var from = 0;
}else{
var from = Number((obj.page-1)*obj.pagesize);
}
var params = {
"query": {
"bool": {
"must": []
}
},
"from": from,
"size": pagesize,
"_source": [
"app_number",
"app_date",
"pub_number",
"pub_type",
"pub_date",
"title_name",
"applicant_name",
"inventor_name"
]
};
var param = null;
//对库做判断
var dbnames = obj.danames==null?"":obj.danames;
if (dbnames != null && dbnames != ""){
var dbarray = dbnames.split('+');
param = {
"bool": {
"should": []
}
}
dbarray.forEach(function(d){
var parr = {
"term": {
"db_name": d
}
}
param.bool.should.push(parr)
})
params.query.bool.must.push(param);
}
//对关键词
var title=obj.title==null?"":obj.title;
if (title != null && title != ""){
param ={
"match": {
"title_name": title.toLowerCase()
}
}
params.query.bool.must.push(param)
}
var abstr = obj.abstr==null?"":obj.abstr;
if (abstr != null && abstr != ""){
param ={
"match": {
"abstr_text": abstr.toLowerCase()
}
}
params.query.bool.must.push(param)
}
var filingno=obj.filingno==null?"":obj.filingno;
if(filingno!=null && filingno!=""){
param= {
"term": {
"app_number": filingno
}
}
params.query.bool.must.push(param)
}
var pubno=obj.pubno==null?"":obj.pubno;
if (pubno!=null && pubno!=""){
param= {
"term": {
"pub_number": pubno
}
}
params.query.bool.must.push(param)
}
var priorno=obj.priorno==null?"":obj.priorno;
if (priorno != null && priorno != ""){
param={
"wildcard": {
"prior_info": priorno+"*"
}
}
params.query.bool.must.push(param)
}
var appl=obj.applname==null?"":obj.applname;
if (appl!=null && appl!=""){
param= {
"term": {
"applicant_name.raw": appl.toLowerCase()
}
}
params.query.bool.must.push(param)
}
var inv=obj.invname==null?"":obj.invname;
if (inv!=null && inv!=""){
param= {
"term": {
"inventor_name.raw": inv.toLowerCase()
}
}
params.query.bool.must.push(param)
}
var ipc=obj.ipcno==null?"":obj.ipcno;
if (ipc!=null && ipc!=""){
var param= {
"term": {
"other_ipc": ipc
}
}
params.query.bool.must.push(param)
}
if(obj.filingdate1!=null && obj.filingdate1!=""){
var filingdate1=obj.filingdate1;
}
else {
var filingdate1 ="";
}
if(obj.filingdate2!=null && obj.filingdate2!=""){
var filingdate2=obj.filingdate2;
}
else {
var filingdate2 = "";
}
if (filingdate1!="" || filingdate2!=""){
param={
"range": {
"app_date": {
}
}
};
if (filingdate1!=""){
param.range.app_date["gte"]=filingdate1;
}
if (filingdate2!=""){
param.range.app_date["lte"]=filingdate2;
}
params.query.bool.must.push(param);
}
if(obj.pubdate1!=null && obj.pubdate1!=""){
var pubdate1=obj.pubdate1;
}
else {
var pubdate1 ="";
}
if(obj.pubdate2!=null && obj.pubdate2!=""){
var pubdate2=obj.pubdate2;
}
else {
var pubdate2 = "";
}
if (pubdate1!="" || pubdate2!=""){
param={
"range": {
"pub_date": {
}
}
};
if (pubdate1!=""){
param.range.pub_date["gte"]=pubdate1;
}
if (pubdate2!=""){
param.range.pub_date["lte"]=pubdate2;
}
params.query.bool.must.push(param);
}
var rc=System.getObject("util.execClient");
var rtn=null;
var requrl = this.patentUrl;
try{
rtn=await rc.execPost(params,requrl);
var j=JSON.parse(rtn.stdout);
return System.getResult2(j.hits,null);
}catch(e){
return rtn=System.getResult2(null,null);
}
};
}
module.exports = WordPatentSearchApi;
var System = require("../../../system");
var settings = require("../../../../config/settings");
const querystring = require('querystring');
const ApiBase = require("../../api.base");
class WPatentAggregationsApi extends ApiBase {
constructor() {
super();
this.patentUrl = settings.reqEsAddrIc() + "bigdata_world_patent_bib_op/_search";
};
async ApplicantAggs(obj) {//申请人排名聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "applicant_name.raw",
"size": 20,
"order": {
"_count": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AppCountryAggs(obj) {//申请人归属国聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "applicant_country",
"size": 20,
"order": {
"_count": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async filingyearAggs(obj) {//申请年份聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "app_year",
"size": 20,
"order": {
"_term": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async pubyearAggs(obj) {//公开年份聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "pub_year",
"size": 20,
"order": {
"_term": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async CountryAggs(obj) {//各国专利聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "db_name",
"size": 20,
"order": {
"_count": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AppIpclcAggs(obj) {//Ipc大类聚合
var params = {
"query": {
"bool": {
"must": [
{
"bool": {
"must_not": {
"wildcard": {
"main_ipc": "*-*"
}
}
}
}
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "large class",
"size": 20,
"order": {
"_count": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AppIpclcMutiAggs(obj) {//申请人Ipc大类聚合//Ipc小类聚合申请人Ipc大类聚合,业务逻辑,先查询申请排名前十的申请人,再加上前十申请人的条件查询排名前十的大类,再加上前十申请人条件和前十大类条件,多重聚合,这个是最后一次聚合
var params = {
"query": {
"bool": {
"must": [
{
"bool": {
"must_not": {
"wildcard": {
"main_ipc": "*-*"
}
}
}
}
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_appl": {
"terms": {
"field": "applicant_name.raw",
"size": 10,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "large class",
"size": 10,
"order": {
"_term": "desc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async CountryIpclcMutiAggs(obj) {//各国Ipc大类聚合//Ipc小类聚合各国Ipc大类聚合,业务逻辑,,多重聚合,这个是最后一次聚合
var params = {
"query": {
"bool": {
"must": [
{
"bool": {
"must_not": {
"wildcard": {
"main_ipc": "*-*"
}
}
}
}
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_country": {
"terms": {
"field": "db_name",
"size": 20,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "large class",
"size": 10,
"order": {
"_term": "desc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AppIpcscAggs(obj) {//Ipc小类聚合
var params = {
"query": {
"bool": {
"must": [
{
"bool": {
"must_not": {
"wildcard": {
"main_ipc": "*-*"
}
}
}
}
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "sub_class",
"size": 20,
"order": {
"_count": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AppIpcscMutiAggs(obj) {//Ipc小类聚合申请人Ipc小类聚合,业务逻辑,先查询申请排名前十的申请人,再加上前十申请人的条件查询排名前十的小类,再加上前十申请人条件和前十小类条件,多重聚合,这个是最后一次聚合
var params = {
"query": {
"bool": {
"must": [
{
"bool": {
"must_not": {
"wildcard": {
"main_ipc": "*-*"
}
}
}
}
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_appl": {
"terms": {
"field": "applicant_name.raw",
"size": 10,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "sub_class",
"size": 10,
"order": {
"_term": "desc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async CountryIpcscMutiAggs(obj) {//各国Ipc小类聚合
var params = {
"query": {
"bool": {
"must": [
{
"bool": {
"must_not": {
"wildcard": {
"main_ipc": "*-*"
}
}
}
}
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_country": {
"terms": {
"field": "db_name",
"size": 20,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "sub_class",
"size": 10,
"order": {
"_term": "desc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AppIpclgAggs(obj) {//Ipc大组聚合
var params = {
"query": {
"bool": {
"must": [
{
"bool": {
"must_not": {
"wildcard": {
"main_ipc": "*-*"
}
}
}
}
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "large_group",
"size": 20,
"order": {
"_count": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AppIpclgMutiAggs(obj) {//申请人Ipc大组聚合,业务逻辑,先查询申请排名前十的申请人,再加上前十申请人的条件查询排名前十的大组,再加上前十申请人条件和前十大组条件,多重聚合,这个是最后一次聚合
var params = {
"query": {
"bool": {
"must": [
{
"bool": {
"must_not": {
"wildcard": {
"main_ipc": "*-*"
}
}
}
}
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_appl": {
"terms": {
"field": "applicant_name.raw",
"size": 10,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "large_group",
"size": 10,
"order": {
"_term": "desc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async CountryIpclgMutiAggs(obj) {//各国Ipc大组聚合
var params = {
"query": {
"bool": {
"must": [
{
"bool": {
"must_not": {
"wildcard": {
"main_ipc": "*-*"
}
}
}
}
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_country": {
"terms": {
"field": "db_name",
"size": 20,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "large_group",
"size": 10,
"order": {
"_term": "desc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AppIpcAggs(obj) {//Ipc聚合
var params = {
"query": {
"bool": {
"must": [
{
"bool": {
"must_not": {
"wildcard": {
"main_ipc": "*-*"
}
}
}
}
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "main_ipc",
"size": 20,
"order": {
"_count": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AppIpcMutiAggs(obj) {//申请人Ipc直属聚合,业务逻辑,先查询申请排名前十的申请人,再加上前十申请人的条件查询排名前十的IPC,再加上前十申请人条件和前十IPC条件,多重聚合,这个是最后一次聚合
var params = {
"query": {
"bool": {
"must": [
{
"bool": {
"must_not": {
"wildcard": {
"main_ipc": "*-*"
}
}
}
}
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_appl": {
"terms": {
"field": "applicant_name.raw",
"size": 10,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "main_ipc",
"size": 10,
"order": {
"_term": "desc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async CountryIpcMutiAggs(obj) {//各国Ipc直属聚合
var params = {
"query": {
"bool": {
"must": [
{
"bool": {
"must_not": {
"wildcard": {
"main_ipc": "*-*"
}
}
}
}
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_country": {
"terms": {
"field": "db_name",
"size": 20,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "main_ipc",
"size": 10,
"order": {
"_term": "desc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async AppfilingyearAggs(obj) {//申请人申请趋势聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_appl": {
"terms": {
"field": "applicant_name.raw",
"size": 10,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_filingyear": {
"terms": {
"field": "app_year",
"size": 10,
"order": {
"_term": "asc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async InventorAggs(obj) {//发明人排名聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"types": {
"terms": {
"field": "inventor_name.raw",
"size": 20,
"order": {
"_count": "desc"
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async InvIpcMutiAggs(obj) {//发明人Ipc直属聚合,业务逻辑,先查询申请排名前十的发明人,再加上前十发明人的条件查询排名前十的IPC,再加上前十发明人条件和前十IPC条件,多重聚合,这个是最后一次聚合
var params = {
"query": {
"bool": {
"must": [
{
"bool": {
"must_not": {
"wildcard": {
"main_ipc": "*-*"
}
}
}
}
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_inv": {
"terms": {
"field": "inventor_name.raw",
"size": 10,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "main_ipc",
"size": 10,
"order": {
"_term": "desc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async InvfilingyearAggs(obj) {//发明人申请趋势聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_inv": {
"terms": {
"field": "inventor_name.raw",
"size": 10,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_filingyear": {
"terms": {
"field": "app_year",
"size": 10,
"order": {
"_term": "asc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async InvPubyearAggs(obj) {//发明人公开趋势聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_inv": {
"terms": {
"field": "inventor_name.raw",
"size": 10,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_pubyear": {
"terms": {
"field": "pub_year",
"size": 10,
"order": {
"_term": "asc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async CountryfilingyearAggs(obj) {//国家申请趋势聚合
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_country": {
"terms": {
"field": "db_name",
"size": 20,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_filingyear": {
"terms": {
"field": "app_year",
"size": 10,
"order": {
"_term": "asc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async IpcFilingyearAggs(obj) {//IPC申请趋势聚合
var params = {
"query": {
"bool": {
"must": [
{
"bool": {
"must_not": {
"wildcard": {
"main_ipc": "*-*"
}
}
}
}
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "main_ipc",
"size": 20,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_year": {
"terms": {
"field": "app_year",
"size": 10,
"order": {
"_term": "asc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async IpcLgFilingyearAggs(obj) {//IPC大组申请趋势聚合
var params = {
"query": {
"bool": {
"must": [
{
"bool": {
"must_not": {
"wildcard": {
"main_ipc": "*-*"
}
}
}
}
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "large_group",
"size": 20,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_year": {
"terms": {
"field": "filing_year",
"size": 10,
"order": {
"_term": "asc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async IpcLcFilingyearAggs(obj) {//IPC大类申请趋势聚合
var params = {
"query": {
"bool": {
"must": [
{
"bool": {
"must_not": {
"wildcard": {
"main_ipc": "*-*"
}
}
}
}
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "large class",
"size": 20,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_year": {
"terms": {
"field": "filing_year",
"size": 10,
"order": {
"_term": "asc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
async IpcScFilingyearAggs(obj) {//IPC小类申请趋势聚合
var params = {
"query": {
"bool": {
"must": [
{
"bool": {
"must_not": {
"wildcard": {
"main_ipc": "*-*"
}
}
}
}
]
}
},
"from": 0,
"size": 1,
"aggregations": {
"group_by_ipc": {
"terms": {
"field": "sub_class",
"size": 20,
"order": {
"_count": "desc"
}
},
"aggregations": {
"group_by_year": {
"terms": {
"field": "filing_year",
"size": 10,
"order": {
"_term": "asc"
}
}
}
}
}
}
};
for (var x in obj) {
params.query.bool.must.push(obj[x]);
}
var rc = System.getObject("util.execClient");
var rtn = null;
var requrl = this.patentUrl;
try {
rtn = await rc.execPost(params, requrl);
var j = JSON.parse(rtn.stdout);
return rtn = {
status: 0,
msg: "操作成功",
data: j.hits,
buckets: j.aggregations
};
} catch (e) {
return rtn = {
status: -1,
msg: "操作失败",
data: null,
buckets: null
};
}
};
}
module.exports = WPatentAggregationsApi;
\ No newline at end of file
var system=require("../../../system")
const uuidv4 = require('uuid/v4');
const ApiBase = require("../../api.base");
const fs=require("fs");
var gm=require("gm");
var imageMagick = gm.subClass({ imageMagick: true });
const puppeteer = require('puppeteer');
class ImageHandleApi extends ApiBase{
constructor(){
super();
this.ossClient=system.getObject("util.ossClient");
this.execClient=system.getObject("util.execClient");
}
//生成委托书
async makeDeleForTM(obj){
var urladdress=obj.url;
const browser = await puppeteer.launch({
args: ['--no-sandbox'],
timeout: 5000,
});
console.log(urladdress);
const page = await browser.newPage();
//await page.setExtraHTTPHeaders({"Content-Type":"text/html;charset:utf-8;"});
await page.goto(urladdress,{"waitUntil":'networkidle2'});
await page.waitFor(1000);
var uuid=uuidv4();
var u=uuid.replace(/\-/g,"");
var filekey= "zc_"+u+".pdf";
var tmpfile="/tmp/"+filekey;
await page.pdf({path: tmpfile, format: 'A4'});
var rtn=await this.ossClient.upfile(filekey,tmpfile);
await browser.close();
fs.unlink(tmpfile,function(err){});
return system.getResult2({"url":rtn.url},null);
}
//商标营业执照处理,大小小于2M,宽高10-50cm
//身份证同营业执照处理
async bzLicenseForTM(obj){
console.log(obj);
//命令行
//按照jpg路径参数下载jpg到临时目录,然后再转换
var jpgpath=obj.jpgpath;
var basename=obj.jpgpath.substring(0,obj.jpgpath.lastIndexOf("."));
// var basename= await this.getUidStr(20,62);
var jpgpathtmp="/tmp/"+jpgpath;
var epspath="/tmp/"+basename+".eps";
var pdfpathKey=basename+".pdf";
var pdfpath="/tmp/"+basename+".pdf";
var result=await this.ossClient.downfile(jpgpath);
// var downClient=system.getObject("util.restClient");
// var result=await downClient.execDownload(jpgpath,jpgpathtmp);
//转换为eps
var cmd2eps="jpeg2ps -p " + " a4 "+ jpgpathtmp +" -o "+epspath;
var x=await this.execClient.exec(cmd2eps);
//转换为pdf
var cmd2pdf="ps2pdf -dDownsampleColorImages=true "+epspath+" "+pdfpath;
var y=await this.execClient.exec(cmd2pdf);
//上传 pdfpath 到ossClient
var rtn=await this.ossClient.upfile(pdfpathKey,pdfpath);
fs.unlink(jpgpathtmp,function(err){});
fs.unlink(epspath,function(err){});
fs.unlink(pdfpath,function(err){});
return system.getResult2({"url":rtn.url},null);
}
//委托书小于2M 600-4000
async deleForTM(obj){
console.log(obj);
//命令行
//按照jpg路径参数下载jpg到临时目录,然后再转换
var jpgpath=obj.jpgpath;
var basename=obj.jpgpath.substring(0,obj.jpgpath.lastIndexOf("."));
var jpgpathtmp="/tmp/"+jpgpath;
var epspath="/tmp/"+basename+".eps";
var result=await this.ossClient.downfile(jpgpath);
//转换为eps
var cmd2eps="jpeg2ps -p " + " a4 -r 300 "+ jpgpathtmp +" -o "+epspath;
var x=await this.execClient.exec(cmd2eps);
//再转换为jpeg
var cmd2jpg="eps2jpg -h 3800px -f "+epspath;
var y=await this.execClient.exec(cmd2jpg);
//上传 pdfpath 到ossClient
var rtn=await this.ossClient.upfile(jpgpath,jpgpathtmp);
fs.unlink(jpgpathtmp,function(err){});
fs.unlink(epspath,function(err){});
return system.getResult2({"url":rtn.url},null);
}
async onLineMakeTM(obj){
var word=obj.word;
var fontsize=obj.fs;
var bs=obj.bs;
var uuid=uuidv4();
var u=uuid.replace(/\-/g,"");
var destfile= "zc_word2pic"+u+".jpg";
var d =await this._onLineMakeTM(word,fontsize,bs,"/tmp/"+destfile);
var rtn=await this.ossClient.upfile(destfile,d);
fs.unlink(d,function(err){});
return system.getResult2({"url":rtn.url},null);
}
//在线生成商标图样,bs大小,fs字体尺寸
async _onLineMakeTM(word,fs,bs,destfile){
// var word=obj.word;
// var fs=obj.fs;
// var bs=obj.bs;
// var uuid=uuidv4();
// var u=uuid.replace(/\-/g,"");
// var destfile= "zc_word2pic"+u+".jpg";
var p=new Promise(function(resv,reject){
imageMagick(bs, bs, "#fff")
.font(__dirname+"/fonts/heiti.otf")
.fontSize(fs)
.drawText(0, 0, word,"center")
.write(destfile, function (err) {
if(!err){
resv(destfile);
}else{
reject(err);
}
});
});
return p;
}
//商标图样,如果
//转换为黑白
//jpeg -g参数
async toblack(obj){
//下载
var jpgpath=obj.jpgpath;
var basename=obj.jpgpath.substring(0,obj.jpgpath.lastIndexOf("."));
var result=await this.ossClient.downfile(jpgpath);
var jpgpathtmp="/tmp/"+jpgpath;
var bkimgpath="/tmp/bk"+basename+".jpg";
var comimgpath="/tmp/comimg"+basename+".jpg";
var size=await this._getImgSize(jpgpathtmp);
var maxSize=Math.max(size.height,size.width);
var scale=0;//不缩放
if(maxSize<400){
maxSize=500;
scale=1;//放大
}
if(maxSize>1500){
maxSize=1400;
scale=1;//缩小
}
//生成背景图片
var bkimg=await this._onMakeTmBkPic(maxSize,bkimgpath);
//合成图像
var comimg=await this._composeImg(scale,maxSize,jpgpathtmp,bkimgpath,comimgpath);
var grayimg=await this._grayImg(comimgpath);
//上传覆盖元先的路径
var rtn=await this.ossClient.upfile(jpgpath,comimgpath);
fs.unlink(jpgpathtmp,function(err){});
fs.unlink(bkimgpath,function(err){});
fs.unlink(comimgpath,function(err){});
return system.getResult2({"url":rtn.url},null);
}
//调整图样大小
async adjustTMSize(obj){
//下载
var jpgpath=obj.jpgpath;
var basename=obj.jpgpath.substring(0,obj.jpgpath.lastIndexOf("."));
var result=await this.ossClient.downfile(jpgpath);
var jpgpathtmp="/tmp/"+jpgpath;
var bkimgpath="/tmp/bk"+basename+".jpg";
var comimgpath="/tmp/comimg"+basename+".jpg";
var size=await this._getImgSize(jpgpathtmp);
var maxSize=Math.max(size.height,size.width);
var scale=0;//不缩放
if(maxSize<400){
maxSize=500;
scale=1;//放大
}
if(maxSize>1500){
maxSize=1400;
scale=1;//缩小
}
//生成背景图片
var bkimg=await this._onMakeTmBkPic(maxSize,bkimgpath);
//合成图像
var comimg=await this._composeImg(scale,maxSize,jpgpathtmp,bkimgpath,comimgpath);
//上传覆盖元先的路径
var rtn=await this.ossClient.upfile(jpgpath,comimgpath);
fs.unlink(jpgpathtmp,function(err){});
fs.unlink(bkimgpath,function(err){});
fs.unlink(comimgpath,function(err){});
return system.getResult2({"url":rtn.url},null);
}
//获取图像尺寸
async _getImgSize(srcImg){
var p=new Promise(function(resv,reject){
imageMagick(srcImg)
.size(function (err, size) {
if (!err){
resv(size);
}else{
reject(err);
}
});
});
return p;
}
//缩放图像
async _grayImg(srcImg){
var p=new Promise(function(resv,reject){
imageMagick(srcImg)
.colorspace("GRAY")
.write(srcImg, function (err) {
if(!err){
resv(srcImg);
}else{
reject(err);
}
});
});
return p;
}
//缩放图像
async _scaleImg(srcImg,w,h){
var p=new Promise(function(resv,reject){
imageMagick(srcImg)
.resize(w,h)
.write(srcImg, function (err) {
if(!err){
resv(srcImg);
}else{
reject(err);
}
});
});
return p;
}
//生成背景图片,bs大小
async _onMakeTmBkPic(bs,destfile){
var p=new Promise(function(resv,reject){
imageMagick(bs, bs, "#fff")
.write(destfile, function (err) {
if(!err){
resv(destfile);
}else{
reject(err);
}
});
});
return p;
}
//合成图片
async _composeImg(scale,maxSize,srcImg,bakImg,destfile){
var self=this;
var p=new Promise(async function(resv,reject){
if(scale==0){
imageMagick()
.command("composite")
.in("-gravity", "center")
.in(srcImg)
.in(bakImg)
.write(destfile,function(err){
if(!err){
resv(destfile);
}else{
reject(err);
}
});
}else{
var srcimg=await self._scaleImg(srcImg,maxSize);
imageMagick()
.command("composite")
.in("-gravity", "center")
.in(srcimg)
.in(bakImg)
.write(destfile,function(err){
if(!err){
resv(destfile);
}else{
reject(err);
}
});
}
});
return p;
}
//合成图片
async genPosterQrcodeImg(qrcode, bakImg, fileName){
if(qrcode.lastIndexOf("/") != -1) {
qrcode = qrcode.substring(qrcode.lastIndexOf("/") + 1);
}
if(bakImg.lastIndexOf("/") != -1) {
bakImg = bakImg.substring(bakImg.lastIndexOf("/") + 1);
}
var self = this;
var d1 = await this.ossClient.downfile(qrcode);
var d2 = await this.ossClient.downfile(bakImg);
if(!fileName) {
var uuid = uuidv4();
var u = uuid.replace(/\-/g,"");
fileName = "zc_" + u + ".png";
}
var qrcodeFile = "/tmp/" + qrcode;
var bakImgFile = "/tmp/" + bakImg;
var destfile = "/tmp/" + fileName;
var p=new Promise(async function(resv,reject) {
imageMagick()
.command("composite")
.in("-gravity", "SouthEast")
.in("-geometry", "+20+20")
.in(qrcodeFile)
.in(bakImgFile)
.write(destfile,async function(err){
if(!err){
// var rs = await self.ossClient.upfile(fileName, destfile);
// resv({
// "key": rs.name || "",
// "url": rs.url || ""
// });
resv(destfile);
}else{
console.error(err);
reject(err);
}
// fs.unlink(qrcodeFile, function(err){});
// fs.unlink(bakImgFile, function(err){});
// fs.unlink(destfile, function(err){});
});
});
return p;
}
//标准商标图样上传(生成黑白商标,调整商标宽高 使其合规)
async uploadStandardTm(obj){
var jpgpath=obj.jpgpath;
// var basename=obj.jpgpath.substring(0,obj.jpgpath.lastIndexOf("."));
var basename=await this.getUidStr(20,62)+".jpg";
var destfile = "/tmp/"+basename;
// var result=await this.ossClient.downfile(jpgpath);
var downClient=system.getObject("util.restClient");
var result=await downClient.execDownload(jpgpath,destfile);
var jpgpathtmp="/tmp/"+basename;
var bkimgpath="/tmp/bk"+basename+".jpg";
var comimgpath="/tmp/comimg"+basename+".jpg";
var size=await this._getImgSize(jpgpathtmp);
var maxSize=Math.max(size.height,size.width);
var scale=0;//不缩放
if(maxSize<400){
maxSize=500;
scale=1;//放大
}
if(maxSize>1500){
maxSize=1400;
scale=1;//缩小
}
//生成背景图片
var bkimg=await this._onMakeTmBkPic(maxSize,bkimgpath);
//合成图像
var comimg=await this._composeImg(scale,maxSize,jpgpathtmp,bkimgpath,comimgpath);
//上传覆盖元先的路径
var rtn=await this.ossClient.upfile(jpgpath,comimgpath);
fs.unlink(jpgpathtmp,function(err){});
fs.unlink(bkimgpath,function(err){});
// fs.unlink(comimgpath,function(err){});
var grayimg=await this._grayImg(comimgpath);
var blackjpgpath = await this.getUidStr(20,62)+".jpg";
var rtn2=await this.ossClient.upfile(blackjpgpath,comimgpath);
fs.unlink(comimgpath,function(err){});
return system.getResult2({"url":rtn.url,"url2":rtn2.url},null);
}
async getUidStr(len, radix) {
    var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
    var uuid = [], i;
    radix = radix || chars.length;
    if (len) {
      for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random()*radix];
    } else {
      var r;
      uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
      uuid[14] = '4';
      for (i = 0; i < 36; i++) {
        if (!uuid[i]) {
          r = 0 | Math.random()*16;
          uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
        }
      }
    }
    return uuid.join('');
}
}
module.exports=ImageHandleApi;
// var t=new ImageHandleApi();
//
// t.makeDeleForTM({"url":"http://192.168.18.40:3000/mobile#/products/createwts/10711536633793138"}).then(d=>{
// console.log(d);
// });
// t.onLineMakeTM("hello","/tmp/a.jpg").then(f=>{
// console.log(f);
// });
// t.adjustTMSize({
// appKey:"wx76a324c5d201d1a4",
// jpgpath:"zc_1158153631265738720187173057387ban4.jpg"
// }).then(d=>{
// console.log(d);
// });
// t.toblack({
// appKey:"wx76a324c5d201d1a4",
// jpgpath:"zc_1158153631265738720187173057387ban4.jpg"
// }).then(d=>{
// console.log(d);
// });
// t._scaleImg("/tmp/a.jpg",400).then(d=>{
// console.log(d);
// });
// t._grayImg("/tmp/b.png").then(d=>{
// console.log(d);
// });
var System = require("../../../system")
const crypto = require('crypto');
var xlsx = require('node-xlsx');
var fs = require("fs");
var accesskey = 'DHmRtFlw2Zr3KaRwUFeiu7FWATnmla';
var accessKeyId = 'LTAIyAUK8AD04P5S';
var settings = require("../../../../config/settings");
const logCtl = System.getObject("web.common.oplogCtl");
const ApiBase = require("../../api.base");
class ToolApi extends ApiBase {
constructor() {
super();
this.imghandleApi = System.getObject("api.tool.imghandle");
this.gsbSearchApi = System.getObject("api.trademark.gsbtmsearch");
this.gsbIcSearchApi = System.getObject("api.trademark.gsbicsearch");
this.uploadApi = System.getObject("api.tool.upload");
this.bytmsearch = System.getObject("api.trademark.tmsearch");
this.ossClient = System.getObject("util.ossClient");
this.appKeyStr = "wx76a324c5d201d1a4";
this.mailClient = System.getObject("util.mailClient");
this.redisClient=System.getObject("util.redisClient");
}
async getUidStr(len, radix) {
var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
var uuid = [], i;
radix = radix || chars.length;
if (len) {
for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix];
} else {
var r;
uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
uuid[14] = '4';
for (i = 0; i < 36; i++) {
if (!uuid[i]) {
r = 0 | Math.random() * 16;
uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
}
}
}
return uuid.join('');
}
async writeFile(filePath, dataBuffer) {
var promise = new Promise(function (resv, rej) {
fs.writeFile(filePath, dataBuffer, function (err, data) {
if (err) {
rej(err);
// console.log(err);
} else {
resv("success");
}
});
});
return promise;
}
//读取excel
async readXlsx(srckey) {
var path = await this.uploadApi.downfile(srckey);
console.log(path);
console.log("obj");
if (!path) {
return { code: -3, mag: "path为空" }
}
var obj = xlsx.parse(path);
fs.unlink(path, e => {
console.log("fail");
});
if (obj && obj.length > 0) {
var data = obj[0].data;
if (data && data.length > 1) {
var tmlist = [];
for (var i = 1; i < data.length; i++) {
var d = data[i];
if (d[0] && d[0] != "undefined" && d[1] && d[1] != "undefined") {
var o = { ncl_type: d[0], tm_name: d[1] };
tmlist.push(o);
}
}
// var wresult = await this.writeXlsx(tmlist);
// console.log(wresult);
// var r = await this.uploadApi.upfile(wresult.name,wresult.name);
// fs.unlink(wresult.path,e=>{
// console.log("fail");
// });
// console.log(r.url);
return { code: 1, data: tmlist };
} else {
return { code: -1, mag: "文件数据为空" }
}
} else {
return { code: -2, mag: "文件解析失败" }
}
}
async writeXlsx(excelObj) {
var data = [];
var arr = [["类别", "商标名称", "结果", "障碍备注"]];
for (var i in excelObj) {
var value = excelObj[i];
var a = [];
var tmnames = "";
if (value.tmnames && value.tmnames.length > 0) {
tmnames = value.tmnames.join(';');
}
a.push(value.ncl_type);
a.push(value.tm_name);
a.push(value.ratetext);
a.push(tmnames);
arr.push(a);
}
console.log(arr);
var buffer = xlsx.build([
{
name: 'sheet1',
data: arr
}
]);
var fileName = await this.getUidStr(12, 62);
fileName = fileName + "_" + new Date().getTime().toString();
//将文件内容插入新的文件中
var a = await fs.writeFileSync('/tmp/' + fileName + '.xlsx', buffer, { 'flag': 'w' });
return { path: '/tmp/' + fileName + '.xlsx', name: fileName + '.xlsx' };
}
//智能分析 bycquerytm.html
async bycznfx(obj, req) {
var url = obj.url;
if (!url) {
return { code: -1, mag: "文件地址为空" }
}
var srckey = url.split("aliyuncs.com/")[1];
var tmresult = await this.readXlsx(srckey);
if (tmresult && tmresult.code == 1) {
var tmlist = tmresult.data;
var rtmlist = await this.bytmsearch.tmncloneSearchs({ tmlist: tmlist });
console.log(rtmlist);
if (rtmlist && rtmlist.status == 0 && rtmlist.data) {
var wresult = await this.writeXlsx(rtmlist.data);
console.log(wresult);
var r = await this.uploadApi.upfile(wresult.name, wresult.name);
fs.unlink(wresult.path, e => {
console.log("fail");
});
console.log(r.url);
// return { code: 1, data: r };
if(r.url){
return System.getResultSuccess(r.url,null);
}else{
return System.getResultFail(-199, "计算通过率失败");
}
} else {
// return { code: -111, mag: "计算通过率失败" }
return System.getResultFail(-200, "计算通过率失败");
}
} else {
return tmresult
}
}
//文字转图片
async word2pic(o, req) {
// var app = req.session.app;
var fs = 180;
if (o.word && o.word.length > 1) {
fs = 480 / o.word.length;
}
var obj = {
"word": o.word,
"fs": fs,
"bs": 500,
};
var url = settings.apiconfig.onLineMakeTMUrl;
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(obj, url);
var j = JSON.parse(rtn.stdout);
return j;
} catch (e) {
console.log(e);
return System.getResult2(null, null);
}
}
//图片彩色转黑白
async toblack(o, req) {
var app = req.session.app;
var obj = {
"appKey": this.appKeyStr,
"jpgpath": o.key
};
var url = settings.apiconfig.toblackUrl;
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(obj, url);
var j = JSON.parse(rtn.stdout);
return j;
} catch (e) {
console.log(e);
return System.getResult2(null, null);
}
}
//调整商标图样宽高
async adjustTMSize(o, req) {
var app = req.session.app;
var obj = {
"appKey": this.appKeyStr,
"jpgpath": o.key
};
var url = settings.apiconfig.adjustTMSizeUrl;
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(obj, url);
var j = JSON.parse(rtn.stdout);
return j;
} catch (e) {
console.log(e);
return System.getResult2(null, null);
}
}
//创建委托书
async createWTS(o, req) {
// var app = req.session.app;
var obj = {
"appKey": this.appKeyStr,
"url": o.url
};
var result = await this.imghandleApi.makeDeleForTM(obj);
return result;
}
//营业执照、身份证明图片转pdf
async pic2pdf(o, req) {
// var app = req.session.app;
var obj = {
"appKey": this.appKeyStr,
"jpgpath": o.key
};
var url = settings.apiconfig.bzLicenseForTMUrl;
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(obj, url);
var j = JSON.parse(rtn.stdout);
// var j = await this.imghandleApi.bzLicenseForTM(obj);
return j;
} catch (e) {
console.log(e);
return System.getResult2(null, null);
}
}
//调整委托书大小
async adjustWTSSize(o, req) {
// var app = req.session.app;
var obj = {
"appKey": this.appKeyStr,
"jpgpath": o.key
};
var url = settings.apiconfig.wtsUrl;
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(obj, url);
var j = JSON.parse(rtn.stdout);
return j;
} catch (e) {
console.log(e);
return System.getResult2(null, null);
}
}
//通过名字查询尼斯信息
async getNclByLikeName(o, req) {
var obj = {
"name": o.name,
"appKey": this.appKeyStr
};
var result = await this.gsbSearchApi.getNclByLikeName(obj);
return result;
}
async getNcl(queryobj, req) {
var that = this;
var appkey = this.appKeyStr;
var result = { rows: [], count: 0 };
var sources = [];
var nclcode = queryobj.nclcode;
var data = {
nclcode: nclcode,
appKey: appkey,
};
var ncls = await this.gsbSearchApi.getNcl(data);
var noCodeList = [];
if (ncls.status == 0) {
result.count = ncls.total;
var d = ncls.data;
for (var i = 0; i < d.length; i++) {
var c = d[i];
var source = { code: "", name: "", fullname: "", pcode: "", disabled: false };
source.code = c.code;
source.pcode = c.pid;
source.name = c.name;
source.fullname = !c.code || c.code == "undefined" ? c.name : (c.code + " " + c.name);
if (c.level == 1) {
source.type = 1;
}
if (!c.code || c.code == "undefined") {
noCodeList.push(source);
} else {
sources.push(source);
}
}
for (let index = 0; index < noCodeList.length; index++) {
const element = noCodeList[index];
if (element) {
sources.push(element);
}
}
result.rows = sources;
}
return System.getResult2(result, null);
}
async getCompanyInfoByLikeName(oo, o, req) {
var appkey = this.appKeyStr;
var data = {
appKey: appkey,
pagesize: 5,
page: 0,
companyName: o.likestr,
};
var company = await this.gsbIcSearchApi.companynamesearch(data);
if (company.status == 0) {
return { data: company.data.list };
} else {
return {};
}
}
async getEntregistryByCompanyName(o, req) {
var appkey = this.appKeyStr;
var data = {
appKey: appkey,
pagesize: 1,
page: 0,
companyName: o.companyName,
};
var company = await this.gsbIcSearchApi.companynameonesearch(data);
if (company.status == 0 && company.data.totalSize > 0) {
return company.data.list[0];
} else {
return {};
}
}
async getCropperPic(qobj, obj, req) {
var that = this;
var base64 = obj.base64;
if (base64) {
if (base64.indexOf(";base64,") > 0) {
base64 = base64.split(";base64,")[1];
}
var img = base64;
var uid = await this.getUidStr(6, 60);
try {
var fileName = "zc_cropper" + new Date().getTime() + uid + ".jpg";
var filePath = '/tmp/' + fileName;
var dataBuffer = new Buffer(img, 'base64');
console.log(dataBuffer);
var result = null;
var r = await this.writeFile(filePath, dataBuffer);
if (r == "success") {
var result = await that.ossClient.upfile(fileName, filePath);
fs.unlink(filePath, e => {
console.log("fail");
});
return System.getResultSuccess(result.url,null);
} else {
return System.getResultFail(-100, "操作失败");
}
} catch (e) {
return System.getResultFail(-200, "操作失败");
}
}
}
//标准商标图样上传(生成黑白商标,调整商标宽高 使其合规)
async uploadStandardTm(o, req) {
// var app = req.session.app;
var obj = {
"appKey": this.appKeyStr,
"jpgpath": o.key
};
// var url = settings.apiconfig.uploadStandardTmUrl;
// var rc = System.getObject("util.execClient");
// var rtn = null;
try {
// rtn = await rc.execPost(obj, url);
// var j = JSON.parse(rtn.stdout);
var j = await this.imghandleApi.uploadStandardTm(obj);
return j;
} catch (e) {
console.log(e);
return System.getResult2(null, null);
}
}
//根据大类 名称查询尼斯
async getNclByLikeNameAndNcl(qobj, o, req) {
var obj = {
"name": o.name,
"appKey": this.appKeyStr,
};
if (o.ncls && o.ncls.length > 0) {
obj["ncls"] = o.ncls;
}
var result = await this.gsbSearchApi.getNclByLikeName_new(obj);
return result;
}
//生成企业监控报告
async createMonitoringReport(obj){
var mycompanyname = obj.companyname;
var email = obj.email;
if(!mycompanyname){
return {code:-1,msg:"企业名称参数错误"};
}
mycompanyname= await this.getConvertSemiangleStr(mycompanyname);
if(!email){
return {code:-2,msg:"邮箱参数错误"};
}
var url = "http://43.247.184.92:8015/tmdoc/api/createdoc?mycompanyname="+encodeURIComponent(mycompanyname);
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rc.execGet({}, url).then(rtn=>{
var j = rtn.stdout;
console.log("fanhui");
console.log(j);
if(j.indexOf("gsb-zc.oss-cn-beijing.aliyuncs.com")>=0){
var text="企业监控报告";
var html = '<a href="'+j+'">企业监控报告</a>'
var result = this.mailClient.sendMsg(email, "企业监控报告", null, html, null, null, []); //发送成功后result的值:250 Data Ok: queued as freedom
}
})
return {code:1};
} catch (e) {
console.log(e);
return {code:-200,msg:"操作失败"};
}
}
async getConvertSemiangleStr(str) {
var result = "";
var len = str.length;
for (var i = 0; i < len; i++) {
var cCode = str.charCodeAt(i);
//全角与半角相差(除空格外):65248(十进制)
cCode = (cCode >= 0xFF01 && cCode <= 0xFF5E) ? (cCode - 65248) : cCode;
//处理空格
cCode = (cCode == 0x03000) ? 0x0020 : cCode;
result += String.fromCharCode(cCode);
}
return result;
}
async getOssConfig(){
return this.uploadApi.getOssConfig();
}
}
module.exports = ToolApi;
// var a=await this.createMonitoringReport({companyname:companyname});
var System=require("../../../system")
const crypto = require('crypto');
var fs=require("fs");
var accesskey='DHmRtFlw2Zr3KaRwUFeiu7FWATnmla';
var accessKeyId='LTAIyAUK8AD04P5S';
var url="https://gsb-zc.oss-cn-beijing.aliyuncs.com";
class UploadApi{
constructor(){
this.cmdPdf2HtmlPattern = "docker run -i --rm -v /tmp/:/pdf 0c pdf2htmlEX --zoom 1.3 '{fileName}'";
this.restS=System.getObject("util.execClient");
this.cmdInsertToFilePattern = "sed -i 's/id=\"page-container\"/id=\"page-container\" contenteditable=\"true\"/'";
//sed -i 's/1111/&BBB/' /tmp/input.txt
//sed 's/{position}/{content}/g' {path}
}
async getOssConfig(){
var policyText = {
"expiration":"2119-12-31T16:00:00.000Z",
"conditions":[
["content-length-range",0,1048576000],
["starts-with","$key","zc"]
]
};
var b = new Buffer(JSON.stringify(policyText));
var policyBase64 = b.toString('base64');
var signature= crypto.createHmac('sha1',accesskey).update(policyBase64).digest().toString('base64'); //base64
var data={
OSSAccessKeyId:accessKeyId,
policy:policyBase64,
Signature:signature,
Bucket:'gsb-zc',
success_action_status:201,
url:url
};
return data;
};
async upfile(srckey,dest){
var oss=System.getObject("util.ossClient");
var result=await oss.upfile(srckey,"/tmp/"+dest);
return result;
};
async downfile(srckey){
var oss=System.getObject("util.ossClient");
var downfile=await oss.downfile(srckey).then(function(){
downfile="/tmp/"+srckey;
return downfile;
});
return downfile;
};
async pdf2html(obj){
var srckey=obj.key;
var downfile=await this.downfile(srckey);
var cmd=this.cmdPdf2HtmlPattern.replace(/\{fileName\}/g, srckey);
var rtn=await this.restS.exec(cmd);
var path="/tmp/"+srckey.split(".pdf")[0]+".html";
var a=await this.insertToFile(path);
fs.unlink("/tmp/"+srckey);
var result=await this.upfile(srckey.split(".pdf")[0]+".html",srckey.split(".pdf")[0]+".html");
return result.url;
};
async insertToFile(path){
var cmd=this.cmdInsertToFilePattern+" "+path;
return await this.restS.exec(cmd);
};
}
module.exports=UploadApi;
var System = require("../../../system");
var settings = require("../../../../config/settings");
const ApiBase = require("../../api.base");
//const cyjAppKey="ccb00829347e4048833af213e502c8c5";
class GsbIcSearchApi extends ApiBase {
constructor() {
super();
this.icmemberSearchUrl = settings.apiconfig.icmemberSearchUrl(settings.env);
this.icshareholderSearchUrl = settings.apiconfig.icshareholderSearchUrl(settings.env);
this.icinvestSearchUrl = settings.apiconfig.icinvestSearchUrl(settings.env);
this.icchangeSearchUrl = settings.apiconfig.icchangeSearchUrl(settings.env);
this.iccompanynameSearchUrl = settings.apiconfig.iccompanynameSearchUrl(settings.env);
this.agencynameSearchUrl = settings.apiconfig.agencynameSearchUrl(settings.env);
this.iccompanycodeSearchUrl = settings.apiconfig.iccompanycodeSearchUrl(settings.env);
this.iccompanyNumSearchUrl = settings.apiconfig.iccompanyNumSearchUrl(settings.env);
this.icbranchSearchUrl = settings.apiconfig.icbranchSearchUrl(settings.env);
this.phonesearch = System.getObject("api.trademark.phonesearch");
};
buildDate(date) {
var date = new Date(date);
var time = Date.parse(date);
time = time / 1000;
return time;
};
async membersearch(obj) {
var companyName = obj.companyName == null ? "" : obj.companyName;
companyName = await this.getConvertSemiangleStr(companyName);
var pageSize = obj.pageSize == null ? 15 : obj.pageSize;
if (obj.currentPage == null) {
var from = 0;
} else {
var from = Number((obj.currentPage - 1) * obj.pageSize);
}
var reqUrl = this.icmemberSearchUrl;
var params = {
"query": {
"bool": {
"must": [
{
"term": {
"company_name": companyName
}
}
]
}
},
"from": from,
"size": pageSize,
"_source": [
"member_name",
"member_position"
],
"aggs": {
"models": {
"terms": {
"field": "member_name"
},
"aggs": {
"userdetail": {
"top_hits": {
"size": 10,
"_source": [
"member_position"
]
}
}
}
}
}
};
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
var sources = [];
var data = {
"result": 1,
"totalSize": j.hits.total,
"pageSize": pageSize,
"currentPage": obj.currentPage - 1, "list": sources
};
j.aggregations.models.buckets.forEach(function (c) {
var po = [];
c.userdetail.hits.hits.forEach(function (d) {
po.push(d._source.member_position);
})
var source = {
memberName: c.key,
position: po,
};
sources.push(source);
});
var a = { status: 0, msg: "操作成功", data: data };
return a;
} catch (e) {
return { status: -1, msg: "操作失败", data: null };
}
};
async shareholdersearch(obj) {
var companyName = obj.companyName == null ? "" : obj.companyName;
companyName = await this.getConvertSemiangleStr(companyName);
var pageSize = obj.pageSize == null ? 15 : obj.pageSize;
if (obj.currentPage == null) {
var from = 0;
} else {
var from = Number((obj.currentPage - 1) * obj.pageSize);
}
var reqUrl = this.icshareholderSearchUrl;
var params = {
"query": {
"bool": {
"must": [
{
"term": {
"company_name": companyName
}
}
]
}
},
"from": from,
"size": pageSize,
"_source": [
"investor_name",
"subscribe_amount",
"subscribe_amount_type",
"subscribe_time",
"subscribe_type",
"paid_amount",
"paid_amount_type",
"paid_time",
"paid_type"
]
};
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
var sources = [];
var data = {
"result": 1,
"totalSize": j.hits.total,
"pageSize": pageSize,
"currentPage": obj.currentPage - 1, "list": sources
};
j.hits.hits.forEach(function (c) {
c._source.subscribe_amount_type = (c._source.subscribe_amount_type == "null" || c._source.subscribe_amount_type == null) ? "" : c._source.subscribe_amount_type;
c._source.paid_amount_type = (c._source.paid_amount_type == "null" || c._source.paid_amount_type == null) ? "" : c._source.paid_amount_type;
var source = {
subcribe: c._source.subscribe_amount + c._source.subscribe_amount_type,
shareholdersName: c._source.investor_name,
paidIn: c._source.paid_amount + c._source.paid_amount_type,
};
sources.push(source);
});
var a = { status: 0, msg: "操作成功", data: data };
return a;
} catch (e) {
return { status: -1, msg: "操作失败", data: null };
}
};
async investsearch(obj) {
var companyName = obj.companyName == null ? "" : obj.companyName;
companyName = await this.getConvertSemiangleStr(companyName);
var pageSize = obj.pageSize == null ? 15 : obj.pageSize;
if (obj.currentPage == null) {
var from = 0;
} else {
var from = Number((obj.currentPage - 1) * obj.pageSize);
}
var reqUrl = this.icinvestSearchUrl;
var params = {
"query": {
"bool": {
"must": [
{
"term": {
"company_name": companyName
}
}
]
}
},
"from": from,
"size": pageSize,
"_source": [
"invest_name",
"invest_person",
"invest_time",
"invest_capital",
"capital_type"
]
};
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
var sources = [];
var data = {
"result": 1,
"totalSize": j.hits.total,
"pageSize": pageSize,
"currentPage": obj.currentPage - 1, "list": sources
};
j.hits.hits.forEach(function (c) {
c._source.subscribe_amount_type = (c._source.subscribe_amount_type == "null" || c._source.subscribe_amount_type == null) ? "" : c._source.subscribe_amount_type;
c._source.paid_amount_type = (c._source.paid_amount_type == "null" || c._source.paid_amount_type == null) ? "" : c._source.paid_amount_type;
if (c._source.invest_time != null) {
var time = new Date(c._source.invest_time * 1000);
c._source.invest_time = time.toLocaleDateString();
}
var source = {
foundDt: c._source.invest_time,
companyName: c._source.invest_name,
registeredCapital: c._source.invest_capital + c._source.capital_type,
legalPerson: c._source.invest_person,
};
sources.push(source);
});
var a = { status: 0, msg: "操作成功", data: data };
return a;
} catch (e) {
return { status: -1, msg: "操作失败", data: null };
}
};
async changesearch(obj) {
var companyName = obj.companyName == null ? "" : obj.companyName;
companyName = await this.getConvertSemiangleStr(companyName);
var pageSize = obj.pageSize == null ? 15 : obj.pageSize;
if (obj.currentPage == null) {
var from = 0;
} else {
var from = Number((obj.currentPage - 1) * obj.pageSize);
}
var reqUrl = this.icchangeSearchUrl;
var params = {
"query": {
"bool": {
"must": [
{
"term": {
"company_name": companyName
}
}
]
}
},
"from": from,
"size": pageSize,
"_source": [
"change_item",
"change_time",
"change_before",
"change_after"
]
};
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
var sources = [];
var data = {
"result": 1,
"totalSize": j.hits.total,
"pageSize": pageSize,
"currentPage": obj.currentPage - 1, "list": sources
};
j.hits.hits.forEach(function (c) {
c._source.subscribe_amount_type = (c._source.subscribe_amount_type == "null" || c._source.subscribe_amount_type == null) ? "" : c._source.subscribe_amount_type;
c._source.paid_amount_type = (c._source.paid_amount_type == "null" || c._source.paid_amount_type == null) ? "" : c._source.paid_amount_type;
if (c._source.change_time != null) {
var time3 = new Date(c._source.change_time * 1000);
c._source.change_time = time3.toLocaleDateString();
}
var source = {
changeEvent: c._source.change_item,
changeData: c._source.change_time,
changeBefore: c._source.change_before,
changeAfter: c._source.change_after,
};
sources.push(source);
});
var a = { status: 0, msg: "操作成功", data: data };
return a;
} catch (e) {
return { status: -1, msg: "操作失败", data: null };
}
};
async companynamesearch(obj) {
var companyName = obj.companyName == null ? "" : obj.companyName;
companyName = await this.getConvertSemiangleStr(companyName);
var pageSize = obj.pageSize == null ? 15 : obj.pageSize;
if (obj.currentPage == null) {
var from = 0;
} else {
var from = Number((obj.currentPage - 1) * obj.pageSize);
}
var reqUrl = this.iccompanynameSearchUrl;
var params = {
"query": {
"bool": {
"must": [
{
"query_string": {
"default_field": "company_name",
"query": '\"' + companyName + '\"'
}
}
]
}
},
"from": from,
"size": pageSize,
"_source": [
"company_id",
"company_province",
"company_domain",
"company_name",
"legal_person",
"reg_status",
"reg_unit",
"reg_capital",
"estibish_time",
"reg_location",
"credit_code"
],
"sort": [
{
"reg_capital": "desc"
}
]
};
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
var sources = [];
var data = {
"result": 1,
"totalSize": j.hits.total,
"pageSize": pageSize,
"currentPage": obj.currentPage - 1, "list": sources
};
j.hits.hits.forEach(function (c) {
if (c._source.estibish_time != null) {
var time = new Date(c._source.estibish_time * 1000);
c._source.estibish_time = time.toLocaleDateString();
}
var source = {
entId: c._source.company_id,
province: c._source.company_province,
domainEntName: c._source.company_domain,
entName: c._source.company_name,
entLegalperson: c._source.legal_person,
entStatus: c._source.reg_status,
capitalUnit: c._source.reg_unit,
capitalStandard: c._source.reg_capital,
foundedTime: c._source.estibish_time,
regLocation: c._source.reg_location,
creditCode: c._source.credit_code,
};
sources.push(source);
});
j.hits.hits = data;
var a = { status: 0, msg: "操作成功", data: data };
return a;
} catch (e) {
return { status: -1, msg: "操作失败", data: null };
}
};
async companynameonesearch(obj) {
var companyName = obj.companyName == null ? "" : obj.companyName;
companyName = await this.getConvertSemiangleStr(companyName);
var pageSize = 1;
if (obj.currentPage == null) {
var from = 0;
} else {
var from = Number((obj.currentPage - 1) * obj.pageSize);
}
var reqUrl = this.iccompanynameSearchUrl;
var params = {
"query": {
"bool": {
"must": [
{
"term": {
"company_name.raw": companyName
}
}
]
}
},
"from": from,
"size": pageSize,
"_source": [
"company_id",
"company_province",
"company_domain",
"legal_person",
"reg_status",
"reg_unit",
"reg_capital",
"estibish_time",
"credit_code",
"reg_number",
"org_number",
"company_type",
"reg_institute",
"reg_location",
"business_scope",
"approved_time",
"from_time",
"to_time",
"reg_unit"
]
};
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
var sources = [];
var data = {
"result": 1,
"totalSize": j.hits.total,
"pageSize": 1,
"currentPage": obj.currentPage - 1, "list": sources
};
j.hits.hits.forEach(function (c) {
if (c._source.approved_time != null) {
var time3 = new Date(c._source.approved_time * 1000);
c._source.approved_time = time3.toLocaleDateString();
}
if (c._source.from_time != null) {
var time3 = new Date(c._source.from_time * 1000);
c._source.from_time = time3.toLocaleDateString();
}
if (c._source.to_time != null) {
var time3 = new Date(c._source.to_time * 1000);
c._source.to_time = time3.toLocaleDateString();
}
if (c._source.estibish_time != null) {
var time3 = new Date(c._source.estibish_time * 1000);
c._source.estibish_time = time3.toLocaleDateString();
}
var source = {
name: c._source.company_domain,
legalRepresentative: c._source.legal_person,
managementState: c._source.reg_status,
registeredCapital: c._source.reg_capital + c._source.reg_unit,
foundedTime: c._source.estibish_time,
creditCode: c._source.credit_code,
registrID: c._source.reg_number,
organizationCode: c._source.org_number,
companyType: c._source.company_type,
registerOffice: c._source.reg_institute,
businessAddress: c._source.reg_location,
scope: c._source.business_scope,
dateIssue: c._source.approved_time,
businessTerm: c._source.from_time + "至" + c._source.to_time,
};
sources.push(source);
});
var a = { status: 0, msg: "操作成功", data: data };
return a;
} catch (e) {
return { status: -1, msg: "操作失败", data: null };
}
};
async companyonesearch(obj) {
var self = this;
var isVerify = obj.isVerify || 1;
if (isVerify == 1) {
}
var companyName = obj.companyName == null ? "" : obj.companyName;
companyName = await this.getConvertSemiangleStr(companyName);
var pageSize = 1;
if (obj.currentPage == null) {
var from = 0;
} else {
var from = Number((obj.currentPage - 1) * obj.pageSize);
}
var reqUrl = this.iccompanynameSearchUrl;
var params = {
"query": {
"bool": {
"must": [
{
"term": {
"company_name.raw": companyName
}
}
]
}
},
"from": from,
"size": pageSize,
"_source": [
"company_id",
"company_province",
"company_domain",
"legal_person",
"reg_status",
"reg_unit",
"reg_capital",
"estibish_time",
"credit_code",
"reg_number",
"org_number",
"company_type",
"reg_institute",
"reg_location",
"business_scope",
"approved_time",
"from_time",
"to_time",
"reg_unit"
]
};
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
var sources = [];
var data = {
"result": 1,
"totalSize": j.hits.total,
"pageSize": 1,
"currentPage": obj.currentPage - 1, "list": sources
};
for (var k = 0; k < j.hits.hits.length; k++) {
var c = j.hits.hits[k];
if (c._source.approved_time != null) {
var time3 = new Date(c._source.approved_time * 1000);
c._source.approved_time = time3.toLocaleDateString();
}
if (c._source.from_time != null) {
var time3 = new Date(c._source.from_time * 1000);
c._source.from_time = time3.toLocaleDateString();
}
if (c._source.to_time != null) {
var time3 = new Date(c._source.to_time * 1000);
c._source.to_time = time3.toLocaleDateString();
}
if (c._source.estibish_time != null) {
var time3 = new Date(c._source.estibish_time * 1000);
c._source.estibish_time = time3.toLocaleDateString();
}
if (c._source.company_domain) {
var pobj = {
appKey: obj.appKey,
companyName: c._source.company_domain
}
var phones = await self.phonesearch.phoneNameSearch(pobj);
if (phones.status == 0 && phones.data.list.length > 0) {
c._source.tel_info = phones.data.list[0]._doc.phone_number;
c._source.email_info = phones.data.list[0]._doc.email;
}
}
if (c._source.reg_unit == null) {
c._source.reg_unit = "万人民币";
}
if (c._source.reg_capital == null) {
c._source.reg_capital = "未公开";
c._source.reg_unit = "";
}
var source = {
name: c._source.company_domain,
legalRepresentative: c._source.legal_person,
managementState: c._source.reg_status,
registeredCapital: c._source.reg_capital + c._source.reg_unit,
foundedTime: c._source.estibish_time,
creditCode: c._source.credit_code,
registrID: c._source.reg_number,
organizationCode: c._source.org_number,
companyType: c._source.company_type,
registerOffice: c._source.reg_institute,
businessAddress: c._source.reg_location,
scope: c._source.business_scope,
dateIssue: c._source.approved_time,
businessTerm: c._source.from_time + "至" + c._source.to_time,
tel_info: c._source.tel_info,
};
sources.push(source);
}
var a = { status: 0, msg: "操作成功", data: data };
return a;
} catch (e) {
return { status: -1, msg: "操作失败", data: null };
}
};
async companymgetsearch(obj) {
var self = this;
var companyNames = obj.companyNames;
var pageSize = obj.companyNames.length;
if (obj.currentPage == null) {
var from = 0;
} else {
var from = Number((obj.currentPage - 1) * obj.pageSize);
}
var reqUrl = this.iccompanynameSearchUrl;
var params = {
"query": {
"bool": {
"must": [
{
"terms": {
"company_name.raw": companyNames
}
}
]
}
},
"from": from,
"size": pageSize,
"_source": [
"company_domain",
"legal_person",
"reg_unit",
"reg_capital",
"approved_time",
"reg_location"
]
};
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
var sources = [];
var data = {
"result": 1,
"totalSize": j.hits.total,
"pageSize": pageSize,
"currentPage": obj.currentPage - 1, "list": sources
};
for (var k = 0; k < j.hits.hits.length; k++) {
var c = j.hits.hits[k];
if (c._source.approved_time != null) {
var time3 = new Date(c._source.approved_time * 1000);
c._source.approved_time = time3.toLocaleDateString();
}
if (c._source.company_domain) {
var pobj = {
appKey: obj.appKey,
companyName: c._source.company_domain
}
var phones = await self.phonesearch.phoneNameSearch(pobj);
if (phones.status == 0 && phones.data.list.length > 0) {
c._source.tel_info = phones.data.list[0]._doc.phone_number;
c._source.email_info = phones.data.list[0]._doc.email;
}
}
if (c._source.reg_unit == null) {
c._source.reg_unit = "万人民币";
}
if (c._source.reg_capital == null) {
c._source.reg_capital = "未公开";
c._source.reg_unit = "";
}
var source = {
name: c._source.company_domain,
legalRepresentative: c._source.legal_person,
registeredCapital: c._source.reg_capital + c._source.reg_unit,
tel_info: c._source.tel_info,
dateIssue: c._source.approved_time,
businessAddress: c._source.reg_location
};
sources.push(source);
}
var a = { status: 0, msg: "操作成功", data: data };
return a;
} catch (e) {
return { status: -1, msg: "操作失败", data: null };
}
};
async companycodesearch(obj) {
var creditCode = obj.creditCode == null ? "" : obj.creditCode;
var pageSize = obj.pageSize == null ? 15 : obj.pageSize;
if (obj.currentPage == null) {
var from = 0;
} else {
var from = Number((obj.currentPage - 1) * obj.pageSize);
}
var reqUrl = this.iccompanycodeSearchUrl;
var params = {
"query": {
"bool": {
"must": [
{
"term": {
"credit_code": creditCode
}
}
]
}
},
"from": from,
"size": pageSize,
"_source": [
"company_name",
"credit_code",
"reg_number",
"company_type",
"legal_person",
"reg_capital",
"reg_institute",
"reg_location",
"business_scope",
"org_number",
"reg_status",
"estibish_time",
"approved_time",
"from_time",
"to_time",
"reg_unit"
]
};
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
var sources = [];
var data = {
"result": 1,
"totalSize": j.hits.total,
"pageSize": pageSize,
"currentPage": obj.currentPage - 1, "list": sources
};
j.hits.hits.forEach(function (c) {
if (c._source.approved_time != null) {
var time3 = new Date(c._source.approved_time * 1000);
c._source.approved_time = time3.toLocaleDateString();
}
if (c._source.from_time != null) {
var time3 = new Date(c._source.from_time * 1000);
c._source.from_time = time3.toLocaleDateString();
}
if (c._source.to_time != null) {
var time3 = new Date(c._source.to_time * 1000);
c._source.to_time = time3.toLocaleDateString();
}
if (c._source.estibish_time != null) {
var time3 = new Date(c._source.estibish_time * 1000);
c._source.estibish_time = time3.toLocaleDateString();
}
var source = {
name: c._source.company_name,
legalRepresentative: c._source.legal_person,
managementState: c._source.reg_status,
registeredCapital: c._source.reg_capital + c._source.reg_unit,
foundedTime: c._source.estibish_time,
creditCode: c._source.credit_code,
registrID: c._source.reg_number,
organizationCode: c._source.org_number,
companyType: c._source.company_type,
registerOffice: c._source.reg_institute,
businessAddress: c._source.reg_location,
scope: c._source.business_scope,
dateIssue: c._source.approved_time,
businessTerm: c._source.from_time + "至" + c._source.to_time,
};
sources.push(source);
});
var a = { status: 0, msg: "操作成功", data: data };
return a;
} catch (e) {
return { status: -1, msg: "操作失败", data: null };
}
};
async companyNumsearch(obj) {
var regNumber = obj.regNumber == null ? "" : obj.regNumber;
var pageSize = obj.pageSize == null ? 15 : obj.pageSize;
if (obj.currentPage == null) {
var from = 0;
} else {
var from = Number((obj.currentPage - 1) * obj.pageSize);
}
var reqUrl = this.iccompanyNumSearchUrl;
var params = {
"query": {
"bool": {
"must": [
{
"term": {
"reg_number": regNumber
}
}
]
}
},
"from": from,
"size": pageSize,
"_source": [
"company_name",
"credit_code",
"reg_number",
"company_type",
"legal_person",
"reg_capital",
"reg_institute",
"reg_location",
"business_scope",
"org_number",
"reg_status",
"estibish_time",
"approved_time",
"from_time",
"to_time",
"reg_unit"
]
};
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
var sources = [];
var data = {
"result": 1,
"totalSize": j.hits.total,
"pageSize": pageSize,
"currentPage": obj.currentPage - 1, "list": sources
};
j.hits.hits.forEach(function (c) {
if (c._source.approved_time != null) {
var time3 = new Date(c._source.approved_time * 1000);
c._source.approved_time = time3.toLocaleDateString();
}
if (c._source.from_time != null) {
var time3 = new Date(c._source.from_time * 1000);
c._source.from_time = time3.toLocaleDateString();
}
if (c._source.to_time != null) {
var time3 = new Date(c._source.to_time * 1000);
c._source.to_time = time3.toLocaleDateString();
}
if (c._source.estibish_time != null) {
var time3 = new Date(c._source.estibish_time * 1000);
c._source.estibish_time = time3.toLocaleDateString();
}
var source = {
name: c._source.company_name,
legalRepresentative: c._source.legal_person,
managementState: c._source.reg_status,
registeredCapital: c._source.reg_capital + c._source.reg_unit,
foundedTime: c._source.estibish_time,
creditCode: c._source.credit_code,
registrID: c._source.reg_number,
organizationCode: c._source.org_number,
companyType: c._source.company_type,
registerOffice: c._source.reg_institute,
businessAddress: c._source.reg_location,
scope: c._source.business_scope,
dateIssue: c._source.approved_time,
foundation: c._source.from_time,
businessTerm: c._source.from_time + "至" + c._source.to_time,
};
sources.push(source);
});
var a = { status: 0, msg: "操作成功", data: data };
return a;
} catch (e) {
return { status: -1, msg: "操作失败", data: null };
}
};
async agencynameonesearch(obj) {
var self = this;
var isVerify = obj.isVerify || 1;
if (isVerify == 1) {
}
var companyName = obj.companyName == null ? "" : obj.companyName;
companyName = await this.getConvertSemiangleStr(companyName);
var pageSize = obj.pageSize == null ? 10 : obj.pageSize;
if (obj.currentPage == null) {
var from = 0;
} else {
var from = Number((obj.currentPage - 1) * obj.pageSize);
}
var reqUrl = this.agencynameSearchUrl;
var params = {
"query": {
"bool": {
"must": [
{
"query_string": {
"default_field": "company_name",
"query": '\"' + companyName + '\"'
}
}
]
}
},
"from": from,
"size": pageSize
};
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
var data = {
"result": 1,
"totalSize": j.hits.total,
"pageSize": 1,
"currentPage": obj.currentPage - 1, "list": j.hits.hits
};
var a = { status: 0, msg: "操作成功", data: data };
return a;
} catch (e) {
return { status: -1, msg: "操作失败", data: null };
}
};
async branchsearch(obj) {
var companyName = obj.companyName == null ? "" : obj.companyName;
companyName = await this.getConvertSemiangleStr(companyName);
var pageSize = obj.pageSize == null ? 15 : obj.pageSize;
if (obj.currentPage == null) {
var from = 0;
} else {
var from = Number((obj.currentPage - 1) * obj.pageSize);
}
var reqUrl = this.icbranchSearchUrl;
var params = {
"query": {
"bool": {
"must": [
{
"term": {
"company_name": companyName
}
}
]
}
},
"from": from,
"size": pageSize,
"_source": [
"branch_name"
]
};
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
var sources = [];
var data = {
"result": 1,
"totalSize": j.hits.total,
"pageSize": pageSize,
"currentPage": obj.currentPage - 1, "list": sources
};
j.hits.hits.forEach(function (c) {
var source = {
entName: c._source.branch_name,
};
sources.push(source);
});
var a = { status: 0, msg: "操作成功", data: data };
return a;
} catch (e) {
return { status: -1, msg: "操作失败", data: null };
}
};
async getConvertSemiangleStr(str) {
var result = "";
str = str.replace(/\s+/g, "");
var len = str.length;
for (var i = 0; i < len; i++) {
var cCode = str.charCodeAt(i);
//全角与半角相差(除空格外):65248(十进制)
cCode = (cCode >= 0xFF01 && cCode <= 0xFF5E) ? (cCode - 65248) : cCode;
//处理空格
cCode = (cCode == 0x03000) ? 0x0020 : cCode;
result += String.fromCharCode(cCode);
}
return result;
};
}
module.exports = GsbIcSearchApi;
// var capi=new GsbTmSearchApi();
// capi.xzSearch({}).then(function(result){
// console.log((result));
// }).catch(function(e){
// console.log(e);
// });
var System = require("../../../system");
var settings = require("../../../../config/settings");
const ApiBase = require("../../api.base");
const logCtl = System.getObject("web.common.oplogCtl");
//const cyjAppKey="ccb00829347e4048833af213e502c8c5";
class GsbTmSearchApi extends ApiBase {
constructor() {
super();
this.xzCompanyUrl = settings.apiconfig.xzCompanySearchUrl(settings.env);
this.xzAllCompanyUrl = settings.apiconfig.xzAllCompanySearchUrl(settings.env);
this.xzDetailUrl = settings.apiconfig.xzDetailSearchUrl();
this.byslTmUrl = settings.apiconfig.byslTmUrl();
this.tmSearchUrl = settings.apiconfig.tmSearchUrl();
this.tmFlowUrl = settings.apiconfig.tmFlowUrl();
this.tmNclUrl = settings.apiconfig.tmNclUrl();
this.yyDetailUrl = settings.apiconfig.yyDetailSearchUrl();
this.nclUrl = settings.apiconfig.nclUrl();
this.agencycompanySearchUrl = settings.apiconfig.agencycompanySearchUrl();
this.utilstmSve = System.getObject("service.trademark.utilstmSve");
this.phonesearch = System.getObject("api.trademark.phonesearch");
this.oplogDao = System.getObject("db.common.oplogDao");
};
buildDate(date) {
var date = new Date(date);
var time = Date.parse(date);
time = time / 1000;
return time;
};
async xzSearch(obj) {//续展查询-ok
var self = this;
var type = obj.searchType;
if (type == "" || type == null) {
return System.getResult2(null, null);
}
var companyName = obj.companyName == null ? "" : obj.companyName;
var addr = obj.address == null ? "" : obj.address;
if (obj.startDate == null || obj.startDate == "null") {
var startTime = "";
} else {
var startTime = this.buildDate(obj.startDate);
}
if (obj.endDate == null || obj.endDate == "null") {
var endTime = "";
} else {
var endTime = this.buildDate(obj.endDate);
}
var pagesize = obj.pageSize == null ? 15 : obj.pageSize;
if (obj.currentPage == null) {
var from = 0;
} else {
var from = Number((obj.currentPage - 1) * obj.pageSize);
}
var reqUrl = this.xzCompanyUrl;
var params = {
"query": {
"bool": {
"must": [
// {
// "exists": {
// "field": "tel_info"
// }
// },
{
"term": {
"tm_company_type": type
}
}
],
"must_not": [
{
"wildcard": {
"terms": "注销*"
}
},
{
"terms": {
"status": [
"吊销,已注销",
"吊销后注销",
"吊销,已注销",
"已注销"
]
}
}
]
}
},
"from": from,
"size": pagesize,
"_source": [
"applicant_cn",
"applicant_en",
"applicant_cn_addr",
"applicant_en_addr",
"tel_info",
"email_info",
"status"
],
"sort": [
{
"tm_end_day_max": "desc"
},
{
"_id": "asc"
}
]
};
if (companyName != "" && companyName != null) {
var param = {
"wildcard": {
"applicant_cn": "*" + companyName + "*"
}
};
params.query.bool.must.push(param);
}
if (addr != "" && addr != null) {
var param = {
"wildcard": {
"applicant_cn_addr": "*" + addr + "*"
}
};
params.query.bool.must.push(param);
}
if (startTime != "" && startTime != null) {
var param = {
"range": {
"tm_end_day_max": {
"gte": startTime
}
}
};
params.query.bool.must.push(param);
}
if (endTime != "" && endTime != null) {
var param = {
"range": {
"tm_end_day_min": {
"lt": endTime
}
}
};
params.query.bool.must.push(param);
}
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
for (var i = 0; i < j.hits.hits.length; i++) {
var c = j.hits.hits[i];
if (c._source.applicant_cn) {
var pobj = {
appKey: obj.appKey,
companyName: c._source.applicant_cn
}
var phones = await self.phonesearch.phoneNameSearch(pobj);
if (phones.status == 0 && phones.data.list.length > 0) {
c._source.tel_info = phones.data.list[0]._doc.phone_number;
c._source.email_info = phones.data.list[0]._doc.email;
}
}
}
return System.getResult3(j.hits, null);
} catch (e) {
return rtn = System.getResult2(null, null);
}
};
async xzallSearch(obj) {//公司商机
var companyName = obj.companyName == null ? "" : obj.companyName;
var addr = obj.address == null ? "" : obj.address;
var pagesize = obj.pageSize == null ? 15 : obj.pageSize;
if (obj.currentPage == null) {
var from = 0;
} else {
var from = Number((obj.currentPage - 1) * obj.pageSize);
}
var reqUrl = this.xzAllCompanyUrl;
var params = {
"query": {
"bool": {
"must": [
],
"must_not": [
{
"wildcard": {
"terms": "注销*"
}
},
{
"terms": {
"status": [
"吊销,已注销",
"吊销后注销",
"吊销,已注销",
"已注销"
]
}
}
]
}
},
"from": from,
"size": pagesize,
"_source": [
"applicant_cn",
"applicant_cn_addr",
"applicant_en",
"applicant_en_addr",
"reg_property",
"reg_capital",
"status",
"total_num",
"tm_company_types"
],
"sort": [
{
"total_num": "desc"
},
{
"_id": "asc"
}
]
};
if (companyName != "" && companyName != null) {
var param = {
"wildcard": {
"applicant_cn": "*" + companyName + "*"
}
};
params.query.bool.must.push(param);
}
if (addr != "" && addr != null) {
var param = {
"wildcard": {
"applicant_cn_addr": "*" + addr + "*"
}
};
params.query.bool.must.push(param);
}
console.log(param);
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
return System.getResult3(JSON.parse(rtn.stdout).hits, null);
} catch (e) {
return rtn = System.getResult2(null, null);
}
};
async xzSearchDetail(obj) {//续展详情查询
var type = obj.searchType;
if (type == "" || type == null) {
return System.getResult2(null, null);
}
if (obj.companyName == null && obj.companyName == "") {
return System.getResult2(null, null);
}
var companyName = obj.companyName;
if (obj.startDate == null) {
var startTime = "";
} else {
var startTime = this.buildDate(obj.startDate);
}
if (obj.endDate == null) {
var endTime = "";
} else {
var endTime = this.buildDate(obj.endDate);
}
var reqUrl = this.xzDetailUrl;
var params = {
"query": {
"bool": {
"must": [
{
"term": {
"renewals_type": type
}
},
{
"term": {
"applicant_cn": companyName
}
}
]
}
},
"from": 0,
"size": 500,
"_source": [
"ncl_one_codes",
"tm_regist_num",
"tm_name",
"applicant_cn",
"applicant_cn_addr",
"tm_end_day",
"tm_agency"
],
"sort": [
{
"tm_end_day": "desc"
}
]
};
if (startTime != "" || endTime != "") {
var param = {
"range": {
"busness_day": {
}
}
};
if (startTime != "") {
param.range.busness_day["gte"] = startTime;
}
if (endTime != "") {
param.range.busness_day["lt"] = endTime;
}
params.query.bool.must.push(param);
}
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
return System.getResult3(JSON.parse(rtn.stdout).hits, null);
} catch (e) {
return rtn = System.getResult2(null, null);
}
};
async yySearchDetail(obj) {//异议详情查询-???
if (obj.companyName == null && obj.companyName == "") {
return System.getResult2(null, null);
}
var companyName = obj.companyName;
if (obj.startDate == null) {
var startTime = "";
} else {
var startTime = this.buildDate(obj.startDate);
}
if (obj.endDate == null) {
var endTime = "";
} else {
var endTime = this.buildDate(obj.endDate);
}
var reqUrl = this.yyDetailUrl;
var params = {
"query": {
"bool": {
"must": [
{
"term": {
"registrant_name": companyName
}
}
]
}
},
"from": 0,
"size": 500,
"_source": [
"tm_regist_num",
"tm_name",
"registrant_name",
"registrant_addr",
"first_notice_day",
"first_notice_issue",
"first_notice_page_num",
"tm_agency"
],
"sort": [
{
"first_notice_day": "desc"
},
{
"_id": "asc"
}
]
};
if (startTime != "" || endTime != "") {
var param = {
"range": {
"first_notice_day": {
}
}
};
if (startTime != "") {
param.range.first_notice_day["gte"] = startTime;
}
if (endTime != "") {
param.range.first_notice_day["lt"] = endTime;
}
params.query.bool.must.push(param);
}
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
return System.getResult3(JSON.parse(rtn.stdout).hits, null);
} catch (e) {
return rtn = System.getResult2(null, null);
}
};
async byslSearch(obj) {//不予受理查询-???
var companyName = obj.companyName == null ? "" : obj.companyName;
var pagesize = obj.pageSize == null ? 15 : obj.pageSize;
if (obj.currentPage == null) {
var from = 0;
} else {
var from = Number((obj.currentPage - 1) * obj.pageSize);
}
var reqUrl = this.byslTmUrl;
var params = {
"query": {
"match_all": {}
},
"from": from,
"size": pagesize,
"_source": [
"registrant_name",
"tm_regist_num",
"no_accepted_day",
"no_accepted_notice_issue",
"no_accepted_notice_page_num",
"link_url",
"registrant_addr"
],
"sort": [
{
"no_accepted_day": "desc"
},
{
"_id": "asc"
}
]
};
if (companyName != null && companyName != "") {
params.query = {
"bool": {
"must": [
{
"wildcard": {
"registrant_name": "*" + companyName + "*"
}
}
]
}
};
}
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
return System.getResult3(JSON.parse(rtn.stdout).hits, null);
} catch (e) {
return rtn = System.getResult2(null, null);
}
};
async byslDetail(obj) {//不予受理详情查询-???
if (obj.companyName == null && obj.companyName == "") {
return System.getResult2(null, null);
}
var companyName = obj.companyName;
var reqUrl = this.byslDetailUrl;
var params = {
"query": {
"term": {
"registrant_name": companyName
}
},
"from": 0,
"size": 500,
"_source": [
"registrant_name",
"tm_regist_num",
"no_accepted_day",
"no_accepted_notice_issue",
"no_accepted_notice_page_num",
"link_url"
],
"sort": [
{
"no_accepted_day": "desc"
},
{
"_id": "asc"
}
]
};
if (companyName != null && companyName != "") {
params.query = {
"bool": {
"must": [
{
"wildcard": {
"registrant_name": "*" + companyName + "*"
}
}
]
}
};
}
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
return System.getResult3(JSON.parse(rtn.stdout).hits, null);
} catch (e) {
return rtn = System.getResult2(null, null);
}
};
async tmSearch(obj) {//商标查询-ok
var param = {
tm_name: obj.tmName,
reg_num: obj.regNum,
applicant_cn: obj.applicantCn,
page_size: obj.pageSize,
current_page: obj.currentPage
}
return this.utilstmSve.tmSearch(param, "GsbTmSearchApi");
};
async tmAccurateSearch(obj) {//根据商标名称进行精准查询
var tmName = obj.tmName == null ? "" : obj.tmName;
var sqlbtabkey = obj.sqlbtabkey == null ? "" : obj.sqlbtabkey;
var pagesize = obj.pagesize == null ? 15 : obj.pagesize;
if (obj.page == null) {
var from = 0;
} else {
var from = Number((obj.page - 1) * obj.pagesize);
}
if (tmName == "") {
return System.getResult2(null, null);
}
var reqUrl = this.tmSearchUrl;
var params = {
"query": {
"bool": {
"must": []
}
},
"from": from,
"size": pagesize,
"_source": [
"ncl_one_codes",
"status",
"tm_type",
"tm_regist_num",
"tm_name",
"tm_name_py",
"tm_name_en",
"apply_day",
"first_notice_day",
"original_regist_notice_day",
"first_notice_issue",
"first_notice_page_num",
"regist_notice_issue",
"regist_notice_page_num",
"tm_end_day",
"applicant_cn",
"original_applicant_cn",
"applicant_cn_addr",
"tm_agency",
"pic_url"
],
};
if (tmName != null && tmName != "") {
var param = {
"match": {
"tm_name.raw": tmName
}
}
params.query.bool.must.push(param)
}
if (sqlbtabkey != "" && sqlbtabkey != null) {
var param = {
"term": {
"ncl_one_codes": sqlbtabkey
}
}
params.query.bool.must.push(param)
}
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
return System.getResult3(j.hits, null);
} catch (e) {
return rtn = System.getResult2(null, null);
}
};
async tmAccurateJuheSearch(obj) {//根据商标名称精准查询,对查询结果进行类别聚合
var tmName = obj.tmName == null ? "" : obj.tmName;
if (tmName == "") {
return System.getResult2(null, null);
}
var reqUrl = this.tmSearchUrl;
var params = {
"query": {
"bool": {
"must": {
"term": {
"tm_name.raw": tmName
}
}
}
},
"aggregations": {
"ncl_one_codes_count": {
"terms": {
"field": "ncl_one_codes",
"size": 45,
}
}
}
};
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
return System.getResultjuhe4(j, null);
} catch (e) {
return rtn = System.getResult2(null, null);
}
};
async tmNameSearch(obj) {//根据商标名称模糊查询
var tmName = obj.tmName == null ? "" : obj.tmName;
var sqlbtabkey = obj.sqlbtabkey == null ? "" : obj.sqlbtabkey;
var pagesize = obj.pagesize == null ? 15 : obj.pagesize;
if (obj.page == null) {
var from = 0;
} else {
var from = Number((obj.page - 1) * obj.pagesize);
}
if (tmName == "") {
return System.getResult2(null, null);
}
var reqUrl = this.tmSearchUrl;
var params = {
"query": {
"bool": {
"must": []
}
},
"from": from,
"size": pagesize,
"_source": [
"ncl_one_codes",
"status",
"tm_type",
"tm_regist_num",
"tm_name",
"tm_name_py",
"tm_name_en",
"apply_day",
"first_notice_day",
"original_regist_notice_day",
"first_notice_issue",
"first_notice_page_num",
"regist_notice_issue",
"regist_notice_page_num",
"tm_end_day",
"applicant_cn",
"original_applicant_cn",
"applicant_cn_addr",
"tm_agency",
"pic_url"
],
};
if (tmName != null && tmName != "") {
var param = {
"match": {
"tm_name": tmName
}
}
params.query.bool.must.push(param)
}
if (sqlbtabkey != "" && sqlbtabkey != null) {
var param = {
"term": {
"ncl_one_codes": sqlbtabkey
}
}
params.query.bool.must.push(param)
}
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
return System.getResult3(j.hits, null);
} catch (e) {
return rtn = System.getResult2(null, null);
}
};
async tmNamejuheSearch(obj) {//根据商标名称模糊查询,对查询结果进行类别聚合
var tmName = obj.tmName == null ? "" : obj.tmName;
if (tmName == "") {
return System.getResult2(null, null);
}
var reqUrl = this.tmSearchUrl;
var params = {
"query": {
"bool": {
"must": {
"match": {
"tm_name": tmName
}
}
}
},
"aggregations": {
"ncl_one_codes_count": {
"terms": {
"field": "ncl_one_codes",
"size": 45,
}
}
}
};
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
return System.getResultjuhe4(j, null);
} catch (e) {
return rtn = System.getResult2(null, null);
}
};
async tmzchSearch(obj) {//根据商标商标号精准查询
var regNum = obj.regNum == null ? "" : obj.regNum;
var sqlbtabkey = obj.sqlbtabkey == null ? "" : obj.sqlbtabkey;
var pagesize = obj.pagesize == null ? 15 : obj.pagesize;
if (obj.page == null) {
var from = 0;
} else {
var from = Number((obj.page - 1) * obj.pagesize);
}
if (regNum == "") {
return System.getResult2(null, null);
}
var reqUrl = this.tmSearchUrl;
var params = {
"query": {
"bool": {
"must": []
}
},
"from": from,
"size": pagesize,
"_source": [
"ncl_one_codes",
"status",
"tm_type",
"tm_regist_num",
"tm_name",
"tm_name_py",
"tm_name_en",
"apply_day",
"first_notice_day",
"original_regist_notice_day",
"first_notice_issue",
"first_notice_page_num",
"regist_notice_issue",
"regist_notice_page_num",
"tm_end_day",
"applicant_cn",
"original_applicant_cn",
"applicant_cn_addr",
"tm_agency",
"pic_url"
],
};
if (regNum != "" && regNum != null) {
var param = {
"regexp": {
"tm_regist_num": "[TG]{0,1}" + regNum
}
}
params.query.bool.must.push(param)
}
if (sqlbtabkey != "" && sqlbtabkey != null) {
var param = {
"term": {
"ncl_one_codes": sqlbtabkey
}
}
params.query.bool.must.push(param)
}
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
return System.getResult3(j.hits, null);
} catch (e) {
return rtn = System.getResult2(null, null);
}
};
async tmzchjuheSearch(obj) {//根据商标商标号精准查询,对查询结果进行类别聚合
var regNum = obj.regNum == null ? "" : obj.regNum;
if (regNum == "") {
return System.getResult2(null, null);
}
var reqUrl = this.tmSearchUrl;
var params = {
"query": {
"bool": {
"must": {
"regexp": {
"tm_regist_num": "[TG]{0,1}" + regNum
}
}
}
},
"aggregations": {
"ncl_one_codes_count": {
"terms": {
"field": "ncl_one_codes",
"size": 45,
}
}
}
};
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
return System.getResultjuhe4(j, null);
} catch (e) {
return rtn = System.getResult2(null, null);
}
};
async tmzcrSearch(obj) {//根据商标注册人模糊查询
var applier = obj.applier == null ? "" : obj.applier;
var sqlbtabkey = obj.sqlbtabkey == null ? "" : obj.sqlbtabkey;
var pagesize = obj.pagesize == null ? 15 : obj.pagesize;
if (obj.page == null) {
var from = 0;
} else {
var from = Number((obj.page - 1) * obj.pagesize);
}
if (applier == "") {
return System.getResult2(null, null);
}
var reqUrl = this.tmSearchUrl;
var params = {
"query": {
"bool": {
"must": []
}
},
"from": from,
"size": pagesize,
"_source": [
"ncl_one_codes",
"status",
"tm_type",
"tm_regist_num",
"tm_name",
"tm_name_py",
"tm_name_en",
"apply_day",
"first_notice_day",
"original_regist_notice_day",
"first_notice_issue",
"first_notice_page_num",
"regist_notice_issue",
"regist_notice_page_num",
"tm_end_day",
"applicant_cn",
"original_applicant_cn",
"applicant_cn_addr",
"tm_agency",
"pic_url"
],
};
if (applier != "" && applier != null) {
var param = {
"wildcard": {
"applicant_cn": "*" + applier + "*"
}
}
params.query.bool.must.push(param)
}
if (sqlbtabkey != "" && sqlbtabkey != null) {
var param = {
"term": {
"ncl_one_codes": sqlbtabkey
}
}
params.query.bool.must.push(param)
}
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
return System.getResult3(j.hits, null);
} catch (e) {
return rtn = System.getResult2(null, null);
}
};
async tmzcrjuheSearch(obj) {//根据商标注册人模糊查询,对查询结果进行类别聚合
var applier = obj.applier == null ? "" : obj.applier;
if (applier == "") {
return System.getResult2(null, null);
}
var reqUrl = this.tmSearchUrl;
var params = {
"query": {
"bool": {
"must": {
"wildcard": {
"applicant_cn": "*" + applier + "*"
}
}
}
},
"aggregations": {
"ncl_one_codes_count": {
"terms": {
"field": "ncl_one_codes",
"size": 45,
}
}
}
};
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
return System.getResultjuhe4(j, null);
} catch (e) {
return rtn = System.getResult2(null, null);
}
};
async tmSearchByRegNum(obj) {//商标查询(多注册号)-ok
var reqUrl = this.tmSearchUrl;
if (obj.regNums == null || obj.regNums.length < 1) {
return System.getResult2(null, null);
}
var pagesize = obj.pagesize == null ? 15 : obj.pagesize;
if (obj.page == null) {
var from = 0;
} else {
var from = Number((obj.page - 1) * obj.pagesize);
}
var regNums = obj.regNums == null ? "" : obj.regNums;
var params = {
"query": {
"bool": {
"must": [
{
"exists": {
"field": "ncl_one_codes"
}
},
{
"terms": {
"tm_regist_num": regNums
}
}
]
}
},
"from": from,
"size": pagesize,
"_source": [
"ncl_one_codes",
"status",
"tm_type",
"tm_regist_num",
"tm_name",
"tm_name_py",
"tm_name_en",
"apply_day",
"first_notice_day",
"original_regist_notice_day",
"first_notice_issue",
"first_notice_page_num",
"regist_notice_issue",
"regist_notice_page_num",
"tm_end_day",
"applicant_cn",
"original_applicant_cn",
"applicant_cn_addr",
"tm_agency",
"pic_url"
],
"sort": [
{
"apply_day": "desc"
},
{
"_id": "asc"
}
]
};
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
return System.getResult3(JSON.parse(rtn.stdout).hits, null);
} catch (e) {
return rtn = System.getResult2(null, null);
}
};
async getTmFlow(obj) {//商标流程
var param = {
reg_num: obj.regNum
}
return this.utilstmSve.getTmFlow(param, "GsbTmSearchApi");
}
async getTmNclSmallCodes(obj) {//商标小类
var param = {
reg_num: obj.regNum,
nclone_code: obj.nclOneCode
}
return this.utilstmSve.getTmNclSmallCodes(param, "GsbTmSearchApi");
}
async getNcl(obj) {//尼斯数据
var nclcode = obj.nclcode == null ? "" : obj.nclcode;
var level = obj.level == null ? "" : obj.level;
var nclcodelist = obj.nclcodelist || null;
var reqUrl = this.nclUrl;
var params = {
"query": {
"bool": {
"must": []
}
},
"from": 0,
"size": 2000,
"_source": [
"pid",
"level",
"code",
"name"
],
"sort": [
{
"code": "asc"
}
]
};
if (nclcode != null && nclcode != "") {
var param = {
"term": {
"pid": nclcode
}
}
params.query.bool.must.push(param)
}
if (level != null && level != "" && level != 'undefined') {
var param = {
"term": {
"level": level
}
}
params.query.bool.must.push(param)
}
if (nclcodelist != null) {
var param = {
"terms": {
"code": nclcodelist
}
}
params.query.bool.must.push(param)
}
var rc = System.getObject("util.execClient");
var rtn = null;
var postParam = rc.cmdPostPattern;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
return System.getResult3(JSON.parse(rtn.stdout).hits, null);
} catch (e) {
var nowTimeStr = (new Date()).Format("yyyy-MM-dd hh:mm:ss");
var tmpContent = "postParam:" + postParam + ",地址:" + reqUrl + ",错误:" + e.stack;
if (tmpContent.length > 3980) {
tmpContent = tmpContent.substring(0, 3980);
}
await this.oplogDao.create({
op: "/usr/node-dev/OMC/igirl-web/app/base/api/impl/gsbtmsearch.js/getNcl",
opTitle: nowTimeStr + ":获取尼斯数据_error",
logLevel: "error",
content: tmpContent,
opLogType: "other",
opLogStatus: "fail"
});
return rtn = System.getResult2(null, null);
}
};
async getNclByLikeName_new(obj) {//尼斯数据
var ncls = obj.ncls || null;
var name = obj.name;
var reqUrl = this.nclUrl;
var params = {
"query": {
"bool": {
"should": []
}
},
"from": 0,
"size": 2000,
"_source": [
"pid",
"level",
"code",
"name",
"belong_to_onecode"
],
"sort": [
{
"belong_to_onecode": "asc"
},
{
"code": "asc"
}
]
};
if (name != null && name != "") {
var param1 = {
"bool": {
"must": [
{
"term": {
"level": 3
}
},
{
"query_string": {
"default_field": "name.raw",
"query": "*" + name + "*"
}
}
]
}
};
var param2 = {
"bool": {
"must": [
{
"term": {
"level": 3
}
},
{
"query_string": {
"default_field": "code",
"query": "*" + name + "*"
}
}
]
}
};
if (ncls && ncls.length > 0) {
param1.bool.must.push({
"terms": {
"belong_to_onecode": ncls
}
});
param2.bool.must.push({
"terms": {
"belong_to_onecode": ncls
}
});
}
params.query.bool.should.push(param1);
params.query.bool.should.push(param2);
}
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
var tmpNclList = System.getResult3(j.hits, null);
var threeNclList = tmpNclList.data;
if (threeNclList == null || threeNclList.length <= 0) {
return System.getResult3(j.hits, null, "数据为空");
}
var oneMapNcl = {};
var twoMapNcl = {};
var nclCodeList = [];
//数据
var oneNclList = [];
for (let index = 0; index < threeNclList.length; index++) {
const element = threeNclList[index];
var tmpTwoNclItem = {//二级
code: element.pid,
name: "",
pcode: element.belong_to_onecode,
type: 1,
children: []
};
var tmpThreeNclItem = {//三级
code: element.code,
name: element.name,
pcode: element.pid
};
if (!twoMapNcl[element.pid]) {
twoMapNcl[element.pid] = element.pid;
nclCodeList.push(element.pid);
}//不存在二级
if (!oneMapNcl[element.belong_to_onecode]) {
oneMapNcl[element.belong_to_onecode] = element.belong_to_onecode;
nclCodeList.push(element.belong_to_onecode);
tmpTwoNclItem.children.push(tmpThreeNclItem);
var tmponeNclItem = {
code: element.belong_to_onecode,
name: "",
pcode: "",
type: 1,
children: [tmpTwoNclItem]
};
oneNclList.push(tmponeNclItem);
} //不存在一级
else {
for (let j = 0; j < oneNclList.length; j++) {
const jItem = oneNclList[j];
if (jItem.code == element.belong_to_onecode) {
var twoCount = 0;
for (let k = 0; k < jItem.children.length; k++) {
const kItem = jItem.children[k];
if (kItem.code == element.pid) {
oneNclList[j].children[k].children.push(tmpThreeNclItem);
twoCount++;
break;
}//处理存在二级
}
if (twoCount == 0) {
tmpTwoNclItem.children.push(tmpThreeNclItem);
oneNclList[j].children.push(tmpTwoNclItem);
}//处理不存在二级
break;
}//处理存在的一级
}
}//存在一级
}
//尼斯大类处理
var tmpNclList = await this.getNcl({ nclcodelist: nclCodeList, appKey: obj.appKey });
var getNclList = tmpNclList.data;
if (getNclList == null || getNclList.length <= 0) {
return System.getResult3(j.hits, null, "大类二类数据为空");
}
var self = this;
for (let i = 0; i < oneNclList.length; i++) {
const element = oneNclList[i];
var tOneNameItem = getNclList.filter(f => f.code == element.code);
if (tOneNameItem && tOneNameItem.length > 0) {
oneNclList[i].name = tOneNameItem[0].name;
}
element.children.sort(self.keysort('code', false));
for (let n = 0; n < element.children.length; n++) {
const nItem = element.children[n];
var tTwoNameItem = getNclList.filter(f => f.code == nItem.code);
if (tTwoNameItem && tTwoNameItem.length > 0) {
oneNclList[i].children[n].name = tTwoNameItem[0].name;
//处理三级排序
var yesCodeList = [];
var noCodeList = [];
for (let l = 0; l < nItem.children.length; l++) {
const lItem = nItem.children[l];
if (!lItem.code || lItem.code == "undefined") {
noCodeList.push(lItem);
} else {
yesCodeList.push(lItem);
}
}//三级排序
if (noCodeList.length > 0) {
yesCodeList.push.apply(yesCodeList, noCodeList);
}
oneNclList[i].children[n].children = yesCodeList;
}
}//处理二级name
}
return System.getResult2(oneNclList, null);
} catch (e) {
//日志记录
logCtl.error({
optitle: "尼斯数据查询异常==error",
op: "base/api/impl/gsbtmsearch/getNclByLikeName_new",
content: e.stack,
clientIp: ""
});
return rtn = System.getResult2(null, null);
}
}
/**
* 排序有倒序 对数组中的对象,按对象的key进行sortType排序
* @param key 数组中的对象为object,按object中的key进行排序
* @param sortType true为降序;false为升序
*/
keysort(key, sortType) {
return function (a, b) {
return sortType ? ~~(a[key] < b[key]) : ~~(a[key] > b[key]);
}
}
async getNclByLikeName(obj) {//尼斯数据
var ncls = obj.ncls || null;
var name = obj.name;
var reqUrl = this.nclUrl;
var params = {
"query": {
"bool": {
"should": []
}
},
"from": 0,
"size": 2000,
"_source": [
"pid",
"level",
"code",
"name"
],
"sort": [
{
"code": "asc"
}
]
};
if (name != null && name != "") {
var param1 = {
"bool": {
"must": [
{
"term": {
"level": 3
}
},
{
"query_string": {
"default_field": "name.raw",
"query": "*" + name + "*"
}
}
]
}
};
var param2 = {
"bool": {
"must": [
{
"term": {
"level": 3
}
},
{
"term": {
"code": name
}
}
]
}
};
if (ncls && ncls.length > 0) {
param1.bool.must.push({
"terms": {
"belong_to_onecode": ncls
}
});
param2.bool.must.push({
"terms": {
"belong_to_onecode": ncls
}
});
}
params.query.bool.should.push(param1);
params.query.bool.should.push(param2);
}
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
var tmpNclList = System.getResult3(j.hits, null);
var threeNclList = tmpNclList.data;
if (threeNclList == null || threeNclList.length <= 0) {
return System.getResult3(j.hits, null, "数据为空");
}
//尼斯大类处理
var tmpGetOneNclList = await this.getNcl({ level: 1, appKey: obj.appKey });
var getOneNclList = tmpGetOneNclList.data;
if (getOneNclList == null || getOneNclList.length <= 0) {
return System.getResult3(j.hits, null, "大类数据为空");
}
//尼斯二级类处理
var tmpGetTwoNclList = await this.getNcl({ level: 2, appKey: obj.appKey });
var getTwoNclList = tmpGetTwoNclList.data;
if (getTwoNclList == null || getTwoNclList.length <= 0) {
return System.getResult3(j.hits, null, "二类数据为空");
}
var oneNclList = [];
var twoNclList = [];
var newThreeNclList = [];
for (let i = 0; i < threeNclList.length; i++) {
var threeNcl = threeNclList[i];
if (threeNcl != null) {
var tmpTwoNclFind = tmpTwoNclFind = getTwoNclList.find(f => (f.code == threeNcl.pid));
if (tmpTwoNclFind != null) {
//组建新的小类结构
var tnewThreeNclItem = {
code: threeNcl.code, name: threeNcl.name, pcode: threeNcl.pid
};
newThreeNclList.push(tnewThreeNclItem);
var tmpOneNclFind = getOneNclList.find(f => (f.code == tmpTwoNclFind.pid));
//赋值大类、二类数据
if (tmpOneNclFind != null) {
var oneNcli = await oneNclList.findIndex(function (value, index, arr) {
return value.code == tmpOneNclFind.code;
});
if (oneNcli < 0) {
oneNclList.push(tmpOneNclFind);
}
var twoNcli = await twoNclList.findIndex(function (value, index, arr) {
return value.code == tmpTwoNclFind.code;
});
if (twoNcli < 0) {
twoNclList.push(tmpTwoNclFind);
}
}
}
}
}
if (oneNclList.length <= 0) {
return System.getResult3(j.hits, null, "遍历三类后大类数据为空");
}
if (twoNclList.length <= 0) {
return System.getResult3(j.hits, null, "遍历三类后二类数据为空");
}
oneNclList.sort(function (s1, s2) {
if (s1.code > s2.code) {
return 1
} else {
return -1
}
})
var result = [];
for (let k = 0; k < oneNclList.length; k++) {
var tOneItem = oneNclList[k];
if (tOneItem != null) {
var tParam = {
code: tOneItem.code,
name: tOneItem.name,
pcode: tOneItem.pid,
children: await this.setChildren(tOneItem.code, twoNclList, newThreeNclList)
};
result.push(tParam);
}
}
return System.getResult2(result, null);
} catch (e) {
return rtn = System.getResult2(null, null);
}
}
async setChildren(oneCode, twoNclList, newThreeNclList) {
//遍历大类下的有数据的二类
var tmpTwoNclList = twoNclList.filter(function (item) {
return item.pid == oneCode;
});
if (tmpTwoNclList.length <= 0) {
return null;
}
var tmpParams = [];
for (var i = 0; i < tmpTwoNclList.length; i++) {
var tmpOneItem = tmpTwoNclList[i];
if (tmpOneItem != null) {
var param = {
code: tmpOneItem.code,
name: tmpOneItem.name,
pcode: tmpOneItem.pid,
children: newThreeNclList.filter(function (item) {
return item.pcode == tmpOneItem.code;
})
};
tmpParams.push(param);
}
}
return tmpParams;
}
async imagesearch(obj) {//图像检索结果进行查询
var tmRegistNum = obj.tmRegistNum == null ? "" : obj.tmRegistNum;
var sqlbtabkey = obj.sqlbtabkey == null ? "" : obj.sqlbtabkey;
if (tmRegistNum == "" && tmRegistNum == null) {
return System.getResult2(null, null);
}
var reqUrl = this.tmSearchUrl;
var params = {
"query": {
"bool": {
"must": []
}
},
"_source": [
"ncl_one_codes",
"status",
"tm_type",
"tm_regist_num",
"tm_name",
"tm_name_py",
"tm_name_en",
"apply_day",
"first_notice_day",
"original_regist_notice_day",
"first_notice_issue",
"first_notice_page_num",
"regist_notice_issue",
"regist_notice_page_num",
"tm_end_day",
"applicant_cn",
"original_applicant_cn",
"applicant_cn_addr",
"tm_agency",
"pic_url"
],
};
if (tmRegistNum != "" && tmRegistNum != null) {
var param = {
"term": {
"tm_regist_num": tmRegistNum
}
}
params.query.bool.must.push(param)
}
if (sqlbtabkey != "" && sqlbtabkey != null) {
var param = {
"term": {
"ncl_one_codes": sqlbtabkey
}
}
params.query.bool.must.push(param)
}
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
return System.getResult3(j.hits, null);
} catch (e) {
return rtn = System.getResult2(null, null);
}
}
async imagesearchbycode(obj) {//图像检索结果进行分类查询
var tmRegistNumsAll = obj.tmRegistNumsAll == null ? "" : obj.tmRegistNumsAll;
var sqlbtabkey = obj.sqlbtabkey == null ? "" : obj.sqlbtabkey;
var pagesize = obj.pagesize == null ? 15 : obj.pagesize;
if (obj.page == null) {
var from = 0;
} else {
var from = Number((obj.page - 1) * obj.pagesize);
}
var reqUrl = this.tmSearchUrl;
var params = {
"query": {
"bool": {
"must": []
}
},
"from": from,
"size": pagesize,
"_source": [
"ncl_one_codes",
"status",
"tm_type",
"tm_regist_num",
"tm_name",
"tm_name_py",
"tm_name_en",
"apply_day",
"first_notice_day",
"original_regist_notice_day",
"first_notice_issue",
"first_notice_page_num",
"regist_notice_issue",
"regist_notice_page_num",
"tm_end_day",
"applicant_cn",
"original_applicant_cn",
"applicant_cn_addr",
"tm_agency",
"pic_url"
],
};
if (tmRegistNumsAll.length > 0 && tmRegistNumsAll != null) {
var param = {
"terms": {
"tm_regist_num": tmRegistNumsAll
}
}
params.query.bool.must.push(param)
}
if (sqlbtabkey != "" && sqlbtabkey != null) {
var param = {
"term": {
"ncl_one_codes": sqlbtabkey
}
}
params.query.bool.must.push(param)
}
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
return System.getResult3(j.hits, null);
} catch (e) {
return rtn = System.getResult2(null, null);
}
}
async imagesearchjuhe(obj) {//图像检索结果进行聚合
var tmRegistNumsAll = obj.tmRegistNumsAll == null ? "" : obj.tmRegistNumsAll;
var reqUrl = this.tmSearchUrl;
var params = {
"query": {
"bool": {
"must": {
"terms": {
"tm_regist_num": tmRegistNumsAll
}
}
}
},
"aggregations": {
"ncl_one_codes_count": {
"terms": {
"field": "ncl_one_codes",
"size": 45,
}
}
}
};
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
return System.getResultjuhe4(j, null);
} catch (e) {
return rtn = System.getResult2(null, null);
}
}
async fqImageSearch(obj) {
var tmRegistNum = obj.tmRegistNum == null ? "" : obj.tmRegistNum;
if (tmRegistNum == "" || tmRegistNum == null) {
return System.getResult2(null, null);
}
var reqUrl = this.tmSearchUrl;
var params = {
"query": {
"bool": {
"must": {
"term": {
"tm_regist_num": tmRegistNum
}
}
}
},
"_source": [
"ncl_one_codes",
"status",
"tm_type",
"tm_regist_num",
"tm_name",
"tm_name_py",
"tm_name_en",
"apply_day",
"first_notice_day",
"original_regist_notice_day",
"first_notice_issue",
"first_notice_page_num",
"regist_notice_issue",
"regist_notice_page_num",
"tm_end_day",
"applicant_cn",
"original_applicant_cn",
"applicant_cn_addr",
"tm_agency",
"pic_url"
],
};
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
return System.getResult3(j.hits, null);
} catch (e) {
return rtn = System.getResult2(null, null);
}
}
async getAgencyName(obj) {//代理机构名称查询
var companyName = obj.companyName == null ? "" : obj.companyName;
companyName = await this.getConvertSemiangleStr(companyName);
var pageSize = obj.pageSize == null ? 15 : obj.pageSize;
if (obj.currentPage == null) {
var from = 0;
} else {
var from = Number((obj.currentPage - 1) * obj.pageSize);
}
var reqUrl = this.agencycompanySearchUrl;
var params = {
"query": {
"bool": {
"must": [
{
"term": {
"company_name": companyName
}
}
]
}
},
"from": from,
"size": pageSize,
"_source": [
"company_name"
]
};
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
return System.getResult3(j.hits, null);
} catch (e) {
return rtn = System.getResult2(null, null);
}
}
async getConvertSemiangleStr(str) {
var result = "";
str = str.replace(/\s+/g, "");
var len = str.length;
for (var i = 0; i < len; i++) {
var cCode = str.charCodeAt(i);
//全角与半角相差(除空格外):65248(十进制)
cCode = (cCode >= 0xFF01 && cCode <= 0xFF5E) ? (cCode - 65248) : cCode;
//处理空格
cCode = (cCode == 0x03000) ? 0x0020 : cCode;
result += String.fromCharCode(cCode);
}
return result;
};
}
module.exports = GsbTmSearchApi;
// var capi=new GsbTmSearchApi();
// capi.xzSearch({}).then(function(result){
// console.log((result));
// }).catch(function(e){
// console.log(e);
// });
var System = require("../../../system");
var settings = require("../../../../config/settings");
const ApiBase = require("../../api.base");
var ad = require('../../mongo');
const logCtl = System.getObject("web.common.oplogCtl");
class GsbMgSearchApi extends ApiBase {
constructor() {
super();
this.mgdbModel = System.getObject("db.common.mgconnection").getModel("taierphones");
};
buildDate(date) {
var date = new Date(date);
var time = Date.parse(date);
time = time / 1000;
return time;
};
async phoneNameSearch(obj) {
var companyName = obj.companyName == null ? "" : obj.companyName;
companyName = await this.getConvertSemiangleStr(companyName);
var pageSize = obj.pageSize == null ? 15 : obj.pageSize;
if (obj.currentPage == null) {
var from = 0;
} else {
var from = Number((obj.currentPage - 1) * obj.pageSize);
}
var skipnum = (obj.currentPage - 1) * pageSize;
var params = {
"company_name": companyName
}
var opt = { "_id": 0 };
var rtn = null;
var list = {}
var phone = []
list.company_name = companyName
try {
rtn = await this.mgdbModel.find(params, opt).skip(skipnum).limit(pageSize).exec()
var data = {
"result": 1,
"totalSize": rtn.length,
"pageSize": pageSize,
"currentPage": obj.currentPage - 1, "list": rtn
};
var a = { status: 0, msg: "操作成功", data: data };
return a;
} catch (e) {
//日志记录
logCtl.error({
optitle: "mg操作失败,通过公司名称查电话-error",
op: "base/api/impl/phonesearch/phoneNameSearch",
content: e.stack,
clientIp: ""
});
// console.log(e.stack, "mg操作失败");
return { status: -1, msg: "操作失败", data: null };
}
}
async phoneAdressSearch(obj) {
var adress = obj.adress == null ? "" : obj.adress;
adress = await this.getConvertSemiangleStr(adress);
var pageSize = obj.pageSize == null ? 15 : obj.pageSize;
if (obj.currentPage == null) {
var from = 0;
} else {
var from = Number((obj.currentPage - 1) * obj.pageSize);
}
var skipnum = (obj.currentPage - 1) * pageSize;
var params = {
"postal_address": adress
}
var opt = { "_id": 0 };
var rtn = null;
try {
rtn = await this.mgdbModel.find(params, opt).skip(skipnum).limit(pageSize).exec()
var data = {
"result": 1,
"totalSize": rtn.length,
"pageSize": pageSize,
"currentPage": obj.currentPage, "list": rtn
};
var a = { status: 0, msg: "操作成功", data: data };
return a;
} catch (e) {
//日志记录
logCtl.error({
optitle: "mg操作失败,通过公司地址查电话-error",
op: "base/api/impl/phonesearch/phoneAdressSearch",
content: e.stack,
clientIp: ""
});
return { status: -1, msg: "操作失败", data: null };
}
}
async phoneNumSearch(obj) {
var phoneNum = obj.phoneNum == null ? "" : obj.phoneNum;
var pageSize = obj.pageSize == null ? 15 : obj.pageSize;
// if (obj.currentPage == null) {
// var from = 0;
// } else {
// var from = Number((obj.currentPage - 1) * obj.pageSize);
// }
// var skipnum = (obj.currentPage - 1) * pageSize;
var params = {
"phone_number": phoneNum
}
var opt = { "_id": 0 };
var rtn = null;
var list = {}
list.phoneNum = phoneNum
try {
rtn = await this.mgdbModel.find(params, opt).limit(20).exec()
var sources = []
if (rtn.length > 0) {
for (var i = 0; i < rtn.length; i++) {
if (sources.indexOf(rtn[i]["company_name"])<0) {
sources.push(rtn[i]["company_name"])
}
}
}
var data = {
"result": 1,
"totalSize": sources.length,
"list": sources
};
var a = { status: 0, msg: "操作成功", data: data };
return a;
} catch (e) {
//日志记录
logCtl.error({
optitle: "mg操作失败,通过电话查公司名称-error",
op: "base/api/impl/phonesearch/phoneNumSearch",
content: e.stack,
clientIp: ""
});
// console.log(e.stack, "mg操作失败>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
return { status: -1, msg: "操作失败", data: null };
}
}
async getConvertSemiangleStr(str) {
var result = "";
str = str.replace(/\s+/g, "");
var len = str.length;
for (var i = 0; i < len; i++) {
var cCode = str.charCodeAt(i);
//全角与半角相差(除空格外):65248(十进制)
cCode = (cCode >= 0xFF01 && cCode <= 0xFF5E) ? (cCode - 65248) : cCode;
//处理空格
cCode = (cCode == 0x03000) ? 0x0020 : cCode;
result += String.fromCharCode(cCode);
}
return result;
};
}
module.exports = GsbMgSearchApi;
var System=require("../../../system");
var settings=require("../../../../config/settings");
const ApiBase = require("../../api.base");
var pinyin = require("pinyin");
class tmqueryApi extends ApiBase{
constructor(){
super();
this.zcApiUrl = settings.reqZcApi();
this.ichemingUrl=settings.apiconfig.ichemingUrl();
this.GsbByTmSearchApi=System.getObject("api.trademark.tmsearch");
this.utilstmSve=System.getObject("service.trademark.utilstmSve");
// this.utilscontent=System.getObject("service.trademark.utilscontentfilterSve");
// this.gsbicsearch = System.getObject("api.trademark.gsbicsearch");
this.tm_type={P:"普通商标",J:"集体商标",Z:"证明商标",T:"特殊商标"};
this.tm_status={1:"申请中",2:"已初审",3:"已注册",4:"已无效",5:"其他"};
// this.imageQueryUrl=settings.apiconfig.imageQueryUrl();
this.tm_gjfl={1:"01类 化学原料",2:"02类 颜料油漆",3:"03类 日化用品",4:"04类 燃料油脂",5:"05类 医药",6:"06类 金属材料",7:"07类 机械设备",8:"08类 手工器械",9:"09类 科学仪器",
10:"10类 医疗器械",11:"11类 灯具空调",12:"12类 运输工具",13:"13类 军火烟火",14:"14类 珠宝钟表",15:"15类 乐器",16:"16类 办公用品",17:"17类 橡胶制品",18:"18类 皮革皮具",19:"19类 建筑材料",20:"20类 家具",21:"21类 厨房洁具",22:"22类 绳网袋蓬",23:"23类 纱线丝",24:"24类 布料床单",
25:"25类 服装鞋帽",26:"26类 钮扣拉链",27:"27类 地毯席垫",28:"28类 健身器材",29:"29类 食品",30:"30类 方便食品",31:"31类 农林生鲜",32:"32类 啤酒饮料",33:"33类 酒",34:"34类 烟草烟具",35:"35类 广告销售",36:"36类 金融物管",37:"37类 建筑修理",38:"38类 通讯服务",
39:"39类 运输贮藏",40:"40类 材料加工",41:"41类 教育娱乐",42:"42类 科技服务",43:"43类 餐饮住宿",44:"44类 医疗园艺",45:"45类 社会服务"};
}
convertDate(time){
if(time==null){
return "";
}
var date = new Date(Number(time*1000));
var y = 1900+date.getYear();
var m = "0"+(date.getMonth()+1);
var d = "0"+date.getDate();
return y+"-"+m.substring(m.length-2,m.length)+"-"+d.substring(d.length-2,d.length);
}
convertDate1(time){
if(time==null){
return "";
}
var date = new Date(Number(time*1000));
var y = 1900+date.getYear();
var m = "0"+(date.getMonth()+4);
var d = "0"+date.getDate();
return y+"-"+m.substring(m.length-2,m.length)+"-"+d.substring(d.length-2,d.length);
}
//商标群组信息 参数:data = {reg_num:注册号-精确,nclone_code:大类号-精确}
async getSbqz(data){
var tms=await this.utilstmSve.getGroupNclNumList(data);
var that=this;
var sbqz="";
if(tms.status == 0&&tms.data.exist.length>0){
tms.data.exist.forEach(function(c){
sbqz+=c.code+";";
});
}
return sbqz;
}
async findTrademarkNameIndex(query,obj){//根据商标名称模糊查询,首次查询,
var url=this.zcApiUrl+"api/trademark/tmqueryApi/findTrademarkNameIndex";
console.log(url);
var rc=System.getObject("util.execClient");
var rtn=null;
try{
rtn=await rc.execPost(obj,url);
var data=JSON.parse(rtn.stdout);
return data;
}catch(e){
return System.getResult2(null,null);
}
}
async findTrademarkName(query,obj){//根据商标名称模糊查询
var url=this.zcApiUrl+"api/trademark/tmqueryApi/findTrademarkName";
console.log(url);
var rc=System.getObject("util.execClient");
var rtn=null;
try{
rtn=await rc.execPost(obj,url);
var data=JSON.parse(rtn.stdout);
return data;
}catch(e){
return System.getResult2(null,null);
}
}
async findTrademarkNameAccurate(query,obj){//通过商标名来进行精准查询
var url=this.zcApiUrl+"api/trademark/tmqueryApi/findTrademarkNameAccurate";
console.log(url);
var rc=System.getObject("util.execClient");
var rtn=null;
try{
rtn=await rc.execPost(obj,url);
var data=JSON.parse(rtn.stdout);
return data;
}catch(e){
return System.getResult2(null,null);
}
}
async findTrademarkzchAccurate(query,obj){//通过商标号来进行精准查询
var url=this.zcApiUrl+"api/trademark/tmqueryApi/findTrademarkzchAccurate";
console.log(url);
var rc=System.getObject("util.execClient");
var rtn=null;
try{
rtn=await rc.execPost(obj,url);
var data=JSON.parse(rtn.stdout);
return data;
}catch(e){
return System.getResult2(null,null);
}
}
async findTrademarkzcr(query,obj){//通过注册人模糊查询
var url=this.zcApiUrl+"api/trademark/tmqueryApi/findTrademarkzcr";
console.log(url);
var rc=System.getObject("util.execClient");
var rtn=null;
try{
rtn=await rc.execPost(obj,url);
var data=JSON.parse(rtn.stdout);
return data;
}catch(e){
return System.getResult2(null,null);
}
}
async imagequery(query,obj){//图像检索
var url=this.zcApiUrl+"api/trademark/tmqueryApi/imagequery";
console.log(url);
var rc=System.getObject("util.execClient");
var rtn=null;
try{
rtn=await rc.execPost(obj,url);
var data=JSON.parse(rtn.stdout);
return data;
}catch(e){
return System.getResult2(null,null);
}
}
async findImageSearch(query,obj){ //图像检索查询,
var url=this.zcApiUrl+"api/trademark/tmqueryApi/findImageSearch";
console.log(url);
var rc=System.getObject("util.execClient");
var rtn=null;
try{
rtn=await rc.execPost(obj,url);
var data=JSON.parse(rtn.stdout);
return data;
}catch(e){
return System.getResult2(null,null);
}
}
async tradeMarkDetail(query,obj){//商标详情
var url=this.zcApiUrl+"api/trademark/tmqueryApi/tradeMarkDetail";
console.log(url);
var rc=System.getObject("util.execClient");
var rtn=null;
try{
rtn=await rc.execPost(obj,url);
var data=JSON.parse(rtn.stdout);
return data;
}catch(e){
return System.getResult2(null,null);
}
}
async nclFuwuSearch(query,obj){
var url=this.zcApiUrl+"api/trademark/tmqueryApi/nclFuwuSearch";
console.log(url);
var rc=System.getObject("util.execClient");
var rtn=null;
try{
rtn=await rc.execPost(obj,url);
var data=JSON.parse(rtn.stdout);
return data;
}catch(e){
return System.getResult2(null,null);
}
}
async gettwoNcl(query,obj){
var url=this.zcApiUrl+"api/trademark/tmqueryApi/gettwoNcl";
console.log(url);
var rc=System.getObject("util.execClient");
var rtn=null;
try{
rtn=await rc.execPost(obj,url);
var data=JSON.parse(rtn.stdout);
return data;
}catch(e){
return System.getResult2(null,null);
}
}
async noticequery(query,obj){
var url=this.zcApiUrl+"api/trademark/tmqueryApi/noticequery";
console.log(url);
var rc=System.getObject("util.execClient");
var rtn=null;
try{
rtn=await rc.execPost(obj,url);
var data=JSON.parse(rtn.stdout);
return data;
}catch(e){
return System.getResult2(null,null);
}
}
async getNclDetail(query,obj){
var url=this.zcApiUrl+"api/trademark/tmqueryApi/getNclDetail";
console.log(url);
var rc=System.getObject("util.execClient");
var rtn=null;
try{
rtn=await rc.execPost(obj,url);
var data=JSON.parse(rtn.stdout);
return data;
}catch(e){
return System.getResult2(null,null);
}
}
async aibynclone(obj,pobj){
var tmName=pobj.tmName;
var nclonecode=pobj.nclonecode;
var result={};
if( tmName == null || tmName == '' || tmName == 'undefined' )
{
result={code:-1,msg:"参数错误",data:null};
}
var rate = await this.GsbByTmSearchApi.tmncloneSearch(pobj);
result={code:1,msg:"成功",data:rate};
return System.getResult2(result,null);
}
async rediscache(query,obj){
var result={redislist:[]};
var openId=obj.user.openId
var mark=obj.mark;
var data={
openId:openId,
mark:mark
};
var rediscache =await this.GsbByTmSearchApi.opCache(data);
console.log(rediscache);
if(rediscache.code==1){
result.redislist=rediscache.data.reverse();
}
return System.getResult2(result,null);
}
async noticesearch(query,obj){
var url=this.zcApiUrl+"api/trademark/tmqueryApi/noticesearch";
console.log(url);
var rc=System.getObject("util.execClient");
var rtn=null;
try{
rtn=await rc.execPost(obj,url);
var data=JSON.parse(rtn.stdout);
return data;
}catch(e){
return System.getResult2(null,null);
}
}
async noticezcggsearch(query,obj){
var url=this.zcApiUrl+"api/trademark/tmqueryApi/noticezcggsearch";
console.log(url);
var rc=System.getObject("util.execClient");
var rtn=null;
try{
rtn=await rc.execPost(obj,url);
var data=JSON.parse(rtn.stdout);
return data;
}catch(e){
return System.getResult2(null,null);
}
}
async sbzuixinsearch(){
var url=this.zcApiUrl+"api/trademark/tmqueryApi/sbzuixinsearch";
console.log(url);
var rc=System.getObject("util.execClient");
var rtn=null;
try{
rtn=await rc.execPost({},url);
var data=JSON.parse(rtn.stdout);
return data;
}catch(e){
return System.getResult2(null,null);
}
}
async noticequeryTMZCSQ(query,obj){
var url=this.zcApiUrl+"api/trademark/tmqueryApi/noticequeryTMZCSQ";
console.log(url);
var rc=System.getObject("util.execClient");
var rtn=null;
try{
rtn=await rc.execPost(obj,url);
var data=JSON.parse(rtn.stdout);
return data;
}catch(e){
return System.getResult2(null,null);
}
}
//企业核名
async icheming(query,obj){
var result={};
var cityname=obj.cityname;
var keyword=obj.keyword;
var btname=obj.btname;
var orgname=obj.orgname;
var sitcity=obj.sitcity;
var heming ={
"cityname":cityname,
"keyword":keyword,
"btname":btname,
"orgname":orgname,
"sitcity":sitcity
}
var url=this.ichemingUrl;
var rc=System.getObject("util.execClient");
var rtn=null;
try{
rtn=await rc.execPost(heming,url);
var data=JSON.parse(rtn.stdout);
console.log("heming++++++++++++++++++++++++++++++++++++++++++++++++++++++");
console.log(data);
return System.getResult2(data,null);
}catch(e){
console.log(e);
return System.getResult2(result,null);
}
return System.getResult2(result,null);
}
async getCompanyInfoNoUser(queryobj, obj, req) {
var url=this.zcApiUrl+"api/trademark/tmqueryApi/getCompanyInfoNoUser";
console.log(url);
var rc=System.getObject("util.execClient");
var rtn=null;
try{
rtn=await rc.execPost(obj,url);
var data=JSON.parse(rtn.stdout);
return data;
}catch(e){
return System.getResult2(null,null);
}
}
}
module.exports=tmqueryApi;
This source diff could not be displayed because it is too large. You can view the blob instead.
var System=require("../../../system");
var settings=require("../../../../config/settings");
const ApiBase = require("../../api.base");
var pinyin = require("pinyin");
class tmsubmitApi extends ApiBase{
constructor(){
super();
this.tm_type={P:"普通商标",J:"集体商标",Z:"证明商标",T:"特殊商标"};
this.tm_status={1:"申请中",2:"已初审",3:"已注册",4:"已无效",5:"其他"};
this.tm_gjfl={1:"01类 化学原料",2:"02类 颜料油漆",3:"03类 日化用品",4:"04类 燃料油脂",5:"05类 医药",6:"06类 金属材料",7:"07类 机械设备",8:"08类 手工器械",9:"09类 科学仪器",
10:"10类 医疗器械",11:"11类 灯具空调",12:"12类 运输工具",13:"13类 军火烟火",14:"14类 珠宝钟表",15:"15类 乐器",16:"16类 办公用品",17:"17类 橡胶制品",18:"18类 皮革皮具",19:"19类 建筑材料",20:"20类 家具",21:"21类 厨房洁具",22:"22类 绳网袋蓬",23:"23类 纱线丝",24:"24类 布料床单",
25:"25类 服装鞋帽",26:"26类 钮扣拉链",27:"27类 地毯席垫",28:"28类 健身器材",29:"29类 食品",30:"30类 方便食品",31:"31类 农林生鲜",32:"32类 啤酒饮料",33:"33类 酒",34:"34类 烟草烟具",35:"35类 广告销售",36:"36类 金融物管",37:"37类 建筑修理",38:"38类 通讯服务",
39:"39类 运输贮藏",40:"40类 材料加工",41:"41类 教育娱乐",42:"42类 科技服务",43:"43类 餐饮住宿",44:"44类 医疗园艺",45:"45类 社会服务"};
}
convertDate(time){
if(time==null){
return "";
}
var date = new Date(Number(time*1000));
var y = 1900+date.getYear();
var m = "0"+(date.getMonth()+1);
var d = "0"+date.getDate();
return y+"-"+m.substring(m.length-2,m.length)+"-"+d.substring(d.length-2,d.length);
}
convertDate1(time){
if(time==null){
return "";
}
var date = new Date(Number(time*1000));
var y = 1900+date.getYear();
var m = "0"+(date.getMonth()+4);
var d = "0"+date.getDate();
return y+"-"+m.substring(m.length-2,m.length)+"-"+d.substring(d.length-2,d.length);
}
/**
* 商标提交
* 1、检查渠道编码、用户编码、产品编码、渠道订单信息
* 2、根据渠道编码获取渠道信息,判断渠道是否存在
* 3、根据用户编码获取/创建用户信息
* 4、根据产品编码获取产品信息,判断产品是否存在
* 5、调用商标提报sve,返回结果
*/
async tmsubmit(pobj,obj){
}
/**
* 商标修改
* 1、检查渠道编码、用户编码、产品编码
* 2、根据渠道编码获取渠道信息,判断渠道是否存在
* 3、根据用户编码获取/创建用户信息
* 4、根据产品编码获取产品信息,判断产品是否存在
* 5、调用商标修改sve,返回结果
*/
async tmedit(pobj,obj){
}
/**
* 商标详情
*/
async tmdetail(pobj,obj){
}
}
module.exports=tmsubmitApi;
var System=require("../../../system");
var settings=require("../../../../config/settings");
const ApiBase = require("../../api.base");
var pinyin = require("pinyin");
class tmtransactionApi extends ApiBase{
constructor(){
super();
this.GsbByTmSearchApi=System.getObject("api.trademark.tmsearch");
this.utilstmSve=System.getObject("service.trademark.utilstmSve");
this.utilstmTransactionSve = System.getObject("service.trademark.utilstmTransactionSve");
this.tm_status={1:"申请中",2:"已初审",3:"已注册",4:"已无效",5:"其他"};
this.tm_gjfl={1:"01类 化学原料",2:"02类 颜料油漆",3:"03类 日化用品",4:"04类 燃料油脂",5:"05类 医药",6:"06类 金属材料",7:"07类 机械设备",8:"08类 手工器械",9:"09类 科学仪器",
10:"10类 医疗器械",11:"11类 灯具空调",12:"12类 运输工具",13:"13类 军火烟火",14:"14类 珠宝钟表",15:"15类 乐器",16:"16类 办公用品",17:"17类 橡胶制品",18:"18类 皮革皮具",19:"19类 建筑材料",20:"20类 家具",21:"21类 厨房洁具",22:"22类 绳网袋蓬",23:"23类 纱线丝",24:"24类 布料床单",
25:"25类 服装鞋帽",26:"26类 钮扣拉链",27:"27类 地毯席垫",28:"28类 健身器材",29:"29类 食品",30:"30类 方便食品",31:"31类 农林生鲜",32:"32类 啤酒饮料",33:"33类 酒",34:"34类 烟草烟具",35:"35类 广告销售",36:"36类 金融物管",37:"37类 建筑修理",38:"38类 通讯服务",
39:"39类 运输贮藏",40:"40类 材料加工",41:"41类 教育娱乐",42:"42类 科技服务",43:"43类 餐饮住宿",44:"44类 医疗园艺",45:"45类 社会服务"};
}
convertDate(time){
if(time==null){
return "";
}
var date = new Date(Number(time*1000));
var y = 1900+date.getYear();
var m = "0"+(date.getMonth()+1);
var d = "0"+date.getDate();
return y+"-"+m.substring(m.length-2,m.length)+"-"+d.substring(d.length-2,d.length);
}
//商标交易检索
async tmTransactionSearch(query,obj){
console.log("----------------------");
console.log(obj);
var result={rows:[],total:""};
var sources=[];
var codes=[];
var keyword=obj.keyword;
var tm_nclcode=obj.tm_nclcode;
var price_min = obj.min;
var price_max = obj.max;
var tm_structure=obj.tm_structure;
if(obj.tm_word == '1-2个字'){
var tm_word = 2;
}else if(obj.tm_word == '3个字'){
var tm_word = 3;
}else if(obj.tm_word == '4个字'){
var tm_word = 4;
}else if(obj.tm_word == '5个字'){
var tm_word = 5;
}else if(obj.tm_word == '5个字以上'){
var tm_word = 6;
}else{
var tm_word ='';
}
var order_field='';
if(obj.order == "价格"){
order_field= "platform_quoted_price";
}else if(obj.order == "时间"){
order_field= "created_at";
}
var sort = obj.sort;
var pagesize=obj.pagesize;
var currentpage=obj.currentpage;
var data={
keyword:keyword,
tm_nclcode:tm_nclcode,
price_min:price_min,
price_max:price_max,
tm_structure:tm_structure,
tm_word:tm_word,
order_field:order_field,
sort:sort,
pagesize:pagesize,
currentpage:currentpage
};
console.log("zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzjjjjjjjjjjjjjjjjjj");
console.log(data);
var that = this;
var tms =await this.utilstmTransactionSve.tmTransactionSearch(data);//获取查询结果
// console.log(tms);
if(tms.status==0){
result.total=tms.total;
tms.data.forEach(function(tm){
var source={
tm_name:tm.tm_name,//商标名称
platform_quoted_price:tm.platform_quoted_price,//平台售价
ncl_one_codes:tm.ncl_one_codes,//尼斯大类
ncl_one_codes_name:that.tm_gjfl[tm.ncl_one_codes],//国际分类名称
tm_regist_num:tm.tm_regist_num,//注册号
pic_url:tm.pic_url, //图片url
pic_url_user:tm.pic_url_user //用户自己上传的图片url
}
sources.push(source)
});
result.rows=sources;
}
console.log("=====================+++++++++++++++++++++++++");
// console.log(result);
return System.getResult2(result,null);
}
async tmTransactionDetail(query,obj){//商标交易详情接口
console.log(obj);
var result={detail:{}};
var sbzch=obj.sbzch;
var gjfl=obj.gjfl;
var data={
sbzch:sbzch,
gjfl:gjfl,
};
var that = this;
var detailtms= await this.GsbByTmSearchApi.tradeMarkDetailapi(data);
var ts= await this.utilstmTransactionSve.tmTransactionDetailsve(data);//获取查询结果
var data2={
reg_num:sbzch,
nclone_code:gjfl
}
var qunzutms=await this.utilstmSve.getGroupNclInfo(data2);
var spfwxmlist=[];
var codelist=[];
if(qunzutms.status==0){
qunzutms.data.exist.forEach(function(c){
if(spfwxmlist.findIndex(f => f == c.small_name) < 0){
spfwxmlist.push(c.small_name)
}
if(codelist.findIndex(f => f ==c.code)<0){
codelist.push(c.code)
}
});
}
var spfwxm=spfwxmlist.join(",");
var codes=codelist.join(",");
var sbmc="";
var gjfl="";
var gjflname="";
var sbzch="";
var sbzt="";
var sqrq="";
var csrq="";
var zcrq="";
var zcr="";
var jzrq="";
var yzcr="";
var zcdz="";
var dljg="";
var logo="";
var pic_url_user="";
var platform_quoted_price="";
var tm_introduction="";
if(detailtms.status == 0 && detailtms.data.length>0){
var tm=detailtms.data[0];
sbmc=tm.tm_name;//商标名称
gjfl=tm.ncl_one_codes;//国际分类
gjflname=that.tm_gjfl[tm.ncl_one_codes];//国际分类名称
sbzch=tm.tm_regist_num;//商标注册号
sbzt=that.tm_status[tm.status];//商标状态
sqrq=that.convertDate(tm.apply_day);//申请日期
csrq=that.convertDate(tm.first_notice_day);//初审日期
zcrq=that.convertDate(tm.original_regist_notice_day);//注册日期
zcr=tm.applicant_cn;//申请人
jzrq=that.convertDate(tm.tm_end_day) ;//截止日期
yzcr=tm.original_applicant_cn;//原申请人
zcdz=tm.applicant_cn_addr;//申请地址
dljg=tm.tm_agency;//代理机构
logo=tm.pic_url;//商标图样
}
if(ts.status == 0 && ts.data.length>0){
var tm=ts.data[0];
platform_quoted_price=tm.platform_quoted_price;//平台售价
tm_introduction=tm.tm_introduction;//商标简介
pic_url_user=tm.pic_url_user; //用户自己上传的图片url
}
result.detail={
sbmc:sbmc,//商标名称
gjfl:gjfl,//国际分类
gjflname:gjflname,//国际分类名称
sbzch:sbzch,//商标注册号
sbzt:sbzt,//商标状态
sqrq:sqrq,//申请日期
csrq:csrq,//初审日期
zcrq:zcrq,//注册日期
zcr:zcr,//申请人
jzrq:jzrq,//截止日期
yzcr:yzcr,//原申请人
zcdz:zcdz,//申请地址
dljg:dljg,//代理机构
logo:logo,//商标图样
spfwxm:spfwxm,//商品/服务项
codes:codes,//群组
pic_url_user:pic_url_user, //用户自己上传的图片url
platform_quoted_price:platform_quoted_price,//平台售价
tm_introduction:tm_introduction//商标简介
}
console.log(result);
return System.getResult2(result,null);
}
}
module.exports=tmtransactionApi;
......@@ -42,7 +42,7 @@ class ApiUserCache extends CacheBase {
app_id: selfAppInfo.data.id,
channelUserId: channelUserId,
channelUserName: actionBody.channelUserName || channelUserId,
userMoblie: actionBody.channelUserMoblie || "15010888888",
userMoblie: actionBody.channelUserMoblie || "88888888888",
nickname: actionBody.nickname || "",
orgName: actionBody.orgName || "",
orgPath: actionBody.orgPath || "",
......
......@@ -31,5 +31,32 @@ class AppProductDao extends Dao {
raw: true
});
}
async findOneByChannelItemCode(channelItemCode, appId) {
return this.model.findOne({
where: {
channelItemCode: channelItemCode,
app_id: appId
},
attributes: ["id",
"app_id", // 应用id
"itemCode", // 产品编码
"itemName", // 产品名称
"picUrl", // 产品图片地址
"channelItemCode", // 渠道产品编码
"channelItemName", // 渠道产品名称
"status", // 状态 0禁用 1启用
"verifyPrice", // 是否验证价格 0不验证 1验证
"proPrice", // 产品价格
"serviceCharge", // 服务费
"publicExpense", // 官费
"rateConfig", // 税率
"discountsRateConfig",// 优惠税率
"channelProfitRate",// 渠道利润分成比率(只分订单中毛利润总额的分成)
"sort",
"productType_id",
"productOneType_id"],
raw: true
});
}
}
module.exports = AppProductDao;
......@@ -89,7 +89,7 @@ class OrderDao extends Dao {
async putOrder(setObj, whereObj, t) {
return this.updateByWhere(setObj, whereObj, t)
}
async getItemByChannelServiceNo(channelServiceNo, appId) {//通过订单号查询订单
async getItemByChannelServiceNo(channelServiceNo, appId) {//通过订单号查询订单
return this.model.findOne({
where: {
channelServiceNo: channelServiceNo,
......@@ -97,7 +97,10 @@ class OrderDao extends Dao {
},
attributes: ["id",
"orderNo",
"channelUserId",
"channelServiceNo",
"channelOrderNo",
"needNo",
"invoiceApplyStatus",
"orderType",
"salesNum",
......
......@@ -40,6 +40,7 @@ module.exports = (db, DataTypes) => {
channelProfitSum :DataTypes.DECIMAL(12, 2),// 订单渠道分成毛利润总额((订单总额-官费总额)*渠道利润分成比率)
pfSettleProfit :DataTypes.DECIMAL(12, 2),// 平台结算渠道利润,0否,1是
opNotes :DataTypes.STRING,// 备注
notes :DataTypes.STRING,// 备注
appPayType :{
type: DataTypes.ENUM,
values: Object.keys(uiconfig.config.pdict.app_pay_type),
......
......@@ -16,7 +16,6 @@ class OrderTmProductService extends ServiceBase {
this.tmofficialDao = system.getObject("db.dbtrademark.tmofficialDao");
this.userDao = system.getObject("db.dbapp.appuserDao");
}
//------------------------------------------创建订单-------------------开始-------------------------
async addTmOrder(params) {//创建商标订单信息
......@@ -351,30 +350,42 @@ class OrderTmProductService extends ServiceBase {
}
//------------------------------------------创建订单--------------------结束------------------------
async getChannelOrder(action_body) {
var myDate = new Date();
var quantity = action_body.quantity || 1;
if (action_body.app && action_body.app.appPayType == "00") {
action_body.payStatus = action_body.payStatus || "yfk";
action_body.payTime = action_body.payTime || myDate.toLocaleString();//myDate.toLocaleString()获取日期与时间==="2018-11-5 17:40:21"
async op1688ChannelPushOrder(action_body) {
return system.getResultSuccess();
}
async get1688ChannelOrder(action_body) {
var orderItem = await this.orderDao.getItemByChannelServiceNo(action_body.channelOrderNo, action_body.app.id);
if (!orderItem) {
return system.getResult(null, "暂无订单信息");
}
var salesDiliverNum = Number(orderItem.salesNum) - Number(orderItem.salesDiliverNum);
if (salesDiliverNum <= 0) {
return system.getResult(null, "服务单交付数量有误,数量为:" + orderItem.salesNum + ",已交付数量为:" + orderItem.salesDiliverNum);
}
var minitermDiliverNum = Number(orderItem.minitermNum) - Number(orderItem.minitermDiliverNum);
if (minitermDiliverNum <= 0) {
return system.getResult(null, "服务单交付小项数量有误,小项数量为:" + orderItem.minitermNum + ",已交付小项数量为:" + orderItem.minitermDiliverNum);
}
var param = {
itemCode: orderItem.itemCode,
channelParams: "",
channelUser: {
channelUserId: action_body.channelUserId || "",
channelUserName: action_body.channelUserName || "",
channelUserMoblie: action_body.channelUserMoblie || "",
nickname: action_body.nickname || "",
orgName: action_body.orgName || "",
orgPath: action_body.orgPath || "",
channelUserId: orderItem.channelUserId || "",
channelUserName: "",
channelUserMoblie: "",
nickname: "",
orgName: "",
orgPath: "",
},
channelOrder: {
channelServiceNo: action_body.channelServiceNo || "",
channelOrderNo: action_body.channelOrderNo || "",
needNo: action_body.needNo || "",
quantity: action_body.quantity || 1,
nclCount: Number(action_body.quantity || 1) * 10,
payStatus: action_body.payStatus || "",
payTime: action_body.payTime || "",
channelServiceNo: orderItem.channelServiceNo || "",
channelOrderNo: orderItem.channelOrderNo || "",
needNo: orderItem.needNo || "",
quantity: salesDiliverNum,
nclCount: minitermDiliverNum,
payStatus: orderItem.orderPayStatus || "",
payTime: orderItem.payTime || "",
}
};
return system.getResultSuccess(param);
......
const system = require("../../../system");
var settings = require("../../../../config/settings");
const crypto = require('crypto');
const cryptoJS = require("crypto-js");
var fs = require("fs");
var accesskey = 'DHmRtFlw2Zr3KaRwUFeiu7FWATnmla';
var accessKeyId = 'LTAIyAUK8AD04P5S';
......@@ -172,6 +173,23 @@ class ToolService {
return system.getResultSuccess(data);
};
//加密信息
async encryptStr(app, opStr) {
let keyHex = cryptoJS.enc.Utf8.parse(app.uappKey);
let ivHex = cryptoJS.enc.Utf8.parse(app.appSecret.substring(0, 8));
var cipherStr = cryptoJS.TripleDES.encrypt(opStr, keyHex, { iv: ivHex }).toString();
return system.getResultSuccess(cipherStr);
}
//解密信息
async decryptStr(app, opStr) {
let keyHex = cryptoJS.enc.Utf8.parse(app.uappKey);
let ivHex = cryptoJS.enc.Utf8.parse(app.appSecret.substring(0, 8));
var bytes = cryptoJS.TripleDES.decrypt(opStr, keyHex, {
iv: ivHex
});
var plaintext = bytes.toString(cryptoJS.enc.Utf8);
return system.getResultSuccess(plaintext);
}
}
module.exports = ToolService;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment