fix(cms): 修复根据ID查询网站设置时未存在记录问题

- 查询网站设置记录时,若不存在则自动创建一条空记录
- 新建记录时显式设置 deleted 字段为 0,确保逻辑删除功能正常
- 便于前端传入 ID 后直接调用更新接口保存数据
- 保持查询接口返回一致的结构和数据格式
This commit is contained in:
2026-08-04 21:03:16 +08:00
parent 75fd0077cb
commit a2f432c70c

View File

@@ -47,13 +47,15 @@ public class CmsWebsiteSettingController extends BaseController {
@Operation(summary = "根据id查询网站设置") @Operation(summary = "根据id查询网站设置")
@GetMapping("/{id}") @GetMapping("/{id}")
public ApiResult<CmsWebsiteSetting> get(@PathVariable("id") Integer id) { public ApiResult<CmsWebsiteSetting> get(@PathVariable("id") Integer id) {
// 使用关联查询
final CmsWebsiteSetting cmsWebsiteSetting = cmsWebsiteSettingService.getOne(new LambdaQueryWrapper<CmsWebsiteSetting>().eq(CmsWebsiteSetting::getWebsiteId, id)); final CmsWebsiteSetting cmsWebsiteSetting = cmsWebsiteSettingService.getOne(new LambdaQueryWrapper<CmsWebsiteSetting>().eq(CmsWebsiteSetting::getWebsiteId, id));
if(ObjectUtil.isEmpty(cmsWebsiteSetting)){ if(ObjectUtil.isEmpty(cmsWebsiteSetting)){
// 记录不存在时自动建一条空记录,便于前端回填 id 后走 updateById 保存。
// 必须显式 setDeleted(0),否则 @TableLogic 查询默认补 deleted=0 会查不到刚插入的 null 记录。
final CmsWebsiteSetting setting = new CmsWebsiteSetting(); final CmsWebsiteSetting setting = new CmsWebsiteSetting();
setting.setWebsiteId(id); setting.setWebsiteId(id);
setting.setDeleted(0);
cmsWebsiteSettingService.save(setting); cmsWebsiteSettingService.save(setting);
return success(cmsWebsiteSettingService.getOne(new LambdaQueryWrapper<CmsWebsiteSetting>().eq(CmsWebsiteSetting::getWebsiteId, id))); return success(setting);
} }
return success(cmsWebsiteSetting); return success(cmsWebsiteSetting);
} }