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}
+