Commit a78d6705 by sxy

feat: 复购商机结构初始化

parent 11e4a5ea
var WEBBase = require("../../web.base");
var system = require("../../../system");
class FgbusinesschanceAPI extends WEBBase {
constructor() {
super();
this.utilsFgbusinesschancSve = system.getObject("service.utilsSve.utilsFgbusinesschanceSve");
this.toolSve = system.getObject("service.trademark.toolSve");
}
/**
* 复购商机 相关接口 跳转-POST请求
* action_process 执行的流程
* action_type 执行的类型
* action_body 执行的参数
*/
async springBoard(pobj, qobj, req) {
if (!pobj.actionProcess) {
return system.getResult(null, "actionProcess参数不能为空");
}
if (!pobj.actionType) {
return system.getResult(null, "actionType参数不能为空");
}
var result = await this.opActionProcess(pobj, pobj.actionType, req);
return result;
}
async opActionProcess(pobj, action_type, req) {
pobj.requestId = req.requestId;
var opResult = null;
switch (action_type) {
case "create"://创建复购商机
opResult = await this.utilsFgbusinesschancSve.create(pobj, pobj.actionBody);
break;
case "getInfo"://获取商机
opResult = await this.utilsFgbusinesschancSve.getInfo(pobj, pobj.actionBody);
break;
// ------ 对蜂擎页面 -------
case "getCompanyInfo": // 获取工商信息
opResult = await this.toolSve.getEntregistryByCompanyName(pobj.actionBody, req);
break;
case "getProductServiceLabel": // 获取产品服务标签
opResult = await this.utilsFgbusinesschancSve.getProductServiceLabel(pobj, pobj.actionBody);
break;
case "getRecommendProducts": // 获取推荐产品列表
opResult = await this.utilsFgbusinesschancSve.getRecommendProducts(pobj, pobj.actionBody);
break;
case "getTalkContent": // 获取营销话术
opResult = await this.utilsFgbusinesschancSve.getTalkContent(pobj, pobj.actionBody);
break;
case "getOldOrder": // 获取已购产品
opResult = await this.utilsFgbusinesschancSve.getOldOrder(pobj, pobj.actionBody);
break;
case "updateStatus"://更新商机跟进状态
opResult = await this.utilsFgbusinesschancSve.updateStatus(pobj, pobj.actionBody);
break;
case "getCompanyLabel":// 三十秒认知客户
opResult = await this.utilsFgbusinesschancSve.getCompanyLabel(pobj, pobj.actionBody);
break
case "getMoreInfoUrl":// 更多客户信息链接地址
opResult = await this.utilsFgbusinesschancSve.getMoreInfoUrl(pobj, pobj.actionBody);
break
default:
opResult = system.getResult(null, "action_type参数错误");
break;
}
return opResult;
}
}
module.exports = FgbusinesschanceAPI;
const system = require("../../../system");
var settings = require("../../../../config/settings");
const querystring = require('querystring');
const AppServiceBase = require("../../app.base");
class UtilsFgbusinesschancService extends AppServiceBase {
constructor() {
super();
this.utilsPushSve = system.getObject("service.utilsSve.utilsPushSve");
this.logCtl = system.getObject("service.common.oplogSve");
this.centerOrderUrl = settings.centerOrderUrl();
this.qifuPayAfterH5JumpUrl = settings.qifuPayAfterH5JumpUrl();
this.qifuPayAfterPcJumpUrl = settings.qifuPayAfterPcJumpUrl();
this.qifuH5PayNotifyUrl = settings.qifuH5PayNotifyUrl();
this.centerAppUrl = settings.centerAppUrl();
this.centerAppPayUrl = settings.centerAppUrl() + "payment/paymentApi/springBoard";
};
// async getOrderInfo(pobj, actionBody) {
// var reqUrl = this.centerOrderUrl + "action/order/springBoard";
// var result = await this.restPostUrl(pobj, reqUrl);
// return result;
// }
async getInfo(pobj, actionBody) {
var reqUrl = this.centerOrderUrl + "action/fgbusinesschance/springBoard";
var result = await this.restPostUrl(pobj, reqUrl);
return result;
}
async create(pobj, actionBody) {
var reqUrl = this.centerOrderUrl + "action/fgbusinesschance/springBoard";
//companyId` ,`companyName`,`businessId`,`status`,`stateName`,`created_at`,`collectContent`
pobj.actionBody = {
companyId: "test",
companyName: "test",
businessId: "22222",
status: "没退",
stateName: "未跟进",
collectContent: JSON.stringify({
test: "test"
})
}
var result = await this.restPostUrl(pobj, reqUrl);
return result;
}
async getCompanyInfo(pobj, actionBody) {
if (!actionBody.companyName) {
return system.getResult(null, "actionBody.companyName can not be empty,100290");
}
}
async getCompanyLabel(pobj, actionBody) {
if (!actionBody.companyName) {
return system.getResult(null, "actionBody.companyName can not be empty,100290");
}
}
async getRecommendProducts(pobj, actionBody) {
if (!actionBody.businessId) {
return system.getResult(null, "actionBody.businessId can not be empty,100290");
}
}
async getOldOrder(pobj, actionBody) {
if (!actionBody.companyName) {
return system.getResult(null, "actionBody.companyName can not be empty,100290");
}
}
async updateStatus(pobj, actionBody) {
if (!actionBody.recommendId) {
return system.getResult(null, "actionBody.recommendId can not be empty,100290");
}
if (!actionBody.statusName) {
return system.getResult(null, "actionBody.statusName can not be empty,100290");
}
if (!actionBody.businessId) {
return system.getResult(null, "actionBody.businessId can not be empty,100290");
}
}
async getTalkContent(pobj, actionBody) {
if (!actionBody.recommendId) {
return system.getResult(null, "actionBody.recommendId can not be empty,100290");
}
}
async getMoreInfoUrl(pobj, actionBody) {
if (!actionBody.companyName) {
return system.getResult(null, "actionBody.companyName can not be empty,100290");
}
}
}
module.exports = UtilsFgbusinesschancService;
...@@ -39,5 +39,9 @@ ...@@ -39,5 +39,9 @@
## 12. ICP订单相关接口 ## 12. ICP订单相关接口
  1 [ICP订单接口](doc/api/platform/icpOrder.md)   1 [ICP订单接口](doc/api/platform/icpOrder.md)
