From 14d70ea884654e744987f90313f50068adbc12e3 Mon Sep 17 00:00:00 2001
From: nickchange <126672920+nickchange@users.noreply.github.com>
Date: 星期五, 20 十月 2023 13:45:32 +0800
Subject: [PATCH] 10.20.1

---
 cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java             |   50 ----------------
 cloud-server-other/src/main/java/com/dsh/other/util/RedisUtil.java                           |   52 +++++++++++++++++
 cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java                |   37 ++++++++++++
 cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java                    |    2 
 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java |    4 
 5 files changed, 91 insertions(+), 54 deletions(-)

diff --git a/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java b/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java
index 81bd0d1..f15dc36 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java
@@ -160,7 +160,7 @@
 
 
         //分账
-//        Integer    coursePackagePayments = coursePackageClient.queryByCode(outTradeNo);
+        Integer    coursePackagePayments = coursePackageClient.queryByCode(outTradeNo);
 //        Integer paymentCompetitions = competitionsClient.queryByCode(outTradeNo);
 //        Integer siteBookings = siteClient.queryByCode(outTradeNo);
 //        List<Integer> stores = new ArrayList<>();
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
index c837017..eeea57d 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
@@ -1053,8 +1053,8 @@
         OpenApiRoyaltyDetailInfoPojo op = new OpenApiRoyaltyDetailInfoPojo();
         op.setTransOutType("loginName");
         op.setTransOut("happysports@weparklife.com");
-        op.setTransInType("loginName");
-        op.setTransIn("19522115070");
+        op.setTransInType("userId");
+        op.setTransIn("2088022313710050");
         op.setAmountPercentage(100L);
 
         List<OpenApiRoyaltyDetailInfoPojo> ops = new ArrayList<>();
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
index 8ea716e..f5d791c 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
@@ -19,6 +19,7 @@
 import com.dsh.other.model.vo.siteVo.SiteSearchVO;
 import com.dsh.other.service.*;
 import com.dsh.other.util.PayMoneyUtil;
+import com.dsh.other.util.RedisUtil;
 import com.dsh.other.util.ResultUtil;
 import com.dsh.other.util.TokenUtil;
 import io.swagger.annotations.ApiImplicitParam;
@@ -27,6 +28,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.web.bind.annotation.*;
+import redis.clients.jedis.Jedis;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
@@ -197,7 +199,8 @@
         }
     }
 
-
+    @Autowired
+    private RedisUtil redisUtil;
 
     @ResponseBody
     @PostMapping("/base/site/querySiteTimes")
@@ -217,6 +220,22 @@
             return ResultUtil.runErr();
         }
     }
