package com.hotent.common; import com.baomidou.mybatisplus.core.metadata.IPage; import com.hotent.base.model.CommonResult; import com.hotent.req.PageReq; import com.hotent.resp.PageResp; import javax.validation.Valid; import java.util.List; import java.util.function.Function; import java.util.function.Supplier; /** * 通用CRUD服务类 * 通过组合模式实现,避免使用抽象类 */ public class CrudService extends PageQueryService { /** * 通用创建方法 * @param createDto 创建参数 * @param createFunction 创建函数 * @param 返回类型 * @param 创建参数类型 * @return 创建结果 */ public CommonResult create(C createDto, Function createFunction) { try { T result = createFunction.apply(createDto); return CommonResult.ok().value(result).message("创建成功"); } catch (Exception e) { return CommonResult.error().message("创建失败:" + e.getMessage()); } } /** * 通用更新方法 * @param updateDto 更新参数 * @param updateFunction 更新函数 * @param 更新参数类型 * @return 更新结果 */ public CommonResult update(U updateDto, Function updateFunction) { try { boolean success = updateFunction.apply(updateDto); if (success) { return CommonResult.ok().message("更新成功"); } else { return CommonResult.error().message("更新失败"); } } catch (Exception e) { return CommonResult.error().message("更新失败:" + e.getMessage()); } } /** * 通用删除方法 * @param id 主键 * @param deleteFunction 删除函数 * @return 删除结果 */ public CommonResult delete(String id, Function deleteFunction) { try { boolean success = deleteFunction.apply(id); if (success) { return CommonResult.ok().message("删除成功"); } else { return CommonResult.error().message("删除失败"); } } catch (Exception e) { return CommonResult.error().message("删除失败:" + e.getMessage()); } } }