Procházet zdrojové kódy

增加新闻-图片关联表

xusonglin před 5 roky
rodič
revize
82ba6f0c32

+ 16 - 0
src/main/java/com/jkcredit/sysnews/mapper/NewsArticlePhotoMapper.java

@@ -0,0 +1,16 @@
+package com.jkcredit.sysnews.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jkcredit.sysnews.model.po.newsArticlePhoto.NewsArticlePhotoPo;
+
+import java.util.List;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/3/27 14:23
+ * @version: V1.0
+ **/
+public interface NewsArticlePhotoMapper extends BaseMapper<NewsArticlePhotoPo> {
+    List<NewsArticlePhotoPo> getArticlePhotoByNewsId(Long id);
+}

+ 19 - 0
src/main/java/com/jkcredit/sysnews/model/dto/newsArticlePhoto/NewsArticlePhotoDto.java

@@ -0,0 +1,19 @@
+package com.jkcredit.sysnews.model.dto.newsArticlePhoto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/3/26 11:13
+ * @version: V1.0
+ **/
+@Data
+public class NewsArticlePhotoDto implements Serializable {
+    private static final long serialVersionUID = 3988457701406146888L;
+    private Long id;
+    private Long newsArticleId;
+    private Long photoId;
+}

+ 31 - 0
src/main/java/com/jkcredit/sysnews/model/po/newsArticlePhoto/NewsArticlePhotoPo.java

@@ -0,0 +1,31 @@
+package com.jkcredit.sysnews.model.po.newsArticlePhoto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.ToString;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/3/26 11:11
+ * @version: V1.0
+ **/
+@Data
+@ToString
+@TableName("news_article_photo")
+public class NewsArticlePhotoPo implements Serializable {
+    private static final long serialVersionUID = -954227781534143873L;
+
+    @TableId(type = IdType.AUTO)
+    private Long id;
+    private Long newsArticleId;
+    private Long photoId;
+    private Integer activated;
+    private Date createTime;
+    private Date updateTime;
+}

+ 16 - 0
src/main/java/com/jkcredit/sysnews/resource/biz/photo/PhotoBizResource.java

@@ -0,0 +1,16 @@
+package com.jkcredit.sysnews.resource.biz.photo;
+
+import com.jkcredit.sysnews.resource.base.BizResource;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/3/26 10:20
+ * @version: V1.0
+ **/
+@Slf4j
+@RestController
+public class PhotoBizResource extends BizResource {
+}

+ 25 - 16
src/main/java/com/jkcredit/sysnews/service/newsArticle/NewsArticleServiceImpl.java

@@ -7,14 +7,17 @@ import com.jkcredit.sysnews.enums.PhotoTypeEnum;
 import com.jkcredit.sysnews.mapper.NewsArticleMapper;
 import com.jkcredit.sysnews.model.dto.newsArticle.NewsArticleDto;
 import com.jkcredit.sysnews.model.dto.newsArticleNavigationBar.NewsArticleNavigationBarDto;
+import com.jkcredit.sysnews.model.dto.newsArticlePhoto.NewsArticlePhotoDto;
 import com.jkcredit.sysnews.model.dto.photo.PhotoDto;
 import com.jkcredit.sysnews.model.po.newsArticle.NewsArticlePo;
 import com.jkcredit.sysnews.model.po.newsArticleNavigationBar.NewsArticleNavigationBarPo;
+import com.jkcredit.sysnews.model.po.newsArticlePhoto.NewsArticlePhotoPo;
 import com.jkcredit.sysnews.model.po.photo.PhotoPo;
 import com.jkcredit.sysnews.model.vo.newsArticle.NewsArticleVo;
 import com.jkcredit.sysnews.model.vo.photo.PhotoVo;
 import com.jkcredit.sysnews.service.base.BaseService;
 import com.jkcredit.sysnews.service.newsArticleNavigationBar.NewsArticleNavigationBarService;
+import com.jkcredit.sysnews.service.newsArticlePhoto.NewsArticlePhotoService;
 import com.jkcredit.sysnews.service.photo.PhotoService;
 import com.jkcredit.sysnews.spi.lang.constant.CommonConstant;
 import com.jkcredit.sysnews.spi.lang.exception.ServiceException;
@@ -60,6 +63,8 @@ public class NewsArticleServiceImpl extends BaseService implements NewsArticleSe
     PhotoService photoService;
     @Autowired
     NewsArticleNavigationBarService newsArticleNavigationBarService;
