refactor(工程): 调整工程代码结构

upgrade
liaoyong 2025-04-11 14:39:54 +08:00
parent 10c9601bbe
commit de27d191c2
458 changed files with 3439 additions and 13282 deletions

View File

@ -1,207 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>ff</artifactId>
<groupId>com.ff</groupId>
<version>0.0.1</version>
</parent>
<groupId>com.ff</groupId>
<artifactId>ff-base</artifactId>
<version>0.0.1</version>
<name>ff-base</name>
<description>ff-base</description>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.dtflys.forest</groupId>
<artifactId>forest-spring-boot-starter</artifactId>
<version>1.6.3</version>
</dependency>
<!-- SpringBoot的依赖配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.5.15</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- SpringBoot Web容器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- SpringBoot 拦截器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!-- 阿里数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
</dependency>
<!-- 验证码 -->
<dependency>
<groupId>pro.fessional</groupId>
<artifactId>kaptcha</artifactId>
</dependency>
<!-- 获取系统信息 -->
<dependency>
<groupId>com.github.oshi</groupId>
<artifactId>oshi-core</artifactId>
</dependency>
<!-- Spring框架基本的核心工具 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<!-- SpringWeb模块 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<!-- spring security 安全认证 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<!-- pagehelper 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
</dependency>
<!-- 自定义验证注解 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<!--常用工具类 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<!-- JSON工具类 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<!-- 阿里JSON解析器 -->
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
</dependency>
<!-- io常用工具类 -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<!-- excel工具 -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
</dependency>
<!--http-->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
</dependency>
<!-- yml解析器 -->
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
</dependency>
<!-- Token生成与解析-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
</dependency>
<!-- Jaxb -->
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
</dependency>
<!-- redis 缓存操作 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- pool 对象池 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
<!-- 解析客户端操作系统、浏览器等 -->
<dependency>
<groupId>eu.bitwalker</groupId>
<artifactId>UserAgentUtils</artifactId>
</dependency>
<!-- servlet包 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
<!-- 二维码生成 -->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

View File

@ -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;
}
}

View File

@ -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<SysMenu> children = new ArrayList<SysMenu>();
@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<SysMenu> getChildren()
{
return children;
}
public void setChildren(List<SysMenu> 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();
}
}

View File

@ -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;
}
}

View File

@ -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<String> 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<String> getPermissions()
{
return permissions;
}
public void setPermissions(Set<String> 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();
}
}

View File

@ -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;
}
}

View File

@ -0,0 +1,95 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>ff</artifactId>
<groupId>com.ff</groupId>
<version>0.0.1</version>
</parent>
<artifactId>ff-mysql-entity</artifactId>
<version>0.0.1</version>
<name>ff-mysql-entity</name>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.dtflys.forest</groupId>
<artifactId>forest-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 自定义验证注解 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<!--常用工具类 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<!-- 阿里JSON解析器 -->
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
</dependency>
<!-- io常用工具类 -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<!-- redis 缓存操作 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- pool 对象池, redis 依赖此对象池 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.5.15</version>
<configuration>
<fork>true</fork> <!-- 如果没有该配置devtools不会生效 -->
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<finalName>ff-mysql-entity</finalName>
</build>
</project>

View File

@ -1,14 +1,15 @@
package com.ff.agent.domain;
import java.math.BigDecimal;
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.core.domain.BaseEntity;
import lombok.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.math.BigDecimal;
/**
* ff_tenant_agent_commission
*
@ -19,11 +20,12 @@ import lombok.experimental.SuperBuilder;
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
public class TenantAgentCommission extends BaseEntity
{
public class TenantAgentCommission extends BaseEntity {
private static final long serialVersionUID = 1L;
/** $column.columnComment */
/**
* $column.columnComment
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
@ -33,49 +35,60 @@ public class TenantAgentCommission extends BaseEntity
@JsonSerialize(using = ToStringSerializer.class)
private Long agentId;
/** 来源id */
@Excel(name = "来源id")
/**
* id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long sourceId;
/** 来源类型 CommissionSourceType */
@Excel(name = "来源类型 CommissionSourceType")
/**
* CommissionSourceType
*/
private Integer sourceType;
/** 佣金类型 ff_tenant_agent_commission_type commissionType */
@Excel(name = "佣金类型 commissionType")
/**
* ff_tenant_agent_commission_type commissionType
*/
private Integer commissionType;
/** 币种 */
@Excel(name = "币种")
/**
*
*/
private String currencyCode;
/** 平台代码 */
@Excel(name = "平台代码")
/**
*
*/
private String platformCode;
/** 成本比例 */
@Excel(name = "成本比例")
/**
*
*/
private BigDecimal costBalance;
/** 商户比例 */
@Excel(name = "商户比例")
/**
*
*/
private BigDecimal merchantBalance;
/** 充值金额 */
@Excel(name = "充值金额")
/**
*
*/
private BigDecimal balance;
/** 佣金金额 */
@Excel(name = "佣金金额")
/**
*
*/
private BigDecimal commissionBalance;
/** USDT金额 */
@Excel(name = "USDT金额")
/**
* USDT
*/
private BigDecimal usdtBalance;
/** 佣金审批状态 ff_tenant_agent_approval_status 0 未提现 1 提现中 1 已提现 */
@Excel(name = "佣金审批状态 0 未提现 1 提现中 1 已提现")
/**
* ff_tenant_agent_approval_status 0 1 1
*/
private Integer approvalStatus;

View File

@ -1,17 +1,15 @@
package com.ff.agent.domain;
import java.math.BigDecimal;
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.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.math.BigDecimal;
/**
* ff_tenant_agent_invite
*
@ -22,53 +20,64 @@ import lombok.experimental.SuperBuilder;
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
public class TenantAgentInvite extends BaseEntity
{
public class TenantAgentInvite extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键id */
/**
* id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 代理id */
@Excel(name = "代理id")
/**
* id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long agentId;
/** 缴费金额 */
@Excel(name = "缴费金额")
/**
*
*/
private BigDecimal balance;
/** 邀请类型 1 租户 2代理 ff_agent_invite_type */
@Excel(name = "邀请类型 1 租户 2代理 ")
/**
* 1 2 ff_agent_invite_type
*/
private Integer inviteType;
/** 额度类型 TenantQuotaType 枚举 */
@Excel(name = "额度类型 TenantQuotaType 枚举")
/**
* TenantQuotaType
*/
private Integer quotaType;
/** 买分比例 */
@Excel(name = "买分比例")
/**
*
*/
private BigDecimal scoreRatio;
/** 租户类型 TenantType 枚举 */
@Excel(name = "租户类型 TenantType 枚举")
/**
* TenantType
*/
private Integer tenantType;
/** 透支比例 */
@Excel(name = "透支比例")
/**
*
*/
private BigDecimal depositRatio;
/** 信誉额度 */
@Excel(name = "信誉额度")
/**
*
*/
private BigDecimal realBalance;
/** 邀请码 */
@Excel(name = "邀请码")
/**
*
*/
private String inviteCode;
/** 邀请链接 */
@Excel(name = "邀请链接")
/**
*
*/
private String inviteUrl;
}

View File

@ -1,17 +1,15 @@
package com.ff.agent.domain;
import java.math.BigDecimal;
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.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.math.BigDecimal;
/**
* ff_tenant_agent_invite_platform
*
@ -22,32 +20,38 @@ import lombok.experimental.SuperBuilder;
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
public class TenantAgentInvitePlatform extends BaseEntity
{
public class TenantAgentInvitePlatform extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键id */
/**
* id
*/
private Long id;
/** 邀请码id */
@JsonSerialize(using = ToStringSerializer.class)
@Excel(name = "邀请码id", width = 30, dateFormat = "yyyy-MM-dd")
/**
* id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long inviteId;
/** 平台编码 */
@Excel(name = "平台编码")
/**
*
*/
private String platformCode;
/** 币种编码 */
@Excel(name = "币种编码")
/**
*
*/
private String currencyCode;
/** 成本 */
@Excel(name = "成本")
/**
*
*/
private BigDecimal cost;
/** 使用成本 */
@Excel(name = "使用成本")
/**
* 使
*/
private BigDecimal useCost;

View File

@ -1,17 +1,15 @@
package com.ff.agent.domain;
import java.math.BigDecimal;
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.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.math.BigDecimal;
/**
* ff_tenant_agent_invite_register
*
@ -22,50 +20,60 @@ import lombok.experimental.SuperBuilder;
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
public class TenantAgentInviteRegister extends BaseEntity
{
public class TenantAgentInviteRegister extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键id */
/**
* id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 代理id */
@Excel(name = "代理id")
/**
* id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long agentId;
/** 邀请码 */
@Excel(name = "邀请码")
/**
*
*/
private String inviteCode;
/** 账号 */
@Excel(name = "账号")
/**
*
*/
private String account;
/** 密码 */
@Excel(name = "密码")
/**
*
*/
private String password;
/** 缴费金额 */
@Excel(name = "缴费金额")
/**
*
*/
private BigDecimal balance;
/** 注册时间 */
@Excel(name = "注册时间")
/**
*
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long registerTime;
/** 注册IP */
@Excel(name = "注册IP")
/**
* IP
*/
private String registerIp;
/** 注册ip的城市 */
@Excel(name = "注册ip的城市")
/**
* ip
*/
private String registerIpCity;
/** 状态 1 待激活 2已激活 InviterRegisterStatus 枚举*/
@Excel(name = "状态 1 待激活 2已激活")
/**
* 1 2 InviterRegisterStatus
*/
private Integer status;
/**

View File

@ -1,17 +1,15 @@
package com.ff.agent.domain;
import java.math.BigDecimal;
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.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.math.BigDecimal;
/**
* ff_tenant_agent_withdrawal
*
@ -22,11 +20,12 @@ import lombok.experimental.SuperBuilder;
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
public class TenantAgentWithdrawal extends BaseEntity
{
public class TenantAgentWithdrawal extends BaseEntity {
private static final long serialVersionUID = 1L;
/** $column.columnComment */
/**
* $column.columnComment
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/**
@ -35,20 +34,24 @@ public class TenantAgentWithdrawal extends BaseEntity
@JsonSerialize(using = ToStringSerializer.class)
private Long agentId;
/** 佣金余额 */
@Excel(name = "佣金余额")
/**
*
*/
private BigDecimal commissionBalance;
/** 币种协议 */
@Excel(name = "币种协议")
/**
*
*/
private String currencyAgreement;
/** 钱包地址 */
@Excel(name = "钱包地址")
/**
*
*/
private String walletAddress;
/** 0 未提现 1 提现中 1 已提现 3 已拒绝 */
@Excel(name = " 0 未提现 1 提现中 1 已提现 3 已拒绝")
/**
* 0 1 1 3
*/
private Integer approvalStatus;

