1、consul配置.yml
config:
# 门店区域配置
storeConfig: '[{"storeId":1234,"type":1},{"storeId":1235,"type":2},{"storeId":1236,"type":1}]'
2、ConsulConfig.java
package com.xxx.config;
import com.google.common.collect.Lists;
import org.springframework.boot.context.properties.ConfigurationProperties;
import java.util.ArrayList;
import java.util.List;
@ConfigurationProperties(prefix = "config")
public class ConsulConfig {
/**
* 门店区域配置实体
*/
private String storeConfig = "[{\"storeId\":6758,\"type\":1}]";
public String getStoreConfig() {
return storeConfig;
}
public void setStoreConfig(String storeConfig) {
this.storeConfig = storeConfig;
}
}
3、StoreConfig.java
package com.walmart.middlelayer.cloud.config;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* @author :Alvin Xu
* @date :Created in 2021/6/11 11:12
* @description:门店区域配置实体
*/
@ApiModel
public class StoreConfig {
@ApiModelProperty(value = "门店")
private Integer storeId;
@ApiModelProperty(value="0,含拣货区含楼面;1,含楼面不含拣货区;2,含拣货区不含楼面")
private Integer type;
public StoreConfig(){
}
public StoreConfig(Integer storeId,Integer type){
this.storeId = storeId;
this.type = type;
}
public Integer getStoreId() {
return storeId;
}
public void setStoreId(Integer storeId) {
this.storeId = storeId;
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
}
4、StoreConfig.java
package com.xxx.service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @author :xxx
* @date :Created in 2023/3/29 16:13
* @description:配置服务
*/
@Service
public class ConsulConfigService {
@Autowired
private ConsulConfig consulConfig;
/**
* 查询门店区域配置
* @param storeId
* @return
*/
public List<StoreConfig> getStoreConfig(Integer storeId) {
List<StoreConfig> storeConfigList = JSON.parseObject(consulConfig.getStoreConfig(), new TypeReference<List<StoreConfig>>() {
});
if(null == storeId){
return storeConfigList;
}
List<StoreConfig> storeConfigFilter = storeConfigList.stream().filter(storeConfig -> storeConfig.getStoreId().equals(storeId)).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(storeConfigFilter)){
return storeConfigFilter;
}
return Collections.singletonList(new StoreConfig(storeId,1));
}
}