From 973f7a2b420dddb06553489d72d4aa6fdea3c1c0 Mon Sep 17 00:00:00 2001
From: kongdeqiang <kongdeqiang960204@163.com>
Date: 星期三, 05 八月 2026 15:17:22 +0800
Subject: [PATCH] fix:提交

---
 src/main/java/com/boying/controller/phone/YCPayController.java |   60 ++++++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 44 insertions(+), 16 deletions(-)

diff --git a/src/main/java/com/boying/controller/phone/YCPayController.java b/src/main/java/com/boying/controller/phone/YCPayController.java
index 9f54dde..c6e6dd3 100644
--- a/src/main/java/com/boying/controller/phone/YCPayController.java
+++ b/src/main/java/com/boying/controller/phone/YCPayController.java
@@ -13,8 +13,7 @@
 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;
@@ -36,6 +35,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.TimeUnit;
 
 
 /**
@@ -48,7 +48,6 @@
 @RestController
 @RequestMapping("/ffzf/api")
 @RequiredArgsConstructor
-@Tag(description = "ffzf/api" , name = "閭偍/閭㈠彴閾惰 瀵规帴鏀粯鎺ュ彛" )
 public class YCPayController {
     private final OutParkService outParkService;
     private final PayLogService payLogService;
@@ -71,7 +70,6 @@
      * @return
      */
     @GetMapping("/getByQueryId")
