SelfCarInterServiceImpl.java 43 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051
  1. package com.jkcredit.invoice.credit.interserver;
  2. import cn.com.taiji.sdk.model.comm.protocol.tts.trade.service.CardTradeModel;
  3. import com.alibaba.fastjson.JSON;
  4. import com.alibaba.fastjson.JSONArray;
  5. import com.alibaba.fastjson.JSONObject;
  6. import com.jkcredit.invoice.common.DataResult;
  7. import com.jkcredit.invoice.credit.dto.CardChangeDto;
  8. import com.jkcredit.invoice.credit.dto.CardChangeQueryDto;
  9. import com.jkcredit.invoice.model.entity.customer.CustomerCarRec;
  10. import com.jkcredit.invoice.model.entity.customer.CustomerRec;
  11. import com.jkcredit.invoice.service.customer.CustomerRecService;
  12. import com.jkcredit.invoice.service.lowerservice.SelfCarServiceL;
  13. import com.jkcredit.invoice.service.lowerservice.vo.*;
  14. import com.jkcredit.invoice.util.DateUtil;
  15. import com.jkcredit.invoice.util.RespR;
  16. import lombok.extern.slf4j.Slf4j;
  17. import org.apache.commons.lang3.StringUtils;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.stereotype.Service;
  20. import java.util.ArrayList;
  21. import java.util.List;
  22. @Service("selfCarInterService")
  23. @Slf4j
  24. public class SelfCarInterServiceImpl implements SelfCarInterService {
  25. @Autowired
  26. SelfCarServiceL selfCarService;
  27. @Autowired
  28. CustomerRecService customerRecMapper;
  29. /**
  30. * 自有车 用户卡列表查询接口
  31. * @param appKey
  32. * @param api
  33. * @param data
  34. * @return
  35. */
  36. @Override
  37. public DataResult customerETCQuery(String appKey, String api, String data,String requestid) {
  38. long costtimestart = System.currentTimeMillis();
  39. DataResult result = new DataResult();
  40. result.setData(3);
  41. result.setCode(200);
  42. result.setRequestid(requestid);
  43. result.setMsg("无法认证");
  44. try {
  45. log.info("[-SelfCarInterServiceImpl.customerETCQuery-] request appKey=" + appKey + " ,api=" + api + " ,data=" +data+ " ,requestid=" +requestid);
  46. JSONObject jsonObject = JSONObject.parseObject(data);
  47. String companyNum = jsonObject.getString("companyNum");//企业编号 必输
  48. String cardId = jsonObject.getString("cardId");//卡号 非必输
  49. String plateNum = jsonObject.getString("plateNum");//车牌号 非必输
  50. Integer plateColor = jsonObject.getInteger("plateColor");//车牌颜色 非必输
  51. if(StringUtils.isEmpty(data)|| null == jsonObject || StringUtils.isEmpty(companyNum)){
  52. result.setData(3);
  53. result.setMsg("请输入必输项!");
  54. return result;
  55. }
  56. CustomerRec customerRec = new CustomerRec();
  57. customerRec.setCustomerName(appKey);
  58. customerRec.setCompanyNum(companyNum);
  59. customerRec.setInterType(0);
  60. CustomerRec customerRec1 = customerRecMapper.selectByCustomerNameAndCompanyNum(customerRec);
  61. if (null == customerRec1){
  62. result.setCode(200);
  63. result.setMsg("该企业编号在平台中不存在,请联系管理员核实!");
  64. return result;
  65. }
  66. EtcQueryVo etcQueryVo = new EtcQueryVo();
  67. etcQueryVo.setCustomerName(appKey);//客户名称
  68. etcQueryVo.setCompanyName(customerRec1.getCompanyName());//企业名称
  69. etcQueryVo.setPlateNum(plateNum);//车牌号 非必输
  70. etcQueryVo.setCardId(cardId);//卡号 非必输
  71. etcQueryVo.setPlateColor(plateColor);//车牌颜色 非必输
  72. RespR rs = selfCarService.getEtcInfo(etcQueryVo);
  73. long costtimeend = System.currentTimeMillis();
  74. log.info("[-SelfCarInterServiceImpl.customerETCQuery-] result is "
  75. + rs.toString() + ", request is " + data + " ,costtime="
  76. + (costtimeend - costtimestart));
  77. if(null != rs && rs.getCode() == 0){
  78. result.setData(1);
  79. result.setCode(200);
  80. result.setMsg(rs.getData().toString());
  81. return result;
  82. } else {
  83. if(rs!=null && rs.getCode()==2){
  84. result.setData(2);
  85. result.setCode(200);
  86. result.setMsg("未查得");
  87. return result;
  88. }
  89. result.setData(3);
  90. result.setCode(200);
  91. result.setMsg(rs.getMsg());
  92. return result;
  93. }
  94. } catch (Exception e) {
  95. log.error("[-SelfCarInterServiceImpl.customerETCQuery-] get httpclient exception is "
  96. + e + ", request is " + data);
  97. }
  98. return result;
  99. }
  100. /**
  101. * 自有车 卡信息查询接口
  102. * @param appKey
  103. * @param api
  104. * @param data
  105. * @return
  106. */
  107. @Override
  108. public DataResult customerQueryEtcInfo(String appKey, String api, String data,String requestid) {
  109. long costtimestart = System.currentTimeMillis();
  110. DataResult result = new DataResult();
  111. result.setData(3);
  112. result.setCode(200);
  113. result.setRequestid(requestid);
  114. result.setMsg("无法认证");
  115. try {
  116. log.info("[-SelfCarInterServiceImpl.customerQueryEtcInfo-] request appKey=" + appKey + " ,api=" + api + " ,data=" +data+ " ,requestid=" +requestid);
  117. JSONObject jsonObject = JSONObject.parseObject(data);
  118. String companyNum = jsonObject.getString("companyNum");//企业编号 必输
  119. JSONArray vehicleList = jsonObject.getJSONArray("vehicleList");//车牌的json字符串 必输
  120. if(StringUtils.isEmpty(data)|| null == jsonObject || StringUtils.isEmpty(companyNum)
  121. || null == vehicleList
  122. ){
  123. result.setCode(200);
  124. result.setMsg("必传参数有为空情况,请核实后再试");
  125. return result;
  126. }
  127. CustomerRec customerRec = new CustomerRec();
  128. customerRec.setCustomerName(appKey);
  129. customerRec.setCompanyNum(companyNum);
  130. CustomerRec customerRec1 = customerRecMapper.selectByCustomerNameAndCompanyNum(customerRec);
  131. if (null == customerRec1){
  132. result.setMsg("该企业编号在平台中不存在,请联系管理员核实!");
  133. return result;
  134. }
  135. EtcBindVo etcQueryVo = new EtcBindVo();
  136. etcQueryVo.setCustomerName(appKey);//客户名称
  137. etcQueryVo.setCompanyName(customerRec1.getCompanyName());//企业名称
  138. List<CarVo> cards = new ArrayList<CarVo>();
  139. for(int i=0;i<vehicleList.size();i++) {
  140. JSONObject jb = vehicleList.getJSONObject(i);
  141. String plateNum = jb.getString("plateNum");//车牌号
  142. Integer plateColor = jb.getInteger("plateColor");//车牌颜色
  143. if(null == jb || StringUtils.isEmpty(plateNum)
  144. || null == plateColor
  145. ){
  146. result.setMsg("参数格式错误");
  147. return result;
  148. }
  149. CarVo carVo = new CarVo();
  150. carVo.setNum(plateNum);
  151. carVo.setColor(plateColor);
  152. cards.add(carVo);
  153. }
  154. etcQueryVo.setCards(cards);
  155. RespR rs = selfCarService.queryEtcInfo(etcQueryVo);
  156. long costtimeend = System.currentTimeMillis();
  157. log.info("[-SelfCarInterServiceImpl.customerQueryEtcInfo-] result is "
  158. + rs.toString() + ", request is " + data + " ,costtime="
  159. + (costtimeend - costtimestart));
  160. if(null != rs && rs.getCode() == 0){
  161. result.setData(1);
  162. result.setCode(200);
  163. result.setMsg(rs.getData().toString());
  164. return result;
  165. } else {
  166. result.setData(3);
  167. result.setCode(200);
  168. result.setMsg(rs.getMsg());
  169. if("未查得".equals(rs.getMsg())){
  170. result.setData(2);
  171. }
  172. return result;
  173. }
  174. } catch (Exception e) {
  175. log.error("[-SelfCarInterServiceImpl.customerQueryEtcInfo-] get httpclient exception is "
  176. + e + ", request is " + data);
  177. }
  178. return result;
  179. }
  180. /**
  181. * 自有车下发短信通知接口
  182. * @param appKey
  183. * @param api
  184. * @param data
  185. * @return
  186. */
  187. @Override
  188. public DataResult customerETCRec(String appKey, String api, String data,String requestid) {
  189. long costtimestart = System.currentTimeMillis();
  190. DataResult result = new DataResult();
  191. result.setData(3);
  192. result.setCode(200);
  193. result.setRequestid(requestid);
  194. result.setMsg("无法认证");
  195. try {
  196. log.info("[-SelfCarInterServiceImpl.customerETCRec-] request appKey=" + appKey + " ,api=" + api + " ,data=" +data+ " ,requestid=" +requestid);
  197. JSONObject jsonObject = JSONObject.parseObject(data);
  198. String companyNum = jsonObject.getString("companyNum");//企业编号 必输
  199. String mobile = jsonObject.getString("mobile");//企业预留手机号 必输
  200. JSONArray cardIdList = jsonObject.getJSONArray("cardIdList");//ETC卡编号列表 必输
  201. if(StringUtils.isEmpty(data)|| null == jsonObject || StringUtils.isEmpty(companyNum)
  202. || StringUtils.isEmpty(mobile)
  203. || null == cardIdList
  204. ){
  205. result.setCode(200);
  206. result.setMsg("必传参数有为空情况,请核实后再试");
  207. return result;
  208. }
  209. CustomerRec customerRec = new CustomerRec();
  210. customerRec.setCustomerName(appKey);
  211. customerRec.setCompanyNum(companyNum);
  212. CustomerRec customerRec1 = customerRecMapper.selectByCustomerNameAndCompanyNum(customerRec);
  213. if (null == customerRec1){
  214. result.setCode(200);
  215. result.setMsg("该企业编号在平台中不存在,请联系管理员核实!");
  216. return result;
  217. }
  218. EtcBindVo etcQueryVo = new EtcBindVo();
  219. etcQueryVo.setCustomerName(appKey);//客户名称
  220. etcQueryVo.setCompanyName(customerRec1.getCompanyName());//企业名称
  221. etcQueryVo.setMobile(mobile);//企业预留手机号
  222. List<CarVo> cards = new ArrayList<CarVo>();
  223. for(int i=0;i<cardIdList.size();i++) {
  224. JSONObject jb = cardIdList.getJSONObject(i);
  225. String cardId = jb.getString("cardId");//用户卡Id
  226. if(null == jb || StringUtils.isEmpty(cardId)
  227. ){
  228. result.setCode(200);
  229. result.setMsg("用户卡为空!");
  230. return result;
  231. }
  232. CarVo carVo = new CarVo();
  233. carVo.setEtcNum(cardId);
  234. cards.add(carVo);
  235. }
  236. etcQueryVo.setCards(cards);
  237. RespR rs = selfCarService.customerEtcRec(etcQueryVo);
  238. long costtimeend = System.currentTimeMillis();
  239. log.info("[-SelfCarInterServiceImpl.customerETCRec-] result is "
  240. + rs.toString() + ", request is " + data + " ,costtime="
  241. + (costtimeend - costtimestart));
  242. if(null != rs && rs.getCode() == 0){
  243. result.setData(1);
  244. result.setCode(200);
  245. result.setMsg(rs.getData().toString());
  246. return result;
  247. } else {
  248. result.setData(3);
  249. result.setCode(200);
  250. result.setMsg(rs.getMsg());
  251. return result;
  252. }
  253. } catch (Exception e) {
  254. log.error("[-SelfCarInterServiceImpl.customerETCRec-] get httpclient exception is "
  255. + e + ", request is " + data);
  256. }
  257. return result;
  258. }
  259. /**
  260. * 自有车 卡绑定接口 渠道调用此接口,上传用户收到的短信验证码
  261. * @param appKey
  262. * @param api
  263. * @param data
  264. * @return
  265. */
  266. @Override
  267. public DataResult customerETCRecValid(String appKey, String api, String data,String requestid) {
  268. long costtimestart = System.currentTimeMillis();
  269. DataResult result = new DataResult();
  270. result.setData(3);
  271. result.setCode(200);
  272. result.setRequestid(requestid);
  273. result.setMsg("无法认证");
  274. try {
  275. log.info("[-SelfCarInterServiceImpl.customerETCRecValid-] request appKey=" + appKey + " ,api=" + api + " ,data=" +data+ " ,requestid=" +requestid);
  276. JSONObject jsonObject = JSONObject.parseObject(data);
  277. String companyNum = jsonObject.getString("companyNum");//企业编号 必输
  278. String mobile = jsonObject.getString("mobile");//企业预留手机号 必输
  279. String validCode = jsonObject.getString("validCode");//验证码 必输
  280. if(StringUtils.isEmpty(data)|| null == jsonObject || StringUtils.isEmpty(companyNum)
  281. || StringUtils.isEmpty(mobile)
  282. || StringUtils.isEmpty(validCode)
  283. ){
  284. result.setCode(200);
  285. result.setMsg("必传参数有为空情况,请核实后再试");
  286. return result;
  287. }
  288. CustomerRec customerRec = new CustomerRec();
  289. customerRec.setCustomerName(appKey);
  290. customerRec.setCompanyNum(companyNum);
  291. CustomerRec customerRec1 = customerRecMapper.selectByCustomerNameAndCompanyNum(customerRec);
  292. if (null == customerRec1){
  293. result.setCode(200);
  294. result.setMsg("该企业编号在平台中不存在,请联系管理员核实!");
  295. return result;
  296. }
  297. EtcValidVo etcValidVo = new EtcValidVo();
  298. etcValidVo.setCustomerName(appKey);
  299. etcValidVo.setCompanyName(customerRec1.getCompanyName());
  300. etcValidVo.setValidCode(validCode);
  301. etcValidVo.setMobile(mobile);
  302. etcValidVo.setInterType(0);//接口
  303. RespR rs = selfCarService.customerEtcRecValid(etcValidVo);
  304. long costtimeend = System.currentTimeMillis();
  305. log.info("[-SelfCarInterServiceImpl.customerETCRecValid-] result is "
  306. + rs.toString() + ", request is " + data + " ,costtime="
  307. + (costtimeend - costtimestart));
  308. if(null != rs && rs.getCode() == 0){
  309. result.setData(1);
  310. result.setCode(200);
  311. result.setMsg(rs.getData().toString());
  312. return result;
  313. } else {
  314. result.setData(3);
  315. result.setCode(200);
  316. result.setMsg(rs.getMsg());
  317. return result;
  318. }
  319. } catch (Exception e) {
  320. log.error("[-SelfCarInterServiceImpl.customerETCRecValid-] get httpclient exception is "
  321. + e + ", request is " + data);
  322. }
  323. return result;
  324. }
  325. /**
  326. * 自有车 交易查询接口 渠道通过此接口可以查询单张卡连续90天内的交易(待开票、开票中、已开票)
  327. * @param appKey
  328. * @param api
  329. * @param data
  330. * @return
  331. */
  332. @Override
  333. public DataResult getTradeList(String appKey, String api, String data,String requestid) {
  334. long costtimestart = System.currentTimeMillis();
  335. DataResult result = new DataResult();
  336. result.setData(3);
  337. result.setCode(200);
  338. result.setRequestid(requestid);
  339. result.setMsg("无法认证");
  340. try {
  341. log.info("[-SelfCarInterServiceImpl.getTradeList-] request appKey=" + appKey + " ,api=" + api + " ,data=" +data+ " ,requestid=" +requestid);
  342. JSONObject jsonObject = JSONObject.parseObject(data);
  343. String companyNum = jsonObject.getString("companyNum");//企业编号 必输
  344. String cardId = jsonObject.getString("cardId");//卡号 必输
  345. Integer tradeStatus = jsonObject.getInteger("tradeStatus");//交易状态 必输
  346. String startExTime = jsonObject.getString("startExTime");//开始时间 必输
  347. String endExTime = jsonObject.getString("endExTime");//结束时间 必输
  348. if(StringUtils.isEmpty(data)|| null == jsonObject || StringUtils.isEmpty(companyNum)
  349. || StringUtils.isEmpty(cardId)
  350. || null == tradeStatus
  351. || StringUtils.isEmpty(startExTime)
  352. || StringUtils.isEmpty(endExTime)
  353. ){
  354. result.setCode(200);
  355. result.setMsg("必传参数有为空情况,请核实后再试");
  356. return result;
  357. }
  358. CustomerRec customerRec = new CustomerRec();
  359. customerRec.setCustomerName(appKey);
  360. customerRec.setCompanyNum(companyNum);
  361. CustomerRec customerRec1 = customerRecMapper.selectByCustomerNameAndCompanyNum(customerRec);
  362. if (null == customerRec1){
  363. result.setCode(200);
  364. result.setMsg("该企业编号在平台中不存在,请联系管理员核实!");
  365. return result;
  366. }
  367. TradeRequestVo tradeRequestVo = new TradeRequestVo();
  368. tradeRequestVo.setCustomerName(appKey);
  369. tradeRequestVo.setCompanyName(customerRec1.getCompanyName());
  370. tradeRequestVo.setStartTime(DateUtil.getDistanceHoursFormat(startExTime));
  371. tradeRequestVo.setEndTime(DateUtil.getDistanceHoursFormat(endExTime));
  372. tradeRequestVo.setEtcId(cardId);
  373. tradeRequestVo.setTradeStatus(tradeStatus);
  374. tradeRequestVo.setInterType(0);//0 接口
  375. if(tradeRequestVo.getTradeStatus() ==null){
  376. tradeRequestVo.setTradeStatus(1);
  377. RespR<List<CardTradeModel>> respRbefore = selfCarService.getTradeList(tradeRequestVo);
  378. tradeRequestVo.setTradeStatus(2);
  379. RespR<List<CardTradeModel>> respRUnder = selfCarService.getTradeList(tradeRequestVo);
  380. tradeRequestVo.setTradeStatus(3);
  381. RespR<List<CardTradeModel>> respRAfter = selfCarService.getTradeList(tradeRequestVo);
  382. //合并展示
  383. List<CardTradeModel> cardTradeModels = new ArrayList<>();
  384. if(respRbefore.getCode() == 0){
  385. cardTradeModels.addAll(respRbefore.getData());
  386. }
  387. if(respRUnder.getCode() == 0){
  388. cardTradeModels.addAll(respRUnder.getData());
  389. }
  390. if(respRAfter.getCode() == 0){
  391. cardTradeModels.addAll(respRAfter.getData());
  392. }
  393. result.setData(1);
  394. result.setCode(200);
  395. result.setMsg(cardTradeModels.toString());
  396. return result;
  397. }
  398. RespR rs = selfCarService.getTradeList(tradeRequestVo);
  399. long costtimeend = System.currentTimeMillis();
  400. log.info("[-SelfCarInterServiceImpl.getTradeList-] result is "
  401. + rs.toString() + ", request is " + data + " ,costtime="
  402. + (costtimeend - costtimestart));
  403. if(null != rs && rs.getCode() == 0){
  404. result.setData(1);
  405. result.setCode(200);
  406. result.setMsg(rs.getData().toString());
  407. return result;
  408. } else {
  409. result.setData(3);
  410. if("未查得".equals(rs.getMsg())){
  411. result.setData(2);
  412. }
  413. result.setCode(200);
  414. result.setMsg(rs.getMsg());
  415. return result;
  416. }
  417. } catch (Exception e) {
  418. log.error("[-SelfCarInterServiceImpl.getTradeList-] get httpclient exception is "
  419. + e + ", request is " + data);
  420. }
  421. return result;
  422. }
  423. /**
  424. * 自有车 交易查询接口 渠道通过此接口可以查询单张卡连续90天内的交易(待开票、开票中、已开票)
  425. * @param appKey
  426. * @param api
  427. * @param data
  428. * @return
  429. */
  430. @Override
  431. public DataResult applInvoice(String appKey, String api, String data,String requestid) {
  432. long costtimestart = System.currentTimeMillis();
  433. DataResult result = new DataResult();
  434. result.setData(3);
  435. result.setCode(200);
  436. result.setRequestid(requestid);
  437. result.setMsg("无法认证");
  438. try {
  439. log.info("[-SelfCarInterServiceImpl.applInvoice-] request appKey=" + appKey + " ,api=" + api + " ,data=" +data+ " ,requestid=" +requestid);
  440. JSONObject jsonObject = JSONObject.parseObject(data);
  441. String companyNum = jsonObject.getString("companyNum");//企业编号 必输
  442. String cardId = jsonObject.getString("cardId");//卡号 必输
  443. JSONArray tradeIdModel = jsonObject.getJSONArray("tradeIdModel");//交易ID集合 必输
  444. if(StringUtils.isEmpty(data)|| null == jsonObject || StringUtils.isEmpty(companyNum)
  445. || StringUtils.isEmpty(cardId)
  446. || null == tradeIdModel
  447. ){
  448. result.setCode(200);
  449. result.setMsg("必传参数有为空情况,请核实后再试");
  450. return result;
  451. }
  452. CustomerRec customerRec = new CustomerRec();
  453. customerRec.setCustomerName(appKey);
  454. customerRec.setCompanyNum(companyNum);
  455. CustomerRec customerRec1 = customerRecMapper.selectByCustomerNameAndCompanyNum(customerRec);
  456. if (null == customerRec1 ){
  457. result.setCode(200);
  458. result.setMsg("该企业编号在平台中不存在,请联系管理员核实!");
  459. return result;
  460. }
  461. InvoiceApplVo invoiceApplVo = new InvoiceApplVo();
  462. invoiceApplVo.setCustomerName(appKey);
  463. invoiceApplVo.setCompanyName(customerRec1.getCompanyName());
  464. invoiceApplVo.setCardId(cardId);
  465. invoiceApplVo.setInterType(0);//接口
  466. List<String> tradeIds = new ArrayList<String>();
  467. for(int i=0;i<tradeIdModel.size();i++) {
  468. JSONObject jb = tradeIdModel.getJSONObject(i);
  469. String tradeId = jb.getString("tradeId");//交易ID
  470. if(null == jb || StringUtils.isEmpty(tradeId)
  471. ){
  472. return result;
  473. }
  474. tradeIds.add(tradeId);
  475. }
  476. invoiceApplVo.setTradeIds(tradeIds);
  477. RespR rs = selfCarService.applInvoice(invoiceApplVo);
  478. long costtimeend = System.currentTimeMillis();
  479. log.info("[-SelfCarInterServiceImpl.applInvoice-] result is "
  480. + rs.toString() + ", request is " + data + " ,costtime="
  481. + (costtimeend - costtimestart));
  482. if(null != rs && rs.getCode() == 0){
  483. result.setData(1);
  484. result.setCode(200);
  485. result.setMsg(rs.getData().toString());
  486. return result;
  487. } else {
  488. result.setData(3);
  489. result.setCode(200);
  490. result.setMsg(rs.getMsg());
  491. return result;
  492. }
  493. } catch (Exception e) {
  494. log.error("[-SelfCarInterServiceImpl.applInvoice-] get httpclient exception is "
  495. + e + ", request is " + data);
  496. }
  497. return result;
  498. }
  499. @Override
  500. public DataResult getSelfCarInvoicesByAppl(String appKey, String api, String data, String requestid) {
  501. long costtimestart = System.currentTimeMillis();
  502. DataResult result = new DataResult();
  503. result.setData(3);
  504. result.setCode(200);
  505. result.setRequestid(requestid);
  506. result.setMsg("无法认证");
  507. try {
  508. log.info("[-SelfCarInterServiceImpl.getSelfCarInvoicesByAppl-] request appKey=" + appKey + " ,api=" + api + " ,data=" +data+ " ,requestid=" +requestid);
  509. JSONObject jsonObject = JSONObject.parseObject(data);
  510. String companyNum = jsonObject.getString("companyNum");//企业编号 必输
  511. String cardId = jsonObject.getString("cardId");//卡号 必输
  512. String applyId = jsonObject.getString("applyId");//申请id 必输
  513. if(StringUtils.isEmpty(data)|| null == jsonObject || StringUtils.isEmpty(companyNum)
  514. || StringUtils.isEmpty(cardId)
  515. || StringUtils.isEmpty(applyId)
  516. ){
  517. result.setCode(200);
  518. result.setMsg("必传参数有为空情况,请核实后再试");
  519. return result;
  520. }
  521. CustomerRec customerRec = new CustomerRec();
  522. customerRec.setCustomerName(appKey);
  523. customerRec.setCompanyNum(companyNum);
  524. CustomerRec customerRec1 = customerRecMapper.selectByCustomerNameAndCompanyNum(customerRec);
  525. if (null == customerRec1){
  526. result.setCode(200);
  527. result.setMsg("该企业编号在平台中不存在,请联系管理员核实!");
  528. return result;
  529. }
  530. ApplQueryInvVo applQueryInvVo = new ApplQueryInvVo();
  531. applQueryInvVo.setApplId(applyId);
  532. applQueryInvVo.setEtcNum(cardId);
  533. applQueryInvVo.setCompanyNum(companyNum);
  534. RespR rs = selfCarService.getSelfCarInvoicesByApplyIds(applQueryInvVo);
  535. long costtimeend = System.currentTimeMillis();
  536. log.info("[-SelfCarInterServiceImpl.getSelfCarInvoicesByAppl-] result is "
  537. + rs.toString() + ", request is " + data + " ,costtime="
  538. + (costtimeend - costtimestart));
  539. if(null != rs && rs.getCode() == 0){
  540. result.setData(1);
  541. result.setCode(200);
  542. result.setMsg(rs.getMsg());
  543. return result;
  544. } else {
  545. result.setData(3);
  546. if("未查得".equals(rs.getMsg())){
  547. result.setData(2);
  548. }
  549. result.setCode(200);
  550. result.setMsg(rs.getMsg());
  551. return result;
  552. }
  553. } catch (Exception e) {
  554. log.error("[-SelfCarInterServiceImpl.getSelfCarInvoicesByAppl-] get httpclient exception is "
  555. + e + ", request is " + data);
  556. }
  557. return result;
  558. }
  559. /**
  560. * 自有车 已开发票查询接口 渠道通过此接口可以根据该公司绑定的单张卡查询此卡在某个月开具的发票
  561. * @param appKey
  562. * @param api
  563. * @param data
  564. * @return
  565. */
  566. @Override
  567. public DataResult getSelfCarInvoicesByTime(String appKey, String api, String data,String requestid) {
  568. long costtimestart = System.currentTimeMillis();
  569. DataResult result = new DataResult();
  570. result.setData(3);
  571. result.setCode(200);
  572. result.setRequestid(requestid);
  573. result.setMsg("无法认证");
  574. try {
  575. log.info("[-SelfCarInterServiceImpl.getSelfCarInvoicesByTime-] request appKey=" + appKey + " ,api=" + api + " ,data=" +data+ " ,requestid=" +requestid);
  576. JSONObject jsonObject = JSONObject.parseObject(data);
  577. String companyNum = jsonObject.getString("companyNum");//企业编号 必输
  578. String cardId = jsonObject.getString("cardId");//卡号 必输
  579. String startInvoiceMakeTime = jsonObject.getString("startInvoiceMakeTime");//开始时间 必输
  580. String endInvoiceMakeTime = jsonObject.getString("endInvoiceMakeTime");//结束时间 必输
  581. if(StringUtils.isEmpty(data)|| null == jsonObject || StringUtils.isEmpty(companyNum)
  582. || StringUtils.isEmpty(cardId)
  583. || StringUtils.isEmpty(startInvoiceMakeTime)
  584. || StringUtils.isEmpty(endInvoiceMakeTime)
  585. ){
  586. result.setCode(200);
  587. result.setMsg("必传参数有为空情况,请核实后再试");
  588. return result;
  589. }
  590. CustomerRec customerRec = new CustomerRec();
  591. customerRec.setCustomerName(appKey);
  592. customerRec.setCompanyNum(companyNum);
  593. CustomerRec customerRec1 = customerRecMapper.selectByCustomerNameAndCompanyNum(customerRec);
  594. if (null == customerRec1){
  595. result.setCode(200);
  596. result.setMsg("该企业编号在平台中不存在,请联系管理员核实!");
  597. return result;
  598. }
  599. SelfCarDueQueryVo selfCarDueQueryVo = new SelfCarDueQueryVo();
  600. selfCarDueQueryVo.setCustomername(appKey);
  601. selfCarDueQueryVo.setCompanyName(customerRec1.getCompanyName());
  602. selfCarDueQueryVo.setCardId(cardId);
  603. selfCarDueQueryVo.setStartTime(startInvoiceMakeTime);
  604. selfCarDueQueryVo.setEndTime(endInvoiceMakeTime);
  605. RespR rs = selfCarService.getSelfCarInvoicesByTime(selfCarDueQueryVo,customerRec1);
  606. long costtimeend = System.currentTimeMillis();
  607. log.info("[-SelfCarInterServiceImpl.getSelfCarInvoicesByTime-] result is "
  608. + rs.toString() + ", request is " + data + " ,costtime="
  609. + (costtimeend - costtimestart));
  610. if(null != rs && rs.getCode() == 0){
  611. result.setData(1);
  612. result.setCode(200);
  613. result.setMsg(rs.getMsg());
  614. return result;
  615. } else {
  616. result.setData(3);
  617. if("未查得".equals(rs.getMsg())){
  618. result.setData(2);
  619. }
  620. result.setCode(200);
  621. result.setMsg(rs.getMsg());
  622. return result;
  623. }
  624. } catch (Exception e) {
  625. log.error("[-SelfCarInterServiceImpl.getSelfCarInvoicesByTime-] get httpclient exception is "
  626. + e + ", request is " + data);
  627. }
  628. return result;
  629. }
  630. /**
  631. * 自有车 发票下载 渠道通过此接口可以下载某公司某个月份开具的发票。
  632. * @param appKey
  633. * @param api
  634. * @param data
  635. * @return
  636. */
  637. @Override
  638. public DataResult getSelfCarInvoicePackage(String appKey, String api, String data,String requestid) {
  639. long costtimestart = System.currentTimeMillis();
  640. DataResult result = new DataResult();
  641. result.setData(3);
  642. result.setCode(200);
  643. result.setRequestid(requestid);
  644. result.setMsg("无法认证");
  645. try {
  646. log.info("[-SelfCarInterServiceImpl.getSelfCarInvoicePackage-] request appKey=" + appKey + " ,api=" + api + " ,data=" +data+ " ,requestid=" +requestid);
  647. JSONObject jsonObject = JSONObject.parseObject(data);
  648. String companyNum = jsonObject.getString("companyNum");//企业编号 必输
  649. String makeMonth = jsonObject.getString("makeMonth");//发票开具月份 必输
  650. if(StringUtils.isEmpty(data)|| null == jsonObject || StringUtils.isEmpty(companyNum)
  651. || StringUtils.isEmpty(makeMonth)
  652. ){
  653. result.setCode(200);
  654. result.setMsg("必传参数有为空情况,请核实后再试");
  655. return result;
  656. }
  657. CustomerRec customerRec = new CustomerRec();
  658. customerRec.setCustomerName(appKey);
  659. customerRec.setCompanyNum(companyNum);
  660. CustomerRec customerRec1 = customerRecMapper.selectByCustomerNameAndCompanyNum(customerRec);
  661. if (null == customerRec1){
  662. result.setCode(200);
  663. result.setMsg("该企业编号在平台中不存在,请联系管理员核实!");
  664. return result;
  665. }
  666. InvoicePackageVo invoicePackageVo = new InvoicePackageVo();
  667. invoicePackageVo.setCustomerName(appKey);
  668. invoicePackageVo.setCompanyName(customerRec1.getCompanyName());
  669. invoicePackageVo.setMonth(makeMonth);
  670. RespR rs = selfCarService.getInvoicePackge(invoicePackageVo);
  671. long costtimeend = System.currentTimeMillis();
  672. log.info("[-SelfCarInterServiceImpl.getSelfCarInvoicePackage-] result is "
  673. + rs.toString() + ", request is " + data + " ,costtime="
  674. + (costtimeend - costtimestart));
  675. if(null != rs && rs.getCode() == 0){
  676. result.setData(1);
  677. result.setCode(200);
  678. result.setMsg(rs.getData().toString());
  679. return result;
  680. } else {
  681. result.setData(3);
  682. if("未查得".equals(rs.getMsg())){
  683. result.setData(2);
  684. }
  685. result.setCode(200);
  686. result.setMsg(rs.getMsg());
  687. return result;
  688. }
  689. } catch (Exception e) {
  690. log.error("[-SelfCarInterServiceImpl.getSelfCarInvoicePackage-] get httpclient exception is "
  691. + e + ", request is " + data);
  692. }
  693. return result;
  694. }
  695. /**
  696. * 自有车 卡解绑接口
  697. * @param appKey
  698. * @param api
  699. * @param data
  700. * @return
  701. */
  702. @Override
  703. public DataResult customerCarUnRec(String appKey, String api, String data,String requestid) {
  704. long costtimestart = System.currentTimeMillis();
  705. DataResult result = new DataResult();
  706. result.setData(3);
  707. result.setCode(200);
  708. result.setRequestid(requestid);
  709. result.setMsg("无法认证");
  710. try {
  711. log.info("[-SelfCarInterServiceImpl.customerCarUnRec-] request appKey=" + appKey + " ,api=" + api + " ,data=" +data+ " ,requestid=" +requestid);
  712. JSONObject jsonObject = JSONObject.parseObject(data);
  713. String companyNum = jsonObject.getString("companyNum");//企业编号 必输
  714. String cardId = jsonObject.getString("cardId");//Etc卡号 必输
  715. if(StringUtils.isEmpty(data)|| null == jsonObject || StringUtils.isEmpty(companyNum)
  716. || StringUtils.isEmpty(cardId)
  717. ){
  718. return result;
  719. }
  720. CustomerRec customerRec = new CustomerRec();
  721. customerRec.setCustomerName(appKey);
  722. customerRec.setCompanyNum(companyNum);
  723. CustomerRec customerRec1 = customerRecMapper.selectByCustomerNameAndCompanyNum(customerRec);
  724. if (null == customerRec1){
  725. result.setMsg("该企业编号未注册企业!");
  726. return result;
  727. }
  728. List<CustomerCarRec> customerCarRecList = new ArrayList<CustomerCarRec>();
  729. CustomerCarRec customerCarRec = new CustomerCarRec();
  730. customerCarRec.setCustomerName(appKey);
  731. customerCarRec.setCompanyName(customerRec1.getCompanyName());
  732. customerCarRec.setEtcNum(cardId);
  733. customerCarRecList.add(customerCarRec);
  734. RespR rs = selfCarService.customerCarUnRec(customerCarRecList);
  735. long costtimeend = System.currentTimeMillis();
  736. log.info("[-SelfCarInterServiceImpl.customerCarUnRec-] result is "
  737. + rs.toString() + ", request is " + data + " ,costtime="
  738. + (costtimeend - costtimestart));
  739. if(null != rs && rs.getCode() == 0){
  740. result.setData(1);
  741. result.setCode(200);
  742. result.setMsg(rs.getData().toString());
  743. return result;
  744. } else {
  745. result.setData(3);
  746. result.setCode(200);
  747. result.setMsg(rs.getMsg());
  748. return result;
  749. }
  750. } catch (Exception e) {
  751. log.error("[-SelfCarInterServiceImpl.customerCarUnRec-] get httpclient exception is "
  752. + e + ", request is " + data);
  753. }
  754. return result;
  755. }
  756. @Override
  757. public DataResult customerCardChangeQuery(String appKey, String api, String data, String requestid) {
  758. long costtimestart = System.currentTimeMillis();
  759. DataResult result = new DataResult();
  760. result.setData(3);
  761. result.setCode(200);
  762. result.setRequestid(requestid);
  763. result.setMsg("无法认证");
  764. try {
  765. log.info("[-SelfCarInterServiceImpl.customerCarUnRec-] request appKey=" + appKey + " ,api=" + api + " ,data=" +data+ " ,requestid=" +requestid);
  766. CardChangeQueryDto cardChangeQueryDto = JSON.parseObject(data,CardChangeQueryDto.class);
  767. if(cardChangeQueryDto == null || StringUtils.isEmpty(cardChangeQueryDto.getCompanyNum())
  768. || StringUtils.isEmpty(cardChangeQueryDto.getApplyId()) || StringUtils.isEmpty(cardChangeQueryDto.getCardId()))
  769. {
  770. result.setMsg("必传参数不足");
  771. return result;
  772. }
  773. CustomerRec customerRec = new CustomerRec();
  774. customerRec.setCustomerName(appKey);
  775. customerRec.setCompanyNum(cardChangeQueryDto.getCompanyNum());
  776. CustomerRec customerRec1 = customerRecMapper.selectByCustomerNameAndCompanyNum(customerRec);
  777. if (null == customerRec1){
  778. result.setMsg("该企业编号未注册企业!");
  779. return result;
  780. }
  781. RespR rs = selfCarService.customerCardChangeQuery(cardChangeQueryDto);
  782. long costtimeend = System.currentTimeMillis();
  783. log.info("[-SelfCarInterServiceImpl.customerCarUnRec-] result is "
  784. + rs.toString() + ", request is " + data + " ,costtime="
  785. + (costtimeend - costtimestart));
  786. if(null != rs && rs.getCode() == 0){
  787. result.setData(1);
  788. result.setCode(200);
  789. result.setMsg(rs.getData().toString());
  790. return result;
  791. } else {
  792. result.setData(3);
  793. result.setCode(200);
  794. result.setMsg(rs==null?"结果为空":rs.getMsg());
  795. return result;
  796. }
  797. } catch (Exception e) {
  798. log.error("[-SelfCarInterServiceImpl.customerCarUnRec-] get httpclient exception is "
  799. + e + ", request is " + data);
  800. }
  801. return result;
  802. }
  803. @Override
  804. public DataResult customerCardChange(String appKey, String api, String data, String requestid) {
  805. long costtimestart = System.currentTimeMillis();
  806. DataResult result = new DataResult();
  807. result.setData(3);
  808. result.setCode(200);
  809. result.setRequestid(requestid);
  810. result.setMsg("无法认证");
  811. try {
  812. log.info("[-SelfCarInterServiceImpl.customerCarUnRec-] request appKey=" + appKey + " ,api=" + api + " ,data=" +data+ " ,requestid=" +requestid);
  813. CardChangeDto cardChangeDto = JSON.parseObject(data,CardChangeDto.class);
  814. if(cardChangeDto == null || StringUtils.isEmpty(cardChangeDto.getCompanyNum())
  815. || StringUtils.isEmpty(cardChangeDto.getTargetCompanyNum()) || cardChangeDto.getCardIdList()==null
  816. || cardChangeDto.getCardIdList().size()==0)
  817. {
  818. result.setMsg("必传参数不足");
  819. return result;
  820. }
  821. CustomerRec customerRec = new CustomerRec();
  822. customerRec.setCustomerName(appKey);
  823. customerRec.setCompanyNum(cardChangeDto.getCompanyNum());
  824. CustomerRec customerRec1 = customerRecMapper.selectByCustomerNameAndCompanyNum(customerRec);
  825. if (null == customerRec1){
  826. result.setMsg("该企业编号未注册企业!");
  827. return result;
  828. }
  829. cardChangeDto.setCompanyName(customerRec1.getCompanyName());
  830. cardChangeDto.setCustomerId(customerRec1.getCustomerName());
  831. RespR rs = selfCarService.customerCardChange(cardChangeDto);
  832. long costtimeend = System.currentTimeMillis();
  833. log.info("[-SelfCarInterServiceImpl.customerCarUnRec-] result is "
  834. + rs.toString() + ", request is " + data + " ,costtime="
  835. + (costtimeend - costtimestart));
  836. if(null != rs && rs.getCode() == 0){
  837. result.setData(1);
  838. result.setCode(200);
  839. result.setMsg(rs.getData().toString());
  840. return result;
  841. } else {
  842. result.setData(3);
  843. result.setCode(200);
  844. result.setMsg(rs.getMsg());
  845. return result;
  846. }
  847. } catch (Exception e) {
  848. log.error("[-SelfCarInterServiceImpl.customerCarUnRec-] get httpclient exception is "
  849. + e + ", request is " + data);
  850. }
  851. return result;
  852. }
  853. @Override
  854. public DataResult tradeApplyQuery(String appKey, String api, String data, String requestid) {
  855. long costtimestart = System.currentTimeMillis();
  856. DataResult result = new DataResult();
  857. result.setData(3);
  858. result.setCode(200);
  859. result.setRequestid(requestid);
  860. result.setMsg("无法认证");
  861. try {
  862. log.info("[-SelfCarInterServiceImpl.tradeApplyQuery-] request appKey=" + appKey + " ,api=" + api + " ,data=" +data+ " ,requestid=" +requestid);
  863. JSONObject jsonObject = JSONObject.parseObject(data);
  864. String companyNum = jsonObject.getString("companyNum");//企业编号 必输 不超过32个字符
  865. String cardId = jsonObject.getString("cardId");//卡号 必输 20位数字字符
  866. String tradeId = jsonObject.getString("tradeId");//交易ID 必输 字符串
  867. if(StringUtils.isEmpty(data)|| null == jsonObject || StringUtils.isEmpty(companyNum)
  868. || StringUtils.isEmpty(cardId)
  869. || StringUtils.isEmpty(tradeId)
  870. ){
  871. result.setCode(200);
  872. result.setMsg("必传参数有为空情况,请核实后再试");
  873. return result;
  874. }
  875. CustomerRec customerRec = new CustomerRec();
  876. customerRec.setCustomerName(appKey);
  877. customerRec.setCompanyNum(companyNum);
  878. CustomerRec customerRec1 = customerRecMapper.selectByCustomerNameAndCompanyNum(customerRec);
  879. if (null == customerRec1){
  880. result.setCode(200);
  881. result.setMsg("该企业编号在平台中不存在,请联系管理员核实!");
  882. return result;
  883. }
  884. TradeApplyQueryInvVo tradeApplyQueryInvVo = new TradeApplyQueryInvVo();
  885. tradeApplyQueryInvVo.setCompanyNum(companyNum);
  886. tradeApplyQueryInvVo.setCardId(cardId);
  887. tradeApplyQueryInvVo.setTradeId(tradeId);
  888. RespR rs = selfCarService.getApplyQueryByTradeId(tradeApplyQueryInvVo);
  889. long costtimeend = System.currentTimeMillis();
  890. log.info("[-SelfCarInterServiceImpl.tradeApplyQuery-] result is "
  891. + rs.toString() + ", request is " + data + " ,costtime="
  892. + (costtimeend - costtimestart));
  893. if(null != rs && rs.getCode() == 0){
  894. result.setData(1);
  895. result.setCode(200);
  896. result.setMsg(rs.getData().toString());
  897. return result;
  898. } else {
  899. result.setData(3);
  900. result.setCode(200);
  901. result.setMsg(rs.getMsg());
  902. return result;
  903. }
  904. } catch (Exception e) {
  905. log.error("[-SelfCarInterServiceImpl.tradeApplyQuery-] get httpclient exception is "
  906. + e + ", request is " + data);
  907. }
  908. return result;
  909. }
  910. }