diff --git a/README.md b/README.md index 7b9ea06..048cd1b 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,7 @@ novel-plus 5.x 已集成 Spring 官方最新发布的 Spring AI 框架,并推 我们将持续关注 AI 技术的发展,并致力于将其与小说创作场景深度融合,为用户带来更智能、更便捷的创作工具。 -novel-plus 项目默认使用的是第三方大模型服务平台[硅基流动](https://cloud.siliconflow.cn/i/DOgMRH9S)提供的 API(兼容 OpenAI 的相关接口,可直接通过 Spring AI 框架调用),采用的 AI 模型有对话模型`deepseek-ai/DeepSeek-R1-Distill-Llama-8B`(DeepSeek-R1 的蒸馏版本,免费使用)和生图模型`Kwai-Kolors/Kolors`(快手 Kolors 团队开发的文本到图像生成模型,免费使用)。只需注册一个硅基流动账号,创建一个 API 密钥,并将其添加到 novel-plus 项目 novel-front 模块的 yaml 配置文件中,即可体验 novel-plus 项目的 AI 写作功能。 +novel-plus 项目默认使用的是第三方大模型服务平台[硅基流动](https://cloud.siliconflow.cn/i/DOgMRH9S)提供的 API(兼容 OpenAI 的相关接口,可直接通过 Spring AI 框架调用),采用的 AI 模型有对话模型`deepseek-ai/DeepSeek-R1-0528-Qwen3-8B`(DeepSeek-R1 的蒸馏版本,免费使用)和生图模型`Kwai-Kolors/Kolors`(快手 Kolors 团队开发的文本到图像生成模型,免费使用)。只需注册一个硅基流动账号,创建一个 API 密钥,并将其添加到 novel-plus 项目 novel-front 模块的 yaml 配置文件中,即可体验 novel-plus 项目的 AI 写作功能。 ```yaml spring: @@ -98,7 +98,7 @@ spring: base-url: https://api.siliconflow.cn chat: options: - model: deepseek-ai/DeepSeek-R1-Distill-Llama-8B + model: deepseek-ai/DeepSeek-R1-0528-Qwen3-8B ``` ⚠️ novel-plus 项目默认使用的都是免费 AI 模型,生成效果有限。如果对生成内容有更高的要求,建议选用付费的 AI 模型。 diff --git a/doc/sql/novel_plus.sql b/doc/sql/novel_plus.sql index 577d3fd..0d15f51 100644 --- a/doc/sql/novel_plus.sql +++ b/doc/sql/novel_plus.sql @@ -3174,4 +3174,43 @@ CREATE TABLE `book_comment_reply` `create_user_id` bigint(20) DEFAULT NULL COMMENT '回复时间', PRIMARY KEY (`id`) ) ENGINE = InnoDB - DEFAULT CHARSET = utf8mb4 COMMENT ='小说评论回复表'; \ No newline at end of file + DEFAULT CHARSET = utf8mb4 COMMENT ='小说评论回复表'; + + +INSERT INTO crawl_source (source_name, crawl_rule, source_status, create_time + , update_time) +VALUES ('飘天文学网(海外专用)', '{ + "bookListUrl": "https://www.piaotia.com/booksort{catId}/{page}.html", + "catIdRule": { + "catId1": "1/0", + "catId2": "2/0", + "catId3": "3/0", + "catId4": "4/0", + "catId5": "6/0", + "catId6": "5/0" + }, + "bookIdPatten": "href=\\"https://www.piaotia.com/bookinfo/(\\\\d+/\\\\d+).html\\"", + "pagePatten": "(\\\\d+)/\\\\d+", + "totalPagePatten": "\\\\d+/(\\\\d+)", + "bookDetailUrl": "https://www.piaotia.com/bookinfo/{bookId}.html", + "bookNamePatten": "

([^/]+)

", + "authorNamePatten": "作    者:([^/]+)<", + "picUrlPatten": "文章状态:([^/]+)", + "bookStatusRule": { + "连载中": 0, + "已完成": 1 + }, + "descStart": " 内容简介:
", + "descEnd": "", + "filterDesc": "", + "bookIndexUrl": "https://www.piaotia.com/html/{bookId}/index.html", + "indexIdPatten": "
  • [^/]+
  • ", + "indexNamePatten": "
  • ([^/]+)
  • ", + "bookContentUrl": "https://www.piaotia.com/html/{bookId}/{indexId}.html", + "contentStart": "
    ", + "contentEnd": "", + "filterContent": "", + "charset": "gbk" +}', 0, '2025-07-13 18:57:39' + , '2025-07-13 18:57:39'); \ No newline at end of file diff --git a/novel-admin/pom.xml b/novel-admin/pom.xml index cafc30b..6d44b43 100644 --- a/novel-admin/pom.xml +++ b/novel-admin/pom.xml @@ -5,7 +5,7 @@ com.java2nb novel-admin - 5.2.2 + 5.2.3 jar novel-admin diff --git a/novel-admin/src/main/java/com/java2nb/common/annotation/SanitizeMap.java b/novel-admin/src/main/java/com/java2nb/common/annotation/SanitizeMap.java new file mode 100644 index 0000000..01594e2 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/annotation/SanitizeMap.java @@ -0,0 +1,14 @@ +package com.java2nb.common.annotation; + +import java.lang.annotation.*; + +/** + * 标记某个方法参数需要进行 Map 字段的清理和标准化处理。 + * + *

    通常用于 DAO 接口中 list 方法的 Map 参数,用于防止非法排序字段或排序顺序。

    + */ +@Target(ElementType.PARAMETER) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface SanitizeMap { +} diff --git a/novel-admin/src/main/java/com/java2nb/common/annotation/ValidateSortOrder.java b/novel-admin/src/main/java/com/java2nb/common/annotation/ValidateSortOrder.java deleted file mode 100644 index 81b55b3..0000000 --- a/novel-admin/src/main/java/com/java2nb/common/annotation/ValidateSortOrder.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.java2nb.common.annotation; - -import java.lang.annotation.*; - -/** - * @author xiongxiaoyang - * @date 2025/7/17 - */ -@Target(ElementType.PARAMETER) -@Retention(RetentionPolicy.RUNTIME) -@Documented -public @interface ValidateSortOrder { -} diff --git a/novel-admin/src/main/java/com/java2nb/common/aspect/SortOrderValidationAspect.java b/novel-admin/src/main/java/com/java2nb/common/aspect/MapSortValidationAspect.java similarity index 56% rename from novel-admin/src/main/java/com/java2nb/common/aspect/SortOrderValidationAspect.java rename to novel-admin/src/main/java/com/java2nb/common/aspect/MapSortValidationAspect.java index 01da149..4065824 100644 --- a/novel-admin/src/main/java/com/java2nb/common/aspect/SortOrderValidationAspect.java +++ b/novel-admin/src/main/java/com/java2nb/common/aspect/MapSortValidationAspect.java @@ -1,6 +1,6 @@ package com.java2nb.common.aspect; -import com.java2nb.common.annotation.ValidateSortOrder; +import com.java2nb.common.annotation.SanitizeMap; import com.java2nb.common.utils.SortWhitelistUtil; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; @@ -16,20 +16,33 @@ import java.util.Arrays; import java.util.Map; /** - * @author xiongxiaoyang - * @date 2025/7/17 + * 拦截所有 Mapper 接口的 list* 方法,对带有 @SanitizeMap 注解的 Map 参数进行排序字段和顺序的规范化处理。 + * + *

    主要防止 SQL 注入或非法排序字段、非法排序顺序的问题。 + * 例如对 sort 和 order 字段进行白名单过滤和标准化处理。

    */ @Aspect @Component @RequiredArgsConstructor -public class SortOrderValidationAspect { +public class MapSortValidationAspect { /** - * 拦截所有的mapper方法 + * 拦截所有 Mapper 接口的 list* 方法(如 list(), listByPage 等)。 + * 对带有 @SanitizeMap 注解的 Map 参数进行处理。 + * + *

    执行逻辑:

    + *
      + *
    1. 获取方法参数及注解信息
    2. + *
    3. 遍历所有参数,检查是否带有 @SanitizeMap 注解
    4. + *
    5. 如果参数是 Map 类型且有注解,则进行字段清理
    6. + *
    + * + * @param joinPoint 切点信息 + * @return 方法执行结果 */ @SneakyThrows - @Around("execution(* com.java2nb.*.dao.*Dao.*(..))") - public Object validateSortAndOrder(ProceedingJoinPoint joinPoint) { + @Around("execution(* com.java2nb.*.dao.*Dao.list*(..))") + public Object sanitizeMapParameters(ProceedingJoinPoint joinPoint) { Object[] args = joinPoint.getArgs(); MethodSignature signature = (MethodSignature) joinPoint.getSignature(); Method method = signature.getMethod(); @@ -38,7 +51,7 @@ public class SortOrderValidationAspect { for (int i = 0; i < parameterAnnotations.length; i++) { boolean hasAnnotation = Arrays.stream(parameterAnnotations[i]) - .anyMatch(a -> a.annotationType().equals(ValidateSortOrder.class)); + .anyMatch(a -> a.annotationType().equals(SanitizeMap.class)); if (hasAnnotation && args[i] instanceof Map map) { if (map.get("sort") instanceof String sortStr) { diff --git a/novel-admin/src/main/java/com/java2nb/common/dao/DictDao.java b/novel-admin/src/main/java/com/java2nb/common/dao/DictDao.java index c358fa8..792c3cf 100644 --- a/novel-admin/src/main/java/com/java2nb/common/dao/DictDao.java +++ b/novel-admin/src/main/java/com/java2nb/common/dao/DictDao.java @@ -1,6 +1,6 @@ package com.java2nb.common.dao; -import com.java2nb.common.annotation.ValidateSortOrder; +import com.java2nb.common.annotation.SanitizeMap; import com.java2nb.common.domain.DictDO; import java.util.List; @@ -20,7 +20,7 @@ public interface DictDao { DictDO get(Long id); - List list(@ValidateSortOrder Map map); + List list(@SanitizeMap Map map); int count(Map map); diff --git a/novel-admin/src/main/java/com/java2nb/common/dao/FileDao.java b/novel-admin/src/main/java/com/java2nb/common/dao/FileDao.java index 3dec742..604f527 100644 --- a/novel-admin/src/main/java/com/java2nb/common/dao/FileDao.java +++ b/novel-admin/src/main/java/com/java2nb/common/dao/FileDao.java @@ -1,6 +1,6 @@ package com.java2nb.common.dao; -import com.java2nb.common.annotation.ValidateSortOrder; +import com.java2nb.common.annotation.SanitizeMap; import com.java2nb.common.domain.FileDO; import java.util.List; @@ -19,7 +19,7 @@ public interface FileDao { FileDO get(Long id); - List list(@ValidateSortOrder Map map); + List list(@SanitizeMap Map map); int count(Map map); diff --git a/novel-admin/src/main/java/com/java2nb/common/dao/GenColumnsDao.java b/novel-admin/src/main/java/com/java2nb/common/dao/GenColumnsDao.java index c5ee927..aa275ad 100644 --- a/novel-admin/src/main/java/com/java2nb/common/dao/GenColumnsDao.java +++ b/novel-admin/src/main/java/com/java2nb/common/dao/GenColumnsDao.java @@ -3,7 +3,7 @@ package com.java2nb.common.dao; import java.util.List; import java.util.Map; -import com.java2nb.common.annotation.ValidateSortOrder; +import com.java2nb.common.annotation.SanitizeMap; import com.java2nb.common.domain.GenColumnsDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -20,7 +20,7 @@ public interface GenColumnsDao { GenColumnsDO get(Long id); - List list(@ValidateSortOrder Map map); + List list(@SanitizeMap Map map); int count(Map map); diff --git a/novel-admin/src/main/java/com/java2nb/common/dao/LogDao.java b/novel-admin/src/main/java/com/java2nb/common/dao/LogDao.java index 7e3e42a..15d31b5 100644 --- a/novel-admin/src/main/java/com/java2nb/common/dao/LogDao.java +++ b/novel-admin/src/main/java/com/java2nb/common/dao/LogDao.java @@ -1,6 +1,6 @@ package com.java2nb.common.dao; -import com.java2nb.common.annotation.ValidateSortOrder; +import com.java2nb.common.annotation.SanitizeMap; import com.java2nb.common.domain.LogDO; import java.util.List; @@ -19,7 +19,7 @@ public interface LogDao { LogDO get(Long id); - List list(@ValidateSortOrder Map map); + List list(@SanitizeMap Map map); int count(Map map); diff --git a/novel-admin/src/main/java/com/java2nb/common/utils/SortWhitelistUtil.java b/novel-admin/src/main/java/com/java2nb/common/utils/SortWhitelistUtil.java index 2ca8300..a6acdec 100644 --- a/novel-admin/src/main/java/com/java2nb/common/utils/SortWhitelistUtil.java +++ b/novel-admin/src/main/java/com/java2nb/common/utils/SortWhitelistUtil.java @@ -2,27 +2,42 @@ package com.java2nb.common.utils; import lombok.experimental.UtilityClass; -import java.util.Arrays; -import java.util.HashSet; import java.util.Set; /** - * @author xiongxiaoyang - * @date 2025/7/17 + * 排序字段和排序顺序的白名单工具类。 */ @UtilityClass public class SortWhitelistUtil { - private final Set allowedColumns = new HashSet<>( - Arrays.asList("id", "name", "create_time", "update_time", "order_num", "last_index_update_time", "word_count", - "visit_count")); - private final Set allowedOrders = new HashSet<>(Arrays.asList("asc", "desc")); + // 白名单字段 + private static final Set ALLOWED_COLUMNS = Set.of("id", "name", "order_num"); - public String sanitizeColumn(String input) { - return allowedColumns.contains(input.toLowerCase()) ? input.toLowerCase() : "id"; + // 白名单排序方式 + private static final Set ALLOWED_ORDERS = Set.of("asc", "desc"); + + /** + * 对排序字段进行白名单过滤和标准化。 + * + * @param column 原始字段名 + * @return 安全的字段名,若非法则返回 null + */ + public static String sanitizeColumn(String column) { + if (column == null) return null; + String lower = column.trim().toLowerCase(); + return ALLOWED_COLUMNS.contains(lower) ? lower : null; } - public String sanitizeOrder(String input) { - return allowedOrders.contains(input.toLowerCase()) ? input.toLowerCase() : "asc"; + /** + * 对排序方式进行白名单过滤和标准化。 + * + * @param order 原始排序方式 + * @return 安全的排序方式("asc" 或 "desc"),若非法则返回 null + */ + public static String sanitizeOrder(String order) { + if (order == null) return null; + String lower = order.trim().toLowerCase(); + return ALLOWED_ORDERS.contains(lower) ? lower : null; } + } \ No newline at end of file diff --git a/novel-admin/src/main/java/com/java2nb/novel/dao/AuthorCodeDao.java b/novel-admin/src/main/java/com/java2nb/novel/dao/AuthorCodeDao.java index 2beee31..138e560 100644 --- a/novel-admin/src/main/java/com/java2nb/novel/dao/AuthorCodeDao.java +++ b/novel-admin/src/main/java/com/java2nb/novel/dao/AuthorCodeDao.java @@ -1,6 +1,6 @@ package com.java2nb.novel.dao; -import com.java2nb.common.annotation.ValidateSortOrder; +import com.java2nb.common.annotation.SanitizeMap; import com.java2nb.novel.domain.AuthorCodeDO; @@ -20,7 +20,7 @@ public interface AuthorCodeDao { AuthorCodeDO get(Long id); - List list(@ValidateSortOrder Map map); + List list(@SanitizeMap Map map); int count(Map map); diff --git a/novel-admin/src/main/java/com/java2nb/novel/dao/AuthorDao.java b/novel-admin/src/main/java/com/java2nb/novel/dao/AuthorDao.java index 44daeaf..39fe720 100644 --- a/novel-admin/src/main/java/com/java2nb/novel/dao/AuthorDao.java +++ b/novel-admin/src/main/java/com/java2nb/novel/dao/AuthorDao.java @@ -1,6 +1,6 @@ package com.java2nb.novel.dao; -import com.java2nb.common.annotation.ValidateSortOrder; +import com.java2nb.common.annotation.SanitizeMap; import com.java2nb.novel.domain.AuthorDO; import java.util.Date; @@ -20,7 +20,7 @@ public interface AuthorDao { AuthorDO get(Long id); - List list(@ValidateSortOrder Map map); + List list(@SanitizeMap Map map); int count(Map map); diff --git a/novel-admin/src/main/java/com/java2nb/novel/dao/BookCommentDao.java b/novel-admin/src/main/java/com/java2nb/novel/dao/BookCommentDao.java index 7350a31..f6838dc 100644 --- a/novel-admin/src/main/java/com/java2nb/novel/dao/BookCommentDao.java +++ b/novel-admin/src/main/java/com/java2nb/novel/dao/BookCommentDao.java @@ -1,6 +1,6 @@ package com.java2nb.novel.dao; -import com.java2nb.common.annotation.ValidateSortOrder; +import com.java2nb.common.annotation.SanitizeMap; import com.java2nb.novel.domain.BookCommentDO; @@ -20,7 +20,7 @@ public interface BookCommentDao { BookCommentDO get(Long id); - List list(@ValidateSortOrder Map map); + List list(@SanitizeMap Map map); int count(Map map); diff --git a/novel-admin/src/main/java/com/java2nb/novel/dao/BookContentDao.java b/novel-admin/src/main/java/com/java2nb/novel/dao/BookContentDao.java index 697340d..d070322 100644 --- a/novel-admin/src/main/java/com/java2nb/novel/dao/BookContentDao.java +++ b/novel-admin/src/main/java/com/java2nb/novel/dao/BookContentDao.java @@ -1,6 +1,6 @@ package com.java2nb.novel.dao; -import com.java2nb.common.annotation.ValidateSortOrder; +import com.java2nb.common.annotation.SanitizeMap; import com.java2nb.novel.domain.BookContentDO; import org.apache.ibatis.annotations.Mapper; @@ -20,7 +20,7 @@ public interface BookContentDao { BookContentDO get(Long id); - List list(@ValidateSortOrder Map map); + List list(@SanitizeMap Map map); int count(Map map); diff --git a/novel-admin/src/main/java/com/java2nb/novel/dao/BookDao.java b/novel-admin/src/main/java/com/java2nb/novel/dao/BookDao.java index 7ccec2d..14cfcf1 100644 --- a/novel-admin/src/main/java/com/java2nb/novel/dao/BookDao.java +++ b/novel-admin/src/main/java/com/java2nb/novel/dao/BookDao.java @@ -1,6 +1,6 @@ package com.java2nb.novel.dao; -import com.java2nb.common.annotation.ValidateSortOrder; +import com.java2nb.common.annotation.SanitizeMap; import com.java2nb.novel.domain.BookDO; import org.apache.ibatis.annotations.Mapper; @@ -21,7 +21,7 @@ public interface BookDao { BookDO get(Long id); - List list(@ValidateSortOrder Map map); + List list(@SanitizeMap Map map); int count(Map map); diff --git a/novel-admin/src/main/java/com/java2nb/novel/dao/BookIndexDao.java b/novel-admin/src/main/java/com/java2nb/novel/dao/BookIndexDao.java index 56e70ff..6a1ecfc 100644 --- a/novel-admin/src/main/java/com/java2nb/novel/dao/BookIndexDao.java +++ b/novel-admin/src/main/java/com/java2nb/novel/dao/BookIndexDao.java @@ -1,6 +1,6 @@ package com.java2nb.novel.dao; -import com.java2nb.common.annotation.ValidateSortOrder; +import com.java2nb.common.annotation.SanitizeMap; import com.java2nb.novel.domain.BookIndexDO; import org.apache.ibatis.annotations.Mapper; @@ -20,7 +20,7 @@ public interface BookIndexDao { BookIndexDO get(Long id); - List list(@ValidateSortOrder Map map); + List list(@SanitizeMap Map map); int count(Map map); diff --git a/novel-admin/src/main/java/com/java2nb/novel/dao/BookSettingDao.java b/novel-admin/src/main/java/com/java2nb/novel/dao/BookSettingDao.java index 2cbb02f..3f45786 100644 --- a/novel-admin/src/main/java/com/java2nb/novel/dao/BookSettingDao.java +++ b/novel-admin/src/main/java/com/java2nb/novel/dao/BookSettingDao.java @@ -1,6 +1,6 @@ package com.java2nb.novel.dao; -import com.java2nb.common.annotation.ValidateSortOrder; +import com.java2nb.common.annotation.SanitizeMap; import com.java2nb.novel.domain.BookSettingDO; @@ -20,7 +20,7 @@ public interface BookSettingDao { BookSettingDO get(Long id); - List list(@ValidateSortOrder Map map); + List list(@SanitizeMap Map map); int count(Map map); diff --git a/novel-admin/src/main/java/com/java2nb/novel/dao/CategoryDao.java b/novel-admin/src/main/java/com/java2nb/novel/dao/CategoryDao.java index d8c1904..6e9c25d 100644 --- a/novel-admin/src/main/java/com/java2nb/novel/dao/CategoryDao.java +++ b/novel-admin/src/main/java/com/java2nb/novel/dao/CategoryDao.java @@ -1,6 +1,6 @@ package com.java2nb.novel.dao; -import com.java2nb.common.annotation.ValidateSortOrder; +import com.java2nb.common.annotation.SanitizeMap; import com.java2nb.novel.domain.CategoryDO; @@ -20,7 +20,7 @@ public interface CategoryDao { CategoryDO get(Integer id); - List list(@ValidateSortOrder Map map); + List list(@SanitizeMap Map map); int count(Map map); diff --git a/novel-admin/src/main/java/com/java2nb/novel/dao/FriendLinkDao.java b/novel-admin/src/main/java/com/java2nb/novel/dao/FriendLinkDao.java index e3698f6..d94d06e 100644 --- a/novel-admin/src/main/java/com/java2nb/novel/dao/FriendLinkDao.java +++ b/novel-admin/src/main/java/com/java2nb/novel/dao/FriendLinkDao.java @@ -1,6 +1,6 @@ package com.java2nb.novel.dao; -import com.java2nb.common.annotation.ValidateSortOrder; +import com.java2nb.common.annotation.SanitizeMap; import com.java2nb.novel.domain.FriendLinkDO; @@ -20,7 +20,7 @@ public interface FriendLinkDao { FriendLinkDO get(Integer id); - List list(@ValidateSortOrder Map map); + List list(@SanitizeMap Map map); int count(Map map); diff --git a/novel-admin/src/main/java/com/java2nb/novel/dao/NewsDao.java b/novel-admin/src/main/java/com/java2nb/novel/dao/NewsDao.java index c909ca9..28502c2 100644 --- a/novel-admin/src/main/java/com/java2nb/novel/dao/NewsDao.java +++ b/novel-admin/src/main/java/com/java2nb/novel/dao/NewsDao.java @@ -1,6 +1,6 @@ package com.java2nb.novel.dao; -import com.java2nb.common.annotation.ValidateSortOrder; +import com.java2nb.common.annotation.SanitizeMap; import com.java2nb.novel.domain.NewsDO; @@ -20,7 +20,7 @@ public interface NewsDao { NewsDO get(Long id); - List list(@ValidateSortOrder Map map); + List list(@SanitizeMap Map map); int count(Map map); diff --git a/novel-admin/src/main/java/com/java2nb/novel/dao/PayDao.java b/novel-admin/src/main/java/com/java2nb/novel/dao/PayDao.java index acb5aa9..470c45c 100644 --- a/novel-admin/src/main/java/com/java2nb/novel/dao/PayDao.java +++ b/novel-admin/src/main/java/com/java2nb/novel/dao/PayDao.java @@ -1,6 +1,6 @@ package com.java2nb.novel.dao; -import com.java2nb.common.annotation.ValidateSortOrder; +import com.java2nb.common.annotation.SanitizeMap; import com.java2nb.novel.domain.PayDO; @@ -21,7 +21,7 @@ public interface PayDao { PayDO get(Long id); - List list(@ValidateSortOrder Map map); + List list(@SanitizeMap Map map); int count(Map map); diff --git a/novel-admin/src/main/java/com/java2nb/novel/dao/UserDao.java b/novel-admin/src/main/java/com/java2nb/novel/dao/UserDao.java index d42d2a4..9b2dd69 100644 --- a/novel-admin/src/main/java/com/java2nb/novel/dao/UserDao.java +++ b/novel-admin/src/main/java/com/java2nb/novel/dao/UserDao.java @@ -1,6 +1,6 @@ package com.java2nb.novel.dao; -import com.java2nb.common.annotation.ValidateSortOrder; +import com.java2nb.common.annotation.SanitizeMap; import com.java2nb.novel.domain.UserDO; import org.apache.ibatis.annotations.Mapper; @@ -19,7 +19,7 @@ public interface UserDao { UserDO get(Long id); - List list(@ValidateSortOrder Map map); + List list(@SanitizeMap Map map); int count(Map map); diff --git a/novel-admin/src/main/java/com/java2nb/novel/dao/UserFeedbackDao.java b/novel-admin/src/main/java/com/java2nb/novel/dao/UserFeedbackDao.java index a17eb60..ea742f0 100644 --- a/novel-admin/src/main/java/com/java2nb/novel/dao/UserFeedbackDao.java +++ b/novel-admin/src/main/java/com/java2nb/novel/dao/UserFeedbackDao.java @@ -1,6 +1,6 @@ package com.java2nb.novel.dao; -import com.java2nb.common.annotation.ValidateSortOrder; +import com.java2nb.common.annotation.SanitizeMap; import com.java2nb.novel.domain.UserFeedbackDO; @@ -20,7 +20,7 @@ public interface UserFeedbackDao { UserFeedbackDO get(Long id); - List list(@ValidateSortOrder Map map); + List list(@SanitizeMap Map map); int count(Map map); diff --git a/novel-admin/src/main/java/com/java2nb/novel/dao/WebsiteInfoDao.java b/novel-admin/src/main/java/com/java2nb/novel/dao/WebsiteInfoDao.java index 9d646b9..8e8298b 100644 --- a/novel-admin/src/main/java/com/java2nb/novel/dao/WebsiteInfoDao.java +++ b/novel-admin/src/main/java/com/java2nb/novel/dao/WebsiteInfoDao.java @@ -1,6 +1,6 @@ package com.java2nb.novel.dao; -import com.java2nb.common.annotation.ValidateSortOrder; +import com.java2nb.common.annotation.SanitizeMap; import com.java2nb.novel.domain.WebsiteInfoDO; @@ -20,7 +20,7 @@ public interface WebsiteInfoDao { WebsiteInfoDO get(Long id); - List list(@ValidateSortOrder Map map); + List list(@SanitizeMap Map map); int count(Map map); diff --git a/novel-admin/src/main/java/com/java2nb/system/dao/DataPermDao.java b/novel-admin/src/main/java/com/java2nb/system/dao/DataPermDao.java index ba2103f..839172f 100644 --- a/novel-admin/src/main/java/com/java2nb/system/dao/DataPermDao.java +++ b/novel-admin/src/main/java/com/java2nb/system/dao/DataPermDao.java @@ -1,6 +1,6 @@ package com.java2nb.system.dao; -import com.java2nb.common.annotation.ValidateSortOrder; +import com.java2nb.common.annotation.SanitizeMap; import com.java2nb.system.domain.DataPermDO; @@ -21,7 +21,7 @@ public interface DataPermDao { DataPermDO get(Long id); - List list(@ValidateSortOrder Map map); + List list(@SanitizeMap Map map); int count(Map map); diff --git a/novel-admin/src/main/java/com/java2nb/system/dao/DeptDao.java b/novel-admin/src/main/java/com/java2nb/system/dao/DeptDao.java index c2b11e2..17cf0d6 100644 --- a/novel-admin/src/main/java/com/java2nb/system/dao/DeptDao.java +++ b/novel-admin/src/main/java/com/java2nb/system/dao/DeptDao.java @@ -1,6 +1,6 @@ package com.java2nb.system.dao; -import com.java2nb.common.annotation.ValidateSortOrder; +import com.java2nb.common.annotation.SanitizeMap; import com.java2nb.system.domain.DeptDO; @@ -21,7 +21,7 @@ public interface DeptDao { DeptDO get(Long deptId); - List list(@ValidateSortOrder Map map); + List list(@SanitizeMap Map map); int count(Map map); diff --git a/novel-admin/src/main/java/com/java2nb/system/dao/MenuDao.java b/novel-admin/src/main/java/com/java2nb/system/dao/MenuDao.java index 7d6ce8c..ee81e51 100644 --- a/novel-admin/src/main/java/com/java2nb/system/dao/MenuDao.java +++ b/novel-admin/src/main/java/com/java2nb/system/dao/MenuDao.java @@ -1,6 +1,6 @@ package com.java2nb.system.dao; -import com.java2nb.common.annotation.ValidateSortOrder; +import com.java2nb.common.annotation.SanitizeMap; import com.java2nb.system.domain.MenuDO; @@ -20,7 +20,7 @@ public interface MenuDao { MenuDO get(Long menuId); - List list(@ValidateSortOrder Map map); + List list(@SanitizeMap Map map); int count(Map map); diff --git a/novel-admin/src/main/java/com/java2nb/system/dao/RoleDao.java b/novel-admin/src/main/java/com/java2nb/system/dao/RoleDao.java index 6e1d425..dd277f6 100644 --- a/novel-admin/src/main/java/com/java2nb/system/dao/RoleDao.java +++ b/novel-admin/src/main/java/com/java2nb/system/dao/RoleDao.java @@ -1,6 +1,6 @@ package com.java2nb.system.dao; -import com.java2nb.common.annotation.ValidateSortOrder; +import com.java2nb.common.annotation.SanitizeMap; import com.java2nb.system.domain.RoleDO; @@ -20,7 +20,7 @@ public interface RoleDao { RoleDO get(Long roleId); - List list(@ValidateSortOrder Map map); + List list(@SanitizeMap Map map); int count(Map map); diff --git a/novel-admin/src/main/java/com/java2nb/system/dao/RoleDataPermDao.java b/novel-admin/src/main/java/com/java2nb/system/dao/RoleDataPermDao.java index 5d4eb85..090c018 100644 --- a/novel-admin/src/main/java/com/java2nb/system/dao/RoleDataPermDao.java +++ b/novel-admin/src/main/java/com/java2nb/system/dao/RoleDataPermDao.java @@ -1,6 +1,6 @@ package com.java2nb.system.dao; -import com.java2nb.common.annotation.ValidateSortOrder; +import com.java2nb.common.annotation.SanitizeMap; import com.java2nb.system.domain.RoleDataPermDO; @@ -20,7 +20,7 @@ public interface RoleDataPermDao { RoleDataPermDO get(Long id); - List list(@ValidateSortOrder Map map); + List list(@SanitizeMap Map map); int count(Map map); diff --git a/novel-admin/src/main/java/com/java2nb/system/dao/RoleMenuDao.java b/novel-admin/src/main/java/com/java2nb/system/dao/RoleMenuDao.java index 7625a0c..fa91704 100644 --- a/novel-admin/src/main/java/com/java2nb/system/dao/RoleMenuDao.java +++ b/novel-admin/src/main/java/com/java2nb/system/dao/RoleMenuDao.java @@ -1,6 +1,6 @@ package com.java2nb.system.dao; -import com.java2nb.common.annotation.ValidateSortOrder; +import com.java2nb.common.annotation.SanitizeMap; import com.java2nb.system.domain.RoleMenuDO; @@ -20,7 +20,7 @@ public interface RoleMenuDao { RoleMenuDO get(Long id); - List list(@ValidateSortOrder Map map); + List list(@SanitizeMap Map map); int count(Map map); diff --git a/novel-admin/src/main/java/com/java2nb/system/dao/SysUserDao.java b/novel-admin/src/main/java/com/java2nb/system/dao/SysUserDao.java index 1bef4be..59dfa5d 100644 --- a/novel-admin/src/main/java/com/java2nb/system/dao/SysUserDao.java +++ b/novel-admin/src/main/java/com/java2nb/system/dao/SysUserDao.java @@ -1,6 +1,6 @@ package com.java2nb.system.dao; -import com.java2nb.common.annotation.ValidateSortOrder; +import com.java2nb.common.annotation.SanitizeMap; import com.java2nb.system.domain.UserDO; @@ -8,10 +8,8 @@ import java.util.List; import java.util.Map; import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; /** - * * @author xiongxy * @email 1179705413@qq.com * @date 2019-10-03 09:45:11 @@ -19,23 +17,23 @@ import org.apache.ibatis.annotations.Param; @Mapper public interface SysUserDao { - UserDO get(Long userId); - - List list(@ValidateSortOrder Map map); - - int count(Map map); - - int save(UserDO user); - - int update(UserDO user); - - int remove(Long userId); - - int batchRemove(Long[] userIds); - - Long[] listAllDept(); + UserDO get(Long userId); - List listByPerm(Map map); + List list(@SanitizeMap Map map); - int countByPerm(Map map); + int count(Map map); + + int save(UserDO user); + + int update(UserDO user); + + int remove(Long userId); + + int batchRemove(Long[] userIds); + + Long[] listAllDept(); + + List listByPerm(@SanitizeMap Map map); + + int countByPerm(Map map); } diff --git a/novel-admin/src/main/java/com/java2nb/system/dao/UserRoleDao.java b/novel-admin/src/main/java/com/java2nb/system/dao/UserRoleDao.java index 10f385f..0e92e99 100644 --- a/novel-admin/src/main/java/com/java2nb/system/dao/UserRoleDao.java +++ b/novel-admin/src/main/java/com/java2nb/system/dao/UserRoleDao.java @@ -1,6 +1,6 @@ package com.java2nb.system.dao; -import com.java2nb.common.annotation.ValidateSortOrder; +import com.java2nb.common.annotation.SanitizeMap; import com.java2nb.system.domain.UserRoleDO; @@ -21,7 +21,7 @@ public interface UserRoleDao { UserRoleDO get(Long id); - List list(@ValidateSortOrder Map map); + List list(@SanitizeMap Map map); int count(Map map); diff --git a/novel-admin/src/main/resources/templates/common/generator/Dao.java.vm b/novel-admin/src/main/resources/templates/common/generator/Dao.java.vm index b3d5f41..69f9518 100644 --- a/novel-admin/src/main/resources/templates/common/generator/Dao.java.vm +++ b/novel-admin/src/main/resources/templates/common/generator/Dao.java.vm @@ -18,7 +18,7 @@ public interface ${className}Dao { ${className}DO get(${pk.javaType} ${pk.attrname}); - List<${className}DO> list(@ValidateSortOrder Map map); + List<${className}DO> list(@SanitizeMap Map map); int count(Map map); diff --git a/novel-admin/src/main/resources/templates/common/generator/Mapper.java.vm b/novel-admin/src/main/resources/templates/common/generator/Mapper.java.vm index ffdbe09..0149899 100644 --- a/novel-admin/src/main/resources/templates/common/generator/Mapper.java.vm +++ b/novel-admin/src/main/resources/templates/common/generator/Mapper.java.vm @@ -44,7 +44,7 @@ public interface ${className}Mapper { "limit #{offset}, #{limit}" + ""+ "") - List<${className}DO> list(@ValidateSortOrder Map map); + List<${className}DO> list(@SanitizeMap Map map); @Select("