SelfCarInterServiceImpl.java 45 KB

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