| | |
| | | * @createTime 2022年11月22日 15:19:00 |
| | | */ |
| | | @RestController |
| | | @RequestMapping("ffPay") |
| | | @RequestMapping("ffzf/ffPay") |
| | | @RequiredArgsConstructor |
| | | public class PayController extends BaseController { |
| | | |
| | |
| | | private final SystemConfigProperties systemConfigProperties; |
| | | private final ParkService parkService; |
| | | private final WhiteListService whiteListService; |
| | | private final NowPayOrderService nowPayOrderService; |
| | | |
| | | static String payKey = "df937eda27cb4a59a12347966678e232"; |
| | | static String paySecret = "9e3b2f387b5b4232a9c782affc9c36ed"; |
| | |
| | | @PostMapping("result") |
| | | public String result(HttpServletRequest request, String payKey, String payerTypeCode, String payerNum, String payCode, Double amt, String status, String errorInfo, String sign, String signType) throws Exception{ |
| | | try { |
| | | updateOrderRecord(payCode,status); |
| | | // updateOrderRecord(payCode,status); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 获取执法id |
| | | */ |
| | | @PostMapping("getZhifaId") |
| | | public Object getZhifaId(){ |
| | | QueryWrapper<NowPayOrder> wrapper = new QueryWrapper<>(); |
| | | wrapper.lambda() |
| | | .eq(NowPayOrder::getType,0) |
| | | .orderByDesc(NowPayOrder::getCreateTime) |
| | | .last(" limit 1"); |
| | | NowPayOrder one = nowPayOrderService.getOne(wrapper); |
| | | if(one == null){ |
| | | return R.failed(null,"暂无缴费项目"); |
| | | }else { |
| | | return R.ok(ticketService.getById(one.getQueryId())); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 缴款书 |
| | | */ |
| | | @PostMapping("zhifa") |
| | | public Object zhifa(Long id){ |
| | | System.out.println(id+"开始缴费"); |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss"); |
| | | String logs = sdf.format(new Date())+"开始扫码缴费------》\n"; |
| | | logs += "罚单表id为:"+id+",\n"; |
| | | Ticket ticket = ticketService.getById(id); |
| | | if(ticket.getMoney()==0){ |
| | | updateTicket(ticket.getId(),"03"); |
| | | logs += "支付金额为0,\n"; |
| | | writeTxt(logs); |
| | | return R.failed("本罚单无需支付费用"); |
| | | } |
| | | if(StringUtils.isNotBlank(ticket.getPayCode()) && ticket.getPayStatus() == 0){ |
| | | return R.ok("生成电子罚单缴款码", "https://hbfs.govpay.ccb.com/online/fssm?fee=130000000001&PyfScnCgycd=01&pyfTpcd=3&BNo="+ticket.getPayCode()); |
| | | }else if(StringUtils.isNotBlank(ticket.getPayCode()) && ticket.getPayStatus() == 1){ |
| | | return R.failed("已缴费"); |
| | | } |
| | | if(StringUtils.isBlank(ticket.getPayCode())){ |
| | | return R.ok("生成电子罚单缴款码", getPayUrl2(ticket)); |
| | | }else { |
| | | return R.failed("出错"); |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 获取缴款码 |
| | | * @param ticket |
| | | * @return |
| | | */ |
| | | public String getPayUrl2(Ticket ticket){ |
| | | String urlIP = systemConfigProperties.getIp4(); |
| | | String applyetcketnum = systemConfigProperties.getAPPLYETCKETNUM(); |
| | | //申请缴款书,唯一码为出场id+时间戳 |
| | | String idStr = ticket.getId()+""; |
| | | String dateStr = DateUtil.currentSeconds()+""; |
| | | String l = idStr + dateStr; |
| | | SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd"); |
| | | String format = sdf2.format(new Date()); |
| | | List< ApplyTicket.detail> details = new ArrayList<>(); |
| | | ApplyTicket.detail detail = new ApplyTicket.detail(); |
| | | detail.setItemstandardtype(""); |
| | | detail.setAmount(1); |
| | | detail.setAmt(ticket.getMoney()); |
| | | detail.setIncitemcode("050114"); |
| | | detail.setMeasureunit(""); |
| | | details.add(detail); |
| | | |
| | | ApplyTicket applyTicket = new ApplyTicket(); |
| | | applyTicket.setBusinum(l); |
| | | applyTicket.setFilldate(format); |
| | | applyTicket.setPayer(ticket.getCarNo()); |
| | | applyTicket.setPayeraccount(""); |
| | | applyTicket.setPayerbank(""); |
| | | applyTicket.setPayerphonenumber("18888888888"); |
| | | applyTicket.setPayee("河北省财政厅"); |
| | | applyTicket.setAmt(ticket.getMoney()); |
| | | applyTicket.setMemo(""); |
| | | applyTicket.setOverdate(""); |
| | | applyTicket.setState(1); |
| | | applyTicket.setDetails(details); |
| | | String jsonStr = JSON.toJSONString(applyTicket, SerializerFeature.WriteDateUseDateFormat); |
| | | Map<String, Object> map = JSON.parseObject(jsonStr, new TypeReference<Map<String, Object>>() {}); |
| | | RestTemplate restTemplate = new RestTemplate(); |
| | | ResponseEntity<ReturnData> entity = restTemplate.postForEntity(urlIP+applyetcketnum, HTTPEntityUtil.setEntity(map), ReturnData.class); |
| | | if(entity.getBody().getCode() == 1){ |
| | | System.out.println("支付申请缴款码返回为:"+entity.getBody()); |
| | | Object o = entity.getBody().getData().get(0); |
| | | String s = JSON.toJSONString(o); |
| | | Map<String,Object> map1 = (Map)JSON.parse(s); |
| | | String payurl = (String)map1.get("payurl"); |
| | | String eticketnum = (String)map1.get("eticketnum"); |
| | | ticket.setPayCode(eticketnum); |
| | | ticket.setCode2(l); |
| | | ticketService.saveOrUpdate(ticket); |
| | | addOrderRecord2(ticket); |
| | | return payurl+eticketnum; |
| | | }else { |
| | | System.out.println("支付申请缴款码返回为:"+entity); |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | |
| | | |
| | | |
| | | //更新订单记录 |
| | | public void updateOrderRecord(String payCode,String status){ |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH_mm_ss"); |
| | | String s = sdf.format(new Date())+"更新订单记录:payCode===="+payCode+",status==="+status+",\n"; |
| | | public void updateOrderRecord(Integer queryId,String status){ |
| | | QueryWrapper<OrderRecord> wrapper = new QueryWrapper<>(); |
| | | wrapper.lambda() |
| | | .eq(OrderRecord::getPayCode,payCode) |
| | | .eq(OrderRecord::getQueryId,queryId) |
| | | .orderByDesc(OrderRecord::getCreateTime); |
| | | List<OrderRecord> all = orderRecordService.list(wrapper); |
| | | s += "查询到订单记录为:"+all.size()+"条,\n"; |
| | | if(all.size()>=1){ |
| | | OrderRecord orderRecord = all.get(0); |
| | | s += "查询到订单为:"+orderRecord.getId()+",\n"; |
| | | 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); |
| | |
| | | if(orderRecord.getType()==0){ |
| | | updateTicket(orderRecord.getQueryId(),status); |
| | | }else{ |
| | | s += "修改出场表:"+orderRecord.getQueryId()+",status==="+status+",\n"; |
| | | writeTxt(s); |
| | | updateOutPark(orderRecord.getQueryId(),status); |
| | | } |
| | | } |
| | | writeTxt(s); |
| | | } |
| | | |
| | | //更新罚单的状态 |
| | |
| | | orderRecord.setAddress(ticket.getAddress()); |
| | | orderRecord.setCarNo(ticket.getCarNo()); |
| | | orderRecord.setCode(ticket.getCode()); |
| | | orderRecord.setCode2(ticket.getCode2()); |
| | | orderRecord.setMoney(ticket.getMoney()); |
| | | orderRecord.setQueryId(ticket.getId()); |
| | | orderRecord.setType(0); |
| | | orderRecord.setTicketStatus(2); |
| | | orderRecord.setPayCode(ticket.getPayCode()); |
| | | orderRecordService.saveOrUpdate(orderRecord); |
| | | } |