diff --git a/src/main/java/com/sqx/modules/app/controller/app/AdController.java b/src/main/java/com/sqx/modules/app/controller/app/AdController.java index 877d755e..b3cbbdd2 100644 --- a/src/main/java/com/sqx/modules/app/controller/app/AdController.java +++ b/src/main/java/com/sqx/modules/app/controller/app/AdController.java @@ -4,25 +4,35 @@ import com.sqx.common.utils.Result; import com.sqx.modules.app.annotation.Login; import com.sqx.modules.app.service.AdService; import com.sqx.modules.callback.service.UniAdCallbackRecordService; +import com.sqx.modules.redisService.RedisService; import com.sqx.modules.sys.controller.AbstractController; import org.springframework.web.bind.annotation.*; +import java.util.HashMap; + @RestController @RequestMapping("/app/ad") public class AdController extends AbstractController { private final UniAdCallbackRecordService callbackRecordService; private final AdService adService; + private final RedisService redisService; - public AdController(UniAdCallbackRecordService callbackRecordService, AdService adService) { + public AdController(UniAdCallbackRecordService callbackRecordService, AdService adService, RedisService redisService) { this.callbackRecordService = callbackRecordService; this.adService = adService; + this.redisService = redisService; } @Login @GetMapping("/state") public Result getAdState(@RequestParam String extraKey, @RequestAttribute Long userId) { - return Result.success(callbackRecordService.getStateByExtraKey(userId, extraKey)); + HashMap info = callbackRecordService.getStateByExtraKey(userId, extraKey); + if (info.get("isEnded") == 0 && !redisService.isCanCash(userId)) { + redisService.setCanCashFlag(userId, -1L); + info.put("isEnded", 1); + } + return Result.success(); } @Login diff --git a/src/main/java/com/sqx/modules/callback/service/UniAdCallbackRecordService.java b/src/main/java/com/sqx/modules/callback/service/UniAdCallbackRecordService.java index 301aabbb..e04a81b6 100644 --- a/src/main/java/com/sqx/modules/callback/service/UniAdCallbackRecordService.java +++ b/src/main/java/com/sqx/modules/callback/service/UniAdCallbackRecordService.java @@ -16,5 +16,5 @@ public interface UniAdCallbackRecordService extends IService adCallBack(UniAdCallBackDTO callBackDTO); - HashMap getStateByExtraKey(Long userId, String extraKey); + HashMap getStateByExtraKey(Long userId, String extraKey); } diff --git a/src/main/java/com/sqx/modules/callback/service/impl/UniAdCallbackRecordServiceImpl.java b/src/main/java/com/sqx/modules/callback/service/impl/UniAdCallbackRecordServiceImpl.java index 2174a5f9..4ca16e2b 100644 --- a/src/main/java/com/sqx/modules/callback/service/impl/UniAdCallbackRecordServiceImpl.java +++ b/src/main/java/com/sqx/modules/callback/service/impl/UniAdCallbackRecordServiceImpl.java @@ -129,10 +129,10 @@ public class UniAdCallbackRecordServiceImpl extends ServiceImpl getStateByExtraKey(Long userId, String extraKey) { + public HashMap getStateByExtraKey(Long userId, String extraKey) { UniAdCallbackRecord one = getOne(new LambdaQueryWrapper().eq(UniAdCallbackRecord::getUserId, userId) .eq(UniAdCallbackRecord::getExtra, extraKey)); - return new HashMap(){{ + return new HashMap(){{ put("isEnded", one == null ? 0 : 1); }}; }