dengsixing 1 月之前
父节点
当前提交
7310fd857f

+ 2 - 0
.gitignore

@@ -31,3 +31,5 @@ build/
 
 ### VS Code ###
 .vscode/
+*.log
+registrationno.txt

+ 13 - 0
src/main/java/com/project/hyb/biz/controller/ArtArtworksController.java

@@ -21,6 +21,7 @@ import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.net.URISyntaxException;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -59,6 +60,18 @@ public class ArtArtworksController {
         return R.ok(artArtworksService.listArtWork(request));
     }
 
+    @ApiOperation("首页藏品列表")
+    @GetMapping("index/list")
+    public R<List<MbArtArtworksDto>> indexList() throws URISyntaxException {
+        return R.ok(artArtworksService.indexList());
+    }
+
+    @ApiOperation("藏品列表")
+    @GetMapping("page")
+    public R<PageInfo<MbArtArtworksDto>> page(ArtArtworksPageRequest request){
+        return R.ok(artArtworksService.pageArtWork(request));
+    }
+
     @ApiOperation("获取分类列表")
     @GetMapping("dictionary")
     public R<Map<String, List<String>>> dictionary(){

+ 1 - 3
src/main/java/com/project/hyb/biz/domain/dto/MbArtArtworksDto.java

@@ -804,9 +804,7 @@ public class MbArtArtworksDto implements Serializable {
     @ApiModelProperty("视频文件列表")
     private List<String> videoFiles;
 
-    /**
-     * 1-二维,2-三维
-     */
+    @ApiModelProperty("1-二维文物,2-三维文物")
     private Integer dim;
 
 

+ 5 - 0
src/main/java/com/project/hyb/biz/mapper/MbArtArtworksMapper.java

@@ -1,9 +1,12 @@
 package com.project.hyb.biz.mapper;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.project.hyb.biz.domain.entity.MbArtArtworks;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.project.hyb.biz.domain.request.ArtArtworksPageRequest;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -27,4 +30,6 @@ public interface MbArtArtworksMapper extends BaseMapper<MbArtArtworks> {
     List<String> listAgetype();
 
     List<MbArtArtworks> listArtArtworks(ArtArtworksPageRequest request);
+
+    IPage<MbArtArtworks> pageArtWork(Page<Object> objectPage, @Param("param") ArtArtworksPageRequest request);
 }

+ 5 - 0
src/main/java/com/project/hyb/biz/service/MbArtArtworksService.java

@@ -7,6 +7,7 @@ import com.project.hyb.biz.domain.request.ArtArtworksPageRequest;
 import com.project.hyb.common.response.PageInfo;
 import org.apache.ibatis.annotations.Param;
 
+import java.net.URISyntaxException;
 import java.util.List;
 import java.util.Map;
 
@@ -31,4 +32,8 @@ public interface MbArtArtworksService extends IService<MbArtArtworks> {
     List<MbArtArtworksDto> listArtWork(ArtArtworksPageRequest request);
 
     Map<String, List<String>> dictionary();
+
+    PageInfo<MbArtArtworksDto> pageArtWork(ArtArtworksPageRequest request);
+
+    List<MbArtArtworksDto> indexList() throws URISyntaxException;
 }

+ 69 - 12
src/main/java/com/project/hyb/biz/service/impl/MbArtArtworksServiceImpl.java

@@ -21,8 +21,13 @@ 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.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
+import java.io.File;
+import java.io.FileReader;
+import java.net.URISyntaxException;
+import java.net.URL;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -128,18 +133,6 @@ public class MbArtArtworksServiceImpl extends ServiceImpl<MbArtArtworksMapper, M
             dto.setDim(1);
         }
 
-//        Map<String, MbArtArtworksDto> mbArtArtworkMap = list.stream().collect(Collectors.toMap(v -> v.getArtworkUuid(), v->{
-//            MbArtArtworksDto dto = BeanUtil.toBean(v, MbArtArtworksDto.class);
-//            if(StrUtil.isNotEmpty(dto.getThumbnail())){
-//                String name = FileUtil.getName(dto.getThumbnail());
-//                String prefix = FileUtil.getPrefix(dto.getThumbnail()) + "_750_600";
-//                String extName = FileUtil.extName(dto.getThumbnail());
-//                dto.setThumbnail(dto.getThumbnail().replace(name, prefix + "." + extName));
-//            }
-//            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());
@@ -175,4 +168,68 @@ public class MbArtArtworksServiceImpl extends ServiceImpl<MbArtArtworksMapper, M
         result.put("agetype", this.getBaseMapper().listAgetype().stream().filter(v->StrUtil.isNotEmpty(v)).collect(Collectors.toList()));
         return result;
     }
