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

View File

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

View File

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

View File

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

View File

@ -1,17 +1,15 @@
package com.ff.agent.domain; package com.ff.agent.domain;
import java.math.BigDecimal;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ff.base.annotation.Excel;
import com.ff.base.core.domain.BaseEntity; import com.ff.base.core.domain.BaseEntity;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder; import lombok.experimental.SuperBuilder;
import java.math.BigDecimal;
/** /**
* ff_tenant_agent_withdrawal * ff_tenant_agent_withdrawal
* *
@ -22,11 +20,12 @@ import lombok.experimental.SuperBuilder;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@SuperBuilder @SuperBuilder
public class TenantAgentWithdrawal extends BaseEntity public class TenantAgentWithdrawal extends BaseEntity {
{
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** $column.columnComment */ /**
* $column.columnComment
*/
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long id; private Long id;
/** /**
@ -35,20 +34,24 @@ public class TenantAgentWithdrawal extends BaseEntity
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long agentId; private Long agentId;
/** 佣金余额 */ /**
@Excel(name = "佣金余额") *
*/
private BigDecimal commissionBalance; private BigDecimal commissionBalance;
/** 币种协议 */ /**
@Excel(name = "币种协议") *
*/
private String currencyAgreement; private String currencyAgreement;
/** 钱包地址 */ /**
@Excel(name = "钱包地址") *
*/
private String walletAddress; private String walletAddress;
/** 0 未提现 1 提现中 1 已提现 3 已拒绝 */ /**
@Excel(name = " 0 未提现 1 提现中 1 已提现 3 已拒绝") * 0 1 1 3
*/
private Integer approvalStatus; 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.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder; import lombok.experimental.SuperBuilder;
@ -23,8 +22,7 @@ import java.util.Map;
@SuperBuilder @SuperBuilder
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
public class BaseEntity implements Serializable public class BaseEntity implements Serializable {
{
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
@ -32,37 +30,48 @@ public class BaseEntity implements Serializable
*/ */
private Long id; private Long id;
/** 搜索值 */ /**
*
*/
@JsonIgnore @JsonIgnore
private String searchValue; private String searchValue;
/** 创建者 */ /**
*
*/
private String createBy; private String createBy;
/** 创建时间 */ /**
*
*/
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long createTime; private Long createTime;
/** 更新者 */ /**
*
*/
private String updateBy; private String updateBy;
/** 更新时间 */ /**
*
*/
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long updateTime; private Long updateTime;
/** 备注 */ /**
*
*/
private String remark; private String remark;
/** 请求参数 */ /**
*
*/
@JsonInclude(JsonInclude.Include.NON_EMPTY) @JsonInclude(JsonInclude.Include.NON_EMPTY)
private Map<String, Object> params; private Map<String, Object> params;
public Map<String, Object> getParams() {
public Map<String, Object> getParams() if (params == null) {
{
if (params == null)
{
params = new HashMap<>(); params = new HashMap<>();
} }
return params; 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.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; 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 com.ff.base.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.lang3.builder.ToStringStyle;
@ -16,100 +14,95 @@ import javax.validation.constraints.Size;
* *
* @author ff * @author ff
*/ */
public class SysConfig extends BaseEntity public class SysConfig extends BaseEntity {
{
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** 参数主键 */ /**
@Excel(name = "参数主键", cellType = ColumnType.NUMERIC) *
*/
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long configId; private Long configId;
/** 参数名称 */ /**
@Excel(name = "参数名称") *
*/
private String configName; private String configName;
/** 参数键名 */ /**
@Excel(name = "参数键名") *
*/
private String configKey; private String configKey;
/** 参数键值 */ /**
@Excel(name = "参数键值") *
*/
private String configValue; private String configValue;
/** 系统内置Y是 N否 */ /**
@Excel(name = "系统内置", readConverterExp = "Y=是,N=否") * Y N
*/
private String configType; private String configType;
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
public Long getConfigId() public Long getConfigId() {
{
return configId; return configId;
} }
public void setConfigId(Long configId) public void setConfigId(Long configId) {
{
this.configId = configId; this.configId = configId;
} }
@NotBlank(message = "参数名称不能为空") @NotBlank(message = "参数名称不能为空")
@Size(min = 0, max = 100, message = "参数名称不能超过100个字符") @Size(min = 0, max = 100, message = "参数名称不能超过100个字符")
public String getConfigName() public String getConfigName() {
{
return configName; return configName;
} }
public void setConfigName(String configName) public void setConfigName(String configName) {
{
this.configName = configName; this.configName = configName;
} }
@NotBlank(message = "参数键名长度不能为空") @NotBlank(message = "参数键名长度不能为空")
@Size(min = 0, max = 100, message = "参数键名长度不能超过100个字符") @Size(min = 0, max = 100, message = "参数键名长度不能超过100个字符")
public String getConfigKey() public String getConfigKey() {
{
return configKey; return configKey;
} }
public void setConfigKey(String configKey) public void setConfigKey(String configKey) {
{
this.configKey = configKey; this.configKey = configKey;
} }
@NotBlank(message = "参数键值不能为空") @NotBlank(message = "参数键值不能为空")
@Size(min = 0, max = 500, message = "参数键值长度不能超过500个字符") @Size(min = 0, max = 500, message = "参数键值长度不能超过500个字符")
public String getConfigValue() public String getConfigValue() {
{
return configValue; return configValue;
} }
public void setConfigValue(String configValue) public void setConfigValue(String configValue) {
{
this.configValue = configValue; this.configValue = configValue;
} }
public String getConfigType() public String getConfigType() {
{
return configType; return configType;
} }
public void setConfigType(String configType) public void setConfigType(String configType) {
{
this.configType = configType; this.configType = configType;
} }
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("configId", getConfigId()) .append("configId", getConfigId())
.append("configName", getConfigName()) .append("configName", getConfigName())
.append("configKey", getConfigKey()) .append("configKey", getConfigKey())
.append("configValue", getConfigValue()) .append("configValue", getConfigValue())
.append("configType", getConfigType()) .append("configType", getConfigType())
.append("createBy", getCreateBy()) .append("createBy", getCreateBy())
.append("createTime", getCreateTime()) .append("createTime", getCreateTime())
.append("updateBy", getUpdateBy()) .append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime()) .append("updateTime", getUpdateTime())
.append("remark", getRemark()) .append("remark", getRemark())
.toString(); .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.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ff.base.annotation.Excel;
import com.ff.base.core.domain.BaseEntity; import com.ff.base.core.domain.BaseEntity;
import lombok.Data; import lombok.Data;
/** /**
@ -21,31 +20,24 @@ public class SysDatasource extends BaseEntity
private Long id; private Long id;
/** 租户id */ /** 租户id */
@Excel(name = "租户id")
private String tenantId; private String tenantId;
/** 连接地址 */ /** 连接地址 */
@Excel(name = "连接地址")
private String url; private String url;
/** 用户名 */ /** 用户名 */
@Excel(name = "用户名")
private String username; private String username;
/** 密码 */ /** 密码 */
@Excel(name = "密码")
private String password; private String password;
/** 数据库驱动 */ /** 数据库驱动 */
@Excel(name = "数据库驱动")
private String driverClassName; private String driverClassName;
/** 时区 */ /** 时区 */
@Excel(name = "时区")
private String timeZone; private String timeZone;
/** 状态0 停用 1 启用) */ /** 状态0 停用 1 启用) */
@Excel(name = "状态", readConverterExp = "0=,停=用,1=,启=用")
private String status; 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.annotation.JsonView;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; 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 com.ff.base.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.lang3.builder.ToStringStyle;
@ -18,53 +15,66 @@ import javax.validation.constraints.Size;
* *
* @author ff * @author ff
*/ */
public class SysDictData extends BaseEntity public class SysDictData extends BaseEntity {
{
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public interface DictDataSimpleView {}; public interface DictDataSimpleView {
/** 字典编码 */ }
@Excel(name = "字典编码", cellType = ColumnType.NUMERIC)
;
/**
*
*/
@JsonView(DictDataSimpleView.class) @JsonView(DictDataSimpleView.class)
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long dictCode; private Long dictCode;
/** 字典排序 */ /**
@Excel(name = "字典排序", cellType = ColumnType.NUMERIC) *
*/
@JsonView(DictDataSimpleView.class) @JsonView(DictDataSimpleView.class)
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long dictSort; private Long dictSort;
/** 字典标签 */ /**
@Excel(name = "字典标签") *
*/
@JsonView(DictDataSimpleView.class) @JsonView(DictDataSimpleView.class)
private String dictLabel; private String dictLabel;
/** 字典键值 */ /**
@Excel(name = "字典键值") *
*/
@JsonView(DictDataSimpleView.class) @JsonView(DictDataSimpleView.class)
private String dictValue; private String dictValue;
/** 字典类型 */ /**
@Excel(name = "字典类型") *
*/
@JsonView(DictDataSimpleView.class) @JsonView(DictDataSimpleView.class)
private String dictType; private String dictType;
/** 样式属性(其他样式扩展) */ /**
*
*/
@JsonView(DictDataSimpleView.class) @JsonView(DictDataSimpleView.class)
private String cssClass; private String cssClass;
/** 表格字典样式 */ /**
*
*/
@JsonView(DictDataSimpleView.class) @JsonView(DictDataSimpleView.class)
private String listClass; private String listClass;
/** 是否默认Y是 N否 */ /**
@Excel(name = "是否默认", readConverterExp = "Y=是,N=否") * Y N
*/
@JsonView(DictDataSimpleView.class) @JsonView(DictDataSimpleView.class)
private String isDefault; private String isDefault;
/** 状态0正常 1停用 */ /**
@Excel(name = "状态", readConverterExp = "0=正常,1=停用") * 0 1
*/
private String status; private String status;
@Override @Override
@ -76,128 +86,112 @@ public class SysDictData extends BaseEntity
public void setRemark(String remark) { public void setRemark(String remark) {
this.remark = remark; this.remark = remark;
} }
@JsonView(DictDataSimpleView.class) @JsonView(DictDataSimpleView.class)
private String remark; private String remark;
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
public Long getDictCode() public Long getDictCode() {
{
return dictCode; return dictCode;
} }
public void setDictCode(Long dictCode) public void setDictCode(Long dictCode) {
{
this.dictCode = dictCode; this.dictCode = dictCode;
} }
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
public Long getDictSort() public Long getDictSort() {
{
return dictSort; return dictSort;
} }
public void setDictSort(Long dictSort) public void setDictSort(Long dictSort) {
{
this.dictSort = dictSort; this.dictSort = dictSort;
} }
@NotBlank(message = "字典标签不能为空") @NotBlank(message = "字典标签不能为空")
@Size(min = 0, max = 200, message = "字典标签长度不能超过200个字符") @Size(min = 0, max = 200, message = "字典标签长度不能超过200个字符")
public String getDictLabel() public String getDictLabel() {
{
return dictLabel; return dictLabel;
} }
public void setDictLabel(String dictLabel) public void setDictLabel(String dictLabel) {
{
this.dictLabel = dictLabel; this.dictLabel = dictLabel;
} }
@NotBlank(message = "字典键值不能为空") @NotBlank(message = "字典键值不能为空")
@Size(min = 0, max = 200, message = "字典键值长度不能超过200个字符") @Size(min = 0, max = 200, message = "字典键值长度不能超过200个字符")
public String getDictValue() public String getDictValue() {
{
return dictValue; return dictValue;
} }
public void setDictValue(String dictValue) public void setDictValue(String dictValue) {
{
this.dictValue = dictValue; this.dictValue = dictValue;
} }
@NotBlank(message = "字典类型不能为空") @NotBlank(message = "字典类型不能为空")
@Size(min = 0, max = 100, message = "字典类型长度不能超过100个字符") @Size(min = 0, max = 100, message = "字典类型长度不能超过100个字符")
public String getDictType() public String getDictType() {
{
return dictType; return dictType;
} }
public void setDictType(String dictType) public void setDictType(String dictType) {
{
this.dictType = dictType; this.dictType = dictType;
} }
@Size(min = 0, max = 100, message = "样式属性长度不能超过100个字符") @Size(min = 0, max = 100, message = "样式属性长度不能超过100个字符")
public String getCssClass() public String getCssClass() {
{
return cssClass; return cssClass;
} }
public void setCssClass(String cssClass) public void setCssClass(String cssClass) {
{
this.cssClass = cssClass; this.cssClass = cssClass;
} }
public String getListClass() public String getListClass() {
{
return listClass; return listClass;
} }
public void setListClass(String listClass) public void setListClass(String listClass) {
{
this.listClass = listClass; this.listClass = listClass;
} }
public boolean getDefault() public boolean getDefault() {
{ return "Y".equals(this.isDefault);
return UserConstants.YES.equals(this.isDefault);
} }
public String getIsDefault() public String getIsDefault() {
{
return isDefault; return isDefault;
} }
public void setIsDefault(String isDefault) public void setIsDefault(String isDefault) {
{
this.isDefault = isDefault; this.isDefault = isDefault;
} }
public String getStatus() public String getStatus() {
{
return status; return status;
} }
public void setStatus(String status) public void setStatus(String status) {
{
this.status = status; this.status = status;
} }
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("dictCode", getDictCode()) .append("dictCode", getDictCode())
.append("dictSort", getDictSort()) .append("dictSort", getDictSort())
.append("dictLabel", getDictLabel()) .append("dictLabel", getDictLabel())
.append("dictValue", getDictValue()) .append("dictValue", getDictValue())
.append("dictType", getDictType()) .append("dictType", getDictType())
.append("cssClass", getCssClass()) .append("cssClass", getCssClass())
.append("listClass", getListClass()) .append("listClass", getListClass())
.append("isDefault", getIsDefault()) .append("isDefault", getIsDefault())
.append("status", getStatus()) .append("status", getStatus())
.append("createBy", getCreateBy()) .append("createBy", getCreateBy())
.append("createTime", getCreateTime()) .append("createTime", getCreateTime())
.append("updateBy", getUpdateBy()) .append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime()) .append("updateTime", getUpdateTime())
.append("remark", getRemark()) .append("remark", getRemark())
.toString(); .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.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; 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 com.ff.base.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.lang3.builder.ToStringStyle;
@ -17,84 +15,80 @@ import javax.validation.constraints.Size;
* *
* @author ff * @author ff
*/ */
public class SysDictType extends BaseEntity public class SysDictType extends BaseEntity {
{
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** 字典主键 */ /**
@Excel(name = "字典主键", cellType = ColumnType.NUMERIC) *
*/
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long dictId; private Long dictId;
/** 字典名称 */ /**
@Excel(name = "字典名称") *
*/
private String dictName; private String dictName;
/** 字典类型 */ /**
@Excel(name = "字典类型") *
*/
private String dictType; private String dictType;
/** 状态0正常 1停用 */ /**
@Excel(name = "状态", readConverterExp = "0=正常,1=停用") * 0 1
*/
private String status; private String status;
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
public Long getDictId() public Long getDictId() {
{
return dictId; return dictId;
} }
public void setDictId(Long dictId) public void setDictId(Long dictId) {
{
this.dictId = dictId; this.dictId = dictId;
} }
@NotBlank(message = "字典名称不能为空") @NotBlank(message = "字典名称不能为空")
@Size(min = 0, max = 100, message = "字典类型名称长度不能超过100个字符") @Size(min = 0, max = 100, message = "字典类型名称长度不能超过100个字符")
public String getDictName() public String getDictName() {
{
return dictName; return dictName;
} }
public void setDictName(String dictName) public void setDictName(String dictName) {
{
this.dictName = dictName; this.dictName = dictName;
} }
@NotBlank(message = "字典类型不能为空") @NotBlank(message = "字典类型不能为空")
@Size(min = 0, max = 100, message = "字典类型类型长度不能超过100个字符") @Size(min = 0, max = 100, message = "字典类型类型长度不能超过100个字符")
@Pattern(regexp = "^[a-z][a-z0-9_]*$", message = "字典类型必须以字母开头,且只能为(小写字母,数字,下滑线)") @Pattern(regexp = "^[a-z][a-z0-9_]*$", message = "字典类型必须以字母开头,且只能为(小写字母,数字,下滑线)")
public String getDictType() public String getDictType() {
{
return dictType; return dictType;
} }
public void setDictType(String dictType) public void setDictType(String dictType) {
{
this.dictType = dictType; this.dictType = dictType;
} }
public String getStatus() public String getStatus() {
{
return status; return status;
} }
public void setStatus(String status) public void setStatus(String status) {
{
this.status = status; this.status = status;
} }
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("dictId", getDictId()) .append("dictId", getDictId())
.append("dictName", getDictName()) .append("dictName", getDictName())
.append("dictType", getDictType()) .append("dictType", getDictType())
.append("status", getStatus()) .append("status", getStatus())
.append("createBy", getCreateBy()) .append("createBy", getCreateBy())
.append("createTime", getCreateTime()) .append("createTime", getCreateTime())
.append("updateBy", getUpdateBy()) .append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime()) .append("updateTime", getUpdateTime())
.append("remark", getRemark()) .append("remark", getRemark())
.toString(); .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.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; 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 com.ff.base.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.lang3.builder.ToStringStyle;
@ -17,112 +15,107 @@ import javax.validation.constraints.Size;
* *
* @author ff * @author ff
*/ */
public class SysPost extends BaseEntity public class SysPost extends BaseEntity {
{
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** 岗位序号 */ /**
@Excel(name = "岗位序号", cellType = ColumnType.NUMERIC) *
*/
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long postId; private Long postId;
/** 岗位编码 */ /**
@Excel(name = "岗位编码") *
*/
private String postCode; private String postCode;
/** 岗位名称 */ /**
@Excel(name = "岗位名称") *
*/
private String postName; private String postName;
/** 岗位排序 */ /**
@Excel(name = "岗位排序") *
*/
private Integer postSort; private Integer postSort;
/** 状态0正常 1停用 */ /**
@Excel(name = "状态", readConverterExp = "0=正常,1=停用") * 0 1
*/
private String status; private String status;
/** 用户是否存在此岗位标识 默认不存在 */ /**
*
*/
private boolean flag = false; private boolean flag = false;
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
public Long getPostId() public Long getPostId() {
{
return postId; return postId;
} }
public void setPostId(Long postId) public void setPostId(Long postId) {
{
this.postId = postId; this.postId = postId;
} }
@NotBlank(message = "岗位编码不能为空") @NotBlank(message = "岗位编码不能为空")
@Size(min = 0, max = 64, message = "岗位编码长度不能超过64个字符") @Size(min = 0, max = 64, message = "岗位编码长度不能超过64个字符")
public String getPostCode() public String getPostCode() {
{
return postCode; return postCode;
} }
public void setPostCode(String postCode) public void setPostCode(String postCode) {
{
this.postCode = postCode; this.postCode = postCode;
} }
@NotBlank(message = "岗位名称不能为空") @NotBlank(message = "岗位名称不能为空")
@Size(min = 0, max = 50, message = "岗位名称长度不能超过50个字符") @Size(min = 0, max = 50, message = "岗位名称长度不能超过50个字符")
public String getPostName() public String getPostName() {
{
return postName; return postName;
} }
public void setPostName(String postName) public void setPostName(String postName) {
{
this.postName = postName; this.postName = postName;
} }
@NotNull(message = "显示顺序不能为空") @NotNull(message = "显示顺序不能为空")
public Integer getPostSort() public Integer getPostSort() {
{
return postSort; return postSort;
} }
public void setPostSort(Integer postSort) public void setPostSort(Integer postSort) {
{
this.postSort = postSort; this.postSort = postSort;
} }
public String getStatus() public String getStatus() {
{
return status; return status;
} }
public void setStatus(String status) public void setStatus(String status) {
{
this.status = status; this.status = status;
} }
public boolean isFlag() public boolean isFlag() {
{
return flag; return flag;
} }
public void setFlag(boolean flag) public void setFlag(boolean flag) {
{
this.flag = flag; this.flag = flag;
} }
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("postId", getPostId()) .append("postId", getPostId())
.append("postCode", getPostCode()) .append("postCode", getPostCode())
.append("postName", getPostName()) .append("postName", getPostName())
.append("postSort", getPostSort()) .append("postSort", getPostSort())
.append("status", getStatus()) .append("status", getStatus())
.append("createBy", getCreateBy()) .append("createBy", getCreateBy())
.append("createTime", getCreateTime()) .append("createTime", getCreateTime())
.append("updateBy", getUpdateBy()) .append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime()) .append("updateTime", getUpdateTime())
.append("remark", getRemark()) .append("remark", getRemark())
.toString(); .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 * @author ff
*/ */
public class SysRoleDept public class SysRoleDept {
{ /**
/** 角色ID */ * ID
*/
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long roleId; private Long roleId;
/** 部门ID */ /**
* ID
*/
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long deptId; private Long deptId;
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
public Long getRoleId() public Long getRoleId() {
{
return roleId; return roleId;
} }
public void setRoleId(Long roleId) public void setRoleId(Long roleId) {
{
this.roleId = roleId; this.roleId = roleId;
} }
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
public Long getDeptId() public Long getDeptId() {
{
return deptId; return deptId;
} }
public void setDeptId(Long deptId) public void setDeptId(Long deptId) {
{
this.deptId = deptId; this.deptId = deptId;
} }
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("roleId", getRoleId()) .append("roleId", getRoleId())
.append("deptId", getDeptId()) .append("deptId", getDeptId())
.toString(); .toString();
} }
} }

View File

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

View File

@ -8,39 +8,38 @@ import org.apache.commons.lang3.builder.ToStringStyle;
* *
* @author ff * @author ff
*/ */
public class SysUserRole public class SysUserRole {
{ /**
/** 用户ID */ * ID
*/
private Long userId; private Long userId;
/** 角色ID */ /**
* ID
*/
private Long roleId; private Long roleId;
public Long getUserId() public Long getUserId() {
{
return userId; return userId;
} }
public void setUserId(Long userId) public void setUserId(Long userId) {
{
this.userId = userId; this.userId = userId;
} }
public Long getRoleId() public Long getRoleId() {
{
return roleId; return roleId;
} }
public void setRoleId(Long roleId) public void setRoleId(Long roleId) {
{
this.roleId = roleId; this.roleId = roleId;
} }
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("userId", getUserId()) .append("userId", getUserId())
.append("roleId", getRoleId()) .append("roleId", getRoleId())
.toString(); .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.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ff.base.annotation.Excel;
import com.ff.base.core.domain.BaseEntity; import com.ff.base.core.domain.BaseEntity;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder; import lombok.experimental.SuperBuilder;
@ -20,50 +18,58 @@ import lombok.experimental.SuperBuilder;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@SuperBuilder @SuperBuilder
public class TenantAgent extends BaseEntity public class TenantAgent extends BaseEntity {
{
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** 主键id */ /**
* id
*/
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long id; private Long id;
/** 账号 */ /**
@Excel(name = "账号") *
*/
private String account; private String account;
/** 密码 */ /**
@Excel(name = "密码") *
*/
private String password; private String password;
/** 注册时间 */ /**
@Excel(name = "注册时间") *
*/
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long registerTime; private Long registerTime;
/** 注册IP */ /**
@Excel(name = "注册IP") * IP
*/
private String registerIp; private String registerIp;
/** 注册ip的城市 */ /**
@Excel(name = "注册ip的城市") * ip
*/
private String registerIpCity; private String registerIpCity;
/** 最后登录ip */ /**
@Excel(name = "最后登录ip") * ip
*/
private String loginIp; private String loginIp;
/** 最后登录时间 */ /**
@Excel(name = "最后登录时间") *
*/
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long loginData; private Long loginData;
/** 租户状态 1正常 0停用 */ /**
@Excel(name = "租户状态 1正常 0停用") * 1 0
*/
private Boolean tenantStatus; private Boolean tenantStatus;
/** /**
* *
*/ */

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,17 +1,15 @@
package com.ff.common.domain; package com.ff.common.domain;
import java.math.BigDecimal;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ff.base.annotation.Excel;
import com.ff.base.core.domain.BaseEntity; import com.ff.base.core.domain.BaseEntity;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder; import lombok.experimental.SuperBuilder;
import java.math.BigDecimal;
/** /**
* ff_tenant_quota_exchange * ff_tenant_quota_exchange
* *
@ -22,36 +20,43 @@ import lombok.experimental.SuperBuilder;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@SuperBuilder @SuperBuilder
public class TenantQuotaExchange extends BaseEntity public class TenantQuotaExchange extends BaseEntity {
{
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** 主键id */ /**
* id
*/
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long id; private Long id;
/** 币种编码 */ /**
@Excel(name = "币种编码") *
*/
private String currencyCode; private String currencyCode;
/** 兑换币种编码 */ /**
@Excel(name = "兑换币种编码") *
*/
private String exchangeCurrencyCode; private String exchangeCurrencyCode;
/** 市场兑换金额 */ /**
@Excel(name = "市场兑换金额") *
*/
private BigDecimal exchangeRate; private BigDecimal exchangeRate;
/** 汇率差 1百分比 2 固定值 */ /**
@Excel(name = "汇率差 1百分比 2 固定值") * 1 2
*/
private Integer differenceType; private Integer differenceType;
/** 汇率差值 */ /**
@Excel(name = "汇率差值") *
*/
private BigDecimal differenceValue; private BigDecimal differenceValue;
/** 实际兑换金额 */ /**
@Excel(name = "实际兑换金额") *
*/
private BigDecimal actualBalance; 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.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ff.base.annotation.Excel;
import com.ff.base.core.domain.BaseEntity; import com.ff.base.core.domain.BaseEntity;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
@ -33,20 +32,17 @@ public class Game extends BaseEntity {
/** /**
* *
*/ */
@Excel(name = "排序")
private Integer sortNo; private Integer sortNo;
/** /**
* id * id
*/ */
@Excel(name = "游戏平台id")
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long platformId; private Long platformId;
/** /**
* id * id
*/ */
@Excel(name = "游戏第三方id")
private String gameCode; private String gameCode;
/** /**
@ -57,31 +53,26 @@ public class Game extends BaseEntity {
/** /**
* *
*/ */
@Excel(name = "第三方来源分类")
private String gameSourceType; private String gameSourceType;
/** /**
* *
*/ */
@Excel(name = "游戏名称")
private String gameName; private String gameName;
/** /**
* 1 0 * 1 0
*/ */
@Excel(name = "是否支持免费游戏 1 支持 0 不支持")
private Boolean freespin; private Boolean freespin;
/** /**
* 0 1 * 0 1
*/ */
@Excel(name = "是否支持试玩 0关闭 1开启")
private Boolean demoStatus; private Boolean demoStatus;
/** /**
* *
*/ */
@Excel(name = "维护开关 ")
private Boolean stopStatus; private Boolean stopStatus;
/** /**
@ -102,5 +93,5 @@ public class Game extends BaseEntity {
/** /**
* id * 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; package com.ff.game.domain;
import java.math.BigDecimal;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ff.base.annotation.Excel;
import com.ff.base.core.domain.BaseEntity; import com.ff.base.core.domain.BaseEntity;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder; import lombok.experimental.SuperBuilder;
import java.math.BigDecimal;
/** /**
* ff_game_exchange_money * ff_game_exchange_money
* *
@ -22,24 +20,28 @@ import lombok.experimental.SuperBuilder;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@SuperBuilder @SuperBuilder
public class GameExchangeMoney extends BaseEntity public class GameExchangeMoney extends BaseEntity {
{
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** 主键id */ /**
* id
*/
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long id; private Long id;
/** 租户key */ /**
@Excel(name = "租户key") * key
*/
private String tenantKey; private String tenantKey;
/** 币种编码 */ /**
@Excel(name = "币种编码") *
*/
private String currencyCode; private String currencyCode;
/** 第三方交易id */ /**
@Excel(name = "第三方交易id") * id
*/
private String transactionId; private String transactionId;
/** /**
@ -47,47 +49,56 @@ public class GameExchangeMoney extends BaseEntity
*/ */
private String orderId; private String orderId;
/** 会员id */ /**
@Excel(name = "会员id") * id
*/
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long memberId; private Long memberId;
/** 游戏平台 */ /**
@Excel(name = "游戏平台 ") *
*/
private String platformCode; private String platformCode;
/** 操作金额 */ /**
@Excel(name = "操作金额") *
*/
private BigDecimal balance; private BigDecimal balance;
/** 租户操作额度 */ /**
@Excel(name = "租户操作额度") *
*/
private BigDecimal quota; private BigDecimal quota;
/** 转账前金额(游戏币) */ /**
@Excel(name = " 转账前金额(游戏币)") * ()
*/
private BigDecimal coinBefore; private BigDecimal coinBefore;
/** 转账后金额(游戏币) */ /**
@Excel(name = "转账后金额(游戏币)") * ()
*/
private BigDecimal coinAfter; private BigDecimal coinAfter;
/** 转账前金额(指定货币) */ /**
@Excel(name = "转账前金额(指定货币)") * ()
*/
private BigDecimal currencyBefore; private BigDecimal currencyBefore;
/** 转账后金额(指定货币) */ /**
@Excel(name = "转账后金额(指定货币)") * ()
*/
private BigDecimal currencyAfter; private BigDecimal currencyAfter;
/**
/** 转出类型 1游戏商转入到用户全部转出 2 用户转移到游戏商 3 游戏商转移额度到平台商 */ * 1 2 3
@Excel(name = "转出类型 1游戏商转入到用户全部转出 2 用户转移到游戏商 3 游戏商转移额度到平台商") */
private Integer exchangeType; private Integer exchangeType;
/** 状态0:进行中、1:成功、2:失败 */ /**
@Excel(name = "状态 1 成功 2失败") * 0:1:2:
*/
private Integer status; 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.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ff.base.annotation.Excel;
import com.ff.base.core.domain.BaseEntity; import com.ff.base.core.domain.BaseEntity;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder; import lombok.experimental.SuperBuilder;
@ -20,73 +18,88 @@ import lombok.experimental.SuperBuilder;
@AllArgsConstructor @AllArgsConstructor
@SuperBuilder @SuperBuilder
@NoArgsConstructor @NoArgsConstructor
public class GameFreeRecord extends BaseEntity public class GameFreeRecord extends BaseEntity {
{
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** 主键id */ /**
* id
*/
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long id; private Long id;
/** 币种编码 */ /**
@Excel(name = "币种编码") *
*/
private String currencyCode; private String currencyCode;
/** 平台代码 */ /**
@Excel(name = "平台代码") *
*/
private String platformCode; private String platformCode;
/** 免费局数序号(唯一标识符) */ /**
@Excel(name = "免费局数序号", readConverterExp = "唯=一标识符") *
*/
private String referenceId; private String referenceId;
/** 会员id */ /**
@Excel(name = "会员id") * id
*/
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long memberId; private Long memberId;
/** 用户账号 */ /**
@Excel(name = "用户账号") *
*/
private String memberAccount; private String memberAccount;
/** 游戏id */ /**
@Excel(name = "游戏id ") * id
*/
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long gameId; private Long gameId;
/** 免费游戏局数可使用的开始时间 */ /**
@Excel(name = "免费游戏局数可使用的开始时间") * 使
*/
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long sendTime; private Long sendTime;
/** 免费局数过期时间 */ /**
@Excel(name = "免费局数过期时间") *
*/
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long expiredTime; private Long expiredTime;
/** 免费局数记录更新时间 */ /**
@Excel(name = "免费局数记录更新时间") *
*/
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long freeUpdateTime; private Long freeUpdateTime;
/** 免费局数赠送的游戏名称 */ /**
@Excel(name = "免费局数赠送的游戏名称") *
*/
private String sendGame; private String sendGame;
/** 免费局数赠送的数量 */ /**
@Excel(name = "免费局数赠送的数量") *
*/
private Integer sendAmount; private Integer sendAmount;
/** 已使用的免费局数数量 */ /**
@Excel(name = "已使用的免费局数数量") * 使
*/
private Integer usedAmount; private Integer usedAmount;
/** 未使用的免费局数数量 */ /**
@Excel(name = "未使用的免费局数数量") * 使
*/
private Integer unusedAmount; private Integer unusedAmount;
/** 免费状态 1正常 0 取消 */ /**
@Excel(name = "免费状态 1正常 0 取消 ") * 1 0
*/
private Integer freeStatus; 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.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ff.base.annotation.Excel;
import com.ff.base.core.domain.BaseEntity; import com.ff.base.core.domain.BaseEntity;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder; import lombok.experimental.SuperBuilder;
@ -20,32 +18,38 @@ import lombok.experimental.SuperBuilder;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@SuperBuilder @SuperBuilder
public class Member extends BaseEntity public class Member extends BaseEntity {
{
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** 主键id */ /**
* id
*/
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long id; private Long id;
/** 租户key */ /**
@Excel(name = "租户key") * key
*/
private String tenantKey; private String tenantKey;
/** 会员账号 */ /**
@Excel(name = "会员账号") *
*/
private String memberAccount; private String memberAccount;
/** 游戏账号 */ /**
@Excel(name = "游戏账号") *
*/
private String gameAccount; private String gameAccount;
/** 平台编码 */ /**
@Excel(name = "平台编码") *
*/
private String platformCode; private String platformCode;
/** 币种编码 */ /**
@Excel(name = "币种编码") *
*/
private String currencyCode; 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; package com.ff.sys.domain;
import com.ff.base.annotation.Excel;
import com.ff.base.core.domain.BaseEntity; import com.ff.base.core.domain.BaseEntity;
import lombok.Data; import lombok.Data;
/** /**
* ff_sys_notice * ff_sys_notice
* *
@ -10,19 +10,22 @@ import lombok.Data;
* @date 2025-02-28 * @date 2025-02-28
*/ */
@Data @Data
public class SysNotice extends BaseEntity public class SysNotice extends BaseEntity {
{
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** $column.columnComment */ /**
* $column.columnComment
*/
private Long id; private Long id;
/** 标题 */ /**
@Excel(name = "标题") *
*/
private String title; private String title;
/** 内容 */ /**
@Excel(name = "内容") *
*/
private String content; 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> <groupId>com.ff</groupId>
<artifactId>ff-game</artifactId> <artifactId>ff-game</artifactId>
<version>0.0.1</version> <version>0.0.1</version>
<name>ff-admin</name> <name>ff-game</name>
<description>ff-admin</description> <description>ff-game</description>
<dependencies> <dependencies>
<dependency>
<groupId>com.ff</groupId>
<artifactId>ff-mysql-entity</artifactId>
</dependency>
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
</dependency>
<!--<dependency> <!--<dependency>
<groupId>org.apache.rocketmq</groupId> <groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId> <artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.4.10</version> &lt;!&ndash; 请检查最新版本 &ndash;&gt; <version>2.4.10</version> &lt;!&ndash; 请检查最新版本 &ndash;&gt;
</dependency>--> </dependency>-->
<!-- spring-boot-devtools --> <!-- spring-boot-devtools -->
<dependency> <!--<dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId> <artifactId>spring-boot-devtools</artifactId>
<optional>true</optional> <!-- 表示依赖不会传递 --> <optional>true</optional> &lt;!&ndash; 表示依赖不会传递 &ndash;&gt;
</dependency> </dependency>-->
<!-- Jackson XML 数据格式支持 --> <!-- Jackson XML 数据格式支持 -->
<dependency> <dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId> <groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId> <artifactId>jackson-dataformat-xml</artifactId>
</dependency> </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驱动包 --> <!-- Mysql驱动包 -->
<dependency> <dependency>
<groupId>mysql</groupId> <groupId>mysql</groupId>
@ -69,17 +58,6 @@
</exclusions> </exclusions>
</dependency> </dependency>
<!-- 核心模块-->
<dependency>
<groupId>com.ff</groupId>
<artifactId>ff-base</artifactId>
</dependency>
<!-- 代码生成-->
<dependency>
<groupId>com.ff</groupId>
<artifactId>ff-gen</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
@ -97,8 +75,113 @@
<version>1.0.0</version> <version>1.0.0</version>
</dependency> </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> </dependencies>
<build> <build>
@ -118,17 +201,9 @@
</execution> </execution>
</executions> </executions>
</plugin> </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> </plugins>
<finalName>${project.artifactId}</finalName> <finalName>xk-admin</finalName>
</build> </build>
</project> </project>

View File

@ -1,8 +1,5 @@
package com.ff; 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.SpringApplication;
import org.springframework.boot.SpringBootVersion; import org.springframework.boot.SpringBootVersion;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
@ -17,20 +14,16 @@ import org.springframework.security.authentication.dao.DaoAuthenticationProvider
* *
* @author ff * @author ff
*/ */
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }) @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
@MapperScan({"com.ff.base.system.mapper","com.ff.quartz.mapper","com.ff.gen.mapper"})
@ComponentScan(excludeFilters = {@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = DaoAuthenticationProvider.class)}) @ComponentScan(excludeFilters = {@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = DaoAuthenticationProvider.class)})
@EnableAsync @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"); // System.setProperty("spring.devtools.restart.enabled", "false");
SpringApplication.run(FFApplication.class, args); 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; package com.ff.agent.controller;
import
com.ff.agent.dto.AgentTenantSecretKeyDTO;
import com.ff.agent.dto.AgentCreateTenantDTO; import com.ff.agent.dto.AgentCreateTenantDTO;
import com.ff.agent.dto.AgentTenantSecretKeyDTO;
import com.ff.base.constant.Constants; import com.ff.base.constant.Constants;
import com.ff.base.core.controller.BaseController; import com.ff.base.core.controller.BaseController;
import com.ff.base.core.domain.AjaxResult; 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.enums.QuotaType;
import com.ff.base.exception.base.BaseException; import com.ff.base.exception.base.BaseException;
import com.ff.base.system.domain.TenantPlatform; 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.CreateTenantDTO;
import com.ff.base.system.dto.TenantSecretKeyDTO; import com.ff.base.system.dto.TenantSecretKeyDTO;
import com.ff.base.system.service.ISysDeptService; import com.ff.base.system.service.ITenantPlatformService;
import com.ff.base.system.service.ISysRoleService; import com.ff.base.system.service.ITenantSecretKeyService;
import com.ff.base.system.service.ISysUserService;
import com.ff.base.utils.DateUtils; import com.ff.base.utils.DateUtils;
import com.ff.base.utils.bean.BeanUtils; import com.ff.base.utils.bean.BeanUtils;
import com.ff.base.utils.ip.IpUtils; import com.ff.base.utils.ip.IpUtils;
import com.ff.base.system.domain.TenantSecretKey;
import com.ff.common.domain.TenantAgentPlatform; import com.ff.common.domain.TenantAgentPlatform;
import com.ff.common.dto.BalanceChangesDTO; import com.ff.common.dto.BalanceChangesDTO;
import com.ff.common.service.ITenantAgentPlatformService; import com.ff.common.service.ITenantAgentPlatformService;
import com.ff.common.service.ITenantGameQuotaService; 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 lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
@ -61,6 +56,7 @@ public class AgentController extends BaseController {
@Resource @Resource
private ITenantAgentPlatformService tenantAgentPlatformService; private ITenantAgentPlatformService tenantAgentPlatformService;
/** /**
* *
* *
@ -80,7 +76,7 @@ public class AgentController extends BaseController {
AgentTenantSecretKeyDTO agentTenantSecretKeyDTO = new AgentTenantSecretKeyDTO(); AgentTenantSecretKeyDTO agentTenantSecretKeyDTO = new AgentTenantSecretKeyDTO();
BeanUtils.copyProperties(row, agentTenantSecretKeyDTO); BeanUtils.copyProperties(row, agentTenantSecretKeyDTO);
agentTenantSecretKeyDTO.setTenantPlatforms(tenantPlatformService.selectTenantPlatformList(TenantPlatform.builder() agentTenantSecretKeyDTO.setTenantPlatforms(tenantPlatformService.selectTenantPlatformList(TenantPlatform.builder()
.tenantId(row.getId()) .tenantId(row.getId())
.build())); .build()));
list.add(agentTenantSecretKeyDTO); list.add(agentTenantSecretKeyDTO);
} }
@ -105,7 +101,7 @@ public class AgentController extends BaseController {
for (TenantAgentPlatform tenantAgentPlatform : agentCreateTenantDTO.getTenantAgentPlatforms()) { for (TenantAgentPlatform tenantAgentPlatform : agentCreateTenantDTO.getTenantAgentPlatforms()) {
TenantAgentPlatform agentPlatform = tenantAgentPlatformService.selectTenantAgentPlatformById(tenantAgentPlatform.getId()); TenantAgentPlatform agentPlatform = tenantAgentPlatformService.selectTenantAgentPlatformById(tenantAgentPlatform.getId());
// 成本比平台成本大 // 成本比平台成本大
if (agentPlatform.getCost().compareTo(tenantAgentPlatform.getCost())>0){ if (agentPlatform.getCost().compareTo(tenantAgentPlatform.getCost()) > 0) {
throw new BaseException("成本比例不允许比最低比例小"); throw new BaseException("成本比例不允许比最低比例小");
} }
TenantPlatform tenantPlatform = new TenantPlatform(); TenantPlatform tenantPlatform = new TenantPlatform();

View File

@ -1,7 +1,5 @@
package com.ff.base.annotation; package com.ff.base.annotation;
import com.ff.base.annotation.Excel;
import java.lang.annotation.ElementType; import java.lang.annotation.ElementType;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; 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.annotation.DataScope;
import com.ff.base.core.domain.BaseEntity; 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.domain.model.LoginUser;
import com.ff.base.core.text.Convert; 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.SecurityUtils;
import com.ff.base.utils.StringUtils; import com.ff.base.utils.StringUtils;
import com.ff.base.security.context.PermissionContextHolder;
import org.aspectj.lang.JoinPoint; import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Before;

View File

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

View File

@ -2,18 +2,18 @@ package com.ff.base.aspectj;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.ff.base.annotation.Log; 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.core.domain.model.LoginUser;
import com.ff.base.enums.BusinessStatus; import com.ff.base.enums.BusinessStatus;
import com.ff.base.enums.HttpMethod; import com.ff.base.enums.HttpMethod;
import com.ff.base.filter.PropertyPreExcludeFilter; 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.SecurityUtils;
import com.ff.base.utils.ServletUtils; import com.ff.base.utils.ServletUtils;
import com.ff.base.utils.StringUtils; import com.ff.base.utils.StringUtils;
import com.ff.base.utils.ip.IpUtils; 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.apache.commons.lang3.ArrayUtils;
import org.aspectj.lang.JoinPoint; import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning; 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.AcceptHeaderLocaleResolver;
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor; import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;

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