diff --git a/pom.xml b/pom.xml index ea0eb05..03da05b 100644 --- a/pom.xml +++ b/pom.xml @@ -101,7 +101,7 @@ com.alibaba fastjson - 2.0.3 + 1.2.83 @@ -241,10 +241,6 @@ com.google.guava guava - - org.json - json - diff --git a/src/main/java/com/rymcu/forest/core/service/security/AuthorshipAspect.java b/src/main/java/com/rymcu/forest/core/service/security/AuthorshipAspect.java index 093b48d..92fd989 100644 --- a/src/main/java/com/rymcu/forest/core/service/security/AuthorshipAspect.java +++ b/src/main/java/com/rymcu/forest/core/service/security/AuthorshipAspect.java @@ -75,11 +75,21 @@ public class AuthorshipAspect { isArticle = false; } HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); - String idArticle = ""; + String idArticle; Integer idAuthor = 0; if (isAjax(request)) { Object[] objects = joinPoint.getArgs(); - JSONObject jsonObject = JSONObject.parseObject(JSON.toJSONString(objects[0])); + JSONObject jsonObject; + if (objects[0] instanceof Integer) { + jsonObject = new JSONObject(); + if (isArticle) { + jsonObject.put("idArticle", objects[0].toString()); + } else { + jsonObject.put("idPortfolio", objects[0].toString()); + } + } else { + jsonObject = JSONObject.parseObject(JSON.toJSONString(objects[0])); + } if (Objects.nonNull(jsonObject)) { if (isArticle) { idArticle = jsonObject.getString("idArticle"); diff --git a/src/main/java/com/rymcu/forest/core/service/security/SecurityAspect.java b/src/main/java/com/rymcu/forest/core/service/security/SecurityAspect.java index f6ba82c..453d5eb 100644 --- a/src/main/java/com/rymcu/forest/core/service/security/SecurityAspect.java +++ b/src/main/java/com/rymcu/forest/core/service/security/SecurityAspect.java @@ -54,9 +54,14 @@ public class SecurityAspect { String idUser = ""; if (isAjax(request)) { Object[] objects = joinPoint.getArgs(); - JSONObject jsonObject = JSONObject.parseObject(JSON.toJSONString(objects[0])); - if (Objects.nonNull(jsonObject)) { - idUser = jsonObject.getString("idUser"); + JSONObject jsonObject; + if (objects[0] instanceof Integer) { + idUser = objects[0].toString(); + } else { + jsonObject = JSONObject.parseObject(JSON.toJSONString(objects[0])); + if (Objects.nonNull(jsonObject)) { + idUser = jsonObject.getString("idUser"); + } } } else { Map params = getParams(request); diff --git a/src/main/java/com/rymcu/forest/entity/Sponsor.java b/src/main/java/com/rymcu/forest/entity/Sponsor.java index 46ad4b3..a9eeaef 100644 --- a/src/main/java/com/rymcu/forest/entity/Sponsor.java +++ b/src/main/java/com/rymcu/forest/entity/Sponsor.java @@ -24,7 +24,7 @@ public class Sponsor implements Serializable, Cloneable { /** * 数据类型 */ - private String dataType; + private Integer dataType; /** * 数据主键 */ diff --git a/src/main/java/com/rymcu/forest/enumerate/TransactionEnum.java b/src/main/java/com/rymcu/forest/enumerate/TransactionEnum.java index 6b6c8de..fec7f07 100644 --- a/src/main/java/com/rymcu/forest/enumerate/TransactionEnum.java +++ b/src/main/java/com/rymcu/forest/enumerate/TransactionEnum.java @@ -7,29 +7,22 @@ import java.util.Arrays; */ public enum TransactionEnum { - ArticleSponsor("0", 20, "文章赞赏"), - Answer("1", 30, "答题奖励"), - CorrectAnswer("2", 50, "答题奖励"), - NewbieRewards("3", 200, "新手奖励"); - - private String dataType; + ArticleSponsor(20, "文章赞赏"), + Answer(30, "答题奖励"), + CorrectAnswer(50, "答题奖励"), + NewbieRewards(200, "新手奖励"); private Integer money; private String description; - TransactionEnum(String dataType, Integer money, String description) { - this.dataType = dataType; + TransactionEnum(Integer money, String description) { this.money = money; this.description = description; } - public static TransactionEnum findTransactionEnum(String dataType) { - return Arrays.stream(TransactionEnum.values()).filter(transactionEnum -> transactionEnum.getDataType().equals(dataType)).findFirst().orElse(TransactionEnum.ArticleSponsor); - } - - public String getDataType() { - return this.dataType; + public static TransactionEnum findTransactionEnum(int dataType) { + return Arrays.stream(TransactionEnum.values()).filter(transactionEnum -> transactionEnum.ordinal() == dataType).findFirst().orElse(TransactionEnum.ArticleSponsor); } public Integer getMoney() { diff --git a/src/main/java/com/rymcu/forest/mapper/NotificationMapper.java b/src/main/java/com/rymcu/forest/mapper/NotificationMapper.java index fee64a9..d0257eb 100644 --- a/src/main/java/com/rymcu/forest/mapper/NotificationMapper.java +++ b/src/main/java/com/rymcu/forest/mapper/NotificationMapper.java @@ -58,4 +58,12 @@ public interface NotificationMapper extends Mapper { * @return */ Integer readAllNotification(@Param("idUser") Integer idUser); + + /** + * 删除相关未读消息 + * @param dataId + * @param dataType + * @return + */ + Integer deleteUnreadNotification(@Param("dataId") Integer dataId, @Param("dataType") String dataType); } diff --git a/src/main/java/com/rymcu/forest/service/NotificationService.java b/src/main/java/com/rymcu/forest/service/NotificationService.java index da7109b..1b3e461 100644 --- a/src/main/java/com/rymcu/forest/service/NotificationService.java +++ b/src/main/java/com/rymcu/forest/service/NotificationService.java @@ -58,4 +58,12 @@ public interface NotificationService extends Service { * @throws BaseApiException */ Integer readAllNotification() throws BaseApiException; + + /** + * 删除相关未读消息 + * @param dataId + * @param dataType + * @return + */ + Integer deleteUnreadNotification(Integer dataId, String dataType); } diff --git a/src/main/java/com/rymcu/forest/service/impl/ArticleServiceImpl.java b/src/main/java/com/rymcu/forest/service/impl/ArticleServiceImpl.java index 2fc19f9..f0bc2f2 100644 --- a/src/main/java/com/rymcu/forest/service/impl/ArticleServiceImpl.java +++ b/src/main/java/com/rymcu/forest/service/impl/ArticleServiceImpl.java @@ -10,6 +10,7 @@ import com.rymcu.forest.entity.User; import com.rymcu.forest.lucene.service.LuceneService; import com.rymcu.forest.mapper.ArticleMapper; import com.rymcu.forest.service.ArticleService; +import com.rymcu.forest.service.NotificationService; import com.rymcu.forest.service.TagService; import com.rymcu.forest.service.UserService; import com.rymcu.forest.util.*; @@ -43,6 +44,8 @@ public class ArticleServiceImpl extends AbstractService
implements Arti private UserService userService; @Resource private LuceneService luceneService; + @Resource + private NotificationService notificationService; @Value("${resource.domain}") private String domain; @@ -257,6 +260,8 @@ public class ArticleServiceImpl extends AbstractService
implements Arti articleMapper.deleteTagArticle(id); // 删除文章内容表 articleMapper.deleteArticleContent(id); + // 删除相关未读消息 + notificationService.deleteUnreadNotification(id, NotificationConstant.PostArticle); } @Override diff --git a/src/main/java/com/rymcu/forest/service/impl/NotificationServiceImpl.java b/src/main/java/com/rymcu/forest/service/impl/NotificationServiceImpl.java index c409d8e..18143ea 100644 --- a/src/main/java/com/rymcu/forest/service/impl/NotificationServiceImpl.java +++ b/src/main/java/com/rymcu/forest/service/impl/NotificationServiceImpl.java @@ -77,4 +77,9 @@ public class NotificationServiceImpl extends AbstractService imple public Integer readAllNotification() throws BaseApiException { return notificationMapper.readAllNotification(Objects.requireNonNull(UserUtils.getCurrentUserByToken()).getIdUser()); } + + @Override + public Integer deleteUnreadNotification(Integer dataId, String dataType) { + return notificationMapper.deleteUnreadNotification(dataId, dataType); + } } diff --git a/src/main/java/com/rymcu/forest/service/impl/TransactionRecordServiceImpl.java b/src/main/java/com/rymcu/forest/service/impl/TransactionRecordServiceImpl.java index af8856f..4a2f7cb 100644 --- a/src/main/java/com/rymcu/forest/service/impl/TransactionRecordServiceImpl.java +++ b/src/main/java/com/rymcu/forest/service/impl/TransactionRecordServiceImpl.java @@ -57,7 +57,7 @@ public class TransactionRecordServiceImpl extends AbstractService findTransactionRecords(String bankAccount, String startDate, String endDate) { List list = transactionRecordMapper.selectTransactionRecords(bankAccount, startDate, endDate); - list.forEach(transactionRecordDTO -> genTransactionRecord(transactionRecordDTO)); + list.forEach(this::genTransactionRecord); return list; } diff --git a/src/main/java/mapper/NotificationMapper.xml b/src/main/java/mapper/NotificationMapper.xml index 3e68965..bcbbfd2 100644 --- a/src/main/java/mapper/NotificationMapper.xml +++ b/src/main/java/mapper/NotificationMapper.xml @@ -28,6 +28,9 @@ update forest_notification set has_read = '1' where id_user = #{idUser} and has_read = '0' + + delete from forest_notification where has_read = '0' and data_id = #{dataId} and data_type = #{dataType} +