package com.boying.controller.phone; import cn.hutool.http.Header; import cn.hutool.http.HttpRequest; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.boying.common.R; import com.boying.common.ReturnData; import com.boying.common.SystemConfigProperties; import com.boying.entity.*; import com.boying.service.*; import com.boying.util.DateUtilOther; import com.google.gson.Gson; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.Files; import java.text.SimpleDateFormat; import java.time.Duration; import java.time.LocalDateTime; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @author kdq * @version 1.0.0 * @ClassName YCPayController.java * @Description 邮储对接支付接口 * @createTime 2023年03月07日 08:22:00 */ @RestController @RequestMapping("/ffzf/api") @RequiredArgsConstructor @Tag(description = "ffzf/api" , name = "邮储/邢台银行 对接支付接口" ) public class YCPayController { private final OutParkService outParkService; private final PayLogService payLogService; private final ParkService parkService; private final OrderRecordService orderRecordService; private final TicketService ticketService; private final TicketBlackService ticketBlackService; private final SystemConfigProperties systemConfigProperties; private final WhiteListService whiteListService; private final EnterParkService enterParkService; private final WXService wxService; private final OutParkLogService outParkLogService; private final StringRedisTemplate redisTemplate; /** * 查询订单接口 * @param queryId * @return */ @GetMapping("/getByQueryId") @Operation(summary = "根据出场id获取出场数据" , description = "根据出场id获取出场数据" ) public Object getByQueryId(Long queryId){ if(queryId == null){ return R.failed("参数为空"); } OutPark byId = outParkService.getById(queryId); if(byId.getTime() > 0){ byId.setTimeStr(DateUtilOther.millisToDayHrMinSec(new Double(byId.getTime()).longValue())); } return R.ok(byId,"请求成功"); } /** * 缴款书 */ @PostMapping("park") @Operation(summary = "邮储申请缴款书" , description = "邮储申请缴款书" ) public Object park(Long id){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss"); OutPark outPark = outParkService.getById(id); if(outPark.getPrice()==0){ updateOutPark(outPark.getId(),"03"); return R.failed("本次停车无需支付费用"); } //判断是否在白名单 QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda() .eq(WhiteList::getCarNo,outPark.getCarNo()); List all = whiteListService.list(wrapper); for(WhiteList w : all){ if(w.getType()==0){ updateOutPark(outPark.getId(),"03"); return R.failed("本次停车无需支付费用!"); }else{ if(StringUtils.isNotBlank(w.getParkIds())){ if(w.getParkIds().contains(outPark.getParkId()+"")){ if(w.getEndTime()!=null){ if(System.currentTimeMillis() byCarNo = enterParkService.findByCarNo(outPark.getCarNo(),outPark.getParkId()); if(byCarNo.size()>0){ EnterPark enterPark = byCarNo.get(0); if(enterPark != null && enterPark.getIsPay() == 1){ if(outPark.getPrice()==enterPark.getPrice()){ return R.failed("已缴费"); }else { outPark.setPrice(outPark.getPrice()-enterPark.getPrice()); outParkService.updateById(outPark); } } } addOrderRecord(outPark); return R.ok("跳转邮储支付","https://openpayment.psbc.com/h5/static/router.html?rurl=router&router=psbc&appid=CUP14094502391¶ms={\"payMode\":\"B\",\"payItemNo\":\"41304508000500\",\"userNo\":"+id+"}"); }else { return R.failed("出错"); } } /** * 判断支付端是否已经支付过 * @param id * @return */ @PostMapping("parkJudg") @Operation(summary = "判断支付端是否已经申请过支付" , description = "判断支付端是否已经申请过支付" ) public Object parkJudg(Long id){ if(id == null){ return R.failed("未找到数据,请稍后重新点击"); } OutPark outPark = outParkService.getById(id); if(outPark == null){ return R.failed("未找到数据,请稍后重新点击"); } if(StringUtils.isNotBlank(outPark.getPayCode()) && outPark.getStatus() == 0){ return R.ok(1,"订单已提交支付请求"); } if(StringUtils.isNotBlank(outPark.getPayCode()) && outPark.getStatus() == 1){ return R.failed(0,"订单已缴费"); } if(StringUtils.isBlank(outPark.getPayCode())){ OutPark by10min = outParkService.findBy10min(outPark.getCarNo(), outPark.getParkId(), outPark.getCreateTime(),outPark.getId()); if(by10min !=null){ return R.ok(1,"订单已提交支付请求"); }else { return R.ok(0,"请提交支付"); } } return R.failed(0,"请提交支付"); } /** * 判断是否缴费 */ @PostMapping("parkXT") @Operation(summary = "邢台银行申请缴费" , description = "邢台银行申请缴费" ) public Object parkXT(Long id){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss"); OutPark outPark = outParkService.getById(id); System.out.println("id:"+id); if(id == null){ return R.failed("未找到数据,请稍后重新点击"); } if(outPark.getPrice()==0){ updateOutPark(outPark.getId(),"03"); return R.failed("本次停车无需支付费用"); } //判断是否在白名单 QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda() .eq(WhiteList::getCarNo,outPark.getCarNo()); List all = whiteListService.list(wrapper); for(WhiteList w : all){ if(w.getType()==0){ updateOutPark(outPark.getId(),"03"); return R.failed("本次停车无需支付费用!"); }else{ if(StringUtils.isNotBlank(w.getParkIds())){ if(w.getParkIds().contains(outPark.getParkId()+"")){ if(w.getEndTime()!=null){ if(System.currentTimeMillis() byCarNo = enterParkService.findByCarNo(outPark.getCarNo(),outPark.getParkId()); if(byCarNo.size()>0){ EnterPark enterPark = byCarNo.get(0); if(enterPark != null && enterPark.getIsPay() == 1){ if(outPark.getPrice()==enterPark.getPrice()){ return R.failed("已缴费"); }else { outPark.setPrice(outPark.getPrice()-enterPark.getPrice()); outParkService.updateById(outPark); OutParkLog byOutPark = outParkLogService.getByOutPark(outPark.getCarNo(), outPark.getId()); byOutPark.setPayStartTime(LocalDateTime.now()); outParkLogService.saveOrUpdate(byOutPark); } } } addOrderRecord(outPark); return R.ok(null,"跳转邢台银行支付"); }else { return R.failed("出错"); } } /** * 阿里缴费 */ @PostMapping("payByAli") @Operation(summary = "邢台银行支付宝缴费" , description = "邢台银行支付宝缴费" ) public Object payByAli(Long id){ OutPark outPark = outParkService.getById(id); String xtyhpay = systemConfigProperties.getXTYHPAY(); LocalDateTime date3 = LocalDateTime.now(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); String format = sdf.format(new Date()); Map map = new HashMap<>(); map.put("encoding","UTF-8"); map.put("signMethod","01"); map.put("sdkAppId",systemConfigProperties.getXTYHMERID()); map.put("txnType","1007"); map.put("txnSubType","100702"); map.put("txnAccType","03"); map.put("aesWay","01"); map.put("merId",systemConfigProperties.getXTYHMERID()); map.put("merName",systemConfigProperties.getXTYHMERNAME()); map.put("backEndUrl",systemConfigProperties.getXTYHRESULT()); map.put("txnOrderId",outPark.getId()+""+format); map.put("txnOrderTime",format); map.put("txnOrderBody",outPark.getCarNo()+"泊车缴费"); map.put("txnAmt",Math.round(outPark.getPrice() * 100)+""); map.put("txnCcyType","156"); if(outPark.getPayTime() != null){ LocalDateTime date4 = outPark.getPayTime(); Duration duration = Duration.between(date3, date4); long l = duration.toMinutes(); if(l<3){ map.put("preTxnSsn",outPark.getCode2()); } } Map stringStringMap = wxService.addSign(map); map.put("certId",stringStringMap.get("certId")); map.put("signAture",stringStringMap.get("signAture")); Gson gson =new Gson(); String str = gson.toJson(map); System.out.println("请求报文:"+str); writeTxt2(outPark.getId()+"ALipay请求: "+str); String body = HttpRequest.post(xtyhpay) .header(Header.CONTENT_TYPE, "application/json") .body(str) .timeout(15000) .execute() .body(); System.out.println(outPark.getId()+"响应报文:"+body); writeTxt2(outPark.getId()+"ALipay响应: "+body); JSONObject map1 = JSON.parseObject(body); String respCode = (String)map1.get("respCode"); if(respCode.equals("0000")){ String respTxnSsn = (String)map1.get("respTxnSsn"); String respData = (String)map1.get("respData"); String respTxnTime = (String)map1.get("respTxnTime"); Map map2 = gson.fromJson(respData, Map.class); String qrCode = (String)map2.get("qrCode"); PayLog payLog = new PayLog(); payLog.setOutParkId(outPark.getId()); payLog.setCode2(respTxnSsn); payLog.setQrCode(qrCode); payLog.setPayTime(LocalDateTime.now()); payLog.setTxnOrderId(outPark.getId()+""+format); payLog.setTxnOrderTime(format); payLog.setRespTxnTime(respTxnTime); payLogService.save(payLog); return R.ok(null,qrCode); } String respMsg = (String)map1.get("respMsg"); return R.failed(respCode+":"+respMsg); } /** * 获取微信openid */ @PostMapping("getOpenId") @Operation(summary = "邢台银行获取微信用户openid" , description = "邢台银行获取微信用户openid" ) public Object park(Long id,String code){ OutPark outPark = outParkService.getById(id); String openIdByCode = wxService.getOpenIdByCode(code); writeTxt2(outPark.getId()+"获取openid为:"+openIdByCode); return payByWX(id,openIdByCode); } /** * 微信缴费 */ @PostMapping("payByWX") @Operation(summary = "邢台银行微信支付" , description = "邢台银行微信支付" ) public Object payByWX(Long id,String openId){ System.out.println("开始支付"); OutPark outPark = outParkService.getById(id); String xtyhpay = systemConfigProperties.getXTYHPAY(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); String format = sdf.format(new Date()); LocalDateTime date3 = LocalDateTime.now(); Map map = new HashMap<>(); map.put("encoding","UTF-8"); map.put("signMethod","01"); map.put("sdkAppId",systemConfigProperties.getXTYHMERID()); map.put("txnType","1006"); map.put("txnSubType","100603"); map.put("txnAccType","02"); map.put("secMerAppId",systemConfigProperties.getXTYHAPPID()); map.put("txnSubOpenid",openId); map.put("txnProductId",outPark.getId()+""); map.put("aesWay","01"); map.put("merId",systemConfigProperties.getXTYHMERID()); map.put("merName",systemConfigProperties.getXTYHMERNAME()); map.put("backEndUrl",systemConfigProperties.getXTYHRESULT()); map.put("txnOrderId",outPark.getId()+""+format); map.put("txnOrderTime",format); map.put("txnOrderBody",outPark.getCarNo()+"泊车缴费"); map.put("txnAmt",Math.round(outPark.getPrice() * 100)+""); map.put("txnCcyType","156"); if(outPark.getPayTime() != null){ LocalDateTime date4 = outPark.getPayTime(); Duration duration = Duration.between(date3, date4); long l = duration.toMinutes(); if(l<3){ map.put("preTxnSsn",outPark.getCode2()); } } Map stringStringMap = wxService.addSign(map); map.put("certId",stringStringMap.get("certId")); map.put("signAture",stringStringMap.get("signAture")); Gson gson =new Gson(); String str = gson.toJson(map); System.out.println("请求报文:"+str); writeTxt2(outPark.getId()+"WXpay请求: "+str); String body = HttpRequest.post(xtyhpay) .header(Header.CONTENT_TYPE, "application/json") .body(str) .timeout(15000) .execute() .body(); System.out.println(outPark.getId()+"响应报文:"+body); writeTxt2(outPark.getId()+"WXpay响应: "+body); JSONObject map1 = JSON.parseObject(body); String respCode = (String)map1.get("respCode"); if(respCode.equals("0000")){ String respTxnSsn = (String)map1.get("respTxnSsn"); String respTxnTime = (String)map1.get("respTxnTime"); String respData = (String)map1.get("respData"); Map map2 = gson.fromJson(respData, Map.class); String appId = (String)map2.get("appId"); String timeStamp = (String)map2.get("timeStamp"); String nonceStr = (String)map2.get("nonceStr"); String signType = (String)map2.get("signType"); String package1 = (String)map2.get("package"); String paySign = (String)map2.get("paySign"); Map resultMap = new HashMap<>(); resultMap.put("appId",appId); resultMap.put("timeStamp",timeStamp); resultMap.put("nonceStr",nonceStr); resultMap.put("signType",signType); resultMap.put("package",package1); resultMap.put("paySign",paySign); PayLog payLog = new PayLog(); payLog.setOutParkId(outPark.getId()); payLog.setCode2(respTxnSsn); payLog.setPayTime(LocalDateTime.now()); payLog.setTxnOrderId(outPark.getId()+""+format); payLog.setTxnOrderTime(format); payLog.setRespTxnTime(respTxnTime); payLogService.save(payLog); return R.ok(resultMap,null); } String respMsg = (String)map1.get("respMsg"); return R.failed(respCode+":"+respMsg); } /** * 支付回调接口 * @param queryId * @return */ @GetMapping("/result") @Operation(summary = "邮储获得支付回调" , description = "邮储获得支付回调" ) public Object result(Long queryId,int success,int msg){ OutPark byId = outParkService.getById(queryId); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss"); if(byId == null){ return R.failed("未查询到订单"); }else { //修改订单状态 0成功 if(success==0){ updateOrderRecord(queryId,"03"); String logs = sdf.format(new Date())+" 车牌号为:"+byId.getCarNo()+",缴费成功------》\n"; writeTxt(logs); List byCarNo = enterParkService.findByCarNo(byId.getCarNo(),byId.getParkId()); if(byCarNo.size()>0){ EnterPark enterPark = byCarNo.get(0); enterPark.setIsPay(1); enterParkService.updateById(enterPark); } return R.ok(null,"回调成功"); }else { String logs = sdf.format(new Date())+" 出场id为:"+queryId+",缴费失败------》\n"; logs += "回执原因:"+msg+",\n"; writeTxt(logs); } } return R.ok(byId,"回调成功"); } /** * 邢台银行支付回调接口 * @param * @return */ @PostMapping("/getResult") @Operation(summary = "邢台银行支付回调接口" , description = "邢台银行支付回调接口" ) public Object getResult(HttpServletRequest request){ System.out.println("getResult收到访问"); String respCode = request.getParameter("respCode"); String respTxnSsn = request.getParameter("respTxnSsn"); // String respCode = map.get("respCode"); // String respTxnSsn = map.get("respTxnSsn"); System.out.println(respCode+":"+respTxnSsn); if(respCode != null){ if(respCode.equals("0000")){ //交易成功,根据流水号查询出场记录 PayLog payLog = payLogService.findByPayCode(respTxnSsn); if(payLog == null){ return R.failed("未查询到流水记录"); }else { OutPark byPayCode = outParkService.getById(payLog.getOutParkId()); writeTxt2(byPayCode.getId()+"收到回执\n"); if(byPayCode == null){ return R.failed("未查询到订单"); }else { if(byPayCode.getStatus() == 1){ return R.ok(null,"订单已支付"); }else { OutParkLog byOutPark = outParkLogService.getByOutPark(byPayCode.getCarNo(), byPayCode.getId()); byOutPark.setPayEndTime(LocalDateTime.now()); outParkLogService.saveOrUpdate(byOutPark); updateOrderRecord((long)byPayCode.getId(),"03"); List byCarNo = enterParkService.findByCarNo(byPayCode.getCarNo(),byPayCode.getParkId()); if(byCarNo.size()>0){ EnterPark enterPark = byCarNo.get(0); enterPark.setIsPay(1); enterParkService.updateById(enterPark); } return R.ok(null,"回调成功"); } } } }else if(respCode.equals("0002") || respCode.equals("0003") || respCode.equals("0003") || respCode.equals("0012")){ //交易成功,超时,未明,稍后发起查询 }else if(respCode.equals("0011")){ //交易 } }else { return R.failed("未接收到入参"); } return R.failed(null,"请求失败"); } /** * 对账接口 * @param * @return */ @PostMapping ("/checkbill") @Operation(summary = "邮储对账接口" , description = "邮储对账接口" ) public Object checkbill(@RequestBody Map params){ String checkDate = (String) params.get("checkDate"); String tranDate = (String) params.get("tranDate"); String fileName = (String) params.get("fileName"); checkDate=checkDate.replaceAll("-",""); String name = "E:\\ycCheckBill\\Bank_PSBC_"+checkDate+".txt"; File file = new File(name); Boolean aBoolean = judeFileExists(file); if(aBoolean){ return R.ok(null,"查询文件成功"); }else { return R.failed(null,"文件不存在"); } } /** * 邢台银行对账接口 * @param * @return */ @PostMapping ("/checkbillXTYH") @Operation(summary = "邢台银行对账接口" , description = "邢台银行对账接口" ) public Object checkbillXTYH(String date){ String xtyhpay = systemConfigProperties.getXTYHPAY(); Map map = new HashMap<>(); map.put("encoding","UTF-8"); map.put("signMethod","01"); map.put("txnType","4001"); map.put("txnSubType","400102"); map.put("billType","00"); map.put("billDate",date); map.put("merId","8202309110000001"); Map stringStringMap = wxService.addSign(map); map.put("certId",stringStringMap.get("certId")); map.put("signAture",stringStringMap.get("signAture")); Gson gson =new Gson(); String str = gson.toJson(map); System.out.println("请求报文:"+str); writeTxt2(date+"对账请求: "+str); String body = HttpRequest.post(xtyhpay) .header(Header.CONTENT_TYPE, "application/json") .body(str) .timeout(15000) .execute() .body(); writeTxt2(date+"对账响应: "+body); JSONObject map1 = JSON.parseObject(body); String respCode = (String)map1.get("respCode"); if(respCode.equals("0000")){ String billDownloadUrl = (String)map1.get("billDownloadUrl"); String respData = (String)map1.get("respData"); return R.ok(null,billDownloadUrl); } String respMsg = (String)map1.get("respMsg"); return R.failed(respCode+":"+respMsg); } /** * 交易状态查询 * @param * @return */ @PostMapping ("/searchPayStatus") @Operation(summary = "交易状态查询" , description = "交易状态查询" ) public Object searchPayStatus(String txnOrderId,String txnOrderTime){ OutPark outPark = outParkService.findByOrderId(txnOrderId); if(outPark == null){ return R.failed("未找到该订单"); } String xtyhpay = systemConfigProperties.getXTYHPAY(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); Map map = new HashMap<>(); map.put("encoding","UTF-8"); map.put("signMethod","01"); map.put("sdkAppId","8202309110000001"); map.put("txnType","1009"); map.put("txnSubType","100900"); map.put("merId","8202309110000001"); map.put("origTxnOrderId",txnOrderId); map.put("origTxnOrderTime",txnOrderTime); Map stringStringMap = wxService.addSign(map); map.put("certId",stringStringMap.get("certId")); map.put("signAture",stringStringMap.get("signAture")); Gson gson =new Gson(); String str = gson.toJson(map); System.out.println("请求报文:"+str); writeTxt2(txnOrderId+"状态查询请求: "+str); String body = HttpRequest.post(xtyhpay) .header(Header.CONTENT_TYPE, "application/json") .body(str) .timeout(15000) .execute() .body(); System.out.println(txnOrderId+"状态查询响应报文:"+body); writeTxt2(txnOrderId+"状态查询响应: "+body); JSONObject map1 = JSON.parseObject(body); String respCode = (String)map1.get("respCode"); if(respCode.equals("0000")){ result((long)outPark.getId(),0,0); return R.ok(null,"查询成功"); } String respMsg = (String)map1.get("respMsg"); return R.failed(respCode+":"+respMsg); } //更新订单记录 public void updateOrderRecord(Long queryId,String status){ QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda() .eq(OrderRecord::getQueryId,queryId) .orderByDesc(OrderRecord::getCreateTime); List all = orderRecordService.list(wrapper); if(all.size()>=1){ OrderRecord orderRecord = all.get(0); if(status.equals("01")){ orderRecord.setStatus(0); } if(status.equals("03")){ orderRecord.setStatus(1); //测试环境,暂时把开票设置为2 orderRecord.setTicketStatus(2); } if(status.equals("04")||status.equals("05")||status.equals("06")){ orderRecord.setStatus(2); } orderRecordService.saveOrUpdate(orderRecord); if(orderRecord.getType()==0){ updateTicket(orderRecord.getQueryId(),status); }else{ updateOutPark(orderRecord.getQueryId(),status); } } } //更新罚单的状态 public void updateTicket(Integer ticketId,String status){ Ticket ticket = ticketService.getById(ticketId); if(ticket!=null){ if(status.equals("01")){ ticket.setPayStatus(0); } if(status.equals("03")){ ticket.setPayStatus(1); dealCar(ticket.getCarNo()); } if(status.equals("04")||status.equals("05")||status.equals("06")){ ticket.setPayStatus(2); } ticketService.saveOrUpdate(ticket); } } //更新罚单缴费状态 private void dealCar(String carNo){ QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda() .eq(Ticket::getCarNo,carNo) .eq(Ticket::getPayStatus,1); List tickets = ticketService.list(wrapper); if(tickets.size()==0){ //更新缴费状态 QueryWrapper wrapper1 = new QueryWrapper<>(); wrapper1.lambda() .eq(TicketBlack::getCarNo,carNo); List all = ticketBlackService.list(wrapper1); for(TicketBlack ticketBlack:all){ ticketBlack.setStatus(1); ticketBlack.setBlackType(0); ticketBlackService.saveOrUpdate(ticketBlack); } } } //更新出场 public void updateOutPark(Integer outParkId, String status){ OutPark outPark = outParkService.getById(outParkId); if(outPark!=null && outPark.getEnterTime() !=null){ if(status.equals("03")){ outPark.setStatus(1); outParkService.saveOrUpdate(outPark); //缓存在redis里 String jsonValue = JSON.toJSONString(outPark); redisTemplate.opsForValue().set("outPark-"+outPark.getBarrierId(), jsonValue); } } } //判断文件是否存在 public Boolean judeFileExists(File file){ if(file.exists()){ return true; }else { return false; } } //插入停车订单记录 public void addOrderRecord(OutPark outPark){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss"); String logs = sdf.format(new Date())+" 车牌号为:"+outPark.getCarNo()+",创建订单------》\n"; writeTxt(logs); outPark.setPayCode(outPark.getId()+""); List byCarNo = enterParkService.findByCarNo(outPark.getCarNo(),outPark.getParkId()); outParkService.updateById(outPark); Park park = parkService.getById(outPark.getParkId()); OrderRecord orderRecord = new OrderRecord(); if(byCarNo.size() >0){ EnterPark enterPark = byCarNo.get(0); if(enterPark != null && enterPark.getImgId() != null){ orderRecord.setImgInId(enterPark.getImgId()); } } orderRecord.setAddress(park.getName()); orderRecord.setCarNo(outPark.getCarNo()); orderRecord.setCode(outPark.getCode()); orderRecord.setCode2(outPark.getCode2()); orderRecord.setMoney(outPark.getPrice()); orderRecord.setQueryId(outPark.getId()); orderRecord.setType(1); orderRecord.setTicketStatus(0); orderRecord.setPayCode(outPark.getPayCode()); if(outPark.getImgId() != null){ orderRecord.setImgOutId(outPark.getImgId()); } orderRecordService.saveOrUpdate(orderRecord); } //插入执法订单记录 public void addOrderRecord2(Ticket ticket){ OrderRecord orderRecord = new OrderRecord(); orderRecord.setAddress(ticket.getAddress()); orderRecord.setCarNo(ticket.getCarNo()); orderRecord.setCode(ticket.getCode()); orderRecord.setMoney(ticket.getMoney()); orderRecord.setQueryId(ticket.getId()); orderRecord.setType(0); orderRecord.setPayCode(ticket.getPayCode()); orderRecordService.saveOrUpdate(orderRecord); } private void writeTxt( String txt) { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); try { FileWriter f = new FileWriter(systemConfigProperties.getLogPath()+"支付日志"+sdf.format(new Date())+".txt",true); BufferedWriter bw=new BufferedWriter(f); bw.write(txt); bw.newLine(); bw.close(); } catch(Exception e) { System.out.println("打印错误"); } } private void writeTxt2( String txt) { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); try { FileWriter f = new FileWriter(systemConfigProperties.getLogPath()+"邢台银行支付日志"+sdf.format(new Date())+".txt",true); BufferedWriter bw=new BufferedWriter(f); bw.write(txt); bw.newLine(); bw.close(); } catch(Exception e) { System.out.println("打印错误"); } } public static void main(String[] args) { Path path = Paths.get("E:\\ycCheckBill\\Bank_PSBC_20350421.txt"); try { List lines = Files.readAllLines(path); String s = lines.get(0); String[] split = s.split("\\|"); for (String line : lines) { System.out.println(line); } } catch (IOException e) { throw new RuntimeException(e); } } }