| | |
| | | import com.boying.common.SystemConfigProperties; |
| | | import com.boying.entity.*; |
| | | import com.boying.service.*; |
| | | import com.boying.util.DateUtilOther; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | 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.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * @author kdq |
| | |
| | | @RequiredArgsConstructor |
| | | public class YCPayController { |
| | | private final OutParkService outParkService; |
| | | 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; |
| | | |
| | | /** |
| | | * 查询订单接口 |
| | |
| | | */ |
| | | @GetMapping("/getByQueryId") |
| | | 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") |
| | | 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"); |
| | |
| | | updateOutPark(outPark.getId(),"03"); |
| | | return R.failed("本次停车无需支付费用!"); |
| | | }else{ |
| | | if(w.getParkId()!=null){ |
| | | if(w.getEndTime()!=null){ |
| | | if(w.getParkId().equals(outPark.getParkId())&&System.currentTimeMillis()<w.getEndTime().getTime()){ |
| | | updateOutPark(outPark.getId(),"03"); |
| | | return R.failed("本次停车无需支付费用!"); |
| | | if(StringUtils.isNotBlank(w.getParkIds())){ |
| | | if(w.getParkIds().contains(outPark.getParkId()+"")){ |
| | | if(w.getEndTime()!=null){ |
| | | if(System.currentTimeMillis()<w.getEndTime().getTime()){ |
| | | updateOutPark(outPark.getId(),"03"); |
| | | return R.failed("本次停车无需支付费用!"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | if(outPark.getStatus() == 0){ |
| | | return R.ok("跳转邮储支付", "https://hbfs.govpay.ccb.com/online/fssm?fee=130000000001&PyfScnCgycd=01&pyfTpcd=3&BNo="+outPark.getPayCode()); |
| | | }else if(outPark.getStatus() == 1){ |
| | | if(StringUtils.isNotBlank(outPark.getPayCode()) && outPark.getStatus() == 0){ |
| | | String logs = sdf.format(new Date())+" 车牌号为:"+outPark.getCarNo()+",申请缴费2------》\n"; |
| | | writeTxt(logs); |
| | | // "http://wxtest.smeia.cn/h5/static/router.html?rurl=router&router=psbc&appid=CUP16522400671¶ms={\"payMode\":\"B\",\"payItemNo\":\"41301106100124\",\"userNo\":"+id+"}" |
| | | return R.ok("跳转邮储支付","https://openpayment.psbc.com/h5/static/router.html?rurl=router&router=psbc&appid=CUP14094502391¶ms={\"payMode\":\"B\",\"payItemNo\":\"41304508000500\",\"userNo\":"+id+"}"); |
| | | // return R.ok("跳转邮储支付","http://wxtest.smeia.cn/h5/static/router.html?rurl=router&router=psbc&appid=CUP16522400671¶ms={\"payMode\":\"B\",\"payItemNo\":\"41301106100124\",\"userNo\":"+id+"}"); |
| | | }else if(StringUtils.isNotBlank(outPark.getPayCode()) && outPark.getStatus() == 1){ |
| | | return R.failed("已缴费"); |
| | | } |
| | | |
| | | if(StringUtils.isBlank(outPark.getPayCode())){ |
| | | String logs = sdf.format(new Date())+" 车牌号为:"+outPark.getCarNo()+",申请缴费------》\n"; |
| | | writeTxt(logs); |
| | | 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("系统异常"); |
| | | return R.failed("出错"); |
| | | } |
| | | } |
| | | |
| | |
| | | @GetMapping("/result") |
| | | 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"); |
| | | return R.ok(null,"请求成功"); |
| | | String logs = sdf.format(new Date())+" 车牌号为:"+byId.getCarNo()+",缴费成功------》\n"; |
| | | writeTxt(logs); |
| | | return R.ok(null,"回调成功"); |
| | | }else { |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss"); |
| | | String logs = sdf.format(new Date())+" 出场id为:"+queryId+",缴费失败------》\n"; |
| | | logs += "回执原因:"+msg+",\n"; |
| | | writeTxt(logs); |
| | | } |
| | | } |
| | | return R.ok(byId,"请求成功"); |
| | | return R.ok(byId,"回调成功"); |
| | | } |
| | | |
| | | /** |
| | | * 对账接口 |
| | | * @param checkDate,tranDate,fileName |
| | | * @param |
| | | * @return |
| | | */ |
| | | @GetMapping("/checkbill") |
| | | public Object checkbill(String checkDate,String tranDate,String fileName){ |
| | | @PostMapping ("/checkbill") |
| | | 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:\\Bank_PSBC_"+checkDate+".txt"; |
| | | String name = "E:\\ycCheckBill\\Bank_PSBC_"+checkDate+".txt"; |
| | | File file = new File(name); |
| | | Boolean aBoolean = judeFileExists(file); |
| | | if(aBoolean){ |
| | | return R.ok(); |
| | | return R.ok(null,"查询文件成功"); |
| | | }else { |
| | | return R.failed(null,"文件不存在"); |
| | | } |
| | |
| | | } |
| | | if(status.equals("03")){ |
| | | orderRecord.setStatus(1); |
| | | //测试环境,暂时把开票设置为2 |
| | | orderRecord.setTicketStatus(2); |
| | | } |
| | | if(status.equals("04")||status.equals("05")||status.equals("06")){ |
| | | orderRecord.setStatus(2); |
| | |
| | | } |
| | | } |
| | | |
| | | //插入停车订单记录 |
| | | 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()+""); |
| | | outParkService.updateById(outPark); |
| | | Park park = parkService.getById(outPark.getParkId()); |
| | | OrderRecord orderRecord = new OrderRecord(); |
| | | 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()); |
| | | } |
| | | List<EnterPark> byCarNo = enterParkService.findByCarNo(outPark.getCarNo(),outPark.getParkId()); |
| | | if(byCarNo.size() >0){ |
| | | EnterPark enterPark = byCarNo.get(0); |
| | | if(enterPark != null && enterPark.getImgId() != null){ |
| | | orderRecord.setImgInId(enterPark.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"); |
| | |
| | | System.out.println("打印错误"); |
| | | } |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | Path path = Paths.get("E:\\ycCheckBill\\Bank_PSBC_20350421.txt"); |
| | | try { |
| | | List<String> 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); |
| | | } |
| | | } |
| | | } |