HsCodeInterface.java
5.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
package com.erry.iclear.dateInterface.api;
import com.erry.iclear.dateInterface.enums.ErrorCodeEnum;
import com.erry.iclear.dateInterface.api.request.HsCodeParam;
import com.erry.iclear.dateInterface.api.response.ResultHsCode;
import com.erry.iclear.dateInterface.entity.IClearApiHsCodeLog;
import com.erry.iclear.dateInterface.service.HsCodeService;
import com.erry.iclear.dateInterface.service.IClearApiHsCodeLogService;
import com.erry.iclear.dateInterface.util.StringUtil;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
/**
* @author mt
* /hscode/hscodeRequest
*/
@RestController
@RequestMapping("/hscode")
@Slf4j
public class HsCodeInterface {
@Autowired
HsCodeService hsCodeService;
@Autowired
IClearApiHsCodeLogService iClearApiHsCodeLogService;
@ApiOperation(value = "获取最新HS Code信息接口", httpMethod = "POST", notes = "ex: http://192.168.1.71:8080/hscode/hscodeRequest")
@PostMapping("/hscodeRequest")
@ResponseBody
public ResultHsCode hscodeRequest(HttpServletRequest request
, @RequestBody HsCodeParam hscode) {
log.info("接收到请求数据hscode:【"+hscode.getHscode()+"】");
String appId = (String) request.getHeader("Appid");
String appkey = (String) request.getHeader("Appkey");
IClearApiHsCodeLog iclearApiHsCodeLog = new IClearApiHsCodeLog();
ResultHsCode resultHsCode = null;
long begin = System.currentTimeMillis();
try {
iclearApiHsCodeLog.setAppId(appId);
iclearApiHsCodeLog.setAppKey(appkey);
iclearApiHsCodeLog.setCreateTime(new Date());
iclearApiHsCodeLog.setCode(hscode.getHscode());
if (!StringUtil.isEmpty(hscode.getHscode())) {
resultHsCode = hsCodeService.findHsCodeListByCode(hscode.getHscode());
return resultHsCode;
} else {
//如果没有传hscode需要限制10分钟只能查询一次
boolean rs = iClearApiHsCodeLogService.findIClearApiHsCodeLog(appId);
if(rs == true){
resultHsCode = new ResultHsCode(Boolean.FALSE, ErrorCodeEnum.ERROR_10019.getCode(),ErrorCodeEnum.ERROR_10019.getName(),null);
}else{
resultHsCode = hsCodeService.findAllHsCodeList();
}
return resultHsCode;
}
}catch(Exception ex){
log.error(ex.getMessage(),ex);
resultHsCode = new ResultHsCode(Boolean.FALSE,ErrorCodeEnum.ERROR_30101.getCode(),ErrorCodeEnum.ERROR_30101.getName(),null);
return resultHsCode;
}finally {
iclearApiHsCodeLog.setReceiveResult(resultHsCode.getMsg());
iclearApiHsCodeLog.setErrorCode(resultHsCode.getCode());
iclearApiHsCodeLog.setResponseTime(new Date());
long end = System.currentTimeMillis();
iclearApiHsCodeLog.setSpendTime(end-begin);
//如果异常为hscode长度超过2000,将截取0到2000字符
if(resultHsCode.getCode().equals(ErrorCodeEnum.ERROR_30102.getCode())){
iclearApiHsCodeLog.setCode(hscode.getHscode().substring(0,2000));
}
iClearApiHsCodeLogService.saveIClearApiHsCodeLog(iclearApiHsCodeLog);
}
}
@ApiOperation(value = "HSCODE通用模糊查询接口", httpMethod = "POST", notes = "ex: http://192.168.1.71:8080/hscode/fuzzyQuery")
@PostMapping("/fuzzyQuery")
@ResponseBody
public ResultHsCode fuzzyQueryHsCode(HttpServletRequest request
, @RequestBody HsCodeParam hscode) {
log.info("接收到请求数据skuCode:【"+hscode.getSkuCode()+"】,skuName:【"+hscode.getSkuName()+"】");
String appId = (String) request.getHeader("Appid");
String appkey = (String) request.getHeader("Appkey");
IClearApiHsCodeLog iclearApiHsCodeLog = new IClearApiHsCodeLog();
ResultHsCode resultHsCode = null;
long begin = System.currentTimeMillis();
try {
iclearApiHsCodeLog.setAppId(appId);
iclearApiHsCodeLog.setAppKey(appkey);
iclearApiHsCodeLog.setCreateTime(new Date());
resultHsCode = hsCodeService.fuzzyQueryHsCode(hscode);
iclearApiHsCodeLog.setReceiveResult(resultHsCode.getMsg());
iclearApiHsCodeLog.setErrorCode(resultHsCode.getCode());
iclearApiHsCodeLog.setResponseTime(new Date());
long end = System.currentTimeMillis();
iclearApiHsCodeLog.setSpendTime(end-begin);
String skuCode = hscode.getSkuCode();
if(!StringUtil.isEmpty(skuCode) && skuCode.length() > 50){
skuCode = skuCode.substring(0,50);
}
String skuName = hscode.getSkuName();
if(!StringUtil.isEmpty(skuName) && skuName.length() > 1000){
skuName = skuName.substring(0,1000);
}
iclearApiHsCodeLog.setCode("[skuCode="+skuCode+"],[skuName="+skuName+"]");
iClearApiHsCodeLogService.saveIClearApiHsCodeLog(iclearApiHsCodeLog);
return resultHsCode;
}catch(Exception ex){
log.error(ex.getMessage(),ex);
resultHsCode = new ResultHsCode(Boolean.FALSE,ErrorCodeEnum.ERROR_30101.getCode(),ErrorCodeEnum.ERROR_30101.getName(),null);
return resultHsCode;
}finally{
return resultHsCode;
}
}
}