+
+//    public ResultUtil<List<QuerySiteTimes>> querySiteTimes(Integer id, String day, String halfName, String siteName) throws Exception {
+//
+//        if (redisUtil.acquireLock(day,day)) {
+//            try {
+//                List<QuerySiteTimes> list = siteService.querySiteTimes(id, day,halfName,siteName);
+//            return ResultUtil.success(list);
+//            } finally {
+//                redisUtil.releaseLock(day);
+//            }
+//        } else {
+//            return ResultUtil.error("系统繁忙,请稍后再试!");
+//        }
+//
+//    }
+
 
 
     /**
@@ -256,6 +275,22 @@
         }
     }
 
+//        public ResultUtil<List<QuerySiteTimes>> querySiteTimes(Integer id, String day, String halfName, String siteName) throws Exception {
+//
+//        if (redisUtil.acquireLock(day,day)) {
+//            try {
+//                List<QuerySiteTimes> list = siteService.querySiteTimes(id, day,halfName,siteName);
+//            return ResultUtil.success(list);
+//            } finally {
+//                redisUtil.releaseLock(day);
+//            }
+//        } else {
+//            return ResultUtil.error("系统繁忙,请稍后再试!");
+//        }
+//
+//    }
+
+
     /**
      * 购买课程微信支付回调
      * @param request
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
index 3a8bbfe..3efad9a 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
@@ -170,56 +170,6 @@
      */
     @Override
     public List<QuerySiteTimes> querySiteTimes(Integer id, String day,String halfName,String siteName) throws Exception {
-//        Site site = this.getById(id);
-//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
-//        Calendar s = Calendar.getInstance();
-//        s.setTime(sdf.parse(day + " " + site.getAppointmentStartTime()));
-//        Calendar e = Calendar.getInstance();
-//        e.setTime(sdf.parse(day + " " + site.getAppointmentEndTime()));
-//
-//        int hour = e.get(Calendar.HOUR_OF_DAY);
-//
-//        int minute = e.get(Calendar.MINUTE);
-//
-//        List<QuerySiteTimes> list = new ArrayList<>();
-//
-//        SimpleDateFormat sdfs = new SimpleDateFormat("HH:mm");
-//
-//        while (true){
-//
-//            String start = sdfs.format(s.getTime());
-//
-//            s.set(Calendar.MINUTE, s.get(Calendar.MINUTE) + 30);
-//
-//            int e_hour = s.get(Calendar.HOUR_OF_DAY);
-//
-//            int e_minute = s.get(Calendar.MINUTE);
-//
-//            String end = sdfs.format(s.getTime());
-//
-//            QuerySiteTimes querySiteTimes = new QuerySiteTimes();
-//
-//            querySiteTimes.setTime(start + "-" + end);
-//
-//            querySiteTimes.setSelectable(1);
-//
-//            SiteBooking siteBooking = siteBookingService.getOne(new QueryWrapper<SiteBooking>().eq("siteId", id).eq("state", 1)
-//                    .in("status", Arrays.asList(3, 4, 5)).last(" and DATE_FORMAT(startTime, '%Y-%m-%d %H:%i') <= '" + day + " " + start + "' and DATE_FORMAT(endTime, '%Y-%m-%d %H:%i') >= '" + day + " " + end + "'"));
-//            if(null != siteBooking){
-//                querySiteTimes.setSelectable(0);
-//            }
-//            int count = siteLockService.count(new QueryWrapper<SiteLock>().eq("siteId", id).last(" and DATE_FORMAT(startTime, '%Y-%m-%d %H:%i') <= '" + day + " " + start + "' and DATE_FORMAT(endTime, '%Y-%m-%d %H:%i') >= '" + day + " " + end + "'"));
-//            if(count > 0){
-//                querySiteTimes.setSelectable(0);
-//            }
-//
-//            list.add(querySiteTimes);
-//
-//            if(e_hour == hour && minute == e_minute){
-//                break;
-//            }
-//        }
-//        return list;
 
         System.out.println("=======date======"+day);
 
diff --git a/cloud-server-other/src/main/java/com/dsh/other/util/RedisUtil.java b/cloud-server-other/src/main/java/com/dsh/other/util/RedisUtil.java
index f84642d..88be661 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/util/RedisUtil.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/util/RedisUtil.java
@@ -21,6 +21,8 @@
     @Autowired
     private JedisPool jedisPool;
 
+    private static final int TIMEOUT = 10 * 1000; // 10秒超时时间
+    private static final int SLEEP_TIME = 1000; // 1秒休眠时间
 
     /**
      * 向redis中存储字符串没有过期时间
@@ -124,4 +126,54 @@
             jedis.close();
         }
     }
+
+
+    public boolean acquireLock(String key,String value) {
+        Jedis jedis = null;
+        try {
+            jedis = jedisPool.getResource();
+            long start = System.currentTimeMillis();
+            String[] split = key.split(";");
+            for (String s : split) {
+
+            while (true) {
+                // 尝试获取锁
+                String result = jedis.set(s, value, "NX", "PX", TIMEOUT);
+                if ("OK".equals(result)) {
+                    return true;
+                }
+                // 超时则返回失败
+                if (System.currentTimeMillis() - start > TIMEOUT) {
+                    return false;
+                }
+                // 休眠一段时间后重试
+                Thread.sleep(SLEEP_TIME);
+            }
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            if (jedis != null) {
+                jedis.close();
+            }
+        }
+        return false;
+    }
+
+    public void releaseLock(String key) {
+        Jedis jedis = null;
+        try {
+            jedis = jedisPool.getResource();
+            jedis.del(key);
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            if (jedis != null) {
+                jedis.close();
+            }
+        }
+    }
+
+
 }

--
Gitblit v1.7.1