# demo-backend **Repository Path**: bugu_co/demo-backend ## Basic Information - **Project Name**: demo-backend - **Description**: 后端示例工程 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-01-04 - **Last Updated**: 2026-04-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 一 项目结构 demo-backend //整个工程的父工程 *** demo-backend //主体工程 demo-service //service, api,web、console都调用这一层的服务 com.lbx.{projectName} //服务的基础包, xxx是项目名称,如待办为todo,dhr为dhr等, 别太复杂 {moduleName} infra //仓储层, 自动生成,扩展的自行扩展 entity dao repo application //应用层, 你的大部分编码应该在这个部分 dto converter service demo-api // api服务, 不用用户鉴权,主要提供给其他服务或者三方 com.lbx.{projectName} {moduleName} service {domain}WebService.java {dto} xxxDto.java //可选 web {domain}Controller.java {projectName}Application.java demo-web // 为pc或者h5的客户端程序提供api,常规鉴权 * 同api module demo-console // 为管理后台提供api, 管理身份鉴权 * 同api module *** 二 规约 - 不要连表查询, 放弃依赖数据库实现业务逻辑 - 建议使用通用的infra, 否则随时会被覆盖 - 参考数据库规范 三 参考实例 - 关于条件查询 ```java User user = new User(); user.setNickname("allen"); user.setStatus(1); user.setIsDel(0); // 如果是等值查询,直接使用findByCondition系列, 参数直接放到参数对象中 PageInfo pageInfo = userRepo.findByConditionWithPage(pageNum, pageSize, user); List userList = userRepo.findByCondition(pageNum, pageSize, user); // 如果有非等值查询,为了减少mapper文件中写sql的复杂度,使用search系列。ISeg和Entity对象可以自由组合 ISeg seg = CommonSeg.of(User.class) .ge(User::getUpdateTime, new Date()) // updateTime 大于当前时间 .like(User::getUsername, "张三") // username like "张三" .leftLike(User::getUsername, "张三") // username like "张三%" 左匹配 .rightLike(User::getUsername, "张三") // username like "%张三" 右匹配 .notLike(User::getUsername, "张三") // username not like "张三" 不匹配 .between(User::getStatus, 1, 5) // username between "张三" and "张s" .notBetween(User::getStatus, 2, 3) // username not between "张三" and "张s" .in(User::getUsername, "张三", "李四") // username in ("张三", "李四") .notIn(User::getUsername, "王五", "赵六"); // username not in ("王五", "赵六") BaseRepo.SearchBuilder searchBuilder = userRepo.buildSearch(pageNum, pageSize, user, seg); // 可以追加排序信息 按需添加,如果没有, 默认 id desc排序 searchBuilder.orderBy(User::getUpdateTime).desc(); searchBuilder.orderBy(User::getStatus).asc(); // 获取分页数据 pageInfo = searchBuilder.pageInfo(); // 获取列表数据 userList = searchBuilder.list(); ```