|
|
|
@ -272,36 +272,73 @@ public class NewsServiceImpl extends BaseServiceImpl<NewsDao, NewsEntity> implem |
|
|
|
|
|
|
|
@Override |
|
|
|
public Result modifyStatement(EpdcNewsStatementFromDTO newsStatementFromDTO) { |
|
|
|
NewsDTO newsDTO = get(newsStatementFromDTO.getNewsId()); |
|
|
|
NewsUserAttitudeDTO newsUserAttitudeDTO = new NewsUserAttitudeDTO(); |
|
|
|
NewsDTO oldDTO = get(newsStatementFromDTO.getNewsId()); |
|
|
|
NewsUserAttitudeDTO newsUserAttitudeDto = new NewsUserAttitudeDTO(); |
|
|
|
NewsUserAttitudeEntity userBehavior = newsUserAttitudeService.getUserBehavior(newsStatementFromDTO); |
|
|
|
if (userBehavior != null && AppNewsLikeEnum.LIKE.value().equals(userBehavior.getAttitudeFlag()) && AppNewsLikeEnum.LIKE.value().equals(newsStatementFromDTO.getAttitude())) { |
|
|
|
//您已经点过赞不能赞
|
|
|
|
return new Result().error("您已经点过赞不能赞"); |
|
|
|
} else if (userBehavior != null && AppNewsLikeEnum.LIKE.value().equals(userBehavior.getAttitudeFlag()) && AppNewsLikeEnum.UNLIKE.value().equals(newsStatementFromDTO.getAttitude())) { |
|
|
|
//已经踩不能赞
|
|
|
|
return new Result().error("您已经踩过不能赞"); |
|
|
|
} else if (userBehavior != null && AppNewsLikeEnum.UNLIKE.value().equals(userBehavior.getAttitudeFlag()) && AppNewsLikeEnum.LIKE.value().equals(newsStatementFromDTO.getAttitude())) { |
|
|
|
//已经踩 不能踩
|
|
|
|
return new Result().error("您已经踩过不能踩"); |
|
|
|
} else if (userBehavior != null && AppNewsLikeEnum.LIKE.value().equals(userBehavior.getAttitudeFlag()) && AppNewsLikeEnum.UNLIKE.value().equals(newsStatementFromDTO.getAttitude())) { |
|
|
|
//已经赞 不能踩
|
|
|
|
return new Result().error("您已经赞过不能踩"); |
|
|
|
} |
|
|
|
//表态 0赞;1踩
|
|
|
|
NewsEntity newsEntity = ConvertUtils.sourceToTarget(newsDTO, NewsEntity.class); |
|
|
|
if (AppNewsLikeEnum.LIKE.value().equals(newsStatementFromDTO.getAttitude())) { |
|
|
|
newsEntity.setUnLikeNumber(newsDTO.getUnLikeNumber() + NumConstant.ONE); |
|
|
|
newsUserAttitudeDTO.setAttitudeFlag(AppNewsLikeEnum.LIKE.value()); |
|
|
|
String oldAttitudeFlag = userBehavior.getAttitudeFlag(); |
|
|
|
String newAttitude = newsStatementFromDTO.getAttitude(); |
|
|
|
NewsEntity newsEntity = new NewsEntity(); |
|
|
|
//表态 0赞;1踩;2取消赞;3取消踩
|
|
|
|
if (userBehavior != null) { |
|
|
|
switch (newAttitude) { |
|
|
|
case "0": |
|
|
|
//之前赞过
|
|
|
|
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); |
|
|
|
} |
|
|
|
break; |
|
|
|
case "1": |
|
|
|
//之前踩过
|
|
|
|
if (AppNewsLikeEnum.UNLIKE.value().equals(oldAttitudeFlag)) { |
|
|
|
//您已经点过踩不能踩
|
|
|
|
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); |
|
|
|
} |
|
|
|
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 { |
|
|
|
newsEntity.setLikeNumber(newsDTO.getLikeNumber() + NumConstant.ONE); |
|
|
|
newsUserAttitudeDTO.setAttitudeFlag(AppNewsLikeEnum.UNLIKE.value()); |
|
|
|
//插入新闻点赞点踩表
|
|
|
|
newsUserAttitudeDto.setUserId(newsStatementFromDTO.getUserId()); |
|
|
|
newsUserAttitudeDto.setEpdcNewsId(newsStatementFromDTO.getNewsId()); |
|
|
|
newsUserAttitudeService.save(newsUserAttitudeDto); |
|
|
|
} |
|
|
|
baseDao.insert(newsEntity); |
|
|
|
//插入新闻点赞点踩表
|
|
|
|
newsUserAttitudeDTO.setUserId(newsStatementFromDTO.getUserId()); |
|
|
|
newsUserAttitudeDTO.setEpdcNewsId(newsStatementFromDTO.getNewsId()); |
|
|
|
newsUserAttitudeService.save(newsUserAttitudeDTO); |
|
|
|
newsEntity.setId(oldDTO.getId()); |
|
|
|
baseDao.updateById(newsEntity); |
|
|
|
|
|
|
|
return new Result(); |
|
|
|
} |
|
|
|
|
|
|
|
|