|
@@ -89,6 +89,7 @@ import java.math.RoundingMode;
|
|
import java.text.SimpleDateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
import java.time.*;
|
|
import java.time.*;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.time.format.DateTimeFormatter;
|
|
|
|
+import java.time.temporal.ChronoUnit;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.concurrent.CompletableFuture;
|
|
import java.util.concurrent.CompletableFuture;
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.concurrent.TimeUnit;
|
|
@@ -989,6 +990,10 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
|
|
@Override
|
|
@Override
|
|
@Transactional
|
|
@Transactional
|
|
public R sendReward(FsCourseSendRewardUParam param) {
|
|
public R sendReward(FsCourseSendRewardUParam param) {
|
|
|
|
+// boolean isWithin10Minutes = isWithin10Minutes(param.getUserId());
|
|
|
|
+// if (isWithin10Minutes){
|
|
|
|
+// return R.error("非有效期内,不允许领取!");
|
|
|
|
+// }
|
|
// 获取用户信息
|
|
// 获取用户信息
|
|
FsUser user = fsUserMapper.selectFsUserByUserId(param.getUserId());
|
|
FsUser user = fsUserMapper.selectFsUserByUserId(param.getUserId());
|
|
// if (StringUtils.isEmpty(user.getMpOpenId())){
|
|
// if (StringUtils.isEmpty(user.getMpOpenId())){
|
|
@@ -1057,6 +1062,29 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 检查是否在10分钟有效期内
|
|
|
|
+ */
|
|
|
|
+ private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
|
|
|
|
+ private static final int EXPIRE_MINUTES = 10;
|
|
|
|
+ private boolean isWithin10Minutes(Long userId) {
|
|
|
|
+ String key = "h5user:redPacket:" + userId;
|
|
|
|
+
|
|
|
|
+ String storedTimeStr = redisCache.getCacheObject(key);
|
|
|
|
+ if (storedTimeStr == null) {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ try {
|
|
|
|
+ LocalDateTime storedTime = LocalDateTime.parse(storedTimeStr, FORMATTER);
|
|
|
|
+ long minutes = Duration.between(storedTime, LocalDateTime.now()).toMinutes();
|
|
|
|
+ return minutes <= EXPIRE_MINUTES;
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public R sendRewardByFsUser(FsCourseSendRewardUParam param) {
|
|
public R sendRewardByFsUser(FsCourseSendRewardUParam param) {
|
|
log.info("进入用户判断");
|
|
log.info("进入用户判断");
|
|
@@ -1262,6 +1290,8 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
|
|
log.setRewardType(config.getRewardType());
|
|
log.setRewardType(config.getRewardType());
|
|
courseWatchLogMapper.updateFsCourseWatchLog(log);
|
|
courseWatchLogMapper.updateFsCourseWatchLog(log);
|
|
|
|
|
|
|
|
+// redisCache.setCacheObject("h5user:redPacket:"+param.getUserId(),LocalDateTime.now().toString());
|
|
|
|
+
|
|
return sendRedPacket;
|
|
return sendRedPacket;
|
|
} else {
|
|
} else {
|
|
return R.error("奖励发送失败,请联系客服");
|
|
return R.error("奖励发送失败,请联系客服");
|