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
c6cd445c
Commit
c6cd445c
authored
Mar 30, 2021
by
胡敬轩
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
结算页可用券列表改造
parent
1c4d9c94
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
322 additions
and
9 deletions
+322
-9
shopping-cart-application-service/src/main/java/cn/freemud/adapter/ActivityAdapter.java
+137
-0
shopping-cart-application-service/src/main/java/cn/freemud/controller/ShoppingCartController.java
+10
-6
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/coupon/CartProduct.java
+39
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/coupon/CouponAvailableCartInfo.java
+47
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/coupon/CouponAvailableRequestVo.java
+42
-0
shopping-cart-application-service/src/main/java/cn/freemud/enums/ActivityTypeEnum.java
+2
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
+45
-3
No files found.
shopping-cart-application-service/src/main/java/cn/freemud/adapter/ActivityAdapter.java
View file @
c6cd445c
...
@@ -19,15 +19,19 @@ import cn.freemud.entities.dto.calculate.CalculationSharingDiscountResponseDto;
...
@@ -19,15 +19,19 @@ import cn.freemud.entities.dto.calculate.CalculationSharingDiscountResponseDto;
import
cn.freemud.entities.dto.order.CreateOrderDto
;
import
cn.freemud.entities.dto.order.CreateOrderDto
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.PremiumExchangeResponseVo
;
import
cn.freemud.entities.vo.PremiumExchangeResponseVo
;
import
cn.freemud.entities.vo.coupon.CartProduct
;
import
cn.freemud.entities.vo.coupon.CouponAvailableCartInfo
;
import
cn.freemud.enums.*
;
import
cn.freemud.enums.*
;
import
cn.freemud.utils.PropertyConvertUtil
;
import
cn.freemud.utils.PropertyConvertUtil
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.data.util.Pair
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.Objects
;
import
java.util.Optional
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
@Component
@Component
...
@@ -336,4 +340,137 @@ public class ActivityAdapter {
...
@@ -336,4 +340,137 @@ public class ActivityAdapter {
premiumExchangeResponseVo
.
setProducts
(
products
);
premiumExchangeResponseVo
.
setProducts
(
products
);
return
premiumExchangeResponseVo
;
return
premiumExchangeResponseVo
;
}
}
public
CouponAvailableCartInfo
convert2CouponAvailableCartInfoSharing
(
String
partnerId
,
String
storeId
,
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
discountResult
,
List
<
String
>
orgCodes
)
{
// 返回构造对象
CouponAvailableCartInfo
couponAvailableCartInfo
=
new
CouponAvailableCartInfo
();
couponAvailableCartInfo
.
setProviderId
(
partnerId
);
couponAvailableCartInfo
.
setMerchantId
(
partnerId
);
couponAvailableCartInfo
.
setStoreId
(
storeId
);
couponAvailableCartInfo
.
setChannelIdList
(
orgCodes
);
Long
totalMealDiscountAmount
=
0L
;
//套餐优惠不算在内
if
(
discountResult
!=
null
){
//已使用券
if
(
CollectionUtils
.
isNotEmpty
(
discountResult
.
getDiscounts
())){
List
<
String
>
couponCodes
=
discountResult
.
getDiscounts
().
stream
().
filter
(
discount
->
Objects
.
equals
(
discount
.
getType
(),
ActivityTypeEnum
.
TYPE_3
.
getCode
())
||
Objects
.
equals
(
discount
.
getType
(),
ActivityTypeEnum
.
TYPE_31
.
getCode
())
||
Objects
.
equals
(
discount
.
getType
(),
ActivityTypeEnum
.
TYPE_32
.
getCode
())
||
Objects
.
equals
(
discount
.
getType
(),
ActivityTypeEnum
.
TYPE_33
.
getCode
())).
map
(
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Discount
::
getActivityCode
).
collect
(
Collectors
.
toList
());
couponAvailableCartInfo
.
setCouponCodes
(
couponCodes
);
totalMealDiscountAmount
=
discountResult
.
getDiscounts
().
stream
().
filter
(
goodsDiscount
->
Objects
.
equals
(
goodsDiscount
.
getType
(),
ActivityTypeEnum
.
TYPE_310
.
getCode
())).
mapToLong
(
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Discount
::
getDiscount
).
sum
();
}
if
(
CollectionUtils
.
isNotEmpty
(
discountResult
.
getGoods
())){
List
<
CartProduct
>
goods
=
new
ArrayList
<>();
for
(
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
discountGood
:
discountResult
.
getGoods
()){
CartProduct
cartProduct
=
new
CartProduct
();
cartProduct
.
setProductId
(
discountGood
.
getGoodsId
());
cartProduct
.
setQuantity
(
discountGood
.
getGoodsQuantity
());
//小料和可选搭配金额
Pair
<
Long
,
Long
>
pair
=
getSmallMaterialAmountSharing
(
discountGood
.
getSmallMaterial
());
//value1=总实付 value2=总优惠
Long
mealDiscountAmount
=
0L
;
//套餐优惠不算在内
if
(
CollectionUtils
.
isNotEmpty
(
discountGood
.
getDiscounts
())){
Optional
<
String
>
goodCoupon
=
discountGood
.
getDiscounts
().
stream
().
filter
(
goodsDiscount
->
Objects
.
equals
(
goodsDiscount
.
getType
(),
ActivityTypeEnum
.
TYPE_32
.
getCode
())
||
Objects
.
equals
(
goodsDiscount
.
getType
(),
ActivityTypeEnum
.
TYPE_33
.
getCode
())).
map
(
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
::
getActivityCode
).
findFirst
();
cartProduct
.
setCouponCode
(
goodCoupon
!=
null
&&
goodCoupon
.
isPresent
()?
goodCoupon
.
get
():
null
);
mealDiscountAmount
=
discountGood
.
getDiscounts
().
stream
().
filter
(
goodsDiscount
->
Objects
.
equals
(
goodsDiscount
.
getType
(),
ActivityTypeEnum
.
TYPE_310
.
getCode
())).
mapToLong
(
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
::
getDiscount
).
sum
();
}
cartProduct
.
setOriginalTotalAmount
(
discountGood
.
getRealAmount
()+
discountGood
.
getDiscountAmount
()
+
pair
.
getFirst
()+
pair
.
getSecond
()
-
mealDiscountAmount
);
cartProduct
.
setRealAmount
(
discountGood
.
getRealAmount
()+
pair
.
getFirst
());
cartProduct
.
setDiscountAmount
(
discountGood
.
getDiscountAmount
()+
pair
.
getSecond
()
-
mealDiscountAmount
);
goods
.
add
(
cartProduct
);
}
couponAvailableCartInfo
.
setProductList
(
goods
);
}
couponAvailableCartInfo
.
setOriginalTotalAmount
(
discountResult
.
getOriginalTotalAmount
()
-
totalMealDiscountAmount
);
couponAvailableCartInfo
.
setRealAmount
(
discountResult
.
getTotalAmount
());
couponAvailableCartInfo
.
setDiscountAmount
(
discountResult
.
getTotalDiscountAmount
()
-
totalMealDiscountAmount
);
}
else
{
couponAvailableCartInfo
.
setProductList
(
new
ArrayList
<>());
couponAvailableCartInfo
.
setOriginalTotalAmount
(
0L
);
couponAvailableCartInfo
.
setRealAmount
(
0L
);
couponAvailableCartInfo
.
setDiscountAmount
(
0L
);
}
return
couponAvailableCartInfo
;
}
public
CouponAvailableCartInfo
convert2CouponAvailableCartInfo
(
String
partnerId
,
String
storeId
,
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
discountResult
,
List
<
String
>
orgCodes
)
{
// 返回构造对象
CouponAvailableCartInfo
couponAvailableCartInfo
=
new
CouponAvailableCartInfo
();
couponAvailableCartInfo
.
setProviderId
(
partnerId
);
couponAvailableCartInfo
.
setMerchantId
(
partnerId
);
couponAvailableCartInfo
.
setStoreId
(
storeId
);
couponAvailableCartInfo
.
setChannelIdList
(
orgCodes
);
Long
totalMealDiscountAmount
=
0L
;
//套餐优惠不算在内
if
(
discountResult
!=
null
){
//已使用券
if
(
CollectionUtils
.
isNotEmpty
(
discountResult
.
getCouponDiscounts
())){
List
<
String
>
couponCodes
=
discountResult
.
getCouponDiscounts
().
stream
().
filter
(
discount
->
Objects
.
equals
(
discount
.
getActivityType
(),
ActivityTypeEnum
.
TYPE_3
.
getCode
())
||
Objects
.
equals
(
discount
.
getActivityType
(),
ActivityTypeEnum
.
TYPE_31
.
getCode
())
||
Objects
.
equals
(
discount
.
getActivityType
(),
ActivityTypeEnum
.
TYPE_32
.
getCode
())
||
Objects
.
equals
(
discount
.
getActivityType
(),
ActivityTypeEnum
.
TYPE_33
.
getCode
())).
map
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
CouponResults
::
getCouponCode
).
collect
(
Collectors
.
toList
());
couponAvailableCartInfo
.
setCouponCodes
(
couponCodes
);
totalMealDiscountAmount
=
discountResult
.
getDiscounts
().
stream
().
filter
(
goodsDiscount
->
Objects
.
equals
(
goodsDiscount
.
getType
(),
ActivityTypeEnum
.
TYPE_310
.
getCode
())).
mapToLong
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Discount
::
getDiscount
).
sum
();
}
if
(
CollectionUtils
.
isNotEmpty
(
discountResult
.
getGoods
())){
List
<
CartProduct
>
goods
=
new
ArrayList
<>();
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
discountGood
:
discountResult
.
getGoods
()){
CartProduct
cartProduct
=
new
CartProduct
();
cartProduct
.
setProductId
(
discountGood
.
getGoodsId
());
cartProduct
.
setQuantity
(
discountGood
.
getGoodsQuantity
());
//小料和可选搭配金额
Pair
<
Long
,
Long
>
pair
=
getSmallMaterialAmount
(
discountGood
.
getSmallMaterial
());
//value1=总实付 value2=总优惠
Long
mealDiscountAmount
=
0L
;
//套餐优惠不算在内
if
(
CollectionUtils
.
isNotEmpty
(
discountGood
.
getDiscounts
())){
Optional
<
String
>
goodCoupon
=
discountGood
.
getDiscounts
().
stream
().
filter
(
goodsDiscount
->
Objects
.
equals
(
goodsDiscount
.
getType
(),
ActivityTypeEnum
.
TYPE_32
.
getCode
())
||
Objects
.
equals
(
goodsDiscount
.
getType
(),
ActivityTypeEnum
.
TYPE_33
.
getCode
())).
map
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
::
getActivityCode
).
findFirst
();
cartProduct
.
setCouponCode
(
goodCoupon
!=
null
&&
goodCoupon
.
isPresent
()?
goodCoupon
.
get
():
null
);
mealDiscountAmount
=
discountGood
.
getDiscounts
().
stream
().
filter
(
goodsDiscount
->
Objects
.
equals
(
goodsDiscount
.
getType
(),
ActivityTypeEnum
.
TYPE_310
.
getCode
())).
mapToLong
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsDiscount
::
getDiscount
).
sum
();
}
cartProduct
.
setOriginalTotalAmount
(
discountGood
.
getRealAmount
()+
discountGood
.
getDiscountAmount
()
+
pair
.
getFirst
()+
pair
.
getSecond
()
-
mealDiscountAmount
);
cartProduct
.
setRealAmount
(
discountGood
.
getRealAmount
()+
pair
.
getFirst
());
cartProduct
.
setDiscountAmount
(
discountGood
.
getDiscountAmount
()+
pair
.
getSecond
()
-
mealDiscountAmount
);
goods
.
add
(
cartProduct
);
}
couponAvailableCartInfo
.
setProductList
(
goods
);
}
couponAvailableCartInfo
.
setOriginalTotalAmount
(
discountResult
.
getOriginalTotalAmount
()
-
totalMealDiscountAmount
);
couponAvailableCartInfo
.
setRealAmount
(
discountResult
.
getTotalAmount
());
couponAvailableCartInfo
.
setDiscountAmount
(
discountResult
.
getTotalDiscountAmount
()
-
totalMealDiscountAmount
);
}
else
{
couponAvailableCartInfo
.
setProductList
(
new
ArrayList
<>());
couponAvailableCartInfo
.
setOriginalTotalAmount
(
0L
);
couponAvailableCartInfo
.
setRealAmount
(
0L
);
couponAvailableCartInfo
.
setDiscountAmount
(
0L
);
}
return
couponAvailableCartInfo
;
}
private
Pair
<
Long
,
Long
>
getSmallMaterialAmountSharing
(
List
<
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
SmallMaterial
>
smallMaterial
){
long
realAmount
=
0
;
long
discountAmount
=
0
;
if
(
org
.
apache
.
commons
.
collections
.
CollectionUtils
.
isNotEmpty
(
smallMaterial
)){
for
(
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
SmallMaterial
small
:
smallMaterial
){
realAmount
+=
small
.
getRealAmount
();
discountAmount
+=
small
.
getDiscountAmount
();
}
}
return
Pair
.
of
(
realAmount
,
discountAmount
);
}
private
Pair
<
Long
,
Long
>
getSmallMaterialAmount
(
List
<
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsMaterial
>
smallMaterial
){
long
realAmount
=
0
;
long
discountAmount
=
0
;
if
(
org
.
apache
.
commons
.
collections
.
CollectionUtils
.
isNotEmpty
(
smallMaterial
)){
for
(
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
.
GoodsMaterial
small
:
smallMaterial
){
realAmount
+=
small
.
getRealAmount
();
discountAmount
+=
small
.
getDiscountAmount
();
}
}
return
Pair
.
of
(
realAmount
,
discountAmount
);
}
}
}
shopping-cart-application-service/src/main/java/cn/freemud/controller/ShoppingCartController.java
View file @
c6cd445c
...
@@ -16,21 +16,18 @@ import cn.freemud.aop.LogIgnore;
...
@@ -16,21 +16,18 @@ import cn.freemud.aop.LogIgnore;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.demo.controller.ShoppingCartDemoController
;
import
cn.freemud.demo.controller.ShoppingCartDemoController
;
import
cn.freemud.demo.entities.dto.goods.add.AddGoodsRequestDTO
;
import
cn.freemud.entities.dto.GetMemberInfoRequestDto
;
import
cn.freemud.entities.dto.GetMemberInfoRequestDto
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.coupon.CouponAvailableRequestVo
;
import
cn.freemud.enums.OrderChannelType
;
import
cn.freemud.enums.OrderChannelType
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.service.OpenStoreIappWxappConfigService
;
import
cn.freemud.service.OpenStoreIappWxappConfigService
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.service.ShoppingCartNewService
;
import
cn.freemud.service.ShoppingCartNewService
;
import
cn.freemud.service.impl.ShoppingCartMallServiceImpl
;
import
cn.freemud.service.impl.ShoppingCartMallServiceImpl
;
import
cn.freemud.service.impl.ShoppingCartMealServiceImpl
;
import
cn.freemud.service.impl.ShoppingCartMealServiceImpl
;
import
cn.freemud.service.impl.ShoppingCartNewServiceImpl
;
import
cn.freemud.service.impl.ShoppingCartNewServiceImpl
;
import
cn.freemud.service.impl.ShoppingCartToolsServiceImpl
;
import
cn.freemud.service.impl.ShoppingCartToolsServiceImpl
;
import
cn.freemud.utils.BeanUtil
;
import
cn.freemud.utils.ResponseUtil
;
import
cn.freemud.utils.ResponseUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo
;
import
com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo
;
import
com.freemud.api.assortment.datamanager.enums.IappIdType
;
import
com.freemud.api.assortment.datamanager.enums.IappIdType
;
import
com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager
;
import
com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager
;
...
@@ -38,10 +35,9 @@ import com.freemud.application.sdk.api.base.SDKCommonBaseContextWare;
...
@@ -38,10 +35,9 @@ import com.freemud.application.sdk.api.base.SDKCommonBaseContextWare;
import
com.freemud.application.sdk.api.log.ApiAnnotation
;
import
com.freemud.application.sdk.api.log.ApiAnnotation
;
import
com.freemud.application.sdk.api.log.LogParams
;
import
com.freemud.application.sdk.api.log.LogParams
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
lombok.extern.slf4j.Slf4j
;
import
ma.glasnost.orika.MapperFacade
;
import
ma.glasnost.orika.MapperFacade
;
import
org.apache.commons.beanutils.BeanUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.MediaType
;
import
org.springframework.http.MediaType
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.validation.annotation.Validated
;
...
@@ -248,4 +244,12 @@ public class ShoppingCartController {
...
@@ -248,4 +244,12 @@ public class ShoppingCartController {
public
BaseResponse
premiumExchange
(
@LogParams
@RequestBody
PremiumExchangeRequestVo
request
)
{
public
BaseResponse
premiumExchange
(
@LogParams
@RequestBody
PremiumExchangeRequestVo
request
)
{
return
SDKCommonBaseContextWare
.
getBean
(
ShoppingCartNewServiceImpl
.
class
).
premiumExchange
(
request
);
return
SDKCommonBaseContextWare
.
getBean
(
ShoppingCartNewServiceImpl
.
class
).
premiumExchange
(
request
);
}
}
/**
* 券码查询购物车商品信息(平台结算页可用券列表用)
*/
@PostMapping
(
value
=
"/getCartInfoByUser"
)
@LogIgnore
(
excludeStatusCodes
=
{
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
},
logMessage
=
"/getCartInfoByUser"
)
public
BaseResponse
getCartInfoByUser
(
@LogParams
@RequestBody
CouponAvailableRequestVo
request
)
{
return
SDKCommonBaseContextWare
.
getBean
(
ShoppingCartNewServiceImpl
.
class
).
getCartInfoByUser
(
request
);
}
}
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/coupon/CartProduct.java
0 → 100644
View file @
c6cd445c
package
cn
.
freemud
.
entities
.
vo
.
coupon
;
import
lombok.Data
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: cn.freemud.entities.vo.coupon Product
* @Description: TDO 描述....
* @author: family
* @date: 2020/6/30
* @Copyright: www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public
class
CartProduct
{
/**
* 商品id
*/
private
String
productId
;
/**
* 总原价金额(包括主商品+可选搭配+加料商品)
*/
private
Long
originalTotalAmount
;
/**
* 总实付金额(包括主商品+可选搭配+加料商品)
*/
private
Long
realAmount
;
//总优惠金额(不包括赠品优惠金额和套餐优惠金额)
private
Long
discountAmount
;
/**
* 主商品数量
*/
private
Integer
quantity
;
//使用的商品券号
private
String
couponCode
;
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/coupon/CouponAvailableCartInfo.java
0 → 100644
View file @
c6cd445c
package
cn
.
freemud
.
entities
.
vo
.
coupon
;
import
cn.freemud.entities.vo.CartGoods
;
import
lombok.Data
;
import
java.util.List
;
/**
* All rights Reserved, Designed By sunary.site
*
* @version v1.0
* @Title: IntelliJ IDEA
* @Package cn.freemud.service.impl.mcoffee.entity
* @Description: 请简单描述下这个类是做什么用的
* @author: yu.sun
* @date: 2020-10-26 13:59:32
* @Copyright: 2019 www.freemud.cn Inc. All rights reserved.
*/
@Data
public
class
CouponAvailableCartInfo
{
//渠道id
private
String
providerId
;
//商户号
private
String
merchantId
;
//门店id(校验门店限制)
private
String
storeId
;
//组织机构id列表(校验渠道限制)
private
List
<
String
>
channelIdList
;
//组织机构code列表(校验渠道限制)
private
List
<
String
>
channelCodeList
;
//已使用券列表
private
List
<
String
>
couponCodes
;
/**
* 总原价金额(包括主商品+可选搭配+加料商品)
*/
private
Long
originalTotalAmount
;
/**
* 总实付金额(包括主商品+可选搭配+加料商品)
*/
private
Long
realAmount
;
//总优惠金额(不包括赠品优惠金额和套餐优惠金额)
private
Long
discountAmount
;
//购物车商品列表
private
List
<
CartProduct
>
productList
;
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/coupon/CouponAvailableRequestVo.java
0 → 100644
View file @
c6cd445c
package
cn
.
freemud
.
entities
.
vo
.
coupon
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: QueryCartInfoRequestVo
* @Package cn.freemud.entities.vo
* @Description: 简单描述下这个类是做什么用的
* @author: yu.sun
* @date: 2020/9/11 10:35
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public
class
CouponAvailableRequestVo
{
@NotNull
(
message
=
"门店id不可为空"
)
private
String
storeId
;
@ApiModelProperty
(
value
=
"sessionId"
,
required
=
true
)
@NotNull
(
message
=
"用户sessionId不可为空"
)
private
String
sessionId
;
@ApiModelProperty
(
value
=
"menuType"
,
notes
=
"业务类型: 0 : 自提 1:外卖 2:微商城"
,
required
=
true
)
@NotNull
(
message
=
"业务类型不可为空"
)
private
String
menuType
;
@ApiModelProperty
(
value
=
"订单类型"
)
@NotNull
(
message
=
"订单类型不可为空"
)
private
Integer
orderType
;
@ApiModelProperty
(
value
=
"收货地址id"
,
notes
=
"svc卡支付外卖订单必传"
)
private
String
receiveId
;
}
\ No newline at end of file
shopping-cart-application-service/src/main/java/cn/freemud/enums/ActivityTypeEnum.java
View file @
c6cd445c
...
@@ -34,6 +34,7 @@ public enum ActivityTypeEnum {
...
@@ -34,6 +34,7 @@ public enum ActivityTypeEnum {
TYPE_3
(
3
,
"代金券"
),
TYPE_3
(
3
,
"代金券"
),
TYPE_31
(
31
,
"折扣券"
),
TYPE_31
(
31
,
"折扣券"
),
TYPE_32
(
32
,
"商品券"
),
TYPE_32
(
32
,
"商品券"
),
TYPE_33
(
33
,
"换购券"
),
TYPE_37
(
37
,
"月享卡种子券"
),
TYPE_37
(
37
,
"月享卡种子券"
),
TYPE_5
(
5
,
"整单满金额折"
),
TYPE_5
(
5
,
"整单满金额折"
),
TYPE_51
(
51
,
"每满金额折"
),
TYPE_51
(
51
,
"每满金额折"
),
...
@@ -57,6 +58,7 @@ public enum ActivityTypeEnum {
...
@@ -57,6 +58,7 @@ public enum ActivityTypeEnum {
TYPE_200
(
200
,
"X元Y件"
),
TYPE_200
(
200
,
"X元Y件"
),
TYPE_PACKAGE
(
900
,
"包装费"
),
TYPE_PACKAGE
(
900
,
"包装费"
),
TYPE_DELIVERY
(
901
,
"配送费"
),
TYPE_DELIVERY
(
901
,
"配送费"
),
TYPE_310
(
310
,
"套餐活动优惠"
),
TYPE_320
(
320
,
"会员价商品优惠"
),
TYPE_320
(
320
,
"会员价商品优惠"
),
TYPE_221
(
221
,
"集点"
);
TYPE_221
(
221
,
"集点"
);
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
View file @
c6cd445c
...
@@ -36,6 +36,8 @@ import cn.freemud.entities.dto.user.GetSessionUserInfoDto;
...
@@ -36,6 +36,8 @@ import cn.freemud.entities.dto.user.GetSessionUserInfoDto;
import
cn.freemud.entities.dto.user.GetUserScoreUseDetailRequest
;
import
cn.freemud.entities.dto.user.GetUserScoreUseDetailRequest
;
import
cn.freemud.entities.dto.user.GetUserScoreUserDetailResponse
;
import
cn.freemud.entities.dto.user.GetUserScoreUserDetailResponse
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.coupon.CouponAvailableCartInfo
;
import
cn.freemud.entities.vo.coupon.CouponAvailableRequestVo
;
import
cn.freemud.enums.*
;
import
cn.freemud.enums.*
;
import
cn.freemud.interceptor.BizServiceException
;
import
cn.freemud.interceptor.BizServiceException
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.interceptor.ServiceException
;
...
@@ -55,7 +57,6 @@ import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPa
...
@@ -55,7 +57,6 @@ import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPa
import
com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformPartnerStoreDeliveryConfigManager
;
import
com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformPartnerStoreDeliveryConfigManager
;
import
com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager
;
import
com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager
;
import
com.freemud.application.sdk.api.base.SDKCommonBaseContextWare
;
import
com.freemud.application.sdk.api.base.SDKCommonBaseContextWare
;
import
com.freemud.application.sdk.api.constant.FMStatusCode
;
import
com.freemud.application.sdk.api.log.ApiLog
;
import
com.freemud.application.sdk.api.log.ApiLog
;
import
com.freemud.application.sdk.api.log.ErrorLog
;
import
com.freemud.application.sdk.api.log.ErrorLog
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
...
@@ -81,11 +82,9 @@ import com.freemud.sdk.api.assortment.shoppingcart.service.ShoppingCartBaseServi
...
@@ -81,11 +82,9 @@ import com.freemud.sdk.api.assortment.shoppingcart.service.ShoppingCartBaseServi
import
com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl
;
import
com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Lists
;
import
javafx.util.Pair
;
import
javafx.util.Pair
;
import
javafx.util.Pair
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
ma.glasnost.orika.MapperFacade
;
import
ma.glasnost.orika.MapperFacade
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.MapUtils
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -2863,4 +2862,47 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -2863,4 +2862,47 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
}
}
}
}
}
}
/**
* 券码查询购物车商品信息(平台用)
* @param requestVo
* @return
*/
public
BaseResponse
<
CouponAvailableCartInfo
>
getCartInfoByUser
(
CouponAvailableRequestVo
requestVo
){
// 获取用户信息
CustomerInfoVo
assortmentCustomerInfoVo
=
getCustomerInfoVo
(
requestVo
.
getSessionId
());
String
userId
=
assortmentCustomerInfoVo
.
getMemberId
();
String
partnerId
=
assortmentCustomerInfoVo
.
getPartnerId
();
String
appId
=
assortmentCustomerInfoVo
.
getAppId
();
String
storeId
=
requestVo
.
getStoreId
();
String
menuType
=
requestVo
.
getMenuType
();
Integer
orderType
=
requestVo
.
getOrderType
();
CouponAvailableCartInfo
couponAvailableCartInfo
;
List
<
String
>
orgCodes
=
commonService
.
getOrgCodes
(
partnerId
,
storeId
);
// 获取购物车商品
List
<
CartGoods
>
cartGoodsList
=
assortmentSdkService
.
getShoppingCartForCoupon
(
partnerId
,
requestVo
.
getStoreId
(),
userId
,
""
,
shoppingCartBaseService
);
if
(
grayPush
(
partnerId
,
storeId
,
"2"
))
{
CalculationSharingDiscountResponseDto
.
CalculationDiscountResult
discountResult
=
sharingDiscountService
.
getCalculationSharingDiscountResult
(
menuType
,
partnerId
,
storeId
,
userId
,
appId
,
orderType
,
assortmentCustomerInfoVo
.
isMemberPaid
()
,
cartGoodsList
,
new
ArrayList
<>()
//券
,
null
//加价购商品
,
0L
,
null
);
couponAvailableCartInfo
=
activityAdapter
.
convert2CouponAvailableCartInfoSharing
(
partnerId
,
storeId
,
discountResult
,
orgCodes
);
}
else
{
// 获取优惠信息
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
=
getCalculationDiscountResult
(
menuType
,
partnerId
,
storeId
,
userId
,
appId
,
assortmentCustomerInfoVo
.
getWxAppId
(),
orderType
,
assortmentCustomerInfoVo
.
isMemberPaid
(),
cartGoodsList
,
new
ArrayList
<>(),
null
,
null
,
0L
);
couponAvailableCartInfo
=
activityAdapter
.
convert2CouponAvailableCartInfo
(
partnerId
,
storeId
,
calculationDiscountResult
,
orgCodes
);
}
return
ResponseUtil
.
success
(
couponAvailableCartInfo
);
}
}
}
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