Commit 209fd1cf by 宋毅

tj

parent 17c17e5d
...@@ -6,9 +6,7 @@ const md5 = require("MD5"); ...@@ -6,9 +6,7 @@ const md5 = require("MD5");
class APIBase { class APIBase {
constructor() { constructor() {
this.cacheManager = system.getObject("db.common.cacheManager"); this.cacheManager = system.getObject("db.common.cacheManager");
this.logCtl = system.getObject("web.common.oplogCtl"); this.logCtl = system.getObject("service.common.oplogSve");
this.oplogSve = system.getObject("service.common.oplogSve");
this.toolSve = system.getObject("service.trademark.toolSve");
this.exTime = 2 * 3600;//缓存过期时间,2小时 this.exTime = 2 * 3600;//缓存过期时间,2小时
} }
getUUID() { getUUID() {
...@@ -60,11 +58,10 @@ class APIBase { ...@@ -60,11 +58,10 @@ class APIBase {
async isCheckWhiteList(gname, methodname) { async isCheckWhiteList(gname, methodname) {
var fullname = gname + "." + methodname; var fullname = gname + "." + methodname;
var lst = [ var lst = [
"test.test",
"action.info",
"action.error",
"auth.getToken", "auth.getToken",
"auth.getJdSign" "auth.userLogin",
"auth.getToken",
"auth.getToken",
]; ];
var x = lst.indexOf(fullname); var x = lst.indexOf(fullname);
return x >= 0; return x >= 0;
...@@ -119,42 +116,19 @@ class APIBase { ...@@ -119,42 +116,19 @@ class APIBase {
return system.getResultSuccess(); return system.getResultSuccess();
} }
async doexec(gname, methodname, pobj, query, req) { async doexec(gname, methodname, pobj, query, req) {
var requestid = req.headers["request-id"] || this.getUUID(); req.requestId = this.getUUID();
if (!req.headers["request-id"]) {
req.headers["request-id"] = requestid;
}
try { try {
if (pobj.actionType == "createChannelUser") { // //验证accesskey或验签
if (!pobj.isUser) { // var isPassResult = await this.checkAcck(gname, methodname, pobj, query, req);
system.getResult(null, "isUser is empty"); // if (isPassResult.status != 0) {
} // isPassResult.requestId = "";
if (pobj.isUser != "yes") { // return isPassResult;
system.getResult(null, "isUser value must yes"); // }
}
}
//验证accesskey或验签
var isPassResult = await this.checkAcck(gname, methodname, pobj, query, req);
if (isPassResult.status != 0) {
isPassResult.requestId = "";
return isPassResult;
}
if (pobj.actionType == "createChannelUser") {
var encryptResult = await this.toolSve.encryptStr(req.app, req.user.channelUserId);
if (encryptResult.status != 0) {
system.getResult(null, "encrypt channelUserId is error");
}
req.user.encryptChannelUserId = encryptResult.data;
return system.getResultSuccess(req.user);
}//创建用户
req.requestId = requestid;
var rtn = await this[methodname](pobj, query, req); var rtn = await this[methodname](pobj, query, req);
if (rtn && !rtn.requestId) { this.logCtl.createDb({
rtn.requestId = requestid;
}
this.oplogSve.createDb({
appid: req.app.id, appid: req.app.id,
appkey: req.app.uappKey, appkey: req.app.uappKey,
requestId: requestid, requestId: req.requestId,
op: req.classname + "/" + methodname, op: req.classname + "/" + methodname,
content: JSON.stringify(pobj), content: JSON.stringify(pobj),
resultInfo: JSON.stringify(rtn), resultInfo: JSON.stringify(rtn),
...@@ -162,13 +136,14 @@ class APIBase { ...@@ -162,13 +136,14 @@ class APIBase {
agent: req.uagent, agent: req.uagent,
opTitle: "api服务提供方appKey:" + settings.appKey, opTitle: "api服务提供方appKey:" + settings.appKey,
}); });
rtn.requestId = req.requestId
return rtn; return rtn;
} catch (e) { } catch (e) {
console.log(e.stack, "api调用出现异常,请联系管理员..........") console.log(e.stack, "api调用出现异常,请联系管理员..........")
this.oplogSve.createDb({ this.logCtl.createDb({
appid: req.app.id, appid: req.app.id,
appkey: req.app.uappKey, appkey: req.app.uappKey,
requestId: requestid, requestId: req.requestId,
op: req.classname + "/" + methodname, op: req.classname + "/" + methodname,
content: JSON.stringify(pobj), content: JSON.stringify(pobj),
resultInfo: JSON.stringify(e.stack), resultInfo: JSON.stringify(e.stack),
...@@ -179,7 +154,7 @@ class APIBase { ...@@ -179,7 +154,7 @@ class APIBase {
this.logCtl.error({ this.logCtl.error({
appid: req.app.id, appid: req.app.id,
appkey: req.app.uappKey, appkey: req.app.uappKey,
requestId: requestid, requestId: req.requestId,
op: pobj.classname + "/" + methodname, op: pobj.classname + "/" + methodname,
content: e.stack, content: e.stack,
clientIp: pobj.clientIp, clientIp: pobj.clientIp,
...@@ -187,7 +162,7 @@ class APIBase { ...@@ -187,7 +162,7 @@ class APIBase {
optitle: "api调用出现异常,请联系管理员", optitle: "api调用出现异常,请联系管理员",
}); });
var rtnerror = system.getResultFail(-200, "出现异常,error:" + e.stack); var rtnerror = system.getResultFail(-200, "出现异常,error:" + e.stack);
rtnerror.requestId = requestid; rtnerror.requestId = req.requestId;
return rtnerror; return rtnerror;
} }
} }
......
...@@ -7,8 +7,7 @@ class APIBase extends DocBase { ...@@ -7,8 +7,7 @@ class APIBase extends DocBase {
constructor() { constructor() {
super(); super();
this.cacheManager = system.getObject("db.common.cacheManager"); this.cacheManager = system.getObject("db.common.cacheManager");
this.logCtl = system.getObject("web.common.oplogCtl"); this.logCtl = system.getObject("service.common.oplogSve");
this.oplogSve = system.getObject("service.common.oplogSve");
} }
getUUID() { getUUID() {
var uuid = uuidv4(); var uuid = uuidv4();
...@@ -97,7 +96,7 @@ class APIBase extends DocBase { ...@@ -97,7 +96,7 @@ class APIBase extends DocBase {
var rtn = await this[methodname](pobj, query, req); var rtn = await this[methodname](pobj, query, req);
rtn.requestid = requestid; rtn.requestid = requestid;
this.oplogSve.createDb({ this.logCtl.createDb({
appid: req.headers["app_id"] || "", appid: req.headers["app_id"] || "",
appkey: req.headers["accesskey"] || "", appkey: req.headers["accesskey"] || "",
requestId: requestid, requestId: requestid,
......
var APIBase = require("../../api.base");
var system = require("../../../system");
class NeedOrderAPI extends APIBase {
constructor() {
super();
this.needinfoSve = system.getObject("service.dbneed.needinfoSve");
}
/**
* 接口跳转-POST请求
* action_process 执行的流程
* action_type 执行的类型
* action_body 执行的参数
*/
async springBoard(pobj, qobj, req) {
if (!pobj.actionProcess) {
return system.getResult(null, "actionProcess参数不能为空");
}
if (!pobj.actionType) {
return system.getResult(null, "actionType参数不能为空");
}
var result = null;
pobj.actionBody["user"] = req.user;
pobj.actionBody["app"] = req.app;
switch (pobj.actionProcess) {
case "jd"://京东
result = await this.opActionProcess(pobj.actionProcess, pobj.actionType, pobj.actionBody);
break;
case "1688"://京东
result = await this.opActionProcess(pobj.actionProcess, pobj.actionType, pobj.actionBody);
break;
default:
result = system.getResult(null, "actionProcess参数错误");
break;
}
return result;
}
async opActionProcess(action_process, action_type, action_body) {
var opResult = null;
switch (action_type) {
// sy
case "test"://测试
opResult = system.getResultSuccess(null, "测试成功");
break;
case "subNeed"://提交需求
opResult = await this.needinfoSve.subNeed(action_body);
break;
default:
opResult = system.getResult(null, "action_type参数错误");
break;
}
return opResult;
}
}
module.exports = NeedOrderAPI;
\ No newline at end of file
var APIBase = require("../../api.base"); var APIBase = require("../../api.base");
var system = require("../../../system"); var system = require("../../../system");
const logCtl = system.getObject("web.common.oplogCtl"); const logCtl = system.getObject("service.common.oplogSve");
class opLog extends APIBase { class opLog extends APIBase {
constructor() { constructor() {
......
var APIBase = require("../../api.base");
var system = require("../../../system");
var settings = require("../../../../config/settings");
/**
* 接收远程推送的商标数据api
*/
class ReceiveDataAPI extends APIBase {
constructor() {
super();
this.opPlatformUtils = system.getObject("util.businessManager.opPlatformUtils");
this.ordertmproductSve = system.getObject("service.dborder.ordertmproductSve");
this.customerinfoSve = system.getObject("service.dborder.customerinfoSve");
this.customercontactsSve = system.getObject("service.dborder.customercontactsSve");
this.trademarkSve = system.getObject("service.dbtrademark.trademarkSve");
this.zcApiUrl = settings.reqZcApi();
this.pushFqbossDataUrl = settings.pushFqbossDataUrl();
this.pushlogSve = system.getObject("service.common.pushlogSve");
}
/**
* 接口跳转-POST请求
* action_process 执行的流程
* action_type 执行的类型
* action_body 执行的参数
*/
async springBoard(pobj, qobj, req) {
if (!pobj.actionProcess) {
return system.getResult(null, "actionProcess参数不能为空");
}
if (!pobj.actionType) {
return system.getResult(null, "actionType参数不能为空");
}
var result = null;
switch (pobj.actionProcess) {
case "jd"://京东
result = await this.opActionProcess(pobj.actionProcess, pobj.actionType, pobj.actionBody, pobj, req);
break;
case "1688"://1688
result = await this.opActionProcess(pobj.actionProcess, pobj.actionType, pobj.actionBody, pobj, req);
break;
case "gsbhome"://gsb_homepage
result = await this.opActionProcess(pobj.actionProcess, pobj.actionType, pobj.actionBody, pobj, req);
break;
default:
result = system.getResult(null, "actionProcess参数错误");
break;
}
return result;
}
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 logParam = {
appid: req.app.id,
appkey: req.app.uappKey,
requestId: req.requestId || "",
op: "/igirl-channel/zhichan/igirl-channel/app/base/api/impl/action/receiveData.js/opActionProcess",
content: "参数信息:" + JSON.stringify(action_body),
clientIp: pobj.clientIp,
optitle: "接收推送过来的数据处理=>action_type=" + action_type,
};
var opResult = null;
switch (action_type) {
// sy
case "test"://测试
opResult = system.getResultSuccess(null, "测试成功");
break;
case "receiveTmOfficialData"://接收回执文件
opResult = await this.trademarkSve.receiveTmOfficialData(action_body);
break;
case "updateAssistTmStatus"://接收商标状态信息
opResult = await this.trademarkSve.updateAssistTmStatus(action_body);
break;
case "assistRegTmData"://接收辅助注册商标数据
opResult = await this.ordertmproductSve.addAssistTm(action_body);
break;
case "assistEditTmData"://接收辅助注册修改商标数据
// opResult = system.getResultSuccess(null, "测试成功");
opResult = await this.ordertmproductSve.editAssistTm(action_body);
break;
default:
opResult = system.getResult(null, "action_type参数错误");
break;
}
logParam.resultInfo = JSON.stringify(opResult);
this.logCtl.info(logParam);
return opResult;
}
}
module.exports = ReceiveDataAPI;
\ No newline at end of file
var APIBase = require("../../api.base");
var system = require("../../../system");
class TmQueryAPI extends APIBase {
constructor() {
super();
// this.tmqueryApi = system.getObject("api.trademark.tmqueryApi");
this.tmquerySve = system.getObject("service.trademark.tmquerySve");
// this.toolApi = system.getObject("api.tool.toolApi");
this.toolSve = system.getObject("service.trademark.toolSve");
}
/**
* 接口跳转-POST请求
* action_process 执行的流程
* action_type 执行的类型
* action_body 执行的参数
*/
async springBoard(pobj, qobj, req) {
if (!pobj.actionProcess) {
return system.getResult(null, "actionProcess参数不能为空");
}
if (!pobj.actionType) {
return system.getResult(null, "actionType参数不能为空");
}
var result = null;
switch (pobj.actionProcess) {
case "jd"://京东
result = await this.opActionProcess(pobj.actionProcess, pobj.actionType, pobj.actionBody, req);
break;
case "1688":
result = await this.opActionProcess(pobj.actionProcess, pobj.actionType, pobj.actionBody, req);
break;
case "gsbhome":
result = await this.opActionProcess(pobj.actionProcess, pobj.actionType, pobj.actionBody, req);
break;
default:
result = system.getResult(null, "actionProcess参数错误");
break;
}
return result;
}
async opActionProcess(action_process, action_type, action_body, req) {
var opResult = null;
switch (action_type) {
case "test"://测试
opResult = system.getResultSuccess(null, "测试成功");
break;
case "findTrademarkNameAccurate"://商标精确检索(相同商标检索)
opResult = await this.tmquerySve.findTrademarkNameAccurate(action_body, req);
break;
case "findTrademarkName"://近似商标检索
opResult = await this.tmquerySve.findTrademarkName(action_body, req);
break;
case "findTrademarkzchAccurate"://商标申请号检索
opResult = await this.tmquerySve.findTrademarkzchAccurate(action_body, req);
break;
case "findTrademarkzcr"://申请人查询
opResult = await this.tmquerySve.findTrademarkzcr(action_body, req);
break;
case "getCropperPic"://获取检索图片url
opResult = await this.toolSve.getCropperPic(action_body, req);
break;
case "imagequery"://图形检索
opResult = await this.tmquerySve.imagequery(action_body, req);
break;
case "findImageSearch"://图形检索查询
opResult = await this.tmquerySve.findImageSearch(action_body, req);
break;
case "tradeMarkDetail"://商标详情查询
opResult = await this.tmquerySve.tradeMarkDetail(action_body, req);
break;
case "sbzuixinsearch"://最新商标查询
opResult = await this.tmquerySve.sbzuixinsearch(action_body, req);
break;
case "noticequeryTMZCSQ"://近12期初审公告查询接口
opResult = await this.tmquerySve.noticequeryTMZCSQ(action_body, req);
break;
case "noticequery"://公告列表检索接口
opResult = await this.tmquerySve.noticequery(action_body, req);
break;
case "noticezcggsearch"://注册公告详情查询
opResult = await this.tmquerySve.noticezcggsearch(action_body, req);
break;
case "noticesearch"://初审公告详情查询
opResult = await this.tmquerySve.noticesearch(action_body, req);
break;
case "getCompanyInfoNoUser"://企业查询
opResult = await this.tmquerySve.getCompanyInfoNoUser(action_body, req);
break;
case "getNclDetail"://尼斯详情
opResult = await this.tmquerySve.getNclDetail(action_body, req);
break;
case "gettwoNcl"://获取尼斯群组
opResult = await this.tmquerySve.gettwoNcl(action_body, req);
break;
case "nclFuwuSearch"://尼斯分类检索
opResult = await this.tmquerySve.nclFuwuSearch(action_body, req);
break;
case "bycznfx"://商标智能分析 -----
opResult = await this.toolSve.bycznfx(action_body, req);
break;
case "tmConfirm"://商标方案确认
// opResult = await this.toolApi.bycznfx(action_body);
opResult = system.getResultSuccess(null, "商标方案确认成功");
break;
case "icheming"://商标智能分析 -----
opResult = await this.toolSve.icheming(action_body, req);
break;
default:
opResult = system.getResult(null, "action_type参数错误");
break;
}
return opResult;
}
}
module.exports = TmQueryAPI;
\ No newline at end of file
var APIBase = require("../../api.base");
var system = require("../../../system");
class TmToolsAPI extends APIBase {
constructor() {
super();
this.toolSve = system.getObject("service.trademark.toolSve");
}
/**
* 接口跳转-POST请求
* action_process 执行的流程
* action_type 执行的类型
* action_body 执行的参数
*/
async springBoard(pobj, qobj, req) {
if (!pobj.actionProcess) {
return system.getResult(null, "actionProcess参数不能为空");
}
if (!pobj.actionType) {
return system.getResult(null, "actionType参数不能为空");
}
var result = null;
switch (pobj.actionProcess) {
case "jd"://京东
result = await this.opActionProcess(pobj.actionProcess, pobj.actionType, pobj.actionBody, req);
break;
case "1688":
result = await this.opActionProcess(pobj.actionProcess, pobj.actionType, pobj.actionBody, req);
break;
case "gsbhome":
result = await this.opActionProcess(pobj.actionProcess, pobj.actionType, pobj.actionBody, req);
break;
default:
result = system.getResult(null, "actionProcess参数错误");
break;
}
return result;
}
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;
case "getNcl"://尼斯查询(一)
opResult = await this.toolSve.getNcl(action_body, req);
break;
case "getNclByLikeNameAndNcl"://尼斯查询(二)
opResult = await this.toolSve.getNclByLikeNameAndNcl(action_body, req);
break;
case "word2pic"://文字转图片
opResult = await this.toolSve.word2pic(action_body, req);
break;
case "uploadStandardTm"://商标样式转换
opResult = await this.toolSve.uploadStandardTm(action_body, req);
break;
case "pic2pdf"://图片转pdf
opResult = await this.toolSve.pic2pdf(action_body, req);
break;
case "getCompanyInfoByLikeName"://企业近似查询
opResult = await this.toolSve.getCompanyInfoByLikeName(action_body, req);
break;
case "getEntregistryByCompanyName"://企业精确查询
opResult = await this.toolSve.getEntregistryByCompanyName(action_body, req);
break;
case "adjustWTSSize"://调整委托书
opResult = await this.toolSve.adjustWTSSize(action_body, req);
break;
default:
opResult = system.getResult(null, "action_type参数错误");
break;
}
return opResult;
}
}
module.exports = TmToolsAPI;
\ No newline at end of file
var APIBase = require("../../api.base");
var system = require("../../../system");
class TmTransactionAPI extends APIBase {
constructor() {
super();
this.orderinfoSve = system.getObject("service.dbcorder.orderinfoSve");
}
/**
* 接口跳转-POST请求
* actionProcess 执行的流程
* actionType 执行的类型
* actionBody 执行的参数
*/
async springBoard(pobj, qobj, req) {
if (!pobj.actionProcess) {
return system.getResult(null, "actionProcess参数不能为空");
}
if (!pobj.action_type) {
return system.getResult(null, "actionType参数不能为空");
}
var result = null;
switch (pobj.actionProcess) {
case "jd"://京东
result = await this.opActionProcess(pobj.actionProcess, pobj.actionType, pobj.actionBody);
break;
case "1688":
result = await this.opActionProcess(pobj.actionProcess, pobj.actionType, pobj.actionBody);
break;
default:
result = system.getResult(null, "actionProcess参数错误");
break;
}
return result;
}
async opActionProcess(action_process, action_type, action_body, req) {
var opResult = null;
switch (action_type) {
// sy
case "test"://测试
opResult = system.getResultSuccess(null, "测试成功");
break;
case "addOrder"://添加订单
opResult = await this.orderinfoSve.createOrder(action_body, req);
break;
default:
opResult = system.getResult(null, "action_type参数错误");
break;
}
return opResult;
}
}
module.exports = TmTransactionAPI;
\ No newline at end of file
const system = require("../../../system");
var APIBase = require("../../api.base");
var settings = require("../../../../config/settings");
var moment = require('moment')
class TradetransferAPI extends APIBase {
constructor() {
super();
this.aliclient = system.getObject("util.aliyunClient");
this.execlient = system.getObject("util.execClient");
this.transferurl = settings.reqTransferurl();
this.corderSve = system.getObject("service.dbcorder.orderinfoSve");
}
//订单创建
async createtransfer(p, obj, req) {
console.log(p.actionBody, "actionBody...............................");
var orderinfo = await this.corderSve.createOrder(p.actionBody, req);
console.log(orderinfo, "orderinfo............................");
if (orderinfo) {
if (orderinfo.status == "0") {
var result = {
"errorCode": "OK",
"errorMsg": "成功",
"module": { "orderId": orderinfo.data.orderNo },
"requestId": req.requestId,
"success": true
}
return result;
} else if (orderinfo.status == "2") {
var result = {
"errorCode": "OK",
"errorMsg": "订单已存在",
"module": { "orderId": orderinfo.data },
"requestId": req.requestId,
"success": true
}
return result;
} else {
var result = {
"errorCode": "error",
"errorMsg": orderinfo.msg,
"module": { "orderId": "" },
"requestId": req.requestId,
"success": false
}
return result;
}
} else {
var result = {
"errorCode": "error",
"errorMsg": "",
"module": { "orderId": "" },
"requestId": req.requestId,
"success": false
}
return result;
}
}
//订单查询
async ordersel(p, obj) {
var url = this.transferurl + "api/transfer/tradeApi/queryOrderState";
var transferinfo = await this.execlient.execPost(p.actionBody, url);
var a = JSON.parse(transferinfo.stdout)
return a;
}
//订单关闭
async orderclose(p,obj) {
var url = this.transferurl + "api/transfer/tradeApi/closeOrder";
var transferinfo = await this.execlient.execPost(p.actionBody, url);
var a = JSON.parse(transferinfo.stdout)
return a;
}
//业务员分配
async fenpeiowner(obj) {
if (!obj.BizId) {
return {
"errorCode": "error",
"errorMsg": "订单号不能为空",
"requestId": obj.requestId,
"success": false
}
}
var transferinfo = await this.findOne({ ali_bizid: obj.BizId });
}
//阿里网关
async aliclienttransfer(p, obj) {
console.log("----------------sssssssssssssssssss-------------------------------------------")
console.log(p.actionBody)
if (p.actionBody) {
console.log(p.actionBody)
var rtn = await this.aliclient.reqbyget(p.actionBody)
return rtn;
}
}
}
module.exports = TradetransferAPI;
...@@ -5,23 +5,20 @@ class AccessAuthAPI extends APIBase { ...@@ -5,23 +5,20 @@ class AccessAuthAPI extends APIBase {
super(); super();
this.opPlatformUtils = system.getObject("util.businessManager.opPlatformUtils"); this.opPlatformUtils = system.getObject("util.businessManager.opPlatformUtils");
} }
async getToken(pobj, qobj, req) { async getTokenByHosts(pobj, qobj, req) {
var appkey = pobj.appkey; var app_hosts = pobj.app_hosts || "";
var secret = pobj.secret; if (!app_hosts) {
if (!appkey) { return system.getResult(null, "app_hosts can not be empty !");
return system.getResult(null, "appkey参数不能为空");
} }
if (!secret) { var result = await this.opPlatformUtils.getReqTokenByHosts(app_hosts);
return system.getResult(null, "secret参数不能为空");
}
var result = await this.opPlatformUtils.getReqApiAccessKey(appkey, secret);
if (result && result.status && result.status != 0) {
return result; return result;
} }
var resultData = { async loginUserByChannelUserId(pobj, qobj, req) {
token: result && result.data ? result.data.accessKey : "" if (!pobj.channelUserId) {
}; return system.getResult(null, "pobj.channelUserId can not be empty !");
return system.getResultSuccess(resultData); }
var result = await this.opPlatformUtils.getReqUserPinByChannelUserId(pobj);
return result;
} }
/** /**
* 开放平台回调处理 * 开放平台回调处理
......
var APIBase = require("../../api.base");
var system = require("../../../system");
class jdAuthAPI extends APIBase {
constructor() {
super();
}
async getUser(pobj, qobj, req) {
console.log("pobj......getUser..........:\n", pobj);
console.log("qobj......getUser..........:\n", qobj);
return { getUser: "ok" };
}
async payOrderInfo(pobj, qobj, req) {
console.log("pobj......payOrderInfo..........:\n", pobj);
console.log("qobj......payOrderInfo..........:\n", qobj);
return { payOrderInfo: "ok" };
}
}
module.exports = jdAuthAPI;
\ No newline at end of file
const system = require("../system");
const settings = require("../../config/settings");
class CtlBase {
constructor(gname, sname) {
this.serviceName = sname;
this.service = system.getObject("service." + gname + "." + sname);
this.cacheManager = system.getObject("db.common.cacheManager");
this.md5 = require("MD5");
}
encryptPasswd(passwd) {
if (!passwd) {
throw new Error("请输入密码");
}
var md5 = this.md5(passwd + "_" + settings.salt);
return md5.toString().toLowerCase();
}
notify(req, msg) {
if (req.session) {
req.session.bizmsg = msg;
}
}
async findOne(queryobj, qobj) {
var rd = await this.service.findOne(qobj);
return system.getResult(rd, null);
}
async findAndCountAll(queryobj, obj, req) {
obj.codepath = req.codepath;
if (req.session.user) {
obj.uid = req.session.user.id;
obj.appid = req.session.user.app_id;
obj.onlyCode = req.session.user.unionId;
obj.account_id = req.session.user.account_id;
obj.ukstr = req.session.user.app_id + "¥" + req.session.user.id + "¥" + req.session.user.nickName + "¥" + req.session.user.headUrl;
}
var apps = await this.service.findAndCountAll(obj);
return system.getResult(apps, null);
}
async refQuery(queryobj, qobj) {
var rd = await this.service.refQuery(qobj);
return system.getResult(rd, null);
}
async bulkDelete(queryobj, ids) {
var rd = await this.service.bulkDelete(ids);
return system.getResult(rd, null);
}
async delete(queryobj, qobj) {
var rd = await this.service.delete(qobj);
return system.getResult(rd, null);
}
async create(queryobj, qobj, req) {
if (req && req.session && req.session.app) {
qobj.app_id = req.session.app.id;
qobj.onlyCode = req.session.user.unionId;
if (req.codepath) {
qobj.codepath = req.codepath;
}
}
var rd = await this.service.create(qobj);
return system.getResult(rd, null);
}
async createLog(queryobj, qobj, req) {
if (req && req.session && req.session.app) {
qobj.app_id = req.session.app.id;
qobj.onlyCode = req.session.user.unionId;
if (req.codepath) {
qobj.codepath = req.codepath;
}
}
var tmpParam = qobj || queryobj;
var rd = await this.service.create(tmpParam);
return system.getResult(rd, null);
}
async update(queryobj, qobj, req) {
if (req && req.session && req.session.user) {
qobj.onlyCode = req.session.user.unionId;
}
if (req.codepath) {
qobj.codepath = req.codepath;
}
var rd = await this.service.update(qobj);
return system.getResult(rd, null);
}
static getServiceName(ClassObj) {
return ClassObj["name"].substring(0, ClassObj["name"].lastIndexOf("Ctl")).toLowerCase() + "Sve";
}
async initNewInstance(queryobj, req) {
return system.getResult({}, null);
}
async findById(oid) {
var rd = await this.service.findById(oid);
return system.getResult(rd, null);
}
async timestampConvertDate(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 universalTimeConvertLongDate(time) {
if (time == null) {
return "";
}
var d = new Date(time);
return d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate() + ' ' + d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds();
}
async universalTimeConvertShortDate(time) {
if (time == null) {
return "";
}
var d = new Date(time);
return d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate();
}
async doexec(methodname, pobj, query, req) {
try {
var rtn = await this[methodname](pobj, query, req);
return rtn;
} catch (e) {
console.log(e.stack);
// this.logCtl.error({
// optitle: "Ctl调用出错",
// op: pobj.classname + "/" + methodname,
// content: e.stack,
// clientIp: pobj.clientIp
// });
return system.getResultFail(-200, "Ctl出现异常,请联系管理员");
}
}
}
module.exports = CtlBase;
var system = require("../../../system")
const http = require("http")
const querystring = require('querystring');
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
var cacheBaseComp = null;
class UserCtl extends CtlBase {
constructor() {
super("auth", CtlBase.getServiceName(UserCtl));
}
/**
* 开放平台回调处理
* @param {*} req
*/
async authByCode(req) {
var opencode = req.query.code;
var user = await this.service.authByCode(opencode);
if (user) {
req.session.user = user;
} else {
req.session.user = null;
}
//缓存opencode,方便本应用跳转到其它应用
// /auth?code=xxxxx,缓存没有意义,如果需要跳转到其它应用,需要调用
//平台开放的登录方法,返回 <待跳转的目标地址>/auth?code=xxxxx
//this.cacheManager["OpenCodeCache"].cacheOpenCode(user.id,opencode);
return user;
}
async navSysSetting(pobj, qobj, req) {
//开始远程登录,返回code
var jumpobj = await this.service.navSysSetting(req.session.user);
if (jumpobj) {
return system.getResultSuccess(jumpobj);
}
return system.getResultFail();
}
async loginUser(qobj, pobj, req) {
return super.findById(req.session.user.id);
}
async initNewInstance(queryobj, req) {
var rtn = {};
rtn.roles = [];
if (rtn) {
return system.getResultSuccess(rtn);
}
return system.getResultFail();
}
async checkLogin(gobj, qobj, req) {
//当前如果缓存中存在user,还是要检查当前user所在的域名,如果不和来访一致,则退出重新登录
if (req.session.user) {
var x = null;
if (req.session.user.Roles) {
x = req.session.user.Roles.map(r => { return r.code });
}
var tmp = {
id: req.session.user.id,
userName: req.session.user.userName,
nickName: req.session.user.nickName,
mobile: req.session.user.mobile,
isAdmin: req.session.user.isAdmin,
created_at: req.session.user.created_at,
email: req.session.user.email,
headUrl: req.session.user.headUrl,
roles: x ? x.join(",") : ""
}
return system.getResult(tmp, "用户登录", req);
} else {
req.session.user = null;
//req.session.destroy();
return system.getResult(null, "用户未登录", req);
}
}
async exit(pobj, qobj, req) {
req.session.user = null;
req.session.destroy();
return system.getResultSuccess({ "env": settings.env });
}
}
module.exports = UserCtl;
var system = require("../../../system")
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
const uuidv4 = require('uuid/v4');
var moment = require("moment");
class OplogCtl extends CtlBase {
constructor() {
super("common", CtlBase.getServiceName(OplogCtl));
//this.appS=system.getObject("service.appSve");
}
async initNewInstance(qobj) {
var u = uuidv4();
var aid = u.replace(/\-/g, "");
var rd = { name: "", appid: aid }
return system.getResultSuccess(rd, null);
}
async debug(obj) {
obj.logLevel = "debug";
return this.createLog(obj);
}
async info(obj) {
obj.logLevel = "info";
return this.createLog(obj);
}
async warn(obj) {
obj.logLevel = "warn";
return this.createLog(obj);
}
async error(obj) {
obj.logLevel = "error";
return this.createLog(obj);
}
async fatal(obj) {
obj.logLevel = "fatal";
return this.createLog(obj);
}
/*
返回20位业务订单号
prefix:业务前缀
*/
async getBusUid_Ctl(prefix) {
prefix = (prefix || "");
if (prefix) {
prefix = prefix.toUpperCase();
}
var prefixlength = prefix.length;
var subLen = 8 - prefixlength;
var uidStr = "";
if (subLen > 0) {
uidStr = await this.getUidInfo_Ctl(subLen, 60);
}
var timStr = moment().format("YYYYMMDDHHmm");
return prefix + timStr + uidStr;
}
/*
len:返回长度
radix:参与计算的长度,最大为62
*/
async getUidInfo_Ctl(len, radix) {
var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');//长度62,到yz长度为长36
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 = OplogCtl;
var system = require("../../../system")
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
const uuidv4 = require('uuid/v4');
var moment = require("moment");
class PushlogCtl extends CtlBase {
constructor() {
super("common", CtlBase.getServiceName(PushlogCtl));
//this.appS=system.getObject("service.appSve");
}
async initNewInstance(qobj) {
var u = uuidv4();
var aid = u.replace(/\-/g, "");
var rd = { name: "", appid: aid }
return system.getResultSuccess(rd, null);
}
async debug(obj) {
obj.logLevel = "debug";
return this.create(obj);
}
async info(obj) {
obj.logLevel = "info";
return this.create(obj);
}
async warn(obj) {
obj.logLevel = "warn";
return this.create(obj);
}
async error(obj) {
obj.logLevel = "error";
return this.create(obj);
}
async fatal(obj) {
obj.logLevel = "fatal";
return this.create(obj);
}
/*
返回20位业务订单号
prefix:业务前缀
*/
async getBusUid_Ctl(prefix) {
prefix = (prefix || "");
if (prefix) {
prefix = prefix.toUpperCase();
}
var prefixlength = prefix.length;
var subLen = 8 - prefixlength;
var uidStr = "";
if (subLen > 0) {
uidStr = await this.getUidInfo_Ctl(subLen, 60);
}
var timStr = moment().format("YYYYMMDDHHmm");
return prefix + timStr + uidStr;
}
/*
len:返回长度
radix:参与计算的长度,最大为62
*/
async getUidInfo_Ctl(len, radix) {
var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');//长度62,到yz长度为长36
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 = PushlogCtl;
const CacheBase = require("../cache.base");
const system = require("../../system");
const settings = require("../../../config/settings");
class AppTokenByHostsCache extends CacheBase {
constructor() {
super();
this.opPlatformUtils = system.getObject("util.businessManager.opPlatformUtils");
this.restS = system.getObject("util.restClient");
this.appDao = system.getObject("db.dbapp.appDao");
}
desc() {
return "应用中缓存访问token";
}
prefix() {
return settings.cacheprefix + "_accesskey:";
}
async buildCacheVal(cachekey, inputkey, val, ex, ...items) {
var app_hosts = inputkey;
if (!app_hosts) {
return system.getResult(null, "app_hosts can not be empty !");
}
var item = await this.appDao.getItemByHosts(app_hosts);
if (!item) {
return system.getResult(null, "app_hosts to data is empty !");
}
if (!item.uapp_key || !item.uapp_secret) {
return system.getResult(null, "uapp_key or uapp_secret can not be empty !");
}
if (item.is_enabled != 1) {
return system.getResult(null, "app_hosts to item is Disable !");
}
var result = await this.opPlatformUtils.getReqApiAccessKey(item.uapp_key, item.uapp_secret);
if (!result) {
return system.getResult(null, "platform to data is empty !");
}
if (result.status != 0) {
return result;
}
item.token = result.data.accessKey;
return system.getResultSuccess(item);
}
}
module.exports = AppTokenByHostsCache;
const CacheBase = require("../cache.base");
const system = require("../../system");
const settings = require("../../../config/settings");
class AppUserPinByChannelUserIdCache extends CacheBase {
constructor() {
super();
this.opPlatformUtils = system.getObject("util.businessManager.opPlatformUtils");
this.restClient = system.getObject("util.restClient");
this.appuserDao = system.getObject("db.dbapp.appuserDao");
}
desc() {
return "应用中缓存访问token";
}
prefix() {
return settings.cacheprefix + "_userPin:";
}
async buildCacheVal(cachekey, inputkey, val, ex, ...items) {
var actionBody = val;
var uUserName = actionBody.channelUserId + "$" + actionBody.appInfo.uapp_key;//uUserName
var createUserPwd = inputkey;//(格式:actionBody.appInfo.uapp_key+”_“+actionBody.channelUserId)
var channelUserMoblie = actionBody.channelUserMoblie || "15010888888";
var userInfo = await this.appuserDao.getItemByChannelUserId(actionBody.channelUserId, actionBody.appInfo.uapp_id);
if (userInfo) {
if (userInfo.is_enabled != 1) {
return system.getResult(null, "user to item is Disable !");
}
return system.getResultSuccess(userInfo);
}
var uUserInfo = await this.opPlatformUtils.createUserInfo(actionBody.channelUserId, channelUserMoblie,
createUserPwd, actionBody.appInfo.uapp_key, actionBody.appInfo.uapp_secret);
if (uUserInfo.status != 2000 && uUserInfo.status != 0) {
return uUserInfo;
}//已经存在此用户 或 注册失败
if (uUserInfo.status == 0) {
var params = {
uapp_id: actionBody.appInfo.uapp_id,
channel_userid: actionBody.channelUserId,
channel_username: actionBody.channelUserName || actionBody.channelUserId,
channel_nickname: actionBody.nickName || "",
mobile: channelUserMoblie,
org_name: actionBody.orgName || "",
org_path: actionBody.orgPath || "",
is_enabled: 1,
email: actionBody.email || "",
last_login_time: new Date()
};
userInfo = await this.appuserDao.create(params);
}
else {
return uUserInfo;
}
return system.getResultSuccess(userInfo);
var app_hosts = val;
if (!app_hosts) {
return system.getResult(null, "app_hosts can not be empty");
}
var acckapp = await this.restClient.execPost(val, settings.centerAppUrl() + "auth/accessAuth/loginUserByChannelUserId");
var result = acckapp.stdout;
console.log(acckapp.stdout, "AppTokenByHostsCache............. acckapp.stdout..........");
if (result) {
var tmp = JSON.parse(result);
return tmp;
}
return system.getResult(null, "data is empty");
}
}
module.exports = AppUserPinByChannelUserIdCache;
...@@ -4,22 +4,23 @@ class AppDao extends Dao { ...@@ -4,22 +4,23 @@ class AppDao extends Dao {
constructor() { constructor() {
super(Dao.getModelName(AppDao)); super(Dao.getModelName(AppDao));
} }
async getItemByAppKey(appKey) { async getItemByHosts(app_hosts) {
return this.model.findOne({ return this.model.findOne({
where: { where: {
uappKey: appKey app_hosts: app_hosts
}, },
attributes: ["id", attributes: ["id",
"app_code", //渠道码 "app_hosts",
"app_code",
"app_name", "app_name",
"uapp_id", //平台appid "uapp_id",
"uapp_key", //平台appkey,用于进行签名请求接口 "uapp_key",
"uapp_secret",//平台appkey密钥信息 "uapp_secret",
"contact_name", //联系人 "contact_name",
"contact_mobile", //联系电话 "contact_mobile",
"contact_email", //联系人邮箱 "contact_email",
"is_enabled" //状态 0禁用 1启用 "is_enabled",
], "is_sign"],
raw: true raw: true
}); });
} }
......
const system = require("../../../system");
const Dao = require("../../dao.base");
class AppuserDao extends Dao {
constructor() {
super(Dao.getModelName(AppuserDao));
}
async getItemByChannelUserId(channel_userid, uapp_id) {
return this.model.findOne({
where: {
channel_userid: channel_userid,
uapp_id: uapp_id
},
attributes: ["id",
"uapp_id",
"channel_userid",
"channel_username",
"channel_nickname",
"open_id",
"head_url",
"mobile",
"org_name",
"org_path",
"email",
"is_admin",
"is_super"],
raw: true
});
}
}
module.exports = AppuserDao;
const system = require("../../../system");
const Dao = require("../../dao.base");
class UserDao extends Dao {
constructor() {
super(Dao.getModelName(UserDao));
}
}
module.exports = UserDao;
const system = require("../../../system");
const Dao = require("../../dao.base");
class FlowLogDao extends Dao {
constructor() {
super(Dao.getModelName(FlowLogDao));
}
}
module.exports = FlowLogDao;
const system = require("../../../system");
const Dao = require("../../dao.base");
class OrderContactsDao extends Dao {
constructor() {
super(Dao.getModelName(OrderContactsDao));
}
}
module.exports = OrderContactsDao;
const system = require("../../../system");
const Dao = require("../../dao.base");
class OrderInfoDao extends Dao {
constructor() {
super(Dao.getModelName(OrderInfoDao));
}
buildAttributes(){
return [
"orderNo",
"channelServiceNo",
"needNo",
"payTime",
"channelUserId",
"quantity",
"serviceQuantity",
"orderPayStatusName",
"orderPayStatus",
"totalSum",
"payTotalSum",
"refundSum",
"channelProfitSum",
"pfSettleProfit",
"notes",
"opNotes"
];
}
}
module.exports = OrderInfoDao;
const system = require("../../../system");
const Dao = require("../../dao.base");
class OrderProductDao extends Dao {
constructor() {
super(Dao.getModelName(OrderProductDao));
}
}
module.exports = OrderProductDao;
const system=require("../../../system");
const Dao=require("../../dao.base");
class ExpenseVoucherDao extends Dao{
constructor(){
super(Dao.getModelName(ExpenseVoucherDao));
}
}
module.exports=ExpenseVoucherDao;
const system=require("../../../system");
const Dao=require("../../dao.base");
class MoneyJourneyDao extends Dao{
constructor(){
super(Dao.getModelName(MoneyJourneyDao));
}
}
module.exports=MoneyJourneyDao;
const system = require("../../../system");
const Dao = require("../../dao.base");
class OrderReceiptVoucherDao extends Dao {
constructor() {
super(Dao.getModelName(OrderReceiptVoucherDao));
}
}
module.exports = OrderReceiptVoucherDao;
const system = require("../../../system");
const Dao = require("../../dao.base");
class OrderRefundVoucherDao extends Dao {
constructor() {
super(Dao.getModelName(OrderRefundVoucherDao));
}
}
module.exports = OrderRefundVoucherDao;
const system=require("../../../system");
const Dao=require("../../dao.base");
class NeedInfoDao extends Dao{
constructor(){
super(Dao.getModelName(NeedInfoDao));
}
}
module.exports=NeedInfoDao;
const system = require("../../../system");
const Dao = require("../../dao.base");
class CustomerContactsDao extends Dao {
constructor() {
super(Dao.getModelName(CustomerContactsDao));
}
async findOneByMobile(mobile, customerinfoId) {
return this.model.findOne({
where: {
mobile: mobile,
customerinfo_id: customerinfoId
},
attributes: ["id",
"deliveryOrderNo",
"mobile",
"email",
"tel",
"fax",
"name",
"code",
"app_id"],
raw: true
});
}
async findOneByCustomerinfoId(customerinfoId) {
return this.model.findOne({
where: {
customerinfo_id: customerinfoId
},
attributes: ["id",
"deliveryOrderNo",
"mobile",
"email",
"tel",
"fax",
"name",
"code",
"app_id"],
raw: true
});
}
}
module.exports = CustomerContactsDao;
const system = require("../../../system");
const Dao = require("../../dao.base");
class CustomerInfoDao extends Dao {
constructor() {
super(Dao.getModelName(CustomerInfoDao));
}
async findOneByCodeAndUserId(code, userId) {
return this.model.findOne({
where: {
code: code,
createuser_id: userId
},
attributes: ["id",
"customerType",// ent:企业,person:个人
"customerTypeName",
"identityCardPic",//身份证图片
"businessLicensePic",//营业执照图片
"name",//公司名称或个人名称
"code",//公司统一社会代码
"app_id",
"deliveryOrderNo",
"applyAddr",//申请地址
"applyArea",//存储省市编码
"province",//省
"city",//市
"identityCardNo",//身份证号
"notes",//备注
"zipCode",
"identityCardPdf",
"businessLicensePdf",
"createuser_id",
"updateuser_id",
"owner_id"],
raw: true
});
}
async findOneByDeliveryOrderNo(deliveryOrderNo) {
return this.model.findOne({
where: {
deliveryOrderNo: deliveryOrderNo
},
attributes: ["id",
"customerType",// ent:企业,person:个人
"customerTypeName",
"identityCardPic",//身份证图片
"businessLicensePic",//营业执照图片
"name",//公司名称或个人名称
"code",//公司统一社会代码
"app_id",
"deliveryOrderNo",
"applyAddr",//申请地址
"applyArea",//存储省市编码
"province",//省
"city",//市
"identityCardNo",//身份证号
"notes",//备注
"zipCode",
"identityCardPdf",
"businessLicensePdf",
"createuser_id",
"updateuser_id",
"owner_id"],
raw: true
});
}
}
module.exports = CustomerInfoDao;
const system = require("../../../system");
const Dao = require("../../dao.base");
class OrderFlowDao extends Dao {
constructor() {
super(Dao.getModelName(OrderFlowDao));
}
async getListBySourceOrderNo(sourceOrderNo) {
return this.model.findAll({
where: {
sourceOrderNo: sourceOrderNo,
isShow: 1
},
order:[["created_at", 'desc']],
raw: true
});
}
}
module.exports = OrderFlowDao;
const system = require("../../../system");
const Dao = require("../../dao.base");
class OrderTmProductDao extends Dao {
constructor() {
super(Dao.getModelName(OrderTmProductDao));
}
async getTmListByChannelServiceNo(channelServiceNo, appId) {
return this.model.findAll({
where: {
channelServiceNo: channelServiceNo,
app_id: appId
},
raw: true
});
}
async getTmItemByDeliveryOrderNo(deliveryOrderNo) {
return this.model.findOne({
where: {
deliveryOrderNo: deliveryOrderNo
},
raw: true
});
}
async getItemByNeedNoOrderNo(needNoOrderNo, appId, t) {
var sqlWhere = {
where: {
needNoOrderNo: needNoOrderNo,
app_id: appId
},
raw: true
};
if (t) {
sqlWhere.transaction = t;
}
sqlWhere.attributes = ["id",
"deliveryOrderNo",
"payStatus",
"needNo",
"sourceOrderNo",
"tmName",
"tmType",
"tmFormType",
"nclOneCodes",
"deliveryStatus",
"picUrl",
"colorizedPicUrl",
"sywjUrl",
"gzwtsUrl",
"nclCount",
"smwjUrl",
"updateuser_id",
"updateuser",
"notes",
"nclOneCount"
];
return this.model.findOne(sqlWhere);
}
async getItemByChannelServiceNo(channelServiceNo, appId, t) {
var sqlWhere = {
where: {
channelServiceNo: channelServiceNo,
app_id: appId
},
raw: true
};
if (t) {
sqlWhere.transaction = t;
}
sqlWhere.attributes = ["id",
"deliveryOrderNo",
"needNo",
"sourceOrderNo",
"tmName",
"tmType",
"tmFormType",
"nclOneCodes",
"deliveryStatus",
"picUrl",
"colorizedPicUrl",
"sywjUrl",
"gzwtsUrl",
"nclCount",
"smwjUrl",
"updateuser_id",
"updateuser",
"notes",
"nclOneCount"
];
return this.model.findOne(sqlWhere);
}
}
module.exports = OrderTmProductDao;
const system = require("../../../system");
const Dao = require("../../dao.base");
class ReceiptVoucherDao extends Dao {
constructor() {
super(Dao.getModelName(ReceiptVoucherDao));
}
async getItemSourceOrderNo(sourceOrderNo) {
return this.model.findAll({
where: {
sourceOrderNo: sourceOrderNo
},
raw: true
});
}
async addReceiptvoucher(orderParams, req, t) {
var param = {
app_id: orderParams.app_id,//
totalSum: orderParams.totalSum || 0,// 订单总额(产品价格×优惠费率×订单件数)
channelServiceNo: orderParams.channelServiceNo,// 渠道服务单号
auditStatus: "tg",
sourceType: "order",
sourceOrderNo: orderParams.orderNo,// 来源订单号
payDate: orderParams.payTime,//
createuser_id: orderParams.createuser_id,
creator: orderParams.creator || "",
accountType: "other",
};
return this.create(param, t);//创建订单
}
}
module.exports = ReceiptVoucherDao;
const system=require("../../../system");
const Dao=require("../../dao.base");
class TmOfficialDao extends Dao{
constructor(){
super(Dao.getModelName(TmOfficialDao));
}
async getListByTmRegistNum(tmRegistNum) {
return this.model.findAll({
where: {
tmRegistNum: tmRegistNum
},
raw: true
});
}
}
module.exports=TmOfficialDao;
const system = require("../../../system");
const Dao = require("../../dao.base");
class TradeMarkDao extends Dao {
constructor() {
super(Dao.getModelName(TradeMarkDao));
}
async getListByDeliveryOrderNo(deliveryOrderNo) {
return this.model.findAll({
where: {
deliveryOrderNo: deliveryOrderNo
},
raw: true
});
}
}
module.exports = TradeMarkDao;
...@@ -30,7 +30,7 @@ module.exports = (db, DataTypes) => { ...@@ -30,7 +30,7 @@ module.exports = (db, DataTypes) => {
updatedAt: false, updatedAt: false,
//freezeTableName: true, //freezeTableName: true,
// define the table's name // define the table's name
tableName: 'c_op_log', tableName: 'p_op_log',
validate: { validate: {
}, },
......
...@@ -40,7 +40,7 @@ module.exports = (db, DataTypes) => { ...@@ -40,7 +40,7 @@ module.exports = (db, DataTypes) => {
updatedAt: false, updatedAt: false,
//freezeTableName: true, //freezeTableName: true,
// define the table's name // define the table's name
tableName: 'c_push_log', tableName: 'p_push_log',
validate: { validate: {
}, },
......
...@@ -3,6 +3,7 @@ const settings = require("../../../../config/settings"); ...@@ -3,6 +3,7 @@ const settings = require("../../../../config/settings");
const uiconfig = system.getUiConfig2(settings.appKey); const uiconfig = system.getUiConfig2(settings.appKey);
module.exports = (db, DataTypes) => { module.exports = (db, DataTypes) => {
return db.define("app", { return db.define("app", {
app_hosts: DataTypes.STRING(255),
app_code: DataTypes.STRING(64), //渠道码 app_code: DataTypes.STRING(64), //渠道码
app_name: DataTypes.STRING(100), app_name: DataTypes.STRING(100),
uapp_id: DataTypes.STRING(64), //平台appid uapp_id: DataTypes.STRING(64), //平台appid
...@@ -15,6 +16,10 @@ module.exports = (db, DataTypes) => { ...@@ -15,6 +16,10 @@ module.exports = (db, DataTypes) => {
type: DataTypes.BOOLEAN, type: DataTypes.BOOLEAN,
defaultValue: true, defaultValue: true,
}, },
is_sign: { //请求是否验签
type: DataTypes.BOOLEAN,
defaultValue: true,
},
}, { }, {
paranoid: false,//假的删除 paranoid: false,//假的删除
underscored: true, underscored: true,
......
...@@ -4,14 +4,15 @@ const uiconfig = system.getUiConfig2(settings.appKey); ...@@ -4,14 +4,15 @@ const uiconfig = system.getUiConfig2(settings.appKey);
module.exports = (db, DataTypes) => { module.exports = (db, DataTypes) => {
return db.define("apppayparam", { return db.define("apppayparam", {
uapp_id: DataTypes.STRING(50), uapp_id: DataTypes.STRING(50),
mch_id: DataTypes.STRING(50), //支付商户id pay_appid: DataTypes.STRING(64), //支付商的appid
pay_key: DataTypes.STRING(50), mch_id: DataTypes.STRING(64), //支付商户id
pay_key: DataTypes.STRING(64),
is_enabled: { //状态 0禁用 1启用 is_enabled: { //状态 0禁用 1启用
type: DataTypes.BOOLEAN, type: DataTypes.BOOLEAN,
defaultValue: true, defaultValue: true,
}, },
pay_url: DataTypes.STRING(255), //支付地址 pay_url: DataTypes.STRING(255), //支付地址
notifyUrl: DataTypes.STRING(500), //支付成功后通知的地址 notify_url: DataTypes.STRING(500), //支付成功后通知的地址
notes: DataTypes.STRING(255), notes: DataTypes.STRING(255),
}, { }, {
paranoid: false,//假的删除 paranoid: false,//假的删除
......
...@@ -2,7 +2,7 @@ const system = require("../../../system"); ...@@ -2,7 +2,7 @@ const system = require("../../../system");
const settings = require("../../../../config/settings"); const settings = require("../../../../config/settings");
const uiconfig = system.getUiConfig2(settings.appKey); const uiconfig = system.getUiConfig2(settings.appKey);
module.exports = (db, DataTypes) => { module.exports = (db, DataTypes) => {
return db.define("user", { return db.define("appuser", {
uapp_id: DataTypes.INTEGER, uapp_id: DataTypes.INTEGER,
channel_userid: DataTypes.STRING(64), //渠道用户ID channel_userid: DataTypes.STRING(64), //渠道用户ID
channel_username: DataTypes.STRING(64), //渠道用户登录名 channel_username: DataTypes.STRING(64), //渠道用户登录名
...@@ -10,6 +10,8 @@ module.exports = (db, DataTypes) => { ...@@ -10,6 +10,8 @@ module.exports = (db, DataTypes) => {
open_id: DataTypes.STRING(64), //用户唯一ID(可用与微信唯一ID) open_id: DataTypes.STRING(64), //用户唯一ID(可用与微信唯一ID)
head_url: DataTypes.STRING(255), head_url: DataTypes.STRING(255),
mobile: DataTypes.STRING(255), mobile: DataTypes.STRING(255),
org_name: DataTypes.STRING(255),
org_path: DataTypes.STRING(255),
email: DataTypes.STRING(50), email: DataTypes.STRING(50),
is_admin: { is_admin: {
type: DataTypes.BOOLEAN, type: DataTypes.BOOLEAN,
...@@ -23,6 +25,7 @@ module.exports = (db, DataTypes) => { ...@@ -23,6 +25,7 @@ module.exports = (db, DataTypes) => {
type: DataTypes.BOOLEAN, type: DataTypes.BOOLEAN,
defaultValue: true, defaultValue: true,
}, },
last_login_time: DataTypes.DATE,
}, { }, {
paranoid: false,//假的删除 paranoid: false,//假的删除
underscored: true, underscored: true,
...@@ -32,7 +35,7 @@ module.exports = (db, DataTypes) => { ...@@ -32,7 +35,7 @@ module.exports = (db, DataTypes) => {
updatedAt: false, updatedAt: false,
//freezeTableName: true, //freezeTableName: true,
// define the table's name // define the table's name
tableName: 'p_user', tableName: 'p_app_user',
validate: { validate: {
}, },
......
const system = require("../../../system");
const settings = require("../../../../config/settings");
const uiconfig = system.getUiConfig2(settings.appKey);
module.exports = (db, DataTypes) => {
return db.define("flowlog", {
uapp_id: DataTypes.INTEGER, //
sourceOrderNo: DataTypes.STRING(64), // 来源单号
opContent: DataTypes.STRING(1024), // 操作描述
notes: DataTypes.STRING, // 备注
isShow: {//是否显示
type: DataTypes.BOOLEAN,
defaultValue: false,
},
}, {
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
timestamps: true,
updatedAt: false,
//freezeTableName: true,
// define the table's name
tableName: 'c_flow_log',
validate: {
},
indexes: [
]
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const uiconfig = system.getUiConfig2(settings.appKey);
module.exports = (db, DataTypes) => {
return db.define("ordercontacts", {
uapp_id :DataTypes.INTEGER, //
sourceOrderNo :DataTypes.STRING(64),//来源单号
contactName :DataTypes.STRING(1000), // 联系人
mobile :DataTypes.STRING(20), //
email :DataTypes.STRING(50), //
tel :DataTypes.STRING(20), //
fax :DataTypes.STRING(50), //
}, {
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
timestamps: true,
updatedAt: false,
//freezeTableName: true,
// define the table's name
tableName: 'c_order_contacts',
validate: {
},
indexes: [
]
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const uiconfig = system.getUiConfig2(settings.appKey);
module.exports = (db, DataTypes) => {
return db.define("orderinfo", {
uapp_id :DataTypes.INTEGER,//
orderNo :DataTypes.STRING(64),// 订单号
channelServiceNo :DataTypes.STRING(64),// 渠道服务单号
channelOrderNo :DataTypes.STRING(1024),// 渠道订单号列表,多个以,隔开
channelUserId :DataTypes.STRING(64), // 渠道用户ID
ownerUserId :DataTypes.STRING(20),// 拥有渠道用户ID
needNo :DataTypes.STRING(64), // 需求单号
needNoOrderNo :DataTypes.STRING(64), // 需求订单号
payTime :DataTypes.DATE,// 渠道有支付时间则用渠道的支付时间
quantity :DataTypes.INTEGER,// 订单数量(即产品的倍数,默认值为1)
serviceQuantity :DataTypes.INTEGER,// 订单服务数量(即与订单数量相对应)
orderPayStatusName :DataTypes.STRING(50),//
orderPayStatus :{
type: DataTypes.ENUM,
values: Object.keys(uiconfig.config.pdict.order_pay_status),
set: function (val) {
this.setDataValue("orderPayStatus", val);
this.setDataValue("orderPayStatusName", uiconfig.config.pdict.order_pay_status[val]);
}
},// 订单付款状态dfk: 待付款, zfpz: 已上传支付凭证, yfk: 已付款, bfyfk: 部分已付款, ddqx: 订单取消, tkclz: 退款处理中, bfytk: 部分已退款, ytk: 已退款,zfshbtg:支付审核不通过
totalSum :DataTypes.DECIMAL(12, 2),// 订单总额(产品价格×优惠费率×订单件数)
payTotalSum :DataTypes.DECIMAL(12, 2),// 订单付款总额
refundSum :DataTypes.DECIMAL(12, 2),// 退款金额
totalServiceCharge :DataTypes.DECIMAL(12, 2),// 服务费总额(产品配置的服务费*订单件数)
totalPublicExpense :DataTypes.DECIMAL(12, 2),// 官费总额(产品配置的官费*订单件数)
totalProfitSum :DataTypes.DECIMAL(12, 2),// 订单毛利润总额(订单总额-官费总额)
totalDiscounts :DataTypes.DECIMAL(12, 2),// 优惠总额((服务费总额+官费总额)-订单总额(产品价格×优惠费率×订单件数)>0则有优惠额度)
pfProfitSum :DataTypes.DECIMAL(12, 2),// 订单平台毛利润总额(订单毛利润总额-订单渠道分成毛利润总额)
channelProfitSum :DataTypes.DECIMAL(12, 2),// 订单渠道分成毛利润总额((订单总额-官费总额)*渠道利润分成比率)
pfSettleProfit :DataTypes.INTEGER,// 平台结算渠道利润,0否,1是
invoiceApplyStatus :DataTypes.STRING(10),// 发票状态:00: 未申请, 10: 已申请,20:已开票
opNotes :DataTypes.STRING,// 备注
notes :DataTypes.STRING,// 备注
}, {
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
timestamps: true,
updatedAt: false,
//freezeTableName: true,
// define the table's name
tableName: 'c_order_info',
validate: {
},
indexes: [
]
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const uiconfig = system.getUiConfig2(settings.appKey);
module.exports = (db, DataTypes) => {
return db.define("orderproduct", {
uapp_id: DataTypes.INTEGER,//
sourceOrderNo :DataTypes.STRING(64),//来源单号
productType_id :DataTypes.INTEGER,//产品类型Id
productOneType_id :DataTypes.INTEGER,//产品大类Id
itemCode :DataTypes.STRING(64),//产品编码
itemName :DataTypes.STRING(100),//产品名称
channelItemCode :DataTypes.STRING(100),// 渠道产品编码
channelItemName :DataTypes.STRING(100),// 渠道产品名称
serviceItemCode :DataTypes.STRING(100),// 服务商产品编码
picUrl :DataTypes.STRING(500),// 产品图片地址
proPrice :DataTypes.DOUBLE, // 产品价格
quantity :DataTypes.INTEGER,// 订单数量(即产品的倍数,默认值为1)
opPayType :DataTypes.STRING(10),// 操作付款类型:00: 创建订单, 10: 补单
serviceItemSnapshot :DataTypes.TEXT('long'), //产品快照
}, {
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
timestamps: true,
updatedAt: false,
//freezeTableName: true,
// define the table's name
tableName: 'c_order_product',
validate: {
},
indexes: [
]
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const uiconfig = system.getUiConfig2(settings.appKey);
module.exports = (db, DataTypes) => {//费用单:
return db.define("expensevoucher", {
uapp_id: DataTypes.INTEGER, //
sourceOrderNo: DataTypes.STRING(64), // 来源单号
expenseTypeName: DataTypes.STRING,
expenseType: {//收款类型,gf: 官费, tax: 税金, channelSettleProfit: 订单渠道分润结算
type: DataTypes.ENUM,
values: Object.keys(uiconfig.config.pdict.expense_type),
set: function (val) {
this.setDataValue("expenseType", val);
this.setDataValue("expenseTypeName", uiconfig.config.pdict.expense_type[val]);
}
},
totalSum: DataTypes.DECIMAL(12, 3),//总额
notes: DataTypes.STRING,//备注
}, {
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
//freezeTableName: true,
// define the table's name
tableName: 'c_expensevoucher',
validate: {
}
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const uiconfig = system.getUiConfig2(settings.appKey);
module.exports = (db, DataTypes) => {
return db.define("moneyjourney", {
uapp_id: DataTypes.INTEGER, //
sourceOrderNo: DataTypes.STRING(64), // 来源单号
channelUserId: DataTypes.STRING(64), // 渠道用户ID
ownerUserId: DataTypes.STRING(20),// 拥有渠道用户ID
accountType: {
//帐户类型( 支付类型):"cash": "现金", "bank": "银行" ,"wx":"微信","alipay":"支付宝","other":"其它"
type: DataTypes.ENUM,
values: Object.keys(uiconfig.config.pdict.pay_account_type),
set: function (val) {
this.setDataValue("accountType", val);
this.setDataValue("accountTypeName", uiconfig.config.pdict.pay_account_type[val]);
}
},
accountTypeName: {//帐户类型名称
type: DataTypes.STRING,
},
directionTypeName: DataTypes.STRING,
directionType: {//凭单类型,"sr": "收","zc": "支"
type: DataTypes.ENUM,
values: Object.keys(uiconfig.config.pdict.direction_type),
set: function (val) {
this.setDataValue("directionType", val);
this.setDataValue("directionTypeName", uiconfig.config.pdict.direction_type[val]);
}
},
voucherDate: DataTypes.DATE,//凭单时间
recvAmount: DataTypes.DECIMAL(12, 3),//收总额
payAmount: DataTypes.DECIMAL(12, 3),//支总额
sourceTypeName: DataTypes.STRING,
sourceType: {//来源类型 "orderinfo": "订单","expensevoucher": "费用单"
type: DataTypes.ENUM,
values: Object.keys(uiconfig.config.pdict.source_type),
set: function (val) {
this.setDataValue("sourceType", val);
this.setDataValue("sourceTypeName", uiconfig.config.pdict.source_type[val]);
}
},
auditStatusName: {
type: DataTypes.STRING(50),
defaultValue: "待审核",
},
auditStatus: {//审核状态"dsh": "待审核", "btg": "不通过", "tg": "通过"
type: DataTypes.ENUM,
values: Object.keys(uiconfig.config.pdict.audit_status),
set: function (val) {
this.setDataValue("auditStatus", val);
this.setDataValue("auditStatusName", uiconfig.config.pdict.audit_status[val]);
},
defaultValue: "dsh",
},
notes: DataTypes.STRING,//备注
opNotes: DataTypes.STRING,//操作备注
}, {
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
//freezeTableName: true,
// define the table's name
tableName: 'c_moneyjourney',
validate: {
}
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const uiconfig = system.getUiConfig2(settings.appKey);
module.exports = (db, DataTypes) => {
return db.define("orderreceiptvoucher", {//收款单:
uapp_id: DataTypes.INTEGER, //
sourceOrderNo: DataTypes.STRING(64), // 来源单号
accountType: {
//帐户类型( 支付类型):"cash": "现金", "bank": "银行" ,"wx":"微信","alipay":"支付宝","other":"其它"
type: DataTypes.ENUM,
values: Object.keys(uiconfig.config.pdict.pay_account_type),
set: function (val) {
this.setDataValue("accountType", val);
this.setDataValue("accountTypeName", uiconfig.config.pdict.pay_account_type[val]);
}
},
accountTypeName: {//帐户类型名称
type: DataTypes.STRING,
},
payDate: DataTypes.DATE,//支付时间
totalSum: DataTypes.DECIMAL(12, 3),//订单总额
payOrderNo: DataTypes.STRING, //支付凭证流水单号,如:微信支付凭证单号
buyerOpenId: DataTypes.STRING,//用户在支付商户appid下的唯一标识或买家在支付宝的用户id
passTradeNo: DataTypes.STRING,//通道的统一订单号
buyerAliLogonId: DataTypes.STRING,//买家支付宝账号
certifyFileUrl: DataTypes.STRING(500), //支付证明文件Url
wxPayOrderCode: DataTypes.STRING(64),//业务微信支付订单号
aliPayOrderCode: DataTypes.STRING(50),//业务支付宝支付订单号
busPayOrderCode: DataTypes.STRING(50),//业务支付订单号
auditStatusName: {
type: DataTypes.STRING(50),
defaultValue: "待审核",
},
auditStatus: {//审核状态"dsh": "待审核", "btg": "不通过", "tg": "通过"
type: DataTypes.ENUM,
values: Object.keys(uiconfig.config.pdict.audit_status),
set: function (val) {
this.setDataValue("auditStatus", val);
this.setDataValue("auditStatusName", uiconfig.config.pdict.audit_status[val]);
},
defaultValue: "dsh",
},
notes: DataTypes.STRING,//备注
opNotes: DataTypes.STRING,//操作备注
}, {
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
//freezeTableName: true,
// define the table's name
tableName: 'c_order_receiptvoucher',
validate: {
}
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const uiconfig = system.getUiConfig2(settings.appKey);
module.exports = (db, DataTypes) => {
return db.define("orderrefundvoucher", {//退款单:
uapp_id: DataTypes.INTEGER, //
sourceOrderNo: DataTypes.STRING(64), // 来源单号
busPayOrderCode: DataTypes.STRING(100),//业务支付订单号
accountType: {
//帐户类型( 支付类型):"cash": "现金", "bank": "银行" ,"wx":"微信","alipay":"支付宝","other":"其它"
type: DataTypes.ENUM,
values: Object.keys(uiconfig.config.pdict.pay_account_type),
set: function (val) {
this.setDataValue("accountType", val);
this.setDataValue("accountTypeName", uiconfig.config.pdict.pay_account_type[val]);
}
},
accountTypeName: {//帐户类型名称
type: DataTypes.STRING,
},
payDate: DataTypes.DATE,//支付时间
totalSum: DataTypes.DECIMAL(12, 3),//总额
certifyFileUrl: DataTypes.STRING(500), //证明文件Url
payOrderNo: DataTypes.STRING, //支付凭证流水单号,如:微信支付凭证单号
buyerOpenId: DataTypes.STRING,//用户在支付商户appid下的唯一标识或买家在支付宝的用户id
passTradeNo: DataTypes.STRING,//通道的统一订单号
buyerAliLogonId: DataTypes.STRING,//买家支付宝账号
auditStatusName: {
type: DataTypes.STRING(50),
defaultValue: "待审核",
},
auditStatus: {//审核状态"dsh": "待审核", "btg": "不通过", "tg": "通过"
type: DataTypes.ENUM,
values: Object.keys(uiconfig.config.pdict.audit_status),
set: function (val) {
this.setDataValue("auditStatus", val);
this.setDataValue("auditStatusName", uiconfig.config.pdict.audit_status[val]);
},
defaultValue: "dsh",
},
notes: DataTypes.STRING,//备注
opNotes: DataTypes.STRING,//操作备注
}, {
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
//freezeTableName: true,
// define the table's name
tableName: 'c_order_refundvoucher',
validate: {
}
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const uiconfig = system.getUiConfig2(settings.appKey);
module.exports = (db, DataTypes) => {
return db.define("needinfo", {
app_id :DataTypes.INTEGER, //
needNo :DataTypes.STRING(64), //需求单号
needDesc :DataTypes.STRING(255), //
needUserMoblie :DataTypes.STRING(20), //
notes :DataTypes.STRING(255), //
opNotes :DataTypes.STRING(500), //
channelUserName :DataTypes.STRING(50), // 渠道用户登录名
auditStatus :DataTypes.STRING(10), //确认状态:00待确认,10确认通过,20确认不通过
createuser_id :DataTypes.INTEGER, //
updateuser_id :DataTypes.INTEGER, //
owner_id :DataTypes.INTEGER, //
creator :DataTypes.STRING(50), //
updator :DataTypes.STRING(50), //
owner :DataTypes.STRING(50), //
ownerMoblie :DataTypes.STRING(20), //
itemCode :DataTypes.STRING(80), //产品码
}, {
paranoid: false,//假的删除
underscored: true,
version: true,
freezeTableName: true,
timestamps: true,
updatedAt: false,
//freezeTableName: true,
// define the table's name
tableName: 'b_needinfo',
validate: {
},
indexes: [
]
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const uiconfig = system.getUiConfig2(settings.appKey);
module.exports = (db, DataTypes) => {
return db.define("customercontacts", {
app_id :DataTypes.INTEGER, //
customerinfo_id :DataTypes.INTEGER, //
deliveryOrderNo :DataTypes.STRING(64), // 交付订单号
mobile :DataTypes.STRING(20), //
email :DataTypes.STRING(50), //
tel :DataTypes.STRING(20), //
fax :DataTypes.STRING(50), //
name :DataTypes.STRING(1000), // 联系人
code :DataTypes.STRING(100), // 暂时没有用
}, {
paranoid: false,//假的删除
underscored: true,
version: true,
freezeTableName: true,
timestamps: true,
updatedAt: false,
//freezeTableName: true,
// define the table's name
tableName: 'b_customercontacts',
validate: {
},
indexes: [
]
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const uiconfig = system.getUiConfig2(settings.appKey);
module.exports = (db, DataTypes) => {
return db.define("customerinfo", {
customerTypeName :DataTypes.STRING(50), //
customerType : {
type: DataTypes.ENUM,
values: Object.keys(uiconfig.config.pdict.customer_type),
set: function (val) {
this.setDataValue("customerType", val);
this.setDataValue("customerTypeName", uiconfig.config.pdict.customer_type[val]);
},
defaultValue: "0",
}, //申请企业类型: ent:企业,person:个人
identityCardPic :DataTypes.STRING(500), // 身份证图片
identityCardPdf :DataTypes.STRING(500), // 身份证pdf
businessLicensePic :DataTypes.STRING(500), // 营业执照图片
businessLicensePdf :DataTypes.STRING(500), // 营业执照pdf
name :DataTypes.STRING(1000), // 公司名称或个人名称
code :DataTypes.STRING(100), // 公司统一社会代码
app_id :DataTypes.INTEGER, //
deliveryOrderNo :DataTypes.STRING(64), // 交付订单号
applyAddr :DataTypes.STRING, // 申请地址
applyArea :DataTypes.STRING(50), // 存储省市编码
province :DataTypes.STRING(50), // 省
city :DataTypes.STRING(50), // 市
identityCardNo :DataTypes.STRING(50), // 身份证号
notes :DataTypes.STRING, // 备注
createuser_id :DataTypes.INTEGER, //
updateuser_id :DataTypes.INTEGER, //
owner_id :DataTypes.INTEGER, // 拥有者
zipCode :DataTypes.STRING(20), //
}, {
paranoid: false,//假的删除
underscored: true,
version: true,
freezeTableName: true,
timestamps: true,
updatedAt: false,
//freezeTableName: true,
// define the table's name
tableName: 'b_customerinfo',
validate: {
},
indexes: [
]
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const uiconfig = system.getUiConfig2(settings.appKey);
module.exports = (db, DataTypes) => {
return db.define("order", {
app_id :DataTypes.INTEGER,//
orderNo :DataTypes.STRING(64),// 订单号
channelServiceNo :DataTypes.STRING(64),// 渠道服务单号
channelOrderNo :DataTypes.STRING(1024),// 渠道订单号列表,多个以,隔开
itemCode :DataTypes.STRING(64),//
itemName :DataTypes.STRING(100),//
channelItemCode :DataTypes.STRING(64),// 渠道产品编码
channelItemName :DataTypes.STRING,// 渠道产品名称
payTime :DataTypes.DATE,// 渠道有支付时间则用渠道的支付时间
salesNum :DataTypes.INTEGER,// 项目订单数量(即服务项目的倍数,默认值为1)
salesDiliverNum :DataTypes.INTEGER,// 项目订单交付数量(即与项目订单数量相对应)
minitermNum :DataTypes.INTEGER,// 订单小项数量
minitermDiliverNum :DataTypes.INTEGER,// 订单小项交付数量
orderType :{
type: DataTypes.ENUM,
values: Object.keys(uiconfig.config.pdict.order_type),
},// 订单类型,zzdd: 自主订单,dkxd: 代客下单
orderPayStatusName: DataTypes.STRING(50),//
orderPayStatus :{
type: DataTypes.ENUM,
values: Object.keys(uiconfig.config.pdict.order_pay_status),
set: function (val) {
this.setDataValue("orderPayStatus", val);
this.setDataValue("orderPayStatusName", uiconfig.config.pdict.order_pay_status[val]);
}
},// 订单付款状态dfk: 待付款, zfpz: 已上传支付凭证, yfk: 已付款, ddqx: 订单取消, tkclz: 退款处理中, bfytk: 部分已退款, ytk: 已退款,zfshbtg:支付审核不通过
totalServiceCharge :DataTypes.DECIMAL(12, 2),// 服务费总额(产品配置的服务费*订单件数)
totalPublicExpense :DataTypes.DECIMAL(12, 2),// 官费总额(产品配置的官费*订单件数)
totalDiscounts :DataTypes.DECIMAL(12, 2),// 优惠总额((服务费总额+官费总额)-订单总额(产品价格×优惠费率×订单件数)>0则有优惠额度)
totalTaxes :DataTypes.DECIMAL(12, 2),// 税费总额(订单总额-(订单总额/(1+产品费率)))
totalSum :DataTypes.DECIMAL(12, 2),// 订单总额(产品价格×优惠费率×订单件数)
refundSum :DataTypes.DECIMAL(12, 2),// 退款金额
totalProfitSum :DataTypes.DECIMAL(12, 2),// 订单毛利润总额(订单总额-官费总额)
pfProfitSum :DataTypes.DECIMAL(12, 2),// 订单平台毛利润总额(订单毛利润总额-订单渠道分成毛利润总额)
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),
},// 支付类型:00第三方支付,10平台代收款
createuser_id :DataTypes.INTEGER,//
updateuser_id :DataTypes.INTEGER,//
owner_id :DataTypes.INTEGER,//
creator :DataTypes.STRING(100),//
updator :DataTypes.STRING(100),//
owner :DataTypes.STRING(100),//
ownerMoblie :DataTypes.STRING(20),//
invoiceApplyStatus :DataTypes.STRING(10),// 发票状态:00: 未申请, 10: 已申请,20:已开票
channelUserId :DataTypes.STRING(64), // 渠道用户ID
needNo :DataTypes.STRING(64), // 需求单号
needNoOrderNo :DataTypes.STRING(64), // 需求订单号
sourceType: DataTypes.STRING(10),//来源类型:00订单,10需求需要用户确认方案
picUrl :DataTypes.STRING(500),// 产品图片地址
productType_id :DataTypes.INTEGER, //产品类型Id
productOneType_id :DataTypes.INTEGER, //产品大类Id
serviceItemSnapshot :DataTypes.TEXT, //产品快照
buyerMoblie :DataTypes.STRING(64), // 买家手机号
}, {
paranoid: false,//假的删除
underscored: true,
version: true,
freezeTableName: true,
timestamps: true,
updatedAt: false,
//freezeTableName: true,
// define the table's name
tableName: 'b_order',
validate: {
},
indexes: [
]
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const uiconfig = system.getUiConfig2(settings.appKey);
module.exports = (db, DataTypes) => {
return db.define("orderflow", {
sourceOrderNo: DataTypes.STRING(64), // 来源单号
opContent: DataTypes.STRING(1024), // 操作描述
app_id: DataTypes.INTEGER, //
notes: DataTypes.STRING, // 备注
createuser_id: DataTypes.INTEGER, //
isShow: {//是否显示
type: DataTypes.BOOLEAN,
defaultValue: false,
},
}, {
paranoid: false,//假的删除
underscored: true,
version: true,
freezeTableName: true,
timestamps: true,
updatedAt: false,
//freezeTableName: true,
// define the table's name
tableName: 'b_orderflow',
validate: {
},
indexes: [
]
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const uiconfig = system.getUiConfig2(settings.appKey);
module.exports = (db, DataTypes) => {
return db.define("ordertmproduct", {
app_id: DataTypes.INTEGER,//
productType_id: DataTypes.INTEGER,//产品类型Id
productOneType_id: DataTypes.INTEGER,//产品大类Id
itemCode: DataTypes.STRING(64),//产品编码
itemName: DataTypes.STRING(100),//产品名称
tmName: DataTypes.STRING(1000),//商标名称
tmType: {
type: DataTypes.ENUM,
values: Object.keys(uiconfig.config.pdict.tm_type),
},//p:普通商标,j:集体商标,z:证明商标,t:特殊商标
tmFormTypeName: DataTypes.STRING(50),//
tmFormType: {
type: DataTypes.ENUM,
values: Object.keys(uiconfig.config.pdict.tm_form_type),
set: function (val) {
this.setDataValue("tmFormType", val);
this.setDataValue("tmFormTypeName", uiconfig.config.pdict.tm_form_type[val]);
}
},//商标类型形式:1:立体,3:字,4:图,5:字图,6:颜色,7:彩色
nclOneCodes: DataTypes.STRING,//尼斯大类列表:格式以,隔开
payStatusName: DataTypes.STRING(50),//
payStatus: {
type: DataTypes.ENUM,
values: Object.keys(uiconfig.config.pdict.order_service_pay_status),
set: function (val) {
this.setDataValue("payStatus", val);
this.setDataValue("payStatusName", uiconfig.config.pdict.order_service_pay_status[val]);
}
},//支付状态:dfk:待付款,yzf:已支付
deliveryStatusName: DataTypes.STRING(50),//
deliveryStatus: {
type: DataTypes.ENUM,
values: Object.keys(uiconfig.config.pdict.delivery_status),
set: function (val) {
this.setDataValue("deliveryStatus", val);
this.setDataValue("deliveryStatusName", uiconfig.config.pdict.delivery_status[val]);
}
},//商标交付状态:dsccl:待上传材料,dsh:待审核,ddj:待递交, ydj: 已递交,ywc:已完成
appDataOpType: {
type: DataTypes.ENUM,
values: Object.keys(uiconfig.config.pdict.app_data_op_type),
},//应用数据操作类型:00独立,10全委托,20部分委托
sourceOrderNo: DataTypes.STRING(64),//来源单号
deliveryOrderNo: DataTypes.STRING(64),//交付订单号
channelServiceNo: DataTypes.STRING(64),//渠道服务单号
channelOrderNo: DataTypes.STRING(1024),//渠道订单号列表,多个以,隔开
needNo: DataTypes.STRING(64),//需求单号
needNoOrderNo :DataTypes.STRING(64), // 需求订单号
sourceType: DataTypes.STRING(10),//来源类型:00订单,10需求需要用户确认方案
picUrl: DataTypes.STRING(500), //商标图样
colorizedPicUrl: DataTypes.STRING(500),//商标彩色图样
gzwtsUrl: DataTypes.STRING(500), //盖章委托书
sywjUrl: DataTypes.STRING(500), //声音文件
smwjUrl: DataTypes.STRING(500), //说明文件
channelUserId: DataTypes.STRING(64),//渠道用户ID
notes: DataTypes.STRING(255),//备注
createuser_id: DataTypes.INTEGER,//
updateuser_id: DataTypes.INTEGER,//
auditor_id: DataTypes.INTEGER,//
createuser: DataTypes.STRING(100),//
updateuser: DataTypes.STRING(100),//
auditor: DataTypes.STRING(100),//
nclOneCount: DataTypes.INTEGER, // 尼斯大类数量
nclCount: DataTypes.INTEGER, // 尼斯数量
}, {
paranoid: false,//假的删除
underscored: true,
version: true,
freezeTableName: true,
timestamps: true,
updatedAt: false,
//freezeTableName: true,
// define the table's name
tableName: 'b_order_tm_product',
validate: {
},
indexes: [
]
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const uiconfig = system.getUiConfig2(settings.appKey);
module.exports = (db, DataTypes) => {
var base = require("../../basemodel/voucherbase")(db, DataTypes);
return db.define("receiptvoucher", Object.assign({//收款单:
//基类 code: 收款单号(自动生成)
//基类 creator: 创建者
//基类 updator:/更新者
//基类 auditor: 审核者
//基类 opNotes: 操作备注
//基类 auditStatusName: //审核状态名称
//基类 auditStatus: //审核状态:ENUM=audit_status,"dsh": "待审核", "btg": "不通过", "tg": "通过"
//基类 sourceTypeName: //来源类型名称
//基类 sourceType: //来源类型:ENUM=source_type,"order": "订单","expensevoucher": "费用单","receiptvoucher": "收款单","refundvoucher": "退款单", "trademark": "商标单"
//基类 sourceOrderNo: DataTypes.STRING,//来源单号(如:订单号等)
//基类 channelServiceNo //渠道服务单号
createapp_id: DataTypes.INTEGER,//
payuser_id: DataTypes.INTEGER,//
busPayOrderCode: DataTypes.STRING(100),//业务支付订单号
payOrderNo: DataTypes.STRING, //支付凭证流水单号,如:微信支付凭证单号
receiptTypeName: DataTypes.STRING,
receiptType: {//收款类型,"sk": "收款","csrz": "初始入账" ,"ptdsk": "平台代收款"
type: DataTypes.ENUM,
values: Object.keys(uiconfig.config.pdict.receipt_type),
set: function (val) {
this.setDataValue("receiptType", val);
this.setDataValue("receiptTypeName", uiconfig.config.pdict.receipt_type[val]);
}
},
accountType: {
//帐户类型( 支付类型):"cash": "现金", "bank": "银行" ,"wx":"微信","alipay":"支付宝","other":"其它"
type: DataTypes.ENUM,
values: Object.keys(uiconfig.config.pdict.pay_account_type),
set: function (val) {
this.setDataValue("accountType", val);
this.setDataValue("accountTypeName", uiconfig.config.pdict.pay_account_type[val]);
},
defaultValue: "other",
},
accountTypeName: {//帐户类型名称
type: DataTypes.STRING,
defaultValue: "其它",
},
payDate: DataTypes.DATE,//支付时间
totalSum: DataTypes.DECIMAL(12, 3),//订单总额(平台费用+服务费+官费+发票税费+个人利润+平台利润)
certifyFileUrl: DataTypes.STRING(500), //证明文件Url
notes: DataTypes.STRING,//备注
itemCode: DataTypes.STRING(100),//项目操作码
itemName: DataTypes.STRING(100),//项目名称
buyerOpenId: DataTypes.STRING,//用户在商户appid下的唯一标识或买家在支付宝的用户id
passTradeNo: DataTypes.STRING,//通道的统一订单号
buyerAliLogonId: DataTypes.STRING,//买家支付宝账号
}, base), {
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
//freezeTableName: true,
// define the table's name
tableName: 'b_receiptvoucher',
validate: {
}
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const uiconfig = system.getUiConfig2(settings.appKey);
module.exports = (db, DataTypes) => {
return db.define("tmofficial", {
tmRegistNum :DataTypes.STRING(50), //注册号
officialTypeName :DataTypes.STRING(50), //
officialType : {
type: DataTypes.ENUM,
values: Object.keys(uiconfig.config.pdict.official_type),
set: function (val) {
this.setDataValue("officialType", val);
this.setDataValue("officialTypeName", uiconfig.config.pdict.official_type[val]);
}
}, //商标官文类型:1: 商标注册申请书, 2: 商标注册申请补正通知书, 3: 商标注册申请受理通知书, 4: 商标注册申请不予受理通知书,
//5: 商标注册同日申请补送使用证据通知书,6: 商标注册同日申请协商通知书商标注册同日申请抽签通知书,
//7: 商标驳回通知书, 8: 商标部分驳回通知书, 9: 商标注册申请初步审定公告通知书,
//10: 商标异议答辩通知书, 11: 异议裁定书, 12: 纸质版商标注册证, 13: 电子版商标注册证
officialFileName :DataTypes.STRING(200), // 官文文件名称
officialFileUrl :DataTypes.STRING(255), // 官文文件地址
notes :DataTypes.STRING , //
name :DataTypes.STRING(1000), //暂时没有用
code :DataTypes.STRING(64), //官文单号(自动生成)
app_id :DataTypes.INTEGER, //
createuser_id :DataTypes.INTEGER, //
updateuser_id :DataTypes.INTEGER, //
}, {
paranoid: false,//假的删除
underscored: true,
version: true,
freezeTableName: true,
timestamps: true,
updatedAt: false,
//freezeTableName: true,
// define the table's name
tableName: 'b_tmofficial',
validate: {
},
indexes: [
]
});
}
const system=require("../system") const system=require("../system")
const logCtl=system.getObject("web.common.oplogCtl"); const logCtl=system.getObject("service.common.oplogSve");
class TaskBase{ class TaskBase{
constructor(className){ constructor(className){
this.redisClient=system.getObject("util.redisClient"); this.redisClient=system.getObject("util.redisClient");
......
...@@ -8,10 +8,15 @@ class OplogService extends ServiceBase { ...@@ -8,10 +8,15 @@ class OplogService extends ServiceBase {
this.opLogUrl = settings.apiconfig.opLogUrl(); this.opLogUrl = settings.apiconfig.opLogUrl();
this.opLogEsIsAdd = settings.apiconfig.opLogEsIsAdd(); this.opLogEsIsAdd = settings.apiconfig.opLogEsIsAdd();
} }
async error(qobj) {
this.create(qobj);
}
async info(qobj) {
this.create(qobj);
}
async create(qobj) { async create(qobj) {
if (!qobj || !qobj.op || qobj.op.indexOf("metaCtl/getUiConfig") >= 0 || if (!qobj || !qobj.op || qobj.op.indexOf("metaCtl/getUiConfig") >= 0 ||
qobj.op.indexOf("userCtl/checkLogin") >= 0 || qobj.op.indexOf("userCtl/checkLogin") >= 0 ||
qobj.op.indexOf("oplogCtl") >= 0 ||
qobj.op.indexOf("getDicConfig") >= 0 || qobj.op.indexOf("getDicConfig") >= 0 ||
qobj.op.indexOf("getRouteConfig") >= 0 || qobj.op.indexOf("getRouteConfig") >= 0 ||
qobj.op.indexOf("getRsConfig") >= 0) { qobj.op.indexOf("getRsConfig") >= 0) {
...@@ -49,7 +54,6 @@ class OplogService extends ServiceBase { ...@@ -49,7 +54,6 @@ class OplogService extends ServiceBase {
async createDb(qobj) { async createDb(qobj) {
if (!qobj || !qobj.op || qobj.op.indexOf("metaCtl/getUiConfig") >= 0 || if (!qobj || !qobj.op || qobj.op.indexOf("metaCtl/getUiConfig") >= 0 ||
qobj.op.indexOf("userCtl/checkLogin") >= 0 || qobj.op.indexOf("userCtl/checkLogin") >= 0 ||
qobj.op.indexOf("oplogCtl") >= 0 ||
qobj.op.indexOf("getDicConfig") >= 0 || qobj.op.indexOf("getDicConfig") >= 0 ||
qobj.op.indexOf("getRouteConfig") >= 0 || qobj.op.indexOf("getRouteConfig") >= 0 ||
qobj.op.indexOf("getRsConfig") >= 0) { qobj.op.indexOf("getRsConfig") >= 0) {
......
...@@ -11,7 +11,6 @@ class PushlogService extends ServiceBase { ...@@ -11,7 +11,6 @@ class PushlogService extends ServiceBase {
async create(qobj) { async create(qobj) {
if (!qobj || !qobj.op || qobj.op.indexOf("metaCtl/getUiConfig") >= 0 || if (!qobj || !qobj.op || qobj.op.indexOf("metaCtl/getUiConfig") >= 0 ||
qobj.op.indexOf("userCtl/checkLogin") >= 0 || qobj.op.indexOf("userCtl/checkLogin") >= 0 ||
qobj.op.indexOf("oplogCtl") >= 0 ||
qobj.op.indexOf("getDicConfig") >= 0 || qobj.op.indexOf("getDicConfig") >= 0 ||
qobj.op.indexOf("getRouteConfig") >= 0 || qobj.op.indexOf("getRouteConfig") >= 0 ||
qobj.op.indexOf("getRsConfig") >= 0) { qobj.op.indexOf("getRsConfig") >= 0) {
...@@ -49,7 +48,6 @@ class PushlogService extends ServiceBase { ...@@ -49,7 +48,6 @@ class PushlogService extends ServiceBase {
async createDb(qobj) { async createDb(qobj) {
if (!qobj || !qobj.op || qobj.op.indexOf("metaCtl/getUiConfig") >= 0 || if (!qobj || !qobj.op || qobj.op.indexOf("metaCtl/getUiConfig") >= 0 ||
qobj.op.indexOf("userCtl/checkLogin") >= 0 || qobj.op.indexOf("userCtl/checkLogin") >= 0 ||
qobj.op.indexOf("oplogCtl") >= 0 ||
qobj.op.indexOf("getDicConfig") >= 0 || qobj.op.indexOf("getDicConfig") >= 0 ||
qobj.op.indexOf("getRouteConfig") >= 0 || qobj.op.indexOf("getRouteConfig") >= 0 ||
qobj.op.indexOf("getRsConfig") >= 0) { qobj.op.indexOf("getRsConfig") >= 0) {
......
...@@ -6,8 +6,25 @@ class AppService extends ServiceBase { ...@@ -6,8 +6,25 @@ class AppService extends ServiceBase {
constructor() { constructor() {
super("dbapp", ServiceBase.getDaoName(AppService)); super("dbapp", ServiceBase.getDaoName(AppService));
} }
async getItemByAppKey(appKey) { async getAppTokenByHosts(app_hosts) {
return this.dao.getItemByAppKey(appKey); if (!app_hosts) {
return system.getResult(null, "app_hosts can not be empty !");
}
var item = await this.dao.getItemByHosts(app_hosts);
if (!item) {
return system.getResult(null, "app_hosts to data is empty !");
}
var acckapp = await this.restS.execPost({ appkey: appkey, secret: secret }, settings.paasUrl() + "api/auth/accessAuth/getAccessKey");
var s = acckapp.stdout;
console.log(acckapp.stdout, "ApiAccessKeyCache............. acckapp.stdout..........")
if (s) {
var tmp = JSON.parse(s);
return tmp;
// if (tmp.status == 0) {
// return JSON.stringify(tmp.data);
// }
}
return system.getResult(null, "返回数据为空!");
} }
} }
module.exports = AppService; module.exports = AppService;
...@@ -2,10 +2,10 @@ const system = require("../../../system"); ...@@ -2,10 +2,10 @@ const system = require("../../../system");
const ServiceBase = require("../../sve.base"); const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings"); const settings = require("../../../../config/settings");
class UserService extends ServiceBase { class AppUserService extends ServiceBase {
constructor() { constructor() {
super("dbapp", ServiceBase.getDaoName(UserService)); super("dbapp", ServiceBase.getDaoName(AppUserService));
} }
} }
module.exports = UserService; module.exports = AppUserService;
const system = require("../../../system");
const Dao = require("../../dao.base");
class FlowLogService extends ServiceBase {
constructor() {
super("dbcorder", ServiceBase.getDaoName(FlowLogService));
}
}
module.exports = FlowLogService;
const system = require("../../../system");
const Dao = require("../../dao.base");
class OrderContactsService extends ServiceBase {
constructor() {
super("dbcorder", ServiceBase.getDaoName(OrderContactsService));
}
}
module.exports = OrderContactsService;
const system = require("../../../system");
const Dao = require("../../dao.base");
class OrderProductService extends ServiceBase {
constructor() {
super("dbcorder", ServiceBase.getDaoName(OrderProductService));
}
}
module.exports = OrderProductService;
const system = require("../../../system");
const Dao = require("../../dao.base");
class ExpenseVoucherService extends ServiceBase {
constructor() {
super("dbcpay", ServiceBase.getDaoName(ExpenseVoucherService));
}
}
module.exports = ExpenseVoucherService;
const system=require("../../../system");
const Dao=require("../../dao.base");
class MoneyJourneyService extends ServiceBase {
constructor() {
super("dbcpay", ServiceBase.getDaoName(MoneyJourneyService));
}
}
module.exports=MoneyJourneyService;
const system = require("../../../system");
const Dao = require("../../dao.base");
class OrderReceiptVoucherService extends ServiceBase {
constructor() {
super("dbcpay", ServiceBase.getDaoName(OrderReceiptVoucherService));
}
}
module.exports = OrderReceiptVoucherService;
const system = require("../../../system");
const Dao = require("../../dao.base");
class OrderRefundVoucherService extends ServiceBase {
constructor() {
super("dbcpay", ServiceBase.getDaoName(OrderRefundVoucherService));
}
}
module.exports = OrderRefundVoucherService;
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
class NeedInfoService extends ServiceBase {
constructor() {
super("dbneed", ServiceBase.getDaoName(NeedInfoService));
}
async subNeed(obj){
var user = obj.user;
var app = obj.app;
if(!user){
return system.getResultFail(-100, "未知用户");
}
if(!app){
return system.getResultFail(-101, "未知渠道");
}
var needNo=await this.getBusUid("ni");
var needObj={
app_id :app.id,
needNo :needNo,
needDesc :obj.needDesc,
needUserMoblie :obj.needUserMoblie,
notes :obj.notes,
channelUserName :user.channelUserName,
auditStatus :"00",
createuser_id :user.id,
itemCode:obj.itemCode
};
var need = await this.dao.create(needObj);
return system.getResultSuccess(need);
}
}
module.exports=NeedInfoService;
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
class CustomerContactsService extends ServiceBase {
constructor() {
super("dborder", ServiceBase.getDaoName(CustomerContactsService));
this.ordertmproductSve = system.getObject("service.dborder.ordertmproductSve");
this.orderflowDao = system.getObject("db.dborder.orderflowDao");
}
/**
* 修改商标交付单联系人(订单详情页面)
* @param {*} obj
* obj.deliveryOrderNo 交付订单号,
* obj.name 联系人,obj.mobile 联系电话,obj.email 电子邮箱,obj.tel 座机电话
* obj.user 用户数据
*/
async updateContacts(obj){
var user = obj.user;
var app = obj.app;
if(!user || !user.id){
return system.getResultFail(-100, "未知用户");
}
if (!app || !app.id) {
return system.getResultFail(-100, "未知渠道");
}
var deliveryOrderNo = obj.deliveryOrderNo;
if(!deliveryOrderNo){
return system.getResultFail(-101, "deliveryOrderNo参数错误");
}
// 1.获取交付单信息
var ordertmproduct = await this.ordertmproductSve.dao.model.findOne({
where:{deliveryOrderNo:deliveryOrderNo,app_id:app.id},
raw:true
});
if(!ordertmproduct || !ordertmproduct.id){
return system.getResultFail(-102, "商标交付单不存在");
}
// 2.获取交付单状态,判断是否可修改
if(ordertmproduct.deliveryStatus=='ddj' || ordertmproduct.deliveryStatus=='ywc'){
var deliveryStatusName = "待递交";
if(ordertmproduct.deliveryStatus=='ywc'){
deliveryStatusName="已完成";
}
return system.getResultFail(-103, "该商标交付单状态为"+deliveryStatusName+",不能进行修改");
}
var self = this;
return await self.db.transaction(async function (t) {
var contactsObj={deliveryOrderNo:deliveryOrderNo};
if(obj.name){
contactsObj["name"]=obj.name;
}
if(obj.mobile){
contactsObj["mobile"]=obj.mobile;
}
if(obj.email){
contactsObj["email"]=obj.email;
}
if(obj.tel){
contactsObj["tel"]=obj.tel;
}
//修改联系人信息
await self.dao.model.update(contactsObj, { where: { deliveryOrderNo:deliveryOrderNo,app_id: app.id }, transaction: t });
var logMsg = { sourceOrderNo: deliveryOrderNo, opContent: "修改订单信息", app_id: app.id, isShow: 1 };
await self.orderflowDao.create(logMsg, t);
return system.getResultSuccess();
})
}
}
module.exports=CustomerContactsService;
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
class CustomerInfoService extends ServiceBase {
constructor() {
super("dborder", ServiceBase.getDaoName(CustomerInfoService));
this.ordertmproductSve = system.getObject("service.dborder.ordertmproductSve");
this.trademarkDao = system.getObject("db.dbtrademark.trademarkDao");
this.orderflowDao = system.getObject("db.dborder.orderflowDao");
}
/**
* 修改申请人信息(订单详情页面使用)
* @param {*} obj
* obj.deliveryOrderNo 交付订单号,
* obj.customerType 申请人类型,
* obj.name 公司名称或个人名称,
* obj.code 社会统一信用代码,
* obj.applyAddr 公司地址,
* obj.zipCode 邮编
* obj.identityCardPic 身份证图片,
* obj.businessLicensePic 营业执照图片,
* obj.identityCardPdf 身份证pdf,
* obj.businessLicensePdf 营业执照pdf,
* obj.user 用户数据
*/
async updateCustomerInfo(obj){
var user = obj.user;
var app = obj.app;
if(!user || !user.id){
return system.getResultFail(-100, "未知用户");
}
if (!app || !app.id) {
return system.getResultFail(-100, "未知渠道");
}
var deliveryOrderNo = obj.deliveryOrderNo;
if(!deliveryOrderNo){
return system.getResultFail(-101, "deliveryOrderNo参数错误");
}
// 1.获取交付单信息
var ordertmproduct = await this.ordertmproductSve.dao.model.findOne({
where:{deliveryOrderNo:deliveryOrderNo,app_id:app.id},
raw:true
});
if(!ordertmproduct || !ordertmproduct.id){
return system.getResultFail(-102, "商标交付单不存在");
}
// 2.获取交付单状态,判断是否可修改
if(ordertmproduct.deliveryStatus=='ddj' || ordertmproduct.deliveryStatus=='ywc'){
var deliveryStatusName = "待递交";
if(ordertmproduct.deliveryStatus=='ywc'){
deliveryStatusName="已完成";
}
return system.getResultFail(-103, "该商标交付单状态为"+deliveryStatusName+",不能进行修改");
}
var customerinfo = await this.dao.model.findOne({
where:{
deliveryOrderNo:deliveryOrderNo,app_id:app.id
},
raw:true
});
if(!customerinfo || !customerinfo.id){
return system.getResultFail(-104, "未知申请人");
}
var self = this;
return await self.db.transaction(async function (t) {
var ciObj={ id:customerinfo.id,updateuser_id:user.id };
if(obj.customerType){
ciObj["customerType"]=obj.customerType;
}
if(obj.name){
ciObj["name"]=obj.name;
}
if(obj.code){
ciObj["code"]=obj.code;
}
if(obj.identityCardNo){
ciObj["identityCardNo"]=obj.identityCardNo;
}
if(obj.applyAddr){
ciObj["applyAddr"]=obj.applyAddr;
}
if(obj.zipCode){
ciObj["zipCode"]=obj.zipCode;
}
if(obj.businessLicensePic){
ciObj["businessLicensePic"]=obj.businessLicensePic;
}
if(obj.identityCardPic){
ciObj["identityCardPic"]=obj.identityCardPic;
}
if(obj.businessLicensePdf){
ciObj["businessLicensePdf"]=obj.businessLicensePdf;
}
if(obj.identityCardPdf){
ciObj["identityCardPdf"]=obj.identityCardPdf;
}
await self.dao.update(ciObj,t);//修改申请人信息
var customerinfo2 = await self.dao.model.findOne({
where:{
id:customerinfo.id
},
raw:true
});
if(ordertmproduct.gzwtsUrl && customerinfo2.businessLicensePdf && (customerinfo2.customerType=="ent" || customerinfo2.identityCardPdf)){
// otpObj["deliveryStatus"]="dsh";
if(ordertmproduct.deliveryStatus=="dsccl"){
await self.ordertmproductSve.update({id:ordertmproduct.id,deliveryStatus:"dsh"},t);
}
await self.trademarkDao.model.update({officialType:"dsh"},{where:{deliveryOrderNo:deliveryOrderNo,app_id:app.id},transaction:t});
}
var logMsg = { sourceOrderNo: deliveryOrderNo, opContent: "修改订单信息", app_id: app.id , isShow: 1};
await self.orderflowDao.create(logMsg, t);
return system.getResultSuccess();
})
}
/**
* 修改交官文件
* @param {*} obj
* obj.deliveryOrderNo 交付单号,
* obj.gzwtsUrl 盖章委托书,
* obj.smwjUrl 说明文件,
* obj.identityCardPic 身份证图片,
* obj.businessLicensePic 营业执照图片,
* obj.identityCardPdf 身份证pdf,
* obj.businessLicensePdf 营业执照pdf,
* obj.user 用户数据
*/
async updateOfficial(obj){
var user = obj.user;
var app = obj.app;
if(!user || !user.id){
return system.getResultFail(-100, "未知用户");
}
if (!app || !app.id) {
return system.getResultFail(-100, "未知渠道");
}
var deliveryOrderNo = obj.deliveryOrderNo;
if(!deliveryOrderNo){
return system.getResultFail(-101, "deliveryOrderNo参数错误");
}
// 1.获取交付单信息
var ordertmproduct = await this.ordertmproductSve.dao.model.findOne({
where:{deliveryOrderNo:deliveryOrderNo,app_id:app.id},
raw:true
});
if(!ordertmproduct || !ordertmproduct.id){
return system.getResultFail(-102, "商标交付单不存在");
}
// 2.获取交付单状态,判断是否可修改
if(ordertmproduct.deliveryStatus=='ddj' || ordertmproduct.deliveryStatus=='ywc'){
var deliveryStatusName = "待递交";
if(ordertmproduct.deliveryStatus=='ywc'){
deliveryStatusName="已完成";
}
return system.getResultFail(-103, "该商标交付单状态为"+deliveryStatusName+",不能进行修改");
}
var customerinfo = await this.dao.model.findOne({
where:{
deliveryOrderNo:deliveryOrderNo,app_id:app.id
},
raw:true
});
if(!customerinfo || !customerinfo.id){
return system.getResultFail(-104, "未知申请人");
}
var self = this;
return await self.db.transaction(async function (t) {
var ciObj={ id:customerinfo.id,updateuser_id:user.id };
if(obj.businessLicensePic){
ciObj["businessLicensePic"]=obj.businessLicensePic;
}
if(obj.identityCardPic){
ciObj["identityCardPic"]=obj.identityCardPic;
}
if(obj.businessLicensePdf){
ciObj["businessLicensePdf"]=obj.businessLicensePdf;
}
if(obj.identityCardPdf){
ciObj["identityCardPdf"]=obj.identityCardPdf;
}
await self.dao.update(ciObj,t);//申请人信息 修改营业执照、身份证文件
var customerinfo2 = await self.dao.model.findOne({
where:{
id:customerinfo.id
},
raw:true
});
var otpObj={
id:ordertmproduct.id,
updateuser_id:user.id,
updateuser:user.nickname
};
if(obj.gzwtsUrl){
otpObj["gzwtsUrl"]=obj.gzwtsUrl;
}
if(obj.smwjUrl){
otpObj["smwjUrl"]=obj.smwjUrl;
}
if((ordertmproduct.gzwtsUrl || otpObj["gzwtsUrl"]) && customerinfo2.businessLicensePdf && (customerinfo2.customerType=="ent" || customerinfo2.identityCardPdf)){
if(ordertmproduct.deliveryStatus=="dsccl"){
otpObj["deliveryStatus"]="dsh";
}
await self.trademarkDao.model.update({officialType:"dsh"},{where:{deliveryOrderNo:deliveryOrderNo},transaction:t});
}
await self.ordertmproductSve.update(otpObj,t);//商标交付单 修改盖章委托书、说明文件
var logMsg = { sourceOrderNo: deliveryOrderNo, opContent: "修改订单信息", app_id: app.id, isShow: 1 };
await self.orderflowDao.create(logMsg, t);
return system.getResultSuccess();
})
}
}
module.exports=CustomerInfoService;
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
class OrderFlowService extends ServiceBase {
constructor() {
super("dborder", ServiceBase.getDaoName(OrderFlowService));
}
}
module.exports=OrderFlowService;
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
class ReceiptVoucherService extends ServiceBase {
constructor() {
super("dborder", ServiceBase.getDaoName(ReceiptVoucherService));
}
}
module.exports=ReceiptVoucherService;
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
class TmOfficialService extends ServiceBase {
constructor() {
super("dbtrademark", ServiceBase.getDaoName(TmOfficialService));
}
}
module.exports=TmOfficialService;
This source diff could not be displayed because it is too large. You can view the blob instead.
const system=require("../../../system");
var settings=require("../../../../config/settings");
class bigtmService {
constructor(){
this.GsbByTmSearchApi=system.getObject("api.tmquery.bytmsearch");
}
}
module.exports=bigtmService;
// var test = new TmqueryService();
// test.bigtmcompanyjuhe({status:3,tmreg_year:2018,seltype:1,apply_addr_province:""}).then(function(d){
// console.log("#################################");
// console.log(d);
// })
const system=require("../../../system");
var settings=require("../../../../config/settings");
class BytmmonitService {
constructor(){
}
}
module.exports=BytmmonitService;
// var test = new TmqueryService();
// test.bigtmcount({tmreg_year:2018,apply_addr_province:""}).then(function(d){
// console.log("#################################");
// console.log(d);
// })
const system = require("../../../system");
var settings = require("../../../../config/settings");
const crypto = require('crypto');
const cryptoJS = require("crypto-js");
var fs = require("fs");
// var AWS = require('aws-sdk');
var ak = "D0784B08541791E175B544D5317281B0";
var sk = "93AB12B3BFADB1356EC078D52B064A33";
var ossurl = "https://hangtang.s3.cn-north-1.jdcloud-oss.com";
class JdossService {
constructor() {
this.execClient = system.getObject("util.execClient");
}
async getJdOssConfig(app, opStr) {
var date = new Date();
var month = date.getMonth()+1;
month=month.toString();
if(month<10){
month="0"+month;
}
var day = date.getDate().toString();
if(day<10){
day="0"+day;
}
var time = date.getFullYear().toString()+month+day;
let timestamp = date.getTime();//当前的时间戳
timestamp = timestamp + 6 * 60 * 60 * 1000;
//格式化时间获取年月日
var dateAfter = new Date(timestamp);
var policyText = {
"expiration": dateAfter,
"conditions": [
{"bucket": "hangtang"},
["starts-with", "$key", "zc"],
{"Content-Type": "image/jpeg"},
{"X-Amz-Credential": ak+"/"+time+"/cn-north-1/s3/aws4_request"},
{"X-Amz-Algorithm": "AWS4-HMAC-SHA256"},
{"X-Amz-Date": date}
]
};
var b = new Buffer(JSON.stringify(policyText));
var policyBase64 = b.toString('base64');
var signature = crypto.createHmac('sha256', sk).update(policyBase64).digest("hex");
var data = {
"OSSAccessKeyId":ak,
"Bucket":"hangtang",
"Signature":signature,
"policy": policyBase64,
"success_action_status": 201,
"x-amz-algorithm":"AWS4-HMAC-SHA256",
"x-amz-credential":ak+"/"+time+"/cn-north-1/s3/aws4_request",
"x-amz-date":date,
"x-amz-signature":signature,
"url": ossurl
};
return system.getResultSuccess(data);
}
}
module.exports = JdossService;
const system = require("../../../system");
var settings = require("../../../../config/settings");
class TmqueryService {
constructor() {
this.zcApiUrl = settings.reqZcApi();
this.execClient = system.getObject("util.execClient");
}
async findTrademarkNameAccurate(queryobj, req) {//通过商标名来进行精准查询
var url = this.zcApiUrl + "api/trademark/tmqueryApi/findTrademarkNameAccurate";
return await this.opReqResult(url, queryobj, req);
}
async findTrademarkNameIndex(queryobj, req) {//根据商标名称模糊查询,首次查询,
var url = this.zcApiUrl + "api/trademark/tmqueryApi/findTrademarkNameIndex";
return await this.opReqResult(url, queryobj, req);
}
async findTrademarkName(queryobj, req) {//根据商标名称模糊查询
var url = this.zcApiUrl + "api/trademark/tmqueryApi/findTrademarkName";
return await this.opReqResult(url, queryobj, req);
}
async findTrademarkzchAccurate(queryobj, req) {//通过商标号来进行精准查询
var url = this.zcApiUrl + "api/trademark/tmqueryApi/findTrademarkzchAccurate";
return await this.opReqResult(url, queryobj, req);
}
async findTrademarkzcr(queryobj, req) {//通过注册人模糊查询
var url = this.zcApiUrl + "api/trademark/tmqueryApi/findTrademarkzcr";
return await this.opReqResult(url, queryobj, req);
}
async imagequery(queryobj, req) {//图像检索
var url = this.zcApiUrl + "api/trademark/tmqueryApi/imagequery";
return await this.opReqResult(url, queryobj, req);
}
async findImageSearch(queryobj, req) { //图像检索查询,
var url = this.zcApiUrl + "api/trademark/tmqueryApi/findImageSearch";
return await this.opReqResult(url, queryobj, req);
}
async tradeMarkDetail(queryobj, req) {//商标详情
var url = this.zcApiUrl + "api/trademark/tmqueryApi/tradeMarkDetail";
return await this.opReqResult(url, queryobj, req);
}
async sbzuixinsearch(queryobj, req) {
var url = this.zcApiUrl + "api/trademark/tmqueryApi/sbzuixinsearch";
return await this.opReqResult(url, queryobj, req);
}
async noticequeryTMZCSQ(queryobj, req) {
var url = this.zcApiUrl + "api/trademark/tmqueryApi/noticequeryTMZCSQ";
return await this.opReqResult(url, queryobj, req);
}
async noticequery(queryobj, req) {
var url = this.zcApiUrl + "api/trademark/tmqueryApi/noticequery";
return await this.opReqResult(url, queryobj, req);
}
async noticezcggsearch(queryobj, req) {
var url = this.zcApiUrl + "api/trademark/tmqueryApi/noticezcggsearch";
return await this.opReqResult(url, queryobj, req);
}
async noticesearch(queryobj, req) {
var url = this.zcApiUrl + "api/trademark/tmqueryApi/noticesearch";
return await this.opReqResult(url, queryobj, req);
}
async getCompanyInfoNoUser(queryobj, req) {
var url = this.zcApiUrl + "api/trademark/tmqueryApi/getCompanyInfoNoUser";
return await this.opReqResult(url, queryobj, req);
}
async getNclDetail(queryobj, req) {
var url = this.zcApiUrl + "api/trademark/tmqueryApi/getNclDetail";
return await this.opReqResult(url, queryobj, req);
}
async gettwoNcl(queryobj, req) {
var url = this.zcApiUrl + "api/trademark/tmqueryApi/gettwoNcl";
return await this.opReqResult(url, queryobj, req);
}
async nclFuwuSearch(queryobj, req) {
var url = this.zcApiUrl + "api/trademark/tmqueryApi/nclFuwuSearch";
return await this.opReqResult(url, queryobj, req);
}
async opReqResult(reqUrl, queryobj, req) {
var rtn = await this.execClient.execPushDataPost(queryobj, reqUrl, req.headers["token"], req.headers["request-id"]);
var data = JSON.parse(rtn.stdout);
return data;
}
}
module.exports = TmqueryService;
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';
var url = "https://gsb-zc.oss-cn-beijing.aliyuncs.com";
class ToolService {
constructor() {
this.zcApiUrl = settings.reqZcApi();
this.execClient = system.getObject("util.execClient");
}
async getCropperPic(obj, req) {
var url = this.zcApiUrl + "api/tool/toolApi/getCropperPic";
return await this.opReqResult(url, obj, req);
}
//智能分析 bycquerytm.html
async bycznfx(obj, req) {
var url = this.zcApiUrl + "api/tool/toolApi/bycznfx";
return await this.opReqResult(url, queryobj, req);
}
//根据尼斯编号获取尼斯子类,尼斯树节点点击时触发调用
async getNcl(queryobj, req) {
var url = this.zcApiUrl + "api/tool/toolApi/getNcl";
return await this.opReqResult(url, queryobj, req);
}
//根据大类、名称查询尼斯信息
async getNclByLikeNameAndNcl(queryobj, req) {
var url = this.zcApiUrl + "api/tool/toolApi/getNclByLikeNameAndNcl";
return await this.opReqResult(url, queryobj, req);
}
//文字转图片
async word2pic(queryobj, req) {
var url = this.zcApiUrl + "api/tool/toolApi/word2pic";
return await this.opReqResult(url, queryobj, req);
}
//商标样式转换 彩色商标图样转黑白,调整图样宽高,生成符合商标局规范的标准商标图样
async uploadStandardTm(queryobj, req) {
var url = this.zcApiUrl + "api/tool/toolApi/uploadStandardTm";
return await this.opReqResult(url, queryobj, req);
}
//营业执照(身份证明)图片文件转为符合商标局要求的pdf文件
async pic2pdf(queryobj, req) {
var url = this.zcApiUrl + "api/tool/toolApi/pic2pdf";
return await this.opReqResult(url, queryobj, req);
}
//企业近似查询
async getCompanyInfoByLikeName(queryobj, req) {
var url = this.zcApiUrl + "api/tool/toolApi/getCompanyInfoByLikeName";
return await this.opReqResult(url, queryobj, req);
}
//企业注册信息查询
async getEntregistryByCompanyName(queryobj, req) {
var url = this.zcApiUrl + "api/tool/toolApi/getEntregistryByCompanyName";
return await this.opReqResult(url, queryobj, req);
}
//调整委托书 调整委托书大小使其符合商标局规范
async adjustWTSSize(queryobj, req) {
var url = this.zcApiUrl + "api/tool/toolApi/adjustWTSSize";
return await this.opReqResult(url, queryobj, req);
}
//工商核名
async icheming(queryobj, req) {
var url = this.zcApiUrl + "api/trademark/tmqueryApi/icheming";
return await this.opReqResult(url, queryobj, req);
}
async opReqResult(reqUrl, queryobj, req) {
var rtn = await this.execClient.execPushDataPost(queryobj, reqUrl, req.headers["token"], req.headers["request-id"]);
var data = JSON.parse(rtn.stdout);
return data;
}
async getOssConfig(queryobj, req) {
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 system.getResultSuccess(data);
};
//加密信息
async encryptStr(app, opStr) {
if (!opStr) {
return system.getResult(null, "opStr is empty");
}
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) {
if (!opStr) {
return system.getResult(null, "opStr is empty");
}
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;
var System=require("../../../system");
var settings=require("../../../../config/settings");
const logCtl=System.getObject("web.common.oplogCtl");
//内容过滤查询
class UtilsTmService{
constructor(){
this.reqEsAddr=settings.reqEsAddr();
}
async getSynonymsList(obj,opName){
var result={
code: 1,
message: "success",
data: []
};
var name=obj.name==null||obj.name==""||obj.name=="undefined"?"":obj.name;
if(name==""){
result.code=-101;
result.message="name参数有误";
return result;
}
var reqUrl=this.reqEsAddr+"bigdata_synonyms_filter/_search";
var params ={
"query" : {
"term" : { "name" : name }
},
"from": 0,
"size": 200,
"_source": [
"name"
]
};
var tResult=await this.returnResult(params,reqUrl,opName,"getSynonymsList");
if(tResult.status!=0){
result.code=-200;
result.message="查询错误";
return result;
}
var tArry=[name];
if(tResult.data.length>0){
for (var i = 0; i < tResult.data.length; i++) {
var tmp=tResult.data[i];
if(tmp!=null && tmp!="" && tmp.name!=null && tmp.name!=""){
for (var j = 0; j < tmp.name.length; j++) {
var tmpName=tmp.name[j];
var indexLength=tArry.findIndex(v => v ===tmpName);
if(indexLength<0){
tArry.push(tmpName);
}
}
}
}
}
result.data=tArry;
return result;
}
async getSimilarList(obj,opName){
var result={
code: 1,
message: "success",
data: []
};
var name=obj.name==null||obj.name==""||obj.name=="undefined"?"":obj.name;
if(name==""){
result.code=-101;
result.message="name参数有误";
return result;
}
var reqUrl=this.reqEsAddr+"bigdata_similar_filter/_search";
var params ={
"query" : {
"term" : { "name" : name }
},
"from": 0,
"size": 200,
"_source": [
"name"
]
};
var tResult=await this.returnResult(params,reqUrl,opName,"getSimilarList");
if(tResult.status!=0){
result.code=-200;
result.message="查询错误";
return result;
}
var tArry=[name];
if(tResult.data.length>0){
for (var i = 0; i < tResult.data.length; i++) {
var tmp=tResult.data[i];
if(tmp!=null && tmp!="" && tmp.name!=null && tmp.name!=""){
for (var j = 0; j < tmp.name.length; j++) {
var tmpName=tmp.name[j];
var indexLength=tArry.findIndex(v => v ===tmpName);
if(indexLength<0){
tArry.push(tmpName);
}
}
}
}
}
result.data=tArry;
return result;
}
async returnResult(params,reqUrl,opClassName,opMethod){
var rc=System.getObject("util.execClient");
var rtn=null;
try{
rtn=await rc.execPost(params,reqUrl);
var j=JSON.parse(rtn.stdout);
if(j.status!=undefined){
//执行查询有错
//日志记录
logCtl.error({
optitle:"ES内容过滤查询opClassName="+opClassName+",opMethod="+opMethod+"ES执行异常error",
op:"base/service/impl/tmutilsSve.js",
content:rtn.stdout,
clientIp:""
});
return System.getResult2(null,null,null,"查询出错");
}
return System.getResult3(j.hits,null);
}catch(e){
//日志记录
logCtl.error({
optitle:"ES内容过滤查询opClassName="+opClassName+",opMethod="+opMethod+"操作异常异常error",
op:"base/service/impl/tmutilsSve.js",
content:e.stack,
clientIp:""
});
return System.getResult2(null,null,null,"查询异常");
}
}
}
module.exports=UtilsTmService;
var System = require("../../../system");
var settings = require("../../../../config/settings");
const logCtl = System.getObject("web.common.oplogCtl");
//商标查询操作
class UtilsTmTaskTradeService {
constructor() {
// this.tmFlowUrl = settings.apiconfig.tmFlowUrl();
// this.tmNclUrl = settings.apiconfig.tmNclUrl();
// this.nclUrl = settings.apiconfig.nclUrl();
this.tmSearchUrl = settings.apiconfig.tmSearchUrl();
this.opTmTransactionUrl = settings.apiconfig.opTmTransactionUrl();
this.tmTransactionUrl = settings.apiconfig.tmTransactionUrl();
this.trademarktransactionDao = System.getObject("db.trademarktransactionDao");
this.orderSve = System.getObject("service.orderSve");
}
async getAuditList(pageIndex, pageSize) {
//publish_status===:tm_transaction_publish_status": { "audit": "审核中", "fail": "审核不通过", "success": "审核通过", "uppershelf": "上架", "lowershelf": "下架" }
var whereObj = { publish_status: "audit" };
return this.trademarktransactionDao.getPageList(pageIndex, pageSize, whereObj, [["created_at", 'desc']], null);
}
buildDate(date) {
var date = new Date(date);
var time = Date.parse(date);
time = time / 1000;
return time;
}
convertDate(time) {//es时间戳转换时间
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 opAuditData() {
var self = this;
var rc = System.getObject("util.execClient");
var list = await self.getAuditList(1, 1000);
if (!list || list.rows.length == 0) {
return "no";
}
var codeList = [];
for (let i = 0; i < list.rows.length; i++) {
const codeItem = list.rows[i];
if (codeItem) {
codeList.push(codeItem.code);
}
if (codeList.length == 200) {
await self.opEsQuery(list.rows, codeList, self, rc);
codeList = [];
}
}
if (codeList.length > 0) {
await self.opEsQuery(list.rows, codeList, self, rc);
}
}
//订单付款提醒任务(针对未付款订单)
async orderPaymentReminder(){
return this.orderSve.orderPaymentReminder();
}
async opEsQuery(auditData, codeList, self, rc) {
var params = {
"query": {
"terms": {
"tm_regist_num": codeList
}
},
"from": 0,
"size": 500,
"_source": [
"pic_url",
"tm_name",
"tm_name_en",
"tm_regist_num",
"ncl_one_codes",
"applicant_cn",
"original_regist_notice_day",
"tm_end_day",
"ncl_two_codes",
"cn_count",
"en_name_count"
]
};
var esData = await self.returnResult(params, this.tmSearchUrl, "UtilsTmTaskTradeService", "opEsQuery");
if (esData.status == 0 && esData.data.length > 0) {
await self.addEsData(auditData, esData.data, self, rc);
}
}
async addEsData(auditData, esTmList, self, rc) {
var addDbList = [];
var rtn = null;
for (let b = 0; b < esTmList.length; b++) {
const esItem = esTmList[b];
var auditList = auditData.filter(a => a.code == esItem.tm_regist_num);
if (!auditList || auditList.length == 0) {
continue;
}
var params = {
created_at: self.buildDate(auditList[0].created_at),
tm_regist_num: esItem.tm_regist_num,
en_name: esItem.tm_name_en,
en_name_count: esItem.en_name_count,
en_name_standard: esItem.tm_name_en,
tm_name: esItem.tm_name,
tm_name_standard: esItem.tm_name,
tm_name_count: Number(esItem.cn_count || "0") + Number(esItem.en_name_count || "0"),
cn_count: esItem.cn_count,
pic_url: esItem.pic_url,
pic_url_user: auditList[0].pic_url || "",
is_transaction: 1,//--------------------db----是否可以交易
ncl_one_codes: esItem.ncl_one_codes,
platform_quoted_price: auditList[0].platform_quoted_price,
tm_heat: 0,
tm_introduction: auditList[0].tm_introduction,
};
try {
await self.putDbData(esItem, auditData, addDbList, self);
var esParams = {
"query": {
"bool": {
"must": [
{
"term": {
"ncl_one_codes": esItem.ncl_one_codes
}
},
{
"term": {
"tm_regist_num": esItem.tm_regist_num
}
}
]
}
},
"from": 0,
"size": 1,
"_source": [
"tm_name"
]
};
var queryEs = await self.returnResult(esParams, this.tmTransactionUrl, "UtilsTmTaskTradeService", "addEsData");
if (queryEs.status == 0 && queryEs.data && queryEs.data.length == 0) {
await rc.execPost(params, self.opTmTransactionUrl);
}
} catch (e) {
logCtl.error({
optitle: "往ES中插入数据或更新商标交易中的商标异常error",
op: "/igirl-web/app/base/service/impl/utilstmtasktradeSve.js/addEsData.js",
content: e.stack,
clientIp: ""
});
}
}
if (addDbList.length > 0) {
await this.trademarktransactionDao.model.bulkCreate(addDbList);
}
}
async putDbData(esItem, auditData, addDbList, self) {//更新数据库
var putIndex = auditData.findIndex(f => f.code === esItem.tm_regist_num);
if (putIndex < 0) {
return;
}
var filterTmList = auditData.filter(f => f.code === esItem.tm_regist_num && f.ncl_one_code === esItem.ncl_one_codes);
if (filterTmList && filterTmList.length > 0) {
var addParams = {
code: esItem.tm_regist_num,
ncl_one_code: esItem.ncl_one_codes,
name: esItem.tm_name,
excelName: esItem.tm_name,
tm_applier: esItem.applicant_cn,
tm_group: JSON.stringify(esItem.ncl_two_codes),
pic_url: auditData[putIndex].pic_url || esItem.pic_url,
business_quoted_price: auditData[putIndex].business_quoted_price,
platform_quoted_price: auditData[putIndex].platform_quoted_price,
tm_structure_name: auditData[putIndex].tm_structure_name,
tm_introduction: auditData[putIndex].tm_introduction,
publish_status: "uppershelf",
createcompany_id: auditList[0].createcompany_id,
createuser_id: auditList[0].createuser_id,
notes: "add_new",
};
if (esItem.original_regist_notice_day && esItem.original_regist_notice_day != null) {
addParams.tm_start_day = self.convertDate(esItem.original_regist_notice_day);
}
if (esItem.tm_end_day && esItem.tm_end_day != null) {
addParams.tm_end_day = self.convertDate(esItem.tm_end_day);
}
addDbList.push(addParams);
return;
}//大类是有值,则新增数据到db
auditData[putIndex].ncl_one_code = esItem.ncl_one_codes;
var setField = {
ncl_one_code: esItem.ncl_one_codes,
name: esItem.tm_name,
tm_applier: esItem.applicant_cn,
tm_group: JSON.stringify(esItem.ncl_two_codes),
pic_url: auditData[putIndex].pic_url || esItem.pic_url,
publish_status: "uppershelf"
};
if (esItem.original_regist_notice_day && esItem.original_regist_notice_day != null) {
setField.tm_start_day = self.convertDate(esItem.original_regist_notice_day);
}
if (esItem.tm_end_day && esItem.tm_end_day != null) {
setField.tm_end_day = self.convertDate(esItem.tm_end_day);
}
var sqlWhere = { where: { id: auditData[putIndex].id } };
var tmpR = await self.trademarktransactionDao.updateByWhere(setField, sqlWhere);
return;
}
async returnResult(params, reqUrl, opClassName, opMethod) {
var rc = System.getObject("util.execClient");
var rtn = null;
try {
rtn = await rc.execPost(params, reqUrl);
var j = JSON.parse(rtn.stdout);
if (j.status != undefined) {
//执行查询有错
//日志记录
logCtl.error({
optitle: "商标交易ES查询商标信息opClassName=" + opClassName + ",opMethod=" + opMethod + "ES执行异常error",
op: "base/service/impl/tmutilsSve.js",
content: rtn.stdout,
clientIp: ""
});
return System.getResult2(null, null, null, "查询出错");
}
return System.getResult3(j.hits, null);
} catch (e) {
//日志记录
logCtl.error({
optitle: "ES查询商标信息opClassName=" + opClassName + ",opMethod=" + opMethod + "操作异常异常error",
op: "base/service/impl/tmutilsSve.js",
content: e.stack,
clientIp: ""
});
return System.getResult2(null, null, null, "查询异常");
}
}
}
module.exports = UtilsTmTaskTradeService;
...@@ -10,7 +10,6 @@ class OpPlatformUtils { ...@@ -10,7 +10,6 @@ class OpPlatformUtils {
this.fetchDefaultVCodeUrl = settings.paasUrl() + "api/auth/accessAuth/fetchDefaultVCode"; this.fetchDefaultVCodeUrl = settings.paasUrl() + "api/auth/accessAuth/fetchDefaultVCode";
this.loginUrl = settings.paasUrl() + "api/auth/accessAuth/loginByMd5Password"; this.loginUrl = settings.paasUrl() + "api/auth/accessAuth/loginByMd5Password";
this.authByCodeUrl = settings.paasUrl() + "api/auth/accessAuth/authByCode"; this.authByCodeUrl = settings.paasUrl() + "api/auth/accessAuth/authByCode";
this.exTime = 2 * 3600;//缓存过期时间,2小时
} }
getUUID() { getUUID() {
var uuid = uuidv4(); var uuid = uuidv4();
...@@ -21,9 +20,9 @@ class OpPlatformUtils { ...@@ -21,9 +20,9 @@ class OpPlatformUtils {
var cacheManager = system.getObject("db.common.cacheManager"); var cacheManager = system.getObject("db.common.cacheManager");
var reqApiAccessKey = null; var reqApiAccessKey = null;
if (appKey && secret) { if (appKey && secret) {
reqApiAccessKey = await cacheManager["ApiAccessKeyCache"].cache(appKey, null, this.exTime, secret); reqApiAccessKey = await cacheManager["ApiAccessKeyCache"].cache(appKey, null, system.exTime, secret);
} else { } else {
reqApiAccessKey = await cacheManager["ApiAccessKeyCache"].cache(settings.appKey, null, this.exTime); reqApiAccessKey = await cacheManager["ApiAccessKeyCache"].cache(settings.appKey, null, system.exTime);
} }
if (!reqApiAccessKey || !reqApiAccessKey.data) { if (!reqApiAccessKey || !reqApiAccessKey.data) {
return system.getResult(null, "获取请求token失败"); return system.getResult(null, "获取请求token失败");
...@@ -151,6 +150,25 @@ class OpPlatformUtils { ...@@ -151,6 +150,25 @@ class OpPlatformUtils {
} }
return system.getResultSuccess(restResult.data); return system.getResultSuccess(restResult.data);
} }
//-----新的方式
async getReqTokenByHosts(app_hosts) {
if (!app_hosts) {
return system.getResult(null, "app_hosts can not be empty");
}
var cacheManager = system.getObject("db.common.cacheManager");
var result = await cacheManager["AppTokenByHostsCache"].cache(app_hosts, null, system.exTime);
return result;
}
async getReqUserPinByChannelUserId(actionBody) {
if (!actionBody.channelUserId) {
return system.getResult(null, "actionBody.channelUserId can not be empty");
}
var inputkey = actionBody.appInfo.uapp_key + "_" + actionBody.channelUserId;
var cacheManager = system.getObject("db.common.cacheManager");
var result = await cacheManager["AppUserPinByChannelUserIdCache"].cache(inputkey, actionBody, system.exTime);
return result;
}
} }
module.exports = OpPlatformUtils; module.exports = OpPlatformUtils;
...@@ -4,7 +4,7 @@ const md5 = require("MD5"); ...@@ -4,7 +4,7 @@ const md5 = require("MD5");
class PushUtils { class PushUtils {
constructor() { constructor() {
this.logCtl = system.getObject("web.common.oplogCtl"); this.logCtl = system.getObject("service.common.oplogSve");
this.merchantpushlogSve = system.getObject("service.merchant.merchantpushlogSve"); this.merchantpushlogSve = system.getObject("service.merchant.merchantpushlogSve");
this.execClient = system.getObject("util.execClient"); this.execClient = system.getObject("util.execClient");
this.merchantpushSve = system.getObject("service.merchant.merchantpushSve"); this.merchantpushSve = system.getObject("service.merchant.merchantpushSve");
......
...@@ -3,7 +3,6 @@ const redis = require("redis"); ...@@ -3,7 +3,6 @@ const redis = require("redis");
const settings = require("../../config/settings"); const settings = require("../../config/settings");
const bluebird = require("bluebird"); const bluebird = require("bluebird");
bluebird.promisifyAll(redis); bluebird.promisifyAll(redis);
// const logCtl=system.getObject("web.oplogCtl");
class RedisClient { class RedisClient {
constructor() { constructor() {
const redisConfig = settings.redis(); const redisConfig = settings.redis();
...@@ -87,49 +86,49 @@ class RedisClient { ...@@ -87,49 +86,49 @@ class RedisClient {
this.subclient.on("message", async function (channel, message) { this.subclient.on("message", async function (channel, message) {
console.log(channel, '------------- redis message ------------------- '); console.log(channel, '------------- redis message ------------------- ');
if (self.taskmanager) { // if (self.taskmanager) {
if (channel == "task") { // if (channel == "task") {
if (message == "newtask") { // if (message == "newtask") {
(async (that) => { // (async (that) => {
var msg2 = await that.rpop("tasklist"); // var msg2 = await that.rpop("tasklist");
if (msg2) { // if (msg2) {
console.log("taskName+++++" + msg2); // console.log("taskName+++++" + msg2);
var msgs2 = msg2.split("_"); // var msgs2 = msg2.split("_");
var action = msgs2[0]; // var action = msgs2[0];
var taskName = msgs2[1]; // var taskName = msgs2[1];
var exp = msgs2[2]; // var exp = msgs2[2];
await that.taskmanager.addTask(taskName, exp); // await that.taskmanager.addTask(taskName, exp);
} // }
})(self) // })(self)
} else { // } else {
(async (msg, that) => { // (async (msg, that) => {
var msgs = msg.split("_"); // var msgs = msg.split("_");
var action = msgs[0]; // var action = msgs[0];
if (action == "delete") { // if (action == "delete") {
var taskName = msgs[1]; // var taskName = msgs[1];
await that.taskmanager.deleteTask(taskName); // await that.taskmanager.deleteTask(taskName);
} // }
})(message, self); // })(message, self);
} // }
} // }
} // }
if (self.chatserver) { // if (self.chatserver) {
if (channel != "task") { // if (channel != "task") {
var message = JSON.parse(message); // var message = JSON.parse(message);
console.log(message, "------------------------------------------ publish message"); // console.log(message, "------------------------------------------ publish message");
if (channel == "brc") {//如果是广播频道,则发送广播到客户端 // if (channel == "brc") {//如果是广播频道,则发送广播到客户端
self.chatserver.server.emit("brc", message); // self.chatserver.server.emit("brc", message);
} else if (self.chatserver.users[channel]) { // } else if (self.chatserver.users[channel]) {
if (message.type) { // if (message.type) {
self.chatserver.users[channel].client.emit(message.type, message.data); // self.chatserver.users[channel].client.emit(message.type, message.data);
} else { // } else {
//持久化 // //持久化
self.chatserver.users[channel].client.emit("chatmsg", message); // self.chatserver.users[channel].client.emit("chatmsg", message);
} // }
} // }
} // }
} // }
}); });
} }
async subscribe(channel, chatserver) { async subscribe(channel, chatserver) {
...@@ -244,6 +243,11 @@ class RedisClient { ...@@ -244,6 +243,11 @@ class RedisClient {
async incr(key) { async incr(key) {
return this.client.incrAsync(key); return this.client.incrAsync(key);
} }
async producerMessage(channel, consumetarget, val) {
await this.client.rpush(consumetarget, val);
console.log("publish--" + channel + ":" + consumetarget);
return this.client.publishAsync(channel, consumetarget);
}
} }
module.exports = RedisClient; module.exports = RedisClient;
// var client=new RedisClient(); // var client=new RedisClient();
......
...@@ -11,7 +11,7 @@ var errorHandler = require('errorhandler'); ...@@ -11,7 +11,7 @@ var errorHandler = require('errorhandler');
var settings = require('./settings'); var settings = require('./settings');
var system = require('../base/system'); var system = require('../base/system');
var routes = require('./routes'); var routes = require('./routes');
const logCtl = system.getObject("web.common.oplogCtl"); const logCtl = system.getObject("service.common.oplogSve");
const clientRedis = system.getObject("util.redisClient").client; const clientRedis = system.getObject("util.redisClient").client;
//const tm=system.getObject("db.taskManager"); //const tm=system.getObject("db.taskManager");
module.exports = function (app) { module.exports = function (app) {
......
...@@ -3,7 +3,7 @@ var settings={ ...@@ -3,7 +3,7 @@ var settings={
host: "43.247.184.32", host: "43.247.184.32",
port: 8967, port: 8967,
password: "Gongsibao2018", password: "Gongsibao2018",
db:8, db:7,
}, },
database:{ database:{
dbname : "center_app", dbname : "center_app",
......
var path= require('path'); var path= require('path');
var basepath=path.normalize(path.join(__dirname, '../..')); var basepath=path.normalize(path.join(__dirname, '../..'));
var settings = { var settings = {
web:path.join(basepath,"app/base/controller/impl"),
api:path.join(basepath,"app/base/api/impl"), api:path.join(basepath,"app/base/api/impl"),
util:path.join(basepath,"app/base/utils"), util:path.join(basepath,"app/base/utils"),
service:path.join(basepath,"app/base/service/impl"), service:path.join(basepath,"app/base/service/impl"),
db:path.join(basepath,"app/base/db/impl"), db:path.join(basepath,"app/base/db/impl"),
tool:path.join(basepath,"app/base/tool"), tool:path.join(basepath,"app/base/tool"),
service2:path.join(basepath,"app/base/service"), service2:path.join(basepath,"app/base/service"),
applet:path.join(basepath,"app/base/wxapplet/impl"),
}; };
module.exports = settings; module.exports = settings;
...@@ -2,17 +2,10 @@ ...@@ -2,17 +2,10 @@
var system = require("../../base/system"); var system = require("../../base/system");
// var userSve = system.getObject("service.auth.userSve"); // var userSve = system.getObject("service.auth.userSve");
module.exports = function (app) { module.exports = function (app) {
// app.get("/auth", async function (req, res) {
// if (!req.query.opencode) {
// return system.getResult(null, "opencode参数不能为空");
// }
// return await userSve.authByCode(opencode);
// });
app.get('/:gname/:qname/:method', function (req, res) { app.get('/:gname/:qname/:method', function (req, res) {
var classPath = req.params["qname"]; var classPath = req.params["qname"];
var methodName = req.params["method"]; var methodName = req.params["method"];
var gname = req.params["gname"]; var gname = req.params["gname"];
classPath = gname + "." + classPath; classPath = gname + "." + classPath;
var tClientIp = system.get_client_ip(req); var tClientIp = system.get_client_ip(req);
req.clientIp = tClientIp; req.clientIp = tClientIp;
...@@ -60,56 +53,4 @@ module.exports = function (app) { ...@@ -60,56 +53,4 @@ module.exports = function (app) {
res.end(JSON.stringify(r)); res.end(JSON.stringify(r));
}); });
}); });
// app.get('/api/:gname/:qname/:method', function (req, res) {
// var classPath = req.params["qname"];
// var methodName = req.params["method"];
// var gname = req.params["gname"];
// classPath = gname + "." + classPath;
// var tClientIp = system.get_client_ip(req);
// req.clientIp = tClientIp;
// req.uagent = req.headers["user-agent"];
// req.classname = classPath;
// var params = [];
// params.push(gname);
// params.push(methodName);
// params.push(req.body);
// params.push(req.query);
// params.push(req);
// var p = null;
// var invokeObj = system.getObject("api." + classPath);
// if (invokeObj["doexec"]) {
// p = invokeObj["doexec"].apply(invokeObj, params);
// }
// p.then(r => {
// res.end(JSON.stringify(r));
// });
// });
// app.post('/api/:gname/:qname/:method', function (req, res) {
// var classPath = req.params["qname"];
// var methodName = req.params["method"];
// var gname = req.params["gname"];
// var params = [];
// classPath = gname + "." + classPath;
// var tClientIp = system.get_client_ip(req);
// req.clientIp = tClientIp;
// req.uagent = req.headers["user-agent"];
// req.classname = classPath;
// params.push(gname);
// params.push(methodName);
// params.push(req.query);
// params.push(req.body);
// params.push(req);
// var p = null;
// var invokeObj = system.getObject("api." + classPath);
// if (invokeObj["doexec"]) {
// p = invokeObj["doexec"].apply(invokeObj, params);
// }
// p.then(r => {
// res.end(JSON.stringify(r));
// });
// });
}; };
var url = require("url");
var system = require("../../base/system");
var fs = require('fs');
var marked = require("marked");
module.exports = function (app) {
app.get('/doc', function (req, res) {
var path = process.cwd() + "/app/front/entry/public/apidoc/README.md";
fs.readFile(path, function(err, data){
if(err){
console.log(err);
res.send("文件不存在!");
} else{
console.log(data);
str = marked(data.toString());
res.render('apidoc',{str});
}
});
});
app.get('/doc/:forder', function (req, res) {
var path = process.cwd() + "/app/front/entry/public/apidoc/README.md";
fs.readFile(path, function(err, data){
if(err){
console.log(err);
res.send("文件不存在!");
} else{
console.log(data);
str = marked(data.toString());
res.render('apidoc',{str});
}
});
});
app.get('/doc/api/:forder/:fileName', function (req, res) {
var forder = req.params["forder"];
var fileName = req.params["fileName"] || "README.md";
var path = process.cwd() + "/app/front/entry/public/apidoc";
if(forder) {
path = path + "/" + forder + "/" + fileName;
} else {
path = path + "/" + fileName;
}
fs.readFile(path, function(err, data){
if(err){
console.log(err);
res.send("文件不存在!");
} else{
console.log(data);
str = marked(data.toString());
console.log(str);
res.render('apidoc',{str});
}
});
});
};
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