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
d9646b66
Commit
d9646b66
authored
Nov 12, 2020
by
徐康
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
买3赠一
parent
ed1efe04
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
165 additions
and
104 deletions
+165
-104
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
+18
-2
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/enums/OldOrderAccountType.java
+2
-1
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/enums/QueryOrderAccountType.java
+3
-3
order-application-service/src/main/java/cn/freemud/adapter/CouponAdapter.java
+4
-30
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
+29
-13
order-application-service/src/main/java/cn/freemud/entities/dto/shoppingCart/ShoppingCartGoodsDto.java
+2
-7
order-application-service/src/main/java/cn/freemud/entities/vo/CreateOrderVo.java
+5
-0
order-application-service/src/main/java/cn/freemud/enums/OrderAccountType.java
+3
-1
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
+88
-37
order-application-service/src/main/java/cn/freemud/service/mccafe/impl/CouponClientServiceImpl.java
+5
-3
order-management/src/main/java/cn/freemud/management/adapter/McCafeCouponAdapter.java
+0
-7
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/UpdateCouponCodeReq.java
+2
-0
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/create/OrderCostCreateReq.java
+2
-0
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/response/orderInfo/OrderCostResp.java
+2
-0
No files found.
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
View file @
d9646b66
...
...
@@ -481,7 +481,8 @@ public class OrderSdkAdapter {
if
(
QueryOrderAccountType
.
DELIVERY_AMOUNT
.
equals
(
accountRequest
.
getAccountType
())
||
QueryOrderAccountType
.
PACK_AMOUNT
.
equals
(
accountRequest
.
getAccountType
())
||
QueryOrderAccountType
.
CARD_ORIGINAL_AMOUNT
.
equals
(
accountRequest
.
getAccountType
())
||
QueryOrderAccountType
.
MCCAFE_MONTH_CARD
.
equals
(
accountRequest
.
getAccountType
()))
{
||
QueryOrderAccountType
.
WITH_ORDER_BUY_COUPON_FEE
.
equals
(
accountRequest
.
getAccountType
())
||
QueryOrderAccountType
.
WITH_ORDER_BUY3_SEND1_FEE
.
equals
(
accountRequest
.
getAccountType
()))
{
OrderCostCreateReq
orderCostCreateReq
=
new
OrderCostCreateReq
();
orderCostCreateReq
.
setCostName
(
accountRequest
.
getName
());
//新订单服务 1=包装费,2=运费,3=餐盒单价,4=餐盒数量
...
...
@@ -493,6 +494,9 @@ public class OrderSdkAdapter {
//1=订单,2=订单商品,3=售后单
orderCostCreateReq
.
setBillType
(
1
);
orderCostCreateReq
.
setProductId
(
accountRequest
.
getProductId
());
if
(
StringUtils
.
isNotBlank
(
accountRequest
.
getAddInfo
()))
{
orderCostCreateReq
.
setExtInfo
(
accountRequest
.
getAddInfo
());
}
orderCostCreateReqs
.
add
(
orderCostCreateReq
);
}
else
{
OrderSettlementCreateReq
orderSettlementCreateReq
=
new
OrderSettlementCreateReq
();
...
...
@@ -536,9 +540,12 @@ public class OrderSdkAdapter {
case
"CARD_ORIGINAL_AMOUNT"
:
type
=
5
;
break
;
case
"
MCCAFE_MONTH_CARD
"
:
case
"
WITH_ORDER_BUY_COUPON_FEE
"
:
type
=
10
;
break
;
case
"WITH_ORDER_BUY3_SEND1_FEE"
:
type
=
11
;
break
;
default
:
break
;
}
...
...
@@ -840,6 +847,9 @@ public class OrderSdkAdapter {
if
(
orderCostResp
.
getCostType
()
==
10
)
{
accountBean
.
setType
(
OldOrderAccountType
.
WITH_ORDER_BUY_COUPON_FEE
.
getCode
());
}
if
(
orderCostResp
.
getCostType
()
==
11
)
{
accountBean
.
setType
(
OldOrderAccountType
.
WITH_ORDER_BUY3_SEND1_FEE
.
getCode
());
}
accountBean
.
setAddInfo
(
""
);
accountList
.
add
(
accountBean
);
}
...
...
@@ -1892,6 +1902,9 @@ public class OrderSdkAdapter {
case
10
:
newOrderAccountType
=
OldOrderAccountType
.
COUPON
.
getCode
();
break
;
case
35
:
newOrderAccountType
=
OldOrderAccountType
.
BUY3_SEND1
.
getCode
();
break
;
case
118
:
newOrderAccountType
=
OldOrderAccountType
.
PRODUCT_COUPON
.
getCode
();
break
;
...
...
@@ -1924,10 +1937,13 @@ public class OrderSdkAdapter {
break
;
case
205
:
newOrderAccountType
=
OldOrderAccountType
.
TOTAL_DISCOUNT
.
getCode
();
break
;
case
220
:
newOrderAccountType
=
OldOrderAccountType
.
MEMBER_PRICE_DISCOUNT
.
getCode
();
break
;
case
99
:
newOrderAccountType
=
OldOrderAccountType
.
FREIGHT_COUPON
.
getCode
();
break
;
default
:
break
;
}
...
...
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/enums/OldOrderAccountType.java
View file @
d9646b66
...
...
@@ -25,12 +25,13 @@ public enum OldOrderAccountType {
DISCOUNT_COUPON
(
7
,
"折扣券"
,
"DISCOUNT_COUPON"
),
DRIVER_FEE
(
7
,
"骑手小费"
,
"DRIVER_FEE"
),
WITH_ORDER_BUY_COUPON_FEE
(
10
,
"随单买月卡"
,
"WITH_ORDER_BUY_COUPON_FEE"
),
WITH_ORDER_BUY3_SEND1_FEE
(
11
,
"随单购买三赠一券"
,
"WITH_ORDER_BUY3_SEND1_FEE"
),
FREIGHT_COUPON
(
99
,
"运费券"
,
"FREIGHT_COUPON"
),
DISCOUNT_AMOUNT
(
21
,
"限时折扣"
,
"DISCOUNT_AMOUNT"
),
PREMIUM_EXCHANGE
(
22
,
"加价购"
,
"PREMIUM_EXCHANGE"
),
SECOND_DISCOUNT
(
23
,
"第二件N折"
,
"SECOND_DISCOUNT"
),
BUYM_SENDN
(
24
,
"买M赠N"
,
"BUYM_SENDN"
),
BUY3_SEND1
(
35
,
"买3赠1"
,
"BUY3_SEND1"
),
BUY3_SEND1
(
35
,
"买3赠1
券
"
,
"BUY3_SEND1"
),
SUPER_PURCHASE
(
47
,
"超值加购"
,
"SUPER_PURCHASE"
),
CUSTOMER_SCORE
(
4
,
"积分兑换"
,
"CUSTOMER_SCORE"
),
WEIXIN
(
203
,
"微信优惠"
,
"WECHAT_DISCOUNT"
),
...
...
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/enums/QueryOrderAccountType.java
View file @
d9646b66
...
...
@@ -30,7 +30,7 @@ public enum QueryOrderAccountType {
SUPER_PURCHASE
(
"SUPER_PURCHASE"
,
"超值加购"
),
SECOND_DISCOUNT
(
"SECOND_DISCOUNT"
,
"第二件N折"
),
BUYM_SENDN
(
"BUYM_SENDN"
,
"买M赠N"
),
BUY3_SEND1
(
"BUY3_SEND1"
,
"买3赠1"
),
BUY3_SEND1
(
"BUY3_SEND1"
,
"买3赠1
券
"
),
CUSTOMER_SCORE
(
"CUSTOMER_SCORE"
,
"积分兑换"
),
CARD_ORIGINAL_AMOUNT
(
"CARD_ORIGINAL_AMOUNT"
,
"会员卡原价"
),
SET_MEAL
(
"SET_MEAL"
,
"套餐商品优惠"
),
...
...
@@ -41,8 +41,8 @@ public enum QueryOrderAccountType {
FULL_DISTRIBUTION_FEE
(
"FULL_DISTRIBUTION_FEE"
,
"满减配送费"
),
OFFLINE_PAY
(
"OFFLINE_PAY"
,
"线下支付"
),
MEMBER_PRICE_DISCOUNT
(
"MEMBER_PRICE_DISCOUNT"
,
"会员价优惠"
),
MCCAFE_MONTH_CARD
(
"MCCAFE_MONTH_CARD"
,
"麦咖啡月卡
"
),
WITH_ORDER_BUY_COUPON_FEE
(
"WITH_ORDER_BUY_COUPON_FEE"
,
"随单
买
月卡"
),
WITH_ORDER_BUY3_SEND1_FEE
(
"WITH_ORDER_BUY3_SEND1_FEE"
,
"随单购买3赠1券
"
),
WITH_ORDER_BUY_COUPON_FEE
(
"WITH_ORDER_BUY_COUPON_FEE"
,
"随单
购
月卡"
),
;
private
String
code
;
...
...
order-application-service/src/main/java/cn/freemud/adapter/CouponAdapter.java
View file @
d9646b66
...
...
@@ -659,11 +659,12 @@ public class CouponAdapter {
public
MCCafeCouponRequest
convert2MCCafeCouponRequest
(
QueryOrdersResponseDto
.
DataBean
.
OrderBean
orderBean
,
QueryOrdersResponseDto
.
DataBean
.
OrderBean
.
AccountBean
accountBean
,
McdNetBatchQueryResponse
.
Coupon
coupon
)
{
List
<
MCCafeProductRedeemVo
>
products
=
new
ArrayList
<>();
//商品券核销核销参数
if
(
QueryOrderAccountType
.
PRODUCT_COUPON
.
equals
(
orderAdapter
.
getQueryOrderAccountType
(
OldOrderAccountType
.
getByCode
(
accountBean
.
getType
()))))
{
if
(
QueryOrderAccountType
.
PRODUCT_COUPON
.
equals
(
orderAdapter
.
getQueryOrderAccountType
(
OldOrderAccountType
.
getByCode
(
accountBean
.
getType
())))
||
QueryOrderAccountType
.
BUY3_SEND1
.
equals
(
orderAdapter
.
getQueryOrderAccountType
(
OldOrderAccountType
.
getByCode
(
accountBean
.
getType
()))))
{
for
(
int
i
=
0
;
i
<
orderBean
.
getProductList
().
size
();
i
++)
{
QueryOrdersResponseDto
.
DataBean
.
OrderBean
.
ProductBean
productBean
=
orderBean
.
getProductList
().
get
(
i
);
String
pid
=
org
.
apache
.
commons
.
lang3
.
StringUtils
.
isNotBlank
(
productBean
.
getSpecification
())
?
productBean
.
getSpecification
()
:
productBean
.
getProductId
();
if
(
!
org
.
springframework
.
util
.
CollectionUtils
.
is
Empty
(
productBean
.
getDiscountList
()))
{
if
(
CollectionUtils
.
isNot
Empty
(
productBean
.
getDiscountList
()))
{
List
<
QueryOrdersResponseDto
.
DataBean
.
OrderBean
.
ProductBean
.
ProductDiscount
>
discounts
=
productBean
.
getDiscountList
().
stream
().
filter
(
productDiscount
->
productDiscount
.
getDiscountId
().
equals
(
accountBean
.
getAccountId
())).
collect
(
Collectors
.
toList
());
for
(
QueryOrdersResponseDto
.
DataBean
.
OrderBean
.
ProductBean
.
ProductDiscount
productDiscount
:
discounts
)
{
...
...
@@ -672,15 +673,8 @@ public class CouponAdapter {
}
MCCafeProductRedeemVo
mcCafeProductRedeemVo
=
new
MCCafeProductRedeemVo
();
mcCafeProductRedeemVo
.
setPid
(
pid
);
String
extInfo
=
productDiscount
.
getAddInfo
();
Integer
extendType
=
StringUtils
.
isBlank
(
extInfo
)?
null
:
JSON
.
parseObject
(
extInfo
).
getInteger
(
"extendType"
);
if
(
extendType
!=
null
&&
extendType
==
4
)
{
mcCafeProductRedeemVo
.
setKeyProductCode
(
JSON
.
parseObject
(
extInfo
).
getString
(
"tenderId"
));
mcCafeProductRedeemVo
.
setCustomer_code
(
JSON
.
parseObject
(
extInfo
).
getString
(
"tenderId"
));
}
else
{
mcCafeProductRedeemVo
.
setKeyProductCode
(
productBean
.
getCustomerCode
());
mcCafeProductRedeemVo
.
setCustomer_code
(
productBean
.
getCustomerCode
());
}
mcCafeProductRedeemVo
.
setConsume_num
(
productDiscount
.
getDiscountQty
());
mcCafeProductRedeemVo
.
setSeq
(
i
+
1
);
if
(
null
!=
coupon
&&
CollectionUtils
.
isNotEmpty
(
coupon
.
getCodeInfo
().
getGroups
()))
{
...
...
@@ -740,26 +734,6 @@ public class CouponAdapter {
return
mcCafeCouponRequest
;
}
public
MCCafeCouponLockRequest
convert2MCCafeCouponLockRequest
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
CreateOrderAccountRequest
accountBean
)
{
MCCafeCouponLockRequest
mcCafeCouponLockRequest
=
new
MCCafeCouponLockRequest
();
mcCafeCouponLockRequest
.
setVer
(
Integer
.
valueOf
(
Version
.
VERSION_1
));
mcCafeCouponLockRequest
.
setReqType
(
CouponReqTypeEnum
.
UNLOCK
.
getCode
());
mcCafeCouponLockRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
mcCafeCouponLockRequest
.
setStoreId
(
orderBean
.
getShopId
());
// 订单号
mcCafeCouponLockRequest
.
setTransId
(
orderBean
.
getOid
());
mcCafeCouponLockRequest
.
setCoupon
(
accountBean
.
getAccountId
());
mcCafeCouponLockRequest
.
setOfferId
(
accountBean
.
getAccountId
());
mcCafeCouponLockRequest
.
setNumber
(
"1"
);
mcCafeCouponLockRequest
.
setChannel
(
OrderSourceType
.
ALIPAY
.
getCode
().
equals
(
orderBean
.
getSource
())?
MCCafeChannelEnum
.
MOCOFFEE_ZFB
.
getName
():
MCCafeChannelEnum
.
MOCOFFEE_WX
.
getName
());
mcCafeCouponLockRequest
.
setOperatorId
(
"-1"
);
mcCafeCouponLockRequest
.
setStationId
(
"-1"
);
mcCafeCouponLockRequest
.
setSign
(
"skip"
);
return
mcCafeCouponLockRequest
;
}
public
MCCafeCouponLockRequest
convert2MCCafeCouponLockRequest
(
QueryOrdersResponseDto
.
DataBean
.
OrderBean
orderBean
,
QueryOrdersResponseDto
.
DataBean
.
OrderBean
.
AccountBean
accountBean
)
{
MCCafeCouponLockRequest
mcCafeCouponLockRequest
=
new
MCCafeCouponLockRequest
();
mcCafeCouponLockRequest
.
setVer
(
Integer
.
valueOf
(
Version
.
VERSION_1
));
...
...
@@ -770,7 +744,7 @@ public class CouponAdapter {
mcCafeCouponLockRequest
.
setTransId
(
orderBean
.
getOid
());
mcCafeCouponLockRequest
.
setCoupon
(
accountBean
.
getAccountId
());
mcCafeCouponLockRequest
.
setOfferId
(
accountBean
.
getAccountId
());
mcCafeCouponLockRequest
.
setNumber
(
"1"
);
mcCafeCouponLockRequest
.
setNumber
(
accountBean
.
getNumber
().
toString
()
);
mcCafeCouponLockRequest
.
setChannel
(
OrderSourceType
.
ALIPAY
.
getCode
().
equals
(
orderBean
.
getSource
())?
MCCafeChannelEnum
.
MOCOFFEE_ZFB
.
getName
():
MCCafeChannelEnum
.
MOCOFFEE_WX
.
getName
());
mcCafeCouponLockRequest
.
setOperatorId
(
"-1"
);
...
...
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
View file @
d9646b66
...
...
@@ -206,6 +206,7 @@ public class OrderAdapter {
&&
StringUtils
.
isNotBlank
(
createOrderVo
.
getBuyThreeGiveOneCouponCode
())
&&
createOrderVo
.
getBuyThreeGiveOneCouponCode
().
equals
(
activityDiscountsDto
.
getActivityCode
()))
{
jsonObject
.
put
(
"buyThreeGiveOneActivityCode"
,
createOrderVo
.
getBuyThreeGiveOneActivityCode
());
jsonObject
.
put
(
"buyThreeGiveOneCouponCode"
,
createOrderVo
.
getBuyThreeGiveOneCouponCode
());
}
createOrderAccountDto
.
setAddInfo
(
jsonObject
.
toJSONString
());
}
...
...
@@ -267,17 +268,35 @@ public class OrderAdapter {
.
build
();
orderAccountDtos
.
add
(
createOrderAccountDto
);
}
if
(
null
!=
shoppingCartGoodsDto
.
getPayCardFee
()
&&
0
l
!=
shoppingCartGoodsDto
.
getPayCardFee
()
&&
StringUtils
.
isNotBlank
(
createOrderVo
.
getCardKeyCode
()))
{
if
(
null
!=
shoppingCartGoodsDto
.
getPayCardFee
()
&&
0
l
!=
shoppingCartGoodsDto
.
getPayCardFee
()
&&
StringUtils
.
isNotBlank
(
createOrderVo
.
getCardKeyCode
()))
{
CreateOrderAccountRequest
createOrderAccountDto
=
CreateOrderAccountRequest
.
builder
()
.
accountId
(
""
)
.
name
(
"啡常月享卡"
)
.
price
(
shoppingCartGoodsDto
.
getPayCardFee
())
.
accountType
(
QueryOrderAccountType
.
MCCAFE_MONTH_CARD
)
.
accountType
(
QueryOrderAccountType
.
WITH_ORDER_BUY_COUPON_FEE
)
.
sequence
(
orderAccountIndex
++)
.
productId
(
createOrderVo
.
getCardKeyCode
())
.
build
();
orderAccountDtos
.
add
(
createOrderAccountDto
);
}
if
(
null
!=
shoppingCartGoodsDto
.
getBuyThreeGiveOneCouponFee
()
&&
0
l
!=
shoppingCartGoodsDto
.
getBuyThreeGiveOneCouponFee
()
&&
StringUtils
.
isNotBlank
(
createOrderVo
.
getBuyThreeGiveOneCouponCode
())
&&
StringUtils
.
isNotBlank
(
createOrderVo
.
getBuyThreeGiveOneActivityCode
())
&&
StringUtils
.
isNotBlank
(
createOrderVo
.
getBuyThreeGiveOneCardKeyCode
()))
{
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"buyThreeGiveOneActivityCode"
,
createOrderVo
.
getBuyThreeGiveOneActivityCode
());
jsonObject
.
put
(
"buyThreeGiveOneCouponCode"
,
createOrderVo
.
getBuyThreeGiveOneCouponCode
());
CreateOrderAccountRequest
createOrderAccountDto
=
CreateOrderAccountRequest
.
builder
()
.
accountId
(
""
)
.
name
(
"买三赠一券"
)
.
price
(
shoppingCartGoodsDto
.
getBuyThreeGiveOneCouponFee
())
.
accountType
(
QueryOrderAccountType
.
WITH_ORDER_BUY3_SEND1_FEE
)
.
sequence
(
orderAccountIndex
++)
.
productId
(
createOrderVo
.
getBuyThreeGiveOneCardKeyCode
())
.
addInfo
(
jsonObject
.
toJSONString
())
.
build
();
orderAccountDtos
.
add
(
createOrderAccountDto
);
}
createOrderDto
.
setAccounts
(
CollectionUtils
.
isNotEmpty
(
orderAccountDtos
)
?
orderAccountDtos
:
Collections
.
emptyList
());
//设置库存扣减
...
...
@@ -1257,7 +1276,7 @@ public class OrderAdapter {
responseVo
.
setOrderAccounts
(
convent2OrderAccountVo
(
ordersBean
.
getApportionDetails
()));
if
(
CollectionUtils
.
isNotEmpty
(
ordersBean
.
getOrderCostDetailList
()))
{
ordersBean
.
getOrderCostDetailList
().
forEach
(
o
->
{
if
(
o
.
getCostType
()
==
10
&&
o
.
getBillType
()
==
1
)
{
if
(
(
o
.
getCostType
()
==
10
||
o
.
getCostType
()
==
11
)
&&
o
.
getBillType
()
==
1
)
{
ProductVo
productVo
=
new
ProductVo
();
productVo
.
setQty
(
1
);
productVo
.
setName
(
o
.
getCostName
());
...
...
@@ -2065,22 +2084,19 @@ public class OrderAdapter {
productVo
.
setExtras
(
""
);
productVo
.
setSpecification
(
""
);
}
}
if
(
OrderAccountType
.
BUYM_SENDN
.
getCode
().
equals
(
productDiscount
.
getDiscountType
()))
{
}
else
if
(
OrderAccountType
.
BUYM_SENDN
.
getCode
().
equals
(
productDiscount
.
getDiscountType
()))
{
activityType
=
ActivityTypeEnum
.
TYPE_61
.
getCode
();
}
if
(
OrderAccountType
.
PRODUCT_COUPON
.
getCode
().
equals
(
productDiscount
.
getDiscountType
()))
{
}
else
if
(
OrderAccountType
.
PRODUCT_COUPON
.
getCode
().
equals
(
productDiscount
.
getDiscountType
()))
{
activityType
=
ActivityTypeEnum
.
TYPE_32
.
getCode
();
couponDiscount
=
productDiscount
.
getDiscountAmount
();
}
if
(
OrderAccountType
.
DISCOUNT_COUPON
.
getCode
().
equals
(
productDiscount
.
getDiscountType
()))
{
}
else
if
(
OrderAccountType
.
DISCOUNT_COUPON
.
getCode
().
equals
(
productDiscount
.
getDiscountType
()))
{
couponDiscount
=
productDiscount
.
getDiscountAmount
();
}
if
(
OrderAccountType
.
COUPON
.
getCode
().
equals
(
productDiscount
.
getDiscountType
()))
{
}
else
if
(
OrderAccountType
.
COUPON
.
getCode
().
equals
(
productDiscount
.
getDiscountType
()))
{
couponDiscount
=
productDiscount
.
getDiscountAmount
();
}
if
(
OrderAccountType
.
BUY_DISCOUNT
.
getCode
().
equals
(
productDiscount
.
getDiscountType
()))
{
}
else
if
(
OrderAccountType
.
BUY_DISCOUNT
.
getCode
().
equals
(
productDiscount
.
getDiscountType
()))
{
fullReduction
=
productDiscount
.
getDiscountAmount
();
}
else
if
(
OrderAccountType
.
BUY3_SEND1
.
getCode
().
equals
(
productDiscount
.
getDiscountType
()))
{
productVo
.
setCouponName
(
productDiscount
.
getDiscountDesc
());
}
}
}
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/shoppingCart/ShoppingCartGoodsDto.java
View file @
d9646b66
...
...
@@ -108,14 +108,9 @@ public class ShoppingCartGoodsDto {
private
Long
payCardFee
;
/**
* 麦咖啡-买三赠一券
活动号
* 麦咖啡-买三赠一券
费用
*/
private
String
buyThreeGiveOneActivityCode
;
/**
* 麦咖啡-买三赠一券默认券号
*/
private
String
buyThreeGiveOneCouponCode
;
private
Long
buyThreeGiveOneCouponFee
;
@Data
...
...
order-application-service/src/main/java/cn/freemud/entities/vo/CreateOrderVo.java
View file @
d9646b66
...
...
@@ -205,6 +205,11 @@ public class CreateOrderVo {
*/
private
String
cardKeyCode
;
/**
* 随单购啡常月享卡键位
*/
private
String
buyThreeGiveOneCardKeyCode
;
@ApiModelProperty
(
hidden
=
true
)
private
String
sessionKey
;
// 存储sessionKey,异常补退使用
@ApiModelProperty
(
hidden
=
true
)
...
...
order-application-service/src/main/java/cn/freemud/enums/OrderAccountType.java
View file @
d9646b66
...
...
@@ -26,7 +26,9 @@ public enum OrderAccountType {
BUYM_SENDN
(
24
,
"买M赠N"
),
CUSTOMER_SUB
(
4
,
"积分扣减"
),
CARD_ORIGINAL_AMOUNT
(
25
,
"会员卡原价"
),
CARD_DISCOUNT_AMOUNT
(
26
,
"会员卡优惠金额"
);
CARD_DISCOUNT_AMOUNT
(
26
,
"会员卡优惠金额"
),
BUY3_SEND1
(
35
,
"买三赠1券"
),
;
private
Integer
code
;
private
String
desc
;
...
...
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
View file @
d9646b66
...
...
@@ -91,7 +91,9 @@ import com.freemud.sdk.api.assortment.message.enums.MessageEventType;
import
com.freemud.sdk.api.assortment.message.request.MessagePushOrderTemplateRequest
;
import
com.freemud.sdk.api.assortment.message.request.MessageTemplateRequest
;
import
com.freemud.sdk.api.assortment.message.service.IMessageTemplatePushService
;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType
;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderType
;
import
com.freemud.sdk.api.assortment.order.enums.QueryOrderAccountType
;
import
com.freemud.sdk.api.assortment.order.request.order.*
;
import
com.freemud.sdk.api.assortment.order.response.order.*
;
import
com.freemud.sdk.api.assortment.order.response.payment.OrderPayResponse
;
...
...
@@ -808,6 +810,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
OrderExtInfoDto
orderExtInfoDto
=
null
;
String
wxappid
=
""
;
String
sessionId
=
""
;
String
thirdPartyMemberId
=
""
;
// String openid = "";
// String ruleId = "";
String
payCode
=
""
;
...
...
@@ -817,6 +820,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
// openid = orderExtInfoDto.getOpenid();
wxappid
=
orderExtInfoDto
.
getAppid
();
sessionId
=
orderExtInfoDto
.
getSessionId
();
thirdPartyMemberId
=
orderExtInfoDto
.
getThirdPartyMemberId
();
// ruleId = orderExtInfoDto.getRuleId();
}
if
(
orderExtInfoDto
!=
null
&&
StringUtils
.
isNotBlank
(
orderExtInfoDto
.
getPayCode
())
...
...
@@ -830,7 +834,10 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
// }
//麦咖啡随单购咖啡月卡
withOrderBuyCoupon
(
orderBean
,
sessionId
);
withOrderBuyCoupon
(
orderBean
,
thirdPartyMemberId
);
//麦咖啡随单购买三赠一券
withOrderBuyBuy3Send1Coupon
(
orderBean
,
thirdPartyMemberId
);
// 如果是到店,则冻结优惠券
// 如果是外卖,则核销优惠券
...
...
@@ -1399,47 +1406,16 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
}
/**
* 开通会员卡
*
* @param partnerId 商户号
* @param ruleId 会员规则ID
* @param oid 订单号
* @param userId 用户ID
*/
private
void
activateMemberCard
(
String
partnerId
,
String
ruleId
,
String
oid
,
String
userId
)
{
PurchasePaidRequestDto
purchasePaidRequestDto
=
new
PurchasePaidRequestDto
();
purchasePaidRequestDto
.
setPartnerId
(
partnerId
);
purchasePaidRequestDto
.
setOperatorType
(
0
);
purchasePaidRequestDto
.
setRuleId
(
ruleId
);
purchasePaidRequestDto
.
setOrderId
(
oid
);
purchasePaidRequestDto
.
setMemberId
(
userId
);
// 尝试三次开通会员卡,中途成功则跳出
int
count
=
3
;
for
(
int
i
=
1
;
i
<=
count
;
i
++)
{
BaseResponse
baseResponse
=
customerApplicationClient
.
purchasePaid
(
purchasePaidRequestDto
);
// 不以响应码为判断是否开通会员卡成功的标准
if
(
baseResponse
!=
null
&&
"SUCCESS"
.
equals
(
baseResponse
.
getResult
()))
{
break
;
}
// 尝试开通会员卡失败三次
if
(
i
>=
count
)
{
LogUtil
.
error
(
"尝试开通会员卡失败"
+
count
+
"次"
,
JSON
.
toJSONString
(
purchasePaidRequestDto
),
JSON
.
toJSONString
(
baseResponse
));
}
}
}
/**
* 随单购月卡调会员发券与更新订单使用的优惠券与买的优惠券
* @param orderBean
*/
private
void
withOrderBuyCoupon
(
QueryOrdersResponseDto
.
DataBean
.
OrderBean
orderBean
,
String
sessionId
){
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
=
customerInfoManager
.
getCustomerInfoByObject
(
sessionId
);
private
void
withOrderBuyCoupon
(
QueryOrdersResponseDto
.
DataBean
.
OrderBean
orderBean
,
String
thirdPartyMemberId
){
try
{
boolean
isWithOrderBuyCoupon
=
false
;
if
(
CollectionUtils
.
isNotEmpty
(
orderBean
.
getOrderCostDetailList
())){
for
(
OrderCostResp
accountBean
:
orderBean
.
getOrderCostDetailList
()){
if
(
accountBean
.
getCostType
()
==
10
){
for
(
OrderCostResp
orderCostResp
:
orderBean
.
getOrderCostDetailList
()){
if
(
orderCostResp
.
getCostType
()
==
10
){
isWithOrderBuyCoupon
=
true
;
}
}
...
...
@@ -1454,10 +1430,10 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
SendCouponForqujiaRequestDto
request
=
new
SendCouponForqujiaRequestDto
();
request
.
setReceivedId
(
orderBean
.
getOid
());
request
.
setCardIds
(
Arrays
.
asList
(
cardId
));
request
.
setThirdPartyMemberId
(
assortmentCustomerInfoVo
.
getThirdPartyMemberID
()
);
request
.
setThirdPartyMemberId
(
thirdPartyMemberId
);
SendCouponForqujiaDtoResponseDto
responseDto
=
customerExtendClient
.
sendCouponForqujia
(
request
);
if
(!
Objects
.
equals
(
responseDto
.
getCode
(),
ResponseResult
.
SUCCESS
.
getCode
())){
LogUtil
.
error
(
"sendCouponForqujia"
,
JSON
.
toJSONString
(
request
),
JSON
.
toJSONString
(
responseDto
),
null
);
LogUtil
.
error
(
"sendCouponForqujia
suidangou
"
,
JSON
.
toJSONString
(
request
),
JSON
.
toJSONString
(
responseDto
),
null
);
return
;
}
...
...
@@ -1482,6 +1458,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
UpdateCouponCodeReq
req
=
new
UpdateCouponCodeReq
();
req
.
setCouponCode
(
buyCouponCode
);
req
.
setCostType
(
OldOrderAccountType
.
WITH_ORDER_BUY_COUPON_FEE
.
getCode
());
if
(
useDiscount
){
req
.
setOldCouponCode
(
notBuyCouponCode
);
}
...
...
@@ -1501,4 +1478,78 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
}
}
/**
* 随单购买三赠一券调会员发券与更新订单使用的优惠券与买的优惠券
* @param orderBean
*/
private
void
withOrderBuyBuy3Send1Coupon
(
QueryOrdersResponseDto
.
DataBean
.
OrderBean
orderBean
,
String
thirdPartyMemberId
){
try
{
String
extInfo
=
""
;
if
(
CollectionUtils
.
isNotEmpty
(
orderBean
.
getOrderCostDetailList
())){
for
(
OrderCostResp
orderCostResp
:
orderBean
.
getOrderCostDetailList
()){
if
(
orderCostResp
.
getCostType
()
==
11
){
extInfo
=
orderCostResp
.
getExtInfo
();
}
}
}
if
(
StringUtils
.
isBlank
(
extInfo
)){
return
;
}
JSONObject
jsonObject
=
JSON
.
parseObject
(
extInfo
);
String
buyThreeGiveOneActivityCode
=
jsonObject
.
getString
(
"buyThreeGiveOneActivityCode"
);
SendCouponForqujiaRequestDto
request
=
new
SendCouponForqujiaRequestDto
();
request
.
setReceivedId
(
orderBean
.
getOid
());
request
.
setCardIds
(
Arrays
.
asList
(
buyThreeGiveOneActivityCode
));
request
.
setThirdPartyMemberId
(
thirdPartyMemberId
);
SendCouponForqujiaDtoResponseDto
responseDto
=
customerExtendClient
.
sendCouponForqujia
(
request
);
if
(!
Objects
.
equals
(
responseDto
.
getCode
(),
ResponseResult
.
SUCCESS
.
getCode
())){
LogUtil
.
error
(
"sendCouponForqujia buy3send1"
,
JSON
.
toJSONString
(
request
),
JSON
.
toJSONString
(
responseDto
),
null
);
return
;
}
if
(
responseDto
.
getData
()
==
null
||
CollectionUtils
.
isEmpty
(
responseDto
.
getData
().
getCard_list
())){
return
;
}
String
buyCouponCode
=
responseDto
.
getData
().
getCard_list
().
get
(
0
).
getCard_code
();
boolean
useDiscount
=
false
;
String
buyThreeGiveOneCouponCode
=
jsonObject
.
getString
(
"buyThreeGiveOneCouponCode"
);
if
(
CollectionUtils
.
isNotEmpty
(
orderBean
.
getProductList
())){
for
(
QueryOrdersResponseDto
.
DataBean
.
OrderBean
.
ProductBean
productBean
:
orderBean
.
getProductList
()){
if
(
CollectionUtils
.
isNotEmpty
(
productBean
.
getDiscountList
())){
for
(
QueryOrdersResponseDto
.
DataBean
.
OrderBean
.
ProductBean
.
ProductDiscount
discount
:
productBean
.
getDiscountList
()){
if
(
buyThreeGiveOneCouponCode
.
equals
(
discount
.
getDiscountId
())){
discount
.
setDiscountId
(
buyCouponCode
);
useDiscount
=
true
;
}
}
}
}
}
UpdateCouponCodeReq
req
=
new
UpdateCouponCodeReq
();
req
.
setCouponCode
(
buyCouponCode
);
req
.
setCostType
(
OldOrderAccountType
.
WITH_ORDER_BUY3_SEND1_FEE
.
getCode
());
if
(
useDiscount
){
req
.
setOldCouponCode
(
buyThreeGiveOneCouponCode
);
}
req
.
setOrderCode
(
orderBean
.
getOid
());
orderSdkService
.
updateCostCouponCode
(
req
,
LogTreadLocal
.
getTrackingNo
());
List
<
OrderBean
.
AccountBean
>
accountList
=
orderBean
.
getAccountList
().
stream
().
filter
(
account
->
(
withOrderBuyCouponCode
.
equals
(
account
.
getAccountId
()))
).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
accountList
))
{
accountList
.
forEach
(
o
->
o
.
setAccountId
(
buyCouponCode
));
}
}
catch
(
Exception
e
){
LogUtil
.
error
(
"买券异常"
,
null
,
null
,
e
);
}
}
}
order-application-service/src/main/java/cn/freemud/service/mccafe/impl/CouponClientServiceImpl.java
View file @
d9646b66
...
...
@@ -74,8 +74,9 @@ public class CouponClientServiceImpl implements CouponClientService {
account
->
(
orderAdapter
.
getQueryOrderAccountType
(
OldOrderAccountType
.
getByCode
(
account
.
getType
())).
equals
(
QueryOrderAccountType
.
COUPON
)
||
orderAdapter
.
getQueryOrderAccountType
(
OldOrderAccountType
.
getByCode
(
account
.
getType
())).
equals
(
QueryOrderAccountType
.
PRODUCT_COUPON
)
||
orderAdapter
.
getQueryOrderAccountType
(
OldOrderAccountType
.
getByCode
(
account
.
getType
())).
equals
(
QueryOrderAccountType
.
DISCOUNT_COUPON
)
||
orderAdapter
.
getQueryOrderAccountType
(
OldOrderAccountType
.
getByCode
(
account
.
getType
())).
equals
(
QueryOrderAccountType
.
FREIGHT_COUPON
))
).
collect
(
Collectors
.
toList
());
||
orderAdapter
.
getQueryOrderAccountType
(
OldOrderAccountType
.
getByCode
(
account
.
getType
())).
equals
(
QueryOrderAccountType
.
FREIGHT_COUPON
)
||
orderAdapter
.
getQueryOrderAccountType
(
OldOrderAccountType
.
getByCode
(
account
.
getType
())).
equals
(
QueryOrderAccountType
.
BUY3_SEND1
)
)).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isEmpty
(
accountList
))
{
return
null
;
}
...
...
@@ -146,7 +147,8 @@ public class CouponClientServiceImpl implements CouponClientService {
account
->
(
OldOrderAccountType
.
PRODUCT_COUPON
.
equals
(
OldOrderAccountType
.
getByCode
(
account
.
getType
()))
||
OldOrderAccountType
.
COUPON
.
equals
(
OldOrderAccountType
.
getByCode
(
account
.
getType
()))
||
OldOrderAccountType
.
DISCOUNT_COUPON
.
equals
(
OldOrderAccountType
.
getByCode
(
account
.
getType
()))
)
&&
account
.
getPrice
()
!=
0
l
).
collect
(
Collectors
.
toList
());
||
OldOrderAccountType
.
BUY3_SEND1
.
equals
(
OldOrderAccountType
.
getByCode
(
account
.
getType
()))
)).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isEmpty
(
accountList
))
{
return
null
;
}
...
...
order-management/src/main/java/cn/freemud/management/adapter/McCafeCouponAdapter.java
View file @
d9646b66
...
...
@@ -91,15 +91,8 @@ public class McCafeCouponAdapter {
}
MCCafeProductRedeemVo
mcCafeProductRedeemVo
=
new
MCCafeProductRedeemVo
();
mcCafeProductRedeemVo
.
setPid
(
pid
);
String
extInfo
=
productDiscount
.
getAddInfo
();
Integer
extendType
=
StringUtils
.
isBlank
(
extInfo
)?
null
:
JSON
.
parseObject
(
extInfo
).
getInteger
(
"extendType"
);
if
(
extendType
!=
null
&&
extendType
==
4
)
{
mcCafeProductRedeemVo
.
setKeyProductCode
(
JSON
.
parseObject
(
extInfo
).
getString
(
"tenderId"
));
mcCafeProductRedeemVo
.
setCustomer_code
(
JSON
.
parseObject
(
extInfo
).
getString
(
"tenderId"
));
}
else
{
mcCafeProductRedeemVo
.
setKeyProductCode
(
productBean
.
getCustomerCode
());
mcCafeProductRedeemVo
.
setCustomer_code
(
productBean
.
getCustomerCode
());
}
mcCafeProductRedeemVo
.
setConsume_num
(
productDiscount
.
getDiscountQty
());
mcCafeProductRedeemVo
.
setSeq
(
i
+
1
);
if
(
null
!=
coupon
&&
CollectionUtils
.
isNotEmpty
(
coupon
.
getCodeInfo
().
getGroups
()))
{
...
...
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/UpdateCouponCodeReq.java
View file @
d9646b66
...
...
@@ -25,4 +25,6 @@ public class UpdateCouponCodeReq {
//配置券号
private
String
oldCouponCode
;
private
Integer
costType
;
}
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/create/OrderCostCreateReq.java
View file @
d9646b66
...
...
@@ -41,4 +41,6 @@ public class OrderCostCreateReq {
private
Long
actualCostAmount
;
private
String
extInfo
;
}
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/response/orderInfo/OrderCostResp.java
View file @
d9646b66
...
...
@@ -45,4 +45,6 @@ public class OrderCostResp {
//备注
private
String
note
;
private
String
extInfo
;
}
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