Toggle navigation
Toggle navigation
This project
Loading...
Sign in
ufo
/
ufo-platform
·
Commits
Go to a project
GitLab
Go to group
Project
Activity
Files
Commits
Pipelines
0
Builds
0
Graphs
Milestones
Issues
0
Merge Requests
0
Members
Labels
Wiki
Forks
Network
Create a new issue
Download as
Email Patches
Plain Diff
Browse Files
Authored by
tanling
6 years ago
Commit
bf8401b35b3f0223b185f038b8b172c280391910
1 parent
a0d95293
增加方法数量和使用数量
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
65 additions
and
0 deletions
coupon/src/main/java/com/yoho/ufo/coupon/service/impl/CouponServiceImpl.java
dal/src/main/java/com/yoho/ufo/dal/UserCouponMapper.java
dal/src/main/java/com/yoho/ufo/model/coupon/resp/CouponQueryResp.java
dal/src/main/resources/META-INF/mybatis/UserCouponMapper.xml
coupon/src/main/java/com/yoho/ufo/coupon/service/impl/CouponServiceImpl.java
View file @
bf8401b
...
...
@@ -24,6 +24,7 @@ import com.yoho.ufo.service.IBusinessExportService;
import
com.yoho.ufo.service.impl.BatchService
;
import
com.yoho.ufo.service.impl.UserHelper
;
import
com.yoho.ufo.service.model.ApiResponse
;
import
com.yoho.ufo.util.CollectionUtil
;
import
com.yohobuy.ufo.coupon.req.CouponQueryReq
;
import
com.yohobuy.ufo.coupon.req.CouponSaveUpdateReq
;
import
com.yohobuy.ufo.coupon.req.CouponSendReq
;
...
...
@@ -31,7 +32,9 @@ import com.yohobuy.ufo.coupon.req.UserCouponQueryReq;
import
com.yohobuy.ufo.model.common.PageResponseBO
;
import
com.yohobuy.ufo.model.order.constants.SkupType
;
import
com.yohobuy.ufo.model.promotion.constant.CouponTypeEnum
;
import
com.yohobuy.ufo.model.promotion.constant.UserCouponsStatusEnum
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.MapUtils
;
import
org.apache.commons.lang.math.NumberUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
...
...
@@ -133,11 +136,46 @@ public class CouponServiceImpl implements ICouponService,IBusinessExportService{
return
new
ApiResponse
.
ApiResponseBuilder
().
data
(
jsonObject
).
build
();
}
List
<
Coupon
>
coupons
=
couponMapper
.
selectByCondition
(
req
);
// 获取 该券的用户领取|使用记录
Map
<
Integer
,
List
<
UserCoupon
>>
userCouponMap
=
null
;
if
(
CollectionUtils
.
isNotEmpty
(
coupons
)){
List
<
Integer
>
couponIdList
=
coupons
.
stream
().
map
(
Coupon:
:
getId
).
collect
(
Collectors
.
toList
());
userCouponMap
=
getUserCouponMap
(
couponIdList
);
}
List
<
CouponQueryResp
>
couponQueryResps
=
initCouponQueryResps
(
coupons
,
req
.
getCurTime
());
// 设置 已经领取数量|已经使用记录
if
(
MapUtils
.
isNotEmpty
(
userCouponMap
)){
Map
<
Integer
,
List
<
UserCoupon
>>
finalUserCouponMap
=
userCouponMap
;
couponQueryResps
=
couponQueryResps
.
stream
().
map
(
x
->
{
List
<
UserCoupon
>
userCouponList
=
finalUserCouponMap
.
get
(
x
.
getId
());
if
(
CollectionUtils
.
isEmpty
(
userCouponList
))
{
return
x
;
}
x
.
setSendNum
(
userCouponList
.
size
());
x
.
setUseNum
(
userCouponList
.
stream
().
filter
(
y
->
y
.
getStatus
()==
UserCouponsStatusEnum
.
USED
.
getCode
()).
count
());
return
x
;
}).
collect
(
Collectors
.
toList
());
}
jsonObject
.
put
(
"coupons"
,
couponQueryResps
);
return
new
ApiResponse
.
ApiResponseBuilder
().
data
(
jsonObject
).
build
();
}
private
Map
<
Integer
,
List
<
UserCoupon
>>
getUserCouponMap
(
List
<
Integer
>
couponIdList
)
{
List
<
UserCoupon
>
userCouponList
=
userCouponMapper
.
selectByCouponIds
(
couponIdList
);
if
(
CollectionUtils
.
isEmpty
(
userCouponList
)){
return
null
;
}
Map
<
Integer
,
List
<
UserCoupon
>>
userCouponMap
=
userCouponList
.
stream
().
collect
(
Collectors
.
groupingBy
(
UserCoupon:
:
getCouponId
));
return
userCouponMap
;
}
@Override
public
ApiResponse
saveOrUpdateCoupon
(
CouponSaveUpdateReq
req
)
{
LOGGER
.
info
(
"enter saveOrUpdateCoupon,param is {}"
,
req
);
...
...
dal/src/main/java/com/yoho/ufo/dal/UserCouponMapper.java
View file @
bf8401b
...
...
@@ -12,5 +12,8 @@ import java.util.List;
public
interface
UserCouponMapper
{
List
<
UserCoupon
>
selectByCondition
(
@Param
(
"param"
)
UserCouponQueryReq
param
);
List
<
UserCoupon
>
selectByCouponIds
(
@Param
(
"couponIds"
)
List
<
Integer
>
couponIds
);
int
selectTotalByCondition
(
@Param
(
"param"
)
UserCouponQueryReq
param
);
}
...
...
dal/src/main/java/com/yoho/ufo/model/coupon/resp/CouponQueryResp.java
View file @
bf8401b
...
...
@@ -39,6 +39,16 @@ public class CouponQueryResp {
)
private
String
status
;
private
Integer
statusValue
;
/**
* 发放数量
*/
private
long
sendNum
;
/**
* 使用数量
*/
private
long
useNum
;
public
CouponQueryResp
(
Integer
id
,
String
name
,
Integer
couponNum
,
String
useTime
,
String
remark
,
String
status
,
Integer
statusValue
,
String
token
)
{
this
.
id
=
id
;
this
.
name
=
name
;
...
...
dal/src/main/resources/META-INF/mybatis/UserCouponMapper.xml
View file @
bf8401b
...
...
@@ -19,6 +19,20 @@
<sql
id=
"Base_Column_List"
>
id,uid,coupon_id,coupon_type,coupon_code,status,order_code,use_time,start_time,end_time,create_time,coupon_token
</sql>
<select
id=
"selectByCouponIds"
resultMap=
"BaseResultMap"
>
select
<include
refid=
"Base_Column_List"
/>
from user_coupon
where
AND coupon_id IN
<foreach
collection=
"couponIds"
item=
"couponId"
open=
"("
separator=
","
close=
")"
>
#{couponId,jdbcType=INTEGER}
</foreach>
</select>
<select
id=
"selectByCondition"
resultType=
"com.yoho.ufo.model.coupon.UserCoupon"
>
select
<include
refid=
"Base_Column_List"
/>
from user_coupon
inner join (
...
...
Please
register
or
login
to post a comment