dev #1

Merged
zhaoqiaobo merged 7 commits from dev into pre-production 10 months ago
  1. 6
      blade-ops/blade-resource/src/main/resources/application-dev.yml
  2. 10
      blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java
  3. 15
      blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java
  4. 1
      blade-service/blade-system/src/main/java/org/springblade/system/controller/RegionController.java
  5. 23
      blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java
  6. 95
      blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RegionServiceImpl.java

6
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

10
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<Region> getRegion(@RequestParam("code") String code);
/**
* 获取全部行政区划
*
* @return
*/
@GetMapping(REGIONS)
R<List<RegionAllVO>> getRegionALL();
}

15
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<List<RegionAllVO>> getRegionALL() {
return R.fail("获取数据失败");
}
}

1
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<List<RegionAllVO>> lazyListAll() {
List<RegionAllVO> list = regionService.lazyListAll();
return R.data(list);

23
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<List<RegionAllVO>> getRegionALL() {
return R.data(regionService.lazyListAll());
}
}

95
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<RegionMapper, Region> impleme
@Override
@Cacheable(cacheNames = "blade:sys:regions")
public List<RegionAllVO> lazyListAll() {
List<RegionAllVO> list = new ArrayList<>();
Map<String,List<RegionVO>> listMap = new HashMap<>();
Map<String, List<RegionVO>> listMap = new HashMap<>();
List<RegionVO> regionVOS = baseMapper.lazyListAll();
//处理省
for (RegionVO regionVO : regionVOS) {
if(listMap.size() < 1){
if (listMap.size() < 1) {
//没有数据
List<RegionVO> list1 = new ArrayList<>();
list1.add(regionVO);
listMap.put(regionVO.getProvinceCode(),list1);
}else{
listMap.put(regionVO.getProvinceCode(), list1);
} else {
//有数据
List<RegionVO> regionVOS2 = listMap.get(regionVO.getProvinceCode());
if(ObjectUtils.isNotNull(regionVOS2)){
if (ObjectUtils.isNotNull(regionVOS2)) {
//有一样的数据
List<RegionVO> regionVOS1 = listMap.get(regionVO.getProvinceCode());
regionVOS1.add(regionVO);
listMap.put(regionVO.getProvinceCode(),regionVOS1);
}else{
listMap.put(regionVO.getProvinceCode(), regionVOS1);
} else {
//没有
List<RegionVO> list1 = new ArrayList<>();
list1.add(regionVO);
listMap.put(regionVO.getProvinceCode(),list1);
listMap.put(regionVO.getProvinceCode(), list1);
}
}
}
// Map<String, RegionVO> collect = regionVOS.stream().collect(Collectors.toMap(RegionVO::getProvinceCode, Function.identity(), (key1, key2) -> key2));
Map<String,List<RegionAllVO>> m = new HashMap<>(); //市,区数据
Map<String, List<RegionAllVO>> 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<RegionAllVO> 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<RegionMapper, Region> 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<RegionAllVO> voList2 = m.get(it.getCityCode());
if(ObjectUtils.isNotNull(voList2)){
if (ObjectUtils.isNotNull(voList2)) {
//有一样的数据
List<RegionAllVO> 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<RegionAllVO> 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<RegionMapper, Region> impleme
public String selectAllStr() {
String key = "REGION:ALL:ROW:DATA";
String str = bladeRedis.get(key);
if(StringUtil.isBlank(str)){
if (StringUtil.isBlank(str)) {
QueryWrapper<Region> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("parent_code","00");
queryWrapper.eq("parent_code", "00");
List<Region> 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<Region> 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<Region> 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;
}

Loading…
Cancel
Save