diff --git a/blade-ops/blade-resource/src/main/resources/application-dev.yml b/blade-ops/blade-resource/src/main/resources/application-dev.yml index 0fca26fc..0a7b08ad 100644 --- a/blade-ops/blade-resource/src/main/resources/application-dev.yml +++ b/blade-ops/blade-resource/src/main/resources/application-dev.yml @@ -15,12 +15,12 @@ oss: #租户模式 tenant-mode: true #oss服务地址 - endpoint: http://192.168.10.100:9000 + endpoint: http://192.168.2.46:9000 #minio转换服务地址,用于内网上传后将返回地址改为转换的外网地址 - transform-endpoint: http://192.168.10.100:9000 + transform-endpoint: http://192.168.2.46:9000 #访问key access-key: minio #密钥key secret-key: 123123123 #存储桶 - bucket-name: bladex + bucket-name: logpm diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java index e791b3ba..3ebe4b07 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java @@ -19,6 +19,7 @@ package org.springblade.system.feign; import org.springblade.core.launch.constant.AppConstant; import org.springblade.core.tool.api.R; import org.springblade.system.entity.*; +import org.springblade.system.vo.RegionAllVO; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -61,6 +62,7 @@ public interface ISysClient { String PARAM = API_PREFIX + "/param"; String PARAM_VALUE = API_PREFIX + "/param-value"; String REGION = API_PREFIX + "/region"; + String REGIONS = API_PREFIX + "/regions"; /** * 获取菜单 @@ -283,4 +285,12 @@ public interface ISysClient { @GetMapping(REGION) R getRegion(@RequestParam("code") String code); + /** + * 获取全部行政区划 + * + * @return + */ + @GetMapping(REGIONS) + R> getRegionALL(); + } diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java index 069878ce..6a639257 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java @@ -17,7 +17,15 @@ package org.springblade.system.feign; import org.springblade.core.tool.api.R; -import org.springblade.system.entity.*; +import org.springblade.system.entity.Dept; +import org.springblade.system.entity.Menu; +import org.springblade.system.entity.Param; +import org.springblade.system.entity.Post; +import org.springblade.system.entity.Region; +import org.springblade.system.entity.Role; +import org.springblade.system.entity.Tenant; +import org.springblade.system.entity.TenantPackage; +import org.springblade.system.vo.RegionAllVO; import org.springframework.stereotype.Component; import java.util.List; @@ -150,5 +158,10 @@ public class ISysClientFallback implements ISysClient { return R.fail("获取数据失败"); } + @Override + public R> getRegionALL() { + return R.fail("获取数据失败"); + } + } diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/controller/RegionController.java b/blade-service/blade-system/src/main/java/org/springblade/system/controller/RegionController.java index ee6aa3e5..b5c32222 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/controller/RegionController.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/controller/RegionController.java @@ -110,7 +110,6 @@ public class RegionController extends BladeController { // }) // @ApiOperationSupport(order = 3) @ApiOperation(value = "加载全部省市区") - @Cacheable(cacheNames = "lazyListAll") public R> lazyListAll() { List list = regionService.lazyListAll(); return R.data(list); diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java b/blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java index 24898fac..4a583596 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java @@ -19,8 +19,23 @@ package org.springblade.system.feign; import lombok.AllArgsConstructor; import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tool.api.R; -import org.springblade.system.entity.*; -import org.springblade.system.service.*; +import org.springblade.system.entity.Dept; +import org.springblade.system.entity.Menu; +import org.springblade.system.entity.Param; +import org.springblade.system.entity.Post; +import org.springblade.system.entity.Region; +import org.springblade.system.entity.Role; +import org.springblade.system.entity.Tenant; +import org.springblade.system.entity.TenantPackage; +import org.springblade.system.service.IDeptService; +import org.springblade.system.service.IMenuService; +import org.springblade.system.service.IParamService; +import org.springblade.system.service.IPostService; +import org.springblade.system.service.IRegionService; +import org.springblade.system.service.IRoleService; +import org.springblade.system.service.ITenantPackageService; +import org.springblade.system.service.ITenantService; +import org.springblade.system.vo.RegionAllVO; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; @@ -191,5 +206,9 @@ public class SysClient implements ISysClient { return R.data(regionService.getById(code)); } + @Override + public R> getRegionALL() { + return R.data(regionService.lazyListAll()); + } } diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RegionServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RegionServiceImpl.java index cfd1a2ab..cc292fc3 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RegionServiceImpl.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RegionServiceImpl.java @@ -23,7 +23,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import javafx.scene.effect.SepiaTone; import lombok.extern.slf4j.Slf4j; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.redis.cache.BladeRedis; @@ -38,11 +37,23 @@ import org.springblade.system.service.IRegionService; import org.springblade.system.vo.RegionAllVO; import org.springblade.system.vo.RegionVO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; -import static org.springblade.system.cache.RegionCache.*; +import static org.springblade.system.cache.RegionCache.CITY_LEVEL; +import static org.springblade.system.cache.RegionCache.DISTRICT_LEVEL; +import static org.springblade.system.cache.RegionCache.MAIN_CODE; +import static org.springblade.system.cache.RegionCache.PROVINCE_LEVEL; +import static org.springblade.system.cache.RegionCache.TOWN_LEVEL; +import static org.springblade.system.cache.RegionCache.VILLAGE_LEVEL; +import static org.springblade.system.cache.RegionCache.getByCode; /** @@ -118,47 +129,48 @@ public class RegionServiceImpl extends ServiceImpl impleme @Override + @Cacheable(cacheNames = "blade:sys:regions") public List lazyListAll() { List list = new ArrayList<>(); - Map> listMap = new HashMap<>(); + Map> listMap = new HashMap<>(); List regionVOS = baseMapper.lazyListAll(); //处理省 for (RegionVO regionVO : regionVOS) { - if(listMap.size() < 1){ + if (listMap.size() < 1) { //没有数据 List list1 = new ArrayList<>(); list1.add(regionVO); - listMap.put(regionVO.getProvinceCode(),list1); - }else{ + listMap.put(regionVO.getProvinceCode(), list1); + } else { //有数据 List regionVOS2 = listMap.get(regionVO.getProvinceCode()); - if(ObjectUtils.isNotNull(regionVOS2)){ + if (ObjectUtils.isNotNull(regionVOS2)) { //有一样的数据 List regionVOS1 = listMap.get(regionVO.getProvinceCode()); regionVOS1.add(regionVO); - listMap.put(regionVO.getProvinceCode(),regionVOS1); - }else{ + listMap.put(regionVO.getProvinceCode(), regionVOS1); + } else { //没有 List list1 = new ArrayList<>(); list1.add(regionVO); - listMap.put(regionVO.getProvinceCode(),list1); + listMap.put(regionVO.getProvinceCode(), list1); } } } // Map collect = regionVOS.stream().collect(Collectors.toMap(RegionVO::getProvinceCode, Function.identity(), (key1, key2) -> key2)); - Map> m = new HashMap<>(); //市,区数据 + Map> m = new HashMap<>(); //市,区数据 //处理区 - listMap.forEach((k,v) ->{ + listMap.forEach((k, v) -> { RegionAllVO sheng = new RegionAllVO(); sheng.setValue(v.get(0).getProvinceCode()); sheng.setLabel(v.get(0).getProvinceName()); Set lis = new HashSet<>(); - v.forEach(it ->{ - if(ObjectUtils.isNotNull(it.getCityCode())){ + v.forEach(it -> { + if (ObjectUtils.isNotNull(it.getCityCode())) { RegionAllVO shi = new RegionAllVO(); shi.setValue(it.getCityCode()); shi.setLabel(it.getCityName()); @@ -168,34 +180,34 @@ public class RegionServiceImpl extends ServiceImpl impleme qu.setValue(it.getDistrictCode()); qu.setLabel(it.getDistrictName()); voList.add(qu); - if(m.size() < 1){ + if (m.size() < 1) { //没有数据 添加市 区数据 - m.put(it.getCityCode(),voList); - }else{ + m.put(it.getCityCode(), voList); + } else { //有数据 判断是不是同一个市 List voList2 = m.get(it.getCityCode()); - if(ObjectUtils.isNotNull(voList2)){ + if (ObjectUtils.isNotNull(voList2)) { //有一样的数据 List voList1 = m.get(it.getCityCode()); voList1.add(qu); - m.put(it.getCityCode(),voList1); - }else{ + m.put(it.getCityCode(), voList1); + } else { //没有 shi.setValue(it.getCityCode()); shi.setLabel(it.getCityName()); - m.put(it.getCityCode(),voList); + m.put(it.getCityCode(), voList); } } } }); //有市对区的数据 - lis.forEach(i ->{ + lis.forEach(i -> { List voLis = m.get(i.getValue()); i.setChildren(voLis); }); - sheng.setChildren( new ArrayList<>(lis) ); + sheng.setChildren(new ArrayList<>(lis)); list.add(sheng); }); @@ -206,47 +218,50 @@ public class RegionServiceImpl extends ServiceImpl impleme public String selectAllStr() { String key = "REGION:ALL:ROW:DATA"; String str = bladeRedis.get(key); - if(StringUtil.isBlank(str)){ + if (StringUtil.isBlank(str)) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("parent_code","00"); + queryWrapper.eq("parent_code", "00"); List regions = baseMapper.selectList(queryWrapper); JSONArray jsonArray = new JSONArray(); for (Region region : regions) { String code = region.getCode(); JSONObject provinceObject = new JSONObject(); - provinceObject.put("value",code); - provinceObject.put("label",region.getName()); - queryWrapper.eq("parent_code",code); + provinceObject.put("value", code); + provinceObject.put("label", region.getName()); + queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("parent_code", code); List cityRegions = baseMapper.selectList(queryWrapper); JSONArray cityArray = new JSONArray(); for (Region cityRegion : cityRegions) { String cityCode = cityRegion.getCode(); JSONObject cityObject = new JSONObject(); - cityObject.put("value",cityCode); - cityObject.put("label",cityRegion.getName()); - queryWrapper.eq("parent_code",cityCode); + cityObject.put("value", cityCode); + cityObject.put("label", cityRegion.getName()); + queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("parent_code", cityCode); List areaRegions = baseMapper.selectList(queryWrapper); JSONArray areaArray = new JSONArray(); - for (Region areaRegion : areaRegions){ + for (Region areaRegion : areaRegions) { String areaCode = areaRegion.getCode(); String areaName = areaRegion.getName(); JSONObject areaObject = new JSONObject(); - cityObject.put("value",areaCode); - cityObject.put("label",areaName); - areaArray.add(cityObject); + areaObject.put("value", areaCode); + areaObject.put("label", areaName); + areaArray.add(areaObject); } - if(areaArray.size() > 0){ - cityObject.put("children",areaArray); + if (areaArray.size() > 0) { + cityObject.put("children", areaArray); } cityArray.add(cityObject); } - if(cityArray.size() > 0){ - provinceObject.put("children",cityArray); + if (cityArray.size() > 0) { + provinceObject.put("children", cityArray); } jsonArray.add(provinceObject); } str = jsonArray.toJSONString(); } + bladeRedis.setEx(key, str, 60L * 60L); return str; }