| @@ -279,4 +279,22 @@ public class RedisConfig extends CachingConfigurerSupport { | |||||
| return template; | return template; | ||||
| } | } | ||||
| @Bean("wxLevelConfigListRedisTemplate") | |||||
| public RedisTemplate<String, List<WxLevelConfig>> getWxLevelConfigListRedisTemplate(RedisConnectionFactory connectionFactory) { | |||||
| RedisTemplate<String, List<WxLevelConfig>> template = new RedisTemplate<>(); | |||||
| Jackson2JsonRedisSerializer<List> j = new Jackson2JsonRedisSerializer(List.class); | |||||
| // value值的序列化 | |||||
| template.setValueSerializer(j); | |||||
| template.setHashKeySerializer(j); | |||||
| // key的序列化 | |||||
| template.setKeySerializer(new StringRedisSerializer()); | |||||
| template.setHashKeySerializer(new StringRedisSerializer()); | |||||
| template.setConnectionFactory(connectionFactory); | |||||
| return template; | |||||
| } | |||||
| } | } | ||||
| @@ -246,6 +246,24 @@ public class RedisConfig extends CachingConfigurerSupport { | |||||
| return template; | return template; | ||||
| } | } | ||||
| @Bean("wxLevelConfigListRedisTemplate") | |||||
| public RedisTemplate<String, List<WxLevelConfig>> getWxLevelConfigListRedisTemplate(RedisConnectionFactory connectionFactory) { | |||||
| RedisTemplate<String, List<WxLevelConfig>> template = new RedisTemplate<>(); | |||||
| Jackson2JsonRedisSerializer<List> j = new Jackson2JsonRedisSerializer(List.class); | |||||
| // value值的序列化 | |||||
| template.setValueSerializer(j); | |||||
| template.setHashKeySerializer(j); | |||||
| // key的序列化 | |||||
| template.setKeySerializer(new StringRedisSerializer()); | |||||
| template.setHashKeySerializer(new StringRedisSerializer()); | |||||
| template.setConnectionFactory(connectionFactory); | |||||
| return template; | |||||
| } | |||||
| @Bean("stringValueOperations") | @Bean("stringValueOperations") | ||||
| public ValueOperations<String, String> getStringValueOperations(RedisConnectionFactory connectionFactory) { | public ValueOperations<String, String> getStringValueOperations(RedisConnectionFactory connectionFactory) { | ||||
| StringRedisTemplate template = new StringRedisTemplate(); | StringRedisTemplate template = new StringRedisTemplate(); | ||||
| @@ -324,6 +324,24 @@ public class RedisConfig extends CachingConfigurerSupport { | |||||
| return template; | return template; | ||||
| } | } | ||||
| @Bean("wxLevelConfigListRedisTemplate") | |||||
| public RedisTemplate<String, List<WxLevelConfig>> getWxLevelConfigListRedisTemplate(RedisConnectionFactory connectionFactory) { | |||||
| RedisTemplate<String, List<WxLevelConfig>> template = new RedisTemplate<>(); | |||||
| Jackson2JsonRedisSerializer<List> j = new Jackson2JsonRedisSerializer(List.class); | |||||
| // value值的序列化 | |||||
| template.setValueSerializer(j); | |||||
| template.setHashKeySerializer(j); | |||||
| // key的序列化 | |||||
| template.setKeySerializer(new StringRedisSerializer()); | |||||
| template.setHashKeySerializer(new StringRedisSerializer()); | |||||
| template.setConnectionFactory(connectionFactory); | |||||
| return template; | |||||
| } | |||||
| @Bean("stringValueOperations") | @Bean("stringValueOperations") | ||||
| public ValueOperations<String, String> getStringValueOperations(RedisConnectionFactory connectionFactory) { | public ValueOperations<String, String> getStringValueOperations(RedisConnectionFactory connectionFactory) { | ||||
| StringRedisTemplate template = new StringRedisTemplate(); | StringRedisTemplate template = new StringRedisTemplate(); | ||||
| @@ -177,7 +177,7 @@ public class WxUserGrantController extends BaseController { | |||||
| if(wxAppinfo == null){ | if(wxAppinfo == null){ | ||||
| return new ResultData(ErrorCode.APP_ID_NOT_FOUND); | return new ResultData(ErrorCode.APP_ID_NOT_FOUND); | ||||
| } | } | ||||
| if(wxAppinfo.getEnable().equals(EnumEnableType.Enable.getCode())){ | |||||
| if(!wxAppinfo.getEnable().equals(EnumEnableType.Enable.getCode())){ | |||||
| return new ResultData(ErrorCode.APP_ID_NOT_ENABLE); | return new ResultData(ErrorCode.APP_ID_NOT_ENABLE); | ||||
| } | } | ||||
| @@ -278,4 +278,22 @@ public class RedisConfig extends CachingConfigurerSupport { | |||||
| return template; | return template; | ||||
| } | } | ||||
| @Bean("wxLevelConfigListRedisTemplate") | |||||
| public RedisTemplate<String, List<WxLevelConfig>> getWxLevelConfigListRedisTemplate(RedisConnectionFactory connectionFactory) { | |||||
| RedisTemplate<String, List<WxLevelConfig>> template = new RedisTemplate<>(); | |||||
| Jackson2JsonRedisSerializer<List> j = new Jackson2JsonRedisSerializer(List.class); | |||||
| // value值的序列化 | |||||
| template.setValueSerializer(j); | |||||
| template.setHashKeySerializer(j); | |||||
| // key的序列化 | |||||
| template.setKeySerializer(new StringRedisSerializer()); | |||||
| template.setHashKeySerializer(new StringRedisSerializer()); | |||||
| template.setConnectionFactory(connectionFactory); | |||||
| return template; | |||||
| } | |||||
| } | } | ||||
| @@ -264,4 +264,23 @@ public class RedisConfig extends CachingConfigurerSupport { | |||||
| return template; | return template; | ||||
| } | } | ||||
| @Bean("wxLevelConfigListRedisTemplate") | |||||
| public RedisTemplate<String, List<WxLevelConfig>> getWxLevelConfigListRedisTemplate(RedisConnectionFactory connectionFactory) { | |||||
| RedisTemplate<String, List<WxLevelConfig>> template = new RedisTemplate<>(); | |||||
| Jackson2JsonRedisSerializer<List> j = new Jackson2JsonRedisSerializer(List.class); | |||||
| // value值的序列化 | |||||
| template.setValueSerializer(j); | |||||
| template.setHashKeySerializer(j); | |||||
| // key的序列化 | |||||
| template.setKeySerializer(new StringRedisSerializer()); | |||||
| template.setHashKeySerializer(new StringRedisSerializer()); | |||||
| template.setConnectionFactory(connectionFactory); | |||||
| return template; | |||||
| } | |||||
| } | } | ||||
| @@ -246,4 +246,22 @@ public class RedisConfig extends CachingConfigurerSupport { | |||||
| return template; | return template; | ||||
| } | } | ||||
| @Bean("wxLevelConfigListRedisTemplate") | |||||
| public RedisTemplate<String, List<WxLevelConfig>> getWxLevelConfigListRedisTemplate(RedisConnectionFactory connectionFactory) { | |||||
| RedisTemplate<String, List<WxLevelConfig>> template = new RedisTemplate<>(); | |||||
| Jackson2JsonRedisSerializer<List> j = new Jackson2JsonRedisSerializer(List.class); | |||||
| // value值的序列化 | |||||
| template.setValueSerializer(j); | |||||
| template.setHashKeySerializer(j); | |||||
| // key的序列化 | |||||
| template.setKeySerializer(new StringRedisSerializer()); | |||||
| template.setHashKeySerializer(new StringRedisSerializer()); | |||||
| template.setConnectionFactory(connectionFactory); | |||||
| return template; | |||||
| } | |||||
| } | } | ||||
| @@ -264,4 +264,22 @@ public class RedisConfig extends CachingConfigurerSupport { | |||||
| return template; | return template; | ||||
| } | } | ||||
| @Bean("wxLevelConfigListRedisTemplate") | |||||
| public RedisTemplate<String, List<WxLevelConfig>> getWxLevelConfigListRedisTemplate(RedisConnectionFactory connectionFactory) { | |||||
| RedisTemplate<String, List<WxLevelConfig>> template = new RedisTemplate<>(); | |||||
| Jackson2JsonRedisSerializer<List> j = new Jackson2JsonRedisSerializer(List.class); | |||||
| // value值的序列化 | |||||
| template.setValueSerializer(j); | |||||
| template.setHashKeySerializer(j); | |||||
| // key的序列化 | |||||
| template.setKeySerializer(new StringRedisSerializer()); | |||||
| template.setHashKeySerializer(new StringRedisSerializer()); | |||||
| template.setConnectionFactory(connectionFactory); | |||||
| return template; | |||||
| } | |||||
| } | } | ||||
| @@ -6,6 +6,8 @@ import com.github.pagehelper.PageHelper; | |||||
| import com.github.pagehelper.PageInfo; | import com.github.pagehelper.PageInfo; | ||||
| import com.iformall.common.IdWorker; | import com.iformall.common.IdWorker; | ||||
| import com.iformall.domain.dto.WxCUserBasicInfoDto; | import com.iformall.domain.dto.WxCUserBasicInfoDto; | ||||
| import com.iformall.domain.po.WxAppinfo; | |||||
| import com.iformall.domain.po.WxCUserBasicInfo; | |||||
| import com.iformall.domain.po.base.BaseEntity; | import com.iformall.domain.po.base.BaseEntity; | ||||
| import com.iformall.domain.po.WxLevelConfig; | import com.iformall.domain.po.WxLevelConfig; | ||||
| import com.iformall.domain.po.WxLevelMerchant; | import com.iformall.domain.po.WxLevelMerchant; | ||||
| @@ -16,16 +18,21 @@ import com.iformall.mapper.WxLevelConfigMapper; | |||||
| import com.iformall.mapper.WxLevelMerchantMapper; | import com.iformall.mapper.WxLevelMerchantMapper; | ||||
| import com.iformall.service.WxCUserBasicInfoService; | import com.iformall.service.WxCUserBasicInfoService; | ||||
| import com.iformall.service.WxLevelConfigService; | import com.iformall.service.WxLevelConfigService; | ||||
| import com.iformall.utils.Constant; | |||||
| import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
| import org.slf4j.Logger; | import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | import org.slf4j.LoggerFactory; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | 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 org.springframework.stereotype.Service; | ||||
| import org.springframework.transaction.annotation.Transactional; | import org.springframework.transaction.annotation.Transactional; | ||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||
| import java.util.Date; | import java.util.Date; | ||||
| import java.util.List; | import java.util.List; | ||||
| import java.util.concurrent.TimeUnit; | |||||
| @Service | @Service | ||||
| public class WxLevelConfigServiceImpl implements WxLevelConfigService { | public class WxLevelConfigServiceImpl implements WxLevelConfigService { | ||||
| @@ -46,6 +53,10 @@ public class WxLevelConfigServiceImpl implements WxLevelConfigService { | |||||
| @Autowired | @Autowired | ||||
| private WxCUserBasicInfoService wxCUserBasicInfoService; | private WxCUserBasicInfoService wxCUserBasicInfoService; | ||||
| @Autowired | |||||
| @Qualifier("wxLevelConfigListRedisTemplate") | |||||
| RedisTemplate<String, List<WxLevelConfig>> wxLevelConfigListRedisTemplate; | |||||
| @Override | @Override | ||||
| public PageInfo<WxLevelConfig> listAsPage(TenantEntity tenantEntity,WxLevelConfig record, Integer pageIndex, Integer pageSize) { | public PageInfo<WxLevelConfig> listAsPage(TenantEntity tenantEntity,WxLevelConfig record, Integer pageIndex, Integer pageSize) { | ||||
| PageInfo<WxLevelConfig> page = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxLevelConfigMapper.findList(record)); | PageInfo<WxLevelConfig> page = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxLevelConfigMapper.findList(record)); | ||||
| @@ -128,13 +139,17 @@ public class WxLevelConfigServiceImpl implements WxLevelConfigService { | |||||
| @Override | @Override | ||||
| public List<WxLevelConfig> getByTenantInfo(TenantEntity tenantEntity) { | public List<WxLevelConfig> getByTenantInfo(TenantEntity tenantEntity) { | ||||
| String key = Constant.levelConfigPrev + tenantEntity.getTenantId(); | |||||
| ValueOperations<String, List<WxLevelConfig>> operations = wxLevelConfigListRedisTemplate.opsForValue(); | |||||
| if(wxLevelConfigListRedisTemplate.hasKey(key)){ | |||||
| return operations.get(key); | |||||
| } | |||||
| WxLevelConfig wxLevelConfig = new WxLevelConfig(); | WxLevelConfig wxLevelConfig = new WxLevelConfig(); | ||||
| wxLevelConfig.setTenantId(tenantEntity.getTenantId()); | wxLevelConfig.setTenantId(tenantEntity.getTenantId()); | ||||
| if(StringUtils.isNotBlank(tenantEntity.getParentTenantId())){ | |||||
| wxLevelConfig.setTenantId(tenantEntity.getParentTenantId()); | |||||
| } | |||||
| wxLevelConfig.setSortColumns(BaseEntity.SortField.Points_ASC); | wxLevelConfig.setSortColumns(BaseEntity.SortField.Points_ASC); | ||||
| return wxLevelConfigMapper.findList(wxLevelConfig); | |||||
| List<WxLevelConfig> list = wxLevelConfigMapper.findList(wxLevelConfig); | |||||
| operations.set(key, list, 7, TimeUnit.DAYS); | |||||
| return list; | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -152,6 +167,7 @@ public class WxLevelConfigServiceImpl implements WxLevelConfigService { | |||||
| } else { | } else { | ||||
| wxLevelConfigMapper.updateById(record); | wxLevelConfigMapper.updateById(record); | ||||
| } | } | ||||
| this.deleteRedis(record.getTenantId()); | |||||
| } | } | ||||
| @Transactional(rollbackFor = {Exception.class}) | @Transactional(rollbackFor = {Exception.class}) | ||||
| @@ -172,6 +188,7 @@ public class WxLevelConfigServiceImpl implements WxLevelConfigService { | |||||
| levelConfigs.add(levelConfig); | levelConfigs.add(levelConfig); | ||||
| } | } | ||||
| wxLevelConfigMapper.insertBatch(levelConfigs); | wxLevelConfigMapper.insertBatch(levelConfigs); | ||||
| this.deleteRedis(tenantEntity.getTenantId()); | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -188,6 +205,7 @@ public class WxLevelConfigServiceImpl implements WxLevelConfigService { | |||||
| } | } | ||||
| } | } | ||||
| wxLevelConfigMapper.batchUpdate(levelConfigs); | wxLevelConfigMapper.batchUpdate(levelConfigs); | ||||
| this.deleteRedis(tenantEntity.getTenantId()); | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -197,11 +215,14 @@ public class WxLevelConfigServiceImpl implements WxLevelConfigService { | |||||
| @Override | @Override | ||||
| public void deleteById(Long id) { | public void deleteById(Long id) { | ||||
| WxLevelConfig records = this.getById(id); | |||||
| this.deleteRedis(records.getTenantId()); | |||||
| wxLevelConfigMapper.deleteById(id); | wxLevelConfigMapper.deleteById(id); | ||||
| } | } | ||||
| @Override | @Override | ||||
| public void deleteAll(TenantEntity tenantEntity) { | public void deleteAll(TenantEntity tenantEntity) { | ||||
| this.deleteRedis(tenantEntity.getTenantId()); | |||||
| wxLevelConfigMapper.deleteAll(tenantEntity.getTenantId()); | wxLevelConfigMapper.deleteAll(tenantEntity.getTenantId()); | ||||
| } | } | ||||
| @@ -216,4 +237,10 @@ public class WxLevelConfigServiceImpl implements WxLevelConfigService { | |||||
| return wxLevelMerchantapper.findListCVo(record); | return wxLevelMerchantapper.findListCVo(record); | ||||
| } | } | ||||
| private void deleteRedis(String tenantId){ | |||||
| String key1 = Constant.levelConfigPrev + tenantId; | |||||
| if(wxLevelConfigListRedisTemplate.hasKey(key1)){ | |||||
| wxLevelConfigListRedisTemplate.delete(key1); | |||||
| } | |||||
| } | |||||
| } | } | ||||
| @@ -63,4 +63,6 @@ public class Constant { | |||||
| public static final String mallinfoPrev = "mallinfo:"; | public static final String mallinfoPrev = "mallinfo:"; | ||||
| public static final String subMallinfoPrev = "mallinfo:subMallinfo:"; | public static final String subMallinfoPrev = "mallinfo:subMallinfo:"; | ||||
| public static final String levelConfigPrev = "levelConfig:"; | |||||
| } | } | ||||
| @@ -277,4 +277,21 @@ public class RedisConfig extends CachingConfigurerSupport { | |||||
| return template; | return template; | ||||
| } | } | ||||
| @Bean("wxLevelConfigListRedisTemplate") | |||||
| public RedisTemplate<String, List<WxLevelConfig>> getWxLevelConfigListRedisTemplate(RedisConnectionFactory connectionFactory) { | |||||
| RedisTemplate<String, List<WxLevelConfig>> template = new RedisTemplate<>(); | |||||
| Jackson2JsonRedisSerializer<List> j = new Jackson2JsonRedisSerializer(List.class); | |||||
| // value值的序列化 | |||||
| template.setValueSerializer(j); | |||||
| template.setHashKeySerializer(j); | |||||
| // key的序列化 | |||||
| template.setKeySerializer(new StringRedisSerializer()); | |||||
| template.setHashKeySerializer(new StringRedisSerializer()); | |||||
| template.setConnectionFactory(connectionFactory); | |||||
| return template; | |||||
| } | |||||
| } | } | ||||
| @@ -263,4 +263,21 @@ public class RedisConfig extends CachingConfigurerSupport { | |||||
| return template; | return template; | ||||
| } | } | ||||
| @Bean("wxLevelConfigListRedisTemplate") | |||||
| public RedisTemplate<String, List<WxLevelConfig>> getWxLevelConfigListRedisTemplate(RedisConnectionFactory connectionFactory) { | |||||
| RedisTemplate<String, List<WxLevelConfig>> template = new RedisTemplate<>(); | |||||
| Jackson2JsonRedisSerializer<List> j = new Jackson2JsonRedisSerializer(List.class); | |||||
| // value值的序列化 | |||||
| template.setValueSerializer(j); | |||||
| template.setHashKeySerializer(j); | |||||
| // key的序列化 | |||||
| template.setKeySerializer(new StringRedisSerializer()); | |||||
| template.setHashKeySerializer(new StringRedisSerializer()); | |||||
| template.setConnectionFactory(connectionFactory); | |||||
| return template; | |||||
| } | |||||
| } | } | ||||