From ffa5f49a2bcb6311486d00777b3629538eb3e6f0 Mon Sep 17 00:00:00 2001
From: kongdeqiang <123456>
Date: 星期一, 18 三月 2024 17:28:19 +0800
Subject: [PATCH] 新增心跳缓存
---
src/main/java/com/boying/controller/phone/YCPayController.java | 85 ++++++++++++++++++++++++++++++------------
1 files changed, 60 insertions(+), 25 deletions(-)
diff --git a/src/main/java/com/boying/controller/phone/YCPayController.java b/src/main/java/com/boying/controller/phone/YCPayController.java
index 6d91a67..f5ec8c0 100644
--- a/src/main/java/com/boying/controller/phone/YCPayController.java
+++ b/src/main/java/com/boying/controller/phone/YCPayController.java
@@ -14,9 +14,11 @@
import com.boying.service.*;
import com.boying.util.DateUtilOther;
import com.boying.util.HTTPEntityUtil;
+import com.boying.util.RedisJsonUtil;
import com.google.gson.Gson;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@@ -36,6 +38,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.TimeUnit;
/**
* @author kdq
@@ -49,6 +52,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;
@@ -58,6 +62,9 @@
private final WhiteListService whiteListService;
private final EnterParkService enterParkService;
private final WXService wxService;
+ private final OutParkLogService outParkLogService;
+ private final RedisJsonUtil redisJsonUtil;
+
/**
* 鏌ヨ璁㈠崟鎺ュ彛
@@ -186,6 +193,9 @@
if(StringUtils.isNotBlank(outPark.getPayCode()) && outPark.getStatus() == 0){
String logs = sdf.format(new Date())+" 杞︾墝鍙蜂负锛�"+outPark.getCarNo()+",鐢宠缂磋垂2------銆媆n";
writeTxt(logs);
+ OutParkLog byOutPark = outParkLogService.getByOutPark(outPark.getCarNo(), outPark.getId());
+ byOutPark.setPayStartTime(LocalDateTime.now());
+ outParkLogService.saveOrUpdate(byOutPark);
return R.ok(null,"璺宠浆閭㈠彴閾惰鏀粯");
}else if(StringUtils.isNotBlank(outPark.getPayCode()) && outPark.getStatus() == 1){
return R.failed("宸茬即璐�");
@@ -203,6 +213,9 @@
}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);
}
}
}
@@ -273,13 +286,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 +387,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 +452,31 @@
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 {
+ OutParkLog byOutPark = outParkLogService.getByOutPark(byPayCode.getCarNo(), byPayCode.getId());
+ byOutPark.setPayEndTime(LocalDateTime.now());
+ outParkLogService.saveOrUpdate(byOutPark);
+ 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")){
//浜ゆ槗鎴愬姛锛岃秴鏃讹紝鏈槑锛岀◢鍚庡彂璧锋煡璇�
@@ -652,10 +681,16 @@
//鏇存柊鍑哄満
public void updateOutPark(Integer outParkId, String status){
OutPark outPark = outParkService.getById(outParkId);
- if(outPark!=null){
+ if(outPark!=null && outPark.getEnterTime() !=null){
if(status.equals("03")){
outPark.setStatus(1);
outParkService.saveOrUpdate(outPark);
+ //缂撳瓨鍦╮edis閲�
+ try {
+ redisJsonUtil.set("outPark-"+outPark.getBarrierId(), outPark);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
}
}
}
--
Gitblit v1.9.1