소스 검색

yinruoxi

新增:
    1.当前天气查询接口
tags/B.2.5.2_20231226_base
kira 1 년 전
부모
커밋
3da0684927
4개의 변경된 파일82개의 추가작업 그리고 7개의 파일을 삭제
  1. +24
    -0
      xueyi-api/xueyi-api-nlt/src/main/java/com/xueyi/nlt/api/nlt/feign/RemoteSeniverseService.java
  2. +30
    -0
      xueyi-api/xueyi-api-nlt/src/main/java/com/xueyi/nlt/api/nlt/feign/factory/RemoteSeniverseFallbackFactory.java
  3. +5
    -0
      xueyi-modules/xueyi-message/pom.xml
  4. +23
    -7
      xueyi-modules/xueyi-message/src/main/java/com/xueyi/message/transfer/controller/ApiController.java

+ 24
- 0
xueyi-api/xueyi-api-nlt/src/main/java/com/xueyi/nlt/api/nlt/feign/RemoteSeniverseService.java 파일 보기

@@ -0,0 +1,24 @@
package com.xueyi.nlt.api.nlt.feign;


import com.alibaba.fastjson2.JSONObject;
import com.xueyi.nlt.api.nlt.domain.vo.WenxinErnieBotResponse;
import com.xueyi.nlt.api.nlt.feign.factory.RemoteLandingLlmFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

@FeignClient(url = "${notification.seniverse.url}",name = "seniverse", fallbackFactory = RemoteLandingLlmFallbackFactory.class)
public interface RemoteSeniverseService {

@GetMapping("/v3/weather/now.json")
JSONObject now(@RequestParam("key") String key,
@RequestParam("location") String location,
@RequestParam("language") String language,
@RequestParam("unit") String unit);



}

+ 30
- 0
xueyi-api/xueyi-api-nlt/src/main/java/com/xueyi/nlt/api/nlt/feign/factory/RemoteSeniverseFallbackFactory.java 파일 보기

@@ -0,0 +1,30 @@
package com.xueyi.nlt.api.nlt.feign.factory;

import com.alibaba.fastjson2.JSONObject;
import com.xueyi.nlt.api.nlt.domain.vo.DmLandingLlmVo;
import com.xueyi.nlt.api.nlt.feign.RemoteLandingLlmService;
import com.xueyi.nlt.api.nlt.feign.RemoteSeniverseService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;

/**
* 会议室服务 降级处理
*
* @author xueyi
*/
@Slf4j
@Component
public class RemoteSeniverseFallbackFactory implements FallbackFactory<RemoteSeniverseService> {

@Override
public RemoteSeniverseService create(Throwable throwable) {
log.error("短信服务调用失败:{}", throwable.getMessage());
return new RemoteSeniverseService() {
@Override
public JSONObject now(String key, String location, String language, String unit) {
return null;
}
};
}
}

+ 5
- 0
xueyi-modules/xueyi-message/pom.xml 파일 보기

@@ -100,6 +100,11 @@
<artifactId>xueyi-api-system</artifactId>
</dependency>

<dependency>
<groupId>com.xueyi</groupId>
<artifactId>xueyi-api-nlt</artifactId>
</dependency>

</dependencies>

<build>


+ 23
- 7
xueyi-modules/xueyi-message/src/main/java/com/xueyi/message/transfer/controller/ApiController.java 파일 보기

@@ -15,6 +15,7 @@ import com.xueyi.common.web.utils.DateUtils;
import com.xueyi.message.api.transfer.domain.vo.DmActiveVo;
import com.xueyi.message.api.transfer.domain.vo.DmDeviceVo;
import com.xueyi.message.transfer.service.impl.MessageQueueServiceImpl;
import com.xueyi.nlt.api.nlt.feign.RemoteSeniverseService;
import com.xueyi.system.api.authority.feign.RemoteLoginService;
import com.xueyi.system.api.device.feign.RemoteDeviceTenantMergeService;
import com.xueyi.system.api.digitalmans.domain.dto.DmManDeviceDto;
@@ -32,14 +33,9 @@ import com.xueyi.system.api.staff.feign.RemoteStaffService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -91,6 +87,11 @@ public class ApiController {
@Autowired
RemoteQuestionanswersService remoteQuestionanswersService;

RemoteSeniverseService remoteSeniverseService;

@Value("${notification.seniverse.key}")
private String seniverseKey;


@RequestMapping(value = "/heartbeat", method = {RequestMethod.POST})
@ResponseBody
@@ -457,4 +458,19 @@ public class ApiController {
}
return AjaxResult.success(listR.getData());
}

/**
* 意图请求
列表
*/
@RequestMapping(value = "/weather",method = {RequestMethod.GET, RequestMethod.POST})
@ResponseBody
public AjaxResult weather(@RequestParam String city, HttpServletRequest request) {
log.info("weather:{}", city);
JSONObject result = remoteSeniverseService.now(seniverseKey,city,"zh-Hans","c");
log.info("weather:{}", result);

return AjaxResult.success(result.getJSONArray("results"));

}
}

불러오는 중...
취소
저장