Browse Source

修正:大模型德云物联减少查询策略次数

zhongwei
ty 3 months ago
parent
commit
1fbcc2ecf1
  1. 40
      hzims-service/equipment/src/main/java/com/hnac/hzims/delian/service/impl/DeLianServiceImpl.java

40
hzims-service/equipment/src/main/java/com/hnac/hzims/delian/service/impl/DeLianServiceImpl.java

@ -13,6 +13,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.tool.api.R;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse;
@ -30,6 +31,9 @@ public class DeLianServiceImpl implements IDeLianService {
private String hostId;
@Value("${deLian.passWord}")
private String passWord;
private final RedisTemplate redisTemplate;
private final static String load_strategys_key = "hzims:equipment:delian:strategys:key";
@Override
public List<StrategyDataVO> getStrategys() {
@ -37,12 +41,13 @@ public class DeLianServiceImpl implements IDeLianService {
HashMap<String, Object> requestData = new HashMap<String, Object>() {{
put("Strategy_Type", 0);
}};
param.put("request_data",requestData);
param.put("request_cmd",DeLianConstants.STRATEGYS.getCode());
param.put("request_data", requestData);
param.put("request_cmd", DeLianConstants.STRATEGYS.getCode());
String jsonString = JSON.toJSONString(param);
HttpResponse response = HttpRequest.post(deLianUrl).body(jsonString).execute();
if(response.getStatus() == HttpServletResponse.SC_OK ) {
if (response.getStatus() == HttpServletResponse.SC_OK) {
List<StrategyDataVO> responseData = JSONObject.parseArray(JSONObject.parseObject(response.body()).getString("response_data"), StrategyDataVO.class);
redisTemplate.opsForValue().set(load_strategys_key, responseData);
return responseData;
}
return new ArrayList<>();
@ -50,16 +55,28 @@ public class DeLianServiceImpl implements IDeLianService {
@Override
public R executeScene(String key) {
long start = System.currentTimeMillis();
log.info("executeScene接口请求开始------");
HashMap<String, Object> param = getOauthToken();
param.put("request_cmd",DeLianConstants.EXECUTESCENE.getCode());
List<StrategyDataVO> strategys = getStrategys();
param.put("request_cmd", DeLianConstants.EXECUTESCENE.getCode());
List<StrategyDataVO> strategys = new ArrayList<>();
if (redisTemplate.hasKey(load_strategys_key)) {
strategys = (List<StrategyDataVO>) redisTemplate.opsForValue().get(load_strategys_key);
} else {
strategys = getStrategys();
}
for (StrategyDataVO strategy : strategys) {
if (key.equals(strategy.getSn())){
param.put("request_data",strategy.getSID());
if (key.equals(strategy.getSn())) {
param.put("request_data", strategy.getSID());
}
}
long start1 = System.currentTimeMillis();
log.info("deLian策略查询耗时:{}", start1 - start);
log.info("deLian一键执行接口请求开始------");
HttpResponse response = HttpRequest.post(deLianUrl).body(JSON.toJSONString(param)).execute();
if(response.getStatus() == HttpServletResponse.SC_OK ) {
if (response.getStatus() == HttpServletResponse.SC_OK) {
long end = System.currentTimeMillis();
log.info("deLian一键执行接口耗时:{}", end - start1);
return R.success("执行成功");
}
return R.fail("执行成功");
@ -78,15 +95,14 @@ public class DeLianServiceImpl implements IDeLianService {
String jsonString = JSON.toJSONString(param);
HttpResponse response = HttpRequest.post(deLianUrl).body(jsonString).execute();
String token = JSONObject.parseObject(response.body()).getString("request_token");
if(response.getStatus() == HttpServletResponse.SC_OK &&
if (response.getStatus() == HttpServletResponse.SC_OK &&
StringUtils.isNotBlank(token)) {
param.remove("request_data");
param.remove("request_cmd");
param.put("request_token",token);
param.put("request_token", token);
return param;
}else {
} else {
throw new ServiceException("获取权限失败,请稍后重试!");
}
}
}

Loading…
Cancel
Save