+
+    @Override
+    public PageInfo<MbArtArtworksDto> pageArtWork(ArtArtworksPageRequest request) {
+        IPage<MbArtArtworksDto> ret = this.getBaseMapper()
+                .pageArtWork(new Page<>(request.getPageNo(), request.getPageSize()), request)
+                .convert(v->BeanUtil.toBean(v, MbArtArtworksDto.class));
+        if(CollUtil.isEmpty(ret.getRecords())){
+            return PageInfo.convert(ret);
+        }
+        List<MbArtArtworksDto> list = ret.getRecords();
+        List<MbArtArtworksDto> dtoList = new ArrayList<>();
+        Map<String, MbArtArtworksDto> mbArtArtworkMap = new HashMap<>();
+        for (MbArtArtworksDto mbArtArtworks : list) {
+            dtoList.add(mbArtArtworks);
+            mbArtArtworkMap.put(mbArtArtworks.getArtworkUuid(), mbArtArtworks);
+            if(StrUtil.isNotEmpty(mbArtArtworks.getThumbnail())){
+                String name = FileUtil.getName(mbArtArtworks.getThumbnail());
+                String prefix = FileUtil.getPrefix(mbArtArtworks.getThumbnail()) + "_750_600";
+                String extName = FileUtil.extName(mbArtArtworks.getThumbnail());
+                mbArtArtworks.setThumbnail(mbArtArtworks.getThumbnail().replace(name, prefix + "." + extName));
+            }
+            mbArtArtworks.setDim(1);
+        }
+
+        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);
+                }
+            });
+        }
+
+
+        return PageInfo.convert(ret);
+    }
+
+    @Override
+    public List<MbArtArtworksDto> indexList() throws URISyntaxException {
+        String currentDir = System.getProperty("user.dir");
+        // 构建同级目录文件的路径,例如"../siblingFile.txt"(注意Linux和Windows路径可能有所不同)
+        File siblingFile = new File(currentDir, "registrationno.txt");
+        List<String> registrationnos = FileUtil.readUtf8Lines(siblingFile);
+        if(CollUtil.isEmpty(registrationnos)){
+            return null;
+        }
+        List<MbArtArtworks> list = this.list(new LambdaQueryWrapper<MbArtArtworks>().in(MbArtArtworks::getRegistrationno, registrationnos) .isNotNull(MbArtArtworks::getThumbnail));
+        if(CollUtil.isEmpty(list)){
+            return null;
+        }
+        List<MbArtArtworksDto> collect = list.stream().map(v -> {
+            MbArtArtworksDto bean = BeanUtil.toBean(v, MbArtArtworksDto.class);
+            if (StrUtil.isNotEmpty(bean.getThumbnail())) {
+                String name = FileUtil.getName(bean.getThumbnail());
+                String prefix = FileUtil.getPrefix(bean.getThumbnail()) + "_750_600";
+                String extName = FileUtil.extName(bean.getThumbnail());
+                bean.setThumbnail(bean.getThumbnail().replace(name, prefix + "." + extName));
+            }
+            return bean;
+        }).collect(Collectors.toList());
+        return collect;
+    }
 }

+ 1 - 1
src/main/resources/application.yml

@@ -8,7 +8,7 @@ spring:
   application:
     name: project-hyb
   profiles:
-    active: prod
+    active: local
   jackson:
     serialization:
       #关闭jackson转换 实体属性空值校验

+ 3 - 4
src/main/resources/mapper/biz/ArtAttachmentFoldersMapper.xml

@@ -2,13 +2,12 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.project.hyb.biz.mapper.ArtAttachmentFoldersMapper">
     <select id="list4dage" resultType="com.project.hyb.biz.domain.dto.ArtAttachmentFolderDto">
