diff --git a/continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/base/BaseController.java b/continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/base/BaseController.java index 4c2bb0a8..c1914360 100644 --- a/continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/base/BaseController.java +++ b/continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/base/BaseController.java @@ -41,10 +41,10 @@ import java.util.List; * 控制器基类 * * @param 业务接口 - * @param 列表信息 - * @param 详情信息 + * @param 列表类型 + * @param 详情类型 * @param 查询条件 - * @param 创建或修改信息 + * @param 创建或修改类型 * @author Charles7c * @since 1.0.0 */ diff --git a/continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/base/BaseService.java b/continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/base/BaseService.java index 16e7c9cc..a52c2222 100644 --- a/continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/base/BaseService.java +++ b/continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/base/BaseService.java @@ -27,10 +27,10 @@ import java.util.List; /** * 业务接口基类 * - * @param 列表信息 - * @param 详情信息 + * @param 列表类型 + * @param 详情类型 * @param 查询条件 - * @param 创建或修改信息 + * @param 创建或修改类型 * @author Charles7c * @since 1.0.0 */ diff --git a/continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/base/BaseServiceImpl.java b/continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/base/BaseServiceImpl.java index 2584f2ff..4b9f1331 100644 --- a/continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/base/BaseServiceImpl.java +++ b/continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/base/BaseServiceImpl.java @@ -20,7 +20,6 @@ import cn.crane4j.core.support.OperateTemplate; 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; @@ -46,6 +45,7 @@ import top.charles7c.continew.starter.extension.crud.model.resp.PageResp; import top.charles7c.continew.starter.extension.crud.util.TreeUtils; import top.charles7c.continew.starter.file.excel.util.ExcelUtils; +import java.io.Serializable; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; @@ -54,15 +54,15 @@ import java.util.List; * 业务实现基类 * * @param Mapper 接口 - * @param 实体类 - * @param 列表信息 - * @param 详情信息 + * @param 实体类型 + * @param 列表类型 + * @param 详情类型 * @param 查询条件 - * @param 创建或修改信息 + * @param 创建或修改类型 * @author Charles7c * @since 1.0.0 */ -public abstract class BaseServiceImpl, T extends BaseDO, L, D, Q, C extends BaseReq> implements BaseService { +public abstract class BaseServiceImpl, T extends BaseDO, L, D, Q, C extends BaseReq> implements BaseService, IService { @Autowired protected M baseMapper; @@ -139,8 +139,8 @@ public abstract class BaseServiceImpl, T extends BaseDO, @Override public D get(Long id) { - T entity = this.getById(id); - D detail = BeanUtil.copyProperties(entity, detailClass); + T entity = this.getById(id, false); + D detail = BeanUtil.toBean(entity, detailClass); this.fill(detail); return detail; } @@ -180,28 +180,24 @@ public abstract class BaseServiceImpl, T extends BaseDO, ExcelUtils.export(list, "导出数据", detailClass, response); } + @Override + public T getById(Serializable id) { + return this.getById(id, true); + } + /** * 填充数据 * * @param obj 待填充信息 */ protected void fill(Object obj) { + if (null == obj) { + return; + } OperateTemplate operateTemplate = SpringUtil.getBean(OperateTemplate.class); operateTemplate.execute(obj); } - /** - * 根据 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; - } - /** * 设置排序 * @@ -217,6 +213,21 @@ public abstract class BaseServiceImpl, T extends BaseDO, } } + /** + * 根据 ID 查询 + * + * @param id ID + * @param isCheckExists 是否检查存在 + * @return 实体信息 + */ + protected T getById(Serializable id, boolean isCheckExists) { + T entity = baseMapper.selectById(id); + if (isCheckExists) { + CheckUtils.throwIfNotExists(entity, ClassUtil.getClassName(entityClass, true), "ID", id); + } + return entity; + } + /** * 新增前置处理 * diff --git a/continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/base/IService.java b/continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/base/IService.java new file mode 100644 index 00000000..8e314922 --- /dev/null +++ b/continew-starter-extension/continew-starter-extension-crud/src/main/java/top/charles7c/continew/starter/extension/crud/base/IService.java @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved. + *

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

+ * http://www.gnu.org/licenses/lgpl.html + *

+ * 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.continew.starter.extension.crud.base; + +import java.io.Serializable; + +/** + * 通用业务接口 + * + * @param 实体类型 + * @author Charles7c + * @since 1.2.0 + */ +public interface IService { + + /** + * 根据 ID 查询 + * + * @param id ID + * @return 实体信息 + */ + T getById(Serializable id); +}