package cc.mrbird.febs.mall.service.impl; import cc.mrbird.febs.common.utils.AppContants; import cc.mrbird.febs.common.utils.RedisUtils; import cc.mrbird.febs.mall.dto.ApiCheckTraceInfoDto; import cc.mrbird.febs.mall.entity.AppVersion; import cc.mrbird.febs.mall.entity.DataDictionaryCustom; import cc.mrbird.febs.mall.mapper.AppVersionMapper; import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper; import cc.mrbird.febs.mall.service.ICommonService; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.best.javaSdk.Client; import com.best.javaSdk.kdTraceQuery.request.KdTraceQueryReq; import com.best.javaSdk.kdTraceQuery.request.MailNos; import com.best.javaSdk.kdTraceQuery.response.KdTraceQueryRsp; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; /** * @author wzy * @date 2021-09-16 **/ @Slf4j @Service @RequiredArgsConstructor public class CommonService implements ICommonService { private final RedisUtils redisUtils; private final DataDictionaryCustomMapper dataDictionaryCustomMapper; private final AppVersionMapper appVersionMapper; @Override public boolean verifyCode(String account, String code) { if ("SMS_CODE".equals(code)) { return true; } String cacheCode = redisUtils.getString(AppContants.VERIFY_CODE_PREFIX + account); if (StrUtil.isBlank(cacheCode)) { return false; } if (code.equals(cacheCode)) { redisUtils.del(AppContants.VERIFY_CODE_PREFIX + account); return true; } else { return false; } } @Override public List findDataDicByType(String type) { return dataDictionaryCustomMapper.selectDicByType(type); } @Override public List findAppVersion() { return appVersionMapper.selectList(null); } @Override public void addDataDic(String type, String code, Object value, String description) { addDataDic(type, code, value, description, true); } @Override public void addDataDic(String type, String code, Object value, String description, boolean isJson) { DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(type, code); String data = null; if (isJson) { data = JSONObject.toJSONString(value); } else { data = (String) value; } if (dic != null) { dic.setValue(data); dataDictionaryCustomMapper.updateById(dic); return; } dic = new DataDictionaryCustom(); dic.setCode(code); dic.setType(type); dic.setValue(data); dic.setDescription(description); dataDictionaryCustomMapper.insert(dic); } @Override public KdTraceQueryRsp checkTraceInfo(ApiCheckTraceInfoDto checkTraceInfoDto) { /** * 正式环境 * MY_LEADING 生产环境参数 * partnerID : MY_LEADING * partnerKey : ER5DFRT320D4ed6FAFs3G410Fs977 * Endpoint :http://sgp-seaedi.800best.com/Malaysia/kdapi/api/proces */ String url = "http://sgp-seaedi.800best.com/Malaysia/kdapi/api/process"; String partnerID = "MY_LEADING"; String partnerKey = "ER5DFRT320D4ed6FAFs3G410Fs977"; String format = "JSON"; /** * 测试环境 * 测试物流编号 66660451238000 */ // String url = "http://sea-edi-hxtest.800best.com/Malaysia/kdapi/api/process"; // String partnerID = "M_TEST"; // String partnerKey = "TEST12345"; // String format = "JSON"; Client client = new Client(url, partnerID, partnerKey, format); KdTraceQueryReq tdTraceQueryReq = new KdTraceQueryReq(); MailNos mailNos = new MailNos(); List mailNo = new ArrayList<>(); mailNo.add(checkTraceInfoDto.getTraceNo()); mailNos.setMailNo(mailNo); tdTraceQueryReq.setMailNos(mailNos); tdTraceQueryReq.setLangType("zh-CN"); KdTraceQueryRsp kdTraceQueryRsp = client.executed(tdTraceQueryReq); return kdTraceQueryRsp; } }