package cc.mrbird.febs.mall.service.impl; import cc.mrbird.febs.common.enumerates.DataDictionaryEnum; import cc.mrbird.febs.common.exception.FebsException; 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.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.best.javaSdk.ClientParamEnum; import com.best.javaSdk.ClientParamService; import com.best.javaSdk.kdTraceQuery.response.KdTraceQueryRsp; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; 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) { List dataDictionaryCustoms = dataDictionaryCustomMapper.selectDicByType(type); if(type.equals("KEFU_SET")){ if(CollUtil.isEmpty(dataDictionaryCustoms)){ DataDictionaryCustom dataDictionaryCustom = new DataDictionaryCustom(); dataDictionaryCustom.setType(type); dataDictionaryCustom.setCode("WEIXIN"); dataDictionaryCustom.setDescription("微信客服"); dataDictionaryCustomMapper.insert(dataDictionaryCustom); DataDictionaryCustom dataDictionaryCustom2 = new DataDictionaryCustom(); dataDictionaryCustom2.setType(type); dataDictionaryCustom2.setCode("WHATSAPP"); dataDictionaryCustom2.setDescription("WhatsApp客服"); dataDictionaryCustomMapper.insert(dataDictionaryCustom2); } } 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/process // */ // 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; // } @Override public KdTraceQueryRsp checkTraceInfo(ApiCheckTraceInfoDto checkTraceInfoDto) { String state = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( DataDictionaryEnum.SENDER_ADDRESS.getType(), DataDictionaryEnum.SENDER_ADDRESS.getCode() ).getValue(); if(state.equals("0")){ return ClientParamService.getInstance(ClientParamEnum.TEST.name()).checkTraceInfo(checkTraceInfoDto); }else if(state.equals("1")){ return ClientParamService.getInstance(ClientParamEnum.PRD.name()).checkTraceInfo(checkTraceInfoDto); }else{ throw new FebsException("获取快递信息接口,系统配置异常"); } } }