TMGG开源
首页
GitHub
首页
GitHub
  • 快速上手
  • 编码特性说明
  • 扩展插件

    • 扩展插件 - Kettle
    • 扩展模块 - 支付
    • 扩展插件 - 流程引擎
  • 前端手册

    • 开始
    • 组件
    • 工具类
    • UI 规范
  • 日志文件
  • 常见问题
  • 其他

注入json请求的keys

如果需要获取前端提交数据的keys

通常用于更新指定字段

可通过在controller的方法参数中增加 RequestBodyKeys updateFields

示例

   @HasPermission
   @PostMapping("save")
   public AjaxResult save(@RequestBody T input, RequestBodyKeys updateFields) throws Exception {
         service.saveOrUpdate(input,updateFields);
       return AjaxResult.ok().msg("保存成功");
   }

前后端交互式,分页从1开始

动态显示字段

app端请求时隐藏字段, 如createUser,updateTime等字段

使用示例:

@JsonIgnoreForApp
private String updateUser;

更新指定字段

对比save方法更新的时所有字段,只更新指定字段

直接更新指定字段

不会先find,再更新 对比save方法更新的时所有字段,改方法只更新指定字段 注意:主要用于更新单个实体的字段, 不能更新多对多等关联关系

数据库自动生成备注

根据注解 @Remark

id生成策略

默认的id生成策略是uuid, 可通过实体类型上增加注解@CustomId改变 支持自定义前缀,长度,类型等 支持样式如下,具体可参考IdStyle枚举

  • UUID
  • DATETIME_UUID
  • DATETIME_SEQ
  • DAILY_SEQ :每日id从1重新计数。例子: 用户表,prefix="USR_", idStyle=DAILY_SEQ, length=16的情况 :USR_202504060001,USR_202504060002

时间范围

前端可使用组件 FieldDateRange, 参考ISO 8601 时间间隔格式 存储格式:开始时间/结束时间 如:2023-01-01/2023-01-01 后端构造查询条件时,可使用 ```java JpaQuery q=new JpaQuery(); q.betweenIsoDateRange("createTime",dateRange); ```

定义字段为数据字典

在字段上增加 @DictField 注解

会话

框架使用session, 并缓存在内存或硬盘

代码中可直接使用HttpSession存储一些登录用户的数据

为什么使用session认证 为了集成一些第三方功能页面,如 ureport。 使用session后,不用再考虑集成认证。

开放接口

@see DefaultApi

作业调度

示例代码

package io.tmgg.modules.job.builtin;

import io.tmgg.lang.field.FieldInfo;
import io.tmgg.modules.job.JobDesc;
import io.tmgg.modules.job.JobTool;
import org.quartz.*;
import org.slf4j.Logger;

/**
 * 示例作业
 */
@DisallowConcurrentExecution // 不允许并发则加这个注解
@JobDesc(label = "示例作业", params = {@FieldInfo(name = "msg", label = "打印信息")})
public class DemoJob implements Job {

    private static final Logger log = JobTool.getLogger();


    @Override
    public void execute(JobExecutionContext e) throws JobExecutionException {
        log.info("开始执行任务");

        // 获取参数
        JobDataMap data = JobTool.getData(e);
        String msg = data.getString("msg");


        System.out.println("控制台打印:" +msg);
        log.info("日志打印信息:{}", msg);

        e.setResult("结果:成功");
    }
}

初始化数据

初始化的数据可以放到resources/database目录,系统启动时回自动解析保存入库

数据格式为json, key为实体名称,value为数据数组。每个字段都对应实体,如果字段是枚举,填写枚举值即可 例如


{
  "SysMenu": [
    {
      "application": "system",
      "id": "sysOrg",
      "name": "机构管理",
      "code": "sysOrg",
      "router": "/system/org",
      "type": "MENU",
      "status": "ENABLE",
      "visible": "Y",
      "icon": "ApartmentOutlined",
      "seq": "1"
    }
  ]
}

特殊字段

  • $update true|false 控制数据是否更新
  • $pk String 默认是通过id来判断是否存在,以便判断是新增还是更新操作,如果想通过其他字段判断唯一性,如 $pk:"code"
Edit this page
最近更新:: 2025/9/8 02:28
Prev
快速上手