hejianhao
2026-08-19 84f91e46377accae3fbb66954d40116c9ca8e72b
feat0806: 养生直播密码非必填
4个文件已修改
28 ■■■■■ 已修改文件
tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/controller/LiveCourseController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/dto/LiveCoursePasswordRequest.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/service/LiveCourseAppService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
tcm-training-admin/src/pages/live/broadcast/index.tsx 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/controller/LiveCourseController.java
@@ -66,7 +66,7 @@
    }
    @PutMapping("/live-courses/{id}/password")
    public ApiResponse<Void> updatePassword(@PathVariable("id") Long id, @Valid @RequestBody LiveCoursePasswordRequest req) {
    public ApiResponse<Void> updatePassword(@PathVariable("id") Long id, @RequestBody LiveCoursePasswordRequest req) {
        liveCourseAppService.updatePassword(id, req);
        return ApiResponse.ok(null);
    }
tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/dto/LiveCoursePasswordRequest.java
@@ -4,15 +4,12 @@
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
@Getter
@Setter
@NoArgsConstructor
public class LiveCoursePasswordRequest {
    @NotBlank(message = "请输入直播间密码")
    @Size(max = 6, message = "直播间密码不能超过6个字符")
    //    @NotBlank(message = "请输入直播间密码")
//    @Size(max = 6, message = "直播间密码不能超过6个字符")
    private String password;
}
tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/service/LiveCourseAppService.java
@@ -1,5 +1,6 @@
package com.tcm.training.admin.live.service;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -166,11 +167,21 @@
    @Transactional
    public void updatePassword(Long id, LiveCoursePasswordRequest req) {
        String password = req.getPassword();
        if (StrUtil.isNotBlank(password)) {
            if (password.length() != 6) {
                throw new IllegalArgumentException("直播间密码必须是6个字符");
            }
        }
        LiveCourse course = liveCourseMapper.selectById(id);
        if (course == null) {
            throw new IllegalArgumentException("课程不存在");
        }
        if (StrUtil.isNotBlank(password)) {
        course.setPassword(passwordEncoder.encode(req.getPassword()));
        } else {
            course.setPassword(null);
        }
        liveCourseMapper.updateById(course);
    }
tcm-training-admin/src/pages/live/broadcast/index.tsx
@@ -86,8 +86,8 @@
    }
    setPasswordSubmitting(true);
    try {
      await updateLiveCoursePassword(passwordCourseId, { password: values.password });
      message.success('直播间密码设置成功');
      await updateLiveCoursePassword(passwordCourseId, { password: values.password || '' });
      message.success(values.password ? '直播间密码设置成功' : '直播间密码已清除');
      setPasswordModalOpen(false);
      passwordForm.resetFields();
    } finally {
@@ -220,8 +220,7 @@
            label="直播间密码"
            name="password"
            rules={[
              { required: true, whitespace: true, message: '请输入直播间密码' },
              { max: 6, message: '直播间密码不能超过6个字符' },
              { len: 6, message: '直播间密码必须为6个字符' },
            ]}
          >
            <Input.Password autoComplete="new-password" placeholder="请输入直播间密码" />
@@ -231,7 +230,6 @@
            name="confirmPassword"
            dependencies={['password']}
            rules={[
              { required: true, message: '请再次输入直播间密码' },
              ({ getFieldValue }) => ({
                validator(_, value) {
                  return !value || getFieldValue('password') === value