|
|
|
@ -277,74 +277,79 @@ public class NewsServiceImpl extends BaseServiceImpl<NewsDao, NewsEntity> implem |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public Result modifyStatement(EpdcNewsStatementFromDTO newsStatementFromDTO) { |
|
|
|
NewsDTO oldDTO = get(newsStatementFromDTO.getNewsId()); |
|
|
|
public Result modifyStatement(EpdcNewsStatementFromDTO statementFromDto) { |
|
|
|
NewsDTO newsDto = get(statementFromDto.getNewsId()); |
|
|
|
|
|
|
|
// 已表态
|
|
|
|
String oldAttitudeFlag = null; |
|
|
|
NewsUserAttitudeEntity userBehavior = newsUserAttitudeService.getUserBehavior(statementFromDto); |
|
|
|
NewsUserAttitudeDTO newsUserAttitudeDto = new NewsUserAttitudeDTO(); |
|
|
|
NewsUserAttitudeEntity userBehavior = newsUserAttitudeService.getUserBehavior(newsStatementFromDTO); |
|
|
|
String oldAttitudeFlag = userBehavior.getAttitudeFlag(); |
|
|
|
String newAttitude = newsStatementFromDTO.getAttitude(); |
|
|
|
if (null != userBehavior) { |
|
|
|
oldAttitudeFlag = userBehavior.getAttitudeFlag(); |
|
|
|
} else { |
|
|
|
newsUserAttitudeDto.setEpdcNewsId(newsDto.getId()); |
|
|
|
newsUserAttitudeDto.setUserId(statementFromDto.getUserId()); |
|
|
|
} |
|
|
|
// 新表态(本次提交)
|
|
|
|
String newAttitudeFlag = statementFromDto.getAttitude(); |
|
|
|
AppNewsLikeEnum newAttitude = AppNewsLikeEnum.valueOf(newAttitudeFlag); |
|
|
|
|
|
|
|
NewsEntity newsEntity = new NewsEntity(); |
|
|
|
//表态 0赞;1踩;2取消赞;3取消踩
|
|
|
|
if (userBehavior != null) { |
|
|
|
switch (newAttitude) { |
|
|
|
case "0": |
|
|
|
//之前赞过
|
|
|
|
switch (newAttitude) { |
|
|
|
case LIKE: |
|
|
|
if (StringUtils.isNotBlank(oldAttitudeFlag)) { |
|
|
|
// 之前赞过
|
|
|
|
if (AppNewsLikeEnum.LIKE.value().equals(oldAttitudeFlag)) { |
|
|
|
//您已经点过赞不能赞
|
|
|
|
return new Result().error("不能重复点赞"); |
|
|
|
} else { |
|
|
|
// 之前踩过
|
|
|
|
newsEntity.setLikeNumber(oldDTO.getLikeNumber() + NumConstant.ONE); |
|
|
|
newsEntity.setUnLikeNumber(oldDTO.getUnLikeNumber() - NumConstant.ONE); |
|
|
|
newsUserAttitudeDto.setAttitudeFlag(AppNewsLikeEnum.LIKE.value()); |
|
|
|
newsUserAttitudeService.update(newsUserAttitudeDto); |
|
|
|
userBehavior.setAttitudeFlag(AppNewsLikeEnum.LIKE.value()); |
|
|
|
newsUserAttitudeService.updateById(userBehavior); |
|
|
|
newsEntity.setUnLikeNumber(newsDto.getUnLikeNumber() - NumConstant.ONE); |
|
|
|
} |
|
|
|
break; |
|
|
|
case "1": |
|
|
|
//之前踩过
|
|
|
|
} else { |
|
|
|
newsUserAttitudeDto.setAttitudeFlag(AppNewsLikeEnum.LIKE.value()); |
|
|
|
newsUserAttitudeService.save(newsUserAttitudeDto); |
|
|
|
} |
|
|
|
newsEntity.setLikeNumber(newsDto.getLikeNumber() + NumConstant.ONE); |
|
|
|
break; |
|
|
|
case UNLIKE: |
|
|
|
if (StringUtils.isNotBlank(oldAttitudeFlag)) { |
|
|
|
// 之前踩过
|
|
|
|
if (AppNewsLikeEnum.UNLIKE.value().equals(oldAttitudeFlag)) { |
|
|
|
//您已经点过踩不能踩
|
|
|
|
return new Result().error("不能重复点踩"); |
|
|
|
return new Result().error("不能重复踩"); |
|
|
|
} else { |
|
|
|
// 之前赞过
|
|
|
|
newsEntity.setLikeNumber(oldDTO.getLikeNumber() - NumConstant.ONE); |
|
|
|
newsEntity.setUnLikeNumber(oldDTO.getUnLikeNumber() + NumConstant.ONE); |
|
|
|
newsUserAttitudeDto.setAttitudeFlag(AppNewsLikeEnum.UNLIKE.value()); |
|
|
|
newsUserAttitudeService.update(newsUserAttitudeDto); |
|
|
|
userBehavior.setAttitudeFlag(AppNewsLikeEnum.UNLIKE.value()); |
|
|
|
newsUserAttitudeService.updateById(userBehavior); |
|
|
|
newsEntity.setLikeNumber(newsDto.getLikeNumber() - NumConstant.ONE); |
|
|
|
} |
|
|
|
break; |
|
|
|
case "2": |
|
|
|
//之前赞过
|
|
|
|
if (AppNewsLikeEnum.LIKE.value().equals(oldAttitudeFlag)) { |
|
|
|
newsEntity.setLikeNumber(oldDTO.getLikeNumber() - NumConstant.ONE); |
|
|
|
newsUserAttitudeService.deleteById(userBehavior.getId()); |
|
|
|
} else { |
|
|
|
//之前没点过赞不能取消
|
|
|
|
return new Result().error("错误操作"); |
|
|
|
} |
|
|
|
break; |
|
|
|
case "3": |
|
|
|
//之前踩过
|
|
|
|
if (AppNewsLikeEnum.UNLIKE.value().equals(oldAttitudeFlag)) { |
|
|
|
newsEntity.setUnLikeNumber(oldDTO.getUnLikeNumber() - NumConstant.ONE); |
|
|
|
newsUserAttitudeService.deleteById(userBehavior.getId()); |
|
|
|
} else { |
|
|
|
//之前没点踩过不能取消
|
|
|
|
return new Result().error("错误操作"); |
|
|
|
} |
|
|
|
break; |
|
|
|
default: |
|
|
|
break; |
|
|
|
} |
|
|
|
} else { |
|
|
|
//插入新闻点赞点踩表
|
|
|
|
newsUserAttitudeDto.setUserId(newsStatementFromDTO.getUserId()); |
|
|
|
newsUserAttitudeDto.setEpdcNewsId(newsStatementFromDTO.getNewsId()); |
|
|
|
newsUserAttitudeService.save(newsUserAttitudeDto); |
|
|
|
} else { |
|
|
|
newsUserAttitudeDto.setAttitudeFlag(AppNewsLikeEnum.UNLIKE.value()); |
|
|
|
newsUserAttitudeService.save(newsUserAttitudeDto); |
|
|
|
} |
|
|
|
newsEntity.setUnLikeNumber(newsDto.getUnLikeNumber() + 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); |
|
|
|
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); |
|
|
|
break; |
|
|
|
default: |
|
|
|
return new Result().error(); |
|
|
|
} |
|
|
|
newsEntity.setId(oldDTO.getId()); |
|
|
|
newsEntity.setId(newsDto.getId()); |
|
|
|
baseDao.updateById(newsEntity); |
|
|
|
|
|
|
|
return new Result(); |
|
|
|
} |
|
|
|
|
|
|
|
|