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
ee5be573
Commit
ee5be573
authored
Mar 16, 2021
by
chongfu.liang
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature/20210305-【C端服务端】结算页查询我的优惠券信息-lcf'
parents
ed72a670
d318f0ec
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
207 additions
and
10 deletions
+207
-10
shopping-cart-application-service/src/main/java/cn/freemud/adapter/CouponAdapter.java
+1
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/GetMemberCouponListResponseDto.java
+6
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/ActivityCouponBean.java
+6
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/CouponPromotionVO.java
+1
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/ShoppingCartInfoRequestVo.java
+5
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/CouponService.java
+6
-1
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/CouponPromotionService.java
+7
-1
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/CouponServiceImpl.java
+119
-6
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
+50
-1
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/promotion/CouponSharingService.java
+5
-0
shopping-cart-application-service/src/test/java/cn.freemud/service/CouponServiceTest.java
+1
-1
No files found.
shopping-cart-application-service/src/main/java/cn/freemud/adapter/CouponAdapter.java
View file @
ee5be573
...
@@ -553,6 +553,7 @@ public class CouponAdapter {
...
@@ -553,6 +553,7 @@ public class CouponAdapter {
couponPromotionVO
.
setCouponCode
(
shoppingCartInfoRequestVo
.
getCouponCode
());
couponPromotionVO
.
setCouponCode
(
shoppingCartInfoRequestVo
.
getCouponCode
());
couponPromotionVO
.
setOrderType
(
shoppingCartInfoRequestVo
.
getOrderType
());
couponPromotionVO
.
setOrderType
(
shoppingCartInfoRequestVo
.
getOrderType
());
couponPromotionVO
.
setFlg
(
shoppingCartInfoRequestVo
.
getFlag
());
couponPromotionVO
.
setFlg
(
shoppingCartInfoRequestVo
.
getFlag
());
couponPromotionVO
.
setUnChooseCouponCode
(
shoppingCartInfoRequestVo
.
getUnChooseCouponCode
());
return
couponPromotionVO
;
return
couponPromotionVO
;
}
}
}
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/GetMemberCouponListResponseDto.java
View file @
ee5be573
...
@@ -129,6 +129,12 @@ public class GetMemberCouponListResponseDto {
...
@@ -129,6 +129,12 @@ public class GetMemberCouponListResponseDto {
* 商品信息(商品id)
* 商品信息(商品id)
*/
*/
private
List
<
String
>
activeProducts
;
private
List
<
String
>
activeProducts
;
/**
* 券图片地址
*/
private
String
logo
;
}
}
}
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/ActivityCouponBean.java
View file @
ee5be573
...
@@ -54,6 +54,12 @@ public class ActivityCouponBean {
...
@@ -54,6 +54,12 @@ public class ActivityCouponBean {
* 0-商品券 1-代金券 3-折扣券
* 0-商品券 1-代金券 3-折扣券
*/
*/
private
Integer
couponType
;
private
Integer
couponType
;
/**
* 券图片地址
*/
private
String
couponPic
;
/**
/**
* 日期描述
* 日期描述
*/
*/
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/CouponPromotionVO.java
View file @
ee5be573
...
@@ -22,4 +22,5 @@ public class CouponPromotionVO {
...
@@ -22,4 +22,5 @@ public class CouponPromotionVO {
private
String
couponCode
;
private
String
couponCode
;
private
Integer
flg
;
private
Integer
flg
;
private
Integer
orderType
;
private
Integer
orderType
;
private
String
unChooseCouponCode
;
}
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/ShoppingCartInfoRequestVo.java
View file @
ee5be573
...
@@ -61,6 +61,11 @@ public class ShoppingCartInfoRequestVo extends BaseRequestVo {
...
@@ -61,6 +61,11 @@ public class ShoppingCartInfoRequestVo extends BaseRequestVo {
private
String
couponCode
;
private
String
couponCode
;
/**
/**
* 取消选择的商品券
*/
private
String
unChooseCouponCode
;
/**
* 优惠券code列表
* 优惠券code列表
*/
*/
private
List
<
couponCode
>
couponCodes
;
private
List
<
couponCode
>
couponCodes
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/CouponService.java
View file @
ee5be573
...
@@ -80,7 +80,7 @@ public interface CouponService {
...
@@ -80,7 +80,7 @@ public interface CouponService {
* @param cartGoods
* @param cartGoods
* @return
* @return
*/
*/
ActivityClassifyCouponBean
availableCoupon
(
List
<
CartGoods
>
cartGoods
,
String
partnerId
,
String
userId
,
String
storeId
,
String
couponCode
,
boolean
hasGoodsCoupon
,
Integer
orderType
,
int
isNew
,
String
appId
,
String
MenuType
);
ActivityClassifyCouponBean
availableCoupon
(
List
<
CartGoods
>
cartGoods
,
String
partnerId
,
String
userId
,
String
storeId
,
String
couponCode
,
boolean
hasGoodsCoupon
,
Integer
orderType
,
int
isNew
,
String
appId
,
String
MenuType
,
String
unChooseCouponCode
);
/**
/**
* 获取卡券服务商户密钥
* 获取卡券服务商户密钥
...
@@ -102,6 +102,11 @@ public interface CouponService {
...
@@ -102,6 +102,11 @@ public interface CouponService {
CheckSpqInfoResponseDto
checkSpqInfo
(
CheckSpqInfoRequestDto
requestDto
,
String
goodsId
);
CheckSpqInfoResponseDto
checkSpqInfo
(
CheckSpqInfoRequestDto
requestDto
,
String
goodsId
);
GetProductsVo
getSpqProductInfo
(
CheckSpqInfoRequestDto
requestDto
);
GetProductsVo
getSpqProductInfo
(
CheckSpqInfoRequestDto
requestDto
,
String
goodsId
);
/**
/**
* 领券
* 领券
*
*
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/CouponPromotionService.java
View file @
ee5be573
...
@@ -59,7 +59,13 @@ public class CouponPromotionService implements IPromotionService {
...
@@ -59,7 +59,13 @@ public class CouponPromotionService implements IPromotionService {
List
<
CartGoods
>
tmpCartGoods
=
cartGoodsList
.
parallelStream
().
filter
(
k
->
(
k
.
getCartGoodsUid
()
List
<
CartGoods
>
tmpCartGoods
=
cartGoodsList
.
parallelStream
().
filter
(
k
->
(
k
.
getCartGoodsUid
()
.
startsWith
(
CommonsConstant
.
COUPON_PREFIX
)
||
StringUtils
.
isNotBlank
(
k
.
getCouponCode
()))).
collect
(
Collectors
.
toList
());
.
startsWith
(
CommonsConstant
.
COUPON_PREFIX
)
||
StringUtils
.
isNotBlank
(
k
.
getCouponCode
()))).
collect
(
Collectors
.
toList
());
// 是否存在商品券
// 是否存在商品券
String
chooseCouponCode
=
""
;
boolean
hasGoodssCoupon
=
CollectionUtils
.
isNotEmpty
(
tmpCartGoods
);
boolean
hasGoodssCoupon
=
CollectionUtils
.
isNotEmpty
(
tmpCartGoods
);
if
(
StringUtils
.
isBlank
(
couponPromotionVO
.
getUnChooseCouponCode
())
&&
hasGoodssCoupon
){
chooseCouponCode
=
tmpCartGoods
.
get
(
0
).
getGoodsId
().
substring
(
CommonsConstant
.
COUPON_PREFIX
.
length
());
}
else
{
chooseCouponCode
=
couponPromotionVO
.
getUnChooseCouponCode
();
}
// 构建可用不可用优惠券
// 构建可用不可用优惠券
ActivityClassifyCouponBean
activityClassifyCouponBean
=
couponService
.
availableCoupon
(
cartGoodsList
,
ActivityClassifyCouponBean
activityClassifyCouponBean
=
couponService
.
availableCoupon
(
cartGoodsList
,
couponPromotionVO
.
getPartnerId
(),
couponPromotionVO
.
getPartnerId
(),
...
@@ -69,7 +75,7 @@ public class CouponPromotionService implements IPromotionService {
...
@@ -69,7 +75,7 @@ public class CouponPromotionService implements IPromotionService {
hasGoodssCoupon
,
hasGoodssCoupon
,
couponPromotionVO
.
getOrderType
(),
couponPromotionVO
.
getOrderType
(),
0
,
0
,
shoppingCartInfoRequestVo
.
getAppId
(),
shoppingCartInfoRequestVo
.
getMenuType
()
);
shoppingCartInfoRequestVo
.
getAppId
(),
shoppingCartInfoRequestVo
.
getMenuType
()
,
chooseCouponCode
);
if
(
Objects
.
equals
(
activityClassifyCouponBean
,
null
))
{
if
(
Objects
.
equals
(
activityClassifyCouponBean
,
null
))
{
// 构建一个空得订单券信息
// 构建一个空得订单券信息
activityClassifyCouponBean
=
createEmptyActivityCouponBean
();
activityClassifyCouponBean
=
createEmptyActivityCouponBean
();
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/CouponServiceImpl.java
View file @
ee5be573
...
@@ -423,7 +423,7 @@ public class CouponServiceImpl implements CouponService {
...
@@ -423,7 +423,7 @@ public class CouponServiceImpl implements CouponService {
,
boolean
hasGoodsCoupon
,
boolean
hasGoodsCoupon
,
Integer
orderType
,
Integer
orderType
,
int
isNew
,
int
isNew
,
String
appId
,
String
menuType
)
{
,
String
appId
,
String
menuType
,
String
chooseCouponCode
)
{
GetMemberCouponListRequestDto
getMemberCouponListRequestDto
=
new
GetMemberCouponListRequestDto
(
partnerId
,
userId
);
GetMemberCouponListRequestDto
getMemberCouponListRequestDto
=
new
GetMemberCouponListRequestDto
(
partnerId
,
userId
);
getMemberCouponListRequestDto
.
setStatusFlags
(
Arrays
.
asList
(
CouponStatus
.
STATUS_0
.
getCode
(),
CouponStatus
.
STATUS_2
.
getCode
()));
getMemberCouponListRequestDto
.
setStatusFlags
(
Arrays
.
asList
(
CouponStatus
.
STATUS_0
.
getCode
(),
CouponStatus
.
STATUS_2
.
getCode
()));
getMemberCouponListRequestDto
.
setPageNum
(
1
);
getMemberCouponListRequestDto
.
setPageNum
(
1
);
...
@@ -454,17 +454,14 @@ public class CouponServiceImpl implements CouponService {
...
@@ -454,17 +454,14 @@ public class CouponServiceImpl implements CouponService {
Collectors
.
toMap
(
GetMemberCouponListResponseDto
.
Result
.
MemberCoupon
::
getCouponCode
,
a
->
a
,
(
k1
,
k2
)
->
k1
));
Collectors
.
toMap
(
GetMemberCouponListResponseDto
.
Result
.
MemberCoupon
::
getCouponCode
,
a
->
a
,
(
k1
,
k2
)
->
k1
));
List
<
String
>
couponCodes
=
Lists
.
newArrayList
();
List
<
String
>
couponCodes
=
Lists
.
newArrayList
();
memberCoupons
.
forEach
(
memberCoupon
->
{
memberCoupons
.
forEach
(
memberCoupon
->
{
if
(
Objects
.
equals
(
memberCoupon
.
getCouponType
(),
CouponTypeEnum
.
TYPE_1
.
getCode
())
||
Objects
.
equals
(
memberCoupon
.
getCouponType
(),
CouponTypeEnum
.
TYPE_3
.
getCode
()))
{
// 只筛选小于结束时间得券
// 只筛选小于结束时间得券
if
(
System
.
currentTimeMillis
()
<
DateUtil
.
convert2Date
(
memberCoupon
.
getEndTime
(),
DateUtil
.
FORMAT_YYYY_MM_DD_HHMMSS
).
getTime
())
{
if
(
System
.
currentTimeMillis
()
<
DateUtil
.
convert2Date
(
memberCoupon
.
getEndTime
(),
DateUtil
.
FORMAT_YYYY_MM_DD_HHMMSS
).
getTime
())
{
couponCodes
.
add
(
memberCoupon
.
getCouponCode
());
couponCodes
.
add
(
memberCoupon
.
getCouponCode
());
}
}
}
});
});
List
<
CouponStateVo
>
couponStateList
=
buildAvailiableCoupons
(
cartGoods
,
partnerId
,
storeId
,
couponCodes
,
isNew
,
appId
,
menuType
);
List
<
CouponStateVo
>
couponStateList
=
buildAvailiableCoupons
(
cartGoods
,
partnerId
,
storeId
,
couponCodes
,
isNew
,
appId
,
menuType
);
if
(
CollectionUtils
.
isNotEmpty
(
couponStateList
))
{
if
(
CollectionUtils
.
isNotEmpty
(
couponStateList
))
{
return
returnSuccessAvailiableCoupons
(
couponCode
,
hasGoodsCoupon
,
availableCouponResponseVo
,
usableCoupons
,
disableCoupons
,
memberCouponMap
,
couponStateList
);
return
returnSuccessAvailiableCoupons
(
couponCode
,
hasGoodsCoupon
,
availableCouponResponseVo
,
usableCoupons
,
disableCoupons
,
memberCouponMap
,
couponStateList
,
chooseCouponCode
);
}
}
return
null
;
return
null
;
}
}
...
@@ -518,7 +515,9 @@ public class CouponServiceImpl implements CouponService {
...
@@ -518,7 +515,9 @@ public class CouponServiceImpl implements CouponService {
return
couponStateList
;
return
couponStateList
;
}
}
private
ActivityClassifyCouponBean
returnSuccessAvailiableCoupons
(
String
couponCode
,
boolean
hasGoodsCoupon
,
ActivityClassifyCouponBean
availableCouponResponseVo
,
List
<
ActivityCouponBean
>
usableCoupons
,
List
<
ActivityCouponBean
>
disableCoupons
,
Map
<
String
,
GetMemberCouponListResponseDto
.
Result
.
MemberCoupon
>
memberCouponMap
,
List
<
CouponStateVo
>
couponStateList
)
{
private
ActivityClassifyCouponBean
returnSuccessAvailiableCoupons
(
String
couponCode
,
boolean
hasGoodsCoupon
,
ActivityClassifyCouponBean
availableCouponResponseVo
,
List
<
ActivityCouponBean
>
usableCoupons
,
List
<
ActivityCouponBean
>
disableCoupons
,
Map
<
String
,
GetMemberCouponListResponseDto
.
Result
.
MemberCoupon
>
memberCouponMap
,
List
<
CouponStateVo
>
couponStateList
,
String
chooseCouponCode
)
{
int
disableCouponNum
=
0
;
int
disableCouponNum
=
0
;
int
usableCouponNum
=
0
;
int
usableCouponNum
=
0
;
for
(
CouponStateVo
couponStateVo
:
couponStateList
)
{
for
(
CouponStateVo
couponStateVo
:
couponStateList
)
{
...
@@ -549,7 +548,16 @@ public class CouponServiceImpl implements CouponService {
...
@@ -549,7 +548,16 @@ public class CouponServiceImpl implements CouponService {
}
}
activityCouponBean
.
setThresholdDesc
(
"满"
+
formatAmount
((
couponStateVo
.
getMinAmount
()
==
null
?
0
:
couponStateVo
.
getMinAmount
())
*
1.00
/
100
)
+
"元可用"
);
activityCouponBean
.
setThresholdDesc
(
"满"
+
formatAmount
((
couponStateVo
.
getMinAmount
()
==
null
?
0
:
couponStateVo
.
getMinAmount
())
*
1.00
/
100
)
+
"元可用"
);
activityCouponBean
.
setActivityDesc
(
"不与其他活动优惠同时享受。"
);
activityCouponBean
.
setActivityDesc
(
"不与其他活动优惠同时享受。"
);
if
(
StringUtils
.
isNotBlank
(
couponStateVo
.
getMessage
())){
String
[]
split
=
couponStateVo
.
getMessage
().
split
(
","
);
if
(
split
!=
null
&&
split
.
length
>
0
){
activityCouponBean
.
setUnusedReason
(
split
[
0
]);
}
else
{
activityCouponBean
.
setUnusedReason
(
couponStateVo
.
getMessage
());
activityCouponBean
.
setUnusedReason
(
couponStateVo
.
getMessage
());
}
}
else
{
activityCouponBean
.
setUnusedReason
(
couponStateVo
.
getMessage
());
}
// 详情
// 详情
GetMemberCouponListResponseVo
.
MemberCouponDetail
detail
=
new
GetMemberCouponListResponseVo
.
MemberCouponDetail
();
GetMemberCouponListResponseVo
.
MemberCouponDetail
detail
=
new
GetMemberCouponListResponseVo
.
MemberCouponDetail
();
detail
.
setActivityName
(
memberCoupon
.
getCouponName
());
detail
.
setActivityName
(
memberCoupon
.
getCouponName
());
...
@@ -584,12 +592,27 @@ public class CouponServiceImpl implements CouponService {
...
@@ -584,12 +592,27 @@ public class CouponServiceImpl implements CouponService {
activityCouponBean
.
setSelected
(
YesOrNoEnum
.
NO
.
getCode
());
activityCouponBean
.
setSelected
(
YesOrNoEnum
.
NO
.
getCode
());
}
}
if
(
hasGoodsCoupon
)
{
if
(
hasGoodsCoupon
)
{
activityCouponBean
.
setCouponPic
(
memberCoupon
.
getLogo
());
if
(
StringUtils
.
isNotBlank
(
chooseCouponCode
)
&&
chooseCouponCode
.
equals
(
activityCouponBean
.
getCouponCode
())){
activityCouponBean
.
setSelected
(
YesOrNoEnum
.
YES
.
getCode
());
usableCoupons
.
add
(
activityCouponBean
);
usableCouponNum
=
usableCouponNum
+
1
;
}
else
{
if
(
Objects
.
equals
(
couponStateVo
.
getType
(),
CouponTypeEnum
.
TYPE_0
.
getCode
())
||
Objects
.
equals
(
couponStateVo
.
getType
(),
CouponTypeEnum
.
TYPE_4
.
getCode
())){
activityCouponBean
.
setUnusedReason
(
"商品券只能在点餐页"
);
}
disableCoupons
.
add
(
activityCouponBean
);
disableCoupons
.
add
(
activityCouponBean
);
disableCouponNum
=
disableCouponNum
+
1
;
disableCouponNum
=
disableCouponNum
+
1
;
}
}
else
{
}
else
{
if
(
Objects
.
equals
(
couponStateVo
.
getState
(),
CouponStateEnum
.
STATE_1
.
getCode
())
||
(
activityCouponBean
.
getDailyAvailableTimes
()
!=
null
&&
activityCouponBean
.
getDailyAvailableTimes
()
==
0
))
{
if
(
Objects
.
equals
(
couponStateVo
.
getState
(),
CouponStateEnum
.
STATE_1
.
getCode
())
||
(
activityCouponBean
.
getDailyAvailableTimes
()
!=
null
&&
activityCouponBean
.
getDailyAvailableTimes
()
==
0
))
{
disableCoupons
.
add
(
activityCouponBean
);
disableCoupons
.
add
(
activityCouponBean
);
disableCouponNum
=
disableCouponNum
+
1
;
disableCouponNum
=
disableCouponNum
+
1
;
}
else
if
(
Objects
.
equals
(
couponStateVo
.
getType
(),
CouponTypeEnum
.
TYPE_0
.
getCode
())
||
Objects
.
equals
(
couponStateVo
.
getType
(),
CouponTypeEnum
.
TYPE_4
.
getCode
()))
{
activityCouponBean
.
setCouponPic
(
memberCoupon
.
getLogo
());
activityCouponBean
.
setUnusedReason
(
"商品券只能在点餐页"
);
disableCoupons
.
add
(
activityCouponBean
);
disableCouponNum
=
disableCouponNum
+
1
;
}
else
{
}
else
{
usableCoupons
.
add
(
activityCouponBean
);
usableCoupons
.
add
(
activityCouponBean
);
usableCouponNum
=
usableCouponNum
+
1
;
usableCouponNum
=
usableCouponNum
+
1
;
...
@@ -941,6 +964,96 @@ public class CouponServiceImpl implements CouponService {
...
@@ -941,6 +964,96 @@ public class CouponServiceImpl implements CouponService {
return
dto
;
return
dto
;
}
}
@Override
public
GetProductsVo
getSpqProductInfo
(
CheckSpqInfoRequestDto
requestDto
)
{
String
partnerId
=
requestDto
.
getPartnerId
();
String
couponCode
=
requestDto
.
getCouponCode
();
String
storeId
=
requestDto
.
getStoreId
();
//TODO 查询券详情券是否存在
GetMemberCouponRequestVo
requestVo
=
new
GetMemberCouponRequestVo
();
requestVo
.
setPartnerId
(
partnerId
);
requestVo
.
setCouponCode
(
couponCode
);
requestVo
.
setStoreId
(
requestDto
.
getStoreId
());
GetCouponDetailResponseDto
couponDetailResponseDto
=
couponService
.
getMemberCoupon
(
requestVo
);
LogUtil
.
info
(
"couponService.getMemberCoupon"
,
gson
.
toJson
(
requestVo
),
gson
.
toJson
(
couponDetailResponseDto
));
if
(
couponDetailResponseDto
==
null
||
!
couponDetailResponseDto
.
getResult
().
equals
(
ResponseCodeConstant
.
RESPONSE_SUCCESS_1
)
||
CollectionUtils
.
isEmpty
(
couponDetailResponseDto
.
getDetails
()))
{
return
null
;
}
//券返回的商品id
List
<
String
>
skuIds
=
Lists
.
newArrayList
();
String
skuId
=
couponDetailResponseDto
.
getDetails
().
get
(
0
).
getActiveProduct
().
get
(
0
).
getProductIdPartner
();
skuIds
.
add
(
String
.
valueOf
(
skuId
));
//TODO 通过skuid查询spuid
Map
<
String
,
GetProductsVo
>
productsVoMap
=
itemService
.
getProducts
(
skuIds
,
partnerId
,
storeId
,
requestDto
.
getMenuType
());
GetProductsVo
productsVo
=
productsVoMap
.
get
(
skuId
);
if
(
null
==
productsVo
||
!
Objects
.
equals
(
productsVo
.
getStatus
(),
StoreItemStatus
.
PUT_ON_SALE
.
getCode
()))
{
return
null
;
}
// 校验商品可用时间
ValidateShopProductRequest
request
=
getValidateShopProductRequest
(
productsVo
,
requestDto
);
ProductResponseDTO
<
ValiadShopProductResponse
>
valiadProductResponse
=
storeItemClient
.
validateShopProduct
(
request
);
if
(
null
==
valiadProductResponse
||
!
Objects
.
equals
(
ResponseConstant
.
SUCCESS_RESPONSE_CODE
,
valiadProductResponse
.
getErrcode
())
||
valiadProductResponse
.
getData
()
==
null
||
CollectionUtils
.
isEmpty
(
valiadProductResponse
.
getData
().
getSuccessList
()))
{
return
null
;
}
return
productsVo
;
}
/**
* 换购券
* 商品券支持多商品
*
* @param requestDto
* @param goodsId
* @return
*/
@Override
public
GetProductsVo
getSpqProductInfo
(
CheckSpqInfoRequestDto
requestDto
,
String
goodsId
)
{
log
.
info
(
"checkSpqInfo****"
+
gson
.
toJson
(
requestDto
));
String
partnerId
=
requestDto
.
getPartnerId
();
String
couponCode
=
requestDto
.
getCouponCode
();
String
storeId
=
requestDto
.
getStoreId
();
//TODO 查询券详情券是否存在
GetMemberCouponRequestVo
requestVo
=
new
GetMemberCouponRequestVo
();
requestVo
.
setPartnerId
(
partnerId
);
requestVo
.
setCouponCode
(
couponCode
);
requestVo
.
setStoreId
(
requestDto
.
getStoreId
());
GetCouponDetailResponseDto
couponDetailResponseDto
=
couponService
.
getMemberCoupon
(
requestVo
);
LogUtil
.
info
(
"couponService.getMemberCoupon"
,
gson
.
toJson
(
requestVo
),
gson
.
toJson
(
couponDetailResponseDto
));
if
(
couponDetailResponseDto
==
null
||
!
couponDetailResponseDto
.
getResult
().
equals
(
ResponseCodeConstant
.
RESPONSE_SUCCESS_1
)
||
CollectionUtils
.
isEmpty
(
couponDetailResponseDto
.
getDetails
()))
{
return
null
;
}
if
(
CollectionUtils
.
isEmpty
(
couponDetailResponseDto
.
getDetails
()))
{
return
null
;
}
Integer
couponType
=
0
;
//券返回的商品id
List
<
String
>
skuIds
=
Lists
.
newArrayList
();
String
skuId
=
goodsId
;
skuIds
.
add
(
skuId
);
//TODO 通过skuid查询spuid
Map
<
String
,
GetProductsVo
>
productsVoMap
=
itemService
.
getProducts
(
skuIds
,
partnerId
,
storeId
,
requestDto
.
getMenuType
());
GetProductsVo
productsVo
=
productsVoMap
.
get
(
skuId
);
if
(
null
==
productsVo
||
!
Objects
.
equals
(
productsVo
.
getStatus
(),
StoreItemStatus
.
PUT_ON_SALE
.
getCode
()))
{
return
null
;
}
// 校验商品可用时间
ValidateShopProductRequest
request
=
getValidateShopProductRequest
(
productsVo
,
requestDto
);
ProductResponseDTO
<
ValiadShopProductResponse
>
valiadProductResponse
=
storeItemClient
.
validateShopProduct
(
request
);
if
(
null
==
valiadProductResponse
||
!
Objects
.
equals
(
ResponseConstant
.
SUCCESS_RESPONSE_CODE
,
valiadProductResponse
.
getErrcode
())
||
valiadProductResponse
.
getData
()
==
null
||
CollectionUtils
.
isEmpty
(
valiadProductResponse
.
getData
().
getSuccessList
()))
{
return
null
;
}
return
productsVo
;
}
@Autowired
@Autowired
private
ActivityClient
activityClient
;
private
ActivityClient
activityClient
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
View file @
ee5be573
...
@@ -611,11 +611,34 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -611,11 +611,34 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
String
menuType
=
shoppingCartInfoRequestVo
.
getMenuType
();
String
menuType
=
shoppingCartInfoRequestVo
.
getMenuType
();
Integer
orderType
=
shoppingCartInfoRequestVo
.
getOrderType
();
Integer
orderType
=
shoppingCartInfoRequestVo
.
getOrderType
();
String
receiveId
=
shoppingCartInfoRequestVo
.
getReceiveId
();
String
receiveId
=
shoppingCartInfoRequestVo
.
getReceiveId
();
String
unChooseCouponCode
=
shoppingCartInfoRequestVo
.
getUnChooseCouponCode
();
// 获取购物车商品
// 获取购物车商品
List
<
CartGoods
>
cartGoodsList
=
assortmentSdkService
.
getShoppingCart
(
partnerId
,
storeId
,
userId
,
null
,
""
,
shoppingCartBaseService
);
List
<
CartGoods
>
cartGoodsList
=
assortmentSdkService
.
getShoppingCart
(
partnerId
,
storeId
,
userId
,
null
,
""
,
shoppingCartBaseService
);
// 如果购物车商品不为空, 则check购物车中所有商品
// 如果购物车商品不为空, 则check购物车中所有商品
if
(
CollectionUtils
.
isNotEmpty
(
cartGoodsList
)){
if
(
CollectionUtils
.
isNotEmpty
(
cartGoodsList
)){
// check是否反选取消商品券
if
(
StringUtils
.
isNotBlank
(
unChooseCouponCode
)){
// 遍历该商品券选择的商品,并将商品券替换为普通商品
for
(
int
i
=
cartGoodsList
.
size
()
-
1
;
i
>=
0
;
i
--){
CartGoods
cartGoods
=
cartGoodsList
.
get
(
i
);
if
(
GoodsTypeEnum
.
COUPON_GOODS
.
getGoodsType
().
equals
(
cartGoods
.
getGoodsType
())
||
GoodsTypeEnum
.
HG_COUPON_GOODS
.
getGoodsType
().
equals
(
cartGoods
.
getGoodsType
())){
CheckSpqInfoRequestDto
checkSpqInfoRequestDto
=
new
CheckSpqInfoRequestDto
(
partnerId
,
storeId
,
cartGoods
.
getSpuId
(),
menuType
);
GetProductsVo
productInfo
=
null
;
if
(
GoodsTypeEnum
.
HG_COUPON_GOODS
.
getGoodsType
().
equals
(
cartGoods
.
getGoodsType
()))
{
productInfo
=
couponService
.
getSpqProductInfo
(
checkSpqInfoRequestDto
,
cartGoods
.
getSkuId
());
}
else
{
productInfo
=
couponService
.
getSpqProductInfo
(
checkSpqInfoRequestDto
);
}
if
(
productInfo
==
null
){
cartGoodsList
.
remove
(
i
);
}
else
{
convert2CartGoods
(
cartGoods
,
productInfo
);
}
}
}
}
CheckCartRequest
checkCartRequest
=
assortmentSdkService
.
checkShoppingCartSdk
(
cartGoodsList
,
partnerId
,
storeId
,
shoppingCartGoodsResponseVo
,
shoppingCartInfoRequestVo
.
getOrderType
(),
""
,
shoppingCartInfoRequestVo
.
getMenuType
()
,
shoppingCartBaseService
);
CheckCartRequest
checkCartRequest
=
assortmentSdkService
.
checkShoppingCartSdk
(
cartGoodsList
,
partnerId
,
storeId
,
shoppingCartGoodsResponseVo
,
shoppingCartInfoRequestVo
.
getOrderType
(),
""
,
shoppingCartInfoRequestVo
.
getMenuType
()
,
shoppingCartBaseService
);
if
(
checkCartRequest
.
getShoppingCartGoodsResponseVo
()
!=
null
)
{
if
(
checkCartRequest
.
getShoppingCartGoodsResponseVo
()
!=
null
)
{
shoppingCartGoodsResponseVo
.
setChanged
(
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
getChanged
());
shoppingCartGoodsResponseVo
.
setChanged
(
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
getChanged
());
...
@@ -715,6 +738,32 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -715,6 +738,32 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
return
ResponseUtil
.
success
(
shoppingCartGoodsResponseVo
);
return
ResponseUtil
.
success
(
shoppingCartGoodsResponseVo
);
}
}
private
void
convert2CartGoods
(
CartGoods
cartGoods
,
GetProductsVo
productInfo
)
{
cartGoods
.
setCartGoodsUid
(
UUID
.
randomUUID
().
toString
());
Integer
goodsType
=
GoodsTypeEnum
.
SPU_GOODS
.
getGoodsType
();
if
(
productInfo
.
getType
()
==
null
||
productInfo
.
getType
()
==
1
)
{
goodsType
=
GoodsTypeEnum
.
SPU_GOODS
.
getGoodsType
();
}
else
{
goodsType
=
GoodsTypeEnum
.
SKU_GOODS
.
getGoodsType
();
}
cartGoods
.
setGoodsType
(
goodsType
);
cartGoods
.
setAmount
(
productInfo
.
getFinalPrice
());
cartGoods
.
setCategoryName
(
productInfo
.
getCategoryName
());
cartGoods
.
setCustomerCode
(
productInfo
.
getCustomerCode
());
cartGoods
.
setFinalPrice
(
null
);
cartGoods
.
setGoodsId
(
cartGoods
.
getSkuId
());
cartGoods
.
setMaterialAmount
(
0
l
);
cartGoods
.
setName
(
goodsType
==
GoodsTypeEnum
.
SPU_GOODS
.
getGoodsType
()
?
productInfo
.
getSpuName
()
:
productInfo
.
getSkuName
());
cartGoods
.
setOriginalPrice
(
productInfo
.
getFinalPrice
());
cartGoods
.
setOriginalMaterialAmount
(
0
l
);
cartGoods
.
setSpuId
(
productInfo
.
getSpuId
());
cartGoods
.
setSkuId
(
cartGoods
.
getSkuId
());
cartGoods
.
setSpuName
(
productInfo
.
getSpuName
());
cartGoods
.
setSkuName
(
productInfo
.
getSkuName
());
cartGoods
.
setCouponCode
(
null
);
}
/**
/**
* svc 卡支付使用
* svc 卡支付使用
*
*
...
@@ -1003,7 +1052,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -1003,7 +1052,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
List
<
CartGoods
>
cartGoodsList
=
orderItemList
.
stream
().
map
(
each
->
convert2ShopCartGoods
(
each
)).
collect
(
toList
());
List
<
CartGoods
>
cartGoodsList
=
orderItemList
.
stream
().
map
(
each
->
convert2ShopCartGoods
(
each
)).
collect
(
toList
());
ActivityClassifyCouponBean
activityClassifyCouponBean
=
couponService
.
availableCoupon
(
cartGoodsList
,
partnerId
ActivityClassifyCouponBean
activityClassifyCouponBean
=
couponService
.
availableCoupon
(
cartGoodsList
,
partnerId
,
memberId
,
request
.
getStoreId
(),
""
,
false
,
request
.
getOrderType
(),
0
,
""
,
""
);
,
memberId
,
request
.
getStoreId
(),
""
,
false
,
request
.
getOrderType
(),
0
,
""
,
""
,
""
);
if
(
activityClassifyCouponBean
!=
null
&&
CollectionUtils
.
isNotEmpty
(
activityClassifyCouponBean
.
getUsableCoupons
())){
if
(
activityClassifyCouponBean
!=
null
&&
CollectionUtils
.
isNotEmpty
(
activityClassifyCouponBean
.
getUsableCoupons
())){
List
<
GetMemberInfoResponseVo
.
Coupon
>
coupons
=
activityClassifyCouponBean
.
getUsableCoupons
().
stream
().
map
(
each
->
convert2MemberCoupon
(
each
)).
collect
(
toList
());
List
<
GetMemberInfoResponseVo
.
Coupon
>
coupons
=
activityClassifyCouponBean
.
getUsableCoupons
().
stream
().
map
(
each
->
convert2MemberCoupon
(
each
)).
collect
(
toList
());
responseData
.
setCoupons
(
coupons
);
responseData
.
setCoupons
(
coupons
);
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/promotion/CouponSharingService.java
View file @
ee5be573
...
@@ -58,6 +58,10 @@ public class CouponSharingService {
...
@@ -58,6 +58,10 @@ public class CouponSharingService {
.
startsWith
(
CommonsConstant
.
COUPON_PREFIX
))).
collect
(
Collectors
.
toList
());
.
startsWith
(
CommonsConstant
.
COUPON_PREFIX
))).
collect
(
Collectors
.
toList
());
// 是否存在商品券
// 是否存在商品券
boolean
hasGoodssCoupon
=
CollectionUtils
.
isNotEmpty
(
tmpCartGoods
);
boolean
hasGoodssCoupon
=
CollectionUtils
.
isNotEmpty
(
tmpCartGoods
);
String
chooseCouponCode
=
""
;
if
(
StringUtils
.
isBlank
(
couponPromotionVO
.
getUnChooseCouponCode
())
&&
hasGoodssCoupon
){
chooseCouponCode
=
tmpCartGoods
.
get
(
0
).
getGoodsId
().
substring
(
CommonsConstant
.
COUPON_PREFIX
.
length
());
}
// 构建可用不可用优惠券
// 构建可用不可用优惠券
ActivityClassifyCouponBean
activityClassifyCouponBean
=
couponService
.
availableCoupon
(
cartGoodsList
ActivityClassifyCouponBean
activityClassifyCouponBean
=
couponService
.
availableCoupon
(
cartGoodsList
,
couponPromotionVO
.
getPartnerId
()
,
couponPromotionVO
.
getPartnerId
()
...
@@ -69,6 +73,7 @@ public class CouponSharingService {
...
@@ -69,6 +73,7 @@ public class CouponSharingService {
,
1
,
1
,
shoppingCartInfoRequestVo
.
getAppId
()
,
shoppingCartInfoRequestVo
.
getAppId
()
,
shoppingCartInfoRequestVo
.
getMenuType
()
,
shoppingCartInfoRequestVo
.
getMenuType
()
,
chooseCouponCode
);
);
if
(
Objects
.
equals
(
activityClassifyCouponBean
,
null
))
{
if
(
Objects
.
equals
(
activityClassifyCouponBean
,
null
))
{
// 构建一个空得订单券信息
// 构建一个空得订单券信息
...
...
shopping-cart-application-service/src/test/java/cn.freemud/service/CouponServiceTest.java
View file @
ee5be573
...
@@ -133,7 +133,7 @@ public class CouponServiceTest {
...
@@ -133,7 +133,7 @@ public class CouponServiceTest {
List
<
CartGoods
>
cartGoods
=
Lists
.
newArrayList
();
List
<
CartGoods
>
cartGoods
=
Lists
.
newArrayList
();
CartGoods
cartGood
=
new
CartGoods
();
CartGoods
cartGood
=
new
CartGoods
();
cartGoods
.
add
(
cartGood
);
cartGoods
.
add
(
cartGood
);
ActivityClassifyCouponBean
activityClassifyCouponBean
=
couponService
.
availableCoupon
(
cartGoods
,
"1864"
,
"122424124"
,
"1011"
,
"88123124"
,
true
,
1
,
1
,
""
,
""
);
ActivityClassifyCouponBean
activityClassifyCouponBean
=
couponService
.
availableCoupon
(
cartGoods
,
"1864"
,
"122424124"
,
"1011"
,
"88123124"
,
true
,
1
,
1
,
""
,
""
,
""
);
assertTrue
(
activityClassifyCouponBean
.
getCouponNum
()
>=
1
);
assertTrue
(
activityClassifyCouponBean
.
getCouponNum
()
>=
1
);
}
}
...
...
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