Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gogirl-miniapp-backend
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
huluobin
gogirl-miniapp-backend
Commits
75467fae
Commit
75467fae
authored
Jul 10, 2020
by
huluobin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
1d339356
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
70 additions
and
66 deletions
+70
-66
MarketServiceImpl.java
...irl/application/market/coupon/impl/MarketServiceImpl.java
+70
-66
No files found.
src/main/java/com/gogirl/application/market/coupon/impl/MarketServiceImpl.java
View file @
75467fae
...
...
@@ -1085,73 +1085,7 @@ public class MarketServiceImpl implements MarketService {
couponOrderRelevanceService
.
remove
(
new
LambdaQueryWrapper
<
CouponOrderRelevance
>()
.
eq
(
CouponOrderRelevance:
:
getOrderId
,
orderId
));
//3、外部券
if
(
ListUtil
.
isNotEmpty
(
outerCouponCustomerRelevanceServiceList
))
{
//删除之前的外部券抵扣情况记录
couponOrderRelevanceService
.
remove
(
new
LambdaQueryWrapper
<
CouponOrderRelevance
>()
.
eq
(
CouponOrderRelevance:
:
getOrderId
,
orderId
)
.
in
(
CouponOrderRelevance:
:
getCouponCustomerRelevanceId
,
outerCouponCustomerRelevanceServiceList
.
stream
().
map
(
CouponCustomerRelevance:
:
getId
).
collect
(
Collectors
.
toList
())));
outerCouponCustomerRelevanceServiceList
.
stream
()
.
sorted
(
Comparator
.
comparing
(
CouponCustomerRelevance:
:
getDiscountAmount
).
reversed
())
.
forEach
(
couponCustomerRelevance
->
{
//外部券能用的服务id
List
<
Integer
>
serveIds
=
couponCustomerRelevanceMapper
.
queryCouponCustomerServeRelevance
(
couponCustomerRelevance
.
getCouponId
());
//抵扣的服务为 作用范围内支付金额最高的服务
OrderServe
orderServe
=
this
.
queryMaxPayPrice
(
orderManage
,
serveIds
);
if
(
orderServe
!=
null
)
{
BigDecimal
discountAmount
=
couponCustomerRelevance
.
getDiscountAmount
();
if
(
couponCustomerRelevance
.
getType
()
==
5
)
{
discountAmount
=
orderServe
.
getPrice
().
multiply
(
BigDecimal
.
ONE
.
subtract
(
couponCustomerRelevance
.
getDiscountPercent
()));
}
BigDecimal
actualDiscountAmount
=
orderServe
.
getPayPrice
().
min
(
discountAmount
);
//新增外部券抵扣情况记录
CouponOrderRelevance
couponOrderRelevance
=
CouponOrderRelevance
.
builder
()
.
couponCustomerRelevanceId
(
couponCustomerRelevance
.
getId
())
.
couponId
(
couponCustomerRelevance
.
getCouponId
())
.
couponName
(
couponCustomerRelevance
.
getCouponName
())
.
orderServeId
(
orderServe
.
getId
())
.
serveName
(
orderServe
.
getServeName
())
.
orderId
(
orderManage
.
getId
())
//支付金额
.
payForOrderServe
(
couponCustomerRelevance
.
getPayAmount
())
//折扣金额
.
discountAmount
(
actualDiscountAmount
)
.
createTime
(
new
Date
())
.
confirmTime
(
new
Date
())
.
message
(
orderServe
.
getServeName
())
.
customerId
(
orderManage
.
getOrderUser
())
.
status
(
2
)
.
build
();
//如果计算业绩
if
(
couponCustomerRelevance
.
getIsCalcAchievement
()
==
1
)
{
couponOrderRelevance
.
setAchievement
(
couponCustomerRelevance
.
getPayAmount
());
}
else
{
couponOrderRelevance
.
setAchievement
(
couponOrderRelevance
.
getDiscountAmount
());
}
//业绩
orderServe
.
setAchievement
(
orderServe
.
getAchievement
().
subtract
(
actualDiscountAmount
).
add
(
couponCustomerRelevance
.
getPayAmount
()));
orderServe
.
addDiscountPrice
(
actualDiscountAmount
);
orderManage
.
addDiscountPrice
(
actualDiscountAmount
);
orderServe
.
setBindOuterCoupon
(
1
);
couponOrderRelevanceService
.
save
(
couponOrderRelevance
);
}
else
{
throw
new
RRException
(
"%s与其他卡券冲突"
,
couponCustomerRelevance
.
getCouponName
());
}
});
}
//4、内部券
if
(
ListUtil
.
isNotEmpty
(
innerCouponCustomerRelevanceServiceList
))
{
...
...
@@ -1351,6 +1285,76 @@ public class MarketServiceImpl implements MarketService {
});
}
}
//3、外部券
if
(
ListUtil
.
isNotEmpty
(
outerCouponCustomerRelevanceServiceList
))
{
//删除之前的外部券抵扣情况记录
couponOrderRelevanceService
.
remove
(
new
LambdaQueryWrapper
<
CouponOrderRelevance
>()
.
eq
(
CouponOrderRelevance:
:
getOrderId
,
orderId
)
.
in
(
CouponOrderRelevance:
:
getCouponCustomerRelevanceId
,
outerCouponCustomerRelevanceServiceList
.
stream
().
map
(
CouponCustomerRelevance:
:
getId
).
collect
(
Collectors
.
toList
())));
outerCouponCustomerRelevanceServiceList
.
stream
()
.
sorted
(
Comparator
.
comparing
(
CouponCustomerRelevance:
:
getDiscountAmount
).
reversed
())
.
forEach
(
couponCustomerRelevance
->
{
//外部券能用的服务id
List
<
Integer
>
serveIds
=
couponCustomerRelevanceMapper
.
queryCouponCustomerServeRelevance
(
couponCustomerRelevance
.
getCouponId
());
//抵扣的服务为 作用范围内支付金额最高的服务
OrderServe
orderServe
=
this
.
queryMaxPayPrice
(
orderManage
,
serveIds
);
if
(
orderServe
!=
null
)
{
BigDecimal
discountAmount
=
couponCustomerRelevance
.
getDiscountAmount
();
if
(
couponCustomerRelevance
.
getType
()
==
5
)
{
discountAmount
=
orderServe
.
getPrice
().
multiply
(
BigDecimal
.
ONE
.
subtract
(
couponCustomerRelevance
.
getDiscountPercent
()));
}
BigDecimal
actualDiscountAmount
=
orderServe
.
getPayPrice
().
min
(
discountAmount
);
//新增外部券抵扣情况记录
CouponOrderRelevance
couponOrderRelevance
=
CouponOrderRelevance
.
builder
()
.
couponCustomerRelevanceId
(
couponCustomerRelevance
.
getId
())
.
couponId
(
couponCustomerRelevance
.
getCouponId
())
.
couponName
(
couponCustomerRelevance
.
getCouponName
())
.
orderServeId
(
orderServe
.
getId
())
.
serveName
(
orderServe
.
getServeName
())
.
orderId
(
orderManage
.
getId
())
//支付金额
.
payForOrderServe
(
couponCustomerRelevance
.
getPayAmount
())
//折扣金额
.
discountAmount
(
actualDiscountAmount
)
.
createTime
(
new
Date
())
.
confirmTime
(
new
Date
())
.
message
(
orderServe
.
getServeName
())
.
customerId
(
orderManage
.
getOrderUser
())
.
status
(
2
)
.
build
();
//如果计算业绩
if
(
couponCustomerRelevance
.
getIsCalcAchievement
()
==
1
)
{
couponOrderRelevance
.
setAchievement
(
couponCustomerRelevance
.
getPayAmount
());
}
else
{
couponOrderRelevance
.
setAchievement
(
couponOrderRelevance
.
getDiscountAmount
());
}
//业绩
orderServe
.
setAchievement
(
orderServe
.
getAchievement
().
subtract
(
actualDiscountAmount
).
add
(
couponCustomerRelevance
.
getPayAmount
()));
orderServe
.
addDiscountPrice
(
actualDiscountAmount
);
orderManage
.
addDiscountPrice
(
actualDiscountAmount
);
orderServe
.
setBindOuterCoupon
(
1
);
couponOrderRelevanceService
.
save
(
couponOrderRelevance
);
}
else
{
throw
new
RRException
(
"%s与其他卡券冲突"
,
couponCustomerRelevance
.
getCouponName
());
}
});
}
orderManageMapper
.
updateById
(
orderManage
);
orderServeService
.
updateBatchById
(
orderServeList
);
}
...
...
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