ApiRequestService.java 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package com.zswl.dataservice.httpRequest;
  2. import cn.hutool.core.bean.BeanUtil;
  3. import cn.hutool.json.JSONUtil;
  4. import com.zswl.dataservice.dao.payment.RequestInfoDao;
  5. import com.zswl.dataservice.httpRequest.apiConf.APIResponseModel;
  6. import com.zswl.dataservice.httpRequest.apiConf.ApiConfParam;
  7. import com.zswl.dataservice.httpRequest.conf.FullCardAPIConfig;
  8. import com.zswl.dataservice.httpRequest.conf.FullCardConf;
  9. import com.zswl.dataservice.service.base.SuperService;
  10. import com.zswl.dataservice.service.other.RequestInfoService;
  11. import com.zswl.dataservice.utils.net.apache.HttpClientUtil;
  12. import com.zswl.dataservice.utils.net.apache.HttpModel;
  13. import com.zswl.dataservice.utils.net.apache.ResponseModel;
  14. import lombok.extern.slf4j.Slf4j;
  15. import org.apache.commons.lang3.ObjectUtils;
  16. import org.apache.commons.lang3.StringUtils;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.stereotype.Service;
  19. import org.springframework.util.StopWatch;
  20. /**
  21. * @author TRX
  22. * @date 2024/6/25
  23. */
  24. @Slf4j
  25. @Service
  26. public class ApiRequestService extends SuperService {
  27. @Autowired
  28. FullCardConf fullCardConf;
  29. @Autowired
  30. RequestInfoDao requestInfoDao;
  31. @Autowired
  32. RequestInfoService requestInfoService;
  33. /**
  34. * 发送请求
  35. *
  36. * @param apiName
  37. * @param data
  38. * @return
  39. */
  40. public APIResponseModel sendFullCardAPI(String apiName, Object data) {
  41. APIResponseModel responseModel = new APIResponseModel();
  42. if (StringUtils.isEmpty(fullCardConf.getUrl())) {
  43. responseModel.setIsFailed("未配置物联网平台URL");
  44. return responseModel;
  45. }
  46. try {
  47. ApiConfParam apiConfParam = FullCardAPIConfig.getApiConfParam(apiName);
  48. if (ObjectUtils.isEmpty(apiConfParam)) {
  49. responseModel.setIsFailed("未找到API配置");
  50. return responseModel;
  51. }
  52. StopWatch stopWatch = new StopWatch();
  53. stopWatch.start();
  54. String url = fullCardConf.getUrl() + fullCardConf.getCardServerName() + apiConfParam.getApiName();
  55. ResponseModel request = HttpClientUtil.request(HttpModel.builder()
  56. .url(url).method(apiConfParam.getMethodType()).charset("utf-8").body(data).build());
  57. if (request.getCode() == 200) {
  58. responseModel = BeanUtil.copyProperties(request.getBody(), APIResponseModel.class);
  59. } else {
  60. responseModel = BeanUtil.copyProperties(request.getBody(), APIResponseModel.class);
  61. }
  62. responseModel.setParam(apiConfParam);
  63. stopWatch.stop();
  64. responseModel.setMillis(stopWatch.getTotalTimeMillis());
  65. } catch (Exception e) {
  66. e.printStackTrace();
  67. responseModel.setIsFailed(String.format("请求出错:%s", e.getMessage()));
  68. return responseModel;
  69. }
  70. // 记录请求日志
  71. requestInfoService.addRequestInfo(data, responseModel);
  72. return responseModel;
  73. }
  74. }