## 13. Logo订单相关接口 ## 13. Logo订单相关接口
  1 [Logo订单接口](doc/api/platform/logoOrder.md)   1 [Logo订单接口](doc/api/platform/logoOrder.md)
\ No newline at end of file
## 14. 复购商机相关接口
  1 [复购商机相关接口](doc/api/platform/fgbusinesschance.md)
\ No newline at end of file
1. [获取营销话术](#a)
1. [获取工商接口](#b)
1. [30秒认知客户](#c)
1. [更多客户信息链接地址](#d)
1. [推荐业务状态更新](#e)
1. [推荐业务列表](#f)
1. [已购产品列表](#g)
## **<a name="a"> 获取营销话术</a>**
##### URL
[/web/opaction/fgbusinesschance/springBoard]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
#### 请求头中需要增加token(用户登录后的凭证)的值
#### 渠道执行的类型 actionType:getTalkContent
#### 请求数据
```
{
"actionType":"getTalkContent",
actionBody:{
"already_product":"公司注册",
"recommend_product":"驳回宝"
}
}
```
#### 返回结果
```
<!-- data[0]代表开场白
data[1]代表话术原因
data[2]代表问答行式话术
data[3]代表结束语 -->
{
"status": 0,
"msg": "成功",
"data": [
"老板,您好,我是公司宝XXX,我们是阿里云(钉钉)的战略合作伙伴。",
"首先非常感谢您在阿里云(钉钉)上购买了商标注册服务,您的商标正在办理过程中,在办理过程中您有任何问题和需求,都可以随时与公司宝联系,您可以关注我们的服务号,我们会随时推送您的商标申请进度反馈给您。\r\n另外,由于商标申请驳回率较高,目前接近50%,公司宝现推出商标驳回宝产品套餐,针对像您这样已经购买商标注册的客户,您只需加+500元,即送送驳回复审提交服务(不含官费750元及举证撰写费1500元起),确保您的商标在驳回的第一时间我们即会自动向商评委提交驳回复审申请,避免耽误您的驳回复审提交时间。后续您还有三个月的时间搜集整理举证证据,时间也是非常充足,目前公司宝针对阿里云(钉钉)的客户给予特价优惠,购买该项服务仅需258元,优惠幅度高达50%,您看您是否需要?",
"question:你们公司宝与阿里(钉钉)什么关系?---\nanswer:我们公司宝主体是汉唐信通(北京)咨询股份有限公司,致力于企业全生命周期的一站式服务平台。阿里(钉钉)在全国甄选优质合作伙伴时独占鳌头,成为阿里(钉钉)的直营合作伙伴。|\nquestion:你们的驳回宝的优势是什么?---\nanswer:在商标接收到驳回通知后,专家老师及时分析案件情况;与您沟通商标使用情况等细节问题;出具复审的方案,并及时整理材料进行复审操作。提交后三个月内辅助您整理收集各类证据,专业的律师团队撰写案件理由,积极复审,使复审的成功率更高。|\nquestion:价格能便宜点吗?---\nanswer:您好,因为我们目前这个驳回宝套餐,已经是优惠后的特价产品;我们负责做这件事的团队都是层层考试竞选出来的,有多年专业经验的老师负责方案分析、材料整理、律师撰写等等。我们打造的是专业,靠谱;而不是随便收您点钱,事情没好好办,走个过程。相信您做公司也能明白这个道理,专人专岗跟一个人干百样工作,他的专注度和专业性肯定不一样的;相信您复审,肯定和我们的目标是一致的,我们都是希望这个商标能注册下来的。|\nquestion:你们有多大把握能帮我复审成功?---\nanswer:您好,首先拿到案件,我们会成立专家小组给您进行专业性的案件分析。然后,我们与您沟通商标的具体使用情况及哪些可以做为复审证据等综合情况。之后,专家团队会出具本商标的具体复审实施方案。在律师撰写案件理由时,肯定也是放大我们的优势,尽力为您争取。但是由于驳回复审,是商标评审委员会的老师人为审理,也和商标注册一样,可能带有自己的主观判断;所以驳回复审也没有人敢承诺100%,我们能保证的是尽最大努力,认认真真做事,帮您争取拿下商标。|",
"推荐成功结束语:好的,老板,很高兴您选择这款套餐,我马上帮您系统生成订单,您后续登录IC并进行付款即可。您也可以同步关注我们的服务号,我们会随时推送您的商标申请进度反馈给您。\r\n不成功结束语:好的,老板,公司宝有公司注册、财税代理、知识产权、行业资质认证、薪 税服务、公司交易多达三百余项产品,贵公司在业务开展过程中,如果有其他上述的服务需求,随时欢迎找我们。感谢您的支持。(也可以继续推荐其他套餐)"
]
}
```
## **<a name="b"> 获取工商接口</a>**
##### URL
[/web/opaction/fgbusinesschance/springBoard]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
#### 请求头中需要增加token(用户登录后的凭证)的值
#### 渠道执行的类型 actionType:getCompanyInfo
#### 请求数据
```
{
"actionType":"getCompanyInfo",
actionBody:{
companyName:"公司名称"
}
}
```
#### 返回结果
```
{
"status": 0,
"msg": "success",
"data": {
"name": "北京创知厚德科技有限公司",
"legalRepresentative": "王静波",
"managementState": "存续",
"registeredCapital": "100.000万人民币",
"foundedTime": "",
"creditCode": "91110105MA00723E4F",
"registrID": "110105021672563",
"organizationCode": "MA00723E4",
"companyType": "0",
"registerOffice": "北京市工商行政管理局朝阳分局",
"businessAddress": "北京市朝阳区创远路36号院10号楼1层102",
"scope": "技术开发、技术咨询、技术服务;商标代理;版权贸易;经济贸易咨询;企业策划;设计、制作、代理、发布广告;市场调查;企业管理咨询;组织文化艺术交流活动(不含演出);承办展览展示活动;影视策划;翻译服务;酒店管理;销售文具用品、体育用品、机械设备、五金交电(不从事实体店铺经营)、电子产品、通讯设备、计算机、软件及辅助设备;工程和技术研究;计算机系统服务;基础软件服务;应用软件服务(不含医用软件);软件开发;出租办公用房;机动车公共停车场服务;会议服务;房地产信息咨询;房地产开发;物业管理。(企业依法自主选择经营项目,开展经营活动;依法须经批准的项目,经相关部门批准后依批准的内容开展经营活动;不得从事本市产业政策禁止和限制类项目的经营活动。)",
"dateIssue": "2018-3-9",
"companyProvince": "北京",
"companyOrgType": "有限责任公司",
"businessTerm": "2016-7-20至2036-7-19",
"requestId": "a4e2b6fdd079427a9291f491058987e3"
},
"requestId": "a66073a67d454559a10f2961c83ace37"
}
```
## **<a name="c"> 30秒认知客户</a>**
##### URL
[/web/opaction/fgbusinesschance/springBoard]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
#### 请求头中需要增加token(用户登录后的凭证)的值
#### 渠道执行的类型 actionType:getCompanyLabel
#### 请求数据
```
{
"actionType":"getCompanyLabel",
actionBody:{
companyName:"公司名称"
}
}
```
#### 返回结果
```
{
"status": 0,
"msg": "success",
"data": [],
"requestId": "a66073a67d454559a10f2961c83ace37"
}
```
## **<a name="d"> 更多客户信息链接地址</a>**
##### URL
[/web/opaction/fgbusinesschance/springBoard]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
#### 请求头中需要增加token(用户登录后的凭证)的值
#### 渠道执行的类型 actionType:getMoreInfoUrl
#### 请求数据
```
{
"actionType":"getMoreInfoUrl",
actionBody:{
companyName:"公司名称"
}
}
```
#### 返回结果
```
{
"status": 0,
"msg": "success",
"data": {
url: "http:xxxx.com"
},
"requestId": "a66073a67d454559a10f2961c83ace37"
}
```
## **<a name="e"> 推荐业务状态更新</a>**
##### URL
[/web/opaction/fgbusinesschance/springBoard]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
#### 请求头中需要增加token(用户登录后的凭证)的值
#### 渠道执行的类型 actionType:updateStatus
#### 请求数据
```
{
"actionType":"updateStatus",
actionBody:{
recommendId:"推荐Id",
statusName:"跟进状态",
businessId:"商机Id",
userId:"操作人ID"
}
}
```
#### 返回结果
```
{
"status": 0,// 0为成功,否则失败
"msg": "success",
"data":null,
"requestId": "f21446617c5e46ad889f3fab7bb69456"
}
```
## **<a name="f"> 推荐业务列表</a>**
##### URL
[/web/opaction/fgbusinesschance/springBoard]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
#### 请求头中需要增加token(用户登录后的凭证)的值
#### 渠道执行的类型 actionType:getRecommendProducts
#### 请求数据
```
{
"actionType":"getRecommendProducts",
actionBody:{
businessId:"商机Id"
}
}
```
#### 返回结果
```
{
"status": 0,// 0为成功,否则失败
"msg": "success",
"data":[{
"accountId":"客户ID",
"recommendId": "00000001",
"typeName": "知识产权",
"productName": "软件著作权",
"buyRate": "80%"
}],
"requestId": "f21446617c5e46ad889f3fab7bb69456"
}
```
## **<a name="g"> 已购产品列表</a>**
##### URL
[/web/opaction/fgbusinesschance/springBoard]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
#### 请求头中需要增加token(用户登录后的凭证)的值
#### 渠道执行的类型 actionType:getOldOrder
#### 请求数据
```
{
"actionType":"getOldOrder",
actionBody:{
companyName:"公司名称"
}
}
```
#### 返回结果
```
```
\ No newline at end of file
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
"description": "h5framework", "description": "h5framework",
"main": "main.js", "main": "main.js",
"scripts": { "scripts": {
"dev": "nodemon main.js",
"test": "echo \"Error: no test specified\" && exit 1" "test": "echo \"Error: no test specified\" && exit 1"
}, },
"author": "jy", "author": "jy",
...@@ -56,4 +57,4 @@ ...@@ -56,4 +57,4 @@
"element-theme": "^2.0.1", "element-theme": "^2.0.1",
"element-theme-chalk": "^2.4.0" "element-theme-chalk": "^2.4.0"
} }
} }
\ 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