|
@@ -0,0 +1,144 @@
|
|
|
+package com.project.hyb.biz.service.impl;
|
|
|
+
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
+import com.baomidou.dynamic.datasource.annotation.DS;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.google.common.collect.Sets;
|
|
|
+import com.project.hyb.biz.domain.dto.ArtAttachmentFolderDto;
|
|
|
+import com.project.hyb.biz.domain.dto.MbArtArtworksDto;
|
|
|
+import com.project.hyb.biz.domain.entity.*;
|
|
|
+import com.project.hyb.biz.domain.request.ArtArtworksPageRequest;
|
|
|
+import com.project.hyb.biz.mapper.MbArtArtworksMapper;
|
|
|
+import com.project.hyb.biz.service.*;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.project.hyb.common.exception.BizException;
|
|
|
+import com.project.hyb.common.response.BizResponseCode;
|
|
|
+import com.project.hyb.common.response.PageInfo;
|
|
|
+import com.project.hyb.common.response.R;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+/**
|
|
|
+ * <p>
|
|
|
+ * 服务实现类
|
|
|
+ * </p>
|
|
|
+ *
|
|
|
+ * @author
|
|
|
+ * @since 2025-08-05
|
|
|
+ */
|
|
|
+@DS("artmember")
|
|
|
+@Service
|
|
|
+public class MbArtArtworksServiceImpl extends ServiceImpl<MbArtArtworksMapper, MbArtArtworks> implements MbArtArtworksService {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SysAttachmentsService sysAttachmentsService;
|
|
|
+ @Autowired
|
|
|
+ private ArtAttachmentFoldersService artAttachmentFoldersService;
|
|
|
+ @Autowired
|
|
|
+ private ArtArtworksService artArtworksService;
|
|
|
+ @Autowired
|
|
|
+ private ArtAttachmentsService artAttachmentsService;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public PageInfo<MbArtArtworksDto> pageArtArtworks(ArtArtworksPageRequest request) {
|
|
|
+ IPage<MbArtArtworksDto> convert = this.page(new Page<>(request.getPageNo(), request.getPageSize()),
|
|
|
+ new LambdaQueryWrapper<MbArtArtworks>().isNotNull(MbArtArtworks::getThumbnail)).convert(v -> BeanUtil.toBean(v, MbArtArtworksDto.class));
|
|
|
+ return PageInfo.convert(convert);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<String> listCategory() {
|
|
|
+ return this.getBaseMapper().listCategory();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<MbArtArtworks> listArtArtworks(ArtArtworksPageRequest request) {
|
|
|
+ return this.getBaseMapper().listArtArtworks(request);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public MbArtArtworksDto getArtArtworkById(Long id) {
|
|
|
+ MbArtArtworks byId = this.getById(id);
|
|
|
+ if(byId == null){
|
|
|
+ throw new BizException(BizResponseCode.ERR_10001);
|
|
|
+ }
|
|
|
+
|
|
|
+ MbArtArtworksDto bean = BeanUtil.toBean(byId, MbArtArtworksDto.class);
|
|
|
+
|
|
|
+ //查询图片文件
|
|
|
+ List<SysAttachments> imgs = sysAttachmentsService.list(
|
|
|
+ new LambdaQueryWrapper<SysAttachments>()
|
|
|
+ .eq(SysAttachments::getRecordid, bean.getArtworkUuid())
|
|
|
+ .eq(SysAttachments::getModules, "artwork")
|
|
|
+ .eq(SysAttachments::getCategory, 1));
|
|
|
+ if(CollUtil.isNotEmpty(imgs)){
|
|
|
+ bean.setImgFiles(imgs.stream().map(v->v.getServerpath() + v.getServername() + "." + v.getExtension()).collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询模型文件
|
|
|
+ List<ArtAttachmentFolderDto> artAttachmentFolderDtoList = artAttachmentFoldersService.list4dage(Sets.newHashSet(bean.getArtworkUuid()));
|
|
|
+ if(CollUtil.isNotEmpty(artAttachmentFolderDtoList)){
|
|
|
+ bean.setModelFiles(artAttachmentFolderDtoList.stream().map(v->v.getFilePath()).collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+// ArtArtworks artArtworks = artArtworksService.getOne(new LambdaQueryWrapper<ArtArtworks>().eq(ArtArtworks::getArtworkuuid, bean.getArtworkUuid()));
|
|
|
+//
|
|
|
+// List<ArtAttachments> artAttachmentsList = artAttachmentsService.list(
|
|
|
+// new LambdaQueryWrapper<ArtAttachments>()
|
|
|
+// .eq(ArtAttachments::getArtworkid, artArtworks.getId())
|
|
|
+// .eq(ArtAttachments::getModules, "artwork")
|
|
|
+// .eq(ArtAttachments::getCategory, 6));
|
|
|
+//
|
|
|
+// if(CollUtil.isNotEmpty(artAttachmentsList)){
|
|
|
+// Set<String> attachmentUuids = artAttachmentsList.stream().map(v -> v.getAttachmentUuid()).collect(Collectors.toSet());
|
|
|
+// List<ArtAttachmentFolders> artAttachmentFolders = artAttachmentFoldersService.list(
|
|
|
+// new LambdaQueryWrapper<ArtAttachmentFolders>()
|
|
|
+// .eq(ArtAttachmentFolders::getExtension, "4dage")
|
|
|
+// .eq(ArtAttachmentFolders::getModules, "artwork")
|
|
|
+// .in(ArtAttachmentFolders::getAttachmentuuid, attachmentUuids));
|
|
|
+// bean.setModelFiles(artAttachmentFolders.stream().map(v->v.getServerpath() + v.getServername()).collect(Collectors.toList()));
|
|
|
+// }
|
|
|
+
|
|
|
+ return bean;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<MbArtArtworksDto> listArtWork(ArtArtworksPageRequest request) {
|
|
|
+ List<MbArtArtworks> list = this.listArtArtworks(request);
|
|
|
+ if(CollUtil.isEmpty(list)){
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询模型文件
|
|
|
+ Map<String, MbArtArtworksDto> mbArtArtworkMap = list.stream().collect(Collectors.toMap(v -> v.getArtworkUuid(), v->{
|
|
|
+ MbArtArtworksDto dto = BeanUtil.toBean(v, MbArtArtworksDto.class);
|
|
|
+ dto.setDim(1);
|
|
|
+ return dto;
|
|
|
+ }));
|
|
|
+
|
|
|
+ List<ArtAttachmentFolderDto> artAttachmentFolderDtoList = artAttachmentFoldersService.list4dage(mbArtArtworkMap.keySet());
|
|
|
+ if(CollUtil.isNotEmpty(artAttachmentFolderDtoList)){
|
|
|
+ List<String> artworkUuids = artAttachmentFolderDtoList.stream().map(v -> v.getArtworkUuid()).collect(Collectors.toList());
|
|
|
+ mbArtArtworkMap.keySet().stream().forEach(v->{
|
|
|
+ MbArtArtworksDto mbArtArtworksDto = mbArtArtworkMap.get(v);
|
|
|
+ if(artworkUuids.contains(mbArtArtworksDto.getArtworkUuid())){
|
|
|
+ mbArtArtworksDto.setDim(2);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ List<MbArtArtworksDto> listAll = new ArrayList<>(mbArtArtworkMap.values());
|
|
|
+ if(request.getDim() == 3){
|
|
|
+ return listAll;
|
|
|
+ }
|
|
|
+
|
|
|
+ return listAll.stream().filter(v->v.getDim().equals(request.getDim())).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+}
|