🗃️ 执行数据库相关的变化, 添加实体的相关的审计字段

This commit is contained in:
卢本伟 committed 2022-04-15 15:32:46 +08:00
1 parent 2d8b6446c8
commit 1f9efacd1d
13 files changed
+342 -153

No files matched your search

@@ -29,6 +29,8 @@ import com.pig4cloud.pigx.common.data.datascope.PigxDefaultDatascopeHandle;
import com.pig4cloud.pigx.common.data.resolver.SqlFilterArgumentResolver; import com.pig4cloud.pigx.common.data.resolver.SqlFilterArgumentResolver;
import com.pig4cloud.pigx.common.data.tenant.PigxTenantHandler; import com.pig4cloud.pigx.common.data.tenant.PigxTenantHandler;
import com.pig4cloud.pigx.common.security.service.PigxUser; import com.pig4cloud.pigx.common.security.service.PigxUser;
import org.apache.ibatis.mapping.DatabaseIdProvider;
import org.apache.ibatis.mapping.VendorDatabaseIdProvider;
import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
@@ -42,6 +44,7 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import javax.sql.DataSource; import javax.sql.DataSource;
import java.util.List; import java.util.List;
import java.util.Properties;
/** /**
* @author lengleng * @author lengleng
@@ -133,4 +136,17 @@ public class MybatisPlusConfiguration implements WebMvcConfigurer {
return new MybatisPlusMetaObjectHandler(); return new MybatisPlusMetaObjectHandler();
} }
/**
* 数据库方言配置
* @return
*/
@Bean
public DatabaseIdProvider databaseIdProvider() {
VendorDatabaseIdProvider databaseIdProvider = new VendorDatabaseIdProvider();
Properties properties = new Properties();
properties.setProperty("SQL Server", "mssql");
databaseIdProvider.setProperties(properties);
return databaseIdProvider;
}
} }
@@ -63,6 +63,20 @@ public class SysDept extends Model<SysDept> {
@ApiModelProperty(value = "排序值") @ApiModelProperty(value = "排序值")
private Integer sortOrder; private Integer sortOrder;
/**
* 创建人
*/
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "创建人")
private String createBy;
/**
* 修改人
*/
@TableField(fill = FieldFill.UPDATE)
@ApiModelProperty(value = "修改人")
private String updateBy;
/** /**
* 创建时间 * 创建时间
*/ */
@@ -83,6 +83,20 @@ public class SysDict extends Model<SysDict> {
@ApiModelProperty(value = "备注信息") @ApiModelProperty(value = "备注信息")
private String remarks; private String remarks;
/**
* 创建人
*/
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "创建人")
private String createBy;
/**
* 修改人
*/
@TableField(fill = FieldFill.UPDATE)
@ApiModelProperty(value = "修改人")
private String updateBy;
/** /**
* 删除标记 * 删除标记
*/ */
@@ -83,6 +83,20 @@ public class SysDictItem extends Model<SysDictItem> {
@ApiModelProperty(value = "排序值,默认升序") @ApiModelProperty(value = "排序值,默认升序")
private Integer sortOrder; private Integer sortOrder;
/**
* 创建人
*/
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "创建人")
private String createBy;
/**
* 修改人
*/
@TableField(fill = FieldFill.UPDATE)
@ApiModelProperty(value = "修改人")
private String updateBy;
/** /**
* 创建时间 * 创建时间
*/ */
@@ -103,6 +103,20 @@ public class SysMenu extends Model<SysMenu> {
@ApiModelProperty(value = "路由缓冲") @ApiModelProperty(value = "路由缓冲")
private String keepAlive; private String keepAlive;
/**
* 创建人
*/
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "创建人")
private String createBy;
/**
* 修改人
*/
@TableField(fill = FieldFill.UPDATE)
@ApiModelProperty(value = "修改人")
private String updateBy;
/** /**
* 创建时间 * 创建时间
*/ */
@@ -27,6 +27,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;
/** /**
* <p> * <p>
@@ -124,4 +125,32 @@ public class SysOauthClientDetails extends Model<SysOauthClientDetails> {
@ApiModelProperty(value = "删除标记,1:已删除,0:正常") @ApiModelProperty(value = "删除标记,1:已删除,0:正常")
private String delFlag; private String delFlag;
/**
* 创建人
*/
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "创建人")
private String createBy;
/**
* 修改人
*/
@TableField(fill = FieldFill.UPDATE)
@ApiModelProperty(value = "修改人")
private String updateBy;
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "创建时间")
private LocalDateTime createTime;
/**
* 更新时间
*/
@TableField(fill = FieldFill.UPDATE)
@ApiModelProperty(value = "更新时间")
private LocalDateTime updateTime;
} }
@@ -26,7 +26,6 @@ import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime; import java.time.LocalDateTime;
/** /**
@@ -77,10 +76,25 @@ public class SysPost extends Model<SysPost> {
@ApiModelProperty(value = "岗位描述") @ApiModelProperty(value = "岗位描述")
private String remark; private String remark;
/**
* 创建人
*/
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "创建人")
private String createBy;
/**
* 修改人
*/
@TableField(fill = FieldFill.UPDATE)
@ApiModelProperty(value = "修改人")
private String updateBy;
/** /**
* 是否删除 -1:已删除 0:正常 * 是否删除 -1:已删除 0:正常
*/ */
@TableLogic @TableLogic
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "是否删除 -1:已删除 0:正常") @ApiModelProperty(value = "是否删除 -1:已删除 0:正常")
private String delFlag; private String delFlag;
@@ -88,6 +88,20 @@ public class SysPublicParam extends Model<SysPublicParam> {
@ApiModelProperty(value = "类型[1-检索;2-原文...]", example = "1") @ApiModelProperty(value = "类型[1-检索;2-原文...]", example = "1")
private String publicType; private String publicType;
/**
* 创建人
*/
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "创建人")
private String createBy;
/**
* 修改人
*/
@TableField(fill = FieldFill.UPDATE)
@ApiModelProperty(value = "修改人")
private String updateBy;
/** /**
* 删除标记 * 删除标记
*/ */
@@ -70,6 +70,20 @@ public class SysRole extends Model<SysRole> {
@ApiModelProperty(value = "数据权限作用范围") @ApiModelProperty(value = "数据权限作用范围")
private String dsScope; private String dsScope;
/**
* 创建人
*/
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "创建人")
private String createBy;
/**
* 修改人
*/
@TableField(fill = FieldFill.UPDATE)
@ApiModelProperty(value = "修改人")
private String updateBy;
/** /**
* 创建时间 * 创建时间
*/ */
@@ -80,6 +80,20 @@ public class SysSocialDetails extends Model<SysSocialDetails> {
@ApiModelProperty(value = "回调地址") @ApiModelProperty(value = "回调地址")
private String redirectUrl; private String redirectUrl;
/**
* 创建人
*/
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "创建人")
private String createBy;
/**
* 修改人
*/
@TableField(fill = FieldFill.UPDATE)
@ApiModelProperty(value = "修改人")
private String updateBy;
/** /**
* 创建时间 * 创建时间
*/ */
@@ -82,6 +82,20 @@ public class SysTenant extends Model<SysTenant> {
@ApiModelProperty(value = "租户冻结标记,9:冻结,0:正常") @ApiModelProperty(value = "租户冻结标记,9:冻结,0:正常")
private String status; private String status;
/**
* 创建人
*/
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "创建人")
private String createBy;
/**
* 修改人
*/
@TableField(fill = FieldFill.UPDATE)
@ApiModelProperty(value = "修改人")
private String updateBy;
/** /**
* 删除标记 * 删除标记
*/ */
@@ -68,6 +68,20 @@ public class SysUser implements Serializable {
@ApiModelProperty(value = "随机盐") @ApiModelProperty(value = "随机盐")
private String salt; private String salt;
/**
* 创建人
*/
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "创建人")
private String createBy;
/**
* 修改人
*/
@TableField(fill = FieldFill.UPDATE)
@ApiModelProperty(value = "修改人")
private String updateBy;
/** /**
* 创建时间 * 创建时间
*/ */
@@ -86,6 +100,7 @@ public class SysUser implements Serializable {
* 0-正常,1-删除 * 0-正常,1-删除
*/ */
@TableLogic @TableLogic
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "删除标记,1:已删除,0:正常") @ApiModelProperty(value = "删除标记,1:已删除,0:正常")
private String delFlag; private String delFlag;
@@ -20,63 +20,63 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pig4cloud.pigx.admin.mapper.SysUserMapper"> <mapper namespace="com.pig4cloud.pigx.admin.mapper.SysUserMapper">
<!-- 通用查询映射结果 --> <!-- 通用查询映射结果 -->
<resultMap id="baseResultMap" type="com.pig4cloud.pigx.admin.api.vo.UserVO"> <resultMap id="baseResultMap" type="com.pig4cloud.pigx.admin.api.vo.UserVO">
<id column="user_id" property="userId"/> <id column="user_id" property="userId"/>
<result column="username" property="username"/> <result column="username" property="username"/>
<result column="password" property="password"/> <result column="password" property="password"/>
<result column="salt" property="salt"/> <result column="salt" property="salt"/>
<result column="phone" property="phone"/> <result column="phone" property="phone"/>
<result column="avatar" property="avatar"/> <result column="avatar" property="avatar"/>
<result column="wx_openid" property="wxOpenid"/> <result column="wx_openid" property="wxOpenid"/>
<result column="qq_openid" property="qqOpenid"/> <result column="qq_openid" property="qqOpenid"/>
<result column="ucreate_time" property="createTime"/> <result column="ucreate_time" property="createTime"/>
<result column="uupdate_time" property="updateTime"/> <result column="uupdate_time" property="updateTime"/>
<result column="lock_flag" property="lockFlag"/> <result column="lock_flag" property="lockFlag"/>
<result column="udel_flag" property="delFlag"/> <result column="udel_flag" property="delFlag"/>
<result column="dept_id" property="deptId"/> <result column="dept_id" property="deptId"/>
<result column="tenant_id" property="tenantId"/> <result column="tenant_id" property="tenantId"/>
<result column="dept_name" property="deptName"/> <result column="dept_name" property="deptName"/>
<result column="nickname" property="nickname"/> <result column="nickname" property="nickname"/>
<result column="name" property="name"/> <result column="name" property="name"/>
<result column="email" property="email"/> <result column="email" property="email"/>
<collection property="roleList" ofType="com.pig4cloud.pigx.admin.api.entity.SysRole" <collection property="roleList" ofType="com.pig4cloud.pigx.admin.api.entity.SysRole"
select="com.pig4cloud.pigx.admin.mapper.SysRoleMapper.listRolesByUserId" column="user_id"> select="com.pig4cloud.pigx.admin.mapper.SysRoleMapper.listRolesByUserId" column="user_id">
</collection> </collection>
<collection property="postList" ofType="com.pig4cloud.pigx.admin.api.entity.SysPost" <collection property="postList" ofType="com.pig4cloud.pigx.admin.api.entity.SysPost"
select="com.pig4cloud.pigx.admin.mapper.SysPostMapper.listPostsByUserId" column="user_id"> select="com.pig4cloud.pigx.admin.mapper.SysPostMapper.listPostsByUserId" column="user_id">
</collection> </collection>
</resultMap> </resultMap>
<!-- userVo结果集 --> <!-- userVo结果集 -->
<resultMap id="userVoResultMap" type="com.pig4cloud.pigx.admin.api.vo.UserVO"> <resultMap id="userVoResultMap" type="com.pig4cloud.pigx.admin.api.vo.UserVO">
<id column="user_id" property="userId"/> <id column="user_id" property="userId"/>
<result column="username" property="username"/> <result column="username" property="username"/>
<result column="password" property="password"/> <result column="password" property="password"/>
<result column="salt" property="salt"/> <result column="salt" property="salt"/>
<result column="phone" property="phone"/> <result column="phone" property="phone"/>
<result column="avatar" property="avatar"/> <result column="avatar" property="avatar"/>
<result column="wx_openid" property="wxOpenid"/> <result column="wx_openid" property="wxOpenid"/>
<result column="qq_openid" property="qqOpenid"/> <result column="qq_openid" property="qqOpenid"/>
<result column="ucreate_time" property="createTime"/> <result column="ucreate_time" property="createTime"/>
<result column="uupdate_time" property="updateTime"/> <result column="uupdate_time" property="updateTime"/>
<result column="lock_flag" property="lockFlag"/> <result column="lock_flag" property="lockFlag"/>
<result column="del_flag" property="delFlag"/> <result column="del_flag" property="delFlag"/>
<result column="dept_id" property="deptId"/> <result column="dept_id" property="deptId"/>
<result column="tenant_id" property="tenantId"/> <result column="tenant_id" property="tenantId"/>
<result column="dept_name" property="deptName"/> <result column="dept_name" property="deptName"/>
<collection property="roleList" ofType="com.pig4cloud.pigx.admin.api.entity.SysRole"> <collection property="roleList" ofType="com.pig4cloud.pigx.admin.api.entity.SysRole">
<id column="role_id" property="roleId"/> <id column="role_id" property="roleId"/>
<result column="role_name" property="roleName"/> <result column="role_name" property="roleName"/>
<result column="role_code" property="roleCode"/> <result column="role_code" property="roleCode"/>
<result column="role_desc" property="roleDesc"/> <result column="role_desc" property="roleDesc"/>
<result column="rcreate_time" property="createTime"/> <result column="rcreate_time" property="createTime"/>
<result column="rupdate_time" property="updateTime"/> <result column="rupdate_time" property="updateTime"/>
</collection> </collection>
</resultMap> </resultMap>
<sql id="userRoleSql"> <sql id="userRoleSql">
u.user_id, u.user_id,
u.username, u.username,
u.password, u.password,
u.salt, u.salt,
@@ -96,13 +96,10 @@
r.role_desc, r.role_desc,
r.create_time rcreate_time, r.create_time rcreate_time,
r.update_time rupdate_time r.update_time rupdate_time
</sql> </sql>
<sql id="userRoleDeptSql"> <sql id="userRoleDeptSql">
u u.user_id,
.
user_id
,
u.username, u.username,
u.password, u.password,
u.salt, u.salt,
@@ -123,99 +120,105 @@
r.update_time rupdate_time, r.update_time rupdate_time,
d.name dept_name, d.name dept_name,
d.dept_id d.dept_id
</sql> </sql>
<select id="getUserVoByUsername" resultMap="userVoResultMap"> <select id="getUserVoByUsername" resultMap="userVoResultMap">
SELECT SELECT
<include refid="userRoleSql"/> <include refid="userRoleSql"/>
FROM FROM
sys_user u sys_user u
LEFT JOIN sys_user_role ur ON ur.user_id = u.user_id LEFT JOIN sys_user_role ur ON ur.user_id = u.user_id
LEFT JOIN sys_role r ON r.role_id = ur.role_id LEFT JOIN sys_role r ON r.role_id = ur.role_id
WHERE u.username = #{username} WHERE u.username = #{username}
</select> </select>
<select id="getUserVoById" resultMap="userVoResultMap"> <select id="getUserVoById" resultMap="userVoResultMap">
SELECT SELECT
<include refid="userRoleDeptSql"/> <include refid="userRoleDeptSql"/>
FROM FROM
sys_user u sys_user u
LEFT JOIN sys_user_role ur ON ur.user_id = u.user_id LEFT JOIN sys_user_role ur ON ur.user_id = u.user_id
LEFT JOIN sys_role r ON r.role_id = ur.role_id LEFT JOIN sys_role r ON r.role_id = ur.role_id
LEFT JOIN sys_dept d ON d.dept_id = u.dept_id LEFT JOIN sys_dept d ON d.dept_id = u.dept_id
WHERE WHERE
u.user_id = #{id} u.user_id = #{id}
</select> </select>
<select id="getUserVosPage" resultMap="baseResultMap"> <select id="getUserVosPage" resultMap="baseResultMap">
SELECT SELECT
u.user_id, u.user_id,
u.username, u.username,
u.password, u.password,
u.salt, u.salt,
u.phone, u.phone,
u.avatar, u.avatar,
u.wx_openid, u.wx_openid,
u.qq_openid, u.qq_openid,
u.dept_id, u.dept_id,
u.create_time ucreate_time, u.create_time ucreate_time,
u.update_time uupdate_time, u.update_time uupdate_time,
u.del_flag, u.del_flag,
u.lock_flag, u.lock_flag,
u.tenant_id, u.tenant_id,
u.nickname, u.nickname,
u.name, u.name,
u.email, u.email,
d.name dept_name d.name dept_name
FROM FROM
sys_user u sys_user u
LEFT JOIN sys_dept d ON d.dept_id = u.dept_id LEFT JOIN sys_dept d ON d.dept_id = u.dept_id
<where> <where>
u.del_flag = '0' u.del_flag = '0'
<if test="query.username != null and query.username != ''"> <if test="query.username != null and query.username != ''">
<bind name="usernameLike" value="'%'+query.username+'%'"/> <bind name="usernameLike" value="'%'+query.username+'%'"/>
AND u.username LIKE #{usernameLike} AND u.username LIKE #{usernameLike}
</if> </if>
<if test="query.deptId != null and query.deptId != ''"> <if test="query.deptId != null and query.deptId != ''">
AND u.dept_id = #{query.deptId} AND u.dept_id = #{query.deptId}
</if> </if>
</where> </where>
ORDER BY u.create_time DESC
</select>
<select id="selectVoListByScope" resultMap="baseResultMap"> <if test="_databaseId != 'mssql'">
SELECT ORDER BY u.create_time DESC
u.user_id, </if>
u.username, </select>
u.password,
u.salt, <select id="selectVoListByScope" resultMap="baseResultMap">
u.phone, SELECT
u.avatar, u.user_id,
u.wx_openid, u.username,
u.qq_openid, u.password,
u.dept_id, u.salt,
u.create_time ucreate_time, u.phone,
u.update_time uupdate_time, u.avatar,
u.del_flag, u.wx_openid,
u.lock_flag, u.qq_openid,
u.tenant_id, u.dept_id,
u.nickname, u.create_time ucreate_time,
u.name, u.update_time uupdate_time,
u.email, u.del_flag,
d.name dept_name u.lock_flag,
FROM u.tenant_id,
sys_user u u.nickname,
LEFT JOIN sys_dept d ON d.dept_id = u.dept_id u.name,
<where> u.email,
u.del_flag = '0' d.name dept_name
<if test="query.username != null and query.username != ''"> FROM
<bind name="usernameLike" value="'%'+query.username+'%'"/> sys_user u
AND u.username LIKE #{usernameLike} LEFT JOIN sys_dept d ON d.dept_id = u.dept_id
</if> <where>
<if test="query.deptId != null and query.deptId != ''"> u.del_flag = '0'
AND u.dept_id = #{query.deptId} <if test="query.username != null and query.username != ''">
</if> <bind name="usernameLike" value="'%'+query.username+'%'"/>
</where> AND u.username LIKE #{usernameLike}
ORDER BY u.create_time DESC </if>
</select> <if test="query.deptId != null and query.deptId != ''">
AND u.dept_id = #{query.deptId}
</if>
</where>
<if test="_databaseId != 'mssql'">
ORDER BY u.create_time DESC
</if>
</select>
</mapper> </mapper>