获取MDM省市数据

This commit is contained in:
pserimal
2023-06-28 16:04:17 +08:00
parent 0be09db39f
commit 6173174580
8 changed files with 179 additions and 2 deletions

View File

@@ -0,0 +1,20 @@
package com.cool.store.service;
import com.cool.store.entity.MDMAreaDO;
import java.util.List;
public interface MDMAreaService {
/**
* 获取省级数据
*/
List<MDMAreaDO> getProvince();
/**
* 获取子级地区
* @param code 父级 code
*/
List<MDMAreaDO> getSonArea(String code);
}

View File

@@ -0,0 +1,55 @@
package com.cool.store.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.constants.RedisConstant;
import com.cool.store.entity.MDMAreaDO;
import com.cool.store.mapper.MdmAreaMapper;
import com.cool.store.service.MDMAreaService;
import com.cool.store.utils.RedisUtilPool;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class MDMAreaServiceImpl implements MDMAreaService {
@Autowired
private RedisUtilPool redisUtilPool;
@Autowired
private MdmAreaMapper mdmAreaMapper;
/**
* 获取省级数据
*/
@Override
public List<MDMAreaDO> getProvince() {
String provincesJson = redisUtilPool.getString(RedisConstant.MDM_AREA_PROVINCE);
if (StringUtils.isNotEmpty(provincesJson)) {
return (List<MDMAreaDO>) JSONObject.parseObject(provincesJson, List.class);
}
List<MDMAreaDO> areaDOList = mdmAreaMapper.getProvince();
//过期时间三小时
redisUtilPool.setString(RedisConstant.MDM_AREA_PROVINCE, JSONObject.toJSONString(areaDOList), 3 * 60 * 60);
return areaDOList;
}
/**
* 获取子级地区
* @param code 父级 code
*/
@Override
public List<MDMAreaDO> getSonArea(String code) {
String provincesJson = redisUtilPool.getString(RedisConstant.MDM_AREA_OTHERS);
if (StringUtils.isNotEmpty(provincesJson)) {
return (List<MDMAreaDO>) JSONObject.parseObject(provincesJson, List.class);
}
List<MDMAreaDO> areaDOList = mdmAreaMapper.getSonArea(code);
//过期时间三小时
redisUtilPool.setString(RedisConstant.MDM_AREA_PROVINCE, JSONObject.toJSONString(areaDOList), 3 * 60 * 60);
return areaDOList;
}
}