From 55f6e24055311243f7674a45789201494c1e2cb2 Mon Sep 17 00:00:00 2001 From: yujintao Date: Tue, 10 Sep 2019 13:44:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E9=97=BB=E7=82=B9=E8=B5=9E=E8=B8=A9?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../esua/epdc/enums/AppNewsLikeEnum.java | 10 +- .../epdc/service/impl/NewsServiceImpl.java | 113 +++++++++--------- 2 files changed, 68 insertions(+), 55 deletions(-) diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/enums/AppNewsLikeEnum.java b/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/enums/AppNewsLikeEnum.java index 0ed05d598..19f00fb32 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/enums/AppNewsLikeEnum.java +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/enums/AppNewsLikeEnum.java @@ -18,7 +18,15 @@ public enum AppNewsLikeEnum { /** * 1-踩 */ - UNLIKE(NumConstant.ONE_STR); + UNLIKE(NumConstant.ONE_STR), + /** + * 2-取消赞 + */ + LIKE_CANCEL(NumConstant.TWO_STR), + /** + * 3-取消踩 + */ + UNLIKE_CANCEL(NumConstant.THREE_STR); private String value; 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 7b9225f7c..484818f52 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 @@ -271,74 +271,79 @@ public class NewsServiceImpl extends BaseServiceImpl 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); - } - break; - case "2": - //之前赞过 - if (AppNewsLikeEnum.LIKE.value().equals(oldAttitudeFlag)) { - newsEntity.setLikeNumber(oldDTO.getLikeNumber() - NumConstant.ONE); - newsUserAttitudeService.deleteById(userBehavior.getId()); - } else { - //之前没点过赞不能取消 - return new Result().error("错误操作"); + userBehavior.setAttitudeFlag(AppNewsLikeEnum.UNLIKE.value()); + newsUserAttitudeService.updateById(userBehavior); + newsEntity.setLikeNumber(newsDto.getLikeNumber() - NumConstant.ONE); } - 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(); }