diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java index 76585fa96f..5dc667d21f 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java @@ -849,4 +849,11 @@ public class RedisKeys { public static String getServiceOrgNameKey(String customerId,String serviceOrgType,String serviceOrgId){ return rootPrefix.concat("serviceOrgName:").concat(serviceOrgType).concat(":").concat(customerId).concat(":").concat(serviceOrgId); } + + public static String getUserBaseInfoKey(String userId) { + if (StringUtils.isBlank(userId)){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"参数错误"); + } + return rootPrefix.concat("userId"); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java index 0acbb46a51..1889fc659e 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java @@ -29,6 +29,8 @@ import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.redis.RedisKeys; +import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.redis.common.CustomerOrgRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; @@ -60,16 +62,16 @@ import com.epmet.service.UserService; import com.epmet.util.ModuleConstant; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.apache.ibatis.annotations.Param; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.jetbrains.annotations.Nullable; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; -import org.springframework.web.bind.annotation.RequestBody; import java.util.*; +import java.util.concurrent.ExecutorService; import java.util.stream.Collectors; /** @@ -100,6 +102,10 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl page(Map params) { @@ -739,7 +745,28 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl selectStaffBasicInfo(String userId, String customerId) { - StaffBasicInfoResultDTO resultDTO = baseDao.selectStaffBasicInfo(userId); + StaffBasicInfoResultDTO resultDTO = null; + String userBaseInfoKey = RedisKeys.getUserBaseInfoKey(userId); + resultDTO = (StaffBasicInfoResultDTO)redisUtils.get(userBaseInfoKey); + if(resultDTO == null){ + resultDTO = getStaffBasicInfoResultDTO(userId, customerId, userBaseInfoKey); + } + //启用线程去查询 并替换redis + executorService.submit(() -> { + try { + getStaffBasicInfoResultDTO(userId, customerId, userBaseInfoKey); + } catch (Exception e) { + log.error("selectStaffBasicInfo exception", e); + } + }); + + return new Result().ok(resultDTO); + } + + @Nullable + private StaffBasicInfoResultDTO getStaffBasicInfoResultDTO(String userId, String customerId, String userBaseInfoKey) { + StaffBasicInfoResultDTO resultDTO; + resultDTO = baseDao.selectStaffBasicInfo(userId); if (null != resultDTO) { resultDTO.setRoleList(baseDao.selectStaffRoles(userId, resultDTO.getCustomerId())); CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, userId); @@ -767,7 +794,8 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl().ok(resultDTO); + redisUtils.set(userBaseInfoKey,resultDTO); + return resultDTO; } /**