测试美化

发布时间 2023-07-07 19:07:08作者: 我丢了没有

I am sugar

@Override
public SignResultVO addSignRecord() {
    // 获取用户id
    Long userId = UserContext.getUser();
    // 拼接key
    // SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMM");
    // String format = simpleDateFormat.format(new Date());
    LocalDate now = LocalDate.now();
    String format = now.format(DateTimeFormatter.ofPattern(":yyyyMM"));
    String key = RedisConstants.SIGN_RECORD_KEY_PREFIX + userId.toString() + format;
    // 利用bitset命令将签到记录保存到redis 需要判断返回值 如果true代表已签到
    int offset = now.getDayOfMonth() - 1;
    Boolean setBit = redisTemplate.opsForValue().setBit(key, offset, true);
    if (setBit) {
        throw new BizIllegalException("不能重复签到");
    }
    // 计算连续签到的天数
    int days = countSignDays(key, now.getDayOfMonth());
    // 计算连续签到的奖励积分
    int rewardPoints = 0; //
    switch (days) {
        case 7:
            rewardPoints = 10;
            break;
        case 14:
            rewardPoints = 20;
            break;
        case 28:
            rewardPoints = 40;
            break;
    }
    // 保存积分
    mqHelper.send(MqConstants.Exchange.LEARNING_EXCHANGE,
            MqConstants.Key.SIGN_IN, SignInMessage.of(userId, rewardPoints + 1));
    // 封装vo返回
    SignResultVO vo = new SignResultVO();
    vo.setSignDays(days);
    vo.setRewardPoints(rewardPoints);
    return vo;
}