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")
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");
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;
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