|
|
@ -139,7 +139,7 @@ public class NewsServiceImpl extends BaseServiceImpl<NewsDao, NewsEntity> implem |
|
|
|
@Override |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public void saveToDrafts(NewsDTO newsDto) { |
|
|
|
saveOrUpdateNews(newsDto, YesOrNoEnum.YES.value(),YesOrNoEnum.NO.value()); |
|
|
|
saveOrUpdateNews(newsDto, YesOrNoEnum.YES.value(), YesOrNoEnum.NO.value()); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
@ -149,7 +149,7 @@ public class NewsServiceImpl extends BaseServiceImpl<NewsDao, NewsEntity> implem |
|
|
|
wrapper.eq(FieldConstant.ID, dto.getId()) |
|
|
|
.select("NEWS_RELEASE_STATE"); |
|
|
|
NewsEntity entity = this.baseDao.selectOne(wrapper); |
|
|
|
this.saveOrUpdateNews(dto, entity.getNewsReleaseState(),YesOrNoEnum.NO.value()); |
|
|
|
this.saveOrUpdateNews(dto, entity.getNewsReleaseState(), YesOrNoEnum.NO.value()); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
@ -184,25 +184,25 @@ public class NewsServiceImpl extends BaseServiceImpl<NewsDao, NewsEntity> implem |
|
|
|
|
|
|
|
@Override |
|
|
|
public void savePublishNews(NewsDTO newsDTO) { |
|
|
|
saveOrUpdateNews(newsDTO, YesOrNoEnum.NO.value(),YesOrNoEnum.NO.value()); |
|
|
|
saveOrUpdateNews(newsDTO, YesOrNoEnum.NO.value(), YesOrNoEnum.NO.value()); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void modifyDraftsPublic(String id) { |
|
|
|
saveOrUpdateNews(this.get(id), YesOrNoEnum.NO.value(),YesOrNoEnum.YES.value()); |
|
|
|
saveOrUpdateNews(this.get(id), YesOrNoEnum.NO.value(), YesOrNoEnum.YES.value()); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 新闻的数据库操作 |
|
|
|
* |
|
|
|
* @param newsDto 新闻数据传输对象 |
|
|
|
* @param newsReleaseState 是否是草稿箱操作(存草稿或草稿箱中修改操作) |
|
|
|
* @param newsDto 新闻数据传输对象 |
|
|
|
* @param newsReleaseState 是否是草稿箱操作(存草稿或草稿箱中修改操作) |
|
|
|
* @param isDraftsPublishNews 判断是是修改还是从草稿箱里面发布(修改不更新createdTime 从草稿箱里面发布更新createdTime 为了列表排序) |
|
|
|
* @return void |
|
|
|
* @author qushutong |
|
|
|
* @date |
|
|
|
*/ |
|
|
|
private void saveOrUpdateNews(NewsDTO newsDto, String newsReleaseState,String isDraftsPublishNews) { |
|
|
|
private void saveOrUpdateNews(NewsDTO newsDto, String newsReleaseState, String isDraftsPublishNews) { |
|
|
|
NewsEntity entity = ConvertUtils.sourceToTarget(newsDto, NewsEntity.class); |
|
|
|
UserDetail user = SecurityUser.getUser(); |
|
|
|
//是不是草稿箱
|
|
|
@ -259,7 +259,7 @@ public class NewsServiceImpl extends BaseServiceImpl<NewsDao, NewsEntity> implem |
|
|
|
} else { |
|
|
|
entity.setUpdatedBy(user.getRealName()); |
|
|
|
entity.setUpdatedTime(new Date()); |
|
|
|
if(YesOrNoEnum.YES.value().equals(isDraftsPublishNews)){ |
|
|
|
if (YesOrNoEnum.YES.value().equals(isDraftsPublishNews)) { |
|
|
|
entity.setCreatedTime(new Date()); |
|
|
|
} |
|
|
|
this.baseDao.updateNewsById(entity); |
|
|
@ -290,26 +290,27 @@ public class NewsServiceImpl extends BaseServiceImpl<NewsDao, NewsEntity> implem |
|
|
|
@Override |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public Result modifyStatement(EpdcNewsStatementFromDTO statementFromDto) { |
|
|
|
NewsDTO newsDto = get(statementFromDto.getNewsId()); |
|
|
|
|
|
|
|
// 已表态
|
|
|
|
// 获取新表态的类型 0赞;1踩;2取消赞;3取消踩
|
|
|
|
String newAttitudeFlag = statementFromDto.getAttitude(); |
|
|
|
AppNewsLikeEnum newAttitude = AppNewsLikeEnum.getEnumByValue(newAttitudeFlag); |
|
|
|
if (null == newAttitude) { |
|
|
|
return new Result().error("表态类型非法"); |
|
|
|
} |
|
|
|
|
|
|
|
// 旧的表态
|
|
|
|
String oldAttitudeFlag = null; |
|
|
|
NewsUserAttitudeEntity userBehavior = newsUserAttitudeService.getUserBehavior(statementFromDto); |
|
|
|
NewsUserAttitudeDTO newsUserAttitudeDto = new NewsUserAttitudeDTO(); |
|
|
|
if (null != userBehavior) { |
|
|
|
oldAttitudeFlag = userBehavior.getAttitudeFlag(); |
|
|
|
} else { |
|
|
|
newsUserAttitudeDto.setEpdcNewsId(newsDto.getId()); |
|
|
|
newsUserAttitudeDto.setUserId(statementFromDto.getUserId()); |
|
|
|
} |
|
|
|
// 新表态(本次提交)
|
|
|
|
String newAttitudeFlag = statementFromDto.getAttitude(); |
|
|
|
AppNewsLikeEnum newAttitude = AppNewsLikeEnum.getEnumByValue(newAttitudeFlag); |
|
|
|
if (null == newAttitude) { |
|
|
|
return new Result().error("表态值非法"); |
|
|
|
} |
|
|
|
NewsEntity newsEntity = new NewsEntity(); |
|
|
|
//表态 0赞;1踩;2取消赞;3取消踩
|
|
|
|
|
|
|
|
// 组装新的表态,待插入
|
|
|
|
String newsId = statementFromDto.getNewsId(); |
|
|
|
NewsUserAttitudeDTO newsUserAttitudeDto = new NewsUserAttitudeDTO(); |
|
|
|
newsUserAttitudeDto.setEpdcNewsId(newsId); |
|
|
|
newsUserAttitudeDto.setUserId(statementFromDto.getUserId()); |
|
|
|
|
|
|
|
switch (newAttitude) { |
|
|
|
case LIKE: |
|
|
|
if (StringUtils.isNotBlank(oldAttitudeFlag)) { |
|
|
@ -320,13 +321,13 @@ public class NewsServiceImpl extends BaseServiceImpl<NewsDao, NewsEntity> implem |
|
|
|
// 之前踩过
|
|
|
|
userBehavior.setAttitudeFlag(AppNewsLikeEnum.LIKE.value()); |
|
|
|
newsUserAttitudeService.updateById(userBehavior); |
|
|
|
newsEntity.setUnLikeNumber(newsDto.getUnLikeNumber() - NumConstant.ONE); |
|
|
|
this.baseDao.updateStatementAmount(newsId, StatementTypeEnum.UN_LIKE_NUM.value(), NumConstant.ONE_NEG); |
|
|
|
} |
|
|
|
} else { |
|
|
|
newsUserAttitudeDto.setAttitudeFlag(AppNewsLikeEnum.LIKE.value()); |
|
|
|
newsUserAttitudeService.save(newsUserAttitudeDto); |
|
|
|
} |
|
|
|
newsEntity.setLikeNumber(newsDto.getLikeNumber() + NumConstant.ONE); |
|
|
|
this.baseDao.updateStatementAmount(newsId, StatementTypeEnum.LIKE_NUM.value(), NumConstant.ONE); |
|
|
|
break; |
|
|
|
case UNLIKE: |
|
|
|
if (StringUtils.isNotBlank(oldAttitudeFlag)) { |
|
|
@ -337,42 +338,37 @@ public class NewsServiceImpl extends BaseServiceImpl<NewsDao, NewsEntity> implem |
|
|
|
// 之前赞过
|
|
|
|
userBehavior.setAttitudeFlag(AppNewsLikeEnum.UNLIKE.value()); |
|
|
|
newsUserAttitudeService.updateById(userBehavior); |
|
|
|
newsEntity.setLikeNumber(newsDto.getLikeNumber() - NumConstant.ONE); |
|
|
|
this.baseDao.updateStatementAmount(newsId, StatementTypeEnum.LIKE_NUM.value(), NumConstant.ONE_NEG); |
|
|
|
} |
|
|
|
} else { |
|
|
|
newsUserAttitudeDto.setAttitudeFlag(AppNewsLikeEnum.UNLIKE.value()); |
|
|
|
newsUserAttitudeService.save(newsUserAttitudeDto); |
|
|
|
} |
|
|
|
newsEntity.setUnLikeNumber(newsDto.getUnLikeNumber() + NumConstant.ONE); |
|
|
|
this.baseDao.updateStatementAmount(newsId, StatementTypeEnum.UN_LIKE_NUM.value(), NumConstant.ONE); |
|
|
|
break; |
|
|
|
case LIKE_CANCEL: |
|
|
|
if (StringUtils.isBlank(oldAttitudeFlag) || AppNewsLikeEnum.UNLIKE.value().equals(oldAttitudeFlag)) { |
|
|
|
return new Result().error("没有赞过,无法取消"); |
|
|
|
} |
|
|
|
newsUserAttitudeService.deleteById(userBehavior.getId()); |
|
|
|
newsEntity.setLikeNumber(newsDto.getLikeNumber() - NumConstant.ONE); |
|
|
|
this.newsUserAttitudeService.deletePhysicalById(userBehavior.getId()); |
|
|
|
this.baseDao.updateStatementAmount(newsId, StatementTypeEnum.LIKE_NUM.value(), NumConstant.ONE_NEG); |
|
|
|
break; |
|
|
|
case UNLIKE_CANCEL: |
|
|
|
if (StringUtils.isBlank(oldAttitudeFlag) || AppNewsLikeEnum.LIKE.value().equals(oldAttitudeFlag)) { |
|
|
|
return new Result().error("没有踩过,无法取消"); |
|
|
|
} |
|
|
|
newsUserAttitudeService.deleteById(userBehavior.getId()); |
|
|
|
newsEntity.setUnLikeNumber(newsDto.getUnLikeNumber() - NumConstant.ONE); |
|
|
|
this.newsUserAttitudeService.deletePhysicalById(userBehavior.getId()); |
|
|
|
this.baseDao.updateStatementAmount(newsId, StatementTypeEnum.UN_LIKE_NUM.value(), NumConstant.ONE_NEG); |
|
|
|
break; |
|
|
|
default: |
|
|
|
return new Result().error(); |
|
|
|
} |
|
|
|
newsEntity.setId(newsDto.getId()); |
|
|
|
baseDao.updateById(newsEntity); |
|
|
|
return new Result(); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public Result modifyNewsBrowse(EpdcNewsBrowseFromDTO newsBrowseFromDTO) { |
|
|
|
NewsDTO newsDTO = get(newsBrowseFromDTO.getNewsId()); |
|
|
|
NewsEntity newsEntity = ConvertUtils.sourceToTarget(newsDTO, NewsEntity.class); |
|
|
|
newsEntity.setReadingAmount(newsDTO.getReadingAmount() + NumConstant.ONE); |
|
|
|
baseDao.updateById(newsEntity); |
|
|
|
public Result modifyNewsBrowse(EpdcNewsBrowseFromDTO newsDto) { |
|
|
|
this.baseDao.updateStatementAmount(newsDto.getNewsId(), StatementTypeEnum.READING_AMOUNT.value(), NumConstant.ONE); |
|
|
|
return new Result(); |
|
|
|
} |
|
|
|
|
|
|
@ -415,4 +411,35 @@ public class NewsServiceImpl extends BaseServiceImpl<NewsDao, NewsEntity> implem |
|
|
|
return new Result(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 用户新闻参与类型 |
|
|
|
* |
|
|
|
* @author work@yujt.net.cn |
|
|
|
* @date 2019/9/29 16:41 |
|
|
|
*/ |
|
|
|
enum StatementTypeEnum { |
|
|
|
/** |
|
|
|
* 阅读数 |
|
|
|
*/ |
|
|
|
READING_AMOUNT("readingAmount"), |
|
|
|
/** |
|
|
|
* 点赞数 |
|
|
|
*/ |
|
|
|
LIKE_NUM("likeNum"), |
|
|
|
/** |
|
|
|
* 踩数 |
|
|
|
*/ |
|
|
|
UN_LIKE_NUM("unLikeNum"); |
|
|
|
|
|
|
|
private String value; |
|
|
|
|
|
|
|
StatementTypeEnum(String value) { |
|
|
|
this.value = value; |
|
|
|
} |
|
|
|
|
|
|
|
public String value() { |
|
|
|
return value; |
|
|
|
} |
|
|
|
} |
|
|
|
} |