feat:修复已知问题,提升系统稳定性

This commit is contained in:
njydsz
2024-09-25 11:38:06 +08:00
parent bbed2aadbc
commit 8d094e48ac
493 changed files with 5108 additions and 22521 deletions

View File

@@ -7,34 +7,20 @@
<description>remi-demo-domain</description>
<parent>
<groupId>ai.remi.top.cloud</groupId>
<groupId>ai.remi.top.demo</groupId>
<artifactId>remi-demo</artifactId>
<version>3.1.1</version>
<version>3.1.0</version>
</parent>
<!-- 打包上传到私服, 需要和配置文件中的server节点配合使用 -->
<distributionManagement>
<repository>
<id>maven-releases</id>
<name>release</name>
<url>https://repository.njydsz.com/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>maven-snapshots</id>
<name>snapshot</name>
<url>https://repository.njydsz.com/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
<dependencies>
<!--remi-comm-domain-->
<dependency>
<groupId>ai.remi.top.cloud</groupId>
<groupId>ai.remi.top.comm</groupId>
<artifactId>remi-comm-domain</artifactId>
</dependency>
<!--remi-comm-swagger-->
<dependency>
<groupId>ai.remi.top.cloud</groupId>
<groupId>ai.remi.top.comm</groupId>
<artifactId>remi-comm-swagger</artifactId>
</dependency>
<!-- Lombok -->

View File

@@ -1,4 +1,4 @@
package ai.remi.demo.domain.constant;
package ai.remi.boot.domain.constant;
/**
* 单点登录基础常量

View File

@@ -0,0 +1,56 @@
package ai.remi.boot.domain.converter;
import ai.remi.boot.domain.dto.post.UserPostDTO;
import ai.remi.boot.domain.dto.put.UserPutDTO;
import ai.remi.boot.domain.entity.User;
import ai.remi.boot.domain.query.UserQuery;
import ai.remi.boot.domain.vo.UserVO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;
/**
* @author DianJiu
* @email dianjiuxyz@gmail.com
* @desc 用户表 UserConverter转换接口
*/
@Mapper
public interface UserConverter {
UserConverter INSTANT = Mappers.getMapper(UserConverter.class);
@Mapping(target = "id", ignore = true)
@Mapping(target = "deleted", ignore = true)
@Mapping(target = "revision", ignore = true)
@Mapping(target = "deptTenantId", ignore = true)
@Mapping(target = "companyTenantId", ignore = true)
@Mapping(target = "createdBy", ignore = true)
@Mapping(target = "createdAt", ignore = true)
@Mapping(target = "updatedBy", ignore = true)
@Mapping(target = "updatedAt", ignore = true)
User postDtoToEntity(UserPostDTO userDTO);
@Mapping(target = "deleted", ignore = true)
@Mapping(target = "revision", ignore = true)
@Mapping(target = "deptTenantId", ignore = true)
@Mapping(target = "companyTenantId", ignore = true)
@Mapping(target = "createdBy", ignore = true)
@Mapping(target = "createdAt", ignore = true)
@Mapping(target = "updatedBy", ignore = true)
@Mapping(target = "updatedAt", ignore = true)
User putDtoToEntity(UserPutDTO userDTO);
@Mapping(target = "deleted", ignore = true)
@Mapping(target = "revision", ignore = true)
@Mapping(target = "deptTenantId", ignore = true)
@Mapping(target = "companyTenantId", ignore = true)
@Mapping(target = "createdBy", ignore = true)
@Mapping(target = "createdAt", ignore = true)
@Mapping(target = "updatedBy", ignore = true)
@Mapping(target = "updatedAt", ignore = true)
User queryToEntity(UserQuery userQuery);
UserVO entityToVO(User user);
}

View File

