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

View File

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

View File

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