| | |
| | | import com.xiaopeng.operation.mapper.XpRegionMapper; |
| | | import com.xiaopeng.api.model.operation.XpRegion; |
| | | import com.xiaopeng.operation.service.XpRegionService; |
| | | import com.xiaopeng.operation.vo.RegionDistrictSyncResultVO; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | redisService.setCacheList(CacheConstants.XP_REGION, result); |
| | | return result; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public RegionDistrictSyncResultVO syncDistrictFromRegionAll() { |
| | | Long cityCount = Objects.requireNonNullElse(this.baseMapper.countCityForDistrictSync(), 0L); |
| | | Long candidateDistrictCount = Objects.requireNonNullElse(this.baseMapper.countCandidateDistrictForSync(), 0L); |
| | | |
| | | List<XpRegion> missingDistrictList = this.baseMapper.selectMissingDistrictFromRegionAll(); |
| | | long insertedCount = 0L; |
| | | if (missingDistrictList != null && !missingDistrictList.isEmpty()) { |
| | | this.saveBatch(missingDistrictList); |
| | | insertedCount = missingDistrictList.size(); |
| | | } |
| | | |
| | | redisService.deleteObject(CacheConstants.XP_REGION); |
| | | redisService.deleteObject(CacheConstants.XP_REGION_CITY); |
| | | |
| | | RegionDistrictSyncResultVO result = new RegionDistrictSyncResultVO(); |
| | | result.setCityCount(cityCount); |
| | | result.setCandidateDistrictCount(candidateDistrictCount); |
| | | result.setInsertedCount(insertedCount); |
| | | result.setSkippedCount(Math.max(candidateDistrictCount - insertedCount, 0)); |
| | | result.setMessage("区级数据同步完成"); |
| | | return result; |
| | | } |
| | | } |