@@ -0,0 +1,195 @@
package ai.remi.boot.domain.dto.post;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* @author DianJiu
* @email dianjiuxyz@gmail.com
* @desc 用户表 UserDTO对象
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ToString(callSuper = true)
@Schema(description = "用户表")
public class UserPostDTO implements Serializable {
private static final long serialVersionUID = -48342054464737753L;
/**
* 所属公司ID
*/
@Schema(description = "所属公司ID")
private String companyId;
/**
* 所属公司编码
*/
@Schema(description = "所属公司编码")
private String companyCode;
/**
* 所属部门ID
*/
@Schema(description = "所属部门ID")
private String deptId;
/**
* 所属部门编码
*/
@Schema(description = "所属部门编码")
private String deptCode;
/**
* 用户编码/员工工号
*/
@Schema(description = "用户编码/员工工号")
private String userCode;
/**
* 用户名称
*/
@Schema(description = "用户名称")
private String userName;
/**
* 用户英文名称
*/
@Schema(description = "用户英文名称")
private String userNameEn;
/**
* 用户首名(东方为姓,西方为名)
*/
@Schema(description = "用户首名(东方为姓,西方为名)")
private String firstName;
/**
* 用户中名(欧美人常用)
*/
@Schema(description = "用户中名(欧美人常用)")
private String middleName;
/**
* 用户末名(东方为名,西方为姓)
*/
@Schema(description = "用户末名(东方为名,西方为姓)")
private String lastName;
/**
* 用户昵称/别号
*/
@Schema(description = "用户昵称/别号")
private String nickName;
/**
* 登录账号
*/
@Schema(description = "登录账号")
private String loginName;
/**
* 登录密码
*/
@Schema(description = "登录密码")
private String password;
/**
* 职位ID
*/
@Schema(description = "职位ID")
private String positionId;
/**
* 职位编码
*/
@Schema(description = "职位编码")
private String positionCode;
/**
* 职级ID
*/
@Schema(description = "职级ID")
private String rankId;
/**
* 职级编码
*/
@Schema(description = "职级编码")
private String rankCode;
/**
* 用户描述
*/
@Schema(description = "用户描述")
private String userRemark;
/**
* 出生日期
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@Schema(description = "出生日期")
private LocalDate birthday;
/**
* 证件号码
*/
@Schema(description = "证件号码")
private String identity;
/**
* 电话号码
*/
@Schema(description = "电话号码")
private String phone;
/**
* 电子邮箱
*/
@Schema(description = "电子邮箱")
private String email;
/**
* 用户性别(0女性 1男性)
*/
@Schema(description = "用户性别(0女性 1男性)")
private Integer sex;
/**
* 头像地址
*/
@Schema(description = "头像地址")
private String headPic;
/**
* 最后登录IP
*/
@Schema(description = "最后登录IP")
private String loginIp;
/**
* 最后登录时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@Schema(description = "最后登录时间")
private LocalDateTime loginDate;
/**
* 是否启用(0停用 1启用)
*/
@Schema(description = "是否启用(0停用 1启用)")
private Integer status;
}

View File

@@ -0,0 +1,201 @@
package ai.remi.boot.domain.dto.put;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* @author DianJiu
* @email dianjiuxyz@gmail.com
* @desc 用户表 UserDTO对象
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ToString(callSuper = true)
@Schema(description = "用户表")
public class UserPutDTO implements Serializable {
private static final long serialVersionUID = -67424143626189045L;
/**
* ID
*/
@Schema(description = "ID")
private String id;
/**
* 所属公司ID
*/
@Schema(description = "所属公司ID")
private String companyId;
/**
* 所属公司编码
*/
@Schema(description = "所属公司编码")
private String companyCode;
/**
* 所属部门ID
*/
@Schema(description = "所属部门ID")
private String deptId;
/**
* 所属部门编码
*/
@Schema(description = "所属部门编码")
private String deptCode;
/**
* 用户编码/员工工号
*/
@Schema(description = "用户编码/员工工号")
private String userCode;
/**
* 用户名称
*/
@Schema(description = "用户名称")
private String userName;
/**
* 用户英文名称
*/
@Schema(description = "用户英文名称")
private String userNameEn;
/**
* 用户首名(东方为姓,西方为名)
*/
@Schema(description = "用户首名(东方为姓,西方为名)")
private String firstName;
/**
* 用户中名(欧美人常用)
*/
@Schema(description = "用户中名(欧美人常用)")
private String middleName;
/**
* 用户末名(东方为名,西方为姓)
*/
@Schema(description = "用户末名(东方为名,西方为姓)")
private String lastName;
/**
* 用户昵称/别号
*/
@Schema(description = "用户昵称/别号")
private String nickName;
/**
* 登录账号
*/
@Schema(description = "登录账号")
private String loginName;
/**
* 登录密码
*/
@Schema(description = "登录密码")
private String password;
/**
* 职位ID
*/
@Schema(description = "职位ID")
private String positionId;
/**
* 职位编码
*/
@Schema(description = "职位编码")
private String positionCode;
/**
* 职级ID
*/
@Schema(description = "职级ID")
private String rankId;
/**
* 职级编码
*/
@Schema(description = "职级编码")
private String rankCode;
/**
* 用户描述
*/
@Schema(description = "用户描述")
private String userRemark;
/**
* 出生日期
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@Schema(description = "出生日期")
private LocalDate birthday;
/**
* 证件号码
*/
@Schema(description = "证件号码")
private String identity;
/**
* 电话号码
*/
@Schema(description = "电话号码")
private String phone;
/**
* 电子邮箱
*/
@Schema(description = "电子邮箱")
private String email;
/**
* 用户性别(0女性 1男性)
*/
@Schema(description = "用户性别(0女性 1男性)")
private Integer sex;
/**
* 头像地址
*/
@Schema(description = "头像地址")
private String headPic;
/**
* 最后登录IP
*/
@Schema(description = "最后登录IP")
private String loginIp;
/**
* 最后登录时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@Schema(description = "最后登录时间")
private LocalDateTime loginDate;
/**
* 是否启用(0停用 1启用)
*/
@Schema(description = "是否启用(0停用 1启用)")
private Integer status;
}

