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 */ private Map getParameter(){ Map 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 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 terms = getParameter(); Sort sort = Sort.by(Sort.Direction.DESC, "create_time"); PageRequest pageRequest = PageRequest.of(page-1, size, sort); Page 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 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(); } } }