REQ-3540: 拷贝匿名空间节点
This commit is contained in:
parent
ff7f093d68
commit
ebef16b5c2
@ -19,9 +19,10 @@ import cn.axzo.nanopart.doc.mapper.FileDatabaseMapper;
|
||||
@Repository
|
||||
public class FileDatabaseDao extends ServiceImpl<FileDatabaseMapper, FileDatabase> {
|
||||
|
||||
public FileDatabase findForUpdateOrNull(DatabaseScope scope, String scopeUniqueCode) {
|
||||
public FileDatabase findForUpdateOrNull(DatabaseScope scope, String templateDatabaseCode, String scopeUniqueCode) {
|
||||
return lambdaQuery() //
|
||||
.eq(FileDatabase::getScope, scope) //
|
||||
.eq(FileDatabase::getTemplateDatabaseCode, templateDatabaseCode) //
|
||||
.eq(FileDatabase::getScopeUniqueCode, scopeUniqueCode) //
|
||||
.last("FOR UPDATE") //
|
||||
.one();
|
||||
|
||||
@ -88,19 +88,19 @@ public class FileDatabaseService {
|
||||
|
||||
private FileDatabase addWorkspace0(FileDatabaseAddWorkspaceRequest request) {
|
||||
String scopeUniqueCode = String.valueOf(request.getWorkspaceId());
|
||||
TemplateDatabase templateDatabase = templateDatabaseQueryService.getOrThrow(request.getTemplateDatabaseCode());
|
||||
FileDatabase savedDb = fileDatabaseDao.findForUpdateOrNull(templateDatabase.getScope(), scopeUniqueCode);
|
||||
TemplateDatabase templateDb = templateDatabaseQueryService.getOrThrow(request.getTemplateDatabaseCode());
|
||||
FileDatabase savedDb = fileDatabaseDao.findForUpdateOrNull(templateDb.getScope(), templateDb.getCode(),
|
||||
scopeUniqueCode);
|
||||
if (savedDb != null)
|
||||
throw new FileDatabaseExistsException("无法重复创建, 请刷新页面查询已创建的记录");
|
||||
SimpleWorkspaceRes workspace = RpcExternalUtil.rpcApolloProcessor(
|
||||
() -> workspaceApi.getOne(request.getWorkspaceId()), "查询租户", request.getWorkspaceId());
|
||||
BizAssertions.assertNotNull(workspace, "找不到对应的租户");
|
||||
BizAssertions.assertEquals(workspace.getType(), templateDatabase.getScope().getWorkspaceType(),
|
||||
"请求租户类型和资料库的租户类型不匹配");
|
||||
BizAssertions.assertEquals(workspace.getType(), templateDb.getScope().getWorkspaceType(), "请求租户类型和资料库的租户类型不匹配");
|
||||
FileDatabase db = new FileDatabase();
|
||||
db.setCode(UUIDUtil.uuidString());
|
||||
db.setTemplateDatabaseCode(templateDatabase.getCode());
|
||||
db.setScope(templateDatabase.getScope());
|
||||
db.setTemplateDatabaseCode(templateDb.getCode());
|
||||
db.setScope(templateDb.getScope());
|
||||
db.setScopeUniqueCode(scopeUniqueCode);
|
||||
db.setWorkspaceId(request.getWorkspaceId());
|
||||
db.setState(FileDatabaseState.ACTIVATING);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user