Commit e3ea8ccd by 王悦

fix

parent 2b229d6d
let system = require("../../../system")
const http = require("http")
const fs = require("fs")
const XLSX = require('xlsx')
const querystring = require('querystring');
let settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
......@@ -7,6 +9,9 @@ const logCtl = system.getObject("web.common.oplogCtl");
const tmtransactionPath = "/tmtransaction/action/trademarktransaction/springBoard";
const tmurl = settings.tmtransactionurl() + tmtransactionPath;
let pushClient = require("../../../utils/totxClient.js").trademark;
let notifyurl = settings.serviceurl() + "/web/trademark/trademarkCtl/notify";
let pushmyurl = settings.serviceurl() + "/web/trademark/trademarkCtl/process";
let pushurl = settings.tmtransactionurl() + "/tmtransaction/action/trademarktransaction/springBoard";
//标源管理
class TrademarkCtl extends CtlBase {
......@@ -14,6 +19,7 @@ class TrademarkCtl extends CtlBase {
super("trademark", CtlBase.getServiceName(TrademarkCtl));
this.uploadSve = system.getObject("service.trademark.uploadSve");
this.execClient = system.getObject("util.execClient");
this.restClient = system.getObject("util.restClient");
}
/**
......@@ -91,11 +97,17 @@ class TrademarkCtl extends CtlBase {
let body = {
"tm": p
};
let upload = await this.uploadSve.create({
total: p.length
});
body.upload_id = upload.id;
let rtn = await pushClient(body);
let uploadid;
if (q && q.upload_id)
uploadid = q.upload_id;
else {
let upload = await this.uploadSve.create({
total: p.length
});
uploadid = upload.id;
}
body.upload_id = uploadid;
let rtn = await pushClient(body, pushurl, notifyurl);
if (rtn.status == 1) {
let tradedb = [];
p.map(db => tradedb.push({
......@@ -104,13 +116,54 @@ class TrademarkCtl extends CtlBase {
company_id: p.company_id,
// trademark_id: db.id,
tm_code: db.code,
upload_id: upload.id
upload_id: uploadid
}));
rtn = await this.service.bulkCreate(tradedb);
}
return system.getResult(rtn)
}
async excelpublish(p, q, req) {
let fileurl = p.actionBody.file_url;
let uploadid = p.actionBody.upload_id;
let upload = await this.uploadSve.findOne({
id: uploadid
});
let sp = fileurl.split("/");
let filename = sp[sp.length - 1];
await this.restClient.execDownload(fileurl, filename);
let csv = fs.readFileSync(filename).toString();
let ec = csv.replace("商标名称(必填)", "name")
.replace("申请号(必填)", "code")
.replace("卖家底价(必填,仅填入数字,如5500、12800)", "business_quoted_price")
.replace("卖家姓名(必填)", "contacts").replace("卖家电话(必填)", "mobile");
const workbook = XLSX.read(ec, {type: 'binary'});
const wsName = workbook.SheetNames[0];//取第一张表
let data = XLSX.utils.sheet_to_json(workbook.Sheets[wsName]);//生成json表格内容
if (fs.existsSync(filename)) {
fs.unlinkSync(filename);
}
upload.total = data.length;
upload.save();
for (let i = 0; i < data.length; i += 200) {
let pushd = data.slice(i, i + 200);
await this.publish(pushd, uploadid)
}
return system.getResult("ok")
}
async excelpublish1(p, q, req) {
let upload = await this.uploadSve.create({
name: p.name,
file_url: p.file_url
});
let rtn = await pushClient({upload_id: upload.id, file_url: p.file_url}, pushmyurl);
if (rtn.status == 1) {
return system.getResult(rtn)
}
return system.getResultFail(-1, rtn.msg, rtn)
}
/**
* @api {post} /web/trademark/trademarkctl/update 修改
* @apiDescription (下架/审核/状态修改)
......@@ -163,13 +216,13 @@ class TrademarkCtl extends CtlBase {
//接受队列返回消息
async notify(p, q, req) {
console.log("=====================>接受队列消息",p);
console.log("=====================>接受队列消息", p);
let update = [];
let upload_id = p.actionBody.messageBody.upload_id;
let upload = await this.uploadSve.findOne({
id: upload_id
});
upload.success = p.actionBody.resultInfo.data.successCount || 0;
upload.success += p.actionBody.resultInfo.data.successCount || 0;
upload.fail = upload.total - p.actionBody.resultInfo.data.successCount || 0;
upload.status = 1;
upload.save();
......
......@@ -3,10 +3,12 @@ const settings = require("../../../../config/settings");
const appconfig = system.getSysConfig();
module.exports = (db, DataTypes) => {
return db.define("upload", {
name: DataTypes.STRING,
status: DataTypes.INTEGER,
total: DataTypes.INTEGER,
success: DataTypes.INTEGER,
fail: DataTypes.INTEGER,
file_url: DataTypes.STRING,
}, {
paranoid: true,//假的删除
underscored: true,
......
......@@ -190,15 +190,15 @@ const returnPremium = async (orderNum) => {
}
}
const trademark = async (body) => {
const trademark = async (body,pushurl,notifyurl) => {
try {
let data = {
"actionType": "produceData",
"actionBody": {
"pushUrl": settings.tmtransactionurl() + "/tmtransaction/action/trademarktransaction/springBoard",
"pushUrl": pushurl,
"actionType": "tmBatchUpload",
"identifyCode": "trademark",
"notifyUrl": settings.serviceurl() + "/web/trademark/trademarkCtl/notify",
"notifyUrl": notifyurl,
"messageBody": body,
// "headData":{
// "XAPPKEY":"42d814c1-4daa-4643-88b2-f5dd3ec853f3"
......
......@@ -38,7 +38,7 @@ var settings = {
if (this.env == "dev") {
return "http://192.168.18.101:4018";
} else {
return "http://sytxpublic-msgq-service.chaolai";
return "http://sytxpublic-msgq-service";
}
},
channelApiUrl: function () {
......
.brand_content[data-v-61d8a464]{width:100%}.brand_content .brand_header[data-v-61d8a464]{width:100%;height:50px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#fff;-webkit-box-shadow:0 1px 0 0 #ddd;box-shadow:0 1px 0 0 #ddd;margin-bottom:10px}.brand_content .brand_header>span[data-v-61d8a464]:first-child{cursor:pointer}.brand_content .brand_header>span[data-v-61d8a464]:last-child{height:22px;font-size:16px;font-family:PingFangSC-Semibold,PingFang SC;font-weight:600;color:#000;line-height:22px;margin-left:10px}.brand_content .brand_content_upload[data-v-61d8a464]{padding:16px;width:100%;background:#fff}.brand_content .brand_content_upload p[data-v-61d8a464]{width:460px;height:21px;font-size:14px;font-family:PingFangSC-Regular,PingFang SC;font-weight:400;color:#333;line-height:21px;margin-bottom:20px}.brand_content .brand_content_upload p span[data-v-61d8a464]{color:#1890ff}
\ No newline at end of file
.brand_content[data-v-6980e27a]{width:100%}.brand_content .brand_header[data-v-6980e27a]{width:100%;height:50px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#fff;-webkit-box-shadow:0 1px 0 0 #ddd;box-shadow:0 1px 0 0 #ddd;margin-bottom:10px}.brand_content .brand_header>span[data-v-6980e27a]:first-child{cursor:pointer}.brand_content .brand_header>span[data-v-6980e27a]:last-child{height:22px;font-size:16px;font-family:PingFangSC-Semibold,PingFang SC;font-weight:600;color:#000;line-height:22px;margin-left:10px}.brand_content .brand_content_upload[data-v-6980e27a]{padding:16px;width:100%;background:#fff}.brand_content .brand_content_upload p[data-v-6980e27a]{width:460px;height:21px;font-size:14px;font-family:PingFangSC-Regular,PingFang SC;font-weight:400;color:#333;line-height:21px;margin-bottom:20px}.brand_content .brand_content_upload p span[data-v-6980e27a]{color:#1890ff}
\ No newline at end of file
<!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=icon href=/ccc.png><title></title><link href=/css/chunk-14b9857b.0dc416de.css rel=prefetch><link href=/css/chunk-2c359864.0dc416de.css rel=prefetch><link href=/css/chunk-3385141a.0dc416de.css rel=prefetch><link href=/css/chunk-51d8db1f.84955839.css rel=prefetch><link href=/css/chunk-54a8b5be.188fa860.css rel=prefetch><link href=/css/chunk-786333e2.1e75f0e2.css rel=prefetch><link href=/css/chunk-d49c726a.0912b099.css rel=prefetch><link href=/css/chunk-f36faa14.f8de9687.css rel=prefetch><link href=/js/chunk-14b9857b.045d68b1.js rel=prefetch><link href=/js/chunk-2c359864.1901a494.js rel=prefetch><link href=/js/chunk-3385141a.361ae46e.js rel=prefetch><link href=/js/chunk-4fe8dd4f.c7f5a9a6.js rel=prefetch><link href=/js/chunk-51d8db1f.a77526ea.js rel=prefetch><link href=/js/chunk-54a8b5be.6bf96954.js rel=prefetch><link href=/js/chunk-786333e2.d81b11a4.js rel=prefetch><link href=/js/chunk-d49c726a.7e8004e5.js rel=prefetch><link href=/js/chunk-f36faa14.975e3490.js rel=prefetch><link href=/css/app.d144942e.css rel=preload as=style><link href=/css/chunk-vendors.1d90d08d.css rel=preload as=style><link href=/js/app.23dda92d.js rel=preload as=script><link href=/js/chunk-vendors.0cce4d14.js rel=preload as=script><link href=/css/chunk-vendors.1d90d08d.css rel=stylesheet><link href=/css/app.d144942e.css rel=stylesheet></head><body><noscript><strong>We're sorry but iview-admin doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script src=/js/chunk-vendors.0cce4d14.js></script><script src=/js/app.23dda92d.js></script></body></html>
\ No newline at end of file
<!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=icon href=/ccc.png><title></title><link href=/css/chunk-14b9857b.0dc416de.css rel=prefetch><link href=/css/chunk-2c359864.0dc416de.css rel=prefetch><link href=/css/chunk-3385141a.0dc416de.css rel=prefetch><link href=/css/chunk-51d8db1f.84955839.css rel=prefetch><link href=/css/chunk-54a8b5be.188fa860.css rel=prefetch><link href=/css/chunk-6a7fab97.893d15bc.css rel=prefetch><link href=/css/chunk-786333e2.1e75f0e2.css rel=prefetch><link href=/css/chunk-d49c726a.0912b099.css rel=prefetch><link href=/js/chunk-14b9857b.045d68b1.js rel=prefetch><link href=/js/chunk-2c359864.1901a494.js rel=prefetch><link href=/js/chunk-3385141a.361ae46e.js rel=prefetch><link href=/js/chunk-4fe8dd4f.c7f5a9a6.js rel=prefetch><link href=/js/chunk-51d8db1f.a77526ea.js rel=prefetch><link href=/js/chunk-54a8b5be.f88d6cbd.js rel=prefetch><link href=/js/chunk-6a7fab97.fc56e32d.js rel=prefetch><link href=/js/chunk-786333e2.d81b11a4.js rel=prefetch><link href=/js/chunk-d49c726a.7e8004e5.js rel=prefetch><link href=/css/app.d144942e.css rel=preload as=style><link href=/css/chunk-vendors.1d90d08d.css rel=preload as=style><link href=/js/app.035e02cc.js rel=preload as=script><link href=/js/chunk-vendors.0cce4d14.js rel=preload as=script><link href=/css/chunk-vendors.1d90d08d.css rel=stylesheet><link href=/css/app.d144942e.css rel=stylesheet></head><body><noscript><strong>We're sorry but iview-admin doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script src=/js/chunk-vendors.0cce4d14.js></script><script src=/js/app.035e02cc.js></script></body></html>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-6a7fab97"],{"3c5b":function(e,t,a){},be4f:function(e,t,a){"use strict";a.r(t);var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"brand_content"},[a("div",{staticClass:"brand_header"},[a("span",{on:{click:e.goBack}},[a("Icon",{attrs:{type:"md-arrow-back",size:"18",color:"#1890FF"}})],1),a("span",[e._v("Excel批量上传商标")])]),a("div",{staticClass:"brand_content_upload"},[e._m(0),a("div",[a("Upload",{attrs:{data:e.d,action:e.action,accept:".csv","on-success":e.handleSuccess,"before-upload":e.handleBeforeUpload}},[a("Button",{attrs:{icon:"ios-cloud-upload-outline"}},[e._v("上传Csv文件")]),e._v(" "+e._s(e.note)+" ")],1),a("Button",{attrs:{type:"primary"},on:{click:e.check}},[e._v("发布")])],1)]),a("BizTable",{ref:"bt",attrs:{formatCol:e.formatCol,modelName:"upload",metaName:"upload_info",packageName:"trademark",tblheight:e.adjustHeight-120,isMulti:"",refvalidatemethod:e.validmethod,savebefore:e.beforesave,editbefore:e.beforedit,addbefore:e.beforeadd},on:{onexec:e.onexec,oninitbtn:e.oninitbtn}}),a("Modal",{attrs:{title:"提示"},on:{"on-ok":e.ok,"on-cancel":e.cancel},model:{value:e.modal1,callback:function(t){e.modal1=t},expression:"modal1"}},[a("p",[e._v("是否发布所有商标?")])])],1)},o=[function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("p",[e._v(" 第一次上传请下载 "),a("a",{attrs:{href:"https://gsb-zc.oss-cn-beijing.aliyuncs.com/%E5%95%86%E6%A0%87%E6%A8%A1%E7%89%88.csv",download:"商标上传模版.csv"}},[e._v("商标上传模板")]),e._v(" ,并严格按模板提供内容填入商标信息。 ")])}],c=(a("7f7f"),a("a481"),a("c1df")),s=a.n(c),r=a("60b7"),i=a("06d3"),l=a("7e1e"),d=(a("c276"),{components:{BizTable:i["a"]},data:function(){return{note:"点击上传Csv文件",fileurl:"",modal1:!1,action:"",d:{}}},methods:{goBack:function(){this.$router.go(-1)},handleSuccess:function(e,t,a){console.log(e);var n=this.loadXML(e),o=n.documentElement.getElementsByTagName("Location")[0].textContent;this.fileurl=o,this.note="文件已上传"},loadXML:function(e){var t=null;if(!window.DOMParser&&window.ActiveXObject)for(var a=["MSXML.2.DOMDocument.6.0","MSXML.2.DOMDocument.3.0","Microsoft.XMLDOM"],n=0;n<a.length;n++)try{t=new ActiveXObject(a[n]),t.async=!1,t.loadXML(e);break}catch(c){}else{if(!(window.DOMParser&&document.implementation&&document.implementation.createDocument))return null;try{var o=new DOMParser;t=o.parseFromString(e,"text/xml")}catch(c){console.log(c)}}return t},handleBeforeUpload:function(e){var t=new Date;return this.d.key="zc_"+Math.round(500*Math.random())+t.getMonth()+t.getTime()+t.getFullYear()+t.getDate()+t.getHours()+t.getMinutes()+t.getSeconds()+t.getMilliseconds()+e.name.replace(" ",""),!0},check:function(){if(!this.fileurl)return this.$Message.warning("先上传文件");this.modal1=!0},ok:function(){this.publish()},cancel:function(){},publish:function(){var e=this;Object(l["f"])("/web/trademark/trademarkCtl/excelpublish",{file_url:this.fileurl}).then((function(t){-200!=t.data.status?(e.note="点击上传Csv文件",e.$Message.success("发布成功"),e.$refs.bt.fetchData()):(e.$Message.error("发布失败"),console.log("details err:",t))})).catch((function(t){e.$Message.error("发布失败"),console.log("details err:",t)}))},onexec:function(e,t){var a=this;"info"===e&&Object(l["f"])("/web/trademark/trademarkCtl/getidlist",{upload_id:t.id}).then((function(e){if(-200!=e.data.status){var t=e.data.data.map((function(e){return e.trademark_id}));a.$router.push({name:"originmanage_order",query:{ids:t}})}else console.log("details err:",e)})).catch((function(e){console.log("details err:",e)}))},formatCol:function(e,t,a){var n=e[t];return"created_at"===t?n=s()(n).format("YYYY-MM-DD"):"status"===t&&(n=0==n?"处理中":"处理完成"),n}},mounted:function(){var e=this,t="/web/common/uploadCtl/getOssConfig";Object(r["a"])(t,null).then((function(t){if(200==t.status){var a=t.data;e.d["key"]="key",e.d["Bucket"]=a.Bucket,e.d["OSSAccessKeyId"]=a.OSSAccessKeyId,e.d["Signature"]=a.Signature,e.d["policy"]=a.policy,e.d["success_action_status"]=a.success_action_status,e.action=a.url}else console.log("cofig fetch failuer")}))},watch:{}}),u=d,f=(a("c09f"),a("2877")),m=Object(f["a"])(u,n,o,!1,null,"61d8a464",null);t["default"]=m.exports},c09f:function(e,t,a){"use strict";var n=a("3c5b"),o=a.n(n);o.a}}]);
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-f36faa14"],{"19f7":function(e,t,a){"use strict";var n=a("64eb"),o=a.n(n);o.a},"64eb":function(e,t,a){},be4f:function(e,t,a){"use strict";a.r(t);var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"brand_content"},[a("div",{staticClass:"brand_header"},[a("span",{on:{click:e.goBack}},[a("Icon",{attrs:{type:"md-arrow-back",size:"18",color:"#1890FF"}})],1),a("span",[e._v("Excel批量上传商标")])]),a("div",{staticClass:"brand_content_upload"},[e._m(0),a("div",[a("Upload",{attrs:{action:"","before-upload":e.beforeUpload,accept:".csv"}},[a("Button",{attrs:{icon:"ios-cloud-upload-outline"}},[e._v("上传Csv文件")]),e._v(" "+e._s(e.note)+" ")],1),a("Button",{attrs:{type:"primary"},on:{click:e.check}},[e._v("发布")])],1)]),a("BizTable",{ref:"bt",attrs:{formatCol:e.formatCol,modelName:"upload",metaName:"upload_info",packageName:"trademark",tblheight:e.adjustHeight-120,isMulti:"",refvalidatemethod:e.validmethod,savebefore:e.beforesave,editbefore:e.beforedit,addbefore:e.beforeadd},on:{onexec:e.onexec,oninitbtn:e.oninitbtn}}),a("Modal",{attrs:{title:"提示"},on:{"on-ok":e.ok,"on-cancel":e.cancel},model:{value:e.modal1,callback:function(t){e.modal1=t},expression:"modal1"}},[a("p",[e._v("是否发布所有商标?")])])],1)},o=[function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("p",[e._v(" 第一次上传请下载 "),a("a",{attrs:{href:"https://gsb-zc.oss-cn-beijing.aliyuncs.com/%E5%95%86%E6%A0%87%E6%A8%A1%E7%89%88.csv",download:"商标上传模版.csv"}},[e._v("商标上传模板")]),e._v(" ,并严格按模板提供内容填入商标信息。 ")])}],c=(a("7f7f"),a("ac6a"),a("c1df")),r=a.n(c),s=a("06d3"),i=a("7e1e"),l=a("c276"),d={components:{BizTable:s["a"]},data:function(){return{note:"点击上传Csv文件",publishdata:[],modal1:!1}},methods:{goBack:function(){this.$router.go(-1)},beforeUpload:function(e){var t=this;return Object(l["e"])(e).then((function(e){e.forEach((function(e){e.channel_name=t.$store.state.user.userobj.company.name,e.channel_code=t.$store.state.user.userobj.company.id,e.execlName=e.name})),t.publishdata=e,t.note="文件已上传"})).catch((function(e){t.$Notice.warning({title:"上传出错",desc:"请检查文件格式"})})),!1},check:function(){if(0===this.publishdata.length)return this.$Message.warning("先上传文件");this.modal1=!0},ok:function(){this.publish()},cancel:function(){},publish:function(){var e=this;Object(i["f"])("/web/trademark/trademarkCtl/publish",this.publishdata).then((function(t){-200!=t.data.status?(e.note="点击上传Csv文件",e.$Message.success("发布成功"),e.$refs.bt.fetchData()):(e.$Message.error("发布失败"),console.log("details err:",t))})).catch((function(t){e.$Message.error("发布失败"),console.log("details err:",t)}))},onexec:function(e,t){var a=this;"info"===e&&Object(i["f"])("/web/trademark/trademarkCtl/getidlist",{upload_id:t.id}).then((function(e){if(-200!=e.data.status){var t=e.data.data.map((function(e){return e.trademark_id}));a.$router.push({name:"originmanage_order",query:{ids:t}})}else console.log("details err:",e)})).catch((function(e){console.log("details err:",e)}))},formatCol:function(e,t,a){var n=e[t];return"created_at"===t?n=r()(n).format("YYYY-MM-DD"):"status"===t&&(n=0==n?"处理中":"处理完成"),n}},mounted:function(){},watch:{}},u=d,f=(a("19f7"),a("2877")),h=Object(f["a"])(u,n,o,!1,null,"6980e27a",null);t["default"]=h.exports}}]);
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -55,7 +55,8 @@
"sha256": "^0.2.0",
"socket.io": "^2.1.1",
"uuid": "^3.2.1",
"xml2js": "^0.4.19"
"xml2js": "^0.4.19",
"xlsx": "^0.13.3"
},
"devDependencies": {
"del": "^5.1.0",
......
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