AreaInfoServiceImpl.java 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. package com.fjhx.area.service.impl;
  2. import cn.hutool.core.util.ObjectUtil;
  3. import cn.hutool.core.util.StrUtil;
  4. import com.baomidou.dynamic.datasource.annotation.DS;
  5. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  6. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  7. import com.fjhx.area.entity.dto.AreaInfoSelectDto;
  8. import com.fjhx.area.entity.po.AreaInfo;
  9. import com.fjhx.area.mapper.AreaInfoMapper;
  10. import com.fjhx.area.service.AreaInfoService;
  11. import com.fjhx.area.service.ISetAreaName;
  12. import com.ruoyi.common.constant.DatasourceConstant;
  13. import org.springframework.stereotype.Service;
  14. import org.springframework.transaction.annotation.Propagation;
  15. import org.springframework.transaction.annotation.Transactional;
  16. import java.util.HashSet;
  17. import java.util.List;
  18. import java.util.Map;
  19. import java.util.Set;
  20. import java.util.stream.Collectors;
  21. /**
  22. * <p>
  23. * 国家城市表 服务实现类
  24. * </p>
  25. *
  26. * @author
  27. * @since 2023-03-17
  28. */
  29. @Service
  30. public class AreaInfoServiceImpl extends ServiceImpl<AreaInfoMapper, AreaInfo> implements AreaInfoService {
  31. @Override
  32. public List<AreaInfo> getList(AreaInfoSelectDto dto) {
  33. String parentId = ObjectUtil.defaultIfNull(dto.getParentId(), "0");
  34. return list(Wrappers.<AreaInfo>lambdaQuery().eq(AreaInfo::getParentId, parentId));
  35. }
  36. @Transactional(propagation = Propagation.REQUIRES_NEW)
  37. @DS(DatasourceConstant.SLAVE_NAME)
  38. @Override
  39. public void setAreaName(List<ISetAreaName> areaList) {
  40. Set<String> areaIdList = new HashSet<>();
  41. for (ISetAreaName iSetAreaName : areaList) {
  42. if (StrUtil.isNotBlank(iSetAreaName.getCountryId())) {
  43. areaIdList.add(iSetAreaName.getCountryId());
  44. }
  45. if (StrUtil.isNotBlank(iSetAreaName.getProvinceId())) {
  46. areaIdList.add(iSetAreaName.getProvinceId());
  47. }
  48. if (StrUtil.isNotBlank(iSetAreaName.getCityId())) {
  49. areaIdList.add(iSetAreaName.getCityId());
  50. }
  51. }
  52. if (areaIdList.size() == 0) {
  53. return;
  54. }
  55. // 地区
  56. List<AreaInfo> areaInfoList = listByIds(areaIdList);
  57. Map<String, AreaInfo> areaInfoMap = areaInfoList.stream().collect(Collectors.toMap(AreaInfo::getId, item -> item));
  58. for (ISetAreaName iSetAreaName : areaList) {
  59. if (StrUtil.isNotBlank(iSetAreaName.getCountryId())) {
  60. AreaInfo areaInfo = areaInfoMap.get(iSetAreaName.getCountryId());
  61. if (areaInfo != null) {
  62. iSetAreaName.setCountryName(areaInfo.getChineseName());
  63. }
  64. }
  65. if (StrUtil.isNotBlank(iSetAreaName.getProvinceId())) {
  66. AreaInfo areaInfo = areaInfoMap.get(iSetAreaName.getProvinceId());
  67. if (areaInfo != null) {
  68. iSetAreaName.setProvinceName(areaInfo.getChineseName());
  69. }
  70. }
  71. if (StrUtil.isNotBlank(iSetAreaName.getCityId())) {
  72. AreaInfo areaInfo = areaInfoMap.get(iSetAreaName.getCityId());
  73. if (areaInfo != null) {
  74. iSetAreaName.setCityName(areaInfo.getChineseName());
  75. }
  76. }
  77. }
  78. }
  79. }