Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gxpt_ht
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
pseer
gxpt_ht
Commits
eb323519
Commit
eb323519
authored
Sep 23, 2024
by
吕明尚
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改订单计算
parent
2dec1bba
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
147 additions
and
111 deletions
+147
-111
SConsumerServiceImpl.java
.../java/share/system/service/impl/SConsumerServiceImpl.java
+1
-5
SOrderServiceImpl.java
...ain/java/share/system/service/impl/SOrderServiceImpl.java
+146
-106
No files found.
share-system/src/main/java/share/system/service/impl/SConsumerServiceImpl.java
View file @
eb323519
...
...
@@ -13,7 +13,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
share.common.constant.SmsConstants
;
import
share.common.core.page.TableDataInfo
;
import
share.common.enums.ConsumerCouponUseStatusEnum
;
import
share.common.enums.PositionEnum
;
import
share.common.enums.RoleTypeEnum
;
...
...
@@ -23,9 +22,7 @@ import share.common.utils.BaseUtil;
import
share.common.utils.DateUtil
;
import
share.common.utils.DateUtils
;
import
share.system.domain.*
;
import
share.system.domain.vo.FrontTokenComponent
;
import
share.system.domain.vo.MemberConfigVo
;
import
share.system.domain.vo.SConsumerVo
;
import
share.system.domain.vo.*
;
import
share.system.mapper.SConsumerMapper
;
import
share.system.mapper.SStoreConsumerMapper
;
import
share.system.request.RegisterThirdSConsumerRequest
;
...
...
@@ -35,7 +32,6 @@ import java.math.BigDecimal;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* 会员用户Service业务层处理
...
...
share-system/src/main/java/share/system/service/impl/SOrderServiceImpl.java
View file @
eb323519
...
...
@@ -2483,39 +2483,39 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
priceResponse
.
setDiscount
(
BigDecimal
.
ZERO
);
priceResponse
.
setMemberDiscount
(
BigDecimal
.
ZERO
);
Activity
activity
=
null
;
ConsumerMember
consumerMember
=
null
;
ConsumerWallet
consumerWallet
=
null
;
//
ConsumerMember consumerMember = null;
//
ConsumerWallet consumerWallet = null;
ConsumerMonthlyCard
consumerMonthlyCard
=
null
;
List
<
ConsumerSecondaryCard
>
consumerSecondaryCardList
=
null
;
LambdaQueryWrapper
<
Activity
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
if
(
ObjectUtil
.
isNotEmpty
(
user
))
{
consumerWallet
=
consumerWalletService
.
getOne
(
new
LambdaQueryWrapper
<
ConsumerWallet
>().
eq
(
ConsumerWallet:
:
getConsumerId
,
user
.
getId
()));
consumerMember
=
consumerMemberService
.
getOne
(
new
LambdaQueryWrapper
<
ConsumerMember
>().
eq
(
ConsumerMember:
:
getConsumerId
,
user
.
getId
()));
//
consumerWallet = consumerWalletService.getOne(new LambdaQueryWrapper<ConsumerWallet>().eq(ConsumerWallet::getConsumerId, user.getId()));
//
consumerMember = consumerMemberService.getOne(new LambdaQueryWrapper<ConsumerMember>().eq(ConsumerMember::getConsumerId, user.getId()));
consumerMonthlyCard
=
consumerMonthlyCardService
.
getOne
(
new
LambdaQueryWrapper
<
ConsumerMonthlyCard
>().
eq
(
ConsumerMonthlyCard:
:
getConsumerId
,
user
.
getId
()));
consumerSecondaryCardList
=
consumerSecondaryCardService
.
list
(
new
LambdaQueryWrapper
<
ConsumerSecondaryCard
>().
eq
(
ConsumerSecondaryCard:
:
getConsumerId
,
user
.
getId
())
.
ne
(
ConsumerSecondaryCard:
:
getNumber
,
YesNoEnum
.
no
.
getIndex
())
);
if
(
ObjectUtil
.
isNotEmpty
(
consumerMember
))
{
queryWrapper
.
eq
(
Activity:
:
getIsOpen
,
YesNoEnum
.
yes
.
getIndex
());
// if (consumerMember.getIsRights().equals(YesNoEnum.yes.getIndex())) {
// queryWrapper.eq(Activity::getMemberType, MemberTypeEnum.RIGHTS.getIndex());
// if (ObjectUtil.isNotEmpty(consumerMember)) {
// queryWrapper.eq(Activity::getIsOpen, YesNoEnum.yes.getIndex());
//// if (consumerMember.getIsRights().equals(YesNoEnum.yes.getIndex())) {
//// queryWrapper.eq(Activity::getMemberType, MemberTypeEnum.RIGHTS.getIndex());
//// } else if (consumerMember.getIsRecharge().equals(YesNoEnum.yes.getIndex()) && consumerMember.getIsRights().equals(YesNoEnum.no.getIndex())) {
//// queryWrapper.eq(Activity::getMemberType, MemberTypeEnum.RECHARGE.getIndex());
//// } else {
//// queryWrapper.eq(Activity::getMemberType, MemberTypeEnum.NORMAL.getIndex());
//// }
// if (consumerMember.getIsRecharge().equals(YesNoEnum.no.getIndex()) && consumerMember.getIsRights().equals(YesNoEnum.no.getIndex())) {
// queryWrapper.eq(Activity::getMemberType, MemberTypeEnum.NORMAL.getIndex());
// } else if (consumerMember.getIsRecharge().equals(YesNoEnum.yes.getIndex()) && consumerMember.getIsRights().equals(YesNoEnum.yes.getIndex())) {
// queryWrapper.in(Activity::getMemberType, MemberTypeEnum.RECHARGE.getIndex(), MemberTypeEnum.RIGHTS.getIndex());
// } else if (consumerMember.getIsRecharge().equals(YesNoEnum.yes.getIndex()) && consumerMember.getIsRights().equals(YesNoEnum.no.getIndex())) {
//// activity.setMemberType(MemberTypeEnum.RECHARGE.getIndex());
// queryWrapper.eq(Activity::getMemberType, MemberTypeEnum.RECHARGE.getIndex());
// } else {
// queryWrapper.eq(Activity::getMemberType, MemberTypeEnum.NORMAL.getIndex());
// } else if (consumerMember.getIsRights().equals(YesNoEnum.yes.getIndex()) && consumerMember.getIsRecharge().equals(YesNoEnum.no.getIndex())) {
//// activity.setMemberType(MemberTypeEnum.RIGHTS.getIndex());
// queryWrapper.eq(Activity::getMemberType, MemberTypeEnum.RIGHTS.getIndex());
// }
// }
if
(
consumerMember
.
getIsRecharge
().
equals
(
YesNoEnum
.
no
.
getIndex
())
&&
consumerMember
.
getIsRights
().
equals
(
YesNoEnum
.
no
.
getIndex
()))
{
queryWrapper
.
eq
(
Activity:
:
getMemberType
,
MemberTypeEnum
.
NORMAL
.
getIndex
());
}
else
if
(
consumerMember
.
getIsRecharge
().
equals
(
YesNoEnum
.
yes
.
getIndex
())
&&
consumerMember
.
getIsRights
().
equals
(
YesNoEnum
.
yes
.
getIndex
()))
{
queryWrapper
.
in
(
Activity:
:
getMemberType
,
MemberTypeEnum
.
RECHARGE
.
getIndex
(),
MemberTypeEnum
.
RIGHTS
.
getIndex
());
}
else
if
(
consumerMember
.
getIsRecharge
().
equals
(
YesNoEnum
.
yes
.
getIndex
())
&&
consumerMember
.
getIsRights
().
equals
(
YesNoEnum
.
no
.
getIndex
()))
{
// activity.setMemberType(MemberTypeEnum.RECHARGE.getIndex());
queryWrapper
.
eq
(
Activity:
:
getMemberType
,
MemberTypeEnum
.
RECHARGE
.
getIndex
());
}
else
if
(
consumerMember
.
getIsRights
().
equals
(
YesNoEnum
.
yes
.
getIndex
())
&&
consumerMember
.
getIsRecharge
().
equals
(
YesNoEnum
.
no
.
getIndex
()))
{
// activity.setMemberType(MemberTypeEnum.RIGHTS.getIndex());
queryWrapper
.
eq
(
Activity:
:
getMemberType
,
MemberTypeEnum
.
RIGHTS
.
getIndex
());
}
}
// if (ObjectUtil.isNotEmpty(consumerWallet)) {
// priceResponse.setAvailableBalance(consumerWallet.getBalance());
// priceResponse.setAvailableDuration(consumerWallet.getRemainingDuration());
...
...
@@ -2532,17 +2532,17 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
priceResponse
.
setTotalFee
(
payPrice
);
priceResponse
.
setTotalFeeNow
(
payPrice
);
request
.
setBuyType
(
BuyTypeEnum
.
TIME
.
getCode
());
if
(
ObjectUtil
.
isNotEmpty
(
consumerMember
))
{
queryWrapper
.
eq
(
Activity:
:
getLabelId
,
roomLabel
.
getLabelId
());
activity
=
activityService
.
getOne
(
queryWrapper
);
totalFee
=
getBigDecimal
(
request
,
activity
,
payPrice
,
user
,
consumerMember
);
priceResponse
.
setTotalFeeNow
(
totalFee
);
priceResponse
.
setMemberDiscount
(
payPrice
.
subtract
(
totalFee
));
// if (ObjectUtil.isNotEmpty(consumerMember)) {
// queryWrapper.eq(Activity::getLabelId, roomLabel.getLabelId());
// activity = activityService.getOne(queryWrapper);
// totalFee = getBigDecimal(request, activity, payPrice, user, consumerMember);
// priceResponse.setTotalFeeNow(totalFee);
priceResponse
.
setDiscount
(
totalFee
.
divide
(
payPrice
,
2
,
RoundingMode
.
HALF_UP
).
multiply
(
new
BigDecimal
(
100
)));
priceResponse
.
setDiscountRatio
(
priceResponse
.
getDiscount
());
totalFee
=
getBigDecimal
(
consumerWallet
,
activity
,
timeLong
,
priceResponse
,
totalFee
,
room
,
request
,
consumerMember
);
}
// priceResponse.setMemberDiscount(payPrice.subtract(totalFee));
//// priceResponse.setTotalFeeNow(totalFee);
// priceResponse.setDiscount(totalFee.divide(payPrice, 2, RoundingMode.HALF_UP).multiply(new BigDecimal(100)));
// priceResponse.setDiscountRatio(priceResponse.getDiscount());
// totalFee = getBigDecimal(consumerWallet, activity, timeLong, priceResponse, totalFee, room, request, consumerMember);
// }
if
(
ObjectUtil
.
isNotEmpty
(
consumerMonthlyCard
))
{
totalFee
=
getBigDecimal
(
consumerMonthlyCard
,
timeLong
,
priceResponse
,
totalPrice
,
room
);
}
...
...
@@ -2553,16 +2553,16 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
priceResponse
.
setTotalFee
(
payPrice
);
priceResponse
.
setTotalFeeNow
(
payPrice
);
request
.
setBuyType
(
BuyTypeEnum
.
PACK
.
getCode
());
if
(
ObjectUtil
.
isNotEmpty
(
consumerMember
))
{
queryWrapper
.
eq
(
Activity:
:
getPackId
,
roomLabel
.
getPackId
());
activity
=
activityService
.
getOne
(
queryWrapper
);
totalFee
=
getBigDecimal
(
request
,
activity
,
payPrice
,
user
,
consumerMember
);
priceResponse
.
setTotalFeeNow
(
totalFee
);
priceResponse
.
setMemberDiscount
(
payPrice
.
subtract
(
totalFee
));
priceResponse
.
setDiscount
(
totalFee
.
divide
(
payPrice
,
2
,
RoundingMode
.
HALF_UP
).
multiply
(
new
BigDecimal
(
100
)));
priceResponse
.
setDiscountRatio
(
priceResponse
.
getDiscount
());
totalFee
=
getBigDecimal
(
consumerWallet
,
activity
,
timeLong
,
priceResponse
,
totalFee
,
byId
,
request
);
}
//
if (ObjectUtil.isNotEmpty(consumerMember)) {
//
queryWrapper.eq(Activity::getPackId, roomLabel.getPackId());
//
activity = activityService.getOne(queryWrapper);
//
totalFee = getBigDecimal(request, activity, payPrice, user, consumerMember);
//
priceResponse.setTotalFeeNow(totalFee);
//
priceResponse.setMemberDiscount(payPrice.subtract(totalFee));
//
priceResponse.setDiscount(totalFee.divide(payPrice, 2, RoundingMode.HALF_UP).multiply(new BigDecimal(100)));
//
priceResponse.setDiscountRatio(priceResponse.getDiscount());
//
totalFee = getBigDecimal(consumerWallet, activity, timeLong, priceResponse, totalFee, byId, request);
//
}
if
(
CollectionUtils
.
isNotEmpty
(
consumerSecondaryCardList
))
{
totalFee
=
getBigDecimal
(
consumerSecondaryCardList
,
priceResponse
,
byId
,
payPrice
);
}
...
...
@@ -2576,16 +2576,16 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
priceResponse
.
setTotalFee
(
payPrice
);
priceResponse
.
setTotalFeeNow
(
payPrice
);
request
.
setBuyType
(
BuyTypeEnum
.
TIME
.
getCode
());
if
(
ObjectUtil
.
isNotEmpty
(
consumerMember
))
{
queryWrapper
.
eq
(
Activity:
:
getLabelId
,
roomLabel
.
getLabelId
());
activity
=
activityService
.
getOne
(
queryWrapper
);
totalFee
=
getBigDecimal
(
request
,
activity
,
payPrice
,
user
,
consumerMember
);
priceResponse
.
setTotalFeeNow
(
totalFee
);
priceResponse
.
setMemberDiscount
(
payPrice
.
subtract
(
totalFee
));
priceResponse
.
setDiscount
(
totalFee
.
divide
(
payPrice
,
2
,
RoundingMode
.
HALF_UP
).
multiply
(
new
BigDecimal
(
100
)));
priceResponse
.
setDiscountRatio
(
priceResponse
.
getDiscount
());
totalFee
=
getBigDecimal
(
consumerWallet
,
activity
,
timeLong
,
priceResponse
,
totalFee
,
room
,
request
,
consumerMember
);
}
//
if (ObjectUtil.isNotEmpty(consumerMember)) {
//
queryWrapper.eq(Activity::getLabelId, roomLabel.getLabelId());
//
activity = activityService.getOne(queryWrapper);
//
totalFee = getBigDecimal(request, activity, payPrice, user, consumerMember);
//
priceResponse.setTotalFeeNow(totalFee);
//
priceResponse.setMemberDiscount(payPrice.subtract(totalFee));
//
priceResponse.setDiscount(totalFee.divide(payPrice, 2, RoundingMode.HALF_UP).multiply(new BigDecimal(100)));
//
priceResponse.setDiscountRatio(priceResponse.getDiscount());
//
totalFee = getBigDecimal(consumerWallet, activity, timeLong, priceResponse, totalFee, room, request, consumerMember);
//
}
if
(
ObjectUtil
.
isNotEmpty
(
consumerMonthlyCard
))
{
totalFee
=
getBigDecimal
(
consumerMonthlyCard
,
timeLong
,
priceResponse
,
totalPrice
,
room
);
}
...
...
@@ -2599,15 +2599,15 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
priceResponse
.
setTotalFee
(
payPrice
);
priceResponse
.
setTotalFeeNow
(
payPrice
);
request
.
setBuyType
(
BuyTypeEnum
.
PACK
.
getCode
());
if
(
ObjectUtil
.
isNotEmpty
(
consumerMember
))
{
queryWrapper
.
eq
(
Activity:
:
getPackId
,
request
.
getPackId
());
activity
=
activityService
.
getOne
(
queryWrapper
);
totalFee
=
getBigDecimal
(
request
,
activity
,
payPrice
,
user
,
consumerMember
);
priceResponse
.
setTotalFeeNow
(
totalFee
);
priceResponse
.
setMemberDiscount
(
payPrice
.
subtract
(
totalFee
));
priceResponse
.
setDiscount
(
totalFee
.
divide
(
payPrice
,
2
,
RoundingMode
.
HALF_UP
).
multiply
(
new
BigDecimal
(
100
)));
totalFee
=
getBigDecimal
(
consumerWallet
,
activity
,
timeLong
,
priceResponse
,
totalFee
,
byId
,
request
);
}
//
if (ObjectUtil.isNotEmpty(consumerMember)) {
//
queryWrapper.eq(Activity::getPackId, request.getPackId());
//
activity = activityService.getOne(queryWrapper);
//
totalFee = getBigDecimal(request, activity, payPrice, user, consumerMember);
//
priceResponse.setTotalFeeNow(totalFee);
//
priceResponse.setMemberDiscount(payPrice.subtract(totalFee));
//
priceResponse.setDiscount(totalFee.divide(payPrice, 2, RoundingMode.HALF_UP).multiply(new BigDecimal(100)));
//
totalFee = getBigDecimal(consumerWallet, activity, timeLong, priceResponse, totalFee, byId, request);
//
}
}
priceResponse
.
setTotalFee
(
payPrice
);
...
...
@@ -2645,54 +2645,54 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
priceResponse
.
setRemainingBalance
(
new
BigDecimal
(
0
));
priceResponse
.
setRemainingDuration
(
new
BigDecimal
(
0
));
if
(
priceResponse
.
getPayFee
().
compareTo
(
new
BigDecimal
(
0
))
>
0
)
{
if
(
ObjectUtil
.
isNotEmpty
(
consumerWallet
)
&&
ObjectUtil
.
isNotEmpty
(
consumerMember
))
{
MemberConfig
memberConfig
=
memberConfigService
.
getOne
(
new
LambdaQueryWrapper
<
MemberConfig
>().
eq
(
MemberConfig:
:
getMembershipLevel
,
consumerMember
.
getMembershipLevel
()));
if
(
consumerWallet
.
getBalance
().
compareTo
(
priceResponse
.
getPayFee
())
>=
0
)
{
BigDecimal
payFee
=
priceResponse
.
getPayFee
();
BigDecimal
divide
=
priceResponse
.
getPayFee
().
multiply
(
memberConfig
.
getDiscountRatio
()).
divide
(
new
BigDecimal
(
100
),
2
,
RoundingMode
.
HALF_UP
);
if
(
payFee
.
compareTo
(
divide
)
==
0
)
{
priceResponse
.
setDiscount
(
BigDecimal
.
ZERO
);
}
//总金额乘以折扣比例除以100
priceResponse
.
setPayFee
(
divide
);
priceResponse
.
setDiscountFee
(
priceResponse
.
getTotalFee
().
subtract
(
priceResponse
.
getPayFee
()));
priceResponse
.
setTotalFeeNow
(
divide
);
priceResponse
.
setMemberDiscount
(
payFee
.
subtract
(
divide
));
priceResponse
.
setBalance
(
priceResponse
.
getPayFee
());
priceResponse
.
setRemainingBalance
(
consumerWallet
.
getBalance
().
subtract
(
priceResponse
.
getPayFee
()));
totalFee
=
new
BigDecimal
(
0
);
}
else
if
(
consumerWallet
.
getBalance
().
compareTo
(
priceResponse
.
getPayFee
())
<
0
)
{
priceResponse
.
setBalance
(
consumerWallet
.
getBalance
());
totalFee
=
priceResponse
.
getPayFee
().
subtract
(
consumerWallet
.
getBalance
());
}
priceResponse
.
setPayFee
(
totalFee
);
priceResponse
.
setTotalFeeNow
(
totalFee
);
if
(
priceResponse
.
getPayFee
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
BigDecimal
payFee
=
priceResponse
.
getPayFee
();
BigDecimal
divide
=
priceResponse
.
getPayFee
().
multiply
(
memberConfig
.
getDiscountRatio
()).
divide
(
new
BigDecimal
(
100
),
2
,
RoundingMode
.
HALF_UP
);
if
(
payFee
.
compareTo
(
divide
)
==
0
)
{
priceResponse
.
setDiscount
(
BigDecimal
.
ZERO
);
}
//总金额乘以折扣比例除以100
priceResponse
.
setPayFee
(
divide
);
priceResponse
.
setDiscountFee
(
priceResponse
.
getTotalFee
().
subtract
(
priceResponse
.
getPayFee
()));
priceResponse
.
setTotalFeeNow
(
divide
);
priceResponse
.
setMemberDiscount
(
payFee
.
subtract
(
divide
));
// priceResponse.setCouponFee(priceResponse.getDiscountFee());
// if (ObjectUtil.isNotEmpty(priceResponse.getDiscountFee()) && priceResponse.getTotalFee().compareTo(new BigDecimal(0.00)) > 0) {
// priceResponse.setDiscountRatio(priceResponse.getDiscountFee().divide(priceResponse.getTotalFee(), 2, RoundingMode.HALF_UP).multiply(new BigDecimal(100)));
// } else {
// priceResponse.setDiscountRatio(new BigDecimal(0));
// if (ObjectUtil.isNotEmpty(consumerWallet) && ObjectUtil.isNotEmpty(consumerMember)) {
// MemberConfig memberConfig = memberConfigService.getOne(new LambdaQueryWrapper<MemberConfig>().eq(MemberConfig::getMembershipLevel, consumerMember.getMembershipLevel()));
// if (consumerWallet.getBalance().compareTo(priceResponse.getPayFee()) >= 0) {
// BigDecimal payFee = priceResponse.getPayFee();
// BigDecimal divide = priceResponse.getPayFee().multiply(memberConfig.getDiscountRatio()).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP);
// if (payFee.compareTo(divide) == 0) {
// priceResponse.setDiscount(BigDecimal.ZERO);
// }
// //总金额乘以折扣比例除以100
// priceResponse.setPayFee(divide);
// priceResponse.setDiscountFee(priceResponse.getTotalFee().subtract(priceResponse.getPayFee()));
// priceResponse.setTotalFeeNow(divide);
// priceResponse.setMemberDiscount(payFee.subtract(divide));
//
// priceResponse.setBalance(priceResponse.getPayFee());
// priceResponse.setRemainingBalance(consumerWallet.getBalance().subtract(priceResponse.getPayFee()));
// totalFee = new BigDecimal(0);
// } else if (consumerWallet.getBalance().compareTo(priceResponse.getPayFee()) < 0) {
// priceResponse.setBalance(consumerWallet.getBalance());
// totalFee = priceResponse.getPayFee().subtract(consumerWallet.getBalance());
// }
// priceResponse.setPayFee(totalFee);
// priceResponse.setTotalFeeNow(totalFee);
// if (priceResponse.getPayFee().compareTo(BigDecimal.ZERO) > 0) {
// BigDecimal payFee = priceResponse.getPayFee();
// BigDecimal divide = priceResponse.getPayFee().multiply(memberConfig.getDiscountRatio()).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP);
// if (payFee.compareTo(divide) == 0) {
// priceResponse.setDiscount(BigDecimal.ZERO);
// }
// //总金额乘以折扣比例除以100
// priceResponse.setPayFee(divide);
// priceResponse.setDiscountFee(priceResponse.getTotalFee().subtract(priceResponse.getPayFee()));
// priceResponse.setTotalFeeNow(divide);
// priceResponse.setMemberDiscount(payFee.subtract(divide));
//// priceResponse.setCouponFee(priceResponse.getDiscountFee());
//// if (ObjectUtil.isNotEmpty(priceResponse.getDiscountFee()) && priceResponse.getTotalFee().compareTo(new BigDecimal(0.00)) > 0) {
//// priceResponse.setDiscountRatio(priceResponse.getDiscountFee().divide(priceResponse.getTotalFee(), 2, RoundingMode.HALF_UP).multiply(new BigDecimal(100)));
//// } else {
//// priceResponse.setDiscountRatio(new BigDecimal(0));
//// }
// }
// }
}
}
// priceResponse.setDiscount(priceResponse.getPayFee().divide(priceResponse.getTotalFeeNow(), 2, RoundingMode.HALF_UP).multiply(new BigDecimal(100)));
if
(
ObjectUtil
.
isEmpty
(
consumerWallet
)
&&
ObjectUtil
.
isEmpty
(
consumerMember
))
{
priceResponse
.
setTotalFeeNow
(
priceResponse
.
getPayFee
());
priceResponse
.
setMemberDiscount
(
priceResponse
.
getTotalFee
().
subtract
(
priceResponse
.
getPayFee
()));
}
//
if (ObjectUtil.isEmpty(consumerWallet) && ObjectUtil.isEmpty(consumerMember)) {
//
priceResponse.setTotalFeeNow(priceResponse.getPayFee());
//
priceResponse.setMemberDiscount(priceResponse.getTotalFee().subtract(priceResponse.getPayFee()));
//
}
}
else
{
priceResponse
.
setDiscount
(
BigDecimal
.
ZERO
);
...
...
@@ -2936,6 +2936,46 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
return
payPrice
;
}
private
BigDecimal
getBigDecimal
(
ConsumerMonthlyCard
consumerMonthlyCard
,
BigDecimal
timeLong
,
ComputedOrderPriceResponse
priceResponse
,
BigDecimal
totalFee
,
SRoom
room
)
{
if
(
consumerMonthlyCard
.
getFreeDuration
().
compareTo
(
timeLong
)
>=
0
)
{
priceResponse
.
setDuration
(
timeLong
);
priceResponse
.
setRemainingDuration
(
consumerMonthlyCard
.
getFreeDuration
().
subtract
(
timeLong
));
priceResponse
.
setDiscount
(
BigDecimal
.
ZERO
);
totalFee
=
new
BigDecimal
(
0
);
priceResponse
.
setMemberDiscount
(
new
BigDecimal
(
0.00
));
priceResponse
.
setTotalFeeNow
(
priceResponse
.
getTotalFee
());
priceResponse
.
setPayFee
(
BigDecimal
.
ZERO
);
priceResponse
.
setMonthlyCardId
(
consumerMonthlyCard
.
getId
());
}
else
if
(
consumerMonthlyCard
.
getFreeDuration
().
compareTo
(
timeLong
)
<
0
)
{
priceResponse
.
setDuration
(
consumerMonthlyCard
.
getFreeDuration
());
priceResponse
.
setRemainingDuration
(
new
BigDecimal
(
0
));
BigDecimal
remainingBalance
=
consumerMonthlyCard
.
getFreeDuration
().
multiply
(
room
.
getPrice
());
remainingBalance
=
totalFee
.
subtract
(
remainingBalance
);
priceResponse
.
setTotalFeeNow
(
remainingBalance
);
priceResponse
.
setMemberDiscount
(
totalFee
.
subtract
(
remainingBalance
));
totalFee
=
remainingBalance
;
priceResponse
.
setPayFee
(
remainingBalance
);
priceResponse
.
setMonthlyCardId
(
consumerMonthlyCard
.
getId
());
}
return
totalFee
;
}
private
BigDecimal
getBigDecimal
(
List
<
ConsumerSecondaryCard
>
consumerSecondaryCardList
,
ComputedOrderPriceResponse
priceResponse
,
SPack
byId
,
BigDecimal
payPrice
)
{
//获取集合中次数最少的次卡,次数不低于0
ConsumerSecondaryCard
consumerSecondaryCard
=
consumerSecondaryCardList
.
stream
().
min
(
Comparator
.
comparing
(
ConsumerSecondaryCard:
:
getNumber
)).
get
();
if
(
consumerSecondaryCard
.
getPackId
().
equals
(
byId
.
getId
()))
{
priceResponse
.
setDiscount
(
BigDecimal
.
ZERO
);
priceResponse
.
setMemberDiscount
(
BigDecimal
.
ZERO
);
priceResponse
.
setTotalFeeNow
(
payPrice
);
priceResponse
.
setPayFee
(
BigDecimal
.
ZERO
);
priceResponse
.
setSecondaryCardId
(
consumerSecondaryCard
.
getId
());
payPrice
=
BigDecimal
.
ZERO
;
}
return
payPrice
;
}
private
BigDecimal
computeTotalPrice
(
Long
packId
,
BigDecimal
totalPrice
)
{
SPack
pack
=
packService
.
getById
(
packId
);
if
(
Objects
.
isNull
(
pack
))
{
...
...
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