View File

@@ -0,0 +1,123 @@
package ai.remi.boot.domain.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import ai.remi.comm.domain.entity.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* @author DianJiu
* @email dianjiuxyz@gmail.com
* @desc 用户表 UserDTO对象
*/
@Data
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
@TableName("remi_user")
public class User extends BaseEntity {
/**
* 用户编码/员工工号
*/
private String userCode;
/**
* 登录账号
*/
private String loginName;
/**
* 用户名称
*/
private String userName;
/**
* 用户英文名称
*/
private String userNameEn;
/**
* 用户首名(东方为姓,西方为名)
*/
private String firstName;
/**
* 用户中名(欧美人常用)
*/
private String middleName;
/**
* 用户末名(东方为名,西方为姓)
*/
private String lastName;
/**
* 用户昵称/别号
*/
private String nickName;
/**
* 用户描述
*/
private String userRemark;
/**
* 登录密码
*/
private String password;
/**
* 出生日期
*/
private LocalDate birthday;
/**
* 证件号码
*/
private String identity;
/**
* 电话号码
*/
private String phone;
/**
* 电子邮箱
*/
private String email;
/**
* 用户性别(0女性 1男性)
*/
private Integer sex;
/**
* 头像地址
*/
private String headPic;
/**
* 最后登录IP
*/
private String loginIp;
/**
* 最后登录时间
*/
private LocalDateTime loginDate;
/**
* 是否启用(0停用 1启用)
*/
private Integer status;
}

View File

@@ -0,0 +1,39 @@
package ai.remi.boot.domain.enums;
import cn.hutool.core.util.StrUtil;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* Redis key枚举类
*
* @author dianjiu
* @date 2021-12-7 16:10:35
*/
@Getter
@AllArgsConstructor
public enum SsoCacheEnum {
/**
* 客户登录token,24小时失效 1:{} = customerId 2:{} = token 使用方式 RedisKeysEnum.CUSTOMER_LOGIN_TOKEN.getKey(customerId,token)
*/
APP_CODE("remi-saas-iam:app-code:{}:{}"),
USER_INFO("remi-saas-iam:user-info:{}"),
TICKET("remi-saas-iam:ticket:{}"),
AUTH_CODE("remi-saas-iam:auth-code:{}"),
ACCESS_TOKEN("remi-saas-iam:access-token:{}"),
REFRESH_TOKEN("remi-saas-iam:refresh-token:{}");
/**
* redis key
*/
private String key;
/**
* key失效时间,单位秒
*/
//private Long expireAt;
public String getKey(String... key) {
return StrUtil.format(this.key, key);
}
}

View File

