Commit 11a7a065 by 王栋源

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

parents fc15badb e08a9709
#!/bin/bash #!/bin/bash
FROM registry.cn-beijing.aliyuncs.com/hantang/node105:v2 FROM registry.cn-beijing.aliyuncs.com/hantang2/node105:v2
MAINTAINER jy "jiangyong@gongsibao.com" MAINTAINER jy "jiangyong@gongsibao.com"
ADD igirl-channel /apps/igirl-channel/ ADD igirl-channel /apps/igirl-channel/
WORKDIR /apps/igirl-channel/ WORKDIR /apps/igirl-channel/
......
...@@ -8,6 +8,7 @@ class APIBase { ...@@ -8,6 +8,7 @@ class APIBase {
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("web.common.oplogCtl");
this.oplogSve = 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,6 +61,7 @@ class APIBase { ...@@ -60,6 +61,7 @@ class APIBase {
var fullname = gname + "." + methodname; var fullname = gname + "." + methodname;
var lst = [ var lst = [
"test.test", "test.test",
"testApiT.test",
"auth.getToken", "auth.getToken",
"auth.getJdSign" "auth.getJdSign"
]; ];
...@@ -93,12 +95,12 @@ class APIBase { ...@@ -93,12 +95,12 @@ class APIBase {
// return system.getResultFail(system.signFail, signResult.msg); // return system.getResultFail(system.signFail, signResult.msg);
// } // }
if (pobj.isUser && pobj.isUser == "yes") { if (pobj.isUser && pobj.isUser == "yes") {
var channelUserId = pobj.actionBody.channelUserId || ""; var channelUserId = pobj.channelUserId ? pobj.channelUserId : pobj.actionBody.channelUserId || "";
if (!channelUserId && pobj.actionBody.channelUser) { if (!channelUserId && pobj.actionBody.channelUser) {
channelUserId = pobj.actionBody.channelUser.channelUserId; channelUserId = pobj.actionBody.channelUser.channelUserId;
} }
if (!channelUserId) { if (!channelUserId) {
return system.getResult(null, "base verify channelUserId is not empty"); return system.getResult(null, "base verify channelUserId is empty");
} }
var userCacheKey = selfAppInfo.data.uappKey + "_" + channelUserId; var userCacheKey = selfAppInfo.data.uappKey + "_" + channelUserId;
var userInfo = await this.cacheManager["ApiUserCache"].cache(userCacheKey, channelUserId, var userInfo = await this.cacheManager["ApiUserCache"].cache(userCacheKey, channelUserId,
...@@ -121,12 +123,28 @@ class APIBase { ...@@ -121,12 +123,28 @@ class APIBase {
req.headers["request-id"] = requestid; req.headers["request-id"] = requestid;
} }
try { try {
if (pobj.actionType == "createChannelUser") {
if (!pobj.isUser) {
system.getResult(null, "isUser is empty");
}
if (pobj.isUser != "yes") {
system.getResult(null, "isUser value must yes");
}
}
//验证accesskey或验签 //验证accesskey或验签
var isPassResult = await this.checkAcck(gname, methodname, pobj, query, req); var isPassResult = await this.checkAcck(gname, methodname, pobj, query, req);
if (isPassResult.status != 0) { if (isPassResult.status != 0) {
isPassResult.requestId = ""; isPassResult.requestId = "";
return isPassResult; 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; req.requestId = requestid;
var rtn = await this[methodname](pobj, query, req); var rtn = await this[methodname](pobj, query, req);
if (rtn && !rtn.requestId) { if (rtn && !rtn.requestId) {
......
...@@ -51,14 +51,31 @@ class TmOrderAPI extends APIBase { ...@@ -51,14 +51,31 @@ class TmOrderAPI extends APIBase {
// action_body.user = { id: 6, app_id: 2, nickname: "测试用户",channelUserId:"testUserId01" }; // action_body.user = { id: 6, app_id: 2, nickname: "测试用户",channelUserId:"testUserId01" };
var opResult = null; var opResult = null;
if (["subTmOrder", "getTmOrderList", "getTmOrderInfo", "getTmApplyInfo", "getTmNclList", "getNeedInfo", if (["subTmOrder", "getTmOrderList", "getTmOrderInfo", "getTmApplyInfo", "getTmNclList", "getNeedInfo",
"tmConfirm", "updateTmInfo", "updateNclInfo", "updateContacts", "updateCustomerInfo", "tmConfirm", "updateTmInfo", "updateNclInfo", "updateContacts",
"updateCustomerInfo"].indexOf(action_type) >= 0) { "updateCustomerInfo", "addOrderAndDelivery", "updateOrderPayStatus"].indexOf(action_type) >= 0) {
if (!action_body.channelUserId) { if (!action_body.channelUserId) {
return system.getResult(null, "verify channelUserId is not empty"); return system.getResult(null, "verify channelUserId is empty");
} }
} }
switch (action_type) { switch (action_type) {
// sy // sy
case "againPushFqBusiness"://再次推送商机
opResult = await this.orderSve.againPushFqBusiness(pobj, req);
break;
case "updateOrderStatus"://更新订单状态
opResult = await this.orderSve.updateOrderStatus(action_body, pobj, req);
break;
case "updateOrderPayStatus"://更新订单付款状态
opResult = await this.orderSve.updateOrderPayStatus(action_body, pobj, req);
if (opResult.status == 0) {
pobj.actionBody["deliveryOrderNo"] = opResult.data.deliveryOrderNo;
var url = this.pushFqbossDataUrl + "api/channelaccessApi/updateChannelPayStatus";
await this.pushData2(opResult, req, pobj, url);
}
break;
case "addOrderAndDelivery"://创建订单和交付单
opResult = await this.orderSve.addOrderAndDelivery(action_body, pobj, req);
break;
case "clearAllCache": case "clearAllCache":
await this.cacheManager["MagCache"].clearAll(); await this.cacheManager["MagCache"].clearAll();
opResult = system.getResultSuccess(null, "清理缓存成功"); opResult = system.getResultSuccess(null, "清理缓存成功");
...@@ -102,6 +119,7 @@ class TmOrderAPI extends APIBase { ...@@ -102,6 +119,7 @@ class TmOrderAPI extends APIBase {
} }
} }
pobj.actionBody["deliveryOrderNo"] = opResult.data.deliveryOrderNo; pobj.actionBody["deliveryOrderNo"] = opResult.data.deliveryOrderNo;
pobj.actionBody["itemCode"] = opResult.data.channelItemCode;
// await this.pushData(opResult, req, pobj); // await this.pushData(opResult, req, pobj);
var url = this.pushFqbossDataUrl + "api/channelaccessApi/createChannelOrder" var url = this.pushFqbossDataUrl + "api/channelaccessApi/createChannelOrder"
await this.pushData2(opResult, req, pobj, url); await this.pushData2(opResult, req, pobj, url);
...@@ -121,13 +139,18 @@ class TmOrderAPI extends APIBase { ...@@ -121,13 +139,18 @@ class TmOrderAPI extends APIBase {
} }
} }
pobj.actionBody["deliveryOrderNo"] = opResult.data.deliveryOrderNo; pobj.actionBody["deliveryOrderNo"] = opResult.data.deliveryOrderNo;
pobj.actionBody["itemCode"] = opResult.data.channelItemCode;
// await this.pushData(opResult, req, pobj); // await this.pushData(opResult, req, pobj);
var url = this.pushFqbossDataUrl + "api/channelaccessApi/createChannelOrder" var url = this.pushFqbossDataUrl + "api/channelaccessApi/createChannelOrder"
await this.pushData2(opResult, req, pobj, url); await this.pushData2(opResult, req, pobj, url);
} }
break; break;
case "getTmOrderList"://商标交付列表 case "getTmOrderList"://商标交付列表
opResult = await this.ordertmproductSve.getTmOrderList(action_body, req); opResult = await this.ordertmproductSve.getTmOrderList(action_body, pobj, req);
break;
case "getTmOrderListAdmin"://商标交付列表
action_body.getListType = "getTmOrderListAdmin";
opResult = await this.ordertmproductSve.getTmOrderList(action_body, pobj, req);
break; break;
case "getTmOrderInfo"://商标交付信息 case "getTmOrderInfo"://商标交付信息
opResult = await this.ordertmproductSve.getTmOrder(action_body); opResult = await this.ordertmproductSve.getTmOrder(action_body);
...@@ -186,7 +209,7 @@ class TmOrderAPI extends APIBase { ...@@ -186,7 +209,7 @@ class TmOrderAPI extends APIBase {
} }
break; break;
case "pushFqBusiness"://推送商机到峰擎 case "pushFqBusiness"://推送商机到峰擎
opResult = await this.orderSve.pushFqBusiness(action_body, pobj, req); opResult = await this.orderSve.push1688FqBusiness(action_body, pobj, req);
break; break;
case "getProductDetail"://根据渠道产品码获取产品详情 case "getProductDetail"://根据渠道产品码获取产品详情
opResult = await this.appProductSve.findByChannelItemCode(action_body); opResult = await this.appProductSve.findByChannelItemCode(action_body);
...@@ -237,8 +260,12 @@ class TmOrderAPI extends APIBase { ...@@ -237,8 +260,12 @@ class TmOrderAPI extends APIBase {
var rc = system.getObject("util.execClient"); var rc = system.getObject("util.execClient");
var obj = pobj.actionBody; var obj = pobj.actionBody;
var user = obj.user; var user = obj.user;
if (obj.app) {
obj.app = null;
}
obj["channelUserId"] = obj.channelUserId; obj["channelUserId"] = obj.channelUserId;
obj["channelCode"] = pobj.actionProcess; obj["channelCode"] = pobj.actionProcess;
obj["appid"] = "2e787bbaacda4c6488b9fae58fff30ba";
var rtn = null; var rtn = null;
try { try {
var requestId = opResult.requestId || req.requestId; var requestId = opResult.requestId || req.requestId;
......
var APIBase = require("../../api.base"); var APIBase = require("../../api.base");
var system = require("../../../system"); var system = require("../../../system");
const { Signer, Context } = require('jdcloud-sdk-signer')
class jdAuthAPI extends APIBase { class jdAuthAPI extends APIBase {
constructor() { constructor() {
super(); super();
...@@ -17,78 +16,5 @@ class jdAuthAPI extends APIBase { ...@@ -17,78 +16,5 @@ class jdAuthAPI extends APIBase {
console.log("qobj......payOrderInfo..........:\n", qobj); console.log("qobj......payOrderInfo..........:\n", qobj);
return { payOrderInfo: "ok" }; return { payOrderInfo: "ok" };
} }
async getJdSign(pobj, qobj, req) {
try {
let ctx = new Context('x3k0s704lfun-test.cn-north-1.jdcloud-api.net', '/market/order/order-inner/submit', 'POST', null, 'empty');
ctx.regionId = 'cn-north-1'
ctx.headers.set('content-type', 'text/plain')
let credentials = {
accessKeyId: 'C6D680733C19362B5DF478207D6A90A4', //替换自己的AK
secretAccessKey: 'EB9AFEE49CE41700CADD5F2EE3B2122C' //替换自己的SK--jd>>>>>>>
}
//测试报文:
//GET
// ctx.body = "pin=jcloud_pRiHQTd&serviceId=580010&itemCode=FW_GOODS-580010-1&platform=6"
//POST
var qs = require('querystring');
var post_data = { pin="jcloud_pRiHQTd", serviceId=580010, itemCode="FW_GOODS-580010-1", platform=6 };//这是需要提交的数据
var tmpContent = JSON.stringify(post_data);
var content = qs.stringify(post_data);
ctx.body = content;
ctx.method = 'POST'
var signer = new Signer(ctx, credentials)
var dd = new Date()
ctx.headers.set('Content-Length', ctx.body.length)
ctx.buildNonce()
var auth = signer.sign(dd);
console.log("POST签名为:", auth)
ctx.headers.set('Authorization', auth)
////////////////////////////////////////////////////////////////////////////////////////////////////////////
var http = require('https');
// var content = ctx.body;
var options = {
host: 'x3k0s704lfun-test.cn-north-1.jdcloud-api.net',
port: 443,
path: '/market/order/order-inner/submit',
method: 'POST',
headers: {
}
};
for (let [key, value] of ctx.headers) {
options.headers[key] = value
}
console.log("post options:\n", options);
//console.log("content:",content);
//console.log("\n");
var req = http.request(options, function (res) {
console.log("--jd>>>>>>>>>>>>>statusCode: ", res.statusCode);
console.log("--jd>>>>>>>>>>>>>headers: ", res.headers);
var _data = '';
res.on('data', function (chunk) {
_data += chunk;
});
res.on('end', function () {
console.log("\n---jd>>>>>>>>>>>>>.>>\nresult:", _data)
});
});
req.on('error', (e) => {
console.error(`--jd>>>>>>>>>>>>>请求遇到问题: ${e.message}`);
});
req.write(content);
req.end();
} catch (errorMsg) {
console.log(errorMsg, "--jd>>>>>>>errorMsg..............................>>>>>>");
}
}
} }
module.exports = jdAuthAPI; module.exports = jdAuthAPI;
\ No newline at end of file
var APIBase = require("../../api.base");
var system = require("../../../system");
var moment = require("moment");
class TestAPI extends APIBase {
constructor() {
super();
this.orderSve = system.getObject("service.dborder.orderSve");
}
async test(pobj, query, req) {
// var rc = system.getObject("util.aliyunClient");
// var param = pobj;
// try {
// var body = {
// idempotentId: "fzsbzc",// 是 业务 ID
// idempotentSource: param.appSourceCode || "tm_1688",// 是 业务来源(ali、jd)
// idempotentSourceName: param.name || "1688应用",// 是 阿里,京东
// city: "",// 否 所属城市
// phone:"15010929366",// 是 手机号
// userId: "channelUserIdtest01",// 否 用户 ID
// companyName: "",// 否 公司名称
// orderPrice: 899,// 是 订单金额
// productId: "5dc936eb296d1572b9bc5b8d",// 是 产品 ID
// productQuantity: 1,// 是 产品数量
// };
// var submitTm = await rc.post("https://yunfuapi.gongsibao.com/crm/order/submit", body);
// return { code: 200, message: "ok", data: submitTm };
// } catch (e) {
// //日志记录
// logCtl.error({
// optitle: "查询阿里商标状态异常---error",
// op: "base/api/impl/tmsub/queryAliTmStatus",
// content: e.stack,
// clientIp: ""
// });
// }
var body = { channelItemCode: "1329709" };
returnRuslt={
"returnValue": [
{
"bizStatusExt": "service",
"memberId": "b2b-****02",
"productName": "商机**",
"gmtCreate": "20171231200252000+0800",
"gmtServiceEnd": "20190101000000000+0800",
"bizStatus": "S",
"paymentAmount": 420,
"executePrice": 420,
"orderItemNum": "W1712*****_1",
"gmtServiceBegin": "20171231000000000+0800",
"gmtConfirm": "20171231200329000+0800",
"settleItemDtos": [
],
"payCustomerUid": "12345678990000",
"signCustomerUid": "12345678990000"
}
],
"successed": true
};
var tmpreq={app:};
this.orderSve.addOrderNeed()
return system.getResultSuccess({ req: "ok" });
}
}
module.exports = TestAPI;
\ No newline at end of file
...@@ -9,6 +9,11 @@ class Dao { ...@@ -9,6 +9,11 @@ class Dao {
preCreate(u) { preCreate(u) {
return u; return u;
} }
/**
*
* @param {*} u 对象
* @param {*} t 事务对象t
*/
async create(u, t) { async create(u, t) {
var u2 = this.preCreate(u); var u2 = this.preCreate(u);
if (t) { if (t) {
...@@ -64,7 +69,7 @@ class Dao { ...@@ -64,7 +69,7 @@ class Dao {
//return {"key":"include","value":{model:this.db.models.app}}; //return {"key":"include","value":{model:this.db.models.app}};
return [["created_at", "DESC"]]; return [["created_at", "DESC"]];
} }
buildAttributes(){ buildAttributes() {
return []; return [];
} }
buildQuery(qobj) { buildQuery(qobj) {
...@@ -127,8 +132,8 @@ class Dao { ...@@ -127,8 +132,8 @@ class Dao {
qc[extraFilter.key] = extraFilter.value; qc[extraFilter.key] = extraFilter.value;
} }
var attributesObj = this.buildAttributes(); var attributesObj = this.buildAttributes();
if(attributesObj && attributesObj.length>0){ if (attributesObj && attributesObj.length > 0) {
qc.attributes=attributesObj; qc.attributes = attributesObj;
} }
console.log("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm"); console.log("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm");
console.log(qc); console.log(qc);
......
...@@ -16,7 +16,9 @@ class AppProductDao extends Dao { ...@@ -16,7 +16,9 @@ class AppProductDao extends Dao {
"itemName", // 产品名称 "itemName", // 产品名称
"picUrl", // 产品图片地址 "picUrl", // 产品图片地址
"channelItemCode", // 渠道产品编码 "channelItemCode", // 渠道产品编码
"channelItemName", // 渠道产品名称 "channelItemName", // 渠道产品名称
"serviceItemCode",
"pushServiceItemCode",
"status", // 状态 0禁用 1启用 "status", // 状态 0禁用 1启用
"verifyPrice", // 是否验证价格 0不验证 1验证 "verifyPrice", // 是否验证价格 0不验证 1验证
"proPrice", // 产品价格 "proPrice", // 产品价格
...@@ -43,7 +45,9 @@ class AppProductDao extends Dao { ...@@ -43,7 +45,9 @@ class AppProductDao extends Dao {
"itemName", // 产品名称 "itemName", // 产品名称
"picUrl", // 产品图片地址 "picUrl", // 产品图片地址
"channelItemCode", // 渠道产品编码 "channelItemCode", // 渠道产品编码
"channelItemName", // 渠道产品名称 "channelItemName", // 渠道产品名称
"serviceItemCode",
"pushServiceItemCode",
"status", // 状态 0禁用 1启用 "status", // 状态 0禁用 1启用
"verifyPrice", // 是否验证价格 0不验证 1验证 "verifyPrice", // 是否验证价格 0不验证 1验证
"proPrice", // 产品价格 "proPrice", // 产品价格
...@@ -71,7 +75,8 @@ class AppProductDao extends Dao { ...@@ -71,7 +75,8 @@ class AppProductDao extends Dao {
"picUrl", // 产品图片地址 "picUrl", // 产品图片地址
"channelItemCode", // 渠道产品编码 "channelItemCode", // 渠道产品编码
"channelItemName", // 渠道产品名称 "channelItemName", // 渠道产品名称
"serviceItemCode", "serviceItemCode",
"pushServiceItemCode",
"deliveryUrl", "deliveryUrl",
"status", // 状态 0禁用 1启用 "status", // 状态 0禁用 1启用
"verifyPrice", // 是否验证价格 0不验证 1验证 "verifyPrice", // 是否验证价格 0不验证 1验证
......
...@@ -43,19 +43,19 @@ class OrderDao extends Dao { ...@@ -43,19 +43,19 @@ class OrderDao extends Dao {
var orderObj = { var orderObj = {
app_id: user.app_id,// app_id: user.app_id,//
orderNo: ordercode,// 订单号 orderNo: ordercode,// 订单号
channelServiceNo: channelOrder.channelServiceNo,// 渠道服务单号 channelServiceNo: channelOrder.channelServiceNo || "",// 渠道服务单号
channelOrderNo: channelOrder.channelOrderNo,//渠道订单号列表,多个以,隔开 channelOrderNo: channelOrder.channelOrderNo || "",//渠道订单号列表,多个以,隔开
payTime: channelOrder.payTime || null, payTime: channelOrder.payTime || null,
itemCode: productItem.itemCode,// itemCode: productItem.itemCode,//
itemName: productItem.itemName,// itemName: productItem.itemName,//
channelItemCode: productItem.channelItemCode,// 渠道产品编码 channelItemCode: productItem.channelItemCode,// 渠道产品编码
channelItemName: productItem.channelItemName,// 渠道产品名称 channelItemName: productItem.channelItemName,// 渠道产品名称
salesNum: channelOrder.quantity,//项目订单数量(即服务项目的倍数,默认值为1) salesNum: channelOrder.quantity || 1,//项目订单数量(即服务项目的倍数,默认值为1)
salesDiliverNum: channelOrder.salesDiliverNum,//项目订单交付数量(即与项目订单数量相对应) salesDiliverNum: channelOrder.salesDiliverNum || 0,//项目订单交付数量(即与项目订单数量相对应)
minitermNum: channelOrder.nclCount || 10 * channelOrder.quantity,//订单小项数量 minitermNum: channelOrder.nclCount || 10 * channelOrder.quantity,//订单小项数量
minitermDiliverNum: channelOrder.minitermDiliverNum,//订单小项交付数量 minitermDiliverNum: channelOrder.minitermDiliverNum || 0,//订单小项交付数量
orderType: orderType || "dkxd",// 订单类型,zzdd: 自主订单,dkxd: 代客下单 orderType: orderType || "dkxd",// 订单类型,zzdd: 自主订单,dkxd: 代客下单
orderPayStatus: channelOrder.payStatus,// 订单付款状态dfk: 待付款, zfpz: 已上传支付凭证, yfk: 已付款, ddqx: 订单取消, tkclz: 退款处理中, bfytk: 部分已退款, ytk: 已退款,zfshbtg:支付审核不通过 orderPayStatus: channelOrder.payStatus || "dfk",// 订单付款状态dfk: 待付款, zfpz: 已上传支付凭证, yfk: 已付款, ddqx: 订单取消, tkclz: 退款处理中, bfytk: 部分已退款, ytk: 已退款,zfshbtg:支付审核不通过
totalServiceCharge: orderAmount.totalServiceCharge || 0,// 服务费总额(产品配置的服务费*订单件数) totalServiceCharge: orderAmount.totalServiceCharge || 0,// 服务费总额(产品配置的服务费*订单件数)
totalPublicExpense: orderAmount.totalPublicExpense || 0,// 官费总额(产品配置的官费*订单件数) totalPublicExpense: orderAmount.totalPublicExpense || 0,// 官费总额(产品配置的官费*订单件数)
totalDiscounts: orderAmount.totalDiscounts,// 优惠总额((服务费总额+官费总额)-订单总额(产品价格×优惠费率×订单件数)>0则有优惠额度) totalDiscounts: orderAmount.totalDiscounts,// 优惠总额((服务费总额+官费总额)-订单总额(产品价格×优惠费率×订单件数)>0则有优惠额度)
...@@ -82,7 +82,9 @@ class OrderDao extends Dao { ...@@ -82,7 +82,9 @@ class OrderDao extends Dao {
serviceItemSnapshot: JSON.stringify(productItem),//产品快照 serviceItemSnapshot: JSON.stringify(productItem),//产品快照
}; };
var order = await this.create(orderObj, t); var order = await this.create(orderObj, t);
return system.getResultSuccess(order); var tmpResult = system.getResultSuccess(order);
tmpResult.addOrder = true;
return tmpResult;
} }
async putOrder(setObj, whereObj, t) { async putOrder(setObj, whereObj, t) {
return this.updateByWhere(setObj, whereObj, t) return this.updateByWhere(setObj, whereObj, t)
......
...@@ -21,6 +21,40 @@ class OrderTmProductDao extends Dao { ...@@ -21,6 +21,40 @@ class OrderTmProductDao extends Dao {
raw: true 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",
"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) { async getItemByChannelServiceNo(channelServiceNo, appId, t) {
var sqlWhere = { var sqlWhere = {
where: { where: {
......
...@@ -14,14 +14,14 @@ class ReceiptVoucherDao extends Dao { ...@@ -14,14 +14,14 @@ class ReceiptVoucherDao extends Dao {
} }
async addReceiptvoucher(orderParams, req, t) { async addReceiptvoucher(orderParams, req, t) {
var param = { var param = {
app_id: req.app.id,// app_id: orderParams.app_id,//
totalSum: orderParams.totalSum || 0,// 订单总额(产品价格×优惠费率×订单件数) totalSum: orderParams.totalSum || 0,// 订单总额(产品价格×优惠费率×订单件数)
channelServiceNo: orderParams.channelServiceNo,// 渠道服务单号 channelServiceNo: orderParams.channelServiceNo,// 渠道服务单号
auditStatus: "tg", auditStatus: "tg",
sourceType: "order", sourceType: "order",
sourceOrderNo: orderParams.orderNo,// 来源订单号 sourceOrderNo: orderParams.orderNo,// 来源订单号
payDate: orderParams.payTime,// payDate: orderParams.payTime,//
createuser_id: req.user.id, createuser_id: orderParams.createuser_id,
creator: orderParams.creator || "", creator: orderParams.creator || "",
accountType: "other", accountType: "other",
}; };
......
...@@ -34,7 +34,7 @@ module.exports = { ...@@ -34,7 +34,7 @@ module.exports = {
//订单服务付款状态 //订单服务付款状态
"order_service_pay_status": { "dfk": "待付款", "yfk": "已付款" }, "order_service_pay_status": { "dfk": "待付款", "yfk": "已付款" },
//商标交付状态 //商标交付状态
"delivery_status": { "dqrfa": "待确认方案", "fabtg": "方案不通过", "dsccl": "待上传材料", "dsh": "待审核", "ddj": "待递交", "ydj": "已递交", "ywc": "已完成" }, "delivery_status": { "dqrfa": "待确认方案", "fabtg": "方案不通过", "dfwsfw": "待服务", "dsccl": "待上传材料", "dsh": "待审核", "ddj": "待递交", "ydj": "已递交", "ywc": "已完成" },
//商标类型 //商标类型
"tm_type": { "p": "普通商标", "j": "集体商标", "z": "证明商标", "t": "特殊商标" }, "tm_type": { "p": "普通商标", "j": "集体商标", "z": "证明商标", "t": "特殊商标" },
//商标类型形式 //商标类型形式
......
...@@ -3,13 +3,14 @@ const settings = require("../../../../config/settings"); ...@@ -3,13 +3,14 @@ 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("appproduct", { return db.define("appproduct", {
app_id :DataTypes.STRING(50),// 应用id app_id :DataTypes.STRING(50),// 应用id
itemCode :DataTypes.STRING(100),// 产品编码 itemCode :DataTypes.STRING(100),// 产品编码
itemName :DataTypes.STRING(100),// 产品名称 itemName :DataTypes.STRING(100),// 产品名称
picUrl :DataTypes.STRING(500),// 产品图片地址 picUrl :DataTypes.STRING(500),// 产品图片地址
channelItemCode :DataTypes.STRING(100),// 渠道产品编码 channelItemCode :DataTypes.STRING(100),// 渠道产品编码
channelItemName :DataTypes.STRING(100),// 渠道产品名称 channelItemName :DataTypes.STRING(100),// 渠道产品名称
serviceItemCode :DataTypes.STRING(100),// 服务商产品编码 serviceItemCode :DataTypes.STRING(100),// 服务商产品编码
pushServiceItemCode :DataTypes.STRING(100),// 推送到服务商的产品编码
status :DataTypes.BOOLEAN,// 状态 0禁用 1启用 status :DataTypes.BOOLEAN,// 状态 0禁用 1启用
verifyPrice :DataTypes.BOOLEAN,// 是否验证价格 0不验证 1验证 verifyPrice :DataTypes.BOOLEAN,// 是否验证价格 0不验证 1验证
proPrice :DataTypes.DOUBLE,// 产品价格 proPrice :DataTypes.DOUBLE,// 产品价格
......
...@@ -55,6 +55,7 @@ module.exports = (db, DataTypes) => { ...@@ -55,6 +55,7 @@ module.exports = (db, DataTypes) => {
invoiceApplyStatus :DataTypes.STRING(10),// 发票状态:00: 未申请, 10: 已申请,20:已开票 invoiceApplyStatus :DataTypes.STRING(10),// 发票状态:00: 未申请, 10: 已申请,20:已开票
channelUserId :DataTypes.STRING(64), // 渠道用户ID channelUserId :DataTypes.STRING(64), // 渠道用户ID
needNo :DataTypes.STRING(64), // 需求单号 needNo :DataTypes.STRING(64), // 需求单号
needNoOrderNo :DataTypes.STRING(64), // 需求订单号
sourceType: DataTypes.STRING(10),//来源类型:00订单,10需求需要用户确认方案 sourceType: DataTypes.STRING(10),//来源类型:00订单,10需求需要用户确认方案
picUrl :DataTypes.STRING(500),// 产品图片地址 picUrl :DataTypes.STRING(500),// 产品图片地址
productType_id :DataTypes.INTEGER, //产品类型Id productType_id :DataTypes.INTEGER, //产品类型Id
......
...@@ -50,6 +50,7 @@ module.exports = (db, DataTypes) => { ...@@ -50,6 +50,7 @@ module.exports = (db, DataTypes) => {
channelServiceNo: DataTypes.STRING(64),//渠道服务单号 channelServiceNo: DataTypes.STRING(64),//渠道服务单号
channelOrderNo: DataTypes.STRING(1024),//渠道订单号列表,多个以,隔开 channelOrderNo: DataTypes.STRING(1024),//渠道订单号列表,多个以,隔开
needNo: DataTypes.STRING(64),//需求单号 needNo: DataTypes.STRING(64),//需求单号
needNoOrderNo :DataTypes.STRING(64), // 需求订单号
sourceType: DataTypes.STRING(10),//来源类型:00订单,10需求需要用户确认方案 sourceType: DataTypes.STRING(10),//来源类型:00订单,10需求需要用户确认方案
picUrl: DataTypes.STRING(500), //商标图样 picUrl: DataTypes.STRING(500), //商标图样
colorizedPicUrl: DataTypes.STRING(500),//商标彩色图样 colorizedPicUrl: DataTypes.STRING(500),//商标彩色图样
......
...@@ -212,6 +212,7 @@ class OrderInfoService extends ServiceBase { ...@@ -212,6 +212,7 @@ class OrderInfoService extends ServiceBase {
} }
var requestid=self.getUUID(); var requestid=self.getUUID();
if(productItem && productItem.deliveryUrl){ if(productItem && productItem.deliveryUrl){
obj["orderNo"]=order.orderNo;
self.pushData(requestid,obj,productItem.deliveryUrl,req); self.pushData(requestid,obj,productItem.deliveryUrl,req);
} }
return system.getResultSuccess({ return system.getResultSuccess({
......
...@@ -6,6 +6,7 @@ class CustomerContactsService extends ServiceBase { ...@@ -6,6 +6,7 @@ class CustomerContactsService extends ServiceBase {
constructor() { constructor() {
super("dborder", ServiceBase.getDaoName(CustomerContactsService)); super("dborder", ServiceBase.getDaoName(CustomerContactsService));
this.ordertmproductSve = system.getObject("service.dborder.ordertmproductSve"); this.ordertmproductSve = system.getObject("service.dborder.ordertmproductSve");
this.orderflowDao = system.getObject("db.dborder.orderflowDao");
} }
/** /**
* 修改商标交付单联系人(订单详情页面) * 修改商标交付单联系人(订单详情页面)
...@@ -16,16 +17,20 @@ class CustomerContactsService extends ServiceBase { ...@@ -16,16 +17,20 @@ class CustomerContactsService extends ServiceBase {
*/ */
async updateContacts(obj){ async updateContacts(obj){
var user = obj.user; var user = obj.user;
var app = obj.app;
if(!user || !user.id){ if(!user || !user.id){
return system.getResultFail(-100, "未知用户"); return system.getResultFail(-100, "未知用户");
} }
if (!app || !app.id) {
return system.getResultFail(-100, "未知渠道");
}
var deliveryOrderNo = obj.deliveryOrderNo; var deliveryOrderNo = obj.deliveryOrderNo;
if(!deliveryOrderNo){ if(!deliveryOrderNo){
return system.getResultFail(-101, "deliveryOrderNo参数错误"); return system.getResultFail(-101, "deliveryOrderNo参数错误");
} }
// 1.获取交付单信息 // 1.获取交付单信息
var ordertmproduct = await this.ordertmproductSve.dao.model.findOne({ var ordertmproduct = await this.ordertmproductSve.dao.model.findOne({
where:{deliveryOrderNo:deliveryOrderNo}, where:{deliveryOrderNo:deliveryOrderNo,app_id:app.id},
raw:true raw:true
}); });
if(!ordertmproduct || !ordertmproduct.id){ if(!ordertmproduct || !ordertmproduct.id){
...@@ -55,7 +60,9 @@ class CustomerContactsService extends ServiceBase { ...@@ -55,7 +60,9 @@ class CustomerContactsService extends ServiceBase {
contactsObj["tel"]=obj.tel; contactsObj["tel"]=obj.tel;
} }
//修改联系人信息 //修改联系人信息
await self.dao.model.update(contactsObj, { where: { deliveryOrderNo:deliveryOrderNo }, transaction: t }); 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(); return system.getResultSuccess();
}) })
} }
......
...@@ -7,6 +7,7 @@ class CustomerInfoService extends ServiceBase { ...@@ -7,6 +7,7 @@ class CustomerInfoService extends ServiceBase {
super("dborder", ServiceBase.getDaoName(CustomerInfoService)); super("dborder", ServiceBase.getDaoName(CustomerInfoService));
this.ordertmproductSve = system.getObject("service.dborder.ordertmproductSve"); this.ordertmproductSve = system.getObject("service.dborder.ordertmproductSve");
this.trademarkDao = system.getObject("db.dbtrademark.trademarkDao"); this.trademarkDao = system.getObject("db.dbtrademark.trademarkDao");
this.orderflowDao = system.getObject("db.dborder.orderflowDao");
} }
/** /**
* 修改申请人信息(订单详情页面使用) * 修改申请人信息(订单详情页面使用)
...@@ -25,16 +26,20 @@ class CustomerInfoService extends ServiceBase { ...@@ -25,16 +26,20 @@ class CustomerInfoService extends ServiceBase {
*/ */
async updateCustomerInfo(obj){ async updateCustomerInfo(obj){
var user = obj.user; var user = obj.user;
var app = obj.app;
if(!user || !user.id){ if(!user || !user.id){
return system.getResultFail(-100, "未知用户"); return system.getResultFail(-100, "未知用户");
} }
if (!app || !app.id) {
return system.getResultFail(-100, "未知渠道");
}
var deliveryOrderNo = obj.deliveryOrderNo; var deliveryOrderNo = obj.deliveryOrderNo;
if(!deliveryOrderNo){ if(!deliveryOrderNo){
return system.getResultFail(-101, "deliveryOrderNo参数错误"); return system.getResultFail(-101, "deliveryOrderNo参数错误");
} }
// 1.获取交付单信息 // 1.获取交付单信息
var ordertmproduct = await this.ordertmproductSve.dao.model.findOne({ var ordertmproduct = await this.ordertmproductSve.dao.model.findOne({
where:{deliveryOrderNo:deliveryOrderNo}, where:{deliveryOrderNo:deliveryOrderNo,app_id:app.id},
raw:true raw:true
}); });
if(!ordertmproduct || !ordertmproduct.id){ if(!ordertmproduct || !ordertmproduct.id){
...@@ -50,7 +55,7 @@ class CustomerInfoService extends ServiceBase { ...@@ -50,7 +55,7 @@ class CustomerInfoService extends ServiceBase {
} }
var customerinfo = await this.dao.model.findOne({ var customerinfo = await this.dao.model.findOne({
where:{ where:{
deliveryOrderNo:deliveryOrderNo deliveryOrderNo:deliveryOrderNo,app_id:app.id
}, },
raw:true raw:true
}); });
...@@ -102,8 +107,10 @@ class CustomerInfoService extends ServiceBase { ...@@ -102,8 +107,10 @@ class CustomerInfoService extends ServiceBase {
if(ordertmproduct.deliveryStatus=="dsccl"){ if(ordertmproduct.deliveryStatus=="dsccl"){
await self.ordertmproductSve.update({id:ordertmproduct.id,deliveryStatus:"dsh"},t); await self.ordertmproductSve.update({id:ordertmproduct.id,deliveryStatus:"dsh"},t);
} }
await self.trademarkDao.model.update({officialType:"dsh"},{where:{deliveryOrderNo:deliveryOrderNo},transaction: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(); return system.getResultSuccess();
}) })
} }
...@@ -121,16 +128,20 @@ class CustomerInfoService extends ServiceBase { ...@@ -121,16 +128,20 @@ class CustomerInfoService extends ServiceBase {
*/ */
async updateOfficial(obj){ async updateOfficial(obj){
var user = obj.user; var user = obj.user;
var app = obj.app;
if(!user || !user.id){ if(!user || !user.id){
return system.getResultFail(-100, "未知用户"); return system.getResultFail(-100, "未知用户");
} }
if (!app || !app.id) {
return system.getResultFail(-100, "未知渠道");
}
var deliveryOrderNo = obj.deliveryOrderNo; var deliveryOrderNo = obj.deliveryOrderNo;
if(!deliveryOrderNo){ if(!deliveryOrderNo){
return system.getResultFail(-101, "deliveryOrderNo参数错误"); return system.getResultFail(-101, "deliveryOrderNo参数错误");
} }
// 1.获取交付单信息 // 1.获取交付单信息
var ordertmproduct = await this.ordertmproductSve.dao.model.findOne({ var ordertmproduct = await this.ordertmproductSve.dao.model.findOne({
where:{deliveryOrderNo:deliveryOrderNo}, where:{deliveryOrderNo:deliveryOrderNo,app_id:app.id},
raw:true raw:true
}); });
if(!ordertmproduct || !ordertmproduct.id){ if(!ordertmproduct || !ordertmproduct.id){
...@@ -146,7 +157,7 @@ class CustomerInfoService extends ServiceBase { ...@@ -146,7 +157,7 @@ class CustomerInfoService extends ServiceBase {
} }
var customerinfo = await this.dao.model.findOne({ var customerinfo = await this.dao.model.findOne({
where:{ where:{
deliveryOrderNo:deliveryOrderNo deliveryOrderNo:deliveryOrderNo,app_id:app.id
}, },
raw:true raw:true
}); });
...@@ -196,6 +207,8 @@ class CustomerInfoService extends ServiceBase { ...@@ -196,6 +207,8 @@ class CustomerInfoService extends ServiceBase {
} }
await self.ordertmproductSve.update(otpObj,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(); return system.getResultSuccess();
}) })
} }
......
...@@ -6,10 +6,144 @@ class OrderService extends ServiceBase { ...@@ -6,10 +6,144 @@ class OrderService extends ServiceBase {
constructor() { constructor() {
super("dborder", ServiceBase.getDaoName(OrderService)); super("dborder", ServiceBase.getDaoName(OrderService));
this.logCtl = system.getObject("web.common.oplogCtl"); this.logCtl = system.getObject("web.common.oplogCtl");
this.orderflowDao = system.getObject("db.dborder.orderflowDao");
this.appproductDao = system.getObject("db.dbapp.appproductDao"); this.appproductDao = system.getObject("db.dbapp.appproductDao");
this.ordertmproductDao = system.getObject("db.dborder.ordertmproductDao"); this.ordertmproductDao = system.getObject("db.dborder.ordertmproductDao");
this.receiptvoucherDao = system.getObject("db.dborder.receiptvoucherDao"); this.receiptvoucherDao = system.getObject("db.dborder.receiptvoucherDao");
this.customercontactsDao = system.getObject("db.dborder.customercontactsDao");
this.execClient = system.getObject("util.execClient"); this.execClient = system.getObject("util.execClient");
this.fqReqUrl = "https://yunfuapi.gongsibao.com/crm/order/submit";//线上域名
// this.fqReqUrl = "https://yunfuapi-dev.gongsibao.com/crm/order/submit";//dev域名
}
async addOrderAndDelivery(action_body, pobj, req) {
if (!action_body.needNo) {
return system.getResult(null, "needNo is empty");
}
if (!action_body.channelItemCode) {
return system.getResult(null, "channelItemCode is empty");
}
var productItem = await this.appproductDao.findOneByChannelItemCode(action_body.channelItemCode, req.app.id);//获取产品
if (!productItem) {
return system.getResult(null, action_body.channelItemCode + " productItem is empty");;
}
var orderCount = await this.dao.findCount({ where: { needNo: action_body.needNo } });
if (orderCount > 0) {
return system.getResultFail(system.existData, "order is exist");
}
var self = this;
return await self.db.transaction(async function (t) {
//创建订单
var ordercode = await self.getBusUid("tm");
var orderParams = {
app_id: req.app.id,//
orderNo: ordercode,// 订单号
payTime: new Date(),//
itemCode: productItem.itemCode,//
itemName: productItem.itemName,//
channelItemCode: productItem.channelItemCode,// 渠道产品编码
channelItemName: productItem.channelItemName,// 渠道产品名称
salesNum: 1,//项目订单数量(即服务项目的倍数,默认值为1)
salesDiliverNum: 0,//项目订单交付数量(即与项目订单数量相对应)
minitermNum: 10,//订单小项数量
minitermDiliverNum: 0,//订单小项交付数量
orderType: "dkxd",// 订单类型,zzdd: 自主订单,dkxd: 代客下单
orderPayStatus: "yfk",// 订单付款状态dfk: 待付款, zfpz: 已上传支付凭证, yfk: 已付款, ddqx: 订单取消, tkclz: 退款处理中, bfytk: 部分已退款, ytk: 已退款,zfshbtg:支付审核不通过
totalServiceCharge: productItem.totalServiceCharge || 0,// 服务费总额(产品配置的服务费*订单件数)
totalPublicExpense: productItem.totalPublicExpense || 0,// 官费总额(产品配置的官费*订单件数)
totalSum: productItem.proPrice || 0,// 订单总额(产品价格×优惠费率×订单件数)
refundSum: 0,// 退款金额
buyerMoblie: action_body.buyerMoblie || "",
// notes: apply.notes, //备注
appPayType: "00",// 支付类型:00第三方支付,10平台代收款
payAccountType: "other",// 帐户类型( 支付类型):cash: 现金, bank: 银行,wx:微信,alipay:支付,other:其它
createuser_id: req.user.id,
owner_id: req.user.id,//
creator: req.user.nickname || "",
owner: req.user.nickname || "",//
ownerMoblie: req.user.userMoblie || "",//
invoiceApplyStatus: "00",// 发票状态:00: 未申请, 10: 已申请,20:已开票
channelUserId: req.user.channelUserId || "",// 渠道用户id
needNo: action_body.needNo || null,//需求单号
needNoOrderNo: action_body.needNoOrderNo || null,//需求单号
picUrl: productItem.picUrl,//
productType_id: productItem.productType_id,//产品类型Id
productOneType_id: productItem.productOneType_id,//产品大类Id
serviceItemSnapshot: JSON.stringify(productItem),//产品快照
};
var orderItem = await self.dao.create(orderParams, t);//创建订单
var receiptvoucherItem = await self.receiptvoucherDao.addReceiptvoucher(orderParams, req, t);//创建订单支付信息
var pushType = "ic_";
if (["fzsbzc", "dbsbzc"].indexOf(productItem.itemCode) >= 0) {
var tmDeliveryOrderNo = await self.getBusUid("jf")
var orderProductObj = {
app_id: req.app.id,//
productType_id: productItem.productType_id,//产品类型Id
productOneType_id: productItem.productOneType_id,//产品大类Id
itemCode: productItem.itemCode,//
itemName: productItem.itemName,//
orderServicePayStatus: "yfk",//支付状态:dfk: 待付款, yfk: 已支付
deliveryStatus: "dfwsfw",
deliveryStatusName: "待服务商服务",
appDataOpType: req.app.appDataOpType,// 应用数据操作类型:00独立,10全委托,20部分委托
sourceOrderNo: ordercode,//来源单号
deliveryOrderNo: tmDeliveryOrderNo,
needNo: action_body.needNo || null,//需求单号
needNoOrderNo: action_body.needNoOrderNo || null,//需求单号
sourceType: "00",
channelUserId: req.user.channelUserId || "",// 渠道用户id
createuser_id: req.user.id,//
createuser: req.user.nickname,//
};
var orderTm = await self.ordertmproductDao.create(orderProductObj, t);//创建订单交付流程
pushType = "tm_";
}//创建服务单
//推送商机到峰擎
if (productItem.pushServiceItemCode && orderParams.buyerMoblie) {
self.pushFqBusiness(pushType, orderParams, productItem.pushServiceItemCode, pobj, req);
} else {
self.logCtl.info({
appid: req.app.id,
appkey: req.app.uappKey,
requestId: req.requestId || "",
op: "/igirl-channel/zhichan/igirl-channel/app/base/service/impl/dborder/orderSve/addOrderAndDelivery",
content: "pushServiceItemCode=" + productItem.pushServiceItemCode + ",buyerMoblie=" + action_body.buyerMoblie,
clientIp: pobj.clientIp,
optitle: "未能推送订单商机到FQ信息,pushServiceItemCode 或 buyerMoblie 为空",
});
}
return system.getResultSuccess({
orderNo: ordercode,
deliveryOrderNo: orderProductObj.deliveryOrderNo,
needNo: action_body.needNo
});
});
}
//更新订单状态
async updateOrderStatus(action_body, pobj, req) {
var setObj = { channelServiceNo: action_body.channelServiceNo, needNo: action_body.needNo, needNoOrderNo: action_body.needNoOrderNo };
var self = this;
return await this.db.transaction(async function (t) {
await self.dao.updateByWhere(setObj, { where: { orderNo: action_body.orderNo } }, t);
await self.ordertmproductDao.updateByWhere(setObj, { where: { sourceOrderNo: action_body.orderNo } }, t);
return system.getResultSuccess();
});
}
//更新付款状态
async updateOrderPayStatus(action_body, pobj, req) {
var payStatus = action_body.payStatus || "dfk";
var self = this;
var result = await self.ordertmproductDao.getItemByNeedNoOrderNo(action_body.needNoOrderNo, req.app.id);
if (!result) {
return system.getResult(null, "data is empty");
}
return await this.db.transaction(async function (t) {
await self.dao.updateByWhere({ orderPayStatus: payStatus, buyerMoblie: action_body.buyerMoblie || "" }, { where: { needNoOrderNo: action_body.needNoOrderNo, app_id: req.app.id } }, t);
await self.ordertmproductDao.updateByWhere({ payStatus: payStatus }, { where: { needNoOrderNo: action_body.needNoOrderNo, app_id: req.app.id } }, t);
var logMsg = { sourceOrderNo: result.deliveryOrderNo, opContent: "订单已成功支付", app_id: req.app.id, isShow: 1 };
await self.orderflowDao.create(logMsg, t);
return system.getResultSuccess({ deliveryOrderNo: result.deliveryOrderNo });
});
} }
async op1688ChannelPushOrder(action_body, pobj, req) { async op1688ChannelPushOrder(action_body, pobj, req) {
try { try {
...@@ -387,7 +521,6 @@ class OrderService extends ServiceBase { ...@@ -387,7 +521,6 @@ class OrderService extends ServiceBase {
} }
} }
async addOrderNeed(action_body, req, returnValue) { async addOrderNeed(action_body, req, returnValue) {
var addOrderList = [];
var productItem = await this.appproductDao.findOneByChannelItemCode(action_body.channelItemCode, req.app.id);//获取产品 var productItem = await this.appproductDao.findOneByChannelItemCode(action_body.channelItemCode, req.app.id);//获取产品
if (!productItem) { if (!productItem) {
return; return;
...@@ -455,7 +588,7 @@ class OrderService extends ServiceBase { ...@@ -455,7 +588,7 @@ class OrderService extends ServiceBase {
productOneType_id: productItem.productOneType_id,//产品大类Id productOneType_id: productItem.productOneType_id,//产品大类Id
itemCode: productItem.itemCode,// itemCode: productItem.itemCode,//
itemName: productItem.itemName,// itemName: productItem.itemName,//
orderServicePayStatus: "yfk",//支付状态:dfk: 待付款, yfk: 已支付 payStatus: "yfk",//支付状态:dfk: 待付款, yfk: 已支付
appDataOpType: req.app.appDataOpType,// 应用数据操作类型:00独立,10全委托,20部分委托 appDataOpType: req.app.appDataOpType,// 应用数据操作类型:00独立,10全委托,20部分委托
sourceOrderNo: ordercode,//来源单号 sourceOrderNo: ordercode,//来源单号
deliveryOrderNo: await self.getBusUid("jf"), deliveryOrderNo: await self.getBusUid("jf"),
...@@ -474,9 +607,7 @@ class OrderService extends ServiceBase { ...@@ -474,9 +607,7 @@ class OrderService extends ServiceBase {
} }
} }
} }
async push1688FqBusiness(action_body, pobj, req) {
async pushFqBusiness(action_body, pobj, req) {
var rc = system.getObject("util.aliyunClient");
var item = await this.dao.getItemByChannelServiceNo(action_body.channelServiceNo, req.app.id); var item = await this.dao.getItemByChannelServiceNo(action_body.channelServiceNo, req.app.id);
if (!item) { if (!item) {
return system.getResult(null, "没有找到相关订单信息"); return system.getResult(null, "没有找到相关订单信息");
...@@ -487,19 +618,38 @@ class OrderService extends ServiceBase { ...@@ -487,19 +618,38 @@ class OrderService extends ServiceBase {
if (item.buyerMoblie) { if (item.buyerMoblie) {
return system.getResult(null, "订单已经推送过,请勿重覆推送"); return system.getResult(null, "订单已经推送过,请勿重覆推送");
} }
item.buyerMoblie = action_body.buyerMoblie;
var result = await this.pushFqBusiness("tm_", item, "5dd513db4f3b08000a6fc082", pobj, req);
if (result.status != 0) {
return result;
}
await this.updateByWhere({ buyerMoblie: action_body.buyerMoblie }, { where: { channelServiceNo: action_body.channelServiceNo } });
return result;
}
/**
*
* @param {*} pushType 推送的类型 tm_ ic_ icp_
* @param {*} item 订单信息 包含buyerMoblie
* @param {*} pushServiceItemCode 推送的产品id
* @param {*} pobj
* @param {*} req
*/
async pushFqBusiness(pushType, item, pushServiceItemCode, pobj, req) {//推送商机
var rc = system.getObject("util.aliyunClient");
var rtn = null; var rtn = null;
var reqUrl = "https://yunfuapi.gongsibao.com/crm/order/submit"; var reqUrl = this.fqReqUrl;
try { try {
var body = { var body = {
idempotentId: item.channelServiceNo,// 是 业务 ID idempotentId: item.needNo,// 是 业务 ID
idempotentSource: req.app.appSourceCode ? "tm_" + req.app.appSourceCode : "tm_1688",// 是 业务来源(ali、jd) idempotentSource: req.app.appSourceCode ? pushType + req.app.appSourceCode : "tm_1688",// 是 业务来源(ali、jd)
idempotentSourceName: req.app.name || "1688应用",// 是 阿里,京东 idempotentSourceName: req.app.name || "1688应用",// 是 阿里,京东
city: "",// 否 所属城市 city: "",// 否 所属城市
phone: action_body.buyerMoblie,// 是 手机号 phone: item.buyerMoblie,// 是 手机号
userId: item.channelUserId,// 否 用户 ID userId: item.channelUserId,// 否 用户 ID
companyName: "",// 否 公司名称 companyName: "",// 否 公司名称
orderPrice: item.totalSum,// 是 订单金额 orderPrice: item.totalSum,// 是 订单金额
productId: "5dd513db4f3b08000a6fc082",// 是 产品 ID productId: pushServiceItemCode,// 是 产品 ID
productQuantity: item.salesNum,// 是 产品数量 productQuantity: item.salesNum,// 是 产品数量
}; };
rtn = await rc.post(reqUrl, body); rtn = await rc.post(reqUrl, body);
...@@ -512,11 +662,9 @@ class OrderService extends ServiceBase { ...@@ -512,11 +662,9 @@ class OrderService extends ServiceBase {
clientIp: pobj.clientIp, clientIp: pobj.clientIp,
optitle: "推送订单商机到FQ信息", optitle: "推送订单商机到FQ信息",
}); });
if (rtn.code != 200 && rtn.success != true) { if (rtn.code != 200 && rtn.success != true) {
return system.getResult(null, "推送失败,失败原因:" + rtn.errorMsg + ",selfrequestId=" + req.requestId + ",requestId=" + rtn.requestId); return system.getResult(null, "推送失败,失败原因:" + rtn.errorMsg + ",selfrequestId=" + req.requestId + ",requestId=" + rtn.requestId);
} }
await this.updateByWhere({ buyerMoblie: action_body.buyerMoblie }, { where: { channelServiceNo: action_body.channelServiceNo } });
return system.getResultSuccess(null, "推送成功"); return system.getResultSuccess(null, "推送成功");
} catch (e) { } catch (e) {
//日志记录 //日志记录
...@@ -531,5 +679,39 @@ class OrderService extends ServiceBase { ...@@ -531,5 +679,39 @@ class OrderService extends ServiceBase {
}); });
} }
} }
async againPushFqBusiness(pobj, req) {//再次推送商机
var rc = system.getObject("util.aliyunClient");
var rtn = null;
var reqUrl = this.fqReqUrl;
var body = pobj.actionBody;
try {
rtn = await rc.post(reqUrl, body);
this.logCtl.info({
appid: req.app.id,
appkey: req.app.uappKey,
requestId: req.requestId || "",
op: "/igirl-channel/zhichan/igirl-channel/app/base/service/impl/dborder/orderSve/againPushFqBusiness",
content: "请求地址:" + reqUrl + ",参数:" + JSON.stringify(body) + ",返回结果:" + JSON.stringify(rtn),
clientIp: pobj.clientIp,
optitle: "推送订单商机到FQ信息--again",
});
if (rtn.code != 200 && rtn.success != true) {
return system.getResult(null, "推送失败,失败原因:" + rtn.errorMsg + ",selfrequestId=" + req.requestId + ",requestId=" + rtn.requestId);
}
return system.getResultSuccess(null, "推送成功");
} catch (e) {
//日志记录
this.logCtl.error({
appid: req.app.id,
appkey: req.app.uappKey,
requestId: req.requestId || "",
op: "/igirl-channel/zhichan/igirl-channel/app/base/service/impl/dborder/orderSve/againPushFqBusiness",
content: "error:" + e.stack,
clientIp: pobj.clientIp,
optitle: "推送订单商机到FQ出错--again",
});
}
}
} }
module.exports = OrderService; module.exports = OrderService;
...@@ -62,24 +62,28 @@ class OrderTmProductService extends ServiceBase { ...@@ -62,24 +62,28 @@ class OrderTmProductService extends ServiceBase {
if (productItem.status != 1) { if (productItem.status != 1) {
return system.getResult(null, "产品已禁用"); return system.getResult(null, "产品已禁用");
} }
if (productItem && productItem.verifyPrice == 1) { var verifyResult = await self.isOrderVerify(user, 1, tm, productItem, nclones, null);
var verifyResult = await self.isOrderVerify(user, 1, tm, productItem, nclones, null); if (verifyResult) {
if (verifyResult) { return verifyResult;
return verifyResult; }
} // if (productItem && productItem.verifyPrice == 1) {
} else { // var verifyResult = await self.isOrderVerify(user, 1, tm, productItem, nclones, null);
tm.nclOneCodes = []; // if (verifyResult) {
tm.nclCount = 0; // return verifyResult;
for (var i = 0; i < nclones.length; i++) { // }
var tbcode = await self.getBusUid("tb"); // } else {
var nclone = nclones[i]; // tm.nclOneCodes = [];
var nclthreeobj = nclone.nclThree; // tm.nclCount = 0;
if (nclone) { // for (var i = 0; i < nclones.length; i++) {
tm.nclOneCodes.push(nclone.code); // var tbcode = await self.getBusUid("tb");
tm.nclCount = tm.nclCount + nclthreeobj.length; // var nclone = nclones[i];
} // var nclthreeobj = nclone.nclThree;
} // if (nclone) {
} // tm.nclOneCodes.push(nclone.code);
// tm.nclCount = tm.nclCount + nclthreeobj.length;
// }
// }
// }
if (tm.tmFormType == "4") {//图形商标 if (tm.tmFormType == "4") {//图形商标
tm["name"] = "图形"; tm["name"] = "图形";
} }
...@@ -144,6 +148,9 @@ class OrderTmProductService extends ServiceBase { ...@@ -144,6 +148,9 @@ class OrderTmProductService extends ServiceBase {
sourceOrderNo: orderTm.sourceOrderNo, sourceOrderNo: orderTm.sourceOrderNo,
opContent: flowContent opContent: flowContent
}; };
if (channelOrder.payStatus == "yfk") {
flowObj.isShow = 1;
}
await self.orderflowDao.create(flowObj, t);//创建订单流程 await self.orderflowDao.create(flowObj, t);//创建订单流程
flowObj.sourceOrderNo = orderProductObj.deliveryOrderNo; flowObj.sourceOrderNo = orderProductObj.deliveryOrderNo;
await self.orderflowDao.create(flowObj, t);//创建交付流程 await self.orderflowDao.create(flowObj, t);//创建交付流程
...@@ -151,13 +158,12 @@ class OrderTmProductService extends ServiceBase { ...@@ -151,13 +158,12 @@ class OrderTmProductService extends ServiceBase {
return system.getResultSuccess({ return system.getResultSuccess({
deliveryOrderNo: orderProductObj.deliveryOrderNo, deliveryOrderNo: orderProductObj.deliveryOrderNo,
channelServiceNo: channelOrder.channelServiceNo, channelServiceNo: channelOrder.channelServiceNo,
channelItemCode: productItem.serviceItemCode,
channelParams: params.channelParams, channelParams: params.channelParams,
tm: returnTm tm: returnTm
}); });
}) })
} }
async addTmOrder(params) {//创建商标订单信息 async addTmOrder(params) {//创建商标订单信息
var self = this; var self = this;
var itemCode = params.itemCode;//产品编码 var itemCode = params.itemCode;//产品编码
...@@ -167,7 +173,7 @@ class OrderTmProductService extends ServiceBase { ...@@ -167,7 +173,7 @@ class OrderTmProductService extends ServiceBase {
var user = params.user; var user = params.user;
var nclones = params.nclones || null; var nclones = params.nclones || null;
var channelUser = params.channelUser || null; var channelUser = params.channelUser || null;
var channelOrder = params.channelOrder || null; var channelOrder = params.channelOrder || {};
var orderType = params.orderType || "dkxd";//订单类型,zzdd: 自主订单,dkxd: 代客下单 var orderType = params.orderType || "dkxd";//订单类型,zzdd: 自主订单,dkxd: 代客下单
if (!nclones || nclones.length < 1) { if (!nclones || nclones.length < 1) {
...@@ -176,30 +182,16 @@ class OrderTmProductService extends ServiceBase { ...@@ -176,30 +182,16 @@ class OrderTmProductService extends ServiceBase {
if (!itemCode) { if (!itemCode) {
return system.getResult(null, "itemCode参数错误"); return system.getResult(null, "itemCode参数错误");
} }
var productItem = await this.appproductDao.findOneByChannelItemCode(itemCode, user.app_id);//通过ChannelItemCode获取产品 var productItem = await this.appproductDao.findOneByChannelItemCode(itemCode, user.app_id);//通过ChannelItemCode获取产品//this.appproductDao.findOneByChannelItemCode(itemCode, user.app_id);//通过ChannelItemCode获取产品
if (!productItem) { if (!productItem) {
return system.getResult(null, "未知的产品"); return system.getResult(null, "未知的产品");
} }
if (productItem.status != 1) { if (productItem.status != 1) {
return system.getResult(null, "产品已禁用"); return system.getResult(null, "产品已禁用");
} }
if (productItem && productItem.verifyPrice == 1) { var verifyResult = await self.isOrderVerify(user, 1, tm, productItem, nclones, null);
var verifyResult = await self.isOrderVerify(user, 1, tm, productItem, nclones, null); if (verifyResult) {
if (verifyResult) { return verifyResult;
return verifyResult;
}
} else {
tm.nclOneCodes = [];
tm.nclCount = 0;
for (var i = 0; i < nclones.length; i++) {
var tbcode = await self.getBusUid("tb");
var nclone = nclones[i];
var nclthreeobj = nclone.nclThree;
if (nclone) {
tm.nclOneCodes.push(nclone.code);
tm.nclCount = tm.nclCount + nclthreeobj.length;
}
}
} }
if (tm.tmFormType == "4") {//图形商标 if (tm.tmFormType == "4") {//图形商标
tm["name"] = "图形"; tm["name"] = "图形";
...@@ -208,14 +200,18 @@ class OrderTmProductService extends ServiceBase { ...@@ -208,14 +200,18 @@ class OrderTmProductService extends ServiceBase {
//创建订单 //创建订单
var ordercode = await self.getBusUid("tm"); var ordercode = await self.getBusUid("tm");
var orderAmount = tm; var orderAmount = tm;
orderAmount.salesNum = tm.nclOneCodes.length; orderAmount.salesNum = tm.nclOneCodes ? tm.nclOneCodes.length : 0;
orderAmount.minitermNum = tm.nclCount; orderAmount.minitermNum = tm.nclCount ? tm.nclCount : 0;
channelOrder.payStatus = "dfk";
var orderResult = await self.orderDao.addOrder(ordercode, orderType, user, app, productItem, channelOrder, channelUser, apply, orderAmount, t); var orderResult = await self.orderDao.addOrder(ordercode, orderType, user, app, productItem, channelOrder, channelUser, apply, orderAmount, t);
if (orderResult.status != 0) { if (orderResult.status != 0) {
return orderResult; return orderResult;
} }
var order = orderResult.data; var order = orderResult.data;
if (orderResult.addOrder && orderResult.addOrder == true) {
await self.receiptvoucherDao.addReceiptvoucher(order, null, t);//创建订单支付信息
}
var orderProductObj = { var orderProductObj = {
app_id: user.app_id,// app_id: user.app_id,//
productType_id: productItem.productType_id,//产品类型Id productType_id: productItem.productType_id,//产品类型Id
...@@ -231,8 +227,8 @@ class OrderTmProductService extends ServiceBase { ...@@ -231,8 +227,8 @@ class OrderTmProductService extends ServiceBase {
appDataOpType: app.appDataOpType,// 应用数据操作类型:00独立,10全委托,20部分委托 appDataOpType: app.appDataOpType,// 应用数据操作类型:00独立,10全委托,20部分委托
sourceOrderNo: ordercode,//来源单号 sourceOrderNo: ordercode,//来源单号
deliveryOrderNo: await self.getBusUid("jf"), deliveryOrderNo: await self.getBusUid("jf"),
channelServiceNo: channelOrder.channelServiceNo,// 渠道服务单号 channelServiceNo: channelOrder.channelServiceNo || "",// 渠道服务单号
channelOrderNo: channelOrder.channelOrderNo,//渠道订单号列表,多个以,隔开 channelOrderNo: channelOrder.channelOrderNo || "",//渠道订单号列表,多个以,隔开
needNo: channelOrder.needNo || null,//需求单号 needNo: channelOrder.needNo || null,//需求单号
sourceType: tm.sourceType || "00", sourceType: tm.sourceType || "00",
picUrl: tm.picUrl || null,//商标图样 picUrl: tm.picUrl || null,//商标图样
...@@ -269,7 +265,7 @@ class OrderTmProductService extends ServiceBase { ...@@ -269,7 +265,7 @@ class OrderTmProductService extends ServiceBase {
//订单客户档案添加和修改 //订单客户档案添加和修改
await self.opCustomerInfo(user, apply, orderProductObj, t); await self.opCustomerInfo(user, apply, orderProductObj, t);
//创建服务单 //创建服务单
var orderTm = await self.dao.create(orderProductObj, t);//创建商标订单 var orderTm = await self.dao.create(orderProductObj, t);//创建商标订单
var flowObj = { var flowObj = {
app_id: user.app_id, app_id: user.app_id,
createuser_id: user.id, createuser_id: user.id,
...@@ -278,13 +274,17 @@ class OrderTmProductService extends ServiceBase { ...@@ -278,13 +274,17 @@ class OrderTmProductService extends ServiceBase {
}; };
await self.orderflowDao.create(flowObj, t);//创建订单流程 await self.orderflowDao.create(flowObj, t);//创建订单流程
flowObj.sourceOrderNo = orderProductObj.deliveryOrderNo; flowObj.sourceOrderNo = orderProductObj.deliveryOrderNo;
if (channelOrder.payStatus == "yfk") {
flowObj.isShow = 1;
}
await self.orderflowDao.create(flowObj, t);//创建交付流程 await self.orderflowDao.create(flowObj, t);//创建交付流程
orderTm.needNo = channelOrder.needNo || null;//需求单号 orderTm.needNo = channelOrder.needNo || null;//需求单号
var returnTm = await self.opTmInfo(user, tm, apply, nclones, orderTm, JSON.stringify(productItem), t); var returnTm = await self.opTmInfo(user, tm, apply, nclones, orderTm, JSON.stringify(productItem), t);
return system.getResultSuccess({ return system.getResultSuccess({
deliveryOrderNo: orderProductObj.deliveryOrderNo, deliveryOrderNo: orderProductObj.deliveryOrderNo,
channelServiceNo: channelOrder.channelServiceNo, orderNo: ordercode,
channelParams: params.channelParams, channelParams: params.channelParams,
channelItemCode: productItem.serviceItemCode,
tm: returnTm tm: returnTm
}); });
}) })
...@@ -293,7 +293,6 @@ class OrderTmProductService extends ServiceBase { ...@@ -293,7 +293,6 @@ class OrderTmProductService extends ServiceBase {
/* /*
verifyType==1为商标注册验证,2为其他订单验证 verifyType==1为商标注册验证,2为其他订单验证
*/ */
tm.nclOneCodes = [];
var sveItemRateConfig = serviceitem.rateConfig ? Number(serviceitem.rateConfig) : 0;//产品费率 var sveItemRateConfig = serviceitem.rateConfig ? Number(serviceitem.rateConfig) : 0;//产品费率
var fwf = serviceitem.serviceCharge ? Number(serviceitem.serviceCharge) : 0;//服务费 var fwf = serviceitem.serviceCharge ? Number(serviceitem.serviceCharge) : 0;//服务费
var yhfl = serviceitem.discountsRateConfig ? Number(serviceitem.discountsRateConfig) : 0;//最大优惠费率 var yhfl = serviceitem.discountsRateConfig ? Number(serviceitem.discountsRateConfig) : 0;//最大优惠费率
...@@ -301,7 +300,7 @@ class OrderTmProductService extends ServiceBase { ...@@ -301,7 +300,7 @@ class OrderTmProductService extends ServiceBase {
var nclSmallPrice = gf / 10;//单个小类官费 var nclSmallPrice = gf / 10;//单个小类官费
nclSmallPrice = Number(nclSmallPrice.toFixed(2)); nclSmallPrice = Number(nclSmallPrice.toFixed(2));
var productCount = 1;//产品数量 var productCount = 1;//产品数量
var gfze = 0;//官费总额 var gfze = 0;//官费总额--------------------------------------------------------------------------------------------
if (verifyType == 1) { if (verifyType == 1) {
tm.nclOneCodes = []; tm.nclOneCodes = [];
tm.nclCount = 0; tm.nclCount = 0;
...@@ -309,7 +308,7 @@ class OrderTmProductService extends ServiceBase { ...@@ -309,7 +308,7 @@ class OrderTmProductService extends ServiceBase {
for (var a = 0; a < nclones.length; a++) { for (var a = 0; a < nclones.length; a++) {
var nclone = nclones[a]; var nclone = nclones[a];
tm.nclOneCodes.push(nclone.code); tm.nclOneCodes.push(nclone.code);
tm.nclCount = tm.nclCount + nclthreeobj.length; tm.nclCount = tm.nclCount + nclone.nclThree.length;
var nclthreeobj = nclone.nclThree; var nclthreeobj = nclone.nclThree;
gfze = gfze + gf; gfze = gfze + gf;
if (nclthreeobj.length > 10) { if (nclthreeobj.length > 10) {
...@@ -321,39 +320,55 @@ class OrderTmProductService extends ServiceBase { ...@@ -321,39 +320,55 @@ class OrderTmProductService extends ServiceBase {
productCount = buyProductCount; productCount = buyProductCount;
gfze = gf * Number(productCount); gfze = gf * Number(productCount);
} }
var fwfze = Number(fwf) * Number(productCount);//服务费总额 var fwfze = Number(fwf) * Number(productCount);//服务费总额--------------------------------------------------------------------------------------------
var sfze = Number(tm.totalSum) / (sveItemRateConfig + 100) * sveItemRateConfig; //totalTaxes 税费总额 var sfze = Number(tm.totalSum) / (sveItemRateConfig + 100) * sveItemRateConfig; //totalTaxes 税费总额
sfze = sfze.toFixed(2); sfze = sfze.toFixed(2);
sfze = Number(sfze); sfze = Number(sfze);//--------------------------------------------------------------------------------------------
var zdyhe = (gfze + fwfze) * yhfl / 100;//最大优惠额 var zdyhe = (gfze + fwfze) * yhfl / 100;//最大优惠额-------------------------------------------------------------------------------------------
zdyhe = zdyhe.toFixed(2); zdyhe = zdyhe.toFixed(2);
zdyhe = Number(zdyhe); zdyhe = Number(zdyhe);
//毛利总额=应付总额-官费总额 //毛利总额=应付总额-官费总额
var mlze = Number(tm.totalSum) - gfze;//totalProfitSum 毛利总额 var mlze = Number(tm.totalSum) - gfze;//totalProfitSum 毛利总额--------------------------------------------------------------------------------------------
mlze = mlze.toFixed(2); mlze = mlze.toFixed(2);
mlze = Number(mlze); mlze = Number(mlze);
//优惠金额=服务费+官费总额-应付总额(服务费、官费之和小于等于应付总额时,优惠金额为零) var ddze = Number(fwfze) + Number(gfze);//订单总额---------------------------------------------------
var yhje = fwfze + gfze - Number(tm.totalSum); if (parseFloat(tm.totalSum) < Number(ddze)) {
if (yhje < 0) { return { code: -201, msg: "订单总额有误" };
yhje = 0;
}
yhje = yhje.toFixed(2);
yhje = Number(yhje);
if (fwfze != Number(tm.totalServiceCharge)) {
return { code: -201, msg: "服务费总额有误" };
}
if (gfze != Number(tm.totalPublicExpense)) {
return { code: -202, msg: "官费总额有误" };
}
if (sfze != Number(tm.totalTaxes)) {
return { code: -203, msg: "税费总额有误" };
}
if (mlze != Number(tm.totalProfitSum)) {
return { code: -204, msg: "毛利总额有误" };
}
if (yhje != Number(tm.totalDiscounts) || yhje > zdyhe) {
return { code: -205, msg: "优惠总额有误" };
} }
tm.totalServiceCharge = fwfze;// 服务费总额(产品配置的服务费*订单件数)
tm.totalPublicExpense = gfze;// 官费总额(产品配置的官费*订单件数)
tm.totalDiscounts = zdyhe;// 优惠总额((服务费总额+官费总额)-订单总额(产品价格×优惠费率×订单件数)>0则有优惠额度)
tm.totalTaxes = sfze;// 税费总额(订单总额-(订单总额/(1+产品费率)))
return "";
// //优惠金额=服务费+官费总额-应付总额(服务费、官费之和小于等于应付总额时,优惠金额为零)
// var yhje = fwfze + gfze - Number(tm.totalSum);
// if (yhje < 0) {
// yhje = 0;
// }
// yhje = yhje.toFixed(2);
// yhje = Number(yhje);
// if (fwfze != Number(tm.totalServiceCharge)) {
// return { code: -201, msg: "服务费总额有误" };
// }
// if (gfze != Number(tm.totalPublicExpense)) {
// return { code: -202, msg: "官费总额有误" };
// }
// if (sfze != Number(tm.totalTaxes)) {
// return { code: -203, msg: "税费总额有误" };
// }
// if (mlze != Number(tm.totalProfitSum)) {
// return { code: -204, msg: "毛利总额有误" };
// }
// if (yhje != Number(tm.totalDiscounts) || yhje > zdyhe) {
// return { code: -205, msg: "优惠总额有误" };
// }
// var channelProfitSum = 0;//订单渠道分成毛利润总额 // var channelProfitSum = 0;//订单渠道分成毛利润总额
// var pfProfitSum = 0;//订单平台毛利润总额 // var pfProfitSum = 0;//订单平台毛利润总额
// var totalProfitSum = Number(tm.totalProfitSum);//订单毛利润总额 // var totalProfitSum = Number(tm.totalProfitSum);//订单毛利润总额
...@@ -374,7 +389,7 @@ class OrderTmProductService extends ServiceBase { ...@@ -374,7 +389,7 @@ class OrderTmProductService extends ServiceBase {
// pfProfitSum = mlze;//毛利总额 // pfProfitSum = mlze;//毛利总额
// } // }
// }//渠道利润分成比率(只分订单中毛利润总额的分成) // }//渠道利润分成比率(只分订单中毛利润总额的分成)
return ""; // return "";
} }
async opCustomerInfo(user, apply, orderObj, t) {//订单客户档案添加和修改 async opCustomerInfo(user, apply, orderObj, t) {//订单客户档案添加和修改
var customerInfoObj = { var customerInfoObj = {
...@@ -539,65 +554,92 @@ class OrderTmProductService extends ServiceBase { ...@@ -539,65 +554,92 @@ class OrderTmProductService extends ServiceBase {
* 商标交付列表 * 商标交付列表
* @param {*} params 格式:{channelServiceNo:XX, app:{ appId:XX}} * @param {*} params 格式:{channelServiceNo:XX, app:{ appId:XX}}
*/ */
async getTmOrderList(params, req) {//商标交付列表 async getTmOrderList(params, pobj, req) {//商标交付列表
var pageSize = Number(params.pageSize || 20); var pageSize = Number(params.pageSize || 20);
var pageInde = Number(params.pageInde || 1); var pageInde = Number(params.pageInde || 1);
var from = pageInde == 1 ? 0 : Number((pageInde - 1) * pageSize); var from = pageInde == 1 ? 0 : Number((pageInde - 1) * pageSize);
if (pageSize > 50) { if (pageSize > 50) {
pageSize = 50; pageSize = 50;
} }
var sql = "SELECT tm.`channelServiceNo`,tm.`deliveryOrderNo`,tm.`tmName`,tm.`nclOneCount`,tm.`nclOneCodes`,tm.itemCode,tm.itemName," + var sql = "SELECT tm.`needNo`,tm.`channelServiceNo`,tm.`deliveryOrderNo`,tm.`tmName`,tm.`nclOneCount`,tm.`nclOneCodes`,tm.itemCode,tm.itemName," +
" o.`totalSum`,c.`name`,tm.`deliveryStatus`,tm.`deliveryStatusName`,tm.payStatus,tm.payStatusName,o.payTime AS CreateDate,tm.submitTime," + " o.`totalSum`,c.`name`,tm.`deliveryStatus`,tm.`deliveryStatusName`,tm.payStatus,tm.payStatusName,o.payTime AS CreateDate,tm.submitTime," +
" c.`customerType`,c.`businessLicensePic`,c.`identityCardPic`,tm.`gzwtsUrl`,tm.`smwjUrl`" + " c.`customerType`,c.`businessLicensePic`,c.`identityCardPic`,tm.`gzwtsUrl`,tm.`smwjUrl`" +
" FROM `b_order_tm_product` AS tm LEFT JOIN `b_order` AS o ON tm.`sourceOrderNo`=o.`orderNo` LEFT JOIN" + " FROM `b_order_tm_product` AS tm LEFT JOIN `b_order` AS o ON tm.`sourceOrderNo`=o.`orderNo` LEFT JOIN" +
" `b_customerinfo` AS c ON tm.`deliveryOrderNo`=c.`deliveryOrderNo` where tm.deleted_at is null "; " `b_customerinfo` AS c ON tm.`deliveryOrderNo`=c.`deliveryOrderNo` where tm.deleted_at is null ";
var sqlCount = "SELECT count(1) as dataCount FROM `b_order_tm_product` AS tm LEFT JOIN `b_order` AS o ON tm.`sourceOrderNo`=o.`orderNo` LEFT JOIN" +
" `b_customerinfo` AS c ON tm.`deliveryOrderNo`=c.`deliveryOrderNo` where tm.deleted_at is null ";
var paramWhere = {}; var paramWhere = {};
if (["1688", "jd"].indexOf(pobj.actionProcess) >= 0) {
sql += " and o.orderPayStatus=:orderPayStatus";
sqlCount += " and o.orderPayStatus=:orderPayStatus";;
paramWhere.orderPayStatus = "yfk";
}
if (req.user) { if (req.user) {
sql += " and tm.createuser_id=:createuser_id"; if (action_body.getListType && action_body.getListType == "getTmOrderListAdmin") {
paramWhere.createuser_id = req.user.id; if (["syaify", "jd_613f2fd04340f"].indexOf(req.user.channelUserId) < 0) {
sql += " and tm.createuser_id=:createuser_id";
sqlCount += " and tm.createuser_id=:createuser_id";
paramWhere.createuser_id = req.user.id;
}
} else {
sql += " and tm.createuser_id=:createuser_id";
sqlCount += " and tm.createuser_id=:createuser_id";
paramWhere.createuser_id = req.user.id;
}
} }
if (params.channelServiceNo) { if (params.channelServiceNo) {
sql += " and tm.channelServiceNo like :channelServiceNo"; sql += " and tm.channelServiceNo like :channelServiceNo";
sqlCount += " and tm.channelServiceNo like :channelServiceNo";
paramWhere.channelServiceNo = "%" + params.channelServiceNo.trim() + "%"; paramWhere.channelServiceNo = "%" + params.channelServiceNo.trim() + "%";
} }
if (params.deliveryOrderNo) { if (params.deliveryOrderNo) {
sql += " and tm.deliveryOrderNo like :deliveryOrderNo"; sql += " and tm.deliveryOrderNo like :deliveryOrderNo";
sqlCount += " and tm.deliveryOrderNo like :deliveryOrderNo";
paramWhere.deliveryOrderNo = "%" + params.deliveryOrderNo.trim() + "%"; paramWhere.deliveryOrderNo = "%" + params.deliveryOrderNo.trim() + "%";
} }
if (params.itemCode) { if (params.itemCode) {
sql += " and tm.itemCode=:itemCode"; sql += " and tm.itemCode=:itemCode";
sqlCount += " and tm.itemCode=:itemCode";
paramWhere.itemCode = params.itemCode; paramWhere.itemCode = params.itemCode;
} }
if (params.deliveryStatus) { if (params.deliveryStatus) {
sql += " and tm.deliveryStatus=:deliveryStatus"; sql += " and tm.deliveryStatus=:deliveryStatus";
sqlCount += " and tm.deliveryStatus=:deliveryStatus";
paramWhere.deliveryStatus = params.deliveryStatus; paramWhere.deliveryStatus = params.deliveryStatus;
} }
if (params.payStatus) { if (params.payStatus) {
sql += " and tm.payStatus=:payStatus"; sql += " and tm.payStatus=:payStatus";
sqlCount += " and tm.payStatus=:payStatus";
paramWhere.payStatus = params.payStatus; paramWhere.payStatus = params.payStatus;
} }
if (params.tmName) { if (params.tmName) {
sql += " and tm.tmName like :tmName"; sql += " and tm.tmName like :tmName";
sqlCount += " and tm.tmName like :tmName";
paramWhere.tmName = +"%" + params.tmName.trim() + "%"; paramWhere.tmName = +"%" + params.tmName.trim() + "%";
} }
if (params.name) { if (params.name) {
sql += " and c.name like :name"; sql += " and c.name like :name";
sqlCount += " and c.name like :name";
paramWhere.name = "%" + params.name.trim() + "%"; paramWhere.name = "%" + params.name.trim() + "%";
} }
if (params.startTime && params.entTime) { if (params.startTime && params.entTime) {
var startTime = params.startTime.trim() + " 00:00:00"; var startTime = params.startTime.trim() + " 00:00:00";
var entTime = params.entTime + " 23:59:59"; var entTime = params.entTime + " 23:59:59";
sql += " and o.created_at >=:startTime and o.created_at<=:entTime"; sql += " and o.created_at >=:startTime and o.created_at<=:entTime";
sqlCount += " and o.created_at >=:startTime and o.created_at<=:entTime";
paramWhere.startTime = startTime; paramWhere.startTime = startTime;
paramWhere.entTime = entTime; paramWhere.entTime = entTime;
} }
sql += " order by tm.id desc LIMIT " + pageSize + " OFFSET " + from + ""; sql += " order by tm.id desc LIMIT " + pageSize + " OFFSET " + from + "";
var tmpResult = await this.customQuery(sql, paramWhere); var tmpResult = await this.customQuery(sql, paramWhere);
var tmpResultCount = await this.customQuery(sqlCount, paramWhere);
if (!tmpResult || tmpResult.length == 0) { if (!tmpResult || tmpResult.length == 0) {
return system.getResultSuccess(null, "暂无数据"); return system.getResultSuccess(null, "暂无数据");
} }
return system.getResultSuccess(tmpResult); var result = system.getResultSuccess(tmpResult);
result.dataCount = tmpResultCount && tmpResultCount.length > 0 ? tmpResultCount[0].dataCount : 0;
return result;
} }
/** /**
* 商标交付信息 * 商标交付信息
...@@ -622,6 +664,7 @@ class OrderTmProductService extends ServiceBase { ...@@ -622,6 +664,7 @@ class OrderTmProductService extends ServiceBase {
gzwtsUrl: item.gzwtsUrl, gzwtsUrl: item.gzwtsUrl,
smwjUrl: item.smwjUrl, smwjUrl: item.smwjUrl,
deliveryStatus: item.deliveryStatus, deliveryStatus: item.deliveryStatus,
totalSum: item.totalSum,
notes: item.notes notes: item.notes
}, orderFlow: [], receiptVoucher: [] }, orderFlow: [], receiptVoucher: []
}; };
...@@ -848,7 +891,7 @@ class OrderTmProductService extends ServiceBase { ...@@ -848,7 +891,7 @@ class OrderTmProductService extends ServiceBase {
nclCount: tm.nclCount, nclCount: tm.nclCount,
}; };
var flowContent = ""; var flowContent = "";
flowContent = channelOrder.payStatus == "yfk" ? "订单已付款待专家服务" : "订单已创建待付款"; flowContent = "专家服务已提供服务,方案待确认";
// if (apply.customerType == "person") { // if (apply.customerType == "person") {
// if (!apply.businessLicensePic || !apply.identityCardPic || !tm.gzwtsUrl) { // if (!apply.businessLicensePic || !apply.identityCardPic || !tm.gzwtsUrl) {
// orderProductObj["deliveryStatus"] = "dsccl"; // orderProductObj["deliveryStatus"] = "dsccl";
...@@ -885,10 +928,11 @@ class OrderTmProductService extends ServiceBase { ...@@ -885,10 +928,11 @@ class OrderTmProductService extends ServiceBase {
if (beforeOtp && beforeOtp.id) {//更新交付单 if (beforeOtp && beforeOtp.id) {//更新交付单
orderProductObj["id"] = beforeOtp.id; orderProductObj["id"] = beforeOtp.id;
await self.dao.update(orderProductObj, t); await self.dao.update(orderProductObj, t);
orderTm = await self.ordertmproductDao.model.findOne({ // orderTm = await self.ordertmproductDao.model.findOne({
where: { id: beforeOtp.id }, // where: { id: beforeOtp.id },
raw: true // raw: true
}); // });
orderTm = orderProductObj;
} else {//创建服务单 } else {//创建服务单
orderTm = await self.dao.create(orderProductObj, t);//创建商标订单 orderTm = await self.dao.create(orderProductObj, t);//创建商标订单
} }
...@@ -896,7 +940,8 @@ class OrderTmProductService extends ServiceBase { ...@@ -896,7 +940,8 @@ class OrderTmProductService extends ServiceBase {
app_id: user.app_id, app_id: user.app_id,
createuser_id: user.id, createuser_id: user.id,
sourceOrderNo: ordercode, sourceOrderNo: ordercode,
opContent: flowContent opContent: flowContent,
isShow: 1
}; };
await self.orderflowDao.create(flowObj, t);//创建订单流程 await self.orderflowDao.create(flowObj, t);//创建订单流程
flowObj.sourceOrderNo = orderProductObj.deliveryOrderNo; flowObj.sourceOrderNo = orderProductObj.deliveryOrderNo;
...@@ -933,7 +978,7 @@ class OrderTmProductService extends ServiceBase { ...@@ -933,7 +978,7 @@ class OrderTmProductService extends ServiceBase {
nclSmallPrice = Number(nclSmallPrice.toFixed(2)); nclSmallPrice = Number(nclSmallPrice.toFixed(2));
var self = this; var self = this;
var returnTm = []; var returnTm = [];
await this.trademarkDao.bulkDeleteByWhere({ where: { deliveryOrderNo: orderTm.deliveryOrderNo, nclOneCodes: { [self.db.Op.in]: tm.nclOneCodes } } }, t); await this.trademarkDao.bulkDeleteByWhere({ where: { deliveryOrderNo: orderTm.deliveryOrderNo } }, t);
for (var i = 0; i < nclones.length; i++) { for (var i = 0; i < nclones.length; i++) {
var tbcode = await self.getBusUid("tb"); var tbcode = await self.getBusUid("tb");
var nclone = nclones[i]; var nclone = nclones[i];
...@@ -1085,6 +1130,14 @@ class OrderTmProductService extends ServiceBase { ...@@ -1085,6 +1130,14 @@ class OrderTmProductService extends ServiceBase {
async tmConfirm(obj) { async tmConfirm(obj) {
var self = this; var self = this;
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 channelUserId = obj.channelUserId; var channelUserId = obj.channelUserId;
var deliveryOrderNo = obj.deliveryOrderNo; var deliveryOrderNo = obj.deliveryOrderNo;
var isConfirm = obj.isConfirm; var isConfirm = obj.isConfirm;
...@@ -1114,6 +1167,7 @@ class OrderTmProductService extends ServiceBase { ...@@ -1114,6 +1167,7 @@ class OrderTmProductService extends ServiceBase {
return await self.db.transaction(async function (t) { return await self.db.transaction(async function (t) {
var otpObj = { id: ordertmproduct.id }; var otpObj = { id: ordertmproduct.id };
var tmObj = { officialType: "dsh" }; var tmObj = { officialType: "dsh" };
var logMsg = { sourceOrderNo: deliveryOrderNo, opContent: "商标方案确认", app_id: app.id, isShow: 1 };
if (isConfirm == "0") { if (isConfirm == "0") {
if (!obj.notes) { if (!obj.notes) {
return system.getResultFail(-106, "方案确认失败,不通过原因不能为空"); return system.getResultFail(-106, "方案确认失败,不通过原因不能为空");
...@@ -1121,13 +1175,17 @@ class OrderTmProductService extends ServiceBase { ...@@ -1121,13 +1175,17 @@ class OrderTmProductService extends ServiceBase {
otpObj["deliveryStatus"] = "fabtg"; otpObj["deliveryStatus"] = "fabtg";
otpObj["notes"] = obj.notes; otpObj["notes"] = obj.notes;
tmObj.officialType = "fabtg"; tmObj.officialType = "fabtg";
logMsg["opContent"] = "商标方案不通过";
} }
if (isConfirm == "1") { if (isConfirm == "1") {
otpObj["deliveryStatus"] = "dsh"; otpObj["deliveryStatus"] = "dsh";
otpObj["notes"] = obj.notes || ""; otpObj["notes"] = obj.notes || "";
logMsg["opContent"] = "商标方案确认通过";
} }
await self.trademarkDao.updateByWhere(tmObj, { where: { deliveryOrderNo: deliveryOrderNo } }, t); await self.trademarkDao.updateByWhere(tmObj, { where: { deliveryOrderNo: deliveryOrderNo } }, t);
await self.dao.update(otpObj, t); await self.dao.update(otpObj, t);
await self.orderflowDao.create(logMsg, t);
return system.getResultSuccess(); return system.getResultSuccess();
}) })
} }
......
...@@ -51,16 +51,20 @@ class TradeMarkService extends ServiceBase { ...@@ -51,16 +51,20 @@ class TradeMarkService extends ServiceBase {
*/ */
async updateTmInfo(obj) { async updateTmInfo(obj) {
var user = obj.user; var user = obj.user;
var app = obj.app;
if (!user || !user.id) { if (!user || !user.id) {
return system.getResultFail(-100, "未知用户"); return system.getResultFail(-100, "未知用户");
} }
if (!app || !app.id) {
return system.getResultFail(-100, "未知渠道");
}
var deliveryOrderNo = obj.deliveryOrderNo; var deliveryOrderNo = obj.deliveryOrderNo;
if (!deliveryOrderNo) { if (!deliveryOrderNo) {
return system.getResultFail(-101, "deliveryOrderNo参数错误"); return system.getResultFail(-101, "deliveryOrderNo参数错误");
} }
// 1.获取交付单信息 // 1.获取交付单信息
var ordertmproduct = await this.ordertmproductSve.dao.model.findOne({ var ordertmproduct = await this.ordertmproductSve.dao.model.findOne({
where: { deliveryOrderNo: deliveryOrderNo }, where: { deliveryOrderNo: deliveryOrderNo,app_id:app.id },
raw: true raw: true
}); });
if (!ordertmproduct || !ordertmproduct.id) { if (!ordertmproduct || !ordertmproduct.id) {
...@@ -98,6 +102,8 @@ class TradeMarkService extends ServiceBase { ...@@ -98,6 +102,8 @@ class TradeMarkService extends ServiceBase {
otpObj["notes"] = obj.notes; otpObj["notes"] = obj.notes;
} }
await self.ordertmproductSve.dao.update(otpObj, t);//商标交付单 修改商标图样 await self.ordertmproductSve.dao.update(otpObj, t);//商标交付单 修改商标图样
var logMsg = { sourceOrderNo: deliveryOrderNo, opContent: "修改订单信息", app_id: app.id, isShow: 1 };
await self.orderflowDao.create(logMsg, t);
return system.getResultSuccess(); return system.getResultSuccess();
}) })
} }
...@@ -113,17 +119,21 @@ class TradeMarkService extends ServiceBase { ...@@ -113,17 +119,21 @@ class TradeMarkService extends ServiceBase {
*/ */
async updateNclInfo(obj) { async updateNclInfo(obj) {
var user = obj.user; var user = obj.user;
var app = obj.app;
var self = this; var self = this;
if (!user || !user.id) { if (!user || !user.id) {
return system.getResultFail(-100, "未知用户"); return system.getResultFail(-100, "未知用户");
} }
if (!app || !app.id) {
return system.getResultFail(-100, "未知渠道");
}
var deliveryOrderNo = obj.deliveryOrderNo; var deliveryOrderNo = obj.deliveryOrderNo;
if (!deliveryOrderNo) { if (!deliveryOrderNo) {
return system.getResultFail(-101, "deliveryOrderNo参数错误"); return system.getResultFail(-101, "deliveryOrderNo参数错误");
} }
// 1.获取交付单信息 // 1.获取交付单信息
var ordertmproduct = await this.ordertmproductSve.dao.model.findOne({ var ordertmproduct = await this.ordertmproductSve.dao.model.findOne({
where: { deliveryOrderNo: deliveryOrderNo }, where: { deliveryOrderNo: deliveryOrderNo,app_id:app.id },
raw: true raw: true
}); });
if (!ordertmproduct || !ordertmproduct.id) { if (!ordertmproduct || !ordertmproduct.id) {
...@@ -192,6 +202,8 @@ class TradeMarkService extends ServiceBase { ...@@ -192,6 +202,8 @@ class TradeMarkService extends ServiceBase {
updateuser: user.nickname updateuser: user.nickname
}; };
await self.ordertmproductSve.dao.update(otpObj, t);//商标交付单 修改大类列表 await self.ordertmproductSve.dao.update(otpObj, t);//商标交付单 修改大类列表
var logMsg = { sourceOrderNo: deliveryOrderNo, opContent: "修改订单信息", app_id: app.id, isShow: 1 };
await self.orderflowDao.create(logMsg, t);
return system.getResultSuccess(); return system.getResultSuccess();
}) })
} }
......
...@@ -96,6 +96,9 @@ class ToolService { ...@@ -96,6 +96,9 @@ class ToolService {
}; };
//加密信息 //加密信息
async encryptStr(app, opStr) { async encryptStr(app, opStr) {
if (!opStr) {
return system.getResult(null, "opStr is empty");
}
let keyHex = cryptoJS.enc.Utf8.parse(app.uappKey); let keyHex = cryptoJS.enc.Utf8.parse(app.uappKey);
let ivHex = cryptoJS.enc.Utf8.parse(app.appSecret.substring(0, 8)); let ivHex = cryptoJS.enc.Utf8.parse(app.appSecret.substring(0, 8));
var cipherStr = cryptoJS.TripleDES.encrypt(opStr, keyHex, { iv: ivHex }).toString(); var cipherStr = cryptoJS.TripleDES.encrypt(opStr, keyHex, { iv: ivHex }).toString();
...@@ -103,6 +106,9 @@ class ToolService { ...@@ -103,6 +106,9 @@ class ToolService {
} }
//解密信息 //解密信息
async decryptStr(app, opStr) { async decryptStr(app, opStr) {
if (!opStr) {
return system.getResult(null, "opStr is empty");
}
let keyHex = cryptoJS.enc.Utf8.parse(app.uappKey); let keyHex = cryptoJS.enc.Utf8.parse(app.uappKey);
let ivHex = cryptoJS.enc.Utf8.parse(app.appSecret.substring(0, 8)); let ivHex = cryptoJS.enc.Utf8.parse(app.appSecret.substring(0, 8));
var bytes = cryptoJS.TripleDES.decrypt(opStr, keyHex, { var bytes = cryptoJS.TripleDES.decrypt(opStr, keyHex, {
......
...@@ -141,11 +141,11 @@ class System { ...@@ -141,11 +141,11 @@ class System {
var bucketlist = notice_count.buckets; var bucketlist = notice_count.buckets;
var bucklist = []; var bucklist = [];
bucketlist.forEach(function (d) { bucketlist.forEach(function (d) {
var notice_issue=d.key; var notice_issue = d.key;
var date=d.date_max.value; var date = d.date_max.value;
var data={ var data = {
notice_issue:notice_issue, notice_issue: notice_issue,
date:date date: date
} }
bucklist.push(data); bucklist.push(data);
}) })
...@@ -200,7 +200,7 @@ class System { ...@@ -200,7 +200,7 @@ class System {
var objabspath = classpath + "/" + filename + ".js"; var objabspath = classpath + "/" + filename + ".js";
if (System.objTable[objabspath] != null) { if (System.objTable[objabspath] != null) {
console.log(objabspath,"get cached obj...."); console.log(objabspath, "get cached obj....");
return System.objTable[objabspath]; return System.objTable[objabspath];
} else { } else {
console.log("no cached..."); console.log("no cached...");
...@@ -309,4 +309,7 @@ System.signFail = 1300; ...@@ -309,4 +309,7 @@ System.signFail = 1300;
//获取访问token失败 //获取访问token失败
System.getAppInfoFail = 1130; System.getAppInfoFail = 1130;
//已经存在信息
System.existData = 1400;
module.exports = System; module.exports = System;
\ No newline at end of file
...@@ -2,8 +2,8 @@ const Client = require('aliyun-api-gateway').Client; ...@@ -2,8 +2,8 @@ const Client = require('aliyun-api-gateway').Client;
var RPCClient = require('@alicloud/pop-core').RPCClient; var RPCClient = require('@alicloud/pop-core').RPCClient;
// const client = new Client('203756805', 'crkyej0xlmqa6bmvqijun6ltxparllyn'); // const client = new Client('203756805', 'crkyej0xlmqa6bmvqijun6ltxparllyn');//开发
const client = new Client('203763771', 'e5e2ytnn6nrkr9qnqk4w5e6z0xlhkznu'); const client = new Client('203763771', 'e5e2ytnn6nrkr9qnqk4w5e6z0xlhkznu');//线上
class aliyunClient { class aliyunClient {
constructor() { constructor() {
// this.aliReqUrl = "https://aliapi.gongsibao.com/tm/springboard"; // this.aliReqUrl = "https://aliapi.gongsibao.com/tm/springboard";
......
...@@ -7,30 +7,57 @@ bluebird.promisifyAll(redis); ...@@ -7,30 +7,57 @@ bluebird.promisifyAll(redis);
class RedisClient { class RedisClient {
constructor() { constructor() {
const redisConfig = settings.redis(); const redisConfig = settings.redis();
this.client = redis.createClient({ this.client = null;
host: redisConfig.host, if (!redisConfig.password) {
port: redisConfig.port, this.client = redis.createClient({
password: redisConfig.password, host: redisConfig.host,
db: redisConfig.db, port: redisConfig.port,
retry_strategy: function (options) { db: redisConfig.db,
// if (options.error && options.error.code === 'ECONNREFUSED') { retry_strategy: function (options) {
// // End reconnecting on a specific error and flush all commands with // if (options.error && options.error.code === 'ECONNREFUSED') {
// // a individual error // // End reconnecting on a specific error and flush all commands with
// return new Error('The server refused the connection'); // // a individual error
// } // return new Error('The server refused the connection');
if (options.total_retry_time > 1000 * 60 * 60) { // }
// End reconnecting after a specific timeout and flush all commands if (options.total_retry_time > 1000 * 60 * 60) {
// with a individual error // End reconnecting after a specific timeout and flush all commands
return new Error('Retry time exhausted'); // with a individual error
return new Error('Retry time exhausted');
}
if (options.attempt > 10) {
// End reconnecting with built in error
return 10000;
}
// reconnect after
return Math.min(options.attempt * 100, 3000);
} }
if (options.attempt > 10) { });
// End reconnecting with built in error } else {
return 10000; this.client = redis.createClient({
host: redisConfig.host,
port: redisConfig.port,
password: redisConfig.password,
db: redisConfig.db,
retry_strategy: function (options) {
// if (options.error && options.error.code === 'ECONNREFUSED') {
// // End reconnecting on a specific error and flush all commands with
// // a individual error
// return new Error('The server refused the connection');
// }
if (options.total_retry_time > 1000 * 60 * 60) {
// End reconnecting after a specific timeout and flush all commands
// with a individual error
return new Error('Retry time exhausted');
}
if (options.attempt > 10) {
// End reconnecting with built in error
return 10000;
}
// reconnect after
return Math.min(options.attempt * 100, 3000);
} }
// reconnect after });
return Math.min(options.attempt * 100, 3000); }
}
});
// return client.multi().get('foo').execAsync().then(function(res) { // return client.multi().get('foo').execAsync().then(function(res) {
// console.log(res); // => 'bar' // console.log(res); // => 'bar'
......
...@@ -60,56 +60,56 @@ module.exports = function (app) { ...@@ -60,56 +60,56 @@ module.exports = function (app) {
res.end(JSON.stringify(r)); res.end(JSON.stringify(r));
}); });
}); });
app.get('/api/:gname/:qname/:method', function (req, res) { // app.get('/api/: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;
req.uagent = req.headers["user-agent"]; // req.uagent = req.headers["user-agent"];
req.classname = classPath; // req.classname = classPath;
var params = []; // var params = [];
params.push(gname); // params.push(gname);
params.push(methodName); // params.push(methodName);
params.push(req.body); // params.push(req.body);
params.push(req.query); // params.push(req.query);
params.push(req); // params.push(req);
var p = null; // var p = null;
var invokeObj = system.getObject("api." + classPath); // var invokeObj = system.getObject("api." + classPath);
if (invokeObj["doexec"]) { // if (invokeObj["doexec"]) {
p = invokeObj["doexec"].apply(invokeObj, params); // p = invokeObj["doexec"].apply(invokeObj, params);
} // }
p.then(r => { // p.then(r => {
res.end(JSON.stringify(r)); // res.end(JSON.stringify(r));
}); // });
}); // });
app.post('/api/:gname/:qname/:method', function (req, res) { // app.post('/api/: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"];
var params = []; // var params = [];
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;
req.uagent = req.headers["user-agent"]; // req.uagent = req.headers["user-agent"];
req.classname = classPath; // req.classname = classPath;
params.push(gname); // params.push(gname);
params.push(methodName); // params.push(methodName);
params.push(req.query); // params.push(req.query);
params.push(req.body); // params.push(req.body);
params.push(req); // params.push(req);
var p = null; // var p = null;
var invokeObj = system.getObject("api." + classPath); // var invokeObj = system.getObject("api." + classPath);
if (invokeObj["doexec"]) { // if (invokeObj["doexec"]) {
p = invokeObj["doexec"].apply(invokeObj, params); // p = invokeObj["doexec"].apply(invokeObj, params);
} // }
p.then(r => { // p.then(r => {
res.end(JSON.stringify(r)); // res.end(JSON.stringify(r));
}); // });
}); // });
}; };
...@@ -51,19 +51,11 @@ var settings = { ...@@ -51,19 +51,11 @@ var settings = {
}, },
pushFqbossDataUrl: function () { pushFqbossDataUrl: function () {
if (this.env == "dev") { if (this.env == "dev") {
return "http://192.168.18.78:3000/";//localsettings.reqEsDevUrl; return "http://192.168.18.141:3000/";//localsettings.reqEsDevUrl;
} else { } else {
return "https://fqgirl.gongsibao.com/"; return "https://fqgirl.gongsibao.com/";
} }
}, },
reqEsAddrIc: function () {
if (this.env == "dev") {
var localsettings = require("./localsettings");
return "http://43.247.184.94:9200/";//localsettings.reqEsDevUrl;
} else {
return "http://43.247.184.94:9200/";
}
},
apiconfig: { apiconfig: {
opLogUrl: function () { opLogUrl: function () {
return settings.reqEsAddr() + "bigdata_zc_op_log/_doc?pretty"; return settings.reqEsAddr() + "bigdata_zc_op_log/_doc?pretty";
...@@ -71,182 +63,6 @@ var settings = { ...@@ -71,182 +63,6 @@ var settings = {
opLogEsIsAdd: function () { opLogEsIsAdd: function () {
return 1; return 1;
}, },
zxyTransferAppId: function () {//智薪云应用id
// return "1103817785";//线上
// return "1108171693022142467";//bpo-ceshi
return "1129284115540267010";
},
zxyTransferMchtId: function () {//智薪云商户id
// return "1103817785420820481";//线上
// return "2";//bpo-ceshi
return "1127840460046393345";
},
zxyMainId: function () {//智薪云用户签约mainId ==签约主体id
// return "57731585";//线上
// return "3";//bpo-ceshi
return "57731587";
},
zxyAppSecretKey: function () {//智薪云appSecretKey
// return "ca47edd3ae8bac3f7a68d8126d891f52";//线上
// return "ef1cd7146c1234d47f6bb4e49edfe";//bpo-ceshi
return "ea4eafab8be1d0242399f39649bfabe0";
},
zxyUserSignUrl: function () {//智薪云用户签约接口地址
return "https://payadmin.gongsibao.com";//线上
// return "http://39.106.185.66:80";
},
zxyTransferUrl: function () {//智薪云转账接口地址
return "https://pay.gongsibao.com";//线上
// return "http://39.106.185.66:80";
},
imageQueryKey: "4S3ypgaRq19bhKwB",
byslTmUrl: function () {
return settings.reqEsAddr() + "bigdata_business_gsb_no_accepted_business/_search";
},
byslDetailUrl: function () {
return settings.reqEsAddr() + "bigdata_business_gsb_no_accepted_business/_search";
},
tmSearchUrl: function () {
return settings.reqEsAddr() + "bigdata_middle_gsb_tm_info/_search";
},
tmFlowUrl: function () {
return settings.reqEsAddr() + "bigdata_middle_gsb_tm_flow/_search";
},
tmNclUrl: function () {
return settings.reqEsAddr() + "bigdata_bdc_ncl_info/_search";
},
opTmTransactionUrl: function () {//商标交易添加
return settings.reqEsAddr() + "bigdata_trademark_transaction/_doc?pretty";
},
tmTransactionUrl: function () {//商标交易检索
return settings.reqEsAddr() + "bigdata_trademark_transaction/_search";
},
tmTransactionUpdateUrl: function () {//商标交易检索更新
return settings.reqEsAddr() + "bigdata_trademark_transaction/_doc/_update_by_query";
},
agencycompanySearchUrl: function () {//代理机构名称查询
return settings.reqEsAddr() + "bigdata_agency_company/_search";
},
yyDetailSearchUrl: function () {//商标异议详情查询
return settings.reqEsAddr() + "bigdata_business_gsb_dissent_business/_search";
},
bgDetailSearchUrl: function () {//商标变更详情查询
return settings.reqEsAddr() + "bigdata_business_gsb_tm_change_business/_search";
},
nclUrl: function () {
return settings.reqEsAddr() + "bigdata_bdc_gsb_tm_ncl/_search";
},
imageQueryUrl: function () {//商标图像检索
if (settings.env == "dev") {
return "http://43.247.184.92:8004/gsb/api/v1";
} else {
return "http://43.247.184.92:8004/gsb/api/v1";
}
},
tmncloneQueryUrl: function () {//计算通过率
if (settings.env == "dev") {
return "http://192.168.18.44:7000/tmnclone?appKey=343aff200d18be6637d&nclonecode={nclonecode}&tmName={tmName}";
} else {
return "http://43.247.184.92:8007/tmnclone?appKey=343aff200d18be6637d&nclonecode={nclonecode}&tmName={tmName}";
}
},
ichemingUrl: function () {//工商核名接口
if (settings.env == "dev") {
return "http://43.247.184.92:8100/heming/";
} else {
return "http://43.247.184.92:8100/heming/";
}
},
// imageQueryKey:"4S3ypgaRq19bhKwB",
MgphoneSearchUrl: function () {
return settings.reqMgAddr() + "phones"
},
xzAllCompanySearchUrl: function () {
return settings.reqEsAddr() + "bigdata_business_gsb_tm_company_op/_search";
},
//作品版权
icworksCopyrightSearchUrl: function () {
return settings.reqEsAddrIc() + "bigdata_works_copyright_op/_search";
},
//专利查询
paSearchUrl: function () {
return settings.reqEsAddrIc() + "bigdata_patent_op/_search";
},
icmemberSearchUrl: function () {
return settings.reqEsAddrIc() + "bigdata_ic_gsb_member_op/_search";
},
icshareholderSearchUrl: function () {
return settings.reqEsAddrIc() + "bigdata_ic_gsb_shareholder_op/_search";
},
icinvestSearchUrl: function () {
return settings.reqEsAddrIc() + "bigdata_ic_gsb_invest_op/_search";
},
icchangeSearchUrl: function () {
return settings.reqEsAddrIc() + "bigdata_ic_gsb_change_op/_search";
},
iccompanynameSearchUrl: function () {
return settings.reqEsAddrIc() + "bigdata_ic_gsb_company_op/_search";
},
agencynameSearchUrl: function () {
return settings.reqEsAddr() + "bigdata_agency_company/_search";
},
iccompanycodeSearchUrl: function () {
return settings.reqEsAddrIc() + "bigdata_ic_gsb_company_op/_search";
},
iccompanyNumSearchUrl: function () {
return settings.reqEsAddrIc() + "bigdata_ic_gsb_company_op/_search";
},
icbranchSearchUrl: function () {
return settings.reqEsAddrIc() + "bigdata_ic_gsb_branch_op/_search";
},
magicSearchUrl: function () {
return settings.reqEsAddrIc() + "bigdata_magic_ic_op/_search";
},
xzCompanySearchUrl: function () {
return settings.reqEsAddr() + "bigdata_business_gsb_tm_company/_search";
},
xzDetailSearchUrl: function () {
return settings.reqEsAddr() + "bigdata_business_gsb_renewals_business/_search";
},
qcurl: "http://59.110.124.51:8250/qc?detailLink={address}",
bzLicenseForTMUrl: "http://bigdata.gongsibao.com/api/imghandle/bzLicenseForTmByUrl",
bzLicenseForTMUrl_back: "http://bigdata.gongsibao.com/api/imghandle/bzLicenseForTM",
wtsUrl: "http://bigdata.gongsibao.com/api/imghandle/deleForTM",
adjustTMSizeUrl: "http://bigdata.gongsibao.com/api/imghandle/adjustTMSize",
onLineMakeTMUrl: "http://bigdata.gongsibao.com/api/imghandle/onLineMakeTM",
toblackUrl: "https://bigdata.gongsibao.com/api/imghandle/toblack",
uploadStandardTmUrl: "https://bigdata.gongsibao.com/api/imghandle/uploadStandardTm",
makeDeleForTMUrl: "http://boss.gongsibao.com/api/imghandle/deleForTmByUrl",
makeDeleForTMUrl_back: "http://boss.gongsibao.com/api/imghandle/makeDeleForTM",
LbsAddressUrl: "http://43.247.184.92:8880/lbs/api/addresssearch",//地址查询
LbsLalUrl: "http://43.247.184.92:8889/lbs/api/lalsearch",//坐标查询
LbsCityUrl: "http://43.247.184.92:8886/lbs/api/cityseicsoftwareCopyrightSearchUrlarch",//城市查询
pdf2wordUrl: function () {
if (settings.env == "dev") {
return "http://59.110.125.77:3000/api/pdf2word/pdf2word";
} else {
return "http://59.110.125.77:3000/api/pdf2word/pdf2word";
}
},
tmZntjQueryUrl: function () {//商标智能推荐
if (settings.env == "dev") {
return "http://192.168.18.123:8005/companybusiness?appKey=343aff200d18be6637d&name={companyName}";
} else {
return "http://43.247.184.92:8005/companybusiness?appKey=343aff200d18be6637d&name={companyName}";
}
},
tmtjdlQueryUrl: function () {//根据经营范围推荐
if (settings.env == "dev") {
return "http://192.168.18.181:7000/companynclone?appKey=343aff200d18be6637d&name={companyName}&tmName={tmName}";
} else {
return "http://43.247.184.92:8006/companynclone?appKey=343aff200d18be6637d&name={companyName}&tmName={tmName}";
}
},
}, },
homePage: function () { homePage: function () {
......
...@@ -32,7 +32,6 @@ ...@@ -32,7 +32,6 @@
"express": "^4.16.2", "express": "^4.16.2",
"express-session": "^1.15.6", "express-session": "^1.15.6",
"gm": "^1.23.1", "gm": "^1.23.1",
"jdcloud-sdk-signer": "^2.0.0",
"marked": "^0.7.0", "marked": "^0.7.0",
"method-override": "^2.3.10", "method-override": "^2.3.10",
"mongoose": "^5.7.1", "mongoose": "^5.7.1",
......
示例:----------------------------------开始--------------------------------------------------------------------
示例:----------------------------------开始--------------------------------------------------------------------
ALTER TABLE p_channel ADD COLUMN totalChannelProfit DECIMAL(12,2) DEFAULT 0 COMMENT '渠道总利润';
ALTER TABLE h_page_statistics ADD COLUMN isRead int default 0 COMMENT '是否阅读,0未,1是';
ALTER TABLE b_customer_roll_pic ADD COLUMN picCategory ENUM('ip','ic','pa','icbc','common') DEFAULT 'ip';
ALTER TABLE p_customer_info DROP COLUMN customerContact;
ALTER TABLE biz_receiptvoucher modify COLUMN receiptType ENUM('sk','tk','zz','csrz','ptdsk','ptzz') DEFAULT 'sk';
示例:----------------------------------结束--------------------------------------------------------------------
ALTER TABLE c_app_product ADD COLUMN pushServiceItemCode VARCHAR(100) DEFAULT NULL COMMENT '推送到服务商的产品编码';
ALTER TABLE b_order ADD COLUMN needNoOrderNo VARCHAR(64) DEFAULT NULL COMMENT '需求订单号';
ALTER TABLE b_order_tm_product ADD COLUMN needNoOrderNo VARCHAR(64) DEFAULT NULL COMMENT '需求订单号';
ALTER TABLE b_order_tm_product modify COLUMN deliveryStatus ENUM('dqrfa','fabtg','dfwsfw','dsccl','dsh','ddj','ydj','ywc') DEFAULT 'dfwsfw';
\ No newline at end of file
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