From b674de2bf0ae3ff29ab96672e444193f430a4df9 Mon Sep 17 00:00:00 2001 From: qushutong <1976590620@qq.com> Date: Tue, 10 Sep 2019 11:07:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=82=B9=E8=B5=9E=E8=B8=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epdc/service/impl/NewsServiceImpl.java | 91 +++++++++++++------ 1 file changed, 64 insertions(+), 27 deletions(-) diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/NewsServiceImpl.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/NewsServiceImpl.java index ee2e00e70..7b9225f7c 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/NewsServiceImpl.java +++ b/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 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(); }