@@ -0,0 +1,177 @@
package ai.remi.boot.domain.query;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* @author DianJiu
* @email dianjiuxyz@gmail.com
* @desc 用户表 UserQuery对象
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ToString(callSuper = true)
@Schema(description = "用户表")
public class UserQuery implements Serializable {
private static final long serialVersionUID = 441095565282363416L;
/**
* ID
*/
@Schema(description = "ID")
private String id;
/**
* 用户编码/员工工号
*/
@Schema(description = "用户编码/员工工号")
private String userCode;
/**
* 所属公司ID
*/
@Schema(description = "所属公司ID")
private String companyId;
/**
* 所属公司编码
*/
@Schema(description = "所属公司编码")
private String companyCode;
/**
* 所属部门ID
*/
@Schema(description = "所属部门ID")
private String deptId;
/**
* 所属部门编码
*/
@Schema(description = "所属部门编码")
private String deptCode;
/**
* 登录账号
*/
@Schema(description = "登录账号")
private String loginName;
/**
* 用户名称
*/
@Schema(description = "用户名称")
private String userName;
/**
* 用户英文名称
*/
@Schema(description = "用户英文名称")
private String userNameEn;
/**
* 用户首名(东方为姓,西方为名)
*/
@Schema(description = "用户首名(东方为姓,西方为名)")
private String firstName;
/**
* 用户中名(欧美人常用)
*/
@Schema(description = "用户中名(欧美人常用)")
private String middleName;
/**
* 用户末名(东方为名,西方为姓)
*/
@Schema(description = "用户末名(东方为名,西方为姓)")
private String lastName;
/**
* 用户昵称/别号
*/
@Schema(description = "用户昵称/别号")
private String nickName;
/**
* 用户描述
*/
@Schema(description = "用户描述")
private String userRemark;
/**
* 登录密码
*/
@Schema(description = "登录密码")
private String password;
/**
* 出生日期
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@Schema(description = "出生日期")
private LocalDate birthday;
/**
* 证件号码
*/
@Schema(description = "证件号码")
private String identity;
/**
* 电话号码
*/
@Schema(description = "电话号码")
private String phone;
/**
* 电子邮箱
*/
@Schema(description = "电子邮箱")
private String email;
/**
* 用户性别(0女性 1男性)
*/
@Schema(description = "用户性别(0女性 1男性)")
private Integer sex;
/**
* 头像地址
*/
@Schema(description = "头像地址")
private String headPic;
/**
* 最后登录IP
*/
@Schema(description = "最后登录IP")
private String loginIp;
/**
* 最后登录时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@Schema(description = "最后登录时间")
private LocalDateTime loginDate;
/**
* 是否启用(0停用 1启用)
*/
@Schema(description = "是否启用(0停用 1启用)")
private Integer status;
}

View File

