|
|
@ -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<NewsDao, NewsEntity> implem |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public void update(NewsDTO dto) { |
|
|
@ -221,7 +218,7 @@ public class NewsServiceImpl extends BaseServiceImpl<NewsDao, NewsEntity> implem |
|
|
|
* |
|
|
|
* @param newsDto 新闻数据传输对象 |
|
|
|
* @param newsReleaseState 是否是草稿箱操作(存草稿或草稿箱中修改操作) |
|
|
|
* @param isDraftsPublishNews 判断是是修改还是从草稿箱里面发布(修改不更新createdTime 从草稿箱里面发布更新createdTime 为了列表排序) |
|
|
|
* @param isDraftsPublishNews 是否从草稿箱里面发布(从草稿箱里面发布更新createdTime,修改不更新createdTime 。为了列表排序) |
|
|
|
* @return void |
|
|
|
* @author qushutong |
|
|
|
* @date |
|
|
@ -258,49 +255,62 @@ public class NewsServiceImpl extends BaseServiceImpl<NewsDao, NewsEntity> implem |
|
|
|
entity.setParentDeptIds(deptDTO.getParentDeptIds()); |
|
|
|
entity.setParentDeptNames(deptDTO.getParentDeptNames()); |
|
|
|
} |
|
|
|
|
|
|
|
// 若不是从草稿箱发布新闻(即一切保存或修改操作,都是从页面提交数据到后台)
|
|
|
|
if (YesOrNoEnum.NO.value().equals(isDraftsPublishNews)) { |
|
|
|
// 能接收通知的所有网格的ID
|
|
|
|
List<Long> newsGridList = NewsUtils.getAllGridId(newsDto.getAllDeptIdsShow()); |
|
|
|
//草稿箱操作
|
|
|
|
if (YesOrNoEnum.YES.value().equals(newsReleaseState)) { |
|
|
|
List<Long[]> allDeptIdsShow = newsDto.getAllDeptIdsShow(); |
|
|
|
if (CollUtil.isEmpty(allDeptIdsShow)) { |
|
|
|
throw new RenException("请完善新闻所属部门"); |
|
|
|
} |
|
|
|
List<Long> newsGridList = NewsUtils.getAllGridId(allDeptIdsShow); |
|
|
|
if (isSave) { |
|
|
|
insert(entity); |
|
|
|
} else { |
|
|
|
// 修改草稿
|
|
|
|
if (YesOrNoEnum.YES.value().equals(newsReleaseState)) { |
|
|
|
entity.setUpdatedBy(user.getRealName()); |
|
|
|
entity.setUpdatedTime(new Date()); |
|
|
|
this.baseDao.updateNewsById(entity); |
|
|
|
} |
|
|
|
} else { |
|
|
|
if (isSave) { |
|
|
|
insert(entity); |
|
|
|
} else { |
|
|
|
entity.setUpdatedBy(user.getRealName()); |
|
|
|
entity.setUpdatedTime(new Date()); |
|
|
|
if (YesOrNoEnum.YES.value().equals(isDraftsPublishNews)) { |
|
|
|
entity.setCreatedTime(new Date()); |
|
|
|
} |
|
|
|
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 = packBannerDtoByNews(bannerDto, newsDto.getId(), newsDto.getNewsImageUrl(), newsDto.getNewsTitle()); |
|
|
|
bannerService.saveOrUpdate(bannerDto); |
|
|
|
} |
|
|
|
} |
|
|
|
// 只要是修改操作,新闻部门关系,先删除再插入
|
|
|
|
newsDepartmentService.deleteByNewsId(entity.getId()); |
|
|
|
} |
|
|
|
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(newsDto.getNewsImageUrl()); |
|
|
|
bannerDto.setImgUrl(newsImageUrl); |
|
|
|
bannerDto.setNewsFlag(YesOrNoEnum.YES.value()); |
|
|
|
bannerDto.setNewsId(newsDto.getId()); |
|
|
|
bannerDto.setTitle(newsDto.getNewsTitle()); |
|
|
|
bannerDto.setNewsId(newsId); |
|
|
|
bannerDto.setTitle(newsTitle); |
|
|
|
// 数据字典值,2-新闻类型
|
|
|
|
bannerDto.setBannerType(NumConstant.TWO_STR); |
|
|
|
// banner位置,0顶部;1中间
|
|
|
|
bannerDto.setPosition(NumConstant.ZERO_STR); |
|
|
|
bannerService.saveOrUpdate(bannerDto); |
|
|
|
} |
|
|
|
} |
|
|
|
this.newsDepartmentService.save(entity.getId(), newsGridList); |
|
|
|
} |
|
|
|
return bannerDto; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
@ -422,16 +432,7 @@ public class NewsServiceImpl extends BaseServiceImpl<NewsDao, NewsEntity> 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); |
|
|
|
|
|
|
|