plf 4 gadi atpakaļ
vecāks
revīzija
b634ab947d

+ 11 - 0
src/main/java/com/caimei/www/controller/authorized/document/DocumentAuthController.java

@@ -73,4 +73,15 @@ public class DocumentAuthController {
         return documentAuthService.dataList(name, pageNum, pageSize);
     }
 
+    /**
+     * 资料详情
+     */
+    @GetMapping("/dataDetails")
+    public JsonModel dataDetails(Integer pdfId) {
+        if (pdfId == null) {
+            return JsonModel.error("参数异常");
+        }
+        return documentAuthService.dataDetails(pdfId);
+    }
+
 }

+ 16 - 0
src/main/java/com/caimei/www/mapper/DocumentAuthDao.java

@@ -39,4 +39,20 @@ public interface DocumentAuthDao {
      * @return
      */
     List<OssArchivePdf> findOssArchivePdf(Integer archiveId);
+
+    /**
+     * 查询该文件资料
+     *
+     * @param pdfId
+     * @return
+     */
+    OssArchivePdf findOssArchivePdfById(Integer pdfId);
+
+    /**
+     * 根据id获取资料库
+     *
+     * @param archiveId
+     * @return
+     */
+    OssArchive getOssArchive(Integer archiveId);
 }

+ 8 - 0
src/main/java/com/caimei/www/service/page/DocumentAuthService.java

@@ -48,4 +48,12 @@ public interface DocumentAuthService {
      * @return
      */
     JsonModel dataList(String name, Integer pageNum, Integer pageSize);
+
+    /**
+     * 资料详情
+     *
+     * @param pdfId 文件id
+     * @return
+     */
+    JsonModel dataDetails(Integer pdfId);
 }

+ 29 - 14
src/main/java/com/caimei/www/service/page/impl/DocumentAuthServiceImpl.java

@@ -9,12 +9,14 @@ import com.caimei.www.pojo.document.OssArchivePdf;
 import com.caimei.www.pojo.document.OssAuthorization;
 import com.caimei.www.service.page.DocumentAuthService;
 import com.caimei.www.service.redis.RedisService;
+import com.caimei.www.utils.ImageUtil;
 import com.caimei.www.utils.RandomCodeGenerator;
 import com.caimei.www.utils.SMSUtils;
 import com.caimei.www.utils.VerifyCodeUtils;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 import org.springframework.web.context.request.RequestContextHolder;
@@ -44,6 +46,9 @@ public class DocumentAuthServiceImpl implements DocumentAuthService {
     @Resource
     private RedisService redisService;
 
+    @Value("${caimei.wwwDomain}")
+    private String domain;
+
     @Override
     public JsonModel getAuthorizationCookie() {
         String authorizationMobile = null;
@@ -133,31 +138,41 @@ public class DocumentAuthServiceImpl implements DocumentAuthService {
 
     @Override
     public JsonModel dataList(String name, Integer pageNum, Integer pageSize) {
-        String endpoint = "https://oss-cn-shenzhen.aliyuncs.com";
-        String accessKeyId = "LTAI4GBL3o4YkWnbKYgf2Xia";
-        String accessKeySecret = "dBjAXqbYiEPP6Ukuk2ZsXQeET7FVkK";
-        String bucketName = "caimei-oss";
         pageNum = pageNum == null ? 1 : pageNum;
         pageSize = pageSize == null ? 20 : pageSize;
         PageHelper.startPage(pageNum, pageSize);
         List<OssArchive> ossArchiveList = documentAuthDao.findOssArchive(name);
         PageInfo<OssArchive> pageInfo = null;
         if (ossArchiveList != null && ossArchiveList.size() > 0) {
-            OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
-            // 设置URL过期时间为1个小时
-            Date expiration = new Date(System.currentTimeMillis() + 3600L * 1000);
             for (OssArchive ossArchive : ossArchiveList) {
-                List<OssArchivePdf> pdfList = documentAuthDao.findOssArchivePdf(ossArchive.getId());
-                if (pdfList != null && pdfList.size() > 0) {
-                    for (OssArchivePdf pdf : pdfList) {
-                        String url = ossClient.generatePresignedUrl(bucketName, pdf.getOssName(), expiration).toString();
-                        pdf.setUrl(url);
-                    }
+                if (!StringUtils.isEmpty(ossArchive.getMainImage())) {
+                    ossArchive.setMainImage(ImageUtil.getImageURL("product", ossArchive.getMainImage(), 0, domain));
                 }
+                List<OssArchivePdf> pdfList = documentAuthDao.findOssArchivePdf(ossArchive.getId());
+                ossArchive.setPdfList(pdfList);
             }
             pageInfo = new PageInfo<>(ossArchiveList);
-            ossClient.shutdown();
         }
         return JsonModel.success(pageInfo);
     }
+
+    @Override
+    public JsonModel dataDetails(Integer pdfId) {
+        String endpoint = "https://oss-cn-shenzhen.aliyuncs.com";
+        String accessKeyId = "LTAI4GBL3o4YkWnbKYgf2Xia";
+        String accessKeySecret = "dBjAXqbYiEPP6Ukuk2ZsXQeET7FVkK";
+        String bucketName = "caimei-oss";
+        Map<String, Object> map = new HashMap<>(2);
+        OssArchivePdf ossArchivePdf = documentAuthDao.findOssArchivePdfById(pdfId);
+        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
+        // 设置URL过期时间为1个小时
+        Date expiration = new Date(System.currentTimeMillis() + 3600L * 1000);
+        String url = ossClient.generatePresignedUrl(bucketName, ossArchivePdf.getOssName(), expiration).toString();
+        ossArchivePdf.setUrl(url);
+        OssArchive ossArchive = documentAuthDao.getOssArchive(ossArchivePdf.getArchiveId());
+        map.put("ossArchivePdf", ossArchivePdf);
+        map.put("ossArchive", ossArchive);
+        ossClient.shutdown();
+        return JsonModel.success(map);
+    }
 }

+ 18 - 0
src/main/resources/mapper/DocumentAuthMapper.xml

@@ -30,4 +30,22 @@
         SELECT * FROM cm_oss_archive_pdf WHERE archiveId = #{archiveId} ORDER BY uploadTime DESC
     </select>
 
+    <select id="findOssArchivePdfById" resultType="com.caimei.www.pojo.document.OssArchivePdf">
+        SELECT * FROM cm_oss_archive_pdf WHERE id = #{pdfId}
+    </select>
+
+    <select id="getOssArchive" resultType="com.caimei.www.pojo.document.OssArchive">
+        SELECT
+          coa.*,
+          p.name AS productName,
+          p.mainImage AS mainImage,
+          s.name AS shopName
+        FROM
+          cm_oss_archive coa
+          LEFT JOIN product p ON coa.productId = p.productID
+          LEFT JOIN shop s ON p.shopID = s.shopID
+        WHERE
+          coa.id = #{archiveId}
+    </select>
+
 </mapper>