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
bb06dc67
Commit
bb06dc67
authored
Apr 26, 2021
by
chongfu.liang
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature/20210420-订单在下单时需要校验券的归属-lcf'
parents
f56ee348
47d9bac8
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
138 additions
and
14 deletions
+138
-14
order-application-service/src/main/java/cn/freemud/constant/ResponseCodeConstant.java
+1
-0
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
+1
-0
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
+4
-0
shopping-cart-application-service/src/main/java/cn/freemud/demo/service/impl/PlatformApportionService.java
+18
-1
shopping-cart-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
+1
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/CouponService.java
+5
-4
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/CouponPromotionService.java
+14
-3
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/CouponServiceImpl.java
+62
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/CalculationSharingCartService.java
+1
-1
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/CalculationSharingDiscountService.java
+1
-2
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/CalculationSharingEquallyService.java
+4
-1
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/promotion/CouponSharingService.java
+26
-2
No files found.
order-application-service/src/main/java/cn/freemud/constant/ResponseCodeConstant.java
View file @
bb06dc67
...
@@ -10,6 +10,7 @@ public class ResponseCodeConstant {
...
@@ -10,6 +10,7 @@ public class ResponseCodeConstant {
public
final
static
String
RESPONSE_SUCCESS_STR
=
"100"
;
public
final
static
String
RESPONSE_SUCCESS_STR
=
"100"
;
public
final
static
String
COCO_RESPONSE_COUPON_ERR_STR
=
"49000"
;
public
final
static
String
COCO_RESPONSE_COUPON_ERR_STR
=
"49000"
;
public
final
static
String
USER_HAVE_NO_COUPON
=
"44039"
;
public
final
static
String
RESPONSE_SUCCESS_OK
=
"ok"
;
public
final
static
String
RESPONSE_SUCCESS_OK
=
"ok"
;
public
final
static
Integer
RESPONSE_SUCCESS_1
=
1
;
public
final
static
Integer
RESPONSE_SUCCESS_1
=
1
;
...
...
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
View file @
bb06dc67
...
@@ -198,6 +198,7 @@ public enum ResponseResult {
...
@@ -198,6 +198,7 @@ public enum ResponseResult {
COUPON_INVAILD
(
"46014"
,
"优惠券失效"
,
""
),
COUPON_INVAILD
(
"46014"
,
"优惠券失效"
,
""
),
COUPON_DATETIME_INVAILD
(
"46015"
,
"优惠券在当前时间不可用"
,
""
),
COUPON_DATETIME_INVAILD
(
"46015"
,
"优惠券在当前时间不可用"
,
""
),
COUPON_ORDER_ORIGINAL_AMOUNT_NOT_ENOUGH
(
"46016"
,
"优惠券不满足可用金额门槛"
,
""
),
COUPON_ORDER_ORIGINAL_AMOUNT_NOT_ENOUGH
(
"46016"
,
"优惠券不满足可用金额门槛"
,
""
),
SHOPPING_CART_USER_HAVE_NO_COUPON
(
"46017"
,
"使用的商品券已失效,请重新下单"
,
""
),
/**
/**
* 加价购商品
* 加价购商品
*/
*/
...
...
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
View file @
bb06dc67
...
@@ -634,6 +634,9 @@ public class CheckOrder {
...
@@ -634,6 +634,9 @@ public class CheckOrder {
if
(
ObjectUtils
.
equals
(
ResponseCodeConstant
.
COCO_RESPONSE_COUPON_ERR_STR
,
apportionResponse
.
getCode
()))
{
if
(
ObjectUtils
.
equals
(
ResponseCodeConstant
.
COCO_RESPONSE_COUPON_ERR_STR
,
apportionResponse
.
getCode
()))
{
throw
new
ServiceException
(
ResponseResult
.
COCO_COUPON_VALIDATOR_FAIL
,
apportionResponse
.
getMessage
());
throw
new
ServiceException
(
ResponseResult
.
COCO_COUPON_VALIDATOR_FAIL
,
apportionResponse
.
getMessage
());
}
}
if
(
ObjectUtils
.
equals
(
ResponseCodeConstant
.
USER_HAVE_NO_COUPON
,
apportionResponse
.
getCode
()))
{
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_USER_HAVE_NO_COUPON
,
apportionResponse
.
getMessage
());
}
if
(!
ObjectUtils
.
equals
(
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
,
apportionResponse
.
getCode
()))
{
if
(!
ObjectUtils
.
equals
(
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
,
apportionResponse
.
getCode
()))
{
ResponseResult
responseResult
=
ResponseResult
.
getResponseResult
(
apportionResponse
.
getCode
());
ResponseResult
responseResult
=
ResponseResult
.
getResponseResult
(
apportionResponse
.
getCode
());
...
@@ -647,6 +650,7 @@ public class CheckOrder {
...
@@ -647,6 +650,7 @@ public class CheckOrder {
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_GETINFO_INVAILD
);
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_GETINFO_INVAILD
);
}
}
// 拼单处理
// 拼单处理
if
(
this
.
isCollageOrder
(
createOrderVo
))
{
if
(
this
.
isCollageOrder
(
createOrderVo
))
{
// 处理拼单加购人信息
// 处理拼单加购人信息
...
...
shopping-cart-application-service/src/main/java/cn/freemud/demo/service/impl/PlatformApportionService.java
View file @
bb06dc67
...
@@ -11,6 +11,8 @@ import cn.freemud.demo.service.impl.AbstractApportionService;
...
@@ -11,6 +11,8 @@ import cn.freemud.demo.service.impl.AbstractApportionService;
import
cn.freemud.demo.service.impl.DeliveryService
;
import
cn.freemud.demo.service.impl.DeliveryService
;
import
cn.freemud.entities.dto.CheckSpqInfoRequestDto
;
import
cn.freemud.entities.dto.CheckSpqInfoRequestDto
;
import
cn.freemud.entities.dto.CheckSpqInfoResponseDto
;
import
cn.freemud.entities.dto.CheckSpqInfoResponseDto
;
import
cn.freemud.entities.dto.GetMemberCouponListRequestDto
;
import
cn.freemud.entities.dto.GetMemberCouponListResponseDto
;
import
cn.freemud.entities.vo.ActivityClassifyCouponBean
;
import
cn.freemud.entities.vo.ActivityClassifyCouponBean
;
import
cn.freemud.entities.vo.CartGoods
;
import
cn.freemud.entities.vo.CartGoods
;
import
cn.freemud.entities.vo.ShoppingCartInfoRequestVo
;
import
cn.freemud.entities.vo.ShoppingCartInfoRequestVo
;
...
@@ -204,12 +206,27 @@ public class PlatformApportionService extends AbstractApportionService {
...
@@ -204,12 +206,27 @@ public class PlatformApportionService extends AbstractApportionService {
@Override
@Override
public
AddGoodsToShoppingCartBO
checkCustomBusinessRules
(
ShoppingCartGoodsApportionBO
baseRequestDTO
,
CheckBussinessRulesBO
checkBussinessRulesBO
,
AddGoodsToShoppingCartBO
addGoodsToShoppingCartBO
)
{
public
AddGoodsToShoppingCartBO
checkCustomBusinessRules
(
ShoppingCartGoodsApportionBO
baseRequestDTO
,
CheckBussinessRulesBO
checkBussinessRulesBO
,
AddGoodsToShoppingCartBO
addGoodsToShoppingCartBO
)
{
List
<
CartGoods
>
cartGoodsList
=
addGoodsToShoppingCartBO
.
getCartGoods
();
List
<
CartGoods
>
cartGoodsList
=
addGoodsToShoppingCartBO
.
getCartGoods
();
// 校验后有效的商品券map
HashMap
<
String
,
CheckSpqInfoResponseDto
>
validCouponMap
=
new
HashMap
<>(
16
);
HashMap
<
String
,
CheckSpqInfoResponseDto
>
validCouponMap
=
new
HashMap
<>(
16
);
// 校验后有效的商品券map
GetMemberCouponListRequestDto
getMemberCouponListRequestDto
=
new
GetMemberCouponListRequestDto
(
baseRequestDTO
.
getPartnerId
(),
baseRequestDTO
.
getUserId
());
getMemberCouponListRequestDto
.
setStatusFlags
(
Arrays
.
asList
(
CouponStatus
.
STATUS_0
.
getCode
(),
CouponStatus
.
STATUS_2
.
getCode
()));
getMemberCouponListRequestDto
.
setPageNum
(
1
);
getMemberCouponListRequestDto
.
setPageSize
(
Integer
.
MAX_VALUE
);
List
<
GetMemberCouponListResponseDto
.
Result
.
MemberCoupon
>
validMemberCouponList
=
couponService
.
getValidMemberCouponList
(
getMemberCouponListRequestDto
,
baseRequestDTO
.
getOrderType
());
for
(
int
i
=
0
;
i
<
cartGoodsList
.
size
();
i
++){
for
(
int
i
=
0
;
i
<
cartGoodsList
.
size
();
i
++){
CartGoods
cartGoods
=
cartGoodsList
.
get
(
i
);
CartGoods
cartGoods
=
cartGoodsList
.
get
(
i
);
if
(
cartGoods
.
getCartGoodsUid
().
startsWith
(
CommonsConstant
.
COUPON_PREFIX
)){
if
(
cartGoods
.
getCartGoodsUid
().
startsWith
(
CommonsConstant
.
COUPON_PREFIX
)){
String
spqId
=
cartGoods
.
getCartGoodsUid
().
substring
(
CommonsConstant
.
COUPON_PREFIX
.
length
());
String
spqId
=
cartGoods
.
getCartGoodsUid
().
substring
(
CommonsConstant
.
COUPON_PREFIX
.
length
());
if
(
CollectionUtils
.
isEmpty
(
validMemberCouponList
)){
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_USER_HAVE_NO_COUPON
,
ResponseResult
.
SHOPPING_CART_USER_HAVE_NO_COUPON
.
getMessage
());
}
else
{
String
finalCouponCode
=
spqId
;
GetMemberCouponListResponseDto
.
Result
.
MemberCoupon
memberCoupon
=
validMemberCouponList
.
stream
().
filter
(
p
->
finalCouponCode
.
equals
(
p
.
getCouponCode
())).
findFirst
().
orElse
(
null
);
if
(
memberCoupon
==
null
){
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_USER_HAVE_NO_COUPON
,
ResponseResult
.
SHOPPING_CART_USER_HAVE_NO_COUPON
.
getMessage
());
}
}
CheckSpqInfoRequestDto
checkSpqInfoRequestDto
=
new
CheckSpqInfoRequestDto
(
baseRequestDTO
.
getPartnerId
(),
baseRequestDTO
.
getShopId
(),
spqId
,
baseRequestDTO
.
getMenuType
());
CheckSpqInfoRequestDto
checkSpqInfoRequestDto
=
new
CheckSpqInfoRequestDto
(
baseRequestDTO
.
getPartnerId
(),
baseRequestDTO
.
getShopId
(),
spqId
,
baseRequestDTO
.
getMenuType
());
CheckSpqInfoResponseDto
checkSpqInfo
=
null
;
CheckSpqInfoResponseDto
checkSpqInfo
=
null
;
if
(
GoodsTypeEnum
.
HG_COUPON_GOODS
.
getGoodsType
().
equals
(
cartGoods
.
getGoodsType
()))
{
if
(
GoodsTypeEnum
.
HG_COUPON_GOODS
.
getGoodsType
().
equals
(
cartGoods
.
getGoodsType
()))
{
...
...
shopping-cart-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
View file @
bb06dc67
...
@@ -103,6 +103,7 @@ public enum ResponseResult {
...
@@ -103,6 +103,7 @@ public enum ResponseResult {
SHOPPING_CART_COUPON_MIX_NOT_EXIST
(
"44034"
,
"券商品不存在"
),
SHOPPING_CART_COUPON_MIX_NOT_EXIST
(
"44034"
,
"券商品不存在"
),
SHOPPING_CART_QTY_LIMIT_ERR
(
"44035"
,
"该商品单次购买数量限制为10,请知晓"
),
SHOPPING_CART_QTY_LIMIT_ERR
(
"44035"
,
"该商品单次购买数量限制为10,请知晓"
),
SHOPPING_CART_MATERIA_QTY_LIMIT_ERR
(
"44038"
,
"商品加料超过最大限制"
),
SHOPPING_CART_MATERIA_QTY_LIMIT_ERR
(
"44038"
,
"商品加料超过最大限制"
),
SHOPPING_CART_USER_HAVE_NO_COUPON
(
"44039"
,
"使用的商品券已失效,请重新下单"
),
/**
/**
* 订单状态码
* 订单状态码
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/CouponService.java
View file @
bb06dc67
...
@@ -14,10 +14,7 @@
...
@@ -14,10 +14,7 @@
package
cn
.
freemud
.
service
;
package
cn
.
freemud
.
service
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.dto.ActivityDiscountDto
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.CheckSpqInfoRequestDto
;
import
cn.freemud.entities.dto.CheckSpqInfoResponseDto
;
import
cn.freemud.entities.dto.GetCouponDetailResponseDto
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.*
;
import
java.util.List
;
import
java.util.List
;
...
@@ -48,6 +45,8 @@ public interface CouponService {
...
@@ -48,6 +45,8 @@ public interface CouponService {
*/
*/
GetCouponDetailResponseDto
getMemberCoupon
(
GetMemberCouponRequestVo
requestVo
);
GetCouponDetailResponseDto
getMemberCoupon
(
GetMemberCouponRequestVo
requestVo
);
List
<
GetMemberCouponListResponseDto
.
Result
.
MemberCoupon
>
getValidMemberCouponList
(
GetMemberCouponListRequestDto
getMemberCouponListRequestDto
,
Integer
orderType
);
/**
/**
* 批次查询券详情
* 批次查询券详情
*
*
...
@@ -129,4 +128,6 @@ public interface CouponService {
...
@@ -129,4 +128,6 @@ public interface CouponService {
* 返回 key = 活动code, value= 返回是否匹配点餐方式
* 返回 key = 活动code, value= 返回是否匹配点餐方式
*/
*/
Map
<
String
,
Boolean
>
couponOrderWay
(
String
partnerId
,
List
<
String
>
activityCodes
,
Integer
orderTye
);
Map
<
String
,
Boolean
>
couponOrderWay
(
String
partnerId
,
List
<
String
>
activityCodes
,
Integer
orderTye
);
void
checkValidCoupon
(
CouponPromotionVO
couponPromotionVO
,
List
<
String
>
couponList
,
Map
<
String
,
List
<
String
>>
spqIdToCartUuid
,
String
couponCode
,
List
<
CartGoods
>
cartGoodsList
);
}
}
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/CouponPromotionService.java
View file @
bb06dc67
package
cn
.
freemud
.
service
.
impl
;
package
cn
.
freemud
.
service
.
impl
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.CheckSpqInfoResponseDto
;
import
cn.freemud.entities.dto.UserLoginInfoDto
;
import
cn.freemud.entities.dto.activity.ActivityDiscountsDto
;
import
cn.freemud.entities.dto.activity.ActivityDiscountsDto
;
import
cn.freemud.entities.dto.activity.ActivityQueryDto
;
import
cn.freemud.entities.dto.activity.ActivityQueryDto
;
import
cn.freemud.entities.dto.activity.ShareDiscountActivityDto
;
import
cn.freemud.entities.dto.activity.ShareDiscountActivityDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.enums.*
;
import
cn.freemud.enums.*
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.service.CouponService
;
import
cn.freemud.service.CouponService
;
import
cn.freemud.service.IPromotionService
;
import
cn.freemud.service.IPromotionService
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant
;
...
@@ -130,6 +129,18 @@ public class CouponPromotionService implements IPromotionService {
...
@@ -130,6 +129,18 @@ public class CouponPromotionService implements IPromotionService {
useCoupon
=
false
;
useCoupon
=
false
;
}
}
if
(
StringUtils
.
isNotBlank
(
couponCode
))
{
if
(
StringUtils
.
isNotBlank
(
couponCode
))
{
List
<
String
>
validCouponCodeLis
=
new
ArrayList
<>();
if
(
couponPromotionVO
!=
null
&&
ObjectUtils
.
equals
(
CouponFlag
.
YES
.
getCode
(),
couponPromotionVO
.
getFlg
())){
validCouponCodeLis
=
shoppingCartGoodsResponseVo
.
getAvailableCoupon
().
getUsableCoupons
().
stream
().
map
(
ActivityCouponBean:
:
getCouponCode
).
collect
(
Collectors
.
toList
());
}
else
{
couponPromotionVO
=
new
CouponPromotionVO
();
couponPromotionVO
.
setUserId
(
userLoginInfoDto
.
getMemberId
());
couponPromotionVO
.
setStoreId
(
activityQueryDto
.
getStoreId
());
couponPromotionVO
.
setPartnerId
(
activityQueryDto
.
getPartnerId
());
couponPromotionVO
.
setOrderType
(
activityQueryDto
.
getOrderType
());
}
couponService
.
checkValidCoupon
(
couponPromotionVO
,
validCouponCodeLis
,
spqIdToCartUuid
,
couponCode
,
cartGoodsList
);
// 计算优惠信息时,已将券校验过,放在map中
// 计算优惠信息时,已将券校验过,放在map中
if
(
MapUtils
.
isNotEmpty
(
validCouponMap
))
{
if
(
MapUtils
.
isNotEmpty
(
validCouponMap
))
{
CheckSpqInfoResponseDto
checkSpqInfoResponseDto
=
null
;
CheckSpqInfoResponseDto
checkSpqInfoResponseDto
=
null
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/CouponServiceImpl.java
View file @
bb06dc67
...
@@ -61,6 +61,7 @@ import com.freemud.card.sdk.vo.coupon.request.MemberAddCouponVo;
...
@@ -61,6 +61,7 @@ import com.freemud.card.sdk.vo.coupon.request.MemberAddCouponVo;
import
com.freemud.card.sdk.vo.coupon.response.MemberBaseRespVo
;
import
com.freemud.card.sdk.vo.coupon.response.MemberBaseRespVo
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.CartResponseConstant
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.CartResponseConstant
;
import
com.freemud.sdk.api.assortment.shoppingcart.enums.BusinessTypeEnum
;
import
com.freemud.sdk.api.assortment.shoppingcart.enums.BusinessTypeEnum
;
import
com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Maps
;
import
com.google.common.collect.Maps
;
import
com.google.gson.Gson
;
import
com.google.gson.Gson
;
...
@@ -130,6 +131,10 @@ public class CouponServiceImpl implements CouponService {
...
@@ -130,6 +131,10 @@ public class CouponServiceImpl implements CouponService {
private
String
couponPartnerId
;
private
String
couponPartnerId
;
@Autowired
@Autowired
private
CouponAdapterClient
couponAdaptClient
;
private
CouponAdapterClient
couponAdaptClient
;
@Autowired
private
AssortmentSdkService
assortmentSdkService
;
@Autowired
private
ShoppingCartBaseServiceImpl
shoppingCartBaseService
;
/**
/**
* 获取优惠券列表
* 获取优惠券列表
...
@@ -236,6 +241,29 @@ public class CouponServiceImpl implements CouponService {
...
@@ -236,6 +241,29 @@ public class CouponServiceImpl implements CouponService {
return
null
;
return
null
;
}
}
/**
* 获取会员服务的优惠券列表
*
* @param getMemberCouponListRequestDto
* @return
*/
public
List
<
GetMemberCouponListResponseDto
.
Result
.
MemberCoupon
>
getValidMemberCouponList
(
GetMemberCouponListRequestDto
getMemberCouponListRequestDto
,
Integer
orderType
)
{
List
<
GetMemberCouponListResponseDto
.
Result
.
MemberCoupon
>
memberCoupons
=
Lists
.
newArrayList
();
GetMemberCouponListResponseDto
.
Result
result
=
getMemberCouponList
(
getMemberCouponListRequestDto
);
// 过滤优惠券得点餐方式
if
(!
Objects
.
isNull
(
result
)
&&
CollectionUtils
.
isNotEmpty
(
result
.
getMemberCoupons
()))
{
List
<
String
>
activityCodes
=
result
.
getMemberCoupons
().
stream
().
map
(
GetMemberCouponListResponseDto
.
Result
.
MemberCoupon
::
getActivityCode
).
collect
(
Collectors
.
toList
());
Map
<
String
,
Boolean
>
activityCodesMap
=
couponOrderWay
(
getMemberCouponListRequestDto
.
getPartnerId
(),
activityCodes
,
orderType
);
result
.
getMemberCoupons
().
forEach
(
memberCoupon
->
{
if
(
activityCodesMap
.
get
(
memberCoupon
.
getActivityCode
())
!=
null
&&
activityCodesMap
.
get
(
memberCoupon
.
getActivityCode
()))
{
memberCoupons
.
add
(
memberCoupon
);
}
});
}
return
memberCoupons
;
}
@Override
@Override
public
BaseResponse
receiveMemberCoupon
(
ReceiveMemberCouponRequestVo
requestVo
)
{
public
BaseResponse
receiveMemberCoupon
(
ReceiveMemberCouponRequestVo
requestVo
)
{
MemberAddCouponVo
memberAddCouponVo
=
couponAdapter
.
convert2MemberAddCouponVo
(
requestVo
);
MemberAddCouponVo
memberAddCouponVo
=
couponAdapter
.
convert2MemberAddCouponVo
(
requestVo
);
...
@@ -1303,4 +1331,38 @@ public class CouponServiceImpl implements CouponService {
...
@@ -1303,4 +1331,38 @@ public class CouponServiceImpl implements CouponService {
}
}
return
CouponBarCodeMap
;
return
CouponBarCodeMap
;
}
}
@Override
public
void
checkValidCoupon
(
CouponPromotionVO
couponPromotionVO
,
List
<
String
>
couponList
,
Map
<
String
,
List
<
String
>>
spqIdToCartUuid
,
String
couponCode
,
List
<
CartGoods
>
cartGoodsList
)
{
List
<
String
>
validCouponCodeLis
=
new
ArrayList
<>();
if
(
couponPromotionVO
!=
null
&&
ObjectUtils
.
equals
(
CouponFlag
.
YES
.
getCode
(),
couponPromotionVO
.
getFlg
())){
validCouponCodeLis
=
couponList
;
}
else
{
GetMemberCouponListRequestDto
getMemberCouponListRequestDto
=
new
GetMemberCouponListRequestDto
(
couponPromotionVO
.
getPartnerId
(),
couponPromotionVO
.
getUserId
());
getMemberCouponListRequestDto
.
setStatusFlags
(
Arrays
.
asList
(
CouponStatus
.
STATUS_0
.
getCode
(),
CouponStatus
.
STATUS_2
.
getCode
()));
getMemberCouponListRequestDto
.
setPageNum
(
1
);
getMemberCouponListRequestDto
.
setPageSize
(
Integer
.
MAX_VALUE
);
List
<
GetMemberCouponListResponseDto
.
Result
.
MemberCoupon
>
validMemberCouponList
=
couponService
.
getValidMemberCouponList
(
getMemberCouponListRequestDto
,
couponPromotionVO
.
getOrderType
());
validCouponCodeLis
=
validMemberCouponList
.
stream
().
map
(
GetMemberCouponListResponseDto
.
Result
.
MemberCoupon
::
getCouponCode
).
collect
(
Collectors
.
toList
());
}
if
(
CollectionUtils
.
isEmpty
(
validCouponCodeLis
)){
List
<
String
>
uuidList
=
spqIdToCartUuid
.
get
(
couponCode
);
if
(
CollectionUtils
.
isNotEmpty
(
uuidList
)){
List
<
CartGoods
>
newCartList
=
cartGoodsList
.
stream
().
filter
(
p
->
!
uuidList
.
contains
(
p
.
getCartGoodsUid
())).
collect
(
Collectors
.
toList
());
assortmentSdkService
.
setShoppingCart
(
couponPromotionVO
.
getPartnerId
(),
couponPromotionVO
.
getStoreId
(),
couponPromotionVO
.
getUserId
(),
newCartList
,
null
,
null
,
this
.
shoppingCartBaseService
);
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_USER_HAVE_NO_COUPON
,
ResponseResult
.
SHOPPING_CART_USER_HAVE_NO_COUPON
.
getMessage
());
}
}
else
{
String
finalCouponCode
=
couponCode
;
String
memberCouponCode
=
validCouponCodeLis
.
stream
().
filter
(
p
->
finalCouponCode
.
equals
(
p
)).
findFirst
().
orElse
(
null
);
if
(
StringUtils
.
isBlank
(
memberCouponCode
)){
List
<
String
>
uuidList
=
spqIdToCartUuid
.
get
(
memberCouponCode
);
if
(
CollectionUtils
.
isNotEmpty
(
uuidList
)){
List
<
CartGoods
>
newCartList
=
cartGoodsList
.
stream
().
filter
(
p
->
!
uuidList
.
contains
(
p
.
getCartGoodsUid
())).
collect
(
Collectors
.
toList
());
assortmentSdkService
.
setShoppingCart
(
couponPromotionVO
.
getPartnerId
(),
couponPromotionVO
.
getStoreId
(),
couponPromotionVO
.
getUserId
(),
newCartList
,
null
,
null
,
this
.
shoppingCartBaseService
);
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_USER_HAVE_NO_COUPON
,
ResponseResult
.
SHOPPING_CART_USER_HAVE_NO_COUPON
.
getMessage
());
}
}
}
}
}
}
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/CalculationSharingCartService.java
View file @
bb06dc67
...
@@ -81,7 +81,7 @@ public class CalculationSharingCartService {
...
@@ -81,7 +81,7 @@ public class CalculationSharingCartService {
/**
/**
* 可用券及券折扣
* 可用券及券折扣
*/
*/
promotionSharingService
.
updateShoppingCartGoodsDiscount
(
discountResult
,
cartGoodsList
,
shoppingCartGoodsResponseVo
,
couponPromotionVO
,
shoppingCartInfoRequestVo
,
userId
,
partnerId
,
storeId
);
promotionSharingService
.
updateShoppingCartGoodsDiscount
(
discountResult
,
cartGoodsList
,
shoppingCartGoodsResponseVo
,
couponPromotionVO
,
shoppingCartInfoRequestVo
,
userId
,
partnerId
,
storeId
,
activityQueryDto
.
getOrderType
()
);
/**
/**
* 满减处理
* 满减处理
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/CalculationSharingDiscountService.java
View file @
bb06dc67
...
@@ -18,6 +18,7 @@ import cn.freemud.service.CouponService;
...
@@ -18,6 +18,7 @@ import cn.freemud.service.CouponService;
import
cn.freemud.service.active.ActiveFactory
;
import
cn.freemud.service.active.ActiveFactory
;
import
cn.freemud.service.active.ActiveService
;
import
cn.freemud.service.active.ActiveService
;
import
cn.freemud.service.impl.AssortmentSdkService
;
import
cn.freemud.service.impl.AssortmentSdkService
;
import
cn.freemud.service.impl.CouponServiceImpl
;
import
cn.freemud.service.impl.calculate.promotion.GiftSharingService
;
import
cn.freemud.service.impl.calculate.promotion.GiftSharingService
;
import
cn.freemud.service.thirdparty.CalculationClient
;
import
cn.freemud.service.thirdparty.CalculationClient
;
import
cn.freemud.utils.PropertyConvertUtil
;
import
cn.freemud.utils.PropertyConvertUtil
;
...
@@ -65,8 +66,6 @@ public class CalculationSharingDiscountService {
...
@@ -65,8 +66,6 @@ public class CalculationSharingDiscountService {
@Autowired
@Autowired
private
ActiveFactory
activeFactory
;
private
ActiveFactory
activeFactory
;
@Autowired
private
GiftSharingService
giftSharingService
;
public
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
getCalculationSharingDiscountResult
(
String
menuType
public
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
getCalculationSharingDiscountResult
(
String
menuType
,
String
partnerId
,
String
partnerId
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/CalculationSharingEquallyService.java
View file @
bb06dc67
package
cn
.
freemud
.
service
.
impl
.
calculate
;
package
cn
.
freemud
.
service
.
impl
.
calculate
;
import
cn.freemud.constant.ShoppingCartConstant
;
import
cn.freemud.constant.ShoppingCartConstant
;
import
cn.freemud.entities.dto.GetMemberCouponListRequestDto
;
import
cn.freemud.entities.dto.UserLoginInfoDto
;
import
cn.freemud.entities.dto.UserLoginInfoDto
;
import
cn.freemud.entities.dto.activity.ActivityDiscountsDto
;
import
cn.freemud.entities.dto.activity.ActivityDiscountsDto
;
import
cn.freemud.entities.dto.activity.ActivityQueryDto
;
import
cn.freemud.entities.dto.activity.ActivityQueryDto
;
...
@@ -8,6 +9,7 @@ import cn.freemud.entities.dto.calculate.CalculationSharingDiscountResponseDto;
...
@@ -8,6 +9,7 @@ import cn.freemud.entities.dto.calculate.CalculationSharingDiscountResponseDto;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.enums.ActivityTypeEnum
;
import
cn.freemud.enums.ActivityTypeEnum
;
import
cn.freemud.enums.CouponStatus
;
import
cn.freemud.service.impl.calculate.promotion.*
;
import
cn.freemud.service.impl.calculate.promotion.*
;
import
com.freemud.sdk.api.assortment.shoppingcart.enums.BusinessTypeEnum
;
import
com.freemud.sdk.api.assortment.shoppingcart.enums.BusinessTypeEnum
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -80,7 +82,8 @@ public class CalculationSharingEquallyService {
...
@@ -80,7 +82,8 @@ public class CalculationSharingEquallyService {
/**
/**
* 商品券\换购券
* 商品券\换购券
*/
*/
promotionSharingService
.
equally
(
discountResult
,
cartGoodsList
);
promotionSharingService
.
equally
(
discountResult
,
cartGoodsList
,
couponPromotionVO
);
List
<
ShoppingCartGoodsDto
.
CartGoodsDetailDto
>
cartGoodsDetailDtoList
=
CollectionUtils
.
isEmpty
(
shoppingCartGoodsDto
.
getProducts
())
?
new
ArrayList
<>()
:
shoppingCartGoodsDto
.
getProducts
();
List
<
ShoppingCartGoodsDto
.
CartGoodsDetailDto
>
cartGoodsDetailDtoList
=
CollectionUtils
.
isEmpty
(
shoppingCartGoodsDto
.
getProducts
())
?
new
ArrayList
<>()
:
shoppingCartGoodsDto
.
getProducts
();
shoppingCartGoodsDto
.
setProducts
(
cartGoodsDetailDtoList
);
shoppingCartGoodsDto
.
setProducts
(
cartGoodsDetailDtoList
);
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/promotion/CouponSharingService.java
View file @
bb06dc67
...
@@ -2,12 +2,17 @@ package cn.freemud.service.impl.calculate.promotion;
...
@@ -2,12 +2,17 @@ package cn.freemud.service.impl.calculate.promotion;
import
cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto
;
import
cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto
;
import
cn.freemud.entities.dto.CheckSpqInfoResponseDto
;
import
cn.freemud.entities.dto.CheckSpqInfoResponseDto
;
import
cn.freemud.entities.dto.GetMemberCouponListRequestDto
;
import
cn.freemud.entities.dto.GetMemberCouponListResponseDto
;
import
cn.freemud.entities.dto.activity.ActivityDiscountsDto
;
import
cn.freemud.entities.dto.activity.ActivityDiscountsDto
;
import
cn.freemud.entities.dto.calculate.CalculationSharingDiscountResponseDto
;
import
cn.freemud.entities.dto.calculate.CalculationSharingDiscountResponseDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.enums.CouponFlag
;
import
cn.freemud.enums.CouponFlag
;
import
cn.freemud.enums.CouponStatus
;
import
cn.freemud.enums.GoodsTypeEnum
;
import
cn.freemud.enums.GoodsTypeEnum
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.service.CouponService
;
import
cn.freemud.service.CouponService
;
import
cn.freemud.service.impl.AssortmentSdkService
;
import
cn.freemud.service.impl.AssortmentSdkService
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant
;
...
@@ -51,7 +56,7 @@ public class CouponSharingService {
...
@@ -51,7 +56,7 @@ public class CouponSharingService {
,
List
<
CartGoods
>
cartGoodsList
,
List
<
CartGoods
>
cartGoodsList
,
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
,
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
,
CouponPromotionVO
couponPromotionVO
,
CouponPromotionVO
couponPromotionVO
,
ShoppingCartInfoRequestVo
shoppingCartInfoRequestVo
,
String
userId
,
String
partnerId
,
String
storeId
)
{
,
ShoppingCartInfoRequestVo
shoppingCartInfoRequestVo
,
String
userId
,
String
partnerId
,
String
storeId
,
Integer
orderType
)
{
// 用户选择了查询优惠券信息
// 用户选择了查询优惠券信息
if
(
couponPromotionVO
!=
null
&&
ObjectUtils
.
equals
(
CouponFlag
.
YES
.
getCode
(),
couponPromotionVO
.
getFlg
()))
{
if
(
couponPromotionVO
!=
null
&&
ObjectUtils
.
equals
(
CouponFlag
.
YES
.
getCode
(),
couponPromotionVO
.
getFlg
()))
{
List
<
CartGoods
>
tmpCartGoods
=
cartGoodsList
.
parallelStream
().
filter
(
k
->
(
StringUtils
.
isNotBlank
(
k
.
getCouponCode
())
||
k
.
getCartGoodsUid
()
List
<
CartGoods
>
tmpCartGoods
=
cartGoodsList
.
parallelStream
().
filter
(
k
->
(
StringUtils
.
isNotBlank
(
k
.
getCouponCode
())
||
k
.
getCartGoodsUid
()
...
@@ -127,6 +132,18 @@ public class CouponSharingService {
...
@@ -127,6 +132,18 @@ public class CouponSharingService {
couponCode
=
cartGoods
.
getCartGoodsUid
().
substring
(
CommonsConstant
.
COUPON_PREFIX
.
length
());
couponCode
=
cartGoods
.
getCartGoodsUid
().
substring
(
CommonsConstant
.
COUPON_PREFIX
.
length
());
useCoupon
=
false
;
useCoupon
=
false
;
}
}
List
<
String
>
validCouponCodeLis
=
new
ArrayList
<>();
if
(
couponPromotionVO
!=
null
&&
ObjectUtils
.
equals
(
CouponFlag
.
YES
.
getCode
(),
couponPromotionVO
.
getFlg
())){
validCouponCodeLis
=
shoppingCartGoodsResponseVo
.
getAvailableCoupon
().
getUsableCoupons
().
stream
().
map
(
ActivityCouponBean:
:
getCouponCode
).
collect
(
Collectors
.
toList
());
}
else
{
couponPromotionVO
=
new
CouponPromotionVO
();
couponPromotionVO
.
setUserId
(
userId
);
couponPromotionVO
.
setStoreId
(
storeId
);
couponPromotionVO
.
setPartnerId
(
partnerId
);
couponPromotionVO
.
setOrderType
(
orderType
);
}
couponService
.
checkValidCoupon
(
couponPromotionVO
,
validCouponCodeLis
,
spqIdToCartUuid
,
couponCode
,
cartGoodsList
);
// 计算优惠信息时,已将券校验过,放在map中
// 计算优惠信息时,已将券校验过,放在map中
if
(
MapUtils
.
isNotEmpty
(
validCouponMap
))
{
if
(
MapUtils
.
isNotEmpty
(
validCouponMap
))
{
CheckSpqInfoResponseDto
checkSpqInfoResponseDto
;
CheckSpqInfoResponseDto
checkSpqInfoResponseDto
;
...
@@ -175,7 +192,7 @@ public class CouponSharingService {
...
@@ -175,7 +192,7 @@ public class CouponSharingService {
}
}
public
void
equally
(
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
discountResult
public
void
equally
(
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
discountResult
,
List
<
CartGoods
>
cartGoodsList
)
{
,
List
<
CartGoods
>
cartGoodsList
,
CouponPromotionVO
couponPromotionVO
)
{
if
(
CollectionUtils
.
isEmpty
(
cartGoodsList
))
{
if
(
CollectionUtils
.
isEmpty
(
cartGoodsList
))
{
return
;
return
;
...
@@ -189,8 +206,15 @@ public class CouponSharingService {
...
@@ -189,8 +206,15 @@ public class CouponSharingService {
couponCode
=
cartGoods
.
getCartGoodsUid
().
substring
(
CommonsConstant
.
COUPON_PREFIX
.
length
());
couponCode
=
cartGoods
.
getCartGoodsUid
().
substring
(
CommonsConstant
.
COUPON_PREFIX
.
length
());
useCoupon
=
false
;
useCoupon
=
false
;
}
}
List
<
String
>
validCouponCodeLis
=
new
ArrayList
<>();
// 计算优惠信息时,已将券校验过,放在map中
// 计算优惠信息时,已将券校验过,放在map中
Map
<
String
,
CheckSpqInfoResponseDto
>
validCouponMap
=
discountResult
==
null
?
new
HashMap
<>()
:
discountResult
.
getValidCouponMap
();
Map
<
String
,
CheckSpqInfoResponseDto
>
validCouponMap
=
discountResult
==
null
?
new
HashMap
<>()
:
discountResult
.
getValidCouponMap
();
Map
<
String
,
List
<
String
>>
spqIdToCartUuid
=
discountResult
==
null
?
new
HashMap
<>()
:
discountResult
.
getSpqIdToCartUuid
();
couponPromotionVO
.
setFlg
(
0
);
couponService
.
checkValidCoupon
(
couponPromotionVO
,
validCouponCodeLis
,
spqIdToCartUuid
,
couponCode
,
cartGoodsList
);
if
(
MapUtils
.
isNotEmpty
(
validCouponMap
))
{
if
(
MapUtils
.
isNotEmpty
(
validCouponMap
))
{
CheckSpqInfoResponseDto
checkSpqInfoResponseDto
;
CheckSpqInfoResponseDto
checkSpqInfoResponseDto
;
if
(
useCoupon
){
if
(
useCoupon
){
...
...
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