+    @Autowired
+    NewsArticlePhotoService newsArticlePhotoService;
 
     @Override
     public IPage<NewsArticleVo> getNewsArticles(Page page, NewsArticleDto newsArticleDto) {
@@ -101,26 +106,10 @@ public class NewsArticleServiceImpl extends BaseService implements NewsArticleSe
         photoDto.setType(PhotoTypeEnum.NEWS_PHOTO.getValue());
         photoDto.setStatus(PhotoStatusEnum.UPLOAD_SUCCESS_HAVE_USED.getValue());
 
-        // 更新新闻content中的图片
-        if (newsArticleDto.getUrlList() != null) {
-            try {
-                for (String url : newsArticleDto.getUrlList()) {
-                    url = File.separator + url.replace(accessPath, "").replace(accessResource, "");
-                    PhotoPo photoPo = photoService.getPhotoByUrl(url);
-                    photoDto.setId(photoPo.getId());
-                    photoService.editPhoto(photoDto);
-                }
-            } catch (ServiceException e) {
-                log.error("新增新闻-更新图片失败,失败原因:{}", e.getMessage());
-                throw new ServiceException("新增新闻失败");
-            }
-        }
-
         // 保存新闻首图
         PhotoVo photoVo;
         try {
             photoDto.setPhoto(newsArticleDto.getPhoto());
-            photoDto.setId(null);
             photoVo = photoService.savePhoto(photoDto);
         } catch (ServiceException e) {
             log.error("新增新闻-新增首图失败,失败原因:{}", e.getMessage());
@@ -139,6 +128,26 @@ public class NewsArticleServiceImpl extends BaseService implements NewsArticleSe
             throw new ServiceException("新增新闻失败");
         }
 
+        // 更新新闻content中的图片, 并插入新闻-图片关联表
+        if (newsArticleDto.getUrlList() != null) {
+            try {
+                for (String url : newsArticleDto.getUrlList()) {
+                    url = File.separator + url.replace(accessPath, "").replace(accessResource, "");
+                    PhotoPo photoPo = photoService.getPhotoByUrl(url);
+                    photoDto.setId(photoPo.getId());
+                    // 更新新闻content中的图片
+                    photoService.editPhoto(photoDto);
+                    NewsArticlePhotoDto newsArticlePhotoDto = new NewsArticlePhotoDto();
+                    newsArticlePhotoDto.setPhotoId(photoPo.getId());
+                    newsArticlePhotoDto.setNewsArticleId(newsArticlePo.getId());
+                    newsArticlePhotoService.saveNewsArticlePhoto(newsArticlePhotoDto);
+                }
+            } catch (ServiceException e) {
+                log.error("新增新闻-更新图片或并插入新闻-图片关联表失败,失败原因:{}", e.getMessage());
+                throw new ServiceException("新增新闻失败");
+            }
+        }
+
         // 保存导航栏
         try {
             for (Long navigationBarId : newsArticleDto.getNavigationBarIds()) {

+ 13 - 0
src/main/java/com/jkcredit/sysnews/service/newsArticlePhoto/NewsArticlePhotoService.java

@@ -0,0 +1,13 @@
+package com.jkcredit.sysnews.service.newsArticlePhoto;
+
+import com.jkcredit.sysnews.model.dto.newsArticlePhoto.NewsArticlePhotoDto;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/3/27 16:19
+ * @version: V1.0
+ **/
+public interface NewsArticlePhotoService {
+    void saveNewsArticlePhoto(NewsArticlePhotoDto dto);
+}

+ 39 - 0
src/main/java/com/jkcredit/sysnews/service/newsArticlePhoto/NewsArticlePhotoServiceImpl.java

@@ -0,0 +1,39 @@
+package com.jkcredit.sysnews.service.newsArticlePhoto;
+
+import com.jkcredit.sysnews.mapper.NewsArticlePhotoMapper;
+import com.jkcredit.sysnews.model.dto.newsArticlePhoto.NewsArticlePhotoDto;
+import com.jkcredit.sysnews.model.po.newsArticlePhoto.NewsArticlePhotoPo;
+import com.jkcredit.sysnews.service.base.BaseService;
+import com.jkcredit.sysnews.spi.lang.exception.ServiceException;
+import com.jkcredit.sysnews.util.BeanUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * @description:
+ * @author: xusonglin
+ * @create: 2020/3/27 16:19
+ * @version: V1.0
+ **/
+@Slf4j
+@Service
+public class NewsArticlePhotoServiceImpl extends BaseService implements NewsArticlePhotoService {
+    @Resource
+    NewsArticlePhotoMapper mapper;
+
+    @Override
+    public void saveNewsArticlePhoto(NewsArticlePhotoDto dto) {
+        NewsArticlePhotoPo po = new NewsArticlePhotoPo();
+        BeanUtil.copyProperties(po, dto);
+        po.setCreateTime(new Date());
+        try {
+            mapper.insert(po);
+        } catch (Exception e) {
+            log.error("插入新闻-图片关联表失败,失败原因{}", e.getMessage());
+            throw new ServiceException("插入新闻-图片关联表失败");
+        }
+    }
+}

+ 31 - 0
src/main/resources/mapper/NewsArticlePhotoMapper.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jkcredit.sysnews.mapper.NewsArticlePhotoMapper">
+    <resultMap id="baseResultMap" type="com.jkcredit.sysnews.model.po.newsArticlePhoto.NewsArticlePhotoPo">
+        <id column="id" property="id"/>
+        <result column="news_article_id" property="newsArticleId"/>
+        <result column="photo_id" property="photo_id"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="activated" property="activated"/>
+    </resultMap>
+
+    <sql id="newsArticlePhoto">
+        id,
+        news_article_id,
+        photo_id,
+        create_time,
+        update_time,
+        activated
+    </sql>
+
+    <select id="getArticlePhotoByNewsId" resultMap="baseResultMap">
+        select
+        <include refid="newsArticlePhoto"/>
+        from
+        news_article_photo as newsArticlePhoto
+        where
+        newsArticlePhoto.activated = 1
+        and newsArticlePhoto.news_article_id = #{id}
+    </select>
+</mapper>