| | |
| | | */ |
| | | package org.sxkj.system.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.Wrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | |
| | | import org.apache.logging.log4j.util.Strings; |
| | | import org.springblade.core.log.exception.ServiceException; |
| | | import org.springblade.core.tool.utils.*; |
| | | import org.springframework.stereotype.Service; |
| | | import org.sxkj.common.func.Streams; |
| | | import org.sxkj.system.cache.RegionCache; |
| | | import org.sxkj.system.entity.Region; |
| | | import org.sxkj.system.excel.RegionExcel; |
| | | import org.sxkj.system.excel.RegionImportExcel; |
| | | import org.sxkj.system.mapper.RegionMapper; |
| | | import org.sxkj.system.param.RegionExportParam; |
| | | import org.sxkj.system.param.RegionPageParam; |
| | | import org.sxkj.system.service.IRegionService; |
| | | import org.sxkj.system.vo.RegionVO; |
| | | import org.springframework.stereotype.Service; |
| | | import org.sxkj.system.vo.TreeVo; |
| | | |
| | | import java.io.Serializable; |
| | |
| | | public Region getById(Serializable id) { |
| | | return Optional.ofNullable(id) |
| | | .map(val -> baseMapper.selectOne(new LambdaQueryWrapper<Region>() |
| | | .eq(Region::getId, val) |
| | | // 1. 处理 id = ? 部分,强制转为 bigint |
| | | .apply("id = {0}::bigint", val) |
| | | .or() |
| | | .eq(Region::getCode, val))) |
| | | // 2. 处理 code = ? 部分,强制转为 varchar |
| | | .apply("code = {0}::varchar", val))) |
| | | .orElse(null); |
| | | } |
| | | |
| | |
| | | } |
| | | if (regionParentCode.startsWith(MAIN_CODE)) { |
| | | region.setParentCode(StringUtil.removePrefix(regionParentCode, MAIN_CODE)); |
| | | } |
| | | region.setCityName("吉安市"); |
| | | region.setCityCode("360800000000"); |
| | | region.setProvinceCode("360000000000"); |
| | | region.setProvinceName("江西省"); |
| | | if (region.getRegionLevel().equals(DISTRICT_LEVEL)) { |
| | | region.setDistrictCode(region.getCode()); |
| | | region.setDistrictName(region.getName()); |
| | | } |
| | | if (region.getRegionLevel().equals(TOWN_LEVEL)) { |
| | | String parentCode = region.getParentCode(); |
| | | Region byCode = getByCode(parentCode); |
| | | region.setDistrictCode(byCode.getCode()); |
| | | region.setDistrictName(byCode.getName()); |
| | | region.setTownCode(region.getCode()); |
| | | region.setTownName(region.getName()); |
| | | } |
| | | if (region.getRegionLevel().equals(VILLAGE_LEVEL)) { |
| | | String parentCode = region.getParentCode(); |
| | | Region byCode = getByCode(parentCode); |
| | | region.setTownCode(byCode.getCode()); |
| | | region.setTownName(byCode.getName()); |
| | | Region byCode2 = getByCode(byCode.getParentCode()); |
| | | region.setDistrictCode(byCode2.getCode()); |
| | | region.setDistrictName(byCode2.getName()); |
| | | region.setVillageCode(region.getCode()); |
| | | region.setVillageName(region.getName()); |
| | | } |
| | | // 查询是否已存在 |
| | | Long cnt = baseMapper.selectCount(Wrappers.<Region>query().lambda().eq(Region::getCode, region.getCode())); |
| | |
| | | if (cnt > 0L) { |
| | | throw new ServiceException("请先删除子节点!"); |
| | | } |
| | | return removeById(id); |
| | | Long idLong = Long.valueOf(id); |
| | | return removeById(idLong); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<RegionExcel> exportRegion(Wrapper<Region> queryWrapper) { |
| | | return baseMapper.exportRegion(queryWrapper); |
| | | public List<RegionExcel> exportRegion(RegionExportParam region) { |
| | | return baseMapper.exportRegion(region); |
| | | } |
| | | |
| | | /** |