Commit a35917aa by 宋毅

tj

parent a4504078
......@@ -30,9 +30,12 @@ class APIBase {
//-----------------------新的模式------------------开始
async doexecMethod(gname, methodname, pobj, query, req) {
if (req.body.Action && this.userCenterAction[req.body.Action]) {
req.body.actionType = this.userCenterAction[req.body.Action];
req.body.actionBody = req.body.ActionBody;
var action = this.userCenterAction[req.body.Action];
if (req.body.Action && action) {
var userId = req.body["SubAccountUin"] || req.body["Uin"];
req.body.UserId = userId || "100000013569";
req.body.actionType = action;
req.body.actionBody = req.body;
}
var param = {
pobj: pobj,
......@@ -48,7 +51,6 @@ class APIBase {
result.requestId = result.requestId || uuid.v1();
if (req.body.Action && this.userCenterAction[req.body.Action]) {
result = await this.handleTxResult(result);
delete req.body["ActionBody"];
delete req.body["Action"];
}//处理tx返回数据
return result;
......
......@@ -122,7 +122,7 @@ class OrderInfoDao extends Dao{
}
//获取产品详情
async selPrice2TX(obj) {
var sql = "select product_icon,path_name,servicer_code,servicer_name from x_product "
var sql = "select xp.product_icon product_icon, xp.path_name path_name, xp.servicer_code servicer_code, xp.servicer_name servicer_name,xs.push_domain_addr push_domain_addr from x_product xp JOIN x_service_info xs ON xp.servicer_code=xs.servicer_code "
sql += "where path_code=:path_code and region_id=:region_id ";
try {
var list = await this.customQuery(sql, obj);
......@@ -132,6 +132,7 @@ class OrderInfoDao extends Dao{
rtn.product_type_name = list[0].path_name;
rtn.servicer_code = list[0].servicer_code;
rtn.servicer_name = list[0].servicer_name;
rtn.push_domain_addr = list[0].push_domain_addr;
return system.getResultSuccess(rtn);
} else {
return system.getResultFail(-203, "servicer is empty");
......
const system = require("../../../system");
const {PDICT} = require("../../../../config/platform");
const { PDICT } = require("../../../../config/platform");
module.exports = (db, DataTypes) => {
return db.define("needInfo", {
need_num: DataTypes.STRING(100),
......@@ -10,6 +10,8 @@ module.exports = (db, DataTypes) => {
region_id: DataTypes.STRING(100), //region_id 地区id
region_name: DataTypes.STRING(100), //region_name 地区名称
consult_type: DataTypes.STRING(100), //consult_type 需求类型(产品二类id)
wechat_no: DataTypes.STRING(100),//微信号
email: DataTypes.STRING(100),//邮箱
consult_type_name: DataTypes.STRING(255), //consult_type_name 需求类型名称(产品二类名称)
status: //status 需求状态:1.已提交、2.待顾问反馈、3.待用户确认、4.已完成、5.已关闭
{
......@@ -24,7 +26,7 @@ module.exports = (db, DataTypes) => {
close_reason: DataTypes.STRING(255), //关闭原因
need_info: DataTypes.JSON, //need_info 需求信息(往服务商那边推送的信息)
servicer_code: DataTypes.STRING(100), //服务商
servicer_name:DataTypes.STRING(100),
servicer_name: DataTypes.STRING(100),
}, {
paranoid: true,//假的删除
underscored: true,
......
const system = require("../../../system");
const {PDICT} = require("../../../../config/platform");
const { PDICT } = require("../../../../config/platform");
module.exports = (db, DataTypes) => {
return db.define("orderDelivery", {
order_num: DataTypes.STRING,
tx_orders_num: DataTypes.STRING,
user_id: DataTypes.STRING,
user_name: DataTypes.STRING,
wechat_no: DataTypes.STRING(100),//微信号
email: DataTypes.STRING(100),//邮箱
deliver_content: DataTypes.JSON, //交付内容
delivery_status://交付状态 order_delivery_status:{"1":"已接单","10":"收集工商注册材料","11":"工商审核环节","12":"刻章环节","13":"证件邮寄环节","14":"您已签收"},
{
......
......@@ -80,6 +80,7 @@ class NeedInfoService extends ServiceBase {
}
actionBody.ServicerCode = serviceinfo.data.servicer_code;
actionBody.ServicerName = serviceinfo.data.servicer_name;
//需求创建
var need_num = await this.getBusUid("n");
var datavalue = {
......@@ -112,7 +113,7 @@ class NeedInfoService extends ServiceBase {
"actionBody": {
notifyUrl: "http://brguser.brg.tencentyun.com/api/receive/notifyApi/springBoard",
actionType: "needSubmit",
pushUrl: settings.deliveryUrl() + "/entService/consultation/springBoard",
pushUrl: serviceinfo.data.push_domain_addr + "/entService/consultation/springBoard",
messageBody: actionBody,
identifyCode: "needSubmit"
}
......
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
const {PDICT,MsgTemplate} = require("../../../../config/platform");
const { PDICT, MsgTemplate } = require("../../../../config/platform");
class NeedSolutionService extends ServiceBase {
constructor() {
super("need", ServiceBase.getDaoName(NeedSolutionService));
......@@ -16,38 +16,38 @@ class NeedSolutionService extends ServiceBase {
* @param {*} consultName 产品类型名称
* @param {*} status 状态
*/
async sendSmsNotification(mobile,userId,consultType,consultName,status){
async sendSmsNotification(mobile, userId, consultType, consultName, status) {
try {
var nameArr = consultName?consultName.split("/"):[];
var nameArr = consultName ? consultName.split("/") : [];
var productName = null;
if(nameArr && nameArr.length==4){
if (nameArr && nameArr.length == 4) {
productName = nameArr[2];
}
var params = {phoneNumber:mobile,messageBody:null};
var webinfoParams = {"title":null,"subAccount":userId,"messageBody":null};//站内信通知参数
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("/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){//资质证照产品
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;
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]});
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);
this.execClient.execLogs("needSolutionSve.js/sendSmsNotification(发送短信通知)方法出现异常", { mobile: mobile, consultType: consultType, consultName: consultName, status: status }, "", null, e.stack);
return;
}
......@@ -101,7 +101,7 @@ 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);
self.sendSmsNotification(needinfo.contacts_mobile, needinfo.user_id, needinfo.consult_type, needinfo.consult_type_name, 3);
return system.getResultSuccess();
});
......@@ -127,7 +127,7 @@ class NeedSolutionService extends ServiceBase {
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);
self.sendSmsNotification(needinfo.contacts_mobile, needinfo.user_id, needinfo.consult_type, needinfo.consult_type_name, 3);
return system.getResultSuccess(solution_num);
});
......@@ -156,6 +156,15 @@ class NeedSolutionService extends ServiceBase {
if (!solutionInfo) {
return system.getResultFail(-102, "solutionInfo is empty");
}
var urlobj = {
path_code: needInfo.dataValues.consult_type,
region_id: needInfo.dataValues.region_id
}
var serviceinfo = await this.needInfoDao.findServiceByProductType(urlobj);
if (serviceinfo.status < 0) {
return system.getResultFail(-203, "servicer is empty");
}
//生产者------方案反馈
var pushobj = {
......@@ -163,7 +172,7 @@ class NeedSolutionService extends ServiceBase {
"actionBody": {
notifyUrl: "",
actionType: "needClose",
pushUrl: settings.deliveryUrl() + "/entService/consultation/springBoard",
pushUrl: serviceinfo.data.push_domain_addr + "/entService/consultation/springBoard",
messageBody: actionBody,
identifyCode: "needClose"
}
......
......@@ -50,8 +50,8 @@ class OrderInfoService extends ServiceBase {
return system.getResultFail(-300, "未知订单信息");
}
var relatedProductsList = [];
if(orderinfo.tx_orders_num){
relatedProductsList = await this.getRelatedProductsList(orderinfo.tx_orders_num,ab.UserId,ab.OrderNum);
if (orderinfo.tx_orders_num) {
relatedProductsList = await this.getRelatedProductsList(orderinfo.tx_orders_num, ab.UserId, ab.OrderNum);
}
orderinfo["relatedProductsList"] = relatedProductsList;
var deliveryParams = {
......@@ -71,18 +71,18 @@ class OrderInfoService extends ServiceBase {
return system.getResultSuccess(orderinfo);
}
//获取关联产品列表
async getRelatedProductsList(TxOrdersNum,UserId,OrderNum){
async getRelatedProductsList(TxOrdersNum, UserId, OrderNum) {
var whereObj = {
tx_orders_num:TxOrdersNum,user_id:UserId
tx_orders_num: TxOrdersNum, user_id: UserId
};
if(OrderNum){
if (OrderNum) {
whereObj["order_num"] = { [this.db.Op.ne]: OrderNum };
}
// orderdetail.tx_orders_num,orderdetail.order_num
var relatedProductsList = await this.orderProductDao.model.findAll({
attributes:["product_type","product_type_name"],
where:whereObj,
raw:true
attributes: ["product_type", "product_type_name"],
where: whereObj,
raw: true
});
return relatedProductsList;
}
......@@ -116,7 +116,7 @@ class OrderInfoService extends ServiceBase {
}
//发货回调
async orderPayNotify(pobj) {
async orderPayNotifydev(pobj) {
if (!pobj.actionBody.interface || !pobj.actionBody.interface.para) {
return system.getResultFail(-101, "参数错误");
}
......@@ -270,7 +270,7 @@ class OrderInfoService extends ServiceBase {
"actionBody": {
notifyUrl: "",
actionType: "orderSubmit",
pushUrl: settings.deliveryUrl() + "/entService/order/springBoard",
pushUrl: txorderdetail.goodsDetail.product.pushDomainAddr + "/entService/order/springBoard",
messageBody: {
"txOrderNum": pobj.actionBody.interface.para.bigDealId,
"orderNum": pobj.actionBody.interface.para.dealName,
......@@ -297,7 +297,7 @@ class OrderInfoService extends ServiceBase {
return corder;
}
async orderPayNotifydev(pobj) {
async orderPayNotify(pobj) {
if (!pobj.actionBody.interface || !pobj.actionBody.interface.para) {
return system.getResultFail(-101, "参数错误");
}
......@@ -529,7 +529,7 @@ class OrderInfoService extends ServiceBase {
"actionBody": {
notifyUrl: "",
actionType: "orderSubmit",
pushUrl: settings.deliveryUrl() + "/entService/order/springBoard",
pushUrl: txorderdetail.goodsDetail.product.pushDomainAddr + "/entService/order/springBoard",
messageBody: {
"txOrderNum": pobj.actionBody.interface.para.bigDealId,
"orderNum": pobj.actionBody.interface.para.dealName,
......@@ -706,6 +706,7 @@ class OrderInfoService extends ServiceBase {
productTypeName: txproductinfo.data.product_type_name,
servicerCode: txproductinfo.data.servicer_code,
servicerName: txproductinfo.data.servicer_name,
pushDomainAddr: txproductinfo.data.push_domain_addr,
txPriceCode: billingcode
},
productSnapshot: txobj.interface.para.resInfo[0].goodsDetail
......@@ -809,11 +810,11 @@ class OrderInfoService extends ServiceBase {
}
}
}
var a=await this.execPostByTimeOut(p, "http://192.168.1.113:4011/api/action/txapi/springBoard");
var a = 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;
var b=await this.execPostByTimeOut(p, "http://192.168.1.113:4011/api/action/txapi/springBoard");
var b = 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();
......
......@@ -43,14 +43,11 @@
``` javascript
{
"Action": "GetOrderList",
"ActionBody": {
"UserId": "1",
"ProductType":"/ic/gsreg/",
"DeliveryStatus":130,
"CompanyProperties":"有限责任公司",
"TaxpayerType":"小规模纳税人"
}
}
```
#### 返回结果
......@@ -98,8 +95,6 @@
``` javascript
{
"Action": "GetQcOrderList",
"ActionBody": {
"UserId": "1",
"PageSize":2,
"CurrentPage":1,
"ProductType":"/qcfw/icp/",
......@@ -107,7 +102,6 @@
"DeliveryStatus":170,
"SortType":"asc"
}
}
```
#### 返回结果
......@@ -151,11 +145,8 @@
``` javascript
{
"Action": "GetOrderDetail",
"ActionBody": {
"UserId": "1",
"OrderNum":"1111115"
}
}
```
#### 返回结果
......@@ -211,15 +202,12 @@
``` javascript
{
"Action": "GetApplyListByUserAndType",
"ActionBody": {
"UserId": "1",
"ApplyType":"1",
"CurrentPage":0,
"PageSize":10,
"ApplyName":"",
"Domicile":""
}
}
```
#### 返回结果
......@@ -265,11 +253,8 @@
``` javascript
{
"Action": "GetApplyAndSolutionInfo",
"ActionBody": {
"UserId": "1",
"CreditCode":"1234349555556"
}
}
```
#### 返回结果
......@@ -307,11 +292,8 @@
``` javascript
{
"Action": "GetOverviewInfoByUser",
"ActionBody": {
"UserId": "1",
"ProductTypeOne":"qcfw"
}
}
```
#### 返回结果
......@@ -342,7 +324,6 @@
| 参数名 | 必填 | 类型 | 描述 |
| ---- | ---- | ---- | ---- |
| UserId | 否 | string | 用户id |
| RegionId | 是 | string | 地区代码 |
| RegionName | 是 | string | 地区拼音 |
| PathCode | 是 | string | 产品类型 |
......@@ -352,7 +333,6 @@
| 参数名 | 必填 | 类型 | 描述 |
| ---- | ---- | ---- | ---- |
| UserId | 否 | string | 用户id |
| RegionId | 是 | string | 地区代码 |
| RegionName | 是 | string | 地区拼音 |
| PathCode | 是 | string | 产品类型 |
......@@ -362,7 +342,6 @@
| 参数名 | 必填 | 类型 | 描述 |
| ---- | ---- | ---- | ---- |
| UserId | 否 | string | 用户id |
| RegionId | 是 | string | 地区代码 |
| RegionName | 是 | string | 地区拼音 |
| PathCode | 是 | string | 产品类型 |
......@@ -391,7 +370,6 @@
| 参数名 | 必填 | 类型 | 描述 |
| ---- | ---- | ---- | ---- |
| UserId | 否 | string | 用户id |
| RegionId | 是 | string | 地区代码 |
| RegionName | 是 | string | 地区拼音 |
| PathCode | 是 | string | 产品类型 |
......@@ -401,7 +379,6 @@
| 参数名 | 必填 | 类型 | 描述 |
| ---- | ---- | ---- | ---- |
| UserId | 否 | string | 用户id |
| RegionId | 是 | string | 地区代码 |
| RegionName | 是 | string | 地区拼音 |
| PathCode | 是 | string | 产品类型 |
......@@ -411,7 +388,6 @@
| 参数名 | 必填 | 类型 | 描述 |
| ---- | ---- | ---- | ---- |
| UserId | 否 | string | 用户id |
| RegionId | 是 | string | 地区代码 |
| RegionName | 是 | string | 地区拼音 |
| PathCode | 是 | string | 产品类型 |
......@@ -421,7 +397,6 @@
| 参数名 | 必填 | 类型 | 描述 |
| ---- | ---- | ---- | ---- |
| UserId | 否 | string | 用户id |
| RegionId | 是 | string | 地区代码 |
| RegionName | 是 | string | 地区拼音 |
| PathCode | 是 | string | 产品类型 |
......@@ -430,7 +405,6 @@
| 参数名 | 必填 | 类型 | 描述 |
| ---- | ---- | ---- | ---- |
| UserId | 否 | string | 用户id |
| RegionId | 是 | string | 地区代码 |
| RegionName | 是 | string | 地区拼音 |
| PathCode | 是 | string | 产品类型 |
......@@ -442,13 +416,11 @@
``` javascript
{
"Action": "SelPrice2TX",
"ActionBody": {
"UserId": "10628520",
"RegionId":"1",
"PathCode":"/ic/gsreg/",
"WhetherType":"公司章",
"RegionName":"shanghai"
}
}
```
......@@ -480,13 +452,14 @@
| 参数名 | 必填 | 类型 | 描述 |
| ---- | ---- | ---- | ---- |
| UserId | 是 | string | 用户id |
| VerificationCode | 否 | string | 验证码 |
| Info | 是 | string | 产品信息 支持多个产品提交 数组格式 |
| Info[0].productSnapshot | 是 | string | tx产品快照 |
| Info[0].product | 是 | string | 产品快照 |
| Info[0].showInfo | 是 | string | 核对页展示信息 |
| Info[0].formInfo | 是 | string | 表单信息 |
| Info[0].formInfo.Email | 否 | string | 邮箱 |
| Info[0].formInfo.WechatNo | 否 | string | 微信号 |
......@@ -494,11 +467,9 @@
``` javascript
{
"Action": "SubmitGoodsinfo",
"ActionBody": {
"UserId": "011",
"VerificationCode": "564264",
"Info":"[{\"product\":{\"productIcon\":null,\"productType\":\"/ic/kzfw/\",\"productTypeName\":\"/工商服务/刻章服务/\",\"servicerCode\":\"测试服务商\"},\"productSnapshot\":{\"timeSpan\":\"1\",\"timeUnit\":\"p\",\"pid\":1003952,\"productCode\":\"p_business_registration\",\"goodsSubType\":\"sp_business_registration_chapter\",\"subProductCode\":\"sp_business_registration_chapter\",\"qifuzidingyi\":\"beijing\",\"sv_business_registration_type_fivechapter\":\"1\"},\"showInfo\":[{\"name\":\"公司名称\",\"value\":\"公司宝\"},{\"name\":\"公司名称\",\"value\":\"公司宝\"}],\"formInfo\":{}}]"
}
}
```
......@@ -528,7 +499,7 @@
| 参数名 | 必填 | 类型 | 描述 |
| ---- | ---- | ---- | ---- |
| UserId | 是 | string | 用户id |
| UserName | 是 | string | 用户名称 |
| ContactsMoblie | 是 | string | 联系人电话 |
| ContactsName | 否 | string | 联系人名称 |
| RegionId | 是 | string | 地区id |
......@@ -538,14 +509,17 @@
| ConsultType | 是 | string | 产品类型 |
| ConsultTypeName | 是 | string | 产品类型名称 |
| CompanyName | 否 | string | 公司名称 |
| CompanyName | 否 | string | 公司名称 |
| Email | 否 | string | 邮箱 |
| WechatNo | 否 | string | 微信号 |
#### 参数示例
``` javascript
{
"Action": "SubmitNeed",
"ActionBody": {
"UserId": "011",
"UserName": "011",
"ContactsMoblie":"17610163852",
"ContactsName":"wdy",
"RegionId":"110100",
......@@ -553,7 +527,6 @@
"ConsultType":"/ic/gsreg/",
"ConsultTypeName":"/工商服务/公司注册/",
}
}
```
#### 返回结果
......@@ -579,7 +552,6 @@
| 参数名 | 必填 | 类型 | 描述 |
| ---- | ---- | ---- | ---- |
| UserId | 是 | string | 用户id |
| PageNo | 否 | string | 页码 |
| PageSize | 否 | string | 页面大小 |
| Status | 否 | string | 状态 |
......@@ -593,7 +565,6 @@
``` javascript
{
"Action": "GetNeedList",
"ActionBody": {
"UserId": "011",
"PageNo":"1",
"PageSize":"10",
......@@ -601,7 +572,7 @@
"RegionName":"北京",
"ConsultType":"/ic/",
"Sort":"{\"key\":\"created_at\",\"value\":\"desc\"}"
}
}
```
......@@ -638,10 +609,8 @@
``` javascript
{
"Action": "GetNeedDetail",
"ActionBody": {
"NeedNum": "202006100003"
}
}
```
#### 返回结果
......@@ -678,11 +647,8 @@
``` javascript
{
"Action": "GetOrderListByStatus",
"ActionBody": {
"UserId": "1",
"Status":150
}
}
```
#### 返回结果
......@@ -761,11 +727,9 @@ RefusalContent | Y | string | 100 | 备注信息
``` javascript
{
"Action": "RefusalSolution",
"ActionBody": {
"NeedNum":"",
"SolutionNum":"",
"RefusalContent":"" //描述
}
}
```
......@@ -800,8 +764,6 @@ RefusalContent | Y | string | 100 | 备注信息
``` javascript
{
"Action": "GetQcOrderList",
"ActionBody": {
"UserId": "1",
"PageSize":2,
"CurrentPage":1,
"ProductType":"/qcfw/icp/",
......@@ -809,7 +771,6 @@ RefusalContent | Y | string | 100 | 备注信息
"DeliveryStatus":170,
"SortType":"asc"
}
}
```
#### 返回结果
......@@ -854,11 +815,8 @@ RefusalContent | Y | string | 100 | 备注信息
``` javascript
{
"Action": "GetQualificationCertificateDetail",
"ActionBody": {
"UserId": "1",
"CertificateNo":"d"
}
}
```
......
ALTER TABLE b_need_info ADD COLUMN wechat_no VARCHAR(100) DEFAULT NULL COMMENT '微信号';
ALTER TABLE b_need_info ADD COLUMN wechat_no VARCHAR(100) DEFAULT NULL COMMENT '微信号';
ALTER TABLE b_need_info ADD COLUMN email VARCHAR(100) DEFAULT NULL COMMENT '邮箱';
ALTER TABLE b_order_delivery ADD COLUMN wechat_no VARCHAR(100) DEFAULT NULL COMMENT '微信号';
ALTER TABLE b_order_delivery ADD COLUMN email VARCHAR(100) DEFAULT NULL COMMENT '邮箱';
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment