HsCodeService.java 5.41 KB
package com.erry.iclear.dateInterface.service;

import com.erry.iclear.dateInterface.ErrorCodeEnum;
import com.erry.iclear.dateInterface.api.request.HsCodeParam;
import com.erry.iclear.dateInterface.api.response.ResultHsCode;
import com.erry.iclear.dateInterface.entity.HsCode;
import com.erry.iclear.dateInterface.repository.HsCodeRepository;
import com.erry.iclear.dateInterface.util.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;

/**
 * hscode service
 * mt
 * 2022年2月10日16:26:34
 */
@Service
@Slf4j
public class HsCodeService {
    @Autowired
    HsCodeRepository hsCodeRepository;
    /**
     * 根据hscode编码查询对应的hscode
     * @param hscode
     * @return
     */
    public ResultHsCode findHsCodeListByCode(String hscode){
        ResultHsCode resultHsCode = new ResultHsCode(Boolean.FALSE,"","",null);
        try{
            if(hscode.length() > 2000){
                resultHsCode.setCode(ErrorCodeEnum.ERROR_30102.getCode());
                resultHsCode.setMsg(ErrorCodeEnum.ERROR_30102.getName());
                return resultHsCode;
            }
            String[] hscodeArrays = hscode.split(",");
            if(hscodeArrays.length > 100){
                resultHsCode.setCode(ErrorCodeEnum.ERROR_30100.getCode());
                resultHsCode.setMsg(ErrorCodeEnum.ERROR_30100.getName());
                return resultHsCode;
            }
            List<String> skuCodeList = Arrays.asList(hscodeArrays);
            List<HsCode> hsCodeList = this.hsCodeRepository.findHsCodeListByCode(skuCodeList);
            //如果未查找到对应的hscode则构造一条未找到数据返回
            skuCodeList.forEach(code ->{
                boolean exist = false;
                for (HsCode hsCode : hsCodeList) {
                    if(hsCode.getSkuCode().equals(code)){
                        exist = true;
                    }
                }
                //如果不存在则构造一条不存在数据
                if(!exist){
                    HsCode hsCode = new HsCode();
                    hsCode.setSkuCode(code);
                    hsCode.setRemark("未找到对应hscode数据");
                    hsCodeList.add(hsCode);
                }
            });
            resultHsCode.setSuccess(Boolean.TRUE);
            resultHsCode.setCode(ErrorCodeEnum.SUCCESS.getCode());
            resultHsCode.setMsg(ErrorCodeEnum.SUCCESS.getName());
            resultHsCode.setHsCodeResultList(hsCodeList);
        }catch(Exception ex){
            log.error(ex.getMessage(),ex);
            resultHsCode.setSuccess(Boolean.FALSE);
            resultHsCode.setCode(ErrorCodeEnum.ERROR_30101.getCode());
            resultHsCode.setMsg(ErrorCodeEnum.ERROR_30101.getName());
        }
        return resultHsCode;
    }

    /**
     * 根据hscode编码或者商品名称进行模糊查询
     * @param hscode
     * @return
     */
    public ResultHsCode fuzzyQueryHsCode(HsCodeParam hscode){
        ResultHsCode resultHsCode = new ResultHsCode(Boolean.FALSE,"","",null);
        try{
            if(StringUtil.isEmpty(hscode.getSkuCode()) && StringUtil.isEmpty(hscode.getSkuName())){
                resultHsCode.setCode(ErrorCodeEnum.ERROR_30103.getCode());
                resultHsCode.setMsg(ErrorCodeEnum.ERROR_30103.getName());
                return resultHsCode;
            }
            if(!StringUtil.isEmpty(hscode.getSkuCode()) && hscode.getSkuCode().length() > 50){
                resultHsCode.setCode(ErrorCodeEnum.ERROR_30104.getCode());
                resultHsCode.setMsg(ErrorCodeEnum.ERROR_30104.getName());
                return resultHsCode;
            }
            if(!StringUtil.isEmpty(hscode.getSkuName()) && hscode.getSkuName().length() > 1000){
                resultHsCode.setCode(ErrorCodeEnum.ERROR_30104.getCode());
                resultHsCode.setMsg(ErrorCodeEnum.ERROR_30104.getName());
                return resultHsCode;
            }
            List<HsCode> hsCodeList = null;


            resultHsCode.setSuccess(Boolean.TRUE);
            resultHsCode.setCode(ErrorCodeEnum.SUCCESS.getCode());
            resultHsCode.setMsg(ErrorCodeEnum.SUCCESS.getName());
            resultHsCode.setHsCodeResultList(hsCodeList);
        }catch(Exception ex){
            log.error(ex.getMessage(),ex);
            resultHsCode.setSuccess(Boolean.FALSE);
            resultHsCode.setCode(ErrorCodeEnum.ERROR_30101.getCode());
            resultHsCode.setMsg(ErrorCodeEnum.ERROR_30101.getName());
        }
        return resultHsCode;
    }

    /**
     * 查询所有有效hscode
     * @return
     */
    public ResultHsCode findAllHsCodeList(){
        ResultHsCode resultHsCode = new ResultHsCode(Boolean.FALSE,"","",null);
        try{
            List<HsCode> hsCodeList = this.hsCodeRepository.findAllHsCodeList();
            resultHsCode.setSuccess(Boolean.TRUE);
            resultHsCode.setCode(ErrorCodeEnum.SUCCESS.getCode());
            resultHsCode.setMsg(ErrorCodeEnum.SUCCESS.getName());
            resultHsCode.setHsCodeResultList(hsCodeList);
        }catch(Exception ex){
            log.error(ex.getMessage(),ex);
            resultHsCode.setSuccess(Boolean.FALSE);
            resultHsCode.setCode(ErrorCodeEnum.ERROR_30101.getCode());
            resultHsCode.setMsg(ErrorCodeEnum.ERROR_30101.getName());
        }
        return resultHsCode;
    }
}