Commit 4348e9fc authored by shiyu's avatar shiyu

昨天领取过礼物的,则今天签到也重新计算

parent 15b66247
......@@ -38,4 +38,7 @@ public interface UserSignInDao {
boolean updateByPrimaryKey(UserSignIn userSignin);
boolean deleteTodayRecord(long userId);
boolean updateInvalid(UserSignInRequestDto dto);
}
......@@ -116,4 +116,17 @@ public class UserSignInDaoImpl implements UserSignInDao {
criteria.andSignInDateEqualTo(todayString);
return userSignInMapper.deleteByExample(example) > 0;
}
@Override
public boolean updateInvalid(UserSignInRequestDto dto) {
UserSignInExample example = new UserSignInExample();
UserSignInExample.Criteria criteria = example.createCriteria();
JdbcHelper.ifPresent(dto.getStartQueryTime(), criteria::andCreateTimeGreaterThan);
criteria.andUserIdEqualTo(dto.getUserId());
criteria.andIsValidEqualTo(true);
UserSignIn userSignin = new UserSignIn();
userSignin.setIsValid(false);
return userSignInMapper.updateByExampleSelective(userSignin, example) > 0;
}
}
......@@ -98,8 +98,8 @@ public class UserSigninServiceImpl implements UserSigninService {
userSignin.setCreateTime(new Date());
userSignin.setUpdateTime(new Date());
int consecutiveDays = 1;
//连续签到天数, 21天清零重新计算
if (yesterdaySignin.getConsecutiveDays() != 21) {
//连续签到天数, 21天清零重新计算, 昨天领取过礼物的,则今天签到也重新计算
if (yesterdaySignin.getConsecutiveDays() != 21 || !yesterdaySignin.getIsReward()) {
consecutiveDays = yesterdaySignin.getConsecutiveDays() + 1;
}
userSignin.setConsecutiveDays(consecutiveDays);
......@@ -155,6 +155,13 @@ public class UserSigninServiceImpl implements UserSigninService {
updateDto.setIsGet(true);
updateDto.setUpdateTime(new Date());
userSignInDao.updateByPrimaryKey(updateDto);
//领取完礼物后把签到天数清零,所有大于领取礼物日期的签到记录全部设置为无效
UserSignInRequestDto userSignInRequestDto = new UserSignInRequestDto();
userSignInRequestDto.setUserId(dto.getUserId());
userSignInRequestDto.setStartQueryTime(userSignin.getCreateTime());
userSignInDao.updateInvalid(userSignInRequestDto);
//创建赠品订单
DistributionOrder distributionOrder = new DistributionOrder();
String distributionOrderId = IdUtils.getOrderNumber(CommConsts.DISTRIBUTION_ORDER_PREFIX);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment