diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/funds/advertisement/AdvertisementMapper.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/funds/advertisement/AdvertisementMapper.java index dbacd87eb..b12341624 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/funds/advertisement/AdvertisementMapper.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/funds/advertisement/AdvertisementMapper.java @@ -25,17 +25,18 @@ public interface AdvertisementMapper extends BaseMapperX { default PageResult selectPage(AdvertisementPageReqVO reqVO) { - List adPosition = reqVO.getAdPosition(); - String adPositionStr = null; - if(CollUtil.isNotEmpty(adPosition)) { - adPositionStr = CollUtil.join(adPosition.stream().sorted().distinct().toList(), ","); - } LambdaQueryWrapperX queryWrapper = new LambdaQueryWrapperX() .likeIfPresent(AdvertisementDO::getAdName, reqVO.getAdName()) - .likeIfPresent(AdvertisementDO::getAdPosition, adPositionStr) .eqIfPresent(AdvertisementDO::getStatus, reqVO.getStatus()) .eqIfPresent(AdvertisementDO::getDeleted, false); + List adPosition = reqVO.getAdPosition(); + if (CollUtil.isNotEmpty(adPosition)) { + queryWrapper.and(wrapper -> { + adPosition.stream().distinct().forEach(pos -> wrapper.or().apply("FIND_IN_SET({0}, ad_position)", pos)); + }); + } + return selectPage(reqVO, queryWrapper); } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/sms/SmsCodeServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/sms/SmsCodeServiceImpl.java index ee4f666bb..a7911b1ef 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/sms/SmsCodeServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/sms/SmsCodeServiceImpl.java @@ -29,6 +29,7 @@ import jakarta.annotation.Resource; import java.time.Duration; import java.time.LocalDateTime; import java.util.HashMap; +import java.util.concurrent.TimeUnit; import static cn.hutool.core.util.RandomUtil.randomInt; @@ -163,6 +164,8 @@ public class SmsCodeServiceImpl implements SmsCodeService { // 窗口足够添加当前请求的时间戳 redisTemplate.opsForZSet().add(key, currentTime, currentTime); + // 设置过期时间 = 窗口大小 + 30分钟缓冲 + redisTemplate.expire(key, winSizeMin + 30, TimeUnit.MINUTES); return true; } diff --git a/cf-module-system/cf-module-system-biz/src/main/resources/mapper/funds/advertisement/AdvertisementMapper.xml b/cf-module-system/cf-module-system-biz/src/main/resources/mapper/funds/advertisement/AdvertisementMapper.xml index 9100a097d..b87e10537 100644 --- a/cf-module-system/cf-module-system-biz/src/main/resources/mapper/funds/advertisement/AdvertisementMapper.xml +++ b/cf-module-system/cf-module-system-biz/src/main/resources/mapper/funds/advertisement/AdvertisementMapper.xml @@ -35,7 +35,7 @@ ad_redirect_url from advertisement where deleted = false - and ad_position like concat('%', #{adPosition},'%') + and find_in_set (#{adPosition}, ad_position) and status = #{status} and start_time <= #{now} and end_time >= #{now}