记得上下班打卡 | git大法好,push需谨慎
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liquidnet-bus-v1
Project
Project
Details
Activity
Releases
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
董敬伟
liquidnet-bus-v1
Commits
b277d24b
Commit
b277d24b
authored
Jun 22, 2021
by
胡佳晨
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
删除 log.info
parent
435dbc76
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
10 additions
and
28 deletions
+10
-28
KylinOrderTicketsServiceImpl.java
...vice/kylin/service/impl/KylinOrderTicketsServiceImpl.java
+10
-10
KylinPerformancesPartnerServiceImpl.java
...ice/impl/partner/KylinPerformancesPartnerServiceImpl.java
+0
-9
KylinTicketTimesPartnerServiceImpl.java
...vice/impl/partner/KylinTicketTimesPartnerServiceImpl.java
+0
-3
KylinTicketsPartnerServiceImpl.java
.../service/impl/partner/KylinTicketsPartnerServiceImpl.java
+0
-6
No files found.
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/service/impl/KylinOrderTicketsServiceImpl.java
View file @
b277d24b
...
@@ -278,7 +278,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
...
@@ -278,7 +278,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
if
(
isTrueName
==
1
)
{
if
(
isTrueName
==
1
)
{
currentTime
=
System
.
currentTimeMillis
();
currentTime
=
System
.
currentTimeMillis
();
for
(
String
enterId
:
payOrderParam
.
getEnterIdList
())
{
for
(
String
enterId
:
payOrderParam
.
getEnterIdList
())
{
AdamEntersVo
adamEnters
=
orderUtils
.
getEnters
(
uid
,
enterId
);
//feignAdamBaseClient.queryEnters(enterId, uid).getData();
AdamEntersVo
adamEnters
=
orderUtils
.
getEnters
(
uid
,
enterId
);
//feignAdamBaseClient.queryEnters(enterId, uid).getData();
entersVoList
.
add
(
adamEnters
);
entersVoList
.
add
(
adamEnters
);
if
(
isStudent
==
1
)
{
if
(
isStudent
==
1
)
{
int
age
=
IDCard
.
getAgeByIdCard
(
adamEnters
.
getIdCard
());
int
age
=
IDCard
.
getAgeByIdCard
(
adamEnters
.
getIdCard
());
...
@@ -379,7 +379,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
...
@@ -379,7 +379,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
orderTickets
.
setTimePay
(
null
);
orderTickets
.
setTimePay
(
null
);
if
(
payOrderParam
.
getIsExpress
()
==
1
)
{
if
(
payOrderParam
.
getIsExpress
()
==
1
)
{
currentTime
=
System
.
currentTimeMillis
();
currentTime
=
System
.
currentTimeMillis
();
AdamAddressesVo
addressesVo
=
orderUtils
.
getAddress
(
uid
,
payOrderParam
.
getAddressId
());
//feignAdamBaseClient.queryAddresses(payOrderParam.getAddressId(), uid).getData();
AdamAddressesVo
addressesVo
=
orderUtils
.
getAddress
(
uid
,
payOrderParam
.
getAddressId
());
//feignAdamBaseClient.queryAddresses(payOrderParam.getAddressId(), uid).getData();
orderTickets
.
setExpressContacts
(
addressesVo
.
getName
());
orderTickets
.
setExpressContacts
(
addressesVo
.
getName
());
orderTickets
.
setExpressAddress
(
addressesVo
.
getAddress
());
orderTickets
.
setExpressAddress
(
addressesVo
.
getAddress
());
orderTickets
.
setExpressPhone
(
addressesVo
.
getPhone
());
orderTickets
.
setExpressPhone
(
addressesVo
.
getPhone
());
...
@@ -787,11 +787,11 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
...
@@ -787,11 +787,11 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
KylinOrderTicketStatus
orderTicketStatus
=
new
KylinOrderTicketStatus
();
KylinOrderTicketStatus
orderTicketStatus
=
new
KylinOrderTicketStatus
();
KylinOrderTicketEntities
orderTicketEntities
=
new
KylinOrderTicketEntities
();
KylinOrderTicketEntities
orderTicketEntities
=
new
KylinOrderTicketEntities
();
if
(
orderTicketData
.
getStatus
()==
2
)
{
if
(
orderTicketData
.
getStatus
()
==
2
)
{
orderRefundsCallbackService
.
refundApply
(
orderTicketData
.
getOrderTicketsId
());
orderRefundsCallbackService
.
refundApply
(
orderTicketData
.
getOrderTicketsId
());
}
else
if
(
orderTicketData
.
getStatus
()==
3
||
orderTicketData
.
getStatus
()==
4
)
{
}
else
if
(
orderTicketData
.
getStatus
()
==
3
||
orderTicketData
.
getStatus
()
==
4
)
{
log
.
error
(
"订单号位 {} 的订单正在退款 或者已退款"
,
syncOrderParam
.
getOrder_code
());
log
.
error
(
"订单号位 {} 的订单正在退款 或者已退款"
,
syncOrderParam
.
getOrder_code
());
}
else
{
}
else
{
orderTickets
.
setOrderTicketsId
(
orderTicketData
.
getOrderTicketsId
());
orderTickets
.
setOrderTicketsId
(
orderTicketData
.
getOrderTicketsId
());
orderTickets
.
setPaymentType
(
syncOrderParam
.
getPayment_type
());
orderTickets
.
setPaymentType
(
syncOrderParam
.
getPayment_type
());
orderTickets
.
setPayCode
(
syncOrderParam
.
getCode
());
orderTickets
.
setPayCode
(
syncOrderParam
.
getCode
());
...
@@ -912,7 +912,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
...
@@ -912,7 +912,7 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
item
.
setKuaidi_status
(-
2
);
item
.
setKuaidi_status
(-
2
);
}
}
if
(
item
.
getStatus
()
==
KylinTableStatusConst
.
ORDER_STATUS0
)
{
if
(
item
.
getStatus
()
.
equals
(
KylinTableStatusConst
.
ORDER_STATUS0
)
)
{
item
.
setRestTime
(
DateUtil
.
intervalSeconds
(
item
.
setRestTime
(
DateUtil
.
intervalSeconds
(
DateUtil
.
parse
(
item
.
getOverdueAt
(),
"yyyy-MM-dd HH:mm:ss"
),
DateUtil
.
parse
(
item
.
getOverdueAt
(),
"yyyy-MM-dd HH:mm:ss"
),
DateUtil
.
parse
(
DateUtil
.
getNowTime
(),
"yyyy-MM-dd HH:mm:ss"
)
DateUtil
.
parse
(
DateUtil
.
getNowTime
(),
"yyyy-MM-dd HH:mm:ss"
)
...
@@ -1136,9 +1136,9 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
...
@@ -1136,9 +1136,9 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
String
uid
=
CurrentUtil
.
getCurrentUid
();
String
uid
=
CurrentUtil
.
getCurrentUid
();
List
<
KylinOrderListVo
>
voList
=
dataUtils
.
getOrderList
(
uid
);
List
<
KylinOrderListVo
>
voList
=
dataUtils
.
getOrderList
(
uid
);
Integer
unPayCount
=
0
;
Integer
unPayCount
=
0
;
for
(
KylinOrderListVo
item
:
voList
)
{
for
(
KylinOrderListVo
item
:
voList
)
{
if
(
item
.
getStatus
()==
0
)
{
if
(
item
.
getStatus
()
==
0
)
{
unPayCount
+=
1
;
unPayCount
+=
1
;
}
}
}
}
...
...
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/service/impl/partner/KylinPerformancesPartnerServiceImpl.java
View file @
b277d24b
...
@@ -109,15 +109,12 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
...
@@ -109,15 +109,12 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
// 无 performancesId 则 创建
// 无 performancesId 则 创建
if
(
null
==
step1Param
.
getPerformancesId
())
{
if
(
null
==
step1Param
.
getPerformancesId
())
{
result
=
createStep1
(
step1Param
);
result
=
createStep1
(
step1Param
);
log
.
info
(
" PERFORMANCE 演出第一步 创建"
);
}
else
{
// 获取 create 数据 status = 0 或 无数据 创建
}
else
{
// 获取 create 数据 status = 0 或 无数据 创建
PerformancePartnerVo
createParam
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"performancesId"
).
is
(
step1Param
.
getPerformancesId
())),
PerformancePartnerVo
.
class
,
PerformancePartnerVo
.
class
.
getSimpleName
());
PerformancePartnerVo
createParam
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"performancesId"
).
is
(
step1Param
.
getPerformancesId
())),
PerformancePartnerVo
.
class
,
PerformancePartnerVo
.
class
.
getSimpleName
());
if
(
createParam
==
null
)
{
if
(
createParam
==
null
)
{
result
=
createStep1
(
step1Param
);
result
=
createStep1
(
step1Param
);
log
.
info
(
" PERFORMANCE 演出第一步 创建"
);
}
else
{
// 修改
}
else
{
// 修改
result
=
updateStep1
(
step1Param
);
result
=
updateStep1
(
step1Param
);
log
.
info
(
" PERFORMANCE 演出第一步 修改"
);
}
}
}
}
return
result
;
return
result
;
...
@@ -217,7 +214,6 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
...
@@ -217,7 +214,6 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
if
(
data
==
null
)
{
if
(
data
==
null
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20104
));
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20104
));
}
}
log
.
info
(
" PERFORMANCE 演出第一步 获取"
);
return
ResponseDto
.
success
(
data
);
return
ResponseDto
.
success
(
data
);
}
}
...
@@ -230,10 +226,8 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
...
@@ -230,10 +226,8 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
KylinPerformanceStatus
performanceStatus
=
performanceStatusMapper
.
selectOne
(
new
UpdateWrapper
<
KylinPerformanceStatus
>().
eq
(
"performance_id"
,
step2Param
.
getPerformancesId
()));
KylinPerformanceStatus
performanceStatus
=
performanceStatusMapper
.
selectOne
(
new
UpdateWrapper
<
KylinPerformanceStatus
>().
eq
(
"performance_id"
,
step2Param
.
getPerformancesId
()));
if
(
performanceStatus
==
null
||
performanceStatus
.
getStatus
()
==
0
||
performanceStatus
.
getStatus
()
==
4
)
{
if
(
performanceStatus
==
null
||
performanceStatus
.
getStatus
()
==
0
||
performanceStatus
.
getStatus
()
==
4
)
{
result
=
createStep2
(
step2Param
);
result
=
createStep2
(
step2Param
);
log
.
info
(
" PERFORMANCE 演出第二步 创建(拒绝/撤回/第一次)"
);
}
else
if
(
performanceStatus
.
getStatus
()
==
1
||
performanceStatus
.
getStatus
()
==
3
||
performanceStatus
.
getStatus
()
==
6
||
performanceStatus
.
getStatus
()
==
7
||
performanceStatus
.
getStatus
()
==
8
||
performanceStatus
.
getStatus
()
==
9
)
{
// 修改
}
else
if
(
performanceStatus
.
getStatus
()
==
1
||
performanceStatus
.
getStatus
()
==
3
||
performanceStatus
.
getStatus
()
==
6
||
performanceStatus
.
getStatus
()
==
7
||
performanceStatus
.
getStatus
()
==
8
||
performanceStatus
.
getStatus
()
==
9
)
{
// 修改
result
=
updateStep2
(
step2Param
);
result
=
updateStep2
(
step2Param
);
log
.
info
(
" PERFORMANCE 演出第二步 修改"
);
}
else
if
(
performanceStatus
.
getStatus
()
==
10
){
}
else
if
(
performanceStatus
.
getStatus
()
==
10
){
result
=
ResponseDto
.
success
(
"演出已结束不可修改"
);
result
=
ResponseDto
.
success
(
"演出已结束不可修改"
);
}
}
...
@@ -461,7 +455,6 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
...
@@ -461,7 +455,6 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
PerformanceStep2Param
performanceStep2Param
=
new
PerformanceStep2Param
();
PerformanceStep2Param
performanceStep2Param
=
new
PerformanceStep2Param
();
BeanUtils
.
copyProperties
(
data
,
performanceStep2Param
);
BeanUtils
.
copyProperties
(
data
,
performanceStep2Param
);
performanceStep2Param
.
setTicketTimes
(
ticketTimesTicketCreatePartnerVoList
);
performanceStep2Param
.
setTicketTimes
(
ticketTimesTicketCreatePartnerVoList
);
log
.
info
(
" PERFORMANCE 演出第二步 获取"
);
return
ResponseDto
.
success
(
performanceStep2Param
);
return
ResponseDto
.
success
(
performanceStep2Param
);
}
}
...
@@ -583,7 +576,6 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
...
@@ -583,7 +576,6 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
int
size
=
performancePartnerListParam
.
getSize
();
int
size
=
performancePartnerListParam
.
getSize
();
PageInfo
<
PerformancePartnerListDao
>
pageInfoTmp
=
null
;
PageInfo
<
PerformancePartnerListDao
>
pageInfoTmp
=
null
;
if
(
status
==
0
)
{
//未发布演出
if
(
status
==
0
)
{
//未发布演出
log
.
info
(
" PERFORMANCE 演出列表 未提交"
);
// 排序 分页
// 排序 分页
Pageable
pageable
=
PageRequest
.
of
(
page
,
size
,
Sort
.
by
(
Sort
.
Direction
.
DESC
,
"createdAt"
));
Pageable
pageable
=
PageRequest
.
of
(
page
,
size
,
Sort
.
by
(
Sort
.
Direction
.
DESC
,
"createdAt"
));
//条件
//条件
...
@@ -606,7 +598,6 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
...
@@ -606,7 +598,6 @@ public class KylinPerformancesPartnerServiceImpl extends ServiceImpl<KylinPerfor
pageInfoTmp
=
new
PageInfo
(
voList
);
pageInfoTmp
=
new
PageInfo
(
voList
);
pageInfoTmp
.
setTotal
(
count
);
pageInfoTmp
.
setTotal
(
count
);
}
else
{
//演出列表
}
else
{
//演出列表
log
.
info
(
" PERFORMANCE 演出列表 已提交"
);
try
{
try
{
PageHelper
.
startPage
(
performancePartnerListParam
.
getPage
(),
performancePartnerListParam
.
getSize
());
PageHelper
.
startPage
(
performancePartnerListParam
.
getPage
(),
performancePartnerListParam
.
getSize
());
List
<
PerformancePartnerListDao
>
voList
=
performancesMapper
.
partnerPerformanceList
(
BeanUtil
.
convertBeanToMap
(
performancePartnerListParam
));
List
<
PerformancePartnerListDao
>
voList
=
performancesMapper
.
partnerPerformanceList
(
BeanUtil
.
convertBeanToMap
(
performancePartnerListParam
));
...
...
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/service/impl/partner/KylinTicketTimesPartnerServiceImpl.java
View file @
b277d24b
...
@@ -66,15 +66,12 @@ public class KylinTicketTimesPartnerServiceImpl extends ServiceImpl<KylinTicketT
...
@@ -66,15 +66,12 @@ public class KylinTicketTimesPartnerServiceImpl extends ServiceImpl<KylinTicketT
new
UpdateWrapper
<
KylinPerformanceStatus
>().
eq
(
"performance_id"
,
createTicketTimesParam
.
getPerformancesId
()));
new
UpdateWrapper
<
KylinPerformanceStatus
>().
eq
(
"performance_id"
,
createTicketTimesParam
.
getPerformancesId
()));
if
(
null
==
performanceStatus
)
{
if
(
null
==
performanceStatus
)
{
ticketTimesPartnerVo
=
createTimes
(
createTicketTimesParam
);
ticketTimesPartnerVo
=
createTimes
(
createTicketTimesParam
);
log
.
info
(
" PERFORMANCE 场次 创建"
);
}
else
if
(
performanceStatus
.
getAuditStatus
()==
0
){
}
else
if
(
performanceStatus
.
getAuditStatus
()==
0
){
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20101
));
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
20101
));
}
else
if
(
performanceStatus
.
getStatus
()
>=
3
&&
performanceStatus
.
getStatus
()
!=
4
)
{
//未被拒绝 且 通过审核的演出
}
else
if
(
performanceStatus
.
getStatus
()
>=
3
&&
performanceStatus
.
getStatus
()
!=
4
)
{
//未被拒绝 且 通过审核的演出
ticketTimesPartnerVo
=
addNewTimes
(
createTicketTimesParam
);
ticketTimesPartnerVo
=
addNewTimes
(
createTicketTimesParam
);
log
.
info
(
" PERFORMANCE 场次 新增"
);
}
else
{
}
else
{
ticketTimesPartnerVo
=
createTimes
(
createTicketTimesParam
);
ticketTimesPartnerVo
=
createTimes
(
createTicketTimesParam
);
log
.
info
(
" PERFORMANCE 场次 创建"
);
}
}
return
ticketTimesPartnerVo
;
return
ticketTimesPartnerVo
;
}
}
...
...
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/service/impl/partner/KylinTicketsPartnerServiceImpl.java
View file @
b277d24b
...
@@ -78,17 +78,13 @@ public class KylinTicketsPartnerServiceImpl extends ServiceImpl<KylinTicketsMapp
...
@@ -78,17 +78,13 @@ public class KylinTicketsPartnerServiceImpl extends ServiceImpl<KylinTicketsMapp
new
UpdateWrapper
<
KylinPerformanceStatus
>().
eq
(
"performance_id"
,
timesPartnerVo
.
getPerformancesId
()));
new
UpdateWrapper
<
KylinPerformanceStatus
>().
eq
(
"performance_id"
,
timesPartnerVo
.
getPerformancesId
()));
if
(
null
==
performanceStatus
)
{
if
(
null
==
performanceStatus
)
{
ticketPartnerVo
=
createTicket
(
ticketCreateParam
);
ticketPartnerVo
=
createTicket
(
ticketCreateParam
);
log
.
info
(
" PERFORMANCE 票 创建"
);
}
else
if
(
performanceStatus
.
getStatus
()
>=
3
&&
performanceStatus
.
getStatus
()
!=
4
)
{
//未被拒绝 且 通过审核的演出
}
else
if
(
performanceStatus
.
getStatus
()
>=
3
&&
performanceStatus
.
getStatus
()
!=
4
)
{
//未被拒绝 且 通过审核的演出
ticketPartnerVo
=
addNewTicket
(
ticketCreateParam
);
ticketPartnerVo
=
addNewTicket
(
ticketCreateParam
);
log
.
info
(
" PERFORMANCE 票 添加"
);
}
else
{
}
else
{
ticketPartnerVo
=
createTicket
(
ticketCreateParam
);
ticketPartnerVo
=
createTicket
(
ticketCreateParam
);
log
.
info
(
" PERFORMANCE 票 创建"
);
}
}
}
else
{
}
else
{
ticketPartnerVo
=
createTicket
(
ticketCreateParam
);
ticketPartnerVo
=
createTicket
(
ticketCreateParam
);
log
.
info
(
" PERFORMANCE 票 创建"
);
}
}
return
ticketPartnerVo
;
return
ticketPartnerVo
;
}
}
...
@@ -200,7 +196,6 @@ public class KylinTicketsPartnerServiceImpl extends ServiceImpl<KylinTicketsMapp
...
@@ -200,7 +196,6 @@ public class KylinTicketsPartnerServiceImpl extends ServiceImpl<KylinTicketsMapp
@Override
@Override
public
ResponseDto
<
KylinTicketPartnerVo
>
updateTicket
(
TicketCreateParam
ticketCreateParam
)
{
public
ResponseDto
<
KylinTicketPartnerVo
>
updateTicket
(
TicketCreateParam
ticketCreateParam
)
{
log
.
info
(
"票 修改"
);
try
{
try
{
KylinTicketTimesPartnerVo
ticketTimeRelation
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"ticketTimesId"
).
is
(
ticketCreateParam
.
getTimesId
())),
KylinTicketTimesPartnerVo
ticketTimeRelation
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"ticketTimesId"
).
is
(
ticketCreateParam
.
getTimesId
())),
KylinTicketTimesPartnerVo
.
class
,
KylinTicketTimesPartnerVo
.
class
.
getSimpleName
());
KylinTicketTimesPartnerVo
.
class
,
KylinTicketTimesPartnerVo
.
class
.
getSimpleName
());
...
@@ -253,7 +248,6 @@ public class KylinTicketsPartnerServiceImpl extends ServiceImpl<KylinTicketsMapp
...
@@ -253,7 +248,6 @@ public class KylinTicketsPartnerServiceImpl extends ServiceImpl<KylinTicketsMapp
@Override
@Override
public
ResponseDto
<
String
>
deleteTicket
(
String
ticketsId
)
{
public
ResponseDto
<
String
>
deleteTicket
(
String
ticketsId
)
{
log
.
info
(
"票 删除"
);
try
{
try
{
LocalDateTime
updatedAt
=
LocalDateTime
.
now
();
LocalDateTime
updatedAt
=
LocalDateTime
.
now
();
...
...
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