提交 1c54ecd2 authored 作者: huyufan's avatar huyufan

同步网络货运加解密相关处理

上级 4cd3e4e1
...@@ -15,9 +15,9 @@ import java.util.List; ...@@ -15,9 +15,9 @@ import java.util.List;
@NoArgsConstructor @NoArgsConstructor
public class ThirdOrderChildBrokerParam { public class ThirdOrderChildBrokerParam {
@ApiModelProperty(value = "单编码", dataType="String", required = true) @ApiModelProperty(value = "单编码", dataType="String", required = true)
private String childNo; private String childNo;
@ApiModelProperty(value = "单编码", dataType="String", required = true) @ApiModelProperty(value = "单编码", dataType="String", required = true)
private String orderNo; private String orderNo;
@ApiModelProperty(value = "车牌号", dataType="String", required = true) @ApiModelProperty(value = "车牌号", dataType="String", required = true)
private String truckNo; private String truckNo;
......
package com.clx.performance.component;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.msl.common.dto.HttpDTO;
import com.msl.common.result.Result;
import com.msl.common.utils.EncryptUtil;
import com.msl.common.utils.HttpUtil;
import lombok.extern.slf4j.Slf4j;
import java.security.GeneralSecurityException;
@Slf4j
public class ThirdComponent {
public static final String TRANSPORT_USER = "13403503399";
public static final String TRANSPORT_KEY = "9Y1N5AUP8N2TI359";
// @Autowired
// private HttpLogService httpLogService;
// /**
// * post请求
// *
// * @param host
// * @param httpEnum
// * @param param
// * @param httpLog
// * @param isEncrypt
// */
// @Transactional(propagation = Propagation.NOT_SUPPORTED)
// public Result<?> postRequest(String host, HttpEnum httpEnum, String param, HttpLog httpLog, boolean isEncrypt) {
// if (Objects.nonNull(httpLog)) {
// httpLog.setTryCount(httpLog.getTryCount() + 1);
// httpLogService.updateHttpLogTryCount(httpLog);
// } else {
// httpLog = new HttpLog()
// .setMsgId(UUID.randomUUID().toString())
// .setType(httpEnum.getCode())
// .setRemark(httpEnum.getMark())
// .setUrl(httpEnum.getUrl())
// .setParam(param)
// .setStatus(HttpStatusEnum.HAVING.getCode())
// .setTryCount(1);
// httpLogService.saveHttpLog(httpLog);
// }
// return isEncrypt ? encryptPost(host + httpLog.getUrl(), httpLog.getParam(), httpLog.getId()) : asyncPost(host + httpLog.getUrl(), httpLog.getParam(), httpLog.getId());
// }
//
// @Transactional(propagation = Propagation.NOT_SUPPORTED)
// public Result<?> postRequestBroker(String host, HttpEnum httpEnum, String param, HttpLog httpLog, Map<String, Object> headers) {
// if (Objects.nonNull(httpLog)) {
// httpLog.setTryCount(httpLog.getTryCount() + 1);
// httpLogService.updateHttpLogTryCount(httpLog);
// } else {
// httpLog = new HttpLog()
// .setMsgId(UUID.randomUUID().toString())
// .setType(httpEnum.getCode())
// .setRemark(httpEnum.getMark())
// .setUrl(httpEnum.getUrl())
// .setParam(param)
// .setStatus(HttpStatusEnum.HAVING.getCode())
// .setTryCount(1)
// .setHeader(JSON.toJSONString(headers));
// httpLogService.saveHttpLog(httpLog);
// }
// return asyncPostBroker(host + httpLog.getUrl(), httpLog.getParam(), httpLog.getId(), headers);
// }
//
// /**
// * get请求
// *
// * @param host
// * @param httpEnum
// * @param headers
// * @param param
// * @return
// */
// @Transactional(propagation = Propagation.NOT_SUPPORTED)
// public Result<?> getRequest(String host, HttpEnum httpEnum, Map<String, Object> headers, HttpLog httpLog, Object... param) {
// if (Objects.nonNull(httpLog)) {
// httpLog.setTryCount(httpLog.getTryCount() + 1);
// httpLogService.updateHttpLogTryCount(httpLog);
// } else {
// httpLog = new HttpLog()
// .setMsgId(UUID.randomUUID().toString())
// .setType(httpEnum.getCode())
// .setRemark(httpEnum.getMark())
// .setUrl(String.format(httpEnum.getUrl(), param))
// .setHeader(JSON.toJSONString(headers))
// .setParam("")
// .setStatus(HttpStatusEnum.HAVING.getCode())
// .setTryCount(1);
// httpLogService.saveHttpLog(httpLog);
// }
// return asyncGet(host + httpLog.getUrl(), headers, httpLog.getId());
// }
//
// private Result<?> asyncGet(String url, Map<String, Object> headers, Integer httpLogId) {
// try {
// return Optional.ofBlank(HttpClientUtil.httpGetRequest(url, headers))
// .map(res -> JSON.parseObject(res, Result.class))
// .peek(result -> httpLogService.updateHttpLogStatus(httpLogId, result))
// .filter(Result::succeed)
// .orElse(new Result<>(ResultCodeEnum.FAIL));
// } catch (Exception e) {
// log.error("http请求错误---->httpLogId:{},url:{}", httpLogId, url, e);
// }
// return new Result<>(ResultCodeEnum.FAIL);
// }
//
// private Result<?> asyncPost(String url, String param, Integer httpLogId) {
// try {
// return Optional.ofBlank(HttpClientUtil.httpPostRequest(url, param))
// .map(res -> JSON.parseObject(res, Result.class))
// .peek(result -> httpLogService.updateHttpLogStatus(httpLogId, result))
// .filter(Result::succeed)
// .orElse(new Result<>(ResultCodeEnum.FAIL));
// } catch (Exception e) {
// log.error("http请求错误---->httpLogId:{},url:{},param:{}", httpLogId, url, param, e);
// }
// return new Result<>(ResultCodeEnum.FAIL);
// }
//
// private Result<?> asyncPostBroker(String url, String param, Integer httpLogId, Map<String, Object> headers) {
// try {
// String s = HttpClientUtil.httpPostRequestBroker(url, param, headers);
// return Optional.ofBlank(s)
// .map(res -> JSON.parseObject(res, Result.class))
// .peek(result -> httpLogService.updateHttpLogStatus(httpLogId, result))
// .filter(Result::succeed)
// .orElse(new Result<>(ResultCodeEnum.FAIL));
// } catch (Exception e) {
// log.error("http请求错误---->httpLogId:{},url:{},param:{}", httpLogId, url, param, e);
// }
// return new Result<>(ResultCodeEnum.FAIL);
// }
public static String encrypt(String param) throws Exception {
HttpDTO httpDTO = EncryptUtil.buildDTO(TRANSPORT_USER, param, TRANSPORT_KEY, System.currentTimeMillis());
return JSONUtil.parse(httpDTO).toString();
}
public static Result<?> encryptPost(String url, String param, Integer httpLogId) {
try {
return HttpUtil.post(url, null,
EncryptUtil.buildDTO(TRANSPORT_USER, param, TRANSPORT_KEY, System.currentTimeMillis()))
.map(r -> JSON.parseObject(r, new TypeReference<HttpDTO>() {
}))
.peek(dto -> log.info("http请求返回------dto->{}", dto))
.mapTry(dto -> EncryptUtil.decrypt(dto.getData(), TRANSPORT_KEY))
.map(t -> {
return JSONUtil.toBean(t, Result.class);
}
).get();
// .peek(result -> httpLogService.updateHttpLogStatus(httpLogId, result))
} catch (GeneralSecurityException e) {
log.error("解密失败", e);
throw new RuntimeException();
}
}
}
package com.clx.performance.feign;
import com.clx.performance.component.ThirdComponent;
import com.msl.common.result.Result;
import feign.RequestInterceptor;
import feign.RequestTemplate;
public class FeignInterceptor implements RequestInterceptor {
@Override
public void apply(RequestTemplate template){
// 通过template获取到请求体(已经被转成json)
String jsonBody = template.requestBody().asString();
// 构造通用的请求体
// String url = template.feignTarget().url() + template.url();
// Result<?> result = ThirdComponent.encryptPost(url, jsonBody, null);
// System.out.println(result);
try {
jsonBody = ThirdComponent.encrypt(jsonBody);
} catch (Exception e) {
throw new RuntimeException(e);
}
template.body(jsonBody);
}
}
\ No newline at end of file
...@@ -15,7 +15,7 @@ import javax.validation.constraints.NotBlank; ...@@ -15,7 +15,7 @@ import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotEmpty;
import java.util.List; import java.util.List;
@FeignClient(name = "transport-service-yitu", url = "${transport-service.host}") @FeignClient(name = "transport-service-yitu", url = "${transport-service.host}", configuration = FeignInterceptor.class)
public interface TransportFeignService { public interface TransportFeignService {
/** /**
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论