mirror of
https://github.com/continew-org/continew-starter.git
synced 2025-11-12 06:57:10 +08:00
Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 13c4253b29 | |||
| d771e12839 | |||
| 6e621bc459 | |||
| 326dd76c34 | |||
| c72259028f | |||
| 5f6822742f | |||
| aa463dff37 | |||
| 4fe067a889 | |||
| 0b342d5c73 |
29
CHANGELOG.md
29
CHANGELOG.md
@@ -1,3 +1,32 @@
|
|||||||
|
## [v2.8.3](https://github.com/continew-org/continew-starter/compare/v2.8.2...v2.8.3) (2025-01-16)
|
||||||
|
|
||||||
|
### 💎 功能优化
|
||||||
|
|
||||||
|
- 【log】调整所属模块、日志描述默认提示,不再直接抛出异常 ([326dd76](https://github.com/continew-org/continew-starter/commit/326dd76c34476141c39add5348da052bdb8c27cd))
|
||||||
|
- 【extension/crud】移除 BaseDO、BaseCreateDO、BaseUpdateDO 等(已移动到 Admin 项目内) ([6e621bc](https://github.com/continew-org/continew-starter/commit/6e621bc4597996c8f1f65c542f5faa922b95a900))
|
||||||
|
|
||||||
|
### 🐛 问题修复
|
||||||
|
|
||||||
|
- 【extension/crud】修复查询条件校验无效的问题 ([d771e12](https://github.com/continew-org/continew-starter/commit/d771e128399851fa78f1041fa4ffcd6af3332fcd))
|
||||||
|
|
||||||
|
## [v2.8.2](https://github.com/continew-org/continew-starter/compare/v2.8.1...v2.8.2) (2025-01-09)
|
||||||
|
|
||||||
|
### ✨ 新特性
|
||||||
|
|
||||||
|
- 【core】SpringUtils 新增获取代理对象方法 ([5f68227](https://github.com/continew-org/continew-starter/commit/5f6822742fd0f032bcc351155f0b966d24b05346))
|
||||||
|
|
||||||
|
### 💎 功能优化
|
||||||
|
|
||||||
|
- 【extension/crud】移除 CommonUserService、ContainerPool(已移动到 Admin 项目内) ([0b342d5](https://github.com/continew-org/continew-starter/commit/0b342d5c73e95b809337b939b4e1e957374bad85))
|
||||||
|
|
||||||
|
### 🐛 问题修复
|
||||||
|
|
||||||
|
- 【log】修复日志记录时所属模块和描述取值优先级失效的问题 ([4fe067a](https://github.com/continew-org/continew-starter/commit/4fe067a889f00617f03caf7ae3598466560dce33))
|
||||||
|
|
||||||
|
### 📦 依赖升级
|
||||||
|
|
||||||
|
- graceful-response 5.0.4-boot3 => 5.0.5-boot3(修复父类参数校验异常) ([aa463df](https://github.com/continew-org/continew-starter/commit/aa463dff37b658d1cb2a69e68f54790e03c4103d))
|
||||||
|
|
||||||
## [v2.8.1](https://github.com/continew-org/continew-starter/compare/v2.8.0...v2.8.1) (2025-01-06)
|
## [v2.8.1](https://github.com/continew-org/continew-starter/compare/v2.8.0...v2.8.1) (2025-01-06)
|
||||||
|
|
||||||
### ✨ 新特性
|
### ✨ 新特性
|
||||||
|
|||||||
@@ -14,21 +14,30 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package top.continew.starter.extension.crud.constant;
|
package top.continew.starter.core.util;
|
||||||
|
|
||||||
|
import cn.hutool.extra.spring.SpringUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 数据源容器相关常量(Crane4j 数据填充组件使用)
|
* Spring 工具类
|
||||||
*
|
*
|
||||||
* @author Charles7c
|
* @author Charles7c
|
||||||
* @since 1.2.0
|
* @since 2.8.2
|
||||||
*/
|
*/
|
||||||
public class ContainerPool {
|
public class SpringUtils {
|
||||||
|
|
||||||
|
private SpringUtils() {
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户昵称
|
* 获取代理对象
|
||||||
|
*
|
||||||
|
* @param target 目标对象
|
||||||
|
* @param <T> 目标对象类型
|
||||||
|
* @return 代理对象
|
||||||
|
* @since 2.8.2
|
||||||
*/
|
*/
|
||||||
public static final String USER_NICKNAME = "UserNickname";
|
public static <T> T getProxy(T target) {
|
||||||
|
return (T)SpringUtil.getBean(target.getClass());
|
||||||
protected ContainerPool() {
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<!-- 项目版本号 -->
|
<!-- 项目版本号 -->
|
||||||
<revision>2.8.1</revision>
|
<revision>2.8.3</revision>
|
||||||
<snail-job.version>1.2.0</snail-job.version>
|
<snail-job.version>1.2.0</snail-job.version>
|
||||||
<sa-token.version>1.39.0</sa-token.version>
|
<sa-token.version>1.39.0</sa-token.version>
|
||||||
<just-auth.version>1.16.7</just-auth.version>
|
<just-auth.version>1.16.7</just-auth.version>
|
||||||
@@ -61,7 +61,7 @@
|
|||||||
<nashorn.version>15.5</nashorn.version>
|
<nashorn.version>15.5</nashorn.version>
|
||||||
<x-file-storage.version>2.2.1</x-file-storage.version>
|
<x-file-storage.version>2.2.1</x-file-storage.version>
|
||||||
<aws-s3.version>1.12.780</aws-s3.version>
|
<aws-s3.version>1.12.780</aws-s3.version>
|
||||||
<graceful-response.version>5.0.4-boot3</graceful-response.version>
|
<graceful-response.version>5.0.5-boot3</graceful-response.version>
|
||||||
<crane4j.version>2.9.0</crane4j.version>
|
<crane4j.version>2.9.0</crane4j.version>
|
||||||
<knife4j.version>4.5.0</knife4j.version>
|
<knife4j.version>4.5.0</knife4j.version>
|
||||||
<tlog.version>1.5.2</tlog.version>
|
<tlog.version>1.5.2</tlog.version>
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ import top.continew.starter.extension.crud.enums.Api;
|
|||||||
import top.continew.starter.extension.crud.handler.CrudApiHandler;
|
import top.continew.starter.extension.crud.handler.CrudApiHandler;
|
||||||
import top.continew.starter.extension.crud.model.query.PageQuery;
|
import top.continew.starter.extension.crud.model.query.PageQuery;
|
||||||
import top.continew.starter.extension.crud.model.query.SortQuery;
|
import top.continew.starter.extension.crud.model.query.SortQuery;
|
||||||
import top.continew.starter.extension.crud.model.req.BaseReq;
|
|
||||||
import top.continew.starter.extension.crud.model.resp.BaseIdResp;
|
import top.continew.starter.extension.crud.model.resp.BaseIdResp;
|
||||||
import top.continew.starter.extension.crud.model.resp.BasePageResp;
|
import top.continew.starter.extension.crud.model.resp.BasePageResp;
|
||||||
import top.continew.starter.extension.crud.service.BaseService;
|
import top.continew.starter.extension.crud.service.BaseService;
|
||||||
@@ -49,7 +48,7 @@ import java.util.List;
|
|||||||
* @author Charles7c
|
* @author Charles7c
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
public abstract class AbstractBaseController<S extends BaseService<L, D, Q, C>, L, D, Q, C extends BaseReq> implements CrudApiHandler {
|
public abstract class AbstractBaseController<S extends BaseService<L, D, Q, C>, L, D, Q, C> implements CrudApiHandler {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
protected S baseService;
|
protected S baseService;
|
||||||
@@ -65,7 +64,7 @@ public abstract class AbstractBaseController<S extends BaseService<L, D, Q, C>,
|
|||||||
@Operation(summary = "分页查询列表", description = "分页查询列表")
|
@Operation(summary = "分页查询列表", description = "分页查询列表")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@GetMapping
|
@GetMapping
|
||||||
public BasePageResp<L> page(Q query, @Validated PageQuery pageQuery) {
|
public BasePageResp<L> page(@Validated Q query, @Validated PageQuery pageQuery) {
|
||||||
return baseService.page(query, pageQuery);
|
return baseService.page(query, pageQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,7 +79,7 @@ public abstract class AbstractBaseController<S extends BaseService<L, D, Q, C>,
|
|||||||
@Operation(summary = "查询列表", description = "查询列表")
|
@Operation(summary = "查询列表", description = "查询列表")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public List<L> list(Q query, SortQuery sortQuery) {
|
public List<L> list(@Validated Q query, @Validated SortQuery sortQuery) {
|
||||||
return baseService.list(query, sortQuery);
|
return baseService.list(query, sortQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -95,7 +94,7 @@ public abstract class AbstractBaseController<S extends BaseService<L, D, Q, C>,
|
|||||||
@Operation(summary = "查询树列表", description = "查询树列表")
|
@Operation(summary = "查询树列表", description = "查询树列表")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@GetMapping("/tree")
|
@GetMapping("/tree")
|
||||||
public List<Tree<Long>> tree(Q query, SortQuery sortQuery) {
|
public List<Tree<Long>> tree(@Validated Q query, @Validated SortQuery sortQuery) {
|
||||||
return baseService.tree(query, sortQuery, false);
|
return baseService.tree(query, sortQuery, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -168,7 +167,7 @@ public abstract class AbstractBaseController<S extends BaseService<L, D, Q, C>,
|
|||||||
@ExcludeFromGracefulResponse
|
@ExcludeFromGracefulResponse
|
||||||
@Operation(summary = "导出数据", description = "导出数据")
|
@Operation(summary = "导出数据", description = "导出数据")
|
||||||
@GetMapping("/export")
|
@GetMapping("/export")
|
||||||
public void export(Q query, SortQuery sortQuery, HttpServletResponse response) {
|
public void export(@Validated Q query, @Validated SortQuery sortQuery, HttpServletResponse response) {
|
||||||
baseService.export(query, sortQuery, response);
|
baseService.export(query, sortQuery, response);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,32 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
|
|
||||||
* <p>
|
|
||||||
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* <p>
|
|
||||||
* http://www.gnu.org/licenses/lgpl.html
|
|
||||||
* <p>
|
|
||||||
* 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.continew.starter.extension.crud.model.req;
|
|
||||||
|
|
||||||
import java.io.Serial;
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 请求参数基类
|
|
||||||
*
|
|
||||||
* @author Charles7c
|
|
||||||
* @since 1.0.0
|
|
||||||
*/
|
|
||||||
public class BaseReq implements Serializable {
|
|
||||||
|
|
||||||
@Serial
|
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
}
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
|
|
||||||
* <p>
|
|
||||||
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* <p>
|
|
||||||
* http://www.gnu.org/licenses/lgpl.html
|
|
||||||
* <p>
|
|
||||||
* 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.continew.starter.extension.crud.service;
|
|
||||||
|
|
||||||
import cn.crane4j.annotation.ContainerMethod;
|
|
||||||
import cn.crane4j.annotation.MappingType;
|
|
||||||
import top.continew.starter.extension.crud.constant.ContainerPool;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 公共用户业务接口
|
|
||||||
*
|
|
||||||
* @author Charles7c
|
|
||||||
* @since 1.0.0
|
|
||||||
*/
|
|
||||||
public interface CommonUserService {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据 ID 查询昵称
|
|
||||||
*
|
|
||||||
* @param id ID
|
|
||||||
* @return 昵称
|
|
||||||
*/
|
|
||||||
@ContainerMethod(namespace = ContainerPool.USER_NICKNAME, type = MappingType.ORDER_OF_KEYS)
|
|
||||||
String getNicknameById(Long id);
|
|
||||||
}
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
|
|
||||||
* <p>
|
|
||||||
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* <p>
|
|
||||||
* http://www.gnu.org/licenses/lgpl.html
|
|
||||||
* <p>
|
|
||||||
* 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.continew.starter.extension.crud.model.entity;
|
|
||||||
|
|
||||||
import java.io.Serial;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 实体类基类
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* 通用字段:创建人、创建时间
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @author Charles7c
|
|
||||||
* @since 2.0.1
|
|
||||||
*/
|
|
||||||
public class BaseCreateDO extends BaseIdDO {
|
|
||||||
|
|
||||||
@Serial
|
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 创建人
|
|
||||||
*/
|
|
||||||
private Long createUser;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 创建时间
|
|
||||||
*/
|
|
||||||
private LocalDateTime createTime;
|
|
||||||
|
|
||||||
public Long getCreateUser() {
|
|
||||||
return createUser;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCreateUser(Long createUser) {
|
|
||||||
this.createUser = createUser;
|
|
||||||
}
|
|
||||||
|
|
||||||
public LocalDateTime getCreateTime() {
|
|
||||||
return createTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCreateTime(LocalDateTime createTime) {
|
|
||||||
this.createTime = createTime;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,84 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
|
|
||||||
* <p>
|
|
||||||
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* <p>
|
|
||||||
* http://www.gnu.org/licenses/lgpl.html
|
|
||||||
* <p>
|
|
||||||
* 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.continew.starter.extension.crud.model.entity;
|
|
||||||
|
|
||||||
import java.io.Serial;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 实体类基类
|
|
||||||
*
|
|
||||||
* @author Charles7c
|
|
||||||
* @since 1.0.0
|
|
||||||
*/
|
|
||||||
public class BaseDO extends BaseIdDO {
|
|
||||||
|
|
||||||
@Serial
|
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 创建人
|
|
||||||
*/
|
|
||||||
private Long createUser;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 创建时间
|
|
||||||
*/
|
|
||||||
private LocalDateTime createTime;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改人
|
|
||||||
*/
|
|
||||||
private Long updateUser;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改时间
|
|
||||||
*/
|
|
||||||
private LocalDateTime updateTime;
|
|
||||||
|
|
||||||
public Long getCreateUser() {
|
|
||||||
return createUser;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCreateUser(Long createUser) {
|
|
||||||
this.createUser = createUser;
|
|
||||||
}
|
|
||||||
|
|
||||||
public LocalDateTime getCreateTime() {
|
|
||||||
return createTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCreateTime(LocalDateTime createTime) {
|
|
||||||
this.createTime = createTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Long getUpdateUser() {
|
|
||||||
return updateUser;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUpdateUser(Long updateUser) {
|
|
||||||
this.updateUser = updateUser;
|
|
||||||
}
|
|
||||||
|
|
||||||
public LocalDateTime getUpdateTime() {
|
|
||||||
return updateTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUpdateTime(LocalDateTime updateTime) {
|
|
||||||
this.updateTime = updateTime;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
|
|
||||||
* <p>
|
|
||||||
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* <p>
|
|
||||||
* http://www.gnu.org/licenses/lgpl.html
|
|
||||||
* <p>
|
|
||||||
* 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.continew.starter.extension.crud.model.entity;
|
|
||||||
|
|
||||||
import java.io.Serial;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 实体类基类
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* 通用字段:创建人、创建时间
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @author Charles7c
|
|
||||||
* @since 2.0.1
|
|
||||||
*/
|
|
||||||
public class BaseUpdateDO extends BaseIdDO {
|
|
||||||
|
|
||||||
@Serial
|
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改人
|
|
||||||
*/
|
|
||||||
private Long updateUser;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改时间
|
|
||||||
*/
|
|
||||||
private LocalDateTime updateTime;
|
|
||||||
|
|
||||||
public Long getUpdateUser() {
|
|
||||||
return updateUser;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUpdateUser(Long updateUser) {
|
|
||||||
this.updateUser = updateUser;
|
|
||||||
}
|
|
||||||
|
|
||||||
public LocalDateTime getUpdateTime() {
|
|
||||||
return updateTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUpdateTime(LocalDateTime updateTime) {
|
|
||||||
this.updateTime = updateTime;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,67 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
|
|
||||||
* <p>
|
|
||||||
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* <p>
|
|
||||||
* http://www.gnu.org/licenses/lgpl.html
|
|
||||||
* <p>
|
|
||||||
* 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.continew.starter.extension.crud.model.entity;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
|
||||||
|
|
||||||
import java.io.Serial;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 实体类基类
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* 通用字段:创建人、创建时间
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @author Charles7c
|
|
||||||
* @since 2.0.1
|
|
||||||
*/
|
|
||||||
public class BaseCreateDO extends BaseIdDO {
|
|
||||||
|
|
||||||
@Serial
|
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 创建人
|
|
||||||
*/
|
|
||||||
@TableField(fill = FieldFill.INSERT)
|
|
||||||
private Long createUser;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 创建时间
|
|
||||||
*/
|
|
||||||
@TableField(fill = FieldFill.INSERT)
|
|
||||||
private LocalDateTime createTime;
|
|
||||||
|
|
||||||
public Long getCreateUser() {
|
|
||||||
return createUser;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCreateUser(Long createUser) {
|
|
||||||
this.createUser = createUser;
|
|
||||||
}
|
|
||||||
|
|
||||||
public LocalDateTime getCreateTime() {
|
|
||||||
return createTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCreateTime(LocalDateTime createTime) {
|
|
||||||
this.createTime = createTime;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,91 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
|
|
||||||
* <p>
|
|
||||||
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* <p>
|
|
||||||
* http://www.gnu.org/licenses/lgpl.html
|
|
||||||
* <p>
|
|
||||||
* 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.continew.starter.extension.crud.model.entity;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
|
||||||
|
|
||||||
import java.io.Serial;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 实体类基类
|
|
||||||
*
|
|
||||||
* @author Charles7c
|
|
||||||
* @since 1.0.0
|
|
||||||
*/
|
|
||||||
public class BaseDO extends BaseIdDO {
|
|
||||||
|
|
||||||
@Serial
|
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 创建人
|
|
||||||
*/
|
|
||||||
@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;
|
|
||||||
|
|
||||||
public Long getCreateUser() {
|
|
||||||
return createUser;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCreateUser(Long createUser) {
|
|
||||||
this.createUser = createUser;
|
|
||||||
}
|
|
||||||
|
|
||||||
public LocalDateTime getCreateTime() {
|
|
||||||
return createTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCreateTime(LocalDateTime createTime) {
|
|
||||||
this.createTime = createTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Long getUpdateUser() {
|
|
||||||
return updateUser;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUpdateUser(Long updateUser) {
|
|
||||||
this.updateUser = updateUser;
|
|
||||||
}
|
|
||||||
|
|
||||||
public LocalDateTime getUpdateTime() {
|
|
||||||
return updateTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUpdateTime(LocalDateTime updateTime) {
|
|
||||||
this.updateTime = updateTime;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,67 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
|
|
||||||
* <p>
|
|
||||||
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* <p>
|
|
||||||
* http://www.gnu.org/licenses/lgpl.html
|
|
||||||
* <p>
|
|
||||||
* 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.continew.starter.extension.crud.model.entity;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
|
||||||
|
|
||||||
import java.io.Serial;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 实体类基类
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* 通用字段:创建人、创建时间
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @author Charles7c
|
|
||||||
* @since 2.0.1
|
|
||||||
*/
|
|
||||||
public class BaseUpdateDO extends BaseIdDO {
|
|
||||||
|
|
||||||
@Serial
|
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改人
|
|
||||||
*/
|
|
||||||
@TableField(fill = FieldFill.UPDATE)
|
|
||||||
private Long updateUser;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改时间
|
|
||||||
*/
|
|
||||||
@TableField(fill = FieldFill.UPDATE)
|
|
||||||
private LocalDateTime updateTime;
|
|
||||||
|
|
||||||
public Long getUpdateUser() {
|
|
||||||
return updateUser;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUpdateUser(Long updateUser) {
|
|
||||||
this.updateUser = updateUser;
|
|
||||||
}
|
|
||||||
|
|
||||||
public LocalDateTime getUpdateTime() {
|
|
||||||
return updateTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUpdateTime(LocalDateTime updateTime) {
|
|
||||||
this.updateTime = updateTime;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -22,7 +22,6 @@ import io.swagger.v3.oas.annotations.Operation;
|
|||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import top.continew.starter.core.validation.ValidationUtils;
|
|
||||||
import top.continew.starter.log.annotation.Log;
|
import top.continew.starter.log.annotation.Log;
|
||||||
import top.continew.starter.log.enums.Include;
|
import top.continew.starter.log.enums.Include;
|
||||||
import top.continew.starter.log.http.servlet.RecordableServletHttpRequest;
|
import top.continew.starter.log.http.servlet.RecordableServletHttpRequest;
|
||||||
@@ -83,18 +82,18 @@ public abstract class AbstractLogHandler implements LogHandler {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void logDescription(LogRecord logRecord, Method targetMethod) {
|
public void logDescription(LogRecord logRecord, Method targetMethod) {
|
||||||
|
logRecord.setDescription("请在该接口方法上添加 @top.continew.starter.log.annotation.Log(value) 来指定日志描述");
|
||||||
Log methodLog = AnnotationUtil.getAnnotation(targetMethod, Log.class);
|
Log methodLog = AnnotationUtil.getAnnotation(targetMethod, Log.class);
|
||||||
// 例如:@Log("新增部门") -> 新增部门
|
// 例如:@Log("新增部门") -> 新增部门
|
||||||
if (null != methodLog && CharSequenceUtil.isNotBlank(methodLog.value())) {
|
if (null != methodLog && CharSequenceUtil.isNotBlank(methodLog.value())) {
|
||||||
logRecord.setDescription(methodLog.value());
|
logRecord.setDescription(methodLog.value());
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
// 例如:@Operation(summary="新增部门") -> 新增部门
|
// 例如:@Operation(summary="新增部门") -> 新增部门
|
||||||
Operation methodOperation = AnnotationUtil.getAnnotation(targetMethod, Operation.class);
|
Operation methodOperation = AnnotationUtil.getAnnotation(targetMethod, Operation.class);
|
||||||
if (null != methodOperation) {
|
if (null != methodOperation && CharSequenceUtil.isNotBlank(methodOperation.summary())) {
|
||||||
logRecord.setDescription(CharSequenceUtil.blankToDefault(methodOperation
|
logRecord.setDescription(methodOperation.summary());
|
||||||
.summary(), "请在该接口方法的 @Operation 上添加 summary 来指定日志描述"));
|
|
||||||
}
|
}
|
||||||
ValidationUtils.throwIfBlank(logRecord.getDescription(), "请在该接口方法上添加 @Log 来指定日志描述");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -106,6 +105,7 @@ public abstract class AbstractLogHandler implements LogHandler {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void logModule(LogRecord logRecord, Method targetMethod, Class<?> targetClass) {
|
public void logModule(LogRecord logRecord, Method targetMethod, Class<?> targetClass) {
|
||||||
|
logRecord.setModule("请在该接口方法或类上添加 @top.continew.starter.log.annotation.Log(module) 来指定所属模块");
|
||||||
Log methodLog = AnnotationUtil.getAnnotation(targetMethod, Log.class);
|
Log methodLog = AnnotationUtil.getAnnotation(targetMethod, Log.class);
|
||||||
// 例如:@Log(module = "部门管理") -> 部门管理
|
// 例如:@Log(module = "部门管理") -> 部门管理
|
||||||
// 方法级注解优先级高于类级注解
|
// 方法级注解优先级高于类级注解
|
||||||
@@ -116,14 +116,13 @@ public abstract class AbstractLogHandler implements LogHandler {
|
|||||||
Log classLog = AnnotationUtil.getAnnotation(targetClass, Log.class);
|
Log classLog = AnnotationUtil.getAnnotation(targetClass, Log.class);
|
||||||
if (null != classLog && CharSequenceUtil.isNotBlank(classLog.module())) {
|
if (null != classLog && CharSequenceUtil.isNotBlank(classLog.module())) {
|
||||||
logRecord.setModule(classLog.module());
|
logRecord.setModule(classLog.module());
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
// 例如:@Tag(name = "部门管理") -> 部门管理
|
// 例如:@Tag(name = "部门管理") -> 部门管理
|
||||||
Tag classTag = AnnotationUtil.getAnnotation(targetClass, Tag.class);
|
Tag classTag = AnnotationUtil.getAnnotation(targetClass, Tag.class);
|
||||||
if (null != classTag) {
|
if (null != classTag && CharSequenceUtil.isNotBlank(classTag.name())) {
|
||||||
String name = classTag.name();
|
logRecord.setModule(classTag.name());
|
||||||
logRecord.setModule(CharSequenceUtil.blankToDefault(name, "请在该接口类的 @Tag 上添加 name 来指定所属模块"));
|
|
||||||
}
|
}
|
||||||
ValidationUtils.throwIfBlank(logRecord.getModule(), "请在该接口方法或接口类上添加 @Log 来指定所属模块");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user