Browse Source

修改点赞踩

dev
qushutong 6 years ago
parent
commit
b674de2bf0
  1. 91
      esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/NewsServiceImpl.java

91
esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/NewsServiceImpl.java

@ -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();
}

Loading…
Cancel
Save