package cn.huge.module.kind.controller.web;
|
|
import cn.huge.base.common.utils.ObjectUtils;
|
import cn.huge.base.common.utils.ReturnFailUtils;
|
import cn.huge.base.common.utils.ReturnSucUtils;
|
import cn.huge.base.config.CurrentUser;
|
import cn.huge.module.kind.domain.dto.RegionSelectJSDTO;
|
import cn.huge.module.kind.domain.dto.RegionSelectSaveDTO;
|
import cn.huge.module.kind.domain.po.SyRegion;
|
import cn.huge.module.kind.service.SyRegionService;
|
import cn.huge.module.sys.dto.QueAddrBaseDTO;
|
import cn.huge.module.sys.dto.QueAreaDTO;
|
import cn.huge.module.utils.BaiduMapAddrDTO;
|
import cn.huge.module.utils.BaiduMapUtils;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.google.common.collect.Maps;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.PageRequest;
|
import org.springframework.data.domain.Sort;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.servlet.http.HttpServletRequest;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.stream.Collectors;
|
import java.util.stream.Stream;
|
|
/**
|
* @title: 地域字典表接口api-web端
|
* @description: 地域字典表接口api-web端
|
* @company: hugeinfo
|
* @author: liyj
|
* @time: 2024-09-09 14:31:22
|
* @version: 1.0.0
|
*/
|
@Slf4j
|
@RestController
|
@RequestMapping("/api/web/syRegion")
|
public class SyRegionWebController {
|
|
@Autowired(required = false)
|
private HttpServletRequest request;
|
|
@Autowired
|
private SyRegionService service;
|
|
/**
|
* 获取请求URL参数
|
* @return Map<String, Object>
|
*/
|
private Map<String, Object> getParameter(){
|
Map<String, Object> terms = Maps.newHashMap();
|
// 地区代码
|
String id = request.getParameter("id");
|
if (StringUtils.isNotBlank(id)){
|
terms.put("id", id);
|
}
|
// 地区类型,0:省,1:市,2:区,3:街道,4:社区
|
String kind = request.getParameter("kind");
|
if (StringUtils.isNotBlank(kind)){
|
terms.put("kind", kind);
|
}
|
// 地区名称
|
String name = request.getParameter("name");
|
if (StringUtils.isNotBlank(name)){
|
terms.put("name", name);
|
}
|
// 层级
|
String level = request.getParameter("level");
|
if (StringUtils.isNotBlank(level)){
|
terms.put("level", level);
|
}
|
// 所属父级代码,根级默认root
|
String parentId = request.getParameter("parentId");
|
if (StringUtils.isNotBlank(parentId)){
|
terms.put("parentId", parentId);
|
}
|
// 创建时间区间
|
String createStart = request.getParameter("createStart");
|
String createEnd = request.getParameter("createEnd");
|
if(StringUtils.isNotBlank(createStart) && StringUtils.isNotBlank(createEnd)) {
|
terms.put("createStart", createStart);
|
terms.put("createEnd", createEnd);
|
}
|
// 更新时间区间
|
String updateStart = request.getParameter("updateStart");
|
String updateEnd = request.getParameter("updateEnd");
|
if(StringUtils.isNotBlank(updateStart) && StringUtils.isNotBlank(updateEnd)) {
|
terms.put("updateStart", updateStart);
|
terms.put("updateEnd", updateEnd);
|
}
|
return terms;
|
}
|
|
/**
|
* 条件查询多个
|
* @url {ctx}/api/web/syRegion/listQuery
|
* @return Object
|
*/
|
@GetMapping("/listQuery")
|
public Object listQuery() {
|
try {
|
Map<String, Object> terms = getParameter();
|
return ReturnSucUtils.getRepInfo(service.listTerms(terms));
|
} catch (Exception e) {
|
return ReturnFailUtils.getRepInfo();
|
}
|
}
|
|
/**
|
* 条件分页查询
|
* @url {ctx}/api/web/syRegion/pageQuery
|
* @param page 页码
|
* @param size 每页数量
|
* @return Object
|
*/
|
@GetMapping("/pageQuery")
|
public Object pageQuery(@RequestParam(value = "page") int page, @RequestParam(value = "size") int size) {
|
try {
|
Map<String, Object> terms = getParameter();
|
Sort sort = Sort.by(Sort.Direction.DESC, "create_time");
|
PageRequest pageRequest = PageRequest.of(page-1, size, sort);
|
Page<SyRegion> syRegionPage = service.pageQuery(pageRequest, terms);
|
return ReturnSucUtils.getRepInfo( "处理成功", syRegionPage);
|
} catch (Exception e) {
|
return ReturnFailUtils.getRepInfo();
|
}
|
}
|
|
/**
|
* 根据编号查询单个
|
* @url {ctx}/api/web/syRegion/getById
|
* @param id 主键编号
|
* @return Object
|
*/
|
@GetMapping("/getById")
|
public Object getById(@RequestParam(value = "id") String id) {
|
try {
|
return ReturnSucUtils.getRepInfo(service.getById(id));
|
} catch (Exception e) {
|
return ReturnFailUtils.getRepInfo();
|
}
|
}
|
|
/**
|
* 根据主键单个
|
* @url {ctx}/api/web/syRegion/deleteById
|
* @param id 主键编号
|
* @return Object
|
*/
|
@GetMapping("/deleteById")
|
public Object deleteById(@RequestParam(value = "id") String id) {
|
try {
|
service.removeById(id);
|
return ReturnSucUtils.getRepInfo();
|
} catch (Exception e) {
|
return ReturnFailUtils.getRepInfo();
|
}
|
}
|
|
/**
|
* 新增或更新对象
|
* @url {ctx}/api/web/syRegion/saveSyRegion
|
* @param syRegion 实体对象
|
* @return Object
|
*/
|
@PostMapping("/saveSyRegion")
|
public Object saveSyRegion(@RequestBody SyRegion syRegion) {
|
try {
|
service.saveSyRegion(syRegion);
|
return ReturnSucUtils.getRepInfo();
|
} catch (Exception e) {
|
return ReturnFailUtils.getRepInfo();
|
}
|
}
|
|
/**
|
* js数据入库
|
* @url {ctx}/api/web/syRegion/saveByJS
|
* @param regionSelectJSDTO 实体对象
|
* @return Object
|
*/
|
@PostMapping("/saveByJS")
|
public Object saveByJS(@RequestBody RegionSelectSaveDTO regionSelectJSDTO) {
|
try {
|
service.webSaveByJSTree(regionSelectJSDTO.getRegionList(), regionSelectJSDTO.getStartLevel());
|
return ReturnSucUtils.getRepInfo();
|
} catch (Exception e) {
|
return ReturnFailUtils.getRepInfo();
|
}
|
}
|
|
/**
|
* 根据百度地图经纬度获取街道
|
* @url {ctx}/api/web/syRegion/getQueAddrByBaiduiLngLat
|
* @param lng 经度
|
* @param lat 维度
|
* @return
|
*/
|
@GetMapping("/getQueAddrByBaiduiLngLat")
|
public Object getQueAddrByBaiduiLngLat(@RequestParam(value = "lng") String lng, @RequestParam(value = "lat") String lat) {
|
try {
|
QueAddrBaseDTO queAddrBaseDTO = service.getQueAddrByBaiduiLngLat(lng, lat);
|
return ReturnSucUtils.getRepInfo(queAddrBaseDTO);
|
} catch (Exception e) {
|
return ReturnFailUtils.getRepInfo();
|
}
|
}
|
|
/**
|
* 根据百度地图地址获取街道
|
* @url {ctx}/api/web/syRegion/getQueAddrByBaiduiAddr
|
* @param addr 地址
|
* @return
|
*/
|
@GetMapping("/getQueAddrByBaiduiAddr")
|
public Object getQueAddrByBaiduiAddr(@RequestParam(value = "addr") String addr) {
|
try {
|
QueAddrBaseDTO queAddrBaseDTO = service.getQueAddrByBaiduiAddr(addr);
|
return ReturnSucUtils.getRepInfo(queAddrBaseDTO);
|
} catch (Exception e) {
|
return ReturnFailUtils.getRepInfo();
|
}
|
}
|
|
|
/**
|
* 根据父类ID获取列表
|
* @url {ctx}/api/web/syRegion/listByParentId
|
* @return
|
*/
|
@GetMapping("/listByParentId")
|
public Object listByParentId(@RequestParam(value = "parentId") String parentId) {
|
try {
|
List<QueAreaDTO> list = service.listByParentId(parentId);
|
return ReturnSucUtils.getRepInfo(list);
|
} catch (Exception e) {
|
return ReturnFailUtils.getRepInfo();
|
}
|
}
|
|
/**
|
* 根据用户ID获取对应权限区域树
|
* @url {ctx}/api/web/syRegion/treeByUserId
|
* @return
|
*
|
*/
|
@GetMapping("/treeByUserId")
|
public Object treeByUserId(@CurrentUser String userId) {
|
try {
|
// String userId = "2105120906491001";
|
String areaType = request.getParameter("areaType");
|
log.info("xsd:{}",userId);
|
return ReturnSucUtils.getRepInfo(service.treeByUserId(userId,areaType));
|
} catch (Exception e) {
|
log.error("Controller接口[SyRegionWebController.treeByUserId]请求异常:"+e, e);
|
return ReturnFailUtils.getRepInfo();
|
}
|
}
|
|
@GetMapping("/treeByUserId2")
|
public Object treeByUserId2(@CurrentUser String userId) {
|
try {
|
// String userId = "2105120906491001";
|
String areaType = request.getParameter("areaType");
|
log.info("xsd:{}",userId);
|
return ReturnSucUtils.getRepInfo(service.treeByUserId2(userId,areaType));
|
} catch (Exception e) {
|
log.error("Controller接口[SyRegionWebController.treeByUserId]请求异常:"+e, e);
|
return ReturnFailUtils.getRepInfo();
|
}
|
}
|
|
@GetMapping("/getRegionTree")
|
public Object getRegionTree() {
|
try {
|
// String userId = "2105120906491001";
|
return ReturnSucUtils.getRepInfo(service.getRegionTree());
|
} catch (Exception e) {
|
log.error("Controller接口[SyRegionWebController.treeByUserId]请求异常:"+e, e);
|
return ReturnFailUtils.getRepInfo();
|
}
|
}
|
|
/**
|
* 获取地域的树形结构JS
|
* @url {ctx}/api/web/syRegion/listSelectJS
|
* @return Object
|
*/
|
@GetMapping("/listSelectJS")
|
public Object listSelectJS() {
|
try {
|
return ReturnSucUtils.getRepInfo(service.listSelectJS());
|
} catch (Exception e) {
|
return ReturnFailUtils.getRepInfo();
|
}
|
}
|
|
}
|