1.翻页条数限制失败bug
2.消息标记的事务方法重写失效问题
This commit is contained in:
zhongzb
2023-06-04 17:20:21 +08:00
parent 59a80110ef
commit 858e9a9e7f
11 changed files with 46 additions and 17 deletions

View File

@@ -22,11 +22,10 @@ import java.util.List;
public class UserBackpackDao extends ServiceImpl<UserBackpackMapper, UserBackpack> {
public Integer getCountByValidItemId(Long uid, Long itemId) {
LambdaQueryWrapper<UserBackpack> wrapper = new QueryWrapper<UserBackpack>().lambda()
.eq(UserBackpack::getUid, uid)
return lambdaQuery().eq(UserBackpack::getUid, uid)
.eq(UserBackpack::getItemId, itemId)
.eq(UserBackpack::getStatus, YesOrNoEnum.NO.getStatus());
return count(wrapper);
.eq(UserBackpack::getStatus, YesOrNoEnum.NO.getStatus())
.count();
}
public UserBackpack getFirstValidItem(Long uid, Long itemId) {

View File

@@ -20,6 +20,7 @@ public enum ItemEnum {
LIKE_BADGE(2L, ItemTypeEnum.BADGE, "爆赞徽章"),
REG_TOP10_BADGE(3L, ItemTypeEnum.BADGE, "前十注册徽章"),
REG_TOP100_BADGE(4L, ItemTypeEnum.BADGE, "前100注册徽章"),
PLANET(5L, ItemTypeEnum.BADGE, "知识星球"),
;
private final Long id;

View File

@@ -35,11 +35,18 @@ public class UserBackpackServiceImpl implements IUserBackpackService {
private ItemCache itemCache;
@Autowired
private ApplicationEventPublisher applicationEventPublisher;
@Autowired
private UserBackpackServiceImpl userBackpackService;
@Override
@RedissonLock(key = "#uid", waitTime = 5000)//相同用户会同时发奖,需要排队不能直接拒绝
public void acquireItem(Long uid, Long itemId, IdempotentEnum idempotentEnum, String businessId) {
//组装幂等号
String idempotent = getIdempotent(itemId, idempotentEnum, businessId);
userBackpackService.doAcquireItem(uid, itemId, idempotent);
}
@RedissonLock(key = "#idempotent", waitTime = 5000)//相同幂等如果同时发奖,需要排队等上一个执行完,取出之前数据返回
public void doAcquireItem(Long uid, Long itemId, String idempotent) {
UserBackpack userBackpack = userBackpackDao.getByIdp(idempotent);
//幂等检查
if (Objects.nonNull(userBackpack)) {