const currentPage = dv.current().file;
const dailyPages = dv.pages('"0-Daily"').sort(k=>k.file.name, "asc");
const currentPageName = currentPage.name;
const index = dailyPages.findIndex((e) => {return e.file.name === currentPageName});
if (index < 1) {
	dv.table(["File", "Created", "Size"],[]);
} else {
	const lastIndex = index - 1;
	const lastPage = dailyPages[lastIndex].file;
	const allPages = dv.pages().values;
	const searchPages = [];
	
	const lastTime = dv.parse(lastPage.name);
	const currentTime = dv.parse(currentPage.name);
 
	for (let page of allPages) {
		const pageFile = page.file;
		if (pageFile.cday > lastTime && pageFile.cday <= currentTime) {
		  searchPages.push(pageFile);
		}
	}
	dv.table(["File", "Created", "Size"], searchPages.sort((a, b) => a.ctime > b.ctime ? 1 : -1).map(b => [b.link, b.ctime, b.size]));
}
 

Jimmer

一套针对Java和Kotlin的革命性ORM,以及一套基于它的完整的集成方案 (包含一套强大的缓存管理机制)

功能

  • 查询任意形状的数据结构 👁 
    • GraphQL HTTP服务的能力被拓展成无处不在本地代码行为
    • 精确控制每个属性是否需要查询
    • 可对自关联属性进行递归查询 
    • 统一不同数据关联,对开发者透明
      • 数据库中的关联 
      • 自定义计算属性 
      • 跨越微服务的远程关联 
      • 优先读取缓存
  • 保存任意数据结构 👁 
    • 快速开发任意复杂的表单保存业务 👁
    • 对同一个聚合根类型而言,多种不同表单格式的保存业务可并存
  • 缓存及其一致性 
    • 丰富底层缓存类型,上层抽象任意数据结构
      • 对象缓存 👁 
      • 关联缓存 👁 
      • 计算缓存 👁 
    • 自由控制各数据是否启用缓存,精确到属性
    • 透明性。各数据是否启用缓存对代码无影响。缓存逻辑破坏代码简洁性的痛苦一去不复返
    • 多级缓存支持,采用多少级,每一级采用什么缓存技术由用户决定
    • 多视图缓存,不同用户看到不同的缓存 👁 
    • 强大的一致性。其中,对象缓存和关联缓存的一致性是全自动的,无需任何开发 👁 
  • 计算属性 
    • 计算逻辑和ORM解耦,可以利用业务信息(如身份权限)计算,允许使用非SQL技术
    • 不仅可以是标量属性,还可以是关联属性
  • 远程关联 
    • 跨越微服务的数据关联
    • 对微服务治理框架不做假设
    • 将不同微服务的关系型模型,合并成一个全局的关系模型
  • 强类型SQL DSL
    • Jimmer独创的隐式动态table join,填补行业空白 👁 
    • 可混入NativeSQL片段,不再惧怕通用DSL无法使用特定数据库特的非通用功能 
    • 编译时发现问题,不再惧怕重构
    • 良好的IDE智能提示,流畅开发
  • 前后端免对接 👁 
    • 消除后端开发的DTO爆炸,从以传统开发方式(尤其是MyBatis)的重复劳动中解脱出来
    • 为前端自动生成TypeScript代码,在前端代码中恢复DTO类型定义,让每个业务接口都有精确的返回类型定义
    • 把后端异常映射为前端可理解错误信息
  • 全局过滤器 
    • 为实体类添加过滤条件,自动应用于绝大部分查询
    • 内置软删除过滤器支持 
    • 多视角缓存,过滤器导致不同的用户看到不同数据,相应地,不同的用户可看到不同的缓存 👁 
  • 智能分页 
    • 用户编写data询,自动生成count查询,并自动优化去掉非必要table join 
    • 如果分页查询期望的观察区域在分页前所有数据的后半部分,进行反排序优化 
    • 当页码过大时,自动变换查询方式 
  • DTO语言 
    • 自动生成DTO类型的Java/Kotlin定义
    • 自动生成实体和DTO之间的相互转化逻辑
    • 自动生成查询DTO查询逻辑
  • 极致性能 👁 
    • ORM本身的映射性能极高,发挥虚拟线程的威力
    • 不会如传统 ORM 一样被新手诱导出低性能 SQL