|
@ -290,26 +290,27 @@ public class NewsServiceImpl extends BaseServiceImpl<NewsDao, NewsEntity> implem |
|
|
@Override |
|
|
@Override |
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
public Result modifyStatement(EpdcNewsStatementFromDTO statementFromDto) { |
|
|
public Result modifyStatement(EpdcNewsStatementFromDTO statementFromDto) { |
|
|
NewsDTO newsDto = get(statementFromDto.getNewsId()); |
|
|
|
|
|
|
|
|
|
|
|
// 已表态
|
|
|
// 获取新表态的类型 0赞;1踩;2取消赞;3取消踩
|
|
|
|
|
|
String newAttitudeFlag = statementFromDto.getAttitude(); |
|
|
|
|
|
AppNewsLikeEnum newAttitude = AppNewsLikeEnum.getEnumByValue(newAttitudeFlag); |
|
|
|
|
|
if (null == newAttitude) { |
|
|
|
|
|
return new Result().error("表态类型非法"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 旧的表态
|
|
|
String oldAttitudeFlag = null; |
|
|
String oldAttitudeFlag = null; |
|
|
NewsUserAttitudeEntity userBehavior = newsUserAttitudeService.getUserBehavior(statementFromDto); |
|
|
NewsUserAttitudeEntity userBehavior = newsUserAttitudeService.getUserBehavior(statementFromDto); |
|
|
NewsUserAttitudeDTO newsUserAttitudeDto = new NewsUserAttitudeDTO(); |
|
|
|
|
|
if (null != userBehavior) { |
|
|
if (null != userBehavior) { |
|
|
oldAttitudeFlag = userBehavior.getAttitudeFlag(); |
|
|
oldAttitudeFlag = userBehavior.getAttitudeFlag(); |
|
|
} else { |
|
|
|
|
|
newsUserAttitudeDto.setEpdcNewsId(newsDto.getId()); |
|
|
|
|
|
newsUserAttitudeDto.setUserId(statementFromDto.getUserId()); |
|
|
|
|
|
} |
|
|
} |
|
|
// 新表态(本次提交)
|
|
|
|
|
|
String newAttitudeFlag = statementFromDto.getAttitude(); |
|
|
// 组装新的表态,待插入
|
|
|
AppNewsLikeEnum newAttitude = AppNewsLikeEnum.getEnumByValue(newAttitudeFlag); |
|
|
String newsId = statementFromDto.getNewsId(); |
|
|
if (null == newAttitude) { |
|
|
NewsUserAttitudeDTO newsUserAttitudeDto = new NewsUserAttitudeDTO(); |
|
|
return new Result().error("表态值非法"); |
|
|
newsUserAttitudeDto.setEpdcNewsId(newsId); |
|
|
} |
|
|
newsUserAttitudeDto.setUserId(statementFromDto.getUserId()); |
|
|
NewsEntity newsEntity = new NewsEntity(); |
|
|
|
|
|
//表态 0赞;1踩;2取消赞;3取消踩
|
|
|
|
|
|
switch (newAttitude) { |
|
|
switch (newAttitude) { |
|
|
case LIKE: |
|
|
case LIKE: |
|
|
if (StringUtils.isNotBlank(oldAttitudeFlag)) { |
|
|
if (StringUtils.isNotBlank(oldAttitudeFlag)) { |
|
@ -320,13 +321,13 @@ public class NewsServiceImpl extends BaseServiceImpl<NewsDao, NewsEntity> implem |
|
|
// 之前踩过
|
|
|
// 之前踩过
|
|
|
userBehavior.setAttitudeFlag(AppNewsLikeEnum.LIKE.value()); |
|
|
userBehavior.setAttitudeFlag(AppNewsLikeEnum.LIKE.value()); |
|
|
newsUserAttitudeService.updateById(userBehavior); |
|
|
newsUserAttitudeService.updateById(userBehavior); |
|
|
newsEntity.setUnLikeNumber(newsDto.getUnLikeNumber() - NumConstant.ONE); |
|
|
this.baseDao.updateStatementAmount(newsId, StatementTypeEnum.UN_LIKE_NUM.value(), NumConstant.ONE_NEG); |
|
|
} |
|
|
} |
|
|
} else { |
|
|
} else { |
|
|
newsUserAttitudeDto.setAttitudeFlag(AppNewsLikeEnum.LIKE.value()); |
|
|
newsUserAttitudeDto.setAttitudeFlag(AppNewsLikeEnum.LIKE.value()); |
|
|
newsUserAttitudeService.save(newsUserAttitudeDto); |
|
|
newsUserAttitudeService.save(newsUserAttitudeDto); |
|
|
} |
|
|
} |
|
|
newsEntity.setLikeNumber(newsDto.getLikeNumber() + NumConstant.ONE); |
|
|
this.baseDao.updateStatementAmount(newsId, StatementTypeEnum.LIKE_NUM.value(), NumConstant.ONE); |
|
|
break; |
|
|
break; |
|
|
case UNLIKE: |
|
|
case UNLIKE: |
|
|
if (StringUtils.isNotBlank(oldAttitudeFlag)) { |
|
|
if (StringUtils.isNotBlank(oldAttitudeFlag)) { |
|
@ -337,42 +338,37 @@ public class NewsServiceImpl extends BaseServiceImpl<NewsDao, NewsEntity> implem |
|
|
// 之前赞过
|
|
|
// 之前赞过
|
|
|
userBehavior.setAttitudeFlag(AppNewsLikeEnum.UNLIKE.value()); |
|
|
userBehavior.setAttitudeFlag(AppNewsLikeEnum.UNLIKE.value()); |
|
|
newsUserAttitudeService.updateById(userBehavior); |
|
|
newsUserAttitudeService.updateById(userBehavior); |
|
|
newsEntity.setLikeNumber(newsDto.getLikeNumber() - NumConstant.ONE); |
|
|
this.baseDao.updateStatementAmount(newsId, StatementTypeEnum.LIKE_NUM.value(), NumConstant.ONE_NEG); |
|
|
} |
|
|
} |
|
|
} else { |
|
|
} else { |
|
|
newsUserAttitudeDto.setAttitudeFlag(AppNewsLikeEnum.UNLIKE.value()); |
|
|
newsUserAttitudeDto.setAttitudeFlag(AppNewsLikeEnum.UNLIKE.value()); |
|
|
newsUserAttitudeService.save(newsUserAttitudeDto); |
|
|
newsUserAttitudeService.save(newsUserAttitudeDto); |
|
|
} |
|
|
} |
|
|
newsEntity.setUnLikeNumber(newsDto.getUnLikeNumber() + NumConstant.ONE); |
|
|
this.baseDao.updateStatementAmount(newsId, StatementTypeEnum.UN_LIKE_NUM.value(), NumConstant.ONE); |
|
|
break; |
|
|
break; |
|
|
case LIKE_CANCEL: |
|
|
case LIKE_CANCEL: |
|
|
if (StringUtils.isBlank(oldAttitudeFlag) || AppNewsLikeEnum.UNLIKE.value().equals(oldAttitudeFlag)) { |
|
|
if (StringUtils.isBlank(oldAttitudeFlag) || AppNewsLikeEnum.UNLIKE.value().equals(oldAttitudeFlag)) { |
|
|
return new Result().error("没有赞过,无法取消"); |
|
|
return new Result().error("没有赞过,无法取消"); |
|
|
} |
|
|
} |
|
|
newsUserAttitudeService.deleteById(userBehavior.getId()); |
|
|
this.newsUserAttitudeService.deletePhysicalById(userBehavior.getId()); |
|
|
newsEntity.setLikeNumber(newsDto.getLikeNumber() - NumConstant.ONE); |
|
|
this.baseDao.updateStatementAmount(newsId, StatementTypeEnum.LIKE_NUM.value(), NumConstant.ONE_NEG); |
|
|
break; |
|
|
break; |
|
|
case UNLIKE_CANCEL: |
|
|
case UNLIKE_CANCEL: |
|
|
if (StringUtils.isBlank(oldAttitudeFlag) || AppNewsLikeEnum.LIKE.value().equals(oldAttitudeFlag)) { |
|
|
if (StringUtils.isBlank(oldAttitudeFlag) || AppNewsLikeEnum.LIKE.value().equals(oldAttitudeFlag)) { |
|
|
return new Result().error("没有踩过,无法取消"); |
|
|
return new Result().error("没有踩过,无法取消"); |
|
|
} |
|
|
} |
|
|
newsUserAttitudeService.deleteById(userBehavior.getId()); |
|
|
this.newsUserAttitudeService.deletePhysicalById(userBehavior.getId()); |
|
|
newsEntity.setUnLikeNumber(newsDto.getUnLikeNumber() - NumConstant.ONE); |
|
|
this.baseDao.updateStatementAmount(newsId, StatementTypeEnum.UN_LIKE_NUM.value(), NumConstant.ONE_NEG); |
|
|
break; |
|
|
break; |
|
|
default: |
|
|
default: |
|
|
return new Result().error(); |
|
|
return new Result().error(); |
|
|
} |
|
|
} |
|
|
newsEntity.setId(newsDto.getId()); |
|
|
|
|
|
baseDao.updateById(newsEntity); |
|
|
|
|
|
return new Result(); |
|
|
return new Result(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public Result modifyNewsBrowse(EpdcNewsBrowseFromDTO newsBrowseFromDTO) { |
|
|
public Result modifyNewsBrowse(EpdcNewsBrowseFromDTO newsDto) { |
|
|
NewsDTO newsDTO = get(newsBrowseFromDTO.getNewsId()); |
|
|
this.baseDao.updateStatementAmount(newsDto.getNewsId(), StatementTypeEnum.READING_AMOUNT.value(), NumConstant.ONE); |
|
|
NewsEntity newsEntity = ConvertUtils.sourceToTarget(newsDTO, NewsEntity.class); |
|
|
|
|
|
newsEntity.setReadingAmount(newsDTO.getReadingAmount() + NumConstant.ONE); |
|
|
|
|
|
baseDao.updateById(newsEntity); |
|
|
|
|
|
return new Result(); |
|
|
return new Result(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -415,4 +411,35 @@ public class NewsServiceImpl extends BaseServiceImpl<NewsDao, NewsEntity> implem |
|
|
return new Result(); |
|
|
return new Result(); |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 用户新闻参与类型 |
|
|
|
|
|
* |
|
|
|
|
|
* @author work@yujt.net.cn |
|
|
|
|
|
* @date 2019/9/29 16:41 |
|
|
|
|
|
*/ |
|
|
|
|
|
enum StatementTypeEnum { |
|
|
|
|
|
/** |
|
|
|
|
|
* 阅读数 |
|
|
|
|
|
*/ |
|
|
|
|
|
READING_AMOUNT("readingAmount"), |
|
|
|
|
|
/** |
|
|
|
|
|
* 点赞数 |
|
|
|
|
|
*/ |
|
|
|
|
|
LIKE_NUM("likeNum"), |
|
|
|
|
|
/** |
|
|
|
|
|
* 踩数 |
|
|
|
|
|
*/ |
|
|
|
|
|
UN_LIKE_NUM("unLikeNum"); |
|
|
|
|
|
|
|
|
|
|
|
private String value; |
|
|
|
|
|
|
|
|
|
|
|
StatementTypeEnum(String value) { |
|
|
|
|
|
this.value = value; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public String value() { |
|
|
|
|
|
return value; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |