IKnowUInterface.java 3.44 KB
package com.erry.iclear.dateInterface.api;

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.enums.ErrorCodeEnum;
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
 * /iknowU/stampQuery
 */
@RestController
@RequestMapping("/iknowU")
@Slf4j
public class IKnowUInterface {

    @Autowired
    HsCodeService hsCodeService;

    @Autowired
    IClearApiHsCodeLogService iClearApiHsCodeLogService;

    @ApiOperation(value = "抠图后的公章查询", httpMethod = "POST", notes = "ex:  http://192.168.1.71:8080/iknowU/stampQuery")
    @PostMapping("/stampQuery")
    @ResponseBody
    public ResultHsCode stampQuery(HttpServletRequest request
                                , @RequestBody String consignmentCode) {
        log.info("接收到请求数据hscode:【"+consignmentCode+"】");
        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(consignmentCode);
            if (!StringUtil.isEmpty(consignmentCode)) {
                resultHsCode = hsCodeService.findHsCodeListByCode(consignmentCode);
                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(consignmentCode.substring(0,2000));
            }
            iClearApiHsCodeLogService.saveIClearApiHsCodeLog(iclearApiHsCodeLog);
        }
    }
}