浏览代码

直播 详情时间修复 直播 时长类型修改

xgb 2 周之前
父节点
当前提交
e432b13d13

+ 12 - 0
fs-service/src/main/java/com/fs/live/service/impl/LiveDataServiceImpl.java

@@ -1265,6 +1265,18 @@ public class LiveDataServiceImpl implements ILiveDataService {
         return minutes.toString();
         return minutes.toString();
     }
     }
 
 
+    private static String formatSecondsToMinutes2(Long seconds) {
+        if (seconds == null || seconds == 0) {
+            return "0.00";
+        }
+        BigDecimal minutes = new BigDecimal(seconds).divide(new BigDecimal(60), 2, RoundingMode.HALF_UP);
+        return minutes.toString();
+    }
+
+    public static void main(String[] args) {
+        System.out.println(formatSecondsToMinutes2(2471L));
+    }
+
     /**
     /**
      * 格式化金额
      * 格式化金额
      */
      */

+ 12 - 4
fs-service/src/main/java/com/fs/live/service/impl/LiveWatchUserServiceImpl.java

@@ -283,11 +283,19 @@ public class LiveWatchUserServiceImpl implements ILiveWatchUserService {
             return cached;
             return cached;
         }
         }
 
 
-        // 缓存不存在,查询数据库
-        Integer liveFlag = liveMapper.selectLiveFlagByLiveId(liveId);
-        if (liveFlag == null) {
-            liveFlag = 0;
+        Integer liveFlag;
+        // 查询直播类型
+        Live live=liveMapper.selectLiveByLiveId(liveId);
+        if(live.getLiveType()==1){
+            liveFlag=1;
+        }else {
+            // 缓存不存在,查询数据库
+            liveFlag = liveMapper.selectLiveFlagByLiveId(liveId);
+            if (liveFlag == null) {
+                liveFlag = 0;
+            }
         }
         }
+
         Integer replayFlag = 1 - liveFlag; // 反数
         Integer replayFlag = 1 - liveFlag; // 反数
 
 
         // 构建结果
         // 构建结果

+ 14 - 6
fs-service/src/main/resources/mapper/live/LiveDataMapper.xml

@@ -575,9 +575,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             COALESCE(MAX(order_info.orderAmount), 0) AS orderAmount,
             COALESCE(MAX(order_info.orderAmount), 0) AS orderAmount,
             COALESCE(MAX(c.company_name), '') AS companyName,
             COALESCE(MAX(c.company_name), '') AS companyName,
             COALESCE(MAX(cu.user_name), '') AS salesName,
             COALESCE(MAX(cu.user_name), '') AS salesName,
-            MAX(CASE WHEN lsr.sign_no = '1' THEN lsr.create_time END) AS signTime1,
-            MAX(CASE WHEN lsr.sign_no = '2' THEN lsr.create_time END) AS signTime2,
-            MAX(CASE WHEN lsr.sign_no = '3' THEN lsr.create_time END) AS signTime3
+            MAX(sign_info.signTime1) AS signTime1,
+            MAX(sign_info.signTime2) AS signTime2,
+            MAX(sign_info.signTime3) AS signTime3
         FROM live_watch_user lwu
         FROM live_watch_user lwu
                  LEFT JOIN fs_user u ON lwu.user_id = u.user_id
                  LEFT JOIN fs_user u ON lwu.user_id = u.user_id
                  LEFT JOIN (
                  LEFT JOIN (
@@ -601,9 +601,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             )
             )
                  LEFT JOIN company c ON fucu.company_id = c.company_id
                  LEFT JOIN company c ON fucu.company_id = c.company_id
                  LEFT JOIN company_user cu ON fucu.company_user_id = cu.user_id
                  LEFT JOIN company_user cu ON fucu.company_user_id = cu.user_id
-                 LEFT JOIN live_sign_record lsr ON lwu.live_id = lsr.live_id
-            AND lwu.user_id = lsr.user_id
-            AND lsr.sign_no IN ('1', '2', '3')
+                 LEFT JOIN (
+            SELECT
+                user_id,
+                MAX(CASE WHEN sign_no = '1' THEN create_time END) AS signTime1,
+                MAX(CASE WHEN sign_no = '2' THEN create_time END) AS signTime2,
+                MAX(CASE WHEN sign_no = '3' THEN create_time END) AS signTime3
+            FROM live_sign_record
+            WHERE live_id = #{liveId}
+              AND sign_no IN ('1', '2', '3')
+            GROUP BY user_id
+        ) sign_info ON lwu.user_id = sign_info.user_id
         WHERE lwu.live_id = #{liveId}
         WHERE lwu.live_id = #{liveId}
         GROUP BY u.user_id
         GROUP BY u.user_id
         ORDER BY orderAmount DESC, liveWatchDuration DESC
         ORDER BY orderAmount DESC, liveWatchDuration DESC