refactor: migrate SysNotice to manage-notify module
This commit is contained in:
+9
@@ -0,0 +1,9 @@
|
||||
package cn.novalon.manage.db.config;
|
||||
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@Configuration
|
||||
@ComponentScan(basePackages = "cn.novalon.manage.db.repository")
|
||||
public class RepositoryScanConfig {
|
||||
}
|
||||
+7
-1
@@ -1,12 +1,18 @@
|
||||
package cn.novalon.manage.db.converter;
|
||||
|
||||
import cn.novalon.manage.common.domain.Dictionary;
|
||||
import cn.novalon.manage.sys.core.domain.Dictionary;
|
||||
import cn.novalon.manage.db.entity.DictionaryEntity;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 字典实体转换器
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Component
|
||||
public class DictionaryConverter {
|
||||
|
||||
|
||||
+8
-1
@@ -1,12 +1,19 @@
|
||||
package cn.novalon.manage.db.converter;
|
||||
|
||||
import cn.novalon.manage.common.domain.OperationLog;
|
||||
import cn.novalon.manage.sys.core.domain.OperationLog;
|
||||
import cn.novalon.manage.db.entity.OperationLogEntity;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 操作日志实体转换器
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Component
|
||||
public class OperationLogConverter {
|
||||
|
||||
|
||||
+7
-2
@@ -1,6 +1,6 @@
|
||||
package cn.novalon.manage.db.converter;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysConfig;
|
||||
import cn.novalon.manage.sys.core.domain.SysConfig;
|
||||
import cn.novalon.manage.db.entity.SysConfigEntity;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -8,8 +8,13 @@ import org.springframework.stereotype.Component;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 系统配置实体转换器
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Component
|
||||
|
||||
public class SysConfigConverter {
|
||||
|
||||
public SysConfig toDomain(SysConfigEntity entity) {
|
||||
|
||||
+7
-2
@@ -1,6 +1,6 @@
|
||||
package cn.novalon.manage.db.converter;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysDictData;
|
||||
import cn.novalon.manage.sys.core.domain.SysDictData;
|
||||
import cn.novalon.manage.db.entity.SysDictDataEntity;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -8,8 +8,13 @@ import org.springframework.stereotype.Component;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 字典数据实体转换器
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Component
|
||||
|
||||
public class SysDictDataConverter {
|
||||
|
||||
public SysDictData toDomain(SysDictDataEntity entity) {
|
||||
|
||||
+7
-2
@@ -1,6 +1,6 @@
|
||||
package cn.novalon.manage.db.converter;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysDictType;
|
||||
import cn.novalon.manage.sys.core.domain.SysDictType;
|
||||
import cn.novalon.manage.db.entity.SysDictTypeEntity;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -8,8 +8,13 @@ import org.springframework.stereotype.Component;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 字典类型实体转换器
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Component
|
||||
|
||||
public class SysDictTypeConverter {
|
||||
|
||||
public SysDictType toDomain(SysDictTypeEntity entity) {
|
||||
|
||||
+7
-2
@@ -1,6 +1,6 @@
|
||||
package cn.novalon.manage.db.converter;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysExceptionLog;
|
||||
import cn.novalon.manage.sys.core.domain.SysExceptionLog;
|
||||
import cn.novalon.manage.db.entity.SysExceptionLogEntity;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -8,8 +8,13 @@ import org.springframework.stereotype.Component;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 异常日志实体转换器
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Component
|
||||
|
||||
public class SysExceptionLogConverter {
|
||||
|
||||
public SysExceptionLog toDomain(SysExceptionLogEntity entity) {
|
||||
|
||||
+7
-2
@@ -1,6 +1,6 @@
|
||||
package cn.novalon.manage.db.converter;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysFile;
|
||||
import cn.novalon.manage.sys.core.domain.SysFile;
|
||||
import cn.novalon.manage.db.entity.SysFileEntity;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -8,8 +8,13 @@ import org.springframework.stereotype.Component;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 文件实体转换器
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Component
|
||||
|
||||
public class SysFileConverter {
|
||||
|
||||
public SysFile toDomain(SysFileEntity entity) {
|
||||
|
||||
+7
-2
@@ -1,6 +1,6 @@
|
||||
package cn.novalon.manage.db.converter;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysLoginLog;
|
||||
import cn.novalon.manage.sys.core.domain.SysLoginLog;
|
||||
import cn.novalon.manage.db.entity.SysLoginLogEntity;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -8,8 +8,13 @@ import org.springframework.stereotype.Component;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 登录日志实体转换器
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Component
|
||||
|
||||
public class SysLoginLogConverter {
|
||||
|
||||
public SysLoginLog toDomain(SysLoginLogEntity entity) {
|
||||
|
||||
+11
-2
@@ -1,6 +1,6 @@
|
||||
package cn.novalon.manage.db.converter;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysMenu;
|
||||
import cn.novalon.manage.sys.core.domain.SysMenu;
|
||||
import cn.novalon.manage.db.entity.SysMenuEntity;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -8,8 +8,13 @@ import org.springframework.stereotype.Component;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 菜单实体转换器
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Component
|
||||
|
||||
public class SysMenuConverter {
|
||||
|
||||
public SysMenu toDomain(SysMenuEntity entity) {
|
||||
@@ -25,6 +30,8 @@ public class SysMenuConverter {
|
||||
domain.setPerms(entity.getPerms());
|
||||
domain.setComponent(entity.getComponent());
|
||||
domain.setStatus(entity.getStatus());
|
||||
domain.setCreateBy(entity.getCreateBy());
|
||||
domain.setUpdateBy(entity.getUpdateBy());
|
||||
domain.setCreatedAt(entity.getCreatedAt());
|
||||
domain.setUpdatedAt(entity.getUpdatedAt());
|
||||
domain.setDeletedAt(entity.getDeletedAt());
|
||||
@@ -44,6 +51,8 @@ public class SysMenuConverter {
|
||||
entity.setPerms(domain.getPerms());
|
||||
entity.setComponent(domain.getComponent());
|
||||
entity.setStatus(domain.getStatus());
|
||||
entity.setCreateBy(domain.getCreateBy());
|
||||
entity.setUpdateBy(domain.getUpdateBy());
|
||||
entity.setCreatedAt(domain.getCreatedAt());
|
||||
entity.setUpdatedAt(domain.getUpdatedAt());
|
||||
entity.setDeletedAt(domain.getDeletedAt());
|
||||
|
||||
+7
-2
@@ -1,6 +1,6 @@
|
||||
package cn.novalon.manage.db.converter;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysNotice;
|
||||
import cn.novalon.manage.notify.core.domain.SysNotice;
|
||||
import cn.novalon.manage.db.entity.SysNoticeEntity;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -8,8 +8,13 @@ import org.springframework.stereotype.Component;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 通知公告实体转换器
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Component
|
||||
|
||||
public class SysNoticeConverter {
|
||||
|
||||
public SysNotice toDomain(SysNoticeEntity entity) {
|
||||
|
||||
+7
-2
@@ -1,6 +1,6 @@
|
||||
package cn.novalon.manage.db.converter;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysRole;
|
||||
import cn.novalon.manage.sys.core.domain.SysRole;
|
||||
import cn.novalon.manage.db.entity.SysRoleEntity;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -8,8 +8,13 @@ import org.springframework.stereotype.Component;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 角色实体转换器
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Component
|
||||
|
||||
public class SysRoleConverter {
|
||||
|
||||
public SysRole toDomain(SysRoleEntity entity) {
|
||||
|
||||
+7
-2
@@ -1,6 +1,6 @@
|
||||
package cn.novalon.manage.db.converter;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysUser;
|
||||
import cn.novalon.manage.sys.core.domain.SysUser;
|
||||
import cn.novalon.manage.db.entity.SysUserEntity;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -8,8 +8,13 @@ import org.springframework.stereotype.Component;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 用户实体转换器
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Component
|
||||
|
||||
public class SysUserConverter {
|
||||
|
||||
public SysUser toDomain(SysUserEntity entity) {
|
||||
|
||||
+7
-2
@@ -1,6 +1,6 @@
|
||||
package cn.novalon.manage.db.converter;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysUserMessage;
|
||||
import cn.novalon.manage.sys.core.domain.SysUserMessage;
|
||||
import cn.novalon.manage.db.entity.SysUserMessageEntity;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -8,8 +8,13 @@ import org.springframework.stereotype.Component;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 用户消息实体转换器
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Component
|
||||
|
||||
public class SysUserMessageConverter {
|
||||
|
||||
public SysUserMessage toDomain(SysUserMessageEntity entity) {
|
||||
|
||||
@@ -6,6 +6,12 @@ import org.springframework.stereotype.Repository;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
/**
|
||||
* 字典数据访问接口
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Repository
|
||||
public interface DictionaryDao extends R2dbcRepository<DictionaryEntity, Long> {
|
||||
|
||||
|
||||
@@ -6,11 +6,11 @@ import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
/**
|
||||
* @author zhangxiang
|
||||
* @version 1.0
|
||||
* @description 查询字段注解
|
||||
* @date 2026/03/11
|
||||
**/
|
||||
* 查询字段注解
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Target(ElementType.FIELD)
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
public @interface QueryField {
|
||||
|
||||
@@ -15,11 +15,11 @@ import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author zhangxiang
|
||||
* @version 1.0
|
||||
* @description 查询工具类
|
||||
* @date 2026/03/11
|
||||
**/
|
||||
* 查询工具类
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
public class QueryUtil {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(QueryUtil.class);
|
||||
|
||||
@@ -7,6 +7,12 @@ import org.springframework.stereotype.Repository;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
/**
|
||||
* 用户数据访问接口
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Repository
|
||||
public interface SysUserDao extends R2dbcRepository<SysUserEntity, Long> {
|
||||
|
||||
@@ -23,4 +29,6 @@ public interface SysUserDao extends R2dbcRepository<SysUserEntity, Long> {
|
||||
Flux<SysUserEntity> findByDeletedAtIsNull(Sort sort);
|
||||
|
||||
Mono<Long> countByDeletedAtIsNull();
|
||||
|
||||
Flux<SysUserEntity> findByRoleId(Long roleId);
|
||||
}
|
||||
@@ -7,6 +7,12 @@ import org.springframework.data.relational.core.mapping.Column;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 数据库实体基类
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
public abstract class BaseEntity {
|
||||
|
||||
@Id
|
||||
|
||||
+6
@@ -6,6 +6,12 @@ import org.springframework.data.relational.core.mapping.Table;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 字典数据库实体类
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Table("sys_dictionary")
|
||||
public class DictionaryEntity {
|
||||
@Id
|
||||
|
||||
+6
@@ -3,6 +3,12 @@ package cn.novalon.manage.db.entity;
|
||||
import org.springframework.data.relational.core.mapping.Column;
|
||||
import org.springframework.data.relational.core.mapping.Table;
|
||||
|
||||
/**
|
||||
* 操作日志数据库实体类
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Table("operation_log")
|
||||
public class OperationLogEntity extends BaseEntity {
|
||||
|
||||
|
||||
+6
@@ -6,6 +6,12 @@ import org.springframework.data.relational.core.mapping.Table;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 系统配置数据库实体类
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Table("sys_config")
|
||||
public class SysConfigEntity {
|
||||
|
||||
|
||||
+6
@@ -6,6 +6,12 @@ import org.springframework.data.relational.core.mapping.Table;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 字典数据数据库实体类
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Table("sys_dict_data")
|
||||
public class SysDictDataEntity {
|
||||
|
||||
|
||||
+6
@@ -6,6 +6,12 @@ import org.springframework.data.relational.core.mapping.Table;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 字典类型数据库实体类
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Table("sys_dict_type")
|
||||
public class SysDictTypeEntity {
|
||||
|
||||
|
||||
+6
@@ -6,6 +6,12 @@ import org.springframework.data.relational.core.mapping.Table;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 异常日志数据库实体类
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Table("sys_exception_log")
|
||||
public class SysExceptionLogEntity {
|
||||
|
||||
|
||||
+6
@@ -6,6 +6,12 @@ import org.springframework.data.relational.core.mapping.Table;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 文件管理数据库实体类
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Table("sys_file")
|
||||
public class SysFileEntity {
|
||||
|
||||
|
||||
+6
@@ -6,6 +6,12 @@ import org.springframework.data.relational.core.mapping.Table;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 登录日志数据库实体类
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Table("sys_login_log")
|
||||
public class SysLoginLogEntity {
|
||||
|
||||
|
||||
+10
-4
@@ -3,7 +3,13 @@ package cn.novalon.manage.db.entity;
|
||||
import org.springframework.data.relational.core.mapping.Column;
|
||||
import org.springframework.data.relational.core.mapping.Table;
|
||||
|
||||
@Table("sys_menu")
|
||||
/**
|
||||
* 菜单数据库实体类
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Table("menus")
|
||||
public class SysMenuEntity extends BaseEntity {
|
||||
|
||||
@Column("menu_name")
|
||||
@@ -25,7 +31,7 @@ public class SysMenuEntity extends BaseEntity {
|
||||
private String component;
|
||||
|
||||
@Column("status")
|
||||
private String status;
|
||||
private Integer status;
|
||||
|
||||
public String getMenuName() {
|
||||
return menuName;
|
||||
@@ -75,11 +81,11 @@ public class SysMenuEntity extends BaseEntity {
|
||||
this.component = component;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
public Integer getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
public void setStatus(Integer status) {
|
||||
this.status = status;
|
||||
}
|
||||
}
|
||||
|
||||
+5
-5
@@ -4,11 +4,11 @@ import cn.novalon.manage.common.domain.query.SysMenuQuery;
|
||||
import cn.novalon.manage.db.dao.QueryField;
|
||||
|
||||
/**
|
||||
* @author zhangxiang
|
||||
* @version 1.0
|
||||
* @description 菜单查询条件对象
|
||||
* @date 2026/03/11
|
||||
**/
|
||||
* 菜单查询条件对象
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
public class SysMenuQueryCriteria {
|
||||
|
||||
@QueryField(propName = "menuName", type = QueryField.Type.INNER_LIKE)
|
||||
|
||||
+6
@@ -6,6 +6,12 @@ import org.springframework.data.relational.core.mapping.Table;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 通知公告数据库实体类
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Table("sys_notice")
|
||||
public class SysNoticeEntity {
|
||||
|
||||
|
||||
+6
@@ -3,6 +3,12 @@ package cn.novalon.manage.db.entity;
|
||||
import org.springframework.data.relational.core.mapping.Column;
|
||||
import org.springframework.data.relational.core.mapping.Table;
|
||||
|
||||
/**
|
||||
* 角色数据库实体类
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Table("roles")
|
||||
public class SysRoleEntity extends BaseEntity {
|
||||
|
||||
|
||||
+6
-6
@@ -1,14 +1,14 @@
|
||||
package cn.novalon.manage.db.entity;
|
||||
|
||||
import cn.novalon.manage.common.domain.query.SysRoleQuery;
|
||||
import cn.novalon.manage.sys.core.query.SysRoleQuery;
|
||||
import cn.novalon.manage.db.dao.QueryField;
|
||||
|
||||
/**
|
||||
* @author zhangxiang
|
||||
* @version 1.0
|
||||
* @description 角色查询条件对象
|
||||
* @date 2026/03/11
|
||||
**/
|
||||
* 角色查询条件对象
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
public class SysRoleQueryCriteria {
|
||||
|
||||
@QueryField(propName = "roleName", type = QueryField.Type.INNER_LIKE)
|
||||
|
||||
+6
@@ -3,6 +3,12 @@ package cn.novalon.manage.db.entity;
|
||||
import org.springframework.data.relational.core.mapping.Column;
|
||||
import org.springframework.data.relational.core.mapping.Table;
|
||||
|
||||
/**
|
||||
* 用户数据库实体类
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Table("users")
|
||||
public class SysUserEntity extends BaseEntity {
|
||||
|
||||
|
||||
+6
@@ -6,6 +6,12 @@ import org.springframework.data.relational.core.mapping.Table;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 用户消息数据库实体类
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Table("sys_user_message")
|
||||
public class SysUserMessageEntity {
|
||||
|
||||
|
||||
+18
-6
@@ -1,14 +1,14 @@
|
||||
package cn.novalon.manage.db.entity;
|
||||
|
||||
import cn.novalon.manage.common.domain.query.SysUserQuery;
|
||||
import cn.novalon.manage.sys.core.query.SysUserQuery;
|
||||
import cn.novalon.manage.db.dao.QueryField;
|
||||
|
||||
/**
|
||||
* @author zhangxiang
|
||||
* @version 1.0
|
||||
* @description 用户查询条件对象
|
||||
* @date 2026/03/11
|
||||
**/
|
||||
* 用户查询条件对象
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
public class SysUserQueryCriteria {
|
||||
|
||||
@QueryField(propName = "username", type = QueryField.Type.INNER_LIKE)
|
||||
@@ -23,6 +23,9 @@ public class SysUserQueryCriteria {
|
||||
@QueryField(propName = "status", type = QueryField.Type.EQUAL)
|
||||
private Integer status;
|
||||
|
||||
@QueryField(blurry = "username,email", type = QueryField.Type.INNER_LIKE)
|
||||
private String keyword;
|
||||
|
||||
public String getUsername() {
|
||||
return username;
|
||||
}
|
||||
@@ -55,6 +58,14 @@ public class SysUserQueryCriteria {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public String getKeyword() {
|
||||
return keyword;
|
||||
}
|
||||
|
||||
public void setKeyword(String keyword) {
|
||||
this.keyword = keyword;
|
||||
}
|
||||
|
||||
/**
|
||||
* 从领域查询对象转换
|
||||
*
|
||||
@@ -68,5 +79,6 @@ public class SysUserQueryCriteria {
|
||||
this.email = query.getEmail();
|
||||
this.roleId = query.getRoleId();
|
||||
this.status = query.getStatus();
|
||||
this.keyword = query.getKeyword();
|
||||
}
|
||||
}
|
||||
|
||||
+14
-6
@@ -1,22 +1,30 @@
|
||||
package cn.novalon.manage.db.repository;
|
||||
|
||||
import cn.novalon.manage.common.domain.Dictionary;
|
||||
import cn.novalon.manage.sys.core.domain.Dictionary;
|
||||
import cn.novalon.manage.sys.core.repository.IDictionaryRepository;
|
||||
import cn.novalon.manage.db.converter.DictionaryConverter;
|
||||
import cn.novalon.manage.db.dao.DictionaryDao;
|
||||
import cn.novalon.manage.db.entity.DictionaryEntity;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
/**
|
||||
* 字典仓储实现类
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Repository
|
||||
public class DictionaryRepository implements IDictionaryRepository {
|
||||
|
||||
@Autowired
|
||||
private DictionaryDao dictionaryDao;
|
||||
private final DictionaryDao dictionaryDao;
|
||||
private final DictionaryConverter dictionaryConverter;
|
||||
|
||||
@Autowired
|
||||
private DictionaryConverter dictionaryConverter;
|
||||
public DictionaryRepository(DictionaryDao dictionaryDao, DictionaryConverter dictionaryConverter) {
|
||||
this.dictionaryDao = dictionaryDao;
|
||||
this.dictionaryConverter = dictionaryConverter;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Flux<Dictionary> findAll() {
|
||||
|
||||
-26
@@ -1,26 +0,0 @@
|
||||
package cn.novalon.manage.db.repository;
|
||||
|
||||
import cn.novalon.manage.common.domain.Dictionary;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
public interface IDictionaryRepository {
|
||||
|
||||
Flux<Dictionary> findAll();
|
||||
|
||||
Flux<Dictionary> findByDeletedAtIsNullOrderBySortAsc();
|
||||
|
||||
Mono<Dictionary> findById(Long id);
|
||||
|
||||
Flux<Dictionary> findByType(String type);
|
||||
|
||||
Mono<Dictionary> findByTypeAndCode(String type, String code);
|
||||
|
||||
Mono<Boolean> existsByTypeAndCode(String type, String code);
|
||||
|
||||
Mono<Dictionary> save(Dictionary dictionary);
|
||||
|
||||
Mono<Void> deleteById(Long id);
|
||||
|
||||
Mono<Void> deleteByIdAndDeletedAtIsNull(Long id);
|
||||
}
|
||||
-24
@@ -1,24 +0,0 @@
|
||||
package cn.novalon.manage.db.repository;
|
||||
|
||||
import cn.novalon.manage.common.domain.OperationLog;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
public interface IOperationLogRepository {
|
||||
|
||||
Mono<OperationLog> findById(Long id);
|
||||
|
||||
Mono<OperationLog> save(OperationLog operationLog);
|
||||
|
||||
Mono<Void> deleteById(Long id);
|
||||
|
||||
Flux<OperationLog> findAll();
|
||||
|
||||
Flux<OperationLog> findByUsername(String username);
|
||||
|
||||
Mono<Long> count();
|
||||
|
||||
Mono<Long> countByCreatedAtAfter(LocalDateTime dateTime);
|
||||
}
|
||||
-27
@@ -1,27 +0,0 @@
|
||||
package cn.novalon.manage.db.repository;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysConfig;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
public interface ISysConfigRepository {
|
||||
|
||||
Mono<SysConfig> findById(Long id);
|
||||
|
||||
Mono<SysConfig> findByConfigKeyAndDeletedAtIsNull(String configKey);
|
||||
|
||||
Flux<SysConfig> findByDeletedAtIsNull();
|
||||
|
||||
Flux<SysConfig> findAll();
|
||||
|
||||
Flux<SysConfig> findAll(Sort sort);
|
||||
|
||||
Mono<SysConfig> save(SysConfig config);
|
||||
|
||||
Mono<Void> deleteByIdAndDeletedAtIsNull(Long id);
|
||||
|
||||
Mono<Long> count();
|
||||
|
||||
Mono<Boolean> existsByConfigKey(String configKey);
|
||||
}
|
||||
-20
@@ -1,20 +0,0 @@
|
||||
package cn.novalon.manage.db.repository;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysDictData;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
public interface ISysDictDataRepository {
|
||||
|
||||
Flux<SysDictData> findByDeletedAtIsNull();
|
||||
|
||||
Flux<SysDictData> findByDictTypeAndDeletedAtIsNull(String dictType);
|
||||
|
||||
Flux<SysDictData> findByDictTypeAndStatusAndDeletedAtIsNull(String dictType, String status);
|
||||
|
||||
Mono<SysDictData> findById(Long id);
|
||||
|
||||
Mono<SysDictData> save(SysDictData dictData);
|
||||
|
||||
Mono<Void> deleteByIdAndDeletedAtIsNull(Long id);
|
||||
}
|
||||
-18
@@ -1,18 +0,0 @@
|
||||
package cn.novalon.manage.db.repository;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysDictType;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
public interface ISysDictTypeRepository {
|
||||
|
||||
Flux<SysDictType> findByDeletedAtIsNull();
|
||||
|
||||
Mono<SysDictType> findById(Long id);
|
||||
|
||||
Mono<SysDictType> findByDictTypeAndDeletedAtIsNull(String dictType);
|
||||
|
||||
Mono<SysDictType> save(SysDictType dictType);
|
||||
|
||||
Mono<Void> deleteByIdAndDeletedAtIsNull(Long id);
|
||||
}
|
||||
-22
@@ -1,22 +0,0 @@
|
||||
package cn.novalon.manage.db.repository;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysExceptionLog;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
public interface ISysExceptionLogRepository {
|
||||
|
||||
Flux<SysExceptionLog> findAllByOrderByCreateTimeDesc();
|
||||
|
||||
Flux<SysExceptionLog> findByUsernameOrderByCreateTimeDesc(String username);
|
||||
|
||||
Flux<SysExceptionLog> findByCreateTimeBetweenOrderByCreateTimeDesc(LocalDateTime startTime, LocalDateTime endTime);
|
||||
|
||||
Mono<SysExceptionLog> save(SysExceptionLog exceptionLog);
|
||||
|
||||
Mono<SysExceptionLog> findById(Long id);
|
||||
|
||||
Mono<Long> count();
|
||||
}
|
||||
-20
@@ -1,20 +0,0 @@
|
||||
package cn.novalon.manage.db.repository;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysFile;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
public interface ISysFileRepository {
|
||||
|
||||
Flux<SysFile> findByDeletedAtIsNullOrderByCreatedAtDesc();
|
||||
|
||||
Flux<SysFile> findByCreateByOrderByCreatedAtDesc(String createBy);
|
||||
|
||||
Mono<SysFile> findById(Long id);
|
||||
|
||||
Flux<SysFile> findByFilePathContaining(String fileName);
|
||||
|
||||
Mono<SysFile> save(SysFile sysFile);
|
||||
|
||||
Mono<Void> deleteByIdAndDeletedAtIsNull(Long id);
|
||||
}
|
||||
-22
@@ -1,22 +0,0 @@
|
||||
package cn.novalon.manage.db.repository;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysLoginLog;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
public interface ISysLoginLogRepository {
|
||||
|
||||
Flux<SysLoginLog> findAllByOrderByLoginTimeDesc();
|
||||
|
||||
Flux<SysLoginLog> findByUsernameOrderByLoginTimeDesc(String username);
|
||||
|
||||
Flux<SysLoginLog> findByLoginTimeBetweenOrderByLoginTimeDesc(LocalDateTime startTime, LocalDateTime endTime);
|
||||
|
||||
Mono<SysLoginLog> save(SysLoginLog loginLog);
|
||||
|
||||
Mono<SysLoginLog> findById(Long id);
|
||||
|
||||
Mono<Long> count();
|
||||
}
|
||||
-34
@@ -1,34 +0,0 @@
|
||||
package cn.novalon.manage.db.repository;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysMenu;
|
||||
import cn.novalon.manage.common.dto.PageRequest;
|
||||
import cn.novalon.manage.common.dto.PageResponse;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.data.relational.core.query.Query;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface ISysMenuRepository {
|
||||
|
||||
Flux<SysMenu> findByParentId(Long parentId);
|
||||
|
||||
Flux<SysMenu> findByParentIdOrderBySort(Long parentId, Sort sort);
|
||||
|
||||
Mono<SysMenu> findById(Long id);
|
||||
|
||||
Mono<SysMenu> save(SysMenu sysMenu);
|
||||
|
||||
Mono<Void> deleteById(Long id);
|
||||
|
||||
Flux<SysMenu> findAll();
|
||||
|
||||
Flux<SysMenu> findAll(Sort sort);
|
||||
|
||||
Mono<Long> count();
|
||||
|
||||
Mono<PageResponse<SysMenu>> findByQueryWithPagination(Query query, PageRequest pageRequest);
|
||||
|
||||
Flux<SysMenu> findByStatus(String status);
|
||||
}
|
||||
-18
@@ -1,18 +0,0 @@
|
||||
package cn.novalon.manage.db.repository;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysNotice;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
public interface ISysNoticeRepository {
|
||||
|
||||
Flux<SysNotice> findByDeletedAtIsNull();
|
||||
|
||||
Flux<SysNotice> findByStatusAndDeletedAtIsNull(String status);
|
||||
|
||||
Mono<SysNotice> findById(Long id);
|
||||
|
||||
Mono<SysNotice> save(SysNotice notice);
|
||||
|
||||
Mono<Void> deleteByIdAndDeletedAtIsNull(Long id);
|
||||
}
|
||||
-38
@@ -1,38 +0,0 @@
|
||||
package cn.novalon.manage.db.repository;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysRole;
|
||||
import cn.novalon.manage.common.dto.PageRequest;
|
||||
import cn.novalon.manage.common.dto.PageResponse;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.data.relational.core.query.Query;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
public interface ISysRoleRepository {
|
||||
|
||||
Mono<SysRole> findById(Long id);
|
||||
|
||||
Mono<SysRole> findByIdIncludingDeleted(Long id);
|
||||
|
||||
Mono<SysRole> save(SysRole sysRole);
|
||||
|
||||
Mono<Void> deleteById(Long id);
|
||||
|
||||
Flux<SysRole> findAll();
|
||||
|
||||
Flux<SysRole> findAll(Sort sort);
|
||||
|
||||
Flux<SysRole> findByRoleNameLikeOrRoleKeyLike(String roleName, String roleKey, Sort sort);
|
||||
|
||||
Mono<Long> count();
|
||||
|
||||
Mono<Long> countByRoleNameLikeOrRoleKeyLike(String roleName, String roleKey);
|
||||
|
||||
Mono<PageResponse<SysRole>> findByQueryWithPagination(Query query, PageRequest pageRequest);
|
||||
|
||||
Mono<SysRole> findByRoleName(String roleName);
|
||||
|
||||
Mono<Boolean> existsByRoleName(String roleName);
|
||||
|
||||
Mono<SysRole> updateRole(SysRole role);
|
||||
}
|
||||
-20
@@ -1,20 +0,0 @@
|
||||
package cn.novalon.manage.db.repository;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysUserMessage;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
public interface ISysUserMessageRepository {
|
||||
|
||||
Flux<SysUserMessage> findByUserIdOrderByCreateTimeDesc(Long userId);
|
||||
|
||||
Flux<SysUserMessage> findByUserIdAndIsReadOrderByCreateTimeDesc(Long userId, String isRead);
|
||||
|
||||
Mono<Long> countByUserIdAndIsRead(Long userId, String isRead);
|
||||
|
||||
Mono<SysUserMessage> save(SysUserMessage message);
|
||||
|
||||
Mono<SysUserMessage> findById(Long id);
|
||||
|
||||
Mono<Void> deleteById(Long id);
|
||||
}
|
||||
-50
@@ -1,50 +0,0 @@
|
||||
package cn.novalon.manage.db.repository;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysUser;
|
||||
import cn.novalon.manage.common.dto.PageRequest;
|
||||
import cn.novalon.manage.common.dto.PageResponse;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.data.relational.core.query.Query;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface ISysUserRepository {
|
||||
|
||||
Mono<SysUser> findByUsername(String username);
|
||||
|
||||
Mono<SysUser> findByEmail(String email);
|
||||
|
||||
Mono<SysUser> findById(Long id);
|
||||
|
||||
Mono<SysUser> findByIdIncludingDeleted(Long id);
|
||||
|
||||
Mono<SysUser> save(SysUser sysUser);
|
||||
|
||||
Mono<Void> deleteById(Long id);
|
||||
|
||||
Flux<SysUser> findAll();
|
||||
|
||||
Flux<SysUser> findAll(Sort sort);
|
||||
|
||||
Flux<SysUser> findByDeletedAtIsNull();
|
||||
|
||||
Flux<SysUser> findByDeletedAtIsNull(Sort sort);
|
||||
|
||||
Mono<Long> count();
|
||||
|
||||
Mono<PageResponse<SysUser>> findByQueryWithPagination(Query query, PageRequest pageRequest);
|
||||
|
||||
Mono<Boolean> existsByUsername(String username);
|
||||
|
||||
Mono<Boolean> existsByEmail(String email);
|
||||
|
||||
Mono<Void> logicalDeleteById(Long id);
|
||||
|
||||
Mono<Void> logicalDeleteByIds(List<Long> ids);
|
||||
|
||||
Mono<Void> restoreById(Long id);
|
||||
|
||||
Mono<Void> restoreByIds(List<Long> ids);
|
||||
}
|
||||
+14
-6
@@ -1,24 +1,32 @@
|
||||
package cn.novalon.manage.db.repository;
|
||||
|
||||
import cn.novalon.manage.common.domain.OperationLog;
|
||||
import cn.novalon.manage.sys.core.domain.OperationLog;
|
||||
import cn.novalon.manage.sys.core.repository.IOperationLogRepository;
|
||||
import cn.novalon.manage.db.converter.OperationLogConverter;
|
||||
import cn.novalon.manage.db.entity.OperationLogEntity;
|
||||
import cn.novalon.manage.db.dao.OperationLogDao;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 操作日志仓储实现类
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Repository
|
||||
public class OperationLogRepository implements IOperationLogRepository {
|
||||
|
||||
@Autowired
|
||||
private OperationLogDao operationLogDao;
|
||||
private final OperationLogDao operationLogDao;
|
||||
private final OperationLogConverter operationLogConverter;
|
||||
|
||||
@Autowired
|
||||
private OperationLogConverter operationLogConverter;
|
||||
public OperationLogRepository(OperationLogDao operationLogDao, OperationLogConverter operationLogConverter) {
|
||||
this.operationLogDao = operationLogDao;
|
||||
this.operationLogConverter = operationLogConverter;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Mono<OperationLog> findById(Long id) {
|
||||
|
||||
+14
-6
@@ -3,21 +3,29 @@ package cn.novalon.manage.db.repository;
|
||||
import cn.novalon.manage.db.converter.SysConfigConverter;
|
||||
import cn.novalon.manage.db.dao.SysConfigDao;
|
||||
import cn.novalon.manage.db.entity.SysConfigEntity;
|
||||
import cn.novalon.manage.common.domain.SysConfig;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import cn.novalon.manage.sys.core.domain.SysConfig;
|
||||
import cn.novalon.manage.sys.core.repository.ISysConfigRepository;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
/**
|
||||
* 系统配置仓储实现类
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Repository
|
||||
public class SysConfigRepository implements ISysConfigRepository {
|
||||
|
||||
@Autowired
|
||||
private SysConfigDao sysConfigDao;
|
||||
private final SysConfigDao sysConfigDao;
|
||||
private final SysConfigConverter sysConfigConverter;
|
||||
|
||||
@Autowired
|
||||
private SysConfigConverter sysConfigConverter;
|
||||
public SysConfigRepository(SysConfigDao sysConfigDao, SysConfigConverter sysConfigConverter) {
|
||||
this.sysConfigDao = sysConfigDao;
|
||||
this.sysConfigConverter = sysConfigConverter;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Mono<SysConfig> findById(Long id) {
|
||||
|
||||
+14
-6
@@ -1,22 +1,30 @@
|
||||
package cn.novalon.manage.db.repository;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysDictData;
|
||||
import cn.novalon.manage.sys.core.domain.SysDictData;
|
||||
import cn.novalon.manage.sys.core.repository.ISysDictDataRepository;
|
||||
import cn.novalon.manage.db.converter.SysDictDataConverter;
|
||||
import cn.novalon.manage.db.dao.SysDictDataDao;
|
||||
import cn.novalon.manage.db.entity.SysDictDataEntity;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
/**
|
||||
* 字典数据仓储实现类
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Repository
|
||||
public class SysDictDataRepository implements ISysDictDataRepository {
|
||||
|
||||
@Autowired
|
||||
private SysDictDataDao sysDictDataDao;
|
||||
private final SysDictDataDao sysDictDataDao;
|
||||
private final SysDictDataConverter sysDictDataConverter;
|
||||
|
||||
@Autowired
|
||||
private SysDictDataConverter sysDictDataConverter;
|
||||
public SysDictDataRepository(SysDictDataDao sysDictDataDao, SysDictDataConverter sysDictDataConverter) {
|
||||
this.sysDictDataDao = sysDictDataDao;
|
||||
this.sysDictDataConverter = sysDictDataConverter;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Flux<SysDictData> findByDeletedAtIsNull() {
|
||||
|
||||
+14
-6
@@ -1,22 +1,30 @@
|
||||
package cn.novalon.manage.db.repository;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysDictType;
|
||||
import cn.novalon.manage.sys.core.domain.SysDictType;
|
||||
import cn.novalon.manage.sys.core.repository.ISysDictTypeRepository;
|
||||
import cn.novalon.manage.db.converter.SysDictTypeConverter;
|
||||
import cn.novalon.manage.db.dao.SysDictTypeDao;
|
||||
import cn.novalon.manage.db.entity.SysDictTypeEntity;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
/**
|
||||
* 字典类型仓储实现类
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Repository
|
||||
public class SysDictTypeRepository implements ISysDictTypeRepository {
|
||||
|
||||
@Autowired
|
||||
private SysDictTypeDao sysDictTypeDao;
|
||||
private final SysDictTypeDao sysDictTypeDao;
|
||||
private final SysDictTypeConverter sysDictTypeConverter;
|
||||
|
||||
@Autowired
|
||||
private SysDictTypeConverter sysDictTypeConverter;
|
||||
public SysDictTypeRepository(SysDictTypeDao sysDictTypeDao, SysDictTypeConverter sysDictTypeConverter) {
|
||||
this.sysDictTypeDao = sysDictTypeDao;
|
||||
this.sysDictTypeConverter = sysDictTypeConverter;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Flux<SysDictType> findByDeletedAtIsNull() {
|
||||
|
||||
+14
-6
@@ -1,24 +1,32 @@
|
||||
package cn.novalon.manage.db.repository;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysExceptionLog;
|
||||
import cn.novalon.manage.sys.core.domain.SysExceptionLog;
|
||||
import cn.novalon.manage.sys.core.repository.ISysExceptionLogRepository;
|
||||
import cn.novalon.manage.db.converter.SysExceptionLogConverter;
|
||||
import cn.novalon.manage.db.dao.SysExceptionLogDao;
|
||||
import cn.novalon.manage.db.entity.SysExceptionLogEntity;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 异常日志仓储实现类
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Repository
|
||||
public class SysExceptionLogRepository implements ISysExceptionLogRepository {
|
||||
|
||||
@Autowired
|
||||
private SysExceptionLogDao sysExceptionLogDao;
|
||||
private final SysExceptionLogDao sysExceptionLogDao;
|
||||
private final SysExceptionLogConverter sysExceptionLogConverter;
|
||||
|
||||
@Autowired
|
||||
private SysExceptionLogConverter sysExceptionLogConverter;
|
||||
public SysExceptionLogRepository(SysExceptionLogDao sysExceptionLogDao, SysExceptionLogConverter sysExceptionLogConverter) {
|
||||
this.sysExceptionLogDao = sysExceptionLogDao;
|
||||
this.sysExceptionLogConverter = sysExceptionLogConverter;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Flux<SysExceptionLog> findAllByOrderByCreateTimeDesc() {
|
||||
|
||||
+14
-6
@@ -1,22 +1,30 @@
|
||||
package cn.novalon.manage.db.repository;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysFile;
|
||||
import cn.novalon.manage.sys.core.domain.SysFile;
|
||||
import cn.novalon.manage.sys.core.repository.ISysFileRepository;
|
||||
import cn.novalon.manage.db.converter.SysFileConverter;
|
||||
import cn.novalon.manage.db.dao.SysFileDao;
|
||||
import cn.novalon.manage.db.entity.SysFileEntity;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
/**
|
||||
* 文件管理仓储实现类
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Repository
|
||||
public class SysFileRepository implements ISysFileRepository {
|
||||
|
||||
@Autowired
|
||||
private SysFileDao sysFileDao;
|
||||
private final SysFileDao sysFileDao;
|
||||
private final SysFileConverter sysFileConverter;
|
||||
|
||||
@Autowired
|
||||
private SysFileConverter sysFileConverter;
|
||||
public SysFileRepository(SysFileDao sysFileDao, SysFileConverter sysFileConverter) {
|
||||
this.sysFileDao = sysFileDao;
|
||||
this.sysFileConverter = sysFileConverter;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Flux<SysFile> findByDeletedAtIsNullOrderByCreatedAtDesc() {
|
||||
|
||||
+14
-6
@@ -1,24 +1,32 @@
|
||||
package cn.novalon.manage.db.repository;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysLoginLog;
|
||||
import cn.novalon.manage.sys.core.domain.SysLoginLog;
|
||||
import cn.novalon.manage.sys.core.repository.ISysLoginLogRepository;
|
||||
import cn.novalon.manage.db.converter.SysLoginLogConverter;
|
||||
import cn.novalon.manage.db.dao.SysLoginLogDao;
|
||||
import cn.novalon.manage.db.entity.SysLoginLogEntity;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 登录日志仓储实现类
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Repository
|
||||
public class SysLoginLogRepository implements ISysLoginLogRepository {
|
||||
|
||||
@Autowired
|
||||
private SysLoginLogDao sysLoginLogDao;
|
||||
private final SysLoginLogDao sysLoginLogDao;
|
||||
private final SysLoginLogConverter sysLoginLogConverter;
|
||||
|
||||
@Autowired
|
||||
private SysLoginLogConverter sysLoginLogConverter;
|
||||
public SysLoginLogRepository(SysLoginLogDao sysLoginLogDao, SysLoginLogConverter sysLoginLogConverter) {
|
||||
this.sysLoginLogDao = sysLoginLogDao;
|
||||
this.sysLoginLogConverter = sysLoginLogConverter;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Flux<SysLoginLog> findAllByOrderByLoginTimeDesc() {
|
||||
|
||||
+36
-8
@@ -1,12 +1,13 @@
|
||||
package cn.novalon.manage.db.repository;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysMenu;
|
||||
import cn.novalon.manage.sys.core.domain.SysMenu;
|
||||
import cn.novalon.manage.sys.core.repository.ISysMenuRepository;
|
||||
import cn.novalon.manage.sys.core.query.SysMenuQuery;
|
||||
import cn.novalon.manage.common.dto.PageRequest;
|
||||
import cn.novalon.manage.common.dto.PageResponse;
|
||||
import cn.novalon.manage.db.converter.SysMenuConverter;
|
||||
import cn.novalon.manage.db.dao.SysMenuDao;
|
||||
import cn.novalon.manage.db.entity.SysMenuEntity;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.data.relational.core.query.Query;
|
||||
import org.springframework.stereotype.Repository;
|
||||
@@ -15,14 +16,22 @@ import reactor.core.publisher.Mono;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 菜单仓储实现类
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Repository
|
||||
public class SysMenuRepository implements ISysMenuRepository {
|
||||
|
||||
@Autowired
|
||||
private SysMenuDao sysMenuDao;
|
||||
private final SysMenuDao sysMenuDao;
|
||||
private final SysMenuConverter sysMenuConverter;
|
||||
|
||||
@Autowired
|
||||
private SysMenuConverter sysMenuConverter;
|
||||
public SysMenuRepository(SysMenuDao sysMenuDao, SysMenuConverter sysMenuConverter) {
|
||||
this.sysMenuDao = sysMenuDao;
|
||||
this.sysMenuConverter = sysMenuConverter;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Flux<SysMenu> findByParentId(Long parentId) {
|
||||
@@ -72,8 +81,27 @@ public class SysMenuRepository implements ISysMenuRepository {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Mono<PageResponse<SysMenu>> findByQueryWithPagination(Query query, PageRequest pageRequest) {
|
||||
return Mono.just(new PageResponse<>());
|
||||
public Mono<PageResponse<SysMenu>> findByQueryWithPagination(SysMenuQuery query, PageRequest pageRequest) {
|
||||
int page = pageRequest.getPage();
|
||||
int size = pageRequest.getSize();
|
||||
|
||||
return sysMenuDao.count()
|
||||
.flatMap(count -> {
|
||||
int totalPages = (int) Math.ceil((double) count / size);
|
||||
int offset = page * size;
|
||||
|
||||
Flux<SysMenuEntity> menuFlux = sysMenuDao.findByDeletedAtIsNull()
|
||||
.skip(offset)
|
||||
.take(size);
|
||||
|
||||
return menuFlux.collectList()
|
||||
.map(menus -> {
|
||||
List<SysMenu> menuList = menus.stream()
|
||||
.map(sysMenuConverter::toDomain)
|
||||
.toList();
|
||||
return new PageResponse<>(menuList, totalPages, count, page, size);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+14
-6
@@ -1,22 +1,30 @@
|
||||
package cn.novalon.manage.db.repository;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysNotice;
|
||||
import cn.novalon.manage.notify.core.domain.SysNotice;
|
||||
import cn.novalon.manage.notify.core.repository.ISysNoticeRepository;
|
||||
import cn.novalon.manage.db.converter.SysNoticeConverter;
|
||||
import cn.novalon.manage.db.dao.SysNoticeDao;
|
||||
import cn.novalon.manage.db.entity.SysNoticeEntity;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
/**
|
||||
* 通知公告仓储实现类
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Repository
|
||||
public class SysNoticeRepository implements ISysNoticeRepository {
|
||||
|
||||
@Autowired
|
||||
private SysNoticeDao sysNoticeDao;
|
||||
private final SysNoticeDao sysNoticeDao;
|
||||
private final SysNoticeConverter sysNoticeConverter;
|
||||
|
||||
@Autowired
|
||||
private SysNoticeConverter sysNoticeConverter;
|
||||
public SysNoticeRepository(SysNoticeDao sysNoticeDao, SysNoticeConverter sysNoticeConverter) {
|
||||
this.sysNoticeDao = sysNoticeDao;
|
||||
this.sysNoticeConverter = sysNoticeConverter;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Flux<SysNotice> findByDeletedAtIsNull() {
|
||||
|
||||
+53
-8
@@ -1,26 +1,42 @@
|
||||
package cn.novalon.manage.db.repository;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysRole;
|
||||
import cn.novalon.manage.sys.core.domain.SysRole;
|
||||
import cn.novalon.manage.sys.core.repository.ISysRoleRepository;
|
||||
import cn.novalon.manage.sys.core.query.SysRoleQuery;
|
||||
import cn.novalon.manage.common.dto.PageRequest;
|
||||
import cn.novalon.manage.common.dto.PageResponse;
|
||||
import cn.novalon.manage.db.converter.SysRoleConverter;
|
||||
import cn.novalon.manage.db.dao.SysRoleDao;
|
||||
import cn.novalon.manage.common.dao.QueryUtil;
|
||||
import cn.novalon.manage.db.entity.SysRoleEntity;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import cn.novalon.manage.db.entity.SysRoleQueryCriteria;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.data.r2dbc.core.R2dbcEntityTemplate;
|
||||
import org.springframework.data.relational.core.query.Query;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 角色仓储实现类
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Repository
|
||||
public class SysRoleRepository implements ISysRoleRepository {
|
||||
|
||||
@Autowired
|
||||
private SysRoleDao sysRoleDao;
|
||||
private final SysRoleDao sysRoleDao;
|
||||
private final SysRoleConverter sysRoleConverter;
|
||||
private final R2dbcEntityTemplate r2dbcEntityTemplate;
|
||||
|
||||
@Autowired
|
||||
private SysRoleConverter sysRoleConverter;
|
||||
public SysRoleRepository(SysRoleDao sysRoleDao, SysRoleConverter sysRoleConverter, R2dbcEntityTemplate r2dbcEntityTemplate) {
|
||||
this.sysRoleDao = sysRoleDao;
|
||||
this.sysRoleConverter = sysRoleConverter;
|
||||
this.r2dbcEntityTemplate = r2dbcEntityTemplate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Mono<SysRole> findById(Long id) {
|
||||
@@ -75,8 +91,37 @@ public class SysRoleRepository implements ISysRoleRepository {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Mono<PageResponse<SysRole>> findByQueryWithPagination(Query query, PageRequest pageRequest) {
|
||||
return Mono.just(new PageResponse<>());
|
||||
public Mono<PageResponse<SysRole>> findByQueryWithPagination(SysRoleQuery query, PageRequest pageRequest) {
|
||||
int page = pageRequest.getPage();
|
||||
int size = pageRequest.getSize();
|
||||
String sort = pageRequest.getSort();
|
||||
String order = pageRequest.getOrder();
|
||||
|
||||
Sort sortObj = Sort.unsorted();
|
||||
if (sort != null && !sort.isEmpty()) {
|
||||
sortObj = Sort.by(Sort.Direction.fromString(order), sort);
|
||||
}
|
||||
|
||||
org.springframework.data.domain.PageRequest pageable = org.springframework.data.domain.PageRequest.of(page,
|
||||
size, sortObj);
|
||||
|
||||
SysRoleQueryCriteria criteria = new SysRoleQueryCriteria();
|
||||
criteria.convert(query);
|
||||
Query dbQuery = QueryUtil.getQuery(criteria);
|
||||
|
||||
return r2dbcEntityTemplate.select(SysRoleEntity.class)
|
||||
.matching(dbQuery.with(pageable))
|
||||
.all()
|
||||
.collectList()
|
||||
.zipWith(r2dbcEntityTemplate.count(dbQuery, SysRoleEntity.class))
|
||||
.map(tuple -> {
|
||||
long total = tuple.getT2();
|
||||
int totalPages = (int) Math.ceil((double) total / size);
|
||||
List<SysRole> roleList = tuple.getT1().stream()
|
||||
.map(sysRoleConverter::toDomain)
|
||||
.toList();
|
||||
return new PageResponse<>(roleList, totalPages, total, page, size);
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+14
-6
@@ -1,22 +1,30 @@
|
||||
package cn.novalon.manage.db.repository;
|
||||
|
||||
import cn.novalon.manage.common.domain.SysUserMessage;
|
||||
import cn.novalon.manage.sys.core.domain.SysUserMessage;
|
||||
import cn.novalon.manage.sys.core.repository.ISysUserMessageRepository;
|
||||
import cn.novalon.manage.db.converter.SysUserMessageConverter;
|
||||
import cn.novalon.manage.db.entity.SysUserMessageEntity;
|
||||
import cn.novalon.manage.db.dao.SysUserMessageDao;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
/**
|
||||
* 用户消息仓储实现类
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Repository
|
||||
public class SysUserMessageRepository implements ISysUserMessageRepository {
|
||||
|
||||
@Autowired
|
||||
private SysUserMessageDao sysUserMessageDao;
|
||||
private final SysUserMessageDao sysUserMessageDao;
|
||||
private final SysUserMessageConverter sysUserMessageConverter;
|
||||
|
||||
@Autowired
|
||||
private SysUserMessageConverter sysUserMessageConverter;
|
||||
public SysUserMessageRepository(SysUserMessageDao sysUserMessageDao, SysUserMessageConverter sysUserMessageConverter) {
|
||||
this.sysUserMessageDao = sysUserMessageDao;
|
||||
this.sysUserMessageConverter = sysUserMessageConverter;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Flux<SysUserMessage> findByUserIdOrderByCreateTimeDesc(Long userId) {
|
||||
|
||||
+71
-8
@@ -3,11 +3,15 @@ package cn.novalon.manage.db.repository;
|
||||
import cn.novalon.manage.db.converter.SysUserConverter;
|
||||
import cn.novalon.manage.db.dao.SysUserDao;
|
||||
import cn.novalon.manage.db.entity.SysUserEntity;
|
||||
import cn.novalon.manage.common.domain.SysUser;
|
||||
import cn.novalon.manage.db.entity.SysUserQueryCriteria;
|
||||
import cn.novalon.manage.common.dao.QueryUtil;
|
||||
import cn.novalon.manage.sys.core.domain.SysUser;
|
||||
import cn.novalon.manage.sys.core.query.SysUserQuery;
|
||||
import cn.novalon.manage.sys.core.repository.ISysUserRepository;
|
||||
import cn.novalon.manage.common.dto.PageRequest;
|
||||
import cn.novalon.manage.common.dto.PageResponse;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.data.r2dbc.core.R2dbcEntityTemplate;
|
||||
import org.springframework.data.relational.core.query.Query;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import reactor.core.publisher.Flux;
|
||||
@@ -15,14 +19,29 @@ import reactor.core.publisher.Mono;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户仓储实现类
|
||||
*
|
||||
* 文件定义:用户数据访问层的仓储实现,负责用户数据的持久化操作
|
||||
* 涉及业务:用户增删改查、分页查询、条件查询、逻辑删除等数据访问业务
|
||||
* 算法:使用R2DBC进行响应式数据库操作,支持分页算法、条件查询算法
|
||||
*
|
||||
* @author 张翔
|
||||
* @date 2026-03-13
|
||||
*/
|
||||
@Repository
|
||||
public class SysUserRepository implements ISysUserRepository {
|
||||
|
||||
@Autowired
|
||||
private SysUserDao sysUserDao;
|
||||
private final SysUserDao sysUserDao;
|
||||
private final SysUserConverter sysUserConverter;
|
||||
private final R2dbcEntityTemplate r2dbcEntityTemplate;
|
||||
|
||||
@Autowired
|
||||
private SysUserConverter sysUserConverter;
|
||||
public SysUserRepository(SysUserDao sysUserDao, SysUserConverter sysUserConverter,
|
||||
R2dbcEntityTemplate r2dbcEntityTemplate) {
|
||||
this.sysUserDao = sysUserDao;
|
||||
this.sysUserConverter = sysUserConverter;
|
||||
this.r2dbcEntityTemplate = r2dbcEntityTemplate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Mono<SysUser> findByUsername(String username) {
|
||||
@@ -90,8 +109,42 @@ public class SysUserRepository implements ISysUserRepository {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Mono<PageResponse<SysUser>> findByQueryWithPagination(Query query, PageRequest pageRequest) {
|
||||
return Mono.just(new PageResponse<>());
|
||||
public Mono<PageResponse<SysUser>> findByQueryWithPagination(SysUserQuery query, PageRequest pageRequest) {
|
||||
int page = pageRequest.getPage();
|
||||
int size = pageRequest.getSize();
|
||||
String sort = pageRequest.getSort();
|
||||
String order = pageRequest.getOrder();
|
||||
String keyword = pageRequest.getKeyword();
|
||||
|
||||
SysUserQuery sysUserQuery = new SysUserQuery();
|
||||
sysUserQuery.setKeyword(keyword);
|
||||
|
||||
SysUserQueryCriteria criteria = new SysUserQueryCriteria();
|
||||
criteria.convert(sysUserQuery);
|
||||
|
||||
Query queryObj = QueryUtil.getQuery(criteria);
|
||||
|
||||
Sort sortObj = Sort.unsorted();
|
||||
if (sort != null && !sort.isEmpty()) {
|
||||
sortObj = Sort.by(Sort.Direction.fromString(order), sort);
|
||||
}
|
||||
|
||||
org.springframework.data.domain.PageRequest pageable = org.springframework.data.domain.PageRequest.of(page,
|
||||
size, sortObj);
|
||||
|
||||
return r2dbcEntityTemplate.select(SysUserEntity.class)
|
||||
.matching(queryObj.with(pageable))
|
||||
.all()
|
||||
.collectList()
|
||||
.zipWith(r2dbcEntityTemplate.count(queryObj, SysUserEntity.class))
|
||||
.map(tuple -> {
|
||||
long total = tuple.getT2();
|
||||
int totalPages = (int) Math.ceil((double) total / size);
|
||||
List<SysUser> userList = tuple.getT1().stream()
|
||||
.map(sysUserConverter::toDomain)
|
||||
.toList();
|
||||
return new PageResponse<>(userList, totalPages, total, page, size);
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -139,4 +192,14 @@ public class SysUserRepository implements ISysUserRepository {
|
||||
.flatMap(id -> restoreById(id))
|
||||
.then();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Mono<Void> updateRoleIdToNullByRoleId(Long roleId) {
|
||||
return sysUserDao.findByRoleId(roleId)
|
||||
.flatMap(entity -> {
|
||||
entity.setRoleId(null);
|
||||
return sysUserDao.save(entity);
|
||||
})
|
||||
.then();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user