diff --git a/mallinkCApi/src/main/java/com/iformall/config/RedisConfig.java b/mallinkCApi/src/main/java/com/iformall/config/RedisConfig.java index 39666265b..b99a2236f 100644 --- a/mallinkCApi/src/main/java/com/iformall/config/RedisConfig.java +++ b/mallinkCApi/src/main/java/com/iformall/config/RedisConfig.java @@ -1,10 +1,12 @@ package com.iformall.config; +import com.github.pagehelper.PageInfo; import com.iformall.domain.po.PushLimit; import com.iformall.domain.po.WxCUser; import com.iformall.domain.po.WxMall; import com.iformall.domain.po.WxScoreRules; import com.iformall.domain.vo.WxCouponCVo; +import com.iformall.domain.vo.WxCouponChannelVo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cache.CacheManager; @@ -140,4 +142,21 @@ public class RedisConfig extends CachingConfigurerSupport { return template; } + @Bean("couponChannelRedisTemplate") + public RedisTemplate> getCouponChannelRedisTemplate(RedisConnectionFactory connectionFactory) { + RedisTemplate> template = new RedisTemplate<>(); + + Jackson2JsonRedisSerializer j = new Jackson2JsonRedisSerializer(PageInfo.class); + // value值的序列化 + template.setValueSerializer(j); + template.setHashKeySerializer(j); + + // key的序列化 + template.setKeySerializer(new StringRedisSerializer()); + template.setHashKeySerializer(new StringRedisSerializer()); + + template.setConnectionFactory(connectionFactory); + return template; + } + } diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumTargetAd.java b/mallinkService/src/main/java/com/iformall/enums/EnumTargetAd.java new file mode 100644 index 000000000..4a8f8e2a6 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumTargetAd.java @@ -0,0 +1,34 @@ +package com.iformall.enums; + +public enum EnumTargetAd { + + + LIST(1, "列表"), + BUG(2, "显示抢购"), + ; + + public static EnumTargetAd getEnum(Integer code) { + for (EnumTargetAd value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumTargetAd(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } +} diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java index 6fd63f643..e5749b1e2 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java @@ -21,9 +21,13 @@ import com.iformall.service.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.ValueOperations; import org.springframework.stereotype.Service; import java.util.*; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @Service @@ -46,6 +50,9 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { QrCodeService qrCodeService; @Autowired WxCardInfoMapper wxCardInfoMapper; + @Autowired + @Qualifier("couponChannelRedisTemplate") + RedisTemplate> cdRedisTemplate; /** * B端业务端 @@ -284,6 +291,24 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { */ @Override public PageInfo listPageCVo(WxCouponChannel record, Integer pageIndex, Integer pageSize) { + PageInfo pageInfo; + //首页走缓存 + if(EnumTargetAd.LIST.getCode().equals(record.getTargetAd()) && new Integer(6).equals(pageSize)) { + //logger.info("---------chache"); + String key = "couponChannelList_" + pageIndex + ":"; + ValueOperations> operations = cdRedisTemplate.opsForValue(); + boolean hasKey = cdRedisTemplate.hasKey(key); + if (hasKey) { + pageInfo = operations.get(key); + //logger.info("---------get:{}",pageInfo.getList().size()); + }else{ + pageInfo = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponChannelMapper.findVoList(record)); + } + //插入缓存 + operations.set(key, pageInfo, 3600, TimeUnit.SECONDS); + return pageInfo; + } + return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponChannelMapper.findVoList(record)); }