|
|
@@ -52,6 +52,7 @@ import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
+import org.springframework.data.redis.core.StringRedisTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.ObjectUtils;
|
|
|
@@ -62,8 +63,12 @@ import java.io.FileNotFoundException;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.*;
|
|
|
+import java.util.concurrent.TimeUnit;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+import static com.ydtech.modules.order.constants.OrderCacheConstant.GR_SPECIAL_AGREEMENT_KEY;
|
|
|
+import static com.ydtech.modules.order.constants.OrderCacheConstant.GR_SPECIAL_AGREEMENT_TIME;
|
|
|
+
|
|
|
|
|
|
@Service
|
|
|
@RequiredArgsConstructor
|
|
|
@@ -96,6 +101,7 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
|
|
|
|
|
|
private final GuorenRequestApiComponent guorenRequestApiComponent;
|
|
|
|
|
|
+ private final StringRedisTemplate redisTemplate;
|
|
|
|
|
|
/**
|
|
|
* 获取渠道信息
|
|
|
@@ -124,6 +130,15 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
|
|
|
@Override
|
|
|
public HttpResult<List<GuoRenSpecialAgreement>> queryClauseData(String agreementId) {
|
|
|
// 获取协议配置信息
|
|
|
+ String specialAgreementKey = GR_SPECIAL_AGREEMENT_KEY + agreementId;
|
|
|
+
|
|
|
+ // 从缓存中获取数据
|
|
|
+ String info = redisTemplate.opsForValue().get(specialAgreementKey);
|
|
|
+ if (!StringUtils.isEmpty(info)) {
|
|
|
+ List<GuoRenSpecialAgreement> list = JSON.parseArray(info, GuoRenSpecialAgreement.class);
|
|
|
+ return HttpResult.ok(list);
|
|
|
+ }
|
|
|
+
|
|
|
ChannelInfoDto channelInfo = gainChannelConfigInfo(agreementId);
|
|
|
List<GuoRenSpecialAgreement> list = new ArrayList<>();
|
|
|
for (InsuranceRisk insuranceRisk : InsuranceRisk.getInsuranceRisk()) {
|
|
|
@@ -131,12 +146,20 @@ public class GuorenOrderApiServiceImpl implements GuorenOrderApiService {
|
|
|
SpecialAgreementRequest specialAgreementRequest = new SpecialAgreementRequest(channelInfo.getComCode(), riskCode);
|
|
|
SpecialAgreementResponse response = guorenRequestApiComponent.request(specialAgreementRequest,
|
|
|
PlatformInterfaceCode.API_IIRBT00005, SpecialAgreementResponse.class);
|
|
|
+
|
|
|
+ AssertionUtils.isSucceed("1".equals(response.getResultCode().toString()), response.getResultMsg());
|
|
|
+
|
|
|
List<GuoRenSpecialAgreement> collect = response.getData().stream()
|
|
|
.map(x -> new GuoRenSpecialAgreement(x, insuranceRisk))
|
|
|
.collect(Collectors.toList());
|
|
|
list.addAll(collect);
|
|
|
}
|
|
|
|
|
|
+ // 数据存入缓存
|
|
|
+ if (!list.isEmpty()) {
|
|
|
+ redisTemplate.opsForValue().set(specialAgreementKey, JSON.toJSONString(list), GR_SPECIAL_AGREEMENT_TIME, TimeUnit.DAYS);
|
|
|
+ }
|
|
|
+
|
|
|
return HttpResult.ok(list);
|
|
|
}
|
|
|
|