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("课程不存在"); } course.setPassword(passwordEncoder.encode(req.getPassword())); 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