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 23d7a97a8..4127e8be6 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 @@ -113,15 +113,19 @@ public class BannerServiceImpl extends BaseServiceImpl dto.setDeptId(bannerDeptId); dto.setDeptName(user.getDeptName()); BannerEntity entity = ConvertUtils.sourceToTarget(dto, BannerEntity.class); + + boolean isSave = true; // 新增 if (StringUtils.isBlank(dto.getId())) { entity.setState(YesOrNoEnum.YES.value()); + } else { + isSave = false; } Result parentResult = adminFeignClient.getParentAndAllDept(String.valueOf(bannerDeptId)); if (!parentResult.success() || parentResult.getData() == null) { throw new RenException("获取部门信息失败"); - }else { + } else { ParentAndAllDeptDTO deptDTO = parentResult.getData(); entity.setAllDeptIds(deptDTO.getAllDeptIds()); entity.setAllDeptNames(deptDTO.getAllDeptNames()); @@ -131,11 +135,6 @@ public class BannerServiceImpl extends BaseServiceImpl List bannerGridList = NewsUtils.getAllGridId(dto.getAllDeptIdsShow()); - boolean isSave = true; - if (StringUtils.isNotBlank(dto.getId())) { - isSave = false; - } - if (isSave) { insert(entity); } else { 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 4a1ec7dff..db87b7319 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,7 +37,6 @@ 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; @@ -48,7 +47,6 @@ import com.elink.esua.epdc.entity.NewsEntity; import com.elink.esua.epdc.feign.AdminFeignClient; import com.elink.esua.epdc.service.*; import com.elink.esua.epdc.util.NewsUtils; -import com.google.common.collect.Lists; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -158,7 +156,6 @@ public class NewsServiceImpl extends BaseServiceImpl implem } - @Override @Transactional(rollbackFor = Exception.class) public void update(NewsDTO dto) { @@ -221,7 +218,7 @@ public class NewsServiceImpl extends BaseServiceImpl implem * * @param newsDto 新闻数据传输对象 * @param newsReleaseState 是否是草稿箱操作(存草稿或草稿箱中修改操作) - * @param isDraftsPublishNews 判断是是修改还是从草稿箱里面发布(修改不更新createdTime 从草稿箱里面发布更新createdTime 为了列表排序) + * @param isDraftsPublishNews 是否从草稿箱里面发布(从草稿箱里面发布更新createdTime,修改不更新createdTime 。为了列表排序) * @return void * @author qushutong * @date @@ -258,51 +255,64 @@ public class NewsServiceImpl extends BaseServiceImpl implem entity.setParentDeptIds(deptDTO.getParentDeptIds()); entity.setParentDeptNames(deptDTO.getParentDeptNames()); } - // 能接收通知的所有网格的ID - List newsGridList = NewsUtils.getAllGridId(newsDto.getAllDeptIdsShow()); - //草稿箱操作 - if (YesOrNoEnum.YES.value().equals(newsReleaseState)) { - if (isSave) { - insert(entity); - } else { - entity.setUpdatedBy(user.getRealName()); - entity.setUpdatedTime(new Date()); - this.baseDao.updateNewsById(entity); + + // 若不是从草稿箱发布新闻(即一切保存或修改操作,都是从页面提交数据到后台) + if (YesOrNoEnum.NO.value().equals(isDraftsPublishNews)) { + // 能接收通知的所有网格的ID + List allDeptIdsShow = newsDto.getAllDeptIdsShow(); + if (CollUtil.isEmpty(allDeptIdsShow)) { + throw new RenException("请完善新闻所属部门"); } - } else { + List newsGridList = NewsUtils.getAllGridId(allDeptIdsShow); if (isSave) { insert(entity); } else { - entity.setUpdatedBy(user.getRealName()); - entity.setUpdatedTime(new Date()); - if (YesOrNoEnum.YES.value().equals(isDraftsPublishNews)) { - entity.setCreatedTime(new Date()); + // 修改草稿 + if (YesOrNoEnum.YES.value().equals(newsReleaseState)) { + entity.setUpdatedBy(user.getRealName()); + entity.setUpdatedTime(new Date()); + this.baseDao.updateNewsById(entity); + } else { + entity.setUpdatedBy(user.getRealName()); + entity.setUpdatedTime(new Date()); + this.baseDao.updateNewsById(entity); + + // 已经上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 = packBannerDtoByNews(bannerDto, newsDto.getId(), newsDto.getNewsImageUrl(), newsDto.getNewsTitle()); + bannerService.saveOrUpdate(bannerDto); + } } - 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); + } else { + // 发布一条新闻,只可能是修改,直接修改 + entity.setUpdatedBy(user.getRealName()); + entity.setUpdatedTime(new Date()); + entity.setCreatedTime(new Date()); + this.baseDao.updateNewsById(entity); } } + private BannerDTO packBannerDtoByNews(BannerDTO bannerDto, String newsId, String newsImageUrl, String newsTitle) { + bannerDto.setState(YesOrNoEnum.YES.value()); + bannerDto.setStateTime(new Date()); + bannerDto.setImgUrl(newsImageUrl); + bannerDto.setNewsFlag(YesOrNoEnum.YES.value()); + bannerDto.setNewsId(newsId); + bannerDto.setTitle(newsTitle); + // 数据字典值,2-新闻类型 + bannerDto.setBannerType(NumConstant.TWO_STR); + // banner位置,0顶部;1中间 + bannerDto.setPosition(NumConstant.ZERO_STR); + return bannerDto; + } + @Override public Result> listNews(EpdcNewsListFromDTO formDto) { @@ -422,16 +432,7 @@ public class NewsServiceImpl extends BaseServiceImpl implem } BannerDTO banner = ConvertUtils.sourceToTarget(newsEntity, BannerDTO.class); - banner.setState(YesOrNoEnum.YES.value()); - banner.setStateTime(new Date()); - banner.setImgUrl(newsEntity.getNewsImageUrl()); - banner.setNewsFlag(YesOrNoEnum.YES.value()); - banner.setNewsId(newsId); - banner.setTitle(newsEntity.getNewsTitle()); - // 数据字典值,2-新闻类型 - banner.setBannerType(NumConstant.TWO_STR); - // banner位置,0顶部;1中间 - banner.setPosition(NumConstant.ZERO_STR); + banner = packBannerDtoByNews(banner, newsId, newsEntity.getNewsImageUrl(), newsEntity.getNewsTitle()); this.bannerService.saveNewsToBanner(banner, deptIds); @@ -480,7 +481,7 @@ public class NewsServiceImpl extends BaseServiceImpl implem public PageData allPage(Map params) { UserDetail user = SecurityUser.getUser(); List deptIdList = user.getDeptIdList(); - params.put("deptIdList",deptIdList); + params.put("deptIdList", deptIdList); IPage page = getPage(params); List newsDaoList = baseDao.selectAllPage(params); return new PageData<>(newsDaoList, page.getTotal());