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
d0a633ac
Commit
d0a633ac
authored
Apr 14, 2020
by
huluobin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
coupon_fix
parent
8425031a
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
29 additions
and
53 deletions
+29
-53
CouponService.java
...a/com/gogirl/application/market/coupon/CouponService.java
+1
-31
CouponCustomerRelevanceServiceImpl.java
...arket/coupon/impl/CouponCustomerRelevanceServiceImpl.java
+15
-14
CouponServiceImpl.java
...irl/application/market/coupon/impl/CouponServiceImpl.java
+0
-0
MarketServiceImpl.java
...irl/application/market/coupon/impl/MarketServiceImpl.java
+10
-7
ListUtil.java
.../java/com/gogirl/infrastructure/common/util/ListUtil.java
+3
-1
No files found.
src/main/java/com/gogirl/application/market/coupon/CouponService.java
View file @
d0a633ac
...
@@ -10,36 +10,6 @@ import java.util.List;
...
@@ -10,36 +10,6 @@ import java.util.List;
public
interface
CouponService
extends
IService
<
Coupon
>
{
public
interface
CouponService
extends
IService
<
Coupon
>
{
/**
* 获取统一卡券领取的张数
*
* @param couponId couponId
* @param customerId customerId
* @return count
*/
int
countRelevanceNum
(
Integer
couponId
,
Integer
customerId
);
/**
* 给用户发券 并且修改卡券已领取人数
*
* @param coupon 卡券类型
* @param record 卡券实体
* @return true
*/
int
insertSelective
(
Coupon
coupon
,
CouponCustomerRelevance
record
);
/**
* 查询是否领过对应卡券
*
* @param customerId 用户id
* @param couponIdList 卡券类型id
* @return
*/
List
<
CouponCustomerRelevance
>
selectMyNewCustomerCoupon
(
Integer
customerId
,
List
<
Integer
>
couponIdList
);
/**
/**
* 是否新人
* 是否新人
...
@@ -58,7 +28,7 @@ public interface CouponService extends IService<Coupon> {
...
@@ -58,7 +28,7 @@ public interface CouponService extends IService<Coupon> {
Coupon
sendNewCustomerCouponXcx
(
Integer
customerId
);
Coupon
sendNewCustomerCouponXcx
(
Integer
customerId
);
/**
/**
*
发券
*
统一发券接口
*
*
* @param couponId 卡券配置id
* @param couponId 卡券配置id
* @param customerId 用户id
* @param customerId 用户id
...
...
src/main/java/com/gogirl/application/market/coupon/impl/CouponCustomerRelevanceServiceImpl.java
View file @
d0a633ac
...
@@ -44,38 +44,38 @@ public class CouponCustomerRelevanceServiceImpl extends ServiceImpl<CouponCustom
...
@@ -44,38 +44,38 @@ public class CouponCustomerRelevanceServiceImpl extends ServiceImpl<CouponCustom
private
CouponMapper
couponMapper
;
private
CouponMapper
couponMapper
;
@Resource
@Resource
private
MarketService
marketService
;
private
MarketService
marketService
;
@Resource
@Resource
private
DiscountConfigMapper
discountConfigMapper
;
private
DiscountConfigMapper
discountConfigMapper
;
@Override
@Override
public
List
<
CouponCustomerRelevance
>
getOrderCoupon
(
Integer
currentCustomerId
,
Integer
orderId
)
{
public
List
<
CouponCustomerRelevance
>
getOrderCoupon
(
Integer
currentCustomerId
,
Integer
orderId
)
{
/*1、查询订单服务和订单*/
List
<
OrderServe
>
orderServeList
=
orderServeMapper
.
selectList
(
new
LambdaQueryWrapper
<
OrderServe
>().
eq
(
OrderServe:
:
getOrderId
,
orderId
));
List
<
OrderServe
>
orderServeList
=
orderServeMapper
.
selectList
(
new
LambdaQueryWrapper
<
OrderServe
>().
eq
(
OrderServe:
:
getOrderId
,
orderId
));
OrderManage
orderManage
=
orderManageMapper
.
selectById
(
orderId
);
OrderManage
orderManage
=
orderManageMapper
.
selectById
(
orderId
);
return
couponCustomerRelevanceMapper
return
couponCustomerRelevanceMapper
.
selectList
(
new
LambdaQueryWrapper
<
CouponCustomerRelevance
>()
.
selectList
(
new
LambdaQueryWrapper
<
CouponCustomerRelevance
>()
.
eq
(
CouponCustomerRelevance:
:
getCustomerId
,
currentCustomerId
)
.
eq
(
CouponCustomerRelevance:
:
getCustomerId
,
currentCustomerId
)
//内部券
//
只查询
内部券
.
eq
(
CouponCustomerRelevance:
:
getSourceType
,
0
)
.
eq
(
CouponCustomerRelevance:
:
getSourceType
,
0
)
//
卡券状态 正常
//
只查询正常状态的卡券
.
eq
(
CouponCustomerRelevance:
:
getState
,
1
))
.
eq
(
CouponCustomerRelevance:
:
getState
,
1
))
//
//
.
stream
()
.
stream
()
//
过滤所有可用在服务上的
//
只返回可以使用的优惠券
.
filter
(
couponCustomerRelevance
->
{
.
filter
(
couponCustomerRelevance
->
{
//卡券作用的服务id
List
<
Integer
>
canUserServeIds
=
couponCustomerRelevanceMapper
.
queryCouponCustomerServeRelevance
(
couponCustomerRelevance
.
getCouponId
());
List
<
Integer
>
canUserServeIds
=
couponCustomerRelevanceMapper
.
queryCouponCustomerServeRelevance
(
couponCustomerRelevance
.
getCouponId
());
//订单的服务id
List
<
Integer
>
freeCouponIds
=
discountConfigMapper
.
selectList
(
new
LambdaQueryWrapper
<>()).
stream
().
map
(
DiscountConfig:
:
getCouponId
).
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toList
());
List
<
Integer
>
orderServeIds
=
orderServeList
.
stream
().
map
(
OrderServe:
:
getServeId
).
collect
(
Collectors
.
toList
());
//retail
canUserServeIds
.
retainAll
(
orderServeList
.
stream
()
List
<
Integer
>
retainIds
=
ListUtil
.
retainAll
(
canUserServeIds
,
orderServeIds
);
.
map
(
OrderServe:
:
getServeId
)
return
ListUtil
.
isNotEmpty
(
retainIds
);
.
collect
(
Collectors
.
toList
()));
return
ListUtil
.
isNotEmpty
(
canUserServeIds
);
})
})
.
peek
(
couponCustomerRelevance
->
{
.
peek
(
couponCustomerRelevance
->
{
//卡券作用的服务id (mybatis 缓存)
List
<
Integer
>
canUserServeIds
=
couponCustomerRelevanceMapper
.
queryCouponCustomerServeRelevance
(
couponCustomerRelevance
.
getCouponId
());
List
<
Integer
>
canUserServeIds
=
couponCustomerRelevanceMapper
.
queryCouponCustomerServeRelevance
(
couponCustomerRelevance
.
getCouponId
());
//免单券
List
<
Integer
>
freeCouponIds
=
discountConfigMapper
.
selectList
(
new
LambdaQueryWrapper
<>()).
stream
().
map
(
DiscountConfig:
:
getCouponId
).
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toList
());
List
<
Integer
>
freeCouponIds
=
discountConfigMapper
.
selectList
(
new
LambdaQueryWrapper
<>()).
stream
().
map
(
DiscountConfig:
:
getCouponId
).
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toList
());
if
(
freeCouponIds
.
contains
(
couponCustomerRelevance
.
getCouponId
()))
{
if
(
freeCouponIds
.
contains
(
couponCustomerRelevance
.
getCouponId
()))
{
canUserServeIds
.
retainAll
(
orderServeList
.
stream
()
canUserServeIds
.
retainAll
(
orderServeList
.
stream
()
...
@@ -92,11 +92,12 @@ public class CouponCustomerRelevanceServiceImpl extends ServiceImpl<CouponCustom
...
@@ -92,11 +92,12 @@ public class CouponCustomerRelevanceServiceImpl extends ServiceImpl<CouponCustom
.
map
(
OrderServe:
:
getServeId
)
.
map
(
OrderServe:
:
getServeId
)
.
collect
(
Collectors
.
toList
()));
.
collect
(
Collectors
.
toList
()));
}
}
//满足使用条件但是不满足冲突条件的卡券
couponCustomerRelevance
.
setCanBeUse
(
ListUtil
.
isNotEmpty
(
canUserServeIds
));
couponCustomerRelevance
.
setCanBeUse
(
ListUtil
.
isNotEmpty
(
canUserServeIds
));
})
})
//
过滤可用
//
返回校验通过的卡券
.
filter
(
CouponCustomerRelevance:
:
isValid
)
.
filter
(
CouponCustomerRelevance:
:
isValid
)
//
过滤达到可用金额
//
返回到到使用金额条件的卡券
.
filter
(
couponCustomerRelevance
->
couponCustomerRelevance
.
getReachingAmount
().
compareTo
(
orderManage
.
getTotalPrice
())
<
0
)
.
filter
(
couponCustomerRelevance
->
couponCustomerRelevance
.
getReachingAmount
().
compareTo
(
orderManage
.
getTotalPrice
())
<
0
)
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
}
}
...
...
src/main/java/com/gogirl/application/market/coupon/impl/CouponServiceImpl.java
View file @
d0a633ac
This diff is collapsed.
Click to expand it.
src/main/java/com/gogirl/application/market/coupon/impl/MarketServiceImpl.java
View file @
d0a633ac
...
@@ -487,18 +487,16 @@ public class MarketServiceImpl implements MarketService {
...
@@ -487,18 +487,16 @@ public class MarketServiceImpl implements MarketService {
if
(!
total
.
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
).
equals
(
BigDecimal
.
ZERO
.
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
)))
{
if
(!
total
.
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
).
equals
(
BigDecimal
.
ZERO
.
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
)))
{
//卡券的总折扣金额
//卡券的总折扣金额
BigDecimal
totalCouponDiscount
=
couponCustomerRelevance
.
getDiscountAmount
();
BigDecimal
totalCouponDiscount
=
couponCustomerRelevance
.
getDiscountAmount
();
// //折扣券
//折扣券
// if (couponCustomerRelevance.getType().equals(CouponCustomerRelevance.TYPE_DISCOUNT)) {
if
(
couponCustomerRelevance
.
getType
().
equals
(
CouponCustomerRelevance
.
TYPE_DISCOUNT
))
{
// totalCouponDiscount = orderManage.getTotalPaymentAmount().multiply(couponCustomerRelevance.getDiscountPercent());
totalCouponDiscount
=
orderManage
.
getTotalPaymentAmount
().
multiply
(
couponCustomerRelevance
.
getDiscountPercent
());
// }
}
//卡券总支付金额
//卡券总支付金额
BigDecimal
totalCouponPay
=
couponCustomerRelevance
.
getPayAmount
();
BigDecimal
totalCouponPay
=
couponCustomerRelevance
.
getPayAmount
();
//计算参数(最后一个订单服务的折扣金额要用总折扣金额减 防止除法计算精度问题)
//计算参数(最后一个订单服务的折扣金额要用总折扣金额减 防止除法计算精度问题)
BigDecimal
discountCalc
=
BigDecimal
.
ZERO
;
BigDecimal
discountCalc
=
BigDecimal
.
ZERO
;
//计算参数(最后一个订单服务的实际支付要用总实际支付金额减 防止除法计算精度问题)
//计算参数(最后一个订单服务的实际支付要用总实际支付金额减 防止除法计算精度问题)
BigDecimal
payCalc
=
BigDecimal
.
ZERO
;
BigDecimal
payCalc
=
BigDecimal
.
ZERO
;
for
(
OrderServe
orderServe
:
canUserOrderServeList
)
{
for
(
OrderServe
orderServe
:
canUserOrderServeList
)
{
//每个服务的内部券抵扣金额
//每个服务的内部券抵扣金额
...
@@ -586,9 +584,13 @@ public class MarketServiceImpl implements MarketService {
...
@@ -586,9 +584,13 @@ public class MarketServiceImpl implements MarketService {
.
filter
(
couponCustomerRelevance
->
couponCustomerRelevance
.
getType
().
equals
(
CouponCustomerRelevance
.
TYPE_DISCOUNT
))
.
filter
(
couponCustomerRelevance
->
couponCustomerRelevance
.
getType
().
equals
(
CouponCustomerRelevance
.
TYPE_DISCOUNT
))
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
discountInnerCouponCustomerRelevanceServiceList
.
forEach
(
couponCustomerRelevanceConsumer
);
discountInnerCouponCustomerRelevanceServiceList
.
forEach
(
couponCustomerRelevanceConsumer
);
if
(
normalInnerCouponCustomerRelevanceServiceList
.
size
()
>
1
)
{
if
(
normalInnerCouponCustomerRelevanceServiceList
.
size
()
+
discountInnerCouponCustomerRelevanceServiceList
.
size
()
>
1
)
{
throw
new
RRException
(
"普通内部券只能用一张"
);
throw
new
RRException
(
"普通内部券只能用一张"
);
}
}
if
(
freeInnerCouponCustomerRelevanceServiceList
.
size
()
>
1
)
{
throw
new
RRException
(
"免单券券只能用一张"
);
}
}
}
orderManageMapper
.
updateById
(
orderManage
);
orderManageMapper
.
updateById
(
orderManage
);
...
@@ -685,6 +687,7 @@ public class MarketServiceImpl implements MarketService {
...
@@ -685,6 +687,7 @@ public class MarketServiceImpl implements MarketService {
.
filter
(
orderServe
->
serveIds
.
contains
(
orderServe
.
getServeId
()))
.
filter
(
orderServe
->
serveIds
.
contains
(
orderServe
.
getServeId
()))
.
filter
(
orderServe
->
!
orderServe
.
isActivity
())
.
filter
(
orderServe
->
!
orderServe
.
isActivity
())
.
filter
(
orderServe
->
orderServe
.
getBindTimesCard
()
==
2
)
.
filter
(
orderServe
->
orderServe
.
getBindTimesCard
()
==
2
)
.
filter
(
orderServe
->
orderServe
.
getBindInnerCoupon
()
==
2
)
.
filter
(
orderServe
->
orderServe
.
getBindOuterCoupon
()
==
2
)
.
filter
(
orderServe
->
orderServe
.
getBindOuterCoupon
()
==
2
)
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
}
}
...
...
src/main/java/com/gogirl/infrastructure/common/util/ListUtil.java
View file @
d0a633ac
package
com
.
gogirl
.
infrastructure
.
common
.
util
;
package
com
.
gogirl
.
infrastructure
.
common
.
util
;
import
org.apache.commons.collections.ListUtils
;
import
java.util.Collection
;
import
java.util.Collection
;
import
java.util.Optional
;
import
java.util.Optional
;
import
java.util.function.Function
;
import
java.util.function.Function
;
...
@@ -10,7 +12,7 @@ import java.util.stream.Collectors;
...
@@ -10,7 +12,7 @@ import java.util.stream.Collectors;
*
*
* @author Dxd
* @author Dxd
*/
*/
public
class
ListUtil
{
public
class
ListUtil
extends
ListUtils
{
/**
/**
* 校验集合是否为空
* 校验集合是否为空
...
...
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