diff --git a/mallinkAdmin/src/main/java/com/iformall/config/RedisConfig.java b/mallinkAdmin/src/main/java/com/iformall/config/RedisConfig.java index 7da08a3d9..52e91f4de 100644 --- a/mallinkAdmin/src/main/java/com/iformall/config/RedisConfig.java +++ b/mallinkAdmin/src/main/java/com/iformall/config/RedisConfig.java @@ -1,9 +1,11 @@ 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.WxCouponChannelVo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cache.CacheManager; @@ -160,4 +162,22 @@ 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/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponChannelController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponChannelController.java index f68ff413e..49be33a3e 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponChannelController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponChannelController.java @@ -67,7 +67,6 @@ public class WxCouponChannelController extends BaseController { return new ResultData(page); } - @ApiOperation("根据id更新接口") @PostMapping("update") @SystemControllerLog(description = "券投放-更新") @@ -92,6 +91,8 @@ public class WxCouponChannelController extends BaseController { return resultData; } + + @ApiOperation("根据id查询接口") @GetMapping("/findById") @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) diff --git a/mallinkBApi/src/main/java/com/iformall/config/RedisConfig.java b/mallinkBApi/src/main/java/com/iformall/config/RedisConfig.java index 7e167a93e..29ceeaa55 100644 --- a/mallinkBApi/src/main/java/com/iformall/config/RedisConfig.java +++ b/mallinkBApi/src/main/java/com/iformall/config/RedisConfig.java @@ -1,9 +1,11 @@ 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.WxCouponChannelVo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cache.CacheManager; @@ -122,4 +124,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/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/mallinkCallback/src/main/java/com/iformall/config/RedisConfig.java b/mallinkCallback/src/main/java/com/iformall/config/RedisConfig.java index 7da08a3d9..90b93d911 100644 --- a/mallinkCallback/src/main/java/com/iformall/config/RedisConfig.java +++ b/mallinkCallback/src/main/java/com/iformall/config/RedisConfig.java @@ -1,9 +1,11 @@ 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.WxCouponChannelVo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cache.CacheManager; @@ -160,4 +162,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/mallinkMQConsumer/src/main/java/com/iformall/config/RedisConfig.java b/mallinkMQConsumer/src/main/java/com/iformall/config/RedisConfig.java index 8f732eb31..91be4cbfe 100644 --- a/mallinkMQConsumer/src/main/java/com/iformall/config/RedisConfig.java +++ b/mallinkMQConsumer/src/main/java/com/iformall/config/RedisConfig.java @@ -1,9 +1,11 @@ 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.WxCouponChannelVo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cache.CacheManager; @@ -144,4 +146,20 @@ 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/mallinkPosApi/src/main/java/com/iformall/config/RedisConfig.java b/mallinkPosApi/src/main/java/com/iformall/config/RedisConfig.java index 7e167a93e..59852710d 100644 --- a/mallinkPosApi/src/main/java/com/iformall/config/RedisConfig.java +++ b/mallinkPosApi/src/main/java/com/iformall/config/RedisConfig.java @@ -1,9 +1,11 @@ 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.WxCouponChannelVo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cache.CacheManager; @@ -122,4 +124,20 @@ 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/mallinkSchedule/src/main/java/com/iformall/config/RedisConfig.java b/mallinkSchedule/src/main/java/com/iformall/config/RedisConfig.java index 9195744e4..6e35c905f 100644 --- a/mallinkSchedule/src/main/java/com/iformall/config/RedisConfig.java +++ b/mallinkSchedule/src/main/java/com/iformall/config/RedisConfig.java @@ -1,9 +1,11 @@ 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.WxCouponChannelVo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cache.CacheManager; @@ -145,4 +147,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/mapper/WxCouponChannelMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCouponChannelMapper.java index 332e4a631..fb6683750 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCouponChannelMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponChannelMapper.java @@ -7,8 +7,10 @@ import com.iformall.domain.po.WxTopic; import com.iformall.domain.vo.WxCouponCVo; import com.iformall.domain.vo.WxCouponChannelVo; import com.iformall.domain.po.WxCouponChannel; +import org.apache.ibatis.annotations.CacheNamespace; import org.apache.ibatis.annotations.Param; +@CacheNamespace public interface WxCouponChannelMapper extends CommonMapper { List findList(WxCouponChannel wxCouponChannel); diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java index 6b2b499d2..ebdc457b0 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java @@ -5,9 +5,11 @@ import com.iformall.common.CommonMapper; import com.iformall.domain.po.WxTopic; import com.iformall.domain.vo.WxCouponCVo; import com.iformall.domain.vo.WxCouponStatisVo; +import org.apache.ibatis.annotations.CacheNamespace; import org.apache.ibatis.annotations.Param; import com.iformall.domain.po.WxCoupon; +@CacheNamespace public interface WxCouponMapper extends CommonMapper { List findPressData(WxCoupon wxCoupon); List findCouponData(WxCoupon wxCoupon); 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..7fb800d74 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端业务端 @@ -111,9 +118,23 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { record.setUpdateDate(new Date()); wxCouponChannelMapper.updateByPrimaryKeySelective(record); } + + //清除缓存 + clearCache(record.getTenantId()); return new ResultData(); } + /** + * 清除c端首页卷列表缓存 + * @param tenantId + */ + public void clearCache(String tenantId){ + for (int i = 1; i <=20 ; i++) { + String key = "couponChannelList_"+tenantId+"_" + i + ":"; + cdRedisTemplate.delete(key); + } + } + @Override public ResultData addBatch(String[] ids, String[] channelId, String tanantId, Date beginTime, Date endTime) { List errorList = new ArrayList<>(); @@ -284,6 +305,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) && pageIndex.intValue() <=20 ) { + logger.info("---------chache"); + String key = "couponChannelList_"+record.getTenantId()+"_" + 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)); } diff --git a/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml index 282ec1180..10c61d8cb 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml @@ -180,7 +180,7 @@ - select from wx_coupon_channel cc left join wx_coupon c on cc.coupon_id = c.id diff --git a/mallinkService/src/main/resources/mapper/WxOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxOrderMapper.xml index 395d8f788..6e152d7bf 100644 --- a/mallinkService/src/main/resources/mapper/WxOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxOrderMapper.xml @@ -464,7 +464,7 @@ from wx_order o inner join wx_merchant_b_user bu on bu.id = o.product_id inner join wx_merchant m on m.id = bu.merchant_id - where m.`id` = #{merchantId} and o.`type` = 1 + where m.`id` = #{merchantId} and o.`type` = 1 and o.`order_status` = 1 and o.`create_date` BETWEEN #{startTime} and #{endTime} diff --git a/mallinkSysAdmin/src/main/java/com/iformall/config/RedisConfig.java b/mallinkSysAdmin/src/main/java/com/iformall/config/RedisConfig.java index 7da08a3d9..90b93d911 100644 --- a/mallinkSysAdmin/src/main/java/com/iformall/config/RedisConfig.java +++ b/mallinkSysAdmin/src/main/java/com/iformall/config/RedisConfig.java @@ -1,9 +1,11 @@ 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.WxCouponChannelVo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cache.CacheManager; @@ -160,4 +162,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/mallinkWebSocketServer/src/main/java/com/iformall/config/RedisConfig.java b/mallinkWebSocketServer/src/main/java/com/iformall/config/RedisConfig.java index 8f732eb31..c4cbd5fef 100644 --- a/mallinkWebSocketServer/src/main/java/com/iformall/config/RedisConfig.java +++ b/mallinkWebSocketServer/src/main/java/com/iformall/config/RedisConfig.java @@ -1,9 +1,11 @@ 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.WxCouponChannelVo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cache.CacheManager; @@ -144,4 +146,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; + } + }