diff --git a/src/main/java/com/ai/da/controller/AccountController.java b/src/main/java/com/ai/da/controller/AccountController.java index 3f807c24..0d45b622 100644 --- a/src/main/java/com/ai/da/controller/AccountController.java +++ b/src/main/java/com/ai/da/controller/AccountController.java @@ -137,4 +137,10 @@ public class AccountController { returnMap.put("code",200); return Response.success(returnMap); } + + @ApiOperation(value = "查询账号到期时间") + @PostMapping("/getExpiredTime") + public Response getExpiredTime(){ + return Response.success(accountService.getExpiredTime()); + } } diff --git a/src/main/java/com/ai/da/controller/ClassificationController.java b/src/main/java/com/ai/da/controller/ClassificationController.java index 8c8f75ae..cbe95c14 100644 --- a/src/main/java/com/ai/da/controller/ClassificationController.java +++ b/src/main/java/com/ai/da/controller/ClassificationController.java @@ -81,4 +81,28 @@ public class ClassificationController { return Response.success(classificationService.getRelClassificationIdList(classificationDTO)); } + /** + * 多选 获取共有标签 + * @param classificationDTO + * @return + */ + @PostMapping("/getRelPublicClassificationIdList") + @ApiOperationSupport(order = 5) + @ApiModelProperty(value = "获取关联公共分类IDList", notes = "传入ClassificationDTO") + public Response> getRelPublicClassificationIdList(@Valid @RequestBody ClassificationDTO classificationDTO) { + return Response.success(classificationService.getRelPublicClassificationIdList(classificationDTO)); + } + + /** + * 多选 编辑共有标签 + * @param classificationDTO + * @return + */ + @PostMapping("/editRelPublicClassificationIdList") + @ApiOperationSupport(order = 5) + @ApiModelProperty(value = "编辑关联公共分类IDList", notes = "传入ClassificationDTO") + public Response editRelPublicClassificationIdList(@Valid @RequestBody ClassificationDTO classificationDTO) { + return Response.success(classificationService.editRelPublicClassificationIdList(classificationDTO)); + } + } diff --git a/src/main/java/com/ai/da/service/AccountService.java b/src/main/java/com/ai/da/service/AccountService.java index 212458ad..57ebf72f 100644 --- a/src/main/java/com/ai/da/service/AccountService.java +++ b/src/main/java/com/ai/da/service/AccountService.java @@ -113,4 +113,6 @@ public interface AccountService extends IService { Boolean switchIsAutoApproval(); Boolean trialOrderRefuse(List ids); + + Long getExpiredTime(); } diff --git a/src/main/java/com/ai/da/service/ClassificationService.java b/src/main/java/com/ai/da/service/ClassificationService.java index 5ab946c0..2cdbe5de 100644 --- a/src/main/java/com/ai/da/service/ClassificationService.java +++ b/src/main/java/com/ai/da/service/ClassificationService.java @@ -33,4 +33,8 @@ public interface ClassificationService { List getLibraryIdListByClassificationId(Long classificationId); List getRelClassificationIdList(ClassificationDTO classificationDTO); + + List getRelPublicClassificationIdList(ClassificationDTO classificationDTO); + + Boolean editRelPublicClassificationIdList(ClassificationDTO classificationDTO); } diff --git a/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java b/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java index 9b3f87c0..74c68055 100644 --- a/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java @@ -560,4 +560,10 @@ public class AccountServiceImpl extends ServiceImpl impl } return Boolean.TRUE; } + + @Override + public Long getExpiredTime() { + AuthPrincipalVo userInfo = UserContext.getUserHolder(); + return accountMapper.selectById(userInfo.getId()).getValidEndTime(); + } } diff --git a/src/main/java/com/ai/da/service/impl/ClassificationServiceImpl.java b/src/main/java/com/ai/da/service/impl/ClassificationServiceImpl.java index d2453d2d..089052d1 100644 --- a/src/main/java/com/ai/da/service/impl/ClassificationServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/ClassificationServiceImpl.java @@ -191,6 +191,69 @@ public class ClassificationServiceImpl implements ClassificationService { return new ArrayList<>(); } + @Override + public List getRelPublicClassificationIdList(ClassificationDTO classificationDTO) { + List libraryIdList = classificationDTO.getLibraryIdList(); + if (CollectionUtil.isEmpty(libraryIdList)) { + throw new BusinessException("libraryIdList.cannot.be.empty"); + } + List classificationIdList = new ArrayList<>(); + // 遍历获取library关联的公共标签,返回给前端 + for (int i = 0; i < libraryIdList.size(); i++) { + QueryWrapper qw = new QueryWrapper<>(); + qw.lambda().eq(ClassificationRelLibrary::getLibraryId, libraryIdList.get(i)); + List collect = classificationRelLibraryMapper.selectList(qw) + .stream() + .map(ClassificationRelLibrary::getClassificationId) + .distinct() + .collect(Collectors.toList()); + if (i == 0) { + classificationIdList.addAll(collect); + }else { + classificationIdList.retainAll(collect); + } + } + return classificationIdList; + } + + @Override + public Boolean editRelPublicClassificationIdList(ClassificationDTO classificationDTO) { + List relPublicClassificationIdList = getRelPublicClassificationIdList(classificationDTO); + List deleteIdList = relPublicClassificationIdList.stream() + .filter(item -> !classificationDTO.getClassificationIdList().contains(item)) + .collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(deleteIdList)) { + for (Long libraryId : classificationDTO.getLibraryIdList()) { + QueryWrapper qw = new QueryWrapper<>(); + qw.lambda().eq(ClassificationRelLibrary::getLibraryId, libraryId); + qw.lambda().in(ClassificationRelLibrary::getClassificationId, deleteIdList); + classificationRelLibraryMapper.delete(qw); + } + } + List addIdList = classificationDTO.getClassificationIdList().stream() + .filter(item -> !relPublicClassificationIdList.contains(item)) + .collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(addIdList)) { + for (Long libraryId : classificationDTO.getLibraryIdList()) { + for (Long classificationId : addIdList) { + QueryWrapper qw = new QueryWrapper<>(); + qw.lambda().eq(ClassificationRelLibrary::getLibraryId, libraryId); + qw.lambda().eq(ClassificationRelLibrary::getClassificationId, classificationId); + List exist = classificationRelLibraryMapper.selectList(qw); + if (CollectionUtil.isEmpty(exist)) { + ClassificationRelLibrary classificationRelLibrary = new ClassificationRelLibrary(); + classificationRelLibrary.setClassificationId(classificationId); + classificationRelLibrary.setLibraryId(libraryId); + classificationRelLibrary.setCreateTime(LocalDateTime.now()); + classificationRelLibrary.setIsDeleted(0); + classificationRelLibraryMapper.insert(classificationRelLibrary); + } + } + } + } + return Boolean.TRUE; + } + private List getTreeClassificationIdListByClassificationId(Long classificationId) { List classificationIdList = new ArrayList<>(); classificationIdList.add(classificationId); diff --git a/src/main/resources/messages_en.properties b/src/main/resources/messages_en.properties index 893ffb07..3fa4295a 100644 --- a/src/main/resources/messages_en.properties +++ b/src/main/resources/messages_en.properties @@ -130,7 +130,8 @@ the.workspace.lastIndex.not.found=The workspace lastIndex not found. gender.cannot.be.empty=gender cannot be empty. image.synthesis.failed=image synthesis failed. priority.cannot.be.repeated=priority cannot be repeated. -model.not.found=model not found +model.not.found=model not found. +libraryIdList.cannot.be.empty=libraryIdList cannot be empty. # 可能会报异常 # Informative: