Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
order-group
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
order-group-application
order-group
Commits
fa31ab87
Commit
fa31ab87
authored
Aug 26, 2020
by
徐康
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/develop' into develop
parents
b4641bc1
89add2f7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
175 additions
and
53 deletions
+175
-53
assortment-ordercenter-sdk/pom.xml
+2
-2
assortment-ordercenter-sdk/readme.md
+3
-2
order-application-service/pom.xml
+3
-3
order-application-service/src/main/java/cn/freemud/entities/vo/RefundNotifyCallbackRequestVo.java
+2
-0
order-application-service/src/main/java/cn/freemud/enums/McCafeOrderTypeGather.java
+55
-0
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+32
-3
order-application-service/src/test/java/cn.freemud/controller/OrderControllerTest.java
+18
-0
order-application-service/src/test/java/cn.freemud/service/OrderServiceTest.java
+0
-6
ordercenter-sdk/pom.xml
+1
-1
ordercenter-sdk/readme.md
+6
-14
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/enums/ResponseResultEnum.java
+1
-0
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/service/OrderSdkService.java
+26
-6
shopping-cart-application-service/pom.xml
+1
-1
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/ActivityCalculationDiscountRequestDto.java
+1
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/CartGoods.java
+2
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/MaterialPromotionService.java
+0
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
+1
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/ShoppingCartMCoffeeServiceImpl.java
+19
-14
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/CalculationServiceImpl.java
+2
-1
No files found.
assortment-ordercenter-sdk/pom.xml
View file @
fa31ab87
...
@@ -10,7 +10,7 @@
...
@@ -10,7 +10,7 @@
<modelVersion>
4.0.0
</modelVersion>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
assortment-ordercenter-sdk
</artifactId>
<artifactId>
assortment-ordercenter-sdk
</artifactId>
<version>
2.0.1
4
-SNAPSHOT
</version>
<version>
2.0.1
5
-SNAPSHOT
</version>
<dependencies>
<dependencies>
<dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<groupId>
org.springframework.boot
</groupId>
...
@@ -38,7 +38,7 @@
...
@@ -38,7 +38,7 @@
<dependency>
<dependency>
<groupId>
cn.freemud
</groupId>
<groupId>
cn.freemud
</groupId>
<artifactId>
ordercenter-sdk
</artifactId>
<artifactId>
ordercenter-sdk
</artifactId>
<version>
1.4.3
5
-SNAPSHOT
</version>
<version>
1.4.3
6
-SNAPSHOT
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
com.freemud.application.service.sdk
</groupId>
<groupId>
com.freemud.application.service.sdk
</groupId>
...
...
assortment-ordercenter-sdk/readme.md
View file @
fa31ab87
...
@@ -82,4 +82,5 @@
...
@@ -82,4 +82,5 @@
| 2.0.11-SNAPSHOT| 麦咖啡| 谌会阳 |2020-08-08
| 2.0.11-SNAPSHOT| 麦咖啡| 谌会阳 |2020-08-08
| 2.0.12-SNAPSHOT| OrderSourceType 调整 | 谌会阳 |2020-08-10
| 2.0.12-SNAPSHOT| OrderSourceType 调整 | 谌会阳 |2020-08-10
| 2.0.13-SNAPSHOT| 加料商品 | 谌会阳 |2020-08-14
| 2.0.13-SNAPSHOT| 加料商品 | 谌会阳 |2020-08-14
| 2.0.14-SNAPSHOT| 商品统计分类名称保存 | wuping | 2020-08-20 |
| 2.0.14-SNAPSHOT| 商品统计分类名称保存 | wuping | 2020-08-20 |
\ No newline at end of file
| 2.0.15-SNAPSHOT| 升级ordercenter-sdk | 肖家炜 | 2020-08-25 |
\ No newline at end of file
order-application-service/pom.xml
View file @
fa31ab87
...
@@ -20,7 +20,7 @@
...
@@ -20,7 +20,7 @@
<dependency>
<dependency>
<groupId>
com.freemud.application.service.sdk
</groupId>
<groupId>
com.freemud.application.service.sdk
</groupId>
<artifactId>
sdk-common-base
</artifactId>
<artifactId>
sdk-common-base
</artifactId>
<version>
1.
3.9-SNAPSHOT
</version>
<version>
1.
5.2.RELEASE
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
com.freemud.sdk.api.assortment
</groupId>
<groupId>
com.freemud.sdk.api.assortment
</groupId>
...
@@ -35,12 +35,12 @@
...
@@ -35,12 +35,12 @@
<dependency>
<dependency>
<artifactId>
couponcenter-sdk
</artifactId>
<artifactId>
couponcenter-sdk
</artifactId>
<groupId>
com.freemud.application.service.sdk
</groupId>
<groupId>
com.freemud.application.service.sdk
</groupId>
<version>
1.1
1.0-SNAPSHOT
</version>
<version>
1.1
0.2.RELEASE
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
cn.freemud
</groupId>
<groupId>
cn.freemud
</groupId>
<artifactId>
assortment-ordercenter-sdk
</artifactId>
<artifactId>
assortment-ordercenter-sdk
</artifactId>
<version>
2.0.1
4
-SNAPSHOT
</version>
<version>
2.0.1
5
-SNAPSHOT
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
com.freemud.application.service.sdk
</groupId>
<groupId>
com.freemud.application.service.sdk
</groupId>
...
...
order-application-service/src/main/java/cn/freemud/entities/vo/RefundNotifyCallbackRequestVo.java
View file @
fa31ab87
package
cn
.
freemud
.
entities
.
vo
;
package
cn
.
freemud
.
entities
.
vo
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.ToString
;
@Data
@Data
@ToString
public
class
RefundNotifyCallbackRequestVo
{
public
class
RefundNotifyCallbackRequestVo
{
/**
/**
* 第三方交易单号
* 第三方交易单号
...
...
order-application-service/src/main/java/cn/freemud/enums/McCafeOrderTypeGather.java
0 → 100644
View file @
fa31ab87
package
cn
.
freemud
.
enums
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: cn.freemud.enums OrderTypeGather
* @Description: TDO 描述....
* @author: family
* @date: 2020/5/7
* @Copyright: www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
public
enum
McCafeOrderTypeGather
{
TAKE_OUT
(
1
,
"外卖"
),
PRE_ORDER
(
2
,
"预订单"
),
COLLECT_GOODS
(
4
,
"打包"
),
EAT_IN
(
5
,
"堂食"
);
private
Integer
code
;
private
String
desc
;
//订单服务订单类型 1=外卖 4=自提,5=堂食
//外卖平台订单类型 1=常规堂食,2=预约堂食,3=常规外送,4=预约外送,5=常规自取,6=预约自取
McCafeOrderTypeGather
(
Integer
code
,
String
desc
)
{
this
.
code
=
code
;
this
.
desc
=
desc
;
}
public
static
McCafeOrderTypeGather
getByCode
(
Integer
code
)
{
if
(
code
==
null
)
{
return
null
;
}
for
(
McCafeOrderTypeGather
orderTypeGather
:
values
())
{
if
(
orderTypeGather
.
getCode
().
equals
(
code
))
{
return
orderTypeGather
;
}
}
return
null
;
}
public
Integer
getCode
()
{
return
code
;
}
public
void
setCode
(
Integer
code
)
{
this
.
code
=
code
;
}
public
String
getDesc
()
{
return
desc
;
}
public
void
setDesc
(
String
desc
)
{
this
.
desc
=
desc
;
}
}
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
fa31ab87
...
@@ -585,6 +585,11 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -585,6 +585,11 @@ public class OrderServiceImpl implements Orderservice {
}
}
private
String
verificationCoupon
(
String
transId
){
private
String
verificationCoupon
(
String
transId
){
String
orderId
=
redisCache
.
getValue
(
RedisUtil
.
getPaymentTransIdOrderKey
(
transId
));
if
(
StringUtils
.
isNotBlank
(
orderId
))
{
log
.
info
(
"从缓存中获取的订单数据,trackingNo:{},transId:{},orderId:{}"
,
LogTreadLocal
.
getTrackingNo
(),
transId
,
orderId
);
transId
=
orderId
;
}
QueryRelationOrderByIdResponseDto
queryOrderByIdResponseDto
=
getQueryRelationOrderByIdResponseDto
(
transId
);
QueryRelationOrderByIdResponseDto
queryOrderByIdResponseDto
=
getQueryRelationOrderByIdResponseDto
(
transId
);
if
(
queryOrderByIdResponseDto
.
getData
()
==
null
||
!
Objects
.
equals
(
ResponseCodeConstant
.
RESPONSE_SUCCESS
,
queryOrderByIdResponseDto
.
getErrcode
()))
{
if
(
queryOrderByIdResponseDto
.
getData
()
==
null
||
!
Objects
.
equals
(
ResponseCodeConstant
.
RESPONSE_SUCCESS
,
queryOrderByIdResponseDto
.
getErrcode
()))
{
return
refundFaileMessage
(
"order query fail"
+
queryOrderByIdResponseDto
);
return
refundFaileMessage
(
"order query fail"
+
queryOrderByIdResponseDto
);
...
@@ -611,10 +616,14 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -611,10 +616,14 @@ public class OrderServiceImpl implements Orderservice {
//只有退款成功更新状态.其他情况不处理
//只有退款成功更新状态.其他情况不处理
return
refundFaileMessage
(
"pay refundStatus is not 100,refundStatus="
+
refundStatus
);
return
refundFaileMessage
(
"pay refundStatus is not 100,refundStatus="
+
refundStatus
);
}
}
// 如果transId为空,返回失败
if
(
StringUtils
.
isBlank
(
requestVo
.
getTransId
()))
{
return
refundFaileMessage
(
"transId is empty "
+
requestVo
);
}
//查询订单详情
//查询订单详情
QueryRelationOrderByIdResponseDto
queryOrderByIdResponseDto
=
getQueryRelationOrderByIdResponseDto
(
requestVo
.
getTransId
());
QueryRelationOrderByIdResponseDto
queryOrderByIdResponseDto
=
getQueryRelationOrderByIdResponseDto
(
requestVo
.
getTransId
());
if
(
queryOrderByIdResponseDto
.
getData
()
==
null
||
!
Objects
.
equals
(
ResponseCodeConstant
.
RESPONSE_SUCCESS
,
queryOrderByIdResponseDto
.
getErrcode
()))
{
if
(
queryOrderByIdResponseDto
.
getData
()
==
null
||
!
Objects
.
equals
(
ResponseCodeConstant
.
RESPONSE_SUCCESS
,
queryOrderByIdResponseDto
.
getErrcode
()))
{
return
refundFaileMessage
(
"order query fail"
+
queryOrderByIdResponseDto
);
return
refundFaileMessage
(
"order query fail
"
+
queryOrderByIdResponseDto
);
}
}
OrderBean
orderBean
=
new
OrderBean
();
OrderBean
orderBean
=
new
OrderBean
();
...
@@ -977,6 +986,10 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -977,6 +986,10 @@ public class OrderServiceImpl implements Orderservice {
orderStatusTracking
(
orderBean
,
orderStatusTrackingInfoByOid
);
orderStatusTracking
(
orderBean
,
orderStatusTrackingInfoByOid
);
}
}
}
}
if
(
OrderStatus
.
TAKE_ORDER
.
getCode
().
equals
(
orderBean
.
getStatus
())
||
OrderStatus
.
WAIT_PAY
.
getCode
().
equals
(
orderBean
.
getStatus
())){
orderBean
.
setOtherCode
(
""
);
}
});
});
}
}
...
@@ -1014,10 +1027,18 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -1014,10 +1027,18 @@ public class OrderServiceImpl implements Orderservice {
responseMap
.
put
(
"orderStatus"
,
orderViewStatusDesc
.
getOrderStatus
());
responseMap
.
put
(
"orderStatus"
,
orderViewStatusDesc
.
getOrderStatus
());
responseMap
.
put
(
"takeCode"
,
""
);
responseMap
.
put
(
"takeCode"
,
""
);
responseMap
.
put
(
"queueIndex"
,
""
);
responseMap
.
put
(
"queueIndex"
,
""
);
String
extInfo
=
orderBean
.
getExtInfo
();
OrderExtInfoDto
orderExtInfoDto
=
null
;
if
(
StringUtils
.
isNotBlank
(
extInfo
))
{
orderExtInfoDto
=
gson
.
fromJson
(
extInfo
,
OrderExtInfoDto
.
class
);
}
responseMap
.
put
(
"payVoucher"
,
orderExtInfoDto
!=
null
?
orderExtInfoDto
.
getPayTransId
()
:
""
);
//非外卖单才获取取餐码和排队人数
//非外卖单才获取取餐码和排队人数
if
(!
OrderType
.
TAKE_OUT
.
getCode
().
equals
(
orderBean
.
getType
())
){
if
(!
OrderType
.
TAKE_OUT
.
getCode
().
equals
(
orderBean
.
getType
())
){
responseMap
.
put
(
"takeCode"
,
orderBean
.
getOtherCode
()
);
if
(!(
OrderStatus
.
TAKE_ORDER
.
getCode
().
equals
(
orderBean
.
getStatus
())
||
OrderStatus
.
WAIT_PAY
.
getCode
().
equals
(
orderBean
.
getStatus
()))){
responseMap
.
put
(
"takeCode"
,
orderBean
.
getOtherCode
()
);
}
BaseQueryOrderRequest
var1
=
new
BaseQueryOrderRequest
();
BaseQueryOrderRequest
var1
=
new
BaseQueryOrderRequest
();
var1
.
setOrderId
(
orderBean
.
getOid
());
var1
.
setOrderId
(
orderBean
.
getOid
());
var1
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
var1
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
...
@@ -1305,6 +1326,14 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -1305,6 +1326,14 @@ public class OrderServiceImpl implements Orderservice {
queryOrderResponseVo
.
setReserveDeliveryTime
(
formatSpecialDate
(
reserveDeliveryTime
));
queryOrderResponseVo
.
setReserveDeliveryTime
(
formatSpecialDate
(
reserveDeliveryTime
));
}
}
if
(
OrderStatus
.
TAKE_ORDER
.
getCode
().
equals
(
queryOrderResponseVo
.
getOrderStatus
())
||
OrderStatus
.
WAIT_PAY
.
getCode
().
equals
(
queryOrderResponseVo
.
getOrderStatus
())){
queryOrderResponseVo
.
setTakeCode
(
""
);
}
queryOrderResponseVo
.
setOrderTypeDesc
(
Optional
.
ofNullable
(
McCafeOrderTypeGather
.
getByCode
(
queryOrderResponseVo
.
getOrderType
()))
.
map
(
McCafeOrderTypeGather:
:
getDesc
).
orElse
(
""
));
//48小时自动退款描述
//48小时自动退款描述
if
(
storeInfo
!=
null
&&
storeInfo
.
getBizVO
()
!=
null
&&
storeInfo
.
getBizVO
().
getStoreConfig
()!=
null
if
(
storeInfo
!=
null
&&
storeInfo
.
getBizVO
()
!=
null
&&
storeInfo
.
getBizVO
().
getStoreConfig
()!=
null
&&
queryOrderResponseVo
.
getRefundStatus
()
!=
null
&&
queryOrderResponseVo
.
getRefundStatus
()
==
1
)
{
&&
queryOrderResponseVo
.
getRefundStatus
()
!=
null
&&
queryOrderResponseVo
.
getRefundStatus
()
==
1
)
{
...
...
order-application-service/src/test/java/cn.freemud/controller/OrderControllerTest.java
View file @
fa31ab87
...
@@ -173,6 +173,24 @@ public class OrderControllerTest {
...
@@ -173,6 +173,24 @@ public class OrderControllerTest {
}
}
/**
/**
* 退款回调
*/
@Test
public
void
refundNotifyCallback
()
{
RefundNotifyCallbackRequestVo
request
=
new
RefundNotifyCallbackRequestVo
();
request
.
setRefundStatus
(
100
);
request
.
setTransId
(
"null"
);
String
str
=
JSONObject
.
toJSONString
(
request
);
try
{
mockMvc
.
perform
(
post
(
"/order/refundNotifyCallback"
).
content
(
str
).
contentType
(
MediaType
.
APPLICATION_JSON_UTF8
).
accept
(
MediaType
.
APPLICATION_JSON_UTF8
)).
andDo
(
print
()).
andExpect
(
jsonPath
(
"$.code"
).
value
(
"500"
));
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
/**
* 再来一单
* 再来一单
*/
*/
@Test
@Test
...
...
order-application-service/src/test/java/cn.freemud/service/OrderServiceTest.java
View file @
fa31ab87
...
@@ -460,10 +460,4 @@ public class OrderServiceTest {
...
@@ -460,10 +460,4 @@ public class OrderServiceTest {
System
.
out
.
println
(
"param:"
+
JSON
.
toJSONString
(
createOrderResponse
));
System
.
out
.
println
(
"param:"
+
JSON
.
toJSONString
(
createOrderResponse
));
}
}
// @Test
// public void testGetPartnerPayOvertime() {
// String partnerPayOvertime = orderService.getPartnerPayOvertime("1864");
// System.out.println("partnerPayOvertime:" + partnerPayOvertime);
// }
}
}
ordercenter-sdk/pom.xml
View file @
fa31ab87
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
<version>
1.0.0
</version>
<version>
1.0.0
</version>
</parent>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<modelVersion>
4.0.0
</modelVersion>
<version>
1.4.3
5
-SNAPSHOT
</version>
<version>
1.4.3
6
-SNAPSHOT
</version>
<artifactId>
ordercenter-sdk
</artifactId>
<artifactId>
ordercenter-sdk
</artifactId>
<dependencies>
<dependencies>
...
...
ordercenter-sdk/readme.md
View file @
fa31ab87
...
@@ -7,15 +7,6 @@
...
@@ -7,15 +7,6 @@
| 1.1.6-SNAPSHOT | OrderExtInfo新增formId | wuping | 2020-02-27 |
| 1.1.6-SNAPSHOT | OrderExtInfo新增formId | wuping | 2020-02-27 |
| 1.1.7-SNAPSHOT | 预约单支付成功接口增加预约任务 | wuping | 2020-03-10 |
| 1.1.7-SNAPSHOT | 预约单支付成功接口增加预约任务 | wuping | 2020-03-10 |
| 1.1.8-SNAPSHOT | 预约单接单接口增加预约任务 | wuping | 2020-03-17 |
| 1.1.8-SNAPSHOT | 预约单接单接口增加预约任务 | wuping | 2020-03-17 |
| 1.3.3-SNAPSHOT | 创建售后单接口增加任务 | wuping | 2020-04-27 |
| 1.3.4-SNAPSHOT | 取消订单增加任务 | wuping | 2020-04-28 |
| 1.1.9-SNAPSHOT | 创建订单增加appid字段 | wuping | 2020-05-08 |
| 1.3.3-SNAPSHOT | 创建售后单接口增加任务 | wuping | 2020-04-27 |
| 1.3.4-SNAPSHOT | 取消订单增加任务 | wuping | 2020-04-28 |
| 1.4.12-SNAPSHOT | 增加新接口:新增结算信息 | wuping | 2020-05-28 |
| 1.4.13-SNAPSHOT | 用户订单和es综合查询接口新增订单业务类型集合 | wuping | 2020-06-01 |
| 1.4.14-SNAPSHOT | 增加非码微店类型 | 梁崇福 | 2020-06-05 |
| 1.3.13-SNAPSHOT | 预约单任务删除 | wuping | 2020-06-05 |
| 1.1.9-SNAPSHOT | 创建订单增加appid字段 | wuping | 2020-05-08 |
| 1.1.9-SNAPSHOT | 创建订单增加appid字段 | wuping | 2020-05-08 |
| 1.3.3-SNAPSHOT | 创建售后单接口增加任务 | wuping | 2020-04-27 |
| 1.3.3-SNAPSHOT | 创建售后单接口增加任务 | wuping | 2020-04-27 |
| 1.3.4-SNAPSHOT | 取消订单增加任务 | wuping | 2020-04-28 |
| 1.3.4-SNAPSHOT | 取消订单增加任务 | wuping | 2020-04-28 |
...
@@ -23,7 +14,8 @@
...
@@ -23,7 +14,8 @@
| 1.4.13-SNAPSHOT | 用户订单和es综合查询接口新增订单业务类型集合 | wuping | 2020-06-01 |
| 1.4.13-SNAPSHOT | 用户订单和es综合查询接口新增订单业务类型集合 | wuping | 2020-06-01 |
| 1.3.13-SNAPSHOT | 预约单任务删除 | wuping | 2020-06-05 |
| 1.3.13-SNAPSHOT | 预约单任务删除 | wuping | 2020-06-05 |
| 1.3.14-SNAPSHOT | es综合查询新增appId查询条件 | wuping | 2020-06-30 |
| 1.3.14-SNAPSHOT | es综合查询新增appId查询条件 | wuping | 2020-06-30 |
|1.4.31-SNAPSHOT | 增加手动录单,和完成订单接口 |张虹旺| 2020-07-18
| 1.4.31-SNAPSHOT | 增加手动录单,和完成订单接口 |张虹旺| 2020-07-18
|1.4.32-SNAPSHOT | 最新快照版本| 李小二 |2020-08-05
| 1.4.32-SNAPSHOT | 最新快照版本| 李小二 |2020-08-05
|1.4.33-SNAPSHOT | 新增修改取餐码接口| 谌会阳 |2020-08-08
| 1.4.33-SNAPSHOT | 新增修改取餐码接口| 谌会阳 |2020-08-08
|1.4.35-SNAPSHOT | 麦咖啡| 谌会阳 |2020-08-08
| 1.4.35-SNAPSHOT | 麦咖啡| 谌会阳 |2020-08-08
\ No newline at end of file
| 1.4.36-SNAPSHOT | 修复queryRelatedOrderByCode反序列化报错| 肖家炜 |2020-08-25
\ No newline at end of file
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/enums/ResponseResultEnum.java
View file @
fa31ab87
...
@@ -24,6 +24,7 @@ public enum ResponseResultEnum {
...
@@ -24,6 +24,7 @@ public enum ResponseResultEnum {
ORDER_DATA_NOT_FOUND
(
"54001"
,
"查询订单数据失败"
),
ORDER_DATA_NOT_FOUND
(
"54001"
,
"查询订单数据失败"
),
ORDER_DATA_NOT_EXIST
(
"54002"
,
"没有相关数据"
),
ORDER_DATA_NOT_EXIST
(
"54002"
,
"没有相关数据"
),
ORDER_STORE_NOT_FOUND
(
"54003"
,
"门店ID或门店名称不存在"
),
ORDER_STORE_NOT_FOUND
(
"54003"
,
"门店ID或门店名称不存在"
),
ORDER_TRANS_ID_IS_NULL
(
"54004"
,
"transId为null"
),
;
;
private
String
code
;
private
String
code
;
...
...
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/service/OrderSdkService.java
View file @
fa31ab87
package
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
service
;
package
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
service
;
import
com.alibaba.fastjson.JSON
;
import
com.freemud.application.sdk.api.base.BaseRequest
;
import
com.freemud.application.sdk.api.base.BaseRequest
;
import
com.freemud.application.sdk.api.ordercenter.config.OrderCenterProperties
;
import
com.freemud.application.sdk.api.ordercenter.config.OrderCenterProperties
;
import
com.freemud.application.sdk.api.ordercenter.constant.InterfaceAddressConstant
;
import
com.freemud.application.sdk.api.ordercenter.constant.InterfaceAddressConstant
;
import
com.freemud.application.sdk.api.ordercenter.constant.ResponseConstant
;
import
com.freemud.application.sdk.api.ordercenter.enums.ResponseResultEnum
;
import
com.freemud.application.sdk.api.ordercenter.enums.ResponseResultEnum
;
import
com.freemud.application.sdk.api.ordercenter.request.*
;
import
com.freemud.application.sdk.api.ordercenter.request.*
;
import
com.freemud.application.sdk.api.ordercenter.request.carpark.ParkingOrderAffirmReq
;
import
com.freemud.application.sdk.api.ordercenter.request.carpark.ParkingOrderAffirmReq
;
...
@@ -20,12 +22,14 @@ import com.freemud.application.sdk.api.ordercenter.util.ResponseUtil;
...
@@ -20,12 +22,14 @@ import com.freemud.application.sdk.api.ordercenter.util.ResponseUtil;
import
com.freemud.application.sdk.api.util.RequestThirdPartyUtils
;
import
com.freemud.application.sdk.api.util.RequestThirdPartyUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.core.ParameterizedTypeReference
;
import
org.springframework.core.ParameterizedTypeReference
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.client.RestTemplate
;
import
org.springframework.web.client.RestTemplate
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.Objects
;
...
@@ -602,12 +606,28 @@ public class OrderSdkService {
...
@@ -602,12 +606,28 @@ public class OrderSdkService {
* @return
* @return
*/
*/
public
BaseResponse
<
List
<
OrderInfoReqs
>>
queryRelatedOrderByCode
(
QueryRelatedOrderByCodeReq
request
,
String
trackingNo
)
{
public
BaseResponse
<
List
<
OrderInfoReqs
>>
queryRelatedOrderByCode
(
QueryRelatedOrderByCodeReq
request
,
String
trackingNo
)
{
StringBuilder
urlString
=
new
StringBuilder
(
InterfaceAddressConstant
.
QUERY_RELATED_ORDER_BY_CODE
)
if
(
StringUtils
.
isBlank
(
request
.
getOrderCode
()))
{
.
append
(
"?orderCode="
).
append
(
request
.
getOrderCode
());
return
ResponseUtil
.
error
(
ResponseResultEnum
.
ORDER_TRANS_ID_IS_NULL
);
OrderBaseResp
<
List
<
OrderInfoReqs
>>
responseDTO
=
RequestThirdPartyUtils
.
httpGetReqComplex
(
restTemplate
,
urlString
.
toString
(),
}
createBaseRequest
(
null
,
trackingNo
),
new
ParameterizedTypeReference
<
OrderBaseResp
<
List
<
OrderInfoReqs
>>>()
{
String
urlString
=
InterfaceAddressConstant
.
QUERY_RELATED_ORDER_BY_CODE
+
"?orderCode="
+
request
.
getOrderCode
();
});
OrderBaseResp
responseDTO
=
RequestThirdPartyUtils
.
httpGetReqComplex
(
restTemplate
,
urlString
,
return
responseHandle
(
responseDTO
);
createBaseRequest
(
null
,
trackingNo
),
new
ParameterizedTypeReference
<
OrderBaseResp
>()
{});
// 1.9.37 fix 原本使用自带序列化成list时如果基础服务查询失败返回object会抛异常,所以改成手动操作
OrderBaseResp
<
List
<
OrderInfoReqs
>>
resp
;
if
(
Objects
.
isNull
(
responseDTO
))
{
resp
=
null
;
}
else
{
List
<
OrderInfoReqs
>
result
;
if
(
Objects
.
equals
(
ResponseConstant
.
SUCCESS_RESPONSE_CODE
,
responseDTO
.
getCode
()))
{
result
=
JSON
.
parseArray
(
Objects
.
toString
(
responseDTO
.
getResult
(),
"[]"
),
OrderInfoReqs
.
class
);
}
else
{
result
=
Collections
.
emptyList
();
}
resp
=
new
OrderBaseResp
<>();
BeanUtils
.
copyProperties
(
responseDTO
,
resp
,
"result"
);
resp
.
setResult
(
result
);
}
return
responseHandle
(
resp
);
}
}
private
<
T
>
BaseRequest
<
T
>
createBaseRequest
(
T
req
,
String
trackingNo
)
{
private
<
T
>
BaseRequest
<
T
>
createBaseRequest
(
T
req
,
String
trackingNo
)
{
...
...
shopping-cart-application-service/pom.xml
View file @
fa31ab87
...
@@ -30,7 +30,7 @@
...
@@ -30,7 +30,7 @@
<dependency>
<dependency>
<groupId>
com.freemud.application.service.sdk
</groupId>
<groupId>
com.freemud.application.service.sdk
</groupId>
<artifactId>
sdk-common-base
</artifactId>
<artifactId>
sdk-common-base
</artifactId>
<version>
1.
4.4-SNAPSHOT
</version>
<version>
1.
5.2.RELEASE
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
com.freemud.application.service.sdk
</groupId>
<groupId>
com.freemud.application.service.sdk
</groupId>
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/ActivityCalculationDiscountRequestDto.java
View file @
fa31ab87
...
@@ -116,6 +116,7 @@ public class ActivityCalculationDiscountRequestDto {
...
@@ -116,6 +116,7 @@ public class ActivityCalculationDiscountRequestDto {
* 加料
* 加料
*/
*/
private
List
<
Material
>
smallMaterial
;
private
List
<
Material
>
smallMaterial
;
private
String
spuId
;
@Override
@Override
public
boolean
equals
(
Object
o
)
{
public
boolean
equals
(
Object
o
)
{
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/CartGoods.java
View file @
fa31ab87
...
@@ -322,6 +322,7 @@ public class CartGoods {
...
@@ -322,6 +322,7 @@ public class CartGoods {
// 原始字符串
// 原始字符串
StringBuilder
originalString
=
new
StringBuilder
();
StringBuilder
originalString
=
new
StringBuilder
();
originalString
.
append
(
goodsId
);
originalString
.
append
(
goodsId
);
originalString
.
append
(
couponCode
);
if
(
CollectionUtils
.
isNotEmpty
(
extra
))
{
if
(
CollectionUtils
.
isNotEmpty
(
extra
))
{
extra
.
stream
().
sorted
(
Comparator
.
comparing
(
CartGoodsExtra:
:
getAttributeId
)).
forEach
(
e
->
originalString
.
append
(
e
.
getAttributeId
()));
extra
.
stream
().
sorted
(
Comparator
.
comparing
(
CartGoodsExtra:
:
getAttributeId
)).
forEach
(
e
->
originalString
.
append
(
e
.
getAttributeId
()));
}
}
...
@@ -343,6 +344,7 @@ public class CartGoods {
...
@@ -343,6 +344,7 @@ public class CartGoods {
StringBuilder
currentString
=
new
StringBuilder
();
StringBuilder
currentString
=
new
StringBuilder
();
currentString
.
append
(
cartGoods
.
getGoodsId
());
currentString
.
append
(
cartGoods
.
getGoodsId
());
currentString
.
append
(
cartGoods
.
getCouponCode
());
if
(
CollectionUtils
.
isNotEmpty
(
cartGoods
.
getExtra
()))
{
if
(
CollectionUtils
.
isNotEmpty
(
cartGoods
.
getExtra
()))
{
cartGoods
.
getExtra
().
stream
().
sorted
(
Comparator
.
comparing
(
CartGoodsExtra:
:
getAttributeId
)).
forEach
(
e
->
currentString
.
append
(
e
.
getAttributeId
()));
cartGoods
.
getExtra
().
stream
().
sorted
(
Comparator
.
comparing
(
CartGoodsExtra:
:
getAttributeId
)).
forEach
(
e
->
currentString
.
append
(
e
.
getAttributeId
()));
}
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/MaterialPromotionService.java
View file @
fa31ab87
This diff is collapsed.
Click to expand it.
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
View file @
fa31ab87
...
@@ -849,6 +849,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -849,6 +849,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
calculationDiscountGoods
.
setGoodsQuantity
(
cartGoods
.
getQty
());
calculationDiscountGoods
.
setGoodsQuantity
(
cartGoods
.
getQty
());
calculationDiscountGoods
.
setOriginalPrice
(
cartGoods
.
getFinalPrice
());
calculationDiscountGoods
.
setOriginalPrice
(
cartGoods
.
getFinalPrice
());
calculationDiscountGoods
.
setMemberDiscount
(
cartGoods
.
getMemberDiscount
());
calculationDiscountGoods
.
setMemberDiscount
(
cartGoods
.
getMemberDiscount
());
calculationDiscountGoods
.
setSpuId
(
cartGoods
.
getSpuId
());
//加料
//加料
if
(
CollectionUtils
.
isNotEmpty
(
cartGoods
.
getProductMaterialList
()))
{
if
(
CollectionUtils
.
isNotEmpty
(
cartGoods
.
getProductMaterialList
()))
{
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/ShoppingCartMCoffeeServiceImpl.java
View file @
fa31ab87
...
@@ -133,7 +133,7 @@ public class ShoppingCartMCoffeeServiceImpl {
...
@@ -133,7 +133,7 @@ public class ShoppingCartMCoffeeServiceImpl {
//商品券已添加情况校验
//商品券已添加情况校验
List
<
ActivityCalculationDiscountRequestDto
.
CalculationDiscountCoupon
>
coupons
=
checkGoodsCoupon
(
oldCartGoodsList
,
operationType
,
couponCode
);
List
<
ActivityCalculationDiscountRequestDto
.
CalculationDiscountCoupon
>
coupons
=
checkGoodsCoupon
(
oldCartGoodsList
,
operationType
,
couponCode
);
CartGoods
addCartGoods
=
convent2CartGoods
(
addShoppingCartGoodsRequestVo
);
CartGoods
addCartGoods
=
convent2CartGoods
(
addShoppingCartGoodsRequestVo
,
goodsId
);
setClassificationAndPrice
(
addCartGoods
,
productBeanListSpuClass
);
setClassificationAndPrice
(
addCartGoods
,
productBeanListSpuClass
);
//查询多个商品库存信息
//查询多个商品库存信息
// Integer checkQty = this.checkSkuQty(oldCartGoodsList, addCartGoods);
// Integer checkQty = this.checkSkuQty(oldCartGoodsList, addCartGoods);
...
@@ -186,7 +186,7 @@ public class ShoppingCartMCoffeeServiceImpl {
...
@@ -186,7 +186,7 @@ public class ShoppingCartMCoffeeServiceImpl {
//购物车已存在商品券
//购物车已存在商品券
if
(
StringUtils
.
isNotBlank
(
cartGoods
.
getCouponCode
()))
{
if
(
StringUtils
.
isNotBlank
(
cartGoods
.
getCouponCode
()))
{
ActivityCalculationDiscountRequestDto
.
CalculationDiscountCoupon
calculationDiscountCoupon
=
new
ActivityCalculationDiscountRequestDto
.
CalculationDiscountCoupon
();
ActivityCalculationDiscountRequestDto
.
CalculationDiscountCoupon
calculationDiscountCoupon
=
new
ActivityCalculationDiscountRequestDto
.
CalculationDiscountCoupon
();
calculationDiscountCoupon
.
setCode
(
c
ouponCode
);
calculationDiscountCoupon
.
setCode
(
c
artGoods
.
getCouponCode
()
);
coupons
.
add
(
calculationDiscountCoupon
);
coupons
.
add
(
calculationDiscountCoupon
);
}
}
if
(
couponCode
!=
null
&&
couponCode
.
equals
(
cartGoods
.
getCouponCode
()))
{
if
(
couponCode
!=
null
&&
couponCode
.
equals
(
cartGoods
.
getCouponCode
()))
{
...
@@ -659,15 +659,15 @@ public class ShoppingCartMCoffeeServiceImpl {
...
@@ -659,15 +659,15 @@ public class ShoppingCartMCoffeeServiceImpl {
List
<
CartGoods
>
allCartGoodsList
=
checkCartGoods
(
partnerId
,
storeId
,
orderType
,
menuType
,
shoppingCartGoodsResponseVo
,
newCartGoods
);
List
<
CartGoods
>
allCartGoodsList
=
checkCartGoods
(
partnerId
,
storeId
,
orderType
,
menuType
,
shoppingCartGoodsResponseVo
,
newCartGoods
);
//添加商品为商品券时,商品校验接口券号未设置,设置商品券号
//添加商品为商品券时,商品校验接口券号未设置,设置商品券号
if
(
StringUtils
.
isNotBlank
(
addCartGoods
.
getCouponCode
()))
{
//
if (StringUtils.isNotBlank(addCartGoods.getCouponCode())) {
for
(
CartGoods
cartGoods
:
allCartGoodsList
)
{
//
for (CartGoods cartGoods : allCartGoodsList) {
if
(
cartGoods
.
getGoodsId
().
equals
(
addCartGoods
.
getGoodsId
())
)
{
// if (cartGoods.getGoodsId().equals(addCartGoods.getGoodsId()) && cartGoods.getCouponCode() == null
) {
cartGoods
.
setCouponCode
(
addCartGoods
.
getCouponCode
());
//
cartGoods.setCouponCode(addCartGoods.getCouponCode());
cartGoods
.
setGoodsType
(
2
);
//
cartGoods.setGoodsType(2);
break
;
//
break;
}
//
}
}
//
}
}
//
}
List
<
CartGoods
>
nowCartGoodsList
=
new
ArrayList
<>();
List
<
CartGoods
>
nowCartGoodsList
=
new
ArrayList
<>();
...
@@ -843,7 +843,8 @@ public class ShoppingCartMCoffeeServiceImpl {
...
@@ -843,7 +843,8 @@ public class ShoppingCartMCoffeeServiceImpl {
}
}
//超值加购商品赋值
//超值加购商品赋值
if
(
ObjectUtils
.
equals
(
GoodsTypeEnum
.
REDUCE_PRICE_GOODS
.
getGoodsType
(),
cartGoods
.
getGoodsType
()))
{
if
(
ObjectUtils
.
equals
(
GoodsTypeEnum
.
REDUCE_PRICE_GOODS
.
getGoodsType
(),
cartGoods
.
getGoodsType
())
||
ObjectUtils
.
equals
(
GoodsTypeEnum
.
COUPON_GOODS
.
getGoodsType
(),
cartGoods
.
getGoodsType
()))
{
cartGoods
.
setOriginalPrice
(
productBeanListSpuClass
.
get
(
0
).
getOriginalPrice
());
cartGoods
.
setOriginalPrice
(
productBeanListSpuClass
.
get
(
0
).
getOriginalPrice
());
cartGoods
.
setFinalPrice
(
productBeanListSpuClass
.
get
(
0
).
getFinalPrice
());
cartGoods
.
setFinalPrice
(
productBeanListSpuClass
.
get
(
0
).
getFinalPrice
());
cartGoods
.
setPackPrice
(
productBeanListSpuClass
.
get
(
0
).
getPackPrice
());
cartGoods
.
setPackPrice
(
productBeanListSpuClass
.
get
(
0
).
getPackPrice
());
...
@@ -861,10 +862,10 @@ public class ShoppingCartMCoffeeServiceImpl {
...
@@ -861,10 +862,10 @@ public class ShoppingCartMCoffeeServiceImpl {
}
}
public
static
CartGoods
convent2CartGoods
(
MCoffeeAddGoodsRequestVo
addShoppingCartGoodsRequestVo
)
{
public
static
CartGoods
convent2CartGoods
(
MCoffeeAddGoodsRequestVo
addShoppingCartGoodsRequestVo
,
String
goodsId
)
{
String
spuId
=
addShoppingCartGoodsRequestVo
.
getSpuId
();
String
spuId
=
addShoppingCartGoodsRequestVo
.
getSpuId
();
String
skuId
=
addShoppingCartGoodsRequestVo
.
getSkuId
();
String
skuId
=
addShoppingCartGoodsRequestVo
.
getSkuId
();
String
goodsId
=
StringUtils
.
isEmpty
(
skuId
)
?
spuId
:
skuId
;
//
String goodsId = StringUtils.isEmpty(skuId) ? spuId : skuId;
Integer
qty
=
addShoppingCartGoodsRequestVo
.
getQty
()
==
null
?
1
:
addShoppingCartGoodsRequestVo
.
getQty
();
Integer
qty
=
addShoppingCartGoodsRequestVo
.
getQty
()
==
null
?
1
:
addShoppingCartGoodsRequestVo
.
getQty
();
CartGoods
cartGoods
=
new
CartGoods
();
CartGoods
cartGoods
=
new
CartGoods
();
cartGoods
.
setGoodsId
(
goodsId
);
cartGoods
.
setGoodsId
(
goodsId
);
...
@@ -875,6 +876,10 @@ public class ShoppingCartMCoffeeServiceImpl {
...
@@ -875,6 +876,10 @@ public class ShoppingCartMCoffeeServiceImpl {
Integer
goodsType
=
StringUtils
.
isEmpty
(
skuId
)
||
ObjectUtils
.
equals
(
spuId
,
skuId
)
?
GoodsTypeEnum
.
SPU_GOODS
.
getGoodsType
()
:
GoodsTypeEnum
.
SKU_GOODS
.
getGoodsType
();
Integer
goodsType
=
StringUtils
.
isEmpty
(
skuId
)
||
ObjectUtils
.
equals
(
spuId
,
skuId
)
?
GoodsTypeEnum
.
SPU_GOODS
.
getGoodsType
()
:
GoodsTypeEnum
.
SKU_GOODS
.
getGoodsType
();
if
(
spuId
.
startsWith
(
CommonsConstant
.
COUPON_PREFIX
))
{
if
(
spuId
.
startsWith
(
CommonsConstant
.
COUPON_PREFIX
))
{
goodsType
=
GoodsTypeEnum
.
COUPON_GOODS
.
getGoodsType
();
goodsType
=
GoodsTypeEnum
.
COUPON_GOODS
.
getGoodsType
();
cartGoods
.
setSpuId
(
goodsId
);
cartGoods
.
setSkuId
(
goodsId
);
cartGoods
.
setCouponCode
(
spuId
.
substring
(
CommonsConstant
.
COUPON_PREFIX
.
length
()));
// cartGoods.setCartGoodsUid(spuId);
}
else
if
(
CollectionUtils
.
isNotEmpty
(
addShoppingCartGoodsRequestVo
.
getProductComboList
())
||
CollectionUtils
.
isNotEmpty
(
addShoppingCartGoodsRequestVo
.
getProductGroupList
()))
{
}
else
if
(
CollectionUtils
.
isNotEmpty
(
addShoppingCartGoodsRequestVo
.
getProductComboList
())
||
CollectionUtils
.
isNotEmpty
(
addShoppingCartGoodsRequestVo
.
getProductGroupList
()))
{
goodsType
=
GoodsTypeEnum
.
SET_MEAL_GOODS
.
getGoodsType
();
goodsType
=
GoodsTypeEnum
.
SET_MEAL_GOODS
.
getGoodsType
();
}
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/CalculationServiceImpl.java
View file @
fa31ab87
...
@@ -11,6 +11,7 @@ import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
...
@@ -11,6 +11,7 @@ import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.enums.ActivityChannelEnum
;
import
cn.freemud.enums.ActivityChannelEnum
;
import
cn.freemud.enums.ActivityTypeEnum
;
import
cn.freemud.enums.ActivityTypeEnum
;
import
cn.freemud.enums.GoodsTypeEnum
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.service.CommonService
;
import
cn.freemud.service.CommonService
;
...
@@ -383,7 +384,7 @@ public class CalculationServiceImpl {
...
@@ -383,7 +384,7 @@ public class CalculationServiceImpl {
//累加需加入计算的商品
//累加需加入计算的商品
int
index
;
int
index
;
// 当商品已存在时,需累加数量
// 当商品已存在时,需累加数量
if
((
index
=
calculationDiscountGoodsList
.
indexOf
(
calculationDiscountGoods
))
>=
0
)
{
if
((
index
=
calculationDiscountGoodsList
.
indexOf
(
calculationDiscountGoods
))
>=
0
&&
!
GoodsTypeEnum
.
COUPON_GOODS
.
getGoodsType
().
equals
(
cartGoods
.
getGoodsType
())
)
{
ActivityCalculationDiscountRequestDto
.
CalculationDiscountGoods
oldCalculationDiscountGoods
=
calculationDiscountGoodsList
.
get
(
index
);
ActivityCalculationDiscountRequestDto
.
CalculationDiscountGoods
oldCalculationDiscountGoods
=
calculationDiscountGoodsList
.
get
(
index
);
oldCalculationDiscountGoods
.
setGoodsQuantity
(
oldCalculationDiscountGoods
.
getGoodsQuantity
()
+
calculationDiscountGoods
.
getGoodsQuantity
());
oldCalculationDiscountGoods
.
setGoodsQuantity
(
oldCalculationDiscountGoods
.
getGoodsQuantity
()
+
calculationDiscountGoods
.
getGoodsQuantity
());
}
else
{
}
else
{
...
...
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