TASK:模块化;

This commit is contained in:
shahaibo
2025-04-07 16:07:26 +08:00
parent 96ba29a9a2
commit d1603fbc16
3 changed files with 166 additions and 124 deletions

View File

@@ -31,7 +31,7 @@ public class PortfolioController {
@ApiOperation(value = "发布作品集")
@PostMapping("/publish")
public Response<Long> preLogin(@RequestParam("file") MultipartFile canvas, @RequestParam("data") String data) {
public Response<Long> publish(@RequestParam("file") MultipartFile canvas, @RequestParam("data") String data) {
return Response.success(portfolioService.publish(canvas, data));
}
@@ -57,7 +57,7 @@ public class PortfolioController {
@ApiOperation(value = "选择作品")
@PostMapping("/choose")
public Response<UserLikeChooseVO> choose(@Valid @RequestBody PortfolioDTO portfolioDTO) {
public Response<ProjectChooseVO> choose(@Valid @RequestBody PortfolioDTO portfolioDTO) {
return Response.success(portfolioService.choose(portfolioDTO));
}

View File

@@ -19,7 +19,7 @@ public interface PortfolioService extends IService<Portfolio> {
PortfolioVO detail(PortfolioDTO portfolioDTO);
UserLikeChooseVO choose(PortfolioDTO portfolioDTO);
ProjectChooseVO choose(PortfolioDTO portfolioDTO);
Boolean designWorksRegister(DesignWorksRegisterDTO designWorksRegisterDTO);

View File

@@ -125,6 +125,9 @@ public class PortfolioServiceImpl extends ServiceImpl<PortfolioMapper, Portfolio
@Resource
private TagsMapper tagsMapper;
@Resource
private ProjectMapper projectMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public Long publish(MultipartFile file, String data) {
@@ -154,9 +157,26 @@ public class PortfolioServiceImpl extends ServiceImpl<PortfolioMapper, Portfolio
if (portfolioDTO.getOpenSource() == 1) {
UserLikeGroup userLikeGroup = userLikeGroupMapper.selectById(portfolioDTO.getUserLikeGroupId());
Long projectId = userLikeGroup.getProjectId();
Project project = projectMapper.selectById(projectId);
Long workspaceServiceByProjectId = workspaceService.getByProjectId(project.getId());
Workspace workspace = workspaceMapper.selectById(workspaceServiceByProjectId);
project.setId(null);
project.setAccountId(-1L);
project.setCreateTime(LocalDateTime.now());
projectMapper.insert(project);
workspace.setProjectId(project.getId());
workspace.setAccountId(-1L);
workspaceMapper.insert(workspace);
UserLikeGroup userLikeGroupNew = CopyUtil.copyObject(userLikeGroup, UserLikeGroup.class);
userLikeGroupNew.setId(null);
userLikeGroupNew.setAccountId(-1L);
userLikeGroupNew.setProjectId(project.getId());
Long collectionIdOld = userLikeGroup.getCollectionId();
QueryWrapper<Design> designQueryWrapper = new QueryWrapper<>();
designQueryWrapper.lambda().eq(Design::getCollectionId, collectionIdOld);
@@ -173,6 +193,7 @@ public class PortfolioServiceImpl extends ServiceImpl<PortfolioMapper, Portfolio
userLikeGroupMapper.insert(userLikeGroupNew);
for (CollectionElement element : collectionElementListOld) {
element.setCollectionId(collectionIdNew);
element.setProjectId(project.getId());
element.setId(null);
collectionElementMapper.insert(element);
TCollectionElementRelation collectionElementRelationNew = new TCollectionElementRelation();
@@ -631,19 +652,29 @@ public class PortfolioServiceImpl extends ServiceImpl<PortfolioMapper, Portfolio
@Override
@Transactional(rollbackFor = Exception.class)
public UserLikeChooseVO choose(PortfolioDTO portfolioDTO) {
public ProjectChooseVO choose(PortfolioDTO portfolioDTO) {
AuthPrincipalVo authPrincipalVo = UserContext.getUserHolder();
Portfolio portfolio = portfolioMapper.selectById(portfolioDTO.getId());
QueryWrapper<UserLikeGroup> userLikeGroupQueryWrapper = new QueryWrapper<>();
userLikeGroupQueryWrapper.lambda().eq(UserLikeGroup::getCollectionId, portfolio.getCollectionId());
UserLikeGroup userLikeGroup = userLikeGroupMapper.selectOne(userLikeGroupQueryWrapper);
Long portfolioUserLikeGroupId = userLikeGroup.getId();
if (Objects.isNull(userLikeGroup)) {
throw new BusinessException("");
}
Long portfolioUserLikeGroupId = userLikeGroup.getId();
Project project = projectMapper.selectById(userLikeGroup.getProjectId());
Long projectIdOld = project.getId();
project.setCreateTime(LocalDateTime.now());
project.setId(null);
project.setAccountId(authPrincipalVo.getId());
project.setName(project.getName() + "_copy");
projectMapper.insert(project);
UserLikeGroup userLikeGroupNew = CopyUtil.copyObject(userLikeGroup, UserLikeGroup.class);
userLikeGroupNew.setId(null);
userLikeGroupNew.setCreateDate(new Date());
userLikeGroupNew.setProjectId(project.getId());
if (portfolio.getOriginal() == 1) {
if (Objects.equals(portfolio.getAccountId(), authPrincipalVo.getId())) {
userLikeGroupNew.setOriginal(1);
@@ -692,6 +723,7 @@ public class PortfolioServiceImpl extends ServiceImpl<PortfolioMapper, Portfolio
userLikeGroupMapper.insert(userLikeGroupNew);
// List<TCollectionElementRelation> collectionElementRelationListNew = new ArrayList<>();
for (CollectionElement element : collectionElementListOld) {
element.setProjectId(project.getId());
element.setCollectionId(collectionIdNew);
element.setId(null);
collectionElementMapper.insert(element);
@@ -766,126 +798,136 @@ public class PortfolioServiceImpl extends ServiceImpl<PortfolioMapper, Portfolio
}
}
Long collectionId = portfolio.getCollectionId();
QueryWrapper<Design> getWorkspaceQw = new QueryWrapper<>();
getWorkspaceQw.lambda().eq(Design::getCollectionId, collectionId);
List<Design> designs = designMapper.selectList(getWorkspaceQw);
if (!CollectionUtils.isEmpty(designs)) {
Design design1 = designs.get(0);
Long accountId = authPrincipalVo.getId();
QueryWrapper<Workspace> currentWorkspaceQw = new QueryWrapper<>();
currentWorkspaceQw.lambda().eq(Workspace::getAccountId, accountId);
currentWorkspaceQw.lambda().eq(Workspace::getIsLastIndex, 1);
List<Workspace> workspaces = workspaceMapper.selectList(currentWorkspaceQw);
if (!CollectionUtils.isEmpty(workspaces)) {
Workspace workspace1 = workspaces.get(0);
workspace1.setIsLastIndex(0);
workspaceMapper.updateById(workspace1);
Workspace workspaceNew = new Workspace();
String workspaceName = "workspace of " + accountMapper.selectById(portfolio.getAccountId()).getUserName() + portfolio.getPortfolioName();
QueryWrapper<Workspace> existSameNameQw = new QueryWrapper<>();
existSameNameQw.lambda().eq(Workspace::getWorkSpaceName, workspaceName);
existSameNameQw.lambda().eq(Workspace::getAccountId, authPrincipalVo.getId());
List<Workspace> existSameNameList = workspaceMapper.selectList(existSameNameQw);
if (!CollectionUtils.isEmpty(existSameNameList)) {
workspaceName = workspaceName + "_copy";
}
workspaceNew.setWorkSpaceName(workspaceName);
workspaceNew.setAccountId(accountId);
workspaceNew.setIsDeleted(0);
workspaceNew.setIsLastIndex(1);
workspaceNew.setCreateTime(LocalDateTime.now());
workspaceNew.setSystemDesignerPercentage((design1.getSystemScale().multiply(BigDecimal.valueOf(100)).intValue()));
if (design1.getSingleOverall().equals("overall")) {
workspaceNew.setPosition("Overall");
} else {
workspaceNew.setPosition(design1.getSwitchCategory());
}
workspaceMapper.insert(workspaceNew);
if (design1.getModelType().equals("System")) {
SysFile sysFile = sysFileMapper.selectById(design1.getTemplateId());
if (sysFile.getLevel2Type().equals("Female")) {
workspaceNew.setSex("Female");
workspaceNew.setMannequinFemaleId(design1.getTemplateId());
workspaceNew.setMannequinFemaleType("System");
QueryWrapper<SysFile> getAnotherOneQw = new QueryWrapper<>();
getAnotherOneQw.lambda().eq(SysFile::getLevel1Type, "Models");
getAnotherOneQw.lambda().eq(SysFile::getLevel2Type, "Male");
if (!StringUtils.isEmpty(sysFile.getLevel3Type())) {
getAnotherOneQw.lambda().eq(SysFile::getLevel3Type, sysFile.getLevel3Type());
QueryWrapper<Style> styleQueryWrapper = new QueryWrapper<>();
styleQueryWrapper.lambda().eq(Style::getName, sysFile.getLevel3Type());
Style style = styleMapper.selectOne(styleQueryWrapper);
WorkspaceRelStyle workspaceRelStyle = new WorkspaceRelStyle();
workspaceRelStyle.setStyleId(style.getId());
workspaceRelStyle.setWorkspaceId(workspaceNew.getId());
workspaceRelStyleMapper.insert(workspaceRelStyle);
}
List<SysFile> anotherList = sysFileMapper.selectList(getAnotherOneQw);
if (!CollectionUtils.isEmpty(anotherList)) {
SysFile anotherOne = anotherList.get(0);
workspaceNew.setMannequinMaleId(anotherOne.getId());
workspaceNew.setMannequinMaleType("System");
}
} else {
workspaceNew.setSex("Male");
workspaceNew.setMannequinMaleId(design1.getTemplateId());
workspaceNew.setMannequinMaleType("System");
QueryWrapper<SysFile> getAnotherOneQw = new QueryWrapper<>();
getAnotherOneQw.lambda().eq(SysFile::getLevel1Type, "Models");
getAnotherOneQw.lambda().eq(SysFile::getLevel2Type, "Female");
if (!StringUtils.isEmpty(sysFile.getLevel3Type())) {
getAnotherOneQw.lambda().eq(SysFile::getLevel3Type, sysFile.getLevel3Type());
QueryWrapper<Style> styleQueryWrapper = new QueryWrapper<>();
styleQueryWrapper.lambda().eq(Style::getName, sysFile.getLevel3Type());
Style style = styleMapper.selectOne(styleQueryWrapper);
WorkspaceRelStyle workspaceRelStyle = new WorkspaceRelStyle();
workspaceRelStyle.setStyleId(style.getId());
workspaceRelStyle.setWorkspaceId(workspaceNew.getId());
workspaceRelStyleMapper.insert(workspaceRelStyle);
}
List<SysFile> anotherList = sysFileMapper.selectList(getAnotherOneQw);
if (!CollectionUtils.isEmpty(anotherList)) {
SysFile anotherOne = anotherList.get(0);
workspaceNew.setMannequinFemaleId(anotherOne.getId());
workspaceNew.setMannequinFemaleType("System");
}
}
} else {
Library library = libraryMapper.selectById(design1.getTemplateId());
if (library.getLevel2Type().equals("Female")) {
workspaceNew.setSex("Female");
workspaceNew.setMannequinFemaleId(design1.getTemplateId());
workspaceNew.setMannequinFemaleType("Library");
QueryWrapper<SysFile> getAnotherOneQw = new QueryWrapper<>();
getAnotherOneQw.lambda().eq(SysFile::getLevel1Type, "Models");
getAnotherOneQw.lambda().eq(SysFile::getLevel2Type, "Male");
List<SysFile> anotherList = sysFileMapper.selectList(getAnotherOneQw);
if (!CollectionUtils.isEmpty(anotherList)) {
SysFile anotherOne = anotherList.get(0);
workspaceNew.setMannequinMaleId(anotherOne.getId());
workspaceNew.setMannequinMaleType("System");
}
} else {
workspaceNew.setSex("Male");
workspaceNew.setMannequinMaleId(design1.getTemplateId());
workspaceNew.setMannequinMaleType("Library");
QueryWrapper<SysFile> getAnotherOneQw = new QueryWrapper<>();
getAnotherOneQw.lambda().eq(SysFile::getLevel1Type, "Models");
getAnotherOneQw.lambda().eq(SysFile::getLevel2Type, "Female");
List<SysFile> anotherList = sysFileMapper.selectList(getAnotherOneQw);
if (!CollectionUtils.isEmpty(anotherList)) {
SysFile anotherOne = anotherList.get(0);
workspaceNew.setMannequinFemaleId(anotherOne.getId());
workspaceNew.setMannequinFemaleType("System");
}
}
}
workspaceMapper.updateById(workspaceNew);
}
}
// Long collectionId = portfolio.getCollectionId();
// QueryWrapper<Design> getWorkspaceQw = new QueryWrapper<>();
// getWorkspaceQw.lambda().eq(Design::getCollectionId, collectionId);
// List<Design> designs = designMapper.selectList(getWorkspaceQw);
// if (!CollectionUtils.isEmpty(designs)) {
// Design design1 = designs.get(0);
// Long accountId = authPrincipalVo.getId();
// QueryWrapper<Workspace> currentWorkspaceQw = new QueryWrapper<>();
// currentWorkspaceQw.lambda().eq(Workspace::getAccountId, accountId);
// currentWorkspaceQw.lambda().eq(Workspace::getIsLastIndex, 1);
// List<Workspace> workspaces = workspaceMapper.selectList(currentWorkspaceQw);
// if (!CollectionUtils.isEmpty(workspaces)) {
// Workspace workspace1 = workspaces.get(0);
// workspace1.setIsLastIndex(0);
// workspaceMapper.updateById(workspace1);
// Workspace workspaceNew = new Workspace();
// String workspaceName = "workspace of " + accountMapper.selectById(portfolio.getAccountId()).getUserName() + portfolio.getPortfolioName();
// QueryWrapper<Workspace> existSameNameQw = new QueryWrapper<>();
// existSameNameQw.lambda().eq(Workspace::getWorkSpaceName, workspaceName);
// existSameNameQw.lambda().eq(Workspace::getAccountId, authPrincipalVo.getId());
// List<Workspace> existSameNameList = workspaceMapper.selectList(existSameNameQw);
// if (!CollectionUtils.isEmpty(existSameNameList)) {
// workspaceName = workspaceName + "_copy";
// }
// workspaceNew.setWorkSpaceName(workspaceName);
// workspaceNew.setAccountId(accountId);
// workspaceNew.setIsDeleted(0);
// workspaceNew.setIsLastIndex(1);
// workspaceNew.setCreateTime(LocalDateTime.now());
// workspaceNew.setSystemDesignerPercentage((design1.getSystemScale().multiply(BigDecimal.valueOf(100)).intValue()));
// if (design1.getSingleOverall().equals("overall")) {
// workspaceNew.setPosition("Overall");
// } else {
// workspaceNew.setPosition(design1.getSwitchCategory());
// }
// workspaceMapper.insert(workspaceNew);
// if (design1.getModelType().equals("System")) {
// SysFile sysFile = sysFileMapper.selectById(design1.getTemplateId());
// if (sysFile.getLevel2Type().equals("Female")) {
// workspaceNew.setSex("Female");
// workspaceNew.setMannequinFemaleId(design1.getTemplateId());
// workspaceNew.setMannequinFemaleType("System");
// QueryWrapper<SysFile> getAnotherOneQw = new QueryWrapper<>();
// getAnotherOneQw.lambda().eq(SysFile::getLevel1Type, "Models");
// getAnotherOneQw.lambda().eq(SysFile::getLevel2Type, "Male");
// if (!StringUtils.isEmpty(sysFile.getLevel3Type())) {
// getAnotherOneQw.lambda().eq(SysFile::getLevel3Type, sysFile.getLevel3Type());
// QueryWrapper<Style> styleQueryWrapper = new QueryWrapper<>();
// styleQueryWrapper.lambda().eq(Style::getName, sysFile.getLevel3Type());
// Style style = styleMapper.selectOne(styleQueryWrapper);
// WorkspaceRelStyle workspaceRelStyle = new WorkspaceRelStyle();
// workspaceRelStyle.setStyleId(style.getId());
// workspaceRelStyle.setWorkspaceId(workspaceNew.getId());
// workspaceRelStyleMapper.insert(workspaceRelStyle);
// }
// List<SysFile> anotherList = sysFileMapper.selectList(getAnotherOneQw);
// if (!CollectionUtils.isEmpty(anotherList)) {
// SysFile anotherOne = anotherList.get(0);
// workspaceNew.setMannequinMaleId(anotherOne.getId());
// workspaceNew.setMannequinMaleType("System");
// }
// } else {
// workspaceNew.setSex("Male");
// workspaceNew.setMannequinMaleId(design1.getTemplateId());
// workspaceNew.setMannequinMaleType("System");
// QueryWrapper<SysFile> getAnotherOneQw = new QueryWrapper<>();
// getAnotherOneQw.lambda().eq(SysFile::getLevel1Type, "Models");
// getAnotherOneQw.lambda().eq(SysFile::getLevel2Type, "Female");
// if (!StringUtils.isEmpty(sysFile.getLevel3Type())) {
// getAnotherOneQw.lambda().eq(SysFile::getLevel3Type, sysFile.getLevel3Type());
// QueryWrapper<Style> styleQueryWrapper = new QueryWrapper<>();
// styleQueryWrapper.lambda().eq(Style::getName, sysFile.getLevel3Type());
// Style style = styleMapper.selectOne(styleQueryWrapper);
// WorkspaceRelStyle workspaceRelStyle = new WorkspaceRelStyle();
// workspaceRelStyle.setStyleId(style.getId());
// workspaceRelStyle.setWorkspaceId(workspaceNew.getId());
// workspaceRelStyleMapper.insert(workspaceRelStyle);
// }
// List<SysFile> anotherList = sysFileMapper.selectList(getAnotherOneQw);
// if (!CollectionUtils.isEmpty(anotherList)) {
// SysFile anotherOne = anotherList.get(0);
// workspaceNew.setMannequinFemaleId(anotherOne.getId());
// workspaceNew.setMannequinFemaleType("System");
// }
// }
// } else {
// Library library = libraryMapper.selectById(design1.getTemplateId());
// if (library.getLevel2Type().equals("Female")) {
// workspaceNew.setSex("Female");
// workspaceNew.setMannequinFemaleId(design1.getTemplateId());
// workspaceNew.setMannequinFemaleType("Library");
// QueryWrapper<SysFile> getAnotherOneQw = new QueryWrapper<>();
// getAnotherOneQw.lambda().eq(SysFile::getLevel1Type, "Models");
// getAnotherOneQw.lambda().eq(SysFile::getLevel2Type, "Male");
// List<SysFile> anotherList = sysFileMapper.selectList(getAnotherOneQw);
// if (!CollectionUtils.isEmpty(anotherList)) {
// SysFile anotherOne = anotherList.get(0);
// workspaceNew.setMannequinMaleId(anotherOne.getId());
// workspaceNew.setMannequinMaleType("System");
// }
// } else {
// workspaceNew.setSex("Male");
// workspaceNew.setMannequinMaleId(design1.getTemplateId());
// workspaceNew.setMannequinMaleType("Library");
// QueryWrapper<SysFile> getAnotherOneQw = new QueryWrapper<>();
// getAnotherOneQw.lambda().eq(SysFile::getLevel1Type, "Models");
// getAnotherOneQw.lambda().eq(SysFile::getLevel2Type, "Female");
// List<SysFile> anotherList = sysFileMapper.selectList(getAnotherOneQw);
// if (!CollectionUtils.isEmpty(anotherList)) {
// SysFile anotherOne = anotherList.get(0);
// workspaceNew.setMannequinFemaleId(anotherOne.getId());
// workspaceNew.setMannequinFemaleType("System");
// }
// }
// }
// workspaceMapper.updateById(workspaceNew);
// }
// }
Long workspaceIdOld = workspaceService.getByProjectId(projectIdOld);
Workspace workspaceCopy = workspaceMapper.selectById(workspaceIdOld);
workspaceCopy.setAccountId(authPrincipalVo.getId());
workspaceCopy.setProjectId(project.getId());
workspaceCopy.setId(null);
workspaceMapper.insert(workspaceCopy);
return userLikeGroupService.choose(userLikeGroupNew.getId());
ProjectDTO projectDTO = new ProjectDTO();
projectDTO.setId(project.getId());
return userLikeGroupService.choose(projectDTO);
}
@Override