Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Z
zhichan
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
蒋勇
zhichan
Commits
7115f4e8
Commit
7115f4e8
authored
May 09, 2020
by
王栋源
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'center-channel' of gitlab.gongsibao.com:jiangyong/zhichan into center-channel
parents
5d6f4d2d
171af02e
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
580 additions
and
114 deletions
+580
-114
center-channel/app/base/api/impl/action/logoOrderApi.js
+6
-0
center-channel/app/base/api/impl/opaction/fgbusinesschance.js
+10
-4
center-channel/app/base/service/impl/common/centerorderSve.js
+45
-5
center-channel/app/base/service/impl/utilsSve/utilsFgbusinesschanceSve.js
+30
-16
center-channel/app/base/utils/aliyunClient.js
+1
-1
center-channel/app/config/routes/doc.js
+35
-17
center-channel/app/front/entry/public/apidoc/platform/fgbusinesschance.md
+120
-2
center-channel/app/front/entry/public/apidoc/platform/logoOrder.md
+333
-69
No files found.
center-channel/app/base/api/impl/action/logoOrderApi.js
View file @
7115f4e8
...
@@ -33,6 +33,12 @@ class LogoOrderAPI extends APIBase {
...
@@ -33,6 +33,12 @@ class LogoOrderAPI extends APIBase {
case
"singlelogo"
:
//生成logo
case
"singlelogo"
:
//生成logo
opResult
=
await
this
.
centerorderSve
.
singlelogo
(
pobj
);
opResult
=
await
this
.
centerorderSve
.
singlelogo
(
pobj
);
break
;
break
;
case
"changelogo"
:
//换一批logo
opResult
=
await
this
.
centerorderSve
.
changelogo
(
pobj
);
break
;
case
"downloadlogoscene"
:
//下载logo场景
opResult
=
await
this
.
centerorderSve
.
downloadlogoscene
(
pobj
);
break
;
case
"getPaidLogoListByUser"
:
//获取已购买的logo
case
"getPaidLogoListByUser"
:
//获取已购买的logo
opResult
=
await
this
.
centerorderSve
.
reqCenterOrderApi
(
pobj
,
"action/logoOrderApi/springBoard"
);
opResult
=
await
this
.
centerorderSve
.
reqCenterOrderApi
(
pobj
,
"action/logoOrderApi/springBoard"
);
break
;
break
;
...
...
center-channel/app/base/api/impl/opaction/fgbusinesschance.js
View file @
7115f4e8
...
@@ -29,14 +29,20 @@ class FgbusinesschanceAPI extends WEBBase {
...
@@ -29,14 +29,20 @@ class FgbusinesschanceAPI extends WEBBase {
case
"create"
:
//创建复购商机
case
"create"
:
//创建复购商机
opResult
=
await
this
.
utilsFgbusinesschancSve
.
create
(
pobj
,
pobj
.
actionBody
);
opResult
=
await
this
.
utilsFgbusinesschancSve
.
create
(
pobj
,
pobj
.
actionBody
);
break
;
break
;
case
"getInfo"
:
//获取商机
case
"createOrderRefundFq"
:
opResult
=
await
this
.
utilsFgbusinesschancSve
.
getInfo
(
pobj
,
pobj
.
actionBody
);
opResult
=
await
this
.
utilsFgbusinesschancSve
.
createOrderRefundFq
(
pobj
,
pobj
.
actionBody
);
break
;
case
"createOnlineProductClassificiationFq"
:
opResult
=
await
this
.
utilsFgbusinesschancSve
.
createOnlineProductClassificiationFq
(
pobj
,
pobj
.
actionBody
);
break
;
case
"createOrderInfoAndPayFq"
:
opResult
=
await
this
.
utilsFgbusinesschancSve
.
createOrderInfoAndPayFq
(
pobj
,
pobj
.
actionBody
);
break
;
break
;
// ------ 对蜂擎页面 -------
// ------ 对蜂擎页面 -------
case
"getCompanyInfo"
:
// 获取工商信息
--ok
case
"getCompanyInfo"
:
// 获取工商信息
opResult
=
await
this
.
toolSve
.
getEntregistryByCompanyName
(
pobj
.
actionBody
,
req
);
opResult
=
await
this
.
toolSve
.
getEntregistryByCompanyName
(
pobj
.
actionBody
,
req
);
break
;
break
;
case
"getCompanyLabel"
:
// 三十秒认知客户
--ok
case
"getCompanyLabel"
:
// 三十秒认知客户
opResult
=
await
this
.
utilsFgbusinesschancSve
.
getCompanyLabel
(
pobj
,
pobj
.
actionBody
);
opResult
=
await
this
.
utilsFgbusinesschancSve
.
getCompanyLabel
(
pobj
,
pobj
.
actionBody
);
break
break
case
"getRecommendProducts"
:
// 获取推荐产品列表
case
"getRecommendProducts"
:
// 获取推荐产品列表
...
...
center-channel/app/base/service/impl/common/centerorderSve.js
View file @
7115f4e8
...
@@ -404,7 +404,47 @@ class CenterorderService extends AppServiceBase {
...
@@ -404,7 +404,47 @@ class CenterorderService extends AppServiceBase {
return
res
;
return
res
;
}
}
//--------------------------阿里ICP---end--------------------------------------------------------
//--------------------------阿里ICP---end--------------------------------------------------------
//LOGO场景接口服务
async
downloadlogoscene
(
pobj
){
var
reqUrl
=
"http://43.247.184.92:15501/api/downloadscene"
;
var
obj
=
pobj
.
actionBody
;
if
(
!
obj
.
title
){
return
system
.
getResult
(
null
,
"品牌名称不能为空"
);
}
if
(
!
obj
.
id
){
return
system
.
getResult
(
null
,
"品牌id不能为空"
);
}
var
rtn
=
null
;
try
{
rtn
=
await
this
.
execClient
.
execPost
(
obj
,
reqUrl
);
var
res
=
JSON
.
parse
(
rtn
.
stdout
);
return
res
;
}
catch
(
e
)
{
return
system
.
getResult
(
null
,
"获取logo场景异常"
);
}
}
//换一批logo
async
changelogo
(
pobj
){
var
reqUrl
=
"http://43.247.184.92:15501/api/changelogo"
;
var
obj
=
pobj
.
actionBody
;
if
(
!
obj
.
title
){
return
system
.
getResult
(
null
,
"品牌名称不能为空"
);
}
if
(
!
obj
.
profession
){
return
system
.
getResult
(
null
,
"行业名称不能为空"
);
}
if
(
!
obj
.
description
){
obj
.
description
=
""
;
}
var
rtn
=
null
;
try
{
rtn
=
await
this
.
execClient
.
execPost
(
obj
,
reqUrl
);
var
res
=
JSON
.
parse
(
rtn
.
stdout
);
return
res
;
}
catch
(
e
)
{
return
system
.
getResult
(
null
,
"获取logo异常"
);
}
}
//生成logo
//生成logo
async
singlelogo
(
pobj
){
async
singlelogo
(
pobj
){
var
reqUrl
=
"http://43.247.184.92:15501/api/singlelogo"
;
var
reqUrl
=
"http://43.247.184.92:15501/api/singlelogo"
;
...
@@ -412,9 +452,9 @@ class CenterorderService extends AppServiceBase {
...
@@ -412,9 +452,9 @@ class CenterorderService extends AppServiceBase {
if
(
!
obj
.
title
){
if
(
!
obj
.
title
){
return
system
.
getResult
(
null
,
"品牌名称不能为空"
);
return
system
.
getResult
(
null
,
"品牌名称不能为空"
);
}
}
if
(
!
obj
.
subtitle
){
//
if(!obj.subtitle){
return
system
.
getResult
(
null
,
"品牌标语不能为空"
);
//
return system.getResult(null,"品牌标语不能为空");
}
//
}
if
(
!
obj
.
profession
){
if
(
!
obj
.
profession
){
return
system
.
getResult
(
null
,
"行业名称不能为空"
);
return
system
.
getResult
(
null
,
"行业名称不能为空"
);
}
}
...
@@ -426,7 +466,7 @@ class CenterorderService extends AppServiceBase {
...
@@ -426,7 +466,7 @@ class CenterorderService extends AppServiceBase {
rtn
=
await
this
.
execClient
.
execPost
(
obj
,
reqUrl
);
rtn
=
await
this
.
execClient
.
execPost
(
obj
,
reqUrl
);
var
res
=
JSON
.
parse
(
rtn
.
stdout
);
var
res
=
JSON
.
parse
(
rtn
.
stdout
);
if
(
res
&&
res
.
status
==
0
&&
res
.
data
){
if
(
res
&&
res
.
status
==
0
&&
res
.
data
){
return
system
.
getResultSuccess
(
res
.
data
);
return
res
;
//
system.getResultSuccess(res.data);
}
else
{
}
else
{
return
system
.
getResult
(
null
,
"生成logo操作失败"
);
return
system
.
getResult
(
null
,
"生成logo操作失败"
);
}
}
...
...
center-channel/app/base/service/impl/utilsSve/utilsFgbusinesschanceSve.js
View file @
7115f4e8
...
@@ -14,16 +14,7 @@ class UtilsFgbusinesschancService extends AppServiceBase {
...
@@ -14,16 +14,7 @@ class UtilsFgbusinesschancService extends AppServiceBase {
this
.
centerAppUrl
=
settings
.
centerAppUrl
();
this
.
centerAppUrl
=
settings
.
centerAppUrl
();
this
.
centerAppPayUrl
=
settings
.
centerAppUrl
()
+
"payment/paymentApi/springBoard"
;
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
)
{
async
create
(
pobj
,
actionBody
)
{
if
(
!
actionBody
.
businessData
)
{
if
(
!
actionBody
.
businessData
)
{
return
system
.
getResult
(
null
,
"actionBody.businessData can not be empty,100290"
);
return
system
.
getResult
(
null
,
"actionBody.businessData can not be empty,100290"
);
...
@@ -52,18 +43,41 @@ class UtilsFgbusinesschancService extends AppServiceBase {
...
@@ -52,18 +43,41 @@ class UtilsFgbusinesschancService extends AppServiceBase {
}
}
// async getCompanyInfo(pobj, actionBody) {
async
createOrderRefundFq
(
pobj
,
actionBody
)
{
// if (!actionBody.companyName) {
if
(
!
actionBody
||
Object
.
keys
(
actionBody
).
length
===
0
)
{
// return system.getResult(null, "actionBody.companyName can not be empty,100290");
return
system
.
getResult
(
null
,
"actionBody can not be empty,100290"
);
// }
}
// }
let
url
=
this
.
centerOrderUrl
+
"action/fgbusinesschance/springBoard"
;
return
await
this
.
restPostUrl
(
pobj
,
url
);
}
async
createOnlineProductClassificiationFq
(
pobj
,
actionBody
)
{
if
(
!
actionBody
.
product_id
)
{
return
system
.
getResult
(
null
,
"actionBody.product_id can not be empty,100290"
);
}
let
url
=
this
.
centerOrderUrl
+
"action/fgbusinesschance/springBoard"
;
return
await
this
.
restPostUrl
(
pobj
,
url
);
}
async
createOrderInfoAndPayFq
(
pobj
,
actionBody
)
{
if
(
!
actionBody
.
orderInfo
)
{
return
system
.
getResult
(
null
,
"actionBody.orderInfo can not be empty,100290"
);
}
if
(
!
actionBody
.
payInfo
)
{
return
system
.
getResult
(
null
,
"actionBody.payInfo can not be empty,100290"
);
}
let
url
=
this
.
centerOrderUrl
+
"action/fgbusinesschance/springBoard"
;
return
await
this
.
restPostUrl
(
pobj
,
url
);
}
async
getCompanyLabel
(
pobj
,
actionBody
)
{
async
getCompanyLabel
(
pobj
,
actionBody
)
{
if
(
!
actionBody
.
companyName
)
{
if
(
!
actionBody
.
companyName
)
{
return
system
.
getResult
(
null
,
"actionBody.companyName can not be empty,100290"
);
return
system
.
getResult
(
null
,
"actionBody.companyName can not be empty,100290"
);
}
}
actionBody
.
companyName
=
await
this
.
getConvertSemiangleStr
(
actionBody
.
companyName
);
actionBody
.
companyName
=
await
this
.
getConvertSemiangleStr
(
actionBody
.
companyName
);
var
url
=
settings
.
entProfileUrl
()
+
"lable"
;
// var url = settings.entProfileUrl() + "lable";
var
url
=
settings
.
entProfileUrl
()
+
"gsb/api/company_hx"
;
var
reqParam
=
{
var
reqParam
=
{
company_name
:
actionBody
.
companyName
company_name
:
actionBody
.
companyName
}
}
...
...
center-channel/app/base/utils/aliyunClient.js
View file @
7115f4e8
...
@@ -55,7 +55,7 @@ class aliyunClient {
...
@@ -55,7 +55,7 @@ class aliyunClient {
appkey
:
obj
.
appInfo
?
obj
.
appInfo
.
uapp_key
||
""
:
""
,
appkey
:
obj
.
appInfo
?
obj
.
appInfo
.
uapp_key
||
""
:
""
,
requestId
:
obj
.
requestId
||
""
,
requestId
:
obj
.
requestId
||
""
,
content
:
JSON
.
stringify
(
obj
),
//推送的参数信息
content
:
JSON
.
stringify
(
obj
),
//推送的参数信息
resultInfo
:
"error:"
+
JSON
.
stringify
(
e
.
stack
),
resultInfo
:
"error:"
+
JSON
.
stringify
(
e
),
clientIp
:
obj
.
clientIp
||
""
,
clientIp
:
obj
.
clientIp
||
""
,
failType
:
1
,
failType
:
1
,
opTitle
:
"old-reqbyget推送阿里信息返回异常"
,
opTitle
:
"old-reqbyget推送阿里信息返回异常"
,
...
...
center-channel/app/config/routes/doc.js
View file @
7115f4e8
...
@@ -6,53 +6,71 @@ var marked = require("marked");
...
@@ -6,53 +6,71 @@ var marked = require("marked");
module
.
exports
=
function
(
app
)
{
module
.
exports
=
function
(
app
)
{
app
.
get
(
'/doc'
,
function
(
req
,
res
)
{
app
.
get
(
'/doc'
,
function
(
req
,
res
)
{
if
(
!
req
.
query
.
key
)
{
res
.
send
(
"文件不存在!!!"
);
return
;
}
if
(
req
.
query
.
key
!=
"doc12345789"
)
{
res
.
send
(
"文件不存在!!!!!!"
);
return
;
}
var
path
=
process
.
cwd
()
+
"/app/front/entry/public/apidoc/README.md"
;
var
path
=
process
.
cwd
()
+
"/app/front/entry/public/apidoc/README.md"
;
fs
.
readFile
(
path
,
function
(
err
,
data
)
{
fs
.
readFile
(
path
,
function
(
err
,
data
)
{
if
(
err
)
{
if
(
err
)
{
console
.
log
(
err
);
console
.
log
(
err
);
res
.
send
(
"文件不存在!"
);
res
.
send
(
"文件不存在!"
);
}
else
{
}
else
{
console
.
log
(
data
);
console
.
log
(
data
);
str
=
marked
(
data
.
toString
());
str
=
marked
(
data
.
toString
());
res
.
render
(
'apidoc'
,
{
str
});
res
.
render
(
'apidoc'
,
{
str
});
}
}
});
});
});
});
app
.
get
(
'/doc/:forder'
,
function
(
req
,
res
)
{
app
.
get
(
'/doc/:forder'
,
function
(
req
,
res
)
{
var
path
=
process
.
cwd
()
+
"/app/front/entry/public/apidoc/README.md"
;
var
path
=
process
.
cwd
()
+
"/app/front/entry/public/apidoc/README.md"
;
fs
.
readFile
(
path
,
function
(
err
,
data
)
{
fs
.
readFile
(
path
,
function
(
err
,
data
)
{
if
(
err
)
{
if
(
err
)
{
console
.
log
(
err
);
console
.
log
(
err
);
res
.
send
(
"文件不存在!"
);
res
.
send
(
"文件不存在!"
);
}
else
{
}
else
{
console
.
log
(
data
);
console
.
log
(
data
);
str
=
marked
(
data
.
toString
());
str
=
marked
(
data
.
toString
());
res
.
render
(
'apidoc'
,
{
str
});
res
.
render
(
'apidoc'
,
{
str
});
}
}
});
});
});
});
app
.
get
(
'/doc/api/:forder/:fileName'
,
function
(
req
,
res
)
{
app
.
get
(
'/doc/api/:forder/:fileName'
,
function
(
req
,
res
)
{
if
(
req
.
url
!=
"/doc/api/platform/fgbusinesschance.md"
)
{
if
(
!
req
.
query
.
key
)
{
res
.
send
(
"文件不存在!!!"
);
return
;
}
if
(
req
.
query
.
key
!=
"doc12345789"
)
{
res
.
send
(
"文件不存在!!!!!!"
);
return
;
}
}
var
forder
=
req
.
params
[
"forder"
];
var
forder
=
req
.
params
[
"forder"
];
var
fileName
=
req
.
params
[
"fileName"
]
||
"README.md"
;
var
fileName
=
req
.
params
[
"fileName"
]
||
"README.md"
;
var
path
=
process
.
cwd
()
+
"/app/front/entry/public/apidoc"
;
var
path
=
process
.
cwd
()
+
"/app/front/entry/public/apidoc"
;
if
(
forder
)
{
if
(
forder
)
{
path
=
path
+
"/"
+
forder
+
"/"
+
fileName
;
path
=
path
+
"/"
+
forder
+
"/"
+
fileName
;
}
else
{
}
else
{
path
=
path
+
"/"
+
fileName
;
path
=
path
+
"/"
+
fileName
;
}
}
fs
.
readFile
(
path
,
function
(
err
,
data
)
{
fs
.
readFile
(
path
,
function
(
err
,
data
)
{
if
(
err
)
{
if
(
err
)
{
console
.
log
(
err
);
console
.
log
(
err
);
res
.
send
(
"文件不存在!"
);
res
.
send
(
"文件不存在!"
);
}
else
{
}
else
{
console
.
log
(
data
);
console
.
log
(
data
);
str
=
marked
(
data
.
toString
());
str
=
marked
(
data
.
toString
());
console
.
log
(
str
);
console
.
log
(
str
);
res
.
render
(
'apidoc'
,
{
str
});
res
.
render
(
'apidoc'
,
{
str
});
}
}
});
});
});
});
};
};
center-channel/app/front/entry/public/apidoc/platform/fgbusinesschance.md
View file @
7115f4e8
...
@@ -2,12 +2,14 @@
...
@@ -2,12 +2,14 @@
1.
[
获取营销话术
](
#a
)
1.
[
获取营销话术
](
#a
)
1.
[
获取工商接口
](
#b
)
1.
[
获取工商接口
](
#b
)
1.
[
30秒认知客户及产品服务标签
](
#c
)
1.
[
30秒认知
](
#c
)
1.
[
更多客户信息链接地址
](
#d
)
1.
[
推荐业务状态更新
](
#e
)
1.
[
推荐业务状态更新
](
#e
)
1.
[
推荐业务列表
](
#f
)
1.
[
推荐业务列表
](
#f
)
1.
[
已购产品列表
](
#g
)
1.
[
已购产品列表
](
#g
)
1.
[
推送商机
](
#h
)
1.
[
推送商机
](
#h
)
1.
[
写入在线产品表
](
#i
)
1.
[
写入订单退款表
](
#j
)
1.
[
写入支付表和订单详情表
](
#k
)
## **<a name="a"> 获取营销话术</a>**
## **<a name="a"> 获取营销话术</a>**
[
返回到目录
](
#menu
)
[
返回到目录
](
#menu
)
...
@@ -409,3 +411,118 @@
...
@@ -409,3 +411,118 @@
}
}
```
```
## **<a name="i">写入在线产品表</a>**
[
返回到目录
](
#menu
)
##### URL
[
/api/opaction/fgbusinesschance/springBoard
]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
#### 请求头中需要增加token的值
#### 渠道执行的类型 actionType:createOnlineProductClassificiationFq
#### 请求数据
```
{
"actionType":"createOnlineProductClassificiationFq",
actionBody:{
// 参数 为 online_product_classificiation_fq表中相关字段
}
}
```
#### 返回结果
```
{
"status": 0,// 0为成功,否则失败
"msg": "success",
"data":null,
"requestId": "f21446617c5e46ad889f3fab7bb69456"
}
```
## **<a name="j">写入订单退款表</a>**
[
返回到目录
](
#menu
)
##### URL
[
/api/opaction/fgbusinesschance/springBoard
]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
#### 请求头中需要增加token的值
#### 渠道执行的类型 actionType:createOrderRefundFq
#### 请求数据
```
{
"actionType":"createOrderRefundFq",
actionBody:{
// 参数 为 order_refund_fq 表中相关字段
}
}
```
#### 返回结果
```
{
"status": 0,// 0为成功,否则失败
"msg": "success",
"data":null,
"requestId": "f21446617c5e46ad889f3fab7bb69456"
}
```
## **<a name="k">写入支付表和订单详情表</a>**
[
返回到目录
](
#menu
)
##### URL
[
/api/opaction/fgbusinesschance/springBoard
]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
#### 请求头中需要增加token的值
#### 渠道执行的类型 actionType:createOrderInfoAndPayFq
#### 请求数据
```
{
"actionType":"createOrderInfoAndPayFq",
actionBody:{
orderInfo :{
// 参数 为 order_info_fq 表中相关字段
},
payInfo:{
// 参数 为 pay_fq 表中相关字段
}
}
}
```
#### 返回结果
```
{
"status": 0,// 0为成功,否则失败
"msg": "success",
"data":null,
"requestId": "f21446617c5e46ad889f3fab7bb69456"
}
```
\ No newline at end of file
center-channel/app/front/entry/public/apidoc/platform/logoOrder.md
View file @
7115f4e8
...
@@ -6,6 +6,8 @@
...
@@ -6,6 +6,8 @@
1.
[
获取已购买的logo
](
#getPaidLogoListByUser
)
1.
[
获取已购买的logo
](
#getPaidLogoListByUser
)
1.
[
下载logo
](
#getLogoMaterial
)
1.
[
下载logo
](
#getLogoMaterial
)
1.
[
取消收藏
](
#cancelCollectLogo
)
1.
[
取消收藏
](
#cancelCollectLogo
)
1.
[
换一批logo
](
#changelogo
)
1.
[
获取logo场景
](
#downloadlogoscene
)
## **<a name="singlelogo"> 生成logo</a>**
## **<a name="singlelogo"> 生成logo</a>**
[
返回到目录
](
#menu
)
[
返回到目录
](
#menu
)
...
@@ -20,10 +22,12 @@
...
@@ -20,10 +22,12 @@
{
{
"actionType"
:
"singlelogo"
,
"actionType"
:
"singlelogo"
,
"actionBody"
:{
"actionBody"
:{
"title"
:
"周杰伦"
,
//名牌名称,必传
"title"
:
"周杰伦"
,
//品牌名称 必填
"subtitle"
:
"baby"
,
//品牌标语必填
"subtitle"
:
"baby"
,
//品牌标语 非必填
"profession"
:
"通讯行业"
,
//行业 必填
"profession"
:
"通信行业"
,
//行业 必填
"description"
:
"有公司的地方就有公司宝"
,
//现在必填,可以为空,后续会控制可传可不传
"description"
:
"有公司的地方就有公司宝"
,
//品牌描述 非必填
"curpage"
:
1
,
//页码 非必填
"pagesize"
:
10
//每页条数 非必填
}
}
}
}
```
```
...
@@ -31,20 +35,112 @@
...
@@ -31,20 +35,112 @@
#### 返回结果
#### 返回结果
```
javascript
```
javascript
{
{
"status"
:
0
,
"status"
:
0
,
"msg"
:
"成功"
,
"msg"
:
"成功"
,
"data"
:
[
"total"
:
30
,
"data"
:[
{
"id"
:
4384
,
//品牌id
"title"
:
"周杰伦"
,
//品牌名称
"subtitle"
:
"baby"
,
//品牌标语
"first_color"
:
"(1,62,143)"
,
//主颜色
"sec_color"
:
"(0,0,0)"
,
//配色
"color_description"
:
"蓝色是博大的色彩,天空和大海这辽阔的景色都呈蔚蓝色。蓝色是永恒的象征"
,
//颜色描述
"font_description"
:
""
周杰伦
"选用"
Gentium
"字体,字体整齐划一,笔画纤细,结构严谨,应用广泛,设计感强。"
,
//字体描述
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_202005060211078083.png"
//品牌图片
},
{
"id"
:
4380
,
"title"
:
"周杰伦"
,
"subtitle"
:
"baby"
,
"first_color"
:
"(21,36,59)"
,
"sec_color"
:
"(0,0,0)"
,
"color_description"
:
"蓝色是博大的色彩,天空和大海这辽阔的景色都呈蔚蓝色。蓝色是永恒的象征"
,
"font_description"
:
""
周杰伦
"选用"
站酷高端黑
"字体,字体沉稳又富于灵动,清晰简洁,布白均匀,具有极强的时尚感。"
,
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_202005060211082112.png"
},
{
"id"
:
4383
,
"title"
:
"周杰伦"
,
"subtitle"
:
"baby"
,
"first_color"
:
"(0,102,153)"
,
"sec_color"
:
"(0,0,0)"
,
"color_description"
:
"蓝色是博大的色彩,天空和大海这辽阔的景色都呈蔚蓝色。蓝色是永恒的象征"
,
"font_description"
:
""
周杰伦
"选用"
Taipei
-
Sans
-
TC
-
Beta
-
Light
"字体,字形整齐划一,结构严谨,应用广泛。"
,
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_202005060211094286.png"
},
{
"id"
:
4360
,
"title"
:
"周杰伦"
,
"subtitle"
:
"baby"
,
"first_color"
:
"(34,154,82)"
,
"sec_color"
:
"(0,0,0)"
,
"color_description"
:
"绿色象征清新,健康,希望,是生命的象征。代表安全、平静、舒适之感"
,
"font_description"
:
""
周杰伦
"选用"
站酷庆科黄油体
"字体,字体沉稳又富于灵动,清晰简洁,布白均匀,具有极强的时尚感。"
,
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_202005060211095433.png"
},
{
"id"
:
4369
,
"title"
:
"周杰伦"
,
"subtitle"
:
"baby"
,
"first_color"
:
"(146,147,149)"
,
"sec_color"
:
"(0,0,0)"
,
"color_description"
:
"象征高雅,朴素,沉稳。"
,
"font_description"
:
""
周杰伦
"选用"
站酷文艺体
"字体,字体沉稳又富于灵动,清晰简洁,布白均匀,具有极强的时尚感。"
,
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_202005060211101550.png"
},
{
{
"id"
:
1138
,
//id:后续用了购买的标识,购买时需要回传
"id"
:
4389
,
"description"
:
"淡蓝色象征着清新,淡雅"
,
//描述
"title"
:
"周杰伦"
,
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_202004270135297459.png"
//图像url
"subtitle"
:
"baby"
,
"first_color"
:
"(24,115,77)"
,
"sec_color"
:
"(0,0,0)"
,
"color_description"
:
"象征清新,健康,希望,是生命的象征。代表安全、平静、舒适之感"
,
"font_description"
:
""
周杰伦
"选用"
Taipei
-
Sans
-
TC
-
Beta
-
Light
"字体,字形整齐划一,结构严谨,应用广泛。"
,
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_20200506021111423.png"
},
},
{
{
"id"
:
1149
,
"id"
:
4363
,
"description"
:
"灰色象征高雅,朴素,沉稳。"
,
"title"
:
"周杰伦"
,
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_202004270135315198.png"
"subtitle"
:
"baby"
,
"first_color"
:
"(0,140,211)"
,
"sec_color"
:
"(0,0,0)"
,
"color_description"
:
"清醒宁静的健康绿色,象征自然,成长,舒适"
,
"font_description"
:
""
周杰伦
"选用"
站酷小薇
LOGO
体
"字体,沉稳又富于灵动,清晰简洁,布白均匀,具有极强的时尚感。"
,
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_202005060211125803.png"
},
{
"id"
:
4386
,
"title"
:
"周杰伦"
,
"subtitle"
:
"baby"
,
"first_color"
:
"(24,68,148)"
,
"sec_color"
:
"(0,0,0)"
,
"color_description"
:
"蓝色是博大的色彩,天空和大海这辽阔的景色都呈蔚蓝色。蓝色是永恒的象征"
,
"font_description"
:
""
周杰伦
"选用"
庞门正道粗书体
"字体,字体结构严谨,笔画端正,却又带着书法韵味,利用笔锋破型,打破拘谨。"
,
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_202005060211133233.png"
},
{
"id"
:
4362
,
"title"
:
"周杰伦"
,
"subtitle"
:
"baby"
,
"first_color"
:
"(0,140,211)"
,
"sec_color"
:
"(0,0,0)"
,
"color_description"
:
"蓝色代表和平及沟通。象征意义是平静、和平、安全及迅速"
,
"font_description"
:
""
周杰伦
"选用"
文泉驿等宽微米黑
"字体,字形整齐划一,结构严谨,应用广泛。"
,
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_202005060211142394.png"
},
{
"id"
:
4365
,
"title"
:
"周杰伦"
,
"subtitle"
:
"baby"
,
"first_color"
:
"(118,163,255)"
,
"sec_color"
:
"(0,0,0)"
,
"color_description"
:
"淡蓝色象征着清新,淡雅"
,
"font_description"
:
""
周杰伦
"选用"
庞门正道粗书体
"字体,字体结构严谨,笔画端正,却又带着书法韵味,利用笔锋破型,打破拘谨。"
,
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_202005060211166237.png"
}
}
]
],
"requestId"
:
"36760bfcb286483388b5cafa43a8a532"
}
}
```
```
...
@@ -64,13 +160,17 @@
...
@@ -64,13 +160,17 @@
{
{
"actionType"
:
"collectLogo"
,
"actionType"
:
"collectLogo"
,
"actionBody"
:{
"actionBody"
:{
"title"
:
"周杰伦"
,
//名牌名称,必
传
"title"
:
"周杰伦"
,
//名牌名称,必
填
"subtitle"
:
"baby"
,
//品牌标语必填
"subtitle"
:
"baby"
,
//品牌标语
必填
"profession"
:
"通讯行业"
,
//行业 必填
"profession"
:
"通讯行业"
,
//行业 必填
"description"
:
"有公司的地方就有公司宝"
,
//现在必填,可以为空,后续会控制可传可不传
"description"
:
"有公司的地方就有公司宝"
,
//品牌描述 非必填
"logo_id"
:
"1147"
,
//id:后续用了购买的标识,购买时需要回传 (生成logo接口返回)
"logo_id"
:
"1147"
,
//id:后续用了购买的标识,购买时需要回传 (生成logo接口返回) 必填
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_202004270425473400.png"
,
//图片地址(生成logo接口返回)
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_202004270425473400.png"
,
//图片地址(生成logo接口返回) 必填
"itemCode"
:
"znlogosjcp"
//产品码
"first_color"
:
"(118,163,255)"
,
//主颜色RGB
"sec_color"
:
"(0,0,0)"
,
//配色RGB
"color_description"
:
"淡蓝色象征着清新,淡雅"
,
//对主颜色的描述
"font_description"
:
"
\"
周杰伦
\"
选用
\"
庞门正道粗书体
\"
字体,字体结构严谨,笔画端正,却又带着书法韵味,利用笔锋破型,打破拘谨。"
,
//字体描述
"itemCode"
:
"znlogosjcp"
//产品码 必填
}
}
}
}
```
```
...
@@ -112,36 +212,26 @@
...
@@ -112,36 +212,26 @@
"msg"
:
"success"
,
"msg"
:
"success"
,
"data"
:[
"data"
:[
{
{
"id"
:
131
,
"id"
:
178
,
"uapp_id"
:
22
,
"channelUserId"
:
"13075556693"
,
"collectContent"
:{
"title"
:
"周杰伦"
,
"logo_id"
:
"1147"
,
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_202004270425473400.png"
,
"itemCode"
:
"znlogosjcp"
,
"subtitle"
:
"baby"
,
"profession"
:
"通讯行业"
,
"description"
:
"红色象征着热情,活泼,张扬"
}
},
{
"id"
:
130
,
"uapp_id"
:
22
,
"uapp_id"
:
22
,
"channelUserId"
:
"13075556693"
,
"channelUserId"
:
"13075556693"
,
"collectContent"
:{
"collectContent"
:{
//logo信息
"title"
:
"周杰伦"
,
"title"
:
"周杰伦"
,
//品牌名称
"logo_id"
:
"1170"
,
"logo_id"
:
"4365"
,
//品牌id
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_20200427042545332.png"
,
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_202005060211166237.png"
,
//品牌图片
"itemCode"
:
"znlogosjcp"
,
"itemCode"
:
"znlogosjcp"
,
//产品码
"subtitle"
:
"baby"
,
"subtitle"
:
"baby"
,
//品牌标语
"profession"
:
"通讯行业"
,
"sec_color"
:
"(0,0,0)"
,
//配色
"description"
:
"有公司的地方就有公司宝"
"profession"
:
"通讯行业"
,
//行业名称
"description"
:
"有公司的地方就有公司宝"
,
//品牌描述
"first_color"
:
"(118,163,255)"
,
//主色
"font_description"
:
""
周杰伦
"选用"
庞门正道粗书体
"字体,字体结构严谨,笔画端正,却又带着书法韵味,利用笔锋破型,打破拘谨。"
,
//字体描述
"color_description"
:
"淡蓝色象征着清新,淡雅"
//颜色描述
}
}
}
}
],
],
"dataCount"
:
2
,
//总条数
"dataCount"
:
1
,
//总条数
"requestId"
:
"
24398be1499e46f7bd0604f6d3665cc8
"
"requestId"
:
"
f6a6d59e9beb41f49fb71a5c4b6ef7d6
"
}
}
```
```
...
@@ -159,8 +249,8 @@
...
@@ -159,8 +249,8 @@
{
{
"actionType"
:
"getPaidLogoListByUser"
,
"actionType"
:
"getPaidLogoListByUser"
,
"actionBody"
:{
"actionBody"
:{
"pageSize"
:
20
,
"pageSize"
:
20
,
//每页条数
"pageIndex"
:
1
"pageIndex"
:
1
//页码
}
}
}
}
```
```
...
@@ -172,30 +262,26 @@
...
@@ -172,30 +262,26 @@
"msg"
:
"success"
,
"msg"
:
"success"
,
"data"
:[
"data"
:[
{
{
"id"
:
226
,
"id"
:
271
,
"orderNo"
:
"LOGO22202004281713R8"
,
"orderNo"
:
"LOGO2220200506151119"
,
//订单号
"sourceOrderNo"
:
"LOGO22202004281713R8"
,
"sourceOrderNo"
:
"LOGO2220200506151119"
,
//订单号
"deliveryContent"
:{
"deliveryContent"
:{
//logo信息
"logo_id"
:
1147
,
"title"
:
"周杰伦"
,
//品牌名称
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_202004270425473400.png"
,
"logo_id"
:
"4365"
,
//logoid
"description"
:
"红色象征着热情,活泼,张扬"
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_202004282246057578.png"
,
//logo图片
"itemCode"
:
"znlogosjcp"
,
//产品码
"subtitle"
:
"baby"
,
//品牌标语
"sec_color"
:
"(0,0,0)"
,
//配色RGB
"description"
:
"有公司的地方就有公司宝"
,
//品牌描述
"first_color"
:
"(118,163,255)"
,
//主颜色
"font_description"
:
""
周杰伦
"选用"
庞门正道粗书体
"字体,字体结构严谨,笔画端正,却又带着书法韵味,利用笔锋破型,打破拘谨。"
,
//字体描述
"color_description"
:
"淡蓝色象征着清新,淡雅"
//颜色描述
},
},
"itemCode"
:
"znlogosjcp"
"itemCode"
:
"znlogosjcp"
//产品码
},
{
"id"
:
225
,
"orderNo"
:
"LOGO22202004281710nB"
,
"sourceOrderNo"
:
"LOGO22202004281710nB"
,
"deliveryContent"
:{
"logo_id"
:
1147
,
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_202004270425473400.png"
,
"description"
:
"红色象征着热情,活泼,张扬"
},
"itemCode"
:
"znlogosjcp"
}
}
],
],
"dataCount"
:
2
,
"dataCount"
:
1
,
//总条数
"requestId"
:
"
fb4f38b5d0c746ecb057f8d62ad84b3f
"
"requestId"
:
"
8c80fd1172064c2c93530c404732de28
"
}
}
```
```
...
@@ -242,7 +328,7 @@
...
@@ -242,7 +328,7 @@
{
{
"actionType"
:
"cancelCollectLogo"
,
"actionType"
:
"cancelCollectLogo"
,
"actionBody"
:{
"actionBody"
:{
"id"
:
"302"
//收藏id
"id"
:
"302"
//收藏
logo
id
}
}
}
}
```
```
...
@@ -257,3 +343,181 @@
...
@@ -257,3 +343,181 @@
}
}
```
```
## **<a name="changelogo"> 换一批logo</a>**
[
返回到目录
](
#menu
)
##### URL
[
/web/action/logoOrderApi/springBoard
]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
#### 请求头中需要增加userpin(用户登录后的凭证)的值
#### 渠道执行的类型 actionType:changelogo
```
javascript
{
"actionType"
:
"changelogo"
,
"actionBody"
:{
"title"
:
"庄冰"
,
//品牌名称 必填
"subtitle"
:
"bing"
,
//品牌标语 非必填
"profession"
:
"通信行业"
,
//行业 必填
"description"
:
""
//简介 非必填
}
}
```
#### 返回结果
```
javascript
{
"status"
:
0
,
"msg"
:
"成功"
,
"total"
:
10
,
"data"
:[
{
"id"
:
5936
,
//生成的LOGOid
"title"
:
"庄冰"
,
//品牌名称
"subtitle"
:
"bing"
,
//品牌标语
"first_color"
:
"(4,18,5)"
,
//主颜色RGB
"sec_color"
:
"(0,0,0)"
,
//配色RGB
"color_description"
:
"基础百搭的庄重黑色,象征专业,前卫,严正。"
,
//对主颜色的描述
"font_description"
:
""
庄冰
"选用"
庞门正道粗书体
"字体,字体结构严谨,笔画端正,却又带着书法韵味,利用笔锋破型,打破拘谨。"
,
//对字体的描述
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_20200507043158756.png"
//生成logo的url
},
{
"id"
:
5928
,
"title"
:
"庄冰"
,
"subtitle"
:
"bing"
,
"first_color"
:
"(255,8,0)"
,
"sec_color"
:
"(0,0,0)"
,
"color_description"
:
"浓郁喜庆的古典红色,象征生命,活力,激情。"
,
"font_description"
:
""
庄冰
"选用"
庞门正道粗书体
"字体,字体结构严谨,笔画端正,却又带着书法韵味,利用笔锋破型,打破拘谨。"
,
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_202005070431584706.png"
},
{
"id"
:
5923
,
"title"
:
"庄冰"
,
"subtitle"
:
"bing"
,
"first_color"
:
"(0,0,0)"
,
"sec_color"
:
"(0,0,0)"
,
"color_description"
:
"基础百搭的庄重黑色,象征专业,前卫,严正。"
,
"font_description"
:
""
庄冰
"选用"
站酷小薇
LOGO
体
"字体,沉稳又富于灵动,清晰简洁,布白均匀,具有极强的时尚感。"
,
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_202005070431591027.png"
},
{
"id"
:
5942
,
"title"
:
"庄冰"
,
"subtitle"
:
"bing"
,
"first_color"
:
"(249,137,66)"
,
"sec_color"
:
"(0,0,0)"
,
"color_description"
:
"橙色是欢快活泼的光辉色彩,是暖色系中最温暖的色。"
,
"font_description"
:
""
庄冰
"选用"
文泉驿等宽微米黑
"字体,字形整齐划一,结构严谨,应用广泛。"
,
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_20200507043200603.png"
},
{
"id"
:
5911
,
"title"
:
"庄冰"
,
"subtitle"
:
"bing"
,
"first_color"
:
"(0,140,211)"
,
"sec_color"
:
"(0,0,0)"
,
"color_description"
:
"深远永恒的沉静蓝色,象征睿智,脱俗,自然。"
,
"font_description"
:
""
庄冰
"选用"
OPPOSans
-
H
"字体,字体整齐划一,笔画纤细,结构严谨,应用广泛,设计感强。"
,
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_202005070432023594.png"
},
{
"id"
:
5938
,
"title"
:
"庄冰"
,
"subtitle"
:
"bing"
,
"first_color"
:
"(0,134,218)"
,
"sec_color"
:
"(0,0,0)"
,
"color_description"
:
"深远永恒的沉静蓝色,象征睿智,脱俗,自然。"
,
"font_description"
:
""
庄冰
"选用"
日本花园明朝体
"字体,字体沉稳又富于灵动,清晰简洁,布白均匀,具有极强的时尚感。"
,
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_202005070432025797.png"
},
{
"id"
:
5927
,
"title"
:
"庄冰"
,
"subtitle"
:
"bing"
,
"first_color"
:
"(192,52,116)"
,
"sec_color"
:
"(0,0,0)"
,
"color_description"
:
"洋红色保持了冲击力又表现出洗练的潇洒感觉。"
,
"font_description"
:
""
庄冰
"选用"
沐瑶软笔手写体
"字体,笔画俏皮轻松,辨识度极高,童趣满满。"
,
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_202005070432035216.png"
},
{
"id"
:
5917
,
"title"
:
"庄冰"
,
"subtitle"
:
"bing"
,
"first_color"
:
"(0,102,153)"
,
"sec_color"
:
"(0,0,0)"
,
"color_description"
:
"深远永恒的沉静蓝色,象征睿智,脱俗,自然。"
,
"font_description"
:
""
庄冰
"选用"
站酷小薇
LOGO
体
"字体,沉稳又富于灵动,清晰简洁,布白均匀,具有极强的时尚感。"
,
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_202005070432058944.png"
},
{
"id"
:
5943
,
"title"
:
"庄冰"
,
"subtitle"
:
"bing"
,
"first_color"
:
"(232,168,14)"
,
"sec_color"
:
"(0,0,0)"
,
"color_description"
:
"橙色是欢快活泼的光辉色彩,是暖色系中最温暖的色。"
,
"font_description"
:
""
庄冰
"选用"
站酷高端黑
"字体,字体沉稳又富于灵动,清晰简洁,布白均匀,具有极强的时尚感。"
,
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_20200507043205893.png"
},
{
"id"
:
5907
,
"title"
:
"庄冰"
,
"subtitle"
:
"bing"
,
"first_color"
:
"(0,0,0)"
,
"sec_color"
:
"(0,0,0)"
,
"color_description"
:
"基础百搭的庄重黑色,象征专业,前卫,严正。"
,
"font_description"
:
""
庄冰
"选用"
Taipei
-
Sans
-
TC
-
Beta
-
Light
"字体,字形整齐划一,结构严谨,应用广泛。"
,
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/generator_202005070432069646.png"
}
],
"requestId"
:
"966af1f8390542d4a418db90c6aaafcd"
}
```
## **<a name="downloadlogoscene"> 获取logo场景</a>**
[
返回到目录
](
#menu
)
##### URL
[
/web/action/logoOrderApi/springBoard
]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
#### 请求头中需要增加userpin(用户登录后的凭证)的值
#### 渠道执行的类型 actionType:downloadlogoscene
```
javascript
{
"actionType"
:
"downloadlogoscene"
,
"actionBody"
:{
"title"
:
"庄冰"
,
//品牌名称 必填
"subtitle"
:
"bing"
,
//品牌标语 非必填
"id"
:
"5942"
//品牌id 必填
}
}
```
#### 返回结果
```
javascript
{
"status"
:
0
,
"msg"
:
"成功"
,
"data"
:[
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/scene_screen_202005070443164353.png"
,
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/scene_book_202005070443163055.png"
,
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/scene_handbag_202005070443162492.png"
,
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/scene_cosmetics_202005070443169760.png"
,
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/scene_shampoo_202005070443164053.png"
,
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/scene_bag_202005070443165126.png"
,
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/scene_cup_202005070443176100.png"
,
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/scene_computer_202005070443174836.png"
,
"https://gsb-zc.oss-cn-beijing.aliyuncs.com/scene_reception_202005070443174387.png"
],
"requestId"
:
"dec12e32530249f298f6d06e4b0e35b3"
}
```
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment