外观
查询增强
技术交流QQ群:3549030
分页查询增强
普通的需求利用Kongfu封装的queryPage即可,但有时候,遇到特殊情况需要对查询的结果做相关处理,比如某些字段不返回、做脱敏处理等,怎么办呢?我们的做法是采用增强的方式来达到目的。
下面我们用用户管理模块的分页查询为例来讲解用法。
用户管理分页查询
通过增强处理,实现两个需求:
将机构编码翻译成机构名称
移除password字段,不允许返回
代码实现如下:
java
@Api(value = "系统用户表", tags = "系统用户表接口")
@Path("/sys-user")
public class SysUserController extends KungfuController {
public void queryPage() {
// 通过增强处理
// 1. 将机构编码翻译成机构名称
// 2. 移除password字段,不允许返回
renderJson(R.ok("data", sysUserService.wapperQueryPage(queryPage(SysUser.class))));
}
}
java
public class SysUserService extends KungfuService<SysUser> {
public Page<Record> wapperQueryPage(Page<Record> page) {
Map<String, String> codeNameMap = new HashMap<>();
// 需要查机构编码及机构名称
Db.findByCache("sysOrg", "ogrCodeNameMap", "select org_name, org_code from sys_org").forEach(record -> codeNameMap.put(record.getStr("org_code"), record.getStr("org_name")));
page.getList().forEach(record -> {
// 将机构编码翻译成机构名称
record.set("orgName", codeNameMap.get(record.getStr("orgCode")));
// 移除password字段,不允许返回
record.remove("password");
});
return page;
}
}
创建应用
友情提示
- 通过缓存方案,可以大大提高机构名称翻译的效率
- 通过移除敏感字段,提高系统的安全性
你get到了吗?