Commit b7713981 by wkliang

兼容 商城推送 自动提报接口

parent ce6a4aa8
...@@ -27,7 +27,7 @@ var settings = { ...@@ -27,7 +27,7 @@ var settings = {
} //设置MSSQL超时时间 } //设置MSSQL超时时间
} }
}, },
kongurl: 'http://192.168.4.119:8001/', kongurl: 'http://172.17.206.185:8001/',
}; };
module.exports = settings; module.exports = settings;
\ No newline at end of file
var APIBase = require("../../api.base");
var system = require("../../../system");
var settings = require("../../../../config/settings");
class RejAPI extends APIBase {
constructor() {
super()
this.cagentcbSve = system.getObject("service.reportcb.cagentcbSve");
}
async getRejDataCb (pobj, q, req) {
try {
let result = await this.cagentcbSve.getRejData();
if (result.count) {
result.code = 200
result.msg = "数据获取成功"
} else {
result.code = 201
result.msg = "无数据"
}
return result
} catch (error) {
console.log(error.message)
return {
code: -1,
msg: error.message
}
}
}
async changeStatusCb (pobj, q, req) {
try {
await this.cagentcbSve.changeStatus(pobj)
return {
code: 200,
msg: "处理提报进度成功"
}
} catch (error) {
console.log(error.message)
return {
code: -1,
msg: error.message
}
}
}
async pushBcStatus (pobj, q, req) {
try {
this.cagentcbSve.saveBcData(pobj)
return {
code: 200,
msg: "商标局状态处理成功"
}
} catch (error) {
console.log(error.message)
return {
code: -1,
msg: error.message
}
}
}
async initBcStatusForTest (pobj, q, req) {
try {
await this.cagentcbSve.initStatus()
return {
code: 200,
msg: "重置成功"
}
} catch (error) {
return {
code: -1,
msg: error.message
}
}
}
classDesc () {
return {
groupName: "auth",
groupDesc: "认证相关的包",
name: "AccessAuthAPI",
desc: "关于认证的类",
exam: `
post http://p.apps.com/api/auth/accessAuth/getAccessKey
{
appKey:xxxxx,
secret:yyyyyy
}
`,
};
}
methodDescs () {
return [
{
methodDesc: "生成访问token,访问地址:http://......../api/auth/accessAuth/getAccessKey,访问token需要放置到后续API方法调用的请求头中",
methodName: "getAccessKey",
paramdescs: [
{
paramDesc: "访问appkey",
paramName: "appkey",
paramType: "string",
defaultValue: "",
},
{
paramDesc: "访问secret",
paramName: "secret",
paramType: "string",
defaultValue: "",
}
],
rtnTypeDesc: "返回JSON对象字符串",
rtnType: "json object {accessKey: xxxxxx, app: {xxx:xxx}},注意app,是当前app信息,详细见后面示例"
},
];
}
exam () {
return ``
}
}
module.exports = RejAPI;
var APIBase = require("../../api.base");
var system = require("../../../system");
var settings = require("../../../../config/settings");
class RejAPI extends APIBase {
constructor() {
super()
this.rejcbSve = system.getObject("service.reportcb.rejcbSve");
}
async getRejDataCb (pobj, q, req) {
try {
let result = await this.rejcbSve.getRejData();
if (result.count) {
result.code = 200
result.msg = "数据获取成功"
} else {
result.code = 201
result.msg = "无数据"
}
return result
} catch (error) {
console.log(error.message)
return {
code: -1,
msg: error.message
}
}
}
async changeStatusCb (pobj, q, req) {
try {
await this.rejcbSve.changeStatus(pobj)
return {
code: 200,
msg: "处理提报进度成功"
}
} catch (error) {
console.log(error.message)
return {
code: -1,
msg: error.message
}
}
}
async pushBcStatus (pobj, q, req) {
try {
this.rejcbSve.saveBcData(pobj)
return {
code: 200,
msg: "商标局状态处理成功"
}
} catch (error) {
console.log(error.message)
return {
code: -1,
msg: error.message
}
}
}
async initBcStatusForTest (pobj, q, req) {
try {
await this.rejcbSve.initStatus()
return {
code: 200,
msg: "重置成功"
}
} catch (error) {
return {
code: -1,
msg: error.message
}
}
}
classDesc () {
return {
groupName: "auth",
groupDesc: "认证相关的包",
name: "AccessAuthAPI",
desc: "关于认证的类",
exam: `
post http://p.apps.com/api/auth/accessAuth/getAccessKey
{
appKey:xxxxx,
secret:yyyyyy
}
`,
};
}
methodDescs () {
return [
{
methodDesc: "生成访问token,访问地址:http://......../api/auth/accessAuth/getAccessKey,访问token需要放置到后续API方法调用的请求头中",
methodName: "getAccessKey",
paramdescs: [
{
paramDesc: "访问appkey",
paramName: "appkey",
paramType: "string",
defaultValue: "",
},
{
paramDesc: "访问secret",
paramName: "secret",
paramType: "string",
defaultValue: "",
}
],
rtnTypeDesc: "返回JSON对象字符串",
rtnType: "json object {accessKey: xxxxxx, app: {xxx:xxx}},注意app,是当前app信息,详细见后面示例"
},
];
}
exam () {
return ``
}
}
module.exports = RejAPI;
...@@ -3,6 +3,7 @@ const settings = require("../../config/settings"); ...@@ -3,6 +3,7 @@ const settings = require("../../config/settings");
const uuidv4 = require('uuid/v4'); const uuidv4 = require('uuid/v4');
class CtlBase { class CtlBase {
constructor(gname, sname) { constructor(gname, sname) {
this.sec = "K8tEVIC6eb3ARGyqNF3DnQgfAl8Ed8j1";
this.serviceName = sname; this.serviceName = sname;
this.service = system.getObject("service." + gname + "." + sname); this.service = system.getObject("service." + gname + "." + sname);
this.cacheManager = system.getObject("db.common.cacheManager"); this.cacheManager = system.getObject("db.common.cacheManager");
......
...@@ -10,11 +10,11 @@ class TrademarkcaseCtl extends CtlBase { ...@@ -10,11 +10,11 @@ class TrademarkcaseCtl extends CtlBase {
return system.getResult('test') return system.getResult('test')
} }
async createRejReex (pobj, qobj, req) { async createOrUpdate (pobj, qobj, req) {
try { try {
pobj.agents.caseId = pobj.applicant.caseId = pobj.case.caseId console.log(pobj)
await this.service.createCase(pobj) let result = await this.service.createOrUpdate(pobj)
return system.getResultSuccess('success') return system.getResultSuccess(result)
} catch (error) { } catch (error) {
console.log('err: ', error) console.log('err: ', error)
return system.getResultFail(error.message) return system.getResultFail(error.message)
......
const system = require("../../../system");
const Dao = require("../../dao.base");
class bcdataDao extends Dao {
constructor() {
super(Dao.getModelName(bcdataDao));
}
extraWhere (qobj, qw, qc, linkAttrs) {
qc.raw = true;
return qw;
}
}
module.exports = bcdataDao;
...@@ -9,11 +9,17 @@ class TrademarkcaseDao extends Dao { ...@@ -9,11 +9,17 @@ class TrademarkcaseDao extends Dao {
// console.log("qw", qw) // console.log("qw", qw)
// console.log("qc", qc) // console.log("qc", qc)
// console.log("linkarr", linkAttrs) // console.log("linkarr", linkAttrs)
console.log(qobj.bizpath)
qc.order.unshift(['v_noticeDate', 'DESC']) qc.order.unshift(['v_noticeDate', 'DESC'])
switch (qobj.bizpath) { switch (qobj.bizpath) {
case '/dealaskfor/examine': case '/dealaskfor/examine':
qw.tradeStatus = '待审核' qw.tradeStatus = '待审核'
break break
case '/dealaskfor/refer':
qw.tradeStatus = '申请递交中'
break
case '/myaskfor/pendingservice':
qw.tradeStatus = '待完善材料'
} }
qc.raw = true; qc.raw = true;
return qw; return qw;
......
const { STRING } = require("sequelize/lib/data-types");
module.exports = function (sequelize, DataTypes) {
return sequelize.define('bcdata', {
data: DataTypes.STRING,
type: DataTypes.STRING
}, {
paranoid: true,
underscored: true,
freezeTableName: true,
tableName: 'bcdata'
});
};
\ No newline at end of file
...@@ -3,7 +3,7 @@ module.exports = function (sequelize, DataTypes) { ...@@ -3,7 +3,7 @@ module.exports = function (sequelize, DataTypes) {
caseId: DataTypes.STRING, caseId: DataTypes.STRING,
orderId: DataTypes.STRING, orderId: DataTypes.STRING,
askforId: DataTypes.STRING, askforId: DataTypes.STRING,
tradeType: DataTypes.INTEGER, tradeType: DataTypes.STRING,
tradeImg: DataTypes.STRING, tradeImg: DataTypes.STRING,
tradeStatus: DataTypes.STRING, tradeStatus: DataTypes.STRING,
returnReason: DataTypes.STRING, returnReason: DataTypes.STRING,
...@@ -15,7 +15,11 @@ module.exports = function (sequelize, DataTypes) { ...@@ -15,7 +15,11 @@ module.exports = function (sequelize, DataTypes) {
supData: DataTypes.JSON, supData: DataTypes.JSON,
offical: DataTypes.JSON, offical: DataTypes.JSON,
v_noticeDate: DataTypes.DATE, v_noticeDate: DataTypes.DATE,
v_applicantName: DataTypes.STRING v_applicantName: DataTypes.STRING,
recDate: DataTypes.DATE,
askforDate: DataTypes.DATE,
caStatus: DataTypes.STRING,
rejStatus: DataTypes.STRING
}, { }, {
paranoid: true, paranoid: true,
underscored: true, underscored: true,
......
...@@ -7,30 +7,53 @@ class TrademarkcaseService extends ServiceBase { ...@@ -7,30 +7,53 @@ class TrademarkcaseService extends ServiceBase {
this.applicantDao = system.getObject('db.rejreex.applicantDao') this.applicantDao = system.getObject('db.rejreex.applicantDao')
} }
async createCase (params) { async createOrUpdate (params) {
return this.db.transaction(async (t) => { let isOrder = undefined
await this.dao.create(params.case, t) if (params.orderId) {
await this.agentDao.create(params.agents, t) isOrder = await this.dao.findOne({ orderId: params.orderId })
await this.applicantDao.create(params.applicant, t) }
}) if (isOrder) {
params.id = isOrder.id
return await this.dao.update(params)
} else {
params.recDate = new Date()
if (params.id) {
let statusArr = ["待完善材料", "待审核", "申请递交中"]
let dt = await this.dao.findOne({id: params.id})
if(statusArr.indexOf(dt.tradeStatus) != -1) {
params.rejStatus = '待提报'
}
if (params.askforData && params.askforData.rmLicense) {
if (statusArr.indexOf(dt.tradeStatus) != -1) {
params.caStatus = "待提报"
}
}
if (params.usccode && params.applicant && params.applicant.applicantName) {
let sql = ""
sql = `UPDATE trademarkcase SET applicant=json_set(applicant, '$.applicantName', "${params.applicant.applicantName}"), ${params.tradeType ? `tradeType=${params.tradeType}` : ""}, ${params.usccode ? `usccode="${params.usccode}"` : ""}, ${params.agentName ? `agentName="${params.agentName}"` : ""}, ${params.askforId ? `askforId="${params.askforId}"` : ""} WHERE id = ${params.id};`
return await this.dao.customExecAddOrPutSql(sql);
} else {
return await this.dao.update(params)
}
} else {
if (params.askforData && params.askforData.rmLicense) {
params.caStatus = "待提报"
}
if (!params.caseId) {
params.caseId = `CS${new Date().getTime()}ae${Math.floor(Math.random() * 100)}`
}
return await this.dao.create(params)
}
}
} }
async getCase (id) { async getCase (id) {
let query = { let query = {
where: { where: {
caseId: id caseId: id
}, }
include: [{
model: this.agentDao.model,
raw: true
}, {
model: this.applicantDao.model,
raw: true
}]
} }
let result = await this.dao.model.findOne(query) let result = await this.dao.model.findOne(query)
result.setDataValue('agents', result.agents[0])
result.setDataValue('applicants', result.applicants[0])
return result return result
} }
......
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
class RejcbService extends ServiceBase {
constructor() {
super()
this.tcDao = system.getObject('db.rejreex.trademarkcaseDao')
this.bcDao = system.getObject('db.common.bcdataDao')
this.isTest = true
}
async getRejData () {
let queryData
if (this.isTest) {
queryData = await this.tcDao.model.findAll({
where: {
caseId: { [this.db.Op.like]: `%TESTCB%` },
tradeStatus: "商标局处理中",
caStatus: "待提报"
}
})
} else {
queryData = await this.tcDao.model.findAll({
where: {
tradeStatus: "商标局处理中",
caStatus: "待提报"
}
})
}
let data = this.dealData(queryData)
return data;
}
// 组织驳回复审提报数据
dealData (data) {
let res = {}
res.count = data.length
res.data = []
for (let i = 0; i < data.length; ++i) {
let datatmp = {
mobile: "13693797152",
flowType: "驳回商标注册申请复审申请",
regNum: data[i].askforId.trim() || "",
appNum0:"true",
}
datatmp.fileWtName = ""
datatmp.fileWtUrl = data[i].applicant.entrust || ""
if (datatmp.fileWtUrl) {
let tarr = datatmp.fileWtUrl.split('/')
datatmp.fileWtName = tarr[tarr.length - 1]
}
datatmp.dljcName = ""
datatmp.dljcUrl = data[i].askForData.rmLicense || ""
if (datatmp.dljcUrl) {
let tarr = datatmp.dljcUrl.split('/')
datatmp.dljcName = tarr[tarr.length - 1]
}
}
return res
}
// 修改提报状态
async changeStatus (data) {
let param = {
caStatus: data.status
}
if (!this.isTest) {
param.tradeStatus = "待完善材料"
}
return await this.tcDao.model.update(param, { where: { askforId: data.regNum } })
}
// 保存商标局提交数据
async saveBcData(data) {
let param = {
data:JSON.stringify(data),
type: "变更代理人"
}
await this.bcDao.create(param)
}
// 初始化状态
async initStatus () {
return await this.tcDao.model.update({ caStatus: "待提报" }, { where: { caseId: { [this.db.Op.like]: `%TESTCB%` } } })
}
}
module.exports = RejcbService;
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
class RejcbService extends ServiceBase {
constructor() {
super()
this.tcDao = system.getObject('db.rejreex.trademarkcaseDao')
this.bcDao = system.getObject('db.common.bcdataDao')
this.isTest = true
}
async getRejData () {
let queryData
if (this.isTest) {
queryData = await this.tcDao.model.findAll({
where: {
caseId: { [this.db.Op.like]: `%TESTCB%` },
tradeStatus: "商标局处理中",
rejStatus: "待提报",
caStatus: { [this.db.Op.in]: ["无变更"] }
}
})
} else {
queryData = await this.tcDao.model.findAll({
where: {
tradeStatus: "商标局处理中",
rejStatus: "待提报",
caStatus: { [this.db.Op.notIn]: ["待提报", "提报中"] }
}
})
}
let data = this.dealData(queryData)
return data;
}
// 组织驳回复审提报数据
dealData (data) {
let res = {}
res.count = data.length
res.data = []
for (let i = 0; i < data.length; ++i) {
let datatmp = {}
datatmp.mobile = "13693797152"
let step1 = {}
step1.regNum = data[i].askforId.trim() || ""
step1.intClsId = [`${parseInt(data[i].tradeType)}`] || ""
step1.ifSplit = data[i].askForData.division == 1 ? "ifSplit1" : "ifSplit2"
if (data[i].askForData.division) {
step1.ifSplit1 = {}
step1.ifSplit1.fgsqUrl = data[i].askForData.divisionDir || ""
step1.ifSplit1.fgsqName = ""
if (step1.ifSplit1.fgsqUrl) {
let tmpifsplitArr = step1.ifSplit1.fgsqUrl.split('/')
step1.ifSplit1.fgsqName = tmpifsplitArr[tmpifsplitArr.length - 1]
}
}
datatmp.step1 = step1
let step2 = {}
step2.appGjdq = data[i].applicant.country.trim() || ""
step2.dlsqrLx = data[i].applicant.applicantType.trim() || ""
step2.certCode = data[i].usccode.trim() || ""
switch (data[i].caseId) {
case 's1':
step2.select1 = {
appBgName: "测试",
fileBgName: "zc_259615954136568492020221827368492韵达—公司宝业务授权.pdf",
fileBgUrl: "https://gsb-zc.oss-cn-beijing.aliyuncs.com//zc_259615954136568492020221827368492韵达—公司宝业务授权.pdf",
fileYyZzName: "zc_259615954136568492020221827368492韵达—公司宝业务授权.pdf",
fileYyZzUrl: "https://gsb-zc.oss-cn-beijing.aliyuncs.com//zc_259615954136568492020221827368492韵达—公司宝业务授权.pdf"
}
break
case 's2':
step2.select2 = {
gtName: "测试",
fileGtName: "zc_259615954136568492020221827368492韵达—公司宝业务授权.pdf",
fileGtUrl: "https://gsb-zc.oss-cn-beijing.aliyuncs.com//zc_259615954136568492020221827368492韵达—公司宝业务授权.pdf"
}
break
case 's3':
step2.select3 = {
fsSqName: "测试",
fileFsSqName: "zc_259615954136568492020221827368492韵达—公司宝业务授权.pdf",
fileFsSqUrl: "https://gsb-zc.oss-cn-beijing.aliyuncs.com//zc_259615954136568492020221827368492韵达—公司宝业务授权.pdf"
}
break
default:
step2.isChangeName = ""
break
}
step2.appCnAddr = data[i].applicant.addr.trim() || ""
step2.appContactZip = data[i].applicant.mailCode.trim() || ""
step2.appContactPerson = data[i].applicant.contactsName.trim() || ""
step2.appContactTel = data[i].applicant.tel.trim() || ""
step2.agentContactPerson = '张飞龙'
step2.agentPerson = '张飞龙'
step2.agentContactTel = '01084927588'
step2.fileWtName = ""
step2.fileWtUrl = data[i].applicant.entrust || ""
if (step2.fileWtUrl) {
let tmpwtArr = step2.fileWtUrl.split('/')
step2.fileWtName = tmpwtArr[tmpwtArr.length - 1]
}
step2.isSupplement = data[i].askForData.isNeedSup == 1 ? "isSupplement1" : "isSupplement2"
datatmp.step2 = step2
let step3 = {}
step3.factandreason = data[i].askForData.far
step3.factandreasonPdfName = ""
step3.factandreasonPdfUrl = data[i].askForData.farDir || ""
if (step3.factandreasonPdfUrl) {
let tmpfarArr = step3.factandreasonPdfUrl.split('/')
step3.factandreasonPdfName = tmpfarArr[tmpfarArr.length - 1]
}
step3.evidenceCatalogName = ""
step3.evidenceCatalogUrl = data[i].askForData.evidenceDir || ""
if (step3.evidenceCatalogUrl) {
let tmpeviDirArr = step3.evidenceCatalogUrl.split('/')
step3.evidenceCatalogName = tmpeviDirArr[tmpeviDirArr.length - 1]
}
step3.evidenceName = ""
step3.evidenceUrl = data[i].askForData.evidenceCon || ""
if (step3.evidenceUrl) {
let tmpeviArr = step3.evidenceUrl.split('/')
step3.evidenceName = tmpeviArr[tmpeviArr.length - 1]
}
step3.evidenceOfserviceName = ""
step3.evidenceOfserviceUrl = data[i].askForData.evidenceSend || ""
if (step3.evidenceOfserviceUrl) {
let tmpesArr = step3.evidenceOfserviceUrl.split('/')
step3.evidenceOfserviceName = tmpesArr[tmpesArr.length - 1]
}
step3.fileYgName = ""
step3.fileYgUrl = data[i].askForData.explain || ""
if (step3.fileYgUrl) {
let tmpygArr = step3.fileYgUrl.split('/')
step3.fileYgName = tmpygArr[tmpygArr.length - 1]
}
datatmp.step3 = step3
res.data.push(datatmp)
}
return res
}
// 修改提报状态
async changeStatus (data) {
let param = {
rejStatus: data.status
}
if (!this.isTest) {
param.tradeStatus = "待完善材料"
}
return await this.tcDao.model.update(param, { where: { askforId: data.regNum } })
}
// 保存商标局提交数据
async saveBcData(data) {
let param = {
data:JSON.stringify(data),
type: "驳回复审"
}
await this.bcDao.create(param)
}
// 初始化状态
async initStatus () {
return await this.tcDao.model.update({ rejStatus: "待提报" }, { where: { caseId: { [this.db.Op.like]: `%TESTCB%` } } })
}
}
module.exports = RejcbService;
...@@ -157,7 +157,7 @@ class System { ...@@ -157,7 +157,7 @@ class System {
* @param {*} errmsg 操作失败的描述,默认为fail * @param {*} errmsg 操作失败的描述,默认为fail
* @param {*} data 操作失败返回的数据 * @param {*} data 操作失败返回的数据
*/ */
static getResultFail(status = -1, errmsg = "fail", data = null) { static getResultFail(errmsg = "fail", status = -1, data = null) {
return { return {
status: status, status: status,
msg: errmsg, msg: errmsg,
......
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