src/main/java/com/boying/controller/phone/YCPayController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/boying/entity/PayLog.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/boying/mapper/PayLogMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/boying/service/PayLogService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/boying/service/impl/PayLogServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/boying/controller/phone/YCPayController.java
@@ -49,6 +49,7 @@ @RequiredArgsConstructor public class YCPayController { private final OutParkService outParkService; private final PayLogService payLogService; private final ParkService parkService; private final OrderRecordService orderRecordService; private final TicketService ticketService; @@ -273,13 +274,15 @@ String respTxnTime = (String)map1.get("respTxnTime"); Map map2 = gson.fromJson(respData, Map.class); String qrCode = (String)map2.get("qrCode"); outPark.setCode2(respTxnSsn); outPark.setQrCode(qrCode); outPark.setPayTime(LocalDateTime.now()); outPark.setTxnOrderId(outPark.getId()+""+format); outPark.setTxnOrderTime(format); outPark.setRespTxnTime(respTxnTime); outParkService.updateById(outPark); 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"); @@ -372,12 +375,14 @@ resultMap.put("signType",signType); resultMap.put("package",package1); resultMap.put("paySign",paySign); outPark.setCode2(respTxnSsn); outPark.setPayTime(LocalDateTime.now()); outPark.setTxnOrderId(outPark.getId()+""+format); outPark.setTxnOrderTime(format); outPark.setRespTxnTime(respTxnTime); outParkService.updateById(outPark); 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"); @@ -435,19 +440,28 @@ if(respCode != null){ if(respCode.equals("0000")){ //交易成功,根据流水号查询出场记录 OutPark byPayCode = outParkService.findByPayCode(respTxnSsn); writeTxt2(byPayCode.getId()+"收到回执\n"); if(byPayCode == null){ return R.failed("未查询到订单"); PayLog payLog = payLogService.findByPayCode(respTxnSsn); if(payLog == null){ return R.failed("未查询到流水记录"); }else { updateOrderRecord((long)byPayCode.getId(),"03"); List<EnterPark> byCarNo = enterParkService.findByCarNo(byPayCode.getCarNo(),byPayCode.getParkId()); if(byCarNo.size()>0){ EnterPark enterPark = byCarNo.get(0); enterPark.setIsPay(1); enterParkService.updateById(enterPark); 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 { updateOrderRecord((long)byPayCode.getId(),"03"); List<EnterPark> 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,"回调成功"); } } return R.ok(null,"回调成功"); } }else if(respCode.equals("0002") || respCode.equals("0003") || respCode.equals("0003") || respCode.equals("0012")){ //交易成功,超时,未明,稍后发起查询 src/main/java/com/boying/entity/PayLog.java
New file @@ -0,0 +1,67 @@ package com.boying.entity; import com.baomidou.mybatisplus.annotation.TableName; import com.boying.common.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import javax.persistence.Entity; import java.time.LocalDateTime; /** * @author kdq * @version 1.0.0 * @ClassName PayLog.java * @Description TODO * @createTime 2023年12月12日 17:06:00 */ @Data @TableName("pay_log") @javax.persistence.Table(name = "pay_log") @Entity @org.hibernate.annotations.Table(appliesTo = "pay_log", comment = "支付日志表") @ApiModel(value = "支付日志表") public class PayLog extends BaseEntity<PayLog> { /** * 出场表id */ private Integer outParkId; /** * 流水号 */ private String code2; /** * 商户流水号 */ private String txnOrderId; /** * 商户交易时间 */ private String txnOrderTime; /** * 平台交易时间 */ private String respTxnTime; /** * 缴款码 */ private String payCode; private String qrCode; /** * 支付时间 */ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime payTime; } src/main/java/com/boying/mapper/PayLogMapper.java
New file @@ -0,0 +1,16 @@ package com.boying.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.boying.entity.PayLog; import org.apache.ibatis.annotations.Mapper; /** * @author kdq * @version 1.0.0 * @ClassName PayLogMapper.java * @Description TODO * @createTime 2023年12月12日 17:36:00 */ @Mapper public interface PayLogMapper extends BaseMapper<PayLog> { } src/main/java/com/boying/service/PayLogService.java
New file @@ -0,0 +1,19 @@ package com.boying.service; import com.baomidou.mybatisplus.extension.service.IService; import com.boying.entity.PayLog; import java.util.List; /** * @author kdq * @version 1.0.0 * @ClassName PayLogService.java * @Description TODO * @createTime 2023年12月12日 17:35:00 */ public interface PayLogService extends IService<PayLog> { PayLog findByPayCode(String payCode); } src/main/java/com/boying/service/impl/PayLogServiceImpl.java
New file @@ -0,0 +1,38 @@ package com.boying.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.boying.entity.OutPark; import com.boying.entity.PayLog; import com.boying.mapper.PayLogMapper; import com.boying.service.PayLogService; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import java.util.List; /** * @author kdq * @version 1.0.0 * @ClassName PayLogServiceImpl.java * @Description TODO * @createTime 2023年12月12日 17:35:00 */ @Service @AllArgsConstructor public class PayLogServiceImpl extends ServiceImpl<PayLogMapper, PayLog> implements PayLogService { @Override public PayLog findByPayCode(String payCode) { QueryWrapper<PayLog> wrapper = new QueryWrapper<>(); wrapper.lambda() .eq(PayLog::getCode2,payCode) .orderByDesc(PayLog::getCreateTime); List<PayLog> payLogs = list(wrapper); if(payLogs.size()>0){ return payLogs.get(0); }else{ return null; } } }