代码生成器 模板仓库fix
This commit is contained in:
parent
c9929c84d2
commit
db5bda1bba
@ -64,23 +64,6 @@ public class TemplateRepositoryController {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 从用户仓库移除模板
|
||||
*/
|
||||
@PostMapping("/remove")
|
||||
public R<Void> removeTemplateFromRepository(@RequestBody Map<String, Object> params) {
|
||||
try {
|
||||
String templateSource = params.get("templateSource").toString();
|
||||
String templateId = params.get("templateId").toString();
|
||||
Long userId = LoginHelper.getUserId();
|
||||
boolean success = templateRepositoryService.removeTemplateFromRepository(userId, templateSource, templateId);
|
||||
|
||||
return success ? R.ok() : R.fail("从仓库移除模板失败");
|
||||
} catch (Exception e) {
|
||||
log.error("从仓库移除模板失败", e);
|
||||
return R.fail(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 切换模板启用状态
|
||||
|
||||
@ -41,6 +41,20 @@ public interface UserTemplateRepositoryMapper extends BaseMapper<UserTemplateRep
|
||||
"ORDER BY sort_order ASC, create_time ASC")
|
||||
List<UserTemplateRepository> selectAllByUserId(@Param("userId") Long userId);
|
||||
|
||||
/**
|
||||
* 根据模板信息查询用户仓库配置
|
||||
*
|
||||
* @param userId 用户ID
|
||||
* @param templateSource 模板来源
|
||||
* @param templateId 模板ID
|
||||
* @return 模板仓库配置
|
||||
*/
|
||||
@Select("SELECT * FROM user_template_repository " +
|
||||
"WHERE user_id = #{userId} AND template_source = #{templateSource} AND template_id = #{templateId}")
|
||||
UserTemplateRepository selectByTemplate(@Param("userId") Long userId,
|
||||
@Param("templateSource") String templateSource,
|
||||
@Param("templateId") String templateId);
|
||||
|
||||
/**
|
||||
* 检查模板是否已添加到用户仓库
|
||||
*
|
||||
|
||||
@ -99,6 +99,9 @@ public class TemplateRepositoryServiceImpl implements ITemplateRepositoryService
|
||||
|
||||
@Override
|
||||
public List<TemplateRepositoryDTO> getAvailableTemplates(Long userId) {
|
||||
// 确保用户仓库已初始化
|
||||
initUserRepository(userId);
|
||||
|
||||
List<TemplateRepositoryDTO> result = new ArrayList<>();
|
||||
|
||||
// 1. 添加系统模板
|
||||
@ -117,9 +120,9 @@ public class TemplateRepositoryServiceImpl implements ITemplateRepositoryService
|
||||
dto.setTemplateName(template.getString("name"));
|
||||
dto.setTemplateGroup(groupName);
|
||||
|
||||
// 检查是否已添加到用户仓库
|
||||
boolean exists = repositoryMapper.checkTemplateExists(userId, "system", template.getString("id")) > 0;
|
||||
dto.setIsEnabled(exists ? 1 : 0);
|
||||
// 从用户仓库获取显示状态
|
||||
UserTemplateRepository userRepo = repositoryMapper.selectByTemplate(userId, "system", template.getString("id"));
|
||||
dto.setIsEnabled(userRepo != null ? userRepo.getIsEnabled() : 1); // 默认显示
|
||||
|
||||
result.add(dto);
|
||||
}
|
||||
@ -137,9 +140,9 @@ public class TemplateRepositoryServiceImpl implements ITemplateRepositoryService
|
||||
dto.setTemplateName(template.getTemplateName());
|
||||
dto.setTemplateGroup(template.getTemplateGroup());
|
||||
|
||||
// 检查是否已添加到用户仓库
|
||||
boolean exists = repositoryMapper.checkTemplateExists(userId, "user", template.getId().toString()) > 0;
|
||||
dto.setIsEnabled(exists ? 1 : 0);
|
||||
// 从用户仓库获取显示状态
|
||||
UserTemplateRepository userRepo = repositoryMapper.selectByTemplate(userId, "user", template.getId().toString());
|
||||
dto.setIsEnabled(userRepo != null ? userRepo.getIsEnabled() : 1); // 默认显示
|
||||
|
||||
result.add(dto);
|
||||
}
|
||||
@ -177,7 +180,72 @@ public class TemplateRepositoryServiceImpl implements ITemplateRepositoryService
|
||||
@Override
|
||||
@Transactional
|
||||
public boolean toggleTemplateStatus(Long userId, String templateSource, String templateId, Integer isEnabled) {
|
||||
return repositoryMapper.toggleTemplateStatus(userId, templateSource, templateId, isEnabled) > 0;
|
||||
// 先检查记录是否存在
|
||||
if (repositoryMapper.checkTemplateExists(userId, templateSource, templateId) == 0) {
|
||||
// 记录不存在,需要先创建
|
||||
log.info("模板记录不存在,先创建记录: userId={}, templateSource={}, templateId={}", userId, templateSource, templateId);
|
||||
|
||||
// 获取模板信息
|
||||
String templateName = "";
|
||||
String templateGroup = "";
|
||||
|
||||
if ("system".equals(templateSource)) {
|
||||
// 系统模板,从配置中获取信息
|
||||
try {
|
||||
JSONArray systemTemplates = JSONArray.parseArray(generatorService.getTemplateConfig());
|
||||
for (Object groupObj : systemTemplates) {
|
||||
JSONObject group = (JSONObject) groupObj;
|
||||
String groupName = group.getString("group");
|
||||
JSONArray templates = group.getJSONArray("templates");
|
||||
|
||||
for (Object templateObj : templates) {
|
||||
JSONObject template = (JSONObject) templateObj;
|
||||
if (templateId.equals(template.getString("id"))) {
|
||||
templateName = template.getString("name");
|
||||
templateGroup = groupName;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!templateName.isEmpty()) break;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("获取系统模板信息失败", e);
|
||||
return false;
|
||||
}
|
||||
} else if ("user".equals(templateSource)) {
|
||||
// 用户模板,从数据库获取信息
|
||||
try {
|
||||
UserTemplate userTemplate = userTemplateMapper.selectById(Long.parseLong(templateId));
|
||||
if (userTemplate != null) {
|
||||
templateName = userTemplate.getTemplateName();
|
||||
templateGroup = userTemplate.getTemplateGroup();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("获取用户模板信息失败", e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (templateName.isEmpty()) {
|
||||
log.error("无法获取模板信息: templateSource={}, templateId={}", templateSource, templateId);
|
||||
return false;
|
||||
}
|
||||
|
||||
// 创建记录
|
||||
UserTemplateRepository repository = new UserTemplateRepository();
|
||||
repository.setUserId(userId);
|
||||
repository.setTemplateSource(templateSource);
|
||||
repository.setTemplateId(templateId);
|
||||
repository.setTemplateName(templateName);
|
||||
repository.setTemplateGroup(templateGroup);
|
||||
repository.setIsEnabled(isEnabled);
|
||||
repository.setSortOrder(repositoryMapper.getMaxSortOrder(userId) + 1);
|
||||
|
||||
return repositoryMapper.insert(repository) > 0;
|
||||
} else {
|
||||
// 记录存在,直接更新状态
|
||||
return repositoryMapper.toggleTemplateStatus(userId, templateSource, templateId, isEnabled) > 0;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -199,9 +267,10 @@ public class TemplateRepositoryServiceImpl implements ITemplateRepositoryService
|
||||
@Transactional
|
||||
public boolean initUserRepository(Long userId) {
|
||||
try {
|
||||
// 将系统默认模板添加到用户仓库
|
||||
int sortOrder = repositoryMapper.getMaxSortOrder(userId) + 1;
|
||||
|
||||
// 1. 将系统默认模板添加到用户仓库(如果不存在)
|
||||
JSONArray systemTemplates = JSONArray.parseArray(generatorService.getTemplateConfig());
|
||||
int sortOrder = 1;
|
||||
|
||||
for (Object groupObj : systemTemplates) {
|
||||
JSONObject group = (JSONObject) groupObj;
|
||||
@ -210,19 +279,44 @@ public class TemplateRepositoryServiceImpl implements ITemplateRepositoryService
|
||||
|
||||
for (Object templateObj : templates) {
|
||||
JSONObject template = (JSONObject) templateObj;
|
||||
String templateId = template.getString("id");
|
||||
|
||||
// 检查是否已存在
|
||||
if (repositoryMapper.checkTemplateExists(userId, "system", templateId) == 0) {
|
||||
UserTemplateRepository repository = new UserTemplateRepository();
|
||||
repository.setUserId(userId);
|
||||
repository.setTemplateSource("system");
|
||||
repository.setTemplateId(templateId);
|
||||
repository.setTemplateName(template.getString("name"));
|
||||
repository.setTemplateGroup(groupName);
|
||||
repository.setIsEnabled(1); // 系统模板默认启用
|
||||
repository.setSortOrder(sortOrder++);
|
||||
|
||||
repositoryMapper.insert(repository);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 2. 将公开的用户模板添加到用户仓库(如果不存在)
|
||||
List<UserTemplate> publicTemplates = userTemplateMapper.selectPublicTemplates(null);
|
||||
for (UserTemplate template : publicTemplates) {
|
||||
String templateId = template.getId().toString();
|
||||
|
||||
// 检查是否已存在
|
||||
if (repositoryMapper.checkTemplateExists(userId, "user", templateId) == 0) {
|
||||
UserTemplateRepository repository = new UserTemplateRepository();
|
||||
repository.setUserId(userId);
|
||||
repository.setTemplateSource("system");
|
||||
repository.setTemplateId(template.getString("id"));
|
||||
repository.setTemplateName(template.getString("name"));
|
||||
repository.setTemplateGroup(groupName);
|
||||
repository.setIsEnabled(1);
|
||||
repository.setTemplateSource("user");
|
||||
repository.setTemplateId(templateId);
|
||||
repository.setTemplateName(template.getTemplateName());
|
||||
repository.setTemplateGroup(template.getTemplateGroup());
|
||||
repository.setIsEnabled(1); // 公开模板默认启用
|
||||
repository.setSortOrder(sortOrder++);
|
||||
|
||||
repositoryMapper.insert(repository);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
log.error("初始化用户模板仓库失败", e);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user