package com.jkcredit.invoice.credit.interserver; import cn.com.taiji.sdk.model.comm.protocol.tts.trade.service.CardTradeModel; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.jkcredit.invoice.common.DataResult; import com.jkcredit.invoice.credit.dto.CardChangeDto; import com.jkcredit.invoice.credit.dto.CardChangeQueryDto; import com.jkcredit.invoice.model.entity.customer.CustomerCarRec; import com.jkcredit.invoice.model.entity.customer.CustomerRec; import com.jkcredit.invoice.service.customer.CustomerRecService; import com.jkcredit.invoice.service.lowerservice.SelfCarServiceL; import com.jkcredit.invoice.service.lowerservice.vo.*; import com.jkcredit.invoice.util.DateUtil; import com.jkcredit.invoice.util.RespR; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; @Service("selfCarInterService") @Slf4j public class SelfCarInterServiceImpl implements SelfCarInterService { @Autowired SelfCarServiceL selfCarService; @Autowired CustomerRecService customerRecMapper; /** * 自有车 用户卡列表查询接口 * @param appKey * @param api * @param data * @return */ @Override public DataResult customerETCQuery(String appKey, String api, String data,String requestid) { long costtimestart = System.currentTimeMillis(); DataResult result = new DataResult(); result.setData(3); result.setCode(200); result.setRequestid(requestid); result.setMsg("无法认证"); try { log.info("[-SelfCarInterServiceImpl.customerETCQuery-] request appKey=" + appKey + " ,api=" + api + " ,data=" +data+ " ,requestid=" +requestid); JSONObject jsonObject = JSONObject.parseObject(data); String companyNum = jsonObject.getString("companyNum");//企业编号 必输 String cardId = jsonObject.getString("cardId");//卡号 非必输 String plateNum = jsonObject.getString("plateNum");//车牌号 非必输 Integer plateColor = jsonObject.getInteger("plateColor");//车牌颜色 非必输 if(StringUtils.isEmpty(data)|| null == jsonObject || StringUtils.isEmpty(companyNum)){ result.setData(3); result.setMsg("请输入必输项!"); return result; } CustomerRec customerRec = new CustomerRec(); customerRec.setCustomerName(appKey); customerRec.setCompanyNum(companyNum); customerRec.setInterType(0); CustomerRec customerRec1 = customerRecMapper.selectByCustomerNameAndCompanyNum(customerRec); if (null == customerRec1){ result.setCode(200); result.setMsg("该企业编号在平台中不存在,请联系管理员核实!"); return result; } EtcQueryVo etcQueryVo = new EtcQueryVo(); etcQueryVo.setCustomerName(appKey);//客户名称 etcQueryVo.setCompanyName(customerRec1.getCompanyName());//企业名称 etcQueryVo.setPlateNum(plateNum);//车牌号 非必输 etcQueryVo.setCardId(cardId);//卡号 非必输 etcQueryVo.setPlateColor(plateColor);//车牌颜色 非必输 RespR rs = selfCarService.getEtcInfo(etcQueryVo); long costtimeend = System.currentTimeMillis(); log.info("[-SelfCarInterServiceImpl.customerETCQuery-] result is " + rs.toString() + ", request is " + data + " ,costtime=" + (costtimeend - costtimestart)); if(null != rs && rs.getCode() == 0){ result.setData(1); result.setCode(200); result.setMsg(rs.getData().toString()); return result; } else { if(rs!=null && rs.getCode()==2){ result.setData(2); result.setCode(200); result.setMsg("未查得"); return result; } result.setData(3); result.setCode(200); result.setMsg(rs.getMsg()); return result; } } catch (Exception e) { log.error("[-SelfCarInterServiceImpl.customerETCQuery-] get httpclient exception is " + e + ", request is " + data); } return result; } /** * 自有车 卡信息查询接口 * @param appKey * @param api * @param data * @return */ @Override public DataResult customerQueryEtcInfo(String appKey, String api, String data,String requestid) { long costtimestart = System.currentTimeMillis(); DataResult result = new DataResult(); result.setData(3); result.setCode(200); result.setRequestid(requestid); result.setMsg("无法认证"); try { log.info("[-SelfCarInterServiceImpl.customerQueryEtcInfo-] request appKey=" + appKey + " ,api=" + api + " ,data=" +data+ " ,requestid=" +requestid); JSONObject jsonObject = JSONObject.parseObject(data); String companyNum = jsonObject.getString("companyNum");//企业编号 必输 JSONArray vehicleList = jsonObject.getJSONArray("vehicleList");//车牌的json字符串 必输 if(StringUtils.isEmpty(data)|| null == jsonObject || StringUtils.isEmpty(companyNum) || null == vehicleList ){ result.setCode(200); result.setMsg("必传参数有为空情况,请核实后再试"); return result; } CustomerRec customerRec = new CustomerRec(); customerRec.setCustomerName(appKey); customerRec.setCompanyNum(companyNum); CustomerRec customerRec1 = customerRecMapper.selectByCustomerNameAndCompanyNum(customerRec); if (null == customerRec1){ result.setMsg("该企业编号在平台中不存在,请联系管理员核实!"); return result; } EtcBindVo etcQueryVo = new EtcBindVo(); etcQueryVo.setCustomerName(appKey);//客户名称 etcQueryVo.setCompanyName(customerRec1.getCompanyName());//企业名称 List cards = new ArrayList(); for(int i=0;i cards = new ArrayList(); for(int i=0;i> respRbefore = selfCarService.getTradeList(tradeRequestVo); tradeRequestVo.setTradeStatus(2); RespR> respRUnder = selfCarService.getTradeList(tradeRequestVo); tradeRequestVo.setTradeStatus(3); RespR> respRAfter = selfCarService.getTradeList(tradeRequestVo); //合并展示 List cardTradeModels = new ArrayList<>(); if(respRbefore.getCode() == 0){ cardTradeModels.addAll(respRbefore.getData()); } if(respRUnder.getCode() == 0){ cardTradeModels.addAll(respRUnder.getData()); } if(respRAfter.getCode() == 0){ cardTradeModels.addAll(respRAfter.getData()); } result.setData(1); result.setCode(200); result.setMsg(cardTradeModels.toString()); return result; } RespR rs = selfCarService.getTradeList(tradeRequestVo); long costtimeend = System.currentTimeMillis(); log.info("[-SelfCarInterServiceImpl.getTradeList-] result is " + rs.toString() + ", request is " + data + " ,costtime=" + (costtimeend - costtimestart)); if(null != rs && rs.getCode() == 0){ result.setData(1); result.setCode(200); result.setMsg(rs.getData().toString()); return result; } else { result.setData(3); if("未查得".equals(rs.getMsg())){ result.setData(2); } result.setCode(200); result.setMsg(rs.getMsg()); return result; } } catch (Exception e) { log.error("[-SelfCarInterServiceImpl.getTradeList-] get httpclient exception is " + e + ", request is " + data); } return result; } /** * 自有车 交易查询接口 渠道通过此接口可以查询单张卡连续90天内的交易(待开票、开票中、已开票) * @param appKey * @param api * @param data * @return */ @Override public DataResult applInvoice(String appKey, String api, String data,String requestid) { long costtimestart = System.currentTimeMillis(); DataResult result = new DataResult(); result.setData(3); result.setCode(200); result.setRequestid(requestid); result.setMsg("无法认证"); try { log.info("[-SelfCarInterServiceImpl.applInvoice-] request appKey=" + appKey + " ,api=" + api + " ,data=" +data+ " ,requestid=" +requestid); JSONObject jsonObject = JSONObject.parseObject(data); String companyNum = jsonObject.getString("companyNum");//企业编号 必输 String cardId = jsonObject.getString("cardId");//卡号 必输 JSONArray tradeIdModel = jsonObject.getJSONArray("tradeIdModel");//交易ID集合 必输 if(StringUtils.isEmpty(data)|| null == jsonObject || StringUtils.isEmpty(companyNum) || StringUtils.isEmpty(cardId) || null == tradeIdModel ){ result.setCode(200); result.setMsg("必传参数有为空情况,请核实后再试"); return result; } CustomerRec customerRec = new CustomerRec(); customerRec.setCustomerName(appKey); customerRec.setCompanyNum(companyNum); CustomerRec customerRec1 = customerRecMapper.selectByCustomerNameAndCompanyNum(customerRec); if (null == customerRec1 ){ result.setCode(200); result.setMsg("该企业编号在平台中不存在,请联系管理员核实!"); return result; } InvoiceApplVo invoiceApplVo = new InvoiceApplVo(); invoiceApplVo.setCustomerName(appKey); invoiceApplVo.setCompanyName(customerRec1.getCompanyName()); invoiceApplVo.setCardId(cardId); invoiceApplVo.setInterType(0);//接口 List tradeIds = new ArrayList(); for(int i=0;i customerCarRecList = new ArrayList(); CustomerCarRec customerCarRec = new CustomerCarRec(); customerCarRec.setCustomerName(appKey); customerCarRec.setCompanyName(customerRec1.getCompanyName()); customerCarRec.setEtcNum(cardId); customerCarRecList.add(customerCarRec); RespR rs = selfCarService.customerCarUnRec(customerCarRecList); long costtimeend = System.currentTimeMillis(); log.info("[-SelfCarInterServiceImpl.customerCarUnRec-] result is " + rs.toString() + ", request is " + data + " ,costtime=" + (costtimeend - costtimestart)); if(null != rs && rs.getCode() == 0){ result.setData(1); result.setCode(200); result.setMsg(rs.getData().toString()); return result; } else { result.setData(3); result.setCode(200); result.setMsg(rs.getMsg()); return result; } } catch (Exception e) { log.error("[-SelfCarInterServiceImpl.customerCarUnRec-] get httpclient exception is " + e + ", request is " + data); } return result; } @Override public DataResult customerCardChangeQuery(String appKey, String api, String data, String requestid) { long costtimestart = System.currentTimeMillis(); DataResult result = new DataResult(); result.setData(3); result.setCode(200); result.setRequestid(requestid); result.setMsg("无法认证"); try { log.info("[-SelfCarInterServiceImpl.customerCarUnRec-] request appKey=" + appKey + " ,api=" + api + " ,data=" +data+ " ,requestid=" +requestid); CardChangeQueryDto cardChangeQueryDto = JSON.parseObject(data,CardChangeQueryDto.class); if(cardChangeQueryDto == null || StringUtils.isEmpty(cardChangeQueryDto.getCompanyNum()) || StringUtils.isEmpty(cardChangeQueryDto.getApplyId()) || StringUtils.isEmpty(cardChangeQueryDto.getCardId())) { result.setMsg("必传参数不足"); return result; } CustomerRec customerRec = new CustomerRec(); customerRec.setCustomerName(appKey); customerRec.setCompanyNum(cardChangeQueryDto.getCompanyNum()); CustomerRec customerRec1 = customerRecMapper.selectByCustomerNameAndCompanyNum(customerRec); if (null == customerRec1){ result.setMsg("该企业编号未注册企业!"); return result; } RespR rs = selfCarService.customerCardChangeQuery(cardChangeQueryDto); long costtimeend = System.currentTimeMillis(); log.info("[-SelfCarInterServiceImpl.customerCarUnRec-] result is " + rs.toString() + ", request is " + data + " ,costtime=" + (costtimeend - costtimestart)); if(null != rs && rs.getCode() == 0){ result.setData(1); result.setCode(200); result.setMsg(rs.getData().toString()); return result; } else { result.setData(3); result.setCode(200); result.setMsg(rs==null?"结果为空":rs.getMsg()); return result; } } catch (Exception e) { log.error("[-SelfCarInterServiceImpl.customerCarUnRec-] get httpclient exception is " + e + ", request is " + data); } return result; } @Override public DataResult customerCardChange(String appKey, String api, String data, String requestid) { long costtimestart = System.currentTimeMillis(); DataResult result = new DataResult(); result.setData(3); result.setCode(200); result.setRequestid(requestid); result.setMsg("无法认证"); try { log.info("[-SelfCarInterServiceImpl.customerCarUnRec-] request appKey=" + appKey + " ,api=" + api + " ,data=" +data+ " ,requestid=" +requestid); CardChangeDto cardChangeDto = JSON.parseObject(data,CardChangeDto.class); if(cardChangeDto == null || StringUtils.isEmpty(cardChangeDto.getCompanyNum()) || StringUtils.isEmpty(cardChangeDto.getTargetCompanyNum()) || cardChangeDto.getCardIdList()==null || cardChangeDto.getCardIdList().size()==0) { result.setMsg("必传参数不足"); return result; } CustomerRec customerRec = new CustomerRec(); customerRec.setCustomerName(appKey); customerRec.setCompanyNum(cardChangeDto.getCompanyNum()); CustomerRec customerRec1 = customerRecMapper.selectByCustomerNameAndCompanyNum(customerRec); if (null == customerRec1){ result.setMsg("该企业编号未注册企业!"); return result; } cardChangeDto.setCompanyName(customerRec1.getCompanyName()); cardChangeDto.setCustomerId(customerRec1.getCustomerName()); RespR rs = selfCarService.customerCardChange(cardChangeDto); long costtimeend = System.currentTimeMillis(); log.info("[-SelfCarInterServiceImpl.customerCarUnRec-] result is " + rs.toString() + ", request is " + data + " ,costtime=" + (costtimeend - costtimestart)); if(null != rs && rs.getCode() == 0){ result.setData(1); result.setCode(200); result.setMsg(rs.getData().toString()); return result; } else { result.setData(3); result.setCode(200); result.setMsg(rs.getMsg()); return result; } } catch (Exception e) { log.error("[-SelfCarInterServiceImpl.customerCarUnRec-] get httpclient exception is " + e + ", request is " + data); } return result; } @Override public DataResult tradeApplyQuery(String appKey, String api, String data, String requestid) { long costtimestart = System.currentTimeMillis(); DataResult result = new DataResult(); result.setData(3); result.setCode(200); result.setRequestid(requestid); result.setMsg("无法认证"); try { log.info("[-SelfCarInterServiceImpl.tradeApplyQuery-] request appKey=" + appKey + " ,api=" + api + " ,data=" +data+ " ,requestid=" +requestid); JSONObject jsonObject = JSONObject.parseObject(data); String companyNum = jsonObject.getString("companyNum");//企业编号 必输 不超过32个字符 String cardId = jsonObject.getString("cardId");//卡号 必输 20位数字字符 String tradeId = jsonObject.getString("tradeId");//交易ID 必输 字符串 if(StringUtils.isEmpty(data)|| null == jsonObject || StringUtils.isEmpty(companyNum) || StringUtils.isEmpty(cardId) || StringUtils.isEmpty(tradeId) ){ result.setCode(200); result.setMsg("必传参数有为空情况,请核实后再试"); return result; } CustomerRec customerRec = new CustomerRec(); customerRec.setCustomerName(appKey); customerRec.setCompanyNum(companyNum); CustomerRec customerRec1 = customerRecMapper.selectByCustomerNameAndCompanyNum(customerRec); if (null == customerRec1){ result.setCode(200); result.setMsg("该企业编号在平台中不存在,请联系管理员核实!"); return result; } TradeApplyQueryInvVo tradeApplyQueryInvVo = new TradeApplyQueryInvVo(); tradeApplyQueryInvVo.setCompanyNum(companyNum); tradeApplyQueryInvVo.setCardId(cardId); tradeApplyQueryInvVo.setTradeId(tradeId); RespR rs = selfCarService.getApplyQueryByTradeId(tradeApplyQueryInvVo); long costtimeend = System.currentTimeMillis(); log.info("[-SelfCarInterServiceImpl.tradeApplyQuery-] result is " + rs.toString() + ", request is " + data + " ,costtime=" + (costtimeend - costtimestart)); if(null != rs && rs.getCode() == 0){ result.setData(1); result.setCode(200); result.setMsg(rs.getData().toString()); return result; } else { result.setData(3); result.setCode(200); result.setMsg(rs.getMsg()); return result; } } catch (Exception e) { log.error("[-SelfCarInterServiceImpl.tradeApplyQuery-] get httpclient exception is " + e + ", request is " + data); } return result; } }