diff --git a/ff-base/pom.xml b/ff-base/pom.xml
deleted file mode 100644
index fa53859..0000000
--- a/ff-base/pom.xml
+++ /dev/null
@@ -1,207 +0,0 @@
-
-
- 4.0.0
-
- ff
- com.ff
- 0.0.1
-
-
- com.ff
- ff-base
- 0.0.1
- ff-base
- ff-base
-
-
-
-
- org.projectlombok
- lombok
- provided
-
-
-
-
- com.dtflys.forest
- forest-spring-boot-starter
- 1.6.3
-
-
-
- org.springframework.boot
- spring-boot-dependencies
- 2.5.15
- pom
- import
-
-
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
-
-
- org.springframework.boot
- spring-boot-starter-aop
-
-
-
-
- com.alibaba
- druid-spring-boot-starter
-
-
-
-
- pro.fessional
- kaptcha
-
-
-
-
- com.github.oshi
- oshi-core
-
-
-
-
- org.springframework
- spring-context-support
-
-
-
-
- org.springframework
- spring-web
-
-
-
-
- org.springframework.boot
- spring-boot-starter-security
-
-
-
-
- com.github.pagehelper
- pagehelper-spring-boot-starter
-
-
-
-
- org.springframework.boot
- spring-boot-starter-validation
-
-
-
-
- org.apache.commons
- commons-lang3
-
-
-
-
- com.fasterxml.jackson.core
- jackson-databind
-
-
-
-
- com.alibaba.fastjson2
- fastjson2
-
-
-
-
- commons-io
- commons-io
-
-
-
-
-
-
-
- org.apache.poi
- poi-ooxml
-
-
-
-
- org.apache.httpcomponents
- httpclient
-
-
-
- com.squareup.okhttp3
- okhttp
-
-
-
- org.yaml
- snakeyaml
-
-
-
-
- io.jsonwebtoken
- jjwt
-
-
-
-
- javax.xml.bind
- jaxb-api
-
-
-
-
- org.springframework.boot
- spring-boot-starter-data-redis
-
-
-
-
- org.apache.commons
- commons-pool2
-
-
-
-
- eu.bitwalker
- UserAgentUtils
-
-
-
-
- javax.servlet
- javax.servlet-api
-
-
-
-
- com.google.zxing
- core
-
-
- com.google.zxing
- javase
-
-
-
-
-
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
-
-
-
diff --git a/ff-base/src/main/java/com/ff/base/enums/TimeOutType.java b/ff-base/src/main/java/com/ff/base/enums/TimeOutType.java
deleted file mode 100644
index d1ea786..0000000
--- a/ff-base/src/main/java/com/ff/base/enums/TimeOutType.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.ff.base.enums;
-
-import com.alibaba.druid.filter.AutoLoad;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * 超时类型
- *
- * @author shi
- * @date 2025/04/09
- */
-@AllArgsConstructor
-@Getter
-public enum TimeOutType {
- GAME_EXCHANGE_MONEY("gameExchangeMoney", "游戏余额转移");
- /**
- * 代码
- */
- private final String code;
- /**
- * 信息
- */
- private final String info;
-}
diff --git a/ff-base/src/main/java/com/ff/base/enums/TriggerType.java b/ff-base/src/main/java/com/ff/base/enums/TriggerType.java
deleted file mode 100644
index 86edf54..0000000
--- a/ff-base/src/main/java/com/ff/base/enums/TriggerType.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.ff.base.enums;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.Getter;
-
-/**
- * 触发类型
- *
- * @author shi
- * @date 2025/04/09
- */
-@Getter
-@AllArgsConstructor
-public enum TriggerType {
- MANUAL(1, "用户调用手动触发"),
- TIMER(2, "定时器触发");
-
- private final int code;
- private final String description;
-}
diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysLogininfor.java b/ff-base/src/main/java/com/ff/base/system/domain/SysLogininfor.java
deleted file mode 100644
index 54946da..0000000
--- a/ff-base/src/main/java/com/ff/base/system/domain/SysLogininfor.java
+++ /dev/null
@@ -1,146 +0,0 @@
-package com.ff.base.system.domain;
-
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
-import com.ff.base.annotation.Excel;
-import com.ff.base.annotation.Excel.ColumnType;
-import com.ff.base.core.domain.BaseEntity;
-
-/**
- * 系统访问记录表 sys_logininfor
- *
- * @author ff
- */
-public class SysLogininfor extends BaseEntity
-{
- private static final long serialVersionUID = 1L;
-
- /** ID */
- @Excel(name = "序号", cellType = ColumnType.NUMERIC)
- @JsonSerialize(using = ToStringSerializer.class)
- private Long infoId;
-
- /** 用户账号 */
- @Excel(name = "用户账号")
- private String userName;
-
- /** 登录状态 0成功 1失败 */
- @Excel(name = "登录状态", readConverterExp = "0=成功,1=失败")
- private String status;
-
- /** 登录IP地址 */
- @Excel(name = "登录地址")
- private String ipaddr;
-
- /** 登录地点 */
- @Excel(name = "登录地点")
- private String loginLocation;
-
- /** 浏览器类型 */
- @Excel(name = "浏览器")
- private String browser;
-
- /** 操作系统 */
- @Excel(name = "操作系统")
- private String os;
-
- /** 提示消息 */
- @Excel(name = "提示消息")
- private String msg;
-
- /** 访问时间 */
-
- @JsonSerialize(using = ToStringSerializer.class)
- @Excel(name = "访问时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
- private Long loginTime;
-
- public Long getInfoId()
- {
- return infoId;
- }
-
- public void setInfoId(Long infoId)
- {
- this.infoId = infoId;
- }
-
- public String getUserName()
- {
- return userName;
- }
-
- public void setUserName(String userName)
- {
- this.userName = userName;
- }
-
- public String getStatus()
- {
- return status;
- }
-
- public void setStatus(String status)
- {
- this.status = status;
- }
-
- public String getIpaddr()
- {
- return ipaddr;
- }
-
- public void setIpaddr(String ipaddr)
- {
- this.ipaddr = ipaddr;
- }
-
- public String getLoginLocation()
- {
- return loginLocation;
- }
-
- public void setLoginLocation(String loginLocation)
- {
- this.loginLocation = loginLocation;
- }
-
- public String getBrowser()
- {
- return browser;
- }
-
- public void setBrowser(String browser)
- {
- this.browser = browser;
- }
-
- public String getOs()
- {
- return os;
- }
-
- public void setOs(String os)
- {
- this.os = os;
- }
-
- public String getMsg()
- {
- return msg;
- }
-
- public void setMsg(String msg)
- {
- this.msg = msg;
- }
-
- public Long getLoginTime()
- {
- return loginTime;
- }
-
- public void setLoginTime(Long loginTime)
- {
- this.loginTime = loginTime;
- }
-}
diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysMenu.java b/ff-base/src/main/java/com/ff/base/system/domain/SysMenu.java
deleted file mode 100644
index b78d591..0000000
--- a/ff-base/src/main/java/com/ff/base/system/domain/SysMenu.java
+++ /dev/null
@@ -1,279 +0,0 @@
-package com.ff.base.system.domain;
-
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
-import com.ff.base.core.domain.BaseEntity;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * 菜单权限表 sys_menu
- *
- * @author ff
- */
-public class SysMenu extends BaseEntity
-{
- private static final long serialVersionUID = 1L;
-
- /** 菜单ID */
- @JsonSerialize(using = ToStringSerializer.class)
- private Long menuId;
-
- /** 菜单名称 */
- private String menuName;
-
- /** 父菜单名称 */
- private String parentName;
-
- /** 父菜单ID */
- @JsonSerialize(using = ToStringSerializer.class)
- private Long parentId;
-
- /** 显示顺序 */
- private Integer orderNum;
-
- /** 路由地址 */
- private String path;
-
- /** 组件路径 */
- private String component;
-
- /** 路由参数 */
- private String query;
-
- /** 路由名称,默认和路由地址相同的驼峰格式(注意:因为vue3版本的router会删除名称相同路由,为避免名字的冲突,特殊情况可以自定义) */
- private String routeName;
-
- /** 是否为外链(0是 1否) */
- private String isFrame;
-
- /** 是否缓存(0缓存 1不缓存) */
- private String isCache;
-
- /** 类型(M目录 C菜单 F按钮) */
- private String menuType;
-
- /** 显示状态(0显示 1隐藏) */
- private String visible;
-
- /** 菜单状态(0正常 1停用) */
- private String status;
-
- /** 权限字符串 */
- private String perms;
-
- /** 菜单图标 */
- private String icon;
-
- /** 子菜单 */
- private List children = new ArrayList();
- @JsonSerialize(using = ToStringSerializer.class)
- public Long getMenuId()
- {
- return menuId;
- }
-
- public void setMenuId(Long menuId)
- {
- this.menuId = menuId;
- }
-
- @NotBlank(message = "菜单名称不能为空")
- @Size(min = 0, max = 50, message = "菜单名称长度不能超过50个字符")
- public String getMenuName()
- {
- return menuName;
- }
-
- public void setMenuName(String menuName)
- {
- this.menuName = menuName;
- }
-
- public String getParentName()
- {
- return parentName;
- }
-
- public void setParentName(String parentName)
- {
- this.parentName = parentName;
- }
-
- public Long getParentId()
- {
- return parentId;
- }
-
- public void setParentId(Long parentId)
- {
- this.parentId = parentId;
- }
-
- @NotNull(message = "显示顺序不能为空")
- public Integer getOrderNum()
- {
- return orderNum;
- }
-
- public void setOrderNum(Integer orderNum)
- {
- this.orderNum = orderNum;
- }
-
- @Size(min = 0, max = 200, message = "路由地址不能超过200个字符")
- public String getPath()
- {
- return path;
- }
-
- public void setPath(String path)
- {
- this.path = path;
- }
-
- @Size(min = 0, max = 200, message = "组件路径不能超过255个字符")
- public String getComponent()
- {
- return component;
- }
-
- public void setComponent(String component)
- {
- this.component = component;
- }
-
- public String getQuery()
- {
- return query;
- }
-
- public void setQuery(String query)
- {
- this.query = query;
- }
-
- public String getRouteName()
- {
- return routeName;
- }
-
- public void setRouteName(String routeName)
- {
- this.routeName = routeName;
- }
-
- public String getIsFrame()
- {
- return isFrame;
- }
-
- public void setIsFrame(String isFrame)
- {
- this.isFrame = isFrame;
- }
-
- public String getIsCache()
- {
- return isCache;
- }
-
- public void setIsCache(String isCache)
- {
- this.isCache = isCache;
- }
-
- @NotBlank(message = "菜单类型不能为空")
- public String getMenuType()
- {
- return menuType;
- }
-
- public void setMenuType(String menuType)
- {
- this.menuType = menuType;
- }
-
- public String getVisible()
- {
- return visible;
- }
-
- public void setVisible(String visible)
- {
- this.visible = visible;
- }
-
- public String getStatus()
- {
- return status;
- }
-
- public void setStatus(String status)
- {
- this.status = status;
- }
-
- @Size(min = 0, max = 100, message = "权限标识长度不能超过100个字符")
- public String getPerms()
- {
- return perms;
- }
-
- public void setPerms(String perms)
- {
- this.perms = perms;
- }
-
- public String getIcon()
- {
- return icon;
- }
-
- public void setIcon(String icon)
- {
- this.icon = icon;
- }
-
- public List getChildren()
- {
- return children;
- }
-
- public void setChildren(List children)
- {
- this.children = children;
- }
-
- @Override
- public String toString() {
- return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
- .append("menuId", getMenuId())
- .append("menuName", getMenuName())
- .append("parentId", getParentId())
- .append("orderNum", getOrderNum())
- .append("path", getPath())
- .append("component", getComponent())
- .append("query", getQuery())
- .append("routeName", getRouteName())
- .append("isFrame", getIsFrame())
- .append("IsCache", getIsCache())
- .append("menuType", getMenuType())
- .append("visible", getVisible())
- .append("status ", getStatus())
- .append("perms", getPerms())
- .append("icon", getIcon())
- .append("createBy", getCreateBy())
- .append("createTime", getCreateTime())
- .append("updateBy", getUpdateBy())
- .append("updateTime", getUpdateTime())
- .append("remark", getRemark())
- .toString();
- }
-}
diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysOperLog.java b/ff-base/src/main/java/com/ff/base/system/domain/SysOperLog.java
deleted file mode 100644
index 5d07551..0000000
--- a/ff-base/src/main/java/com/ff/base/system/domain/SysOperLog.java
+++ /dev/null
@@ -1,270 +0,0 @@
-package com.ff.base.system.domain;
-
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
-import com.ff.base.annotation.Excel;
-import com.ff.base.annotation.Excel.ColumnType;
-import com.ff.base.core.domain.BaseEntity;
-
-/**
- * 操作日志记录表 oper_log
- *
- * @author ff
- */
-public class SysOperLog extends BaseEntity
-{
- private static final long serialVersionUID = 1L;
-
- /** 日志主键 */
- @Excel(name = "操作序号", cellType = ColumnType.NUMERIC)
- @JsonSerialize(using = ToStringSerializer.class)
- private Long operId;
-
- /** 操作模块 */
- @Excel(name = "操作模块")
- private String title;
-
- /** 业务类型(0其它 1新增 2修改 3删除) */
- @Excel(name = "业务类型", readConverterExp = "0=其它,1=新增,2=修改,3=删除,4=授权,5=导出,6=导入,7=强退,8=生成代码,9=清空数据")
- private Integer businessType;
-
- /** 业务类型数组 */
- private Integer[] businessTypes;
-
- /** 请求方法 */
- @Excel(name = "请求方法")
- private String method;
-
- /** 请求方式 */
- @Excel(name = "请求方式")
- private String requestMethod;
-
- /** 操作类别(0其它 1后台用户 2手机端用户) */
- @Excel(name = "操作类别", readConverterExp = "0=其它,1=后台用户,2=手机端用户")
- private Integer operatorType;
-
- /** 操作人员 */
- @Excel(name = "操作人员")
- private String operName;
-
- /** 部门名称 */
- @Excel(name = "部门名称")
- private String deptName;
-
- /** 请求url */
- @Excel(name = "请求地址")
- private String operUrl;
-
- /** 操作地址 */
- @Excel(name = "操作地址")
- private String operIp;
-
- /** 操作地点 */
- @Excel(name = "操作地点")
- private String operLocation;
-
- /** 请求参数 */
- @Excel(name = "请求参数")
- private String operParam;
-
- /** 返回参数 */
- @Excel(name = "返回参数")
- private String jsonResult;
-
- /** 操作状态(0正常 1异常) */
- @Excel(name = "状态", readConverterExp = "0=正常,1=异常")
- private Integer status;
-
- /** 错误消息 */
- @Excel(name = "错误消息")
- private String errorMsg;
-
- /** 操作时间 */
- @JsonSerialize(using = ToStringSerializer.class)
- @Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
- private Long operTime;
-
- /** 消耗时间 */
- @Excel(name = "消耗时间", suffix = "毫秒")
- private Long costTime;
-
- public Long getOperId()
- {
- return operId;
- }
-
- public void setOperId(Long operId)
- {
- this.operId = operId;
- }
-
- public String getTitle()
- {
- return title;
- }
-
- public void setTitle(String title)
- {
- this.title = title;
- }
-
- public Integer getBusinessType()
- {
- return businessType;
- }
-
- public void setBusinessType(Integer businessType)
- {
- this.businessType = businessType;
- }
-
- public Integer[] getBusinessTypes()
- {
- return businessTypes;
- }
-
- public void setBusinessTypes(Integer[] businessTypes)
- {
- this.businessTypes = businessTypes;
- }
-
- public String getMethod()
- {
- return method;
- }
-
- public void setMethod(String method)
- {
- this.method = method;
- }
-
- public String getRequestMethod()
- {
- return requestMethod;
- }
-
- public void setRequestMethod(String requestMethod)
- {
- this.requestMethod = requestMethod;
- }
-
- public Integer getOperatorType()
- {
- return operatorType;
- }
-
- public void setOperatorType(Integer operatorType)
- {
- this.operatorType = operatorType;
- }
-
- public String getOperName()
- {
- return operName;
- }
-
- public void setOperName(String operName)
- {
- this.operName = operName;
- }
-
- public String getDeptName()
- {
- return deptName;
- }
-
- public void setDeptName(String deptName)
- {
- this.deptName = deptName;
- }
-
- public String getOperUrl()
- {
- return operUrl;
- }
-
- public void setOperUrl(String operUrl)
- {
- this.operUrl = operUrl;
- }
-
- public String getOperIp()
- {
- return operIp;
- }
-
- public void setOperIp(String operIp)
- {
- this.operIp = operIp;
- }
-
- public String getOperLocation()
- {
- return operLocation;
- }
-
- public void setOperLocation(String operLocation)
- {
- this.operLocation = operLocation;
- }
-
- public String getOperParam()
- {
- return operParam;
- }
-
- public void setOperParam(String operParam)
- {
- this.operParam = operParam;
- }
-
- public String getJsonResult()
- {
- return jsonResult;
- }
-
- public void setJsonResult(String jsonResult)
- {
- this.jsonResult = jsonResult;
- }
-
- public Integer getStatus()
- {
- return status;
- }
-
- public void setStatus(Integer status)
- {
- this.status = status;
- }
-
- public String getErrorMsg()
- {
- return errorMsg;
- }
-
- public void setErrorMsg(String errorMsg)
- {
- this.errorMsg = errorMsg;
- }
-
- public Long getOperTime()
- {
- return operTime;
- }
-
- public void setOperTime(Long operTime)
- {
- this.operTime = operTime;
- }
-
- public Long getCostTime()
- {
- return costTime;
- }
-
- public void setCostTime(Long costTime)
- {
- this.costTime = costTime;
- }
-}
diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysRole.java b/ff-base/src/main/java/com/ff/base/system/domain/SysRole.java
deleted file mode 100644
index a7122bc..0000000
--- a/ff-base/src/main/java/com/ff/base/system/domain/SysRole.java
+++ /dev/null
@@ -1,245 +0,0 @@
-package com.ff.base.system.domain;
-
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
-import com.ff.base.annotation.Excel;
-import com.ff.base.annotation.Excel.ColumnType;
-import com.ff.base.core.domain.BaseEntity;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-import java.util.Set;
-
-/**
- * 角色表 sys_role
- *
- * @author ff
- */
-public class SysRole extends BaseEntity
-{
- private static final long serialVersionUID = 1L;
-
- /** 角色ID */
- @Excel(name = "角色序号", cellType = ColumnType.NUMERIC)
- @JsonSerialize(using = ToStringSerializer.class)
- private Long roleId;
-
- /** 角色名称 */
- @Excel(name = "角色名称")
- private String roleName;
-
- /** 角色权限 */
- @Excel(name = "角色权限")
- private String roleKey;
-
- /** 角色排序 */
- @Excel(name = "角色排序")
- private Integer roleSort;
-
- /** 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限) */
- @Excel(name = "数据范围", readConverterExp = "1=所有数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限,5=仅本人数据权限")
- private String dataScope;
-
- /** 菜单树选择项是否关联显示( 0:父子不互相关联显示 1:父子互相关联显示) */
- private boolean menuCheckStrictly;
-
- /** 部门树选择项是否关联显示(0:父子不互相关联显示 1:父子互相关联显示 ) */
- private boolean deptCheckStrictly;
-
- /** 角色状态(0正常 1停用) */
- @Excel(name = "角色状态", readConverterExp = "0=正常,1=停用")
- private String status;
-
- /** 删除标志(0代表存在 2代表删除) */
- private String delFlag;
-
- /** 用户是否存在此角色标识 默认不存在 */
- private boolean flag = false;
-
- /** 菜单组 */
- private Long[] menuIds;
-
- /** 部门组(数据权限) */
- private Long[] deptIds;
-
- /** 角色菜单权限 */
- private Set permissions;
-
- public SysRole()
- {
-
- }
-
- public SysRole(Long roleId)
- {
- this.roleId = roleId;
- }
- @JsonSerialize(using = ToStringSerializer.class)
- public Long getRoleId()
- {
- return roleId;
- }
-
- public void setRoleId(Long roleId)
- {
- this.roleId = roleId;
- }
-
- public boolean isAdmin()
- {
- return isAdmin(this.roleId);
- }
-
- public static boolean isAdmin(Long roleId)
- {
- return roleId != null && 1L == roleId;
- }
-
- @NotBlank(message = "角色名称不能为空")
- @Size(min = 0, max = 30, message = "角色名称长度不能超过30个字符")
- public String getRoleName()
- {
- return roleName;
- }
-
- public void setRoleName(String roleName)
- {
- this.roleName = roleName;
- }
-
- @NotBlank(message = "权限字符不能为空")
- @Size(min = 0, max = 100, message = "权限字符长度不能超过100个字符")
- public String getRoleKey()
- {
- return roleKey;
- }
-
- public void setRoleKey(String roleKey)
- {
- this.roleKey = roleKey;
- }
-
- @NotNull(message = "显示顺序不能为空")
- public Integer getRoleSort()
- {
- return roleSort;
- }
-
- public void setRoleSort(Integer roleSort)
- {
- this.roleSort = roleSort;
- }
-
- public String getDataScope()
- {
- return dataScope;
- }
-
- public void setDataScope(String dataScope)
- {
- this.dataScope = dataScope;
- }
-
- public boolean isMenuCheckStrictly()
- {
- return menuCheckStrictly;
- }
-
- public void setMenuCheckStrictly(boolean menuCheckStrictly)
- {
- this.menuCheckStrictly = menuCheckStrictly;
- }
-
- public boolean isDeptCheckStrictly()
- {
- return deptCheckStrictly;
- }
-
- public void setDeptCheckStrictly(boolean deptCheckStrictly)
- {
- this.deptCheckStrictly = deptCheckStrictly;
- }
-
- public String getStatus()
- {
- return status;
- }
-
- public void setStatus(String status)
- {
- this.status = status;
- }
-
- public String getDelFlag()
- {
- return delFlag;
- }
-
- public void setDelFlag(String delFlag)
- {
- this.delFlag = delFlag;
- }
-
- public boolean isFlag()
- {
- return flag;
- }
-
- public void setFlag(boolean flag)
- {
- this.flag = flag;
- }
-
- public Long[] getMenuIds()
- {
- return menuIds;
- }
-
- public void setMenuIds(Long[] menuIds)
- {
- this.menuIds = menuIds;
- }
-
- public Long[] getDeptIds()
- {
- return deptIds;
- }
-
- public void setDeptIds(Long[] deptIds)
- {
- this.deptIds = deptIds;
- }
-
- public Set getPermissions()
- {
- return permissions;
- }
-
- public void setPermissions(Set permissions)
- {
- this.permissions = permissions;
- }
-
- @Override
- public String toString() {
- return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
- .append("roleId", getRoleId())
- .append("roleName", getRoleName())
- .append("roleKey", getRoleKey())
- .append("roleSort", getRoleSort())
- .append("dataScope", getDataScope())
- .append("menuCheckStrictly", isMenuCheckStrictly())
- .append("deptCheckStrictly", isDeptCheckStrictly())
- .append("status", getStatus())
- .append("delFlag", getDelFlag())
- .append("createBy", getCreateBy())
- .append("createTime", getCreateTime())
- .append("updateBy", getUpdateBy())
- .append("updateTime", getUpdateTime())
- .append("remark", getRemark())
- .toString();
- }
-}
diff --git a/ff-base/src/main/java/com/ff/base/system/domain/SysUserOnline.java b/ff-base/src/main/java/com/ff/base/system/domain/SysUserOnline.java
deleted file mode 100644
index 8d879d2..0000000
--- a/ff-base/src/main/java/com/ff/base/system/domain/SysUserOnline.java
+++ /dev/null
@@ -1,113 +0,0 @@
-package com.ff.base.system.domain;
-
-/**
- * 当前在线会话
- *
- * @author ff
- */
-public class SysUserOnline
-{
- /** 会话编号 */
- private String tokenId;
-
- /** 部门名称 */
- private String deptName;
-
- /** 用户名称 */
- private String userName;
-
- /** 登录IP地址 */
- private String ipaddr;
-
- /** 登录地址 */
- private String loginLocation;
-
- /** 浏览器类型 */
- private String browser;
-
- /** 操作系统 */
- private String os;
-
- /** 登录时间 */
- private Long loginTime;
-
- public String getTokenId()
- {
- return tokenId;
- }
-
- public void setTokenId(String tokenId)
- {
- this.tokenId = tokenId;
- }
-
- public String getDeptName()
- {
- return deptName;
- }
-
- public void setDeptName(String deptName)
- {
- this.deptName = deptName;
- }
-
- public String getUserName()
- {
- return userName;
- }
-
- public void setUserName(String userName)
- {
- this.userName = userName;
- }
-
- public String getIpaddr()
- {
- return ipaddr;
- }
-
- public void setIpaddr(String ipaddr)
- {
- this.ipaddr = ipaddr;
- }
-
- public String getLoginLocation()
- {
- return loginLocation;
- }
-
- public void setLoginLocation(String loginLocation)
- {
- this.loginLocation = loginLocation;
- }
-
- public String getBrowser()
- {
- return browser;
- }
-
- public void setBrowser(String browser)
- {
- this.browser = browser;
- }
-
- public String getOs()
- {
- return os;
- }
-
- public void setOs(String os)
- {
- this.os = os;
- }
-
- public Long getLoginTime()
- {
- return loginTime;
- }
-
- public void setLoginTime(Long loginTime)
- {
- this.loginTime = loginTime;
- }
-}
diff --git a/ff-bean/comp-redis/pom.xml b/ff-bean/comp-redis/pom.xml
new file mode 100644
index 0000000..477d53e
--- /dev/null
+++ b/ff-bean/comp-redis/pom.xml
@@ -0,0 +1,81 @@
+
+
+ 4.0.0
+
+ ff
+ com.ff
+ 0.0.1
+
+
+ comp-redis
+ 0.0.1
+ comp-redis
+ jar
+
+
+
+
+
+
+ org.projectlombok
+ lombok
+ provided
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
+
+
+
+ org.apache.commons
+ commons-lang3
+
+
+
+
+ com.alibaba.fastjson2
+ fastjson2
+
+
+
+ commons-io
+ commons-io
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-redis
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ 2.5.15
+
+ true
+
+
+
+
+ repackage
+
+
+
+
+
+ comp-redis
+
+
+
diff --git a/ff-bean/comp-redis/src/main/java/com/ff/redis/GRedisCache.java b/ff-bean/comp-redis/src/main/java/com/ff/redis/GRedisCache.java
new file mode 100644
index 0000000..a30b333
--- /dev/null
+++ b/ff-bean/comp-redis/src/main/java/com/ff/redis/GRedisCache.java
@@ -0,0 +1,243 @@
+package com.ff.redis;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.BoundSetOperations;
+import org.springframework.data.redis.core.HashOperations;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.stereotype.Component;
+
+import java.util.*;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * spring redis 工具类
+ *
+ * @author ff
+ **/
+@SuppressWarnings(value = {"unchecked", "rawtypes"})
+@Component
+public class GRedisCache {
+ @Autowired
+ public RedisTemplate redisTemplate;
+
+ /**
+ * 缓存基本的对象,Integer、String、实体类等
+ *
+ * @param key 缓存的键值
+ * @param value 缓存的值
+ */
+ public void setCacheObject(final String key, final T value) {
+ redisTemplate.opsForValue().set(key, value);
+ }
+
+ /**
+ * 缓存基本的对象,Integer、String、实体类等
+ *
+ * @param key 缓存的键值
+ * @param value 缓存的值
+ * @param timeout 时间
+ * @param timeUnit 时间颗粒度
+ */
+ public void setCacheObject(final String key, final T value, final Integer timeout, final TimeUnit timeUnit) {
+ redisTemplate.opsForValue().set(key, value, timeout, timeUnit);
+ }
+
+ /**
+ * 设置有效时间
+ *
+ * @param key Redis键
+ * @param timeout 超时时间
+ * @return true=设置成功;false=设置失败
+ */
+ public boolean expire(final String key, final long timeout) {
+ return expire(key, timeout, TimeUnit.SECONDS);
+ }
+
+ /**
+ * 设置有效时间
+ *
+ * @param key Redis键
+ * @param timeout 超时时间
+ * @param unit 时间单位
+ * @return true=设置成功;false=设置失败
+ */
+ public boolean expire(final String key, final long timeout, final TimeUnit unit) {
+ return redisTemplate.expire(key, timeout, unit);
+ }
+
+ /**
+ * 获取有效时间
+ *
+ * @param key Redis键
+ * @return 有效时间
+ */
+ public long getExpire(final String key) {
+ return redisTemplate.getExpire(key);
+ }
+
+ /**
+ * 判断 key是否存在
+ *
+ * @param key 键
+ * @return true 存在 false不存在
+ */
+ public Boolean hasKey(String key) {
+ return redisTemplate.hasKey(key);
+ }
+
+ /**
+ * 获得缓存的基本对象。
+ *
+ * @param key 缓存键值
+ * @return 缓存键值对应的数据
+ */
+ public T getCacheObject(final String key) {
+ ValueOperations operation = redisTemplate.opsForValue();
+ return operation.get(key);
+ }
+
+ /**
+ * 删除单个对象
+ *
+ * @param key
+ */
+ public boolean deleteObject(final String key) {
+ return redisTemplate.delete(key);
+ }
+
+ /**
+ * 删除集合对象
+ *
+ * @param collection 多个对象
+ * @return
+ */
+ public boolean deleteObject(final Collection collection) {
+ return redisTemplate.delete(collection) > 0;
+ }
+
+ /**
+ * 缓存List数据
+ *
+ * @param key 缓存的键值
+ * @param dataList 待缓存的List数据
+ * @return 缓存的对象
+ */
+ public long setCacheList(final String key, final List dataList) {
+ Long count = redisTemplate.opsForList().rightPushAll(key, dataList);
+ return count == null ? 0 : count;
+ }
+
+ /**
+ * 获得缓存的list对象
+ *
+ * @param key 缓存的键值
+ * @return 缓存键值对应的数据
+ */
+ public List getCacheList(final String key) {
+ return redisTemplate.opsForList().range(key, 0, -1);
+ }
+
+ /**
+ * 缓存Set
+ *
+ * @param key 缓存键值
+ * @param dataSet 缓存的数据
+ * @return 缓存数据的对象
+ */
+ public BoundSetOperations setCacheSet(final String key, final Set dataSet) {
+ BoundSetOperations setOperation = redisTemplate.boundSetOps(key);
+ Iterator it = dataSet.iterator();
+ while (it.hasNext()) {
+ setOperation.add(it.next());
+ }
+ return setOperation;
+ }
+
+ /**
+ * 获得缓存的set
+ *
+ * @param key
+ * @return
+ */
+ public Set getCacheSet(final String key) {
+ return redisTemplate.opsForSet().members(key);
+ }
+
+ /**
+ * 缓存Map
+ *
+ * @param key
+ * @param dataMap
+ */
+ public void setCacheMap(final String key, final Map dataMap) {
+ if (dataMap != null) {
+ redisTemplate.opsForHash().putAll(key, dataMap);
+ }
+ }
+
+ /**
+ * 获得缓存的Map
+ *
+ * @param key
+ * @return
+ */
+ public Map getCacheMap(final String key) {
+ return redisTemplate.opsForHash().entries(key);
+ }
+
+ /**
+ * 往Hash中存入数据
+ *
+ * @param key Redis键
+ * @param hKey Hash键
+ * @param value 值
+ */
+ public void setCacheMapValue(final String key, final String hKey, final T value) {
+ redisTemplate.opsForHash().put(key, hKey, value);
+ }
+
+ /**
+ * 获取Hash中的数据
+ *
+ * @param key Redis键
+ * @param hKey Hash键
+ * @return Hash中的对象
+ */
+ public T getCacheMapValue(final String key, final String hKey) {
+ HashOperations opsForHash = redisTemplate.opsForHash();
+ return opsForHash.get(key, hKey);
+ }
+
+ /**
+ * 获取多个Hash中的数据
+ *
+ * @param key Redis键
+ * @param hKeys Hash键集合
+ * @return Hash对象集合
+ */
+ public List getMultiCacheMapValue(final String key, final Collection