Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Litemall
Commits
714870bf
Commit
714870bf
authored
Jan 30, 2019
by
DongGuoChao
Committed by
linlinjava
Jan 30, 2019
Browse files
过滤掉首页已经领取掉的优惠券
parent
0a0e9974
Changes
3
Hide whitespace changes
Inline
Side-by-side
litemall-db/src/main/java/org/linlinjava/litemall/db/service/LitemallCouponService.java
View file @
714870bf
...
...
@@ -3,10 +3,9 @@ package org.linlinjava.litemall.db.service;
import
com.alibaba.druid.util.StringUtils
;
import
com.github.pagehelper.PageHelper
;
import
org.linlinjava.litemall.db.dao.LitemallCouponMapper
;
import
org.linlinjava.litemall.db.domain.LitemallCoupon
;
import
org.linlinjava.litemall.db.dao.LitemallCouponUserMapper
;
import
org.linlinjava.litemall.db.domain.*
;
import
org.linlinjava.litemall.db.domain.LitemallCoupon.Column
;
import
org.linlinjava.litemall.db.domain.LitemallCouponExample
;
import
org.linlinjava.litemall.db.domain.LitemallCouponUser
;
import
org.linlinjava.litemall.db.util.CouponConstant
;
import
org.springframework.stereotype.Service
;
...
...
@@ -14,18 +13,21 @@ import javax.annotation.Resource;
import
java.time.LocalDateTime
;
import
java.util.List
;
import
java.util.Random
;
import
java.util.stream.Collectors
;
@Service
public
class
LitemallCouponService
{
@Resource
private
LitemallCouponMapper
couponMapper
;
@Resource
private
LitemallCouponUserMapper
couponUserMapper
;
private
Column
[]
result
=
new
Column
[]{
Column
.
id
,
Column
.
name
,
Column
.
desc
,
Column
.
tag
,
Column
.
days
,
Column
.
startTime
,
Column
.
endTime
,
Column
.
discount
,
Column
.
min
};
/**
* 查询
* 查询
,空参数
*
* @param offset
* @param limit
...
...
@@ -34,11 +36,24 @@ public class LitemallCouponService {
* @return
*/
public
List
<
LitemallCoupon
>
queryList
(
int
offset
,
int
limit
,
String
sort
,
String
order
)
{
LitemallCouponExample
example
=
new
LitemallCouponExample
();
example
.
or
().
andTypeEqualTo
(
CouponConstant
.
TYPE_COMMON
).
andStatusEqualTo
(
CouponConstant
.
STATUS_NORMAL
).
andDeletedEqualTo
(
false
);
example
.
setOrderByClause
(
sort
+
" "
+
order
);
return
queryList
(
LitemallCouponExample
.
newAndCreateCriteria
(),
offset
,
limit
,
sort
,
order
);
}
/**
* 查询
*
* @param criteria 可扩展的条件
* @param offset
* @param limit
* @param sort
* @param order
* @return
*/
public
List
<
LitemallCoupon
>
queryList
(
LitemallCouponExample
.
Criteria
criteria
,
int
offset
,
int
limit
,
String
sort
,
String
order
)
{
criteria
.
andTypeEqualTo
(
CouponConstant
.
TYPE_COMMON
).
andStatusEqualTo
(
CouponConstant
.
STATUS_NORMAL
).
andDeletedEqualTo
(
false
);
criteria
.
example
().
setOrderByClause
(
sort
+
" "
+
order
);
PageHelper
.
startPage
(
offset
,
limit
);
return
couponMapper
.
selectByExampleSelective
(
example
,
result
);
return
couponMapper
.
selectByExampleSelective
(
criteria
.
example
()
,
result
);
}
public
int
queryTotal
()
{
...
...
@@ -47,6 +62,19 @@ public class LitemallCouponService {
return
(
int
)
couponMapper
.
countByExample
(
example
);
}
public
List
<
LitemallCoupon
>
queryAvailableList
(
Integer
userId
,
int
offset
,
int
limit
)
{
assert
userId
!=
null
;
// 过滤掉登录账号已经领取过的coupon
LitemallCouponExample
.
Criteria
c
=
LitemallCouponExample
.
newAndCreateCriteria
();
List
<
LitemallCouponUser
>
used
=
couponUserMapper
.
selectByExample
(
LitemallCouponUserExample
.
newAndCreateCriteria
().
andUserIdEqualTo
(
userId
).
example
()
);
if
(
used
!=
null
&&
!
used
.
isEmpty
()){
c
.
andIdNotIn
(
used
.
stream
().
map
(
LitemallCouponUser:
:
getCouponId
).
collect
(
Collectors
.
toList
()));
}
return
queryList
(
c
,
offset
,
limit
,
"add_time"
,
"desc"
);
}
public
List
<
LitemallCoupon
>
queryList
(
int
offset
,
int
limit
)
{
return
queryList
(
offset
,
limit
,
"add_time"
,
"desc"
);
}
...
...
litemall-wx-api/src/main/java/org/linlinjava/litemall/wx/web/WxHomeController.java
View file @
714870bf
...
...
@@ -7,6 +7,7 @@ import org.linlinjava.litemall.core.util.ResponseUtil;
import
org.linlinjava.litemall.db.domain.LitemallCategory
;
import
org.linlinjava.litemall.db.domain.LitemallGoods
;
import
org.linlinjava.litemall.db.service.*
;
import
org.linlinjava.litemall.wx.annotation.LoginUser
;
import
org.linlinjava.litemall.wx.service.HomeCacheManager
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
...
...
@@ -70,11 +71,11 @@ public class WxHomeController {
/**
* 首页数据
*
*
@param userId 当用户已经登录时,非空。为登录状态为null
* @return 首页数据
*/
@GetMapping
(
"/index"
)
public
Object
index
()
{
public
Object
index
(
@LoginUser
Integer
userId
)
{
//优先从缓存中读取
if
(
HomeCacheManager
.
hasData
(
HomeCacheManager
.
INDEX
))
{
return
ResponseUtil
.
ok
(
HomeCacheManager
.
getCacheData
(
HomeCacheManager
.
INDEX
));
...
...
@@ -87,7 +88,13 @@ public class WxHomeController {
Callable
<
List
>
channelListCallable
=
()
->
categoryService
.
queryChannel
();
Callable
<
List
>
couponListCallable
=
()
->
couponService
.
queryList
(
0
,
3
);
Callable
<
List
>
couponListCallable
;
if
(
userId
==
null
){
couponListCallable
=
()
->
couponService
.
queryList
(
0
,
3
);
}
else
{
couponListCallable
=
()
->
couponService
.
queryAvailableList
(
userId
,
0
,
3
);
}
Callable
<
List
>
newGoodsListCallable
=
()
->
goodsService
.
queryByNew
(
0
,
SystemConfig
.
getNewLimit
());
...
...
litemall-wx/pages/index/index.wxml
View file @
714870bf
...
...
@@ -24,7 +24,7 @@
</view>
</view>
</view>
<view class="b">
<view
wx:if="{{coupon.length>0}}"
class="b">
<view class="item" wx:for="{{coupon}}" wx:for-index="index" wx:for-item="item" wx:key="id" bindtap="getCoupon" data-index="{{item.id}}">
<view class="tag">{{item.tag}}</view>
<view class="content">
...
...
Write
Preview
Supports
Markdown
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