hejianhao
2026-08-20 c4de412ba3387cb312260bef4adea8b08768e28e
feat0806: 项目介绍密码接口密码没有清空
4个文件已修改
30 ■■■■■ 已修改文件
tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/controller/ProjectIntroductionPasswordController.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/mapper/ProjectIntroductionPasswordMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/service/ProjectIntroductionPasswordService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
tcm-training-admin/src/pages/live/project-introduction-password/index.tsx 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/controller/ProjectIntroductionPasswordController.java
@@ -35,8 +35,8 @@
     * 保存项目介绍密码配置
     */
    @PostMapping("/project-introduction-password")
    public ApiResponse<Void> savePasswordConfig(@Valid @RequestBody ProjectIntroductionPasswordRequest req) {
    public ApiResponse<Boolean> savePasswordConfig(@Valid @RequestBody ProjectIntroductionPasswordRequest req) {
        passwordService.savePasswordConfig(req);
        return ApiResponse.ok(null);
        return ApiResponse.ok(true);
    }
}
tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/mapper/ProjectIntroductionPasswordMapper.java
@@ -3,7 +3,15 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tcm.training.admin.live.entity.ProjectIntroductionPassword;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
@Mapper
public interface ProjectIntroductionPasswordMapper extends BaseMapper<ProjectIntroductionPassword> {
    /**
     * 更新密码配置(支持将密码设置为null)
     */
    @Update("UPDATE tcm_project_introduction_password SET password_enabled = #{passwordEnabled}, password = #{password}, updated_at = NOW() WHERE id = #{id}")
    int updatePasswordConfig(@Param("id") Long id, @Param("passwordEnabled") Integer passwordEnabled, @Param("password") String password);
}
tcm-training-admin-backend/src/main/java/com/tcm/training/admin/live/service/ProjectIntroductionPasswordService.java
@@ -78,15 +78,12 @@
            }
            passwordMapper.insert(config);
        } else {
            // 更新
            config.setPasswordEnabled(req.getPasswordEnabled());
            // 更新 - 使用自定义SQL支持设置为null
            String encodedPassword = null;
            if (req.getPasswordEnabled() == 1 && StrUtil.isNotBlank(req.getPassword())) {
                config.setPassword(passwordEncoder.encode(req.getPassword()));
            } else {
                // 不启用密码时,清空密码
                config.setPassword(null);
                encodedPassword = passwordEncoder.encode(req.getPassword());
            }
            passwordMapper.updateById(config);
            passwordMapper.updatePasswordConfig(config.getId(), req.getPasswordEnabled(), encodedPassword);
        }
    }
tcm-training-admin/src/pages/live/project-introduction-password/index.tsx
@@ -60,14 +60,11 @@
        password: values.passwordEnabled ? values.password : undefined,
      };
      const res = await saveProjectIntroductionPassword(data);
      if (res.code === 200) {
      await saveProjectIntroductionPassword(data);
        message.success('保存成功');
        loadConfig();
      } else {
        message.error(res.message || '保存失败');
      }
    } catch (error) {
      message.error('保存失败');
      console.error('保存失败:', error);
    } finally {
      setSubmitting(false);