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
8331e3f2
Commit
8331e3f2
authored
Dec 09, 2020
by
缪晖
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
重新计算购物车行优惠信息
parent
31690b06
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
55 additions
and
65 deletions
+55
-65
order-application-service/src/main/java/cn/freemud/service/impl/CollageOrderServiceImpl.java
+21
-21
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartCollageServiceImpl.java
+33
-43
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/TimeSalePromotionService.java
+1
-1
No files found.
order-application-service/src/main/java/cn/freemud/service/impl/CollageOrderServiceImpl.java
View file @
8331e3f2
...
...
@@ -95,27 +95,27 @@ public class CollageOrderServiceImpl implements CollageOrderService {
BaseResponse
orderCreateResponse
=
this
.
orderService
.
createOrderNew
(
createOrderVo
);
if
(
null
!=
orderCreateResponse
&&
null
!=
orderCreateResponse
.
getResult
())
{
Object
result
=
orderCreateResponse
.
getResult
();
String
oid
=
null
;
if
(
result
instanceof
CreateOrderOperateDto
)
{
oid
=
((
CreateOrderOperateDto
)
result
).
getFatherOrderBean
().
getOid
();
}
else
if
(
result
instanceof
CreateOrderResponseVo
)
{
oid
=
((
CreateOrderResponseVo
)
result
).
getOid
();
}
// 清空拼单购物车
collageOrderDto
=
new
CollageOrderDto
();
collageOrderDto
.
setSessionId
(
StringUtils
.
isBlank
(
createOrderVo
.
getSessionId
())
?
oid
:
createOrderVo
.
getSessionId
());
collageOrderDto
.
setPartnerId
(
createOrderVo
.
getPartnerId
());
collageOrderDto
.
setShopId
(
createOrderVo
.
getShopId
());
collageOrderDto
.
setCreateCollageUserId
(
createOrderVo
.
getUserId
());
collageOrderDto
.
setOrderCode
(
oid
);
collageOrderDto
.
setStatus
(
3
);
//支付中
shoppingCartClient
.
updateCollageOrder
(
collageOrderDto
);
}
//
if (null != orderCreateResponse && null != orderCreateResponse.getResult()) {
//
Object result = orderCreateResponse.getResult();
//
//
String oid = null;
//
//
if (result instanceof CreateOrderOperateDto) {
//
oid = ((CreateOrderOperateDto) result).getFatherOrderBean().getOid();
//
} else if (result instanceof CreateOrderResponseVo) {
//
oid = ((CreateOrderResponseVo) result).getOid();
//
}
//
//
// 清空拼单购物车
//
collageOrderDto = new CollageOrderDto();
//
collageOrderDto.setSessionId(StringUtils.isBlank(createOrderVo.getSessionId()) ? oid : createOrderVo.getSessionId());
//
collageOrderDto.setPartnerId(createOrderVo.getPartnerId());
//
collageOrderDto.setShopId(createOrderVo.getShopId());
//
collageOrderDto.setCreateCollageUserId(createOrderVo.getUserId());
//
collageOrderDto.setOrderCode(oid);
//
collageOrderDto.setStatus(3);//支付中
//
shoppingCartClient.updateCollageOrder(collageOrderDto);
//
}
return
orderCreateResponse
;
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartCollageServiceImpl.java
View file @
8331e3f2
...
...
@@ -7,6 +7,7 @@ import cn.freemud.base.entity.BaseResponse;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.constant.ShoppingCartConstant
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.activity.ActivityDiscountsDto
;
import
cn.freemud.entities.dto.activity.ActivityQueryDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.vo.*
;
...
...
@@ -706,6 +707,9 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
// 购物车购买人包装费计算
updatePackPrice
(
shoppingCartGoodsResponseVo
,
shoppingCartGoodsDto
);
// 重新计算购物车行折扣总金额
updateTotalDiscountAmount
(
shoppingCartGoodsDto
);
return
ResponseUtil
.
success
(
shoppingCartGoodsDto
);
}
...
...
@@ -726,6 +730,20 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
}
}
/**
* 重新计算拼单购物车行总折扣金额
*/
private
void
updateTotalDiscountAmount
(
ShoppingCartGoodsDto
shoppingCartGoodsDto
)
{
if
(
null
!=
shoppingCartGoodsDto
&&
null
!=
shoppingCartGoodsDto
.
getProducts
())
{
shoppingCartGoodsDto
.
getProducts
().
stream
().
forEach
(
product
->
{
List
<
ActivityDiscountsDto
>
activityDiscountsDtos
=
product
.
getActivityDiscountsDtos
();
if
(
null
!=
activityDiscountsDtos
&&
!
activityDiscountsDtos
.
isEmpty
())
{
product
.
setTotalDiscountAmount
(
activityDiscountsDtos
.
stream
().
mapToInt
(
ActivityDiscountsDto:
:
getDiscountAmount
).
sum
());
}
});
}
}
@Override
public
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
getActivityCalculationDiscountResponse
(
String
partnerId
,
String
storeId
,
String
userId
,
String
appId
,
Integer
orderType
,
boolean
isMember
,
List
<
CartGoods
>
cartGoodsList
,
List
<
ActivityCalculationDiscountRequestDto
.
CalculationDiscountCoupon
>
coupons
,
List
<
ShoppingCartInfoRequestVo
.
SendGoods
>
sendGoodsList
,
String
menuType
,
Long
distributionFee
)
{
ActivityCalculationDiscountRequestDto
activityCalculationDiscountRequestDto
=
getActivityCalculationDiscountRequestDto
(
partnerId
,
storeId
,
userId
,
appId
,
orderType
);
...
...
@@ -1265,49 +1283,21 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
if
(
response
.
getData
()
==
null
||
response
.
getData
().
getData
()
==
null
||
response
.
getData
().
getData
().
getCardSimpleInfos
().
size
()
>
1
)
{
throw
new
ServiceException
(
ResponseResult
.
USER_SVC_CARD_ERROR
);
}
boolean
check
=
this
.
checkSvcComPay
(
partnerId
,
storeId
);
if
(
check
)
{
//混合支付无需校验svc卡余额,但是配送和包装费不计算在svc卡支付
Integer
amount1
=
response
.
getData
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getAmount
();
Integer
vamount
=
response
.
getData
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getVamount
();
Integer
svcTotalAmount
=
amount1
+
vamount
;
//获取实际配送费
Integer
deliveryAmount
=
0
;
Integer
svcPayAmount
=
0
;
if
(
StringUtils
.
isNotBlank
(
receiveId
)
&&
shoppingCartGoodsResponseVo
.
getDiscountDeliveryAmount
()
!=
null
)
{
//Integer deliveryAmount = getDeliveryAmount(receiveId, partnerId, storeId);
deliveryAmount
=
shoppingCartGoodsResponseVo
.
getDiscountDeliveryAmount
().
intValue
();
orderAmount
+=
deliveryAmount
;
}
if
(
svcTotalAmount
>
0
&&
svcTotalAmount
>
orderAmount
)
{
svcPayAmount
=
orderAmount
;
shoppingCartGoodsResponseVo
.
setTotalAmount
(
0L
);
}
else
if
(
svcTotalAmount
>
0
&&
svcTotalAmount
<=
orderAmount
)
{
svcPayAmount
=
svcTotalAmount
;
shoppingCartGoodsResponseVo
.
setTotalAmount
((
orderAmount
.
longValue
()-
svcPayAmount
.
longValue
()));
}
BigDecimal
bigDecimal
=
new
BigDecimal
(
svcPayAmount
);
String
amountStr
=
bigDecimal
.
divide
(
new
BigDecimal
(
100
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
).
toString
();
shoppingCartGoodsResponseVo
.
setSvcPayAmount
(
amountStr
);
shoppingCartGoodsResponseVo
.
setSvcDiscountDesc
(
"储值卡支付¥"
+
amountStr
);
}
else
{
//获取实际配送费
if
(
StringUtils
.
isNotBlank
(
receiveId
)
&&
shoppingCartGoodsResponseVo
.
getDiscountDeliveryAmount
()
!=
null
)
{
Integer
deliveryAmount
=
shoppingCartGoodsResponseVo
.
getDiscountDeliveryAmount
().
intValue
();
orderAmount
+=
deliveryAmount
;
}
Integer
amount1
=
response
.
getData
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getAmount
();
Integer
vamount
=
response
.
getData
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getVamount
();
if
(
orderAmount
>
amount1
+
vamount
)
{
throw
new
ServiceException
(
ResponseResult
.
USER_SVC_CARD_AMOUNT_DEFICIENCY
);
}
BigDecimal
bigDecimal
=
new
BigDecimal
(
orderAmount
);
String
amountStr
=
bigDecimal
.
divide
(
new
BigDecimal
(
100
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
).
toString
();
shoppingCartGoodsResponseVo
.
setTotalAmount
(
0L
);
shoppingCartGoodsResponseVo
.
setSvcDiscountDesc
(
"储值卡支付¥"
+
amountStr
);
}
//获取实际配送费
if
(
StringUtils
.
isNotBlank
(
receiveId
)
&&
shoppingCartGoodsResponseVo
.
getDiscountDeliveryAmount
()
!=
null
)
{
// Integer deliveryAmount = getDeliveryAmount(receiveId, partnerId, storeId);
Integer
deliveryAmount
=
shoppingCartGoodsResponseVo
.
getDiscountDeliveryAmount
().
intValue
();
orderAmount
+=
deliveryAmount
;
}
Integer
amount1
=
response
.
getData
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getAmount
();
Integer
vamount
=
response
.
getData
().
getData
().
getCardSimpleInfos
().
get
(
0
).
getVamount
();
if
(
orderAmount
>
amount1
+
vamount
)
{
throw
new
ServiceException
(
ResponseResult
.
USER_SVC_CARD_AMOUNT_DEFICIENCY
);
}
BigDecimal
bigDecimal
=
new
BigDecimal
(
orderAmount
);
String
amountStr
=
bigDecimal
.
divide
(
new
BigDecimal
(
100
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
).
toString
();
shoppingCartGoodsResponseVo
.
setTotalAmount
(
0L
);
shoppingCartGoodsResponseVo
.
setSvcDiscountDesc
(
"储值卡支付¥"
+
amountStr
);
}
/**
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/TimeSalePromotionService.java
View file @
8331e3f2
...
...
@@ -116,7 +116,7 @@ public class TimeSalePromotionService implements IPromotionService {
}
Integer
actualGoodsNumber
=
numberMap
.
get
(
cartGoods
.
getSkuId
());
if
(
actualGoodsNumber
>
0
)
{
Long
totalDiscountAmount
=
cartGoods
.
getQty
()
>
actualGoodsNumber
?
goods
.
getDiscountAmount
()
*
actualGoodsNumber
/
goods
.
getActualGoodsNumber
()
:
goods
.
getDiscountAmount
()
*
cartGoods
.
getQty
()
/
goods
.
getActualGoodsNumber
();
Long
totalDiscountAmount
=
cartGoods
.
getQty
()
>
actualGoodsNumber
?
goods
Discount
.
getDiscount
()
*
actualGoodsNumber
/
goodsDiscount
.
getActualGoodsNumber
()
:
goodsDiscount
.
getDiscount
()
*
cartGoods
.
getQty
()
/
goodsDiscount
.
getActualGoodsNumber
();
ActivityDiscountsDto
activityDiscountsDto
=
new
ActivityDiscountsDto
();
activityDiscountsDto
.
setActivityCode
(
goodsDiscount
.
getActivityCode
());
activityDiscountsDto
.
setActivityName
(
goodsDiscount
.
getActivityName
());
...
...
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