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
137f04eb
Commit
137f04eb
authored
Aug 12, 2021
by
李学兴
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/qa' into qa
parents
809c953c
9126f8a4
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
135 additions
and
581 deletions
+135
-581
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
+25
-20
order-application-service/src/main/java/cn/freemud/constant/KgdRedisKeyConstant.java
+31
-0
order-application-service/src/main/java/cn/freemud/enums/OrderRefundEnum.java
+5
-4
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+0
-0
order-application-service/src/main/java/cn/freemud/service/process/order/AbstractQueueIndexProcessor.java
+0
-33
order-application-service/src/main/java/cn/freemud/service/process/order/FreemudOrderQueueIndexProcessorImpl.java
+0
-66
order-application-service/src/main/java/cn/freemud/service/process/order/HexCloudOrderQueueIndexProcessorImpl.java
+0
-66
order-application-service/src/main/java/cn/freemud/service/process/order/OrderQueueIndexProcessor.java
+0
-32
order-application-service/src/main/java/cn/freemud/service/process/order/OrderQueueIndexProcessorFactory.java
+0
-82
order-application-service/src/main/java/cn/freemud/service/thirdparty/hexcloud/HexCloudClient.java
+0
-36
order-application-service/src/main/java/cn/freemud/service/thirdparty/hexcloud/HexCloudClientFallbackFactory.java
+0
-52
order-application-service/src/main/java/cn/freemud/service/thirdparty/hexcloud/request/HexCloudBaseRequest.java
+0
-51
order-application-service/src/main/java/cn/freemud/service/thirdparty/hexcloud/response/HexCloudBaseResponse.java
+0
-67
order-application-service/src/main/java/cn/freemud/service/thirdparty/hexcloud/response/HexCloudTakeAwayOrderStatusDto.java
+0
-53
order-management/src/main/java/cn/freemud/management/constant/KgdRedisKeyConstant.java
+31
-0
order-management/src/main/java/cn/freemud/management/enums/OrderRefundEnum.java
+4
-3
order-management/src/main/java/cn/freemud/management/service/handle/OrderVerifyHandle.java
+29
-16
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/CouponPromotionService.java
+5
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/CouponDiscountCalculation.java
+5
-0
No files found.
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
View file @
137f04eb
...
...
@@ -14,6 +14,7 @@ package cn.freemud.adapter;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.constant.CustomerScoreConstant
;
import
cn.freemud.constant.KgdRedisKeyConstant
;
import
cn.freemud.constant.RedisKeyConstant
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.entities.dto.*
;
...
...
@@ -97,6 +98,7 @@ import java.math.BigDecimal;
import
java.security.NoSuchAlgorithmException
;
import
java.security.spec.InvalidKeySpecException
;
import
java.text.DecimalFormat
;
import
java.text.MessageFormat
;
import
java.time.Instant
;
import
java.util.*
;
import
java.util.function.Function
;
...
...
@@ -2091,12 +2093,16 @@ public class OrderAdapter {
// 除 未支付 拒单 和 取消外,其他可退款
return
Stream
.
of
(
OrderStatus
.
WAIT_PAY
,
OrderStatus
.
REFUSE
,
OrderStatus
.
CALCEL
).
noneMatch
(
s
->
Objects
.
equals
(
status
,
s
));
}
boolean
canRefund
=
false
;
List
<
AssortmentOpenPlatformPartnerWxappConfig
>
wxappConfigs
=
cacheWxappConfigManager
.
cacheSelectDefaultPage
(
wxAppId
,
"2"
);
Map
<
String
,
AssortmentOpenPlatformPartnerWxappConfig
>
configMap
=
wxappConfigs
.
stream
().
collect
(
Collectors
.
toMap
(
AssortmentOpenPlatformPartnerWxappConfig:
:
getAppKey
,
Function
.
identity
()));
AssortmentOpenPlatformPartnerWxappConfig
orderRefund
;
// 查询小程序配置的退款设置
boolean
canRefund
=
false
;
String
hkey
=
OrderType
.
TAKE_OUT
.
getCode
().
equals
(
orderBean
.
getOrderType
())
?
KgdRedisKeyConstant
.
REFUND_CFG_TAKE_OUT
:
KgdRedisKeyConstant
.
REFUND_CFG_EAT_IN
;
String
configStr
=
redisCache
.
hashGet
(
hkey
,
MessageFormat
.
format
(
KgdRedisKeyConstant
.
ORDER_REFUND_CONFIG
,
orderBean
.
getCompanyId
(),
wxAppId
));
if
(
StringUtils
.
isEmpty
(
configStr
))
{
return
true
;
}
JSONObject
config
=
JSON
.
parseObject
(
configStr
);
String
orderRefund
;
//订单状态
switch
(
status
)
{
...
...
@@ -2104,33 +2110,33 @@ public class OrderAdapter {
case
TAKE_ORDER:
//区分外卖单和到店订单,判断是否可以退款
if
(
OrderType
.
TAKE_OUT
.
getCode
().
equals
(
orderBean
.
getOrderType
()))
{
orderRefund
=
config
Map
.
get
(
OrderRefundEnum
.
DELIVERY_TAKE_ORDER_REFUND
.
getKeyValue
());
orderRefund
=
config
.
getString
(
OrderRefundEnum
.
DELIVERY_TAKE_ORDER_REFUND
.
getKeyValue
());
}
else
{
orderRefund
=
config
Map
.
get
(
OrderRefundEnum
.
TAKEORDER_REFUND
.
getKeyValue
());
orderRefund
=
config
.
getString
(
OrderRefundEnum
.
TAKEORDER_REFUND
.
getKeyValue
());
}
if
(
orderRefund
==
null
||
ALLOW_REFUND
.
equals
(
orderRefund
.
getAppValue
()
))
{
if
(
orderRefund
==
null
||
ALLOW_REFUND
.
equals
(
orderRefund
))
{
canRefund
=
true
;
}
break
;
//已接单
case
RECEIPT:
if
(
OrderType
.
TAKE_OUT
.
getCode
().
equals
(
orderBean
.
getOrderType
()))
{
orderRefund
=
config
Map
.
get
(
OrderRefundEnum
.
DELIVERY_RECEIPT_ORDER_REFUND
.
getKeyValue
());
orderRefund
=
config
.
getString
(
OrderRefundEnum
.
DELIVERY_RECEIPT_ORDER_REFUND
.
getKeyValue
());
}
else
{
orderRefund
=
config
Map
.
get
(
OrderRefundEnum
.
RECEIPTORDER_REFUND
.
getKeyValue
());
orderRefund
=
config
.
getString
(
OrderRefundEnum
.
RECEIPTORDER_REFUND
.
getKeyValue
());
}
if
(
orderRefund
==
null
||
ALLOW_REFUND
.
equals
(
orderRefund
.
getAppValue
()
))
{
if
(
orderRefund
==
null
||
ALLOW_REFUND
.
equals
(
orderRefund
))
{
canRefund
=
true
;
}
break
;
//制作完成
case
COMPLETE_MAKE:
if
(
OrderType
.
TAKE_OUT
.
getCode
().
equals
(
orderBean
.
getOrderType
()))
{
orderRefund
=
config
Map
.
get
(
OrderRefundEnum
.
DELIVERY_COMPLETE_MAKE_ORDER_REFUND
.
getKeyValue
());
orderRefund
=
config
.
getString
(
OrderRefundEnum
.
DELIVERY_COMPLETE_MAKE_ORDER_REFUND
.
getKeyValue
());
}
else
{
orderRefund
=
config
Map
.
get
(
OrderRefundEnum
.
COMPLETEMAKEORDER_REFUND
.
getKeyValue
());
orderRefund
=
config
.
getString
(
OrderRefundEnum
.
COMPLETEMAKEORDER_REFUND
.
getKeyValue
());
}
if
(
orderRefund
!=
null
&&
ALLOW_REFUND
.
equals
(
orderRefund
.
getAppValue
()
))
{
if
(
orderRefund
!=
null
&&
ALLOW_REFUND
.
equals
(
orderRefund
))
{
canRefund
=
true
;
}
break
;
...
...
@@ -2140,19 +2146,18 @@ public class OrderAdapter {
long
gmtModified
=
orderBean
.
getGmtModified
();
long
value
=
0L
;
AssortmentOpenPlatformPartnerWxappConfig
refundDateConfig
=
configMap
.
get
(
OrderRefundEnum
.
REFUND_DATA_RANGE
.
getKeyValue
());
String
refundDateConfig
=
config
.
getString
(
OrderRefundEnum
.
REFUND_DATA_RANGE
.
getKeyValue
());
if
(
null
!=
refundDateConfig
)
{
String
appValue
=
refundDateConfig
.
getAppValue
();
value
=
Long
.
parseLong
(
StringUtils
.
isEmpty
(
appValue
)
?
"0"
:
appValue
);
value
=
Long
.
parseLong
(
StringUtils
.
isEmpty
(
refundDateConfig
)
?
"0"
:
refundDateConfig
);
}
long
allowRefundTime
=
gmtModified
+
value
*
24
*
60
*
60
*
1000
;
if
(
OrderType
.
TAKE_OUT
.
getCode
().
equals
(
orderBean
.
getOrderType
()))
{
orderRefund
=
config
Map
.
get
(
OrderRefundEnum
.
DELIVERY_ORDER_REFUND
.
getKeyValue
());
orderRefund
=
config
.
getString
(
OrderRefundEnum
.
DELIVERY_ORDER_REFUND
.
getKeyValue
());
}
else
{
orderRefund
=
config
Map
.
get
(
OrderRefundEnum
.
ORDER_REFUND
.
getKeyValue
());
orderRefund
=
config
.
getString
(
OrderRefundEnum
.
ORDER_REFUND
.
getKeyValue
());
}
if
(
orderRefund
!=
null
&&
ALLOW_REFUND
.
equals
(
orderRefund
.
getAppValue
()
)
&&
(
allowRefundTime
-
currentTime
)
>=
0
)
{
if
(
orderRefund
!=
null
&&
ALLOW_REFUND
.
equals
(
orderRefund
)
&&
(
allowRefundTime
-
currentTime
)
>=
0
)
{
canRefund
=
true
;
}
break
;
...
...
order-application-service/src/main/java/cn/freemud/constant/KgdRedisKeyConstant.java
0 → 100644
View file @
137f04eb
package
cn
.
freemud
.
constant
;
/**
* @author Clover.z
* @Date 2021/8/11
* @Desc
*/
public
class
KgdRedisKeyConstant
{
/**
* 订单是否支持退款配置 缓存key
* 0:商户号
* 1:小程序appId
*
* value: hash结构
* hkey : eatInType 堂食 和takeOutType 外卖
* 具体配置为json字符串
*/
public
static
final
String
ORDER_REFUND_CONFIG
=
"kgd:order_refund_config_{0}_{1}"
;
/**
* 订单类型为堂食 redis配置的hkey
*/
public
static
final
String
REFUND_CFG_EAT_IN
=
"eatInType"
;
/**
* 订单类型为外卖 redis配置的hkey
*/
public
static
final
String
REFUND_CFG_TAKE_OUT
=
"takeOutType"
;
}
order-application-service/src/main/java/cn/freemud/enums/OrderRefundEnum.java
View file @
137f04eb
...
...
@@ -15,17 +15,18 @@ package cn.freemud.enums;
public
enum
OrderRefundEnum
{
ORDER_REFUND
(
"orderRefund"
,
"已完成订单是否允许退款"
),
REFUND_DATA_RANGE
(
"refundDateRange"
,
"退款允许日期"
),
TAKEORDER_REFUND
(
"takeOrderRefund"
,
"未接单是否支持退款"
),
RECEIPTORDER_REFUND
(
"receiptOrderRefund"
,
"已接单是否支持退款"
),
COMPLETEMAKEORDER_REFUND
(
"completeMakeOrderRefund"
,
"制作完成是否支持退款"
),
REFUND_DELIVERY_FEE_ENABLE
(
"refundShippingFee"
,
"商家同意退款时是否退配送费"
),
DELIVERY_TAKE_ORDER_REFUND
(
"deliveryTakeOrderRefund"
,
"外卖单未接单是否支持退款"
),
DELIVERY_RECEIPT_ORDER_REFUND
(
"deliveryReceiptOrderRefund"
,
"外卖单已接单是否支持退款"
),
DELIVERY_COMPLETE_MAKE_ORDER_REFUND
(
"deliveryCompleteMakeOrderRefund"
,
"外卖单制作完成是否支持退款"
),
DELIVERY_ORDER_REFUND
(
"deliveryOrderRefund"
,
"外卖单订单完成是否支持退款"
);
DELIVERY_ORDER_REFUND
(
"deliveryOrderRefund"
,
"外卖单订单完成是否支持退款"
),
REFUND_DATA_RANGE
(
"refundDateRange"
,
"退款允许日期"
),
REFUND_DELIVERY_FEE_ENABLE
(
"refundShippingFee"
,
"商家同意退款时是否退配送费"
),
REFUND_REVERSE_COUPON
(
"refundReverseCoupon"
,
"退款退优惠券"
);
;
private
String
keyValue
;
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
137f04eb
This diff is collapsed.
Click to expand it.
order-application-service/src/main/java/cn/freemud/service/process/order/AbstractQueueIndexProcessor.java
deleted
100644 → 0
View file @
809c953c
package
cn
.
freemud
.
service
.
process
.
order
;
import
cn.freemud.service.thirdparty.hexcloud.response.HexCloudTakeAwayOrderStatusDto
;
import
com.google.common.collect.Maps
;
import
java.util.Map
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Description:
* @author: jiming.liu
* @date: 2021/7/23 下午1:43
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
public
abstract
class
AbstractQueueIndexProcessor
implements
OrderQueueIndexProcessor
{
protected
Map
<
String
,
String
>
transferResult
(
String
oid
,
String
queueIndex
)
{
Map
<
String
,
String
>
queueIndexMap
=
Maps
.
newHashMap
();
queueIndexMap
.
put
(
"oid"
,
oid
);
queueIndexMap
.
put
(
"queueIndex"
,
queueIndex
==
null
?
""
:
queueIndex
);
return
queueIndexMap
;
}
protected
Map
<
String
,
String
>
transferResult
(
String
oid
,
HexCloudTakeAwayOrderStatusDto
statusDto
)
{
Map
<
String
,
String
>
queueIndexMap
=
Maps
.
newHashMap
();
queueIndexMap
.
put
(
"oid"
,
oid
);
queueIndexMap
.
put
(
"queueIndex"
,
statusDto
==
null
?
""
:
statusDto
.
getWaiting_order_count
()
+
""
);
return
queueIndexMap
;
}
}
order-application-service/src/main/java/cn/freemud/service/process/order/FreemudOrderQueueIndexProcessorImpl.java
deleted
100644 → 0
View file @
809c953c
package
cn
.
freemud
.
service
.
process
.
order
;
import
cn.freemud.constant.CommonsConstant
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.entities.dto.order.QueryLineUpOrderDto
;
import
cn.freemud.service.thirdparty.hexcloud.response.HexCloudTakeAwayOrderStatusDto
;
import
cn.freemud.utils.AppLogUtil
;
import
com.freemud.application.sdk.api.ordercenter.request.QueryLineUpOrderReq
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryLineUpResponse
;
import
com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
import
java.util.List
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Description:
* @author: jiming.liu
* @date: 2021/7/21 下午3:53
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Component
public
class
FreemudOrderQueueIndexProcessorImpl
extends
AbstractQueueIndexProcessor
{
private
final
OrderCenterSdkService
orderCenterSdkService
;
public
FreemudOrderQueueIndexProcessorImpl
(
OrderCenterSdkService
orderCenterSdkService
)
{
this
.
orderCenterSdkService
=
orderCenterSdkService
;
}
@Override
public
String
name
()
{
return
CommonsConstant
.
QUEUE_INDEX_PROCESSOR_NAME_FREEMUD
;
}
@Override
public
HexCloudTakeAwayOrderStatusDto
process
(
QueryLineUpOrderDto
vo
)
{
AppLogUtil
.
infoLog
(
"queryLineUpOrder from freemud "
,
vo
,
""
);
QueryLineUpOrderReq
queryLineUpOrderReq
=
new
QueryLineUpOrderReq
();
queryLineUpOrderReq
.
setPartnerId
(
vo
.
getPartnerId
());
queryLineUpOrderReq
.
setStoreId
(
vo
.
getStoreId
());
queryLineUpOrderReq
.
setStartTime
(
vo
.
getStartTime
());
queryLineUpOrderReq
.
setEndTime
(
vo
.
getEndTime
());
// 查询订单的排队人数
QueryLineUpResponse
response
=
orderCenterSdkService
.
queryLineUpOrder
(
queryLineUpOrderReq
);
if
(!
ResponseCodeConstant
.
RESPONSE_SUCCESS
.
equals
(
response
.
getErrcode
()))
{
AppLogUtil
.
infoLog
(
"queryLineUpOrder from freemud"
,
vo
,
response
);
return
null
;
}
List
<
String
>
orderCodeList
=
response
.
getOrderCodes
();
int
size
=
0
,
productSum
=
0
;
if
(!
CollectionUtils
.
isEmpty
(
orderCodeList
))
{
size
=
orderCodeList
.
size
();
productSum
=
orderCodeList
.
stream
().
mapToInt
(
product
->
Integer
.
parseInt
(
product
.
split
(
"-"
)[
1
])).
sum
();
}
return
HexCloudTakeAwayOrderStatusDto
.
builder
().
waiting_order_count
(
size
).
waiting_product_count
(
productSum
).
hexCloudResponse
(
false
).
build
();
}
}
order-application-service/src/main/java/cn/freemud/service/process/order/HexCloudOrderQueueIndexProcessorImpl.java
deleted
100644 → 0
View file @
809c953c
package
cn
.
freemud
.
service
.
process
.
order
;
import
cn.freemud.constant.CommonsConstant
;
import
cn.freemud.entities.dto.order.QueryLineUpOrderDto
;
import
cn.freemud.service.thirdparty.hexcloud.HexCloudClient
;
import
cn.freemud.service.thirdparty.hexcloud.request.HexCloudBaseRequest
;
import
cn.freemud.service.thirdparty.hexcloud.response.HexCloudBaseResponse
;
import
cn.freemud.service.thirdparty.hexcloud.response.HexCloudTakeAwayOrderStatusDto
;
import
cn.freemud.utils.AppLogUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.StringUtils
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Description:
* @author: jiming.liu
* @date: 2021/7/21 下午3:52
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Component
public
class
HexCloudOrderQueueIndexProcessorImpl
extends
AbstractQueueIndexProcessor
{
@Autowired
private
HexCloudClient
hexCloudClient
;
@Override
public
String
name
()
{
return
CommonsConstant
.
QUEUE_INDEX_PROCESSOR_NAME_HEXCLOUD
;
}
@Override
public
HexCloudTakeAwayOrderStatusDto
process
(
QueryLineUpOrderDto
vo
)
{
AppLogUtil
.
infoLog
(
"queryLineUpOrder from HexCloud"
,
vo
,
""
);
if
(
StringUtils
.
isEmpty
(
vo
.
getThirdOrderCode
()))
{
AppLogUtil
.
infoLog
(
"合阔查询失败,ThirdOrderCode is empty"
,
vo
,
""
);
return
null
;
}
//
Map
<
String
,
String
>
orderThirdCode
=
new
HashMap
<>();
orderThirdCode
.
put
(
"tp_order_id"
,
vo
.
getThirdOrderCode
());
HexCloudBaseRequest
request
=
HexCloudBaseRequest
.
builder
().
shopId
(
vo
.
getStoreId
()).
partnerId
(
vo
.
getPartnerId
()).
startTime
(
vo
.
getStartTime
())
.
endTime
(
vo
.
getEndTime
()).
oid
(
vo
.
getOrderCode
()).
data
(
orderThirdCode
).
thirdStoreId
(
vo
.
getThirdStoreId
()).
build
();
HexCloudBaseResponse
<
HexCloudTakeAwayOrderStatusDto
>
hexCloudBaseResponse
=
hexCloudClient
.
takeAwayOrderStatus
(
request
);
if
(
null
!=
hexCloudBaseResponse
&&
hexCloudBaseResponse
.
success
())
{
HexCloudTakeAwayOrderStatusDto
statusDto
=
hexCloudBaseResponse
.
getResponseBody
();
if
(
null
!=
statusDto
)
{
statusDto
.
setHexCloudResponse
(
true
);
}
return
statusDto
;
}
else
{
AppLogUtil
.
infoLog
(
"合阔查询失败"
,
request
,
hexCloudBaseResponse
);
return
null
;
}
}
}
order-application-service/src/main/java/cn/freemud/service/process/order/OrderQueueIndexProcessor.java
deleted
100644 → 0
View file @
809c953c
package
cn
.
freemud
.
service
.
process
.
order
;
import
cn.freemud.entities.dto.order.QueryLineUpOrderDto
;
import
cn.freemud.service.thirdparty.hexcloud.response.HexCloudTakeAwayOrderStatusDto
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Description:
* @author: jiming.liu
* @date: 2021/7/21 下午3:36
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
public
interface
OrderQueueIndexProcessor
{
/**
* 名称
*
* @return
*/
String
name
();
/**
* 执行体
*
* @param vo
* @return
*/
HexCloudTakeAwayOrderStatusDto
process
(
QueryLineUpOrderDto
vo
);
}
order-application-service/src/main/java/cn/freemud/service/process/order/OrderQueueIndexProcessorFactory.java
deleted
100644 → 0
View file @
809c953c
package
cn
.
freemud
.
service
.
process
.
order
;
import
cn.freemud.constant.CommonsConstant
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.StringUtils
;
import
java.util.List
;
import
java.util.Optional
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Description:
* @author: jiming.liu
* @date: 2021/7/21 下午3:54
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Slf4j
@Component
public
class
OrderQueueIndexProcessorFactory
{
/**
* 查询合阔订单排队接口,商户白名单
*/
@Value
(
"#{'${order.queueIndex.hexCloud.pos.partnerId}'.split(',')}"
)
private
List
<
String
>
notAutomaticTwistPartnerId
;
/**
* 执行器
*/
private
List
<
OrderQueueIndexProcessor
>
processors
;
public
OrderQueueIndexProcessorFactory
(
List
<
OrderQueueIndexProcessor
>
processors
)
{
this
.
processors
=
processors
;
}
/**
* 根据白名单配置是否查询合阔
*
* @param partnerId
* @return
*/
public
OrderQueueIndexProcessor
processor
(
String
partnerId
)
{
//根据白名单商户判断是否查询合阔
if
(
StringUtils
.
isEmpty
(
partnerId
))
{
return
commonProcessor
();
}
if
(
notAutomaticTwistPartnerId
.
contains
(
partnerId
))
{
return
getProcessor
(
CommonsConstant
.
QUEUE_INDEX_PROCESSOR_NAME_HEXCLOUD
);
}
return
commonProcessor
();
}
/**
* 通用执行器
*
* @return
*/
public
OrderQueueIndexProcessor
commonProcessor
()
{
return
getProcessor
(
CommonsConstant
.
QUEUE_INDEX_PROCESSOR_NAME_FREEMUD
);
}
/**
* 根据名称获取processor
*
* @param name
* @return
*/
private
OrderQueueIndexProcessor
getProcessor
(
String
name
)
{
Optional
<
OrderQueueIndexProcessor
>
optional
=
processors
.
stream
().
filter
(
p
->
name
.
equals
(
p
.
name
())).
findFirst
();
if
(
optional
.
isPresent
())
{
return
optional
.
get
();
}
throw
new
UnsupportedOperationException
(
"freemud OrderQueueIndexProcessor not fount"
);
}
}
order-application-service/src/main/java/cn/freemud/service/thirdparty/hexcloud/HexCloudClient.java
deleted
100644 → 0
View file @
809c953c
package
cn
.
freemud
.
service
.
thirdparty
.
hexcloud
;
import
cn.freemud.service.thirdparty.hexcloud.request.HexCloudBaseRequest
;
import
cn.freemud.service.thirdparty.hexcloud.response.HexCloudBaseResponse
;
import
cn.freemud.service.thirdparty.hexcloud.response.HexCloudTakeAwayOrderStatusDto
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
java.util.Map
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Description: 对接合阔的接口
* @author: jiming.liu
* @date: 2021/7/21 下午2:36
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@FeignClient
(
name
=
"adapter-open-store-sync-pos-status-service"
,
url
=
"${saas.adapter.syncPosStatus.feignUrl}"
,
fallbackFactory
=
HexCloudClientFallbackFactory
.
class
)
@RequestMapping
(
produces
=
{
"application/json;charset=UTF-8"
})
public
interface
HexCloudClient
{
/**
* 查询合阔订单排队序号
*
* @param baseRequest
* @return
*/
@PostMapping
(
value
=
"/hexcloud/order/status"
)
HexCloudBaseResponse
<
HexCloudTakeAwayOrderStatusDto
>
takeAwayOrderStatus
(
HexCloudBaseRequest
<
Map
<
String
,
String
>>
baseRequest
);
}
order-application-service/src/main/java/cn/freemud/service/thirdparty/hexcloud/HexCloudClientFallbackFactory.java
deleted
100644 → 0
View file @
809c953c
package
cn
.
freemud
.
service
.
thirdparty
.
hexcloud
;
import
cn.freemud.entities.dto.order.QueryLineUpOrderDto
;
import
cn.freemud.service.process.order.OrderQueueIndexProcessorFactory
;
import
cn.freemud.service.thirdparty.hexcloud.request.HexCloudBaseRequest
;
import
cn.freemud.service.thirdparty.hexcloud.response.HexCloudBaseResponse
;
import
cn.freemud.service.thirdparty.hexcloud.response.HexCloudTakeAwayOrderStatusDto
;
import
cn.freemud.utils.AppLogUtil
;
import
cn.freemud.utils.SpringBeanUtil
;
import
feign.hystrix.FallbackFactory
;
import
org.springframework.stereotype.Component
;
import
java.util.Map
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Description: 合阔接口降级处理
* @author: jiming.liu
* @date: 2021/7/22 下午2:45
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Component
public
class
HexCloudClientFallbackFactory
implements
FallbackFactory
<
HexCloudClient
>
{
@Override
public
HexCloudClient
create
(
Throwable
throwable
)
{
AppLogUtil
.
errorLog
(
"请求合阔获取订单排队号失败,降级处理:"
,
""
,
""
,
(
Exception
)
throwable
);
return
new
HexCloudClient
()
{
@Override
public
HexCloudBaseResponse
<
HexCloudTakeAwayOrderStatusDto
>
takeAwayOrderStatus
(
HexCloudBaseRequest
<
Map
<
String
,
String
>>
baseRequest
)
{
QueryLineUpOrderDto
vo
=
new
QueryLineUpOrderDto
();
vo
.
setStoreId
(
baseRequest
.
getShopId
());
vo
.
setPartnerId
(
baseRequest
.
getPartnerId
());
vo
.
setOrderCode
(
baseRequest
.
getOid
());
vo
.
setStartTime
(
baseRequest
.
getStartTime
());
vo
.
setEndTime
(
baseRequest
.
getEndTime
());
//请求非码自己的排队号
OrderQueueIndexProcessorFactory
factory
=
SpringBeanUtil
.
getBean
(
OrderQueueIndexProcessorFactory
.
class
);
HexCloudTakeAwayOrderStatusDto
statusDto
=
factory
.
commonProcessor
().
process
(
vo
);
if
(
null
!=
statusDto
)
{
statusDto
.
setHexCloudResponse
(
false
);
}
return
HexCloudBaseResponse
.
buildSuccess
(
statusDto
);
}
};
}
}
order-application-service/src/main/java/cn/freemud/service/thirdparty/hexcloud/request/HexCloudBaseRequest.java
deleted
100644 → 0
View file @
809c953c
package
cn
.
freemud
.
service
.
thirdparty
.
hexcloud
.
request
;
import
lombok.Builder
;
import
lombok.Data
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Description: 查询合阔接口基础参数
* @author: jiming.liu
* @date: 2021/7/21 下午2:36
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
@Builder
public
class
HexCloudBaseRequest
<
T
>
{
/**
* 商户id
*/
private
String
partnerId
;
/**
* 店铺id
*/
private
String
shopId
;
/**
* 订单编号
*/
private
String
oid
;
/**
* 时间开始
*/
private
Long
startTime
;
/**
* 时间开始
*/
private
Long
endTime
;
/**
* 三方门店号
*/
private
String
thirdStoreId
;
/**
* 参数数据
*/
private
T
data
;
}
order-application-service/src/main/java/cn/freemud/service/thirdparty/hexcloud/response/HexCloudBaseResponse.java
deleted
100644 → 0
View file @
809c953c
package
cn
.
freemud
.
service
.
thirdparty
.
hexcloud
.
response
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
lombok.Builder
;
import
lombok.Data
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Description: 合阔接口响base值
* @author: jiming.liu
* @date: 2021/7/21 下午2:36
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
@Builder
public
class
HexCloudBaseResponse
<
T
>
{
/**
* 调用是否成功,0成功
*/
private
String
statusCode
;
/**
* 错误信息
*/
private
String
ver
;
private
String
message
;
/**
* 返回数据
*/
private
T
responseBody
;
/**
* 判断是否成功
*
* @return
*/
public
boolean
success
()
{
return
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
this
.
statusCode
);
}
/**
* 成功
*
* @param
* @return
*/
public
static
HexCloudBaseResponse
buildSuccess
()
{
return
HexCloudBaseResponse
.
builder
().
statusCode
(
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
).
build
();
}
/**
* 成功
*
* @param
* @return
*/
public
static
HexCloudBaseResponse
buildSuccess
(
Object
payload
)
{
return
HexCloudBaseResponse
.
builder
().
statusCode
(
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
).
responseBody
(
payload
).
build
();
}
}
order-application-service/src/main/java/cn/freemud/service/thirdparty/hexcloud/response/HexCloudTakeAwayOrderStatusDto.java
deleted
100644 → 0
View file @
809c953c
package
cn
.
freemud
.
service
.
thirdparty
.
hexcloud
.
response
;
import
lombok.Builder
;
import
lombok.Data
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Description: 订单排队状态响应值
* @author: jiming.liu
* @date: 2021/7/21 下午2:55
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
@Builder
public
class
HexCloudTakeAwayOrderStatusDto
{
/**
* 合阔订单ID (全市场唯一)
*/
private
String
ticket_id
;
/**
* 第三方订单ID(必须唯一)
*/
private
String
tp_order_id
;
/**
* 订单状态: 等待制作(1),制作中(2),制作完成(3),已取餐(4),无效或废弃(5)
*/
private
Integer
flow_status
;
/**
* 取餐号
*/
private
String
takemealNumber
;
/**
* 预计等待时间:单位秒
*/
private
Integer
waiting_time
;
/**
* 前面等待订单数
*/
private
Integer
waiting_order_count
;
/**
* 前面等待商品数
*/
private
Integer
waiting_product_count
;
/**
* 是否是合阔
*/
private
boolean
hexCloudResponse
;
}
order-management/src/main/java/cn/freemud/management/constant/KgdRedisKeyConstant.java
0 → 100644
View file @
137f04eb
package
cn
.
freemud
.
management
.
constant
;
/**
* @author Clover.z
* @Date 2021/8/11
* @Desc
*/
public
class
KgdRedisKeyConstant
{
/**
* 订单是否支持退款配置 缓存key
* 0:商户号
* 1:小程序appId
*
* value: hash结构
* hkey : eatInType 堂食 和takeOutType 外卖
* 具体配置为json字符串
*/
public
static
final
String
ORDER_REFUND_CONFIG
=
"kgd:order_refund_config_{0}_{1}"
;
/**
* 订单类型为堂食 redis配置的hkey
*/
public
static
final
String
REFUND_CFG_EAT_IN
=
"eatInType"
;
/**
* 订单类型为外卖 redis配置的hkey
*/
public
static
final
String
REFUND_CFG_TAKE_OUT
=
"takeOutType"
;
}
order-management/src/main/java/cn/freemud/management/enums/OrderRefundEnum.java
View file @
137f04eb
...
...
@@ -15,16 +15,17 @@ package cn.freemud.management.enums;
public
enum
OrderRefundEnum
{
ORDER_REFUND
(
"orderRefund"
,
"已完成订单是否允许退款"
),
REFUND_DATA_RANGE
(
"refundDateRange"
,
"退款允许日期"
),
TAKEORDER_REFUND
(
"takeOrderRefund"
,
"未接单是否支持退款"
),
RECEIPTORDER_REFUND
(
"receiptOrderRefund"
,
"已接单是否支持退款"
),
COMPLETEMAKEORDER_REFUND
(
"completeMakeOrderRefund"
,
"制作完成是否支持退款"
),
REFUND_DELIVERY_FEE_ENABLE
(
"refundShippingFee"
,
"商家同意退款时是否退配送费"
),
DELIVERY_TAKE_ORDER_REFUND
(
"deliveryTakeOrderRefund"
,
"外卖单未接单是否支持退款"
),
DELIVERY_RECEIPT_ORDER_REFUND
(
"deliveryReceiptOrderRefund"
,
"外卖单已接单是否支持退款"
),
DELIVERY_COMPLETE_MAKE_ORDER_REFUND
(
"deliveryCompleteMakeOrderRefund"
,
"外卖单制作完成是否支持退款"
),
DELIVERY_ORDER_REFUND
(
"deliveryOrderRefund"
,
"外卖单订单完成是否支持退款"
);
DELIVERY_ORDER_REFUND
(
"deliveryOrderRefund"
,
"外卖单订单完成是否支持退款"
),
REFUND_DATA_RANGE
(
"refundDateRange"
,
"退款允许日期"
),
REFUND_DELIVERY_FEE_ENABLE
(
"refundShippingFee"
,
"商家同意退款时是否退配送费"
),
REFUND_REVERSE_COUPON
(
"refundReverseCoupon"
,
"退款退优惠券"
);
private
String
keyValue
;
...
...
order-management/src/main/java/cn/freemud/management/service/handle/OrderVerifyHandle.java
View file @
137f04eb
...
...
@@ -2,11 +2,14 @@ package cn.freemud.management.service.handle;
import
cn.freemud.base.entity.BaseResponse
;
//import cn.freemud.base.log.LogTreadLocal;
import
cn.freemud.management.constant.KgdRedisKeyConstant
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
cn.freemud.management.entities.dto.response.order.OrderManagerResponse
;
import
cn.freemud.management.entities.dto.response.pay.RefundConfig
;
import
cn.freemud.management.enums.*
;
import
cn.freemud.management.util.ResponseUtil
;
import
cn.freemud.redis.RedisCache
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPartnerWxappConfig
;
import
com.freemud.api.assortment.datamanager.manager.cache.CacheOpenPlatformPartnerWxappConfigManager
;
...
...
@@ -26,11 +29,13 @@ import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService;
import
com.google.common.collect.Lists
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
java.math.BigDecimal
;
import
java.text.MessageFormat
;
import
java.util.*
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
...
...
@@ -69,6 +74,8 @@ public class OrderVerifyHandle {
private
OrderCenterSdkService
orderCenterSdkService
;
@Autowired
private
DeliveryHandle
deliveryHandle
;
@Autowired
private
RedisCache
redisCache
;
@Value
(
"${delivery.support.ordersource}"
)
private
String
supportOrderSource
;
...
...
@@ -601,13 +608,19 @@ public class OrderVerifyHandle {
// 除 未支付 拒单 和 取消外,其他可退款
return
Stream
.
of
(
OrderStatus
.
WAIT_PAY
,
OrderStatus
.
REFUSE
,
OrderStatus
.
CANCEL
).
noneMatch
(
s
->
Objects
.
equals
(
data
.
getStatus
(),
s
.
getCode
()));
}
boolean
canRefund
=
false
;
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
request
.
OrderExtInfoDto
extInfo
=
null
;
JSONObject
jsonObject1
=
JSONObject
.
parseObject
(
data
.
getExtInfo
());
extInfo
=
jsonObject1
.
toJavaObject
(
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
request
.
OrderExtInfoDto
.
class
);
List
<
AssortmentOpenPlatformPartnerWxappConfig
>
partnerWxappConfigs
=
cacheOpenPlatformPartnerWxappConfigManager
.
cacheSelectDefaultPage
(
extInfo
.
getAppid
(),
"2"
);
Map
<
String
,
AssortmentOpenPlatformPartnerWxappConfig
>
configMap
=
partnerWxappConfigs
.
stream
().
collect
(
Collectors
.
toMap
(
AssortmentOpenPlatformPartnerWxappConfig:
:
getAppKey
,
Function
.
identity
()));
AssortmentOpenPlatformPartnerWxappConfig
orderRefund
;
// 查询小程序配置的退款设置
String
hkey
=
OrderType
.
TAKE_OUT
.
getCode
().
equals
(
data
.
getOrderType
())
?
KgdRedisKeyConstant
.
REFUND_CFG_TAKE_OUT
:
KgdRedisKeyConstant
.
REFUND_CFG_EAT_IN
;
String
configStr
=
redisCache
.
hashGet
(
hkey
,
MessageFormat
.
format
(
KgdRedisKeyConstant
.
ORDER_REFUND_CONFIG
,
data
.
getCompanyId
(),
extInfo
.
getAppid
()));
if
(
StringUtils
.
isEmpty
(
configStr
))
{
return
true
;
}
JSONObject
config
=
JSON
.
parseObject
(
configStr
);
String
orderRefund
;
//订单状态
switch
(
data
.
getStatus
())
{
...
...
@@ -615,44 +628,44 @@ public class OrderVerifyHandle {
case
1
:
//区分外卖单和到店订单,判断是否可以退款
if
(
OrderType
.
TAKE_OUT
.
getCode
().
equals
(
data
.
getOrderType
()))
{
orderRefund
=
config
Map
.
get
(
OrderRefundEnum
.
DELIVERY_TAKE_ORDER_REFUND
.
getKeyValue
());
orderRefund
=
config
.
getString
(
OrderRefundEnum
.
DELIVERY_TAKE_ORDER_REFUND
.
getKeyValue
());
}
else
{
orderRefund
=
config
Map
.
get
(
OrderRefundEnum
.
TAKEORDER_REFUND
.
getKeyValue
());
orderRefund
=
config
.
getString
(
OrderRefundEnum
.
TAKEORDER_REFUND
.
getKeyValue
());
}
if
(
orderRefund
==
null
||
(
orderRefund
!=
null
&&
ALLOW_REFUND
.
equals
(
orderRefund
.
getAppValue
()
)))
{
if
(
orderRefund
==
null
||
(
orderRefund
!=
null
&&
ALLOW_REFUND
.
equals
(
orderRefund
)))
{
isFinishRefund
=
true
;
}
break
;
//已接单
case
3
:
if
(
OrderType
.
TAKE_OUT
.
getCode
().
equals
(
data
.
getOrderType
()))
{
orderRefund
=
config
Map
.
get
(
OrderRefundEnum
.
DELIVERY_RECEIPT_ORDER_REFUND
.
getKeyValue
());
orderRefund
=
config
.
getString
(
OrderRefundEnum
.
DELIVERY_RECEIPT_ORDER_REFUND
.
getKeyValue
());
}
else
{
orderRefund
=
config
Map
.
get
(
OrderRefundEnum
.
RECEIPTORDER_REFUND
.
getKeyValue
());
orderRefund
=
config
.
getString
(
OrderRefundEnum
.
RECEIPTORDER_REFUND
.
getKeyValue
());
}
if
(
orderRefund
==
null
||
(
orderRefund
!=
null
&&
ALLOW_REFUND
.
equals
(
orderRefund
.
getAppValue
()
)))
{
if
(
orderRefund
==
null
||
(
orderRefund
!=
null
&&
ALLOW_REFUND
.
equals
(
orderRefund
)))
{
isFinishRefund
=
true
;
}
break
;
//制作完成
case
31
:
if
(
OrderType
.
TAKE_OUT
.
getCode
().
equals
(
data
.
getOrderType
()))
{
orderRefund
=
config
Map
.
get
(
OrderRefundEnum
.
DELIVERY_COMPLETE_MAKE_ORDER_REFUND
.
getKeyValue
());
orderRefund
=
config
.
getString
(
OrderRefundEnum
.
DELIVERY_COMPLETE_MAKE_ORDER_REFUND
.
getKeyValue
());
}
else
{
orderRefund
=
config
Map
.
get
(
OrderRefundEnum
.
COMPLETEMAKEORDER_REFUND
.
getKeyValue
());
orderRefund
=
config
.
getString
(
OrderRefundEnum
.
COMPLETEMAKEORDER_REFUND
.
getKeyValue
());
}
if
(
orderRefund
!=
null
&&
ALLOW_REFUND
.
equals
(
orderRefund
.
getAppValue
()
))
{
if
(
orderRefund
!=
null
&&
ALLOW_REFUND
.
equals
(
orderRefund
))
{
isFinishRefund
=
true
;
}
break
;
// 订单完成
case
5
:
if
(
OrderType
.
TAKE_OUT
.
getCode
().
equals
(
data
.
getOrderType
()))
{
orderRefund
=
config
Map
.
get
(
OrderRefundEnum
.
DELIVERY_ORDER_REFUND
.
getKeyValue
());
orderRefund
=
config
.
getString
(
OrderRefundEnum
.
DELIVERY_ORDER_REFUND
.
getKeyValue
());
}
else
{
orderRefund
=
config
Map
.
get
(
OrderRefundEnum
.
ORDER_REFUND
.
getKeyValue
());
orderRefund
=
config
.
getString
(
OrderRefundEnum
.
ORDER_REFUND
.
getKeyValue
());
}
if
(
orderRefund
!=
null
&&
ALLOW_REFUND
.
equals
(
orderRefund
.
getAppValue
()
))
{
if
(
orderRefund
!=
null
&&
ALLOW_REFUND
.
equals
(
orderRefund
))
{
isFinishRefund
=
true
;
}
break
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/CouponPromotionService.java
View file @
137f04eb
...
...
@@ -96,6 +96,11 @@ public class CouponPromotionService implements IPromotionService {
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
CouponResults
>
couponResultsList
=
calculationDiscountResult
.
getCouponDiscounts
();
if
(
CollectionUtils
.
isNotEmpty
(
couponResultsList
))
{
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
CouponResults
couponResults
:
couponResultsList
)
{
//前端计算小计拿商品现价累计减couponDiscount,商品券换购券现价已排除
if
(
ActivityTypeEnum
.
TYPE_33
.
getCode
()==
couponResults
.
getActivityType
()
||
ActivityTypeEnum
.
TYPE_32
.
getCode
()==
couponResults
.
getActivityType
()){
continue
;
}
couponDiscount
=
couponDiscount
+
(
couponResults
.
getDiscountAmount
()
==
null
?
0
:
couponResults
.
getDiscountAmount
());
}
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/CouponDiscountCalculation.java
View file @
137f04eb
...
...
@@ -304,6 +304,11 @@ public class CouponDiscountCalculation {
long
couponDiscount
=
0
;
if
(
CollectionUtils
.
isNotEmpty
(
couponDiscounts
))
{
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Discount
couponResults
:
couponDiscounts
)
{
//前端计算小计拿商品现价累计减couponDiscount,商品券换购券现价已排除
if
(
ActivityTypeEnum
.
TYPE_33
.
getCode
()==
couponResults
.
getType
()
||
ActivityTypeEnum
.
TYPE_32
.
getCode
()==
couponResults
.
getType
()){
continue
;
}
couponDiscount
=
couponDiscount
+
(
couponResults
.
getDiscount
()
==
null
?
0
:
couponResults
.
getDiscount
());
}
}
...
...
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