fix: 代码生成器 自定义模板 逻辑删除问题

This commit is contained in:
cuijiawang 2025-09-27 17:50:32 +08:00
parent b51f113053
commit b4525cd1a6
2 changed files with 23 additions and 7 deletions

View File

@ -25,9 +25,11 @@ public interface UserTemplateRepositoryMapper extends BaseMapper<UserTemplateRep
* @param userId 用户ID
* @return 模板仓库配置列表
*/
@Select("SELECT * FROM user_template_repository " +
"WHERE user_id = #{userId} AND is_enabled = 1 " +
"ORDER BY sort_order ASC, create_time ASC")
@Select("SELECT r.* FROM user_template_repository r " +
"LEFT JOIN user_template ut ON r.template_source = 'user' AND r.template_id = CAST(ut.id AS CHAR) COLLATE utf8mb4_unicode_ci " +
"WHERE r.user_id = #{userId} AND r.is_enabled = 1 " +
"AND (r.template_source != 'user' OR (ut.id IS NOT NULL AND ut.deleted = 0)) " +
"ORDER BY r.sort_order ASC, r.create_time ASC")
List<UserTemplateRepository> selectEnabledByUserId(@Param("userId") Long userId);
/**
@ -36,9 +38,11 @@ public interface UserTemplateRepositoryMapper extends BaseMapper<UserTemplateRep
* @param userId 用户ID
* @return 模板仓库配置列表
*/
@Select("SELECT * FROM user_template_repository " +
"WHERE user_id = #{userId} " +
"ORDER BY sort_order ASC, create_time ASC")
@Select("SELECT r.* FROM user_template_repository r " +
"LEFT JOIN user_template ut ON r.template_source = 'user' AND r.template_id = CAST(ut.id AS CHAR) COLLATE utf8mb4_unicode_ci " +
"WHERE r.user_id = #{userId} " +
"AND (r.template_source != 'user' OR (ut.id IS NOT NULL AND ut.deleted = 0)) " +
"ORDER BY r.sort_order ASC, r.create_time ASC")
List<UserTemplateRepository> selectAllByUserId(@Param("userId") Long userId);
/**

View File

@ -10,6 +10,7 @@ import com.agileboot.common.satoken.utils.LoginHelper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.Arrays;
import com.agileboot.codegen.mapper.UserTemplateRepositoryMapper;
import freemarker.template.Configuration;
import freemarker.template.Template;
import lombok.RequiredArgsConstructor;
@ -36,6 +37,7 @@ import java.util.stream.Collectors;
public class UserTemplateServiceImpl implements IUserTemplateService {
private final UserTemplateMapper userTemplateMapper;
private final UserTemplateRepositoryMapper repositoryMapper;
@Override
public Page<UserTemplateVO> selectUserTemplateList(Page<UserTemplate> page, Long userId, String templateGroup, Integer isPublic) {
@ -149,6 +151,9 @@ public class UserTemplateServiceImpl implements IUserTemplateService {
throw new RuntimeException("删除操作失败");
}
// 清理模板仓库中的相关记录
repositoryMapper.deleteByTemplate(currentUserId, "user", id.toString());
return true;
}
@ -169,7 +174,14 @@ public class UserTemplateServiceImpl implements IUserTemplateService {
}
}
return userTemplateMapper.deleteByIds(Arrays.asList(ids)) > 0;
boolean deleteResult = userTemplateMapper.deleteByIds(Arrays.asList(ids)) > 0;
// 清理模板仓库中的相关记录
for (Long id : ids) {
repositoryMapper.deleteByTemplate(currentUserId, "user", id.toString());
}
return deleteResult;
}
@Override