diff --git a/pangu-admin/pangu-admin-backend/logs/pangu.log.2022-09-10.0.gz b/pangu-admin/pangu-admin-backend/logs/pangu.log.2022-09-10.0.gz new file mode 100644 index 0000000000000000000000000000000000000000..2ff0813c3d3ead481c880ebe28d1de45b4a774a4 Binary files /dev/null and b/pangu-admin/pangu-admin-backend/logs/pangu.log.2022-09-10.0.gz differ diff --git a/pangu-admin/pangu-admin-backend/pangu-admin-system/pangu-admin-system-app/src/main/resources/application-dev.properties b/pangu-admin/pangu-admin-backend/pangu-admin-system/pangu-admin-system-app/src/main/resources/application-dev.properties index a6dd086be7816a19c9a1d6c9b93f15be39ffabbc..9a87a75cf3cffd0d4b4c370cf76337cced4ff220 100644 --- a/pangu-admin/pangu-admin-backend/pangu-admin-system/pangu-admin-system-app/src/main/resources/application-dev.properties +++ b/pangu-admin/pangu-admin-backend/pangu-admin-system/pangu-admin-system-app/src/main/resources/application-dev.properties @@ -39,5 +39,5 @@ pangu.jdbc.db-type=mysql logging.file.name=logs/pangu.log logging.level.root=INFO -logging.level.com.gitee.pulanos.pangu=info -logging.level.com.pulanit.pangu.admin.system.dao=debug \ No newline at end of file +logging.level.com.gitee.pulanos.pangu=INFO +logging.level.com.pulanit.pangu.admin.system.dao=DEBUG \ No newline at end of file diff --git a/pangu-admin/pangu-admin-backend/pangu-admin-web/src/main/java/com/pulanit/pangu/admin/web/system/RoleController.java b/pangu-admin/pangu-admin-backend/pangu-admin-web/src/main/java/com/pulanit/pangu/admin/web/system/RoleController.java index 9e2d8598c1b1f7364682ea99eef801980bd7d79e..0f707cd1fdd0493b87fe5d3a196aa32571ca8888 100644 --- a/pangu-admin/pangu-admin-backend/pangu-admin-web/src/main/java/com/pulanit/pangu/admin/web/system/RoleController.java +++ b/pangu-admin/pangu-admin-backend/pangu-admin-web/src/main/java/com/pulanit/pangu/admin/web/system/RoleController.java @@ -32,7 +32,6 @@ public class RoleController { */ @GetMapping("/list") public Result> list(RoleIn roleIn) { - Console.log(roleIn); PageResult pageResult = roleService.list(roleIn); return Result.success(pageResult); } diff --git "a/pangu-website/docs/advanced-guide/\346\225\260\346\215\256\346\214\201\344\271\205\345\214\226.md" "b/pangu-website/docs/advanced-guide/\346\225\260\346\215\256\346\214\201\344\271\205\345\214\226.md" index 6b53649b7bedd65e2bf139912d92c3fc3345e355..df7f39573f6435d9b73b1278f84f5b9f347dcf9f 100644 --- "a/pangu-website/docs/advanced-guide/\346\225\260\346\215\256\346\214\201\344\271\205\345\214\226.md" +++ "b/pangu-website/docs/advanced-guide/\346\225\260\346\215\256\346\214\201\344\271\205\345\214\226.md" @@ -204,6 +204,30 @@ public void aPageQuery(){ #### 基于手工映射 SQL 的分页查询 继续阅读本文后面的 [《手工编写SQL映射》](#手工编写sql映射) 章节可以找到。 +#### 一个完整的分页查询例子 +```jsx +// 分页入参对象 +public class RoleIn extends Page { + private String name; +} + +// Controller +@GetMapping("/list") +public Result> list(RoleIn roleIn) { + PageResult pageResult = roleService.list(roleIn); + return Result.success(pageResult); +} + +// Service实现 +public PageResult list(RoleIn roleIn) { + Page page = PagingUtil.createPage(roleIn); + LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(); + lambdaQueryWrapper.like(ObjectUtil.isNotEmpty(roleIn.getName()), RoleEntity::getName, roleIn.getName()); + roleMapper.selectPage(page, lambdaQueryWrapper); + return PagingUtil.getPageResult(page); +} +``` + ### 手工编写SQL映射 :::tip 一般来说在日常开发中我们是不需要再编写SQL代码的,Mapper API已经能满足我们的需求了。但对于一些特殊需求,我们也可以手工写SQL映射的方式来处理。如下范例演示了手工SQL查询的操作,新增、修改、删除也是同理。 @@ -245,27 +269,10 @@ public void bSelect() { @Mapper public interface CrudMapper { - /** - * 分页查询 - * @param page 分页查询对象 - * @param param - * @return - */ List listUsersByPage(Page page, Map param); - /** - * 分页查询 - * @param page 分页查询对象 - * @param userType - * @return - */ List> listUserMapsByPage(Page> page, String userType); - /** - * 普通集合查询 - * @param param - * @return - */ List listUsersByMap(Map param); } @@ -311,22 +318,20 @@ public interface CrudMapper { ### 事务 单一数据源事务,直接使用 Spring 事务相关注解即可( `@EnableTransactionManagement`、`@Transactional` )。对于分布式事务请参阅 [《分布式事务》](/docs/advanced-guide/distributed-transaction) 章节。 -### 字段值自动填充 -Coming soon... - ### 逻辑删除 -Coming soon... - -## 启动入口 -```jsx {5} -@EnableTransactionManagement -@SpringBootApplication -public class CrudApplication { - public static void main(String[] args) { - PanGuApplicationBuilder.init(CrudApplication.class).run(args); - } -} +盘古框架借助 Mybatis Plus 对逻辑删除提供了非常友好的支持。通过如下简单配置即可实现从物理删除到逻辑删除在 CRUD 上面的无感体验。 +```jsx +# 指定逻辑删除的标识字段 +mybatis-plus.global-config.db-config.logic-delete-field=deleted +# 删除前的缺省值 +mybatis-plus.global-config.db-config.logic-not-delete-value=0 +# 删除后的值 +mybatis-plus.global-config.db-config.logic-delete-value=id ``` +#### 配置说明 +- 逻辑删除字段 deleted 建议通过数据库设置默认值 0。 +- 删除后的值建议不用 1,这会带来某字段需要唯一索引时的尴尬问题。因此建议将删除后的值更新为当前记录的 ID 字段值,如上配置所示。这时如果表中某字段需要建立唯一索引,则可以和 deleted 字段一起创建联合唯一索引。 +- 查询和更新操作,框架会自动拼接逻辑删除字段作为条件。(AND deleted = 0) ## 本文相关范例源码 - [pangu-examples-crud](https://gitee.com/pulanos/pangu-framework/tree/master/pangu-examples/pangu-examples-crud):数据持久化参考范例