View File

@ -5,7 +5,6 @@ import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
@ -23,8 +22,7 @@ import java.util.Map;
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
public class BaseEntity implements Serializable
{
public class BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
@ -32,37 +30,48 @@ public class BaseEntity implements Serializable
*/
private Long id;
/** 搜索值 */
/**
*
*/
@JsonIgnore
private String searchValue;
/** 创建者 */
/**
*
*/
private String createBy;
/** 创建时间 */
/**
*
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long createTime;
/** 更新者 */
/**
*
*/
private String updateBy;
/** 更新时间 */
/**
*
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long updateTime;
/** 备注 */
/**
*
*/
private String remark;
/** 请求参数 */
/**
*
*/
@JsonInclude(JsonInclude.Include.NON_EMPTY)
private Map<String, Object> params;
public Map<String, Object> getParams()
{
if (params == null)
{
public Map<String, Object> getParams() {
if (params == null) {
params = new HashMap<>();
}
return params;

View File

@ -2,8 +2,6 @@ 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;
@ -16,100 +14,95 @@ import javax.validation.constraints.Size;
*
* @author ff
*/
public class SysConfig extends BaseEntity
{
public class SysConfig extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 参数主键 */
@Excel(name = "参数主键", cellType = ColumnType.NUMERIC)
/**
*
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long configId;
/** 参数名称 */
@Excel(name = "参数名称")
/**
*
*/
private String configName;
/** 参数键名 */
@Excel(name = "参数键名")
/**
*
*/
private String configKey;
/** 参数键值 */
@Excel(name = "参数键值")
/**
*
*/
private String configValue;
/** 系统内置Y是 N否 */
@Excel(name = "系统内置", readConverterExp = "Y=是,N=否")
/**
* Y N
*/
private String configType;
@JsonSerialize(using = ToStringSerializer.class)
public Long getConfigId()
{
public Long getConfigId() {
return configId;
}
public void setConfigId(Long configId)
{
public void setConfigId(Long configId) {
this.configId = configId;
}
@NotBlank(message = "参数名称不能为空")
@Size(min = 0, max = 100, message = "参数名称不能超过100个字符")
public String getConfigName()
{
public String getConfigName() {
return configName;
}
public void setConfigName(String configName)
{
public void setConfigName(String configName) {
this.configName = configName;
}
@NotBlank(message = "参数键名长度不能为空")
@Size(min = 0, max = 100, message = "参数键名长度不能超过100个字符")
public String getConfigKey()
{
public String getConfigKey() {
return configKey;
}
public void setConfigKey(String configKey)
{
public void setConfigKey(String configKey) {
this.configKey = configKey;
}
@NotBlank(message = "参数键值不能为空")
@Size(min = 0, max = 500, message = "参数键值长度不能超过500个字符")
public String getConfigValue()
{
public String getConfigValue() {
return configValue;
}
public void setConfigValue(String configValue)
{
public void setConfigValue(String configValue) {
this.configValue = configValue;
}
public String getConfigType()
{
public String getConfigType() {
return configType;
}
public void setConfigType(String configType)
{
public void setConfigType(String configType) {
this.configType = configType;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("configId", getConfigId())
.append("configName", getConfigName())
.append("configKey", getConfigKey())
.append("configValue", getConfigValue())
.append("configType", getConfigType())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.toString();
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("configId", getConfigId())
.append("configName", getConfigName())
.append("configKey", getConfigKey())
.append("configValue", getConfigValue())
.append("configType", getConfigType())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.toString();
}
}

View File

@ -2,7 +2,6 @@ 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.core.domain.BaseEntity;
import lombok.Data;
/**
@ -21,31 +20,24 @@ public class SysDatasource extends BaseEntity
private Long id;
/** 租户id */
@Excel(name = "租户id")
private String tenantId;
/** 连接地址 */
@Excel(name = "连接地址")
private String url;
/** 用户名 */
@Excel(name = "用户名")
private String username;
/** 密码 */
@Excel(name = "密码")
private String password;
/** 数据库驱动 */
@Excel(name = "数据库驱动")
private String driverClassName;
/** 时区 */
@Excel(name = "时区")
private String timeZone;
/** 状态0 停用 1 启用) */
@Excel(name = "状态", readConverterExp = "0=,停=用,1=,启=用")
private String status;
/** 时区名称 */

View File

@ -3,9 +3,6 @@ package com.ff.base.system.domain;
import com.fasterxml.jackson.annotation.JsonView;
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.constant.UserConstants;
import com.ff.base.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
@ -18,53 +15,66 @@ import javax.validation.constraints.Size;
*
* @author ff
*/
public class SysDictData extends BaseEntity
{
public class SysDictData extends BaseEntity {
private static final long serialVersionUID = 1L;
public interface DictDataSimpleView {};
/** 字典编码 */
@Excel(name = "字典编码", cellType = ColumnType.NUMERIC)
public interface DictDataSimpleView {
}
;
/**
*
*/
@JsonView(DictDataSimpleView.class)
@JsonSerialize(using = ToStringSerializer.class)
private Long dictCode;
/** 字典排序 */
@Excel(name = "字典排序", cellType = ColumnType.NUMERIC)
/**
*
*/
@JsonView(DictDataSimpleView.class)
@JsonSerialize(using = ToStringSerializer.class)
private Long dictSort;
/** 字典标签 */
@Excel(name = "字典标签")
/**
*
*/
@JsonView(DictDataSimpleView.class)
private String dictLabel;
/** 字典键值 */
@Excel(name = "字典键值")
/**
*
*/
@JsonView(DictDataSimpleView.class)
private String dictValue;
/** 字典类型 */
@Excel(name = "字典类型")
/**
*
*/
@JsonView(DictDataSimpleView.class)
private String dictType;
/** 样式属性(其他样式扩展) */
/**
*
*/
@JsonView(DictDataSimpleView.class)
private String cssClass;
/** 表格字典样式 */
/**
*
*/
@JsonView(DictDataSimpleView.class)
private String listClass;
/** 是否默认Y是 N否 */
@Excel(name = "是否默认", readConverterExp = "Y=是,N=否")
/**
* Y N
*/
@JsonView(DictDataSimpleView.class)
private String isDefault;
/** 状态0正常 1停用 */
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
/**
* 0 1
*/
private String status;
@Override
@ -76,128 +86,112 @@ public class SysDictData extends BaseEntity
public void setRemark(String remark) {
this.remark = remark;
}
@JsonView(DictDataSimpleView.class)
private String remark;
@JsonSerialize(using = ToStringSerializer.class)
public Long getDictCode()
{
public Long getDictCode() {
return dictCode;
}
public void setDictCode(Long dictCode)
{
public void setDictCode(Long dictCode) {
this.dictCode = dictCode;
}
@JsonSerialize(using = ToStringSerializer.class)
public Long getDictSort()
{
public Long getDictSort() {
return dictSort;
}
public void setDictSort(Long dictSort)
{
public void setDictSort(Long dictSort) {
this.dictSort = dictSort;
}
@NotBlank(message = "字典标签不能为空")
@Size(min = 0, max = 200, message = "字典标签长度不能超过200个字符")
public String getDictLabel()
{
public String getDictLabel() {
return dictLabel;
}
public void setDictLabel(String dictLabel)
{
public void setDictLabel(String dictLabel) {
this.dictLabel = dictLabel;
}
@NotBlank(message = "字典键值不能为空")
@Size(min = 0, max = 200, message = "字典键值长度不能超过200个字符")
public String getDictValue()
{
public String getDictValue() {
return dictValue;
}
public void setDictValue(String dictValue)
{
public void setDictValue(String dictValue) {
this.dictValue = dictValue;
}
@NotBlank(message = "字典类型不能为空")
@Size(min = 0, max = 100, message = "字典类型长度不能超过100个字符")
public String getDictType()
{
public String getDictType() {
return dictType;
}
public void setDictType(String dictType)
{
public void setDictType(String dictType) {
this.dictType = dictType;
}
@Size(min = 0, max = 100, message = "样式属性长度不能超过100个字符")
public String getCssClass()
{
public String getCssClass() {
return cssClass;
}
public void setCssClass(String cssClass)
{
public void setCssClass(String cssClass) {
this.cssClass = cssClass;
}
public String getListClass()
{
public String getListClass() {
return listClass;
}
public void setListClass(String listClass)
{
public void setListClass(String listClass) {
this.listClass = listClass;
}
public boolean getDefault()
{
return UserConstants.YES.equals(this.isDefault);
public boolean getDefault() {
return "Y".equals(this.isDefault);
}
public String getIsDefault()
{
public String getIsDefault() {
return isDefault;
}
public void setIsDefault(String isDefault)
{
public void setIsDefault(String isDefault) {
this.isDefault = isDefault;
}
public String getStatus()
{
public String getStatus() {
return status;
}
public void setStatus(String status)
{
public void setStatus(String status) {
this.status = status;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("dictCode", getDictCode())
.append("dictSort", getDictSort())
.append("dictLabel", getDictLabel())
.append("dictValue", getDictValue())
.append("dictType", getDictType())
.append("cssClass", getCssClass())
.append("listClass", getListClass())
.append("isDefault", getIsDefault())
.append("status", getStatus())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.toString();
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("dictCode", getDictCode())
.append("dictSort", getDictSort())
.append("dictLabel", getDictLabel())
.append("dictValue", getDictValue())
.append("dictType", getDictType())
.append("cssClass", getCssClass())
.append("listClass", getListClass())
.append("isDefault", getIsDefault())
.append("status", getStatus())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.toString();
}
}

View File

@ -2,8 +2,6 @@ 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;
@ -17,84 +15,80 @@ import javax.validation.constraints.Size;
*
* @author ff
*/
public class SysDictType extends BaseEntity
{
public class SysDictType extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 字典主键 */
@Excel(name = "字典主键", cellType = ColumnType.NUMERIC)
/**
*
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long dictId;
/** 字典名称 */
@Excel(name = "字典名称")
/**
*
*/
private String dictName;
/** 字典类型 */
@Excel(name = "字典类型")
/**
*
*/
private String dictType;
/** 状态0正常 1停用 */
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
/**
* 0 1
*/
private String status;
@JsonSerialize(using = ToStringSerializer.class)
public Long getDictId()
{
public Long getDictId() {
return dictId;
}
public void setDictId(Long dictId)
{
public void setDictId(Long dictId) {
this.dictId = dictId;
}
@NotBlank(message = "字典名称不能为空")
@Size(min = 0, max = 100, message = "字典类型名称长度不能超过100个字符")
public String getDictName()
{
public String getDictName() {
return dictName;
}
public void setDictName(String dictName)
{
public void setDictName(String dictName) {
this.dictName = dictName;
}
@NotBlank(message = "字典类型不能为空")
@Size(min = 0, max = 100, message = "字典类型类型长度不能超过100个字符")
@Pattern(regexp = "^[a-z][a-z0-9_]*$", message = "字典类型必须以字母开头,且只能为(小写字母,数字,下滑线)")
public String getDictType()
{
public String getDictType() {
return dictType;
}
public void setDictType(String dictType)
{
public void setDictType(String dictType) {
this.dictType = dictType;
}
public String getStatus()
{
public String getStatus() {
return status;
}
public void setStatus(String status)
{
public void setStatus(String status) {
this.status = status;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("dictId", getDictId())
.append("dictName", getDictName())
.append("dictType", getDictType())
.append("status", getStatus())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.toString();
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("dictId", getDictId())
.append("dictName", getDictName())
.append("dictType", getDictType())
.append("status", getStatus())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.toString();
}
}

View File

@ -0,0 +1,134 @@
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;
/**
* 访 sys_logininfor
*
* @author ff
*/
public class SysLogininfor extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* ID
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long infoId;
/**
*
*/
private String userName;
/**
* 0 1
*/
private String status;
/**
* IP
*/
private String ipaddr;
/**
*
*/
private String loginLocation;
/**
*
*/
private String browser;
/**
*
*/
private String os;
/**
*
*/
private String msg;
/**
* 访
*/
@JsonSerialize(using = ToStringSerializer.class)
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;
}
}

View File

@ -0,0 +1,279 @@
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;
/**
* vue3router
*/
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<SysMenu> children = new ArrayList<SysMenu>();
@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<SysMenu> getChildren() {
return children;
}
public void setChildren(List<SysMenu> 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();
}
}

View File

@ -0,0 +1,110 @@
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 lombok.Data;
/**
* oper_log
*
* @author ff
*/
@Data
public class SysOperLog extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
*
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long operId;
/**
*
*/
private String title;
/**
* 0 1 2 3
*/
private Integer businessType;
/**
*
*/
private Integer[] businessTypes;
/**
*
*/
private String method;
/**
*
*/
private String requestMethod;
/**
* 0 1 2
*/
private Integer operatorType;
/**
*
*/
private String operName;
/**
*
*/
private String deptName;
/**
* url
*/
private String operUrl;
/**
*
*/
private String operIp;
/**
*
*/
private String operLocation;
/**
*
*/
private String operParam;
/**
*
*/
private String jsonResult;
/**
* 0 1
*/
private Integer status;
/**
*
*/
private String errorMsg;
/**
*
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long operTime;
/**
*
*/
private Long costTime;
}

View File

@ -2,8 +2,6 @@ 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;
@ -17,112 +15,107 @@ import javax.validation.constraints.Size;
*
* @author ff
*/
public class SysPost extends BaseEntity
{
public class SysPost extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 岗位序号 */
@Excel(name = "岗位序号", cellType = ColumnType.NUMERIC)
/**
*
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long postId;
/** 岗位编码 */
@Excel(name = "岗位编码")
/**
*
*/
private String postCode;
/** 岗位名称 */
@Excel(name = "岗位名称")
/**
*
*/
private String postName;
/** 岗位排序 */
@Excel(name = "岗位排序")
/**
*
*/
private Integer postSort;
/** 状态0正常 1停用 */
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
/**
* 0 1
*/
private String status;
/** 用户是否存在此岗位标识 默认不存在 */
/**
*
*/
private boolean flag = false;
@JsonSerialize(using = ToStringSerializer.class)
public Long getPostId()
{
public Long getPostId() {
return postId;
}
public void setPostId(Long postId)
{
public void setPostId(Long postId) {
this.postId = postId;
}
@NotBlank(message = "岗位编码不能为空")
@Size(min = 0, max = 64, message = "岗位编码长度不能超过64个字符")
public String getPostCode()
{
public String getPostCode() {
return postCode;
}
public void setPostCode(String postCode)
{
public void setPostCode(String postCode) {
this.postCode = postCode;
}
@NotBlank(message = "岗位名称不能为空")
@Size(min = 0, max = 50, message = "岗位名称长度不能超过50个字符")
public String getPostName()
{
public String getPostName() {
return postName;
}
public void setPostName(String postName)
{
public void setPostName(String postName) {
this.postName = postName;
}
@NotNull(message = "显示顺序不能为空")
public Integer getPostSort()
{
public Integer getPostSort() {
return postSort;
}
public void setPostSort(Integer postSort)
{
public void setPostSort(Integer postSort) {
this.postSort = postSort;
}
public String getStatus()
{
public String getStatus() {
return status;
}
public void setStatus(String status)
{
public void setStatus(String status) {
this.status = status;
}
public boolean isFlag()
{
public boolean isFlag() {
return flag;
}
public void setFlag(boolean flag)
{
public void setFlag(boolean flag) {
this.flag = flag;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("postId", getPostId())
.append("postCode", getPostCode())
.append("postName", getPostName())
.append("postSort", getPostSort())
.append("status", getStatus())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.toString();
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("postId", getPostId())
.append("postCode", getPostCode())
.append("postName", getPostName())
.append("postSort", getPostSort())
.append("status", getStatus())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.toString();
}
}

View File

@ -0,0 +1,233 @@
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.Set;
/**
* sys_role
*
* @author ff
*/
public class SysRole extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* ID
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long roleId;
/**
*
*/
private String roleName;
/**
*
*/
private String roleKey;
/**
*
*/
private Integer roleSort;
/**
* 12345
*/
private String dataScope;
/**
* 0 1
*/
private boolean menuCheckStrictly;
/**
* 0 1
*/
private boolean deptCheckStrictly;
/**
* 0 1
*/
private String status;
/**
* 0 2
*/
private String delFlag;
/**
*
*/
private boolean flag = false;
/**
*
*/
private Long[] menuIds;
/**
*
*/
private Long[] deptIds;
/**
*
*/
private Set<String> 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<String> getPermissions() {
return permissions;
}
public void setPermissions(Set<String> 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();
}
}

View File

@ -10,41 +10,42 @@ import org.apache.commons.lang3.builder.ToStringStyle;
*
* @author ff
*/
public class SysRoleDept
{
/** 角色ID */
public class SysRoleDept {
/**
* ID
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long roleId;
/** 部门ID */
/**
* ID
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long deptId;
@JsonSerialize(using = ToStringSerializer.class)
public Long getRoleId()
{
public Long getRoleId() {
return roleId;
}
public void setRoleId(Long roleId)
{
public void setRoleId(Long roleId) {
this.roleId = roleId;
}
@JsonSerialize(using = ToStringSerializer.class)
public Long getDeptId()
{
public Long getDeptId() {
return deptId;
}
public void setDeptId(Long deptId)
{
public void setDeptId(Long deptId) {
this.deptId = deptId;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("roleId", getRoleId())
.append("deptId", getDeptId())
.toString();
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("roleId", getRoleId())
.append("deptId", getDeptId())
.toString();
}
}

View File

@ -10,41 +10,42 @@ import org.apache.commons.lang3.builder.ToStringStyle;
*
* @author ff
*/
public class SysRoleMenu
{
/** 角色ID */
public class SysRoleMenu {
/**
* ID
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long roleId;
/** 菜单ID */
/**
* ID
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long menuId;
@JsonSerialize(using = ToStringSerializer.class)
public Long getRoleId()
{
public Long getRoleId() {
return roleId;
}
public void setRoleId(Long roleId)
{
public void setRoleId(Long roleId) {
this.roleId = roleId;
}
@JsonSerialize(using = ToStringSerializer.class)
public Long getMenuId()
{
public Long getMenuId() {
return menuId;
}
public void setMenuId(Long menuId)
{
public void setMenuId(Long menuId) {
this.menuId = menuId;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("roleId", getRoleId())
.append("menuId", getMenuId())
.toString();
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("roleId", getRoleId())
.append("menuId", getMenuId())
.toString();
}
}

View File

@ -2,15 +2,8 @@ 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.annotation.Excel.Type;
import com.ff.base.annotation.Excels;
import com.ff.base.core.domain.BaseEntity;
import com.ff.base.xss.Xss;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
@ -30,21 +23,17 @@ public class SysUser extends BaseEntity {
* ID
*/
@JsonSerialize(using = ToStringSerializer.class)
@Excel(name = "用户序号", type = Type.EXPORT, cellType = ColumnType.NUMERIC, prompt = "用户编号")
private Long userId;
/**
* ID
*/
@Excel(name = "部门编号", type = Type.IMPORT)
@JsonSerialize(using = ToStringSerializer.class)
private Long deptId;
/**
*
*/
@Excel(name = "登录名称")
@Xss(message = "用户账号不能包含脚本字符")
@NotBlank(message = "用户账号不能为空")
@Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符")
private String userName;
@ -52,15 +41,12 @@ public class SysUser extends BaseEntity {
/**
*
*/
@Excel(name = "用户名称")
@Xss(message = "用户昵称不能包含脚本字符")
@Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符")
private String nickName;
/**
*
*/
@Excel(name = "用户邮箱")
@Email(message = "邮箱格式不正确")
@Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
private String email;
@ -68,14 +54,12 @@ public class SysUser extends BaseEntity {
/**
*
*/
@Excel(name = "手机号码", cellType = ColumnType.TEXT)
@Size(min = 0, max = 11, message = "手机号码长度不能超过11个字符")
private String phonenumber;
/**
*
*/
@Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知")
private String sex;
/**
@ -91,7 +75,6 @@ public class SysUser extends BaseEntity {
/**
* 0 1
*/
@Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用")
private String status;
/**
@ -102,23 +85,17 @@ public class SysUser extends BaseEntity {
/**
* IP
*/
@Excel(name = "最后登录IP", type = Type.EXPORT)
private String loginIp;
/**
*
*/
@Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT)
@JsonSerialize(using = ToStringSerializer.class)
private Long loginDate;
/**
*
*/
@Excels({
@Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT),
@Excel(name = "部门负责人", targetAttr = "leader", type = Type.EXPORT)
})
private SysDept dept;
/**
@ -148,18 +125,12 @@ public class SysUser extends BaseEntity {
private Integer loginType;
/**
*
*/
private String realName;
public SysUser() {
}

View File

@ -0,0 +1,112 @@
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;
}
}

View File

@ -8,39 +8,38 @@ import org.apache.commons.lang3.builder.ToStringStyle;
*
* @author ff
*/
public class SysUserPost
{
/** 用户ID */
public class SysUserPost {
/**
* ID
*/
private Long userId;
/** 岗位ID */
/**
* ID
*/
private Long postId;
public Long getUserId()
{
public Long getUserId() {
return userId;
}
public void setUserId(Long userId)
{
public void setUserId(Long userId) {
this.userId = userId;
}
public Long getPostId()
{
public Long getPostId() {
return postId;
}
public void setPostId(Long postId)
{
public void setPostId(Long postId) {
this.postId = postId;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("userId", getUserId())
.append("postId", getPostId())
.toString();
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("userId", getUserId())
.append("postId", getPostId())
.toString();
}
}

View File

@ -8,39 +8,38 @@ import org.apache.commons.lang3.builder.ToStringStyle;
*
* @author ff
*/
public class SysUserRole
{
/** 用户ID */
public class SysUserRole {
/**
* ID
*/
private Long userId;
/** 角色ID */
/**
* ID
*/
private Long roleId;
public Long getUserId()
{
public Long getUserId() {
return userId;
}
public void setUserId(Long userId)
{
public void setUserId(Long userId) {
this.userId = userId;
}
public Long getRoleId()
{
public Long getRoleId() {
return roleId;
}
public void setRoleId(Long roleId)
{
public void setRoleId(Long roleId) {
this.roleId = roleId;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("userId", getUserId())
.append("roleId", getRoleId())
.toString();
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("userId", getUserId())
.append("roleId", getRoleId())
.toString();
}
}

View File

@ -2,10 +2,8 @@ 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.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
@ -20,50 +18,58 @@ import lombok.experimental.SuperBuilder;
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
public class TenantAgent extends BaseEntity
{
public class TenantAgent extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键id */
/**
* id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 账号 */
@Excel(name = "账号")
/**
*
*/
private String account;
/** 密码 */
@Excel(name = "密码")
/**
*
*/
private String password;
/** 注册时间 */
@Excel(name = "注册时间")
/**
*
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long registerTime;
/** 注册IP */
@Excel(name = "注册IP")
/**
* IP
*/
private String registerIp;
/** 注册ip的城市 */
@Excel(name = "注册ip的城市")
/**
* ip
*/
private String registerIpCity;
/** 最后登录ip */
@Excel(name = "最后登录ip")
/**
* ip
*/
private String loginIp;
/** 最后登录时间 */
@Excel(name = "最后登录时间")
/**
*
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long loginData;
/** 租户状态 1正常 0停用 */
@Excel(name = "租户状态 1正常 0停用")
/**
* 1 0
*/
private Boolean tenantStatus;
/**
*
*/

View File

@ -1,17 +1,15 @@
package com.ff.base.system.domain;
import java.math.BigDecimal;
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.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.math.BigDecimal;
/**
* ff_tenant_platform
*
@ -22,32 +20,38 @@ import lombok.experimental.SuperBuilder;
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
public class TenantPlatform extends BaseEntity
{
public class TenantPlatform extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键id */
/**
* id
*/
private Long id;
/** 租户id */
@JsonSerialize(using = ToStringSerializer.class)
@Excel(name = "租户id", width = 30, dateFormat = "yyyy-MM-dd")
/**
* id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long tenantId;
/** 平台编码 */
@Excel(name = "平台编码")
/**
*
*/
private String platformCode;
/** 币种编码 */
@Excel(name = "币种编码")
/**
*
*/
private String currencyCode;
/** 成本 */
@Excel(name = "成本")
/**
*
*/
private BigDecimal cost;
/** 使用成本 */
@Excel(name = "使用成本")
/**
* 使
*/
private BigDecimal useCost;

View File

@ -1,18 +1,16 @@
package com.ff.base.system.domain;
import java.math.BigDecimal;
import com.fasterxml.jackson.annotation.JsonIgnore;
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.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.math.BigDecimal;
/**
* ff_tenant_secret_key
*
@ -23,76 +21,92 @@ import lombok.experimental.SuperBuilder;
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
public class TenantSecretKey extends BaseEntity
{
public class TenantSecretKey extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键id */
/**
* id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 租户key */
@Excel(name = "租户key")
/**
* key
*/
private String tenantKey;
/** 密码 */
@Excel(name = "密码")
/**
*
*/
@JsonIgnore
private String password;
/** 注册时间 */
/**
*
*/
@JsonSerialize(using = ToStringSerializer.class)
@Excel(name = "注册时间")
private Long registerTime;
/** 注册ip */
@Excel(name = "注册ip")
/**
* ip
*/
private String registerIp;
/** 注册ip的城市 */
@Excel(name = "注册ip的城市")
/**
* ip
*/
private String registerIpCity;
/** 最后登录ip */
@Excel(name = "最后登录ip")
/**
* ip
*/
private String loginIp;
/** 最后登录时间 */
/**
*
*/
@JsonSerialize(using = ToStringSerializer.class)
@Excel(name = "最后登录时间")
private Long loginData;
/** 上级代理id */
/**
* id
*/
@JsonSerialize(using = ToStringSerializer.class)
@Excel(name = "上级代理id")
private Long agentId;
/** 商户后缀 */
@Excel(name = "商户后缀")
/**
*
*/
private String tenantSn;
/** 租户密钥 */
@Excel(name = "租户密钥")
/**
*
*/
private String tenantSecret;
/** 租户状态 1正常 0停用 */
@Excel(name = "租户状态 1正常 0停用")
/**
* 1 0
*/
private Boolean tenantStatus;
/** 额度类型 TenantQuotaType 枚举 */
@Excel(name = "额度类型 TenantQuotaType 枚举")
/**
* TenantQuotaType
*/
private Integer quotaType;
/** 买分比例 */
@Excel(name = "买分比例")
/**
*
*/
private BigDecimal scoreRatio;
/** 租户类型 TenantType 枚举 */
@Excel(name = "租户类型 TenantType 枚举")
/**
* TenantType
*/
private Integer tenantType;
/** 透支比例 */
@Excel(name = "透支比例")
/**
*
*/
private BigDecimal depositRatio;

View File

@ -2,10 +2,8 @@ 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.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
@ -20,20 +18,23 @@ import lombok.experimental.SuperBuilder;
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
public class TenantWhite extends BaseEntity
{
public class TenantWhite extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键id */
/**
* id
*/
private Long id;
/** 租户id */
@JsonSerialize(using = ToStringSerializer.class)
@Excel(name = "租户id", width = 30, dateFormat = "yyyy-MM-dd")
/**
* id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long tenantId;
/** 白名单ip地址 */
@Excel(name = "白名单ip地址")
/**
* ip
*/
private String whiteIp;

View File

@ -1,12 +1,12 @@
package com.ff.common.domain;
import java.math.BigDecimal;
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.core.domain.BaseEntity;
import lombok.Data;
import java.math.BigDecimal;
/**
* ff_currency
*
@ -14,44 +14,53 @@ import lombok.Data;
* @date 2025-02-10
*/
@Data
public class Currency extends BaseEntity
{
public class Currency extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键id */
/**
* id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 币种状态0正常 1停用 */
@Excel(name = "币种状态", readConverterExp = "0=正常,1=停用")
/**
* 0 1
*/
private String status;
/** 币种国家 */
@Excel(name = "币种国家")
/**
*
*/
private String country;
/** 币种编码 */
@Excel(name = "币种编码")
/**
*
*/
private String currencyCode;
/** 币种符号 */
@Excel(name = "币种符号")
/**
*
*/
private String currencySign;
/** 汇率 */
@Excel(name = "汇率")
/**
*
*/
private BigDecimal gameRate;
/** 币种展示内容 */
@Excel(name = "币种展示内容")
/**
*
*/
private String currencyDisplay;
/** 币种名称 */
@Excel(name = "币种名称")
/**
*
*/
private String currencyName;
/** 币种全称 */
@Excel(name = "币种全称")
/**
*
*/
private String fullName;

View File

@ -2,9 +2,9 @@ package com.ff.common.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.core.domain.BaseEntity;
import lombok.Data;
/**
* ff_lang
*
@ -12,28 +12,33 @@ import lombok.Data;
* @date 2025-02-10
*/
@Data
public class Lang extends BaseEntity
{
public class Lang extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键id */
/**
* id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 语言名称 */
@Excel(name = "语言名称")
/**
*
*/
private String name;
/** 国家代码 */
@Excel(name = "国家代码")
/**
*
*/
private String country;
/** 语种 */
@Excel(name = "语种")
/**
*
*/
private String langCode;
/** 语种开关 0 关闭 1 开启 */
@Excel(name = "语种开关 0 关闭 1 开启")
/**
* 0 1
*/
private Boolean langStatus;

View File

@ -1,14 +1,13 @@
package com.ff.common.domain;
import java.math.BigDecimal;
import com.ff.base.annotation.Excel;
import com.ff.base.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.math.BigDecimal;
/**
* ff_tenant_agent_platform
*
@ -19,27 +18,32 @@ import lombok.experimental.SuperBuilder;
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
public class TenantAgentPlatform extends BaseEntity
{
public class TenantAgentPlatform extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键id */
/**
* id
*/
private Long id;
/** 平台编码 */
@Excel(name = "平台编码")
/**
*
*/
private String platformCode;
/** 币种编码 */
@Excel(name = "币种编码")
/**
*
*/
private String currencyCode;
/** 成本 */
@Excel(name = "成本")
/**
*
*/
private BigDecimal cost;
/** 使用成本 */
@Excel(name = "使用成本")
/**
* 使
*/
private BigDecimal useCost;

View File

@ -1,18 +1,15 @@
package com.ff.common.domain;
import java.math.BigDecimal;
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.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.math.BigDecimal;
/**
* ff_tenant_game_quota
*
@ -23,28 +20,33 @@ import lombok.experimental.SuperBuilder;
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
public class TenantGameQuota extends BaseEntity
{
public class TenantGameQuota extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键id */
/**
* id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 租户key */
@Excel(name = "租户key")
/**
* key
*/
private String tenantKey;
/** 游戏额度 */
@Excel(name = "游戏额度")
/**
*
*/
private BigDecimal balance;
/** 额度类型 TenantQuotaType 枚举或者平台_币种或者平台_币种_FALSE 假额度 */
@Excel(name = "额度类型 TenantQuotaType 枚举或者平台_币种或者平台_币种_FALSE 假额度")
/**
* TenantQuotaType ___FALSE
*/
private String quotaType;
/** 版本号 */
@Excel(name = "版本号")
/**
*
*/
private Integer version;

View File

@ -1,17 +1,15 @@
package com.ff.common.domain;
import java.math.BigDecimal;
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.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.math.BigDecimal;
/**
* ff_tenant_game_quota_flow
*
@ -22,65 +20,77 @@ import lombok.experimental.SuperBuilder;
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
public class TenantGameQuotaFlow extends BaseEntity
{
public class TenantGameQuotaFlow extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键id */
/**
* id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 租户key */
@Excel(name = "租户key")
/**
* key
*/
private String tenantKey;
/** 额度类型 */
@Excel(name = "额度类型")
/**
*
*/
private String quotaType;
/** 用户账号id */
@Excel(name = "用户账号id")
/**
* id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long memberId;
/** 平台 */
@Excel(name = "平台")
/**
*
*/
private String platformCode;
/** 币种代码 */
@Excel(name = "币种代码")
/**
*
*/
private String currencyCode;
/** 充值类型 false 扣除 true 充值 */
@Excel(name = "充值类型 false 扣除 true 充值")
/**
* false true
*/
private Boolean isOut;
/** 操作类型 operationType枚举 */
@Excel(name = "操作类型 operationType枚举")
/**
* operationType
*/
private Integer operationType;
/** 游戏额度之前 */
@Excel(name = "游戏额度之前")
/**
*
*/
private BigDecimal balanceBefore;
/** 游戏额度 */
@Excel(name = "游戏额度")
/**
*
*/
private BigDecimal balance;
/** 兑换比例 */
@Excel(name = "兑换比例")
/**
*
*/
private BigDecimal exchangeRatio;
/** 兑换金额 */
@Excel(name = "兑换金额")
/**
*
*/
private BigDecimal exchangeMoney;
/** 游戏额度之后 */
@Excel(name = "游戏额度之后")
/**
*
*/
private BigDecimal balanceAfter;
/**

View File

@ -1,17 +1,15 @@
package com.ff.common.domain;
import java.math.BigDecimal;
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.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.math.BigDecimal;
/**
* ff_tenant_quota_exchange
*
@ -22,36 +20,43 @@ import lombok.experimental.SuperBuilder;
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
public class TenantQuotaExchange extends BaseEntity
{
public class TenantQuotaExchange extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键id */
/**
* id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 币种编码 */
@Excel(name = "币种编码")
/**
*
*/
private String currencyCode;
/** 兑换币种编码 */
@Excel(name = "兑换币种编码")
/**
*
*/
private String exchangeCurrencyCode;
/** 市场兑换金额 */
@Excel(name = "市场兑换金额")
/**
*
*/
private BigDecimal exchangeRate;
/** 汇率差 1百分比 2 固定值 */
@Excel(name = "汇率差 1百分比 2 固定值")
/**
* 1 2
*/
private Integer differenceType;
/** 汇率差值 */
@Excel(name = "汇率差值")
/**
*
*/
private BigDecimal differenceValue;
/** 实际兑换金额 */
@Excel(name = "实际兑换金额")
/**
*
*/
private BigDecimal actualBalance;

View File

@ -2,7 +2,6 @@ package com.ff.game.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.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
@ -33,20 +32,17 @@ public class Game extends BaseEntity {
/**
*
*/
@Excel(name = "排序")
private Integer sortNo;
/**
* id
*/
@Excel(name = "游戏平台id")
@JsonSerialize(using = ToStringSerializer.class)
private Long platformId;
/**
* id
*/
@Excel(name = "游戏第三方id")
private String gameCode;
/**
@ -57,31 +53,26 @@ public class Game extends BaseEntity {
/**
*
*/
@Excel(name = "第三方来源分类")
private String gameSourceType;
/**
*
*/
@Excel(name = "游戏名称")
private String gameName;
/**
* 1 0
*/
@Excel(name = "是否支持免费游戏 1 支持 0 不支持")
private Boolean freespin;
/**
* 0 1
*/
@Excel(name = "是否支持试玩 0关闭 1开启")
private Boolean demoStatus;
/**
*
*/
@Excel(name = "维护开关 ")
private Boolean stopStatus;
/**
@ -102,5 +93,5 @@ public class Game extends BaseEntity {
/**
* id
*/
private String gameId;
private String gameId;
}

View File

@ -0,0 +1,183 @@
package com.ff.game.domain;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ff.base.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.math.BigDecimal;
/**
* ff_game_betting_details
*
* @author shi
* @date 2025-02-10
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
public class GameBettingDetails extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/**
* key
*/
private String tenantKey;
/**
*
*/
private String currencyCode;
/**
* id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long memberId;
/**
* id
*/
private String gameCode;
/**
* id
*/
@JsonSerialize(using = ToStringSerializer.class)
private String gameId;
/**
* ff_game_type
*/
private Integer gameType;
/**
*
*/
private String platformCode;
/**
*
*/
private String gameName;
/**
* 1: 2: 3: 4
*/
private Integer gameStatus;
/**
*
* 1
* 9
* 11
* 12
* 17 ()
* 18 ()
* 19
* 28
* DG
* 1:2:
* AE
*
* 0
*
* Resettle / Unsettle / Voidsettle / Unvoidsettle: 1
* Voidbet: -1
*/
private Integer gameStatusType;
/**
*
*/
private String gameCurrencyCode;
/**
*
*/
private String account;
/**
*
*/
private String round;
/**
*
*/
private String table;
/**
*
*/
private String seat;
/**
* text
*/
private String betContent;
/**
*
*/
private String wagersId;
/**
* (Unix )
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long wagersTime;
/**
*
*/
private BigDecimal betAmount;
/**
* (Unix )
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long payoffTime;
/**
*
*/
private BigDecimal payoffAmount;
/**
* (Unix )
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long settlementTime;
/**
* 1
*/
private BigDecimal turnover;
/**
* id
*/
private String orderNo;
/**
* 1 2 3 4
*/
private Integer settlementStatus;
}

View File

@ -1,17 +1,15 @@
package com.ff.game.domain;
import java.math.BigDecimal;
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.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.math.BigDecimal;
/**
* ff_game_exchange_money
*
@ -22,24 +20,28 @@ import lombok.experimental.SuperBuilder;
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
public class GameExchangeMoney extends BaseEntity
{
public class GameExchangeMoney extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键id */
/**
* id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 租户key */
@Excel(name = "租户key")
/**
* key
*/
private String tenantKey;
/** 币种编码 */
@Excel(name = "币种编码")
/**
*
*/
private String currencyCode;
/** 第三方交易id */
@Excel(name = "第三方交易id")
/**
* id
*/
private String transactionId;
/**
@ -47,47 +49,56 @@ public class GameExchangeMoney extends BaseEntity
*/
private String orderId;
/** 会员id */
@Excel(name = "会员id")
/**
* id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long memberId;
/** 游戏平台 */
@Excel(name = "游戏平台 ")
/**
*
*/
private String platformCode;
/** 操作金额 */
@Excel(name = "操作金额")
/**
*
*/
private BigDecimal balance;
/** 租户操作额度 */
@Excel(name = "租户操作额度")
/**
*
*/
private BigDecimal quota;
/** 转账前金额(游戏币) */
@Excel(name = " 转账前金额(游戏币)")
/**
* ()
*/
private BigDecimal coinBefore;
/** 转账后金额(游戏币) */
@Excel(name = "转账后金额(游戏币)")
/**
* ()
*/
private BigDecimal coinAfter;
/** 转账前金额(指定货币) */
@Excel(name = "转账前金额(指定货币)")
/**
* ()
*/
private BigDecimal currencyBefore;
/** 转账后金额(指定货币) */
@Excel(name = "转账后金额(指定货币)")
/**
* ()
*/
private BigDecimal currencyAfter;
/** 转出类型 1游戏商转入到用户全部转出 2 用户转移到游戏商 3 游戏商转移额度到平台商 */
@Excel(name = "转出类型 1游戏商转入到用户全部转出 2 用户转移到游戏商 3 游戏商转移额度到平台商")
/**
* 1 2 3
*/
private Integer exchangeType;
/** 状态0:进行中、1:成功、2:失败 */
@Excel(name = "状态 1 成功 2失败")
/**
* 0:1:2:
*/
private Integer status;
/**

View File

@ -2,10 +2,8 @@ package com.ff.game.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.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
@ -20,73 +18,88 @@ import lombok.experimental.SuperBuilder;
@AllArgsConstructor
@SuperBuilder
@NoArgsConstructor
public class GameFreeRecord extends BaseEntity
{
public class GameFreeRecord extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键id */
/**
* id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 币种编码 */
@Excel(name = "币种编码")
/**
*
*/
private String currencyCode;
/** 平台代码 */
@Excel(name = "平台代码")
/**
*
*/
private String platformCode;
/** 免费局数序号(唯一标识符) */
@Excel(name = "免费局数序号", readConverterExp = "唯=一标识符")
/**
*
*/
private String referenceId;
/** 会员id */
@Excel(name = "会员id")
/**
* id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long memberId;
/** 用户账号 */
@Excel(name = "用户账号")
/**
*
*/
private String memberAccount;
/** 游戏id */
@Excel(name = "游戏id ")
/**
* id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long gameId;
/** 免费游戏局数可使用的开始时间 */
@Excel(name = "免费游戏局数可使用的开始时间")
/**
* 使
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long sendTime;
/** 免费局数过期时间 */
@Excel(name = "免费局数过期时间")
/**
*
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long expiredTime;
/** 免费局数记录更新时间 */
@Excel(name = "免费局数记录更新时间")
/**
*
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long freeUpdateTime;
/** 免费局数赠送的游戏名称 */
@Excel(name = "免费局数赠送的游戏名称")
/**
*
*/
private String sendGame;
/** 免费局数赠送的数量 */
@Excel(name = "免费局数赠送的数量")
/**
*
*/
private Integer sendAmount;
/** 已使用的免费局数数量 */
@Excel(name = "已使用的免费局数数量")
/**
* 使
*/
private Integer usedAmount;
/** 未使用的免费局数数量 */
@Excel(name = "未使用的免费局数数量")
/**
* 使
*/
private Integer unusedAmount;
/** 免费状态 1正常 0 取消 */
@Excel(name = "免费状态 1正常 0 取消 ")
/**
* 1 0
*/
private Integer freeStatus;

View File

@ -2,10 +2,8 @@ package com.ff.member.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.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
@ -20,32 +18,38 @@ import lombok.experimental.SuperBuilder;
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
public class Member extends BaseEntity
{
public class Member extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键id */
/**
* id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 租户key */
@Excel(name = "租户key")
/**
* key
*/
private String tenantKey;
/** 会员账号 */
@Excel(name = "会员账号")
/**
*
*/
private String memberAccount;
/** 游戏账号 */
@Excel(name = "游戏账号")
/**
*
*/
private String gameAccount;
/** 平台编码 */
@Excel(name = "平台编码")
/**
*
*/
private String platformCode;
/** 币种编码 */
@Excel(name = "币种编码")
/**
*
*/
private String currencyCode;

View File

@ -0,0 +1,60 @@
package com.ff.sys.domain;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ff.base.core.domain.BaseEntity;
import lombok.Data;
/**
* ff_sys_feedback
*
* @author shi
* @date 2025-02-27
*/
@Data
public class SysFeedback extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* $column.columnComment
*/
private Long id;
/**
* 1 2
*/
private Integer userType;
/**
* id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long userId;
/**
*
*/
private String title;
/**
*
*/
private String phone;
/**
*
*/
private String content;
/**
* 1 2
*/
private Integer status;
/**
*
*/
private String replyContent;
}

View File

@ -1,8 +1,8 @@
package com.ff.sys.domain;
import com.ff.base.annotation.Excel;
import com.ff.base.core.domain.BaseEntity;
import lombok.Data;
/**
* ff_sys_notice
*
@ -10,19 +10,22 @@ import lombok.Data;
* @date 2025-02-28
*/
@Data
public class SysNotice extends BaseEntity
{
public class SysNotice extends BaseEntity {
private static final long serialVersionUID = 1L;
/** $column.columnComment */
/**
* $column.columnComment
*/
private Long id;
/** 标题 */
@Excel(name = "标题")
/**
*
*/
private String title;
/** 内容 */
@Excel(name = "内容")
/**
*
*/
private String content;

108
ff-fetcher/pom.xml 100644
View File

@ -0,0 +1,108 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>ff</artifactId>
<groupId>com.ff</groupId>
<version>0.0.1</version>
</parent>
<groupId>com.ff</groupId>
<artifactId>ff-fetcher</artifactId>
<version>0.0.1</version>
<name>ff-fetcher</name>
<dependencies>
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.dtflys.forest</groupId>
<artifactId>forest-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 自定义验证注解 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<!--常用工具类 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<!-- 阿里JSON解析器 -->
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
</dependency>
<!-- io常用工具类 -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<!-- redis 缓存操作 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- pool 对象池, redis 依赖此对象池 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.5.15</version>
<configuration>
<fork>true</fork> <!-- 如果没有该配置devtools不会生效 -->
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<warName>xk-fetcher</warName>
</configuration>
</plugin>
</plugins>
<finalName>xk-fetcher</finalName>
</build>
</project>

View File

@ -0,0 +1,28 @@
package com.ff;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.SpringBootVersion;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.scheduling.annotation.EnableAsync;
/**
*
*
* @author ff
*/
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
@EnableAsync
public class FFApplication {
public static void main(String[] args) {
// System.setProperty("spring.devtools.restart.enabled", "false");
SpringApplication.run(FFApplication.class, args);
System.out.println("(♥◠‿◠)ノ゙ FF启动成功 ლ(´ڡ`ლ)゙" + SpringBootVersion.getVersion());
}
}

View File

@ -0,0 +1,25 @@
package com.ff.utils;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
/**
* @author cengy
*/
public class CalculateDateDaysAgo {
public static LocalDate get(int daysToSubtract) {
return LocalDate.now().minusDays(daysToSubtract);
}
public static String getStr(int daysToSubtract) {
// 获取当前日期减去指定天数
LocalDate date = get(daysToSubtract);
// 定义日期格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
// 返回格式化日期字符串
return date.format(formatter);
}
}

View File

@ -0,0 +1,40 @@
package com.ff.utils;
import com.alibaba.fastjson2.JSON;
import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* @author cengy
*/
public class SortByAttributeNameASC {
public static String get(Object o) {
// Create a map to store field names and values
Map<String, Object> fieldMap = new LinkedHashMap<>();
// Get all fields of the class
Field[] fields = o.getClass().getDeclaredFields();
// Sort field names
Arrays.sort(fields, (f1, f2) -> f1.getName().compareTo(f2.getName()));
// Fill the map with sorted fields and their values
for (Field field : fields) {
field.setAccessible(true); // Make private fields accessible
Object value = null;
try {
value = field.get(o);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
fieldMap.put(field.getName(), value);
}
return JSON.toJSONString(fieldMap);
}
}

View File

@ -0,0 +1,27 @@
package com.ff.utils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @author cengy
*/
public class TimestampFromString {
public static final String PATTERN_DATE = "yyyy-MM-dd HH:mm:ss";
public static Long from(String date) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(PATTERN_DATE);
try {
Date parse = simpleDateFormat.parse(date);
return parse.getTime();
} catch (ParseException e) {
return 0L;
}
}
public static Long to(String timestamp) {
return Long.parseLong(timestamp);
}
}

View File

@ -0,0 +1,53 @@
package com.ff.xxljob.config;
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@Slf4j
public class XxlJobConfig {
@Value("${xxl.job.admin.addresses}")
private String adminAddresses;
@Value("${xxl.job.accessToken}")
private String accessToken;
@Value("${xxl.job.executor.appname}")
private String appname;
@Value("${xxl.job.executor.address}")
private String address;
@Value("${xxl.job.executor.ip}")
private String ip;
@Value("${xxl.job.executor.port}")
private int port;
@Value("${xxl.job.executor.logpath}")
private String logPath;
@Value("${xxl.job.executor.logretentiondays}")
private int logRetentionDays;
@Bean
public XxlJobSpringExecutor xxlJobExecutor() {
log.info(">>>>>>>>>>> xxl-job config init.");
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
xxlJobSpringExecutor.setAppname(appname);
xxlJobSpringExecutor.setAddress(address);
xxlJobSpringExecutor.setIp(ip);
xxlJobSpringExecutor.setPort(port);
xxlJobSpringExecutor.setAccessToken(accessToken);
xxlJobSpringExecutor.setLogPath(logPath);
xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
return xxlJobSpringExecutor;
}
}

View File

@ -0,0 +1,13 @@
package com.ff.xxljob.fetch;
import lombok.Data;
/**
* @author cengy
*/
@Data
public class TaskParam {
// 定时任务的参数平台code, 拉多少分钟前的
private String platformCode;
private long ago;
}

View File

@ -0,0 +1,29 @@
package com.ff.xxljob.task;
import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.IJobHandler;
import lombok.extern.slf4j.Slf4j;
/**
*
*
* @author cengy
*/
@Slf4j
public abstract class AbstractTask extends IJobHandler {
/**
*
*/
abstract void doExecute(String params);
/**
*
*/
@Override
public void execute() throws Exception {
String params = XxlJobHelper.getJobParam(); // 获取任务参数
doExecute(params);
}
}

View File

@ -0,0 +1,20 @@
package com.ff.xxljob.task;
import com.ff.xxljob.fetch.TaskParam;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component;
/**
*
*
* @author cengy
*/
@Component
public class FetchHistoryOrderListTask extends FetchTask {
@XxlJob("fetchHistoryOrderListTask")
@Override
public void doExecute(TaskParam taskParam) {
}
}

View File

@ -0,0 +1,20 @@
package com.ff.xxljob.task;
import com.ff.xxljob.fetch.TaskParam;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component;
/**
*
*
* @author cengy
*/
@Component
public class FetchOrderListTask extends FetchTask {
@XxlJob("fetchOrderListTask")
@Override
public void doExecute(TaskParam taskParam) {
}
}

View File

@ -0,0 +1,24 @@
package com.ff.xxljob.task;
import com.ff.xxljob.fetch.TaskParam;
import org.apache.commons.lang3.StringUtils;
/**
* @author cengy
*/
public abstract class FetchTask extends AbstractTask {
@Override
void doExecute(String params) {
if (StringUtils.isEmpty(params)) {
return;
}
String[] split = params.split(",");
TaskParam param = new TaskParam();
param.setPlatformCode(split[0]);
param.setAgo(Long.parseLong(split[1]));
doExecute(param);
}
abstract public void doExecute(TaskParam taskParam);
}

View File

@ -0,0 +1,41 @@
# 引入子配置文件
spring.config.import=\
classpath:config/test/redis.properties,\
classpath:config/test/xxljob.properties,\
classpath:config/test/mongo.properties
# 项目相关配置
ff.name=FF-Fetcher
ff.version=0.0.1
ff.copyrightYear=2024
ff.profile=D:/ff/uploadPath
ff.addressEnabled=false
ff.captchaType=math
# 开发环境配置
server.port=19080
server.servlet.context-path=/
server.tomcat.uri-encoding=UTF-8
server.tomcat.accept-count=1000
server.tomcat.threads.max=800
server.tomcat.threads.min-spare=100
# 日志配置
logging.level.com.ff=debug
logging.level.org.springframework=warn
# 用户配置
user.password.maxRetryCount=5
user.password.lockTime=10
# Spring配置
spring.mvc.pathmatch.matching-strategy=ant_path_matcher
spring.messages.basename=i18n/messages
spring.servlet.multipart.max-file-size=20MB
spring.servlet.multipart.max-request-size=20MB
# Token配置
token.header=Authorization
token.secret=abcdefghijklmnopqrstuvwxyz
token.expireTime=10080

View File

@ -0,0 +1 @@
spring.profiles.active=test

View File

@ -0,0 +1,2 @@
# Mongo 数据源配置
spring.data.mongodb.uri=mongodb://admin:123456@localhost:17017/?authSource=admin

View File

@ -0,0 +1,12 @@
# Redis 配置
spring.redis.host=192.168.50.11
spring.redis.port=26379
spring.redis.database=10
spring.redis.password=reAa123456
spring.redis.timeout=10s
# Lettuce 连接池配置
spring.redis.lettuce.pool.min-idle=0
spring.redis.lettuce.pool.max-idle=8
spring.redis.lettuce.pool.max-active=8
spring.redis.lettuce.pool.max-wait=-1ms

View File

@ -0,0 +1,9 @@
# XXL-Job配置
xxl.job.admin.addresses=http://192.168.50.11:2980/xxl-job-admin/
xxl.job.accessToken=
xxl.job.executor.appname=ff-admin-job-name
xxl.job.executor.address=http://192.168.50.28:13998
xxl.job.executor.ip=192.168.50.28
xxl.job.executor.port=13998
xxl.job.executor.logpath=./logs/job
xxl.job.executor.logretentiondays=30

View File

@ -0,0 +1,2 @@
# Mongo 数据源配置
spring.data.mongodb.uri=mongodb://admin:123456@localhost:17017/?authSource=admin

View File

@ -0,0 +1,12 @@
# Redis 配置
spring.redis.host=192.168.50.11
spring.redis.port=26379
spring.redis.database=10
spring.redis.password=reAa123456
spring.redis.timeout=10s
# Lettuce 连接池配置
spring.redis.lettuce.pool.min-idle=0
spring.redis.lettuce.pool.max-idle=8
spring.redis.lettuce.pool.max-active=8
spring.redis.lettuce.pool.max-wait=-1ms

View File

@ -0,0 +1,9 @@
# XXL-Job配置
xxl.job.admin.addresses=http://192.168.50.11:2980/xxl-job-admin/
xxl.job.accessToken=
xxl.job.executor.appname=ff-admin-job-name
xxl.job.executor.address=http://192.168.50.28:13998
xxl.job.executor.ip=192.168.50.28
xxl.job.executor.port=13998
xxl.job.executor.logpath=./logs/job
xxl.job.executor.logretentiondays=30

View File

@ -0,0 +1,47 @@
#错误消息
opration.success=操作成功
opration.fail=操作失败
not.null=* 必须填写
user.jcaptcha.error=验证码错误
user.jcaptcha.expire=验证码已失效
user.not.exists=用户不存在/密码错误
user.password.not.match=用户不存在/密码错误
user.password.retry.limit.count=密码输入错误{0}次
user.password.retry.limit.exceed=密码输入错误{0}次,帐户锁定{1}分钟
user.password.delete=对不起,您的账号已被删除
user.blocked=用户已封禁,请联系管理员
role.blocked=角色已封禁,请联系管理员
login.blocked=很遗憾访问IP已被列入系统黑名单
user.logout.success=退出成功
length.not.valid=长度必须在{min}到{max}个字符之间
user.username.not.valid=* 2到20个汉字、字母、数字或下划线组成且必须以非数字开头
user.password.not.valid=* 5-50个字符
user.email.not.valid=邮箱格式错误
user.mobile.phone.number.not.valid=手机号格式错误
user.login.success=登录成功
user.register.success=注册成功
user.notfound=请重新登录
user.forcelogout=管理员强制退出,请重新登录
user.unknown.error=未知错误,请重新登录
##文件上传消息
upload.exceed.maxSize=上传的文件大小超出限制的文件大小!<br/>允许的文件最大大小是:{0}MB
upload.filename.exceed.length=上传的文件名最长{0}个字符
upload.file.exception=本地文件上传异常
upload.file.server.not.exist=文件服务不存在
##权限
no.permission=您没有数据的权限,请联系管理员添加权限 [{0}]
no.create.permission=您没有创建数据的权限,请联系管理员添加权限 [{0}]
no.update.permission=您没有修改数据的权限,请联系管理员添加权限 [{0}]
no.delete.permission=您没有删除数据的权限,请联系管理员添加权限 [{0}]
no.export.permission=您没有导出数据的权限,请联系管理员添加权限 [{0}]
no.view.permission=您没有查看数据的权限,请联系管理员添加权限 [{0}]
##租户
operation.tenant.account.already.used=租户账号已被使用,请更换租户账号
operation.password.mismatch=两次密码不一致

View File

@ -0,0 +1,93 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 日志存放路径 -->
<property name="log.path" value="./logs" />
<!-- 日志输出格式 -->
<property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS}-[%X{dataSource}] [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
<!-- 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<!-- 系统日志输出 -->
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/sys-info.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>INFO</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/sys-error.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>ERROR</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 用户访问日志输出 -->
<appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/sys-user.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 按天回滚 daily -->
<fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<!-- 系统模块日志级别控制 -->
<logger name="com.ff" level="info" />
<!-- Spring日志级别控制 -->
<logger name="org.springframework" level="warn" />
<root level="info">
<appender-ref ref="console" />
</root>
<!--系统操作日志-->
<root level="info">
<appender-ref ref="file_info" />
<appender-ref ref="file_error" />
</root>
<!--系统用户操作日志-->
<logger name="sys-user" level="info">
<appender-ref ref="sys-user"/>
</logger>
</configuration>

View File

@ -11,46 +11,35 @@
<groupId>com.ff</groupId>
<artifactId>ff-game</artifactId>
<version>0.0.1</version>
<name>ff-admin</name>
<description>ff-admin</description>
<name>ff-game</name>
<description>ff-game</description>
<dependencies>
<dependency>
<groupId>com.ff</groupId>
<artifactId>ff-mysql-entity</artifactId>
</dependency>
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
</dependency>
<!--<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.4.10</version> &lt;!&ndash; 请检查最新版本 &ndash;&gt;
</dependency>-->
<!-- spring-boot-devtools -->
<dependency>
<!--<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional> <!-- 表示依赖不会传递 -->
</dependency>
<optional>true</optional> &lt;!&ndash; 表示依赖不会传递 &ndash;&gt;
</dependency>-->
<!-- Jackson XML 数据格式支持 -->
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<!-- swagger3-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
</dependency>
<!-- 防止进入swagger页面报类型转换错误排除3.0.0中的引用手动增加1.6.2版本 -->
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-models</artifactId>
<version>1.6.2</version>
</dependency>
<!-- Mysql驱动包 -->
<dependency>
<groupId>mysql</groupId>
@ -69,17 +58,6 @@
</exclusions>
</dependency>
<!-- 核心模块-->
<dependency>
<groupId>com.ff</groupId>
<artifactId>ff-base</artifactId>
</dependency>
<!-- 代码生成-->
<dependency>
<groupId>com.ff</groupId>
<artifactId>ff-gen</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
@ -97,8 +75,113 @@
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.dtflys.forest</groupId>
<artifactId>forest-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
</dependency>
<!-- 验证码 -->
<dependency>
<groupId>pro.fessional</groupId>
<artifactId>kaptcha</artifactId>
</dependency>
<!-- 获取系统信息 -->
<dependency>
<groupId>com.github.oshi</groupId>
<artifactId>oshi-core</artifactId>
</dependency>
<!-- pagehelper 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
</dependency>
<!-- 自定义验证注解 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<!--常用工具类 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<!-- 阿里JSON解析器 -->
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
</dependency>
<!-- io常用工具类 -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<!-- excel工具 -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
</dependency>
<!-- Token生成与解析-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
</dependency>
<!-- redis 缓存操作 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- 解析客户端操作系统、浏览器等 -->
<dependency>
<groupId>eu.bitwalker</groupId>
<artifactId>UserAgentUtils</artifactId>
</dependency>
<!-- 二维码生成 -->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
</dependency>
<!-- spring security 安全认证 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<!-- SpringBoot 拦截器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!-- pool 对象池 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
</dependencies>
<build>
@ -118,17 +201,9 @@
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<warName>${project.artifactId}</warName>
</configuration>
</plugin>
</plugins>
<finalName>${project.artifactId}</finalName>
<finalName>xk-admin</finalName>
</build>
</project>

View File

@ -1,8 +1,5 @@
package com.ff;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.SpringBootVersion;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@ -17,20 +14,16 @@ import org.springframework.security.authentication.dao.DaoAuthenticationProvider
*
* @author ff
*/
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
@MapperScan({"com.ff.base.system.mapper","com.ff.quartz.mapper","com.ff.gen.mapper"})
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
@ComponentScan(excludeFilters = {@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = DaoAuthenticationProvider.class)})
@EnableAsync
public class FFApplication
{
public class FFApplication {
public static void main(String[] args)
{
public static void main(String[] args) {
// System.setProperty("spring.devtools.restart.enabled", "false");
SpringApplication.run(FFApplication.class, args);
System.out.println("(♥◠‿◠)ノ゙ FF启动成功 ლ(´ڡ`ლ)゙"+ SpringBootVersion.getVersion());
System.out.println("(♥◠‿◠)ノ゙ FF启动成功 ლ(´ڡ`ლ)゙" + SpringBootVersion.getVersion());
}

View File

@ -1,18 +0,0 @@
package com.ff;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
/**
* web
*
* @author ff
*/
public class FFServletInitializer extends SpringBootServletInitializer
{
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application)
{
return application.sources(FFApplication.class);
}
}

View File

@ -1,9 +1,8 @@
package com.ff.agent.controller;
import
com.ff.agent.dto.AgentTenantSecretKeyDTO;
import com.ff.agent.dto.AgentCreateTenantDTO;
import com.ff.agent.dto.AgentTenantSecretKeyDTO;
import com.ff.base.constant.Constants;
import com.ff.base.core.controller.BaseController;
import com.ff.base.core.domain.AjaxResult;
@ -12,23 +11,19 @@ import com.ff.base.enums.OperationType;
import com.ff.base.enums.QuotaType;
import com.ff.base.exception.base.BaseException;
import com.ff.base.system.domain.TenantPlatform;
import com.ff.base.system.domain.TenantSecretKey;
import com.ff.base.system.dto.CreateTenantDTO;
import com.ff.base.system.dto.TenantSecretKeyDTO;
import com.ff.base.system.service.ISysDeptService;
import com.ff.base.system.service.ISysRoleService;
import com.ff.base.system.service.ISysUserService;
import com.ff.base.system.service.ITenantPlatformService;
import com.ff.base.system.service.ITenantSecretKeyService;
import com.ff.base.utils.DateUtils;
import com.ff.base.utils.bean.BeanUtils;
import com.ff.base.utils.ip.IpUtils;
import com.ff.base.system.domain.TenantSecretKey;
import com.ff.common.domain.TenantAgentPlatform;
import com.ff.common.dto.BalanceChangesDTO;
import com.ff.common.service.ITenantAgentPlatformService;
import com.ff.common.service.ITenantGameQuotaService;
import com.ff.base.system.service.ITenantSecretKeyService;
import com.ff.base.system.service.ITenantPlatformService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
@ -61,6 +56,7 @@ public class AgentController extends BaseController {
@Resource
private ITenantAgentPlatformService tenantAgentPlatformService;
/**
*
*
@ -80,7 +76,7 @@ public class AgentController extends BaseController {
AgentTenantSecretKeyDTO agentTenantSecretKeyDTO = new AgentTenantSecretKeyDTO();
BeanUtils.copyProperties(row, agentTenantSecretKeyDTO);
agentTenantSecretKeyDTO.setTenantPlatforms(tenantPlatformService.selectTenantPlatformList(TenantPlatform.builder()
.tenantId(row.getId())
.tenantId(row.getId())
.build()));
list.add(agentTenantSecretKeyDTO);
}
@ -105,7 +101,7 @@ public class AgentController extends BaseController {
for (TenantAgentPlatform tenantAgentPlatform : agentCreateTenantDTO.getTenantAgentPlatforms()) {
TenantAgentPlatform agentPlatform = tenantAgentPlatformService.selectTenantAgentPlatformById(tenantAgentPlatform.getId());
// 成本比平台成本大
if (agentPlatform.getCost().compareTo(tenantAgentPlatform.getCost())>0){
if (agentPlatform.getCost().compareTo(tenantAgentPlatform.getCost()) > 0) {
throw new BaseException("成本比例不允许比最低比例小");
}
TenantPlatform tenantPlatform = new TenantPlatform();

View File

@ -1,7 +1,5 @@
package com.ff.base.annotation;
import com.ff.base.annotation.Excel;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

View File

@ -2,13 +2,13 @@ package com.ff.base.aspectj;
import com.ff.base.annotation.DataScope;
import com.ff.base.core.domain.BaseEntity;
import com.ff.base.system.domain.SysRole;
import com.ff.base.system.domain.SysUser;
import com.ff.base.core.domain.model.LoginUser;
import com.ff.base.core.text.Convert;
import com.ff.base.security.context.PermissionContextHolder;
import com.ff.base.system.domain.SysRole;
import com.ff.base.system.domain.SysUser;
import com.ff.base.utils.SecurityUtils;
import com.ff.base.utils.StringUtils;
import com.ff.base.security.context.PermissionContextHolder;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;

View File

@ -1,8 +1,8 @@
package com.ff.base.aspectj;
import com.ff.base.annotation.DataSource;
import com.ff.base.utils.StringUtils;
import com.ff.base.datasource.DynamicDataSourceContextHolder;
import com.ff.base.utils.StringUtils;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;

View File

@ -2,18 +2,18 @@ package com.ff.base.aspectj;
import com.alibaba.fastjson2.JSON;
import com.ff.base.annotation.Log;
import com.ff.base.system.domain.SysUser;
import com.ff.base.core.domain.model.LoginUser;
import com.ff.base.enums.BusinessStatus;
import com.ff.base.enums.HttpMethod;
import com.ff.base.filter.PropertyPreExcludeFilter;
import com.ff.base.manager.AsyncManager;
import com.ff.base.manager.factory.AsyncFactory;
import com.ff.base.system.domain.SysOperLog;
import com.ff.base.system.domain.SysUser;
import com.ff.base.utils.SecurityUtils;
import com.ff.base.utils.ServletUtils;
import com.ff.base.utils.StringUtils;
import com.ff.base.utils.ip.IpUtils;
import com.ff.base.manager.AsyncManager;
import com.ff.base.manager.factory.AsyncFactory;
import com.ff.base.system.domain.SysOperLog;
import org.apache.commons.lang3.ArrayUtils;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;

View File

@ -10,8 +10,6 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver;
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;

Some files were not shown because too many files have changed in this diff Show More