From 4fa3099ff1d2fc02bbbfafcda7fded28f609f6ea Mon Sep 17 00:00:00 2001
From: hejianhao <15708179461@qq.com>
Date: 星期三, 19 八月 2026 14:58:54 +0800
Subject: [PATCH] feat0806: 首页直播密码
---
traditionalApp/pages/home/home.vue | 20 +++++++++++---------
tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/mapper/LiveCourseMapper.java | 5 +++++
tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/service/LiveCourseAppService.java | 2 +-
3 files changed, 17 insertions(+), 10 deletions(-)
diff --git a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/mapper/LiveCourseMapper.java b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/mapper/LiveCourseMapper.java
index a368700..37fcbb4 100644
--- a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/mapper/LiveCourseMapper.java
+++ b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/mapper/LiveCourseMapper.java
@@ -7,10 +7,15 @@
import com.tcm.training.admin.live.vo.LiveCourseListRow;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Update;
@Mapper
public interface LiveCourseMapper extends BaseMapper<LiveCourse> {
+ /** 按课程 ID 更新直播间密码,允许将密码设置为 NULL 以清除密码。 */
+ @Update("UPDATE tcm_live_course SET password = #{password,jdbcType=VARCHAR}, updated_at = NOW() WHERE id = #{id} AND deleted = 0")
+ int updatePasswordById(@Param("id") Long id, @Param("password") String password);
+
/** 课程分页列表(动态筛选) */
IPage<LiveCourseListRow> selectCoursePage(IPage<LiveCourseListRow> page,
@Param("keyword") String keyword,
diff --git a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/service/LiveCourseAppService.java b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/service/LiveCourseAppService.java
index 6026d4d..ebd7eb0 100644
--- a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/service/LiveCourseAppService.java
+++ b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/service/LiveCourseAppService.java
@@ -182,7 +182,7 @@
} else {
course.setPassword(null);
}
- liveCourseMapper.updateById(course);
+ liveCourseMapper.updatePasswordById(id, course.getPassword());
}
public boolean verifyPassword(LiveCoursePasswordVerifyRequest req) {
diff --git a/traditionalApp/pages/home/home.vue b/traditionalApp/pages/home/home.vue
index 5ca632a..294a93d 100644
--- a/traditionalApp/pages/home/home.vue
+++ b/traditionalApp/pages/home/home.vue
@@ -62,9 +62,9 @@
<!-- Live Section -->
- <view v-if="advancedLiveCourseList.length" class="section">
+ <view v-if="remainingLiveCourseList.length" class="section">
<view class="live-list">
- <view v-for="item in advancedLiveCourseList" :key="item.courseId" class="live-card">
+ <view v-for="item in remainingLiveCourseList" :key="item.courseId" class="live-card">
<image :src="item.displayImage || defaultLiveCover" mode="aspectFill" class="live-bg"
@tap="handleLiveImageClick(item)"></image>
<image v-if="item.displayStatus === 'LIVING'" src="/static/image/home/zhibo.png"
@@ -202,20 +202,22 @@
return String(systemInfo.platform || '').toLowerCase() === 'ios';
});
const weiZanLiveH5Url = 'https://www.vzan.com';
- const advancedLiveCourseList = computed(() => {
- if (!Array.isArray(liveCourseList.value) || liveCourseList.value.length === 0) {
- return [];
- }
- return liveCourseList.value.filter((item) => !String(item.title || '').includes('筑基'));
- });
+
const operatorTrainingLiveCourse = computed(() => {
- const list = advancedLiveCourseList.value;
+ const list = liveCourseList.value;
if (!Array.isArray(list) || list.length === 0) {
return null;
}
const livingCourse = list.find((item) => item.displayStatus === 'LIVING');
return livingCourse || list[0];
});
+ const remainingLiveCourseList = computed(() => {
+ const selectedCourseId = operatorTrainingLiveCourse.value?.courseId;
+ if (selectedCourseId === undefined || selectedCourseId === null) {
+ return liveCourseList.value;
+ }
+ return liveCourseList.value.filter((item) => String(item.courseId) !== String(selectedCourseId));
+ });
/**
* 初始化导航栏所需系统信息。
--
Gitblit v1.7.1