-        SELECT aa.`artwork_uuid`, CONCAT(b.serverpath,aaf.originname) filepath
-        FROM artmember.art_artworks aa
-        INNER JOIN artoffice_museum.art_artworks a ON aa.artwork_uuid = a.artworkuuid
+        SELECT a.`artworkuuid`, CONCAT(b.serverpath,aaf.originname) filepath
+        from artoffice_museum.art_artworks a
         INNER JOIN artoffice_museum.art_attachments b ON a.id = b.artworkid AND b.category = 6 AND a.recordstatus = 1 AND b.recordstatus = 1
         INNER JOIN artoffice_museum.art_attachment_folders aaf  ON b.attachment_uuid =  aaf.attachmentuuid AND aaf.`recordstatus` = 1
         AND aaf.`extension` = '4dage'
-        where aa.`artwork_uuid` in
+        where a.`artworkuuid` in
         <foreach collection="artworkUuids" item="uuid" open="(" close=")" separator=",">
             #{uuid}
         </foreach>

+ 71 - 0
src/main/resources/mapper/biz/MbArtArtworksMapper.xml

@@ -72,4 +72,75 @@
             )
         </if>
     </select>
+
+    <select id="pageArtWork" resultType="com.project.hyb.biz.domain.entity.MbArtArtworks">
+        select * from art_artworks
+        where recordstatus = 1
+        <if test="param.dim != null and param.dim == 2">
+            and artwork_uuid IN
+            (SELECT a.artworkuuid AS artworkuuid
+            FROM artoffice_museum.art_artworks a
+            INNER JOIN artoffice_museum.art_attachments b ON a.id = b.artworkid AND b.category = 6 AND a.recordstatus = 1 AND b.recordstatus = 1
+            INNER JOIN artoffice_museum.art_attachment_folders aaf  ON b.attachment_uuid =  aaf.attachmentuuid AND aaf.`recordstatus` = 1
+            AND aaf.`extension` = '4dage')
+        </if>
+        <if test="param.dim != null and param.dim == 1">
+            and artwork_uuid not IN
+            (SELECT a.artworkuuid AS artworkuuid
+            FROM artoffice_museum.art_artworks a
+            INNER JOIN artoffice_museum.art_attachments b ON a.id = b.artworkid AND b.category = 6 AND a.recordstatus = 1 AND b.recordstatus = 1
+            INNER JOIN artoffice_museum.art_attachment_folders aaf  ON b.attachment_uuid =  aaf.attachmentuuid AND aaf.`recordstatus` = 1
+            AND aaf.`extension` = '4dage')
+        </if>
+        <if test="param.grade != null and param.grade != ''">
+            and grade = #{param.grade}
+        </if>
+        <if test="param.category != null and param.category != ''">
+            and category = #{param.category}
+        </if>
+        <if test="param.texture != null and param.texture != ''">
+            and texture = #{param.texture}
+        </if>
+        <if test="param.agetype != null and param.agetype != ''">
+            and (
+            agetype1 = #{param.agetype}
+            )
+        </if>
+        <if test="param.searchText != null and param.searchText != ''">
+            and name like concat('%', #{param.searchText}, '%')
+        </if>
+        <if test="param.orderBy != null and param.orderBy == 'grade'">
+            and grade is not null and grade != ''
+            ORDER BY FIELD(grade,
+            <foreach collection="param.orderbyList" item="item" separator=",">
+                #{item}
+            </foreach>
+            )
+        </if>
+        <if test="param.orderBy != null and param.orderBy == 'category'">
+            and category is not null and category != ''
+            ORDER BY FIELD(category,
+            <foreach collection="param.orderbyList" item="item" separator=",">
+                #{item}
+            </foreach>
+            )
+        </if>
+        <if test="param.orderBy != null and param.orderBy == 'texture'">
+            and texture is not null and texture != ''
+            ORDER BY FIELD(texture,
+            <foreach collection="param.orderbyList" item="item" separator=",">
+                #{item}
+            </foreach>
+            )
+        </if>
+        <if test="param.orderBy != null and param.orderBy == 'agetype'">
+            and agetype is not null and agetype != ''
+            ORDER BY FIELD(agetype,
+            <foreach collection="param.orderbyList" item="item" separator=",">
+                #{item}
+            </foreach>
+            )
+        </if>
+
+    </select>
 </mapper>