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
1d43b0e1
Commit
1d43b0e1
authored
Jan 19, 2021
by
徐康
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
麦咖啡多条优惠购买和使用
parent
d9e48f75
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
104 additions
and
63 deletions
+104
-63
assortment-ordercenter-sdk/pom.xml
+1
-1
order-application-service/pom.xml
+1
-1
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
+34
-28
order-application-service/src/main/java/cn/freemud/service/impl/CheckMCCafeOrder.java
+1
-1
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
+54
-26
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+1
-2
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/enums/ProductTypeEnum.java
+8
-4
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/UpdateCouponCodeReq.java
+4
-0
No files found.
assortment-ordercenter-sdk/pom.xml
View file @
1d43b0e1
...
...
@@ -10,7 +10,7 @@
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
assortment-ordercenter-sdk
</artifactId>
<version>
2.2.3
1
-SNAPSHOT
</version>
<version>
2.2.3
2
-SNAPSHOT
</version>
<dependencies>
<dependency>
<groupId>
org.springframework.boot
</groupId>
...
...
order-application-service/pom.xml
View file @
1d43b0e1
...
...
@@ -46,7 +46,7 @@
<dependency>
<groupId>
cn.freemud
</groupId>
<artifactId>
assortment-ordercenter-sdk
</artifactId>
<version>
2.2.3
1
-SNAPSHOT
</version>
<version>
2.2.3
2
-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
com.freemud.application.service.sdk
</groupId>
...
...
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
View file @
1d43b0e1
...
...
@@ -172,6 +172,15 @@ public class OrderAdapter {
List
<
ActivityDiscountsDto
>
activityDiscountsDtos
=
shoppingCartGoodsDto
.
getActivityDiscountsDtos
();
List
<
CreateOrderProductRequest
>
products
=
new
ArrayList
<>();
//随单购商品
if
(
null
!=
shoppingCartGoodsDto
.
getPayCardFee
()
&&
0
l
!=
shoppingCartGoodsDto
.
getPayCardFee
()
&&
StringUtils
.
isNotBlank
(
createOrderVo
.
getCardKeyCode
()))
{
products
.
add
(
getMcCafeWithOrderVirtualProduct
(
shoppingCartGoodsDto
,
createOrderVo
));
}
// Set<String> withOrderBuyCouponCodeSet = new HashSet<>();
// withOrderBuyCouponCodeSet.add(withOrderBuyCouponCode);
// cartGoodsDetailDtos.stream().filter(o -> ProductTypeEnum.getVirtualProductType().contains(o.getProductType())).map(o -> withOrderBuyCouponCodeSet.add(o.getMonthCardInfo().getCardCode()));
// 根据购物车商品信息获取优惠信息
int
orderAccountIndex
=
0
;
for
(
ShoppingCartGoodsDto
.
CartGoodsDetailDto
cartGoodsDetailDto
:
cartGoodsDetailDtos
)
{
...
...
@@ -196,34 +205,6 @@ public class OrderAdapter {
}
}
}
if
(
null
!=
shoppingCartGoodsDto
.
getPayCardFee
()
&&
0
l
!=
shoppingCartGoodsDto
.
getPayCardFee
()
&&
StringUtils
.
isNotBlank
(
createOrderVo
.
getCardKeyCode
()))
{
CreateOrderProductRequest
createOrderProductDemoDto
=
new
CreateOrderProductRequest
();
createOrderProductDemoDto
.
setProductId
(
mccafeMonthCardGoodsId
);
createOrderProductDemoDto
.
setProductName
(
"啡常月享卡"
);
createOrderProductDemoDto
.
setSpecification
(
mccafeMonthCardGoodsId
);
createOrderProductDemoDto
.
setSpecificationName
(
"啡常月享卡"
);
createOrderProductDemoDto
.
setPrice
(
shoppingCartGoodsDto
.
getPayCardFee
());
createOrderProductDemoDto
.
setSalePrice
(
shoppingCartGoodsDto
.
getPayCardFee
());
createOrderProductDemoDto
.
setTotalDiscountAmount
(
0
l
);
createOrderProductDemoDto
.
setNumber
(
1
);
createOrderProductDemoDto
.
setProductType
(
ProductTypeEnum
.
WITH_ORDER_VIRTUAL_PRODUCT
.
getCode
());
createOrderProductDemoDto
.
setParentProductId
(
"0"
);
createOrderProductDemoDto
.
setIsFixedProduct
(
null
);
createOrderProductDemoDto
.
setCustomerCode
(
createOrderVo
.
getCardKeyCode
());
createOrderProductDemoDto
.
setProductCode
(
createOrderVo
.
getCardKeyCode
());
createOrderProductDemoDto
.
setHasStockProudct
(
false
);
createOrderProductDemoDto
.
setWeight
(
0
d
);
createOrderProductDemoDto
.
setStapleFood
(
0
);
createOrderProductDemoDto
.
setTax
(
0
d
);
createOrderProductDemoDto
.
setTaxId
(
""
);
createOrderProductDemoDto
.
setCardId
(
withOrderBuyCardId
);
createOrderProductDemoDto
.
setCardCode
(
withOrderBuyCouponCode
);
if
(
ProductTypeEnum
.
TABLEWARE_PRODUCT
.
getCode
().
equals
(
products
.
get
(
products
.
size
()-
1
).
getProductType
()))
{
products
.
add
(
products
.
size
()-
1
,
createOrderProductDemoDto
);
}
else
{
products
.
add
(
createOrderProductDemoDto
);
}
}
createOrderDto
.
setProducts
(
products
);
boolean
hasDeliveryMonthCard
=
false
;
...
...
@@ -2551,6 +2532,31 @@ public class OrderAdapter {
return
createOrderProductDemoDto
;
}
public
CreateOrderProductRequest
getMcCafeWithOrderVirtualProduct
(
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
CreateOrderVo
createOrderVo
)
{
CreateOrderProductRequest
createOrderProductDemoDto
=
new
CreateOrderProductRequest
();
createOrderProductDemoDto
.
setProductId
(
mccafeMonthCardGoodsId
);
createOrderProductDemoDto
.
setProductName
(
"啡常月享卡"
);
createOrderProductDemoDto
.
setSpecification
(
mccafeMonthCardGoodsId
);
createOrderProductDemoDto
.
setSpecificationName
(
"啡常月享卡"
);
createOrderProductDemoDto
.
setPrice
(
shoppingCartGoodsDto
.
getPayCardFee
());
createOrderProductDemoDto
.
setSalePrice
(
shoppingCartGoodsDto
.
getPayCardFee
());
createOrderProductDemoDto
.
setTotalDiscountAmount
(
0
l
);
createOrderProductDemoDto
.
setNumber
(
1
);
createOrderProductDemoDto
.
setProductType
(
ProductTypeEnum
.
WITH_ORDER_VIRTUAL_PRODUCT
.
getCode
());
createOrderProductDemoDto
.
setParentProductId
(
"0"
);
createOrderProductDemoDto
.
setIsFixedProduct
(
null
);
createOrderProductDemoDto
.
setCustomerCode
(
createOrderVo
.
getCardKeyCode
());
createOrderProductDemoDto
.
setProductCode
(
createOrderVo
.
getCardKeyCode
());
createOrderProductDemoDto
.
setHasStockProudct
(
false
);
createOrderProductDemoDto
.
setWeight
(
0
d
);
createOrderProductDemoDto
.
setStapleFood
(
0
);
createOrderProductDemoDto
.
setTax
(
0
d
);
createOrderProductDemoDto
.
setTaxId
(
""
);
createOrderProductDemoDto
.
setCardId
(
withOrderBuyCardId
);
createOrderProductDemoDto
.
setCardCode
(
withOrderBuyCouponCode
);
return
createOrderProductDemoDto
;
}
/**
* 将促销的枚举 ActivityTypeEnum 和orderAccountType 关联映射
*/
...
...
order-application-service/src/main/java/cn/freemud/service/impl/CheckMCCafeOrder.java
View file @
1d43b0e1
...
...
@@ -486,7 +486,7 @@ public class CheckMCCafeOrder {
if
(
"remove"
.
equals
(
createOrderVo
.
getCouponCode
()))
{
createOrderVo
.
setCouponCode
(
""
);
}
if
(
"remove"
.
equals
(
createOrderVo
.
getFreightCouponCode
()))
{
if
(
"re
cardNo
move"
.
equals
(
createOrderVo
.
getFreightCouponCode
()))
{
createOrderVo
.
setFreightCouponCode
(
""
);
}
if
(
StringUtils
.
isNotBlank
(
createOrderVo
.
getCouponCode
()))
{
...
...
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
View file @
1d43b0e1
...
...
@@ -119,6 +119,7 @@ import com.google.common.collect.Maps;
import
com.google.gson.Gson
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.MapUtils
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -162,7 +163,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
@Autowired
private
FMAssistantCloudPrintClient
fmAssistantCloudPrintClient
;
@Autowired
private
MessageCenterClient
messageNoticeClient
;
private
OrderServiceImpl
orderService
;
@Autowired
private
PromotionActivityClient
promotionActivityClient
;
@Autowired
...
...
@@ -844,7 +845,9 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
// }
//麦咖啡随单购咖啡月卡
withOrderBuyCoupon
(
orderBean
,
orderExtInfoDto
.
getThirdPartyMemberId
());
if
(
withOrderBuyCoupon
(
orderBean
,
orderExtInfoDto
.
getThirdPartyMemberId
()))
{
orderBean
=
getOrderBean
(
confirmOrderDto
);
}
// 如果是到店,则冻结优惠券
// 如果是外卖,则核销优惠券
...
...
@@ -1005,6 +1008,12 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
return
sendPaySuccessNoticeMessage
();
}
private
QueryOrdersResponseDto
.
DataBean
.
OrderBean
getOrderBean
(
ConfirmOrderDto
confirmOrderDto
)
{
Map
<
String
,
QueryOrdersResponseDto
.
DataBean
.
OrderBean
>
orderBeans
=
orderService
.
getOrderBeanByOrderId
(
confirmOrderDto
.
getOrderId
());
log
.
info
(
"从缓存重新获取数据:"
,
confirmOrderDto
.
getOrderId
(),
orderBeans
);
return
orderBeans
.
get
(
OrderBeanType
.
SAASORDER
.
getCode
());
}
/**
* 创建配送单一车 -> 更新订单为异常单
*
...
...
@@ -1526,21 +1535,22 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
* 随单购月卡调会员发券与更新订单使用的优惠券与买的优惠券
* @param orderBean
*/
private
void
withOrderBuyCoupon
(
QueryOrdersResponseDto
.
DataBean
.
OrderBean
orderBean
,
String
thirdPartyMemberId
){
private
boolean
withOrderBuyCoupon
(
QueryOrdersResponseDto
.
DataBean
.
OrderBean
orderBean
,
String
thirdPartyMemberId
){
try
{
List
<
String
>
cardIds
=
new
ArrayList
<>();
List
<
String
>
defaultCardCodes
=
new
ArrayList
<>();
for
(
OrderBean
.
ProductBean
productBean
:
orderBean
.
getProductList
()){
if
(
ProductTypeEnum
.
VIRTUAL_PRODUCT
.
getCode
().
equals
(
productBean
.
getProductType
())
||
ProductTypeEnum
.
WITH_ORDER_VIRTUAL_PRODUCT
.
getCode
().
equals
(
productBean
.
getProductType
()))
{
if
(
ProductTypeEnum
.
getVirtualProductType
().
contains
(
productBean
.
getProductType
()))
{
OrderProductAddInfoDto
extInfo
=
JSON
.
parseObject
(
productBean
.
getExtInfo
(),
OrderProductAddInfoDto
.
class
);
cardIds
.
add
(
extInfo
.
getCardId
());
for
(
int
i
=
0
;
i
<
productBean
.
getNumber
();
i
++)
{
cardIds
.
add
(
extInfo
.
getCardId
());
}
defaultCardCodes
.
add
(
extInfo
.
getCardCode
());
}
}
if
(
CollectionUtils
.
isEmpty
(
cardIds
)){
return
;
return
false
;
}
SendCouponForqujiaRequestDto
request
=
new
SendCouponForqujiaRequestDto
();
...
...
@@ -1550,54 +1560,72 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
SendCouponForqujiaDtoResponseDto
responseDto
=
customerExtendClient
.
sendCouponForqujia
(
request
);
if
(!
Objects
.
equals
(
responseDto
.
getCode
(),
ResponseResult
.
SUCCESS
.
getCode
())){
LogUtil
.
error
(
"sendCouponForqujia"
,
JSON
.
toJSONString
(
request
),
JSON
.
toJSONString
(
responseDto
));
return
;
return
false
;
}
if
(
responseDto
.
getData
()
==
null
||
CollectionUtils
.
isEmpty
(
responseDto
.
getData
().
getCard_list
())){
return
;
return
false
;
}
//目前只有月享卡,所以只发一张
SendCouponForqujiaDtoResponseDto
.
Card
card
=
responseDto
.
getData
().
getCard_list
().
get
(
0
);
List
<
SendCouponForqujiaDtoResponseDto
.
Card
>
cardList
=
responseDto
.
getData
().
getCard_list
();
Map
<
String
,
List
<
SendCouponForqujiaDtoResponseDto
.
Card
>>
cardMap
=
new
HashMap
<>();
UpdateCouponCodeReq
req
=
new
UpdateCouponCodeReq
();
req
.
setOrderCode
(
orderBean
.
getOid
());
req
.
setCouponReceiveInfoList
(
new
ArrayList
<>());
req
.
setCouponUpdateInfoList
(
new
ArrayList
<>());
log
.
info
(
"准备开始生成参数:"
,
orderBean
);
for
(
QueryOrdersResponseDto
.
DataBean
.
OrderBean
.
ProductBean
productBean
:
orderBean
.
getProductList
())
{
if
(
ProductTypeEnum
.
VIRTUAL_PRODUCT
.
getCode
().
equals
(
productBean
.
getProductType
())
||
ProductTypeEnum
.
WITH_ORDER_VIRTUAL_PRODUCT
.
getCode
().
equals
(
productBean
.
getProductType
()))
{
if
(
ProductTypeEnum
.
getVirtualProductType
().
contains
(
productBean
.
getProductType
()))
{
UpdateCouponCodeReq
.
CouponReceiveInfo
couponReceiveInfo
=
new
UpdateCouponCodeReq
.
CouponReceiveInfo
();
couponReceiveInfo
.
setGoodsId
(
productBean
.
getSpecification
());
// OrderProductAddInfoDto extInfo = JSON.parseObject(productBean.getExtInfo(), OrderProductAddInfoDto.class);
//暂时写死为发的唯一的券
couponReceiveInfo
.
setCouponCode
(
card
.
getCard_code
());
couponReceiveInfo
.
setProductSeq
(
productBean
.
getSequence
());
OrderProductAddInfoDto
extInfo
=
JSON
.
parseObject
(
productBean
.
getExtInfo
(),
OrderProductAddInfoDto
.
class
);
String
cardCodeStr
=
""
;
for
(
int
j
=
0
;
j
<
productBean
.
getNumber
();
j
++)
{
for
(
int
i
=
0
;
i
<
cardList
.
size
();
i
++)
{
if
(
cardList
.
get
(
i
).
getCard_id
().
equals
(
extInfo
.
getCardId
()))
{
cardCodeStr
+=
cardList
.
get
(
i
).
getCard_code
()+
"/"
;
if
(
CollectionUtils
.
isEmpty
(
cardMap
.
get
(
extInfo
.
getCardCode
())))
{
cardMap
.
put
(
extInfo
.
getCardCode
(),
Arrays
.
asList
(
cardList
.
get
(
i
)));
}
else
{
cardMap
.
get
(
extInfo
.
getCardCode
()).
add
(
cardList
.
get
(
i
));
}
cardList
.
remove
(
i
);
break
;
}
}
}
couponReceiveInfo
.
setCouponCode
(
cardCodeStr
.
substring
(
0
,
cardCodeStr
.
length
()-
1
));
req
.
getCouponReceiveInfoList
().
add
(
couponReceiveInfo
);
}
else
if
(
CollectionUtils
.
isNotEmpty
(
productBean
.
getDiscountList
()))
{
for
(
QueryOrdersResponseDto
.
DataBean
.
OrderBean
.
ProductBean
.
ProductDiscount
discount
:
productBean
.
getDiscountList
())
{
if
(
defaultCardCodes
.
contains
(
discount
.
getDiscountId
()))
{
UpdateCouponCodeReq
.
CouponUpdateInfo
couponUpdateInfo
=
new
UpdateCouponCodeReq
.
CouponUpdateInfo
();
//暂时写死为唯一发的券
couponUpdateInfo
.
setCouponCode
(
card
.
getCard_code
());
couponUpdateInfo
.
setProductSeq
(
productBean
.
getSequence
());
List
<
SendCouponForqujiaDtoResponseDto
.
Card
>
list
=
cardMap
.
get
(
discount
.
getDiscountId
());
if
(
CollectionUtils
.
isEmpty
(
list
))
{
continue
;
}
//暂时默认使用第一个,后续改成查询有效的那个再使用
couponUpdateInfo
.
setCouponCode
(
list
.
get
(
0
).
getCard_code
());
list
.
remove
(
0
);
couponUpdateInfo
.
setOldCouponCode
(
discount
.
getDiscountId
());
req
.
getCouponUpdateInfoList
().
add
(
couponUpdateInfo
);
discount
.
setDiscountId
(
card
.
getCard_code
());
}
}
}
}
log
.
info
(
"生成参数完成:"
,
req
);
orderSdkService
.
updateCostCouponCode
(
req
,
LogTreadLocal
.
getTrackingNo
());
//暂时统一写死为唯一发的券
List
<
OrderBean
.
AccountBean
>
accountList
=
orderBean
.
getAccountList
().
stream
().
filter
(
account
->
(
defaultCardCodes
.
equals
(
account
.
getAccountId
()))
).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
accountList
))
{
accountList
.
forEach
(
o
->
o
.
setAccountId
(
card
.
getCard_id
()));
}
return
true
;
}
catch
(
Exception
e
){
LogUtil
.
error
(
"买券异常"
,
null
,
null
,
e
);
}
return
true
;
}
}
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
1d43b0e1
...
...
@@ -1582,8 +1582,7 @@ public class OrderServiceImpl implements Orderservice {
.
map
(
McCafeOrderTypeGather:
:
getDesc
).
orElse
(
""
));
queryOrderResponseVo
.
setIsCouponOrder
(
queryOrderResponseVo
.
getProducts
().
stream
()
.
filter
(
o
->
!
ProductTypeEnum
.
VIRTUAL_PRODUCT
.
getCode
().
equals
(
o
.
getProductType
())
&&
!
ProductTypeEnum
.
WITH_ORDER_VIRTUAL_PRODUCT
.
getCode
().
equals
(
o
.
getProductType
())).
findAny
().
isPresent
()?
0
:
1
);
.
filter
(
o
->
!
ProductTypeEnum
.
getVirtualProductType
().
contains
(
o
.
getProductType
())).
findAny
().
isPresent
()?
0
:
1
);
//48小时自动退款描述
if
(
storeInfo
!=
null
&&
storeInfo
.
getBizVO
()
!=
null
&&
storeInfo
.
getBizVO
().
getStoreConfig
()
!=
null
...
...
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/enums/ProductTypeEnum.java
View file @
1d43b0e1
package
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
enums
;
import
java.util.Arrays
;
import
java.util.List
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
...
...
@@ -11,7 +14,7 @@ package com.freemud.application.sdk.api.ordercenter.enums;
* @Copyright: ${DATE.YARE} www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
public
enum
ProductTypeEnum
{
public
enum
ProductTypeEnum
{
GENERAL_PRODUCT
(
1
,
"普通商品"
),
...
...
@@ -29,8 +32,12 @@ public enum ProductTypeEnum {
;
public
static
List
<
Integer
>
getVirtualProductType
()
{
return
Arrays
.
asList
(
VIRTUAL_PRODUCT
.
getCode
(),
WITH_ORDER_VIRTUAL_PRODUCT
.
getCode
());
}
private
Integer
code
;
private
String
msg
;
public
Integer
getCode
()
{
...
...
@@ -49,9 +56,6 @@ public enum ProductTypeEnum {
this
.
msg
=
msg
;
}
ProductTypeEnum
()
{
}
ProductTypeEnum
(
Integer
code
,
String
msg
)
{
this
.
code
=
code
;
this
.
msg
=
msg
;
...
...
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/UpdateCouponCodeReq.java
View file @
1d43b0e1
...
...
@@ -32,6 +32,8 @@ public class UpdateCouponCodeReq {
//发券券号
private
String
couponCode
;
private
Integer
productSeq
;
}
@Data
...
...
@@ -41,6 +43,8 @@ public class UpdateCouponCodeReq {
//配置券号
private
String
oldCouponCode
;
private
Integer
productSeq
;
}
}
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