-    @Operation(summary = "鏍规嵁鍑哄満id鑾峰彇鍑哄満鏁版嵁" , description = "鏍规嵁鍑哄満id鑾峰彇鍑哄満鏁版嵁" )
     public Object getByQueryId(Long queryId){
         if(queryId == null){
             return R.failed("鍙傛暟涓虹┖");
@@ -87,7 +85,6 @@
      * 缂存涔�
      */
     @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);
@@ -157,7 +154,6 @@
      * @return
      */
     @PostMapping("parkJudg")
-    @Operation(summary = "鍒ゆ柇鏀粯绔槸鍚﹀凡缁忕敵璇疯繃鏀粯" , description = "鍒ゆ柇鏀粯绔槸鍚﹀凡缁忕敵璇疯繃鏀粯" )
     public Object parkJudg(Long id){
         if(id == null){
             return R.failed("鏈壘鍒版暟鎹紝璇风◢鍚庨噸鏂扮偣鍑�");
@@ -188,7 +184,6 @@
      * 鍒ゆ柇鏄惁缂磋垂
      */
     @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);
@@ -263,7 +258,6 @@
      * 闃块噷缂磋垂
      */
     @PostMapping("payByAli")
-    @Operation(summary = "閭㈠彴閾惰鏀粯瀹濈即璐�" , description = "閭㈠彴閾惰鏀粯瀹濈即璐�" )
     public Object payByAli(Long id){
         OutPark outPark =  outParkService.getById(id);
         String xtyhpay = systemConfigProperties.getXTYHPAY();
@@ -339,7 +333,6 @@
      * 鑾峰彇寰俊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);
@@ -351,7 +344,6 @@
      * 寰俊缂磋垂
      */
     @PostMapping("payByWX")
-    @Operation(summary = "閭㈠彴閾惰寰俊鏀粯" , description = "閭㈠彴閾惰寰俊鏀粯" )
     public Object payByWX(Long id,String openId){
         System.out.println("寮�濮嬫敮浠�");
         OutPark outPark =  outParkService.getById(id);
@@ -444,7 +436,6 @@
      * @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");
@@ -479,7 +470,6 @@
      * @return
      */
     @PostMapping("/getResult")
-    @Operation(summary = "閭㈠彴閾惰鏀粯鍥炶皟鎺ュ彛" , description = "閭㈠彴閾惰鏀粯鍥炶皟鎺ュ彛" )
     public Object getResult(HttpServletRequest request){
         System.out.println("getResult鏀跺埌璁块棶");
         String respCode = request.getParameter("respCode");
@@ -534,7 +524,6 @@
      * @return
      */
     @PostMapping ("/checkbill")
-    @Operation(summary = "閭偍瀵硅处鎺ュ彛" , description = "閭偍瀵硅处鎺ュ彛" )
     public Object checkbill(@RequestBody Map params){
         String checkDate = (String) params.get("checkDate");
         String tranDate = (String) params.get("tranDate");
@@ -556,7 +545,6 @@
      * @return
      */
     @PostMapping ("/checkbillXTYH")
-    @Operation(summary = "閭㈠彴閾惰瀵硅处鎺ュ彛" , description = "閭㈠彴閾惰瀵硅处鎺ュ彛" )
     public Object checkbillXTYH(String date){
         String xtyhpay = systemConfigProperties.getXTYHPAY();
         Map<String,Object> map = new HashMap<>();
@@ -601,7 +589,6 @@
      * @return
      */
     @PostMapping ("/searchPayStatus")
-    @Operation(summary = "浜ゆ槗鐘舵�佹煡璇�" , description = "浜ゆ槗鐘舵�佹煡璇�" )
     public Object searchPayStatus(String txnOrderId,String txnOrderTime){
         OutPark outPark = outParkService.findByOrderId(txnOrderId);
         if(outPark == null){
@@ -728,7 +715,48 @@
                 outParkService.saveOrUpdate(outPark);
                 //缂撳瓨鍦╮edis閲�
                 String jsonValue = JSON.toJSONString(outPark);
-                redisTemplate.opsForValue().set("outPark-"+outPark.getBarrierId(), jsonValue);
+                String redisKey = "outPark-"+outPark.getBarrierId();
+                String parkChangeKey = "park_change_in_"+outPark.getParkId();
+                int retryCount = 0;
+                int maxRetry = 3;
+                boolean cacheSuccess = false;
+
+                while(retryCount < maxRetry && !cacheSuccess){
+                    try {
+                        redisTemplate.opsForValue().set(redisKey, jsonValue);
+                        redisTemplate.opsForValue().set(parkChangeKey,"true",1, TimeUnit.DAYS);
+                        cacheSuccess = true;
+                        String logs = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss").format(new Date())+
+                                " 杞︾墝鍙蜂负锛�"+outPark.getCarNo()+
+                                ",Redis缂撳瓨璁剧疆鎴愬姛锛岄亾闂窱D锛�"+outPark.getBarrierId()+"\n";
+                        writeTxt2(logs);
+                    } catch (Exception e) {
+                        retryCount++;
+                        String errorLogs = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss").format(new Date())+
+                                " 杞︾墝鍙蜂负锛�"+outPark.getCarNo()+
+                                ",Redis缂撳瓨璁剧疆澶辫触锛岀"+retryCount+"娆¢噸璇曪紝閿欒淇℃伅锛�"+e.getMessage()+"\n";
+                        writeTxt2(errorLogs);
+                        e.printStackTrace();
+                        if(retryCount < maxRetry){
+                            try {
+                                Thread.sleep(100); // 绛夊緟100ms鍚庨噸璇�
+                            } catch (InterruptedException ie) {
+                                Thread.currentThread().interrupt();
+                            }
+                        }
+                    }
+                }
+
+                if(!cacheSuccess){
+                    String errorLogs = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss").format(new Date())+
+                            " 杞︾墝鍙蜂负锛�"+outPark.getCarNo()+
+                            ",Redis缂撳瓨璁剧疆澶辫触锛屽凡閲嶈瘯"+maxRetry+"娆★紝璇锋鏌edis鏈嶅姟鐘舵�侊紒\n";
+                    writeTxt2(errorLogs);
+                    // 铏界劧Redis缂撳瓨澶辫触锛屼絾鏁版嵁搴撳凡鏇存柊锛屽績璺虫帴鍙e彲浠ラ�氳繃鏁版嵁搴撴煡璇㈣幏鍙栨暟鎹�
+                }
+
+//                redisTemplate.opsForValue().set("outPark-"+outPark.getBarrierId(), jsonValue);
+//                redisTemplate.opsForValue().set("park_change_in_"+outPark.getParkId(),"true",1, TimeUnit.DAYS);
             }
         }
     }

--
Gitblit v1.9.1