Commit 3dfa5a54 by 宋毅

tj

parent 3256c44f
......@@ -41,6 +41,7 @@ class Need extends APIBase {
opResult = system.getResult(null, "验证码错误");
return opResult;
}
await self.utilsMsgSendSve.removeVerificationCode(pobj.actionBody.Info[0].formInfo.contactsPhone);
}
switch (action_type) {
case "test"://测试
......
......@@ -47,6 +47,7 @@ class Order extends APIBase {
opResult = system.getResult(null, "验证码错误");
return opResult;
}
await self.utilsMsgSendSve.removeVerificationCode(pobj.actionBody.Info[0].formInfo.contactsPhone);
}
}
switch (action_type) {
......@@ -91,6 +92,9 @@ class Order extends APIBase {
break;
case "refundOrder"://退款接口
opResult = await this.orderinfoSve.refundOrder(pobj.actionBody, req);
if(opResult.status>0){
await self.orderDeliverySve.sendNotification(pobj.actionBody.orderNum,320);
}
break;
case "jftime"://计费时间修改
opResult = await this.orderinfoSve.jftime(pobj.actionBody, req);
......
......@@ -93,6 +93,18 @@ class OrderDeliveryDao extends Dao{
var list = await this.customQuery(sql, params);
return list;
}
/**
* 通过订单号获取资质证照信息
*/
async getQcInfoByMainOrderNum(mainOrderNum){
var params = {
mainOrderNum: mainOrderNum
};
var sql = "select deliver_content from v_order_oproduct_odelivery where tx_orders_num = :mainOrderNum "+
"and deliver_content is not null and (product_type='/qcfw/icp/' or product_type='/qcfw/edi/' ) order by updated_at desc limit 1";
var list = await this.customQuery(sql, params);
return list;
}
/**
* 获取订单交付信息
*/
......
......@@ -8,50 +8,126 @@ class NeedSolutionService extends ServiceBase {
this.needInfoDao = system.getObject("db.need.needInfoDao");
this.utilsMsgSendSve = system.getObject("service.utilsSve.utilsMsgSendSve");
}
/**
* 发送短信通知
* @param {*} mobile 接收人手机号
* @param {*} userId 用户id
* @param {*} consultType 产品类型
* @param {*} consultName 产品类型名称
* 发送消息通知
* @param {*} needInfo 需求信息
* @param {*} status 状态
*/
async sendSmsNotification(mobile, userId, consultType, consultName, status) {
async sendNotification(needInfo, status) {
try {
var nameArr = consultName ? consultName.split("/") : [];
if(!needInfo || !status || !needInfo.consult_type){
return system.getResultFail();
}
var nameArr = needInfo && needInfo.consult_type_name ? needInfo.consult_type_name.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 : "";
var typeOne =null;
if (needInfo.consult_type.indexOf("/ic/") >= 0) {//工商产品
typeOne = "ic";
}
if (consultType.indexOf("/qcfw/") >= 0) {//资质证照产品
if (needInfo.consult_type.indexOf("/qcfw/") >= 0) {//资质证照产品
typeOne="qcfw";
}
if(!typeOne || !productName){
return system.getResultFail();
}
var params = {};
if(needInfo.contacts_mobile){//短信
var sms = MsgTemplate[typeOne].need[status] && MsgTemplate[typeOne].need[status].sms ? MsgTemplate[typeOne].need[status].sms : "";
if(sms){
if(productName){
sms = sms.replace(/{productName}/g, productName);
}
if(needInfo.region_name){
sms = sms.replace(/{area}/g, needInfo.region_name);
}
if(needInfo.user_id){
sms = sms.replace(/{userId}/g, needInfo.user_id);
}
if(needInfo.user_name){
sms = sms.replace(/{userName}/g, needInfo.user_name);
}
if (sms.indexOf("{")<0 && sms.indexOf("}")<0) {
params["phoneList"] = [{phoneNumber:needInfo.contacts_mobile,messageBody:sms}];
}
}
}
if(needInfo.user_id){//站内信
var webinfo = MsgTemplate[typeOne].need[status] && MsgTemplate[typeOne].need[status].webinfo ? MsgTemplate[typeOne].need[status].webinfo : "";
var webinfotitle = MsgTemplate[typeOne].need[status] && MsgTemplate[typeOne].need[status].webinfotitle ? MsgTemplate[typeOne].need[status].webinfotitle : "";
if(webinfo && webinfotitle){
if(productName){
webinfo = webinfo.replace(/{productName}/g, productName);
}
if(needInfo.region_name){
webinfo = webinfo.replace(/{area}/g, needInfo.region_name);
}
if(needInfo.user_id){
webinfo = webinfo.replace(/{userId}/g, needInfo.user_id);
}
if(needInfo.user_name){
webinfo = webinfo.replace(/{userName}/g, needInfo.user_name);
}
if (webinfo.indexOf("{")<0 && webinfo.indexOf("}")<0) {
params["subAccountList"] = [{title:webinfotitle,subAccount:needInfo.user_id,messageBody:webinfo}];
}
}
}
if(needInfo.wechat_no){//微信
var wechatMsg = MsgTemplate[typeOne].need[status] && MsgTemplate[typeOne].need[status].wx ? MsgTemplate[typeOne].need[status].wx : "";
var wechattitle = MsgTemplate[typeOne].need[status] && MsgTemplate[typeOne].need[status].webinfotitle ? MsgTemplate[typeOne].need[status].webinfotitle : "";
if(wechatMsg && wechattitle){
if(productName){
wechatMsg = wechatMsg.replace(/{productName}/g, productName);
}
if(needInfo.region_name){
wechatMsg = wechatMsg.replace(/{area}/g, needInfo.region_name);
}
if(needInfo.solutionNum){
wechatMsg = wechatMsg.replace(/{solutionNum}/g, needInfo.solutionNum);
}
if(needInfo.user_id){
wechatMsg = wechatMsg.replace(/{userId}/g, needInfo.user_id);
}
if(needInfo.user_name){
wechatMsg = wechatMsg.replace(/{userName}/g, needInfo.user_name);
}
if (wechatMsg.indexOf("{")<0 && wechatMsg.indexOf("}")<0) {
params["wechatList"] = [{title:wechattitle,wechatNumber:needInfo.wechat_no,messageBody:wechatMsg}];
}
}
}
// 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] });
if(needInfo.email){//邮箱
var emailMsg = MsgTemplate[typeOne].need[status] && MsgTemplate[typeOne].need[status].email ? MsgTemplate[typeOne].need[status].email : "";
if(emailMsg){
if(productName){
emailMsg = emailMsg.replace(/{productName}/g, productName);
}
if(needInfo.region_name){
emailMsg = emailMsg.replace(/{area}/g, needInfo.region_name);
}
if(needInfo.user_id){
emailMsg = emailMsg.replace(/{userId}/g, needInfo.user_id);
}
if(needInfo.user_name){
emailMsg = emailMsg.replace(/{userName}/g, needInfo.user_name);
}
if (emailMsg.indexOf("{")<0 && emailMsg.indexOf("}")<0) {
params["emailList"] = [{email:needInfo.email,messageBody:emailMsg}];
}
}
}
return;
await this.utilsMsgSendSve.sendMessageVerify(params);
return system.getResultSuccess();
} catch (e) {
this.execClient.execLogs("needSolutionSve.js/sendSmsNotification(发送短信通知)方法出现异常", { mobile: mobile, consultType: consultType, consultName: consultName, status: status }, "needSolutionSve_sendSmsNotification_error", null, e.stack);
return;
this.execClient.execLogs("needSolutionSve.js/sendNotification(发送短信通知)方法出现异常", { needInfo:needInfo, status: status }, "needSolutionSve_sendNotification_error", null, e.stack);
return system.getResultFail();
}
}
//服务商提交/修改方案
async submitSolution(pobj) {
......@@ -101,7 +177,8 @@ class NeedSolutionService extends ServiceBase {
await self.dao.update(updateObj, t);
await self.needInfoDao.update({ id: needinfo.id, status: "3" }, t);
//发送短信通知
self.sendSmsNotification(needinfo.contacts_mobile, needinfo.user_id, needinfo.consult_type, needinfo.consult_type_name, 3);
needinfo.solutionNum = ab.solutionNum;
self.sendNotification(needinfo, 3);
return system.getResultSuccess();
});
......@@ -125,9 +202,9 @@ 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(needinfo.contacts_mobile,needinfo.consult_type,needinfo.consult_type_name,3);
self.sendSmsNotification(needinfo.contacts_mobile, needinfo.user_id, needinfo.consult_type, needinfo.consult_type_name, 3);
//发送消息通知
needinfo.solutionNum = solution_num;
self.sendNotification(needinfo, 3);
return system.getResultSuccess(solution_num);
});
......@@ -185,8 +262,4 @@ 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
module.exports = NeedSolutionService;
\ No newline at end of file
......@@ -155,264 +155,176 @@ class OrderDeliveryService extends ServiceBase {
return system.getResultSuccess();
}
/**
* 组装短信模板
* @param {*} orderdetail 订单数据
* @param {*} status 订单交付状态
* 组装模板参数
* @param {*} orderdetail 订单详情
* @param {*} productName 产品名称
* @param {*} productType 产品类型
* @param {*} productTypeName 产品类型名称
* @param {*} productTypeOne 产品一类
* @param {*} msgTemplate 消息模板
*/
async packageSmsTemplates(orderdetail,status,productType,productTypeName,productTypeOne){
var params={};
var phoneNumber=orderdetail.order_snapshot && orderdetail.order_snapshot.contactsPhone?orderdetail.order_snapshot.contactsPhone:"";//联系人手机号
if(phoneNumber && productType){
if(productType=="/ic/cpreg/" && status==130){//云上公司注册工商审核环节不通知
return;
}
var smsMessageBody= null;//短信模板内容
if(productType.indexOf("/ic/")>=0){//工商产品
smsMessageBody=MsgTemplate.ic.order[status] && MsgTemplate.ic.order[status].sms?MsgTemplate.ic.order[status].sms:"";
if(smsMessageBody){
smsMessageBody = smsMessageBody.replace(/{productName}/g,productTypeName)
.replace(/{orderNum}/g,orderdetail.order_num);
if(orderdetail.end_time){//过期时间
smsMessageBody = smsMessageBody.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);
}
}
if(orderdetail.user_id){//用户账号
smsMessageBody = smsMessageBody.replace(/{userId}/g,orderdetail.user_id);
}
if(orderdetail.user_name){//用户昵称
smsMessageBody = smsMessageBody.replace(/{userName}/g,orderdetail.user_name);
}
if(orderdetail.region_name){//地区
smsMessageBody = smsMessageBody.replace(/{area}/g,orderdetail.region_name);
}
var deliverContent = orderdetail.deliver_content;
if(deliverContent){
//注册园区
if(productType=="/ic/cpreg/" && deliverContent.companyInfo && deliverContent.companyInfo.registeredPark){
smsMessageBody = smsMessageBody.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);
}
}
}
async packageTemplatesParams(orderdetail,productName,productType,msgTemplate){
//productName orderNum expirationDate timeRemaining userId userName area parkName logisticsCompany waybillNo
if(orderdetail.order_num){//订单号
msgTemplate=msgTemplate.replace(/{orderNum}/g, orderdetail.order_num);
}
if(orderdetail.total_sum){//订单金额
var totalSum = orderdetail.total_sum/100;
totalSum= totalSum.toFixed(2);
msgTemplate=msgTemplate.replace(/{totalSum}/g,totalSum);
}
if(orderdetail.end_time){//过期时间
msgTemplate = msgTemplate.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){//剩余天数
msgTemplate = msgTemplate.replace(/{timeRemaining}/g,days);
}
if(productType.indexOf("/qcfw/")>=0){//资质证照
if(status==170 && (productType=="/qcfw/icpannals/" || productType=="/qcfw/ediannals/" )){//年报已完成
smsMessageBody=MsgTemplate.qcfw.order[status] && MsgTemplate.qcfw.order[status].ar_sms?MsgTemplate.qcfw.order[status].ar_sms:"";
}else{
smsMessageBody=MsgTemplate.qcfw.order[status] && MsgTemplate.qcfw.order[status].sms?MsgTemplate.qcfw.order[status].sms:"";
}
if(smsMessageBody){
smsMessageBody = smsMessageBody.replace(/{productName}/g,productTypeName);
if(orderdetail.user_id){//用户账号
smsMessageBody = smsMessageBody.replace(/{userId}/g,orderdetail.user_id);
}
if(orderdetail.user_name){//用户昵称
smsMessageBody = smsMessageBody.replace(/{userName}/g,orderdetail.user_name);
}
if(productTypeOne){//产品一类名称
smsMessageBody = smsMessageBody.replace(/{productType}/g,productTypeOne);
}
if(orderdetail.end_time){//过期时间
smsMessageBody = smsMessageBody.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);
}
}
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);
}
//资质证号
if(deliverContent.qualification && deliverContent.qualification.certificateNumber){
smsMessageBody = smsMessageBody.replace(/{qcNo}/g,deliverContent.qualification.certificateNumber);
}
}
var orderSnapshot = orderdetail.order_snapshot;//订单快照
if(orderSnapshot && orderSnapshot.serviceArea){//服务地址
smsMessageBody = smsMessageBody.replace(/{area}/g,orderSnapshot.serviceArea);
}
}
}
var deliverContent = orderdetail.deliver_content;
if(deliverContent){
//注册园区
if(orderdetail.product_type=="/ic/cpreg/" && deliverContent.companyInfo && deliverContent.companyInfo.registeredPark){
msgTemplate = msgTemplate.replace(/{parkName}/g,deliverContent.companyInfo.registeredPark);
}
if(!smsMessageBody || smsMessageBody.indexOf("{")>=0 || !phoneNumber){
return null;
//邮寄信息
if(deliverContent.expressInfo && deliverContent.expressInfo.logisticsCompany && deliverContent.expressInfo.trackingNumber ){
msgTemplate = msgTemplate.replace(/{logisticsCompany}/g,deliverContent.expressInfo.logisticsCompany)
.replace(/{waybillNo}/g,deliverContent.expressInfo.trackingNumber);
}
params.phoneNumber = phoneNumber;
params.messageBody = smsMessageBody;
return params;
}
return null;
}
/**
* 组装站内信模板
* @param {*} orderdetail 订单数据
* @param {*} status 订单交付状态
* @param {*} productType 产品类型
* @param {*} productTypeName 产品类型名称
* @param {*} productTypeOne 产品一类
*/
async packageWebinfoTemplates(orderdetail,status,productType,productTypeName,productTypeOne){
var params={};
var subAccount=orderdetail.user_id || "";//用户id
if(subAccount && productType){
if(productType=="/ic/cpreg/" && status==130){//云上公司注册工商审核环节不通知
return;
//资质证号
if(deliverContent.qualification && deliverContent.qualification.certificateNumber){
msgTemplate = msgTemplate.replace(/{qcNo}/g,deliverContent.qualification.certificateNumber);
}else if(orderdetail.certificateNumber){
msgTemplate = msgTemplate.replace(/{qcNo}/g,orderdetail.certificateNumber);
}
var webinfoMessageBody = null;//站内信模板
if(productType.indexOf("/ic/")>=0){//工商产品
webinfoMessageBody=MsgTemplate.ic.order[status] && MsgTemplate.ic.order[status].webinfo?MsgTemplate.ic.order[status].webinfo:"";
params.title = MsgTemplate.ic.order[status] && MsgTemplate.ic.order[status].webinfotitle?MsgTemplate.ic.order[status].webinfotitle:"";
if(webinfoMessageBody){
webinfoMessageBody = webinfoMessageBody.replace(/{productName}/g,productTypeName)
.replace(/{orderNum}/g,orderdetail.order_num);
if(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){//剩余天数
webinfoMessageBody = webinfoMessageBody.replace(/{timeRemaining}/g,days);
}
}
if(orderdetail.user_id){//用户账号
webinfoMessageBody = webinfoMessageBody.replace(/{userId}/g,orderdetail.user_id);
}
if(orderdetail.user_name){//用户昵称
webinfoMessageBody = webinfoMessageBody.replace(/{userName}/g,orderdetail.user_name);
}
if(orderdetail.region_name){//地区
webinfoMessageBody = webinfoMessageBody.replace(/{area}/g,orderdetail.region_name);
}
var deliverContent = orderdetail.deliver_content;
if(deliverContent){
//注册园区
if(productType=="/ic/cpreg/" && deliverContent.companyInfo && deliverContent.companyInfo.registeredPark){
webinfoMessageBody = webinfoMessageBody.replace(/{parkName}/g,deliverContent.companyInfo.registeredPark);
}
//邮寄信息
if(deliverContent.expressInfo && deliverContent.expressInfo.logisticsCompany && deliverContent.expressInfo.trackingNumber ){
webinfoMessageBody = webinfoMessageBody.replace(/{logisticsCompany}/g,deliverContent.expressInfo.logisticsCompany)
.replace(/{waybillNo}/g,deliverContent.expressInfo.trackingNumber);
}
if(deliverContent.annualReport){//年报列表
var year = null;
for(var i=0;i<deliverContent.annualReport.length;i++){
var annualReport = deliverContent.annualReport[i];
if(annualReport && annualReport.year && annualReport.status && annualReport.status=='declaresuccess'){
if(!year || year<annualReport.year)
year=annualReport.year;
}
}
}
if(productType.indexOf("/qcfw/")>=0){//资质证照
params.title = MsgTemplate.qcfw.order[status] && MsgTemplate.qcfw.order[status].webinfotitle?MsgTemplate.qcfw.order[status].webinfotitle:"";
if(status==170 && (productType=="/qcfw/icpannals/" || productType=="/qcfw/ediannals/" )){//年报已完成
webinfoMessageBody=MsgTemplate.qcfw.order[status] && MsgTemplate.qcfw.order[status].ar_webinfo?MsgTemplate.qcfw.order[status].ar_webinfo:"";
}else{
webinfoMessageBody=MsgTemplate.qcfw.order[status] && MsgTemplate.qcfw.order[status].webinfo?MsgTemplate.qcfw.order[status].webinfo:"";
}
if(webinfoMessageBody){
webinfoMessageBody = webinfoMessageBody.replace(/{productName}/g,productTypeName);
if(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){//剩余天数
webinfoMessageBody = webinfoMessageBody.replace(/{timeRemaining}/g,days);
}
}
if(orderdetail.user_id){//用户账号
webinfoMessageBody = webinfoMessageBody.replace(/{userId}/g,orderdetail.user_id);
}
if(orderdetail.user_name){//用户昵称
webinfoMessageBody = webinfoMessageBody.replace(/{userName}/g,orderdetail.user_name);
}
if(productTypeOne){//产品一类名称
webinfoMessageBody = webinfoMessageBody.replace(/{productType}/g,productTypeOne);
}
var deliverContent = orderdetail.deliver_content;
if(deliverContent){
//邮寄信息
if(deliverContent.expressInfo && deliverContent.expressInfo.logisticsCompany && deliverContent.expressInfo.trackingNumber ){
webinfoMessageBody = webinfoMessageBody.replace(/{logisticsCompany}/g,deliverContent.expressInfo.logisticsCompany)
.replace(/{waybillNo}/g,deliverContent.expressInfo.trackingNumber);
}
//资质证号
if(deliverContent.qualification && deliverContent.qualification.certificateNumber){
webinfoMessageBody = webinfoMessageBody.replace(/{qcNo}/g,deliverContent.qualification.certificateNumber);
}
}
var orderSnapshot = orderdetail.order_snapshot;//订单快照
if(orderSnapshot && orderSnapshot.serviceArea){//服务地址
webinfoMessageBody = webinfoMessageBody.replace(/{area}/g,orderSnapshot.serviceArea);
}
if(year){
msgTemplate = msgTemplate.replace(/{year}/g,year);
}
}
if(!webinfoMessageBody || webinfoMessageBody.indexOf("{")>=0 || !subAccount){
return null;
}
params.subAccount = subAccount;
params.messageBody = webinfoMessageBody;
return params;
}
return null;
if(productName){//产品名称
msgTemplate = msgTemplate.replace(/{productName}/g, productName);
}
if(productType){//产品类型名称
msgTemplate = msgTemplate.replace(/{productType}/g, productType);
}
if(orderdetail.region_name){//地区
msgTemplate = msgTemplate.replace(/{area}/g, orderdetail.region_name);
}
if(orderdetail.user_id){//用户id
msgTemplate = msgTemplate.replace(/{userId}/g, orderdetail.user_id);
}
if(orderdetail.user_name){//用户昵称
msgTemplate = msgTemplate.replace(/{userName}/g, orderdetail.user_name);
}
return msgTemplate;
}
/**
* 发送消息通知
* @param {*} orderNum 订单号
* @param {*} status 订单交付状态
* @param {*} status 状态
*/
async sendNotification(orderNum,status){
async sendNotification(orderNum, status) {
try {
var smsParams = {phoneNumber:null,messageBody:null};//短信通知参数
var webinfoParams = {"title":null,"subAccount":null,"messageBody":null};//站内信通知参数
var functionModule = "order";//功能模块编码,用于获取消息模板
var orderdetail = null;
//获取订单详情
var orderDetailRes = await this.dao.getOrderDetailByOrderNum(orderNum);
if(orderDetailRes && orderDetailRes.length>0){
var orderdetail = orderDetailRes[0];//订单详情信息
var productType=orderdetail.product_type;//产品类型
var product_type_name = orderdetail.product_type_name;//产品类型名称
var product_type_one_name = null;//产品一类
if(!productType || !product_type_name){
return;
orderdetail = orderDetailRes[0];
}
if(!orderdetail || !status || !orderdetail.product_type){
return system.getResultFail();
}
var nameArr = orderdetail.product_type_name ? orderdetail.product_type_name.split("/") : [];
var productName = null;//产品名称
var productType = null;//产品类型名称
if (nameArr && nameArr.length == 4) {
productName = nameArr[2];
productType = nameArr[1];
}
var typeOne =null;//产品大类编码,用于获取消息模板
if (orderdetail.product_type.indexOf("/ic/") >= 0) {//工商产品
typeOne = "ic";
}
if (orderdetail.product_type.indexOf("/qcfw/") >= 0) {//资质证照产品
typeOne="qcfw";
}
if(!typeOne || !productName){
return system.getResultFail();
}
var params = {};
if(status==170 && (orderdetail.product_type=="/qcfw/icpannals/" || orderdetail.product_type=="/qcfw/ediannals/" )){//年报已完成
functionModule="others";
if(orderdetail.tx_orders_num){
//获取资质信息
var qcInfoRes = await this.dao.getQcInfoByMainOrderNum(orderdetail.tx_orders_num);
if(qcInfoRes && qcInfoRes.length>0){
if(qcInfoRes[0] && qcInfoRes[0].deliver_content && qcInfoRes[0].deliver_content.qualification && qcInfoRes[0].deliver_content.qualification.certificateNumber){
orderdetail.certificateNumber = qcInfoRes[0].deliver_content.qualification.certificateNumber;
}
}
}
}
if(orderdetail.order_snapshot && orderdetail.order_snapshot.contactsPhone){//短信
var sms = MsgTemplate[typeOne][functionModule][status] && MsgTemplate[typeOne][functionModule][status].sms ? MsgTemplate[typeOne][functionModule][status].sms : "";
if(sms){
sms = await this.packageTemplatesParams(orderdetail,productName,productType,sms);
if (sms.indexOf("{")<0 && sms.indexOf("}")<0) {
params["phoneList"] = [{phoneNumber:orderdetail.order_snapshot.contactsPhone,messageBody:sms}];
}
}
}
if(orderdetail.user_id){//站内信
var webinfo = MsgTemplate[typeOne][functionModule][status] && MsgTemplate[typeOne][functionModule][status].webinfo ? MsgTemplate[typeOne][functionModule][status].webinfo : "";
var webinfotitle = MsgTemplate[typeOne][functionModule][status] && MsgTemplate[typeOne][functionModule][status].webinfotitle ? MsgTemplate[typeOne][functionModule][status].webinfotitle : "";
if(webinfo && webinfotitle){
webinfo = await this.packageTemplatesParams(orderdetail,productName,productType,webinfo);
if (webinfo.indexOf("{")<0 && webinfo.indexOf("}")<0) {
params["subAccountList"] = [{title:webinfotitle,subAccount:orderdetail.user_id,messageBody:webinfo}];
}
}
var productArr = product_type_name.split("/");
if(productArr && productArr.length==4){
product_type_name = productArr[2];
product_type_one_name = productArr[1];
}
if(orderdetail.wechat_no){//微信
var wechatMsg = MsgTemplate[typeOne][functionModule][status] && MsgTemplate[typeOne][functionModule][status].wx ? MsgTemplate[typeOne][functionModule][status].wx : "";
var wechattitle = MsgTemplate[typeOne][functionModule][status] && MsgTemplate[typeOne][functionModule][status].webinfotitle ? MsgTemplate[typeOne][functionModule][status].webinfotitle : "";
if(wechatMsg && wechattitle){
wechatMsg = await this.packageTemplatesParams(orderdetail,productName,productType,wechatMsg);
if (wechatMsg.indexOf("{")<0 && wechatMsg.indexOf("}")<0) {
params["wechatList"] = [{title:wechattitle,wechatNumber:orderdetail.wechat_no,messageBody:wechatMsg}];
}
}
//组装消息模板
var smsParams = await this.packageSmsTemplates(orderdetail,status,productType,product_type_name,product_type_one_name);
var webinfoParams = await this.packageWebinfoTemplates(orderdetail,status,productType,product_type_name,product_type_one_name);
if(smsParams && webinfoParams){
console.log(JSON.stringify(smsParams),"smsParams++++++++++++++++++++++++++++++");
console.log(JSON.stringify(webinfoParams),"webinfoParams------------------------");
// await this.utilsMsgSendSve.sendMessageVerify({phoneList:[smsParams],subAccountList:[webinfoParams]});//发送消息通知
}
if(orderdetail.email){//邮箱
var emailMsg = MsgTemplate[typeOne][functionModule][status] && MsgTemplate[typeOne][functionModule][status].email ? MsgTemplate[typeOne][functionModule][status].email : "";
if(emailMsg){
emailMsg = await this.packageTemplatesParams(orderdetail,productName,productType,emailMsg);
if (emailMsg.indexOf("{")<0 && emailMsg.indexOf("}")<0) {
params["emailList"] = [{email:orderdetail.email,messageBody:emailMsg}];
}
}
return;
}
}
await this.utilsMsgSendSve.sendMessageVerify(params);
console.log(JSON.stringify(params),"params++++++++++++++++++++++++++++++++++++++++");
return system.getResultSuccess(params);
} catch (e) {
console.log(e.stack)
this.execClient.execLogs("orderDeliverySve.js/sendNotification(发送短信通知)方法出现异常", {orderNum:orderNum,status:status}, "orderDeliverySve_sendNotification_error", null, e.stack);
return;
this.execClient.execLogs("orderDeliverySve.js/sendNotification(发送消息通知)方法出现异常", { orderNum:orderNum, status: status }, "orderDeliverySve_sendNotification_error", null, e.stack);
return system.getResultFail();
}
}
/**
* 创建资质信息
......
......@@ -238,8 +238,8 @@ class OrderInfoService extends ServiceBase {
user_id: pobj.actionBody.interface.para.uin,
delivery_status: 1,
user_name: txorderdetail.goodsDetail.formInfo.userName,
email: txorderdetail.goodsDetail.formInfo.email || "",
wechat_no: txorderdetail.goodsDetail.formInfo.wechatNo || ""
email: txorderdetail.goodsDetail.formInfo.Email || "",
wechat_no: txorderdetail.goodsDetail.formInfo.WechatNo || ""
}
var orderDeliveryinfo = await self.orderDeliveryDao.create(orderDeliveryobj, t);
var orderPayobj = {
......@@ -267,6 +267,9 @@ class OrderInfoService extends ServiceBase {
if (!ispush) {
return system.getResultSuccess();
}
txorderdetail.goodsDetail.formInfo.buyTime=new Date(txorderdetail.payEndTime);
txorderdetail.goodsDetail.formInfo.timeSpan=1;
txorderdetail.goodsDetail.formInfo.timeUnit="y";
//生产者------订单推送
var pushobj = {
"actionType": "produceData",// Y 功能名称
......
......@@ -46,6 +46,20 @@ class UtilsMsgSendService extends AppServiceBase {
return await this.redisClient.getCache(key);
}
/**
* 删除验证码
* @param {*} phoneNumber 手机号
*/
async removeVerificationCode(phoneNumber) {
if (!phoneNumber) {
return system.getResult(null, "手机号不能为空");
}
if (!(/^1[3|4|5|6|7|8|9][0-9]\d{8}$/.test(phoneNumber))) {
return system.getResult(null, "手机号有误,请输入正确手机号");
}
var key = this.prefix + phoneNumber;
return await this.redisClient.delete(key);
}
/**
* 发送信息
* @param {*} params 格式:
{
......@@ -154,6 +168,29 @@ class UtilsMsgSendService extends AppServiceBase {
}
}
}
if (verifyResult) {
return verifyResult;
}
if (params.emailList && params.emailList.length > 0) {
for (let index = 0; index < params.emailList.length; index++) {
var element = params.emailList[index];
if (element) {
if (!element.email) {
verifyResult = system.getResult(null, "邮箱不能为空");
break;
}
if (!element.messageBody) {
verifyResult = system.getResult(null, "微信消息主体不能为空");
break;
}
reqParam.emailTpl.push(element.messageBody);
reqParam.emailList.push(element.email);
}
}
}
if (verifyResult) {
return verifyResult;
}
var sendResult = await this.sendMessage(reqParam);
if (sendResult.status == 1) {
this.redisClient.setWithEx(shaStr, 1, setCacheEx);
......
......@@ -42,7 +42,7 @@ module.exports = {
},
"320"://已退款
{
"wx":"",
"wx":"尊敬的腾讯云客户,您的腾讯云订单已经完成退款,退款金额预计1-3个工作日内返还。\n账号ID:{userId}\n实付金额:{totalSum}\n服务产品:{productName}\n订单号:{orderNum}",
"webinfotitle":"工商订单支付状态变更通知",
"webinfo":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})的{productName}订单(订单号:{orderNum})已完成退款,退款金额预计1-3个工作日内返还。订单详情可在腾讯云官网:费用中心-订单管理中查看。\n此致\n腾讯云团队\n",
"email":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})的{productName}订单(订单号:{orderNum})已完成退款,退款金额预计1-3个工作日内返还。订单详情可在腾讯云官网:费用中心-订单管理中查看。\n此致\n腾讯云团队\n",
......@@ -51,7 +51,7 @@ module.exports = {
},
"179":{//即将到期
"wx":"",
"wx":"尊敬的腾讯云客户,您的腾讯云订单将于{expirationDate}正式到期,截至目前仅剩{timeRemaining}天。\n账号ID:{userId}\n服务产品:{productName}\n订单号:{orderNum}",
"webinfotitle":"工商服务到期提醒",
"webinfo":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})的{productName}订单将于{expirationDate}正式到期,截至目前仅剩{timeRemaining}天。为了不影响您的正常使用,请登录腾讯云官网费用中心-续费管理及时续费;若您已开通自动续费功能,请保证账户余额充足。\n此致\n腾讯云团队\n",
"email":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})的{productName}订单将于{expirationDate}正式到期,截至目前仅剩{timeRemaining}天。为了不影响您的正常使用,请登录腾讯云官网费用中心-续费管理及时续费;若您已开通自动续费功能,请保证账户余额充足。\n此致\n腾讯云团队\n",
......@@ -60,7 +60,7 @@ module.exports = {
},
"180":{//已到期
"wx":"",
"wx":"尊敬的腾讯云客户,您的腾讯云订单已于{expirationDate}正式到期,逾期未续费,将不再为您提供{productName}服务。若您扔需要该服务可进入腾讯云工商服务网站再次购买。如已缴费请忽略此信息。\n账号ID:{userId}\n服务产品:{productName}\n订单号:{orderNum}",
"webinfotitle":"工商服务到期提醒",
"webinfo":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})的{productName}订单已于{expirationDate}正式到期,逾期未续费,将不再为您提供{productName}服务。若您扔需要该服务可进入腾讯云工商服务网站再次购买。如已缴费请忽略此信息。\n此致\n腾讯云团队\n",
"email":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})的{productName}订单已于{expirationDate}正式到期,逾期未续费,将不再为您提供{productName}服务。若您扔需要该服务可进入腾讯云工商服务网站再次购买。如已缴费请忽略此信息。\n此致\n腾讯云团队\n",
......@@ -69,7 +69,7 @@ module.exports = {
},
"130":{//工商审核环节
"wx":"",
"wx":"尊敬的腾讯云用户,您好!\n您购买的{productName}已提交至工商行政管理局审核,审核结果我们会及时为您更新通知,\n账号ID:{userId}\n服务产品:{productName}\n订单号:{orderNum}",
"webinfotitle":"工商服务进度通知",
"webinfo":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})的{productName}订单(订单号:{orderNum})已提交至工商行政管理局审核,审核结果我们会及时为您更新通知,感谢您的信任。\n此致\n腾讯云团队\n",
"email":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})的{productName}订单(订单号:{orderNum})已提交至工商行政管理局审核,审核结果我们会及时为您更新通知,感谢您的信任。\n此致\n腾讯云团队\n",
......@@ -78,7 +78,7 @@ module.exports = {
},
"120":{//园区入驻审核
"wx":"",
"wx":"尊敬的腾讯云用户,您好!\n您购买的{productName}已提交至{area}园区审核,审核结果我们会及时为您更新通知,\n账号ID:{userId}\n服务产品:{productName}\n订单号:{orderNum}",
"webinfotitle":"工商服务进度通知",
"webinfo":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})的{productName}订单(订单号:{orderNum})已提交至{area}园区审核,审核结果我们会及时为您更新通知,感谢您的信任。\n此致\n腾讯云团队\n",
"email":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})的{productName}订单(订单号:{orderNum})已提交至{area}园区审核,审核结果我们会及时为您更新通知,感谢您的信任。\n此致\n腾讯云团队\n",
......@@ -87,7 +87,7 @@ module.exports = {
},
"30":{//已交付
"wx":"",
"wx":"尊敬的腾讯云用户,您好!\n您购买的{productName}已为您办理交付,感谢您的信任,\n账号ID:{userId}\n服务产品:{productName}\n订单号:{orderNum}",
"webinfotitle":"工商服务进度通知",
"webinfo":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})的{productName}订单(订单号:{orderNum})已为您办理交付,感谢您的信任。\n此致\n腾讯云团队\n",
"email":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})的{productName}订单(订单号:{orderNum})已为您办理交付,感谢您的信任。\n此致\n腾讯云团队\n",
......@@ -96,7 +96,7 @@ module.exports = {
},
"150":{//证件邮寄环节
"wx":"",
"wx":"尊敬的腾讯云用户,您好!\n您购买的{productName}相关的交付物,已为您安排邮寄,物流公司:{logisticsCompany},运单号为:{waybillNo},别急,快递会尽快送达您手上,\n账号ID:{userId}\n服务产品:{productName}\n订单号:{orderNum}",
"webinfotitle":"工商服务进度通知",
"webinfo":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})购买的{productName}相关交付物,顾问已按您提供的地址为您邮寄(物流公司:{logisticsCompany},运单号:{waybillNo}),请注意查收,感谢您的信任。\n此致\n腾讯云团队\n",
"email":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})购买的{productName}相关交付物,顾问已按您提供的地址为您邮寄(物流公司:{logisticsCompany},运单号:{waybillNo}),请注意查收,感谢您的信任。\n此致\n腾讯云团队\n",
......@@ -108,7 +108,7 @@ module.exports = {
},
"need":{
"3":{//待用户确认
"wx":"",
"wx":"尊敬的腾讯云用户,您好!\n腾讯云顾问已根据您的需求为您提交了服务方案,为了尽快为您办理入驻,请您登录腾讯云官网确认并完成支付,感谢您的信任。\n账号ID:{userId}\n服务产品:{productName}\n方案号:{solutionNum}",
"webinfotitle":"工商服务进度通知",
"webinfo":"尊敬的腾讯云用户,您好!\n腾讯云顾问已根据您的需求为您提交了{productName}方案,为了尽快为您办理入驻,请您登录腾讯云官网确认并完成支付,感谢您的信任。\n此致\n腾讯云团队\n",
"email":"尊敬的腾讯云用户,您好!\n腾讯云顾问已根据您的需求为您提交了{productName}方案,为了尽快为您办理入驻,请您登录腾讯云官网确认并完成支付,感谢您的信任。\n此致\n腾讯云团队\n",
......@@ -179,12 +179,6 @@ module.exports = {
"sms":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})提交的{productType}订单(申请类型:{productName}申请;申请地区:{area}),服务已完成,如需使用请再次购买,感谢您的使用。",
"entwx":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})提交的{productType}订单(申请类型:{productName}申请;申请地区:{area}),服务已完成,如需使用请再次购买,感谢您的使用。",
"ar_wx":"您有一个资质年报服务,申报状态已变更。\n账号ID:{userId}\n资质编号:{qcNo}\n资质类型:{productName}\n申报状态:{year}年度已申报\n备注:已购服务全部申报完成,请前控制台-我的资质证照查看。",
"ar_webinfo":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})购买的资质年报服务(资质编号:{qcNo};资质类型:{productName}),{year}年度已申报,已购服务全部申报完成,请前往控制台-我的资质证照查看。\n此致\n腾讯云团队\n",
"ar_email":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})购买的资质年报服务(资质编号:{qcNo};资质类型:{productName}),{year}年度已申报,已购服务全部申报完成,请前往控制台-我的资质证照查看。\n此致\n腾讯云团队\n",
"ar_sms":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})购买的资质年报服务(资质编号:{qcNo};资质类型:{productName}),{year}年度已申报,已购服务全部申报完成,请前往控制台-我的资质证照查看。",
"ar_entwx":"尊敬的腾讯云用户,您好!您的腾讯云账号(账号 ID:{userId},昵称:{userName})购买的资质年报服务(资质编号:{qcNo};资质类型:{productName}),{year}年度已申报,已购服务全部申报完成,请前往控制台-我的资质证照查看。",
},
"190"://关闭交付
{
......@@ -218,6 +212,17 @@ module.exports = {
"sms":"\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})提交的资质申请订单(申请类型:{productName}申请;申请地区:{area}),已为您定制申请方案,请尽快登录控制台-需求管理确认定制方案。",
"entwx":"\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})提交的资质申请订单(申请类型:{productName}申请;申请地区:{area}),已为您定制申请方案,请尽快登录控制台-需求管理确认定制方案。"
},
},
"others":{
"170":{
"webinfotitle":"资质订单服务状态变更通知",
"wx":"您有一个资质年报服务,申报状态已变更。\n账号ID:{userId}\n资质编号:{qcNo}\n资质类型:{productName}\n申报状态:{year}年度已申报\n备注:已购服务全部申报完成,请前控制台-我的资质证照查看。",
"webinfo":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})购买的资质年报服务(资质编号:{qcNo};资质类型:{productName}),{year}年度已申报,已购服务全部申报完成,请前往控制台-我的资质证照查看。\n此致\n腾讯云团队\n",
"email":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})购买的资质年报服务(资质编号:{qcNo};资质类型:{productName}),{year}年度已申报,已购服务全部申报完成,请前往控制台-我的资质证照查看。\n此致\n腾讯云团队\n",
"sms":"尊敬的腾讯云用户,您好!\n您的腾讯云账号(账号 ID:{userId},昵称:{userName})购买的资质年报服务(资质编号:{qcNo};资质类型:{productName}),{year}年度已申报,已购服务全部申报完成,请前往控制台-我的资质证照查看。",
"entwx":"尊敬的腾讯云用户,您好!您的腾讯云账号(账号 ID:{userId},昵称:{userName})购买的资质年报服务(资质编号:{qcNo};资质类型:{productName}),{year}年度已申报,已购服务全部申报完成,请前往控制台-我的资质证照查看。",
}
}
},
}
......
......@@ -60,10 +60,10 @@ identifyCode参数约定命名方式:文件名_方法名_日志类型
| 业务标识 | 业务描述 |
| ---- | ---- |
| orderDeliverySve_sendSmsNotification_error | 发送短信通知异常(订单) |
| orderDeliverySve_sendNotification_error | 发送短信通知异常(订单) |
| orderDeliverySve_createQualificationCertificateInfo_error | 创建资质信息异常 |
| orderDeliverySve_createApplyInfo_error | 创建申请实体异常 |
| needSolutionSve_sendSmsNotification_error | 发送短信通知异常(需求方案) |
| needSolutionSve_sendNotification_error | 发送短信通知异常(需求方案) |
## **<a name="getProductUsageInfo"> 控制台总览-产品使用信息</a>**
......
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