diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/client/ICountryRegionClient.java b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/client/ICountryRegionClient.java new file mode 100644 index 0000000..9a8023d --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-api/src/main/java/com/xjrsoft/module/mdm/client/ICountryRegionClient.java @@ -0,0 +1,17 @@ +package com.xjrsoft.module.mdm.client; + +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + +import com.xjrsoft.common.constant.GlobalConstant; + +/** + * @author: ksy + * @since: 2025/11/5 + */ +@FeignClient(value = GlobalConstant.CLIENT_PCITC_MDM_NAME, path = GlobalConstant.CLIENT_API_PRE + GlobalConstant.MDM_MODULE_PREFIX + "/countryRegion") +public interface ICountryRegionClient { + + @GetMapping("/refreshCache") + void refreshCache(); +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/client/CountryRegionClientImpl.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/client/CountryRegionClientImpl.java new file mode 100644 index 0000000..e16dca8 --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/client/CountryRegionClientImpl.java @@ -0,0 +1,49 @@ +package com.xjrsoft.module.mdm.client; + +import java.util.List; +import java.util.stream.Collectors; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.xjrsoft.common.constant.GlobalConstant; +import com.xjrsoft.common.utils.RedisUtil; +import com.xjrsoft.common.utils.TenantUtil; +import com.xjrsoft.module.mdm.entity.LngBRegion; +import com.xjrsoft.module.mdm.service.ICountryRegionService; + +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +/** + * @author: yjw + * @since: 2025/3/5 + */ +//@Api(hidden = true) +@RestController +@RequestMapping(GlobalConstant.CLIENT_API_PRE + GlobalConstant.MDM_MODULE_PREFIX + "/countryRegion") +@AllArgsConstructor +@Slf4j +public class CountryRegionClientImpl implements ICountryRegionClient { + + private final ICountryRegionService countryRegionService; + private final RedisUtil redisUtil; + + + + @GetMapping("/refreshCache") + public void refreshCache() { + try { + TenantUtil.ignore(true); + log.info("MDM: 加载所有国家地区表缓存开始"); + List list = countryRegionService.list(); + redisUtil.set(GlobalConstant.REGION_CACHE_KEY, list); + redisUtil.set(GlobalConstant.USER_NAME_CACHE_KEY, list.stream().collect(Collectors.toMap(LngBRegion::getCode,LngBRegion::getFullPath))); + log.info("ITC-FRAMEWORK: 加载所有国家地区表缓存结束"); + }finally { + TenantUtil.clear(); + } + } + +} diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/service/impl/CountryRegionServiceImpl.java b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/service/impl/CountryRegionServiceImpl.java index 194cbf0..d66c4b3 100644 --- a/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/service/impl/CountryRegionServiceImpl.java +++ b/itc-pcitc-mdm/itc-pcitc-mdm-service/src/main/java/com/xjrsoft/module/mdm/service/impl/CountryRegionServiceImpl.java @@ -1,6 +1,7 @@ package com.xjrsoft.module.mdm.service.impl; import java.util.List; +import java.util.concurrent.CompletableFuture; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -14,6 +15,7 @@ import com.pictc.enums.BusinessCode; import com.pictc.enums.ExceptionCommonCode; import com.pictc.utils.DataLogTools; import com.xjrsoft.common.exception.BusinessException; +import com.xjrsoft.common.utils.CacheUtil; import com.xjrsoft.module.common.db.service.CommonCallService; import com.xjrsoft.module.datalog.service.DatalogService; import com.xjrsoft.module.mdm.dto.UpdateLngBRegionDto; @@ -54,6 +56,7 @@ public class CountryRegionServiceImpl extends ServiceImpl { + CacheUtil.refreshRegionList(); + }); + } }