package com.sinata.rest.modular.system.controller;
|
|
import com.sinata.rest.common.ApiUtils;
|
import com.sinata.rest.modular.system.model.CityRegion;
|
import com.sinata.rest.modular.system.service.ICityRegionService;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
@Slf4j
|
@RestController
|
@RequestMapping("/city")
|
//@Api(tags = "省市区相关", description = "省市区")
|
public class CityRegionController {
|
|
//省市区全部数据缓存
|
private Object allData;
|
|
@Autowired
|
private ICityRegionService cityRegionService;
|
|
@GetMapping(value = "/vant_all")
|
@ApiOperation(value = "返回Vant使用的省市区", notes = "返回Vant使用的省市区", response = ApiUtils.class)
|
public Object getAll() {
|
if (allData == null) {
|
synchronized (this) {
|
if (allData == null) {
|
List<CityRegion> all = cityRegionService.list();
|
HashMap<String, String> province = new HashMap<>();
|
HashMap<String, String> cities = new HashMap<>();
|
HashMap<String, String> areas = new HashMap<>();
|
for (CityRegion r : all) {
|
if (r.getParentId() == 0) {
|
province.put(r.getCode(), r.getName());
|
} else if (r.getCode().startsWith("00", 4)) {
|
cities.put(r.getCode(), r.getName());
|
} else {
|
areas.put(r.getCode(), r.getName());
|
}
|
}
|
Map<String, Object> r = new HashMap<>();
|
r.put("province_list", province);
|
r.put("city_list", cities);
|
r.put("county_list", areas);
|
allData = r;
|
}
|
}
|
}
|
return ApiUtils.returnOK(allData);
|
}
|
|
}
|