diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/dao/BannerDao.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/dao/BannerDao.java index 4a4057439..b1aea43bd 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/dao/BannerDao.java +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/dao/BannerDao.java @@ -42,4 +42,26 @@ public interface BannerDao extends BaseDao { * @date 2019/9/11 9:00 */ List selectListBanner(EpdcBannerListFromDTO fromDTO); + + + /*** + * 根据新闻id获取bannerID + * @param newsId + * @return java.lang.String + * @author qushutong + * @date 2020/1/6 17:24 + */ + String selectBannerIdByNewsId(String newsId); + + + + /*** + * 新闻下线 删除 banner同步下架 + * @param newsId + * @return void + * @author qushutong + * @date 2020/1/8 18:40 + */ + void updateSoltOut(String newsId); + } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/BannerService.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/BannerService.java index e37ec6e98..ae4c8b193 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/BannerService.java +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/BannerService.java @@ -113,4 +113,22 @@ public interface BannerService extends BaseService { * @date 2019/9/17 19:42 */ Result saveNewsToBanner(BannerDTO banner, List deptIds); + + /*** + * 通过新闻id获取bannerID + * @param newsId + * @return java.lang.String + * @author qushutong + * @date 2020/1/6 17:20 + */ + String getBannerIdByNewsId(String newsId); + + /*** + * banner下架 + * @param + * @return void + * @author qushutong + * @date 2020/1/8 18:14 + */ + void updateSoltOut(String newsId); } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/BannerServiceImpl.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/BannerServiceImpl.java index cbcb8afd0..9603ba6ca 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/BannerServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/BannerServiceImpl.java @@ -45,10 +45,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; /** * banner表 @@ -191,4 +188,18 @@ public class BannerServiceImpl extends BaseServiceImpl } return new Result(); } + + @Override + public String getBannerIdByNewsId(String newsId) { + return baseDao.selectBannerIdByNewsId(newsId); + } + + @Override + public void updateSoltOut(String newsId) { + BannerDTO bannerDTO = new BannerDTO(); + bannerDTO.setNewsId(newsId); + bannerDTO.setStateTime(new Date()); + bannerDTO.setState(YesOrNoEnum.NO.value()); + baseDao.updateSoltOut(newsId); + } } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/NewsServiceImpl.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/NewsServiceImpl.java index 4ed5f785a..c4f88a8e1 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/NewsServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/NewsServiceImpl.java @@ -37,6 +37,7 @@ import com.elink.esua.epdc.dto.NewsUserAttitudeDTO; import com.elink.esua.epdc.dto.ParentAndAllDeptDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcNewsDetailFormDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcNewsListResultDTO; +import com.elink.esua.epdc.entity.BannerEntity; import com.elink.esua.epdc.entity.NewsUserAttitudeEntity; import com.elink.esua.epdc.enums.AppNewsLikeEnum; import com.elink.esua.epdc.dto.epdc.form.EpdcNewsBrowseFromDTO; @@ -77,6 +78,9 @@ public class NewsServiceImpl extends BaseServiceImpl implem @Autowired private NewsUserAttitudeService newsUserAttitudeService; + @Autowired + private BannerService bannerService; + @Override public PageData page(Map params) { IPage page = baseDao.selectPage( @@ -169,6 +173,8 @@ public class NewsServiceImpl extends BaseServiceImpl implem baseDao.deleteBatchIds(Arrays.asList(ids)); //删除部门关系表相关数据 newsDepartmentService.deleteByNewsId(ids[0]); + // 下架banner + undataBannerSoltOut(ids[0]); } @Override @@ -185,11 +191,16 @@ public class NewsServiceImpl extends BaseServiceImpl implem // 新闻不存在或已下线 return false; } + undataBannerSoltOut(id); + return true; + } + + private void undataBannerSoltOut(String id) { NewsEntity entity = new NewsEntity(); entity.setId(id); entity.setNewsUpDownState(YesOrNoEnum.YES.value()); updateById(entity); - return true; + bannerService.updateSoltOut(id); } @Override @@ -289,6 +300,24 @@ public class NewsServiceImpl extends BaseServiceImpl implem } this.baseDao.updateNewsById(entity); newsDepartmentService.deleteByNewsId(entity.getId()); + + //已经上banner的处理 + if(newsDto.getBannerFlag().equals(YesOrNoEnum.YES.value())){ + String bannerId = bannerService.getBannerIdByNewsId(newsDto.getId()); + BannerDTO bannerDto = ConvertUtils.sourceToTarget(newsDto, BannerDTO.class); + bannerDto.setId(bannerId); + bannerDto.setState(YesOrNoEnum.YES.value()); + bannerDto.setStateTime(new Date()); + bannerDto.setImgUrl(newsDto.getNewsImageUrl()); + bannerDto.setNewsFlag(YesOrNoEnum.YES.value()); + bannerDto.setNewsId(newsDto.getId()); + bannerDto.setTitle(newsDto.getNewsTitle()); + // 数据字典值,2-新闻类型 + bannerDto.setBannerType(NumConstant.TWO_STR); + // banner位置,0顶部;1中间 + bannerDto.setPosition(NumConstant.ZERO_STR); + bannerService.saveOrUpdate(bannerDto); + } } this.newsDepartmentService.save(entity.getId(), newsGridList); } @@ -408,8 +437,6 @@ public class NewsServiceImpl extends BaseServiceImpl implem return new Result(); } - @Autowired - private BannerService bannerService; @Override @Transactional(rollbackFor = Exception.class) diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/BannerDao.xml b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/BannerDao.xml index 18e7e3584..1f03e6a52 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/BannerDao.xml +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/BannerDao.xml @@ -23,4 +23,22 @@ limit 5 + + + + \ No newline at end of file