
创建模板

domain
##导入宏定义
$!define
##保存文件(宏定义)
#save("/domain", ".java")
##包路径(宏定义)
#setPackageSuffix("domain")
##自动导入包(全局变量)
$!autoImport
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
##表注释(宏定义)
#tableComment("表实体类")
@ApiModel(description = "${tableInfo.comment}")
@Data
@Accessors(chain = true)
@SuppressWarnings("serial")
public class $!{tableInfo.name} implements Serializable {
private static final long serialVersionUID = $!tool.serial();
#foreach($column in $tableInfo.fullColumn)
@ApiModelProperty(name = "${column.name}", value = "${column.comment}")
private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end
}
效果
package com.companyname.modulename.domain;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* 通行记录(AccessRecords)表实体类
*
* @author hmxchen
* @since 2021-08-11 19:38:22
*/
@ApiModel(description = "通行记录")
@Data
@Accessors(chain = true)
@SuppressWarnings("serial")
public class AccessRecords implements Serializable {
private static final long serialVersionUID = -96145207466012299L;
@ApiModelProperty(name = "id", value = "${column.comment}")
private Long id;
@ApiModelProperty(name = "equipmentId", value = "设备id")
private Long equipmentId;
@ApiModelProperty(name = "jobId", value = "职位id")
private Long jobId;
@ApiModelProperty(name = "userId", value = "用户id")
private Long userId;
@ApiModelProperty(name = "recorType", value = "通行记录类型")
private String recorType;
@ApiModelProperty(name = "deviceUserId", value = "设备用户标识(蓝牙设备:用户id,人脸设备:设备的用户id:用户id_职位id_是否跨日)")
private String deviceUserId;
@ApiModelProperty(name = "userName", value = "用户名")
private String userName;
@ApiModelProperty(name = "time", value = "打卡记录时间")
private Date time;
@ApiModelProperty(name = "isCross", value = "是否跨日")
private Boolean isCross;
@ApiModelProperty(name = "checkInfoId", value = "打卡任务id")
private Long checkInfoId;
@ApiModelProperty(name = "clockType", value = "打卡类型(1:上班,2:下班)")
private Boolean clockType;
@ApiModelProperty(name = "faceUrl", value = "人脸图片路径")
private String faceUrl;
@ApiModelProperty(name = "createTime", value = "创建时间")
private Date createTime;
@ApiModelProperty(name = "updateTime", value = "更新时间")
private Date updateTime;
}
service
##导入宏定义
$!define
##设置表后缀(宏定义)
#setTableSuffix("ServiceI")
##保存文件(宏定义)
#save("/service", "ServiceI.java")
##包路径(宏定义)
#setPackageSuffix("service")
import com.baomidou.mybatisplus.extension.service.IService;
import $!{tableInfo.savePackageName}.domain.$!tableInfo.name;
##表注释(宏定义)
#tableComment("表服务接口")
public interface $!{tableName} extends IService<$!tableInfo.name> {
}
效果
package com.companyname.modulename.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.companyname.modulename.domain.AccessRecords;
/**
* 通行记录(AccessRecords)表服务接口
*
* @author hmxchen
* @since 2021-08-11 19:38:50
*/
public interface AccessRecordsServiceI extends IService<AccessRecords> {
}
serviceImpl
##导入宏定义
$!define
##设置表后缀(宏定义)
#setTableSuffix("ServiceImpl")
##保存文件(宏定义)
#save("/service/impl", "ServiceImpl.java")
##包路径(宏定义)
#setPackageSuffix("service.impl")
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import $!{tableInfo.savePackageName}.dao.$!{tableInfo.name}Mapper;
import $!{tableInfo.savePackageName}.domain.$!{tableInfo.name};
import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
##表注释(宏定义)
#tableComment("表服务实现类")
@Service
@Slf4j
public class $!{tableName} extends ServiceImpl<$!{tableInfo.name}Mapper, $!{tableInfo.name}> implements $!{tableInfo.name}ServiceI {
}
效果
package com.companyname.modulename.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.companyname.modulename.dao.AccessRecordsMapper;
import com.companyname.modulename.domain.AccessRecords;
import com.companyname.modulename.service.AccessRecordsService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* 通行记录(AccessRecords)表服务实现类
*
* @author hmxchen
* @since 2021-08-11 19:39:12
*/
@Service
@Slf4j
public class AccessRecordsServiceImpl extends ServiceImpl<AccessRecordsMapper, AccessRecords> implements AccessRecordsServiceI {
}
controller
##导入宏定义
$!define
##设置表后缀(宏定义)
#setTableSuffix("Controller")
##保存文件(宏定义)
#save("/controller", "Controller.java")
##包路径(宏定义)
#setPackageSuffix("controller")
##定义服务名
#set($serviceName = $!tool.append($!tool.firstLowerCase($!tableInfo.name), "Service"))
##定义实体对象名
#set($entityName = $!tool.firstLowerCase($!tableInfo.name))
$!autoImport
import com.tongdao.recruit.V202107.enums.result.ResultObject;
import com.tongdao.recruit.V202107.enums.result.ResultStatusEnum;
import org.springframework.web.bind.annotation.*;
import lombok.extern.slf4j.Slf4j;
import lombok.AllArgsConstructor;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import $!{tableInfo.savePackageName}.domain.$!tableInfo.name;
import $!{tableInfo.savePackageName}.domain.$!{entityName}DTO.*;
import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}ServiceI;
##表注释(宏定义)
#tableComment("表控制层")
@RestController
@RequestMapping("/$!tool.firstLowerCase($!tableInfo.name)")
@AllArgsConstructor
@Slf4j
@Api(tags = "${tableInfo.comment}(${tableInfo.name})APi")
public class $!{tableName} {
/**
* 服务对象
*/
private final $!{tableInfo.name}ServiceI $!{serviceName};
/**
* 通过主键查询单条数据
*
* @param id 主键
* @return 单条数据
*/
@GetMapping("/{id}")
@ApiOperation(value = "获取单个${tableInfo.comment}")
public ResultObject<$!{tableInfo.name}CO> selectOne(@PathVariable("id") Long id) {
return ResultStatusEnum.SUCCESS.ok($!{tableInfo.name}CO.from($!{serviceName}.getById(id)));
}
/**
* 新增数据
*
* @param $!entityName 实体对象
* @return 新增结果
*/
@PostMapping
@ApiOperation(value = "新增${tableInfo.comment}")
public ResultObject insert(@RequestBody $!{tableInfo.name}InsertCmd $!entityName) {
$!{serviceName}.save($!{entityName}.toModel());
return ResultStatusEnum.SUCCESS.ok();
}
/**
* 修改数据
*
* @param $!entityName 实体对象
* @return 修改结果
*/
@PutMapping
@ApiOperation(value = "修改${tableInfo.comment}")
public ResultObject update(@RequestBody $!{tableInfo.name}UpdateCmd $!entityName) {
$!{serviceName}.updateById($!{entityName}.toModel());
return ResultStatusEnum.SUCCESS.ok();
}
/**
* 删除数据
*
* @param id 主键结合
* @return 删除结果
*/
@DeleteMapping("/{id}")
@ApiOperation(value = "删除${tableInfo.comment}")
public ResultObject delete(@PathVariable("id") Long id) {
return ResultStatusEnum.SUCCESS.ok();
}
}
效果
package com.companyname.modulename.controller;
import java.util.Date;
import com.tongdao.recruit.V202107.enums.result.ResultObject;
import com.tongdao.recruit.V202107.enums.result.ResultStatusEnum;
import org.springframework.web.bind.annotation.*;
import lombok.extern.slf4j.Slf4j;
import lombok.AllArgsConstructor;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.companyname.modulename.domain.AccessRecords;
import com.companyname.modulename.domain.accessRecordsDTO.*;
import com.companyname.modulename.service.AccessRecordsServiceI;
/**
* 通行记录(AccessRecords)表控制层
*
* @author hmxchen
* @since 2021-08-11 19:39:44
*/
@RestController
@RequestMapping("/accessRecords")
@AllArgsConstructor
@Slf4j
@Api(tags = "通行记录(AccessRecords)APi")
public class AccessRecordsController {
/**
* 服务对象
*/
private final AccessRecordsServiceI accessRecordsService;
/**
* 通过主键查询单条数据
*
* @param id 主键
* @return 单条数据
*/
@GetMapping("/{id}")
@ApiOperation(value = "获取单个通行记录")
public ResultObject<AccessRecordsCO> selectOne(@PathVariable("id") Long id) {
return ResultStatusEnum.SUCCESS.ok(AccessRecordsCO.from(accessRecordsService.getById(id)));
}
/**
* 新增数据
*
* @param accessRecords 实体对象
* @return 新增结果
*/
@PostMapping
@ApiOperation(value = "新增通行记录")
public ResultObject insert(@RequestBody AccessRecordsInsertCmd accessRecords) {
accessRecordsService.save(accessRecords.toModel());
return ResultStatusEnum.SUCCESS.ok();
}
/**
* 修改数据
*
* @param accessRecords 实体对象
* @return 修改结果
*/
@PutMapping
@ApiOperation(value = "修改通行记录")
public ResultObject update(@RequestBody AccessRecordsUpdateCmd accessRecords) {
accessRecordsService.updateById(accessRecords.toModel());
return ResultStatusEnum.SUCCESS.ok();
}
/**
* 删除数据
*
* @param id 主键结合
* @return 删除结果
*/
@DeleteMapping("/{id}")
@ApiOperation(value = "删除通行记录")
public ResultObject delete(@PathVariable("id") Long id) {
return ResultStatusEnum.SUCCESS.ok();
}
}
mapper
##导入宏定义
$!define
##设置表后缀(宏定义)
#setTableSuffix("Mapper")
##保存文件(宏定义)
#save("/mapper", "Mapper.java")
##包路径(宏定义)
#setPackageSuffix("Mapper")
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import $!{tableInfo.savePackageName}.domain.$!tableInfo.name;
##表注释(宏定义)
#tableComment("表数据库访问层")
@Repository
public interface $!{tableName} extends BaseMapper<$!tableInfo.name> {
}
效果
package com.companyname.modulename.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.companyname.modulename.domain.AccessRecords;
/**
* 通行记录(AccessRecords)表数据库访问层
*
* @author hmxchen
* @since 2021-08-11 19:40:03
*/
@Repository
public interface AccessRecordsMapper extends BaseMapper<AccessRecords> {
}
insertCmd
##导入宏定义
$!define
#set($entityName = $!tool.firstLowerCase($!tableInfo.name))
##设置表后缀(宏定义)
#setTableSuffix("InsertCmd")
##保存文件(宏定义)
#save("/domain/${entityName}DTO", "InsertCmd.java")
##包路径(宏定义)
#setPackageSuffix("domain.${entityName}DTO")
##定义实体对象名
##自动导入包(全局变量)
$!autoImport
import cn.hutool.core.bean.BeanUtil;
import $!{tableInfo.savePackageName}.domain.$!tableInfo.name;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
##表注释(宏定义)
#tableComment("表实体类")
@ApiModel(description = "${tableInfo.comment}新增")
@Data
@Accessors(chain = true)
@SuppressWarnings("serial")
public class $!{tableInfo.name}InsertCmd implements Serializable {
private static final long serialVersionUID = $!tool.serial();
#foreach($column in $tableInfo.fullColumn)
@ApiModelProperty(name = "${column.name}", value = "${column.comment}")
private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end
public static $!{tableInfo.name} toModel(){
return BeanUtil.toBean(this,$!{tableInfo.name}.class);
}
}
效果
package com.companyname.modulename.domain.accessRecordsDTO;
import java.util.Date;
import cn.hutool.core.bean.BeanUtil;
import com.companyname.modulename.domain.AccessRecords;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* 通行记录(AccessRecords)表实体类
*
* @author hmxchen
* @since 2021-08-11 19:40:22
*/
@ApiModel(description = "通行记录新增")
@Data
@Accessors(chain = true)
@SuppressWarnings("serial")
public class AccessRecordsInsertCmd implements Serializable {
private static final long serialVersionUID = 304250113438957906L;
@ApiModelProperty(name = "id", value = "${column.comment}")
private Long id;
@ApiModelProperty(name = "equipmentId", value = "设备id")
private Long equipmentId;
@ApiModelProperty(name = "jobId", value = "职位id")
private Long jobId;
@ApiModelProperty(name = "userId", value = "用户id")
private Long userId;
@ApiModelProperty(name = "recorType", value = "通行记录类型")
private String recorType;
@ApiModelProperty(name = "deviceUserId", value = "设备用户标识(蓝牙设备:用户id,人脸设备:设备的用户id:用户id_职位id_是否跨日)")
private String deviceUserId;
@ApiModelProperty(name = "userName", value = "用户名")
private String userName;
@ApiModelProperty(name = "time", value = "打卡记录时间")
private Date time;
@ApiModelProperty(name = "isCross", value = "是否跨日")
private Boolean isCross;
@ApiModelProperty(name = "checkInfoId", value = "打卡任务id")
private Long checkInfoId;
@ApiModelProperty(name = "clockType", value = "打卡类型(1:上班,2:下班)")
private Boolean clockType;
@ApiModelProperty(name = "faceUrl", value = "人脸图片路径")
private String faceUrl;
@ApiModelProperty(name = "createTime", value = "创建时间")
private Date createTime;
@ApiModelProperty(name = "updateTime", value = "更新时间")
private Date updateTime;
public static AccessRecords toModel(){
return BeanUtil.toBean(this,AccessRecords.class);
}
}
updateCmd
##导入宏定义
$!define
#set($entityName = $!tool.firstLowerCase($!tableInfo.name))
##设置表后缀(宏定义)
#setTableSuffix("UpdateCmd")
##保存文件(宏定义)
#save("/domain/${entityName}DTO", "UpdateCmd.java")
##包路径(宏定义)
#setPackageSuffix("domain.${entityName}DTO")
##定义实体对象名
##自动导入包(全局变量)
$!autoImport
import cn.hutool.core.bean.BeanUtil;
import $!{tableInfo.savePackageName}.domain.$!tableInfo.name;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
##表注释(宏定义)
#tableComment("表实体类")
@ApiModel(description = "${tableInfo.comment}更新")
@Data
@Accessors(chain = true)
@SuppressWarnings("serial")
public class $!{tableInfo.name}UpdateCmd implements Serializable {
private static final long serialVersionUID = $!tool.serial();
#foreach($column in $tableInfo.fullColumn)
@ApiModelProperty(name = "${column.name}", value = "${column.comment}")
private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end
public static $!{tableInfo.name} toModel(){
return BeanUtil.toBean(this,$!{tableInfo.name}.class);
}
}
效果
package com.companyname.modulename.domain.accessRecordsDTO;
import java.util.Date;
import cn.hutool.core.bean.BeanUtil;
import com.companyname.modulename.domain.AccessRecords;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* 通行记录(AccessRecords)表实体类
*
* @author hmxchen
* @since 2021-08-11 19:40:40
*/
@ApiModel(description = "通行记录更新")
@Data
@Accessors(chain = true)
@SuppressWarnings("serial")
public class AccessRecordsUpdateCmd implements Serializable {
private static final long serialVersionUID = -84673493181239661L;
@ApiModelProperty(name = "id", value = "${column.comment}")
private Long id;
@ApiModelProperty(name = "equipmentId", value = "设备id")
private Long equipmentId;
@ApiModelProperty(name = "jobId", value = "职位id")
private Long jobId;
@ApiModelProperty(name = "userId", value = "用户id")
private Long userId;
@ApiModelProperty(name = "recorType", value = "通行记录类型")
private String recorType;
@ApiModelProperty(name = "deviceUserId", value = "设备用户标识(蓝牙设备:用户id,人脸设备:设备的用户id:用户id_职位id_是否跨日)")
private String deviceUserId;
@ApiModelProperty(name = "userName", value = "用户名")
private String userName;
@ApiModelProperty(name = "time", value = "打卡记录时间")
private Date time;
@ApiModelProperty(name = "isCross", value = "是否跨日")
private Boolean isCross;
@ApiModelProperty(name = "checkInfoId", value = "打卡任务id")
private Long checkInfoId;
@ApiModelProperty(name = "clockType", value = "打卡类型(1:上班,2:下班)")
private Boolean clockType;
@ApiModelProperty(name = "faceUrl", value = "人脸图片路径")
private String faceUrl;
@ApiModelProperty(name = "createTime", value = "创建时间")
private Date createTime;
@ApiModelProperty(name = "updateTime", value = "更新时间")
private Date updateTime;
public static AccessRecords toModel(){
return BeanUtil.toBean(this,AccessRecords.class);
}
}
dataCO
##导入宏定义
$!define
#set($entityName = $!tool.firstLowerCase($!tableInfo.name))
##设置表后缀(宏定义)
#setTableSuffix("CO")
##保存文件(宏定义)
#save("/domain/${entityName}DTO", "CO.java")
##包路径(宏定义)
#setPackageSuffix("domain.${entityName}DTO")
##定义实体对象名
##自动导入包(全局变量)
$!autoImport
import cn.hutool.core.convert.Convert;
import $!{tableInfo.savePackageName}.domain.$!tableInfo.name;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
##表注释(宏定义)
#tableComment("表实体类")
@ApiModel(description = "${tableInfo.comment}更新")
@Data
@Accessors(chain = true)
@SuppressWarnings("serial")
public class $!{tableInfo.name}CO implements Serializable {
private static final long serialVersionUID = $!tool.serial();
#foreach($column in $tableInfo.fullColumn)
@ApiModelProperty(name = "${column.name}", value = "${column.comment}")
private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end
public static $!{tableInfo.name}CO from($!tableInfo.name $!entityName){
return Convert.convert($!{tableInfo.name}CO.class,$!entityName);
}
}
效果
package com.companyname.modulename.domain.accessRecordsDTO;
import java.util.Date;
import cn.hutool.core.convert.Convert;
import com.companyname.modulename.domain.AccessRecords;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* 通行记录(AccessRecords)表实体类
*
* @author hmxchen
* @since 2021-08-11 19:41:01
*/
@ApiModel(description = "通行记录更新")
@Data
@Accessors(chain = true)
@SuppressWarnings("serial")
public class AccessRecordsCO implements Serializable {
private static final long serialVersionUID = -94311291821611763L;
@ApiModelProperty(name = "id", value = "${column.comment}")
private Long id;
@ApiModelProperty(name = "equipmentId", value = "设备id")
private Long equipmentId;
@ApiModelProperty(name = "jobId", value = "职位id")
private Long jobId;
@ApiModelProperty(name = "userId", value = "用户id")
private Long userId;
@ApiModelProperty(name = "recorType", value = "通行记录类型")
private String recorType;
@ApiModelProperty(name = "deviceUserId", value = "设备用户标识(蓝牙设备:用户id,人脸设备:设备的用户id:用户id_职位id_是否跨日)")
private String deviceUserId;
@ApiModelProperty(name = "userName", value = "用户名")
private String userName;
@ApiModelProperty(name = "time", value = "打卡记录时间")
private Date time;
@ApiModelProperty(name = "isCross", value = "是否跨日")
private Boolean isCross;
@ApiModelProperty(name = "checkInfoId", value = "打卡任务id")
private Long checkInfoId;
@ApiModelProperty(name = "clockType", value = "打卡类型(1:上班,2:下班)")
private Boolean clockType;
@ApiModelProperty(name = "faceUrl", value = "人脸图片路径")
private String faceUrl;
@ApiModelProperty(name = "createTime", value = "创建时间")
private Date createTime;
@ApiModelProperty(name = "updateTime", value = "更新时间")
private Date updateTime;
public static AccessRecordsCO from(AccessRecords accessRecords){
return Convert.convert(AccessRecordsCO.class,accessRecords);
}
}
mapperXML
##导入宏定义
$!define
#set($entityName = $!tool.firstLowerCase($!tableInfo.name))
##保存文件(宏定义)
#save("/mapper/xml", "Mapper.xml")
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="$!{tableInfo.savePackageName}.mapper.$!{tableInfo.name}Mapper">
</mapper>
效果
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.companyname.modulename.mapper.AccessRecordsMapper">
</mapper>
我写好的模板token
40d3b2bdcc799208ab120e586f320b5f
使用方法:


填入即可,保存时间7*24
|