Commit bd4aae1d by 宋毅

tj

parent 1c2ab05b
File mode changed from 100644 to 100755
const system = require("../system");
const settings = require("../../config/settings");
const axios = require('axios');
const moment = require('moment');
const { json } = require("sequelize");
const uuid = require('uuid');
class APIBase {
......@@ -26,7 +24,7 @@ class APIBase {
"GetQualificationCertificateDetail": "getQualificationCertificateDetail",
"RefusalSolution": "refusalSolution",
"SendVerificationCode": "sendVerificationCode",
};
}
//-----------------------新的模式------------------开始
......@@ -46,16 +44,19 @@ class APIBase {
result = system.getResult(null, "请求的方法返回值为空");
}
result.requestId = result.requestId || uuid.v1();
this.execClient.execLogs("reqPath:" + req.path + "执行结果", param, "brg-user-center-apibase", result, null);
if (req.body.Action && this.userCenterAction[req.body.Action]) {
return await this.handleTxResult(result);
result = await this.handleTxResult(result);
delete req.body["ActionBody"];
delete req.body["Action"];
}//处理tx返回数据
this.execClient.execLogs("reqPath:" + req.path + "执行结果", param, "brg-user-center-apibase", result, null);
return result;
} catch (e) {
console.log(e.stack, "api调用出现异常,请联系管理员..........")
var rtnerror = system.getResultFail(-200, "出现异常,error:" + e.stack);
} catch (error) {
var stackStr = error.stack ? error.stack : JSON.stringify(error);
console.log(stackStr, "api调用出现异常,请联系管理员..........")
var rtnerror = system.getResultFail(-200, "出现异常,error:" + stackStr);
rtnerror.requestId = uuid.v1();
this.execClient.execLogs("reqPath:" + req.path + "执行异常", param, "brg-user-center-apibase", null, e.stack);
this.execClient.execLogs("reqPath:" + req.path + "执行异常", param, "brg-user-center-apibase", null,stackStr);
if (req.body.Action && this.userCenterAction[req.body.Action]) {
return {
"Response": {
......
......@@ -35,6 +35,9 @@ class CommonMsgSend extends APIBase {
case "sendVerificationCode"://发送验证码
opResult = await this.utilsMsgSendSve.sendVerificationCode(actionBody.PhoneNumber);
break;
case "sendManage":
opResult = await this.utilsMsgSendSve.sendMessageVerify(actionBody);
break;
default:
opResult = system.getResult(null, "actionType参数错误");
break;
......
......@@ -85,6 +85,12 @@ class Order extends APIBase {
case "getQualificationCertificateDetail"://用户获取资质证照详情
opResult = await this.qualificationCertificateSve.getQualificationCertificateDetail(pobj);
break;
case "refundOrder"://退款接口
opResult = await this.orderinfoSve.refundOrder(pobj.actionBody);
break;
case "jftime"://计费时间修改
opResult = await this.orderinfoSve.jftime(pobj.actionBody);
break;
default:
opResult = system.getResult(null, "action_type参数错误");
break;
......
......@@ -6,6 +6,12 @@ var glob = require("glob");
class DbFactory {
constructor() {
const dbConfig = settings.database();
dbConfig.reconnect = {
max_retries: 10,
onRetry: function (count) {
console.log("connection lost, trying to reconnect (" + count + ")");
}
};
this.db = new Sequelize(dbConfig.dbname,
dbConfig.user,
dbConfig.password,
......@@ -18,38 +24,42 @@ class DbFactory {
async initModels() {
var self = this;
var modelpath = path.normalize(path.join(__dirname, '../..')) + "/models/";
// console.log(modelpath);
var models = glob.sync(modelpath + "/**/*.js");
// console.log(models.length);
models.forEach(function (m) {
self.db.import(m);
});
console.log("init models....");
}
async initRelations() {
/**
一个账户对应多个登陆用户
一个账户对应一个commany
一个APP对应多个登陆用户
一个APP有多个角色
登陆用户和角色多对多
**/
/*建立账户和用户之间的关系*/
//account--不属于任何一个app,是统一用户
//用户登录时首先按照用户名和密码检查account是否存在,如果不存在则提示账号或密码不对,如果
//存在则按照按照accountid和应用key,查看user,后台实现对应user登录
}
//async getCon(){,用于使用替换table模型内字段数据使用
getCon() {
var that = this;
// await this.db.authenticate().then(()=>{
// console.log('Connection has been established successfully.');
// }).catch(err => {
// console.error('Unable to connect to the database:', err);
// throw err;
// });
//同步模型
if (settings.env == "dev") {
//console.log(pa);
// pconfigObjs.forEach(p=>{
// console.log(p.get({plain:true}));
// });
// await this.db.models.user.create({nickName:"dev","description":"test user",openId:"testopenid",unionId:"testunionid"})
// .then(function(user){
// var acc=that.db.models.account.build({unionId:"testunionid",nickName:"dev"});
// acc.save().then(a=>{
// user.setAccount(a);
// });
// });
}
return this.db;
}
getConhb() {
var that = this;
if (settings.env == "dev") {
}
return this.dbhb;
}
}
module.exports = DbFactory;
module.exports = DbFactory;
\ No newline at end of file
......@@ -29,7 +29,7 @@ class OrderInfoDao extends Dao{
};
var sqlcount = "select count(1) as dataCount from v_order_oproduct_odelivery where product_type=:product_type and user_id=:user_id";
var sql = "SELECT order_num,delivery_status,updated_at,order_snapshot "+
var sql = "SELECT order_num,region_name,region_id,total_sum,delivery_status,pay_time,end_time,time_span,time_unit,updated_at,order_snapshot "+
" from v_order_oproduct_odelivery where product_type=:product_type and user_id=:user_id";
if(ab.ProductType=="/ic/gsreg/"){//公司注册筛选条件
if(ab.CompanyProperties){//公司性质
......
......@@ -15,11 +15,11 @@ class OrderProductDao extends Dao {
};
var sql = "SELECT order_num,product_type_name,product_type,delivery_status,delivery_status_name,"+
"updated_at,order_snapshot FROM `v_order_oproduct_odelivery` where user_id=:user_id and "+
"((deliver_content->'$.companyInfo' is not null and deliver_content->'$.companyInfo.creditCode'=:creditCode) "+
" or "+
"( deliver_content -> '$.proposerInfo' IS NOT NULL "+
"AND deliver_content -> '$.proposerInfo.businessLicense' IS NOT NULL "+
"AND deliver_content -> '$.proposerInfo.businessLicense.enterpriseCode' = :creditCode2 ))"+
"(deliver_content->'$.companyInfo' is not null and deliver_content->'$.companyInfo.creditCode'=:creditCode) "+
// " or "+
// "( deliver_content -> '$.proposerInfo' IS NOT NULL "+
// "AND deliver_content -> '$.proposerInfo.businessLicense' IS NOT NULL "+
// "AND deliver_content -> '$.proposerInfo.businessLicense.enterpriseCode' = :creditCode2 ))"+
"order by updated_at desc";
var list = await this.customQuery(sql, params);
return list;
......
const system = require("../../../system");
const Dao = require("../../dao.base");
class OrderRefundDao extends Dao {
constructor() {
super(Dao.getModelName(OrderRefundDao));
}
}
module.exports = OrderRefundDao;
......@@ -16,7 +16,7 @@ module.exports = (db, DataTypes) => {
version: true,
freezeTableName: true,
timestamps: true,
updatedAt: false,
// updatedAt: false,
//freezeTableName: true,
// define the table's name
tableName: 'b_need_solution',
......
......@@ -16,6 +16,9 @@ module.exports = (db, DataTypes) => {
time_span: DataTypes.STRING, //计费数量
time_unit: DataTypes.STRING, //计费周期 年:y,月:m,日:d,时:h,分:M,秒:s,一次性购买:p
end_time: DataTypes.DATE, //到期时间
start_time: DataTypes.DATE, //开始时间
status: DataTypes.STRING, //1正常,2隔离,3销毁
isolated_time: DataTypes.DATE, //隔离时间
servicer_code: DataTypes.STRING, //服务商
servicer_name: DataTypes.STRING
}, {
......
......@@ -18,16 +18,17 @@ class TxPushLogService extends ServiceBase {
}
//发货回调
async createCbsInstance(pobj, req) {
var self=this;
var self = this;
if (!pobj.interface.para.dealName) {
return self.returnTX(-1, "cgateway", "参数错误", null)
}
var loginfo = await this.findOne({ deal_name: pobj.interface.para.dealName, push_action_type: "orderPayNotify" });
if (loginfo) {
return self.returnTX(1, "cgateway", "ok", {"flowId":loginfo.flow_id,"resourceIds":[pobj.interface.para.dealName]})
return self.returnTX(1, "cgateway", "ok", { "flowId": loginfo.flow_id, "resourceIds": [pobj.interface.para.dealName] })
}
var flow_id=await this.getBusUid("f");
var flow_id = await this.getBusUid("f");
var newobj = {
flow_id: flow_id,
deal_name: pobj.interface.para.dealName,
......@@ -37,11 +38,11 @@ class TxPushLogService extends ServiceBase {
push_action_type: "orderPayNotify",
push_status: "2",
}
var creatlog= await this.create(newobj);
if(!creatlog){
var creatlog = await this.create(newobj);
if (!creatlog) {
return self.returnTX(-1, "cgateway", "参数错误", null)
}
pobj.logId=creatlog.dataValues.id;
pobj.logId = creatlog.dataValues.id;
var pushobj = {
"actionType": "produceData",// Y 功能名称
"actionBody": {
......@@ -52,11 +53,12 @@ class TxPushLogService extends ServiceBase {
identifyCode: "orderPayNotify"
}
};
this.execPostByTimeOut(pushobj, settings.apiconfig.opPushUrl());
return self.returnTX(1, "cgateway", "ok", {"flowId":creatlog.flow_id,"resourceIds":[pobj.interface.para.dealName]})
this.execPostByTimeOut(pushobj, settings.opPushUrl());
return self.returnTX(1, "cgateway", "ok", { "flowId": creatlog.flow_id, "resourceIds": [pobj.interface.para.dealName] })
}
//发货检查
async queryFlow(pobj) {
if (!pobj.interface.para.flowId) {
return self.returnTX(-1, "cgateway", "参数错误", null)
......@@ -65,48 +67,112 @@ class TxPushLogService extends ServiceBase {
if (!loginfo) {
return self.returnTX(-1, "cgateway", "产品不存在", null)
}
var orderInfo=await this.orderInfoDao.findOne({order_num:loginfo.dataValues.dealName});
if(!orderInfo){
var orderInfo = await this.orderInfoDao.findOne({ order_num: loginfo.dataValues.dealName });
if (!orderInfo) {
return self.returnTX(-1, "cgateway", "资源不存在", null)
}
var status=0;
if(orderInfo.status==302){
status=3;
var status = 0;
if (orderInfo.status == 302) {
status = 3;
}
return self.returnTX(1, "cgateway", "ok", {"status":status})
return self.returnTX(1, "cgateway", "ok", { "status": status })
}
//资源拉取
async queryResources(pobj) {
if (!pobj.interface.para.resourceIds[0]) {
return self.returnTX(-1, "cgateway", "参数错误", null)
}
var loginfo = await this.findOne({ flow_id: pobj.interface.para.flowId, push_action_type: "orderPayNotify" });
if (!loginfo) {
return self.returnTX(-1, "cgateway", "产品不存在", null)
}
var orderInfo=await this.orderInfoDao.findOne({order_num:loginfo.dataValues.dealName});
if(!orderInfo){
var orderProduct = await this.orderProductDao.findOne({ order_num: loginfo.dataValues.dealName });
if (!orderProduct) {
return self.returnTX(-1, "cgateway", "资源不存在", null)
}
var status=0;
if(orderInfo.status==302){
status=3;
var r = {
"eventId": 186993048,
"version": 1,
"componentName": "cgateway",
"timestamp": 1500912302,
"returnValue": 0,
"returnCode": 0,
"returnMessage": "ok",
"data": {
"resources": [
{
"appId": appId,
"uin": ownerUin,
"resourceId": tx_order_snapshot,//站内信自定义字段层级和此字段同一层级
"projectId": 0,
"autoRenewFlag": 0,
"region": 1,
"zoneId": 200001,
"status": orderProduct.status,
"payMode": 1, // 必传,1预付费 0后付费
"isolatedTimestamp": orderProduct.isolated_timestamp || "0000-00-00 00:00:00",
"createTime": orderProduct.start_time,
"expireTime": orderProduct.end_time || "0000-00-00 00:00:00",
"goodsDetail": orderProduct.tx_order_snapshot.goodsDetail
}
]
}
}
return self.returnTX(1, "cgateway", "ok", {"status":loginfo.push_status})
return self.returnTX(1, "cgateway", "ok", { "status": loginfo.push_status })
}
async isolateResource(pobj){
// {
// "version": "1.0",
// "caller": "mall_logic",
// "componentName": "mall_logic",
// "password": "mall_logic",
// "callee": "cdb",
// "eventId": 843836670,
// "seqId": "1501802577.465723597230350480",
// "spanId": "logical;1",
// "timestamp": 1501802577,
// "interface": {
// "interfaceName": "qcloud.PRODUCT_NAME.isolateResource",
// "para": {
// "appId": 123,
// "uin": "123",
// "operateUin": "123",
// "type": "cdb",
// "region": 4,
// "resourceId": "cdb-dfe8t7i9"
// "renewFlag": 0,
// "newDeadline": "2016-10-22 12:00:00",
// "billingIsolateType": "refund",
// "billingExtParam":{
// "sv_xxx":"sv_xxx"// 查询用量时业务返回的数据
// }
// }
// }
// }
//隔离资源
async isolateResource(pobj) {
if (!pobj.interface.para.resourceId) {
return self.returnTX(-1, "cgateway", "参数错误", null)
return self.returnTX(-1, "mall_logic", "参数错误", null)
}
}
async queryResources(pobj){
//新购参数检查
async checkCreate(pobj) {
if (!pobj.interface || !pobj.interface.para || !pobj.interface.para.goodsDetail) {
return self.returnTX(-1, "qcloud_domain_register", "参数错误", null)
}
if (pobj.interface.para.goodsDetail.goodsNum > 1) {
return this.returnTX(0, "qcloud_domain_register", "ok", { "status": 2 })
}
return this.returnTX(0, "qcloud_domain_register", "ok", { "status": 0 })
}
}
module.exports = TxPushLogService;
......@@ -94,7 +94,8 @@ class NeedInfoService extends ServiceBase {
notes: actionBody.Notes,
servicer_code: actionBody.ServicerCode,
servicer_name: actionBody.ServicerName,
status: 1
status: 1,
user_name: actionBody.UserName
}
if (actionBody.CompanyName) {
datavalue.need_info = {
......@@ -111,12 +112,12 @@ class NeedInfoService extends ServiceBase {
"actionBody": {
notifyUrl: "http://192.168.1.113:4011/api/receive/notifyApi/springBoard",
actionType: "needSubmit",
pushUrl: settings.apiconfig.deliveryUrl() + "/entService/consultation/springBoard",
pushUrl: settings.deliveryUrl() + "/entService/consultation/springBoard",
messageBody: actionBody,
identifyCode: "needSubmit"
}
};
var r = await this.execPostByTimeOut(pushobj, settings.apiconfig.opPushUrl());
var r = await this.execPostByTimeOut(pushobj, settings.opPushUrl());
if (r.status < 1) {
return system.getResultFail(-102, "Post error");
}
......
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
const {PDICT,MsgTemplate} = require("../../../../config/platform");
class NeedSolutionService extends ServiceBase {
constructor() {
super("need", ServiceBase.getDaoName(NeedSolutionService));
this.needInfoDao = system.getObject("db.need.needInfoDao");
this.utilsMsgSendSve = system.getObject("service.utilsSve.utilsMsgSendSve");
}
/**
* 发送短信通知
* @param {*} mobile 接收人手机号
* @param {*} userId 用户id
* @param {*} consultType 产品类型
* @param {*} consultName 产品类型名称
* @param {*} status 状态
*/
async sendSmsNotification(mobile,userId,consultType,consultName,status){
try {
var nameArr = consultName?consultName.split("/"):[];
var productName = null;
if(nameArr && nameArr.length==4){
productName = nameArr[2];
}
var params = {phoneNumber:mobile,messageBody:null};
var webinfoParams = {"title":null,"subAccount":userId,"messageBody":null};//站内信通知参数
var messageBody = null;
var webinfoMessageBody = null;
if(consultType.indexOf("/ic/")>=0){//工商产品
messageBody=MsgTemplate.ic.need[status] && MsgTemplate.ic.need[status].sms?MsgTemplate.ic.need[status].sms:"";
messageBody = messageBody.replace(/{productName}/g,productName);
webinfoMessageBody=MsgTemplate.ic.need[status] && MsgTemplate.ic.need[status].webinfo?MsgTemplate.ic.need[status].webinfo:"";
webinfoMessageBody = webinfoMessageBody.replace(/{productName}/g,productName);
webinfoParams.title = MsgTemplate.ic.need[status] && MsgTemplate.ic.need[status].webinfotitle?MsgTemplate.ic.need[status].webinfotitle:"";
}
if(consultType.indexOf("/qcfw/")>=0){//资质证照产品
}
// console.log(messageBody,"ddddddddd");
if(userId && webinfoParams.title && messageBody && messageBody.indexOf("{")<0 && messageBody.indexOf("}")<0 && webinfoMessageBody && webinfoMessageBody.indexOf("{")<0 && webinfoMessageBody.indexOf("}")<0 ){
params.messageBody =messageBody;
webinfoParams.messageBody = webinfoMessageBody;
// await this.utilsMsgSendSve.sendMessageByPhone(params);//发送短信
await this.utilsMsgSendSve.sendMessageVerify({phoneList:[params],subAccountList:[webinfoParams]});
}
return;
} catch (e) {
this.execClient.execLogs("needSolutionSve.js/sendSmsNotification(发送短信通知)方法出现异常", {mobile:mobile,consultType:consultType,consultName:consultName,status:status}, "", null, e.stack);
return;
}
}
//服务商提交/修改方案
async submitSolution(pobj) {
......@@ -53,6 +100,8 @@ class NeedSolutionService extends ServiceBase {
return await self.db.transaction(async function (t) {
await self.dao.update(updateObj, t);
await self.needInfoDao.update({ id: needinfo.id, status: "3" }, t);
//发送短信通知
self.sendSmsNotification("15675201933",needinfo.user_id,needinfo.consult_type,needinfo.consult_type_name,3);
return system.getResultSuccess();
});
......@@ -76,6 +125,8 @@ class NeedSolutionService extends ServiceBase {
return await self.db.transaction(async function (t) {
await self.needInfoDao.update({ id: needinfo.id, status: "3" }, t);
await self.dao.create(createObj, t);
//发送短信通知
self.sendSmsNotification("15675201933",needinfo.consult_type,needinfo.consult_type_name,3);
return system.getResultSuccess(solution_num);
});
......@@ -111,12 +162,12 @@ class NeedSolutionService extends ServiceBase {
"actionBody": {
notifyUrl: "",
actionType: "needClose",
pushUrl: settings.apiconfig.deliveryUrl() + "/entService/consultation/springBoard",
pushUrl: settings.deliveryUrl() + "/entService/consultation/springBoard",
messageBody: actionBody,
identifyCode: "needClose"
}
};
var r = await self.execPostByTimeOut(pushobj, settings.apiconfig.opPushUrl());
var r = await self.execPostByTimeOut(pushobj, settings.opPushUrl());
if (r.status < 1) {
return system.getResultFail(-102, "Post error");
}
......@@ -127,3 +178,7 @@ class NeedSolutionService extends ServiceBase {
}
}
module.exports = NeedSolutionService;
// var task = new NeedSolutionService();
// task.sendSmsNotification("15675201933","/ic/cpreg/","/工商服务/云上园区注册/",3).then(d=>{
// console.log("eeeeeeeeeeeeee"+d);
// })
\ No newline at end of file
......@@ -2,6 +2,7 @@ const system = require("../../../system");
const ServiceBase = require("../../sve.base");
var settings = require("../../../../config/settings");
const {PDICT,MsgTemplate} = require("../../../../config/platform");
var moment = require('moment');
class OrderDeliveryService extends ServiceBase {
constructor() {
super("order", ServiceBase.getDaoName(OrderDeliveryService));
......@@ -122,6 +123,9 @@ class OrderDeliveryService extends ServiceBase {
if (orderinfo.order_status == 310 || orderinfo.order_status == 320 || orderinfo.order_status == 330) {
return system.getResultFail(-301, "订单状态错误");
}
var orderproduct = await this.orderProductDao.model.findOne({
where:{order_num:ab.orderNum },raw:true
});
//获取交付信息
var orderdeliveryinfo = await this.dao.model.findOne({
where: { order_num: ab.orderNum }, raw: true
......@@ -129,7 +133,7 @@ class OrderDeliveryService extends ServiceBase {
if (!orderdeliveryinfo || !orderdeliveryinfo.id) {
return system.getResultFail(-302, "未知订单交付信息");
}
if (orderdeliveryinfo.delivery_status > ab.status) {
if (orderdeliveryinfo.delivery_status > ab.status && orderproduct && orderproduct.product_type!="/qcfw/ediannals/" && orderproduct.product_type!="/qcfw/icpannals/") {
return system.getResultFail(-303, "订单交付状态不能退回");
}
var deliver_content = orderdeliveryinfo.deliver_content || {};
......@@ -146,7 +150,7 @@ class OrderDeliveryService extends ServiceBase {
this.createApplyInfo(ab.orderNum);//创建申请主体信息
}
//发送短信通知
// this.sendSmsNotification(ab.orderNum,ab.status);
this.sendSmsNotification(ab.orderNum,ab.status);
return system.getResultSuccess();
}
/**
......@@ -156,55 +160,131 @@ class OrderDeliveryService extends ServiceBase {
*/
async sendSmsNotification(orderNum,status){
try {
var smsParams = {phoneNumber:null,messageBody:null};//短信通知参数
var webinfoParams = {"title":null,"subAccount":null,"messageBody":null};//站内信通知参数
//获取订单详情
var orderDetailRes = await this.dao.getOrderDetailByOrderNum(orderNum);
if(orderDetailRes && orderDetailRes.length>0){
var orderdetail = orderDetailRes[0];
var params = {phoneNumber:null,messageBody:null};
params.phoneNumber=orderdetail.order_snapshot && orderdetail.order_snapshot.contactsPhone?orderdetail.order_snapshot.contactsPhone:"13075556693";//联系人手机号
if(params.phoneNumber && orderdetail.product_type ){
var productType=orderdetail.product_type;//产品类型
var product_type_name = orderdetail.product_type_name;//产品类型名称
var productArr = product_type_name.split("/");
if(productArr && productArr.length==4){
product_type_name = productArr[2];
}
if(productType=="/ic/cpreg/" && status==130){
var orderdetail = orderDetailRes[0];//订单详情信息
var productType=orderdetail.product_type;//产品类型
var product_type_name = orderdetail.product_type_name;//产品类型名称
var productArr = product_type_name.split("/");
if(productArr && productArr.length==4){
product_type_name = productArr[2];
}
//联系人电话
smsParams.phoneNumber=orderdetail.order_snapshot && orderdetail.order_snapshot.contactsPhone?orderdetail.order_snapshot.contactsPhone:"15675201933";//联系人手机号
//用户id
webinfoParams.subAccount=orderdetail.user_id || "";//用户id
//判断联系人手机号、用户id、产品类型
if(smsParams.phoneNumber && webinfoParams.subAccount && orderdetail.product_type){
if(productType=="/ic/cpreg/" && status==130){//云上公司注册工商审核环节不通知
return;
}
var messageBody= null;//短信模板
var smsMessageBody= null;//短信模板
var webinfoMessageBody = null;//站内信模板
if(productType.indexOf("/ic/")>=0){//工商产品
messageBody=MsgTemplate.ic.order[status] && MsgTemplate.ic.order[status].sms?MsgTemplate.ic.order[status].sms:"";
smsMessageBody=MsgTemplate.ic.order[status] && MsgTemplate.ic.order[status].sms?MsgTemplate.ic.order[status].sms:"";
webinfoMessageBody=MsgTemplate.ic.order[status] && MsgTemplate.ic.order[status].webinfo?MsgTemplate.ic.order[status].webinfo:"";
webinfoParams.title = MsgTemplate.ic.order[status] && MsgTemplate.ic.order[status].webinfotitle?MsgTemplate.ic.order[status].webinfotitle:"";
if(smsMessageBody && webinfoMessageBody){//判断短信模板、站内信模板都有值
smsMessageBody = smsMessageBody.replace(/{productName}/g,product_type_name)
.replace(/{orderNum}/g,orderdetail.order_num);
webinfoMessageBody = webinfoMessageBody.replace(/{productName}/g,product_type_name)
.replace(/{orderNum}/g,orderdetail.order_num);
if(orderdetail.end_time){//过期时间
smsMessageBody = smsMessageBody.replace(/{expirationDate}/g,orderdetail.end_time);
webinfoMessageBody = webinfoMessageBody.replace(/{expirationDate}/g,orderdetail.end_time);
var m1 = moment(new Date());
var m2 = moment(new Date(orderdetail.end_time));
var days = m2.diff(m1,'day');
if(days && days>=0){//剩余天数
smsMessageBody = smsMessageBody.replace(/{timeRemaining}/g,days);
webinfoMessageBody = webinfoMessageBody.replace(/{timeRemaining}/g,days);
}
}
var deliverContent = orderdetail.deliver_content;
if(deliverContent){
//注册园区
if(productType=="/ic/cpreg/" && deliverContent.companyInfo && deliverContent.companyInfo.registeredPark){
smsMessageBody = smsMessageBody.replace(/{parkName}/g,deliverContent.companyInfo.registeredPark);
webinfoMessageBody = webinfoMessageBody.replace(/{parkName}/g,deliverContent.companyInfo.registeredPark);
}
//邮寄信息
if(deliverContent.expressInfo && deliverContent.expressInfo.logisticsCompany && deliverContent.expressInfo.trackingNumber ){
smsMessageBody = smsMessageBody.replace(/{logisticsCompany}/g,deliverContent.expressInfo.logisticsCompany)
.replace(/{waybillNo}/g,deliverContent.expressInfo.trackingNumber);
webinfoMessageBody = webinfoMessageBody.replace(/{logisticsCompany}/g,deliverContent.expressInfo.logisticsCompany)
.replace(/{waybillNo}/g,deliverContent.expressInfo.trackingNumber);
}
}
}
}
if(productType.indexOf("/qcfw/")>=0){//资质证照
messageBody=MsgTemplate.qcfw.order[status] && MsgTemplate.qcfw.order[status].sms?MsgTemplate.qcfw.order[status].sms:"";
}
if(messageBody){
messageBody = messageBody.replace(/{productName}/g,product_type_name)
.replace(/{orderNum}/g,orderdetail.order_num);
if(orderdetail.end_time){//过期时间
messageBody = messageBody.replace(/{expirationDate}/g,orderdetail.end_time);
}
webinfoParams.title = MsgTemplate.qcfw.order[status] && MsgTemplate.qcfw.order[status].webinfotitle?MsgTemplate.qcfw.order[status].webinfotitle:"";
if(status==170 && (productType=="/qcfw/icpannals/" || productType=="/qcfw/ediannals/" )){//年报已完成
smsMessageBody=MsgTemplate.qcfw.order[status] && MsgTemplate.qcfw.order[status].qcsms?MsgTemplate.qcfw.order[status].qcsms:"";
webinfoMessageBody=MsgTemplate.qcfw.order[status] && MsgTemplate.qcfw.order[status].qcwebinfo?MsgTemplate.qcfw.order[status].qcwebinfo:"";
}else{
smsMessageBody=MsgTemplate.qcfw.order[status] && MsgTemplate.qcfw.order[status].sms?MsgTemplate.qcfw.order[status].sms:"";
webinfoMessageBody=MsgTemplate.qcfw.order[status] && MsgTemplate.qcfw.order[status].webinfo?MsgTemplate.qcfw.order[status].webinfo:"";
var deliverContent = orderdetail.deliver_content;
if(deliverContent){
if(productType=="/ic/cpreg/" && deliverContent.companyInfo && deliverContent.companyInfo.registeredPark){//注册园区
messageBody = messageBody.replace(/{parkName}/g,deliverContent.companyInfo.registeredPark);
}
if(smsMessageBody){
smsMessageBody = smsMessageBody.replace(/{productName}/g,product_type_name);
webinfoMessageBody = webinfoMessageBody.replace(/{productName}/g,product_type_name);
if(orderdetail.user_id){//用户账号
smsMessageBody = smsMessageBody.replace(/{userId}/g,orderdetail.user_id);
webinfoMessageBody = webinfoMessageBody.replace(/{userId}/g,orderdetail.user_id);
}
if(orderdetail.user_name){//用户昵称
smsMessageBody = smsMessageBody.replace(/{userName}/g,orderdetail.user_name);
webinfoMessageBody = webinfoMessageBody.replace(/{userName}/g,orderdetail.user_name);
}
if(productArr && productArr[1]){//产品一类名称
smsMessageBody = smsMessageBody.replace(/{productType}/g,productArr[1]);
webinfoMessageBody = webinfoMessageBody.replace(/{productType}/g,productArr[1]);
}
var deliverContent = orderdetail.deliver_content;
if(deliverContent){
//邮寄信息
if(deliverContent.expressInfo && deliverContent.expressInfo.logisticsCompany && deliverContent.expressInfo.trackingNumber ){
smsMessageBody = smsMessageBody.replace(/{logisticsCompany}/g,deliverContent.expressInfo.logisticsCompany)
.replace(/{waybillNo}/g,deliverContent.expressInfo.trackingNumber);
webinfoMessageBody = webinfoMessageBody.replace(/{logisticsCompany}/g,deliverContent.expressInfo.logisticsCompany)
.replace(/{waybillNo}/g,deliverContent.expressInfo.trackingNumber);
}
//资质证号
if(deliverContent.qualification && deliverContent.qualification.certificateNumber){
smsMessageBody = smsMessageBody.replace(/{qcNo}/g,deliverContent.qualification.certificateNumber);
webinfoMessageBody = webinfoMessageBody.replace(/{qcNo}/g,deliverContent.qualification.certificateNumber);
}
}
var orderSnapshot = orderdetail.order_snapshot;//订单快照
if(orderSnapshot && orderSnapshot.serviceArea){//服务地址
smsMessageBody = smsMessageBody.replace(/{area}/g,orderSnapshot.serviceArea);
webinfoMessageBody = webinfoMessageBody.replace(/{area}/g,orderSnapshot.serviceArea);
}
}
params.messageBody = messageBody;
params.phoneNumber = "13075556693";
console.log(JSON.stringify(params))
this.utilsMsgSendSve.sendMessageByPhone(params);//发送短信
}
//判断模板是否有值,模板中是否存在未赋值变量
if(!smsMessageBody || smsMessageBody.indexOf("{")>=0 || !webinfoMessageBody || webinfoMessageBody.indexOf("{")>=0){
return;
}
smsParams.messageBody = smsMessageBody;
webinfoParams.messageBody = webinfoMessageBody;
smsParams.phoneNumber = "15675201933";//测试电话号码
await this.utilsMsgSendSve.sendMessageVerify({phoneList:[smsParams],subAccountList:[webinfoParams]});//发送短信
}
}
return;
}
} catch (e) {
this.execClient.execLogs("orderDeliverySve.js/sendSmsNotification(发送短信通知)方法出现异常", {mobile:mobile,orderDeliveryInfo:orderDeliveryInfo}, "", null, e.stack);
this.execClient.execLogs("orderDeliverySve.js/sendSmsNotification(发送短信通知)方法出现异常", {orderNum:orderNum,status:status}, "", null, e.stack);
return;
}
......@@ -276,46 +356,95 @@ class OrderDeliveryService extends ServiceBase {
}
if (orderdelivery && orderdelivery.deliver_content && orderdelivery.user_id) {
var deliver_content = orderdelivery.deliver_content;
if (deliver_content && deliver_content.companyInfo && deliver_content.companyInfo.creditCode) {
var companyInfo = deliver_content.companyInfo;
var applyinfo = await this.applyInfoDao.model.findOne({
where: { credit_code:deliver_content.companyInfo.creditCode, user_id: orderdelivery.user_id },
raw: true
});
if (!applyinfo || !applyinfo.id) {//创建申请实体
var newObj = {
servicer_code: orderdelivery.servicer_code,
servicer_name: orderdelivery.servicer_name,
user_id: orderdelivery.user_id,
user_name: orderdelivery.user_name,
apply_name: companyInfo.companyName,
credit_code: companyInfo.creditCode,
apply_type:companyInfo.companyType=="个体工商户" ? 2 : 1,
operator: deliver_content.managerInfo && deliver_content.managerInfo.operatorName?deliver_content.managerInfo.operatorName:"",
regist_capital: companyInfo.registeredCapital,
business_term: companyInfo.businessTerm,
establish_time: companyInfo.establishedTime,
domicile: companyInfo.residenceAddress,
ent_type: companyInfo.companyType,
business_scope: companyInfo.businessScope
};
applyinfo = await this.applyInfoDao.create(newObj);
} else {//更新实体信息
var updateObj = {
apply_name: companyInfo.companyName,
credit_code: companyInfo.creditCode,
apply_type:companyInfo.companyType=="个体工商户" ? 2 : 1,
operator: deliver_content.managerInfo && deliver_content.managerInfo.operatorName?deliver_content.managerInfo.operatorName:"",
regist_capital: companyInfo.registeredCapital,
business_term: companyInfo.businessTerm,
establish_time: companyInfo.establishedTime,
domicile: companyInfo.residenceAddress,
ent_type: companyInfo.companyType,
business_scope: companyInfo.businessScope
};
await this.applyInfoDao.model.update(updateObj, { where: { id: applyinfo.id } });//更新主体信息
if(orderdelivery.product_type.indexOf("/ic/")>=0){
if (deliver_content && deliver_content.companyInfo && deliver_content.companyInfo.creditCode) {
var companyInfo = deliver_content.companyInfo;
var applyinfo = await this.applyInfoDao.model.findOne({
where: { credit_code:deliver_content.companyInfo.creditCode, user_id: orderdelivery.user_id },
raw: true
});
if (!applyinfo || !applyinfo.id) {//创建申请实体
var newObj = {
servicer_code: orderdelivery.servicer_code,
servicer_name: orderdelivery.servicer_name,
user_id: orderdelivery.user_id,
user_name: orderdelivery.user_name,
apply_name: companyInfo.companyName,
credit_code: companyInfo.creditCode,
apply_type:companyInfo.companyType=="个体工商户" ? 2 : 1,
operator: deliver_content.managerInfo && deliver_content.managerInfo.operatorName?deliver_content.managerInfo.operatorName:"",
regist_capital: companyInfo.registeredCapital,
business_term: companyInfo.businessTerm,
establish_time: companyInfo.establishedTime,
domicile: companyInfo.residenceAddress,
ent_type: companyInfo.companyType,
business_scope: companyInfo.businessScope
};
applyinfo = await this.applyInfoDao.create(newObj);
} else {//更新实体信息
var updateObj = {
apply_name: companyInfo.companyName,
credit_code: companyInfo.creditCode,
apply_type:companyInfo.companyType=="个体工商户" ? 2 : 1,
operator: deliver_content.managerInfo && deliver_content.managerInfo.operatorName?deliver_content.managerInfo.operatorName:"",
regist_capital: companyInfo.registeredCapital,
business_term: companyInfo.businessTerm,
establish_time: companyInfo.establishedTime,
domicile: companyInfo.residenceAddress,
ent_type: companyInfo.companyType,
business_scope: companyInfo.businessScope
};
await this.applyInfoDao.model.update(updateObj, { where: { id: applyinfo.id } });//更新主体信息
}
}
}
// else if(orderdelivery.product_type.indexOf("/qcfw/")>=0){
// if (deliver_content && deliver_content.proposerInfo && deliver_content.proposerInfo.businessLicense && deliver_content.proposerInfo.businessLicense.enterpriseCode) {
// var companyInfo = deliver_content.proposerInfo.businessLicense;
// var applyinfo = await this.applyInfoDao.model.findOne({
// where: { credit_code:companyInfo.enterpriseCode, user_id: orderdelivery.user_id },
// raw: true
// });
// if (!applyinfo || !applyinfo.id) {//创建申请实体
// var newObj = {
// servicer_code: orderdelivery.servicer_code,
// servicer_name: orderdelivery.servicer_name,
// user_id: orderdelivery.user_id,
// user_name: orderdelivery.user_name,
// apply_name: companyInfo.name,
// credit_code: companyInfo.enterpriseCode,
// apply_type:companyInfo.type=="个体工商户" ? 2 : 1,
// operator: companyInfo.legalRepresentative || "",
// regist_capital: companyInfo.registeredCapital,
// business_term: companyInfo.businessTerm,
// establish_time: companyInfo.createdAt,
// domicile: companyInfo.address,
// ent_type: companyInfo.type,
// business_scope: companyInfo.scopeBusiness
// };
// applyinfo = await this.applyInfoDao.create(newObj);
// } else {//更新实体信息
// var updateObj = {
// servicer_code: orderdelivery.servicer_code || applyinfo.servicer_code,
// servicer_name: orderdelivery.servicer_name || applyinfo.servicer_name,
// user_id: orderdelivery.user_id || applyinfo.user_id,
// user_name: orderdelivery.user_name || applyinfo.user_name,
// apply_name: companyInfo.name || applyinfo.apply_name,
// credit_code: companyInfo.enterpriseCode || applyinfo.credit_code,
// apply_type:companyInfo.type=="个体工商户" ? 2 : 1,
// operator: companyInfo.legalRepresentative || applyinfo.operator,
// regist_capital: companyInfo.registeredCapital || applyinfo.regist_capital,
// business_term: companyInfo.businessTerm || applyinfo.business_term,
// establish_time: companyInfo.createdAt || applyinfo.establish_time,
// domicile: companyInfo.address || applyinfo.domicile,
// ent_type: companyInfo.type || applyinfo.ent_type,
// business_scope: companyInfo.scopeBusiness || applyinfo.business_scope
// };
// await this.applyInfoDao.model.update(updateObj, { where: { id: applyinfo.id } });//更新主体信息
// }
// }
// }
}
return system.getResultSuccess();
} catch (e) {
......@@ -328,7 +457,6 @@ class OrderDeliveryService extends ServiceBase {
}
}
module.exports = OrderDeliveryService;
// var task = new OrderDeliveryService();
// task.sendSmsNotification("1111125",120).then(d=>{
// })
// var d = new Date("2020-05-05");
// var a = new Date();
......@@ -11,6 +11,8 @@ class OrderInfoService extends ServiceBase {
this.orderProductDao = system.getObject("db.order.orderProductDao");
this.txPushLogDao = system.getObject("db.common.txPushLogDao");
this.needInfoDao = system.getObject("db.need.needInfoDao");
this.orderRefundDao = system.getObject("db.order.orderRefundDao");
}
//订单详情(客户查看订单进度)
async getOrderDetail(pobj) {
......@@ -27,6 +29,7 @@ class OrderInfoService extends ServiceBase {
var queryParam = {
where: { order_num: ab.OrderNum, user_id: ab.UserId },
attributes: [
"pay_time",
"order_num",
"tx_orders_num", //腾讯主订单号
"need_num", //需求号
......@@ -55,10 +58,10 @@ class OrderInfoService extends ServiceBase {
orderinfo["orderDeliveryInfo"] = orderdelivery;
var productParams = {
where: { order_num: ab.OrderNum },
attributes: ["time_span", "time_unit", "end_time","product_type","product_type_name"],
attributes: ["time_span", "time_unit", "end_time", "product_type", "product_type_name", "order_snapshot"],
raw: true
};
var orderproduct = await this.orderProductDao.model.findOne(productParams);
var orderproduct = await this.orderProductDao.model.findOne(productParams);
orderinfo["orderProductInfo"] = orderproduct;
return system.getResultSuccess(orderinfo);
}
......@@ -140,7 +143,7 @@ class OrderInfoService extends ServiceBase {
"bigDealId": "20190919188291",
"goodsCategoryId": "101630",
"goodsDetail": pobj.actionBody.interface.para.goodsDetail,
"ownerUin": "10628520",
"ownerUin": "100000013569",
"platform": "1",
"regionId": "1",
"appId": "1254105646",
......@@ -248,6 +251,7 @@ class OrderInfoService extends ServiceBase {
pay_total_sum: txorderdetail.goodsPrice.realTotalCost || 0,
order_status: 1,
order_status_name: "已付款",
user_name: txorderdetail.goodsDetail.formInfo.userName
}
if (isoldsolutionorder) {
orderobj.order_status = 320;
......@@ -271,7 +275,9 @@ class OrderInfoService extends ServiceBase {
servicer_code: txorderdetail.goodsDetail.product.servicerCode || "",
servicer_name: txorderdetail.goodsDetail.product.servicerName || "",
tx_order_snapshot: txorderdetail,
created_at: new Date(txorderdetail.payEndTime)
created_at: new Date(txorderdetail.payEndTime),
user_name: txorderdetail.goodsDetail.formInfo.userName,
start_time: new Date(txorderdetail.payEndTime)
}
var orderProductinfo = await self.orderProductDao.entTimeCreate(orderProductobj, t);
//创建订单交付单
......@@ -280,7 +286,7 @@ class OrderInfoService extends ServiceBase {
order_num: pobj.actionBody.interface.para.dealName,
user_id: pobj.actionBody.interface.para.uin,
delivery_status: 1,
delivery_status_name: "待接单"
user_name: txorderdetail.goodsDetail.formInfo.userName
}
var orderDeliveryinfo = await self.orderDeliveryDao.create(orderDeliveryobj, t);
var orderPayobj = {
......@@ -289,7 +295,8 @@ class OrderInfoService extends ServiceBase {
user_id: pobj.actionBody.interface.para.uin,
op_type: 1,
op_type_name: "收",
pay_total_sum: txorderdetail.goodsPrice.realTotalCost
pay_total_sum: txorderdetail.goodsPrice.realTotalCost,
user_name: txorderdetail.goodsDetail.formInfo.userName
}
await self.orderStatementDao.create(orderPayobj, t);
var txPushLoginfo = await self.txPushLogDao.findOne({ deal_name: pobj.actionBody.interface.para.dealName });
......@@ -310,9 +317,9 @@ class OrderInfoService extends ServiceBase {
var pushobj = {
"actionType": "produceData",// Y 功能名称
"actionBody": {
notifyUrl: "http://192.168.1.113:4011/api/action/order/springBoard",
notifyUrl: "",
actionType: "orderSubmit",
pushUrl: settings.apiconfig.deliveryUrl() + "/entService/order/springBoard",
pushUrl: settings.deliveryUrl() + "/entService/order/springBoard",
messageBody: {
"txOrderNum": pobj.actionBody.interface.para.bigDealId,
"orderNum": pobj.actionBody.interface.para.dealName,
......@@ -332,7 +339,7 @@ class OrderInfoService extends ServiceBase {
identifyCode: "orderSubmit"
}
};
var r = await this.execPostByTimeOut(pushobj, settings.apiconfig.opPushUrl());
var r = await this.execPostByTimeOut(pushobj, settings.opPushUrl());
if (r.status < 1) {
return system.getResultFail(-102, "Post error");
}
......@@ -564,16 +571,16 @@ class OrderInfoService extends ServiceBase {
so.itemDetails.raw_goodsData.push(goodsinfo);
if (pobj.actionBody.Info.length >= 2) {
var newgoodsinfo = JSON.parse(JSON.stringify(goodsinfo));
newgoodsinfo.goodsDetail.product = pobj.actionBody.Info[1].product;
newgoodsinfo.goodsDetail = pobj.actionBody.Info[1].productSnapshot;
newgoodsinfo.goodsDetail.product = pobj.actionBody.Info[1].product;
newgoodsinfo.goodsDetail.productInfo = pobj.actionBody.Info[1].showInfo;
newgoodsinfo.goodsDetail.formInfo = pobj.actionBody.Info[1].formInfo;
so.itemDetails.raw_goodsData.push(newgoodsinfo);
}
if (pobj.actionBody.Info.length == 3) {
var newgoodsinfo1 = JSON.parse(JSON.stringify(goodsinfo));
newgoodsinfo1.goodsDetail.product = pobj.actionBody.Info[2].product;
newgoodsinfo1.goodsDetail = pobj.actionBody.Info[2].productSnapshot;
newgoodsinfo1.goodsDetail.product = pobj.actionBody.Info[2].product;
newgoodsinfo1.goodsDetail.productInfo = pobj.actionBody.Info[2].showInfo;
newgoodsinfo1.goodsDetail.formInfo = pobj.actionBody.Info[2].formInfo;
so.itemDetails.raw_goodsData.push(newgoodsinfo1);
......@@ -582,7 +589,7 @@ class OrderInfoService extends ServiceBase {
"url": "https://buy.cloud.tencent.com/order/check",
"param": so
}
await this.test(so)
await this.test(so);
return system.getResultSuccess(robj);
}
......@@ -599,10 +606,10 @@ class OrderInfoService extends ServiceBase {
"tranId": "20190919188290",
"dealName": Date.now(),
"bigDealId": Date.now(),
"uin": "10628520",
"uin": "100000013569",
"type": "cbs",
"region": 6,
"operateUin": "10628520",
"operateUin": "100000013569",
"payMode": 1,
"projectId": 1019190,
"zoneId": 400001,
......@@ -610,10 +617,118 @@ class OrderInfoService extends ServiceBase {
}
}
}
await this.execPostByTimeOut(p,"http://192.168.1.113:4011/api/action/txapi/springBoard");
await this.execPostByTimeOut(p, "http://192.168.1.113:4011/api/action/txapi/springBoard");
if (pobj.itemDetails.raw_goodsData.length == 2) {
p.interface.para.dealName = Date.now();
p.interface.para.goodsDetail = pobj.itemDetails.raw_goodsData[1].goodsDetail;
await this.execPostByTimeOut(p, "http://192.168.1.113:4011/api/action/txapi/springBoard");
}
if (pobj.itemDetails.raw_goodsData.length == 3) {
p.interface.para.dealName = Date.now();
p.interface.para.goodsDetail = pobj.itemDetails.raw_goodsData[2].goodsDetail;
await this.execPostByTimeOut(p, "http://192.168.1.113:4011/api/action/txapi/springBoard");
}
return system.getResultSuccess();
}
//退款
async refundOrder(pobj) {
if (!pobj.orderNum) {
return system.getResultFail(-101, "orderNum is empty");
}
var orderinfo = await this.findOne({ order_num: pobj.orderNum });
if (!orderinfo) {
return system.getResultFail(-101, "orderinfo is empty");
}
var orderProduct = await this.orderProductDao.findOne({ order_num: pobj.orderNum });
if (!orderProduct) {
return system.getResultFail(-101, "orderProduct is empty");
}
var productType="p_business_registration";
if(orderProduct.dataValues.product_type.indexOf("/qcfw/")>-1){
productType="p_vat";
}
;
var o = {
"version": "1.0",
"caller": "trade",
"componentName": "trade",
"eventId": "5b2b14b118121",
"timestamp": Date.now(),
"interface": {
"interfaceName": "save",
"para": {
"msgType": "dealDeliveryCallback",
"msgContent": {
"type": productType,
"dealName": pobj.orderNum,
"deliveryResult": 3
}
}
}
}
// var r = await this.execPostByTimeOut(o, "http://msgqueue.sandbox.com");
// if (r.status < 1) {
// return system.getResultFail(-102, "Post error");
// }
var self = this;
return this.db.transaction(async function (t) {
await self.update({ id: orderinfo.id, order_status: 4 }, t)
var orderPayobj = {
tx_orders_num: orderinfo.tx_orders_num,
order_num: orderinfo.order_num,
user_id: orderinfo.user_id,
op_type: 2,
op_type_name: "支",
pay_total_sum: orderinfo.pay_total_sum,
user_name: orderinfo.user_name
}
await self.orderStatementDao.create(orderPayobj, t);
var orderRefundobj = {
tx_orders_num: orderinfo.tx_orders_num,
order_num: orderinfo.order_num,
user_id: orderinfo.user_id,
pay_total_sum: orderinfo.pay_total_sum,
user_name: orderinfo.user_name
}
await self.orderRefundDao.create(orderRefundobj, t);
return system.getResultSuccess();
})
}
//计费时间修改
async jftime(pobj) {
if (!pobj.orderNum) {
return system.getResultFail(-101, "orderNum is empty");
}
if (!pobj.startTime) {
return system.getResultFail(-101, "startTime is empty");
}
if (!pobj.entTime) {
return system.getResultFail(-101, "entTime is empty");
}
try {
var orderproduct = await this.orderProductDao.findOne({ order_num: pobj.orderNum });
if (!orderproduct) {
return system.getResultFail(-101, "orderproduct is empty");
}
orderproduct.dataValues.start_time = new Date(pobj.startTime)
orderproduct.dataValues.ent_time = new Date(pobj.entTime)
await this.orderProductDao.update(orderproduct.dataValues);
return system.getResultSuccess();
} catch (error) {
return system.getResultFail(510, error);
}
}
//隔离
async isolateResource(pobj){
}
// async gsOrderSubmit(pobj) {
// if (!pobj.actionBody.Info) {
// return system.getResultFail(-101, "Info is empty");
......
var system = require("../../../system");
var settings = require("../../../../config/settings");
const AppServiceBase = require("../../app.base");
const sha256 = require('sha256');
class UtilsMsgSendService extends AppServiceBase {
constructor() {
super();
this.redisClient = system.getObject("util.redisClient");
this.prefix = "sendCode:";
this.prefix = "brg-user-center:sendCode:";
}
/**
* 发送验证码
......@@ -20,7 +22,10 @@ class UtilsMsgSendService extends AppServiceBase {
}
var randomInt = await this.getUidInfo(6, 10);
params.messageBody = "验证码为" + randomInt + "(切勿将验证码告知他人),请在页面中60秒内输入完成验证";
var sendResult = await this.sendMessageByPhone(params);
var tmpParams = {
phoneList: [params]
}
var sendResult = await this.sendMessageVerify(tmpParams);
if (sendResult.status === 1) {
this.redisClient.setWithEx(key, randomInt, 60);
}
......@@ -41,10 +46,22 @@ class UtilsMsgSendService extends AppServiceBase {
return await this.redisClient.getCache(key);
}
/**
* 发送短信信息
* @param {*} params 格式:{phoneNumber:手机号,messageBody:消息内容}
* 发送信息
* @param {*} params 格式:
{
phoneList:[{phoneNumber:手机号,messageBody:消息内容}],
subAccountList:[{title:标题,subAccount:子账号,messageBody:消息内容-站内信}],
wechatList:[{title:标题,wechatNumber:微信号,messageBody:消息内容}],
emailList:[{email:邮箱,messageBody:消息内容}]
}
* @param {*} setCacheEx 设置缓存时间,多久不能再次请求
*/
async sendMessageByPhone(params) {
async sendMessageVerify(params, setCacheEx = 3) {
var shaStr = await sha256(JSON.stringify(params));
var existsKey = await this.redisClient.exists(shaStr);
if (existsKey) {
return system.getResult(null, "操作过于频繁,请稍后再试");
}
if (!params) {
return system.getResult(null, "params参数不能为空");
}
......@@ -52,24 +69,115 @@ class UtilsMsgSendService extends AppServiceBase {
if (keyCount === 0) {
return system.getResult(null, "params参数不能为空!");
}
if (!params.phoneNumber) {
return system.getResult(null, "手机号不能为空");
var verifyResult = null;
var reqParam = {
titleTpl: [],
smsTpl: [],
siteTpl: [],
wechatTpl: [],
emailTpl: [],
phoneList: [],
subAccountList: [],
wechatList: [],
emailList: []
}
if (!(/^1[3|4|5|6|7|8|9][0-9]\d{8}$/.test(params.phoneNumber))) {
return system.getResult(null, "手机号有误,请输入正确手机号");
if (params.phoneList && params.phoneList.length > 0) {
for (let index = 0; index < params.phoneList.length; index++) {
var element = params.phoneList[index];
if (element) {
if (!element.phoneNumber) {
verifyResult = system.getResult(null, "手机号不能为空");
break;
}
if (!(/^1[3|4|5|6|7|8|9][0-9]\d{8}$/.test(element.phoneNumber))) {
verifyResult = system.getResult(null, "手机号有误,请输入正确手机号");
break;
}
if (!element.messageBody) {
verifyResult = system.getResult(null, "消息主体不能为空");
break;
}
params.phoneList[index].phoneNumber = element.phoneNumber.indexOf("86+") >= 0 ? element.phoneNumber : "86+" + element.phoneNumber;
reqParam.smsTpl.push(element.messageBody);
reqParam.phoneList.push(params.phoneList[index].phoneNumber);
}
}
}
if (!params.messageBody) {
return system.getResult(null, "消息主体不能为空");
if (verifyResult) {
return verifyResult;
}
params.phoneNumber = params.phoneNumber.indexOf("86+") >= 0 ? params.phoneNumber : "86+" + params.phoneNumber;
var existSend = await this.redisClient.exists(params.phoneNumber);
if (existSend) {
return system.getResult(null, "操作过于频繁,请稍后再试");
if (params.subAccountList && params.subAccountList.length > 0) {
for (let index = 0; index < params.subAccountList.length; index++) {
var element = params.subAccountList[index];
if (element) {
if (!element.title) {
verifyResult = system.getResult(null, "站内信标题不能为空");
break;
}
if (!element.subAccount) {
verifyResult = system.getResult(null, "子账号不能为空");
break;
}
if (!element.messageBody) {
verifyResult = system.getResult(null, "站内信消息主体不能为空");
break;
}
reqParam.titleTpl.push(element.title);
reqParam.siteTpl.push(element.messageBody);
reqParam.subAccountList.push(element.subAccount);
}
}
}
if (verifyResult) {
return verifyResult;
}
if (params.wechatList && params.wechatList.length > 0) {
for (let index = 0; index < params.wechatList.length; index++) {
var element = params.wechatList[index];
if (element) {
if (!element.title) {
verifyResult = system.getResult(null, "微信标题不能为空");
break;
}
if (!element.wechatNumber) {
verifyResult = system.getResult(null, "微信号不能为空");
break;
}
if (!element.messageBody) {
verifyResult = system.getResult(null, "微信消息主体不能为空");
break;
}
reqParam.titleTpl.push(element.title);
reqParam.wechatTpl.push(element.messageBody);
reqParam.wechatList.push(element.wechatNumber);
}
}
}
var sendResult = await this.sendPhoneMsg(params);
var sendResult = await this.sendMessage(reqParam);
if (sendResult.status == 1) {
this.redisClient.setWithEx(shaStr, 1, setCacheEx);
}
console.log(sendResult,"发送通知消息-----------------------------------------------");
return sendResult;
}
async sendPhoneMsg(obj) {
/**
* 发送消息模板
* @param {*} obj
{
titleTpl: [],
smsTpl: [],
siteTpl: [],
wechatTpl: [],
emailTpl: [],
phoneList: [],
subAccountList: [],
wechatList: [],
emailList: []
}
*/
async sendMessage(obj) {
var params = {
"version": 1,
"caller": "postman",
......@@ -81,24 +189,20 @@ class UtilsMsgSendService extends AppServiceBase {
"ownerUin": 798950673,
"themeId": 364,
"tplParams": {
"smsTpl": [
obj.messageBody
]
"titleTpl": obj.titleTpl,
"smsTpl": obj.smsTpl,
"siteTpl": obj.siteTpl,
"wechatTpl": obj.wechatTpl,
"emailTpl": obj.emailTpl
},
"receiver": {
"wechatList": [
],
"phoneList": [
obj.phoneNumber
],
"emailList": [
],
"subAccountList": [
""
]
"phoneList": obj.phoneList,
"subAccountList": obj.subAccountList,
"wechatList": obj.wechatList,
"emailList": obj.emailList
},
"lang": "zh",
"sendChannel": 4
"sendChannel": 5
}
}
}
......
......@@ -56,6 +56,15 @@ class ExecClient {
reqResult = system.getResult(null, "执行execPostTimeOutByBusiness存在错误");
}
reqResult.requestId = uuid.v1();
if (result.headers) {
delete result["headers"];
}
if (result.request) {
delete result["request"];
}
if (result.config) {
delete result["config"];
}
this.execLogs(execFile + "执行execPostTimeOutByBusiness", params, params.identifyCode, reqResult, result);
return reqResult;
}
......@@ -86,19 +95,20 @@ class ExecClient {
* @param {*} errorInfo 错误信息
*/
async execLogs(opTitle, params, identifyCode, resultInfo, errorInfo) {
var reqUrl = settings.apiconfig.opLogUrl();
var reqUrl = settings.opLogUrl();
var param = {
"actionType": "produceLogsData",// Y 功能名称
"actionBody": {
"opTitle": opTitle || "",// N 操作的业务标题
"identifyCode": identifyCode || "brg-user-center",// Y 操作的业务标识
"messageBody": params, //日志的描述信息
"resultInfo": resultInfo,//返回信息
"errorInfo": errorInfo,//错误信息
"requestId": resultInfo.requestId || ""
actionType: "produceLogsData",// Y 功能名称
actionBody: {
opTitle: opTitle || "",// N 操作的业务标题
identifyCode: identifyCode || "brg-user-center",// Y 操作的业务标识
indexName: "brg-user-center",// Y es索引值,同一个项目用一个值
messageBody: params, //日志的描述信息
resultInfo: resultInfo,//返回信息
errorInfo: errorInfo,//错误信息
requestId: resultInfo.requestId || ""
}
};
this.execPostTimeOut(params, reqUrl, 'application/json', null, 20);
this.execPostTimeOut(param, reqUrl, 'application/json', null, 20);
}
/**
* get请求
......@@ -183,8 +193,25 @@ class ExecClient {
if (!ContentType) {
ContentType = "application/json";
}
var data = typeof params === 'object' ? JSON.stringify(params) : params;
var data = null;
if (typeof params === 'object') {
// 声明cache变量,便于匹配是否有循环引用的情况
var cache = [];
data = JSON.stringify(params, function (key, value) {
if (typeof value === 'object' && value !== null) {
if (cache.indexOf(value) !== -1) {
// 移除
return;
}
// 收集所有的值
cache.push(value);
}
return value;
});
cache = null; // 清空变量,便于垃圾回收机制回收
} else {
data = params;
}
var cmdStr = "curl -k -H 'Content-type:" + ContentType + "'";
if (headData) {
var headDataKeys = Object.keys(headData);
......
......@@ -6,8 +6,10 @@ module.exports = {
order_op_type:{"1":"收","2":"支"},
order_status:{"0":"待付款","1":"已付款", "310":"部分已退款","320":"已退款","330":"已作废"},
order_delivery_status:{
"1":"已付款",
"1":"待接单",
"20":"已接单",
"25":"未申报",
"26":"已申报",
"30":"已交付",
"70":"收集材料中",
"80":"递交材料中",
......@@ -23,8 +25,6 @@ module.exports = {
"179":"即将到期",
"180":"已到期",
"190":"关闭交付",
"200":"未申报",
"210":"已申报",
"310":"部分已退款",
"320":"已退款",
"330":"已作废"},
......@@ -42,38 +42,45 @@ module.exports = {
},
"320"://已退款
{
"webinfo":"\n工商订单支付状态变更通知\n尊敬的腾讯云用户,您好!\n您的{productName}订单(订单号:{orderNum})已完成退款,退款金额预计${3}个工作日内返还。订单详情可在腾讯云官网:费用中心-订单管理中查看。\n此致\n腾讯云团队\n",
"webinfotitle":"工商订单支付状态变更通知",
"webinfo":"尊敬的腾讯云用户,您好!\n您的{productName}订单(订单号:{orderNum})已完成退款,退款金额预计${3}个工作日内返还。订单详情可在腾讯云官网:费用中心-订单管理中查看。\n此致\n腾讯云团队\n",
"sms":"\n您的{productName}订单(订单号:{orderNum})已完成退款,退款金额预计${3}个工作日内返还。订单详情可在腾讯云官网:费用中心-订单管理中查看。\n",
"email":"\n工商订单支付状态变更通知\n尊敬的腾讯云用户,您好!\n您的{productName}订单(订单号:{orderNum})已完成退款,退款金额预计${3}个工作日内返还。订单详情可在腾讯云官网:费用中心-订单管理中查看。\n此致\n腾讯云团队\n"
},
"179":{//即将到期
"webinfo":"\n工商服务到期提醒\n尊敬的腾讯云用户,您好!\n您的{productName}订单将于{expirationDate}正式到期,截至目前仅剩{timeRemaining}天。为了不影响您的正常使用,请登录腾讯云官网费用中心-续费管理及时续费;若您已开通自动续费功能,请保证账户余额充足。\n此致\n腾讯云团队\n",
"webinfotitle":"工商服务到期提醒",
"webinfo":"尊敬的腾讯云用户,您好!\n您的{productName}订单将于{expirationDate}正式到期,截至目前仅剩{timeRemaining}天。为了不影响您的正常使用,请登录腾讯云官网费用中心-续费管理及时续费;若您已开通自动续费功能,请保证账户余额充足。\n此致\n腾讯云团队\n",
"sms":"\n您的{productName}订单将于{expirationDate}正式到期,截至目前仅剩{timeRemaining}天。为了不影响您的正常使用,请登录腾讯云官网费用中心-续费管理及时续费;若您已开通自动续费功能,请保证账户余额充足。\n",
"email":"\n工商服务到期提醒\n尊敬的腾讯云用户,您好!\n您的{productName}订单将于{expirationDate}正式到期,截至目前仅剩{timeRemaining}天。为了不影响您的正常使用,请登录腾讯云官网费用中心-续费管理及时续费;若您已开通自动续费功能,请保证账户余额充足。\n此致\n腾讯云团队\n",
},
"180":{//已到期
"webinfo":"\n工商服务到期提醒\n尊敬的腾讯云用户,您好!\n您的{productName}订单已于{expirationDate}正式到期,逾期未续费,将不再为您提供{productName}服务。若您扔需要该服务可进入腾讯云工商服务网站再次购买。如已缴费请忽略此信息。\n此致\n腾讯云团队\n",
"webinfotitle":"工商服务到期提醒",
"webinfo":"尊敬的腾讯云用户,您好!\n您的{productName}订单已于{expirationDate}正式到期,逾期未续费,将不再为您提供{productName}服务。若您扔需要该服务可进入腾讯云工商服务网站再次购买。如已缴费请忽略此信息。\n此致\n腾讯云团队\n",
"sms":"\n您的{productName}订单已于{expirationDate}正式到期,逾期未续费,将不再为您提供{productName}服务。若您扔需要该服务可进入腾讯云工商服务网站再次购买。如已缴费请忽略此信息。\n",
"email":"\n工商服务到期提醒\n尊敬的腾讯云用户,您好!\n您的{productName}订单已于{expirationDate}正式到期,逾期未续费,将不再为您提供{productName}服务。若您扔需要该服务可进入腾讯云工商服务网站再次购买。如已缴费请忽略此信息。\n此致\n腾讯云团队\n"
},
"130":{//工商审核环节
"webinfo":"\n工商服务进度通知\n尊敬的腾讯云用户,您好!\n您购买的{productName}订单(订单号:{orderNum})已提交至工商行政管理局审核,审核结果我们会及时为您更新通知,感谢您的信任。\n此致\n腾讯云团队\n",
"webinfotitle":"工商服务进度通知",
"webinfo":"尊敬的腾讯云用户,您好!\n您购买的{productName}订单(订单号:{orderNum})已提交至工商行政管理局审核,审核结果我们会及时为您更新通知,感谢您的信任。\n此致\n腾讯云团队\n",
"sms":"\n您购买的{productName}订单(订单号:{orderNum})已提交至工商行政管理局审核,审核结果我们会及时为您更新通知,感谢您的信任。\n",
"email":""
},
"120":{//园区入驻审核
"webinfo":"\n工商服务进度通知\n尊敬的腾讯云用户,您好!\n您购买的{productName}订单(订单号:{orderNum})已提交至{parkName}园区审核,审核结果我们会及时为您更新通知,感谢您的信任。\n此致\n腾讯云团队\n",
"webinfotitle":"工商服务进度通知",
"webinfo":"尊敬的腾讯云用户,您好!\n您购买的{productName}订单(订单号:{orderNum})已提交至{parkName}园区审核,审核结果我们会及时为您更新通知,感谢您的信任。\n此致\n腾讯云团队\n",
"sms":"\n您购买的{productName}订单(订单号:{orderNum})已提交至{parkName}园区审核,审核结果我们会及时为您更新通知,感谢您的信任。\n",
"email":""
},
"30":{//已交付
"webinfo":"\n工商服务进度通知\n尊敬的腾讯云用户,您好!\n您购买的{productName}订单(订单号:{orderNum})已为您办理交付,感谢您的信任。\n此致\n腾讯云团队\n",
"webinfotitle":"工商服务进度通知",
"webinfo":"尊敬的腾讯云用户,您好!\n您购买的{productName}订单(订单号:{orderNum})已为您办理交付,感谢您的信任。\n此致\n腾讯云团队\n",
"sms":"\n您购买的{productName}订单(订单号:{orderNum})已为您办理交付,感谢您的信任。\n",
"email":""
},
"150":{//证件邮寄环节
"webinfo":"\n工商服务进度通知\n尊敬的腾讯云用户,您好!\n您购买的{productName}相关交付物,顾问已按您提供的地址为您邮寄(物流公司:{logisticsCompany},运单号:{waybillNo}),请注意查收,感谢您的信任。\n此致\n腾讯云团队\n",
"webinfotitle":"工商服务进度通知",
"webinfo":"尊敬的腾讯云用户,您好!\n您购买的{productName}相关交付物,顾问已按您提供的地址为您邮寄(物流公司:{logisticsCompany},运单号:{waybillNo}),请注意查收,感谢您的信任。\n此致\n腾讯云团队\n",
"sms":"\n您购买的{productName}相关交付物,顾问已按您提供的地址为您邮寄(物流公司:{logisticsCompany},运单号:{waybillNo}),请注意查收,感谢您的信任。\n",
"email":""
}
......@@ -81,7 +88,8 @@ module.exports = {
},
"need":{
"3":{//待用户确认
"webinfo":"\n工商服务进度通知\n尊敬的腾讯云用户,您好!\n顾问已根据您的需求为您提交了{productName}方案,为了尽快为您办理入驻,请您登录腾讯云官网确认并完成支付,感谢您的信任。\n此致\n腾讯云团队\n",
"webinfotitle":"工商服务进度通知",
"webinfo":"尊敬的腾讯云用户,您好!\n顾问已根据您的需求为您提交了{productName}方案,为了尽快为您办理入驻,请您登录腾讯云官网确认并完成支付,感谢您的信任。\n此致\n腾讯云团队\n",
"sms":"\n顾问已根据您的需求为您提交了{productName}方案,为了尽快为您办理入驻,请您登录腾讯云官网确认并完成支付,感谢您的信任。\n",
"email":""
},
......@@ -95,38 +103,55 @@ module.exports = {
"order":{
"1"://已付款
{
"sms":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})提交的{productType}订单(申请类型:{productName}申请;申请地区:{area}),已支付成功,腾讯授权服务商将会与您电话沟通后续申请事宜,请留意接听。"
"sms":"\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})提交的{productType}订单(申请类型:{productName}申请;申请地区:{area}),已支付成功,腾讯授权服务商将会与您电话沟通后续申请事宜,请留意接听。",
"webinfo":"\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})提交的{productType}订单(申请类型:{productName}申请;申请地区:{area}),已支付成功,腾讯授权服务商将会与您电话沟通后续申请事宜,请留意接听。"
},
"80"://递交材料中
{
"sms":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})提交的{productType}订单(申请类型:{productName}申请;申请地区:{area}),顾问已准备好申请材料,请尽快登录控制台确认申请材料。"
"webinfotitle":"资质订单服务状态变更通知",
"sms":"\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})提交的{productType}订单(申请类型:{productName}申请;申请地区:{area}),顾问已准备好申请材料,请尽快登录控制台确认申请材料。"
,"webinfo":"\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})提交的{productType}订单(申请类型:{productName}申请;申请地区:{area}),顾问已准备好申请材料,请尽快登录控制台确认申请材料。"
},
"90"://工信部处理中
{
"sms":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})提交的{productType}订单(申请类型:{productName}申请;申请地区:{area}),顾问已帮您提交申请材料至行政审核单位,申办周期较长,请您关注办理进度,耐心等待。"
"webinfotitle":"资质订单服务状态变更通知",
"sms":"\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})提交的{productType}订单(申请类型:{productName}申请;申请地区:{area}),顾问已帮您提交申请材料至行政审核单位,申办周期较长,请您关注办理进度,耐心等待。"
,"webinfo":"\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})提交的{productType}订单(申请类型:{productName}申请;申请地区:{area}),顾问已帮您提交申请材料至行政审核单位,申办周期较长,请您关注办理进度,耐心等待。"
},
"179":{//即将到期
"sms":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})有资质即将到期(资质编号:{qcNo};资质类型:{productName}),请前往控制台立即续期。"
"webinfotitle":"资质订单服务状态变更通知",
"sms":"\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})有资质即将到期(资质编号:{qcNo};资质类型:{productName}),请前往控制台立即续期。"
,"webinfo":"\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})有资质即将到期(资质编号:{qcNo};资质类型:{productName}),请前往控制台立即续期。"
},
"150":{//证件邮寄环节
"sms":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})提交的{productType}订单(申请类型:{productName}申请;申请地区:{area}),纸质版证书已寄出(快递单号:{waybillNo};快递公司:{logisticsCompany}),请注意查收。"
"webinfotitle":"资质订单服务状态变更通知",
"sms":"\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})提交的{productType}订单(申请类型:{productName}申请;申请地区:{area}),纸质版证书已寄出(快递单号:{waybillNo};快递公司:{logisticsCompany}),请注意查收。"
,"webinfo":"\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})提交的{productType}订单(申请类型:{productName}申请;申请地区:{area}),纸质版证书已寄出(快递单号:{waybillNo};快递公司:{logisticsCompany}),请注意查收。"
},
"170"://"已完成",
{
"sms":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})提交的{productType}订单(申请类型:{productName}申请;申请地区:{area}),服务已完成,感谢您的使用。"
"webinfotitle":"资质订单服务状态变更通知",
"sms":"\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})提交的{productType}订单(申请类型:{productName}申请;申请地区:{area}),服务已完成,感谢您的使用。",
"qcsms":"\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})购买的资质年报服务(资质编号:{qcNo};资质类型:{productName}),已全部申报完成,请前我的资质证照查看。"
,"webinfo":"\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})提交的{productType}订单(申请类型:{productName}申请;申请地区:{area}),服务已完成,感谢您的使用。",
"qcwebinfo":"\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})购买的资质年报服务(资质编号:{qcNo};资质类型:{productName}),已全部申报完成,请前我的资质证照查看。"
},
"190"://关闭交付
{
"sms":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})提交的{productType}订单(申请类型:{productName}申请;申请地区:{area}),服务已关闭,感谢您的使用。"
"webinfotitle":"资质订单服务状态变更通知",
"sms":"\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})提交的{productType}订单(申请类型:{productName}申请;申请地区:{area}),服务已关闭,感谢您的使用。"
,"webinfo":"\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})提交的{productType}订单(申请类型:{productName}申请;申请地区:{area}),服务已关闭,感谢您的使用。"
},
"210"://已交付
"26"://已申报
{
"sms":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})购买的资质年报服务(资质编号:{qcNo};资质类型:{productName}),本年度已申报,请前我的资质证照查看。"
"webinfotitle":"资质订单服务状态变更通知",
"sms":"\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})购买的资质年报服务(资质编号:{qcNo};资质类型:{productName}),本年度已申报,请前我的资质证照查看。"
,"webinfo":"\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})购买的资质年报服务(资质编号:{qcNo};资质类型:{productName}),本年度已申报,请前我的资质证照查看。"
}
},
......
......@@ -7,26 +7,35 @@ var ENVINPUT = {
REDIS_HOST: process.env.REDIS_HOST,
REDIS_PORT: process.env.REDIS_PORT,
REDIS_PWD: process.env.REDIS_PWD,
DB_NAME: process.env.CENTER_CHANNEL_DB_NAME,
REDIS_DB: process.env.CENTER_CHANNEL_REDIS_DB,
DB_NAME: process.env.BRG_USER_CENTER_DB_NAME,
REDIS_DB: process.env.BRG_USER_CENTER_REDIS_DB,
APP_ENV: process.env.APP_ENV ? process.env.APP_ENV : "dev"
};
var settings = {
env: ENVINPUT.APP_ENV,
usertimeout: 3600,//单位秒
basepath: path.normalize(path.join(__dirname, '../..')),
port: process.env.NODE_PORT || 4011,
apiconfig: {
opLogUrl: function () {
return "http://60.205.209.94:4019/api/queueAction/producer/springBoard";
},
opPushUrl: function () {
port: process.env.NODE_PORT || 4011,
opLogUrl: function () {
if (this.env == "dev" || this.env == "test") {
return "http://192.168.1.128:4019/api/queueAction/producer/springBoard";
} else {
return "http://logs-sytxpublic-msgq-service/api/queueAction/producer/springBoard";
}
},
opPushUrl: function () {
if (this.env == "dev" || this.env == "test") {
return "http://192.168.1.128:4018/api/queueAction/producer/springBoard";
},
deliveryUrl: function () {
} else {
return "http://sytxpublic-msgq-service/api/queueAction/producer/springBoard";
}
},
deliveryUrl: function () {
if (this.env == "dev" || this.env == "test") {
return "http://tx.g.com:8000";
},
} else {
return "http://tx.brg.tencentyun.com";
}
},
redis: function () {
if (this.env == "dev" || this.env == "test") {
......@@ -60,6 +69,7 @@ var settings = {
acquire: 90000000,
idle: 1000000
},
timezone: '+08:00',
debug: false,
dialectOptions: {
requestTimeout: 999999,
......
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
......@@ -49,6 +49,7 @@
"sequelize-cli": "^4.1.1",
"serve-favicon": "^2.4.5",
"sha1": "^1.1.1",
"sha256": "^0.2.0",
"socket.io": "^2.1.1",
"uuid": "^3.4.0"
},
......
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
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