SelfCarInterServiceImpl.java 45 KB

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