@@ -0,0 +1,131 @@
package ai.remi.boot.domain.tree;
import com.fasterxml.jackson.annotation.JsonFormat;
import ai.remi.comm.domain.tree.TreeNode;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.SuperBuilder;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* @author Remi
* @email startdis@dianjiukeji.cn
* @desc 部门表 DeptVO对象
*/
@Data
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
@ToString(callSuper = true)
@Schema(description = "业务组织")
public class GroupTree extends TreeNode<GroupTree> implements Serializable {
private static final long serialVersionUID = 505874294590378764L;
/**
* ID
*/
@Schema(description = "ID")
private String id;
/**
* 父菜单ID
*/
@Schema(description = "父菜单ID")
private String parentId;
/**
* 应用ID
*/
@Schema(description = "应用ID")
private String appId;
/**
* 应用编码
*/
@Schema(description = "应用编码")
private String appCode;
/**
* 用户组编码
*/
@Schema(description = "用户组编码")
private String groupCode;
/**
* 用户组名称
*/
@Schema(description = "用户组名称")
private String groupName;
/**
* 用户组英文名称
*/
@Schema(description = "用户组英文名称")
private String groupNameEn;
/**
* 用户组描述
*/
@Schema(description = "用户组描述")
private String groupRemark;
/**
* 用户组英文描述
*/
@Schema(description = "用户组英文描述")
private String groupRemarkEn;
/**
* 显示顺序
*/
@Schema(description = "显示顺序")
private Integer sort;
/**
* 是否启用(0停用 1启用)
*/
@Schema(description = "是否启用(0停用 1启用)")
private Integer status;
/**
* 是否删除(0正常 1删除)
*/
@Schema(description = "是否删除(0正常 1删除)")
private Integer deleted;
/**
* 乐观锁
*/
@Schema(description = "乐观锁")
private Integer revision;
/**
* 部门租户ID
*/
@Schema(description = "部门租户ID")
private String deptTenantId;
/**
* 公司租户ID
*/
@Schema(description = "公司租户ID")
private String companyTenantId;
/**
* 创建人
*/
@Schema(description = "创建人")
private String createdBy;
/**
* 创建时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@Schema(description = "创建时间")
private LocalDateTime createdAt;
/**
* 更新人
*/
@Schema(description = "更新人")
private String updatedBy;
/**
* 更新时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@Schema(description = "更新时间")
private LocalDateTime updatedAt;
}

View File

@@ -0,0 +1,294 @@
package ai.remi.boot.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
/**
* @author DianJiu
* @email dianjiuxyz@gmail.com
* @desc 用户表 UserVO对象
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ToString(callSuper = true)
@Schema(description = "用户表")
public class UserVO implements Serializable {
private static final long serialVersionUID = -23942899880966373L;
/**
* ID
*/
@Schema(description = "ID")
private String id;
/**
* 用户编码/员工工号
*/
@Schema(description = "用户编码/员工工号")
private String userCode;
/**
* 所属公司ID
*/
@Schema(description = "所属公司ID")
private String companyId;
/**
* 所属公司编码
*/
@Schema(description = "所属公司编码")
private String companyCode;
/**
* 所属部门ID
*/
@Schema(description = "所属部门ID")
private String deptId;
/**
* 所属部门编码
*/
@Schema(description = "所属部门编码")
private String deptCode;
/**
* 用户名称
*/
@Schema(description = "用户名称")
private String userName;
/**
* 用户英文名称
*/
@Schema(description = "用户英文名称")
private String userNameEn;
/**
* 用户首名(东方为姓,西方为名)
*/
@Schema(description = "用户首名(东方为姓,西方为名)")
private String firstName;
/**
* 用户中名(欧美人常用)
*/
@Schema(description = "用户中名(欧美人常用)")
private String middleName;
/**
* 用户末名(东方为名,西方为姓)
*/
@Schema(description = "用户末名(东方为名,西方为姓)")
private String lastName;
/**
* 用户昵称/别号
*/
@Schema(description = "用户昵称/别号")
private String nickName;
/**
* 登录账号
*/
@Schema(description = "登录账号")
private String loginName;
/**
* 登录密码
*/
@Schema(description = "登录密码")
private String password;
/**
* 职位ID
*/
@Schema(description = "职位ID")
private String positionId;
/**
* 职位编码
*/
@Schema(description = "职位编码")
private String positionCode;
/**
* 职位名称
*/
@Schema(description = "职位名称")
private String positionName;
/**
* 岗位英文名称
*/
@Schema(description = "职位英文名称")
private String positionNameEn;
/**
* 职级ID
*/
@Schema(description = "职级ID")
private String rankId;
/**
* 职级编码
*/
@Schema(description = "职级编码")
private String rankCode;
/**
* 职级名称
*/
@Schema(description = "职级名称")
private String rankName;
/**
* 职级英文名称
*/
@Schema(description = "职级英文名称")
private String rankNameEn;
/**
* 用户描述
*/
@Schema(description = "用户描述")
private String userRemark;
/**
* 出生日期
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@Schema(description = "出生日期")
private LocalDate birthday;
/**
* 证件号码
*/
@Schema(description = "证件号码")
private String identity;
/**
* 电话号码
*/
@Schema(description = "电话号码")
private String phone;
/**
* 电子邮箱
*/
@Schema(description = "电子邮箱")
private String email;
/**
* 用户性别(0女性 1男性)
*/
@Schema(description = "用户性别(0女性 1男性)")
private Integer sex;
/**
* 头像地址
*/
@Schema(description = "头像地址")
private String headPic;
/**
* 最后登录IP
*/
@Schema(description = "最后登录IP")
private String loginIp;
/**
* 用户角色集合
*/
@Schema(description = "用户角色集合")
private List<RoleVO> userRoles;
/**
* 用户菜单集合
*/
@Schema(description = "用户菜单集合")
private List<AppMenuVO> userMenus;
/**
* 应用的全局配置
*/
@Schema(description = "用户全局配置")
private List<ConfigVO> appConfigs;
/**
* 最后登录时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@Schema(description = "最后登录时间")
private LocalDateTime loginDate;
/**
* 是否启用(0停用 1启用)
*/
@Schema(description = "是否启用(0停用 1启用)")
private Integer status;
/**
* 是否删除(0正常 1删除)
*/
@Schema(description = "是否删除(0正常 1删除)")
private Integer deleted;
/**
* 乐观锁
*/
@Schema(description = "乐观锁")
private Long revision;
/**
* 部门租户ID
*/
@Schema(description = "部门租户ID")
private String deptTenantId;
/**
* 公司租户ID
*/
@Schema(description = "公司租户ID")
private String companyTenantId;
/**
* 创建人
*/
@Schema(description = "创建人")
private String createdBy;
/**
* 创建时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@Schema(description = "创建时间")
private LocalDateTime createdAt;
/**
* 更新人
*/
@Schema(description = "更新人")
private String updatedBy;
/**
* 更新时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@Schema(description = "更新时间")
private LocalDateTime updatedAt;
}