diff --git a/continew-admin-common/pom.xml b/continew-admin-common/pom.xml
index 90dcb9f1..d23152e7 100644
--- a/continew-admin-common/pom.xml
+++ b/continew-admin-common/pom.xml
@@ -16,6 +16,12 @@
公共模块(存放公共工具类,公共配置等)
+
+
+ top.charles7c.continew
+ continew-starter-extension-crud
+
+
top.charles7c.continew
@@ -81,11 +87,5 @@
com.mysql
mysql-connector-j
-
-
-
- org.springframework.boot
- spring-boot-starter-validation
-
\ No newline at end of file
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/annotation/CrudRequestMapping.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/annotation/CrudRequestMapping.java
deleted file mode 100644
index e744de29..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/annotation/CrudRequestMapping.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.annotation;
-
-import java.lang.annotation.*;
-
-/**
- * 增删改查请求映射器注解
- *
- * @author Charles7c
- * @since 2023/1/27 9:54
- */
-@Target(ElementType.TYPE)
-@Retention(RetentionPolicy.RUNTIME)
-@Documented
-public @interface CrudRequestMapping {
-
- /**
- * 路径映射 URI(等同于:@RequestMapping("/foo1"))
- */
- String value() default "";
-
- /**
- * API 列表
- */
- Api[] api() default {Api.PAGE, Api.GET, Api.ADD, Api.UPDATE, Api.DELETE, Api.EXPORT};
-
- /**
- * API 枚举
- */
- enum Api {
- /**
- * 所有 API
- */
- ALL,
- /**
- * 分页
- */
- PAGE,
- /**
- * 树列表
- */
- TREE,
- /**
- * 列表
- */
- LIST,
- /**
- * 详情
- */
- GET,
- /**
- * 新增
- */
- ADD,
- /**
- * 修改
- */
- UPDATE,
- /**
- * 删除
- */
- DELETE,
- /**
- * 导出
- */
- EXPORT,
- }
-}
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/annotation/NoResponseAdvice.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/annotation/NoResponseAdvice.java
deleted file mode 100644
index 1ed7cf68..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/annotation/NoResponseAdvice.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * 响应拦截忽略注解
- *
- * @author BULL_BCLS
- * @since 2023/10/8 20:44
- */
-@Target({ElementType.METHOD})
-@Retention(RetentionPolicy.RUNTIME)
-public @interface NoResponseAdvice {}
\ No newline at end of file
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/annotation/Query.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/annotation/Query.java
deleted file mode 100644
index fe2b583a..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/annotation/Query.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.annotation;
-
-import java.lang.annotation.*;
-
-import top.charles7c.cnadmin.common.enums.QueryTypeEnum;
-
-/**
- * 查询注解
- *
- * @author Zheng Jie(ELADMIN)
- * @author Charles7c
- * @since 2023/1/15 18:01
- */
-@Target(ElementType.FIELD)
-@Retention(RetentionPolicy.RUNTIME)
-@Documented
-public @interface Query {
-
- /**
- * 属性名(默认和使用该注解的属性的名称一致)
- */
- String property() default "";
-
- /**
- * 查询类型(等值查询、模糊查询、范围查询等)
- */
- QueryTypeEnum type() default QueryTypeEnum.EQUAL;
-
- /**
- * 多属性模糊查询,仅支持 String 类型属性
- *
- * 例如:@Query(blurry = {"username", "email"}) 表示根据用户名和邮箱模糊查询
- *
- */
- String[] blurry() default {};
-}
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/annotation/TreeField.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/annotation/TreeField.java
deleted file mode 100644
index 4c260062..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/annotation/TreeField.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.annotation;
-
-import java.lang.annotation.*;
-
-/**
- * 树结构字段
- *
- * @see cn.hutool.core.lang.tree.TreeNodeConfig
- * @author Charles7c
- * @since 2023/2/26 23:50
- */
-@Target(ElementType.TYPE)
-@Retention(RetentionPolicy.RUNTIME)
-@Documented
-public @interface TreeField {
-
- /**
- * ID 字段名
- *
- * @return ID 字段名
- */
- String value() default "key";
-
- /**
- * 父 ID 字段名
- *
- * @return 父 ID 字段名
- */
- String parentIdKey() default "parentId";
-
- /**
- * 名称字段名
- *
- * @return 名称字段名
- */
- String nameKey() default "title";
-
- /**
- * 排序字段名
- *
- * @return 排序字段名
- */
- String weightKey() default "sort";
-
- /**
- * 子列表字段名
- *
- * @return 子列表字段名
- */
- String childrenKey() default "children";
-
- /**
- * 递归深度(< 0 不限制)
- *
- * @return 递归深度
- */
- int deep() default -1;
-}
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseController.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseController.java
deleted file mode 100644
index c59bf1da..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseController.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.base;
-
-import static top.charles7c.cnadmin.common.annotation.CrudRequestMapping.Api;
-
-import java.util.List;
-
-import jakarta.servlet.http.HttpServletResponse;
-
-import lombok.NoArgsConstructor;
-
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.Parameter;
-import io.swagger.v3.oas.annotations.enums.ParameterIn;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import cn.dev33.satoken.stp.StpUtil;
-import cn.hutool.core.lang.tree.Tree;
-import cn.hutool.core.util.StrUtil;
-
-import top.charles7c.cnadmin.common.annotation.CrudRequestMapping;
-import top.charles7c.cnadmin.common.annotation.NoResponseAdvice;
-import top.charles7c.cnadmin.common.model.query.PageQuery;
-import top.charles7c.cnadmin.common.model.query.SortQuery;
-import top.charles7c.cnadmin.common.model.resp.PageDataResp;
-import top.charles7c.cnadmin.common.model.resp.R;
-import top.charles7c.continew.starter.core.constant.StringConstants;
-
-/**
- * 控制器基类
- *
- * @param
- * 业务接口
- * @param
- * 列表信息
- * @param
- * 详情信息
- * @param
- * 查询条件
- * @param
- * 创建或修改信息
- * @author Charles7c
- * @since 2023/1/26 10:45
- */
-@NoArgsConstructor
-public abstract class BaseController, L, D, Q, C extends BaseReq> {
-
- @Autowired
- protected S baseService;
-
- /**
- * 分页查询列表
- *
- * @param query
- * 查询条件
- * @param pageQuery
- * 分页查询条件
- * @return 分页信息
- */
- @Operation(summary = "分页查询列表", description = "分页查询列表")
- @ResponseBody
- @GetMapping
- public PageDataResp page(Q query, @Validated PageQuery pageQuery) {
- this.checkPermission(Api.LIST);
- return baseService.page(query, pageQuery);
- }
-
- /**
- * 查询树列表
- *
- * @param query
- * 查询条件
- * @param sortQuery
- * 排序查询条件
- * @return 树列表信息
- */
- @Operation(summary = "查询树列表", description = "查询树列表")
- @ResponseBody
- @GetMapping("/tree")
- public List> tree(Q query, SortQuery sortQuery) {
- this.checkPermission(Api.LIST);
- return baseService.tree(query, sortQuery, false);
- }
-
- /**
- * 查询列表
- *
- * @param query
- * 查询条件
- * @param sortQuery
- * 排序查询条件
- * @return 列表信息
- */
- @Operation(summary = "查询列表", description = "查询列表")
- @ResponseBody
- @GetMapping("/list")
- public List list(Q query, SortQuery sortQuery) {
- this.checkPermission(Api.LIST);
- return baseService.list(query, sortQuery);
- }
-
- /**
- * 查看详情
- *
- * @param id
- * ID
- * @return 详情信息
- */
- @Operation(summary = "查看详情", description = "查看详情")
- @Parameter(name = "id", description = "ID", example = "1", in = ParameterIn.PATH)
- @ResponseBody
- @GetMapping("/{id}")
- public D get(@PathVariable Long id) {
- this.checkPermission(Api.LIST);
- return baseService.get(id);
- }
-
- /**
- * 新增
- *
- * @param req
- * 创建信息
- * @return 自增 ID
- */
- @Operation(summary = "新增数据", description = "新增数据")
- @ResponseBody
- @PostMapping
- public R add(@Validated(ValidateGroup.Crud.Add.class) @RequestBody C req) {
- this.checkPermission(Api.ADD);
- Long id = baseService.add(req);
- return R.ok("新增成功", id);
- }
-
- /**
- * 修改
- *
- * @param req
- * 修改信息
- * @param id
- * ID
- * @return /
- */
- @Operation(summary = "修改数据", description = "修改数据")
- @Parameter(name = "id", description = "ID", example = "1", in = ParameterIn.PATH)
- @ResponseBody
- @PutMapping("/{id}")
- public R update(@Validated(ValidateGroup.Crud.Update.class) @RequestBody C req, @PathVariable Long id) {
- this.checkPermission(Api.UPDATE);
- baseService.update(req, id);
- return R.ok("修改成功");
- }
-
- /**
- * 删除
- *
- * @param ids
- * ID 列表
- * @return /
- */
- @Operation(summary = "删除数据", description = "删除数据")
- @Parameter(name = "ids", description = "ID 列表", example = "1,2", in = ParameterIn.PATH)
- @ResponseBody
- @DeleteMapping("/{ids}")
- public R delete(@PathVariable List ids) {
- this.checkPermission(Api.DELETE);
- baseService.delete(ids);
- return R.ok("删除成功");
- }
-
- /**
- * 导出
- *
- * @param query
- * 查询条件
- * @param sortQuery
- * 排序查询条件
- * @param response
- * 响应对象
- */
- @Operation(summary = "导出数据", description = "导出数据")
- @NoResponseAdvice
- @GetMapping("/export")
- public void export(Q query, SortQuery sortQuery, HttpServletResponse response) {
- this.checkPermission(Api.EXPORT);
- baseService.export(query, sortQuery, response);
- }
-
- /**
- * 根据 API 类型进行权限验证
- *
- * @param api
- * API 类型
- */
- private void checkPermission(Api api) {
- CrudRequestMapping crudRequestMapping = this.getClass().getDeclaredAnnotation(CrudRequestMapping.class);
- String path = crudRequestMapping.value();
- String permissionPrefix = String.join(StringConstants.COLON, StrUtil.splitTrim(path, StringConstants.SLASH));
- StpUtil.checkPermission(String.format("%s:%s", permissionPrefix, api.name().toLowerCase()));
- }
-}
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseDO.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseDO.java
deleted file mode 100644
index 99aa9f43..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseDO.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.base;
-
-import java.io.Serial;
-import java.io.Serializable;
-import java.time.LocalDateTime;
-
-import lombok.Data;
-
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-
-/**
- * 实体类基类
- *
- * @author Charles7c
- * @since 2022/12/12 23:02
- */
-@Data
-public class BaseDO implements Serializable {
-
- @Serial
- private static final long serialVersionUID = 1L;
-
- /**
- * ID
- */
- @TableId
- private Long id;
-
- /**
- * 创建人
- */
- @TableField(fill = FieldFill.INSERT)
- private Long createUser;
-
- /**
- * 创建时间
- */
- @TableField(fill = FieldFill.INSERT)
- private LocalDateTime createTime;
-
- /**
- * 修改人
- */
- @TableField(fill = FieldFill.UPDATE)
- private Long updateUser;
-
- /**
- * 修改时间
- */
- @TableField(fill = FieldFill.UPDATE)
- private LocalDateTime updateTime;
-}
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseDetailResp.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseDetailResp.java
deleted file mode 100644
index 145eb9c7..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseDetailResp.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.base;
-
-import java.io.Serial;
-import java.time.LocalDateTime;
-
-import lombok.Data;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-
-import com.alibaba.excel.annotation.ExcelProperty;
-import com.fasterxml.jackson.annotation.JsonIgnore;
-
-/**
- * 详情响应基类
- *
- * @author Charles7c
- * @since 2023/1/26 10:40
- */
-@Data
-public class BaseDetailResp extends BaseResp {
-
- @Serial
- private static final long serialVersionUID = 1L;
-
- /**
- * 修改人
- */
- @JsonIgnore
- private Long updateUser;
-
- /**
- * 修改人
- */
- @Schema(description = "修改人", example = "李四")
- @ExcelProperty(value = "修改人", order = Integer.MAX_VALUE - 2)
- private String updateUserString;
-
- /**
- * 修改时间
- */
- @Schema(description = "修改时间", example = "2023-08-08 08:08:08", type = "string")
- @ExcelProperty(value = "修改时间", order = Integer.MAX_VALUE - 1)
- private LocalDateTime updateTime;
-}
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseMapper.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseMapper.java
deleted file mode 100644
index 0b79e4a4..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseMapper.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.base;
-
-import java.util.Collection;
-
-import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
-import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper;
-import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
-import com.baomidou.mybatisplus.extension.conditions.update.UpdateChainWrapper;
-import com.baomidou.mybatisplus.extension.toolkit.ChainWrappers;
-import com.baomidou.mybatisplus.extension.toolkit.Db;
-
-import cn.hutool.core.util.ClassUtil;
-
-/**
- * Mapper 基类
- *
- * @param
- * 实体类
- * @author Charles7c
- * @since 2023/2/19 20:47
- */
-public interface BaseMapper extends com.baomidou.mybatisplus.core.mapper.BaseMapper {
-
- /**
- * 批量插入记录
- *
- * @param entityList
- * 实体列表
- * @return 是否成功
- */
- default boolean insertBatch(Collection entityList) {
- return Db.saveBatch(entityList);
- }
-
- /**
- * 批量更新记录
- *
- * @param entityList
- * 实体列表
- * @return 是否成功
- */
- default boolean updateBatchById(Collection entityList) {
- return Db.updateBatchById(entityList);
- }
-
- /**
- * 链式查询
- *
- * @return QueryWrapper 的包装类
- */
- default QueryChainWrapper query() {
- return ChainWrappers.queryChain(this);
- }
-
- /**
- * 链式查询(lambda 式)
- *
- * @return LambdaQueryWrapper 的包装类
- */
- default LambdaQueryChainWrapper lambdaQuery() {
- return ChainWrappers.lambdaQueryChain(this, this.currentEntityClass());
- }
-
- /**
- * 链式查询(lambda 式)
- *
- * @param entity
- * 实体对象
- * @return LambdaQueryWrapper 的包装类
- */
- default LambdaQueryChainWrapper lambdaQuery(T entity) {
- return ChainWrappers.lambdaQueryChain(this, entity);
- }
-
- /**
- * 链式更改
- *
- * @return UpdateWrapper 的包装类
- */
- default UpdateChainWrapper update() {
- return ChainWrappers.updateChain(this);
- }
-
- /**
- * 链式更改(lambda 式)
- *
- * @return LambdaUpdateWrapper 的包装类
- */
- default LambdaUpdateChainWrapper lambdaUpdate() {
- return ChainWrappers.lambdaUpdateChain(this);
- }
-
- /**
- * 获取实体类 Class 对象
- *
- * @return 实体类 Class 对象
- */
- default Class currentEntityClass() {
- return (Class)ClassUtil.getTypeArgument(this.getClass(), 0);
- }
-}
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseReq.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseReq.java
deleted file mode 100644
index 95e706b2..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseReq.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.base;
-
-import java.io.Serial;
-import java.io.Serializable;
-
-import lombok.Data;
-
-/**
- * 请求基类
- *
- * @author Charles7c
- * @since 2023/1/30 21:51
- */
-@Data
-public class BaseReq implements Serializable {
-
- @Serial
- private static final long serialVersionUID = 1L;
-}
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseResp.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseResp.java
deleted file mode 100644
index c586bf58..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseResp.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.base;
-
-import java.io.Serial;
-import java.io.Serializable;
-import java.time.LocalDateTime;
-
-import lombok.Data;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-
-import com.alibaba.excel.annotation.ExcelProperty;
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonInclude;
-
-/**
- * 响应基类
- *
- * @author Charles7c
- * @since 2023/1/26 10:40
- */
-@Data
-public class BaseResp implements Serializable {
-
- @Serial
- private static final long serialVersionUID = 1L;
-
- /**
- * ID
- */
- @Schema(description = "ID", example = "1")
- @ExcelProperty(value = "ID", order = 1)
- private Long id;
-
- /**
- * 创建人
- */
- @JsonIgnore
- private Long createUser;
-
- /**
- * 创建人
- */
- @Schema(description = "创建人", example = "超级管理员")
- @ExcelProperty(value = "创建人", order = Integer.MAX_VALUE - 4)
- private String createUserString;
-
- /**
- * 创建时间
- */
- @Schema(description = "创建时间", example = "2023-08-08 08:08:08", type = "string")
- @ExcelProperty(value = "创建时间", order = Integer.MAX_VALUE - 3)
- private LocalDateTime createTime;
-
- /**
- * 是否禁用修改
- */
- @Schema(description = "是否禁用修改", example = "true")
- @JsonInclude(JsonInclude.Include.NON_NULL)
- private Boolean disabled;
-}
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseService.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseService.java
deleted file mode 100644
index 64fcb3a7..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseService.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.base;
-
-import java.util.List;
-
-import jakarta.servlet.http.HttpServletResponse;
-
-import cn.hutool.core.lang.tree.Tree;
-
-import top.charles7c.cnadmin.common.model.query.PageQuery;
-import top.charles7c.cnadmin.common.model.query.SortQuery;
-import top.charles7c.cnadmin.common.model.resp.PageDataResp;
-
-/**
- * 业务接口基类
- *
- * @param
- * 列表信息
- * @param
- * 详情信息
- * @param
- * 查询条件
- * @param
- * 创建或修改信息
- * @author Charles7c
- * @since 2023/1/26 16:54
- */
-public interface BaseService {
-
- /**
- * 分页查询列表
- *
- * @param query
- * 查询条件
- * @param pageQuery
- * 分页查询条件
- * @return 分页列表信息
- */
- PageDataResp page(Q query, PageQuery pageQuery);
-
- /**
- * 查询树列表
- *
- * @param query
- * 查询条件
- * @param sortQuery
- * 排序查询条件
- * @param isSimple
- * 是否为简单树结构(不包含基本树结构之外的扩展字段)
- * @return 树列表信息
- */
- List> tree(Q query, SortQuery sortQuery, boolean isSimple);
-
- /**
- * 查询列表
- *
- * @param query
- * 查询条件
- * @param sortQuery
- * 排序查询条件
- * @return 列表信息
- */
- List list(Q query, SortQuery sortQuery);
-
- /**
- * 查看详情
- *
- * @param id
- * ID
- * @return 详情信息
- */
- D get(Long id);
-
- /**
- * 新增
- *
- * @param req
- * 创建信息
- * @return 自增 ID
- */
- Long add(C req);
-
- /**
- * 修改
- *
- * @param req
- * 修改信息
- * @param id
- * ID
- */
- void update(C req, Long id);
-
- /**
- * 删除
- *
- * @param ids
- * ID 列表
- */
- void delete(List ids);
-
- /**
- * 导出
- *
- * @param query
- * 查询条件
- * @param sortQuery
- * 排序查询条件
- * @param response
- * 响应对象
- */
- void export(Q query, SortQuery sortQuery, HttpServletResponse response);
-}
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseServiceImpl.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseServiceImpl.java
deleted file mode 100644
index 41862b02..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseServiceImpl.java
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.base;
-
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.List;
-
-import jakarta.servlet.http.HttpServletResponse;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Sort;
-import org.springframework.transaction.annotation.Transactional;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.bean.copier.CopyOptions;
-import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.convert.Convert;
-import cn.hutool.core.lang.Opt;
-import cn.hutool.core.lang.tree.Tree;
-import cn.hutool.core.lang.tree.TreeNodeConfig;
-import cn.hutool.core.util.ClassUtil;
-import cn.hutool.core.util.ReflectUtil;
-import cn.hutool.core.util.StrUtil;
-import cn.hutool.extra.spring.SpringUtil;
-
-import top.charles7c.cnadmin.common.annotation.TreeField;
-import top.charles7c.cnadmin.common.model.query.PageQuery;
-import top.charles7c.cnadmin.common.model.query.SortQuery;
-import top.charles7c.cnadmin.common.model.resp.PageDataResp;
-import top.charles7c.cnadmin.common.service.CommonUserService;
-import top.charles7c.cnadmin.common.util.ReflectUtils;
-import top.charles7c.cnadmin.common.util.TreeUtils;
-import top.charles7c.cnadmin.common.util.helper.QueryHelper;
-import top.charles7c.cnadmin.common.util.validate.CheckUtils;
-import top.charles7c.continew.starter.core.util.ExceptionUtils;
-import top.charles7c.continew.starter.file.excel.util.ExcelUtils;
-
-/**
- * 业务实现基类
- *
- * @param
- * Mapper 接口
- * @param
- * 实体类
- * @param
- * 列表信息
- * @param
- * 详情信息
- * @param
- * 查询条件
- * @param
- * 创建或修改信息
- * @author Charles7c
- * @since 2023/1/26 21:52
- */
-public abstract class BaseServiceImpl, T extends BaseDO, L, D, Q, C extends BaseReq>
- implements BaseService {
-
- @Autowired
- protected M baseMapper;
-
- private final Class entityClass;
- private final Class listClass;
- private final Class detailClass;
-
- protected BaseServiceImpl() {
- this.entityClass = (Class)ClassUtil.getTypeArgument(this.getClass(), 1);
- this.listClass = (Class)ClassUtil.getTypeArgument(this.getClass(), 2);
- this.detailClass = (Class)ClassUtil.getTypeArgument(this.getClass(), 3);
- }
-
- @Override
- public PageDataResp page(Q query, PageQuery pageQuery) {
- QueryWrapper queryWrapper = QueryHelper.build(query);
- IPage page = baseMapper.selectPage(pageQuery.toPage(), queryWrapper);
- PageDataResp pageDataResp = PageDataResp.build(page, listClass);
- pageDataResp.getList().forEach(this::fill);
- return pageDataResp;
- }
-
- @Override
- public List> tree(Q query, SortQuery sortQuery, boolean isSimple) {
- List list = this.list(query, sortQuery);
- if (CollUtil.isEmpty(list)) {
- return new ArrayList<>(0);
- }
-
- // 如果构建简单树结构,则不包含基本树结构之外的扩展字段
- TreeNodeConfig treeNodeConfig = TreeUtils.DEFAULT_CONFIG;
- TreeField treeField = listClass.getDeclaredAnnotation(TreeField.class);
- if (!isSimple) {
- // 根据 @TreeField 配置生成树结构配置
- treeNodeConfig = TreeUtils.genTreeNodeConfig(treeField);
- }
-
- // 构建树
- return TreeUtils.build(list, treeNodeConfig, (node, tree) -> {
- // 转换器
- tree.setId(ReflectUtil.invoke(node, StrUtil.genGetter(treeField.value())));
- tree.setParentId(ReflectUtil.invoke(node, StrUtil.genGetter(treeField.parentIdKey())));
- tree.setName(ReflectUtil.invoke(node, StrUtil.genGetter(treeField.nameKey())));
- tree.setWeight(ReflectUtil.invoke(node, StrUtil.genGetter(treeField.weightKey())));
- if (!isSimple) {
- List fieldList = ReflectUtils.getNonStaticFields(listClass);
- fieldList.removeIf(f -> StrUtil.containsAnyIgnoreCase(f.getName(), treeField.value(),
- treeField.parentIdKey(), treeField.nameKey(), treeField.weightKey(), treeField.childrenKey()));
- fieldList
- .forEach(f -> tree.putExtra(f.getName(), ReflectUtil.invoke(node, StrUtil.genGetter(f.getName()))));
- }
- });
- }
-
- @Override
- public List list(Q query, SortQuery sortQuery) {
- List list = this.list(query, sortQuery, listClass);
- list.forEach(this::fill);
- return list;
- }
-
- /**
- * 查询列表
- *
- * @param query
- * 查询条件
- * @param sortQuery
- * 排序查询条件
- * @param targetClass
- * 指定类型
- * @return 列表信息
- */
- protected List list(Q query, SortQuery sortQuery, Class targetClass) {
- QueryWrapper queryWrapper = QueryHelper.build(query);
- // 设置排序
- this.sort(queryWrapper, sortQuery);
- List entityList = baseMapper.selectList(queryWrapper);
- return BeanUtil.copyToList(entityList, targetClass);
- }
-
- /**
- * 设置排序
- *
- * @param queryWrapper
- * 查询 Wrapper
- * @param sortQuery
- * 排序查询条件
- */
- protected void sort(QueryWrapper queryWrapper, SortQuery sortQuery) {
- Sort sort = Opt.ofNullable(sortQuery).orElseGet(SortQuery::new).getSort();
- for (Sort.Order order : sort) {
- if (null != order) {
- queryWrapper.orderBy(true, order.isAscending(), StrUtil.toUnderlineCase(order.getProperty()));
- }
- }
- }
-
- @Override
- public D get(Long id) {
- T entity = this.getById(id);
- D detail = BeanUtil.copyProperties(entity, detailClass);
- this.fillDetail(detail);
- return detail;
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Long add(C req) {
- if (null == req) {
- return 0L;
- }
- T entity = BeanUtil.copyProperties(req, entityClass);
- baseMapper.insert(entity);
- return entity.getId();
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void update(C req, Long id) {
- T entity = this.getById(id);
- BeanUtil.copyProperties(req, entity, CopyOptions.create().ignoreNullValue());
- baseMapper.updateById(entity);
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public void delete(List ids) {
- baseMapper.deleteBatchIds(ids);
- }
-
- @Override
- public void export(Q query, SortQuery sortQuery, HttpServletResponse response) {
- List list = this.list(query, sortQuery, detailClass);
- list.forEach(this::fillDetail);
- ExcelUtils.export(list, "导出数据", detailClass, response);
- }
-
- /**
- * 根据 ID 查询
- *
- * @param id
- * ID
- * @return 实体信息
- */
- protected T getById(Object id) {
- T entity = baseMapper.selectById(Convert.toStr(id));
- CheckUtils.throwIfNotExists(entity, ClassUtil.getClassName(entityClass, true), "ID", id);
- return entity;
- }
-
- /**
- * 填充数据
- *
- * @param baseObj
- * 待填充列表信息
- */
- protected void fill(Object baseObj) {
- if (baseObj instanceof BaseResp baseResp) {
- Long createUser = baseResp.getCreateUser();
- if (null == createUser) {
- return;
- }
- CommonUserService userService = SpringUtil.getBean(CommonUserService.class);
- baseResp.setCreateUserString(ExceptionUtils.exToNull(() -> userService.getNicknameById(createUser)));
- }
- }
-
- /**
- * 填充详情数据
- *
- * @param detailObj
- * 待填充详情信息
- */
- public void fillDetail(Object detailObj) {
- if (detailObj instanceof BaseDetailResp detail) {
- this.fill(detail);
- Long updateUser = detail.getUpdateUser();
- if (null == updateUser) {
- return;
- }
- CommonUserService userService = SpringUtil.getBean(CommonUserService.class);
- detail.setUpdateUserString(ExceptionUtils.exToNull(() -> userService.getNicknameById(updateUser)));
- }
- }
-}
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/DataPermissionMapper.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/DataPermissionMapper.java
index c9a46087..2aeecd83 100644
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/DataPermissionMapper.java
+++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/DataPermissionMapper.java
@@ -25,6 +25,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import top.charles7c.cnadmin.common.annotation.DataPermission;
+import top.charles7c.continew.starter.extension.crud.base.BaseMapper;
/**
* 数据权限 Mapper 基类
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/IBaseEnum.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/IBaseEnum.java
deleted file mode 100644
index 1bd79522..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/IBaseEnum.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.base;
-
-import java.io.Serializable;
-
-import com.baomidou.mybatisplus.annotation.IEnum;
-
-/**
- * 枚举接口
- *
- * @param
- * value 类型
- * @author Charles7c
- * @since 2023/2/5 20:44
- */
-public interface IBaseEnum extends IEnum {
-
- /**
- * 枚举描述
- *
- * @return 枚举描述
- */
- String getDescription();
-
- /**
- * 颜色
- *
- * @return 颜色
- */
- default String getColor() {
- return null;
- }
-}
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/ValidateGroup.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/ValidateGroup.java
deleted file mode 100644
index 81820538..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/ValidateGroup.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.base;
-
-import jakarta.validation.groups.Default;
-
-/**
- * 分组校验
- *
- * @author Charles7c
- * @since 2023/5/7 19:41
- */
-public interface ValidateGroup extends Default {
-
- /**
- * 分组校验-增删改查
- */
- interface Crud extends ValidateGroup {
- /**
- * 分组校验-创建
- */
- interface Add extends Crud {}
-
- /**
- * 分组校验-修改
- */
- interface Update extends Crud {}
- }
-}
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/WebMvcConfiguration.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/WebMvcConfiguration.java
index 67fc0e38..38bd9c35 100644
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/WebMvcConfiguration.java
+++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/WebMvcConfiguration.java
@@ -72,7 +72,6 @@ public class WebMvcConfiguration implements WebMvcConfigurer {
// 否则 Spring Doc OpenAPI 的 /*/api-docs/**(例如:/v3/api-docs/default)接口响应内容会变为 Base64 编码后的内容,最终导致接口文档解析失败
// 详情请参阅:https://github.com/springdoc/springdoc-openapi/issues/2143
converters.add(new ByteArrayHttpMessageConverter());
-
converters.removeIf(MappingJackson2HttpMessageConverter.class::isInstance);
if (Objects.isNull(mappingJackson2HttpMessageConverter)) {
converters.add(new MappingJackson2HttpMessageConverter());
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/WebMvcMappingConfiguration.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/WebMvcMappingConfiguration.java
deleted file mode 100644
index f5041ff0..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/WebMvcMappingConfiguration.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.config;
-
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Primary;
-import org.springframework.format.support.FormattingConversionService;
-import org.springframework.web.accept.ContentNegotiationManager;
-import org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration;
-import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
-import org.springframework.web.servlet.resource.ResourceUrlProvider;
-
-import top.charles7c.cnadmin.common.handler.CrudRequestMappingHandlerMapping;
-
-/**
- * Web MVC 映射配置
- *
- * @author Charles7c
- * @since 2023/1/30 22:57
- */
-@Configuration
-public class WebMvcMappingConfiguration extends DelegatingWebMvcConfiguration {
-
- /**
- * CRUD 请求映射器处理器映射器(覆盖默认 RequestMappingHandlerMapping)
- */
- @Override
- public RequestMappingHandlerMapping createRequestMappingHandlerMapping() {
- return new CrudRequestMappingHandlerMapping();
- }
-
- @Bean
- @Primary
- @Override
- public RequestMappingHandlerMapping requestMappingHandlerMapping(
- @Qualifier("mvcContentNegotiationManager") ContentNegotiationManager contentNegotiationManager,
- @Qualifier("mvcConversionService") FormattingConversionService conversionService,
- @Qualifier("mvcResourceUrlProvider") ResourceUrlProvider resourceUrlProvider) {
- return super.requestMappingHandlerMapping(contentNegotiationManager, conversionService, resourceUrlProvider);
- }
-}
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/easyexcel/ExcelBaseEnumConverter.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/easyexcel/ExcelBaseEnumConverter.java
index c3d947a5..4d2ea8b6 100644
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/easyexcel/ExcelBaseEnumConverter.java
+++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/easyexcel/ExcelBaseEnumConverter.java
@@ -26,8 +26,8 @@ import com.alibaba.excel.metadata.property.ExcelContentProperty;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ClassUtil;
-import top.charles7c.cnadmin.common.base.IBaseEnum;
import top.charles7c.continew.starter.core.constant.StringConstants;
+import top.charles7c.continew.starter.extension.crud.base.IBaseEnum;
/**
* Easy Excel 枚举基类转换器
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/jackson/BaseEnumDeserializer.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/jackson/BaseEnumDeserializer.java
index 2b05017e..4896d22a 100644
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/jackson/BaseEnumDeserializer.java
+++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/jackson/BaseEnumDeserializer.java
@@ -27,7 +27,7 @@ import com.fasterxml.jackson.databind.annotation.JacksonStdImpl;
import cn.hutool.core.util.ClassUtil;
import cn.hutool.core.util.ReflectUtil;
-import top.charles7c.cnadmin.common.base.IBaseEnum;
+import top.charles7c.continew.starter.extension.crud.base.IBaseEnum;
/**
* 通用枚举基类 BaseEnum 反序列化器
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/jackson/BaseEnumSerializer.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/jackson/BaseEnumSerializer.java
index c0a272ac..6624cd4e 100644
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/jackson/BaseEnumSerializer.java
+++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/jackson/BaseEnumSerializer.java
@@ -23,7 +23,7 @@ import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JacksonStdImpl;
-import top.charles7c.cnadmin.common.base.IBaseEnum;
+import top.charles7c.continew.starter.extension.crud.base.IBaseEnum;
/**
* 通用枚举接口 BaseEnum 序列化器
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/jackson/JacksonConfiguration.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/jackson/JacksonConfiguration.java
index 162acada..937123a5 100644
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/jackson/JacksonConfiguration.java
+++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/jackson/JacksonConfiguration.java
@@ -25,7 +25,7 @@ import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.module.SimpleModule;
-import top.charles7c.cnadmin.common.base.IBaseEnum;
+import top.charles7c.continew.starter.extension.crud.base.IBaseEnum;
/**
* Jackson 配置
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/mybatis/MyBatisPlusMetaObjectHandler.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/mybatis/MyBatisPlusMetaObjectHandler.java
index 72e41708..166e3fb5 100644
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/mybatis/MyBatisPlusMetaObjectHandler.java
+++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/mybatis/MyBatisPlusMetaObjectHandler.java
@@ -24,9 +24,9 @@ import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import cn.hutool.core.util.ObjectUtil;
-import top.charles7c.cnadmin.common.base.BaseDO;
-import top.charles7c.cnadmin.common.exception.ServiceException;
import top.charles7c.cnadmin.common.util.helper.LoginHelper;
+import top.charles7c.continew.starter.extension.crud.base.BaseDO;
+import top.charles7c.continew.starter.extension.crud.exception.BusinessException;
/**
* MyBatis Plus 元对象处理器配置(插入或修改时自动填充)
@@ -70,7 +70,7 @@ public class MyBatisPlusMetaObjectHandler implements MetaObjectHandler {
this.fillFieldValue(metaObject, CREATE_TIME, createTime, false);
}
} catch (Exception e) {
- throw new ServiceException("插入数据时自动填充异常:" + e.getMessage());
+ throw new BusinessException("插入数据时自动填充异常:" + e.getMessage());
}
}
@@ -99,7 +99,7 @@ public class MyBatisPlusMetaObjectHandler implements MetaObjectHandler {
this.fillFieldValue(metaObject, UPDATE_TIME, updateTime, true);
}
} catch (Exception e) {
- throw new ServiceException("修改数据时自动填充异常:" + e.getMessage());
+ throw new BusinessException("修改数据时自动填充异常:" + e.getMessage());
}
}
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/enums/DataScopeEnum.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/enums/DataScopeEnum.java
index feba5303..177cb0fc 100644
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/enums/DataScopeEnum.java
+++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/enums/DataScopeEnum.java
@@ -19,7 +19,7 @@ package top.charles7c.cnadmin.common.enums;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
-import top.charles7c.cnadmin.common.base.IBaseEnum;
+import top.charles7c.continew.starter.extension.crud.base.IBaseEnum;
/**
* 数据权限枚举
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/enums/DisEnableStatusEnum.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/enums/DisEnableStatusEnum.java
index b93d9d93..6a6793a6 100644
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/enums/DisEnableStatusEnum.java
+++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/enums/DisEnableStatusEnum.java
@@ -19,8 +19,8 @@ package top.charles7c.cnadmin.common.enums;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
-import top.charles7c.cnadmin.common.base.IBaseEnum;
import top.charles7c.cnadmin.common.constant.UIConstants;
+import top.charles7c.continew.starter.extension.crud.base.IBaseEnum;
/**
* 启用/禁用状态枚举
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/enums/GenderEnum.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/enums/GenderEnum.java
index 28d140ea..2e2467df 100644
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/enums/GenderEnum.java
+++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/enums/GenderEnum.java
@@ -19,7 +19,7 @@ package top.charles7c.cnadmin.common.enums;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
-import top.charles7c.cnadmin.common.base.IBaseEnum;
+import top.charles7c.continew.starter.extension.crud.base.IBaseEnum;
/**
* 性别枚举
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/enums/MenuTypeEnum.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/enums/MenuTypeEnum.java
index e87bbad6..14eb0127 100644
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/enums/MenuTypeEnum.java
+++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/enums/MenuTypeEnum.java
@@ -19,7 +19,7 @@ package top.charles7c.cnadmin.common.enums;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
-import top.charles7c.cnadmin.common.base.IBaseEnum;
+import top.charles7c.continew.starter.extension.crud.base.IBaseEnum;
/**
* 菜单类型枚举
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/enums/MessageTypeEnum.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/enums/MessageTypeEnum.java
index f1092401..826c8727 100644
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/enums/MessageTypeEnum.java
+++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/enums/MessageTypeEnum.java
@@ -19,8 +19,8 @@ package top.charles7c.cnadmin.common.enums;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
-import top.charles7c.cnadmin.common.base.IBaseEnum;
import top.charles7c.cnadmin.common.constant.UIConstants;
+import top.charles7c.continew.starter.extension.crud.base.IBaseEnum;
/**
* 消息类型枚举
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/enums/QueryTypeEnum.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/enums/QueryTypeEnum.java
deleted file mode 100644
index 8ba8b678..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/enums/QueryTypeEnum.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.enums;
-
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-
-import top.charles7c.cnadmin.common.base.IBaseEnum;
-
-/**
- * 查询类型枚举
- *
- * @author Charles7c
- * @since 2023/4/12 22:56
- */
-@Getter
-@RequiredArgsConstructor
-public enum QueryTypeEnum implements IBaseEnum {
-
- /**
- * 等值查询,例如:WHERE `age` = 18
- */
- EQUAL(1, "="),
- /**
- * 非等值查询,例如:WHERE `age` != 18
- */
- NOT_EQUAL(2, "!="),
- /**
- * 大于查询,例如:WHERE `age` > 18
- */
- GREATER_THAN(3, ">"),
- /**
- * 小于查询,例如:WHERE `age` < 18
- */
- LESS_THAN(4, "<"),
- /**
- * 大于等于查询,例如:WHERE `age` >= 18
- */
- GREATER_THAN_OR_EQUAL(5, ">="),
- /**
- * 小于等于查询,例如:WHERE `age` <= 18
- */
- LESS_THAN_OR_EQUAL(6, "<="),
- /**
- * 范围查询,例如:WHERE `age` BETWEEN 10 AND 18
- */
- BETWEEN(7, "BETWEEN"),
- /**
- * 左模糊查询,例如:WHERE `nickname` LIKE '%s'
- */
- LEFT_LIKE(8, "LIKE '%s'"),
- /**
- * 中模糊查询,例如:WHERE `nickname` LIKE '%s%'
- */
- INNER_LIKE(9, "LIKE '%s%'"),
- /**
- * 右模糊查询,例如:WHERE `nickname` LIKE 's%'
- */
- RIGHT_LIKE(10, "LIKE 's%'"),
- /**
- * 包含查询,例如:WHERE `age` IN (10, 20, 30)
- */
- IN(11, "IN"),
- /**
- * 不包含查询,例如:WHERE `age` NOT IN (20, 30)
- */
- NOT_IN(12, "NOT IN"),
- /**
- * 空查询,例如:WHERE `email` IS NULL
- */
- IS_NULL(13, "IS NULL"),
- /**
- * 非空查询,例如:WHERE `email` IS NOT NULL
- */
- IS_NOT_NULL(14, "IS NOT NULL"),;
-
- private final Integer value;
- private final String description;
-}
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/enums/SuccessFailureStatusEnum.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/enums/SuccessFailureStatusEnum.java
index 82f77464..73cfdfc7 100644
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/enums/SuccessFailureStatusEnum.java
+++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/enums/SuccessFailureStatusEnum.java
@@ -19,8 +19,8 @@ package top.charles7c.cnadmin.common.enums;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
-import top.charles7c.cnadmin.common.base.IBaseEnum;
import top.charles7c.cnadmin.common.constant.UIConstants;
+import top.charles7c.continew.starter.extension.crud.base.IBaseEnum;
/**
* 成功/失败状态枚举
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/exception/BadRequestException.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/exception/BadRequestException.java
deleted file mode 100644
index 42298091..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/exception/BadRequestException.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.exception;
-
-import lombok.NoArgsConstructor;
-
-/**
- * 自定义验证异常-错误请求
- *
- * @author Charles7c
- * @since 2022/12/21 20:59
- */
-@NoArgsConstructor
-public class BadRequestException extends RuntimeException {
-
- public BadRequestException(String message) {
- super(message);
- }
-}
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/exception/ServiceException.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/exception/ServiceException.java
deleted file mode 100644
index 6bde201d..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/exception/ServiceException.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.exception;
-
-import lombok.NoArgsConstructor;
-
-/**
- * 业务异常
- *
- * @author Charles7c
- * @since 2022/12/23 22:55
- */
-@NoArgsConstructor
-public class ServiceException extends RuntimeException {
-
- public ServiceException(String message) {
- super(message);
- }
-}
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/handler/CrudRequestMappingHandlerMapping.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/handler/CrudRequestMappingHandlerMapping.java
deleted file mode 100644
index 9d3a84bf..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/handler/CrudRequestMappingHandlerMapping.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.handler;
-
-import static top.charles7c.cnadmin.common.annotation.CrudRequestMapping.Api;
-
-import java.lang.reflect.Method;
-
-import org.springframework.lang.NonNull;
-import org.springframework.web.servlet.mvc.method.RequestMappingInfo;
-import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
-import org.springframework.web.util.pattern.PathPatternParser;
-
-import cn.hutool.core.util.ArrayUtil;
-import cn.hutool.core.util.StrUtil;
-
-import top.charles7c.cnadmin.common.annotation.CrudRequestMapping;
-import top.charles7c.continew.starter.core.util.ExceptionUtils;
-
-/**
- * CRUD 请求映射器处理器映射器
- *
- * @author Charles7c
- * @since 2023/1/27 10:30
- */
-public class CrudRequestMappingHandlerMapping extends RequestMappingHandlerMapping {
-
- @Override
- protected RequestMappingInfo getMappingForMethod(@NonNull Method method, @NonNull Class> handlerType) {
- RequestMappingInfo requestMappingInfo = super.getMappingForMethod(method, handlerType);
- if (null == requestMappingInfo) {
- return null;
- }
-
- // 如果没有声明 @CrudRequestMapping 注解,直接返回
- if (!handlerType.isAnnotationPresent(CrudRequestMapping.class)) {
- return requestMappingInfo;
- }
-
- // 获取 @CrudRequestMapping 注解信息
- CrudRequestMapping crudRequestMapping = handlerType.getDeclaredAnnotation(CrudRequestMapping.class);
- // 拼接路径前缀(合并了 @RequestMapping 的部分能力)
- String pathPrefix = crudRequestMapping.value();
- if (StrUtil.isNotBlank(pathPrefix)) {
- /*
- * 问题:RequestMappingInfo.paths(pathPrefix) 返回的 RequestMappingInfo 对象里 pathPatternsCondition = null
- * 导致 combine() 方法抛出断言异常! 修复:创建 options 对象,并设置 PatternParser
- */
- RequestMappingInfo.BuilderConfiguration options = new RequestMappingInfo.BuilderConfiguration();
- options.setPatternParser(PathPatternParser.defaultInstance);
- requestMappingInfo =
- RequestMappingInfo.paths(pathPrefix).options(options).build().combine(requestMappingInfo);
- }
-
- // 过滤 API
- Api[] apiArr = crudRequestMapping.api();
- // 如果非本类中定义,且 API 列表中不包含,则忽略
- Api api = ExceptionUtils.exToNull(() -> Api.valueOf(method.getName().toUpperCase()));
- if (method.getDeclaringClass() != handlerType && !ArrayUtil.containsAny(apiArr, Api.ALL, api)) {
- return null;
- }
- return requestMappingInfo;
- }
-}
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/handler/GlobalErrorHandler.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/handler/GlobalErrorHandler.java
index 9438acef..a10ba6a1 100644
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/handler/GlobalErrorHandler.java
+++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/handler/GlobalErrorHandler.java
@@ -41,7 +41,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.json.JSONUtil;
-import top.charles7c.cnadmin.common.model.resp.R;
+import top.charles7c.continew.starter.extension.crud.model.resp.R;
/**
* 全局错误处理器
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/handler/GlobalExceptionHandler.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/handler/GlobalExceptionHandler.java
index 17927db6..fdea2bfa 100644
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/handler/GlobalExceptionHandler.java
+++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/handler/GlobalExceptionHandler.java
@@ -40,12 +40,12 @@ import cn.dev33.satoken.exception.NotRoleException;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
-import top.charles7c.cnadmin.common.exception.BadRequestException;
-import top.charles7c.cnadmin.common.exception.ServiceException;
-import top.charles7c.cnadmin.common.model.resp.R;
import top.charles7c.cnadmin.common.util.StreamUtils;
import top.charles7c.cnadmin.common.util.holder.LogContextHolder;
import top.charles7c.continew.starter.core.util.ExceptionUtils;
+import top.charles7c.continew.starter.extension.crud.exception.BadRequestException;
+import top.charles7c.continew.starter.extension.crud.exception.BusinessException;
+import top.charles7c.continew.starter.extension.crud.model.resp.R;
/**
* 全局异常处理器
@@ -172,8 +172,8 @@ public class GlobalExceptionHandler {
/**
* 拦截业务异常
*/
- @ExceptionHandler(ServiceException.class)
- public R handleServiceException(ServiceException e, HttpServletRequest request) {
+ @ExceptionHandler(BusinessException.class)
+ public R handleServiceException(BusinessException e, HttpServletRequest request) {
log.error("请求地址 [{}],发生业务异常。", request.getRequestURI(), e);
LogContextHolder.setErrorMsg(e.getMessage());
return R.fail(HttpStatus.INTERNAL_SERVER_ERROR.value(), e.getMessage());
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/handler/GlobalResponseBodyAdviceHandler.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/handler/GlobalResponseBodyAdviceHandler.java
index 976dec78..2997dcda 100644
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/handler/GlobalResponseBodyAdviceHandler.java
+++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/handler/GlobalResponseBodyAdviceHandler.java
@@ -31,8 +31,8 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import cn.hutool.core.util.StrUtil;
-import top.charles7c.cnadmin.common.annotation.NoResponseAdvice;
-import top.charles7c.cnadmin.common.model.resp.R;
+import top.charles7c.continew.starter.extension.crud.annotation.NoResponseAdvice;
+import top.charles7c.continew.starter.extension.crud.model.resp.R;
/**
* 全局响应结果处理器
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/model/query/PageQuery.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/model/query/PageQuery.java
deleted file mode 100644
index 1b1a6048..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/model/query/PageQuery.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.model.query;
-
-import java.io.Serial;
-
-import jakarta.validation.constraints.Min;
-
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-
-import org.hibernate.validator.constraints.Range;
-import org.springdoc.core.annotations.ParameterObject;
-import org.springframework.data.domain.Sort;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.metadata.OrderItem;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-
-import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.util.StrUtil;
-
-/**
- * 分页查询条件
- *
- * @author Charles7c
- * @since 2023/1/15 10:59
- */
-@Data
-@ParameterObject
-@NoArgsConstructor
-@Schema(description = "分页查询条件")
-public class PageQuery extends SortQuery {
-
- @Serial
- private static final long serialVersionUID = 1L;
- /** 默认页码:1 */
- private static final int DEFAULT_PAGE = 1;
- /** 默认每页条数:10 */
- private static final int DEFAULT_SIZE = 10;
-
- /**
- * 页码
- */
- @Schema(description = "页码", example = "1")
- @Min(value = 1, message = "页码最小值为 {value}")
- private Integer page = DEFAULT_PAGE;
-
- /**
- * 每页条数
- */
- @Schema(description = "每页条数", example = "10")
- @Range(min = 1, max = 1000, message = "每页条数(取值范围 {min}-{max})")
- private Integer size = DEFAULT_SIZE;
-
- /**
- * 基于分页查询条件转换为 MyBatis Plus 分页条件
- *
- * @param
- * 列表数据类型
- * @return MyBatis Plus 分页条件
- */
- public IPage toPage() {
- Page mybatisPage = new Page<>(this.getPage(), this.getSize());
- Sort pageSort = this.getSort();
- if (CollUtil.isNotEmpty(pageSort)) {
- for (Sort.Order order : pageSort) {
- OrderItem orderItem = new OrderItem();
- orderItem.setAsc(order.isAscending());
- orderItem.setColumn(StrUtil.toUnderlineCase(order.getProperty()));
- mybatisPage.addOrder(orderItem);
- }
- }
- return mybatisPage;
- }
-}
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/model/query/SortQuery.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/model/query/SortQuery.java
deleted file mode 100644
index 9cf07cd6..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/model/query/SortQuery.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.model.query;
-
-import java.io.Serial;
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
-
-import lombok.Data;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-
-import org.springframework.data.domain.Sort;
-
-import cn.hutool.core.util.ArrayUtil;
-import cn.hutool.core.util.StrUtil;
-
-import top.charles7c.continew.starter.core.constant.StringConstants;
-
-/**
- * 排序查询条件
- *
- * @author Charles7c
- * @since 2023/2/12 21:30
- */
-@Data
-@Schema(description = "排序查询条件")
-public class SortQuery implements Serializable {
-
- @Serial
- private static final long serialVersionUID = 1L;
-
- /**
- * 排序条件
- */
- @Schema(description = "排序条件", example = "createTime,desc")
- private String[] sort;
-
- /**
- * 解析排序条件为 Spring 分页排序实体
- *
- * @return Spring 分页排序实体
- */
- public Sort getSort() {
- if (ArrayUtil.isEmpty(sort)) {
- return Sort.unsorted();
- }
-
- List orders = new ArrayList<>(sort.length);
- if (StrUtil.contains(sort[0], StringConstants.COMMA)) {
- // e.g "sort=createTime,desc&sort=name,asc"
- for (String s : sort) {
- List sortList = StrUtil.splitTrim(s, StringConstants.COMMA);
- Sort.Order order =
- new Sort.Order(Sort.Direction.valueOf(sortList.get(1).toUpperCase()), sortList.get(0));
- orders.add(order);
- }
- } else {
- // e.g "sort=createTime,desc"
- Sort.Order order = new Sort.Order(Sort.Direction.valueOf(sort[1].toUpperCase()), sort[0]);
- orders.add(order);
- }
- return Sort.by(orders);
- }
-}
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/model/resp/PageDataResp.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/model/resp/PageDataResp.java
deleted file mode 100644
index e38e9798..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/model/resp/PageDataResp.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.model.resp;
-
-import java.io.Serial;
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
-
-import lombok.Data;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.collection.CollUtil;
-
-/**
- * 分页信息
- *
- * @param
- * 列表数据类型
- * @author Charles7c
- * @since 2023/1/14 23:40
- */
-@Data
-@Schema(description = "分页信息")
-public class PageDataResp implements Serializable {
-
- @Serial
- private static final long serialVersionUID = 1L;
-
- /**
- * 列表数据
- */
- @Schema(description = "列表数据")
- private List list;
-
- /**
- * 总记录数
- */
- @Schema(description = "总记录数", example = "10")
- private long total;
-
- /**
- * 基于 MyBatis Plus 分页数据构建分页信息,并将源数据转换为指定类型数据
- *
- * @param page
- * MyBatis Plus 分页数据
- * @param targetClass
- * 目标类型 Class 对象
- * @param
- * 源列表数据类型
- * @param
- * 目标列表数据类型
- * @return 分页信息
- */
- public static PageDataResp build(IPage page, Class targetClass) {
- if (null == page) {
- return empty();
- }
- PageDataResp pageDataResp = new PageDataResp<>();
- pageDataResp.setList(BeanUtil.copyToList(page.getRecords(), targetClass));
- pageDataResp.setTotal(page.getTotal());
- return pageDataResp;
- }
-
- /**
- * 基于 MyBatis Plus 分页数据构建分页信息
- *
- * @param page
- * MyBatis Plus 分页数据
- * @param
- * 列表数据类型
- * @return 分页信息
- */
- public static PageDataResp build(IPage page) {
- if (null == page) {
- return empty();
- }
- PageDataResp pageDataResp = new PageDataResp<>();
- pageDataResp.setList(page.getRecords());
- pageDataResp.setTotal(page.getTotal());
- return pageDataResp;
- }
-
- /**
- * 基于列表数据构建分页信息
- *
- * @param page
- * 页码
- * @param size
- * 每页条数
- * @param list
- * 列表数据
- * @param
- * 列表数据类型
- * @return 分页信息
- */
- public static PageDataResp build(int page, int size, List list) {
- if (CollUtil.isEmpty(list)) {
- return empty();
- }
- PageDataResp pageDataResp = new PageDataResp<>();
- pageDataResp.setTotal(list.size());
- // 对列表数据进行分页
- int fromIndex = (page - 1) * size;
- int toIndex = page * size + size;
- if (fromIndex > list.size()) {
- pageDataResp.setList(new ArrayList<>(0));
- } else if (toIndex >= list.size()) {
- pageDataResp.setList(list.subList(fromIndex, list.size()));
- } else {
- pageDataResp.setList(list.subList(fromIndex, toIndex));
- }
- return pageDataResp;
- }
-
- /**
- * 空分页信息
- *
- * @param
- * 列表数据类型
- * @return 分页信息
- */
- private static PageDataResp empty() {
- PageDataResp pageDataResp = new PageDataResp<>();
- pageDataResp.setList(new ArrayList<>(0));
- return pageDataResp;
- }
-}
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/model/resp/R.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/model/resp/R.java
deleted file mode 100644
index bd7b751f..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/model/resp/R.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.model.resp;
-
-import java.io.Serial;
-import java.io.Serializable;
-
-import lombok.AccessLevel;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-
-import org.springframework.http.HttpStatus;
-
-import cn.hutool.core.date.DateUtil;
-
-/**
- * 响应信息
- *
- * @author Charles7c
- * @since 2022/12/10 23:31
- */
-@Data
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-@Schema(description = "响应信息")
-public class R implements Serializable {
-
- @Serial
- private static final long serialVersionUID = 1L;
-
- /** 是否成功 */
- @Schema(description = "是否成功", example = "true")
- private boolean success;
-
- /** 业务状态码 */
- @Schema(description = "业务状态码", example = "200")
- private int code;
-
- /** 业务状态信息 */
- @Schema(description = "业务状态信息", example = "操作成功")
- private String msg;
-
- /** 响应数据 */
- @Schema(description = "响应数据")
- private T data;
-
- /** 时间戳 */
- @Schema(description = "时间戳", example = "1691453288")
- private long timestamp = DateUtil.currentSeconds();
-
- /** 成功状态码 */
- private static final int SUCCESS_CODE = HttpStatus.OK.value();
- /** 失败状态码 */
- private static final int FAIL_CODE = HttpStatus.INTERNAL_SERVER_ERROR.value();
-
- private R(boolean success, int code, String msg, T data) {
- this.success = success;
- this.code = code;
- this.msg = msg;
- this.data = data;
- }
-
- public static R ok() {
- return new R<>(true, SUCCESS_CODE, "操作成功", null);
- }
-
- public static R ok(T data) {
- return new R<>(true, SUCCESS_CODE, "操作成功", data);
- }
-
- public static R ok(String msg) {
- return new R<>(true, SUCCESS_CODE, msg, null);
- }
-
- public static R ok(String msg, T data) {
- return new R<>(true, SUCCESS_CODE, msg, data);
- }
-
- public static R fail() {
- return new R<>(false, FAIL_CODE, "操作失败", null);
- }
-
- public static R fail(String msg) {
- return new R<>(false, FAIL_CODE, msg, null);
- }
-
- public static R fail(T data) {
- return new R<>(false, FAIL_CODE, "操作失败", data);
- }
-
- public static R fail(String msg, T data) {
- return new R<>(false, FAIL_CODE, msg, data);
- }
-
- public static R fail(int code, String msg) {
- return new R<>(false, code, msg, null);
- }
-}
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/service/CommonUserService.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/service/CommonUserService.java
deleted file mode 100644
index bdf728a8..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/service/CommonUserService.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.service;
-
-/**
- * 公共用户业务接口
- *
- * @author Charles7c
- * @since 2023/2/13 20:37
- */
-public interface CommonUserService {
-
- /**
- * 根据 ID 查询昵称
- *
- * @param id
- * ID
- * @return 昵称
- */
- String getNicknameById(Long id);
-}
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/ReflectUtils.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/ReflectUtils.java
deleted file mode 100644
index 70db9f04..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/ReflectUtils.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.util;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
-import java.util.Arrays;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
-
-import cn.hutool.core.util.ReflectUtil;
-
-/**
- * 反射工具类
- *
- * @author Charles7c
- * @since 2023/1/15 22:05
- */
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public class ReflectUtils {
-
- /**
- * 获得一个类中所有非静态字段名列表,包括其父类中的字段
- * 如果子类与父类中存在同名字段,则这两个字段同时存在,子类字段在前,父类字段在后。
- *
- * @param beanClass
- * 类
- * @return 非静态字段名列表
- * @throws SecurityException
- * 安全检查异常
- */
- public static List getNonStaticFieldsName(Class> beanClass) throws SecurityException {
- List nonStaticFields = getNonStaticFields(beanClass);
- return nonStaticFields.stream().map(Field::getName).collect(Collectors.toList());
- }
-
- /**
- * 获得一个类中所有非静态字段列表,包括其父类中的字段
- * 如果子类与父类中存在同名字段,则这两个字段同时存在,子类字段在前,父类字段在后。
- *
- * @param beanClass
- * 类
- * @return 非静态字段列表
- * @throws SecurityException
- * 安全检查异常
- */
- public static List getNonStaticFields(Class> beanClass) throws SecurityException {
- Field[] fields = ReflectUtil.getFields(beanClass);
- return Arrays.stream(fields).filter(f -> !Modifier.isStatic(f.getModifiers())).collect(Collectors.toList());
- }
-}
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/SecureUtils.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/SecureUtils.java
index b9be7725..12dee7c1 100644
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/SecureUtils.java
+++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/SecureUtils.java
@@ -24,7 +24,7 @@ import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.asymmetric.KeyType;
import top.charles7c.cnadmin.common.config.properties.RsaProperties;
-import top.charles7c.cnadmin.common.util.validate.ValidationUtils;
+import top.charles7c.continew.starter.extension.crud.util.validate.ValidationUtils;
/**
* 加密/解密工具类
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/TreeUtils.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/TreeUtils.java
deleted file mode 100644
index 0ba2c507..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/TreeUtils.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.util;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
-
-import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.lang.tree.Tree;
-import cn.hutool.core.lang.tree.TreeNodeConfig;
-import cn.hutool.core.lang.tree.TreeUtil;
-import cn.hutool.core.lang.tree.parser.NodeParser;
-import cn.hutool.core.util.ReflectUtil;
-
-import top.charles7c.cnadmin.common.annotation.TreeField;
-import top.charles7c.cnadmin.common.util.validate.CheckUtils;
-
-/**
- * 树工具类
- *
- * @author Charles7c
- * @since 2023/1/22 22:11
- */
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public class TreeUtils {
-
- /** 默认字段配置对象(根据前端树结构灵活调整名称) */
- public static final TreeNodeConfig DEFAULT_CONFIG =
- TreeNodeConfig.DEFAULT_CONFIG.setNameKey("title").setIdKey("key").setWeightKey("sort");
-
- /**
- * 树构建
- *
- * @param
- * 转换的实体 为数据源里的对象类型
- * @param
- * ID类型
- * @param list
- * 源数据集合
- * @param nodeParser
- * 转换器
- * @return List 树列表
- */
- public static List> build(List list, NodeParser nodeParser) {
- return build(list, DEFAULT_CONFIG, nodeParser);
- }
-
- /**
- * 树构建
- *
- * @param
- * 转换的实体 为数据源里的对象类型
- * @param
- * ID类型
- * @param list
- * 源数据集合
- * @param treeNodeConfig
- * 配置
- * @param nodeParser
- * 转换器
- * @return List 树列表
- */
- public static List> build(List list, TreeNodeConfig treeNodeConfig, NodeParser nodeParser) {
- if (CollUtil.isEmpty(list)) {
- return new ArrayList<>(0);
- }
- E parentId = (E)ReflectUtil.getFieldValue(list.get(0), treeNodeConfig.getParentIdKey());
- return TreeUtil.build(list, parentId, treeNodeConfig, nodeParser);
- }
-
- /**
- * 根据 @TreeField 配置生成树结构配置
- *
- * @param treeField
- * 树结构字段注解
- * @return 树结构配置
- */
- public static TreeNodeConfig genTreeNodeConfig(TreeField treeField) {
- CheckUtils.throwIfNull(treeField, "请添加并配置 @TreeField 树结构信息");
- return new TreeNodeConfig().setIdKey(treeField.value()).setParentIdKey(treeField.parentIdKey())
- .setNameKey(treeField.nameKey()).setWeightKey(treeField.weightKey()).setChildrenKey(treeField.childrenKey())
- .setDeep(treeField.deep() < 0 ? null : treeField.deep());
- }
-}
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/helper/LoginHelper.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/helper/LoginHelper.java
index bb408bf2..c1df5486 100644
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/helper/LoginHelper.java
+++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/helper/LoginHelper.java
@@ -32,11 +32,11 @@ import cn.hutool.extra.spring.SpringUtil;
import top.charles7c.cnadmin.common.constant.CacheConstants;
import top.charles7c.cnadmin.common.model.dto.LogContext;
import top.charles7c.cnadmin.common.model.dto.LoginUser;
-import top.charles7c.cnadmin.common.service.CommonUserService;
import top.charles7c.cnadmin.common.util.ServletUtils;
import top.charles7c.cnadmin.common.util.holder.LogContextHolder;
import top.charles7c.continew.starter.core.util.ExceptionUtils;
import top.charles7c.continew.starter.core.util.IpUtils;
+import top.charles7c.continew.starter.extension.crud.base.CommonUserService;
/**
* 登录助手
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/helper/QueryHelper.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/helper/QueryHelper.java
deleted file mode 100644
index f63b2604..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/helper/QueryHelper.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.util.helper;
-
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.List;
-
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-
-import cn.hutool.core.util.ArrayUtil;
-import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.core.util.StrUtil;
-
-import top.charles7c.cnadmin.common.annotation.Query;
-import top.charles7c.cnadmin.common.enums.QueryTypeEnum;
-import top.charles7c.cnadmin.common.exception.BadRequestException;
-import top.charles7c.cnadmin.common.util.ReflectUtils;
-import top.charles7c.cnadmin.common.util.validate.ValidationUtils;
-
-/**
- * 查询助手
- *
- * @author Zheng Jie(ELADMIN)
- * @author Charles7c
- * @since 2023/1/15 18:17
- */
-@Slf4j
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public class QueryHelper {
-
- /**
- * 根据查询条件构建 MyBatis Plus 查询条件封装对象
- *
- * @param query
- * 查询条件
- * @param
- * 查询条件数据类型
- * @param
- * 查询数据类型
- * @return MyBatis Plus 查询条件封装对象
- */
- public static QueryWrapper build(Q query) {
- QueryWrapper queryWrapper = new QueryWrapper<>();
- // 没有查询条件,直接返回
- if (null == query) {
- return queryWrapper;
- }
- // 获取查询条件中所有的字段
- List fieldList = ReflectUtils.getNonStaticFields(query.getClass());
- fieldList.forEach(field -> buildQuery(query, field, queryWrapper));
- return queryWrapper;
- }
-
- /**
- * 构建 MyBatis Plus 查询条件封装对象
- *
- * @param query
- * 查询条件
- * @param field
- * 字段
- * @param queryWrapper
- * MyBatis Plus 查询条件封装对象
- * @param
- * 查询条件数据类型
- * @param
- * 查询数据类型
- */
- private static void buildQuery(Q query, Field field, QueryWrapper queryWrapper) {
- boolean accessible = field.canAccess(query);
- try {
- field.setAccessible(true);
- // 没有 @Query,直接返回
- Query queryAnnotation = field.getAnnotation(Query.class);
- if (null == queryAnnotation) {
- return;
- }
-
- // 如果字段值为空,直接返回
- Object fieldValue = field.get(query);
- if (ObjectUtil.isEmpty(fieldValue)) {
- return;
- }
-
- // 解析查询条件
- parse(queryAnnotation, field.getName(), fieldValue, queryWrapper);
- } catch (BadRequestException e) {
- log.error("Build query occurred an validation error: {}. Query: {}, Field: {}.", e.getMessage(), query,
- field, e);
- throw e;
- } catch (Exception e) {
- log.error("Build query occurred an error: {}. Query: {}, Field: {}.", e.getMessage(), query, field, e);
- } finally {
- field.setAccessible(accessible);
- }
- }
-
- /**
- * 解析查询条件
- *
- * @param queryAnnotation
- * 查询注解
- * @param fieldName
- * 字段名
- * @param fieldValue
- * 字段值
- * @param queryWrapper
- * MyBatis Plus 查询条件封装对象
- * @param
- * 查询数据类型
- */
- private static void parse(Query queryAnnotation, String fieldName, Object fieldValue,
- QueryWrapper queryWrapper) {
- // 解析多属性模糊查询
- // 如果设置了多属性模糊查询,分割属性进行条件拼接
- String[] blurryPropertyArr = queryAnnotation.blurry();
- if (ArrayUtil.isNotEmpty(blurryPropertyArr)) {
- queryWrapper.and(wrapper -> {
- for (String blurryProperty : blurryPropertyArr) {
- wrapper.or().like(StrUtil.toUnderlineCase(blurryProperty), fieldValue);
- }
- });
- return;
- }
-
- // 解析单个属性查询
- // 如果没有单独指定属性名,就和使用该注解的属性的名称一致
- // 注意:数据库规范中列采用下划线连接法命名,程序规范中变量采用驼峰法命名
- String property = queryAnnotation.property();
- String columnName = StrUtil.toUnderlineCase(StrUtil.blankToDefault(property, fieldName));
- QueryTypeEnum queryType = queryAnnotation.type();
- switch (queryType) {
- case EQUAL -> queryWrapper.eq(columnName, fieldValue);
- case NOT_EQUAL -> queryWrapper.ne(columnName, fieldValue);
- case GREATER_THAN -> queryWrapper.gt(columnName, fieldValue);
- case LESS_THAN -> queryWrapper.lt(columnName, fieldValue);
- case GREATER_THAN_OR_EQUAL -> queryWrapper.ge(columnName, fieldValue);
- case LESS_THAN_OR_EQUAL -> queryWrapper.le(columnName, fieldValue);
- case BETWEEN -> {
- List between = new ArrayList<>((List)fieldValue);
- ValidationUtils.throwIf(between.size() != 2, "[{}] 必须是一个范围", fieldName);
- queryWrapper.between(columnName, between.get(0), between.get(1));
- }
- case LEFT_LIKE -> queryWrapper.likeLeft(columnName, fieldValue);
- case INNER_LIKE -> queryWrapper.like(columnName, fieldValue);
- case RIGHT_LIKE -> queryWrapper.likeRight(columnName, fieldValue);
- case IN -> {
- ValidationUtils.throwIfEmpty(fieldValue, "[{}] 不能为空", fieldName);
- queryWrapper.in(columnName, (List)fieldValue);
- }
- case NOT_IN -> {
- ValidationUtils.throwIfEmpty(fieldValue, "[{}] 不能为空", fieldName);
- queryWrapper.notIn(columnName, (List)fieldValue);
- }
- case IS_NULL -> queryWrapper.isNull(columnName);
- case IS_NOT_NULL -> queryWrapper.isNotNull(columnName);
- default -> throw new IllegalArgumentException(String.format("暂不支持 [%s] 查询类型", queryType));
- }
- }
-}
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/validate/CheckUtils.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/validate/CheckUtils.java
deleted file mode 100644
index 9fde775e..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/validate/CheckUtils.java
+++ /dev/null
@@ -1,254 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.util.validate;
-
-import java.util.function.BooleanSupplier;
-
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-
-import cn.hutool.core.util.StrUtil;
-
-import top.charles7c.cnadmin.common.exception.ServiceException;
-import top.charles7c.continew.starter.core.constant.StringConstants;
-
-/**
- * 业务参数校验工具类(抛出 500 ServiceException)
- *
- * @see ServiceException
- * @author Charles7c
- * @since 2023/1/2 22:12
- */
-@Slf4j
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public class CheckUtils extends Validator {
-
- private static final Class EXCEPTION_TYPE = ServiceException.class;
-
- /**
- * 如果不存在,抛出异常
- *
- * @param obj
- * 被检测的对象
- * @param entityName
- * 实体名
- * @param fieldName
- * 字段名
- * @param fieldValue
- * 字段值
- */
- public static void throwIfNotExists(Object obj, String entityName, String fieldName, Object fieldValue) {
- String message = String.format("%s 为 [%s] 的 %s 记录已不存在", fieldName, fieldValue,
- StrUtil.replace(entityName, "DO", StringConstants.EMPTY));
- throwIfNull(obj, message, EXCEPTION_TYPE);
- }
-
- /**
- * 如果为空,抛出异常
- *
- * @param obj
- * 被检测的对象
- * @param template
- * 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null"
- * @param params
- * 参数值
- */
- public static void throwIfNull(Object obj, String template, Object... params) {
- throwIfNull(obj, StrUtil.format(template, params), EXCEPTION_TYPE);
- }
-
- /**
- * 如果不为空,抛出异常
- *
- * @param obj
- * 被检测的对象
- * @param template
- * 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null"
- * @param params
- * 参数值
- */
- public static void throwIfNotNull(Object obj, String template, Object... params) {
- throwIfNotNull(obj, StrUtil.format(template, params), EXCEPTION_TYPE);
- }
-
- /**
- * 如果存在,抛出异常
- *
- * @param obj
- * 被检测的对象
- * @param entityName
- * 实体名
- * @param fieldName
- * 字段名
- * @param fieldValue
- * 字段值
- */
- public static void throwIfExists(Object obj, String entityName, String fieldName, Object fieldValue) {
- String message = String.format("%s 为 [%s] 的 %s 记录已存在", fieldName, fieldValue, entityName);
- throwIfNotNull(obj, message, EXCEPTION_TYPE);
- }
-
- /**
- * 如果为空,抛出异常
- *
- * @param obj
- * 被检测的对象
- * @param template
- * 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null"
- * @param params
- * 参数值
- */
- public static void throwIfEmpty(Object obj, String template, Object... params) {
- throwIfEmpty(obj, StrUtil.format(template, params), EXCEPTION_TYPE);
- }
-
- /**
- * 如果不为空,抛出异常
- *
- * @param obj
- * 被检测的对象
- * @param template
- * 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null"
- * @param params
- * 参数值
- */
- public static void throwIfNotEmpty(Object obj, String template, Object... params) {
- throwIfNotEmpty(obj, StrUtil.format(template, params), EXCEPTION_TYPE);
- }
-
- /**
- * 如果为空,抛出异常
- *
- * @param str
- * 被检测的字符串
- * @param template
- * 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null"
- * @param params
- * 参数值
- */
- public static void throwIfBlank(CharSequence str, String template, Object... params) {
- throwIfBlank(str, StrUtil.format(template, params), EXCEPTION_TYPE);
- }
-
- /**
- * 如果不为空,抛出异常
- *
- * @param str
- * 被检测的字符串
- * @param template
- * 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null"
- * @param params
- * 参数值
- */
- public static void throwIfNotBlank(CharSequence str, String template, Object... params) {
- throwIfNotBlank(str, StrUtil.format(template, params), EXCEPTION_TYPE);
- }
-
- /**
- * 如果相同,抛出异常
- *
- * @param obj1
- * 要比较的对象1
- * @param obj2
- * 要比较的对象2
- * @param template
- * 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null"
- * @param params
- * 参数值
- */
- public static void throwIfEqual(Object obj1, Object obj2, String template, Object... params) {
- throwIfEqual(obj1, obj2, StrUtil.format(template, params), EXCEPTION_TYPE);
- }
-
- /**
- * 如果不相同,抛出异常
- *
- * @param obj1
- * 要比较的对象1
- * @param obj2
- * 要比较的对象2
- * @param template
- * 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null"
- * @param params
- * 参数值
- */
- public static void throwIfNotEqual(Object obj1, Object obj2, String template, Object... params) {
- throwIfNotEqual(obj1, obj2, StrUtil.format(template, params), EXCEPTION_TYPE);
- }
-
- /**
- * 如果相同,抛出异常(不区分大小写)
- *
- * @param str1
- * 要比较的字符串1
- * @param str2
- * 要比较的字符串2
- * @param template
- * 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null"
- * @param params
- * 参数值
- */
- public static void throwIfEqualIgnoreCase(CharSequence str1, CharSequence str2, String template, Object... params) {
- throwIfEqualIgnoreCase(str1, str2, StrUtil.format(template, params), EXCEPTION_TYPE);
- }
-
- /**
- * 如果不相同,抛出异常(不区分大小写)
- *
- * @param str1
- * 要比较的字符串1
- * @param str2
- * 要比较的字符串2
- * @param template
- * 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null"
- * @param params
- * 参数值
- */
- public static void throwIfNotEqualIgnoreCase(CharSequence str1, CharSequence str2, String template,
- Object... params) {
- throwIfNotEqualIgnoreCase(str1, str2, StrUtil.format(template, params), EXCEPTION_TYPE);
- }
-
- /**
- * 如果条件成立,抛出异常
- *
- * @param condition
- * 条件
- * @param template
- * 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null"
- * @param params
- * 参数值
- */
- public static void throwIf(boolean condition, String template, Object... params) {
- throwIf(condition, StrUtil.format(template, params), EXCEPTION_TYPE);
- }
-
- /**
- * 如果条件成立,抛出异常
- *
- * @param conditionSupplier
- * 条件
- * @param template
- * 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null"
- * @param params
- * 参数值
- */
- public static void throwIf(BooleanSupplier conditionSupplier, String template, Object... params) {
- throwIf(conditionSupplier, StrUtil.format(template, params), EXCEPTION_TYPE);
- }
-}
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/validate/ValidationUtils.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/validate/ValidationUtils.java
deleted file mode 100644
index 7363469f..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/validate/ValidationUtils.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.util.validate;
-
-import java.util.function.BooleanSupplier;
-
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-
-import cn.hutool.core.util.StrUtil;
-
-import top.charles7c.cnadmin.common.exception.BadRequestException;
-
-/**
- * 基本参数校验工具类(抛出 400 BadRequestException)
- *
- * @see BadRequestException
- * @author Charles7c
- * @since 2022/12/21 20:56
- */
-@Slf4j
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public class ValidationUtils extends Validator {
-
- private static final Class EXCEPTION_TYPE = BadRequestException.class;
-
- /**
- * 如果为空,抛出异常
- *
- * @param obj
- * 被检测的对象
- * @param template
- * 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null"
- * @param params
- * 参数值
- */
- public static void throwIfNull(Object obj, String template, Object... params) {
- throwIfNull(obj, StrUtil.format(template, params), EXCEPTION_TYPE);
- }
-
- /**
- * 如果不为空,抛出异常
- *
- * @param obj
- * 被检测的对象
- * @param template
- * 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null"
- * @param params
- * 参数值
- */
- public static void throwIfNotNull(Object obj, String template, Object... params) {
- throwIfNotNull(obj, StrUtil.format(template, params), EXCEPTION_TYPE);
- }
-
- /**
- * 如果为空,抛出异常
- *
- * @param obj
- * 被检测的对象
- * @param template
- * 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null"
- * @param params
- * 参数值
- */
- public static void throwIfEmpty(Object obj, String template, Object... params) {
- throwIfEmpty(obj, StrUtil.format(template, params), EXCEPTION_TYPE);
- }
-
- /**
- * 如果不为空,抛出异常
- *
- * @param obj
- * 被检测的对象
- * @param template
- * 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null"
- * @param params
- * 参数值
- */
- public static void throwIfNotEmpty(Object obj, String template, Object... params) {
- throwIfNotEmpty(obj, StrUtil.format(template, params), EXCEPTION_TYPE);
- }
-
- /**
- * 如果为空,抛出异常
- *
- * @param str
- * 被检测的字符串
- * @param template
- * 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null"
- * @param params
- * 参数值
- */
- public static void throwIfBlank(CharSequence str, String template, Object... params) {
- throwIfBlank(str, StrUtil.format(template, params), EXCEPTION_TYPE);
- }
-
- /**
- * 如果不为空,抛出异常
- *
- * @param str
- * 被检测的字符串
- * @param template
- * 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null"
- * @param params
- * 参数值
- */
- public static void throwIfNotBlank(CharSequence str, String template, Object... params) {
- throwIfNotBlank(str, StrUtil.format(template, params), EXCEPTION_TYPE);
- }
-
- /**
- * 如果相同,抛出异常
- *
- * @param obj1
- * 要比较的对象1
- * @param obj2
- * 要比较的对象2
- * @param template
- * 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null"
- * @param params
- * 参数值
- */
- public static void throwIfEqual(Object obj1, Object obj2, String template, Object... params) {
- throwIfEqual(obj1, obj2, StrUtil.format(template, params), EXCEPTION_TYPE);
- }
-
- /**
- * 如果不相同,抛出异常
- *
- * @param obj1
- * 要比较的对象1
- * @param obj2
- * 要比较的对象2
- * @param template
- * 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null"
- * @param params
- * 参数值
- */
- public static void throwIfNotEqual(Object obj1, Object obj2, String template, Object... params) {
- throwIfNotEqual(obj1, obj2, StrUtil.format(template, params), EXCEPTION_TYPE);
- }
-
- /**
- * 如果相同,抛出异常(不区分大小写)
- *
- * @param str1
- * 要比较的字符串1
- * @param str2
- * 要比较的字符串2
- * @param template
- * 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null"
- * @param params
- * 参数值
- */
- public static void throwIfEqualIgnoreCase(CharSequence str1, CharSequence str2, String template, Object... params) {
- throwIfEqualIgnoreCase(str1, str2, StrUtil.format(template, params), EXCEPTION_TYPE);
- }
-
- /**
- * 如果不相同,抛出异常(不区分大小写)
- *
- * @param str1
- * 要比较的字符串1
- * @param str2
- * 要比较的字符串2
- * @param template
- * 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null"
- * @param params
- * 参数值
- */
- public static void throwIfNotEqualIgnoreCase(CharSequence str1, CharSequence str2, String template,
- Object... params) {
- throwIfNotEqualIgnoreCase(str1, str2, StrUtil.format(template, params), EXCEPTION_TYPE);
- }
-
- /**
- * 如果条件成立,抛出异常
- *
- * @param condition
- * 条件
- * @param template
- * 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null"
- * @param params
- * 参数值
- */
- public static void throwIf(boolean condition, String template, Object... params) {
- throwIf(condition, StrUtil.format(template, params), EXCEPTION_TYPE);
- }
-
- /**
- * 如果条件成立,抛出异常
- *
- * @param conditionSupplier
- * 条件
- * @param template
- * 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null"
- * @param params
- * 参数值
- */
- public static void throwIf(BooleanSupplier conditionSupplier, String template, Object... params) {
- throwIf(conditionSupplier, StrUtil.format(template, params), EXCEPTION_TYPE);
- }
-}
diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/validate/Validator.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/validate/Validator.java
deleted file mode 100644
index e2a3f955..00000000
--- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/validate/Validator.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
- * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package top.charles7c.cnadmin.common.util.validate;
-
-import java.util.function.BooleanSupplier;
-
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-
-import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.core.util.ReflectUtil;
-import cn.hutool.core.util.StrUtil;
-
-/**
- * 校验器
- *
- * @author Charles7c
- * @since 2023/1/2 22:12
- */
-@Slf4j
-@NoArgsConstructor(access = AccessLevel.PROTECTED)
-public class Validator {
-
- /**
- * 如果为空,抛出异常
- *
- * @param obj
- * 被检测的对象
- * @param message
- * 错误信息
- * @param exceptionType
- * 异常类型
- */
- protected static void throwIfNull(Object obj, String message, Class extends RuntimeException> exceptionType) {
- throwIf(null == obj, message, exceptionType);
- }
-
- /**
- * 如果不为空,抛出异常
- *
- * @param obj
- * 被检测的对象
- * @param message
- * 错误信息
- * @param exceptionType
- * 异常类型
- */
- protected static void throwIfNotNull(Object obj, String message, Class extends RuntimeException> exceptionType) {
- throwIf(null != obj, message, exceptionType);
- }
-
- /**
- * 如果为空,抛出异常
- *
- * @param obj
- * 被检测的对象
- * @param message
- * 错误信息
- * @param exceptionType
- * 异常类型
- */
- protected static void throwIfEmpty(Object obj, String message, Class extends RuntimeException> exceptionType) {
- throwIf(ObjectUtil.isEmpty(obj), message, exceptionType);
- }
-
- /**
- * 如果不为空,抛出异常
- *
- * @param obj
- * 被检测的对象
- * @param message
- * 错误信息
- * @param exceptionType
- * 异常类型
- */
- protected static void throwIfNotEmpty(Object obj, String message, Class extends RuntimeException> exceptionType) {
- throwIf(ObjectUtil.isNotEmpty(obj), message, exceptionType);
- }
-
- /**
- * 如果为空,抛出异常
- *
- * @param str
- * 被检测的字符串
- * @param message
- * 错误信息
- * @param exceptionType
- * 异常类型
- */
- protected static void throwIfBlank(CharSequence str, String message,
- Class extends RuntimeException> exceptionType) {
- throwIf(StrUtil.isBlank(str), message, exceptionType);
- }
-
- /**
- * 如果不为空,抛出异常
- *
- * @param str
- * 被检测的字符串
- * @param message
- * 错误信息
- * @param exceptionType
- * 异常类型
- */
- protected static void throwIfNotBlank(CharSequence str, String message,
- Class extends RuntimeException> exceptionType) {
- throwIf(StrUtil.isNotBlank(str), message, exceptionType);
- }
-
- /**
- * 如果相同,抛出异常
- *
- * @param obj1
- * 要比较的对象1
- * @param obj2
- * 要比较的对象2
- * @param message
- * 错误信息
- * @param exceptionType
- * 异常类型
- */
- protected static void throwIfEqual(Object obj1, Object obj2, String message,
- Class extends RuntimeException> exceptionType) {
- throwIf(ObjectUtil.equal(obj1, obj2), message, exceptionType);
- }
-
- /**
- * 如果不相同,抛出异常
- *
- * @param obj1
- * 要比较的对象1
- * @param obj2
- * 要比较的对象2
- * @param message
- * 错误信息
- * @param exceptionType
- * 异常类型
- */
- protected static void throwIfNotEqual(Object obj1, Object obj2, String message,
- Class extends RuntimeException> exceptionType) {
- throwIf(ObjectUtil.notEqual(obj1, obj2), message, exceptionType);
- }
-
- /**
- * 如果相同,抛出异常(不区分大小写)
- *
- * @param str1
- * 要比较的字符串1
- * @param str2
- * 要比较的字符串2
- * @param message
- * 错误信息
- * @param exceptionType
- * 异常类型
- */
- protected static void throwIfEqualIgnoreCase(CharSequence str1, CharSequence str2, String message,
- Class extends RuntimeException> exceptionType) {
- throwIf(StrUtil.equalsIgnoreCase(str1, str2), message, exceptionType);
- }
-
- /**
- * 如果不相同,抛出异常(不区分大小写)
- *
- * @param str1
- * 要比较的字符串1
- * @param str2
- * 要比较的字符串2
- * @param message
- * 错误信息
- * @param exceptionType
- * 异常类型
- */
- protected static void throwIfNotEqualIgnoreCase(CharSequence str1, CharSequence str2, String message,
- Class extends RuntimeException> exceptionType) {
- throwIf(!StrUtil.equalsIgnoreCase(str1, str2), message, exceptionType);
- }
-
- /**
- * 如果条件成立,抛出异常
- *
- * @param condition
- * 条件
- * @param message
- * 错误信息
- * @param exceptionType
- * 异常类型
- */
- protected static void throwIf(boolean condition, String message, Class extends RuntimeException> exceptionType) {
- if (condition) {
- log.error(message);
- throw ReflectUtil.newInstance(exceptionType, message);
- }
- }
-
- /**
- * 如果条件成立,抛出异常
- *
- * @param conditionSupplier
- * 条件
- * @param message
- * 错误信息
- * @param exceptionType
- * 异常类型
- */
- protected static void throwIf(BooleanSupplier conditionSupplier, String message,
- Class extends RuntimeException> exceptionType) {
- if (null != conditionSupplier && conditionSupplier.getAsBoolean()) {
- log.error(message);
- throw ReflectUtil.newInstance(exceptionType, message);
- }
- }
-}
diff --git a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/enums/LogStatusEnum.java b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/enums/LogStatusEnum.java
index 35370e8e..e9e9df04 100644
--- a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/enums/LogStatusEnum.java
+++ b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/enums/LogStatusEnum.java
@@ -19,7 +19,7 @@ package top.charles7c.cnadmin.monitor.enums;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
-import top.charles7c.cnadmin.common.base.IBaseEnum;
+import top.charles7c.continew.starter.extension.crud.base.IBaseEnum;
/**
* 操作状态枚举
diff --git a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/interceptor/LogInterceptor.java b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/interceptor/LogInterceptor.java
index 7006a69d..70e1136f 100644
--- a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/interceptor/LogInterceptor.java
+++ b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/interceptor/LogInterceptor.java
@@ -53,7 +53,6 @@ import cn.hutool.json.JSONUtil;
import top.charles7c.cnadmin.auth.model.req.AccountLoginReq;
import top.charles7c.cnadmin.common.constant.SysConstants;
import top.charles7c.cnadmin.common.model.dto.LogContext;
-import top.charles7c.cnadmin.common.model.resp.R;
import top.charles7c.cnadmin.common.util.ServletUtils;
import top.charles7c.cnadmin.common.util.helper.LoginHelper;
import top.charles7c.cnadmin.common.util.holder.LogContextHolder;
@@ -65,6 +64,7 @@ import top.charles7c.cnadmin.system.service.UserService;
import top.charles7c.continew.starter.core.constant.StringConstants;
import top.charles7c.continew.starter.core.util.ExceptionUtils;
import top.charles7c.continew.starter.core.util.IpUtils;
+import top.charles7c.continew.starter.extension.crud.model.resp.R;
/**
* 系统日志拦截器
diff --git a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/mapper/LogMapper.java b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/mapper/LogMapper.java
index 52edb3d6..8e2e6021 100644
--- a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/mapper/LogMapper.java
+++ b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/mapper/LogMapper.java
@@ -21,11 +21,11 @@ import java.util.Map;
import org.apache.ibatis.annotations.Param;
-import top.charles7c.cnadmin.common.base.BaseMapper;
import top.charles7c.cnadmin.monitor.model.entity.LogDO;
import top.charles7c.cnadmin.monitor.model.resp.DashboardAccessTrendResp;
import top.charles7c.cnadmin.monitor.model.resp.DashboardPopularModuleResp;
import top.charles7c.cnadmin.monitor.model.resp.DashboardTotalResp;
+import top.charles7c.continew.starter.extension.crud.base.BaseMapper;
/**
* 系统日志 Mapper
diff --git a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/LoginLogQuery.java b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/LoginLogQuery.java
index 2d5c676d..1c228706 100644
--- a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/LoginLogQuery.java
+++ b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/LoginLogQuery.java
@@ -29,8 +29,8 @@ import org.springframework.format.annotation.DateTimeFormat;
import cn.hutool.core.date.DatePattern;
-import top.charles7c.cnadmin.common.annotation.Query;
-import top.charles7c.cnadmin.common.enums.QueryTypeEnum;
+import top.charles7c.continew.starter.extension.crud.annotation.Query;
+import top.charles7c.continew.starter.extension.crud.enums.QueryTypeEnum;
/**
* 登录日志查询条件
diff --git a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/OperationLogQuery.java b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/OperationLogQuery.java
index 5101c97f..fbd38fb1 100644
--- a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/OperationLogQuery.java
+++ b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/OperationLogQuery.java
@@ -29,8 +29,8 @@ import org.springframework.format.annotation.DateTimeFormat;
import cn.hutool.core.date.DatePattern;
-import top.charles7c.cnadmin.common.annotation.Query;
-import top.charles7c.cnadmin.common.enums.QueryTypeEnum;
+import top.charles7c.continew.starter.extension.crud.annotation.Query;
+import top.charles7c.continew.starter.extension.crud.enums.QueryTypeEnum;
/**
* 操作日志查询条件
diff --git a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/SystemLogQuery.java b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/SystemLogQuery.java
index 45fee12a..539ba01e 100644
--- a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/SystemLogQuery.java
+++ b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/model/query/SystemLogQuery.java
@@ -29,8 +29,8 @@ import org.springframework.format.annotation.DateTimeFormat;
import cn.hutool.core.date.DatePattern;
-import top.charles7c.cnadmin.common.annotation.Query;
-import top.charles7c.cnadmin.common.enums.QueryTypeEnum;
+import top.charles7c.continew.starter.extension.crud.annotation.Query;
+import top.charles7c.continew.starter.extension.crud.enums.QueryTypeEnum;
/**
* 系统日志查询条件
diff --git a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/service/LogService.java b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/service/LogService.java
index ad6f5bc6..7526df8d 100644
--- a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/service/LogService.java
+++ b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/service/LogService.java
@@ -19,12 +19,12 @@ package top.charles7c.cnadmin.monitor.service;
import java.util.List;
import java.util.Map;
-import top.charles7c.cnadmin.common.model.query.PageQuery;
-import top.charles7c.cnadmin.common.model.resp.PageDataResp;
import top.charles7c.cnadmin.monitor.model.query.LoginLogQuery;
import top.charles7c.cnadmin.monitor.model.query.OperationLogQuery;
import top.charles7c.cnadmin.monitor.model.query.SystemLogQuery;
import top.charles7c.cnadmin.monitor.model.resp.*;
+import top.charles7c.continew.starter.extension.crud.model.query.PageQuery;
+import top.charles7c.continew.starter.extension.crud.model.resp.PageDataResp;
/**
* 系统日志业务接口
diff --git a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/service/impl/LogServiceImpl.java b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/service/impl/LogServiceImpl.java
index 86bbf4df..01a6e329 100644
--- a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/service/impl/LogServiceImpl.java
+++ b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/service/impl/LogServiceImpl.java
@@ -34,12 +34,6 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import top.charles7c.cnadmin.common.constant.SysConstants;
-import top.charles7c.cnadmin.common.model.query.PageQuery;
-import top.charles7c.cnadmin.common.model.resp.PageDataResp;
-import top.charles7c.cnadmin.common.service.CommonUserService;
-import top.charles7c.cnadmin.common.util.ReflectUtils;
-import top.charles7c.cnadmin.common.util.helper.QueryHelper;
-import top.charles7c.cnadmin.common.util.validate.CheckUtils;
import top.charles7c.cnadmin.monitor.mapper.LogMapper;
import top.charles7c.cnadmin.monitor.model.entity.LogDO;
import top.charles7c.cnadmin.monitor.model.query.LoginLogQuery;
@@ -48,6 +42,12 @@ import top.charles7c.cnadmin.monitor.model.query.SystemLogQuery;
import top.charles7c.cnadmin.monitor.model.resp.*;
import top.charles7c.cnadmin.monitor.service.LogService;
import top.charles7c.continew.starter.core.util.ExceptionUtils;
+import top.charles7c.continew.starter.extension.crud.base.CommonUserService;
+import top.charles7c.continew.starter.extension.crud.model.query.PageQuery;
+import top.charles7c.continew.starter.extension.crud.model.resp.PageDataResp;
+import top.charles7c.continew.starter.extension.crud.util.QueryHelper;
+import top.charles7c.continew.starter.extension.crud.util.ReflectUtils;
+import top.charles7c.continew.starter.extension.crud.util.validate.CheckUtils;
/**
* 系统日志业务实现
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/service/OnlineUserService.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/service/OnlineUserService.java
index 8697e159..453784f2 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/service/OnlineUserService.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/service/OnlineUserService.java
@@ -21,8 +21,8 @@ import java.util.List;
import top.charles7c.cnadmin.auth.model.query.OnlineUserQuery;
import top.charles7c.cnadmin.auth.model.resp.OnlineUserResp;
import top.charles7c.cnadmin.common.model.dto.LoginUser;
-import top.charles7c.cnadmin.common.model.query.PageQuery;
-import top.charles7c.cnadmin.common.model.resp.PageDataResp;
+import top.charles7c.continew.starter.extension.crud.model.query.PageQuery;
+import top.charles7c.continew.starter.extension.crud.model.resp.PageDataResp;
/**
* 在线用户业务接口
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/service/impl/LoginServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/service/impl/LoginServiceImpl.java
index 787280f3..7f5375d2 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/service/impl/LoginServiceImpl.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/service/impl/LoginServiceImpl.java
@@ -38,7 +38,6 @@ import top.charles7c.cnadmin.auth.model.resp.MetaResp;
import top.charles7c.cnadmin.auth.model.resp.RouteResp;
import top.charles7c.cnadmin.auth.service.LoginService;
import top.charles7c.cnadmin.auth.service.PermissionService;
-import top.charles7c.cnadmin.common.annotation.TreeField;
import top.charles7c.cnadmin.common.constant.RegexConstants;
import top.charles7c.cnadmin.common.constant.SysConstants;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
@@ -47,9 +46,7 @@ import top.charles7c.cnadmin.common.enums.MenuTypeEnum;
import top.charles7c.cnadmin.common.enums.MessageTypeEnum;
import top.charles7c.cnadmin.common.model.dto.LoginUser;
import top.charles7c.cnadmin.common.util.SecureUtils;
-import top.charles7c.cnadmin.common.util.TreeUtils;
import top.charles7c.cnadmin.common.util.helper.LoginHelper;
-import top.charles7c.cnadmin.common.util.validate.CheckUtils;
import top.charles7c.cnadmin.system.enums.MessageTemplateEnum;
import top.charles7c.cnadmin.system.model.entity.RoleDO;
import top.charles7c.cnadmin.system.model.entity.UserDO;
@@ -59,6 +56,9 @@ import top.charles7c.cnadmin.system.model.resp.DeptDetailResp;
import top.charles7c.cnadmin.system.model.resp.MenuResp;
import top.charles7c.cnadmin.system.service.*;
import top.charles7c.continew.starter.core.autoconfigure.project.ProjectProperties;
+import top.charles7c.continew.starter.extension.crud.annotation.TreeField;
+import top.charles7c.continew.starter.extension.crud.util.TreeUtils;
+import top.charles7c.continew.starter.extension.crud.util.validate.CheckUtils;
import me.zhyd.oauth.model.AuthUser;
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/service/impl/OnlineUserServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/service/impl/OnlineUserServiceImpl.java
index c88f5f6b..30d6f5eb 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/service/impl/OnlineUserServiceImpl.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/service/impl/OnlineUserServiceImpl.java
@@ -35,10 +35,10 @@ import top.charles7c.cnadmin.auth.model.query.OnlineUserQuery;
import top.charles7c.cnadmin.auth.model.resp.OnlineUserResp;
import top.charles7c.cnadmin.auth.service.OnlineUserService;
import top.charles7c.cnadmin.common.model.dto.LoginUser;
-import top.charles7c.cnadmin.common.model.query.PageQuery;
-import top.charles7c.cnadmin.common.model.resp.PageDataResp;
import top.charles7c.cnadmin.common.util.helper.LoginHelper;
import top.charles7c.continew.starter.core.constant.StringConstants;
+import top.charles7c.continew.starter.extension.crud.model.query.PageQuery;
+import top.charles7c.continew.starter.extension.crud.model.resp.PageDataResp;
/**
* 在线用户业务实现
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/enums/AnnouncementStatusEnum.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/enums/AnnouncementStatusEnum.java
index f88409b6..326a9f85 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/enums/AnnouncementStatusEnum.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/enums/AnnouncementStatusEnum.java
@@ -19,8 +19,8 @@ package top.charles7c.cnadmin.system.enums;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
-import top.charles7c.cnadmin.common.base.IBaseEnum;
import top.charles7c.cnadmin.common.constant.UIConstants;
+import top.charles7c.continew.starter.extension.crud.base.IBaseEnum;
/**
* 公告状态枚举
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/AnnouncementMapper.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/AnnouncementMapper.java
index 1e8dec56..53970657 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/AnnouncementMapper.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/AnnouncementMapper.java
@@ -18,9 +18,9 @@ package top.charles7c.cnadmin.system.mapper;
import java.util.List;
-import top.charles7c.cnadmin.common.base.BaseMapper;
import top.charles7c.cnadmin.system.model.entity.AnnouncementDO;
import top.charles7c.cnadmin.system.model.resp.DashboardAnnouncementResp;
+import top.charles7c.continew.starter.extension.crud.base.BaseMapper;
/**
* 公告 Mapper
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/DeptMapper.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/DeptMapper.java
index e93c0990..3739dd6a 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/DeptMapper.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/DeptMapper.java
@@ -16,8 +16,8 @@
package top.charles7c.cnadmin.system.mapper;
-import top.charles7c.cnadmin.common.base.BaseMapper;
import top.charles7c.cnadmin.system.model.entity.DeptDO;
+import top.charles7c.continew.starter.extension.crud.base.BaseMapper;
/**
* 部门 Mapper
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/DictItemMapper.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/DictItemMapper.java
index 51dc5952..64a20c08 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/DictItemMapper.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/DictItemMapper.java
@@ -20,9 +20,9 @@ import java.util.List;
import org.apache.ibatis.annotations.Param;
-import top.charles7c.cnadmin.common.base.BaseMapper;
import top.charles7c.cnadmin.common.model.resp.LabelValueResp;
import top.charles7c.cnadmin.system.model.entity.DictItemDO;
+import top.charles7c.continew.starter.extension.crud.base.BaseMapper;
/**
* 字典项 Mapper
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/DictMapper.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/DictMapper.java
index 144623c2..b057e8b9 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/DictMapper.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/DictMapper.java
@@ -16,8 +16,8 @@
package top.charles7c.cnadmin.system.mapper;
-import top.charles7c.cnadmin.common.base.BaseMapper;
import top.charles7c.cnadmin.system.model.entity.DictDO;
+import top.charles7c.continew.starter.extension.crud.base.BaseMapper;
/**
* 字典 Mapper
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/MenuMapper.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/MenuMapper.java
index af785aec..6c581756 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/MenuMapper.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/MenuMapper.java
@@ -21,8 +21,8 @@ import java.util.Set;
import org.apache.ibatis.annotations.Param;
-import top.charles7c.cnadmin.common.base.BaseMapper;
import top.charles7c.cnadmin.system.model.entity.MenuDO;
+import top.charles7c.continew.starter.extension.crud.base.BaseMapper;
/**
* 菜单 Mapper
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/MessageMapper.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/MessageMapper.java
index 170796b5..362448a5 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/MessageMapper.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/MessageMapper.java
@@ -22,9 +22,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
-import top.charles7c.cnadmin.common.base.BaseMapper;
import top.charles7c.cnadmin.system.model.entity.MessageDO;
import top.charles7c.cnadmin.system.model.resp.MessageResp;
+import top.charles7c.continew.starter.extension.crud.base.BaseMapper;
/**
* 消息 Mapper
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/MessageUserMapper.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/MessageUserMapper.java
index f20a7e20..9ac0b2d7 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/MessageUserMapper.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/MessageUserMapper.java
@@ -18,8 +18,8 @@ package top.charles7c.cnadmin.system.mapper;
import org.apache.ibatis.annotations.Param;
-import top.charles7c.cnadmin.common.base.BaseMapper;
import top.charles7c.cnadmin.system.model.entity.MessageUserDO;
+import top.charles7c.continew.starter.extension.crud.base.BaseMapper;
/**
* 消息和用户 Mapper
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/OptionMapper.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/OptionMapper.java
index e24d04da..7b303aaf 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/OptionMapper.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/OptionMapper.java
@@ -16,8 +16,8 @@
package top.charles7c.cnadmin.system.mapper;
-import top.charles7c.cnadmin.common.base.BaseMapper;
import top.charles7c.cnadmin.system.model.entity.OptionDO;
+import top.charles7c.continew.starter.extension.crud.base.BaseMapper;
/**
* 参数 Mapper
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/RoleDeptMapper.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/RoleDeptMapper.java
index 424a2832..3def3b4f 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/RoleDeptMapper.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/RoleDeptMapper.java
@@ -21,8 +21,8 @@ import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import top.charles7c.cnadmin.common.base.BaseMapper;
import top.charles7c.cnadmin.system.model.entity.RoleDeptDO;
+import top.charles7c.continew.starter.extension.crud.base.BaseMapper;
/**
* 角色和部门 Mapper
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/RoleMapper.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/RoleMapper.java
index 8429c0c3..8a6a76dc 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/RoleMapper.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/RoleMapper.java
@@ -16,8 +16,8 @@
package top.charles7c.cnadmin.system.mapper;
-import top.charles7c.cnadmin.common.base.BaseMapper;
import top.charles7c.cnadmin.system.model.entity.RoleDO;
+import top.charles7c.continew.starter.extension.crud.base.BaseMapper;
/**
* 角色 Mapper
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/RoleMenuMapper.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/RoleMenuMapper.java
index 29b90a08..38ad1b57 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/RoleMenuMapper.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/RoleMenuMapper.java
@@ -18,8 +18,8 @@ package top.charles7c.cnadmin.system.mapper;
import java.util.List;
-import top.charles7c.cnadmin.common.base.BaseMapper;
import top.charles7c.cnadmin.system.model.entity.RoleMenuDO;
+import top.charles7c.continew.starter.extension.crud.base.BaseMapper;
/**
* 角色和菜单 Mapper
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/UserRoleMapper.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/UserRoleMapper.java
index b83e80cc..beb0a334 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/UserRoleMapper.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/UserRoleMapper.java
@@ -21,8 +21,8 @@ import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import top.charles7c.cnadmin.common.base.BaseMapper;
import top.charles7c.cnadmin.system.model.entity.UserRoleDO;
+import top.charles7c.continew.starter.extension.crud.base.BaseMapper;
/**
* 用户和角色 Mapper
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/UserSocialMapper.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/UserSocialMapper.java
index 543a9374..43fd14a0 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/UserSocialMapper.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/mapper/UserSocialMapper.java
@@ -18,8 +18,8 @@ package top.charles7c.cnadmin.system.mapper;
import org.apache.ibatis.annotations.Param;
-import top.charles7c.cnadmin.common.base.BaseMapper;
import top.charles7c.cnadmin.system.model.entity.UserSocialDO;
+import top.charles7c.continew.starter.extension.crud.base.BaseMapper;
/**
* 用户社会化关联 Mapper
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/entity/AnnouncementDO.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/entity/AnnouncementDO.java
index 869a52a2..6957510b 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/entity/AnnouncementDO.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/entity/AnnouncementDO.java
@@ -23,7 +23,7 @@ import lombok.Data;
import com.baomidou.mybatisplus.annotation.TableName;
-import top.charles7c.cnadmin.common.base.BaseDO;
+import top.charles7c.continew.starter.extension.crud.base.BaseDO;
/**
* 公告实体
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/entity/DeptDO.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/entity/DeptDO.java
index 2d95aac1..9cb796d0 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/entity/DeptDO.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/entity/DeptDO.java
@@ -22,8 +22,8 @@ import lombok.Data;
import com.baomidou.mybatisplus.annotation.TableName;
-import top.charles7c.cnadmin.common.base.BaseDO;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
+import top.charles7c.continew.starter.extension.crud.base.BaseDO;
/**
* 部门实体
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/entity/DictDO.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/entity/DictDO.java
index 34d29214..abc325bb 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/entity/DictDO.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/entity/DictDO.java
@@ -22,7 +22,7 @@ import lombok.Data;
import com.baomidou.mybatisplus.annotation.TableName;
-import top.charles7c.cnadmin.common.base.BaseDO;
+import top.charles7c.continew.starter.extension.crud.base.BaseDO;
/**
* 字典实体
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/entity/DictItemDO.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/entity/DictItemDO.java
index 553c8007..b78a7496 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/entity/DictItemDO.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/entity/DictItemDO.java
@@ -22,7 +22,7 @@ import lombok.Data;
import com.baomidou.mybatisplus.annotation.TableName;
-import top.charles7c.cnadmin.common.base.BaseDO;
+import top.charles7c.continew.starter.extension.crud.base.BaseDO;
/**
* 字典项实体
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/entity/MenuDO.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/entity/MenuDO.java
index 296c6dd2..bf2c6538 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/entity/MenuDO.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/entity/MenuDO.java
@@ -22,9 +22,9 @@ import lombok.Data;
import com.baomidou.mybatisplus.annotation.TableName;
-import top.charles7c.cnadmin.common.base.BaseDO;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
import top.charles7c.cnadmin.common.enums.MenuTypeEnum;
+import top.charles7c.continew.starter.extension.crud.base.BaseDO;
/**
* 菜单实体
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/entity/RoleDO.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/entity/RoleDO.java
index 759254d5..7c2ea94d 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/entity/RoleDO.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/entity/RoleDO.java
@@ -22,9 +22,9 @@ import lombok.Data;
import com.baomidou.mybatisplus.annotation.TableName;
-import top.charles7c.cnadmin.common.base.BaseDO;
import top.charles7c.cnadmin.common.enums.DataScopeEnum;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
+import top.charles7c.continew.starter.extension.crud.base.BaseDO;
/**
* 角色实体
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/entity/UserDO.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/entity/UserDO.java
index aef28d0c..b092c054 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/entity/UserDO.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/entity/UserDO.java
@@ -23,9 +23,9 @@ import lombok.Data;
import com.baomidou.mybatisplus.annotation.TableName;
-import top.charles7c.cnadmin.common.base.BaseDO;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
import top.charles7c.cnadmin.common.enums.GenderEnum;
+import top.charles7c.continew.starter.extension.crud.base.BaseDO;
/**
* 用户实体
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/AnnouncementQuery.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/AnnouncementQuery.java
index 703e83b0..e78df46f 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/AnnouncementQuery.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/AnnouncementQuery.java
@@ -23,8 +23,8 @@ import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
-import top.charles7c.cnadmin.common.annotation.Query;
-import top.charles7c.cnadmin.common.enums.QueryTypeEnum;
+import top.charles7c.continew.starter.extension.crud.annotation.Query;
+import top.charles7c.continew.starter.extension.crud.enums.QueryTypeEnum;
/**
* 公告查询条件
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/DeptQuery.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/DeptQuery.java
index 4f8a0e65..e15c8190 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/DeptQuery.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/DeptQuery.java
@@ -23,8 +23,8 @@ import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
-import top.charles7c.cnadmin.common.annotation.Query;
-import top.charles7c.cnadmin.common.enums.QueryTypeEnum;
+import top.charles7c.continew.starter.extension.crud.annotation.Query;
+import top.charles7c.continew.starter.extension.crud.enums.QueryTypeEnum;
/**
* 部门查询条件
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/DictItemQuery.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/DictItemQuery.java
index d6461a33..12f753c9 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/DictItemQuery.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/DictItemQuery.java
@@ -23,7 +23,7 @@ import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
-import top.charles7c.cnadmin.common.annotation.Query;
+import top.charles7c.continew.starter.extension.crud.annotation.Query;
/**
* 字典项查询条件
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/DictQuery.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/DictQuery.java
index cdeb9dfe..1fb36682 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/DictQuery.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/DictQuery.java
@@ -23,7 +23,7 @@ import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
-import top.charles7c.cnadmin.common.annotation.Query;
+import top.charles7c.continew.starter.extension.crud.annotation.Query;
/**
* 字典查询条件
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/MenuQuery.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/MenuQuery.java
index a7fbed5a..1248bc0c 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/MenuQuery.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/MenuQuery.java
@@ -23,8 +23,8 @@ import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
-import top.charles7c.cnadmin.common.annotation.Query;
-import top.charles7c.cnadmin.common.enums.QueryTypeEnum;
+import top.charles7c.continew.starter.extension.crud.annotation.Query;
+import top.charles7c.continew.starter.extension.crud.enums.QueryTypeEnum;
/**
* 菜单查询条件
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/MessageQuery.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/MessageQuery.java
index aeec7d1f..0a4638bf 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/MessageQuery.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/MessageQuery.java
@@ -22,8 +22,8 @@ import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
-import top.charles7c.cnadmin.common.annotation.Query;
-import top.charles7c.cnadmin.common.enums.QueryTypeEnum;
+import top.charles7c.continew.starter.extension.crud.annotation.Query;
+import top.charles7c.continew.starter.extension.crud.enums.QueryTypeEnum;
/**
* 消息查询条件
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/OptionQuery.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/OptionQuery.java
index daa131b5..2befbbcf 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/OptionQuery.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/OptionQuery.java
@@ -26,8 +26,8 @@ import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
-import top.charles7c.cnadmin.common.annotation.Query;
-import top.charles7c.cnadmin.common.enums.QueryTypeEnum;
+import top.charles7c.continew.starter.extension.crud.annotation.Query;
+import top.charles7c.continew.starter.extension.crud.enums.QueryTypeEnum;
/**
* 参数查询条件
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/RoleQuery.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/RoleQuery.java
index 5cd2b7dd..a1c614e1 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/RoleQuery.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/RoleQuery.java
@@ -23,7 +23,7 @@ import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
-import top.charles7c.cnadmin.common.annotation.Query;
+import top.charles7c.continew.starter.extension.crud.annotation.Query;
/**
* 角色查询条件
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/UserQuery.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/UserQuery.java
index 39647288..9f3ba563 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/UserQuery.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/query/UserQuery.java
@@ -29,8 +29,8 @@ import org.springframework.format.annotation.DateTimeFormat;
import cn.hutool.core.date.DatePattern;
-import top.charles7c.cnadmin.common.annotation.Query;
-import top.charles7c.cnadmin.common.enums.QueryTypeEnum;
+import top.charles7c.continew.starter.extension.crud.annotation.Query;
+import top.charles7c.continew.starter.extension.crud.enums.QueryTypeEnum;
/**
* 用户查询条件
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/AnnouncementReq.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/AnnouncementReq.java
index 49e92275..23b5230c 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/AnnouncementReq.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/AnnouncementReq.java
@@ -27,7 +27,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import org.hibernate.validator.constraints.Length;
-import top.charles7c.cnadmin.common.base.BaseReq;
+import top.charles7c.continew.starter.extension.crud.base.BaseReq;
/**
* 创建或修改公告信息
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/DeptReq.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/DeptReq.java
index 731cf04c..e330602a 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/DeptReq.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/DeptReq.java
@@ -29,10 +29,10 @@ import io.swagger.v3.oas.annotations.media.Schema;
import org.hibernate.validator.constraints.Length;
-import top.charles7c.cnadmin.common.base.BaseReq;
-import top.charles7c.cnadmin.common.base.ValidateGroup;
import top.charles7c.cnadmin.common.constant.RegexConstants;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
+import top.charles7c.continew.starter.extension.crud.base.BaseReq;
+import top.charles7c.continew.starter.extension.crud.base.ValidateGroup;
/**
* 创建或修改部门信息
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/DictItemReq.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/DictItemReq.java
index 2ef8f794..52667594 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/DictItemReq.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/DictItemReq.java
@@ -26,7 +26,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import org.hibernate.validator.constraints.Length;
-import top.charles7c.cnadmin.common.base.BaseReq;
+import top.charles7c.continew.starter.extension.crud.base.BaseReq;
/**
* 创建或修改字典项信息
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/DictReq.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/DictReq.java
index beab2729..853a7ad1 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/DictReq.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/DictReq.java
@@ -26,8 +26,8 @@ import io.swagger.v3.oas.annotations.media.Schema;
import org.hibernate.validator.constraints.Length;
-import top.charles7c.cnadmin.common.base.BaseReq;
import top.charles7c.cnadmin.common.constant.RegexConstants;
+import top.charles7c.continew.starter.extension.crud.base.BaseReq;
/**
* 创建或修改字典信息
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/MenuReq.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/MenuReq.java
index 3598983f..1781ef96 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/MenuReq.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/MenuReq.java
@@ -28,9 +28,9 @@ import io.swagger.v3.oas.annotations.media.Schema;
import org.hibernate.validator.constraints.Length;
-import top.charles7c.cnadmin.common.base.BaseReq;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
import top.charles7c.cnadmin.common.enums.MenuTypeEnum;
+import top.charles7c.continew.starter.extension.crud.base.BaseReq;
/**
* 创建或修改菜单信息
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/MessageReq.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/MessageReq.java
index f4cdb5c3..0ff4e3e0 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/MessageReq.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/MessageReq.java
@@ -27,8 +27,8 @@ import io.swagger.v3.oas.annotations.media.Schema;
import org.hibernate.validator.constraints.Length;
-import top.charles7c.cnadmin.common.base.BaseReq;
import top.charles7c.cnadmin.common.enums.MessageTypeEnum;
+import top.charles7c.continew.starter.extension.crud.base.BaseReq;
/**
* 创建消息信息
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/OptionReq.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/OptionReq.java
index 259c52f9..c3e8f5a5 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/OptionReq.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/OptionReq.java
@@ -26,7 +26,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import org.hibernate.validator.constraints.Length;
-import top.charles7c.cnadmin.common.base.BaseReq;
+import top.charles7c.continew.starter.extension.crud.base.BaseReq;
/**
* 修改参数信息
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/RoleReq.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/RoleReq.java
index 12a44016..cd51b392 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/RoleReq.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/RoleReq.java
@@ -30,10 +30,10 @@ import io.swagger.v3.oas.annotations.media.Schema;
import org.hibernate.validator.constraints.Length;
-import top.charles7c.cnadmin.common.base.BaseReq;
import top.charles7c.cnadmin.common.constant.RegexConstants;
import top.charles7c.cnadmin.common.enums.DataScopeEnum;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
+import top.charles7c.continew.starter.extension.crud.base.BaseReq;
/**
* 创建或修改角色信息
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/UserReq.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/UserReq.java
index bc779e94..e6337902 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/UserReq.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/req/UserReq.java
@@ -30,10 +30,10 @@ import io.swagger.v3.oas.annotations.media.Schema;
import org.hibernate.validator.constraints.Length;
-import top.charles7c.cnadmin.common.base.BaseReq;
import top.charles7c.cnadmin.common.constant.RegexConstants;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
import top.charles7c.cnadmin.common.enums.GenderEnum;
+import top.charles7c.continew.starter.extension.crud.base.BaseReq;
/**
* 创建或修改用户信息
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/AnnouncementDetailResp.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/AnnouncementDetailResp.java
index 96e0917e..c0af3ffa 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/AnnouncementDetailResp.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/AnnouncementDetailResp.java
@@ -26,7 +26,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
-import top.charles7c.cnadmin.common.base.BaseDetailResp;
+import top.charles7c.continew.starter.extension.crud.base.BaseDetailResp;
/**
* 公告详情信息
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/AnnouncementResp.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/AnnouncementResp.java
index 4f5be7ad..100dba4a 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/AnnouncementResp.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/AnnouncementResp.java
@@ -23,8 +23,8 @@ import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
-import top.charles7c.cnadmin.common.base.BaseResp;
import top.charles7c.cnadmin.system.enums.AnnouncementStatusEnum;
+import top.charles7c.continew.starter.extension.crud.base.BaseResp;
/**
* 公告信息
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/DeptDetailResp.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/DeptDetailResp.java
index d4639a69..de4ec4d9 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/DeptDetailResp.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/DeptDetailResp.java
@@ -26,9 +26,9 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
-import top.charles7c.cnadmin.common.base.BaseDetailResp;
import top.charles7c.cnadmin.common.config.easyexcel.ExcelBaseEnumConverter;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
+import top.charles7c.continew.starter.extension.crud.base.BaseDetailResp;
/**
* 部门详情信息
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/DeptResp.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/DeptResp.java
index 673ea47e..2e440d0b 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/DeptResp.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/DeptResp.java
@@ -22,9 +22,9 @@ import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
-import top.charles7c.cnadmin.common.annotation.TreeField;
-import top.charles7c.cnadmin.common.base.BaseResp;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
+import top.charles7c.continew.starter.extension.crud.annotation.TreeField;
+import top.charles7c.continew.starter.extension.crud.base.BaseResp;
/**
* 部门信息
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/DictDetailResp.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/DictDetailResp.java
index b375ffd1..7b6e5a1b 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/DictDetailResp.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/DictDetailResp.java
@@ -22,7 +22,7 @@ import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
-import top.charles7c.cnadmin.common.base.BaseDetailResp;
+import top.charles7c.continew.starter.extension.crud.base.BaseDetailResp;
/**
* 字典详情信息
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/DictItemDetailResp.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/DictItemDetailResp.java
index 578c9fcd..0d1c64c8 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/DictItemDetailResp.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/DictItemDetailResp.java
@@ -25,7 +25,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
-import top.charles7c.cnadmin.common.base.BaseDetailResp;
+import top.charles7c.continew.starter.extension.crud.base.BaseDetailResp;
/**
* 字典项详情信息
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/DictItemResp.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/DictItemResp.java
index 8ee8328b..8bd9e6c2 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/DictItemResp.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/DictItemResp.java
@@ -22,7 +22,7 @@ import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
-import top.charles7c.cnadmin.common.base.BaseResp;
+import top.charles7c.continew.starter.extension.crud.base.BaseResp;
/**
* 字典项信息
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/DictResp.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/DictResp.java
index 0fa9480d..f43f9a17 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/DictResp.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/DictResp.java
@@ -22,7 +22,7 @@ import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
-import top.charles7c.cnadmin.common.base.BaseResp;
+import top.charles7c.continew.starter.extension.crud.base.BaseResp;
/**
* 字典信息
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/MenuResp.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/MenuResp.java
index ad81cd95..18340807 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/MenuResp.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/MenuResp.java
@@ -25,11 +25,11 @@ import io.swagger.v3.oas.annotations.media.Schema;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
-import top.charles7c.cnadmin.common.annotation.TreeField;
-import top.charles7c.cnadmin.common.base.BaseResp;
import top.charles7c.cnadmin.common.config.easyexcel.ExcelBaseEnumConverter;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
import top.charles7c.cnadmin.common.enums.MenuTypeEnum;
+import top.charles7c.continew.starter.extension.crud.annotation.TreeField;
+import top.charles7c.continew.starter.extension.crud.base.BaseResp;
/**
* 菜单信息
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/RoleDetailResp.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/RoleDetailResp.java
index c06a0e70..6679b8f7 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/RoleDetailResp.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/RoleDetailResp.java
@@ -26,10 +26,10 @@ import io.swagger.v3.oas.annotations.media.Schema;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
-import top.charles7c.cnadmin.common.base.BaseDetailResp;
import top.charles7c.cnadmin.common.config.easyexcel.ExcelBaseEnumConverter;
import top.charles7c.cnadmin.common.enums.DataScopeEnum;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
+import top.charles7c.continew.starter.extension.crud.base.BaseDetailResp;
/**
* 角色详情信息
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/RoleResp.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/RoleResp.java
index eaee69b5..80ef71bf 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/RoleResp.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/RoleResp.java
@@ -22,9 +22,9 @@ import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
-import top.charles7c.cnadmin.common.base.BaseResp;
import top.charles7c.cnadmin.common.enums.DataScopeEnum;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
+import top.charles7c.continew.starter.extension.crud.base.BaseResp;
/**
* 角色信息
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/UserDetailResp.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/UserDetailResp.java
index de8d2b37..c6a4fd23 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/UserDetailResp.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/UserDetailResp.java
@@ -28,11 +28,11 @@ import io.swagger.v3.oas.annotations.media.Schema;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
-import top.charles7c.cnadmin.common.base.BaseDetailResp;
import top.charles7c.cnadmin.common.config.easyexcel.ExcelBaseEnumConverter;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
import top.charles7c.cnadmin.common.enums.GenderEnum;
import top.charles7c.cnadmin.common.util.helper.LoginHelper;
+import top.charles7c.continew.starter.extension.crud.base.BaseDetailResp;
/**
* 用户详情信息
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/UserResp.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/UserResp.java
index 76d95552..734560d4 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/UserResp.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/model/resp/UserResp.java
@@ -25,10 +25,10 @@ import io.swagger.v3.oas.annotations.media.Schema;
import cn.hutool.core.util.DesensitizedUtil;
-import top.charles7c.cnadmin.common.base.BaseResp;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
import top.charles7c.cnadmin.common.enums.GenderEnum;
import top.charles7c.cnadmin.common.util.helper.LoginHelper;
+import top.charles7c.continew.starter.extension.crud.base.BaseResp;
/**
* 用户信息
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/AnnouncementService.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/AnnouncementService.java
index 9188638b..2e0c5969 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/AnnouncementService.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/AnnouncementService.java
@@ -18,12 +18,12 @@ package top.charles7c.cnadmin.system.service;
import java.util.List;
-import top.charles7c.cnadmin.common.base.BaseService;
import top.charles7c.cnadmin.system.model.query.AnnouncementQuery;
import top.charles7c.cnadmin.system.model.req.AnnouncementReq;
import top.charles7c.cnadmin.system.model.resp.AnnouncementDetailResp;
import top.charles7c.cnadmin.system.model.resp.AnnouncementResp;
import top.charles7c.cnadmin.system.model.resp.DashboardAnnouncementResp;
+import top.charles7c.continew.starter.extension.crud.base.BaseService;
/**
* 公告业务接口
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/DeptService.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/DeptService.java
index 7d34dfde..6e0825f6 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/DeptService.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/DeptService.java
@@ -16,11 +16,11 @@
package top.charles7c.cnadmin.system.service;
-import top.charles7c.cnadmin.common.base.BaseService;
import top.charles7c.cnadmin.system.model.query.DeptQuery;
import top.charles7c.cnadmin.system.model.req.DeptReq;
import top.charles7c.cnadmin.system.model.resp.DeptDetailResp;
import top.charles7c.cnadmin.system.model.resp.DeptResp;
+import top.charles7c.continew.starter.extension.crud.base.BaseService;
/**
* 部门业务接口
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/DictItemService.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/DictItemService.java
index bedd2f88..8810b542 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/DictItemService.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/DictItemService.java
@@ -18,12 +18,12 @@ package top.charles7c.cnadmin.system.service;
import java.util.List;
-import top.charles7c.cnadmin.common.base.BaseService;
import top.charles7c.cnadmin.common.model.resp.LabelValueResp;
import top.charles7c.cnadmin.system.model.query.DictItemQuery;
import top.charles7c.cnadmin.system.model.req.DictItemReq;
import top.charles7c.cnadmin.system.model.resp.DictItemDetailResp;
import top.charles7c.cnadmin.system.model.resp.DictItemResp;
+import top.charles7c.continew.starter.extension.crud.base.BaseService;
/**
* 字典项业务接口
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/DictService.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/DictService.java
index d9a6dbef..6631e55c 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/DictService.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/DictService.java
@@ -16,11 +16,11 @@
package top.charles7c.cnadmin.system.service;
-import top.charles7c.cnadmin.common.base.BaseService;
import top.charles7c.cnadmin.system.model.query.DictQuery;
import top.charles7c.cnadmin.system.model.req.DictReq;
import top.charles7c.cnadmin.system.model.resp.DictDetailResp;
import top.charles7c.cnadmin.system.model.resp.DictResp;
+import top.charles7c.continew.starter.extension.crud.base.BaseService;
/**
* 字典业务接口
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/MenuService.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/MenuService.java
index 68fba287..f086c3a5 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/MenuService.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/MenuService.java
@@ -19,10 +19,10 @@ package top.charles7c.cnadmin.system.service;
import java.util.List;
import java.util.Set;
-import top.charles7c.cnadmin.common.base.BaseService;
import top.charles7c.cnadmin.system.model.query.MenuQuery;
import top.charles7c.cnadmin.system.model.req.MenuReq;
import top.charles7c.cnadmin.system.model.resp.MenuResp;
+import top.charles7c.continew.starter.extension.crud.base.BaseService;
/**
* 菜单业务接口
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/MessageService.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/MessageService.java
index c6cc34d3..c836696f 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/MessageService.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/MessageService.java
@@ -18,11 +18,11 @@ package top.charles7c.cnadmin.system.service;
import java.util.List;
-import top.charles7c.cnadmin.common.model.query.PageQuery;
-import top.charles7c.cnadmin.common.model.resp.PageDataResp;
import top.charles7c.cnadmin.system.model.query.MessageQuery;
import top.charles7c.cnadmin.system.model.req.MessageReq;
import top.charles7c.cnadmin.system.model.resp.MessageResp;
+import top.charles7c.continew.starter.extension.crud.model.query.PageQuery;
+import top.charles7c.continew.starter.extension.crud.model.resp.PageDataResp;
/**
* 消息业务接口
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/RoleService.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/RoleService.java
index c9defbfa..b05fe693 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/RoleService.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/RoleService.java
@@ -19,7 +19,6 @@ package top.charles7c.cnadmin.system.service;
import java.util.List;
import java.util.Set;
-import top.charles7c.cnadmin.common.base.BaseService;
import top.charles7c.cnadmin.common.model.dto.RoleDTO;
import top.charles7c.cnadmin.common.model.resp.LabelValueResp;
import top.charles7c.cnadmin.system.model.entity.RoleDO;
@@ -27,6 +26,7 @@ import top.charles7c.cnadmin.system.model.query.RoleQuery;
import top.charles7c.cnadmin.system.model.req.RoleReq;
import top.charles7c.cnadmin.system.model.resp.RoleDetailResp;
import top.charles7c.cnadmin.system.model.resp.RoleResp;
+import top.charles7c.continew.starter.extension.crud.base.BaseService;
/**
* 角色业务接口
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/UserService.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/UserService.java
index 11de51e5..82742155 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/UserService.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/UserService.java
@@ -20,7 +20,6 @@ import java.util.List;
import org.springframework.web.multipart.MultipartFile;
-import top.charles7c.cnadmin.common.base.BaseService;
import top.charles7c.cnadmin.system.model.entity.UserDO;
import top.charles7c.cnadmin.system.model.query.UserQuery;
import top.charles7c.cnadmin.system.model.req.UserBasicInfoUpdateReq;
@@ -28,6 +27,7 @@ import top.charles7c.cnadmin.system.model.req.UserReq;
import top.charles7c.cnadmin.system.model.req.UserRoleUpdateReq;
import top.charles7c.cnadmin.system.model.resp.UserDetailResp;
import top.charles7c.cnadmin.system.model.resp.UserResp;
+import top.charles7c.continew.starter.extension.crud.base.BaseService;
/**
* 用户业务接口
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/AnnouncementServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/AnnouncementServiceImpl.java
index 05301393..9a189fc0 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/AnnouncementServiceImpl.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/AnnouncementServiceImpl.java
@@ -22,7 +22,6 @@ import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
-import top.charles7c.cnadmin.common.base.BaseServiceImpl;
import top.charles7c.cnadmin.system.mapper.AnnouncementMapper;
import top.charles7c.cnadmin.system.model.entity.AnnouncementDO;
import top.charles7c.cnadmin.system.model.query.AnnouncementQuery;
@@ -31,6 +30,7 @@ import top.charles7c.cnadmin.system.model.resp.AnnouncementDetailResp;
import top.charles7c.cnadmin.system.model.resp.AnnouncementResp;
import top.charles7c.cnadmin.system.model.resp.DashboardAnnouncementResp;
import top.charles7c.cnadmin.system.service.AnnouncementService;
+import top.charles7c.continew.starter.extension.crud.base.BaseServiceImpl;
/**
* 公告业务实现
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DeptServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DeptServiceImpl.java
index a27b7abc..7bb86acd 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DeptServiceImpl.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DeptServiceImpl.java
@@ -31,10 +31,8 @@ import org.springframework.transaction.annotation.Transactional;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
-import top.charles7c.cnadmin.common.base.BaseServiceImpl;
import top.charles7c.cnadmin.common.constant.SysConstants;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
-import top.charles7c.cnadmin.common.util.validate.CheckUtils;
import top.charles7c.cnadmin.system.mapper.DeptMapper;
import top.charles7c.cnadmin.system.model.entity.DeptDO;
import top.charles7c.cnadmin.system.model.query.DeptQuery;
@@ -45,6 +43,8 @@ import top.charles7c.cnadmin.system.service.DeptService;
import top.charles7c.cnadmin.system.service.RoleDeptService;
import top.charles7c.cnadmin.system.service.UserService;
import top.charles7c.continew.starter.core.util.ExceptionUtils;
+import top.charles7c.continew.starter.extension.crud.base.BaseServiceImpl;
+import top.charles7c.continew.starter.extension.crud.util.validate.CheckUtils;
/**
* 部门业务实现
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DictItemServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DictItemServiceImpl.java
index 12f22fd8..0c311f4f 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DictItemServiceImpl.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DictItemServiceImpl.java
@@ -25,11 +25,8 @@ import org.springframework.cache.annotation.CacheEvict;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import top.charles7c.cnadmin.common.base.BaseServiceImpl;
import top.charles7c.cnadmin.common.constant.CacheConstants;
-import top.charles7c.cnadmin.common.model.query.SortQuery;
import top.charles7c.cnadmin.common.model.resp.LabelValueResp;
-import top.charles7c.cnadmin.common.util.validate.CheckUtils;
import top.charles7c.cnadmin.system.mapper.DictItemMapper;
import top.charles7c.cnadmin.system.model.entity.DictItemDO;
import top.charles7c.cnadmin.system.model.query.DictItemQuery;
@@ -37,6 +34,9 @@ import top.charles7c.cnadmin.system.model.req.DictItemReq;
import top.charles7c.cnadmin.system.model.resp.DictItemDetailResp;
import top.charles7c.cnadmin.system.model.resp.DictItemResp;
import top.charles7c.cnadmin.system.service.DictItemService;
+import top.charles7c.continew.starter.extension.crud.base.BaseServiceImpl;
+import top.charles7c.continew.starter.extension.crud.model.query.SortQuery;
+import top.charles7c.continew.starter.extension.crud.util.validate.CheckUtils;
/**
* 字典项业务实现
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DictServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DictServiceImpl.java
index 6e0923fd..2f8db0e2 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DictServiceImpl.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DictServiceImpl.java
@@ -27,9 +27,6 @@ import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import top.charles7c.cnadmin.common.base.BaseServiceImpl;
-import top.charles7c.cnadmin.common.model.query.SortQuery;
-import top.charles7c.cnadmin.common.util.validate.CheckUtils;
import top.charles7c.cnadmin.system.mapper.DictMapper;
import top.charles7c.cnadmin.system.model.entity.DictDO;
import top.charles7c.cnadmin.system.model.query.DictQuery;
@@ -37,6 +34,9 @@ import top.charles7c.cnadmin.system.model.req.DictReq;
import top.charles7c.cnadmin.system.model.resp.*;
import top.charles7c.cnadmin.system.service.DictItemService;
import top.charles7c.cnadmin.system.service.DictService;
+import top.charles7c.continew.starter.extension.crud.base.BaseServiceImpl;
+import top.charles7c.continew.starter.extension.crud.model.query.SortQuery;
+import top.charles7c.continew.starter.extension.crud.util.validate.CheckUtils;
import top.charles7c.continew.starter.file.excel.util.ExcelUtils;
/**
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/MenuServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/MenuServiceImpl.java
index e4c8b56d..c9434d62 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/MenuServiceImpl.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/MenuServiceImpl.java
@@ -28,16 +28,16 @@ import org.springframework.transaction.annotation.Transactional;
import cn.hutool.core.bean.BeanUtil;
-import top.charles7c.cnadmin.common.base.BaseServiceImpl;
import top.charles7c.cnadmin.common.constant.CacheConstants;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
-import top.charles7c.cnadmin.common.util.validate.CheckUtils;
import top.charles7c.cnadmin.system.mapper.MenuMapper;
import top.charles7c.cnadmin.system.model.entity.MenuDO;
import top.charles7c.cnadmin.system.model.query.MenuQuery;
import top.charles7c.cnadmin.system.model.req.MenuReq;
import top.charles7c.cnadmin.system.model.resp.MenuResp;
import top.charles7c.cnadmin.system.service.MenuService;
+import top.charles7c.continew.starter.extension.crud.base.BaseServiceImpl;
+import top.charles7c.continew.starter.extension.crud.util.validate.CheckUtils;
/**
* 菜单业务实现
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/MessageServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/MessageServiceImpl.java
index 37b82d17..9f6119b1 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/MessageServiceImpl.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/MessageServiceImpl.java
@@ -30,11 +30,6 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.extra.spring.SpringUtil;
-import top.charles7c.cnadmin.common.model.query.PageQuery;
-import top.charles7c.cnadmin.common.model.resp.PageDataResp;
-import top.charles7c.cnadmin.common.service.CommonUserService;
-import top.charles7c.cnadmin.common.util.helper.QueryHelper;
-import top.charles7c.cnadmin.common.util.validate.CheckUtils;
import top.charles7c.cnadmin.system.mapper.MessageMapper;
import top.charles7c.cnadmin.system.model.entity.MessageDO;
import top.charles7c.cnadmin.system.model.query.MessageQuery;
@@ -43,6 +38,11 @@ import top.charles7c.cnadmin.system.model.resp.MessageResp;
import top.charles7c.cnadmin.system.service.MessageService;
import top.charles7c.cnadmin.system.service.MessageUserService;
import top.charles7c.continew.starter.core.util.ExceptionUtils;
+import top.charles7c.continew.starter.extension.crud.base.CommonUserService;
+import top.charles7c.continew.starter.extension.crud.model.query.PageQuery;
+import top.charles7c.continew.starter.extension.crud.model.resp.PageDataResp;
+import top.charles7c.continew.starter.extension.crud.util.QueryHelper;
+import top.charles7c.continew.starter.extension.crud.util.validate.CheckUtils;
/**
* 消息业务实现
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/MessageUserServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/MessageUserServiceImpl.java
index ee023adb..01c394c8 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/MessageUserServiceImpl.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/MessageUserServiceImpl.java
@@ -28,12 +28,12 @@ import org.springframework.stereotype.Service;
import cn.hutool.core.collection.CollUtil;
import top.charles7c.cnadmin.common.enums.MessageTypeEnum;
-import top.charles7c.cnadmin.common.util.validate.CheckUtils;
import top.charles7c.cnadmin.system.mapper.MessageUserMapper;
import top.charles7c.cnadmin.system.model.entity.MessageUserDO;
import top.charles7c.cnadmin.system.model.resp.MessageTypeUnreadResp;
import top.charles7c.cnadmin.system.model.resp.MessageUnreadResp;
import top.charles7c.cnadmin.system.service.MessageUserService;
+import top.charles7c.continew.starter.extension.crud.util.validate.CheckUtils;
/**
* 消息和用户关联业务实现
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/OptionServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/OptionServiceImpl.java
index c454ce08..b8d68238 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/OptionServiceImpl.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/OptionServiceImpl.java
@@ -27,7 +27,6 @@ import org.springframework.stereotype.Service;
import cn.hutool.core.bean.BeanUtil;
import top.charles7c.cnadmin.common.constant.CacheConstants;
-import top.charles7c.cnadmin.common.util.helper.QueryHelper;
import top.charles7c.cnadmin.system.mapper.OptionMapper;
import top.charles7c.cnadmin.system.model.entity.OptionDO;
import top.charles7c.cnadmin.system.model.query.OptionQuery;
@@ -35,6 +34,7 @@ import top.charles7c.cnadmin.system.model.req.OptionReq;
import top.charles7c.cnadmin.system.model.req.OptionResetValueReq;
import top.charles7c.cnadmin.system.model.resp.OptionResp;
import top.charles7c.cnadmin.system.service.OptionService;
+import top.charles7c.continew.starter.extension.crud.util.QueryHelper;
/**
* 参数业务实现
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/RoleServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/RoleServiceImpl.java
index 498f7338..a7684d22 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/RoleServiceImpl.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/RoleServiceImpl.java
@@ -30,14 +30,12 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import top.charles7c.cnadmin.auth.service.OnlineUserService;
-import top.charles7c.cnadmin.common.base.BaseServiceImpl;
import top.charles7c.cnadmin.common.constant.CacheConstants;
import top.charles7c.cnadmin.common.constant.SysConstants;
import top.charles7c.cnadmin.common.enums.DataScopeEnum;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
import top.charles7c.cnadmin.common.model.dto.RoleDTO;
import top.charles7c.cnadmin.common.model.resp.LabelValueResp;
-import top.charles7c.cnadmin.common.util.validate.CheckUtils;
import top.charles7c.cnadmin.system.mapper.RoleMapper;
import top.charles7c.cnadmin.system.model.entity.RoleDO;
import top.charles7c.cnadmin.system.model.query.RoleQuery;
@@ -46,6 +44,8 @@ import top.charles7c.cnadmin.system.model.resp.MenuResp;
import top.charles7c.cnadmin.system.model.resp.RoleDetailResp;
import top.charles7c.cnadmin.system.model.resp.RoleResp;
import top.charles7c.cnadmin.system.service.*;
+import top.charles7c.continew.starter.extension.crud.base.BaseServiceImpl;
+import top.charles7c.continew.starter.extension.crud.util.validate.CheckUtils;
/**
* 角色业务实现
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/UserServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/UserServiceImpl.java
index c75f7e62..c6280278 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/UserServiceImpl.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/UserServiceImpl.java
@@ -36,17 +36,14 @@ import cn.hutool.core.io.file.FileNameUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
-import top.charles7c.cnadmin.common.base.BaseServiceImpl;
import top.charles7c.cnadmin.common.config.properties.LocalStorageProperties;
import top.charles7c.cnadmin.common.constant.CacheConstants;
import top.charles7c.cnadmin.common.constant.FileConstants;
import top.charles7c.cnadmin.common.constant.SysConstants;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
-import top.charles7c.cnadmin.common.service.CommonUserService;
import top.charles7c.cnadmin.common.util.FileUtils;
import top.charles7c.cnadmin.common.util.SecureUtils;
import top.charles7c.cnadmin.common.util.helper.LoginHelper;
-import top.charles7c.cnadmin.common.util.validate.CheckUtils;
import top.charles7c.cnadmin.system.mapper.UserMapper;
import top.charles7c.cnadmin.system.model.entity.UserDO;
import top.charles7c.cnadmin.system.model.query.UserQuery;
@@ -61,6 +58,9 @@ import top.charles7c.cnadmin.system.service.UserRoleService;
import top.charles7c.cnadmin.system.service.UserService;
import top.charles7c.continew.starter.core.constant.StringConstants;
import top.charles7c.continew.starter.core.util.ExceptionUtils;
+import top.charles7c.continew.starter.extension.crud.base.BaseServiceImpl;
+import top.charles7c.continew.starter.extension.crud.base.CommonUserService;
+import top.charles7c.continew.starter.extension.crud.util.validate.CheckUtils;
/**
* 用户业务实现
diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/UserSocialServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/UserSocialServiceImpl.java
index 6e097c1d..7698774c 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/UserSocialServiceImpl.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/UserSocialServiceImpl.java
@@ -29,10 +29,10 @@ import org.springframework.transaction.annotation.Transactional;
import cn.hutool.json.JSONUtil;
import top.charles7c.cnadmin.common.enums.SocialSourceEnum;
-import top.charles7c.cnadmin.common.util.validate.CheckUtils;
import top.charles7c.cnadmin.system.mapper.UserSocialMapper;
import top.charles7c.cnadmin.system.model.entity.UserSocialDO;
import top.charles7c.cnadmin.system.service.UserSocialService;
+import top.charles7c.continew.starter.extension.crud.util.validate.CheckUtils;
import me.zhyd.oauth.model.AuthUser;
diff --git a/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/enums/FormTypeEnum.java b/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/enums/FormTypeEnum.java
index 51fee6d8..0aa97263 100644
--- a/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/enums/FormTypeEnum.java
+++ b/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/enums/FormTypeEnum.java
@@ -19,7 +19,7 @@ package top.charles7c.cnadmin.tool.enums;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
-import top.charles7c.cnadmin.common.base.IBaseEnum;
+import top.charles7c.continew.starter.extension.crud.base.IBaseEnum;
/**
* 表单类型枚举
diff --git a/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/mapper/FieldConfigMapper.java b/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/mapper/FieldConfigMapper.java
index d6deafe8..df9e43ac 100644
--- a/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/mapper/FieldConfigMapper.java
+++ b/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/mapper/FieldConfigMapper.java
@@ -21,8 +21,8 @@ import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
-import top.charles7c.cnadmin.common.base.BaseMapper;
import top.charles7c.cnadmin.tool.model.entity.FieldConfigDO;
+import top.charles7c.continew.starter.extension.crud.base.BaseMapper;
/**
* 字段配置 Mapper
diff --git a/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/mapper/GenConfigMapper.java b/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/mapper/GenConfigMapper.java
index 26de0c06..58a2591c 100644
--- a/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/mapper/GenConfigMapper.java
+++ b/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/mapper/GenConfigMapper.java
@@ -16,8 +16,8 @@
package top.charles7c.cnadmin.tool.mapper;
-import top.charles7c.cnadmin.common.base.BaseMapper;
import top.charles7c.cnadmin.tool.model.entity.GenConfigDO;
+import top.charles7c.continew.starter.extension.crud.base.BaseMapper;
/**
* 生成配置 Mapper
diff --git a/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/model/entity/FieldConfigDO.java b/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/model/entity/FieldConfigDO.java
index d868e3b5..d667de7f 100644
--- a/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/model/entity/FieldConfigDO.java
+++ b/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/model/entity/FieldConfigDO.java
@@ -37,9 +37,9 @@ import cn.hutool.db.meta.Column;
import cn.hutool.setting.dialect.Props;
import cn.hutool.setting.dialect.PropsUtil;
-import top.charles7c.cnadmin.common.enums.QueryTypeEnum;
import top.charles7c.cnadmin.tool.enums.FormTypeEnum;
import top.charles7c.continew.starter.core.constant.StringConstants;
+import top.charles7c.continew.starter.extension.crud.enums.QueryTypeEnum;
/**
* 字段配置实体
diff --git a/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/service/GeneratorService.java b/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/service/GeneratorService.java
index c3411b42..2c324284 100644
--- a/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/service/GeneratorService.java
+++ b/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/service/GeneratorService.java
@@ -19,13 +19,13 @@ package top.charles7c.cnadmin.tool.service;
import java.sql.SQLException;
import java.util.List;
-import top.charles7c.cnadmin.common.model.query.PageQuery;
-import top.charles7c.cnadmin.common.model.resp.PageDataResp;
import top.charles7c.cnadmin.tool.model.entity.FieldConfigDO;
import top.charles7c.cnadmin.tool.model.entity.GenConfigDO;
import top.charles7c.cnadmin.tool.model.query.TableQuery;
import top.charles7c.cnadmin.tool.model.req.GenConfigReq;
import top.charles7c.cnadmin.tool.model.resp.TableResp;
+import top.charles7c.continew.starter.extension.crud.model.query.PageQuery;
+import top.charles7c.continew.starter.extension.crud.model.resp.PageDataResp;
/**
* 代码生成业务接口
diff --git a/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/service/impl/GeneratorServiceImpl.java b/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/service/impl/GeneratorServiceImpl.java
index 093a6775..4493363b 100644
--- a/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/service/impl/GeneratorServiceImpl.java
+++ b/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool/service/impl/GeneratorServiceImpl.java
@@ -42,12 +42,7 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.db.meta.Column;
import cn.hutool.system.SystemUtil;
-import top.charles7c.cnadmin.common.enums.QueryTypeEnum;
-import top.charles7c.cnadmin.common.exception.ServiceException;
-import top.charles7c.cnadmin.common.model.query.PageQuery;
-import top.charles7c.cnadmin.common.model.resp.PageDataResp;
import top.charles7c.cnadmin.common.util.TemplateUtils;
-import top.charles7c.cnadmin.common.util.validate.CheckUtils;
import top.charles7c.cnadmin.tool.config.properties.GeneratorProperties;
import top.charles7c.cnadmin.tool.config.properties.GeneratorProperties.TemplateConfig;
import top.charles7c.cnadmin.tool.mapper.FieldConfigMapper;
@@ -61,6 +56,11 @@ import top.charles7c.cnadmin.tool.service.GeneratorService;
import top.charles7c.cnadmin.tool.util.MetaUtils;
import top.charles7c.cnadmin.tool.util.Table;
import top.charles7c.continew.starter.core.constant.StringConstants;
+import top.charles7c.continew.starter.extension.crud.enums.QueryTypeEnum;
+import top.charles7c.continew.starter.extension.crud.exception.BusinessException;
+import top.charles7c.continew.starter.extension.crud.model.query.PageQuery;
+import top.charles7c.continew.starter.extension.crud.model.resp.PageDataResp;
+import top.charles7c.continew.starter.extension.crud.util.validate.CheckUtils;
/**
* 代码生成业务实现
@@ -285,7 +285,7 @@ public class GeneratorServiceImpl implements GeneratorService {
FileUtil.writeString(indexContent, indexFile, StandardCharsets.UTF_8);
} catch (Exception e) {
log.error("Generate code occurred an error: {}. tableName: {}.", e.getMessage(), tableName, e);
- throw new ServiceException("代码生成失败,请手动清理生成文件");
+ throw new BusinessException("代码生成失败,请手动清理生成文件");
}
}
diff --git a/continew-admin-tool/src/main/resources/templates/generator/Controller.ftl b/continew-admin-tool/src/main/resources/templates/generator/Controller.ftl
index 28f50f55..30befa34 100644
--- a/continew-admin-tool/src/main/resources/templates/generator/Controller.ftl
+++ b/continew-admin-tool/src/main/resources/templates/generator/Controller.ftl
@@ -16,14 +16,14 @@
package ${packageName}.${subPackageName};
-import static top.charles7c.cnadmin.common.annotation.CrudRequestMapping.Api;
+import top.charles7c.continew.starter.extension.crud.enums.Api;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.*;
-import top.charles7c.cnadmin.common.annotation.CrudRequestMapping;
-import top.charles7c.cnadmin.common.base.BaseController;
+import top.charles7c.continew.starter.extension.crud.annotation.CrudRequestMapping;
+import top.charles7c.continew.starter.extension.crud.base.BaseController;
import ${packageName}.model.query.${classNamePrefix}Query;
import ${packageName}.model.req.${classNamePrefix}Req;
import ${packageName}.model.resp.${classNamePrefix}DetailResp;
diff --git a/continew-admin-tool/src/main/resources/templates/generator/DetailResp.ftl b/continew-admin-tool/src/main/resources/templates/generator/DetailResp.ftl
index b0b758bf..5914739f 100644
--- a/continew-admin-tool/src/main/resources/templates/generator/DetailResp.ftl
+++ b/continew-admin-tool/src/main/resources/templates/generator/DetailResp.ftl
@@ -31,7 +31,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
-import top.charles7c.cnadmin.common.base.BaseDetailResp;
+import top.charles7c.continew.starter.extension.crud.base.BaseDetailResp;
/**
* ${businessName}详情信息
diff --git a/continew-admin-tool/src/main/resources/templates/generator/Entity.ftl b/continew-admin-tool/src/main/resources/templates/generator/Entity.ftl
index 21c99e90..64358d61 100644
--- a/continew-admin-tool/src/main/resources/templates/generator/Entity.ftl
+++ b/continew-admin-tool/src/main/resources/templates/generator/Entity.ftl
@@ -28,7 +28,7 @@ import lombok.Data;
import com.baomidou.mybatisplus.annotation.TableName;
-import top.charles7c.cnadmin.common.base.BaseDO;
+import top.charles7c.continew.starter.extension.crud.base.BaseDO;
/**
* ${businessName}实体
diff --git a/continew-admin-tool/src/main/resources/templates/generator/Mapper.ftl b/continew-admin-tool/src/main/resources/templates/generator/Mapper.ftl
index 1aca1b4e..27784f0d 100644
--- a/continew-admin-tool/src/main/resources/templates/generator/Mapper.ftl
+++ b/continew-admin-tool/src/main/resources/templates/generator/Mapper.ftl
@@ -16,7 +16,7 @@
package ${packageName}.${subPackageName};
-import top.charles7c.cnadmin.common.base.BaseMapper;
+import top.charles7c.continew.starter.extension.crud.base.BaseMapper;
import ${packageName}.model.entity.${classNamePrefix}DO;
/**
diff --git a/continew-admin-tool/src/main/resources/templates/generator/Query.ftl b/continew-admin-tool/src/main/resources/templates/generator/Query.ftl
index 1eed16b0..dd2f2ba4 100644
--- a/continew-admin-tool/src/main/resources/templates/generator/Query.ftl
+++ b/continew-admin-tool/src/main/resources/templates/generator/Query.ftl
@@ -32,8 +32,8 @@ import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
-import top.charles7c.cnadmin.common.annotation.Query;
-import top.charles7c.cnadmin.common.enums.QueryTypeEnum;
+import top.charles7c.continew.starter.extension.crud.annotation.Query;
+import top.charles7c.continew.starter.extension.crud.enums.QueryTypeEnum;
/**
* ${businessName}查询条件
diff --git a/continew-admin-tool/src/main/resources/templates/generator/Req.ftl b/continew-admin-tool/src/main/resources/templates/generator/Req.ftl
index 533b5ac5..5cf5cad3 100644
--- a/continew-admin-tool/src/main/resources/templates/generator/Req.ftl
+++ b/continew-admin-tool/src/main/resources/templates/generator/Req.ftl
@@ -32,7 +32,7 @@ import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
-import top.charles7c.cnadmin.common.base.BaseReq;
+import top.charles7c.continew.starter.extension.crud.base.BaseReq;
/**
* 创建或修改${businessName}信息
diff --git a/continew-admin-tool/src/main/resources/templates/generator/Resp.ftl b/continew-admin-tool/src/main/resources/templates/generator/Resp.ftl
index 17e6633b..9cc0bf01 100644
--- a/continew-admin-tool/src/main/resources/templates/generator/Resp.ftl
+++ b/continew-admin-tool/src/main/resources/templates/generator/Resp.ftl
@@ -28,7 +28,7 @@ import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
-import top.charles7c.cnadmin.common.base.BaseResp;
+import top.charles7c.continew.starter.extension.crud.base.BaseResp;
/**
* ${businessName}信息
diff --git a/continew-admin-tool/src/main/resources/templates/generator/Service.ftl b/continew-admin-tool/src/main/resources/templates/generator/Service.ftl
index 67c2b908..80a593ff 100644
--- a/continew-admin-tool/src/main/resources/templates/generator/Service.ftl
+++ b/continew-admin-tool/src/main/resources/templates/generator/Service.ftl
@@ -16,7 +16,7 @@
package ${packageName}.${subPackageName};
-import top.charles7c.cnadmin.common.base.BaseService;
+import top.charles7c.continew.starter.extension.crud.base.BaseService;
import ${packageName}.model.query.${classNamePrefix}Query;
import ${packageName}.model.req.${classNamePrefix}Req;
import ${packageName}.model.resp.${classNamePrefix}DetailResp;
diff --git a/continew-admin-tool/src/main/resources/templates/generator/ServiceImpl.ftl b/continew-admin-tool/src/main/resources/templates/generator/ServiceImpl.ftl
index 3d1d21e8..12da826c 100644
--- a/continew-admin-tool/src/main/resources/templates/generator/ServiceImpl.ftl
+++ b/continew-admin-tool/src/main/resources/templates/generator/ServiceImpl.ftl
@@ -20,7 +20,7 @@ import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
-import top.charles7c.cnadmin.common.base.BaseServiceImpl;
+import top.charles7c.continew.starter.extension.crud.base.BaseServiceImpl;
import ${packageName}.mapper.${classNamePrefix}Mapper;
import ${packageName}.model.entity.${classNamePrefix}DO;
import ${packageName}.model.query.${classNamePrefix}Query;
diff --git a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/auth/AuthController.java b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/auth/AuthController.java
index 50719d69..cd78a170 100644
--- a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/auth/AuthController.java
+++ b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/auth/AuthController.java
@@ -43,12 +43,12 @@ import top.charles7c.cnadmin.common.constant.CacheConstants;
import top.charles7c.cnadmin.common.model.dto.LoginUser;
import top.charles7c.cnadmin.common.util.SecureUtils;
import top.charles7c.cnadmin.common.util.helper.LoginHelper;
-import top.charles7c.cnadmin.common.util.validate.ValidationUtils;
import top.charles7c.cnadmin.monitor.annotation.Log;
import top.charles7c.cnadmin.system.model.resp.UserDetailResp;
import top.charles7c.cnadmin.system.service.UserService;
import top.charles7c.continew.starter.cache.redisson.util.RedisUtils;
import top.charles7c.continew.starter.core.util.ExceptionUtils;
+import top.charles7c.continew.starter.extension.crud.util.validate.ValidationUtils;
/**
* 认证 API
diff --git a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/auth/SocialAuthController.java b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/auth/SocialAuthController.java
index 44dde1a6..58c0c1df 100644
--- a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/auth/SocialAuthController.java
+++ b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/auth/SocialAuthController.java
@@ -32,10 +32,10 @@ import cn.dev33.satoken.stp.StpUtil;
import top.charles7c.cnadmin.auth.model.resp.LoginResp;
import top.charles7c.cnadmin.auth.service.LoginService;
-import top.charles7c.cnadmin.common.exception.BadRequestException;
-import top.charles7c.cnadmin.common.model.resp.R;
-import top.charles7c.cnadmin.common.util.validate.ValidationUtils;
import top.charles7c.cnadmin.monitor.annotation.Log;
+import top.charles7c.continew.starter.extension.crud.exception.BadRequestException;
+import top.charles7c.continew.starter.extension.crud.model.resp.R;
+import top.charles7c.continew.starter.extension.crud.util.validate.ValidationUtils;
import me.zhyd.oauth.model.AuthCallback;
import me.zhyd.oauth.model.AuthResponse;
diff --git a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/common/CaptchaController.java b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/common/CaptchaController.java
index fbe619c0..f1b3bac3 100644
--- a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/common/CaptchaController.java
+++ b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/common/CaptchaController.java
@@ -50,12 +50,12 @@ import top.charles7c.cnadmin.common.config.properties.CaptchaProperties;
import top.charles7c.cnadmin.common.constant.CacheConstants;
import top.charles7c.cnadmin.common.constant.RegexConstants;
import top.charles7c.cnadmin.common.model.resp.CaptchaResp;
-import top.charles7c.cnadmin.common.model.resp.R;
import top.charles7c.cnadmin.common.util.TemplateUtils;
-import top.charles7c.cnadmin.common.util.validate.CheckUtils;
import top.charles7c.continew.starter.cache.redisson.util.RedisUtils;
import top.charles7c.continew.starter.captcha.graphic.autoconfigure.GraphicCaptchaProperties;
import top.charles7c.continew.starter.core.autoconfigure.project.ProjectProperties;
+import top.charles7c.continew.starter.extension.crud.model.resp.R;
+import top.charles7c.continew.starter.extension.crud.util.validate.CheckUtils;
import top.charles7c.continew.starter.messaging.mail.util.MailUtils;
/**
diff --git a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/common/CommonController.java b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/common/CommonController.java
index b263a3a8..ba3dd3fb 100644
--- a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/common/CommonController.java
+++ b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/common/CommonController.java
@@ -42,15 +42,10 @@ import cn.hutool.core.lang.tree.Tree;
import cn.hutool.core.util.ClassUtil;
import cn.hutool.core.util.StrUtil;
-import top.charles7c.cnadmin.common.base.IBaseEnum;
import top.charles7c.cnadmin.common.config.properties.LocalStorageProperties;
import top.charles7c.cnadmin.common.constant.CacheConstants;
-import top.charles7c.cnadmin.common.model.query.SortQuery;
import top.charles7c.cnadmin.common.model.resp.LabelValueResp;
-import top.charles7c.cnadmin.common.model.resp.R;
import top.charles7c.cnadmin.common.util.FileUtils;
-import top.charles7c.cnadmin.common.util.validate.CheckUtils;
-import top.charles7c.cnadmin.common.util.validate.ValidationUtils;
import top.charles7c.cnadmin.monitor.annotation.Log;
import top.charles7c.cnadmin.system.model.query.DeptQuery;
import top.charles7c.cnadmin.system.model.query.MenuQuery;
@@ -59,6 +54,11 @@ import top.charles7c.cnadmin.system.model.query.RoleQuery;
import top.charles7c.cnadmin.system.model.resp.RoleResp;
import top.charles7c.cnadmin.system.service.*;
import top.charles7c.continew.starter.core.autoconfigure.project.ProjectProperties;
+import top.charles7c.continew.starter.extension.crud.base.IBaseEnum;
+import top.charles7c.continew.starter.extension.crud.model.query.SortQuery;
+import top.charles7c.continew.starter.extension.crud.model.resp.R;
+import top.charles7c.continew.starter.extension.crud.util.validate.CheckUtils;
+import top.charles7c.continew.starter.extension.crud.util.validate.ValidationUtils;
/**
* 公共 API
diff --git a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/common/DashboardController.java b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/common/DashboardController.java
index 51a158f9..1ce3d491 100644
--- a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/common/DashboardController.java
+++ b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/common/DashboardController.java
@@ -31,7 +31,6 @@ import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import top.charles7c.cnadmin.common.util.validate.ValidationUtils;
import top.charles7c.cnadmin.monitor.annotation.Log;
import top.charles7c.cnadmin.monitor.model.resp.DashboardAccessTrendResp;
import top.charles7c.cnadmin.monitor.model.resp.DashboardGeoDistributionResp;
@@ -39,6 +38,7 @@ import top.charles7c.cnadmin.monitor.model.resp.DashboardPopularModuleResp;
import top.charles7c.cnadmin.monitor.model.resp.DashboardTotalResp;
import top.charles7c.cnadmin.monitor.service.DashboardService;
import top.charles7c.cnadmin.system.model.resp.DashboardAnnouncementResp;
+import top.charles7c.continew.starter.extension.crud.util.validate.ValidationUtils;
/**
* 仪表盘 API
diff --git a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/monitor/LogController.java b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/monitor/LogController.java
index 953518e3..32883e77 100644
--- a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/monitor/LogController.java
+++ b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/monitor/LogController.java
@@ -29,8 +29,6 @@ import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import top.charles7c.cnadmin.common.model.query.PageQuery;
-import top.charles7c.cnadmin.common.model.resp.PageDataResp;
import top.charles7c.cnadmin.monitor.annotation.Log;
import top.charles7c.cnadmin.monitor.model.query.LoginLogQuery;
import top.charles7c.cnadmin.monitor.model.query.OperationLogQuery;
@@ -40,6 +38,8 @@ import top.charles7c.cnadmin.monitor.model.resp.OperationLogResp;
import top.charles7c.cnadmin.monitor.model.resp.SystemLogDetailResp;
import top.charles7c.cnadmin.monitor.model.resp.SystemLogResp;
import top.charles7c.cnadmin.monitor.service.LogService;
+import top.charles7c.continew.starter.extension.crud.model.query.PageQuery;
+import top.charles7c.continew.starter.extension.crud.model.resp.PageDataResp;
/**
* 日志管理 API
diff --git a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/monitor/OnlineUserController.java b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/monitor/OnlineUserController.java
index 5073e200..8eb28ee7 100644
--- a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/monitor/OnlineUserController.java
+++ b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/monitor/OnlineUserController.java
@@ -32,10 +32,10 @@ import cn.dev33.satoken.stp.StpUtil;
import top.charles7c.cnadmin.auth.model.query.OnlineUserQuery;
import top.charles7c.cnadmin.auth.model.resp.OnlineUserResp;
import top.charles7c.cnadmin.auth.service.OnlineUserService;
-import top.charles7c.cnadmin.common.model.query.PageQuery;
-import top.charles7c.cnadmin.common.model.resp.PageDataResp;
-import top.charles7c.cnadmin.common.model.resp.R;
-import top.charles7c.cnadmin.common.util.validate.CheckUtils;
+import top.charles7c.continew.starter.extension.crud.model.query.PageQuery;
+import top.charles7c.continew.starter.extension.crud.model.resp.PageDataResp;
+import top.charles7c.continew.starter.extension.crud.model.resp.R;
+import top.charles7c.continew.starter.extension.crud.util.validate.CheckUtils;
/**
* 在线用户 API
diff --git a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/AnnouncementController.java b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/AnnouncementController.java
index f5dfc062..c8016017 100644
--- a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/AnnouncementController.java
+++ b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/AnnouncementController.java
@@ -16,8 +16,6 @@
package top.charles7c.cnadmin.webapi.controller.system;
-import static top.charles7c.cnadmin.common.annotation.CrudRequestMapping.Api;
-
import java.time.LocalDateTime;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -27,16 +25,16 @@ import org.springframework.web.bind.annotation.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
-import top.charles7c.cnadmin.common.annotation.CrudRequestMapping;
-import top.charles7c.cnadmin.common.base.BaseController;
-import top.charles7c.cnadmin.common.base.ValidateGroup;
-import top.charles7c.cnadmin.common.model.resp.R;
-import top.charles7c.cnadmin.common.util.validate.ValidationUtils;
import top.charles7c.cnadmin.system.model.query.AnnouncementQuery;
import top.charles7c.cnadmin.system.model.req.AnnouncementReq;
import top.charles7c.cnadmin.system.model.resp.AnnouncementDetailResp;
import top.charles7c.cnadmin.system.model.resp.AnnouncementResp;
import top.charles7c.cnadmin.system.service.AnnouncementService;
+import top.charles7c.continew.starter.extension.crud.annotation.CrudRequestMapping;
+import top.charles7c.continew.starter.extension.crud.base.BaseController;
+import top.charles7c.continew.starter.extension.crud.base.ValidateGroup;
+import top.charles7c.continew.starter.extension.crud.model.resp.R;
+import top.charles7c.continew.starter.extension.crud.util.validate.ValidationUtils;
/**
* 公告管理 API
@@ -46,8 +44,7 @@ import top.charles7c.cnadmin.system.service.AnnouncementService;
*/
@Tag(name = "公告管理 API")
@RestController
-@CrudRequestMapping(value = "/system/announcement",
- api = {Api.PAGE, Api.GET, Api.ADD, Api.UPDATE, Api.DELETE, Api.EXPORT})
+@CrudRequestMapping("/system/announcement")
public class AnnouncementController extends
BaseController {
diff --git a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/DeptController.java b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/DeptController.java
index 6ed02da1..f21a6f31 100644
--- a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/DeptController.java
+++ b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/DeptController.java
@@ -16,19 +16,18 @@
package top.charles7c.cnadmin.webapi.controller.system;
-import static top.charles7c.cnadmin.common.annotation.CrudRequestMapping.Api;
-
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.*;
-import top.charles7c.cnadmin.common.annotation.CrudRequestMapping;
-import top.charles7c.cnadmin.common.base.BaseController;
import top.charles7c.cnadmin.system.model.query.DeptQuery;
import top.charles7c.cnadmin.system.model.req.DeptReq;
import top.charles7c.cnadmin.system.model.resp.DeptDetailResp;
import top.charles7c.cnadmin.system.model.resp.DeptResp;
import top.charles7c.cnadmin.system.service.DeptService;
+import top.charles7c.continew.starter.extension.crud.annotation.CrudRequestMapping;
+import top.charles7c.continew.starter.extension.crud.base.BaseController;
+import top.charles7c.continew.starter.extension.crud.enums.Api;
/**
* 部门管理 API
diff --git a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/DictController.java b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/DictController.java
index 98a11389..29e08b76 100644
--- a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/DictController.java
+++ b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/DictController.java
@@ -16,19 +16,18 @@
package top.charles7c.cnadmin.webapi.controller.system;
-import static top.charles7c.cnadmin.common.annotation.CrudRequestMapping.Api;
-
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.*;
-import top.charles7c.cnadmin.common.annotation.CrudRequestMapping;
-import top.charles7c.cnadmin.common.base.BaseController;
import top.charles7c.cnadmin.system.model.query.DictQuery;
import top.charles7c.cnadmin.system.model.req.DictReq;
import top.charles7c.cnadmin.system.model.resp.DictDetailResp;
import top.charles7c.cnadmin.system.model.resp.DictResp;
import top.charles7c.cnadmin.system.service.DictService;
+import top.charles7c.continew.starter.extension.crud.annotation.CrudRequestMapping;
+import top.charles7c.continew.starter.extension.crud.base.BaseController;
+import top.charles7c.continew.starter.extension.crud.enums.Api;
/**
* 字典管理 API
diff --git a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/DictItemController.java b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/DictItemController.java
index d969a09f..1ea279bc 100644
--- a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/DictItemController.java
+++ b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/DictItemController.java
@@ -16,19 +16,18 @@
package top.charles7c.cnadmin.webapi.controller.system;
-import static top.charles7c.cnadmin.common.annotation.CrudRequestMapping.Api;
-
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.*;
-import top.charles7c.cnadmin.common.annotation.CrudRequestMapping;
-import top.charles7c.cnadmin.common.base.BaseController;
import top.charles7c.cnadmin.system.model.query.DictItemQuery;
import top.charles7c.cnadmin.system.model.req.DictItemReq;
import top.charles7c.cnadmin.system.model.resp.DictItemDetailResp;
import top.charles7c.cnadmin.system.model.resp.DictItemResp;
import top.charles7c.cnadmin.system.service.DictItemService;
+import top.charles7c.continew.starter.extension.crud.annotation.CrudRequestMapping;
+import top.charles7c.continew.starter.extension.crud.base.BaseController;
+import top.charles7c.continew.starter.extension.crud.enums.Api;
/**
* 字典项管理 API
diff --git a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/MenuController.java b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/MenuController.java
index 32c13f1a..7497a193 100644
--- a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/MenuController.java
+++ b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/MenuController.java
@@ -16,8 +16,6 @@
package top.charles7c.cnadmin.webapi.controller.system;
-import static top.charles7c.cnadmin.common.annotation.CrudRequestMapping.Api;
-
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.validation.annotation.Validated;
@@ -28,16 +26,17 @@ import org.springframework.web.bind.annotation.RestController;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.util.ObjectUtil;
-import top.charles7c.cnadmin.common.annotation.CrudRequestMapping;
-import top.charles7c.cnadmin.common.base.BaseController;
-import top.charles7c.cnadmin.common.base.ValidateGroup;
-import top.charles7c.cnadmin.common.model.resp.R;
import top.charles7c.cnadmin.common.util.URLUtils;
-import top.charles7c.cnadmin.common.util.validate.ValidationUtils;
import top.charles7c.cnadmin.system.model.query.MenuQuery;
import top.charles7c.cnadmin.system.model.req.MenuReq;
import top.charles7c.cnadmin.system.model.resp.MenuResp;
import top.charles7c.cnadmin.system.service.MenuService;
+import top.charles7c.continew.starter.extension.crud.annotation.CrudRequestMapping;
+import top.charles7c.continew.starter.extension.crud.base.BaseController;
+import top.charles7c.continew.starter.extension.crud.base.ValidateGroup;
+import top.charles7c.continew.starter.extension.crud.enums.Api;
+import top.charles7c.continew.starter.extension.crud.model.resp.R;
+import top.charles7c.continew.starter.extension.crud.util.validate.ValidationUtils;
/**
* 菜单管理 API
diff --git a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/MessageController.java b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/MessageController.java
index bffa9c19..e9d3b91f 100644
--- a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/MessageController.java
+++ b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/MessageController.java
@@ -28,9 +28,6 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
-import top.charles7c.cnadmin.common.model.query.PageQuery;
-import top.charles7c.cnadmin.common.model.resp.PageDataResp;
-import top.charles7c.cnadmin.common.model.resp.R;
import top.charles7c.cnadmin.common.util.helper.LoginHelper;
import top.charles7c.cnadmin.monitor.annotation.Log;
import top.charles7c.cnadmin.system.model.query.MessageQuery;
@@ -38,6 +35,9 @@ import top.charles7c.cnadmin.system.model.resp.MessageResp;
import top.charles7c.cnadmin.system.model.resp.MessageUnreadResp;
import top.charles7c.cnadmin.system.service.MessageService;
import top.charles7c.cnadmin.system.service.MessageUserService;
+import top.charles7c.continew.starter.extension.crud.model.query.PageQuery;
+import top.charles7c.continew.starter.extension.crud.model.resp.PageDataResp;
+import top.charles7c.continew.starter.extension.crud.model.resp.R;
/**
* 消息管理 API
diff --git a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/RoleController.java b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/RoleController.java
index 93d296b0..4536a7f2 100644
--- a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/RoleController.java
+++ b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/RoleController.java
@@ -20,13 +20,13 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.RestController;
-import top.charles7c.cnadmin.common.annotation.CrudRequestMapping;
-import top.charles7c.cnadmin.common.base.BaseController;
import top.charles7c.cnadmin.system.model.query.RoleQuery;
import top.charles7c.cnadmin.system.model.req.RoleReq;
import top.charles7c.cnadmin.system.model.resp.RoleDetailResp;
import top.charles7c.cnadmin.system.model.resp.RoleResp;
import top.charles7c.cnadmin.system.service.RoleService;
+import top.charles7c.continew.starter.extension.crud.annotation.CrudRequestMapping;
+import top.charles7c.continew.starter.extension.crud.base.BaseController;
/**
* 角色管理 API
diff --git a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/UserCenterController.java b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/UserCenterController.java
index b60090fc..45f56197 100644
--- a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/UserCenterController.java
+++ b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/UserCenterController.java
@@ -39,10 +39,8 @@ import cn.hutool.core.util.ReUtil;
import top.charles7c.cnadmin.common.constant.CacheConstants;
import top.charles7c.cnadmin.common.constant.RegexConstants;
import top.charles7c.cnadmin.common.enums.SocialSourceEnum;
-import top.charles7c.cnadmin.common.model.resp.R;
import top.charles7c.cnadmin.common.util.SecureUtils;
import top.charles7c.cnadmin.common.util.helper.LoginHelper;
-import top.charles7c.cnadmin.common.util.validate.ValidationUtils;
import top.charles7c.cnadmin.system.model.entity.UserSocialDO;
import top.charles7c.cnadmin.system.model.req.UserBasicInfoUpdateReq;
import top.charles7c.cnadmin.system.model.req.UserEmailUpdateRequest;
@@ -54,6 +52,8 @@ import top.charles7c.cnadmin.system.service.UserService;
import top.charles7c.cnadmin.system.service.UserSocialService;
import top.charles7c.continew.starter.cache.redisson.util.RedisUtils;
import top.charles7c.continew.starter.core.util.ExceptionUtils;
+import top.charles7c.continew.starter.extension.crud.model.resp.R;
+import top.charles7c.continew.starter.extension.crud.util.validate.ValidationUtils;
import me.zhyd.oauth.model.AuthCallback;
import me.zhyd.oauth.model.AuthResponse;
diff --git a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/UserController.java b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/UserController.java
index 8a0999a1..e68d6dcb 100644
--- a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/UserController.java
+++ b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/system/UserController.java
@@ -29,17 +29,17 @@ import org.springframework.web.bind.annotation.RestController;
import cn.dev33.satoken.annotation.SaCheckPermission;
-import top.charles7c.cnadmin.common.annotation.CrudRequestMapping;
-import top.charles7c.cnadmin.common.base.BaseController;
-import top.charles7c.cnadmin.common.base.ValidateGroup;
import top.charles7c.cnadmin.common.constant.SysConstants;
-import top.charles7c.cnadmin.common.model.resp.R;
import top.charles7c.cnadmin.system.model.query.UserQuery;
import top.charles7c.cnadmin.system.model.req.UserReq;
import top.charles7c.cnadmin.system.model.req.UserRoleUpdateReq;
import top.charles7c.cnadmin.system.model.resp.UserDetailResp;
import top.charles7c.cnadmin.system.model.resp.UserResp;
import top.charles7c.cnadmin.system.service.UserService;
+import top.charles7c.continew.starter.extension.crud.annotation.CrudRequestMapping;
+import top.charles7c.continew.starter.extension.crud.base.BaseController;
+import top.charles7c.continew.starter.extension.crud.base.ValidateGroup;
+import top.charles7c.continew.starter.extension.crud.model.resp.R;
/**
* 用户管理 API
diff --git a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/tool/GeneratorController.java b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/tool/GeneratorController.java
index 7f0064fc..d7bef12c 100644
--- a/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/tool/GeneratorController.java
+++ b/continew-admin-webapi/src/main/java/top/charles7c/cnadmin/webapi/controller/tool/GeneratorController.java
@@ -31,10 +31,6 @@ import org.springframework.web.bind.annotation.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
-import top.charles7c.cnadmin.common.model.query.PageQuery;
-import top.charles7c.cnadmin.common.model.resp.PageDataResp;
-import top.charles7c.cnadmin.common.model.resp.R;
-import top.charles7c.cnadmin.common.util.validate.ValidationUtils;
import top.charles7c.cnadmin.tool.model.entity.FieldConfigDO;
import top.charles7c.cnadmin.tool.model.entity.GenConfigDO;
import top.charles7c.cnadmin.tool.model.query.TableQuery;
@@ -42,6 +38,10 @@ import top.charles7c.cnadmin.tool.model.req.GenConfigReq;
import top.charles7c.cnadmin.tool.model.resp.TableResp;
import top.charles7c.cnadmin.tool.service.GeneratorService;
import top.charles7c.continew.starter.core.autoconfigure.project.ProjectProperties;
+import top.charles7c.continew.starter.extension.crud.model.query.PageQuery;
+import top.charles7c.continew.starter.extension.crud.model.resp.PageDataResp;
+import top.charles7c.continew.starter.extension.crud.model.resp.R;
+import top.charles7c.continew.starter.extension.crud.util.validate.ValidationUtils;
/**
* 代码生成 API